An apparatus for processing data has a Single-Instruction-Multiple-Data
(SIMD) architecture, and a number of features that improve performance and
programmability. The apparatus includes a rectangular array of processing
elements and a controller. In one aspect, each of the processing elements
includes one or more addressable storage means and other elements arranged
in a pipelined architecture. The controller includes means for receiving a
high level instruction, and converting each instruction into a sequence of
one or more processing element microinstructions for simultaneously
controlling each stage of the processing element pipeline. In doing so,
the controller detects and resolves a number of resource conflicts, and
automatically generates instructions for registering image operands that
are skewed with respect to one another in the processing element array. In
another aspect, a programmer references images via pointers to image
descriptors that include the actual addresses of various bits of multi-bit
data. Other features facilitate and speed up the movement of data into and
out of the apparatus. "Hit" detection and histogram logic are also
included.