流水线处理机_第1页
流水线处理机_第2页
流水线处理机_第3页
流水线处理机_第4页
流水线处理机_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理 2020年4月6日 流水线处理机 1 流水线处理机的基本概念2 流水线处理机的数据路径流水线级 流水线各级的操作3 流水线处理机的控制运算指令 访存指令 转移控制指令 流水线各级信号的产生 时序图 时空图4 流水线处理机的相关结构相关 数据相关 转移相关 本讲安排 将解决的主要问题 掌握流水线处理机的数据路径 建立指令流水线中指令如何重叠执行和流动 了解流水线工作原理以及相关问题 单周期处理机 单周期处理器的缺陷时钟周期时间长 对于装入指令 周期时间必须足够长 指令存储器访问时间 寄存器堆访问时间 ALU计算地址 数据存储器访问时间 寄存器访问时间对于其它指令 周期时间都比所需的要长很多 多周期处理机 单周期处理器的问题根源 对于最慢的指令 周期时间必须足够长解决方案 将指令处理分为更小的步骤 每个周期执行一步 而不是整个指令 周期时间 执行最长步所需的时间 使所有的步骤尽量具有相同的长度 这是多周期处理器的本质所在多周期处理器的优点 周期时间短 不同的指令需要不同的周期数来完成 装入指令需要5个周期 跳转仅仅需要3个周期 允许每条指令多次使用同一个功能部件 多周期实现概述 流水线的基本概念 什么是流水线 计算机中的流水线是把一个重复的过程分解为若干个子过程 每个子过程与其他子过程并行进行 由于这种工作方式与工厂中的生产流水线十分相似 因此称为流水线技术 从本质上讲 流水线技术是一种时间并行技术 计算机的各个部分几乎都可以采用流水线技术 1 指令的执行过程可以采用流水线 称为指令流水线 2 运算器中的操作部件 如浮点加法器 浮点乘法器等可以采用流水线 称为操作部件流水线 3 访问主存的部件可以采用访存部件流水线 多个计算机之间 通过存储器连接 也可以采用流水线 称为宏流水线 指令的重叠执行 1 顺序执行方式 2 一次重叠执行方式 3 二次重叠执行方式 流水线工作原理 1 基本思想 重叠延伸方式 使指令解释过程进一步细化 提高各部件的利用率 以提高指令执行速度 理想目标 完成任务的时间与操作处理过程无关 只与提供操作的速度有关 取指 译码 执行 访存 写回 输入 输出 IF ID EXE MEM WB s1 s2 s3 s4 s5 指令流水线举例 设 每段时间为 t 有m个段 每段间均可重叠 则 每间隔 t时间有一条指令流传出 流水线处理机的最大特点是每一个时针周期都能启动一条指令的执行 流水技术无助于减少单个任务的处理延迟 latency 但有助于提高整体工作负载的吞吐率 多个不同任务同时操作 使用不同资源 潜在加速比 流水线级数 流水线的速率受限于最慢的流水段 流水段的执行时间如果不均衡 那么加速比就会降低 开始填充流水线的时间和最后排放流水线的时间降低加速比 相关将导致流水线暂停 流水技术性 单周期 多周期与流水线 流水线处理机的数据路径 流水线各级的操作 IF级 1 取指令 2 计算下一条指令地址 流水线各级的操作 ID级 1 读寄存器堆中的操作数 2 符号扩展 3 控制器根据OPCODE产生控制信号 4 转移指令在ID级结束 流水线各级的操作 EXE级 1 ALU指令完成计算结果 2 LOAD STORE指令计算存储器地址 流水线各级的操作 MEM级 2 LOAD STORE指令访问存储器 LOAD指令读操作 STORE指令写操作 STORE指令结束 1 ALU指令在该级仅把R内容打入C 流水线各级的操作 WB级 结果写回到寄存器堆 ALU指令执行时流水线的数据路径 LOAD指令执行时流水线的数据路径 STORE指令执行时流水线的数据路径 流水线处理机的控制 ALU指令和存储器访问指令的控制 I1addir1 r2 4 r1 r2 4I2loadr2 100 r3 r2 memory r3 100 I3subr4 r5 r6 r4 r5 r6 I4addr7 r5 r6 r7 r5 r6 I5storer8 200 r9 memory r9 200 r8 I6subir10 r10 1 r10 r10 1 研究流水线处理机对以下指令重叠操作过程 指令系统和指令格式同前面一样 CC1 FetchI1 CC2 FetchI2并DecodeI1 CC3 FetchI3并DecodeI2并EXECI1 CC4 FetchI4并DecodeI3并EXECI2并MEMI1 CC5 FetchI5并DecodeI4并EXECI3并MEMI2并WBI1 CC6 FetchI6并DecodeI5并EXECI4并MEMI3并WBI2 CC7 DecodeI6并EXECI5并MEMI4并WBI3 CC8 EXECI6并MEMI5并WBI4 CC9 MEMI6 CC10 WBI6 以上还有3个控制信号 WZ 写Z标志信号WMEM 写存储器信号WREG 写寄存器堆信号 流水线处理机的控制 转移指令控制 subir10 r10 1bneabcaddr1 r2 r3abc load subir10 r10 1nopbneabcnopaddr1 r2 r3 条件转移指令控制 无条件转移指令控制 branchabcaddr1 r2 r3 branchabcnopaddr1 r2 r3 流水线各级控制信号的定义 流水线各级控制信号的产生表达式 相关概念 相近指令间出现了某种关联 使得指令不能提前解释结构相关 由于硬件资源不足而导致流水线不畅通 数据相关 本条指令的操作数地址与前一条指令存放结果的地址相同 便出现了前条指令还没有结果 而后一条指令要求提前取出 造成错误 转移相关 由于在转移发生之前 若干条转移指令的后继指令已被取到流水线处理机中 而造成错误 流水线处理机的相关 因为流水线中指令和数据要提前取出来 因此相邻指令之间存在许多关联 结构相关及解决方法 单存储器模块所构成的流水线处理机 结构相关 I1是LOAD指令 则I1与I4结构相关 采用分开的CACHE解决结构相关 数据相关及解决方法 I1 addr1 r2 r3I2 subr4 r1 r5I3 andr6 r7 r1I4 orr8 r1 r9I5 addir10 r1 100 写寄存器堆提前半个周期 我们只需考虑两条相关指令 数据相关及解决方法 如何检测发生了数据相关 静态方法 由编译程序来完成检测 若发生数据相关 则 I1 addr1 r2 r3nopnopI2 subr4 r1 r5I3 andr6 r7 r1 I1 addr1 r2 r3I2 subr4 r5 r1I3 andr6 r1 r7 真正影响数据正确性的数据相关是先写后读相关 ReadAfterWrite I1 addr1 r2 r3I2 subr4 r1 r5I3 andr6 r7 r1 如何解决数据相关 I1 addr1 r2 r3I2 subr4 r2 r5nopI3 andr6 r7 r1 动态方法 由硬件来完成检测 若发生数据相关 则暂停流水线 暂停流水线要做3件事情 1 封锁当前正在译码的指令的写控制信号 2 不把从存储器取来的下一听指令打入IR 3 不改变当前的PC值 当I2与I1相关 流水线暂停两个周期当I3与I1相关 流水线暂停一个周期 以上解决方法都将影响流水线的性能 数据相关及解决方法 内部前推 流水线数据相关问题的本质在于一条指令执行时要用到上面指令的计算结果 但这个结果尚未被写入寄存器堆 这些结果实际上已由ALU计算出来 仅仅是还没有写入寄存器堆而已 内部前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论