Linear pipelining is an approach that decomposes any sequential process into limited subprocesses, which are separate from each other so that every subprocess can be implemented in a unique dedicated segment and all these segments work concurrently. Thus the whole function is divided into separate tasks and these subtasks are implemented by a segment.
The concept of pipelining in computer architecture is corresponding to a technical assembly line. As in the market there multiple divisions like manufacturing, packing, and delivery division, a product is manufactured by the manufacturing division, while it is packed by the packing division a new product is manufactured by the manufacturing unit.
Pipelining can be effectively executed for systems having the following features −
A system is continuously executing a basic function.
A basic function should be divisible into separate stages such that every stage has a basic overlap.
The difficulty of the stages must be practically the same.
The transfer of control is nonlinear. A dynamic pipeline enables feedforward and feedback connections additionally to streamlining connections. A dynamic pipelining can start tasks from multiple reservation tables together to enable multiple numbers of initiations of multiple functions in the same pipeline.
|Linear Pipeline||Non-Linear Pipeline|
|Linear pipelines are static pipelines because they can be used to implement fixed functions.||Non-Linear pipelines are dynamic pipelines because they can be reconstructed to implement variable functions multiple times.|
|Linear pipeline enables only streamline connections.||The non-Linear pipeline enables feed-forward and feedback connections additionally to the streamlined connection.|
|It is associatively easy to subdivide a given function into a series of linearly ordered sub-functions.||Function partitioning is associatively complex because the pipeline stages are interconnected with loops in addition to streamlining connections.|
|The output of the pipeline is produced from the previous stage.||The output of the pipeline is not essentially produced from the previous stage.|
|The reservation table is trivial in the sense that data flows in a linear streamline.||The reservation table is non-trivial in the sense that there is no linear streamline for data flows.|
|Static pipelining is determined by a single Reservation table.||Dynamic pipelining is defined by more than one Reservation table.|
|All initiations to a static pipeline use the same reservation table.||A dynamic pipeline can allow several initiations to follow a mix of reservation tables.|