计算机组成原理 · 常见问答集

从AI对话中整理的知识点问答,按章节组织,每题附有简要解答和对应笔记导航。


第1章 计算机系统概述

Q1:冯·诺依曼机的基本工作方式特点是什么?

A:按地址访问并顺序执行指令。冯·诺依曼结构的特点是存储程序、顺序执行。

→ 详见 [[第1章-计算机系统概述#1.1 计算机的产生和发展]]

Q2:计算机系统的层次结构中,从最上层用户到最底层硬件的顺序是什么?

A:应用语言级 → 高级语言级 → 汇编语言级 → 操作系统级 → 传统机器级 → 微程序级 → 硬联逻辑级。

→ 详见 [[第1章-计算机系统概述#1.3 计算机的层次结构]]

Q3:计算机系统中的软件分哪两大类?

A:系统软件(操作系统、编译程序等)和应用软件两大类。

→ 详见 [[第1章-计算机系统概述#1.4 计算机系统的组成]]

Q4:在计算机系统中,负责执行指令的部件是什么?

A:CPU(中央处理器)。内存存储指令和数据,硬盘存储数据,显卡处理图形。

→ 详见 [[第1章-计算机系统概述#1.2 计算机的硬件]]

Q5:内存为4GB,按字节编址,需要多少位地址?PC的位数是多少?

A:4GB = 2³² 字节,所以地址需要 32位。PC(程序计数器)的位数由地址空间决定,也是 32位

→ 详见 [[第1章-计算机系统概述#1.4 计算机的主要技术指标]]

Q6:从计算机层次结构的角度,功能在软硬件之间迁移的基本原则是什么?

A硬件加速原则——将频繁执行、对性能影响大的功能用硬件实现;将复杂、不频繁或需要灵活性的功能用软件实现。具体考虑:执行频率、速度与成本权衡、固定性 vs 可变性、层次透明性、局部性原理、标准化程度。

典型案例:浮点运算从软件库 → 协处理器 → CPU内部FPU。

→ 详见 [[第1章-计算机系统概述#1.3 计算机的层次结构]]


第2章 计算机的逻辑部件

Q7:三态门的三个状态是什么?作用是什么?

A:三态门的三个状态是:高电平(逻辑1)、低电平(逻辑0)、高阻态(Hi-Z)。核心作用是实现多个设备分时共享同一根总线。正常工作时输出高/低电平,不工作时输出高阻态(相当于断开连接),保证多个三态门的输出连在同一总线上不会冲突。

→ 详见 [[第2章-计算机的逻辑部件#2.1.1 三态电路]]

Q8:ROM和PLA的区别是什么?

A:ROM是存储器件,内部由固定的地址译码器(与阵列)和可编程的或阵列组成,本质上是一个查找表。PLA是逻辑器件,其与阵列和或阵列都是可编程的,用于实现布尔逻辑表达式。ROM应用于固件存储,PLA应用于控制器设计。

→ 详见 [[第2章-计算机的逻辑部件#2.3 阵列逻辑电路]] 和 [[第4章-主存储器#4.3 非易失性半导体存储器]]

Q9:微指令格式设计中,下址字段、条件测试字段、微命令字段的排列顺序有强制要求吗?

A:没有强制顺序。常见做法:下址字段放在最高位(便于顺序递增),条件测试字段靠近下址字段(条件判断后快速决定下址),微命令字段放在一端(便于直接输出到控制线)。

→ 详见 [[第6章-中央处理器#微指令编码方式]]


第3章 运算方法和运算部件

Q10:ROM和RAM的区别是什么?

对比项 RAM ROM
数据保持 断电即失(易失性) 断电不丢失(非易失性)
速度 相对较慢
容量 通常较小 通常更大
手机对应 运行内存(如12GB) 存储空间(如256GB)

RAM是"工作台",ROM是"储藏室"。

→ 详见 [[第4章-主存储器#4.2 读写存储器]] 和 [[第4章-主存储器#4.3 非易失性半导体存储器]]

Q11:若[X]补 = 11110011,则[-X]补是多少?

A:各位取反,末位加1:取反得 00001100,加1得 00001101

→ 详见 [[第3章-运算方法和运算部件#3.2 带符号的二进制数据在计算机中的表示方法]]

Q12:浮点数中的阶码用什么表示法?

A移码(又称增码)表示法。移码便于比较大小,且将真值映射为正数,简化了硬件实现。

→ 详见 [[第3章-运算方法和运算部件#3.3 浮点数的表示方法]]

Q13:对真值0表示形式唯一的机器数是什么?

A补码。原码和反码对0都有"+0"和"-0"两种表示形式,而补码的0只有唯一一种表示(全0)。移码也只有唯一表示,但通常强调补码。

→ 详见 [[第3章-运算方法和运算部件#3.2 带符号的二进制数据在计算机中的表示方法]]

Q14:格雷码属于有权码吗?

A:错误。格雷码属于无权码。有权码每一位都有固定的权值(如8421码),格雷码的特点是相邻两个数之间只有一位码元不同(循环码特性),没有固定的权值。

Q15:BCD码是什么?

A:BCD码(Binary-Coded Decimal,二进制编码的十进制)是用4位二进制数表示1位十进制数(0-9)的编码方式。最常用的是8421 BCD码。十进制数12的BCD码是 0001 0010(1和2分开编码)。用途:金融计算(避免浮点数误差)、电子表、计算器等。

→ 详见 [[第3章-运算方法和运算部件#3.1 数值型数据的表示和转换]]

Q16:一个二进制能否表示任意一个十进制数?

A:不能。分情况:整数可以精确表示(只要位数足够);小数不一定(很多十进制小数如0.1在二进制中是无限循环的,只能近似);任意大的数也不能(位数有限)。

Q17:7/16转二进制的结果是什么?

A0.0111。因为分母16=2⁴是2的幂,可以直接将分子7的二进制 0111 视为小数点后4位。

Q18:二进制小数1.11111111转十进制的结果?

A:1.99609375。计算:1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + 1/64 + 1/128 + 1/256 = 1 + 255/256 = 1.99609375。

Q19:请举例说明IEEE 754单精度浮点数的转换。

A:以 -12.625 为例:

  • 符号位:1(负数)
  • 二进制:12.625 = 1100.101 = 1.100101 × 2³
  • 指数:3 + 127 = 130 = 10000010
  • 尾数:10010100000000000000000
  • 结果:1 10000010 10010100000000000000000 = C14A0000(十六进制)

→ 详见 [[第3章-运算方法和运算部件#IEEE 754标准]]

Q20:单精度浮点数 x = 0xCC900000 和 y = 0xB0CD0000,比较大小。

A:x < y。

  • x:符号位1(负),指数153(实际26),尾数1.125,数值 ≈ -75,497,472
  • y:符号位1(负),指数97(实际-30),尾数1.6015625,数值 ≈ -1.49×10⁻⁹
  • 同号负数,绝对值大的更小,所以 x < y。

→ 详见 [[第3章-运算方法和运算部件#IEEE 754标准]]

Q21:如果 [X]补 = 11110011,求[-X]补是多少?

(与Q11重复,故略)

Q22:尾数9位补码规格化和非规格化的负数范围?

(原文提及但未展开详细解答,仅作为主题存在)

Q23:布斯公式(Booth算法)的原理?

A:补码一位乘法(Booth算法)通过比较相邻位来决定操作:

  • 00/11:右移一位
  • 01:加[X]补,右移一位
  • 10:加[-X]补,右移一位
  • 重复n+1次,最后一步不移位

→ 详见 [[第3章-运算方法和运算部件#3.6 二进制乘法运算]]

Q24:8位二进制补码的最小结果是什么?

A10000000 = -128。补码范围:-2⁷ ~ +(2⁷-1) = -128 ~ +127。

→ 详见 [[第3章-运算方法和运算部件#定点整数]]

Q25:9Bh移码转十进制是多少?

A:9Bh 的移码 = 10011011B,移码=补码符号位取反,所以补码 = 00011011B = 27(十进制)。或者直接:移码偏移量 2⁷ = 128,9Bh = 155,155 - 128 = 27。

→ 详见 [[第3章-运算方法和运算部件#3.2 带符号的二进制数据在计算机中的表示方法]]


校验码

Q26:海明码校验位数怎么计算?

A:设数据位k位,校验位r位,满足 2^r ≥ k + r + 1。校验位 Pi 放在位号 2^(i-1) 的位置上,每位数据位被多个校验位共同校验。

→ 详见 [[第3章-运算方法和运算部件#海明校验码]]

Q27:接收到的数据为97842FE4H,校验码(校验子)为0110B,出了什么情况?

A:这是海明码场景,校验子 0110B = 6,表示第6位出错。将接收到的码字第6位取反即可纠正。

Q28:(修正)不是海明码,是奇校验。数据97842FE4H,校验码0110B(4位分别对应4个字节),出了什么情况?

A:将数据拆分为4个字节:97H、84H、2FH、E4H,各字节1的个数为5(奇)、2(偶)、5(奇)、4(偶)。期望校验码应为0101B,而收到0110B。第3和第4字节奇校验失败,说明这两个字节各自发生了奇数个错误。

→ 详见 [[第3章-运算方法和运算部件#奇偶校验码]]


第4章 主存储器

Q29:课堂预习-第4章主存储器判断题

题号 答案 解析
1 A(对) 存储器用于存放数据
2 B(CD-ROM) CD-ROM采用顺序/非随机存取方式
3 C 存取周期是连续读/写操作允许的最短时间间隔
4 B(8位) 按字节编址,每个单元存放1字节
5 C 内存储器容量小、速度快、成本高
6 A SRAM依靠双稳态电路存储信息
7 A(对) 主存由RAM和ROM组成
8 C(26) 256K×8:地址线18根+数据线8根=26
9 D(3FFFFH) 256KB=2¹⁸字节,末地址=3FFFFH
10 B(错) 多体交叉存储器可交叉访问也可同时访问

→ 详见 [[第4章-主存储器#4.1 分类技术指标和基本操作]]


第5章 指令系统

Q30:课堂预习-第5章指令系统判断题

题号 答案 解析
1 A(对) 指令系统是全部指令的集合,描述控制信息和逻辑判断能力
2 B(错) 不同寻址方式的目的是提高数据访问的灵活性,而非扩展操作码
3 D(变址寻址) 先计算有效地址(基址+变址),再访问内存
4 D(寄存器寻址R) 直接取寄存器R的内容200,无需访问内存
5 B(错) 题干描述的是CISC特点,RISC是指令条数少、长度固定、寻址方式简单

→ 详见 [[第5章-指令系统#5.2 机器指令特征]] 和 [[第5章-指令系统#5.3 指令格式]]


第6章 中央处理器

Q31:80条指令,每条对应4条微指令(1条公用),微指令长32bit,估算控制器容量。

A:独有微指令数 = 80 × 3 = 240,加上1条公用 = 241条。容量 = 241 × 32 = 7712 bit ≈ 964 Byte。但控制存储器按2的幂组织,取 256×32 bit(8192 bit)。

→ 详见 [[第6章-中央处理器#6.2 微程序控制计算机的基本工作原理]]

Q32:微程序控制命令有33位,5个互斥类,分别包含7、3、12、5、6个微操作,这样的命令一共多少个?

A:每位对应一个微操作,互斥类内同一时刻只能有一个有效(或空操作)。各互斥类状态数为微操作数+1,总命令数 = (7+1)×(3+1)×(12+1)×(5+1)×(6+1) = 8×4×13×6×7 = 17472

→ 详见 [[第6章-中央处理器#微指令编码方式]]

Q33:指令周期定义是什么?

A:CPU从主存取出一条指令并执行该指令所需的时间。一个指令周期由若干机器周期组成,一个机器周期由若干时钟周期组成。

→ 详见 [[第6章-中央处理器#6.1 CPU的功能和组成]]

Q34:TEC-2实验计算机判断题

题号 题干 答案
3 无操作数指令为单字指令 A(对)
4 6116芯片容量是2K×4b B(错,是2K×8)
5 LDMC指令主要功能是向控制存储器写入新微程序 A(对)
6 AM2910用了10条命令 A(对)
7 AM2901有16个通用寄存器,R4可放任何数据 A(对)
8 TEC-2机可给用户实现最多10条指令 B(错,最多11条)
9 AM2901的I2-I0用于选择R和S的数据来源 B(错,选择ALU运算功能)
10 用户可实现三字指令 B(错)
1 AM2910多路选择器有3个输入 B(错,有4个输入)
2 TEC-2微指令56位,高10位为下址 A(对)

→ 详见 [[第6章-中央处理器#6.6 CPU举例]]


第7章 存储系统

Q35:课堂预习-第7章存储系统判断题

题号 答案 解析
1 A(对) 速度高的存储器每位价格高,容量不能太大
2 B(错) Cache的目的是缓解速度不匹配,不是增加容量
3 A(对) Cache、主存、辅存三层结构
4 B(错) 描述的是全相联映射,不是组相联
5 B(错) 相联存储器按内容(特征)寻址,不是按地址

→ 详见 [[第7章-存储系统]]


综合题

Q36:一个256K×8的存储器,其地址线和数据线总和为多少?

A:256K = 2¹⁸,地址线18根。数据线8根。总和 = 18 + 8 = 26

→ 详见 [[第4章-主存储器#4.4 存储器的组成与控制]]

Q37:内存储器容量为256KB,首地址为00000H,末地址是什么?

A:256KB = 2¹⁸ 字节,地址范围 0 ~ 2¹⁸-1 = 0 ~ 262143 = 0 ~ 0x3FFFF。末地址 = 3FFFFH


各章导航

章节 笔记
第1章 计算机系统概述 [[第1章-计算机系统概述]]
第2章 计算机的逻辑部件 [[第2章-计算机的逻辑部件]]
第3章 运算方法和运算部件 [[第3章-运算方法和运算部件]]
第4章 主存储器 [[第4章-主存储器]]
第5章 指令系统 [[第5章-指令系统]]
第6章 中央处理器 [[第6章-中央处理器]]
第7章 存储系统 [[第7章-存储系统]]
第8章 辅助存储器 [[第8章-辅助存储器]]
第9章 输入输出设备 [[第9章-输入输出设备]]
第10章 输入输出系统 [[第10章-输入输出系统]]
核心算法与公式 [[速查-核心算法与公式]]
知识地图 [[目录-知识地图]]