计算机系统结构简答题

60道系统结构的简答题,全部由个人整理,可能会有错误ORZ
欢迎捉虫,捉虫请直接留言_(:3」∠❀)_



1.简述计算机系统的层次结构(从计算机语言的角度)。

  • 第一级:微程序机器级
  • 第二级:机器语言级(传统机器级)
  • 第三极:操作系统虚拟机
  • 第四级:汇编语言虚拟机
  • 第五级:高级语言虚拟机
  • 第六级:应用语言虚拟机

2.什么是虚拟机?为什么要使用虚拟机?

  • 虚拟机:由软件实现的机器
  • 以区别由硬件/固件直接实现的物理机器

3.什么是翻译?什么是解释?

  • 翻译:先把N+1级程序全部转换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问
  • 解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令。依次重复进行

即 翻译:逐程序译码,一起执行;解释:逐句译码逐句执行
解释执行比编译后执行所画的时间多但占用的存储空间少

4.计算机系统结构、计算机组成和计算机实现三者之间的关系,并举例说明。

  • 计算机系统结构:计算机系统的软、硬件的界面

    即机器语言程序员所看到的传统机器级所具有的属性。

  • 计算机组成:计算机系统结构的逻辑实现

    包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
    着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。

  • 计算机实现:计算机组成的物理实现

    包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
    着眼于:器件技术(起主导作用)、微组装技术。

例:
指令集中是否有乘法指令-->计算机系统结构的内容
是专门的乘法器完成?由多个加法器经过多步操作实现 -->组成原理
乘法器的硬件实现 --> 计算机实现

系统结构:目的
组成:方式
实现:底层

5.什么是软件的可移植性?实现软件可移植性的常用方法有哪三种?

  • 可移植性即软件兼容,指一个软件不经修改或者秩序少量修改就可以由一台计算机移植到另一台计算机上运行
  • 常用实现方法
    • 系列机
    • 模拟与仿真
    • 统一高级语言

6.什么是模拟?什么是仿真?

  • 模拟:用软件方法在一台现有的宿主机上的微程序去解释目标机的指令集,纯软件解释执行
  • 仿真:在一台现有的宿主机上的微程序去解释目标机的指令集,用仿真微程序

模拟程序存放在主存中,仿真微程序存储在控制存储器中。

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

  • SISD:单指令流单数据流
  • SIMD:单指令多数据流(eg:分布式存储器的SIMD处理机,向量超级计算机)
  • MISD:多指令单数据流
  • MIMD:多指令多数据流

8.请简述程序局部性原理。

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

  • 常用的一个经验规则:程序执行时间的90%都是在执行程序中10%的代码。
  • 程序的时间局部性:程序即将用到的信息很可能就是目前正在使用的信息。
  • 程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息
    在空间上相邻或者临近。

9.简述Amdahl定律。

  • Amdahl定律内容:加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。
  • 系统性能加速比:\(加速比=\frac{系统性能_{改进后}}{系统性能_{改进前}}=\frac{总执行时间_{改进前}}{总执行时间_{改进后}}\)
  • 程序执行的CPU时间公式:\(CPU时间=IC \times CPI \times 时钟周期时间\)

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

  • 时钟周期时间:取决于硬件实现技术和计算机组成
  • CPI:取决于计算机组成和指令集结构
  • IC:取决于指令集结构和编译技术

11.冯诺依曼体系结构的特点。

  • 以运算器为中心。
  • 在存储器中,指令和数据同等对待。
  • 存储器是按地址访问,顺序编址
  • 指令顺序执行、分支转移、PC计数
  • 指令=操作码+操作数
  • 指令、数据二进制表示

12.简述现代计算机对比冯诺依曼体系结构,在哪几个方面进行了改进。

  • 输入输出方式
  • 并行处理技术
  • 存储器组织结构的发展
  • 指令集的发展

13.什么是系列机?什么是兼容机?

  • 系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。
  • 兼容机:由不同公司厂家生产的具有相同系统结构的计算机 。

14.什么是软件兼容?软件兼容有几种?其中哪一种是软件兼容的根本特征?

  • 一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上正确地运行。差别只是执行时间的不同。我们称这两台计算机是软件兼容的。
  • 软件兼容:
    • 向上(下)兼容:按某档机器编制的程序,不加修改就能运行于比它高(低)档的机器。
    • 向前(后)兼容:按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前(后)投入市场的机器。

向后兼容是系列机的根本特征。

15.什么是并行性?

  • 并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。
    • 同时性:两个或两个以上的事件在同一时刻发生。
    • 并发性:两个或两个以上的事件在同一时间间隔内发生。

16.简要说明提高计算机系统并行性的3种技术途径,并分别从单机和多机系统的角度举例。

  • 时间重叠:
    引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。原则上不重复设置硬件设备。
  • 资源重复:
    引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
  • 资源共享:
    这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。如,多道程序。

17.增强CISC机器的指令功能主要从哪几方面着手?

  • 面向目标程序增强指令功能;
  • 面向高级语言和编译程序改进指令系统;
  • 面向操作系统的优化实现改进指令系统。

18.简述CISC存在的主要问题。

  • CISC结构的指令系统中,各种指令的使用频率相差悬殊。
  • CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
  • CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。
  • CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
  • 在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高統的性能。

19.简述RISC的优缺点及设计RISC机器的一般原则。

  • 选取使用频率最高的指令,并补充一些最有用的指令。
  • 条指令的功能应尽可能简单,在一个机器周期内完成。
  • 所有指令长度均相同。
  • 只有load和store操作指令才访问存储器,其他指令操作均在寄存器之间进行。
  • 以简单、有效的方式支持高级语言。

20.根据CPU内部存储单元类型,可将指令集结构分为哪几类?

  • 堆栈型指令集结构
  • 累加器型指令结构
  • 通用寄存器型指令结构

21.常见的三种通用寄存器型指令集结构是什么?

  • 寄存器-寄存器型
  • 寄存器-存储器型
  • 存储器-存储器型

22.计算机指令集结构设计所涉及的内容有哪些?

  • 指令集功能设计:主要有RISC和CISC两种技术发展方向。
  • 寻址方式的设计。
  • 操作数表示和操作数类型。
  • 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。
  • 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式三种。

23.流水技术有哪些特点?

  • 将处理过程分解为若干子过程,专门的功能部件来实现
  • 各段的时间尽可能相等
  • 各部件间都有一个缓冲寄存器
  • 适于大重复的时序过程
  • 需要通过时间和排空时间。

24.什么是静态流水线?什么是动态流水线?

  • 静态流水线:同一时间段内,多功能流水线中的各段只能按同种功能的连接方式工作;
  • 动态流水线:同时间段内,多功能流水线中的各段可以按照不同的方式连接同时执行多种功能。

25.什么是单功能流水线?什么是多功能流水线?

  • 单功能流水线:只能完成一种固定功能的流水线。
  • 多功能流水线:流水线的各段可以进行不同的连接,以实现不同的功能。

26.什么是线性流水线?什么是非线性流水线?

  • 线性流水线:流水线的各段串行连接,没有反馈回路。
  • 非线性流水线:流水线中除了有串行的连接外,还有反馈回路。

27.列举3种相关。

  • 数据相关
  • 名相关
  • 控制相关

28.流水线中有哪三种冲突?各是什么原因造成的?

  • 结构冲突:硬件资源满足不了指令重叠执行的要求;
  • 数据冲突:指令在流水线中重叠执行时需要用到前面指令的执行结果;
  • 控制冲突:流水线遇到分支指令和其他会改变PC值的指令。

29.选择至少2种解决流水线结构冲突的方法简述。

  • 流水线停顿一个时钟周期,推迟后面的指令操作。
  • 设置相互独立的指令存储器和数据存储器。

30.选择至少2种解决流水线数据冲突的方法简述。

  • 定向技术,将计算结果从其产生的地方直接送到其他指令需要的地方。
  • 通过编译时让编译器重新组织指令顺来消除冲突。

31.选择至少2种解决流水线控制冲突的静态方法简述。

  • 预测分支失败
  • 预测分支成功
  • 延迟分支

32.简述流水寄存器的作用。

将各段的工作隔开使得相互不会干扰,保存相应各段的处理结果,向后传到后面将要用到的数据或者控制信息。

33.简述分支延迟槽的主要思想。

编译器每当遇到分支指令,就在其后连续生成k个空指令位,称为延迟槽,并根据不同的调度规则将原始代码中分支指令附近的指令放进延迟槽中,如果延迟槽没有填满,剩余部分用nop指令填充,即气泡。
延迟槽中的指令同分支指令都看做普通的指令顺序流水,无论分支指令成功与否,都先按顺序执行延迟槽中的指令。
延迟槽中的指令"掩盖"了流水线原来必须插入的暂停周期,减少了分支指令带来的延迟。

34.简述分支延迟槽的三种调度策略。

  • 从前调度:从分支指令之前找一条独立的指令 移动到延迟槽中。
  • 从目标处调度:把分支成功的目标地址指令复制到延迟槽中,并把分支目标地址改成分支后继地址。永远猜测分支是成功的,如果猜错,则丢弃延迟槽中指令的结果。
  • 从失败处调度:把分支失败的目标地址指令移动到延迟槽中。永远猜测分支是失败的。如果猜错,则丢弃延迟槽中指令的结果。

35.简述流水线冻结/排空策略。

在流水线中停住或删除分支后的指令,直到知道转移目标地址。

36.什么是静态调度?什么是动态调度?动态调度的优点是什么?

  • 静态调度:依靠编译器对代码进行静态调度,以减少相关和冲突。

    它不是在程序执行的过程中、而是在编译期间进行代码调度和优化。通过把相关的指令拉开距离来减少可能产生的停顿。

  • 动态调度

    在程序的执行过程中,依靠专门硬件对代码进行调度,减少数据相关导致的停顿。
    能够处理一些在编译时情况不明的相关(比如涉及到存储器访问的相关),并简化了编译器;
    能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行。

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

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

38.什么是动态分支预测?有何优点?

  • 动态分支预测:在程序运行时,根据分支指令过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也跟着改变。
    有更好的预测准确度和适应性。
  • 优点:
    • 提高准确性
    • 减少开销,尽快找到分支目标地址(或指令)(避免控制相关造成流水线停顿)
    • 有效的恢复现场

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

  • 用BHT来记录分支指令最近一次或几次的执行情况(成功或不成功),并据此进行预测。

40.简述分支目标缓冲器BTB的基本思想。

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

41.简述基于硬件的前瞻算法基本思想。

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

  • 实现前瞻的关键思想:
    允许指令乱序执行,但必须顺序确认。

42.单级存储器的主要矛盾是什么?通常采取什么方法来解决?

(1)速度越快,每位价格就越高。
(2)容量越大,每位价格就越低。
(3)容量越大,速度越慢。
采取多级存储层次方法来解决。

43.“Cache-主存”和“主存-辅存”层次的主要区别是什么?

存储层次 “Cache-主存”层次 “主存-辅存”层次
目的 为例弥补主存速度的不足 为了弥补主存容量的不足
存储管理的实现 全部由专用硬件实现 主要由软件实现
访问速度的比值(第一级比第二级) 几比一 几万比一
典型的块(页)大小 几十个字节 几百到几千个字节
CPU对第二级的访问方式 可直接访问 均通过第一级
不命中时CPU是否切换 不切换 切换到其他进程

44.在存储层次中应解决哪四个问题?

  • 映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。
  • 查找算法:当所要访问的块在高一层存储器中时,如何找到该块。
  • 替换算法:当发生失效时,应替换哪-块。
  • 写策略:当进行写访问时,应进行哪些操作。

45.简述Cache的基本工作原理。

(1)CPU要访存,给出主存地址。
(2)主存地址转换成Cache地址。 主存块地址转换为Cache块地址,直接拼接上块内位移。这里注意,这个是理论上的,其实目的就是找到该主存块可能在Cache的哪一块上。
(3)看看要访问的在不在Cache中,可能有两种情况:
I. 命中。把Cache中的数据送至CPU。
II. 不命中。访问主存,并从主存中把一整块调入Cache。

46.在Cache-主存层中,地址映像方法有哪几种?它们各有什么优缺点?

  • 全相联映像。实现查找的机制复染,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
  • 直接映像。实现查找的机制简单,速度快。 Cache空间的利用率较低, 块冲突概率较高,因而Cache的失效率也高。
  • 组相联映像。组相联是直接映像和全相联的一种折中。

47.简单使用比较器进行4路组相联Cache并行查找的过程。

48.Cache-主存层常用的替换算法有哪些?

  • 随机法
  • 先入先出法
  • LRU法。

49.简述Cache写命中时的两种写策略。

  • 写直达法。写Cache的同时,写主存。但是有一个问题,写Cache快,写主存慢。所以一般加一个写缓冲区,CPU只要写到写缓冲区里面了,就当做写完了,继续执行。
  • 写回法。只写Cache,先不写主存。每块设置一个修改标志位,如果该块被修改了,当它被替换的时候,需要写回主存。如果没有被修改,就不用写回了,直接覆盖就行了。写回法的好处是,如果对同一块进行多次写操作,只要写回最后一次的就好。

50.简述Cache写失效的两种处理方法。

  • 按写分配法。先把要访问的存储单元所在的块从主存中调入Cache中,然后再写入。
  • 不按写分配法。直接写入主存。

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

  • 命中时间
    • 简单小Cache
    • 虚拟Cache
    • Cache访问流水化
    • 踪迹Cache
  • 不命中率
    • 减少强制性不命中 -- 增加块大小;
    • 减少容量不命中 -- 增加容量
    • 减少冲突不命中 -- 提高相联度
  • 不命中开销
    • 两级Cache
    • 读不命中优先于写不命中
    • 写缓冲合并
    • 非阻塞Cache

52.Cache的3C失效是哪三种失效?针对每种失效给出一种降低失效率的方法。

  • 强制性失效
  • 容量失效
  • 冲突失效

53.多体交叉存储器有哪两种编址方式?各有什么特点。

  • 高位交叉编址
    (1)高位是体号。所以当给出访问地址时,根据高位能够定位存储体;
    (2)低位是体内地址,因此当给出访问地址时,使用低位确定是某个存储体中的哪个存储单元;
    (3)这种编址方式,在一个存储体内,地址是连续的,因此易于扩展;
    (4)这种编址方式,也是由于在一个存储体内,地址是连续的,因此当访问连续地址的时候,并不能发挥并行的特点;
    (5)访问合理时,能够使不同的请求源访问不同的存储体,实现并行工作,比如说CPU访问一个存储体时,I/O访问另一个存储体。
  • 低位交叉编址
    (1)低位是体号。所以当给出访问地址时,根据低位能够定位存储体;
    (2)高位是体内地址,因此当给出访问地址时,使用高位确定是某个存储体中的哪个存储单元;
    (3)这种编址方式,连续的地址,是存放在相邻的存储体中,能够实现并行访问;
    (4)分时启动存储体,在不改变存储周期的情况下,增加存储器的带宽。

54.反映输入/输出系统可靠性能的参数有哪些?

  • 可靠性:统从初始状态开始一直提供服务的能力。
  • 可用性:系統正常工作时间在连续两次正常服务间隔时间中所占的此率。
  • 可信性:服务的质量,即在多大程度上可以合理地认为服务可靠的。

55.总线仲裁要解决的是什么问题,总线仲裁的方法有哪些,各有什么特点。

(1)总线的仲裁要解决的是多个主设备要同时使用总线,谁先使用,谁后使用的问题;(2)总线仲裁大致分为集中式和分布式,集中式包括链式、计时器和独立请求。

56.总线的通信控制解决的是什么问题?大致有哪些方式。

  • 总线的通信控制解决的是通信双方如何协调工作,何时开始,何时结束。
  • 大致包括同步通信、异步通信、版同步通信和分离式通信(分离事务总线)。

57.试比较程序查询、程序中断、DMA三种I/O方式的区别。

  • 程序查询是由CPU发起的,检查外部设备是否就绪;
  • 程序中断是由外部设备发起中断请求,CPU接到中断请求之后去处理。
    这两者都是由CPU和外部设备进行的。
  • DMA是当主存与外设进行数据传输时,不需要CPU介入,而由DMA控制器来控制,CPU只是将总线的控制权交给DMA,并不直接参与这个过程。

58.简述通道的主要功能。

  • 选择连接设备
  • 执行通道程序
  • 给出外围设备的操作地址
  • 给出主存缓冲区的首地址
  • 传送计数
  • 传送后处理
  • 设备监测
  • 格式变换。

59.简述通道完成一次数据传输的主要过程。

  • 在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织-个通道程序,并启动通道。
  • 通道处理机执行CPU为它组织的通道程序,成指定的数据I/0工作。
  • 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第_次进入操作系统,调用管理程序对I/O中断请求进行处理。

60.简述三种通道传输方式及其传输过程

  • 字节多路通道:通道每连接一个外围设备, 只传送一个字节, 然后与另一台设备连接, 并传送一个字节。
  • 数组多路通道:通道每连接-台外围设备, 传送个数据块, 传送完成后,又与另一台高速设备连接, 再传送一个数据块。
  • 选择通道:通道每连接个外围设备, 就把这个设备的多有待传字节全部传送完成,然后与另一台设备相连接。


-END






posted @ 2020-08-04 00:10  Cotmar  阅读(4889)  评论(1编辑  收藏  举报