1 高体复习笔记10208830 张栋说明:这份笔记是我复习高体期间整理的,目前还很不完善,很多题目没有想到,也有很多列在上面的要点没有时间写上去,因为我包括整理这份笔记在内复习高体的时间只有不过一天。
盼望有人能将之补充完整,或者基于此笔记整理一份更详细的以饷师弟师妹,甚谢甚谢!(如有人愿补充,请在页脚处注明版本号、整理人及修改日期以防冲突。
)名词解释1. BHT2. BTAC/BTB要点:用一个缓冲站来存储分支后面的下一条指令地址,这种缓冲站叫做分支目标缓冲站(BTB )或分支目标高速缓存(BTAC )3. Reorder Buffer要点:按FIFO 即指令发射的次序存放指令每个表项包括:PC ,目标寄存器,结果,意外状态当指令执行完成时,将结果放在ROB像保留站为其他介于执行、完成、提交的指令提供操作数将结果用ROB 的编号来标记指令提交->将ROB 顶部的数值放到寄存器中这样就易于实现错误预测路径或一次意外中的推测指令推测错误时只需从ROB 中去掉该指令并从正确的后继开始执行。
4. Rename Register/重命名要点:指令中的寄存器被数值或指向保留站的指针代替,这一过程称为寄存器换名;消除了WAR/WAR 冒险,保留站比寄存器多,所以可以完成优化编译器所不能完成的调度5. 显式寄存器重命名要点:显式寄存器重命名使用比ISA 所说明的寄存器数量要大的物理寄存器堆使用变换表(translation table )完成ISA reg->物理寄存器的映射,当寄存器写时为写的每一条指令从freelist 里分配新的物理寄存器,指令不active 时回收。
6. Trace Cache7. SuperScalar/MultiScalar8. CMP/SMT/SMP/Cluster/ MPP9. DSM2 要点:物理上分开的存储器能够作为逻辑上共享的地址空间进行寻址,任何一个处理器能够通过引用地址的方式,访问任意节点上的存储器。
10.SIMD/MIMD 要点:同一条指令被多个使用不同数据流的处理器执行。
11.MIMD 要点:其中每个处理器取用自己的指令并对自己的数据进行操作。
12.UMA/NUMA/NORMA 要点:不同处理器访问memory 的时间相同/不同 13.Multicomputer 要点:没有远程内存访问,通过send/recv 进行网络访问 14.精确中断 15.(M,N )预测器 要点: 使用前m 个分支行为去从2^m 个分支预测中进行选择,每一个预测分支对应于单个分支的n 位预测器。
16.trace scheduling 要点:trace scheduling 分作两步: 1) 踪迹选择。
从一个基本块中发现(静态分析预测)执行代码序列中最可能执行的代码序列; 2) 踪迹压缩。
将踪迹挤压成一些VLIW 指令,踪迹调度把操作尽可能早地提前执行。
17.结构冒险/数据冒险/资源冒险 18.三种数据相关:RAW/W AR/WAW 19.Delay Slot 的三种调度: 20.从前,从目标(只是taken 时有效),跳下(not taken 时有效) 21.Cancelling Branch 要点:错误预测时延迟槽指令squash 22.访问的局部性-时间/空间局部性 23.TLB 24.循环展开 vs 软件流水 循环展开:从减少循环开销方面 软件流水:减少循环执行时间 25.软件流水 要点:使用软件调度的方法对循环进行重构,消除/降低每个loop 内的相关。
最大化结果,比展开代码空间小,每个循环填充和排出流水线一次 记住Loop Unrooling 和Software Pipelining 的对比图 26.保留站 27.CDB 28.Speculation 要点: 动态branch 预测来选择要执行的指令或对数据值进行预测; 允许控制相关解决前指令的执行;(要求能够消除错误speculative 序列时所产生的效果)动态调度能够处理不同的基本块的组合 其执行的本质是数据流执行:当操作数可用时开始操作。
329. VLIW要点:VLIW 使用多个互相不相关的功能部件,不是努力去发射多个互不相关的指令到功能部件中,而是把多个操作封装到一条非常长的指令中。
决定哪几条指令可以同时发射的任务交由编译器完成。
相关技术:全局调度去发现可以并行发射的指令,例如循环展开并对代码调度进行优化。
30. 指令窗口要点:为了同时执行而被检测的指令集合,限制了可以检测的指令数目,也限制了可发射指令的最大指令条数。
31. 义务失效/冲突失效/容量失效32. Victim Cache33. 伪相联/伪命中34. Non-blocking Cache/Lockup-free Cache要点:CPU 在等待cache 返回缺失数据的同时可以继续cache 访问。
需要多端口,严重增加了cache 控制的复杂性。
35. 提前重启要点:一旦块中所需字到达,就立即把它送到CPU ,使CPU 继续执行。
36. 关键字先送要点:首先向存储器请求缺失的字,然后一旦它到了就把它发送到CPU 中,让CPU 继续执行,同时装入块中其他字。
37. 局部失效率/总失效率要点:这一级cache 的miss 数除以对这一级cache 的访问总数 vs CPU 产生的访问总数。
38. hit under miss/hit under multiple miss/miss under miss39. 流缓冲器(stream buffer )40. cache 技术中的读比写优先要点:带write buffer 的write through :读失效时查看write buffer ,如果没有冲突而且存储器系统可以访问,就然读失效继续。
Write back :把脏块拷贝到一个缓冲区后就去读下层存储器,然后在将该脏块写入下层 存储器,而不是相反。
41. 比较共享存储和消息传递模型要点:共享存储易于在小规模机器上实现,易于编程,低时延,易于使用硬件控制的cache 技术。
消息传递使用硬件少,易于设计。
42. 刻画并行机器的三个要点要点:命名、同步、时延和带宽43. SCSI要点:即小型计算机系统接口。
SCSI 协议包括控制器和SCSI 设备之间进行特定动作的一系列状态。
包括:44. n 位计数器4 辨析/Pitfalls/Fallcies1. 使用相同指令体系结构的的处理器的相对性能可以用时钟频率或者一套benchmark suite的性能来来比较。
2. MIPS/MFLOPS 是比较机器间性能的准确指标要点:MIPS=Extime=3. 为何要用几何平均值来测定性能4. 合成的基准测试程序能够预测真实程序的性能要点:✓ 易被优化✓ 与真实程序可被优化方式不同5. 好的benchmark 永远有效✓ 易被编译选项和预处理器优化✓ 易被体系结构开发人员特定优化✓ 实际需求随时变化6. 设计一种“高级”指令集特性来支持一种高级语言体系结构要点:复杂、得不偿失,只能在有限环境中应用。
7. 可以设计一个没有缺陷的系统结构要点:体系结构是软/硬件权衡,技术随着时间变化而变换。
当初正确的可能到后来看起来是错误的。
8.9. 高的流水级数提高性能要点:load delay 更长转移延迟更长转移预测失败的损失latch 和时钟扭斜的影响……10. superscalar 和vliw 的主要区别在于后者能够并行发射更多的指令11. 预测错误之间的指令数目比预测错误率更能体现预测性能要点:basic block 大小是我们所关心的前者蕴涵了后者12. mips r4000的8级流水线是由mips r3000的4级流水线逐级细分而来13. 不惜成本可以完全解决资源冲突14. 完美无缺的体系结构是计算机系统成功的保证15. 计算机的最好设计式不考虑实现优化最初目标16. n 路组相联一定优于直接映射cache要点:N 个比较器与一个增加了额外的多路选择延迟判断命中/失效时才能得到数据17. 虚拟cache 总是比物理cache 要好要点:同义问题,两个不同的虚拟地址可以映射到同一物理地址5 对于更新,必须更新具有同一物理地址的cache 表项或允许存储不一致需要大量硬件,特别是需要对物理标签进行相联查找已确定是否出现多次命中; 或者通过软件强制实现:alias boundary ,即V A 和PA 相同的低位空间> cache 大小18. 两条指令之间有dependence 一定会发生hazard19. cache 在任何情况下都可以加速应用要点:cache 是利用了时间/空间局部性降低了局部性的程序很难利用cache ,例如流媒体,实时应用20. Global Optimization 的代码调度范围通常比Inter Procedure Optimization 要大要点:Global 是指跨越基本块的代码调度,Inter Procedure 是指跨越过程的代码调度21. 多发射处理机的发射速率可以任意扩大要点:程序代码中固有的对指令级并行的限制;(相关;可开发并行性限制)在已有的硬件架构中使用多发机制的困难性;(硬件资源需求;应该评估硬件机制和编译器方法两者性能及成本上的优劣,并做更好的结合。
)每一个超标量或VLIW 机器具体实现时所面对的限制性因素。
对于supersaclar 的主要问题是指令发射逻辑部件的设计;对VLIW 则存在技术上和逻辑设计上的问题。
技术上代码膨胀[需要展开循环来填充长指令字,未被填满的指令,功能部件在译码时仍然会被翻译]由于要把指令压缩到主存中并在指令读出到cache 或进行译码时才扩展它们,而VLIW 时静态调度的系统结构,在操作上锁定,任何一个功能部件的暂停均会导致处理器的暂停。
增加了内存结构复杂性和存储访问延迟。
VLIW 的主要逻辑问题时二进制代码兼容问题。
需要代码重新编译。
SuperScalar vs VLIW 的优势:可以更容易的开发不规则结构代码中的并行性对内存结构要求更少22. 在评估系统或检查性-价时忽略软件要点:目前软件代价已经成为计算机系统成本中很重要的一部分23. cache 的设计空间正交性24. 认为增加指令发射速率并牺牲时钟频率来减少CPI 会导致系统性能降低25. 仅提高影响多发射机制处理器的某一方面因素就可以提高整体性能要点:许多因素限制这多发射机器的性能,提高某一方面因素后,常常会发现其他方面限制系统性能的因素严重起来26. 使用硬件预取总能提高性能27.简答1. raid0~5要点:RAID 0:无冗余6RAID 1:磁盘映像,完全复制,一次逻辑写需要两次物理写,容量开销100%RAID 3:加位交叉奇偶校验磁盘。