打印

流水线设计的疑问

[复制链接]
1910|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songchao01|  楼主 | 2008-3-18 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看过一个介绍流水线设计的帖子,说采用流水线设计可以提高电路的工作频率,并举例说可以把32位计数器分割成12位和20位计数器,自己动手试了一下,果然综合后的最高频率由原来的168MHZ提高到169MHZ。有两点疑问:
1.    ISE综合报告给出的最高频率和电路的实际工作频率有关系否?
2.    流水线设计明明是通过插入寄存器来切割大的组合逻辑,从表面看,引入了新一级的寄存器只会增加信号的传输时延,为什么竟然可以提高频率?!!这个问题怎么想也想不明白!有的资料上说虽然流水设计增加了首次延迟,但是它极大的缩短了吞吐延迟,不太理解

相关帖子

沙发
zhh124| | 2008-3-19 10:40 | 只看该作者

rt

没有流水
a -> 100ns -> b
a,b使用同步时钟

插入一级流水寄存器
a -> 50ns -> c -> 50ns -> b
a,b,c使用同步时钟
显然a -> c的频率可以比上面a->b的频率高,以为a->c之间的延迟只有50ns
总看起来a-c-b延迟会加大,但只是第一个数据延迟加大.
reg:      a - c - b
data: z y x   -->
        z y   x  -->
          z   y   x   -->
x从a->c花费50ns,同时y进入a;
x从c->b花费50ns,同时y进入c;
x从b输出,同时y进入b,花费50ns;
所以: x从a->b总共花费100ns,但是它后面的y则再经过50ns就出现在b的输出了.
看明白了吗? 这就是流水

使用特权

评论回复
板凳
zhh124| | 2008-3-19 10:45 | 只看该作者

rt

我的blog--关于流水操作

//流水线
当组合逻辑路径上的延迟较长时,可用寄存器将其隔开,来提高操作频率.
reg_i-------------------comb_logic------------------>reg_o
reg_i---1/2comb_logic---reg_insert---1/2comb_logic-->reg_o
第一组数据从输入reg到输出reg的延迟为T,但其后的数据从输入reg到输出reg的延迟就都降为T/2了.
这是因为当第一组数据到达reg_o时,其后的一组数据就已经到达中间插入的reg了,只需要再经过T/2的
延迟就可到达reg_o.这就是2级流水线,同理,更多级数的流水线可大大降低延迟,提高操作频率,但第一
组数据的延迟仍为没有采用流水线时的延迟.

顺便废话几句..

CPU的流水线级数和性能的关系

多极流水线可提高操作频率,但程序不是总是顺序往下执行的,碰到跳转和分支指令,已经进入流水线的指

令将被清空重新填入新的指令,越深的流水线则这个过程耗费的时间越长...

地址:
http://www.edacn.net/index.php/59549/viewspace-5620.html

使用特权

评论回复
地板
songchao01|  楼主 | 2008-3-20 16:37 | 只看该作者

感谢楼上的!!!

上网不方便,把网页保存下来回去慢慢看,嘿嘿
谢谢楼上的指点!!

使用特权

评论回复
5
songchao01|  楼主 | 2008-3-24 12:53 | 只看该作者

终于明白了!!

感谢 zhh124 的耐心讲解,举的例子很好,一下子就看明白了~
回 qinxg:
  那个例子只是单纯的一个计数器,并不是某个设计中的一部分,所以频率提升的不是很明显~“要看那个最影响频率的延时路径,在这个路径里插入流水线可以实实在在的提高系统频率”这个不错!!受教了!

使用特权

评论回复
6
niu9911| | 2008-3-24 17:52 | 只看该作者

学习

多极流水线可提高操作频率,但程序不是总是顺序往下执行的,碰到跳转和分支指令,已经进入流水线的指

令将被清空重新填入新的指令,越深的流水线则这个过程耗费的时间越长...

有空去支持一下BLOG

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

28

帖子

0

粉丝