- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
archit43
计算机系统结构 第3章 流水线技术 高等计算机系统结构Computer Architecture 第3章 流水线技术 (Pipeline) 第3章 流水线技术 重叠执行和先行控制 流水线特点和类型 经典的5段指令流水线 流水线的相关与冲突 3.1.1 重叠执行 读取指令 按照指令计数器PC值访问主存,取出一条指令 指令分析 译码,形成操作数地址,并读取操作数 指令执行 按照操作码的要求,完成指令规定的功能 1. 顺序执行方式 执行n条指令所花的时间T (取指令、分析和执行的时间相等,都是t) T=3nt 优点 控制简单,节省设备 缺点 处理机执行指令的速度慢 功能部件的利用率很低 2. 一次重叠执行方式 执行n条指令所花的时间T T=(1+2n)t 优点 程序的执行时间减少了近1/3 部件利用率提高 缺点 需要增加一些硬件,控制过程变复杂 3. 二次重叠执行方式 执行n条指令所花的时间 T=(2+n)t 优点 执行时间缩短了近2/3 部件的利用率进一步提高 缺点 需要增加更多的硬件 需要解决主存访问的冲突问题 主存访问冲突的解决方法 设置两个独立编址的存储器:指令存储器、数据存储器 设置两个Cache(指令Cache、数据Cache),指令和数据仍混合存放在同一个主存中 主存采用多体交叉结构,指令和数据仍然混合存放在同一个主存中 在主存和指令分析部件之间增设指令缓冲站 3.1.2 先行控制 先行控制技术 缓冲技术和预处理技术的结合 缓冲技术 在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作 预处理技术 预取指令、对指令进行加工以及预取操作数等 3.2 流水线的基本概念 3.2.1 什么是流水线 流水线技术: 把一个重复的过程分解为若干个子过程,每个子过程由专门的功能部件来实现。将多个处理过程在事件上错开,依次通过各功能段,这样,每个子过程就可以与其他子过程并行进行。 描述流水线的工作,最常用的方法是时间-空间图(时空图) 横坐标:表示时间,即各个任务在流水线中所经过的时间 纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage) 流水线技术的时空图 流水线技术的时空图 流水线技术的特点 流水线实际上是把一个功能部件分解成多个独立的子功能部件(一个任务也就分成了几个子任务,每个子任务由一个子功能部件完成),并依靠多个子功能部件并行工作来缩短所有任务的执行时间 流水线有助于提高整个程序(所有任务)的吞吐率,但并没有减少每个指令(任务)的执行时间 流水线各个功能段所需时间应尽量相等。否则,时间长的功能段将成为流水线的“瓶颈”,会造成流水线的“阻塞”(Stall) 流水线开始需要“通过时间” (Fill)和最后需要“排空时间”(Drain)。流水线只有处理连续不断的任务才能发挥其效率 3.2.2 流水线的分类-1 1. 按流水线所完成的功能分类 单功能流水线:只能完成一种固定功能的流水线 多功能流水线:流水线的各段可以进行不同的连接,使流水线在不同的时间,或者在同一时间完成不同的功能 2. 按流水线在同一时间内各段的连接方式分类 静态流水线:在同一时间内,多功能流水线各段只能按同一种功能连接。只有当按这种方式工作的所有任务都流出流水线之后,多功能流水线才能重新连接以实现其他功能 动态流水线:在同一时间内,多功能流水线各段可以按不同方式连接,同时执行多种功能 多功能流水线 静态和动态流水线 3.2.2 流水线的分类-2 3. 按流水线的级别分类 部件级流水线=运算操作流水线:把处理机的算术逻辑运算部件分段,使得各种类型的运算操作能够按照流水方式进行 处理机级流水线=指令流水线:把指令的解释执行过程按照流水方式处理。把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行 处理机间流水线=宏流水线:它是由两个或者两个以上的处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分 3.2.2 流水线的分类-3 4. 按流水线是否有反馈回路分类 线性流水线:流水线的各段逐个串接,输入数据从流水线一端输入从另一端输出;每个段都只流过一次 非线性流水线:流水线的各段除有串接外,还有反馈回路;在一次流水过程中,有的段要被多次使用 5. 按任务流入和流出顺序是否相同分类 顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的 乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成(从输出端流出) 非线性流水线 3.4.1 一个经典的5段流水线 MIPS指令集结构用5个功能段实现,每个功能段用一个时钟周
原创力文档


文档评论(0)