计算机系统结构的课程已经结束了,今天刚考完试。在之前的复习中,我将计算机系统结构课程按照老师的复习PPT整理了一遍。
需要注意的是,计算机系统结构中的计算题阿姆达尔定律,流水线,存储器性能这三类计算题我没有整理。这并不说明它不重要,而是它太重要了,太重要了,太重要了,所以我没有简要的整理,这些内容还是需要多看看书,多做做题。
当然,一切学习不应该以考试为目的。已故国际著名数学大师、南开大学数学教授陈省身先生曾经说过:“不要考100分。”其含义是,学生做学问,掌握精髓要义考个七八十分,就可以了。不要为了考100分在细枝末节上浪费过多的时间。
第一章
计算模式发展
主机计算-桌面计算-普适计算
摩尔定律
集成电路芯片上所集成的电路数目,每隔18个月就翻一番
处理器发展所面临的挑战
频率墙、功耗墙、存储墙、应用墙
流水线特点
- 提高整体工作负载的吞吐量
- 速率受限于最慢的流水段
- 流水段的执行时间如果不均衡,那么加速比就会降低
- 开始填充流水线的时间和最后排放流水线的时间降低加速比
什么是计算机系统结构(必考简答)
- 传统定义:程序员所看到的计算机属性,即程序员编写 出的能在机器上正确运行的程序所必须了解到的概念性结构和功能特性
- 宽泛定义:使用各种可行的制造工艺进行抽象层的设计,使得应用程序有效运行
计算机系统结构与计算机组成、实现的关系(简答题)
计算机组成是计算机系统结构的逻辑实现,计算机实现是计算机组成的物理实现。一种系统结构可以有多种组成。一种组成可以有多种实现。
例如:在设计主存系统时,确定主存容量、编址方式等属于计算机系统结构;确定主存周期、逻辑设计等属于计算机组成;选择存储芯片类型、线路设计等属于计算机实现。
第三章
什么是指令集架构?它如何去表现?(选择或填空)
指令集架构是一系列指令
如何去表现它:由于硬件只能理解位,所以采用二进制格式
根据处理器内部储存类型对指令集架构进行分类(简答)
- 堆栈型
优点:表示计算的简单模型
缺点:堆栈不能被随机访问,从而很难生成有效代码 - 累加器型
优点:减小了机器的内部状态
缺点:由于累加器是唯一的暂存器,这种机器的存储器通信开销最大 - 寄存器型
优点:是代码生成最一般的模型
缺点:所有操作数均需命名,且显示表示,因而指令比较长
RISC vs. CISC (必考简答、填空)
- RISC精简指令集计算机
指令是等长的,结构简单,易学易用,功耗低,load/store结构 - CISC复杂指令集计算机
指令是不等长的,结构复杂,功能强,功耗大,采用微程序控制
近代编译器结构——多遍结构(填空)
第四章
流水线的好处(填空)
提高系统的吞吐量
指令流水级,功能部件级流水(填空)
通过时间与排空时间(填空)
结构冲突、数据冲突、控制冲突(填空)
三个常见的数据冲突:RAW,WAR,WAW(填空)
流水线的性能问题(必考计算题)
- 吞吐率:单位时间内流水线完成的任务数量或输出结果的数量。
- 最大吞吐率TPmax:流水线在连续流动达到稳定状态后所得到的吞吐率。
- 加速比:流水线的速度与等功能非流水线的速度之比
- 最大加速比:N趋向于无穷大
- 效率:流水–线中设备实际使用时间与整个运行时间的比值。
- 额外开销:流水寄存器需要建立时间和传输延迟
解决流水线瓶颈
- 细分瓶颈段
- 重复设置瓶颈段
第五章
指令级并行(填空)
指令级并行(ILP):重叠执行指令以提高性能
动态:动态分支预测
静态:循环展开编译
基本块(填空)
除入口和出口外没有其他分支的线性指令序列
数据相关,名称相关,控制相关(填空)
相关性是程序的特性;冲突时流水线结构的特性;相关性的存在只预示着存在有冲突的可能性
对程序正确性至关重要的两个属性(必考填空或简答)
异常行为:指令执行顺序的任何更改都不能改变异常在程序中引发的方式
数据流:在产生结果和使用结果的指令之间的实际数据值流
目标分支预测(BTB)
缺点:分支目标计算开销很大,并且会导致指令获取延迟
动态分支预测
分支历史表、相关性
动态调度
硬件在维护数据流和异常行为的同时,重新安排指令执行,以减少停机
记分牌
通过尽早执行一条指令来保持CPI=1
当指令停止时,如果其他指令不依赖于任何活动或停止指令,则可以发出和执行它们
超标量(必考)
超标量处理器在运行时动态确定指令窗口可以被流出执行。动态调度时,这些工作有硬件完成;静态调度时,部分工作由编译器完成,大大降低了硬件实现的复杂度。
超长指令字VLIW(必考)
ILP的限制是什么?
- 基准不同
- 硬件的复杂度
- 复杂的编译器
什么是线程级并行(TLP),指令级并行(ILP),数据级并行(MDP)?
多线程切换(必考)
- 细粒度切换:它在每条指令间都能进行线程的切换,从而导致多个线程的交替执行。
- 粗粒度切换:粗粒度多线程之间的切换只在发生代价较高、时间较长的阻塞出现时。
什么是同时多线程
同时多线程技术是一种在多流出、动态调度处理器上同时开发线程级并行和指令级并行的改进的多线程技术。
第七章
存储系统的层次结构(图表分析|填空)
寄存器-(通过指令)-Cache-(通过块)-内存-(通过页表)-磁盘-(通过文件)-磁带
局部性原理(简答|填空)
- 局部性原理:CPU访问存储器时,不论是存取指令还是存取数据,所访问的存储单元都趋向于聚集在一个较小的连续区域中。
- 时间局限性:如果一个信息项正在被访问,那么在近期它很有可能还会被再次访问。程序循环、堆栈等都是产生时间局限性的原因。
- 空间局限性:在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
存储层次的性能参数(计算题)
- 存储容量S:主存的容量
- 命中率H:CPU访问该存储系统时,在M1中找到所需信息的概率。
- 存储系统的平均每位价格C
- 平均访存时间
- 命中
- 不命中
映像规则(图表分析|填空)
- 映像规则:全相连映像、直接映像、组相连映像
- 查找算法:目录表结构、并行查找和顺序查找
- 替换算法:Random、LRU、FIFO
写策略(填空|简答)
- 写操作在访问Cache的比例为25%,写操作必须是在确认命中后才能执行,写操作有可能导致主存和Cache中的内容不一致。
- 写直达与写回
写直达:写操作应用于Cache块和下一层的内存中,易于编译,读缺失不产生写,重复写会影响底层的内存。
优点:易于扩展
写回:写操作只应用与Cache,编译较难,读缺失会产生写,重复读不会影响底层内存。常用于写回操作。
优点:使用更小的内存带宽。
按写分配与不按写分配(图表分析|填空)
- 按写分配:(写时取)写失效时,先把所写单元所在的块直接调入Cache,再行写入。
- 不按写分配:(绕写法)写失效时,把所写单元所在的块直接调入底层内存即可。常用于写直达操作。
写缓存(填空)
在处理器和内存之间的一个write buffer,这样CPU就不需要写停顿。
程序执行时间,平均访问时间,命中与失效(计算)
强制、容量与冲突不命中(填空)
强制:第一次访问cache时一定会失效
容量:cache大小有限,不可能装入全部的内存块
冲突不命中:直接映像中的碰撞失效
虚存空间(填空)
虚存空间:把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”
页表(填空)
地址变换后备缓存(TLB)(填空)
cache内部的块表
第八章
What is a bus? (填空)
总线:共享的通信链路,用于连接多个子系统的单组连线
Reliability, Availability and Dependability of the Storage Device * 可靠性、可用性与可信性 (填空)
- 系统可靠性
系统从初始状态开始一直提供服务的能力
用平均无故障时间MTTF衡量 - 系统可用性
系统正常工作时间在连续两次正常服务间隔时间中所占的比率。
用MTTF/(MTTF+MTTR(平均修复时间))来衡量
MTTF+MTTR=MTBF(平均故障间隔时间) - 系统可信性
多大程度上可以合理地认为服务是可靠的
可信性不可度量
Redundant Arrays of Inexpensive Disks (RAID): 廉价磁盘冗余阵列 (简答填空)
PAID 0:数据分块,把数据放在多个盘上。
RAID 5:块交叉分布式奇偶校验盘阵列
RAID 6:双维奇偶校验独立存取盘阵列
可容忍双盘出错
写入数据要访问1个数据盘和2个冗余盘
存储开销是RAID 5的两倍,RAID 6(3读3写)
I/O Benchmarks: Metrics and TPC(填空)
I/O基准:度量和TPC