top of page
Girl with Tablet

Parallel processing vs pipelined processing

Audience: Fresher to 2-3 years 

Companies: startups working on RISCV, arm, intel, nvidia (this concept is used in IPs also)

​

Parallel processing: Simultaneous execution of multiple tasks or instructions to improve performance.

Pipelined processing: Dividing instruction execution into sequential stages to increase throughput and optimize resource utilization. 

​

Pipelining and parallel processing are two independent methods used in computer architectures to boost throughput and performance. Each is described below:

concurrent/parallel processing
The simultaneous execution of several tasks or instructions is known as parallel processing. It makes use of the power of several cores or processing units to carry out computations concurrently. The goal is to break up a big task into smaller components that can be handled separately and concurrently by several processors. The final output is produced after each processor completes the allotted piece of the task. Computations can be considerably sped up by parallel processing, especially for jobs that are naturally parallelisable.

​

Pipelining:
Contrarily, pipelining concentrates on improving how each instruction is carried out by a processor. It separates the execution process into a series of steps, with each step handling a different operation of the instruction cycle (for example, fetching, decoding, executing, accessing memory, and writeback). In these phases, several instructions overlap, creating a pipeline. An ongoing flow of instructions is produced as one instruction moves on to the following stage and another one enters the pipeline. By enabling numerous instructions to be processed concurrently at various stages of the pipeline, pipelining tries to decrease the overall execution time while boosting instruction throughput.

​

​

In Easy Words:

concurrent/parallel processing
Imagine that you wish to construct a lengthy train track with your buddies. Each friend chooses a separate piece of the music and begins working on it at the same time in parallel processing. A friend constructs the beginning, another constructs the middle, and a third constructs the conclusion. The track is constructed considerably more quickly than it would be if just one friend were working on it alone because everyone is working together at once. Each friend concentrates on a certain area of the track, and once they are finished, they link their sections together to make the entire track. Because everyone is working on various areas at the same time, this is similar to parallel processing and makes the track-building process faster and more efficient.

​

Pipelining:
Imagine that you are creating a toy train track all by yourself with variously coloured building bricks. In pipelining, you follow a set of steps in a loop to construct the track. The first step is to choose a blue block and set it up as the beginning point. After that, you choose a red brick and join it to a blue block to form a straight section. The next step is to choose a green block and join it to the red block to form a curved segment. The track is then finished by selecting a yellow brick and connecting it to the green block. You continue to add blocks in a continuous flow to create the track rather than waiting for one to be completely put before beginning the next one.

​

Does parallel processing work with inorder execution?

In-order execution: Instructions are executed in the order they appear in the program.

Out-of-order execution: Instructions are dynamically reordered for improved performance.

Parallel processing can be used in both in-order and out-of-order execution models, although it is more commonly associated with out-of-order execution.

​

PPA(Power , performance ,area) 

​

Depending on the precise implementation and properties of parallel and pipelined processing, the impact on power, performance, and area can change. Here are some broad ideas to keep in mind, though:

Power:

Due to the usage of several processing units or cores operating simultaneously, parallel computing might utilise additional power.
Due to the more intricate nature of the pipeline phases and related control logic, pipelined processing may also use more energy.

Performance:

By running tasks or instructions simultaneously, parallel processing can increase performance and speed up job completion.
By boosting the throughput of instructions, pipelined processing can improve performance by processing more instructions in a given amount of time.
Area:
Multiple processing units or cores are often needed for parallel processing, which can lead to bigger chip sizes and more space requirements.
In order to implement the pipeline steps, pipelined processing may need additional hardware resources. However, because of its potential for higher hardware utilisation, it may result in smaller chip sizes than parallel processing.

​

​

bottom of page