第4章 指令级并行
- 格式:ppt
- 大小:3.49 MB
- 文档页数:116
第1章计算机系统结构的基本概念1.1 解释下列术语层次机构: 按照计算机语言从低级到高级的次序, 把计算机系统按功能划分成多级层次结构, 每一层以一种不同的语言为特征。
这些层次依次为: 微程序机器级, 传统机器语言机器级, 汇编语言机器级, 高级语言机器级, 应用语言机器级等。
虚拟机: 用软件实现的机器。
翻译: 先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序, 然后再在这低一级机器上运行, 实现程序的功能。
解释: 对于高一级机器上的程序中的每一条语句或指令, 都是转去执行低一级机器上的一段等效程序。
执行完后, 再去高一级机器取下一条语句或指令, 再进行解释执行, 如此反复, 直到解释执行完整个程序。
计算机系统结构: 传统机器程序员所看到的计算机属性, 即概念性结构与功能特性。
在计算机技术中, 把这种本来存在的事物或属性, 但从某种角度看又好像不存在的概念称为透明性。
计算机组成: 计算机系统结构的逻辑实现, 包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
计算机实现: 计算机组成的物理实现, 包括处理机、主存等部件的物理结构, 器件的集成度和速度, 模块、插件、底板的划分与连接, 信号传输, 电源、冷却及整机装配技术等。
系统加速比: 对系统中某部分进行改进时, 改进后系统性能提高的倍数。
Amdahl定律: 当对一个系统中的某个部件进行改进后, 所能获得的整个系统性能的提高, 受限于该部件的执行时间占总执行时间的百分比。
程序的局部性原理: 程序执行时所访问的存储器地址不是随机分布的, 而是相对地簇聚。
包括时间局部性和空间局部性。
CPI: 每条指令执行的平均时钟周期数。
测试程序套件: 由各种不同的真实应用程序构成的一组测试程序, 用来测试计算机在各个方面的处理性能。
存储程序计算机: 冯·诺依曼结构计算机。
其基本点是指令驱动。
程序预先存放在计算机存储器中, 机器一旦启动, 就能按照程序指定的逻辑顺序执行这些程序, 自动完成由程序所描述的处理工作。
第四章指令级并行刘飞liufeildu@鲁东大学信息与电气工程学院目录1.指令的动态调度2.控制相关的动态解决技术鲁东大学信息与电气工程学院4.2.2 动态调度算法之一:记分牌例:数据先读后写(WAR)相关引起的阻塞代码序列:DIVD F0 , F2 , F4ADDD F10 , F0 , F8SUBD F8 , F8 , F14指令乱序执行时就会出现先读后写相关。
¡记分牌技术的目标:在资源充足时,尽可能早地执行没有数据阻塞的指令,达到每个时钟周期执行一条指令。
鲁东大学信息与电气工程学院¡要发挥指令乱序执行的好处,必须有多条指令同时处于执行阶段,这就要求有多个功能部件或功能部件流水化或者两者兼有。
¡假设:处理器采用多个功能部件。
CDC 6600具有16个功能部件:4个浮点部件,5个存储器访问部件7个整数操作部件在DLX中,假设有2个乘法器、1个加法器、1个除法部件和1个整数部件。
鲁东大学信息与电气工程学院记分牌电路负责记录资源的使用,并负责相关检测,控制指令的流出和执行。
2.每条指令在流水线中的执行过程分为四段:(1) 流出(Issue,记为IS)如果本指令所需的功能部件有空闲,并且其它正在执行的指令使用的目的寄存器与本指令的不同,记分牌就向功能部件流出本指令,并修改记分牌内部的数据记录。
解决了指令间存在的结构相关或写后写相关。
鲁东大学信息与电气工程学院(2) 读操作数(Read Operand,记为RO)。
记分牌需要监测源操作数寄存器中数据的有效性,如果前面已流出的还在运行的指令不对本指令的源操作数寄存器进行写操作,或者一个正在工作的功能部件已经完成了对这个寄存器的写操作,那么此操作数有效。
当操作数有效后,记分牌将启动本指令的功能部件读操作数并开始执行。
解决了数据的先写后读(RAW)相关。
通过以上步骤,记分牌动态解决了结构相关和数据相关引发的阻塞,指令可能乱序流出。
第四章习题四4.1解释下列术语:指令级并行:指令序列中存在的潜在的并行性称为指令级并行。
指令调度:指令调度是一种用以避免冲突的方法,但并不改变相关。
通过改变指令在程序中的位置,将相关指令间的距离加大到不小于指令执行延迟的时钟数,以此消除相关指令造成的流水线冲突。
指令的动态调度:在程序执行过程中,依靠专门的硬件对代码进行调度,重新安排指令的执行顺序,来调整相关指令实际执行时的关系,减少可能的冲突。
指令的静态调度:在程序的编译期间,由编译器进行代码调度和优化,重新安排指令的执行顺序,把相关的指令拉开距离,以减少可能产生的冲突。
保留站:在Tomasulo算法实现结构中,保留站设置在运算部件的入口,每个保留站中保存一条已经流出并等待到本功能部件执行的指令的相关信息,包括操作码、操作数以及用于检测和解决冲突的信息。
在一条指令流出到保留站的时候,如果该指令的操作数已经在寄存器中就绪,则将之取到该保留站中。
如果操作数还没有计算出来,则在该保留站中记录将产生这个操作数的保留站的标识。
CDB:公共数据总线,是Tomasulo算法实现结构中的一条重要的数据通路,所有功能部件的计算结果都要送到CDB上,由它把这些结果直接送到各个需要该结果的地方。
动态分支预测技术:用硬件动态地进行分支处理的方法。
这些方法是在程序运行时,根据分支指令过去的表现来预测其将来的行为。
如果分支行为发生了变化,预测结果也随之改变。
其目的有两个:预测分支是否成功和尽快找到分支目标地址(或指令),从而避免控制相关造成流水线停顿。
BHT:分支历史表,也称之为分支预测缓冲器,用来记录分支指令最近一次或几次的执行情况(成功或不成功),并根据此进行预测。
分支目标缓冲:将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标识,取指令阶段,所有指令地址都与保存的标示作比较,一旦相同,就认为本指令是分支指令,且认为它转移成功,并且它的分支目标地址就是保存在缓冲区的分支目标地址。