[Oberon] Parallel computing ?

Douglas G. Danforth Danforth at GreenwoodFarm.com
Sat Feb 3 19:38:52 MET 2007

Chris Glur wrote:

 > Doug Danforth wrote:

 >> Random Access Memory (RAM) is fast because it is massively parallel.  A
 >> 32 bit address is broadcast simultaneously to all locations in memory
 >> and only one of those addresses responds by placing its contents on the
 >> output bus (read operation) or by modifying its contents from the input
 > bus (write operation).
 > Perhaps 'associative memory' works something like that, but standard
 > RAM has very little parallelism.   Except for the 32 'select left or 
 > channels' which are simultaneously set. Then serially, ie. AFTER the
 > 32 'railway points' are all set, the train travels serially [at the 
 > of light] to the destination.

You are correct (actually travels at less than the speed of light).

To be truly parallel the topology would have to be spherical with copies 
of the address
lines running to each location on the surface of a sphere (to give equal 
transmission time).

 > Ie. it has to pass switch n before it passes switch n+1.
 > The only parallelism comes from the 32 bit adr-bus, which sets all
 > 'railway points' together.

Each memory location determines whether the address set corresponds to 
its address.  The circuitry to do this
can be serial or tree like (logrithmic).

 > Which is no different from the centuries
 > old punch-card fabric weavers. 
 > But that's only possible because the 32 bits were already setup
 > and stored BEFORE, which was inevitably determined serially.
 > Ie. if you are going to get the byte at adr. A, this decision has
 > already been determined by the compiler - serially.
 > The adr. A is determined before and stored for later use.

Addresses can be computed dynamically at run time.  The compiler need 
not be involved.

 > The first bloke who made a printing press, printed all the letters
 > of the page in parallel,

Good example.

More information about the Oberon mailing list