吉林大学计算机系统结构期末简答题整理

22级,23级期末考试题型分布:简答题占比50%(10道,1题5分),大题占比50%

简答题下面的整理基本全覆盖,每年都会有一两道不在题库里,建议追求高分的同学PPT里的概念至少都要有印象。

大题每个章节一道,着重关注Tomasulo算法,链接相关计算(23级考了两部分分开链接,建议这里要搞懂原理,不能只停留在PPT例题上)和监听式/目录式协议

复习时建议看qgn老师班的学在吉大录播


第一章 概述

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


    单指令流、单数据流(SISD)

    单指令流、多数据流(SIMD)

    多指令流、单数据流(MISD)

    多指令流、多数据流(MIMD)

  2.  请简述程序局部性原理


    程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。

    程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。

    程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。

  3.  请简述Amdahl定律


    加速比依赖于两个因素:可改进比例和部件加速比

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

    如果仅仅对计算任务中的一部分做性能改进,则改进得越多,所得到的总体性能的提升就越有限。

    重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过1/(1-可改进比例)

  4.  影响CPU时间的因素包括什么?(提示:从CPU公式入手,考虑3个参数的影响因素)


    每条指令执行的平均时钟周期数 CPI

    所执行的指令条数 IC

    时钟周期时间(or 时钟频率)

  5.  请简述冯诺依曼体系结构的特点


    (1)计算机硬件是由5大基本部分组成:运算器,控制器,存储器,输入设备,输出设备

    (2)采用二进制

    (3)程序和数据一样存放在存储器

  6. 并行性(22级简答,奔腾第一套/可能为21级真题,老师总结的里面没有但是近两年都考察)
      
         
    计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。 

      (1)同时性:两个或两个以上的事件在同一时刻发生

      (2)并发性:两个或两个以上的事件在同一时间间隔内发生
     
  7. 请简要说明提高计算机系统并行性的3种技术途径,并分别从单机和多机系统的角度举例


    时间重叠: 引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。单机:部件功能专用化,多机:处理机专用化

    资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。单机:重复设置功能部件,多机:重复设置处理机

    资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。单机:分时系统,多机:分布式系统

  8. 计算机体系结构的定义


    狭义的定义 (Amdahl的定义)

    机器语言程序员所见到的计算机的属性,即概念性结构和功能特性

    广义的定义 (《计算机体系结构-量化研究方法》中的定义)

    包括计算机设计所有三个方面 -- 指令集结构,组成和硬件

  9. 简述两大类应用并行级四种主要开发方式


    两大类:数据级并行和任务级并行

    四方式:指令级并行,向量体系结构和GPU,线程级并行,请求级并行


第二章 缓存优化

  1. 请分析影响平均访存时间的因素有哪些?针对每个因素,各举出1种改进方法

      
        Cache命中时间:小容量简单结构cache,虚拟cache,Cache访问流水化,踪迹Cache

        Cache不命中率:增加块大小,增加容量,增加相联度,伪相联Cache,硬件预取,编译器预取,编译器优化,牺牲Cache

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

  2.  请简述Cache的3C失效


    (1)强制性不命中(Compulsory miss)

    当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性不命中。 改进:增加块大小

    (2)容量不命中(Capacity miss )

    如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生不命中。这种不命中称为容量不命中。改进:增加容量

    (3)冲突不命中(Conflict miss)

    在组相联或直接映像Cache中,若太多的块映像到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突不命中。改进:增加相联度

  3.  请针对3C失效的每种失效给出一种降低失效率的方法,并分别分析该种方法的缺点


    (1)强制性不命中

        改进:增加块大小

        缺点:相联度变低增加了冲突不命中,并且增加了不命中开销。

    (2)容量不命中

        改进:增加容量    

        缺点:成本增加了,命中时间可能也增加
    (3)冲突不命中

        改进:增加相联度

        缺点:增加了命中时间

  4. 请简述伪相联的基本思想


    在逻辑上把直接映像Cache的空间上下平分为两个区。对于一次访问,先按直接映像Cache的方式去处理。若命中,则其访问过程与直接映像Cache一样。否则再到另一区相应的位置去查找。若找到,则发生了伪命中,否则就只好访问下一级存储器。

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


    数组合并,内外循环交换,循环融合,分块

    示例:

    数组合并

    基本思想:   将本来相互独立的多个数组合并成为一个复合数组,以提高访问它们的局部性。

    /* 修改前 */

        int x[100];

        int y[100];

        若x[i]和y[i]经常一起访问

    /* 修改后 */

        struct merge{

            int x;

            int y;

        };

        struct merge merged_array[100];

  6. 什么是故障性预取?什么是非故障性预取?

    故障性预取:预取时出现虚地址故障或违反保护权限而发生异常。
    非故障性预取:遇到上述情况时放弃预取,变成空操作,不发生异常。
  7. 降低Cache失效率有哪几种方法?简述其基本思想

    (1)增加块大小:在空间局部性入手,块更少,降低不命中率
    (2)增加相联度:提高一个块降低冲突不命中率
    (3)增加容量:直接针对容量不命中
    (4)伪相联:将Cache上下平分为两部分,相当于2路组相联
    (5)硬件预取:提前取出指令数据到硬件上,降低不命中率
    (6)编译器预取:在编译器中加入预取指令,在用到数据之前发起预取请求
    (7)编译器优化:在软件上进行优化操作,无需对硬件本身做改变。
    (8)牺牲Cache:在Cache和下一级存储的数据通路之间设置一个全相联的小Cache存放牺牲的cache块。
  8. 简述减小Cache失效开销的几种方法。

    (1)两级Cache:第一级Cache更小更快,第二级更大更包容
    (2)让读不命中优先于写:检查写缓冲器中的内容,无相同且存储器可用才继续解决读不命中
    (3)写缓冲合并:写缓冲中若有地址匹配,对应位置空闲,就将这次写入的内容与该项合并。
    (4)请求字处理技术:尽早重启动,请求字优先。
    (5)非阻塞Cache:Cache不命中时仍允许CPU进行其他的命中访问。

第三章 指令集并行

  1. 请说明流水线中有哪三种相关?分别会引起哪种流水线中的冲突(冒险)?


    相关:

    两条指令之间存在某种依赖关系。如果两条指令相关,则它们就有可能不能在流水线中重叠执行或者只能部分重叠执行。

    (1)数据相关(数据冲突之写后读): 指令j使用指令i产生的结果

    (2)名相关(数据冲突之读后写和写后写):如果两条指令使用相同的名,但是它们之间并没有数据流动

    (3)控制相关(控制冲突):分支指令引起的相关

  2. 请说明什么是静态调度?什么是动态调度?动态调度的优点是什么?


    静态调度:是依靠编译器对代码进行调度,也就是在代码被执行之前进行调度;通过把相关的指令拉开距离来减少可能产生的停顿。

    动态调度:在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。

    动态调度的优点:
    相对于静态指令调度 ,动态指令调度是在指令的执行过程中进行调度,使得无关的指令得以先执行,减少阻塞;能够处理一些在编译时情况不明的相关(如存储器访问的相关);能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行;

  3. 请简述Tomasulo算法的基本思想。


    记录和检测指令相关,操作数一旦就绪就立即执行,把发生RAW冲突的可能性减少到最小;

    通过寄存器换名来消除WAR冲突和WAW冲突。

  4. 请说明什么是动态分支预测?有何优点?

    通过硬件技术,在程序执行时根据每一条转移指令过去的转移历史记录来预测下一次转移的方向。通过提前预测分支方向,减少或消除控制相关导致的流水线停顿。

    优点:根据程序的执行过程动态地改变转移的预测方向,因此有更好的准确度和适应性;程序每次执行时,可能预测的分支方向与前次相同或不同。

  5. 请简述分支历史表BHT的基本思想。

    记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。
     
  6. 请简述分支目标缓冲器BTB的基本思想。

    将预测的分支和其目标地址放在一个缓冲区里保存,并以分支指令的地址作为标识,能够尽早地提供成功与否、目标地址、目标指令。
     
  7. 请简述基于硬件的前瞻算法基本思想。

    对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取出、流出和执行后续的指令。只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为ROB的缓冲器中。等到相应的指令得到“确认”(即确实是应该执行的)之后,才将结果写入寄存器或存储器。
     

第四章 数据集并行

  1.   请简述向量体系结构和GPU体系结构的差异。

    向量体系结构:指令流水线深,ALU宽度窄,单次指令流水后能处理更多数据,掩盖不必要的流水线时间。
     GPU:指令流水线浅,ALU宽度宽,流水本身比较简单,直接对更多的数据进行并行计算,同一时刻处理更多数据。
     
  2.   请简述GPU和CPU在设计理念上的差异性。

    (1)GPU的核心数远超于CPU,但是每个核的缓存大小比CPU的小,并且数字逻辑运算单元相对少而简单。
    (2)CPU的结构比GPU复杂,能处理比较复杂的计算任务,而GPU主要是面向多媒体,计算任务相对而言简单,也既对海量数据进行相同的操作。
    (3)GPU采用数量众多的计算单元和超长流水线,但只有非常简单的控制逻辑,省去了Cache,而CPU被Cache占据了大量空间,且有复杂的控制逻辑和众多的优化电路,相比之下计算能力只占GPU很小一部分。
     
  3.   请简述GPU各个层次组件间的相似性。


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

    硬件上,同样也体现出了自相似性。逐层的,都是相似的结构,包括调度器、任务的buffer、数据存储和处理单元。

  4.   请简述GPGPU虚拟化的思想。

    将GPU在硬件上进行切片,并将这些时间片分配给虚拟机使用。使每个用户都能满负荷使用GPU,提高GPU利用率。
  5. 请简述向量长度寄存器和向量屏蔽寄存器的作用。


    向量长度寄存器:将软件层程序中实际向量长度N硬件层向量寄存器中的元素数目64相适配。

    向量屏蔽寄存器:当向量长度小于64时,或者条件语句控制下对向量某些元素进行单独运算时使用

  6.   请简述指令编队的思想。
    由一组不包含结构冒险的向量指令组成,一个编队中的所有向量指令在硬件条件允许时可以并行执行
  7.   请简述链接技术的思想。

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

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

    横向计算、纵向计算、横纵(分组)计算
     
  10. 向量体系结构的性能优化方式

    多车道技术、链接技术、编队技术、分段开采技术
     

第五章 线程级并行

  1.   请在PVP、SMP、MPP、DSM和COW中任选一种,简要描述其特点。


    并行向量处理机(PVP):
    这样的系统中包含了少量的高性能专门设计定制的向量处理器 VP,每个至少具有1Gflops的处理能力;

    存储器以兆字节每秒的速度向处理器提供数据;

    向量处理器VP和共享存储模块通过高带宽的交叉开关网络互连;

    通常不使用高速缓存,而是使用大量的向量寄存器和指令缓冲器;

  2. 从存储角度来看MIMD(22级简答题最后一道,只有qgn老师班讲了这个)

    (1)单地址空间共享存储
               a. 均匀存储访问:PVP、SMP
               b. 非均匀存储访问:DSM
    (2)多地址空间非共享存储:MPP、COW
     
  3. 什么是多处理机Cache一致性问题?

    允许共享数据进入Cache,就可能出现多个处理器的Cache中都有同一存储块的副本,当其中某个处理器对其Cache中的数据进行修改后,就会使得其Cache中的数据与其他Cache中的数据不一致。
     
  4.   请简述监听式协议的原理。

    Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线(它们一直在监听)来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。
     
  5.   请简述目录式协议的原理。

    物理存储器中数据块的共享状态被保存在一个称为目录的地方用于共享。
     
  6.   请比较说明写作废协议和写更新协议性能上的差别。


    在对同一个数据进行多次写操作而中间无读操作的情况下,写更新协议需进行多次写广播操作,而写作废协议只需一次作废操作。

    在对同一Cache块的多个字进行写操作的情况下,写更新协议对于每一个写操作都要进行一次广播,而写作废协议仅在对该块的第一次写时进行作废操作即可。

    写作废是针对Cache块进行操作,而写更新则是针对字(或字节)进行。

    考虑从一个处理器A进行写操作后到另一个处理器B能读到该写入数据之间的延迟时间。写更新协议的延迟时间较小。

  7.   请解释,在目录式协议中,什么是本地节点、宿主节点、远程节点和共享集合?

    本地节点:发出访问请求的节点
    宿主节点:包含所访问的存储单元及其目录项的节点
    远程节点:Cache中拥有该块的副本
    共享集合:位向量记录拥有其副本的处理器的集合
     
  8. 请简述目录式协议中,目录的三种结构。


    全映像目录:每一个目录项都包含一个N位的位向量,其每一位对应于一个处理机
    有限映像目录:采用位数固定的目录项目,通过对同一数据块在所有cache中的副本总数进行限制来实现。
    链式目录:用一个目录指针链表来表示共享集合。当一个数据块的副本数增加(或减少)时,其指针链表就跟着变长(或变短)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值