计算机系统结构简答题

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

  • (从低到高)微程序机器级 --> 机器语言(传统机器级) --> 操作系统虚拟机 --> 汇编语言虚拟机 --> 高级语言虚拟机 --> 应用语言虚拟机
    计算机系统结构简答题_第1张图片

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

  • 虚拟机:是指由软件实现的机器,以区别于由固件/硬件实现的物理机器
  • 目的:在一台计算机上实现另一台计算机

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

  • 翻译:先把L+1级程序全部变成L级程序后,再去执行新产生的L级程序,在执行过程中L+1级程序不再被访问
  • 解释:每当一条L+1级指令被译码后,就直接去执行一串等效的L级指令,然后再去取下一条L+1级的指令
  • 注:解释执行比编译后执行所花的时间多,但占用的存储空间较少

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

  • 计算机系统结构:指的是计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性
  • 计算机组成:指的是计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成和逻辑实现等。它着眼于物理机器级内各事件的排序方式和控制方式、各部件的功能以及各部件之间的关系
  • 计算机实现:指的是计算机组成的物理实现,包括处理机和主存等部件的物理结构等。它着眼于器件技术和微组装技术
  • 举例:确定指令集中是否含有乘法指令属于计算机系统结构的内容,但乘法指令是用专门的乘法器实现,还是利用加法器经多步操作来实现,属于计算机组成,而乘法器、加法器的物理实现,如期间的选定及所用的微组装技术等,属于计算机实现。
  • 注:相同系统结构的计算机可以采用不同的计算机组成,而同一种计算机组成可以采用多种不同的计算机实现,例如系列机

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

  • 软件的可移植性:指一个软件不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上执行
  • 常用方法:
    • 采用系列机
    • 模拟和仿真
    • 统一高级语言

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

  • 模拟:指用软件的方法在一台现有的计算机(称为宿主机host)上实现另一台计算机(称为虚拟机)的指令集
  • 仿真:指用一台计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令集
  • 注:模拟程序存放在内存中,仿真微程序则是存放在控制存储器中,因此仿真方法的运行速度比模拟方法的快,但仿真只能在系统结构差距不大的计算机之间使用

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

  • 单指令流单数据流
  • 单指令流多数据流
  • 多指令流单数据流
  • 多指令流多数据流

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

  • 局部性原理:指程序执行时所访问的存储器地址分布不是随机的,而是相对簇聚的
  • 分类:
    • 时间局部性:指程序即将用到的信息很可能就是目前正在使用的信息
    • 空间局部性:指程序即将用到的信息很可能与当前正在使用的信息在空间上相邻或临近

9. 简述Amdahl定律。

  • Amdahl定律:加速某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比
  • 两个影响因素:
    • 可改进比例
    • 部件加速比

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

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

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

  • 计算机以运算器为中心
  • 在存储器中,指令和数据同等对待
  • 存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的
  • 指令的执行是顺序的,即一般是按照指令在存储器中存放的顺序执行
  • 指令由操作数和地址码组成
  • 指令和数据均以二进制编码表示,采用二进制计算

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

  • 对输入/输出方式的改进:DMA、通道
  • 采用并行处理技术
  • 存储器组织结构的发展:通用寄存器组、Cache
  • 指令集的发展:CISC、RISC

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

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

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

  • 软件兼容:软件在不同计算机之间具有可移植性,则这些计算机是软件兼容的
  • 分类:
    • 向上兼容
    • 向下兼容
    • 向前兼容
    • 向后兼容
  • 根本特征:向后兼容

15. 什么是并行性?

  • 并行性:指计算机系统在同一时刻或同一时间间隔内进行多种计算或操作
  • 包括同时性与并发性
    • 同时性:指两个或两个以上的事件在同一时刻发生
    • 并发性:指两个或两个以上的事件在同一时间间隔内发生

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

  • 技术途径
    • 时间重叠:让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备地不同部分,以加快硬件周转而获得速度

    • 资源重复:重复设置硬件资源

    • 资源共享:软件方法,使多个任务按一定时间顺序轮流使用同一套硬件设备

时间重叠 资源重复 资源共享
单机系统 流水线技术 多体存储器、多操作部件 虚拟机、分时系统
多机系统 异构型多处理机 同构型多处理机 分布式系统

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

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

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

  • 各种指令的使用频度相差悬殊,许多指令很少用到
  • 指令集庞大,指令条数很多,许多指令的功能又很复杂
  • 许多指令由于操作复杂,其CPI值比较大,执行速度慢
  • 由于指令功能复杂,规整性不好,不利于采用流水线技术来提高性能

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

  • 优点:
    • 结构简单,易于设计
    • 指令使用率较高且均衡
    • 程序执行效率高
  • 缺点:
    • 指令功能较弱
    • 寻址方式较少
  • 一般原则:
    • 指令条数少且简单
    • 采用简单而又统一的指令格式,并减少寻址方式
    • 指令的执行在单个机器周期内完成(采用流水线机制后)
    • 只有load、store指令才能访问存储器,其他指令的操作都是在寄存器之间进行,即采用load-store结构
    • 大多数指令都采用硬连逻辑来实现
    • 强调优化编译器的作用,为高级语言生成优化的代码
    • 充分利用流水线技术来提高性能

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

  • 堆栈结构
  • 累加器结构
  • 通用寄存器结构

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

  • 寄存器-寄存器结构(RR结构)
  • 寄存器-存储器结构(RM结构)
  • 存储器-存储器结构(MM结构)

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

  • 寻址方式
  • 指令集结构的功能设计
  • 操作数的类型和大小
  • 指令格式的设计

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

  • 流水线把一个处理过程分解为若干个子过程(段),每个子过程由一个专门的功能部件来实现
  • 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞、断流,因为时间长的段将成为流水线的瓶颈,此时流水线中的其他功能部件就不能充分发挥作用
  • 流水线每一个功能部件的后面都要有一个缓冲寄存器(锁存器),称为流水线寄存器
  • 流水线技术适合于大量重复的时序过程,只有在输入端不断提供任务,才能充分发挥流水线的效率
  • 流水线需要有通过时间和排空时间

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

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

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

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

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

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

27. 列举3种相关。

  • 数据相关(真数据相关)
  • 名相关
    • 反相关
    • 输出相关
  • 控制相关

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

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

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

  • 在前一个指令访问存储器时将流水线停顿一个时钟周期,推迟后面取指令的操作
  • 在流水线处理机中设置相互独立的指令存储器和数据存储器,或者将统一的Cache分成独立的指令Cache和数据Cache

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

  • 定向技术
  • 采用流水线互锁机制,插入气泡,即停顿
  • 依靠编译器解决数据冲突:指令调度,重新组织指令顺序

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

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

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

  • 在相邻的两段之间传送数据,以保证提供后面要用到的数据
  • 把各段的处理工作相互隔开

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

  • 主要思想:在分支指令的后面加上几条指令(如m条),然后把他们看成是一个整体;不管分支是否成功,都要按顺序执行这些指令

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

  • 从前调度
  • 从目标处调度
  • 从失败处调度

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

  • 流水线冻结/排空策略:一旦在流水线的译码段ID检测到分支指令,就暂停执行其后的所有指令,直到分支指令到达MEM段,确定出是否成功并计算出新的PC值位置
  • 优点:简单性

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

  • 静态调度:在编译期间,依靠编译器对代码进行静态调度
  • 动态调度:在程序运行期间,依靠专门硬件对代码进行调度
  • 优点:
    • 能够处理一些编译时情况不明的相关(如涉及存储器访问的相关),并简化了编译器
    • 能够使本来是面向某一流水线优化编译的代码在其他流水线(动态调度)上也能高效执行

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

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

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

  • 动态分支预测:在程序运行时,根据分支指令过去的表现来预测其将来的行为
  • 优点:
    • 如果分支行为发生了变化,预测结果也随之变化,所以具有较好的预测准确性和适应性

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

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

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

  • BTB中存储执行过的成功分支指令和预测的目标地址,在每次取指令时,把该指令与BTB中所有项进行比较,如果有匹配的,则表明该指令是分支指令且上一次执行是成功的,据此预测这次执行也将分支成功,如果没有匹配的,则把这条指令当成普通的指令来执行

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

  • 动态分支预测:用来选择后续执行的指令
  • 在控制相关的结果尚未出来之前,前瞻地执行后续指令
  • 用动态调度对基本块的各种组合进行跨基本块的调度

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

  • 主要矛盾:容量、速度、价格之间的矛盾
    • 速度越快,每位价格就越高
    • 容量越大,每位价格就越低
    • 容量越大,速度越慢
  • 解决方法:采用多种存储器技术,构成多级存储层次结构

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

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

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

  • 映像规则:当把一个块(页)调入高一层(靠近CPU)存储器时,可以放在哪些位置上
  • 查找算法:当要访问的块(页)在高一层存储器中时,如何找到该块
  • 替换算法:当发生不命中而且高一层存储器已经满时,应替换哪一块
  • 写策略:当要进行写访问时,应进行哪些操作

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

  • CPU将地址送入主存地址寄存器,“主存->Cache地址转换”部件判定包含所访问的数据块或指令块是否已在Cache中
  • 如果在Cache中(命中),“主存->Cache地址转换”部件就把主存地址中的块地址转换成Cache块地址,放入Cache地址寄存器,块内位移不变,然后用所形成的地址访问Cache,把所得的数据或指令送给CPU
  • 如果没有命中,就用主存地址访问主存储器,并把相应的块调入Cache中,然后把数据或指令送给CPU
    计算机系统结构简答题_第2张图片

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

  • 全相联映像
  • 直接映像
  • 组相联映像
优点 缺点
全相联映像 不命中率低 查找速度慢
直接映像 查找速度快 不命中率高
组相联映像

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

  • 首先根据索引判断该块应该属于cache哪一组,之后将索引与该组的四个索引号同时进行比较,判断该块是否在cache中
    计算机系统结构简答题_第3张图片

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

  • 随机法
  • 先进先出法(FIFO)
  • 最近最少使用法(LRU)

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

  • 写直达法:在执行写操作时,不仅把数据写入Cache中,而且也写入下一级存储器
  • 写回法:只把数据写入Cache中,不写入下一级存储器,只有当具有最新数据的块被替换时,才被写回下一级存储器

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

  • 不按写分配法:写不命中时,直接写入下一级存储器而不将相应的块调入Cache
  • 按写分配法:写不命中时,先把所写单元所在的块从主存调入Cache中,然后进行写入

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

  • 命中时间:小而简单的Cache
  • 不命中率:增加块大小
  • 不命中开销:写缓冲合并

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

  • 强制不命中:增加块的大小
  • 容量不命中:增加Cache容量
  • 冲突不命中:增加相联度

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

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

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

  • 可靠性:指系统从某个初始参考点开始一直连续提供服务的能力
    • 衡量指标:平均失效前时间 MTTF
    • 失效率:MTTF的倒数
  • 可用性:指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率
    • 可用性 = M T T F M T T F + M T T R \frac{MTTF} {MTTF + MTTR} MTTF+MTTRMTTF
    • 平均修复时间 MTTR
  • 可信性:指服务的质量

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

  • 解决的问题:对于系统中多个模块或设备同时申请总线的使用权,为避免冲突,需要总线仲裁合理控制和管理总线的申请者,按照优先顺序确定哪一个设备使用总线。
  • 方法:集中仲裁(又分为链式查询方式,计数器定时查询方式,独立请求方式),分布仲裁
  • 特点:
    • 链式查询方式:只需几根信号线就可完成按既定优先次序的总线仲裁,易于扩展设备,故障敏感
    • 计数器查询方式:优先级次序较灵活
    • 独立请求方式:响应速度快,优先次序的控制灵活,控制线数量多,总线控制复杂

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

  • 解决的问题:通信双方如何协调工作,何时开始,何时结束,即主设备与从设备的协调控制问题
  • 方式:同步通信,异步通信,半同步通信,分离式通信(分离事物总线)

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

  • 程序查询:通过指令对I/O设备进行查询,以及读取数据,即数据流是经过CPU的,只要I/O没准备好,CPU就一直查询
  • 程序中断:CPU发出I/O命令后,I/O设备自己去准备,CPU返回用户程序,直到I/O设备准备好数据,向CPU提出中断请求,CPU与I/O设备(实际上是I/O接口)进行数据交换,此时,CPU与I/O设备并行,但是数据流也是经过CPU的
  • DMA:数据流不经过CPU,直接在存储器(主存)和I/O设备(实际上是I/O接口)之间进行数据交换,CPU起到管理的作用;
    • CPU和DMA之间会发生访存冲突,在同一时刻,DMA和CPU只有一个可以访存
    • 解决办法:停止CPU访问、周期挪用(利用CPU不访问主存的周期进行DMA操作)、交替访问

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

  • 接受CPU发来的I/O指令,并按照指令要求选择指定的外设与通道连接
  • 执行通道程序
  • 给出外设中要进行读/写操作的数据的地址
  • 给出主存缓冲区的首地址
  • 控制外设与主存缓冲区之间的数据传送的长度
  • 指定传送工作结束时要进行的操作
  • 检查外设的工作状态是否正常,并将该状态信息送往主存指定单元保存
  • 在数据传输过程中完成必要的格式变换

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

  • 在用户程序中使用访管指令进入管理程序,由管理程序来编制一个通道程序,并启动通道
  • 通道处理机执行通道程序,完成指定的数据输入/输出工作
  • 通道程序结束后向CPU发中断请求

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

  • 字节多路通道:连接多台低速或中速的设备
    • 传输过程:当通道在逻辑上与某台设备连接时,就从主存相应的单元中把相关参数取出来,根据主存数据缓冲区地址访问主存,读出或写入一个字节,并将剩余交换字节数减一,将主存数据缓冲区地址加一,指向下一个数据的地址,在这些工作完成后,就将通道与该设备在逻辑上断开
  • 选择通道:连接高速设备
    • 传输过程:通道选择某个设备,之后一直进行数据传输,直到该设备的数据传输过程全部完成,之后断开该设备,重新选择设备
  • 数组多路通道:连接高速设备
    • 传输过程:通道选择某个设备后,进行固定长度的数据传输,当传送完固定长度的数据后,断开该设备,再选择其他设备

你可能感兴趣的:(计算机系统结构)