视频加载失败

课程

7692 字
约 22 分钟

计算机组成原理复习重点:填空题与计算题

计算机组成原理notes·更新于 2026-09-15

计算机组成原理复习重点:填空题与计算题


一、核心考点体系

1. 总线判优控制与总线仲裁

  • 主设备 vs 从设备
    • 主设备:对总线具有控制权,可主动启动总线传输。
    • 从设备:只能响应从主设备发过来的总线命令,对总线没有控制权。
  • 集中控制优先权仲裁方式
    1. 链式查询:硬件连接最简单,只需很少几根控制线。但对电路故障最敏感(一旦中间某处断开,其后的设备均无法使用总线)。
    2. 计数器定时查询:通过计数器的计数值来查询设备。线数较多,但优先级可通过软件灵活改变。
    3. 独立请求方式:响应速度最快,每个设备都有独立的请求线 and 允许线,但硬件控制最为复杂。
  • 异步通信的特点
    • 没有公共的时钟标准,采用**应答方式(握手信号)**进行通信。具体包括不互锁、半互锁和全互锁三种联络方式。

2. 存储器系统与 Cache-主存层次

  • 存储系统层次结构
    • Cache - 主存:主要解决 CPU 和主存速度不匹配的问题(追求高速度)。
    • 主存 - 辅存:主要解决存储系统容量不足的问题(追求大容量)。
  • 主存寻址范围计算
    • 设主存容量为 128MB128\text{MB},字长为 8B8\text{B}。则按字编址时,寻址范围为: 寻址范围=128MB8B=16M\text{寻址范围} = \frac{128\text{MB}}{8\text{B}} = 16\text{M}
    • 字节寻址的主存地址分配
      • 大端方式:高位字节存放在低地址,低位字节存放在高地址。
      • 小端方式:低位字节存放在低地址,高位字节存放在高地址。
  • 双端口存储器与多模块交叉存储器
    • 双端口 RAM:具有两组相互独立的读写控制电路,当左端口和右端口对同一地址同时执行写操作或一读一写时,会发生读/写冲突。
    • 低位交叉编址:模块号用低位地址表示,体内地址用高位地址表示。目的是增加存储器带宽,使各模块能并行工作。
  • Cache - 主存地址映射方式
    1. 直接映射:主存块只能映射到固定的 Cache 块中。结构最简单,但块冲突概率最高。
    2. 全相联映射:主存块可以映射到任意 Cache 块中。块冲突概率最低,但需要按内容寻址的相联存储器,硬件成本高。
    3. 组相联映射:将 Cache 分组,主存块映射到固定组的任意块中。是前两者的折中。

3. 中断系统与 DMA 方式

  • 中断响应条件
    • CPU 处于开中断状态(允许中断触发器为 1)。
    • 一条指令执行周期结束。
    • 存在中断源的请求。
  • 中断隐指令功能
    • 保护程序断点(PC 入栈)。
    • 寻找中断服务程序的入口地址(硬件向量法或软件查询法)。
    • 关中断(保护现场时不被新中断打扰)。
  • DMA 与中断的区别
    • 数据通路:DMA 方式下,数据直接在主存与外设之间传输,不需要 CPU 干预;中断方式则需要 CPU 执行中断服务程序传送数据。
    • 存储周期挪用:DMA 传送一个字会占用一个存储周期(挪用 CPU 访存周期)。
    • DMA 与主存交换数据的方法
      1. 停止 CPU 访问主存。
      2. 周期挪用。
      3. DMA 与 CPU 交替访问(双单总线交替)。

4. 运算器与指令系统

  • 补码除法
    • 补码加减交替法(不恢复余数法):符号位与数值位一起参与运算。
    • 在补码除法中,商符是在求商的过程中自动形成的
  • 寻址方式
    • 指令寻址:顺序寻址((PC)+1PC(PC)+1 \to PC(PC)+字长PC(PC)+\text{字长} \to PC)和跳跃寻址(由转移指令给出)。
    • 数据寻址:立即寻址、直接寻址、隐含寻址、间接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址、相对寻址、堆栈寻址。

二、经典计算大题

1. 存储器容量扩展与接口连接设计

题目:设 CPU 有 16 根地址线、8 根数据线,并用 MREQ\overline{MREQ} 作为访存控制信号(低电平有效),用 WRWR 作为读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片:1K×41\text{K} \times 4 位 RAM、4K×84\text{K} \times 8 位 RAM品、8K×88\text{K} \times 8 位 RAM、2K×82\text{K} \times 8 位 ROM、4K×84\text{K} \times 8 位 ROM、8KX8位ROM及74138译码器和各种门电路。画出 CPU 与存储器的连接图,要求如下:

  1. 主存地址空间分配:
    • 6000H67FFH6000\text{H} \sim 67\text{FFH} 为系统程序区。
    • 6800H6BFFH6800\text{H} \sim 6\text{BFFH} 为用户程序区。
  2. 合理选用上述存储芯片,说明各选几片。
  3. 详细画出存储芯片的片选逻辑图。

解析

  • 地址空间计算
    • 系统程序区:6000H67FFH6000\text{H} \sim 67\text{FFH}。地址长度为 67FFH6000H+1=800H=204867\text{FFH} - 6000\text{H} + 1 = 800\text{H} = 2048 字节 = 2KB2\text{KB}
      • 选择 2K×82\text{K} \times 8 位的 ROM 芯片 1 片
    • 用户程序区:6800H6BFFH6800\text{H} \sim 6\text{BFFH}。地址长度为 6BFFH6800H+1=400H=10246\text{BFFH} - 6800\text{H} + 1 = 400\text{H} = 1024 字节 = 1KB1\text{KB}
      • 选择 1K×41\text{K} \times 4 位的 RAM 芯片 2 片 进行位扩展(组合为 1K×81\text{K} \times 8 位)。

2. 汉明码纠错与译码

题目:已知接收到下列汉明码,分别写出它们所对应的欲传送代码(原始数据):

  1. 11000001100000(按偶校验配置)
  2. 11000101100010(按偶校验配置)
  3. 11010011101001(按偶校验配置)
  4. 00110010011001(按奇校验配置)

解析

  • 设汉明码共 7 位 H7H6H5H4H3H2H1H_7 H_6 H_5 H_4 H_3 H_2 H_1,其中 H1,H2,H4H_1, H_2, H_4 为校验位,信息位为 H3,H5,H6,H7H_3, H_5, H_6, H_7
  • 校验方程组(按偶校验): P1=H1H3H5H7P_1 = H_1 \oplus H_3 \oplus H_5 \oplus H_7 P2=H2H3H6H7P_2 = H_2 \oplus H_3 \oplus H_6 \oplus H_7 P3=H4H5H6H7P_3 = H_4 \oplus H_5 \oplus H_6 \oplus H_7
  • 以第 1 小题接收码 11000001100000 为例:
    • H7=1,H6=1,H5=0,H4=0,H3=0,H2=0,H1=0H_7=1, H_6=1, H_5=0, H_4=0, H_3=0, H_2=0, H_1=0
    • 计算纠错指点:
      • P1=0001=1P_1 = 0 \oplus 0 \oplus 0 \oplus 1 = 1
      • P2=0011=0P_2 = 0 \oplus 0 \oplus 1 \oplus 1 = 0
      • P3=0011=0P_3 = 0 \oplus 0 \oplus 1 \oplus 1 = 0
      • 指示出错位置为 P3P2P1=0012=1P_3 P_2 P_1 = 001_2 = 1。说明第 1 位 H1H_1 出错,纠错后 H1=1H_1 = 1
      • 欲传送代码为 H7H6H5H3=1100H_7 H_6 H_5 H_3 = 1100

3. Cache 地址结构与容量设计

题目:设主存容量为 256K256\text{K} 字,Cache 容量为 2K2\text{K} 字,块长为 44

  1. 在四路组相联映射方式下,设计主存地址格式并指出各字段的位数。

解析

  • 主存容量为 256K=218256\text{K} = 2^{18} 字,主存地址总位数为 1818 位。
  • Cache 容量为 2K=2112\text{K} = 2^{11} 字,块长为 4=224 = 2^2 字。
  • Cache 总块数 = 211/22=5122^{11} / 2^2 = 512 块。
  • 因为是四路组相联(即每组包含 4 块),所以 Cache 组数 = 512/4=128=27512 / 4 = 128 = 2^7 组。
  • 主存地址格式划分为:
    • 主存字块内地址:占 log24=2\log_2 4 = 2 位。
    • 组地址:占 log2128=7\log_2 128 = 7 位。
    • 主存字块标记(Tag):占 1872=918 - 7 - 2 = 9 位。
  • 主存地址字段结构:
    Tag (9位)组地址 (7位)字块内地址 (2位)

4. Cache 命中率与组织设计

题目:设某机主存容量为 4MB4\text{MB},Cache 容量为 16KB16\text{KB},每字块有 88 个字,每字 3232 位。设计一个四路组相联映射的 Cache 组织。

  1. 画出主存地址字段中各段的位数。
  2. 设 Cache 的初态为空,CPU 依次从主存第 0,1,2,,890, 1, 2, \dots, 89 号单元读出 9090 个字(主存一次读出一个字),并重复按此次序读 88 次,问命中率是多少?

解析

  • 地址划分
    • 按字节编址,主存容量为 4MB=222B4\text{MB} = 2^{22}\text{B},主存地址总位数为 2222 位。
    • 字长为 3232 位 = 4B4\text{B}。每字块 88 个字 = 32B32\text{B}。字块内地址占 log232=5\log_2 32 = 5 位。
    • Cache 容量为 16KB=214B16\text{KB} = 2^{14}\text{B}。Cache 块数 = 16KB/32B=51216\text{KB} / 32\text{B} = 512 块。
    • 四路组相联,Cache 组数 = 512/4=128=27512 / 4 = 128 = 2^7 组。组地址占 77 位。
    • 主存字块标记(Tag)占 2275=1022 - 7 - 5 = 10 位。 | Tag (10位) | 组地址 (7位) | 块内地址 (5位) | | :---: | :---: | :---: |
  • 命中率计算
    • 块长为 8 个字。第 0890 \sim 89 号单元共 90 个字,跨越的块数为 90/8=12\lceil 90 / 8 \rceil = 12 块。
    • 重复读 8 次:
      • 第一次读:全部未命中,共发生 1212 次块调入。
      • 后续 7 次读:因为 12 块全部已调入 Cache 且不发生替换,故全部命中。
      • 总访存次数 = 90×8=72090 \times 8 = 720 次。
      • 命中次数 = (9012)+90×7=708(90 - 12) + 90 \times 7 = 708 次。
      • 命中率 H=708/72098.33%H = 708 / 720 \approx 98.33\%

5. 中断向量机制

题目:中断向量通过什么总线送至什么地方?为什么(定义、形式、输入、输出)?(P211) 解析

  • 中断向量通过数据总线送入 **CPU 的程序计数器(PC)**中。
  • 原因:中断向量是中断服务程序的入口地址。CPU 响应中断后,硬件产生一个对应中断源的向量地址,由向量地址到主存相应单元中读出中断服务程序的入口地址(即中断向量),并将其送入 PC,使 CPU 自动转去执行对应的服务程序。

6. 浮点数加法运算

题目:已知两浮点数 x=0.1101×210x = 0.1101 \times 2^{10}y=0.1011×210y = 0.1011 \times 2^{10},求 x+yx + y解析

  • 由于阶码相同(均为 10),无需对阶。
  • 尾数相加:0.1101+0.1011=1.10000.1101 + 0.1011 = 1.1000
  • 结果发生溢出,需要右规:尾数右移一位变为 0.11000.1100,阶码加 1 变为 11。
  • 结果为 x+y=0.1100×211x + y = 0.1100 \times 2^{11}

7. 浮点加减运算与补码表示

题目:假设阶码取 3 位,尾数取 6 位(均不包括符号位),做浮点数加法计算下题(用补码进行): [25×1116]+[24×(916)][2^5 \times \frac{11}{16}] + [2^4 \times (-\frac{9}{16})] 解析

  • 将两数转化为浮点表示:
    • x=25×0.10112x = 2^5 \times 0.1011_2(阶码 5=10125 = 101_2,尾数 0.10110020.101100_2
    • y=24×(0.10012)y = 2^4 \times (-0.1001_2)(阶码 4=10024 = 100_2,尾数 0.1001002-0.100100_2
  • 用补码表示阶码与尾数,进行对阶、尾数相加、规格化及舍入处理。

8. 扩展操作码编码设计

题目:假设指令字长为 16 位,操作数地址码为 4 位,指令有三地址、二地址、一地址三种格式。采用扩展操作码技术,若三地址指令有 XX 种,二地址指令有 YY 种,没有零地址指令,则一地址指令最多有几种? 解析

  • 三地址指令的操作码占 164×3=416 - 4 \times 3 = 4 位。留出 16X16 - X 种编码给二地址指令扩展。
  • 二地址指令操作码占 164×2=816 - 4 \times 2 = 8 位,最多可拥有 (16X)×24Y(16 - X) \times 2^4 - Y 种编码用于一地址指令扩展。
  • 一地址指令操作码占 164×1=1216 - 4 \times 1 = 12 位,最多可拥有: Nmax=[((16X)×24Y)×24] 种N_{\text{max}} = [((16 - X) \times 2^4 - Y) \times 2^4] \text{ 种}

9. 指令格式与寻址分析

题目:某机主存容量为 4M×164\text{M} \times 16 位,且存储字长等于指令字长。若该机指令系统可完成 108 种操作,操作码固定且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:

  1. 画出一地址指令格式并指出各字段的作用。
  2. 该指令直接寻址的最大范围。
  3. 一次间接寻址和多次间接寻址的寻址范围。
  4. 立即数的范围 (十进制表示)。
  5. 相对寻址的位移量 (十进制表示)。
  6. 上述六种寻址方式的指令中,哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?

解析

  1. 一地址指令格式设计:
    • 操作码(OP):占 log2108=7\lceil \log_2 108 \rceil = 7 位。
    • 寻址特征(M):占 log26=3\lceil \log_2 6 \rceil = 3 位,以区分六种寻址方式。
    • 形式地址(AD):占 1673=616 - 7 - 3 = 6 位。 | OP (7位) | M (3位) | AD (6位) |
  2. 直接寻址的最大范围为 26=642^6 = 64 字。
  3. 一次间址的寻址范围取决于存储字长为 1616 位,故为 216=64K2^{16} = 64\text{K}。多次间址时需要拿出 1 位作为间址标志(最高位),寻址范围为 215=32K2^{15} = 32\text{K}
  4. 立即数的二进制位宽为 6 位,补码表示范围为 32+31-32 \sim +31
  5. 相对寻址以 PC 为基准,位移量为 6 位补码,表示范围为 32+31-32 \sim +31
  6. 立即寻址、直接寻址、相对寻址指令字长均为 16 位一样长。相对寻址便于程序浮动。变址寻址最适合处理数组问题。

10. 多重中断与 CPU 轨迹画法

题目:设某机有 4 个中断源 1、2、3、4,其响应优先级按 12341 \to 2 \to 3 \to 4 降序排列,现要求将中断处理次序(执行优先级)改为 41324 \to 1 \to 3 \to 2。根据各中断源的请求时刻,画出 CPU 执行程序的轨迹。设每个中断源的中断服务程序运行时间均为 20 μs20\ \mu\text{s}解析

  • 屏蔽字(Mask)设计:高执行优先级的中断能屏蔽低执行优先级的中断。
    • 中断 4 屏蔽:1、2、3、4。
    • 中断 1 屏蔽:1、2、3。
    • 中断 3 屏蔽:2、3。
    • 中断 2 屏蔽:2。
  • 根据请求时刻与屏蔽字规则,画出嵌套运行轨迹图。

11. 指令周期微操作流程

题目:设 CPU 内有这些部件:PC、IR、MAR、MDR、AC、CU。

  1. 写出取指周期的全部微操作。
  2. 写出间指周期的全部微操作。
  3. 写出 ADDADD 指令的执行流程。

解析

  1. 取指周期
    • PCMARPC \to MAR
    • 1R1 \to R(发读命令)
    • M(MAR)MDRM(MAR) \to MDR
    • MDRIRMDR \to IR
    • (PC)+1PC(PC) + 1 \to PC
  2. 间指周期
    • Ad(IR)MARAd(IR) \to MAR
    • 1R1 \to R
    • M(MAR)MDRM(MAR) \to MDR
    • MDRAd(IR)MDR \to Ad(IR)(将有效地址写入 IR 的地址字段)
  3. ADD 执行阶段(以通用寄存器加法为例,结果送 AC)
    • Ad(IR)MARAd(IR) \to MAR
    • 1R1 \to R
    • M(MAR)MDRM(MAR) \to MDR
    • (AC)+(MDR)AC(AC) + (MDR) \to AC
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录