Vector and Array Processors

Vector and Array processors are specialized types of computer architectures designed to perform high-speed computations on large sets of data. Both fall under the SIMD (Single Instruction, Multiple Data) category of Flynn's Taxonomy.

What is a Vector Processor?

A Vector Processor operates on entire arrays of data (vectors) using a single instruction. Instead of looping through individual elements, it uses highly pipelined functional units to process the elements sequentially but at a very high rate.

  • **Vector Registers:** Specialized registers that hold multiple data elements (e.g., 64 elements of 64-bit each).
  • **Pipelined Execution:** Uses deep pipelines to process one element per clock cycle after the initial setup.
  • **Examples:** Cray-1, CDC Cyber 205.

What is an Array Processor?

An Array Processor consists of a large number of identical Processing Elements (PEs) that act in parallel. Each PE has its own local memory and is controlled by a single master control unit.

  • **Synchronous Execution:** Every PE executes the same instruction at the same time on its own local data.
  • **Interconnection Network:** PEs communicate through a specific topology (Mesh, Hypercube).
  • **Examples:** ILLIAC IV, Connection Machine.

Key Differences

FeatureVector ProcessorArray Processor
Processing MethodHeavily PipelinedParallel Processing Elements (PEs)
Data HandlingStreams data through one unitDistributes data across many units
ArchitectureFocuses on fast CPU registersFocuses on many small ALU/PEs
EfficiencyBest for long, linear vectorsBest for grid-based data (images/physics)
ScalabilityLimited by pipeline depthEasier to scale by adding more PEs

Why Use Specialized Processors?

Standard CPUs are inefficient for tasks like weather forecasting, scientific simulations, or 3D rendering because they spend too much time on instruction fetching and loop overhead. Vector and Array processors eliminate this overhead by applying one instruction to thousands of data points.

Common Mistakes to Avoid

  • Thinking GPUs are just Vector processors (modern GPUs are a hybrid of SIMD and MIMD).
  • Confusing 'Vector' with 'Array' (Vector uses one fast pipeline; Array uses many slow parallel units).
  • Assuming these are used for general tasks like web browsing.
  • Ignoring the 'Gather-Scatter' operations required to handle non-contiguous data.

Advanced Concepts

  • Chaining (linking multiple vector operations)
  • Stride (accessing non-consecutive vector elements)
  • Masking (conditional execution on vector elements)
  • Systolic Arrays
  • Attached Array Processors

Practice Exercises

  • Compare the time taken to add two 1000-element vectors on a Scalar vs Vector processor.
  • How does an Array Processor handle a conditional 'IF' statement across different PEs?
  • Explain the concept of 'Vector Length' and 'Vector Stride'.
  • Research why modern CPUs have added Vector extensions (like Intel AVX-512).

Conclusion

Vector and Array processors represent the peak of computational efficiency for parallelizable data. While they were once reserved for supercomputers, their principles now live on in the SIMD units of every modern CPU and GPU.

Note: Note: Vector processors are 'Time-Parallel' (pipelined), while Array processors are 'Space-Parallel' (multiple units).