高级计算机系统结构期末考试复习总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章量化设计与分析基础
1.计算机性能提升表现在哪些方面:
半导体技术不断提高,如特征尺寸和时钟频率;
计算机体系结构不断改进,如高级语言编译器、标准化的操作系统和指令更为简单的RISC 体系结构。
2.并行分类:
1)应用程序的并行分类:
数据级并行(DLP):同时操作多数据
任务级并行(TLP):创建了一些能够独立处理但大量采用并行方式执行的工作任务
2)硬件的体系结构:
指令级并行(ILP):在编译器帮助下。利用流水线的思想开发数据级并行,利用推理执行的思想以中等水平开发数据集并行。
向量体系结构和图像处理单元(GPUs):将单条指令并行应用于一个数据集,来达到数据集并行
线程级并行:在紧耦合硬件模型中开发数据集并行或任务及并行,这种模型允许在线程之间进行交互。
请求级并行:在程序员或操作系统制定的大量去耦合任务之间开发并行
3.Flynn’s分类是如何分类的?
Flynn’s分类主要分为四类:
1)单指令流、单数据流(SISD):一条指令处理一个数据,可以利用指令级并行(ILP)
2)单指令流、多数据流(SIMD):将大量重复设置的处理单元按一定方式互连成阵列,在单一控制部件CU(Contrul Unit)控制下对各自所分配的不同数据并行执行同一指令规定的操作,主要应用于向量体系结构、多媒体扩展指令和图像处理单元(Graphics processor units) 3)多指令流、单数据流(MISD):用多个指令作用于单个数据流,没有商业实现
4)多指令流多数据流(MIMD):每个处理器都提取自己的指令,对自己的数据进行操作,主要用于开发线程级并行TLP(紧耦合MIMD)和请求级并行RLP(松耦合MIMD)
4.什么是“真正”的计算机体系结构?
1)满足目标和功能需求的组成和硬件;
2)限制条件下最大化性能:成本、功耗、可用性;
3)包括指令集体系结构(ISA),微体系结构,硬件
5.计算题:可靠性的计算
平均无故障时间:Mean time to failure (MTTF),MTTF是故障率的倒数。
平均修复时间:Mean time to repair (MTTR)
平均故障间隔时间:Mean time between failures (MTBF) = MTTF + MTTR
可用性:Availability = MTTF / MTBF
例:设磁盘子系统的组件及MTTF如下:
10个磁盘,1000000小时MTTF;
1个ATA控制器,500000小时MTTF;
1个电源,200000小时MTTF;
1个风扇,200000小时MTTF;
1根ATA电缆,1000000小时MTTF;
采用简化假设,寿命符合指数分布,各故障相互独立,试计算整个系统的MTTF.
解答:
系统故障率=10*1/1000000+1/500000+1/200000+1/200000+1/1000000=23000FIT(每10亿小时)
MTTF=1/故障率=43500小时
第二章存储器层次结构设计
1.层次化存储
寄存器→多级CACHE→内存→磁盘
2.命中时间:命中时访问需要的时间,包括判断是否命中的时间;
缺失代价:从内存中替代块的时间;
3.块放置策略有全相联映射和组相联映射两种策略
全相联映射:一个块可以放在CACHE中的任何位置;需要检索CACHE中的所有项:并行比较器
组相联映射:每个块有n个位置可放的cache称为n路组相联cache;存储器中的一个块对应到cache中唯一的组,但是可以放在组内的任意位置上
4.1)命中方法的两种方式有写直达法和写回法
写直达法:保持CACHE和主存的一致;
写回法:修改过的块被替换时才写入主存;
2)不命中(写缺失)的两种方式有写分配和写不分配
写分配:分配CACHE中的块,并写入CACHE;
写不分配:不分配,直接写主存。
5.缺失率是什么?导致缺失的原因是什么?
缺失率是指CACHE访问不命中的比率。
导致缺失的原因有强制缺失、容量缺失和冲突缺失
强制缺失:第一次访问相应cache块,cache中肯定没有改cache块
容量缺失:cache块被移除后又被访问
冲突缺失:重复访问的多个地址映射在CACHE的同一位置
6.性能的定量计算:
程序执行时间=CPU执行程序的时间+等待存储访问的时间
基于CPI的计算:
存储器阻塞时钟周期=(存储器总访问次数/指令数)*缺失率*缺失代价
平均访问时间(AMAT)=命中时间+缺失率*缺失代价
举例1:假设指令cache的缺失率为2%,数据cache的缺失率为4%,处理器的CPI为2(没有存储器阻塞),且每次缺失的代价为100个时钟周期,那么配置一个从不发生缺失的理想的cache,处理器的速度快多少?假定全部LOAD和STORE的频率为36%.
解:指令缺失时钟周期:1*2%100=2.0I
数据缺失:136%*4%*100=1.44I
总存储器阻塞:2.0 I + 1.44 I = 3.44 I
总CPU : 2 + 3.44 = 5.44
配置理想cache: 5.44 / 2 = 2.72 倍
举例2:处理器时钟周期的时间1ns,缺失代价是20个时钟周期,缺失率为每条指令0.05次缺失,cache的访问时间(包括命中判断)为1个时钟周期。假设读操作和写操作的缺失代价相同并且忽略其它写阻塞。请计算AMAT.
解:每条指令的平均存储器访问时间为:AMAT = 命中时间+缺失率缺失代价
=1+0.0520
=2个时钟周期
举例3:假定处理器基本的CPI为1.0,时钟频率为4GHz。假定主存访问时间为100ns,其中包括缺失处理时间。设一级cache中每条指令缺失率为2%。如果增加一个二级cache,命中或缺失访问的时间都是5ns,而且容量大到必须使访问主存的缺失率减少到0.5%,这时的处理器速率能提高多少?
解:主存的缺失代价:
100ns/(0.25ns/时钟周期)=400个时钟周期
只有一级cache时:
总的CPI=1.0+2%*400=9
对于两级cache:
二级cache的缺失代价:
5ns/(0.25ns/时钟周期)=20个时钟周期
总的CPI=1+2%*20+0.5%*400=3.4
有二级cache的处理器性能是没有二级cache性能的9.0/3.4=2.6倍
6.层次化存储优化方法有6种基本的CACHE优化方法:
1)更大的cache块:强制缺失减少;容量和冲突缺失增加,缺失代价增加;
2)更大的CACHE容量:缺失率降低;命中时间,功耗增加;
3)更高的相联度:冲突缺失减少;命中时间增加,功耗增加;
4)更多级CACHE:内存访问时间减少;
5)读缺失优先级更高:缺失代价降低;
6)缓存索引期间避免地址转换:减少命中时间;
第三章指令级并行
1.开发指令级并行的目标:最小化CPI(执行指令平均时钟周期数)
流水线CPI =理想流水线CPI +结构冒险停顿+数据冒险停顿+控制冒险停顿
2.Load指令的5个阶段或5级流水线的分法?5个阶段的具体内容?
Load指令的5个阶段:Ifetch (取指)、Reg/Dec (取数和译码)、Exec (执行) 、Mem (读存储器) 和Wr(写寄存器)
Ifetch (取指) : 从指令存储器取指令并计算PC+4(指令存储器、Addr)
Reg/Dec (取数和译码) : 寄存器取数,同时对指令进行译码(寄存器堆读口、指令译码器) Exec (执行) : 计算内存单元地址(扩展器、ALU)