1. 简述微命令、微操作、微指令、微程序的概念。
- 微命令:是构成控制信号序列的最小单位,指直接作用于执行部件(如ALU、寄存器、门电路)的打开、关闭或定时脉冲等控制信号。
- 微操作:是由一个或多个微命令组合实现的、在一个时钟周期内完成的最基本的操作功能。例如,将寄存器A的内容送到总线,就是由一组打开相应门电路的微命令实现的微操作。
- 微指令:是在一个CPU周期(或微周期)内,同时发出的、用于控制实现一组微操作的所有微命令的集合。它是微程序的基本组成单元,存储在控制存储器中。
- 微程序:是为实现一条机器指令的功能而编排的一系列微指令的有序集合。计算机中所有指令的微程序存放在控制存储器中,构成了微程序控制器。
2. 简述Cache写操作策略的写回法、全写法和写一次法。
- 写回法:写操作时,数据只写入Cache,并用“脏位”标记该块已被修改。只有当该数据块被替换出Cache时,才将其写回主存。优点是可显著减少总线写操作,提升效率;缺点是存在数据不一致的窗口期。
- 全写法:写操作时,数据同时写入Cache和主存,始终保持两者一致。优点是主存数据随时有效,可靠性高;缺点是每次写操作都要访问速度较慢的主存,增加了总线负担。
- 写一次法:是写回法与全写法的折中。第一次写命中某块时,采用全写法(同时写入Cache和主存),之后对该块的写操作则采用写回法(只写Cache)。它既减少了初次写对主存的访问次数,又简化了后续写操作的处理。
3. 简述浮点加减法运算的操作步骤。
浮点加减法运算通常包含以下五个步骤:
- 对阶:将两个操作数的阶码(指数)调整为相同值。小阶向大阶看齐,尾数相应右移。
- 尾数运算:对阶后的尾数进行加法或减法运算。
- 规格化:将运算结果的尾数进行左规或右规,使其变为规格化形式(如1.0xxx… 或 0.1xxx…)。
- 舍入处理:对规格化后的结果尾数,按照设定的舍入规则(如0舍1入、截断法)进行处理,以适应尾数字长的限制。
- 溢出判断:检查结果的阶码是否发生上溢(超出最大可表示范围)或下溢(小于最小可表示范围)。
4. 简述微命令编码方式的直接表示法、编码表示法和混合表示法。
- 直接表示法(直接控制):在微指令的操作控制字段中,每一位都直接对应一个微命令。位值为“1”表示发出该微命令,“0”表示不发出。优点是简单直观、速度快;缺点是微指令字长过长,编码效率低。
- 编码表示法(字段编译法):将一组互斥的(即不能同时出现的)微命令编码成一个较短的二进制字段。执行时需经过译码器译码才能产生对应的微命令。优点是能显著缩短微指令字长;缺点是增加了译码时间,且同一字段每次只能发出一个微命令。
- 混合表示法:结合前两种方法。将一部分可以并行发出的微命令采用直接表示法,而将那些互斥的微命令分组采用编码表示法。这是一种在实际设计中最常用的折中方案,兼顾了控制灵活性和微指令字长。
5. 说明计数器定时查询工作原理。
在计数器定时查询的总线仲裁方式中:
- 总线控制器维护一个计数器。
- 当有总线请求时,控制器启动计数器,从0或设定的初始值开始计数。
- 计数器的当前值通过一组设备查询线广播给所有设备。
- 每个I/O设备将自己的唯一设备地址(ID)与查询线上的计数值进行比较。
- 当某个设备的ID与计数值匹配时,该设备便获得总线使用权,并向控制器发出一个“忙”信号,同时计数器停止计数。
- 传输结束后,控制器清零“忙”信号,并可以接着计数或重新开始,继续查询下一个设备。
优点:优先级可通过设置计数器初值灵活改变(循环或固定);缺点:需要额外的查询线,仲裁速度慢于独立请求方式。
6. 什么是刷新存储器?其存储容量与什么因素有关?
- 刷新存储器,通常称为帧缓冲器或显示存储器,是用于存放一帧完整显示信息的专用存储器。它作为显示适配器(显卡)的核心部件,其内容会被显示控制器周期性读出,转换成视频信号发送给显示器进行屏幕刷新。
- 其存储容量主要与以下因素有关:
- 显示分辨率:水平像素数 × 垂直像素数。
- 颜色深度/灰度级:表示每个像素所需存储的二进制位数。例如,真彩色需要24位/像素。
计算公式:存储容量(位) = 水平分辨率 × 垂直分辨率 × 颜色深度(位/像素)。
7. 外围设备的I/O控制方式分为哪几类?各具什么特点?
- 程序查询方式:CPU主动、轮询检查I/O设备状态。特点:接口简单,CPU效率极低,绝大部分时间用于等待。
- 程序中断方式:I/O设备准备好后主动向CPU发出中断请求。特点:CPU与I/O可并行工作,提高了CPU利用率。但频繁中断会带来处理开销,不适合高速、大批量数据传输。
- 直接存储器存取(DMA)方式:由专门的DMA控制器在I/O设备和主存之间直接开辟数据通路。特点:数据传输基本不占用CPU时间,效率高,适用于高速、成批数据传输。但控制逻辑复杂。
- 通道控制方式:由功能更强的专用处理器(通道)管理和控制多个I/O设备。特点:进一步将CPU从I/O管理中解放出来,形成了“CPU-通道-设备控制器-I/O设备”四级系统,是DMA方式的发展,用于大型系统。
8. 什么是指令周期?什么是机器周期?什么是时钟周期?
- 指令周期:CPU从主存中取出并执行完一条指令所需的全部时间。不同指令的指令周期长度可能不同。
- 机器周期(CPU周期):完成一个相对完整的基本操作(如取指令、读内存、写内存、执行ALU操作)所需的时间。通常由一个或多个时钟周期构成。它是指令周期的子阶段。
- 时钟周期(节拍脉冲、T周期):CPU处理操作的最基本时间单位,由CPU主频决定。它是机器周期的基本构成单位。三者关系为:指令周期 > 机器周期 > 时钟周期。
9. 集中式仲裁有哪几种方式?其中哪种方式速度最快?哪一种对设备故障最敏感?
- 集中式仲裁主要有三种方式:链式查询、计数器定时查询、独立请求。
- 速度最快:独立请求方式。因为每个设备有独立的请求线和授权线,总线控制器可立即识别所有请求并直接响应,仲裁速度与设备数无关。
- 对设备故障最敏感:链式查询方式。因为其“总线允许”信号是串行传递的,链路上任何一个设备的接口故障都可能导致其后的所有设备无法获得总线使用权。
10. 指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?
计算机主要通过时间(时序)和空间(来源)来区分:
- 时间上:在取指周期内,由程序计数器(PC)指出的内存单元的内容,被CPU解释为指令;在执行周期内,由指令中的地址码指出的内存单元的内容,则被CPU解释为数据。
- 空间上:指令流主要来自PC指向的地址区域(代码段),数据流则来自指令中操作数地址指向的区域(数据段、堆栈段等)。尽管物理内存混合存储,但通过程序的不同段(Segment)进行逻辑划分。简言之,同一内存单元的内容,在不同时刻、由不同“指针”获取时,扮演着指令或数据的不同角色。
11. 从计算机编程语言的角度,计算机系统可以划分成几个层次?请分别说出。
从编程语言和用户接近程度的角度,计算机系统通常被划分为六个层次:
- 应用语言层:面向最终用户的应用软件。
- 高级语言层:由程序员编写的、与机器无关的高级语言程序(如C, Java)。
- 汇编语言层:与机器指令一一对应的低级符号语言。
- 操作系统层:管理和调度硬件资源的系统软件,提供系统调用接口。
- 机器语言层:由二进制代码组成的、硬件可直接执行的目标程序。
- 微程序层/硬件层:由微指令或硬连线逻辑直接控制硬件电路工作的最底层。
12. 两个用补码表示的数相加时,有可能产生溢出。简述正溢、负溢的概念。用双符号位表示时如何判断结果是否溢出?
- 正溢:两个正数(符号位为0)相加,结果的符号位变成了1(表示负数),即结果超出了正数所能表示的最大范围。
- 负溢:两个负数(符号位为1)相加,结果的符号位变成了0(表示正数),即结果超出了负数所能表示的最小范围(绝对值过大)。
- 双符号位判断法:将两个单符号位的补码数扩展为双符号位(即原符号位复制两份)后再相加。记结果的两个符号位为
Sf1 Sf2。判断规则为:- 若
Sf1 Sf2 = 00,表示结果为正数,无溢出。 - 若
Sf1 Sf2 = 11,表示结果为负数,无溢出。 - 若
Sf1 Sf2 = 01,表示结果发生正溢。 - 若
Sf1 Sf2 = 10,表示结果发生负溢。
简单概括:两个符号位不同则表示溢出,01为正溢,10为负溢。
- 若
13. 总线仲裁中计数器定时查询方式。(此问题与第5题重复)
答案同第5题。
14. 简述DMA方式的基本思想和优点。
- 基本思想:在外设与主存储器之间建立直接的数据通路,数据传输的控制权和总线使用权在数据传输阶段由专用的DMA控制器接管,而无需CPU的直接干预。CPU仅需在传输开始前初始化DMA控制器(设置地址、计数等),在传输结束后处理中断即可。
- 优点:
- 高数据传输率:直接在I/O和内存间传输,避免了CPU的介入开销。
- 高CPU效率:CPU仅在传输开始和结束时参与,在数据块传输过程中可继续执行其他任务,实现了CPU与I/O系统的并行工作。
15. 简述浮点乘除法的操作步骤。
- 浮点乘法:
- 阶码相加:求乘积的阶码
E = E1 + E2(需考虑偏置值)。 - 尾数相乘:求乘积的尾数
M = M1 × M2。 - 结果规格化:对乘积的尾数M进行规格化处理,并相应调整阶码E。
- 舍入处理:对规格化后的尾数进行舍入。
- 溢出判断:判断阶码E是否溢出。
- 阶码相加:求乘积的阶码
- 浮点除法:
- 阶码相减:求商的阶码
E = E1 - E2(需考虑偏置值)。 - 尾数相除:求商的尾数
M = M1 / M2。 - 结果规格化:对商的尾数M进行规格化处理,并相应调整阶码E。
- 舍入处理:对规格化后的尾数进行舍入。
- 溢出判断:判断阶码E是否溢出。
- 阶码相减:求商的阶码
16. 简述全相联、直接映射、组相联等三种主存与cache的地址映射方式。
全相联映射:
- 规则:主存中的任意一块可以装入Cache中的任意一个位置。
- 优点:空间利用率最高,冲突概率最低。
- 缺点:查找时需要将主存块地址与Cache中所有块的标签同时比较,电路复杂、成本高、速度慢。
直接映射:
- 规则:主存中的每一块只能被装入Cache中唯一指定的一个位置(通常规则:
Cache块号 = 主存块号 mod Cache总块数)。 - 优点:硬件简单,查找速度快(只需比较一个标签)。
- 缺点:冲突概率高,Cache空间利用率低。即使其他Cache块空闲,特定的主存块也只能进入固定位置。
- 规则:主存中的每一块只能被装入Cache中唯一指定的一个位置(通常规则:
组相联映射:
- 规则:是前两者的折中。将Cache分成若干组(Set),每组包含多个块(路)。主存块可映射到特定组内的任意一块(规则:
组号 = 主存块号 mod 组数)。 - 优点:降低了冲突概率,提高了灵活性,是实践中最常用的方式。n路组相联意味着每组有n个块。
- 缺点:硬件复杂度介于全相联和直接映射之间。
- 规则:是前两者的折中。将Cache分成若干组(Set),每组包含多个块(路)。主存块可映射到特定组内的任意一块(规则:
17. 简述微程序控制的基本思想。
微程序控制的基本思想是:将一条机器指令的执行过程,分解为一系列更基本的、由微命令控制的微操作。将这些微操作对应的微命令进行编码,形成一条条微指令。再将这些微指令按执行顺序编排起来,构成一个微程序,并事先存入一个专用的控制存储器中。当执行机器指令时,通过读取并执行对应的微程序,发出一系列微命令,从而控制数据通路完成指令功能。它用软件(微程序)的方法来设计和实现硬件(控制器)的功能。
18. 总线带宽的概念?常用单位?
- 概念:总线带宽指的是单位时间内总线上可传输的数据总量,即总线的数据传输速率。它是衡量总线性能的关键指标。
- 常用单位:兆字节每秒(MB/s)或吉比特每秒(Gb/s)。
19. 当代流行的标准总线追求与结构、CPU、技术无关的开发标准,其总线内部结构包含哪几类信号线?
为实现开放性,现代标准总线的内部结构通常包含以下四类功能独立的信号线:
- 数据线:传输数据信息,宽度(根数)决定了一次可传输的数据位数。
- 地址线:传输地址信息,用于指定数据读写的源或目标位置,宽度决定了系统的寻址空间。
- 控制线:传输各种控制、状态和时序信号。如:读写命令、中断请求、总线仲裁、时钟、复位等。
- 电源线和地线:为连接到总线的模块提供电能和电流回路。
20. 名词解释RISC和CISC,及二者主要差别。
- CISC:复杂指令集计算机。其设计思想是通过增强指令的功能,设置功能复杂的指令,使目标程序变得更短,以缩小软件与硬件之间的语义差距。典型代表是x86架构。
- RISC:精简指令集计算机。其设计思想是通过简化指令功能、优化指令流水线,使绝大多数指令能在一个时钟周期内完成,并通过大量使用寄存器和编译器优化来提升性能。典型代表是ARM、MIPS、RISC-V架构。
二者主要差别:
| 特性 | CISC | RISC |
|---|---|---|
| 指令系统 | 复杂、庞大,指令多,格式多变,长度可变。 | 简单、精简,指令少,格式规整,长度固定。 |
| 指令执行周期 | 不同指令执行时间相差很大,复杂指令需要多个时钟周期。 | 绝大多数指令(除Load/Store)在单周期内完成。 |
| 寻址方式 | 丰富多样。 | 简单、规整,通常只支持少数几种基本寻址。 |
| 通用寄存器 | 数量较少。 | 数量较多,大量操作在寄存器间进行。 |
| 控制实现 | 早期多采用微程序控制,现代也多结合硬连线。 | 普通采用硬布线控制,便于流水线优化。 |
| 主导角色 | 硬件功能强大,旨在简化编译器设计。 | 编译器作用关键,负责优化代码以充分利用硬件(如流水线、寄存器)。 |
| 设计目标 | 缩小机器语言与高级语言的语义差距,减少程序代码量。 | 提高指令执行效率,优化流水线,追求每个周期完成更多工作。 |
| 应用场景 | 传统桌面、服务器(x86)。 | 嵌入式、移动设备、高性能计算(ARM, RISC-V)。 |