计算机组成与设计——流水线处理器

lfri lfri     2023-01-28     802

关键词:

流水线的基本原理

 指令的主要执行步骤

这个是之前设计的单周期寄存器,它已经能正确的执行MIPS指令。

技术分享图片

而MIPS的指令可以分成如下5个阶段:

  1. 取指(Fetch)::从存储器取指令,并更新PC
  2. 译码(Decode):指令译码,从寄存器堆读出寄存器的值
  3. 执行(Execute):运算指令:进行算术逻辑运算,访存指令:计算存储器的地址
  4. 访存(Memory):Load指令:从存储器读指令,Store指令:将数据写入寄存器
  5. 回写(Write Back):将数据写入寄存器堆

与示意图结合如下:

技术分享图片

 

单周期与流水线的区别

全在这个图里:

技术分享图片

实际上,流水线并不会缩短单条指令的执行时间(甚至会增加时间),而是提高指令的吞吐率(单位时间进多少指令,有多少指令完成)。

 

添加流水线寄存器

我们要改造成流水线寄存器的话,我们发现每个阶段所需的硬件资源基本是独立的,如果我们能把指令存储器输出的指令编码事先保存下来,那我们就可以提前更新PC寄存器的值,并用这新的值去指令存储器当中取出一个新的指令,而在取新指令的同时,刚才取出的那条指令的编码就会被分解成不同位域,而寄存器堆也会根据输入送出对应寄存器的内容。所以需要添加流水线寄存器。

流水线寄存器:保存了前一个阶段要向后一个阶段传递的所有信息。

所以每过一个时钟周期,都可以更新寄存器的值,而不会影响当前的执行过程,当前执行所需要的全部信息都保存好在流水线寄存器中。

在两个阶段之间添加流水线寄存器后,如图:

 技术分享图片

性能分析,与之前的流水线相比,多了流水线寄存器的延迟,周期200到250ps。

技术分享图片

 

 

 流水线的优化

“超级流水线”技术

“超级流水线”技术:将五级流水线细分为更多的阶段,增加流水线的深度。

这样缩短了周期,从而提升了时钟频率,从而提高了指令吞吐率。

技术分享图片

 

流水线的级数

流水线的级数是越大越好吗?肯定不是。级数越大,所用的流水线寄存器相应增加,单条指令的延迟增加,流水线寄存器延迟比例增加;填满流水线的指令条数更多,指令之间的关系更加复杂。

技术分享图片

 

 

超标量流水线

超标量结构

超标量结构:通常,将具有两条或两条以上的并行工作的流水线结构称为超标量结构,亦称为“超标量流水线”或超标量。

如图,我们对每个阶段扩大一倍,那么可以同时对两个指令进行操作。第一、二条指令同时进入阶段一,经过一个时钟周期,第一、二条指令进入阶段二,同时第三、四条指令进入阶段一......这样每个阶段两条指令并行前行,到第五个周期就有两条指令同时被完成。

技术分享图片

 像这样两者并行的结构叫作双发射的结构。按这种方式扩大,就能得到三发射、四发射,这就是超变量流水线寄存器的原理。

 

超标量的应用

ARM Cortex-A9的超标量流水线

它每个时钟周期可以发射4条指令,根据指令的不同,总共会经过8~11级流水线。在流水线的前端比如说 取指,译码并没有分成多条流水线而是采用统一的部件。当然我们要知道这些部件虽然看上去是一个,但它实际上比标量流水线要大得多,比如说取指部件至少一次要能取来四条指令甚至更多,而译码部件一次也至少应该完成四条指令的译码,而到了流水线的后端, 才会从结构表示上体现出多条并行流水线的形态。

技术分享图片

 

 Core i7的超标量流水线

  1. 取指令:从高速缓存中取出指令,取回128bit,16个字节
  2. 将这16个字节放入指令译码器:因为x86指令长度是不固定的,所以首先要经过一个 指令长度的译码器,分解出到底哪几个字节是一条指令。 
    那么在这一点上类似的指令系统就体现出了明显的优势, 它每条指令都是定长的,不用额外进行这样的识别工作。
  3. 微指令译码:在译码器当中通过硬件会将x86的指令转换成更为简单的类MIPS指令, Inter称之为“微操作”那从这里可以看出有三个简单的译码器,用于对那些比较简单的x86指令进行转换,每条指令对应一个微操作;而那些非常复杂的指令则会通过这个复杂的译码器转换成多条V操作。从而可以充分运用大量面向RISC处理器研发出的高级流水线的技术,这也就是为什么我们现在经常说x86虽然是一个CISC的指令系统, 但它实际上是用RISC的方式去实现的
  4. ......

技术分享图片

 

 超标量与多核CPU

现在的多核CPU通常是在一个CPU芯片中集成了多个超标量处理器核。同时包含指令高速缓存和数据高速缓存,对应了我们原理结构当中的指令存储器和数据存储器。为了提高性能现在的处理器当中一般还配备了二级的高速缓存。 这些部件的关系非常紧密,我们通常也就把这一部分称为一个处理器核。

 那么刚才看到那个四发射十六级流水线的结构图就是在只这么一个处理器核内部的结构,那么可以说这一个处理器核就是一个超标量流水线的处理器核。

技术分享图片

 

 

参考链接:https://www.coursera.org/learn/jisuanji-zucheng/lecture/dL6g2/604-liu-shui-xian-de-mou-xian

计算机组成与设计——流水线的冒险

冒险流水线技术之所以能提高性能究其本质是利用了时间上的并行性,那它让原本应该先后执行的指令在时间上一定程度的并行起来,然而这也会带来一些冲突和矛盾,进而可能引发错误。冒险(Hazard):在流水线中我们希望当... 查看详情

系统架构设计师计算机组成与体系结构①(计算机组成|cpu|存储器|总线|io外设|cpu组成|运算器|控制器)

文章目录一、计算机组成与体系结构二、计算机组成结构三、CPU组成1、运算器2、控制器一、计算机组成与体系结构计算机组成与体系结构对应大学的计算机组成原理课程,主要分为:计算机组成体系结构划分两大知识板块;在架构... 查看详情

软件设计师考试重点1计算机组成与体系结构

软件设计师考试重点1计算机组成与体系结构一、数据的表示1.进制转换2.原码/反码/补码/移码3.数值表示范围4.浮点数的运算二、运算器与控制器1.计算机结构2.计算机五大组成部分:3.CPU组成部分:4.控制器组成部分:5... 查看详情

408计算机统考科目知识整理

目录一、计算机组成原理&计算机操作系统编码处理器存储总线&I/O进程文件二、数据结构数组&链表栈&队列&矩阵树图查找排序三、算法设计模拟枚举分治搜索(BFS、DFS)动态规划(DP)四、计算机网络物理层数据链... 查看详情

计算机组成与设计——单周期处理器

处理器的设计步骤分析指令系统,得出对数据通路的需求为数据通路选择合适的组件连接组件,建立数据通路分析每条指令的实现,以确定控制信号集成控制信号,完成完整的数据通路 具体设计步骤(一)分析指令系统MIPS... 查看详情

计算机组成原理和体系结构—自查

计算机组成原理与体系结构内容提要数据的表示计算机结构Flynn分类法CISC与RISC流水线技术存储系统总线系统可靠性校验码数据的表示数据的表示R进制转十进制使用按权展开法,其具体操作方式为:将R进制数的每一位数值用Rk形式... 查看详情

(计算机组成原理)第五章中央处理器-第五节2:指令流水线影响因素和分类及多发技术

...技术(1)超标量技术(2)超流水技术(3)超长指令字(计算机组成原理)第五章中央处理器-第五节1: 查看详情

408计算机统考科目知识整理(持续更新中)

一、计算机组成原理&操作系统计组和操作系统有很多连通的地方,强化阶段应该结合两者进行复习。编码【组成原理-数据】定点数的编码与运算【组成原理-数据】浮点数的编码与运算处理器【组成原理-处理器】处理器... 查看详情

1/21计算机组成与体系结构

计算机组成与体系结构1.1计算机系统组成1.1.1计算机硬件的组成1.1.2计算机系统结构的分类1.1.3复杂指令集系统与精简指令集系统1.1.4总线1.2存储器系统1.2.1主存储器1.2.2辅助存储器1.2.3Cache存储器1.3流水线1.3.1流水线周期1.3.2计算流... 查看详情

计算机组成与设计---硬件/软件接口---处理器(代码片段)

4.1逻辑设计的一般方法二进制信息编码低电平=0,高电平=1一线一位根据多条数据总线确定多位数据编码组合部件对数据操作输出是输入的函数状态(时序)部件存储信息寄存器:将数据存储在电路里时钟信号决... 查看详情

计算机组成与设计---硬件/软件接口---处理器(代码片段)

4.1逻辑设计的一般方法二进制信息编码低电平=0,高电平=1一线一位根据多条数据总线确定多位数据编码组合部件对数据操作输出是输入的函数状态(时序)部件存储信息寄存器:将数据存储在电路里时钟信号决... 查看详情

计算机组成原理—cpu—流水线与执行周期

目录文章目录目录CPU流水线时钟周期、机器周期、指令周期和总线周期CPU流水线不同的CPU指令集架构在执行指令的过程会有所差别,以经典的RISC(精简指令集架构)为例,存在以下步骤:取指令分析指令执行... 查看详情

微机原理与接口技术第五版课后答案钱晓捷

...理及应用)”、“汇编语言程序设计”或“计算机组成原理”等课程的教材或参考书,适合计算机及电子、通信和自控等电类专业的本科学生、专科学生、高职学生及成教学生阅读,同时也适合作为计算机应用开... 查看详情

微机原理与接口技术第五版课后答案钱晓捷

...理及应用)”、“汇编语言程序设计”或“计算机组成原理”等课程的教材或参考书,适合计算机及电子、通信和自控等电类专业的本科学生、专科学生、高职学生及成教学生阅读,同时也适合作为计算机应用开... 查看详情

(计算机组成原理)第五章中央处理器-第五节1:指令流水线(定义和表示方法及性能指标)

...条指令的执行过程可以分成多个阶段(或过程),不同的计算机有不同的分法,其中比较通用的划分方法就是划分为取指,分析和执行三个阶段取指:根据PC内容访问主存储器ÿ 查看详情

组成原理-处理器流水线技术(代码片段)

文章目录0流水线性能指标0.1指令执行时间0.2流水线的吞吐率0.3流水线的加速比0.4流水线的效率1基本流水线技术1.0流水线设计基本原则1.1五段流水线1.1.1运算类指令的执行过程(背!)1.1.2LOAD指令的执行过程(背&#x... 查看详情

计算机组成原理期末救急--下

计算机组成原理期末救急--下指令指令格式地址码操作码扩展操作码扩展操作码举例指令操作码操作类型数据存放指令寻址操作数类型数据寻址立即寻址直接寻址间接寻址寄存器寻址寄存器间接寻址隐含寻址总结偏移寻址基址寻... 查看详情

向题看齐408之计算机组成原理概念记忆总结(代码片段)

408之计算机组成原理概念记忆总结1、计算机系统概述2、数据的表示和运算2.1、进位计数制2.3、定点数的表示2.3.1、表示范围2.4、定点数的计算2.4.1、算数移位2.4.2、逻辑移位2.4.3、循环移位2.4.4、加减运算2.4.5、溢出判断2.4.6、符... 查看详情