“计算机系统结构”电子教案课.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“计算机系统结构”电子教案课

3.4 RISC的基本流水线(P70) 下面是RISC的指令流水线简化结构图(5段结构),每段1个时钟周期。 (1)流水运行方式 RISC流水线5段功能的初步定义(时钟周期图Cycle) IF ID EX Mem WB IF ID EX Mem WB 指令K 指令K+1 取指 PC+4 译码 取数 计算 判断 访存 送PC 写回 (2)顺序运行方式 IF ID EX Mem WB IF ID EX Mem WB 指令K 指令K+1 取指 译码 取数 计算 判断 访存 送PC 写回 RISC流水线5段功能的初步定义 为了简单,先考虑顺序处理方式下的工作过程(即不考虑并行处理多条指令): (1) IF —— 取指周期(后来称IM) (2) ID —— 指令译码/读寄存器周期 (3) EX —— 执行/地址计算周期 做4种操作之一:存储器地址计算、寄存器/寄存器ALU运算、寄存器/立即数ALU运算、分支地址计算与条件判断。 (4) MEM —— 存储器访问/分支完成周期(ALU指令不需要)(后来称DM) 做2种操作之一:存储器访问、根据分支条件对PC赋值。 (5) WB —— 写回寄存器周期(分支指令不需要) 做2种操作之一:ALU结果写寄存器、LOAD结果写寄存器。 总周期数 = n × CPI(ALU和分支指令的CPI=4,其它指令的CPI=5) 3.4.1 用顺序方式实现RISC详解   按流水方式运行需要解决的问题:   存储周期———每个时钟周期都至少访问一次存储器,所以存储器件的访问周期必须缩短为顺序方式的1/5(流水线必须配用高速存储系统)。   冲突———①前面指令在MEM修改PC与后面指令在IF做PC+4发生PC冲突; ②前面指令在MEM访存与后面指令在IF取指发生存储器冲突; ③前面指令在WB写寄存器与后面指令在ID读寄存器发生寄存器冲突。(下页图)   对策———①用多路器选择PC+4送PC,还是ALUout送PC;②IF改成访问指令存储器IM,MEM改成访问数据存储器DM,以避免存储器冲突;或者虽共用一个存储器,但是分别连到指令Cache、数据Cache; ③寄存器冲突留待下文解决。   寄存器文件——每条指令启动后就被分配一组暂存器,称为“寄存器文件”,用以保存自己的临时数据,如NPC、IR等,它们伴随指令逐段推进,直至指令结束。在没有操作的段,寄存器文件被直接拷贝到下一段。(P119)   总周期数 = n + m – 1 + stall总数(无相关、无冲突情况下) 3.5 基本的MIPS流水线(P87) (1)3种冲突 流水方式运行带来的结构冲突 IF ID EX Mem WB IF ID EX Mem WB 指令K 指令K+1 译码 取数 访存 送PC 写回 (2)存储器哈佛结构、分离Cache结构 CPU 指令K+3 指令K IF ID EX Mem WB 指令K+2 IF ID EX Mem WB 指令K+3 取指 PC+4 指令存储器 数据存储器 CPU 指令Cache 数据Cache 内存 3.5.1 MIPS的一种简单实现 3.4.2 相关与冲突(P72) 相关dependence :一条指令依赖另一条指令的结果。 冲突hazard :由于相关或其它原因,一条指令暂时停下来等待另一条指令执行,不然就会产生错误的结果(与程序员预期的不一致)。 相关的分类 1. 数据相关:前面指令的结果作为后面指令的操作数(真数据相关) 2. 名相关:两条指令使用了同一个寄存器或存储单元,并非要传送数据 3. 控制相关:分支指令等改变PC值的情况 反相关 名相关 输出相关 冲突的分类 1. 结构冲突:即资源争用 写后读:RAW 2. 数据冲突:由数据相关、或者名相关造成 写后写:WAW 3. 控制冲突:由控制相关造成 读后写:WAR 实例:P73~P83;多种相关、冲突演示程序Lesson-5.s 3种相关与3种冲突的关系 ??? 数据相关 名相关 控制相关 3种相关 结构冲突 数据冲突 控制冲突 3种冲突 原因 结果 冲突的通用处理方法——暂停 冲突的通用处理方法:为了不出现错误结果,相关检测硬件会自动插入所需个数的暂停周期stall(又称为“流水

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档