第3章流水线技术张晨刘依www.Arch365.net微信公众号.ppt

第3章流水线技术张晨刘依www.Arch365.net微信公众号.ppt

  1. 1、本文档共163页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章流水线技术张晨刘依www.Arch365.net微信公众号

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.5 向量处理机 例3.4 设A和B是长度为N的向量,考虑在Cray-1向量处理器上实现以下的循环操作: DO 10 I = 1,N 10 A(I)= 5.0 * B(I) + C 3.5 向量处理机 S1 ← 5.0 ;将常数5.0送入标量寄存器S1 S2 ← 1.0 ;将常数1.0送入标量寄存器S2 VL ← N ;在向量长度寄存器VL中设置向量长度N V0 ← B ;从存储器中将向量B读入向量寄存器V0 V1 ← S1 × V0 ;向量B中的每个元素分别和常数S1相乘 V2 ← S2 + V1 ;向量V1中的每个元素分别和常数S2 相加 A ← V2 ;将计算结果从向量寄存器V2存入存储 器的向量A 当N ≤64时,可以用以下指令序列: 3.5 向量处理机 当N >64时,就需要进行分段开采。 循环次数K : 余数L: 3.5 向量处理机 S1 ← 5.0 ;将常数5.0送入标量寄存器S1 S2 ← 1.0 ;将常数1.0送入标量寄存器S2 VL ← L ;在向量长度寄存器VL中设置向量长度L V0 ← B ;从存储器中将向量B[0..L-1]读入向量 ; 寄存器V0 V1 ← S1 * V0 ;向量B中的每个元素分别和常数S1相乘 V2 ← S2 + V1 ;向量V1中的每个元素分别和常数S2相加 A ← V2 ;将计算结果从向量寄存器V2存入存储器 ;的向量A[0..L-1] 处理余 数部分, 计算L 个元素 3.5 向量处理机 For (I=0 to K-1) { V0 ← B ;从存储器中将向量B[L+I*64..L+I*64+63] ;读入向量寄存器V0 V1 ← S1 * V0 ;向量B中的每个元素分别和常数S1 ;相乘; V2 ← S2 + V1 ;向量V1中的每个元素分别和常数S2 ;相加 A ← V2 ;将计算结果V2存入存储器的向量 ; A[L+I*64… L+I*64+63] } 循环 K次, 分段 处理 3.5 向量处理机 采用多处理机系统 许多新型向量处理机系统采用了多处理机系统结构。例如: CRAY-2 包含了4个向量处理机 浮点运算速度最高可达1800MFLOPS CRAY Y-MP、C90 最多可包含16个向量处理机 * * * * * * * * * * * * * * * * * * * * * * * * * * 3.4 流水线的实现 第5个多路器:从MEM/WB回传至通用寄存器组的写入 地址应该是从MEM/WB.IR[rd] 和MEM/WB.IR[rt]中选 一个。 寄存器-寄存器型ALU指令:选择MEM/WB.IR[rd] ; 寄存器-立即数型ALU指令和load指令:选择MEM/WB.IR[rt] 。 解决数据冲突的问题 所有的数据冲突均可以在ID段检测到。 如果存在数据冲突,就在相应的指令流出ID段之 前将之暂停。 完成该工作的硬件称为流水线的互锁机制。 3.4 流水线的实现 在ID段确定需要什么样的定向,并设置相应的控制。 降低流水线的硬件复杂度。不必挂起已经改变 了机器状态的指令) 也可以在使用操作数的那个时钟周期的开始检测冲突 和确定必需的定向。 检测冲突是通过比较寄存器地址是否相等来实现的。 举例: load互锁 由于使用load的结果而引起的流水线互锁称为load互锁。 3.4 流水线的实现 ID/EX中的操作码 (ID/EX.IR[op]) IF/ID中的操作码 (IF/ID.IR[op]) 比较的操作数字段 load RR ALU ID/EX.IR[rt

您可能关注的文档

文档评论(0)

zhuanqmf01 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档