《计算机组成原理第五章-第6讲-流水cpu教案资料.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第五章-第6讲-流水cpu教案资料.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机组成原理第五章-第6讲-流水CPU回顾存储器性能提升方法解决途径l l硬件工艺上的提升硬件工艺上的提升l l并行工作并行工作 双端口访问和多模块交叉双端口访问和多模块交叉 空间并行和时间并行空间并行和时间并行l l采用分层的存储系统采用分层的存储系统 CacheCache(第(第6 6节)节)虚拟存储系统(第虚拟存储系统(第9 9章)章)5.6 流水CPU5.6.1并行处理技术5.6.2流水CPU的结构5.6.3流水线中的主要问题5.6.4 Pentium CPU5.6.1并行处理技术并行性(Parrelism)概念l l问题中具有可以同时进行运算或操作的特性问题中具有可以同时进行运算或
2、操作的特性l l例:在相同时延的条件下,用例:在相同时延的条件下,用n n位运算器位运算器进进行行n n位并行运算速度几乎是位并行运算速度几乎是一位运算器一位运算器进行进行n n位串行运算的位串行运算的n n倍(狭义)倍(狭义)广义含义l l只要在同一时刻(同时性)或在同一时间间只要在同一时刻(同时性)或在同一时间间隔内(并发性)完成两种或两种以上性质相隔内(并发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相互重叠,同或不同的工作,他们在时间上相互重叠,都体现了并行性。都体现了并行性。5.6.1并行处理技术三种形式三种形式l l时间并行(重叠):让多个处理过程在时间上相互错时间并行
3、(重叠):让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,以加快硬开,轮流使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度,实现方式就是采用流水处理部件件周转而赢得速度,实现方式就是采用流水处理部件l l空间并行(资源重复):以数量取胜空间并行(资源重复):以数量取胜 它能真正的体现同时性它能真正的体现同时性 LSILSI和和VLSIVLSI为其提供了技术保证为其提供了技术保证l l时间时间+空间并行空间并行 PentiumPentium中采用了超标量流水技术中采用了超标量流水技术5.6.2流水CPU的结构流水计算机的系统组成流水计算机的系统组成l l存储器体系:主存采
4、用多体交叉存储器体系:主存采用多体交叉存储器;存储器;CacheCachel l流水方式流水方式CPUCPU:指令部件、指:指令部件、指令队列、执行部件令队列、执行部件 指令流水线指令流水线 指令队列:指令队列:FIFOFIFO 执行部件:可以由多个采用流执行部件:可以由多个采用流水线方式构成的算术逻辑部件水线方式构成的算术逻辑部件构成,可以将定点运算部件和构成,可以将定点运算部件和浮点运算部件分开。浮点运算部件分开。第一个流水:第一个流水:多体交叉存储多体交叉存储第二个流水:第二个流水:CPU流水流水第三个流水:第三个流水:运算器流水运算器流水5.6.2流水CPU的结构流水线CPU时空图l
5、lIFIF(Instruction FetchInstruction Fetch取指)取指)l lIDID(Instruction DecodeInstruction Decode指令译码)指令译码)l lEXEX(ExecutionExecution执行)执行)l lWBWB(Write BackWrite Back写回)写回)5.6.2流水CPU的结构非流水线时空图5.6.2流水CPU的结构标量流水线时空图5.6.2流水CPU的结构超标量流水线时空图5.6.2流水CPU的结构超标量流水l l具有两条以上的指令流水线具有两条以上的指令流水线l l上图中流水线满载时,每一个上图中流水线满载时,
6、每一个时钟周期时钟周期可以执可以执行行2 2条指令条指令l l采用时间和空间并行技术采用时间和空间并行技术PS.此时钟周期不同于彼“时钟周期”l l一个是流水理论中的概念一个是流水理论中的概念l l一个是指令周期、一个是指令周期、CPUCPU周期中的概念周期中的概念5.6.2流水CPU的结构流水线(Pipelining)的分类l l按种类分为按种类分为 指令流水线:指令步骤并行指令流水线:指令步骤并行 算术流水线:运算步骤并行算术流水线:运算步骤并行 存储流水线:多体交叉并行访存存储流水线:多体交叉并行访存 处理机流水线(宏流水线):处理机级联处理机流水线(宏流水线):处理机级联5.6.3流水
7、线中的主要问题流水瓶颈问题(流水线中有速度慢的段)l l再分成几个段再分成几个段l l用资源重复的方法也可以解决用资源重复的方法也可以解决断流问题l l因为出现了因为出现了相关冲突相关冲突5.6.3流水线中的主要问题1.资源相关:多条指令进入流水线后在同一时钟周期内争用同一功能部件。l l解决办法:后边指令拖一拍再推进;或增设一解决办法:后边指令拖一拍再推进;或增设一个存储部件,指令数据分存。个存储部件,指令数据分存。取指取指 译码译码 执行执行 访存访存 写回写回5.6.3流水线中的主要问题2.数据相关,看例子例:两条指令发生数据相关冲突RAW(Read After Write)写后读ADD
8、ADDR1,R1,R2,R2,R3R3R2+R3-R1R2+R3-R1SUBSUBR4,R4,R1,R1,R5R5R1-R5-R4R1-R5-R4ANDANDR6,R6,R1,R1,R7R7R1R7-R6R1R7-R6IDIDEXEXWB5.6.3流水线中的主要问题数据相关l lRAW(Read After Write)RAW(Read After Write)写后读写后读 后面指令用到前面指令所写的数据后面指令用到前面指令所写的数据l lWAR(Write After Read)WAR(Write After Read)读后写读后写 后面指令覆盖前面指令所读的单元后面指令覆盖前面指令所读的单
9、元l lWAW(Write After Write)WAW(Write After Write)写后写写后写 两条指令写同一个单元两条指令写同一个单元解决办法:l l可以推后后继指令对相关单元的读操作可以推后后继指令对相关单元的读操作l l设置相关的直接通路(设置相关的直接通路(ForwardingForwarding)5.6.3流水线中的主要问题3.控制相关l l引起原因:转移指令引起原因:转移指令 当前指令有跳转,但流水已经开启后续指令处理过当前指令有跳转,但流水已经开启后续指令处理过程。程。l l解决办法解决办法1 1:延迟转移法,让跳转的指令接在:延迟转移法,让跳转的指令接在最后流水入
10、口最后流水入口l l解决方法解决方法2 2:转移预测法,用硬件预测将来的:转移预测法,用硬件预测将来的行为,提前让转移指令进流水。行为,提前让转移指令进流水。【例【例4 4】流水线中有三类数据相关冲突:写后读】流水线中有三类数据相关冲突:写后读(RAWRAW)相关;读后写()相关;读后写(WARWAR)相关;写后写)相关;写后写(WAWWAW)相关。判断以下三组指令各存在哪种类型)相关。判断以下三组指令各存在哪种类型的数据相关。的数据相关。1 1)I1 ADD R1I1 ADD R1,R2R2,R3R3;(;(R2R2)+(R3R3)-R1-R1 I2 SUB R4 I2 SUB R4,R1R
11、1,R5R5;(;(R1R1)-(R5R5)-R4-R42 2)I3 STO MI3 STO M(x x),),R3R3;(;(R3R3)-M(x)-M(x)M(x)M(x)是存储器单元是存储器单元 I4 ADD R3 I4 ADD R3,R4R4,R5R5;(;(R4R4)+(R5R5)-R3-R33 3)I5 MUL R3I5 MUL R3,R1R1,R2R2;(;(R1R1)(R2R2)-R3-R3 I6 ADD R3 I6 ADD R3,R4R4,R5R5;(;(R4R4)+(R5R5)-R3-R3写后读写后读读后写读后写写后写写后写解:解:第第1 1)组指令中,)组指令中,I1I1指
12、令运算结果应先写入指令运算结果应先写入R1R1,然,然后在后在I2I2指令中读出指令中读出R1R1内容。由于内容。由于I2I2指令进入流水指令进入流水线,变成线,变成I2I2指令在指令在I1I1指令写入指令写入R1R1前就读出前就读出R1R1内容,内容,发生发生RAWRAW相关。相关。第第2 2)组指令中,)组指令中,I3I3指令应先读出指令应先读出R3R3内容并存入存内容并存入存储单元储单元MM(x x),然后在),然后在I4I4指令中将运算结果写入指令中将运算结果写入R3R3。但由于。但由于I4I4指令进入流水线,变成指令进入流水线,变成I4I4指令在指令在I3I3指令读出指令读出R3R3
13、内容前就写入内容前就写入R3R3,发生,发生WARWAR相关。相关。第第3 3)组指令中,如果)组指令中,如果I6I6指令的加法运算完成时间早指令的加法运算完成时间早于于I5I5指令的乘法运算时间,变成指令指令的乘法运算时间,变成指令I6I6在指令在指令I5I5写写入入R3R3前就写入前就写入R3R3,导致,导致R3R3的内容错误,发生的内容错误,发生WAWWAW相关。相关。5.6.4 Pentium CPUPentium CPU Pentium CPU(第一代)(第一代)l l19891989年初年初0.8um0.8um工艺,工艺,310310万晶体管万晶体管l l有有60M60M和和66M
14、Hz66MHz外频两种版本外频两种版本l l5V5V电压,功耗电压,功耗20W20Wl l超标量流水线结构超标量流水线结构 486486有一条流水线有一条流水线 PentiumPentium有有U U和和V V两条指令流水线两条指令流水线l lU U流水线可以执行所有的整数和浮点指令流水线可以执行所有的整数和浮点指令l lV V流水线可以执行简单的整数和流水线可以执行简单的整数和FXCHFXCH浮点指令浮点指令l l双重分离式双重分离式CacheCache,减少了等待和搬移数据时间,减少了等待和搬移数据时间l l3232位位CPUCPU,外部数据总线宽度为,外部数据总线宽度为6464位,外部地
15、址总线宽度为位,外部地址总线宽度为3636位位5.6.4 Pentium CPUl l非固定长度指令格式,非固定长度指令格式,9 9种寻址方式,种寻址方式,191191条指令,兼条指令,兼具有具有RISCRISC和和CISCCISC特性,不过我们还是将其看成特性,不过我们还是将其看成CISCCISCl lSLSL电源管理技术电源管理技术l l提供了更加灵活的存储器寻址结构,可以支持传统的提供了更加灵活的存储器寻址结构,可以支持传统的4k4k大小的页面,也可以支持大小的页面,也可以支持4M4M大小的页面大小的页面l l动态转移预测技术动态转移预测技术l lPentiumPentium结构图结构图 MESIMESI(Modified Exclusion Share InvalidModified Exclusion Share Invalid)BTBBTB(Branch Target BufferBranch Target Buffer)TLBTLB(Translation Lookaside BufferTranslation Lookaside Buffer)此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢
限制150内