计算机系统结构 第四章 指令级并行

目录

4.1 指令级并行的概念

4.2 指令动态调度

①动态调度与静态调度的区别

②Tomasulo 算法基本思想、操作过程、状态表、保留站、缓冲器、寄存器状态表,具体怎样

4.3 动态分支预测技术

①动态分支预测技术的概念,用来解决什么问题,与静态预测分支技术的区别

②常见动态分支预测技术:

③预测分支失败或成功是否提高经典五段流水线的性能(不能)

④基于硬件的前瞻执行的基本思想,与 Tomasulo 算法的比较,修改了哪些地方?

4.4 多指令流出技术

①多指令流出技术概念:一个时钟周期内流出多条指令

②采用多指令流出技术的处理机的概念与区别

③PPT 例子:多指令流出调度,顺序流出-顺序完成、顺序流出-乱序完成、乱序流出-乱序完成

4.5 循环展开技术


4.1 指令级并行的概念

概念:处理机利用流水线来使指令重叠并行执行,以达到提高性能的目的

挖掘指令并行潜力的方法

静态:通过软件、编译器实现,静态指令调度,静态分支预测

动态:通过硬件实现,动态指令调度,动态分支预测

流水线处理机的实际CPI

CPI(流水线)=CPI(理想)+停顿(结构冲突)+停顿(数据冲突)+停顿(控制冲突)

IPC:每个时钟周期完成的指令条数

4.2 指令动态调度

①动态调度与静态调度的区别

a.动态调度:在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。

b.静态调度:在编译期间,依靠编译器对代码进行静态调度,通过把相关的指令拉开距离来减少可能产生的停顿。

②Tomasulo 算法基本思想、操作过程、状态表、保留站、缓冲器、寄存器状态表,具体怎样解决三种数据冲突(R-W,W-R,W-W),以及用到什么部件【PPT 例子】

Tomasulo算法基本思想:

        1)记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小

        2)通过寄存器换名来消除WAR冲突和WAW冲突

保留站:每个保留站保存一条已经流出并等待到本功能部件执行的指令(唯一标识)

公共数据总线CDB:所有功能部件的计算结果都送到CDB,再送往各个需要该结果的地方

Busy:保留站忙

op:要对源操作数进行的操作

Vj,Vk:源操作数的值(为0表示已经就绪或不需要)

Qj,Qk:将产生源操作数的保留站号

A:仅load,store缓冲器有,开始存放指令中的立即数字段,地址计算后存放有效地址

Qi:寄存器状态表(用于存放将结果写入该寄存器的保留站的站号,为0表示已就绪)

4.3 动态分支预测技术

①动态分支预测技术的概念,用来解决什么问题,与静态预测分支技术的区别

动态分支预测技术:在程序运行时,根据分支指令过去的表现来预测其将来的行为

常见动态分支预测技术:

        1)分支历史表 BHT

        a.判定分支是否成功所需的时间大于确定分支目标地址所需时间

        b.BHT方法不会给流水线带来好处

        c.BHT可跟分支指令一起存放在指令Cache中,也可用一个专门的硬件来实现

        2)分支目标缓冲器 BTB

        a.目标:将分支的开销降为0

        b.将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区

        3)基于硬件的前瞻执行

        a.动态分支预测。用来选择后续执行的指令

        b.在控制相关的结果尚未出来之前,前瞻地执行后续指令

        c.用动态调度对基本块的各种组合进行跨基本块的调度

③预测分支失败或成功是否提高经典五段流水线的性能(不能)

④基于硬件的前瞻执行的基本思想,与 Tomasulo 算法的比较,修改了哪些地方?

1)把Tomasulo算法的写结果和指令完成加以区分,分为两个不同的段

2)换名功能:Tomasulo算法利用保留站,基于硬件的前瞻执行利用ROB表

4.4 多指令流出技术

①多指令流出技术概念:一个时钟周期内流出多条指令

②采用多指令流出技术的处理机的概念与区别

超标量处理机、超长指令字处理机、超流水线处理机(重点比较超标量和超流水线处理

机,PPT 有)

1)超标量处理机:在每个时钟周期流出的指令条数不固定(但有上限)

2)超长指令字处理机:在每个时钟周期流出的指令条数是固定的,这些指令构成一个指令包

3)超流水线处理机:在一个时钟周期内能够分时发射多条指令的处理机

区别:

a.超标量处理机通过重复设置多个“取指令”部件...,以增加硬件资源为代价来换取处理机性能。(空间并行性

b.超流水线处理机只需增加少量硬件,是通过各部分硬件的充分重叠工作来提高处理机性能(时间并行性

③PPT 例子:多指令流出调度,顺序流出-顺序完成、顺序流出-乱序完成、乱序流出-乱序完成

4.5 循环展开技术

基本方法:在编译时多次展开循环体,再对指令序列重新排序

你可能感兴趣的:(计算机系统结构,数据结构,蓝桥杯,算法,数学)