计算机组成原理期末真题 · 源文件分别标作 2022、2023

顶层文件 1_2023年计算机组成原理期末考试.pdf 与 CO 目录下的 2022.pdf、2022.docx 题目完全相同,但试卷页面本身没有可确认的年份。我只发布一次,并保留这项来源冲突,不把它强行归到某一年。两份 PDF 中的单选圆点也不是独立答案文件,我不把它们录成答案。

一、单项选择题

每题只有一个正确选项。

  1. 采用 8 位二进制编码时,十进制数 −11-11 的补码是( )。

    • A. 11110100
    • B. 11110111
    • C. 11110101
    • D. 10001011
  2. 能从多个输入端中选择一路作为输出的电路称为( )。

    • A. 触发器
    • B. 计数器
    • C. 数据选择器
    • D. 译码器
  3. 对 32 位 MIPS 条件跳转指令 beq 而言,相对寻址可实现跳转的最大地址空间范围是( )。

    • A. 128 KB
    • B. 256 KB
    • C. 256 MB
    • D. 4 GB
  4. 32 位 MIPS 指令中的立即数,其最大值( )。

    • A. 可以无限大
    • B. 可以等于 2322^{32}
    • C. 小于 2322^{32}
    • D. 必然大于 0
  5. 下列代码起始地址是 0x00060128,$s2 初值为 1,$s3 初值为 -1。第二行分支指令执行后,PC 是( )。

    Loop: slt  $s1, $s2, $s3
          bnez $s1, Loop
    • A. 0x00060128
    • B. 0x0006012C
    • C. 0x00060130
    • D. 0x00060134
  6. 与具有 NN 个并行部件的 CPU 相比,一个 NN 级流水线 CPU 的吞吐能力( )。

    • A. 具有同等水平
    • B. 小于前者
    • C. 大于前者
    • D. 无法比较
  7. 用 4K×44\text{K}\times4 位 SRAM 扩展成 8K×168\text{K}\times16 位存储器,地址线增加位数和芯片数分别为( )。

    • A. 1 位、8 片
    • B. 1 位、4 片
    • C. 2 位、4 片
    • D. 2 位、2 片
  8. 主存与 Cache 的映射方式中,兼具灵活性与实现成本的是( )。

    • A. 直接映射
    • B. 间接映射
    • C. 全相联映射
    • D. 组相联映射
  9. 访存时先把虚拟地址转换成物理地址,再访问 Cache。对于可缓存的某个物理页面,以下判断错误的是( )。

    • A. 若页表项已建立,TLB 仍可能缺失。
    • B. 若 Cache 命中,物理页面必然已装入内存。
    • C. 若 TLB 命中,页表项必然已建立。
    • D. 若 TLB 缺失,Cache 必然命中。
  10. DMA 方式每传送一个数据要占用一个( )时间。

    • A. 指令周期
    • B. 机器周期
    • C. 存储周期
    • D. 总线周期

二、数字逻辑:逻辑化简

化简下式(5 分):

F=A+A‾B+A‾ B‾‾+A‾+B‾F=\overline{A+\overline{A}B+\overline{A}\,\overline{B}} +\overline{\overline{A}+B}

三、数字逻辑:用多路选择器实现函数

实现:

F=A‾BC+ABC‾F=\overline{A}BC+AB\overline{C}
  1. 使用一个 8 选 1 多路选择器。把 A,B,CA,B,C 分别接到 A2,A1,A0A_2,A_1,A_0,输出 YY 对应 FF。给出 D7D_7 至 D0D_0 和低有效使能端的信号。(3 分)
  2. 使用一个 4 选 1 多路选择器和一个非门。把 A,BA,B 分别接到 A1,A0A_1,A_0,CC 接到非门输入,输出 YY 对应 FF。给出 D3D_3 至 D0D_0 和低有效使能端的信号。(2 分)

四、数字逻辑:有限状态机

状态机有 S0、S1、S2、S3 四个状态,输入为二进制序列。弧上记号为“输入/输出”,转移如下:

当前状态输入 0输入 1
S0S0 / 0S1 / 0
S1S0 / 0S2 / 0
S2S3 / 0S1 / 0
S3S1 / 1S0 / 0

约定 S0、S1、S2、S3 的编码分别为 00、01、10、11。当前状态、输入、次态、输出分别记作 S1S0S_1S_0、AA、S1′S0′S'_1S'_0、QQ。

  1. 判断它是 Moore 型还是 Mealy 型。(1 分)
  2. 描述状态机功能。(1 分)
  3. 写出包含输出的状态转换表。(4 分)
  4. 写出次态和输出的逻辑表达式。(4 分)

五、MIPS:装入常数和访存

使用 32 位 MIPS 指令实现:

  1. 用一条指令把 0xB33C 放入 $t9。(1 分)
  2. 用不超过两条指令把 0xF78C033C 放入 $t0。(2 分)
  3. 用不超过两条指令从内存地址 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
  1. $a0 分别为十进制 15、64、-1 时,循环多少次,返回值分别是多少?(3 分)
  2. 用一至两句话说明函数功能。(2 分)

八、主存储器

某 8 位机地址总线为 20 位,按字节编址。地址空间前 64 KB 是只读程序区,其余为可读写用户程序区。现有 16K×816\text{K}\times8 位 DRAM 和 16K×416\text{K}\times4 位 ROM。

  1. DRAM 内部采用行列数量相同的二维地址结构。芯片地址线多少条?行、列选择线各多少条?(6 分)
  2. 构建最大容量主存,需要 DRAM 和 ROM 各多少片?(2 分)
  3. 若最高地址线 A19 与 CPU 断开并接低电平,实际最多能访问多少片 ROM 和 DRAM?(2 分)

九、高速缓存

主存 1 MB,按字节编址。Cache 为 16 KB、4 路组相联,块大小 16 B,每块有 1 位有效位和 1 位修改位。

  1. 给出主存地址字段及位数。(3 分)
  2. 计算 Cache 的实际物理总容量。(2 分)
  3. Cache 存取 20 ns,主存存取 80 ns;缺失时依次访问 Cache 和主存。要使两级系统平均访存时间小于单级主存,命中率至少是多少?(2 分)
  4. 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 位有效位。

  1. TLB 命中而 Cache 缺失时,需要访问几次主存?(1 分)
  2. 给出虚拟地址格式。(2 分)
  3. 每个进程最多有多少虚拟页?(1 分)
  4. 计算 TLB 实际大小。(4 分)
  5. 根据下表,把虚拟地址 24547423H 转为十六进制物理地址。(2 分)
组号路 0 Tag路 0 实页号有效位路 1 Tag路 1 实页号有效位
0122A329133811311
13284—01122—0
214524B2113131291
323B4A1012DEA—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
  1. 列出所有存在数据相关的指令对与寄存器。(6 分)
  2. 分析寄存器数据冲突及执行效果:指出冲突指令与寄存器;判断现有转发能否解决;若能,说明过程;若不能,说明理由并给出至少所需的暂停周期数。建议画流水线时空图。(9 分)

评论