SIMD(Single-Instruction Stream Multiple-Data Stream) architectures are essential in the
parallel world of computers. Their ability to manipulate large vectors and matrices in
minimal time has created a phenomenal demand in such areas as weather data and cancer
radiation research. The power behind this type of architecture can be seen when the number
of processor elements is equivalent to the size of your vector. In this situation,
componentwise addition and multiplication of vector elements can be done simultaneously.
Even when the size of the vector is larger than the number of processors elements
available, the speedup, compared to a sequential algorithm, is immense. There are two
types of SIMD architectures we will be discussing. The first is the True SIMD followed by
the Pipelined SIMD. Each has its own advantages and disadvantages but their common
attribute is superior ability to manipulate vectors.
The True SIMD architecture contains a single contol unit(CU) with multiple processor
elements(PE) acting as arithmetic units(AU). In this situation, the arithmetic units are
slaves to the control unit. The AU's cannot fetch or interpret any instructions. They are
merely a unit which has capabilities of addition, subtraction, multiplication, and
division. Each AU has access only to its own memory. In this sense, if a AU needs the
information contained in a different AU, it must put in a request to the CU and the CU
must manage the transferring of information. The advantage of this type of architecture is
in the ease of adding more memory and AU's to the computer. The disadvantage can be found
in the time wasted by the CU managing all memory exchanges.
Another True SIMD architecture, is designed with a configurable association between the
PE's and the memory modules(M). In this architecture, the local memories that were
attached to each AU as above are replaced by memory modules. These M's are shared by all
the PE's through an alignment network or switching unit. This allows for the individual
PE's to share their memory without accessing the control unit. This type of architecture
is certainly superior to the above, but a disadvantage is inherited in the difficulty of
adding memory.
Pipelined SIMD architecture is composed of a pipeline of arithmetic units with shared
memory. The pipeline takes different streams of instructions and performs all the
operations of an arithmetic unit. The pipeline is a first in first out type of procedure.
The size of the pipelines are relative. To take advantage of the pipeline, the data to be
evaluated must be stored in different memory modules so the pipeline can be fed with this
information as fast as possible. The advantages to this architecture can be found in the
speed and efficiency of data processing assuming the above stipulation is met.