Intel®高层次综合编译器专业版: 最佳实践指南

ID 683152
日期 12/04/2023
Public
文档目录

3.2.3. 流水线

Pipelining(流水线) 是同步数字电路中用于增加fMAX的设计技术。流水线涉及将寄存器添加到关键路径,这样就减少了每个寄存器之间的逻辑量。较少的逻辑需要更少的执行时间,从而使得fMAX增加。

电路中的关键路径是具有最高延时的任意两个连续寄存器之间的路径。即,两个需要花费最长时间才能完成操作的连续寄存器之间的路径。

流水线在处理数据流时特别有用。流水线电路可以对同一时钟周期内的各种输入流数据执行流水线操作不同阶段,这样会带来更好的数据处理吞吐量。

实例:

考虑一个在关键路径上进行操作A和操作B的简单电路。如果操作A需要5 ns完成,操作B需要15 ns完成,则关键路径上的时间延迟为20 ns。这样fMAX就是50 MHz(1/max_delay)。

图 1. fMAX为50 MHz的非流水线逻辑块以及两个时钟周期的延时


如果在A和B之间添加一个流水线寄存器,关键路径就会改变。现在关键路径上的延时为15 ns。对该块进行流水线操作产生的fMAX为66.67 MHz,两个连续寄存器之间的最大延迟为15 ns。

图 2. fMAX为66.67 MHz的流水线逻辑块以及三个时钟周期的延时


运行流水线通常会带来较高的fMAX,同时它也会增加延时。在前面的示例中,包含A和B的模块的延时在运行流水线后从两个时钟周期增加到三个时钟周期。