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
| Feature | Vector Processor | Array Processor |
|---|---|---|
| Processing Method | Heavily Pipelined | Parallel Processing Elements (PEs) |
| Data Handling | Streams data through one unit | Distributes data across many units |
| Architecture | Focuses on fast CPU registers | Focuses on many small ALU/PEs |
| Efficiency | Best for long, linear vectors | Best for grid-based data (images/physics) |
| Scalability | Limited by pipeline depth | Easier 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.
Codecrown