搜索
bottom↓
回复: 3

关于流水线延时公式的个人理解

[复制链接]

出0入0汤圆

发表于 2015-7-14 19:25:30 | 显示全部楼层 |阅读模式
本帖最后由 fakeCode 于 2015-7-14 19:27 编辑

不带反馈的组合逻辑展开成流水线结构的优点在很多文章中已经阐述,主要是提高系统的性能,主要的手法是插入寄存器暂存组合逻辑的中间计算结果。但纵观网上文章对流水线性能提升的分析,写得都不显然,当然可能本人太笨。
例如以下这样一个组合逻辑,由#1、#2、#3个子逻辑构成,
图1——原组合逻辑

插入寄存器保存#1,#3的中间计算结果,展开成两级流水线结构后如下图
图2——流水线展后后的组合逻辑

通常的文章中开始分别分析原组合逻辑和流水线展开后的组合逻辑延时。
【原组合逻辑延时】

这个组合逻辑包括两级。
第一级的延迟是T1和T3两个延迟中的最大值;
第二级的延迟等于T2的延迟。
为了通过这个组合逻辑得到稳定的计算结果输出,需要等待的传播延迟为:
[max(T1,T3)+T2]

【流水线展开后的组合逻辑延时】

在从输入到输出的每一级插入寄存器后,流水线设计的第一级寄存器所具有的总的延迟为T1与T3时延中的最大值加上寄存器的Tco(触发时间)。同样,第二级寄存器延迟为T2的时延加上Tco。采用流水线设计为取得稳定的输出总体计算周期为:
max(max(T1,T3)+Tco,(T2+Tco))

原组合逻辑的延时为[max(T1,T3)+T2]很好理解,但是流水线展开后的延时为什么是max(max(T1,T3)+Tco,(T2+Tco))就不那么显然了,犹其对于初学者而言。
关于这一点我个人是从同步时序分析的角度进行理解的。

注意,流水线在初始化的时候会有一个首次延时,见下图:
将始下步骤

展开为流水线执行

从图中可以看到,流水线的各级最初是没有数据的,只有当个流水线的各级充满数据时,流水线才起作用,我们将这个填充满流水线的时间,或者说从第一个数据输入到第一个结果输出的延时叫首次延时。一般有N级中间寄存器就有N-1个CLK的延时。

最后打打广告吧,我的个人博客 http://www.hex55.com

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-7-15 04:19:05 来自手机 | 显示全部楼层
输入加入信号enable,enable经过相同数量的寄存器

出0入0汤圆

 楼主| 发表于 2015-7-15 08:52:35 | 显示全部楼层
图居然没办法粘进来。

出0入0汤圆

发表于 2015-7-15 14:16:25 | 显示全部楼层
没有图片看住很迷糊,群主可以把原地址或者附件发上来吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 23:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表