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:
If X and Y are operated together, the same Boolean function, f , is applied to both registers:
yi¬f(yi, fi)
xi¬xi (where yi = 0)