为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

CPU流水线与CPU频率

2013-04-07 3页 pdf 38KB 37阅读

用户头像

is_280370

暂无简介

举报
CPU流水线与CPU频率 第 1页 共 3页 电脑报/2005年/5月/30日/第 E11版 技术大讲堂 CPU流水线与 CPU频率 辽宁 郑大理 关于 CPU 流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问题的解释 不够清楚,比如不少文章曾多次提及增加流水线级数有利于提高 CPU 主频,但对其原因的解释 却少有触及,为什么流水线增加频率也能提升呢?本文将带领你找到以上问题的答案。关于流水 线的基本原理本文就不再说明了。对于增加流水线级数有利于提升 CPU 主频这一观点,笔者将 通过理论论证和事...
CPU流水线与CPU频率
第 1页 共 3页 电脑报/2005年/5月/30日/第 E11版 技术大讲堂 CPU流水线与 CPU频率 辽宁 郑大理 关于 CPU 流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问的解释 不够清楚,比如不少文章曾多次提及增加流水线级数有利于提高 CPU 主频,但对其原因的解释 却少有触及,为什么流水线增加频率也能提升呢?本文将带领你找到以上问题的。关于流水 线的基本原理本文就不再说明了。对于增加流水线级数有利于提升 CPU 主频这一观点,笔者将 通过理论论证和事实举例两方面来进行解释说明。 1、流水线与周期的关系 我们先对流水线的级数与其周期的关系给出一个公式。一个 k级流水线,处理 n个任务总共 需要花费“k+(n-1)”个周期,这是因为先是处理第一个任务就需要 k 个时钟周期,k 个周期 后流水线被装满,剩余 n-1个任务只需 n-1个周期就能完成。如果同样数量的 n个任务不采用 流水线处理,那么就需要 n*k个周期,我们把两者做比,得到另一个概念,叫做流水线加速比 C, 所以 C=n*k/[k+(n-1)],当 n远远大于 k时,C的值趋近于 k,也就是说,理论上 k级流 水线几乎可以提高 k倍速度,但这仅限于理论。看到这儿也许有的读者可能会感到一头雾水。不 用急,下面就将举例进一步说明。 举例前先对流水线周期选取的问题进行一下解析。我们假设一辆成品车的生产过程分为车轮 生产,车门生产,最后组装三个步骤,每辆车的车轮生产时间需要 8s,车门需要 12s,而最后的 组装需要 10s(图 1),在本例中生产厂商针对此情况了 1条 3级流水线,分别是车轮生产流 水线,车门生产流水线以及组装流水线,整条流水线的周期选取为 12s。注意,在此为什么设置 整条流水线的周期为三个步骤中最长的 12s呢?其实在现实生产中由于工艺水平,原料特性以及 制造难度的不同,每级流水线完成任务的时间都可能是不同的。这里如果选择 8s或 10s为整条流 水线的周期,将会导致车门生产线的任务不能在单位周期内完成,也就无法及时向下一级提交任 务,所以在 k级流水线中只能选择完成任务所需时间最长的那级流水线的时间作为整条流水线的 周期。此例虽然选取 12s为整条流水线的周期,但这样又带来了另一个问题,在每个周期内车轮 流水线与组装流水线为了等待车门流水线而造成了一定时间上的闲置。具体到 CPU 内部的流水 线也同样存在这个问题。当然我们可以通过合理分配流水线和增加缓存来缓解此问题,但缓存的 增加必然导致信号的延迟和高功耗高发热量! 好,我们回到上例,厂商打算在此 3级流水线上生产 6辆汽车,流水线周期为 12s,模拟流程如图 2,从图 2上可以看到,6辆汽车 一共花费了 9-1=8个周期,此结果也印证了上文 n个任务总共需花费“k+(n-1)”个周期的 公式。此 3级流水线生产 6辆汽车一共花费的时间是 12s*8=96s。 第 2页 共 3页 一段时间后,厂商决定进行技术改革,又把车轮生产线、车门生产线以及组装生产线进一步 细分,如图 3所示,把流水线的级数由 3条增至 6条,改革后的 6级流水线周期也从 12s缩短至 6s(由于细分了各级流水线,所以在此假设每级流水线周期也由原来的 8s,12s,10s减半,所以 新流水线的周期选取为 12s/2=6s),新流水线生产 6辆汽车所花费的周期为 12-1=11,所花费 的整体时间为 11*6=66s,相对于上例的 96s 提升了 30s。至此,我们已从理论上和实际上找到 了增加流水线级数确实可以提高工作效率的依据,相信大家已经对流水线的知识有了更进一步的 了解。这里还要对一些问题进一步说明。 2、流水线级数与频率的关系 结合上文对周期设置的解释和两个例子的对比,大家可以发现,只要进一步细分流水线增加 其级数,就可以使整条流水线采用更短的周期工作。我们又知道频率等于周期的倒数,由此我们 得出结论,增加流水线级数有利于提高各级流水线之间交换任务的频率,也就是有利于提高 CPU 的主频。 3、增加流水线级数为什么能提升工作效率 我们对车辆 1进行跟踪测试,它在 3级流水线上的生产时间为 8s+12s+10s=30s,同样是车 辆 1在 6级流水线上的生产时间为 4s+4s+6s+6s+5s+5s=30s,由此我们发现无论对于几级流 水线,单个产品的生产时间并没有因流水线级数而改变,既然这样那流水线是通过什么方式提升 工作效率的?图 4模拟的是不采用流水线时一辆汽车的生产流程,由 3个工人分别负责完成 3个 任务,从图中可以明显看到在每段时间内只有一个工人在工作,其余两个处于闲置状态,对比前 文中的两个图示,我们发现流水线正是充分利用了这段闲置的时间,所以才在单位时间内提升了 效率。而且随着流水线级数的增多,对闲置时间的利用也就越充分。 第 3页 共 3页 4、正确看待 CPU流水线与频率的提升 CPU 流水线与工厂流水线都具有流水线的一些共性,但 CPU 流水线与工厂流水线也具有一 些区别,在本文中我们已得到增加流水线级数有助于提升 CPU主频的结论,那为什么 Intel的贝 瑞特大叔还要放弃冲击 4GHz的呢?比方说,我们知道任何一种产品的生产都存在良品率高 低这个问题,就如本文所举的例子,如果在汽车的生产过程中轮胎流水线上的一个轮胎报废了, 这时我们可以在轮胎流水线的末端增加一个任务,然后用本属于第 2辆车的轮胎组装给第 1辆车, 依此类推,这样对整条流水线效率的影响很小,而且对于同一型号的汽车只要使用的是相应型号 的轮胎就行,不用计较具体使用的是哪个轮胎。但具体到 CPU 流水线,问题就不这么简单了。 CPU的工作机理可以大致分为指令寻址,指令分析,指令执行,以及指令上报。假设一旦指令流 水线中的某个指令的地址出错,是无法像换轮胎那样用另一个地址来顶替的,因为每条指令对应 唯一的一个地址,而且一些指令的执行是具有前后次序的,所以并不能简单地对出错的指令进行 摒弃作罢,必须从整条流水线上退回重来,对于 Intel拥有冗长的 31级流水线的处理器来说,这 种情况的发生将大大拖累 CPU的工作效率。虽然 Intel不断通过改进分支预测技术以及增大缓存 来改善此问题,但效果并没有达到理想状态,反而由于缓存的增加和漏电流控制不力,铸造了具 有火热胸膛的 Prescott。 这里只是向大家介绍了 CPU 流水线与频率的关系。其实提高流水线还有很多本文尚未提及 的障碍。增加 CPU 流水线并不容易,不是想提高就能提高的问题,篇幅有限,这些内容不能在 这里一一探讨了。总之,希望本文能为大家理解 CPU的流水线与频率的关系提供一些帮助。
/
本文档为【CPU流水线与CPU频率】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索