42.流水线中有哪三种冒险?请简述,并至少举出一种解决冒险的方法。
结构冒险:需要的资源被占用(硬件资源冲突)。将指令和数据分别存储;设计指令/数据高速缓存。
数据冒险:需要等待前面指令完成其读写操作。转发(旁路);代码重排;阻塞和冒泡。
控制冒险:根据前面正在执行的指令决策控制操作。静态分支预测;动态分支预测;分支延迟。
43.请简述Flynn分类法将计算机系统结构分成哪四类。
单指令流、单数据流 SISD
单指令流、多数据流 SIMD
多指令流、单数据流 MISD
多指令流、多数据流 MIMD
44.请简述程序局部性原理。
程序执行时所访问的存储器地址分布不是随机的,而实相对地簇拥。
程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
45.请简述Amdahl定律。
加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。
加速比-衡量系统的性能改进了多少
46.影响CPU时间的因素包括什么?(提示:从CPU公式入手,考虑3个参数的影响因素)
CPU时间=IC*CPI*时钟周期
编译技术、指令集结构、计算机组成、硬件实现技术
CPU的性能取决于3个参数
时钟周期时间:取决于硬件实现技术和计算机组成。
CPI:取决于计算机组成和指令集结构。
IC:取决于指令集结构和编译技术。
47.请简要说明提高计算机系统并行性的3种技术途径,并分别从单机和多机系统的角度举例。
时间重叠、资源重复、资源共享
单机:部件功能专用化、重复设置功能部件、使用分时系统
多机:处理机专用化、重复设置处理机、使用分布式系统
48.请说明什么是静态调度?什么是动态调度?动态调度的优点是什么?
静态调度:
依靠编译器对代码进行调度,也就是在代码被执行之前进行调度;通过把相关的指令拉开距离来减少可能产生的停顿。
动态调度:
在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。
动态调度优点:
49.请简述Tomasulo算法的基本思想,并分析其局限性。
记录和检测指令相关,操作数一旦就绪就立刻执行,把发生RAW冲突的可能性减少到最小;
通过寄存器换名来消除WAR冲突和WAW冲突。
局限性:
只能处理结构冲突和数据冲突,不能处理异常和控制冲突。指令队列里有分支指令,分支指令之后的指令不能流出,直到确定分支是否成功。
50.请说明什么是动态分支预测?有何优点?
通过硬件技术,在程序执行时根据每一条转移指令过去的转移历史记录来预测下一次转移的方向。通过七天预测分支方向,减少或消除控制相关导致的流水线停顿。
优点:
根据程序的执行过程动态地改变转移的预测方向,因此有更好的准确度和适应性;
程序每次执行时,可能预测的分支方向与前次相同或不同。
51.请简述分支历史表BHT的基本思想。
用BHT来记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。
52.请简述分支目标缓冲器BTB的基本思想。
将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标识。
53.请简述基于硬件的前瞻算法基本思想。
对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取出、流出和执行后续的指令。只是指令的结果不是写回到寄存器或存储器,而是放到一个称为ROB(ReOrder Buffer)的缓冲器中。等到响应的指令得到“确认:(commit)(即确实是应该执行的)之后,才将结果写入寄存器或存储器。
54.请在PVP、SMP、MPP、DSM和COW中任选一种,简要描述其特点。
PVP并行向量处理机:
SMP对称多处理机:
MPP大规模并行处理机:
DSM分布式共享存储多处理机:
COW工作站集群:
55.什么是多处理机Cache一致性问题?
允许共享数据进入Cache,极可能出现多个处理器的Cache中都有同一存储块的副本,其中某个处理器对其Cache中的数据进行修改后,就会使得其Cache中的数据与其他Cache中的数据不一致。
56.请简述监听式协议的原理。
每个Cache处理包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。
Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。
57.请简述目录式协议的原理。(自学)
对于存储器中每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。
对于任何一个数据块,都可以快速地在唯一的一个位置中找到相关的信息。这使一致性协议避免了广播操作。
58.请比较说明写作废协议和写更新协议性能上的差别。(自学)
59.请解释,在目录式协议中,什么是本地节点、宿主节点、远程节点和共享集合?(自学)
本地结点:发出访问请求的结点
宿主结点:包含所访问的存储单元及其目录项的结点
远程结点:Cache中拥有该块的副本
共享集合:位向量记录拥有其副本的处理器的集合
60.请简述目录式协议中,目录的三种结构。(自学)
全映像目录:每一个目录项都包含一个N为(N为处理机的个数)的位向量,其每一位对应一个处理机
有限映像目录:采用位数固定的目录项目
链式目录:用一个目录指针链来表示共享集合。当一个数据块的副本数增加(或减少)时,其指针链表就跟着变长(或变短)。