吉林大学2021级计算机系统结构期末复习

对着ppt摘的

如有错误,敬请斧正

简答题:

1.简述Flynn分类法将计算机系统结构分为哪四类

SISD,SIMD,MISD,MIMD

2.简述程序局部性原理
 程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。
常用的一个经验规则
程序执行时间的90%都是在执行程序中10%的代码。
程序的时间局部性
程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性
程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

3.简述amdahl定律

加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。

4.影响CPU时间的因素包括什么

CPU的性能取决于3个参数
时钟周期时间:取决于硬件实现技术和计算机组成。
CPI:取决于计算机组成和指令集结构。
IC:取决于指令集结构和编译技术。
        处理器性能优化的策略:

5.简述冯诺依曼体系结构的特点(ppt上没找到)

计算机由五大部件组成:存储器,运算器,控制器,输入设备,输出设备。
指令和数据以同等地位存于存储器,可按地址顺序访问。
指令和数据用二进制表示。
指令由操作码和地址码组成。
存储程序,程序在计算机中顺序存放。
以运算器为中心。(不合理:花大量的时间进行数据传输,降低了运算器数据运算的效率
6.简要说明提高计算机系统并行性的3种技术途径,并分别从单机和多机系统的角度举例

时间重叠,资源重复 ,资源共享

单机:部件功能专用化 重复设置功能部件 使用分时系统

多机:处理机专用化  重复设置处理机  使用分布式系统

7.分析影响平均访存时间的因素并分别给出解决方法 

因素:命中时间,不命中率,不命中开销 

 降低不命中率的方法

1.增加Cache块大小。 (强制不命中)
2.增加Cache的容量。(容量不命中)
3.提高相联度。(冲突不命中)
4.伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。

5. 硬件预取技术。在处理器提出访问请求前预取指令和数据。
6. 编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
7. 编译器优化,通过对软件的优化来降低失效率。
8. Victim Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

减少不命中开销的方法


两级Cache
读不命中优先于写
写缓冲合并
请求字处理技术
非阻塞Cache

减少命中时间的方法

使用小容量,结构简单的Cache

虚拟cache

cache访问流水化

trace cache

8.简述cache的3c失效
 强制性不命中(Compulsory miss)
当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性不命中。  (冷启动不命中,首次访问不命中)
 容量不命中(Capacity miss ) 
如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生不命中。这种不命中称为容量不命中。
 冲突不命中(Conflict miss)
在组相联或直接映像Cache中,若太多的块映像到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突不命中。 (碰撞不命中,干扰不命中)

9.针对3c失效给出一种降低失效率的方法,并分析其缺点

见8,缺点分别是增加了不命中开销(强制不命中)

增加了命中时间

增加了命中时间(价格昂贵)

10.简述伪相联的基本思想

基本思想及工作原理   
   在逻辑上把直接映象Cache的空间上下平分为两个区。
对于任何一次访问,伪相联Cache先按直接映象Cache的方式去处理。
若命中,则其访问过程与直接映象Cache的情况一样。
若不命中, 访问下一级存储器前,先检查 Cache 另一个位置(块),看是否匹配。确定这个另一块的一种简单的方法是将索引字段的最高位取反,然后按照新索引去寻找伪相联组中的对应块。如果这一块的标识匹配,则称发生了伪命中。(两块交换)
否则,就只好访问下一级存储器。
主存 送到 伪相联块 再做 伪相联交换

11.例举一种编译器优化的方法,并举例说明 

(1)数组合并
将本来相互独立的多个数组合并成为一个复合数组,以提高访问它们的局部性。(一个数组里的元素在内存空间是连续分配的)
(2)内外循环交换
(3)循环融合
多个独立的循环融合为单个的循环。
这多个循环访问同样的数组,只是对相同的数据作不同的运算。
融合后读入Cache的数据在被替换出去之前,能得到反复的使用 。
(4)分块

12.说明流水线中有哪三种相关?分别会引起哪种流水线冲突

名相关(数据冲突),数据相关(数据冲突),控制相关(控制冲突),还有一种 结构冲突由硬件资源不足引起

13.说明什么是静态调度,什么是动态调度,动态调度的优点

静态调度
依靠编译器对代码进行静态调度,以减少相关和冲突。
它不是在程序执行的过程中、而是在编译期间进行代码调度和优化,对相关的处理方法在程序执行过程中始终不变。
通过把相关的指令拉开距离来减少可能产生的停顿
①静态调度:是依靠编译器对代码进行调度,也就是在代码被执行之前进行调度;
②动态调度:是硬件调度指令,是在代码执行的过程中进行调度。

动态调度优点

能够处理一些在编译时情况不明的相关(比如涉及到存储器访问的相关),并简化了编译器;
能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行。
    缺点:以硬件复杂性的显著增加为代价

14.简述tomasulo算法的基本思想

 
核心思想

记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小(通过CDB);
通过寄存器换名来消除WAR冲突和WAW冲突。

15.说明什么是动态分支预测及其优点

静态分支预测技术:进行的操作事先预定好 ,与分支的实际执行情况无关;
动态分支预测技术:在程序运行时根据分支执行过去的表现预测其将来的行为(如果分支行为发生变化,预测结果跟着改变,此外有更好的预测准确度和适应性)。

动态分支预测技术:
采取硬件技术。
在程序执行时,根据每一条转移指令过去的转移历史记录预测下一次转移的方向。
提前预测分支方向,减少或消除控制相关导致的流水线停顿。
 优点:
根据程序的执行过程动态地改变转移的预测方向,有更好的准确度和适应性。
程序每次执行,预测的分支方向与前次相同或不同。

16.简述分支历史表bht的基本思想

分支历史表BHT(Branch History Table)
   或分支预测缓冲器(Branch Prediciton Buffer)
最简单的动态分支预测方法。 
用BHT来记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。 

17.简述分支目标缓冲器btb的基本思想

分支目标缓冲器(BTB)
将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标识。
这个缓冲区就是分支目标缓冲器(Branch-Target Buffer,简记为BTB,或者Branch-Target Cache)。 
把BHT中转移指令字段改为转移指令地址 

18.简述基于硬件的前瞻算法思想

基于硬件的前瞻执行结合了三种思想:
①动态分支预测。目的:选择后续执行的指令。
②在控制相关的结果尚未出来之前,前瞻地执行后续指令。乱序
③用动态调度对基本块的各种组合进行跨基本块的调度。

19.简述向量体系结构和gpu体系结构的差异

向量体系结构
“窄而深”
指令流水线深,ALU宽度窄。
单次指令流水后能处理更多数据,掩盖不必要的流水线时间。

GPU
“宽而浅”
指令流水线浅,ALU宽度宽。
流水本身比较简单,直接对更多的数据进行并行计算,同一时刻处理更多数据

20.简述cpu和gpu在设计理念上的差异性

CPU和GPU均有自己的存储,控制逻辑和运算单元,但区别是CPU的控制逻辑更复杂,而GPU的运算单元虽然较小但是众多,GPU也可以提供更多的寄存器和程序员可控的多级存储资源。

21.简述gpu各层次组件间的相似性

gpu在任务的划分上,存在着自相似性;
每一个第i级的任务,都可以划分为一组i-1级的任务;
并且同一级别的任务之间是并行的。

gpu在硬件上,同样也体现出了自相似性。

逐层的,都是相似的结构,包括调度器、任务的buffer、数据存储和处理单元。

22.简述gpgpu虚拟化的思想

企业级做云计算时常常采用虚拟化技术:
一个GPU的SM很多,但是对于单用户只能用很少的SM,这样利用率很低;
硬件上把多个SM进行分割成多个切片;
软件上为每个用户分配一个SM切片;
使得每个用户都能满负荷使用SM;
每个用户感觉自己拥有了一个GPU。

23.简述向量长度寄存器和向量屏蔽寄存器的作用

向量长度寄存器VL
64位,每一位对应于向量寄存器的一个单元。
VL控制所有向量运算的长度,包括ld/st。
作用:将软件层程序中实际向量长度N与硬件层向量寄存器中的元素数目64相适配
向量屏蔽寄存器VM
当向量长度小于64时,或者条件语句控制下对向量某些元素进行单独运算时使用。
即使掩码(maskcode)中有大量的0,使用VM的向量指令速度依然远远快于标量计算模式。

24.简述指令编队的思想

向量体系结构的相关概念

循环间相关:对一个循环来说,如果各轮迭代之间存在相关性,则称为循环间相关,否则为循环间无关
可向量化:针对一组Mips指令描述的循环,如果满足循环间无关,则循环称为可向量化的,编译器可为其生成向量指令。
指令编队(convoy):由一组不包含结构冒险的向量指令组成,一个编队中的所有向量指令在硬件条件允许时可以并行执行。

25.简述链接技术思想

链接技术:当两条指令出现“写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的) 冲突,就有可能把它们所用的功能部件头尾相接,形成一个链接(长)流水线,进行流水处理。

26.简述分段开采技术的思想

当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
这种技术称为分段开采技术。

27.在pvp,smp,mpp,dsm,cow中任选一种简述其特点

PVP,Parallel Vector Processor, 并行向量处理机

特性:
有少量的高性能专门设计定制的向量处理器 VP,每个至少具有1Gflops的处理能力;
存储器以每秒兆字节速度向处理器提供数据;
向量处理器VP和共享存储模块通过高带宽的交叉开关网络互连;
不使用高速缓存,使用大量的向量寄存器和指令缓冲器;
例如:Cray90、NECSX-4和我国的银河1号 


SMP, Symmetric Multiprocessor, 对称多处理机

特性:
使用商品微处理器(具有片上或外置高速缓存,要解决一致性问题);
由高速总线(或交叉开关)连向共享存储器和I/O;
主要应用于商务,例如服务器、数据库、在线事务处理系统和数据仓库等;
重要的是系统是对称的:
每个处理器可等同的访问共享存储器、I/O设备和操作系统服务。
因为对称,有较高的并行度;
因为共享存储,限制系统中的处理器不能太多(一般少于64个),同时总线和交叉开关互连一旦作成也难于扩展。
例如:IBM R50、SGI Power Challenge、DEC Alpha服务器8400和我国的曙光1号等 。


MPP, Massively Parallel Processor, 大规模并行处理机

超大型计算机系统,处理器成千上万;
处理节点采用商品微处理器;每个节点上有自己的局部存储器;采用高带宽和低延迟的互连网络(专门设计和定制的)进行节点互连;
能扩放至成百上千乃至上万个处理器;
一种异步的MIMD机器,程序系由多个进程组成,每个都有其私有地址空间,进程间采用传递消息相互作用;
主要应用是科学计算、工程模拟和信号处理等以计算为主的领域。
NIC:网络接口控制器
例如:Intel Paragon、Cray T3E、IntelOption Red和我国的曙光-1000等都是这种类型的机器。


DSM,Distributed Shared Memory, 分布式共享存储多处理机

物理上有分布在各节点中的局部存储器,但对用户而言,系统硬件和软件提供了逻辑上单地址的编程空间,所有的LM形成一个共享空间,形成共享编程的界面。
高速缓存目录DIR支持分布高速缓存的一致性。
DSM 相对于 MPP的优越性是编程较容易。
例如:Stanford DASH、Cray T3D和SGI/Cray Origin 2000等。


COW,Cluster of Workstations, 工作站集群

机群往往是低成本的变形的MPP;
COW 的重要界线和特征是:
①COW 的每个节点都是一个完整的工作站(不包括监视器、键盘、鼠标等),这样的节点有时叫作“无头工作站”,一个节点也可以是一台PC或SMP;
②各节点通过一种低成本的商品(标准)网络(如以太网、FDDI和 ATM 开关等)互连(有的商用机群也使用定做的网络);
③各节点内总是有本地磁盘,而 MPP节点内却没有;
④节点内的网络接口是松散耦合到I/O 总线上的,而 MPP内的网络接口是连到处理节点的存储总线上的,因而可谓是紧耦合式的;
⑤一个完整的操作系统驻留在每个节点中,而 MPP中通常只是个微核,COW 的操作系统是工作站 UNIX,加上一个附加的软件层以支持单一系统映像、并行度、通信和负载平衡等。
Berkeley NOW、Alpha Farm、Digital Truclster等都是 COW 结构。

28.什么是多处理机cache一致性问题

允许共享数据进入Cache,导致多个处理器的Cache中都有同一存储块的副本。
某个处理器对其Cache中的数据进行修改后,使得其Cache中的数据与其他Cache中的数据不一致。 

29.简述监听式协议的基本思想

监听式协议(snooping)
每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。
Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线(它们一直在监听)来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。 

原因:
广播和监听的机制使得监听一致性协议的可扩放性很差。 
寻找替代监听协议的一致性协议。
              (采用目录协议)
目录协议
目录:一种集中的数据结构。对于存储器中的每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。 
特点:对于任何一个数据块,都可以快速地在唯一的一个位置中找到相关的信息。这样一致性协议避免了广播操作。
位向量:记录哪些Cache中有副本。
每一位对应于一个处理器。
长度与处理器的个数成正比。
由位向量指定的处理机的集合称为共享集S。 

30.简述目录式协议的基本思想

目录式协议(directory)
物理存储器中数据块的共享状态被保存在一个称为目录的地方。

1. 监听协议的基本实现技术
实现监听协议的关键有3个方面
处理器之间通过一个可以实现广播的互连机制相连。
通常采用的是总线。
当一个处理器的Cache响应本地CPU的访问时,如果它涉及全局操作,其Cache控制器就要在获得总线的控制权后,在总线上发出相应的消息(如cache A发作废)。
所有处理器都一直在监听总线,它们检测总线上的地址在它们的Cache中是否有副本。若有,则响应该消息,并进行相应的操作(如cache B)。
写操作的串行化:由总线实现
(获取总线控制权的顺序性)

31.比较说明写作废协议和写更新协议性能上的差距

写更新和写作废性能上的差别主要来自:
在对同一个数据进行多次写操作而中间无读操作的情况下,写更新需进行多次写广播操作,而写作废只需一次作废操作。
在对同一Cache块的多个字进行写操作的情况下,写更新对于每一个写操作都要进行一次广播,而写作废仅在对该块的第一次写时进行作废操作即可。
写作废是针对Cache块进行操作,而写更新则是针对字(或字节)进行。
考虑从一个处理器A进行写操作后到另一个处理器B能读到该写入数据之间的延迟时间。
写更新协议的延迟时间较小。(写更新B已有副本,写作废要等待调入新的副本)

32.解释目录式协议中,什么是本地节点,宿主节点,远程节点和共享集

本地结点、宿主结点以及远程结点的关系 
本地结点:发出访问请求的结点 
宿主结点:包含所访问的存储单元及其目录项的结点 
远程结点:可以和宿主结点是同一个结点,也可以不是同一个结点。 

位向量记录拥有其副本的处理器的集合。这个集合称为共享集合。

33.简述目录式协议中,目录的三种结构

不同目录协议的主要区别主要有两个
所设置的存储器块的状态及其个数不同
目录的结构
目录协议分为3类
全映像目录

全映像目录
每一个目录项都包含一个N位(N为处理机的个数)的位向量,其每一位对应于一个处理机。
优点:处理比较简单,速度也比较快。
缺点:
存储空间的开销很大。
目录项的数目与处理机的个数N成正比,而目录项的大小(位数)也与N成正比,因此目录所占用的空间与N2成正比。
可扩放性很差。


有限映像目录

有限映像目录 
提高其可扩放性和减少目录所占用的空间。
核心思想:采用位数固定的目录项目
限制同一数据块在所有Cache中的副本总数。 
例如,限定为常数m。则目录项中用于表示共享集合所需的二进制位数为:m×log2N。 
假设m=4,N=64:有限映像为4*6=24位,全映像为64位
目录所占用的空间与N×        成正比。
缺点
当同一数据的副本个数大于m时,必须做特殊处理。当目录项中的m个指针都已经全被占满,而某处理机又需要新调入该块时,就需要在其m个指针中选择一个,将之驱逐,以便腾出位置,存放指向新调入块的处理机的指针 。


链式目录

链式目录
用一个目录指针链表来表示共享集合。当一个数据块的副本数增加(或减少)时,其指针链表就跟着变长(或变短)。
由于链表的长度不受限制,因而带来了以下优点:既不限制副本的个数,又保持了可扩展性。
链式目录有两种实现方法
单链法
    当Cache中的块被替换出去时,需要对相应的链表进行操作——把相应的链表元素(假设是链表中的第i个)删除。实现方法有以下两种:
沿着链表往下寻找第i个元素,找到后,修改其前后的链接指针,跳过该元素。
找到第i个元素后,作废它及其后的所有元素所对应的Cache副本。
双链法 
在替换时不需要遍历整个链表。
节省了处理时间,但其指针增加了一倍,而且一致性协议也更复杂了。 

2021级2023年计算机系统结构期末题目说明

题型:简答,选择,填空,大题

简答,选择,填空基本是知识点整理中的知识,也有很少一些ppt上的,没有摘下来,建议看ppt的时候尽量都过一遍

另外补充一点,选择最后一题考了个第四章向量体系结构里各种处理机的特点,所以建议还是看一看

大题四个,第一个和第二个是第一章里出的,考cpu性能计算公式那种

第三个是基于硬件的前瞻算法,就rob那个,建议学透彻点

第四个考了监听协议

关于算法考试也提一嘴吧,不过过的时间有点长,记不太清其他的,就说下最后两个大题

倒数第二题考查找,在一个行与列均是递增的矩阵中查找给定的值

最后一题,考了一个ppt上的动态规划部分的数塔问题内容的递推关系式

  • 30
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值