Table of contents
1.
Classification of Array Processors in Computer Architecture
1.1.
1. Attached Array Processor
1.2.
2. SIMD Array Processor
1.2.1.
Configurations of SIMD
2.
Usage of Array Processors
3.
Applications of Array Processors
4.
Frequently Asked Questions
4.1.
When are the array processors most effective?
4.2.
Explain the term ‘processor’.
4.3.
What do you mean by ‘Vector Processing’?
4.4.
What is the difference between Array and Vector Processing?
5.
Conclusion
Last Updated: Jun 12, 2024

Array Processors

Author Sneha Mallik
2 upvotes
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

An array processor is a computer/processor with a specific architecture for dealing with numerical arrays (e.g., matrices). An array processor can be created as a self-contained unit connected to a central computer by an I/O port or internal bus. It can be built as a distributed array processor, with processing units distributed across and closely linked to a section of the computer's memory.

Recommended Topic, Microinstruction in Computer Architecture

Classification of Array Processors in Computer Architecture

Array processors can be divided into two categories:

  1. Attached Array Processors
  2. SIMD(Single Instruction Stream, Multiple Data Stream) Array Processors

We will go through the explained detail in the sections below.

Also Read - Shift Registers in Digital Electronics

1. Attached Array Processor

The attached array processor is the auxiliary processor connected to a general-purpose computer to enhance and improve the machine's performance in numerical computational tasks. It provides excellent performance by using numerous functional units in parallel processing.

The attached array processor includes a common processor with an input/output interface and a local memory interface.

The main memory and the local memory are linked.


The attached array processor intends to improve the performance of the host computer in specific numeric computations.

2. SIMD Array Processor

SIMD refers to the organization of a single computer with multiple parallel processors. The processing units are designed to work together under the supervision of a single control unit, resulting in a single instruction stream and multiple data streams.

An array processor's general block diagram is given below. It comprises several identical processing elements (PEs), each with its local memory M. An ALU and registers are included in each processor element. The master control unit controls the processing elements' actions. It also decodes instructions and determines how they should be carried out.

The program is stored in the main memory. The control unit retrieves the instructions. Vector instructions are sent to all PEs simultaneously, and the results are stored in memory.

The ILLIAC IV computer, manufactured by the Burroughs Corporation, is the most well-known SIMD array processor. Single Instruction Multiple Data (SIMD) processors are highly specialized computers. They're only good for numerical issues that can be stated as vectors or matrices; they're not suitable for other kinds of computations.

Configurations of SIMD

1. Array processors that use RAM(Random Access Memory) are also known as Dedicated Memory Organisations.

  • ILLIAC-IV
  • CM-2
  • MP-1

2. An associative processor that uses content-accessible memory is known as Global Memory Organisation.

  • BSP

Usage of Array Processors

  • Array processors enhance the total speed of instruction processing.
  • Most array processors' design optimizes its performance for repetitive arithmetic operations, making it faster at vector arithmetic than the host CPU. Since most Array processors run asynchronously from the host CPU, the system's overall capacity is thus improved.
  • Array Processors have their own local memory, providing additional extra memory to systems with limited memory. This is an essential consideration for the systems with a limited physical memory or address space.

Applications of Array Processors

Array processing is used at various places, including:-

  • Radar Systems
  • Sonar Systems
  • Anti-jamming
  • Seismic Exploration
  • Wireless communication
  • Medical applications
  • Used for Speech Enhancement
  • Used in Astronomy applications

Array processors are extremely useful for dealing with problems that require a lot of parallelisms. However, they do require a change in programming methodology. Converting conventional (sequential) programs to support array processors is complex, and different (parallel) algorithms may be needed to match the parallel approach.

Check out this problem - Find Duplicate In Array

Must Read hardwired and microprogrammed control unit

Recommended Topic - Memory hierarchy in computer network

Frequently Asked Questions

When are the array processors most effective?

The array processors are most effective and work the best only when there are large amounts of data available to be worked on.

Explain the term ‘processor’.

A processor, often known as a central processing unit (CPU), is a computer chip that handles most of the data and operations that a computer processes. A vector processor is more complex than a scalar processor, which only processes one piece of data at a time.

What do you mean by ‘Vector Processing’?

Vector processing is a central processing unit that can handle the entire vector input in a single instruction. It is a complete set of hardware resources that uses individual instructions to implement a sequential series of similar data elements in memory.

What is the difference between Array and Vector Processing?

Although the array and vector processing are often used interchangeably, they are technically distinct. The plural form of the term "index" is an array of indexed collections of information called indices. An array can have only one index collection in rare situations; a vector is technically an array with at least two indices. Computer data "blocks" are sometimes referred to as vectors.
A vector is a sequence-based container, whereas an array is a data structure that stores a fixed number of elements in sequential order (all the elements must be of the same type).  Vectors have a dynamic size, which means they can resize themselves, whereas arrays have a fixed size.

Conclusion

In this blog, we learned the concepts of array processors. Though the array processor can improve performance, all the problems cannot be solved. Instructions of the array processor to process the array of data simultaneously add up to the core CPU's complexity. This complexity makes the other instructions execute. Hence, we covered the concepts of Attached and SIMD array processors; we also discussed their uses and applications.

Recommended Readings:

Take a look at an introduction blog, Computer Organization and Computer Architecture-Introduction. Apart from that, you can refer to our Guided paths on Code 360o to learn more about DSA, Competitive Programming, JavaScript, System Design, etc.

Happy Learning!

Live masterclass