计算机组成原理期末真题 · 源文件分别标作 2022、2023
顶层文件
1_2023年计算机组成原理期末考试.pdf与 CO 目录下的2022.pdf、2022.docx题目完全相同,但试卷页面本身没有可确认的年份。我只发布一次,并保留这项来源冲突,不把它强行归到某一年。两份 PDF 中的单选圆点也不是独立答案文件,我不把它们录成答案。
一、单项选择题
每题只有一个正确选项。
-
采用 8 位二进制编码时,十进制数 的补码是( )。
- A.
11110100 - B.
11110111 - C.
11110101 - D.
10001011
- A.
-
能从多个输入端中选择一路作为输出的电路称为( )。
- A. 触发器
- B. 计数器
- C. 数据选择器
- D. 译码器
-
对 32 位 MIPS 条件跳转指令
beq而言,相对寻址可实现跳转的最大地址空间范围是( )。- A. 128 KB
- B. 256 KB
- C. 256 MB
- D. 4 GB
-
32 位 MIPS 指令中的立即数,其最大值( )。
- A. 可以无限大
- B. 可以等于
- C. 小于
- D. 必然大于 0
-
下列代码起始地址是
0x00060128,$s2初值为 1,$s3初值为 -1。第二行分支指令执行后,PC 是( )。Loop: slt $s1, $s2, $s3 bnez $s1, Loop- A.
0x00060128 - B.
0x0006012C - C.
0x00060130 - D.
0x00060134
- A.
-
与具有 个并行部件的 CPU 相比,一个 级流水线 CPU 的吞吐能力( )。
- A. 具有同等水平
- B. 小于前者
- C. 大于前者
- D. 无法比较
-
用 位 SRAM 扩展成 位存储器,地址线增加位数和芯片数分别为( )。
- A. 1 位、8 片
- B. 1 位、4 片
- C. 2 位、4 片
- D. 2 位、2 片
-
主存与 Cache 的映射方式中,兼具灵活性与实现成本的是( )。
- A. 直接映射
- B. 间接映射
- C. 全相联映射
- D. 组相联映射
-
访存时先把虚拟地址转换成物理地址,再访问 Cache。对于可缓存的某个物理页面,以下判断错误的是( )。
- A. 若页表项已建立,TLB 仍可能缺失。
- B. 若 Cache 命中,物理页面必然已装入内存。
- C. 若 TLB 命中,页表项必然已建立。
- D. 若 TLB 缺失,Cache 必然命中。
-
DMA 方式每传送一个数据要占用一个( )时间。
- A. 指令周期
- B. 机器周期
- C. 存储周期
- D. 总线周期
二、数字逻辑:逻辑化简
化简下式(5 分):
三、数字逻辑:用多路选择器实现函数
实现:
- 使用一个 8 选 1 多路选择器。把 分别接到 ,输出 对应 。给出 至 和低有效使能端的信号。(3 分)
- 使用一个 4 选 1 多路选择器和一个非门。把 分别接到 , 接到非门输入,输出 对应 。给出 至 和低有效使能端的信号。(2 分)
四、数字逻辑:有限状态机
状态机有 S0、S1、S2、S3 四个状态,输入为二进制序列。弧上记号为“输入/输出”,转移如下:
| 当前状态 | 输入 0 | 输入 1 |
|---|---|---|
| S0 | S0 / 0 | S1 / 0 |
| S1 | S0 / 0 | S2 / 0 |
| S2 | S3 / 0 | S1 / 0 |
| S3 | S1 / 1 | S0 / 0 |
约定 S0、S1、S2、S3 的编码分别为 00、01、10、11。当前状态、输入、次态、输出分别记作 、、、。
- 判断它是 Moore 型还是 Mealy 型。(1 分)
- 描述状态机功能。(1 分)
- 写出包含输出的状态转换表。(4 分)
- 写出次态和输出的逻辑表达式。(4 分)
五、MIPS:装入常数和访存
使用 32 位 MIPS 指令实现:
- 用一条指令把
0xB33C放入$t9。(1 分) - 用不超过两条指令把
0xF78C033C放入$t0。(2 分) - 用不超过两条指令从内存地址
0xF78C000C读取一个字到$t0。(2 分)
六、MIPS:代码改错
把 A[10] = A[20] + 20 转成 32 位 MIPS。数组基地址为十进制 1081344,保存在 $s0。某同学写出:
lui $s0, 16
addi $s0, $zero, 32768
lw $t0, 80($s0)
addi $t0, $t0, 20
sw $t0, 40($s0)
代码结果不正确。说明原因,并且只修改一条指令使它正确。(5 分)
七、MIPS:程序片段分析
函数通过 $a0 接收一个二进制数,通过 $v0 返回一个值:
.globl start
.text
start: li $v0, 0
while: andi $t0, $a0, 1
srl $a0, $a0, 1
count: add $v0, $v0, $t0
bnez $a0, while
return: jr $ra
$a0分别为十进制 15、64、-1 时,循环多少次,返回值分别是多少?(3 分)- 用一至两句话说明函数功能。(2 分)
八、主存储器
某 8 位机地址总线为 20 位,按字节编址。地址空间前 64 KB 是只读程序区,其余为可读写用户程序区。现有 位 DRAM 和 位 ROM。
- DRAM 内部采用行列数量相同的二维地址结构。芯片地址线多少条?行、列选择线各多少条?(6 分)
- 构建最大容量主存,需要 DRAM 和 ROM 各多少片?(2 分)
- 若最高地址线 A19 与 CPU 断开并接低电平,实际最多能访问多少片 ROM 和 DRAM?(2 分)
九、高速缓存
主存 1 MB,按字节编址。Cache 为 16 KB、4 路组相联,块大小 16 B,每块有 1 位有效位和 1 位修改位。
- 给出主存地址字段及位数。(3 分)
- 计算 Cache 的实际物理总容量。(2 分)
- Cache 存取 20 ns,主存存取 80 ns;缺失时依次访问 Cache 和主存。要使两级系统平均访存时间小于单级主存,命中率至少是多少?(2 分)
- Cache 初始为空,按顺序访问
A35A2H、B45A3H、C65A5H、E25A9H、D7684H、B45A0H、A35A4H、D75AFH、A35AEH、E25ABH。按 LRU 替换,求命中率。(3 分)
十、虚拟存储与分层存储
系统按字节编址,采用页式虚拟存储,并有一个 TLB 和一个一级数据 Cache。虚拟空间 2 GB,物理内存 128 MB;TLB 为 2 路组相联、共 8 项;页大小 32 KB,每项有 1 位有效位。
- TLB 命中而 Cache 缺失时,需要访问几次主存?(1 分)
- 给出虚拟地址格式。(2 分)
- 每个进程最多有多少虚拟页?(1 分)
- 计算 TLB 实际大小。(4 分)
- 根据下表,把虚拟地址
24547423H转为十六进制物理地址。(2 分)
| 组号 | 路 0 Tag | 路 0 实页号 | 有效位 | 路 1 Tag | 路 1 实页号 | 有效位 |
|---|---|---|---|---|---|---|
| 0 | 122A | 329 | 1 | 3381 | 131 | 1 |
| 1 | 3284 | — | 0 | 1122 | — | 0 |
| 2 | 1452 | 4B2 | 1 | 1313 | 129 | 1 |
| 3 | 23B4 | A10 | 1 | 2DEA | — | 0 |
十一、五级流水线 CPU
五级流水线只支持 M 级向 E 级转发,寄存器堆没有内部转发。执行:
L1: and $s1, $t0, $t1
L2: or $t1, $t2, $t3
L3: sub $s2, $s2, $t1
L4: or $s0, $s0, $t5
L5: slt $s4, $s2, $s0
- 列出所有存在数据相关的指令对与寄存器。(6 分)
- 分析寄存器数据冲突及执行效果:指出冲突指令与寄存器;判断现有转发能否解决;若能,说明过程;若不能,说明理由并给出至少所需的暂停周期数。建议画流水线时空图。(9 分)