计算机组成原理第五章第6讲 流水CPUppt课件.ppt
流水CPU,5.6 流水CPU,人们追求计算机有很高的处理速率促使计算机性能提高的因素除了提高器件性能外还有哪些方式呢?,回顾存储器性能提升方法,解决途径硬件工艺上的提升并行工作双端口访问和多模块交叉空间并行和时间并行采用分层的存储系统Cache(第6节)虚拟存储系统(第9章),5.6 流水CPU,5.6.1并行处理技术5.6.2流水CPU的结构5.6.3流水线中的主要问题5.6.4 Pentium CPU,5.6.1并行处理技术,并行性(Parrelism)概念问题中具有可以同时进行运算或操作的特性例:在相同时延的条件下,用n位运算器进行n位并行运算速度几乎是一位运算器进行n位串行运算的n倍(狭义)广义含义只要在同一时刻(同时性)或在同一时间间隔内(并发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相互重叠,都体现了并行性。,5.6.1并行处理技术,三种形式时间并行(重叠):让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度,实现方式就是采用流水处理部件空间并行(资源重复):以数量取胜它能真正的体现同时性LSI和VLSI为其提供了技术保证时间+空间并行Pentium中采用了超标量流水技术,5.6.2流水CPU的结构,流水计算机的系统组成存储器体系:主存采用多体交叉存储器;Cache流水方式CPU:指令部件、指令队列、执行部件指令流水线指令队列:FIFO执行部件:可以由多个采用流水线方式构成的算术逻辑部件构成,可以将定点运算部件和浮点运算部件分开。,第一个流水:多体交叉存储,第二个流水:CPU流水,第三个流水:运算器流水,5.6.2流水CPU的结构,流水线CPU时空图IF(Instruction Fetch取指) ID(Instruction Decode指令译码)EX(Execution执行) WB(Write Back写回),5.6.2流水CPU的结构,非流水线时空图,5.6.2流水CPU的结构,标量流水线时空图,5.6.2流水CPU的结构,超标量流水线时空图,5.6.2流水CPU的结构,超标量流水具有两条以上的指令流水线上图中流水线满载时,每一个时钟周期可以执行2条指令采用时间和空间并行技术PS. 此时钟周期不同于彼“时钟周期”一个是流水理论中的概念一个是指令周期、CPU周期中的概念,5.6.2流水CPU的结构,流水线(Pipelining)的分类按种类分为指令流水线:指令步骤并行算术流水线:运算步骤并行存储流水线:多体交叉并行访存处理机流水线(宏流水线):处理机级联,5.6.3流水线中的主要问题,流水瓶颈问题(流水线中有速度慢的段)再分成几个段用资源重复的方法也可以解决断流问题因为出现了相关冲突,5.6.3流水线中的主要问题,1.资源相关:多条指令进入流水线后在同一时钟周期内争用同一功能部件。解决办法:后边指令拖一拍再推进;或增设一个存储部件,指令数据分存。,取指 译码 执行 访存 写回,5.6.3流水线中的主要问题,2.数据相关,看例子例:两条指令发生数据相关冲突RAW(Read After Write)写后读ADDR1,R2,R3R2+R3-R1SUBR4,R1,R5R1-R5-R4ANDR6,R1,R7R1R7-R6,5.6.3流水线中的主要问题,数据相关RAW(Read After Write)写后读后面指令用到前面指令所写的数据WAR(Write After Read)读后写后面指令覆盖前面指令所读的单元WAW(Write After Write)写后写两条指令写同一个单元解决办法:可以推后后继指令对相关单元的读操作设置相关的直接通路(Forwarding),5.6.3流水线中的主要问题,3.控制相关引起原因:转移指令当前指令有跳转,但流水已经开启后续指令处理过程。解决办法1:延迟转移法,让跳转的指令接在最后流水入口解决方法2:转移预测法,用硬件预测将来的行为,提前让转移指令进流水。,【例4】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据相关。1)I1 ADD R1,R2,R3;(R2)+(R3)-R1 I2 SUB R4,R1,R5;(R1)-(R5)-R42)I3 STO M(x),R3;(R3)-M(x) M(x)是存储器单元 I4 ADD R3,R4,R5;(R4)+(R5)-R33)I5 MUL R3,R1,R2;(R1)(R2)-R3 I6 ADD R3,R4,R5;(R4)+(R5)-R3,写后读,读后写,写后写,解:第1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW相关。第2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR相关。第3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错误,发生WAW相关。,5.6.4 Pentium CPU,Pentium CPU (第一代)1989年初0.8um工艺,310万晶体管有60M和66MHz外频两种版本5V电压,功耗20W超标量流水线结构486有一条流水线Pentium有U和V两条指令流水线U流水线可以执行所有的整数和浮点指令V流水线可以执行简单的整数和FXCH浮点指令双重分离式Cache,减少了等待和搬移数据时间32位CPU,外部数据总线宽度为64位,外部地址总线宽度为36位,5.6.4 Pentium CPU,非固定长度指令格式,9种寻址方式,191条指令,兼具有RISC和CISC特性,不过我们还是将其看成CISCSL电源管理技术提供了更加灵活的存储器寻址结构,可以支持传统的4k大小的页面,也可以支持4M大小的页面动态转移预测技术Pentium结构图MESI(Modified Exclusion Share Invalid)BTB(Branch Target Buffer)TLB(Translation Lookaside Buffer),