I was trying to understand what a reservation table is in the context of pipelining, when I found this reference here, where the author mentions that there are static and dynamic pipelines. According to him/her,

There are two types of pipelines: static and dynamic. A static pipeline can perform only one function at a time, whereas a dynamic pipeline can perform more than one function at a time. A pipeline reservation table shows when stages of a pipeline are in use for a particular function.

This definition sounds confusing to me: is "function" a synonym for "operation" in this case? So, a static pipeline can only process a batch of instructions that use the same operator? Like if the pipeline had to be "rewired" every time a new operator is issued? It makes no sense to me.

In order to get lost a bit more, I resorted to Wikipedia which states that

A linear pipeline processor is a series of processing stages and memory access. A non linear pipelining (also called dynamic pipeline) can be configured to perform various functions at different times. In a dynamic pipeline there is also feed forward or feedback connection. Non-linear pipeline also allows very long instruction words.

So, static pipelines are linear, dynamic ones are non-linear and functions are indeed a synonym for operations in this context? And, finally, are static pipelines really reconfigured every time a new function is processed?


1 Answer 1


The reference I've mentioned is actually self-contained; i.e, the answer I was looking for was there all the time. But considering that others could have the same doubt, I will reproduce an snippet from that reference and answer my own question:

Pipelines are usually divided into two classes: instruction pipelines and arithmetic pipelines. A pipeline in each of these classes can be designed in two ways: static or dynamic. A static pipeline can perform only one operation (such as addition or multiplication) at a time. The operation of a static pipeline can only be changed after the pipeline has been drained. (A pipeline is said to be drained when the last input data leave the pipeline.) For example, consider a static pipeline that is able to perform addition and multiplication. Each time that the pipeline switches from a multiplication operation to an addition operation, it must be drained and set for the new operation. The performance of static pipelines is severely degraded when the operations change often, since this requires the pipeline to be drained and refilled each time. A dynamic pipeline can perform more than one operation at a time.

So, yes, a "function" is a synonym for "operation" in this context, but nothing is said about linear and non-linear pipelines. I hope some fellow can confirm if those terms exist indeed with the same meaning used in the Wikipedia.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.