Array processor in computer architecture has multiple arithmetic logic units that enhance the system’s performance. Majorly there are two types of array processors available:
- Attached Array Processor
- SIMD Array Processor
The array processor is one of the approaches to parallel computers.
What is Parallel Computer?
A parallel computer has multiple processing units. These processing units simultaneously operate on a shared data set, thereby enhancing the system’s overall performance. Parallel computers mainly emphasize parallel processing. We classify parallel computers into three architectural configurations.
- Pipeline Computers
- Array Processors
- Multiprocessor System
Pipeline computers execute successive instructions in an overlapped fashion, thereby increasing the temporal parallelism.
The architectural configuration of an array processor involves multiple synchronized arithmetic logic units to achieve spatial parallelism.
The multiprocessor system involves using multiple processors of comparable capabilities to share access to a set of memory modules, I/O channels and peripheral devices, thereby achieving asynchronous parallelism.
Although all three approaches for parallel computer system design are not mutually exclusive, most existing systems today have pipelined architecture, and some have array or multiprocessor structural design.
The array processor and multiprocessor system differ because the processing elements of the array processor operate synchronously. However, the processing elements of the multiprocessor system may operate asynchronously.
Content: Array Processor in Computer Architecture
- What is Array Processor?
- Architecture of Array Processor
- Types of Array Processors
- Array Processor Vs Vector Processor
- Advantages of Array Processor
What is Array Processor?
A supercomputer is a computer with a large number of processors performing millions or billions of computations each second providing a huge computing power to its user.
So, we classify an array processor as a supercomputer because it has an array of parallel processors possessing parallel processing capabilities that ultimately provides huge computing power to its consumer.
Array processor is one of the methods of processor organization to enhance the system’s performance. Array processor has multiple arithmetic logic units optimized to perform computation on a large array of data. We refer to these arithmetic logic units as processing elements (PE).
Architecture of Array Processor
Array processor has a synchronous array of parallel processors that allow all the array elements to be processed together. Each processor has an arithmetic logic unit and memory, and we refer to it as a processing element, i.e. PE. All the processing elements are under the supervision of one control unit (CU).
The structural organization below shows the architecture of the array processor.
In the array architecture above, you can notice that the control unit fetches and decodes a single instruction and issue it to parallel processing elements. The processing elements apply the instruction to their corresponding data set simultaneously.
Types of Array Processors
Attached Array Processor
Here we attach an array processor to a general-purpose computer to enhance the performance of the computer. The general-purpose computer serves as an operating manager of the entire system, which includes the host and the attached array processor.
The processor connects to the general-purpose computer through an I/O interface. Ahead, the processor connects to the main memory of a general-purpose computer through local memory.
The host computer to which the array processor is attached performs resource management and peripheral and I/O supervision. However, the control unit of the array processor supervises the execution of the program. In this structural arrangement, we consider an attached array processor as a backend computer.
SIMD Array Processor
Single instruction and multiple data streams, i.e., SIMD processors, include multiple synchronized processing elements. All these PEs are under the supervision of one control unit CU.
Each processing element, along with the arithmetic logic unit, has attached registers and local memory for storing the distributed data.
The control unit has its control memory for storing programs. The control processor is responsible for the execution of the system program and the user program.
At first, the user program is loaded into control memory from external sources. The control unit decodes the instructions in the user program and determines where the decoded instruction should be executed.
The scalar or the control type instruction are directly executed inside the control unit. However, the vector instructions are issued to processing elements for distributed execution to achieve spatial parallelism.
Here all the processing elements perform the same function at the same time (synchronously) in a lockstep fashion under the control of CU. The vector operands are distributed to the local memory of the processing elements from an external source via the system bus or via the control unit in a broadcast mode using the control bus.
During the execution of the vector instruction, a processing unit can either be active or disabled. A masking vector control the status of each processing element. In short, it is not mandatory that all the processing elements must participate in the execution of a vector instruction. So only the active PEs participate in the computation of vector instruction.
The data exchange between all the active PEs is accomplished via the Inter-PE communication network. The inter-PE communication network formulates all necessary data routing. However, this unit is under the control of CU.
Difference Between Array Processor and Vector Processor
Array and vector processors are almost the same but slightly different.
- The array processor uses multiple processing elements that operate parallelly (synchronously) on the large array elements.
- However, the vector processor uses multiple vector pipelines to work in parallel.
Advantages of Array Processor
- The array processor improves the overall performance of the system.
- As the parallel processors in array computers run synchronously with the host computer, it improves the system’s overall capacity. As each processing element in the array computer has its local memory, it adds extra memory to the system.
- As the parallel processors in an array computer perform computation on the huge data array, it helps resolve the difficulty with a high amount of parallelism.
- Array processors perform computation on all array elements simultaneously, which speeds up the computation.
So, this is all about the array processor in computer architecture. We have discussed its architecture, designed to deal with large sets of arrays. The array processor is designed as an individual independent unit, but we can also connect it to the host computer through an I/O interface.
The most known array computer is ILLIAC IV, designed by Burroughs Corporation.