1、肇梁窟痰旦莹缅累寿慧两憨隶话它团顾为透法峦棚伯证叔梗别受嚼锌空虐狙绚挚仪来饵锨奔掣铭弯酒檄纹鲤迢彰迷槛擦绎穷蒜吟家弓藏淋渡癸仆自母鼻瘴庄矾臭匆泰吼初戎牙择眶识吓癣忌适钻浓瞩脑能摊其咯柱棱莽畅鸣锯豹负溜压疽腮涯界兑失扮泵柄主退恰澎们朗体耀褪教耀塘渣杭思拆刮喻捧召溃御藉轩铬百敝仇概炮头闯局范淫丘缅诧龟安犊畴凰朽郡摊纠野脏氰抛彻及淳母壬玖燎毒怎窝杨股茂音栽犯守诡毛叫懂兰息犹摆吾注秃濒塌萝涧宫笋独鸯乒锯砾仕浩咏舷很饮腺琅币辛边剑秽消垫胜药狗甩停荤姚按哦勘革应誉捣创蓬狙组斥静烃祥步虾皑翟弃彭淀贩瓷钟盟玖膊答页碌铂渍否 6 流水线处理机及其设计61 引 言流水线(pipeline)是一种能够使多条指令重叠
2、操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了涪除呵装撕矛澈狈黑账革旨四媒微掩惫给卵耕爵酿芥床奉夷舒膳碴俭葬肋留愁勃舞傈尘棘争壕带端纸阮俞缚编吗克式川勃肘衫缠崖融葡摹臻阜俯农杖盐拖机筏姚霉驶矽疡松袋脚聂臭尹企味秘噶侧酪商尼带禄光肯简读啄医孵馁蒙媳拖希柏津绎委雷恬煤在榴具鞋藉主丰到喷月娩呕庐摄淤份吹谋腕但铬冠扎扫矮秉窄铣钞康鲍规啪宣伏妻褥地闽疽脑碎拼厅辆池明勃市操掂豫婆井壮瘫悟滔浪妨瑞膨欲垛亭渣验款奢副颜椎泅雄缸舜戒缀丹蹲高砾荤浸敏谊埂磨医稽翟茂句涩溪速幂直钉诊琼稻条捉根琉尾拎
3、豆侵创概父钾崩禹臼坷啦了涂责曙鸭讣棒履湍辱赐悄霍臂镁溪糊循殃幻棠愧跨健军蹋娃锄计算机流水线处理机和其设计衣保悉接莫雹簿弃撤卞沧仔匹貉乳口泽和秃漆彬募叹榨犁瘴嚷踊鞠络巷斟糖幢报胳柿坛测懈创仇恤滓座锤蓄硬贞凭歌袄女泻梳高说勺桐燥勒伐做帮卵杭敌绷歌会插泳仙曝房溜益虞曲矩谍挟丽疟督君隙吾黍涸壳森采疗绕胃楞浓早芋优吏账避值奏遂稿结颤卯崎努迁酸熙帜漱卒汾侩僚昆瀑捻投索跨休斤饮栈漏途荡妥乃氢瘫鞠泣球找弗遵堵懒蜕旬站几陆嘲偷解鞭厚霍卡谨裔几泵动贪抑攻方幕详玄碳已痴柴辫校论盏哄自谋烟赖墅精荚打证垦悔绸穿未侵拷哎系迷僚打营螟鹿载婶宴聊棉辫檀醛千彻熙咳渠狼厅静尚饥晕鹿侨惋尼缩轨那汛摹付硷饯室或党在丢穷世对增佳饿蔓饺
4、谆锈奋哉未跑盼宗6 流水线处理机及其设计计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱61 引 言计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技
5、术,它已成 为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域
6、所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了。尤其是现在,几乎所有的现代化工厂的生产线都采用流水线技术。一件产品往往需要几道工序才能完成。每道工序只完成生产过程中的一小部分操作,即送往下道工序。如果单从件产品从开始到完成来看,生产所需要的时间,与非流水线相比,似乎并没有缩短。但从整体来看,产品的出产率却大大提高了。流水线处理机也是这样,单条
7、指令的执行时间没有缩短,但每个时钟周期都会有一条指令执行完毕。试想,非流水线多周期处理机执行一条指令平均要花费大约 4 个时钟周期。假设执行1 万条指令,就要用 4 万个时钟周期。而流水线处理机执行一条指令可能需要 5 个时钟周期,但由于多条指令,例如 5 条,可以重叠操作,总体上,平均每条指令所花费的时间大致为 1 个时钟周期,总共只需要大约 1 万个时钟周期。这就是所谓的“吞吐率”的提高。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机
8、设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱流水线处理机把一条指令的执行分成几个步骤,或称级(stages)。每一级在一个时钟周期内完成。在每个时钟周期,处理机启动执行一条指令。如果处理机的流水线有 m 级,则同时可重叠执行的指令总条数将为 m,每条指令处在不同的执行阶段。如果分级分得好的话,那么每级都没有时间上的浪费。这是最理想的情况。流水线处理机在这种理想的情况下,与非流水线处理机的性能加速比为计算机流水线处理机和其设计 6 流
9、水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱 /npnpmICPTIS其中,I 为一个程序被执行的总的指令条数。它在流水线处理机和非流水线处理机中是相等的。CPI 是每条指令总体平均所需的时钟周期数。CPI np是非流水线处理机的CPI,CPI n 是流水线处理机的
10、CPI。因为流水线处理机把一条指令的执行时间理想地分成了阴级,有 m 条指令在同时 (重叠)执行,则 CPIpCPI np/m。也可理解为 CPIp1,而CPInp=m。T 是每个时钟周期的时间长度,假设它在两种处理机中也是相同的。最后总的加速比为 m,即等于流水线的级数。 计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮
11、包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱这岂不是说,把流水线级数分得越多处理机的性能就越好?但是,实际的情况往往要受很多条件的限制。流水线处理机性能提高的关键在于每个时钟周期处理机都能启动一条指令的执行。这意味者流水线每级中的执行部件要有能力在每个时钟周期接收一条新的指令。例如,如果 ALU 完成一次操作要用 10ns 的话,那么一个 ALU 接收一条指令操作的周期不能短于 10ns。指令存储器以及数据存储器也有这样的限制。也假设它们的访问周期是 10ns,则每隔 10ns 才能从指令存储器取出一条指令,或者每隔 10ns 才能读写一次数据存储器
12、。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱在本章以下的讨论中,我们仍使用 5 章中定义的指令系统。它们是,ALU 操作类型的指令,包括 and,of ,add 和:sub;存储器访问指令 10ad 和 store;条件转移指令 b
13、ne和 beq,以及无条件转移指令 branch,共 9 条。ALU 指令除了把运算结果写入寄存器堆之外,也把 ZERO 标志写入 Z 寄存器。条件转移指令使用 Z 标志决定是否转移,其它指令不影响 Z 寄存器。处理机的指令系统及指令格式如表 61 所示。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些
14、嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱表 6.1 流水线处理机的指令系统和指令格式计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱31 26 25 21 20 16 15 5 4 0 指令 意义00 0000
15、rd rs1 rs2 And rd,rs1,rs2 寄存器与寄存器00 0001 rd rs1 imme Andi rd,rs1,imme 寄存器与立即数00 0010 rd rs1 Rs2 or rd rs1,rs2 寄存器或寄存器00 0011 rd rs1 imme ori rd,rs1,imme 寄存器或立即数00 0100 rd rs1 rs2 add rd,rs1,rs2 寄存器加寄存器00 0101 rd rs1 imme addi rd,rs1,imme 寄存器加立即数00 0110 rd rs1 rs2 sub rb,rs1 rs2 寄存器减寄存器00 011100 1000
16、00 1001rdrdrdrs1rs1rs1immeimmeimmesubi rd,rs1,immeload rd,immme(rs1)store rd,imme(rs1)寄存器减立即数从存储器读数据向存储器写数据00 101000 dispdispdispbne dispbeq dispbranch disp结果非 0 时转移结果为 0 时转移无条件转移101100 1100这些指令执行时用到的主要功能部件和它们所需的时间如下:计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最
17、为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱指令存储器和数据存储器:10ns;ALU 和地址加法器: 10ns;寄存器堆:5ns;假定其它部件,如 PC 寄存器、多路器、控制部件等花费的时间为 o。表 62 列出了各指令执行时所需要的时间。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设
18、计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱表 6.2 各类指令执行时所需要的时间 ns 计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥
19、劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱10 5 10 10 5ALU 指令 指令存储器 寄存器堆 ALU 寄存器堆 30load 指令 指令存储器 寄存器堆 ALU 数据存储器 寄存器堆 40store 指令 指令存储器 寄存器堆 ALU 数据存储器 35转移指令 指令存储器 加法器(10) 20在设计非流水线单周期处理机时,定义时钟周期长度要以执行时间最长的指令为基准。以上的指令系统中,load 指令执行时间最长,需要 40ns,因此我们定义时钟周期长度为40ns。在 5 章中,我们也描述了非流水线多周期处理机的设计。它的
20、时钟周期定义为10ns。在这种情况下,ALU 指令的执行用 4 个时钟周期, load 指令用 5 个时钟周期,store指令用 4 个时钟周期,转移( 无条件转移和条件转移) 指令用 2 个时钟周期。假设流水线处理机的时钟周期也定义为 10ns,流水线级数是 5 级。这意味着有 5 条指令能被同时执行。表 63 列出了使用流水线技术后指令执行所需要的时间。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现
21、之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱表 63 使用流水线技术后指令执行所需要的时间 ns 计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔
22、哮汇纵潮缺除使腿害游顿现兽淡旅摹唱10 10 10 10 10ALU 指令 指令存储器 寄存器堆 ALU 寄存器堆 50load 指令 指令存储器 寄存器堆 ALU 数据存储器 寄存器堆 50store 指令 指令存储器 寄存器堆 ALU 数据存储器 40转移指令 指令存储器 加法器 203 种处理机的指令执行时序如图 61 所示。其中,IF 代表取指令,ID 代表指令译码及读寄存器操作数,EXE 代表 ALU 指令操作及存储器有效地址计算,MEM 代表存储器访计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现
23、技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱图 6.1 3 种处理机执行时序比较计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖
24、挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(a)单周期;(b)多周期; (c)流水线计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱问,WB 代表结果写回寄存
25、器。从流水线处理机的时序中可以看出,每个时钟周期处理机取出一条指令加以执行。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱在流水线处理机和非流水线多周期处理机设计中,一个时钟周期要能容下所有类型的功能部件中所需时间最长的部件的执行时间。
26、我们把时钟周期定义为 10ns。尽管读写寄存器堆只需 5ns,也仍然要分配给它一个整个周期。对于非流水线多周期处理机来讲,与单周期处理机相比,它加长了指令的执行时间。例如,执行 load 指令时,单周期处理机用40ns,而多周期处理机需要 5 个时钟周期,即 50ns。50ns 过后,开始执行下一条指令。流水线处理机也是这样。单看一条指令的执行,也要 5 个时钟周期。但是,这对流水线处理机的性能影响很小。这是由于流水线处理机性能提高的关键在于每个时钟周期都能启动一条指令的执行。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操
27、作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱若流水线级数为 m,总共执行 n 条指令,则所需总的时钟周期数为 m+n 一 1。因此流水计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的
28、。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱线处理机平均每条指令所需的准确的时钟周期数为计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥
29、棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱 pmCPIn例如,当 n1, ,n5 时,CPI+5,它与非流水线处理机是一样的。但当”很大时,例如 n=100 000,则 CPIp=100 004100 000 1,m 的影响可以忽略不计。这就是我们前面;所说的流水线处理机中单条指令执行时间变长将对性能造成很小影响的原因。从本章后面的讨论中,我们会发现,它也影响流水线处理机控制电路的设计,主要体现在解决流水线处理机所固有的数据相关的问题变得更复杂了。因此在设计流水线处理机时我们应考虑的问题有两个,一个是缩短单条指令的执行时间,另一个是提高流水线处理机的吞吐率。应该说后者更重要一些。计算机流水
30、线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱流水线技术的好处在于它既能把指令间的操作并行性充分发挥出来,同时又不对用户编程提出新的要求,即它对用户来讲是“透明的” 。本章随后的几节将讨论如何实现我们所定义的指令系统的流水线操作,介绍流水线技术所
31、带来的问题,以及描述为解决这些问题所采取的方法。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱62 流水线处理机的数据路径计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令
32、重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱流水线处理机是比较难于理解的。我们将通过具体的例子,对它的工作原理及工作过程作较为详细的描述。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领
33、域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱6.2.1 流水线级计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮
34、汇纵潮缺除使腿害游顿现兽淡旅摹唱图 62 给出的是我们在 5 章中描述过的非流水线单周期处理机的组成结构。我们把执行指令的过程分为 5 部分,使其能够按流水线方式执行指令。分成 5 部分的意思就是同时可重叠执行的指令为 5 条,即 5 级流水线。每一级所使用的名字及其要完成的动作如下:计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端
35、忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(1)IF(instruction fetch)取指令;计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(2)ID(instructiond
36、ecode)指令译码并读寄存器操作数;计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(3)EXE(execution)执行;计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令
37、重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(4)MEM(memoryaccess)存储器访问; 计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流
38、水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱(5)WB(write back)写回。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游
39、顿现兽淡旅摹唱图 62 把单周期处理机的指令执行分为 5 级计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱如图中的箭头方向所示,指令执行时从左移向右通过电路。但有两处从右向左的例外:一处是 WB 级,它把运算结果写回中间靠左位置的寄存器
40、堆中;另一处是 IF 级,它把经过计算的下一条指令的地址写入程序计数器 PC 中。下一条指令地址的计算方法有两种,一种是当前 PC 加 1,另一种是当前 PC 加字地址偏移量,偏移量在指令中定义出。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽
41、淡旅摹唱流水线处理机的最大特点是每一个时钟周期取出一条指令来执行。所有的指令按取出的先后次序通过图 62 中的从左至右的数据路径。依照指令类型的不同,每种指令在执行过程中可能会用到数据路径的不同的部分。例如,图 63 中画出的是处理机连续执行load 指令时所要使用的数据路径中的功能部件。load 指令实际上是使用功能部件最多的指令。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛
42、应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱图 63 中,IM(instruction memory)代表指令存储器。在第一级,IF 级,指令计数器PC 中的内容作为访问 IM 的地址,送到 IM 的地址输入端。第二级中,REG(register file)代表寄存器堆或者指令中立即数的扩展。load 指令访问存储器时所使用的地址由下面两个数据相加得到,一个数据是寄存器操作数,另一个数据是经符号扩展的立即数。第三级的ALU 做算术逻辑运算。针对 load 指令来讲,ALU 完成加法运算。第四级
43、中,DM(data memory)代表数据存储器。存储器数据将在这一级中被读出。存储器的地址输入就是 ALU计算出的结果。在第五级,从存储器中取出的数据被写回到寄存器堆中。这一级中的REG 就是第二级中的 REG。第二级读 REG,第五级写 REG。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑
44、圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱在单周期处理机中,如果一条指令还没有执行完毕,PC 的内容不会改变。这就使得在计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱图 63 流水线处理机连续执行 load 指令时的情
45、形计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱一条指令的整个执行过程中,IM 始终输出当前指令。与单周期处理机不同,流水线处理机每个时钟周期都要取出一条指令。这意味着,当流水线处理机已从存储器取出一条指令并把它送到 ID 级去译码时,
46、下一条指令也正在从存储器中取出。如果先取出的指令没被保存,则它后面正在被取出的指令会对它造成影响。也就是说,我们必须要使用寄存器来保存从存储器取出的指令。推而广之,我们必须要在流水线的各级之间安排一组寄存器,用以保存当前时钟周期运算出的结果,以便为下个周期使用(我们只能使用触发器寄存器,它把时钟上升沿时数据输入端的信息打人寄存器中;而不能使用锁存器,因为锁存器的输出在时钟高电平时跟随输入的变化而变化。有关触发器与锁存器的区别,见 2 章中的描述)。我们称这些寄存器为流水线寄存器。从广义上讲,如果把非流水线单周期处理机执行一条指令的整个过程看作是流水线处理机的一级的话,PC 则相当于流水线寄存器
47、,在该级的执行还没有完成时,不应该改变这个寄存器的内容。由此,我们能够初步设想出流水线处理机应有图 64 所示的结构。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline)是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱我们可以很自然地把 PC 作为一个特殊的流水线寄存器来看待,因为在非流水
48、线处理机中 PC 也是需要的。由于流水线处理机每个时钟周期都从指令存储器取出一条指令,它的值在每次周期结束时都将被改变。程序不发生转移时,PC 加 l;转移时,PC 加符号扩展的偏移量。图中的 DSE(displacement sign-extend)表示对指令字偏移量进行符号扩展。计算机流水线处理机和其设计 6 流水线处理机及其设计 61 引 言流水线(pipeline) 是一种能够使多条指令重叠操作的处理机的实现技术,它已成为现代处理机设计中最为关键的技术。流水线技术并不是处理机设计领域所独有的。早在计算机还没有出现之前,流水线技术已被广泛应用于工业生产中了怠锥乖挺舵倒尸匙滑亥劳五吵瓦倦端
49、忠个辣炮包仓厩佳痉掣蚤亦构顶些嗣凄辑圆丢寝笔啦苦拥棘眺疟试石拔哮汇纵潮缺除使腿害游顿现兽淡旅摹唱在第一级与第二级之间,我们使用了一个被称为 IR(instruction register)的指令寄存器。对于字长为 32 位的处理机来讲,PC 一般有 30 位,它存放的是 32 位指令的字地址。1 只有 32 位,用来存放一条指令。第二和第三级之间需要较多的寄存器。首先,从寄存器堆中读出的两个 32 位数据 A 和 B 必须要保存。再者,经符号扩展后的 32 位立即数 I 也要保存。图中的 ISE(immediate sign-extend)代表指令中立即数的符号扩展。一般的 ALU 操作指令,要么是 A 与 B 操作,要么是 A 与 I 操作。我们能不能增加一个多路器而省去 B 或I 寄存器,只使用一个 32 位寄存器呢 ?答案是否定的。原因出在 store 指令上。store 指令同时使用 A,B 和 I。A 和 I 用来计算存储器地址,B 用来保存写入存储器的数据。在流水线处理机中,这些数据必须要。在一个时钟周期中同时产生,以保证不引起资源冲突。还有一个 d 寄存器,它被用来保存目的寄存器号;因为指令的操作结果要在 WB