previous | contents | next

Chapter 21 ½A Productive Implementation of an Associative Array Processor: STARAN 319

STARAN Array Modules

A STARAN array module (Fig. 4) contains an MDA memory communicating with three 256-bit registers (M, X, and Y) through a flip (permutation) network. One may think of an array module as having 256 small processing elements (PE's), where a PE contains one bit of the M register, one bit of the X register, and one bit of the Y register.

The M register drives the write mask bus of the MDA memory to select which of the MDA memory hits are modified in a masked-write operation. The MDA memory also has an unmasked-write operation that ignores M and modifies all 256 accessed bits. The M register can be loaded from the other components of the array module.

In general, the logic associated with the X register can perform any of the 16 Boolean functions of two variables; that is, if xi, is the state of the ith X-register bit, and fi is the state of the ith flip network output, then:

xi¬f (xi, fi ) (i = 0, 1, . . . , 255) where f is any Boolean function of two variables. Similarly, the logic associated with the Y-register can perform any Boolean function: yi¬f(yi, fi) (i = 0,1, . . . , 255) where yi is the state of the ith Y-register bit. The programmer is given the choice of operating X alone, Y alone, or X and Y together.
 
 

If X and Y are operated together, the same Boolean function, f , is applied to both registers:

xi¬f(xi, fi)

yi¬f(yi, fi)

The programmer also can choose to operate on X selectively, using Y as a mask: xi¬f(xi, fi) (where yi = 1)

xi¬xi (where yi = 0)

Another choice is to operate on X selectively while operating on Y:


previous | contents | next