计组章节测 03:中央处理器与指令流水线
覆盖《中央处理器》一章,共 30 题(第 1-22 题选择,第 23-30 题计算大题),全部为模拟题。限时 70 分钟,先做后看答案。做错的题请登记到错题本。讲解见中央处理器。
第 1 题 CPU 中控制器的基本功能是( )。 A. 完成算术与逻辑运算 B. 存放当前正在执行的指令 C. 按指令要求产生微命令(控制信号)序列并控制各部件协同工作 D. 完成主存与辅存之间的数据调度
第 2 题 下列部件中,不属于运算器组成的是( )。 A. ALU B. 累加器 ACC C. 暂存器 Y、Z D. 指令译码器
第 3 题 下列寄存器中,对用户(程序员)完全透明(不可见)的一组是( )。 A. 通用寄存器、程序计数器 B. MAR、MDR、IR C. 变址寄存器、栈指针 D. 条件码寄存器、基址寄存器
第 4 题 取指周期结束后,PC 中存放的是( )。 A. 当前指令的地址 B. 当前指令的操作数地址 C. 下一条指令的地址 D. 中断服务程序入口地址
第 5 题 设置间址周期的目的是( )。 A. 取出指令的操作码并译码 B. 把指令中的形式地址变换为有效地址 C. 完成操作码规定的运算 D. 保存程序断点
第 6 题 中断周期内 CPU 完成的操作不包括( )。 A. 保存断点 B. 关中断(硬件清允许中断标志) C. 将向量地址送 PC D. 执行中断服务程序
第 7 题 采用 CPU 内部单总线的数据通路中,同一时刻( )。 A. 只能有一个部件向总线发送数据,但可有多个部件接收 B. 可以有多个部件发送,只能有一个接收 C. 发送与接收的部件数都不限 D. 只能有一个部件发送且只能有一个部件接收
第 8 题 单总线结构 CPU(ALU 输入端接暂存器 Y、输出接暂存器 Z),执行 的执行阶段至少需要( )个时钟周期。 A. 1 B. 2 C. 3 D. 4
第 9 题 单总线结构中设置暂存器 Y、Z 的根本原因是( )。 A. 增大通用寄存器容量 B. 总线一次只能提供一个操作数,而 ALU 是组合逻辑电路、不能保持数据 C. 提高主存访问速度 D. 便于实现变址寻址
第 10 题 关于微命令与微操作的关系,正确的是( )。 A. 二者是同一概念的两个名称 B. 微命令是控制部件发出的控制信号,微操作是执行部件收到微命令后完成的操作,前者是因后者是果 C. 微操作是控制部件发出的信号,微命令是执行的动作 D. 一条微命令只能对应一段微程序
第 11 题 微程序控制器中,控制存储器存放的是( )。 A. 机器指令 B. 微程序(微指令序列) C. 中断向量表 D. 操作系统内核代码
第 12 题 与微程序控制器相比,硬布线控制器的特点是( )。 A. 速度慢、便于扩展指令 B. 速度慢、难以扩展指令 C. 速度快、便于扩展指令 D. 速度快、难以扩展指令
第 13 题 微程序控制器执行速度较慢的主要原因是( )。 A. 微指令字长太短 B. 每条机器指令需从控制存储器读取并执行一串微指令 C. 必须访问主存才能取得控制信号 D. 微命令采用字段直接编码
第 14 题 某机共有 40 个微命令,微指令操作控制字段采用直接编码(直接控制)方式,则操作控制字段至少需( )位。 A. 6 B. 12 C. 40 D. 80
第 15 题 字段直接编码方式下,某互斥字段为 4 位(约定留出全 0 表示"不发出任何微命令"),该字段最多可表示( )个微命令。 A. 16 B. 15 C. 8 D. 4
第 16 题 采用字段直接编码时,微命令的分组原则是( )。 A. 相容(可并行)的微命令分在同一字段 B. 互斥的微命令分在同一字段,相容的微命令分在不同字段 C. 按微命令发出的先后顺序分组 D. 按功能部件的类型随意分组,无约束
第 17 题 字段间接编码方式的特征是( )。 A. 每一位直接对应一个微命令,不需译码 B. 一个字段的微命令经译码后,还需另一个字段的编码参与才能确定其含义 C. 每个字段独立译码,字段之间互不相关 D. 下一条微指令地址由 形成
第 18 题 微程序后继微地址形成的"断定方式"是指( )。 A. 后继微地址由 自动加 1 得到 B. 后继微地址由当前微指令的下地址字段(配合判别测试)直接给出 C. 后继微地址由指令操作码经映射产生 D. 后继微地址由主存地址寄存器提供
第 19 题 与垂直型微指令相比,水平型微指令的特点是( )。 A. 字长短、微程序长、并行能力弱 B. 字长长、微程序短、并行能力强 C. 字长长、微程序长、并行能力强 D. 字长短、微程序短、并行能力强
第 20 题 五段流水线(IF、ID、EX、MEM、WB)中,条件转移指令的方向判定通常安排在( )。 A. IF 段 B. ID 段或 EX 段(提前到 ID 可降低预测错误代价) C. MEM 段 D. WB 段
第 21 题 流水线中,第 条指令的 MEM 段与第 条指令的 IF 段在同一时钟周期争用同一个主存,这属于( ),常用对策是( )。 A. 数据冒险;转发 B. 结构冒险;指令存储器与数据存储器分体(I/D Cache 分离) C. 控制冒险;分支预测 D. 结构冒险;插入气泡(暂停一拍)
第 22 题 五段流水线(寄存器堆支持同拍"前半写后半读")中,lw 紧跟使用其结果的 add。设已采用完整的转发(旁路)硬件,则 add 需要停顿( )拍。
A. 0
B. 1
C. 2
D. 3
第 23 题(计算大题) 单总线结构 CPU,部件包括 PC、IR、MAR、MDR、通用寄存器 R0~R3、暂存器 Y、暂存器 Z、ALU。指令 STA (R2), R3 的功能:将 写入主存单元,该单元地址采用寄存器间接寻址、由 给出。写出该指令取指周期与执行周期的完整微操作及控制信号序列(表格式:节拍 / 微操作 / 控制信号)。
第 24 题(计算大题) 某微程序控制器共有 32 个微命令,分为 7 个互斥组,各组微命令数为 3、5、6、7、2、4、5;另有 1 个微命令与所有微命令相容(须单独占位)。操作控制字段采用字段直接编码 + 该相容微命令直接占 1 位。判别测试字段 2 位;控制存储器可容纳 512 条微指令,采用断定方式。 (1) 求操作控制字段总位数(写出每个字段的位数计算)。 (2) 求下地址字段位数与微指令总字长。 (3) 若需存放 480 条微指令,控制存储器容量至少多少位?按 2 的幂配置为多少?
第 25 题(计算大题) 五段指令流水线(IF、ID、EX、MEM、WB),每段 1 个时钟周期( ns),连续执行 10 条无任何冒险的指令。 (1) 画出时空图(表格形式)。 (2) 求总执行时间。 (3) 求相对串行执行的加速比。 (4) 求实际吞吐率与效率。
第 26 题(计算大题) 五段流水线( ns,寄存器堆同拍先写后读),执行序列:
I1:lw $t0, 0($s1);I2:add $t2, $t0, $t1;I3:or $t3, $t2, $t5。
(1) 无任何转发硬件时,I2、I3 各停顿几拍?画出时空图并求总时间。
(2) 配备完整转发(旁路)后,停顿几拍?总时间多少?
(3) 结合本题说明"转发能消除 ALU-ALU 相关的停顿,但不能完全消除 load-use 相关的停顿"。
第 27 题(计算大题) 某五段流水线单发射 CPU,理想 CPI = 1。程序中条件转移指令占 18%,分支预测错误率为 25%。 (1) 若分支方向在 EX 段末才确定(预测错误代价 2 拍),求实际 CPI。 (2) 若通过专用比较器把分支判定提前到 ID 段末(代价降为 1 拍),求实际 CPI 与相对 (1) 的加速比。 (3) 说明分支预测为什么属于控制冒险(而非数据冒险)的对策。
第 28 题(计算大题) 某双发射(每拍发射 2 条指令)超标量五段流水线,各段均可并行处理 2 条指令, ns,执行 8 条无冒险指令(两两成对发射)。 (1) 画出时空图(表格形式,成对处理)。 (2) 求总时间,并与单发射同结构流水线(12 拍)比较加速比。 (3) 该超标量的理想加速比上限是多少?本题为何未达到?
第 29 题(计算大题) 某微程序控制器:机器指令共 64 条;取指微程序为公用段、含 4 条微指令;每条机器指令的解释微程序(不含取指)平均 8 条;间址微程序 3 条、中断微程序 5 条。微指令字长 28 位。 (1) 求控制存储器至少需存放的微指令条数。 (2) 若按 2 的幂配置控制存储器,容量为多少?下地址字段至少多少位? (3) 若改用增量()方式形成后继微地址、微指令不含下址字段,微指令字长可减为多少位(其余字段不变)?
第 30 题(计算大题) 某四段流水线各段时间依次为 50 ns、80 ns、50 ns、50 ns,执行 10 条指令。 (1) 流水线时钟周期应取多少?为什么? (2) 求总执行时间、相对串行的加速比与实际吞吐率。 (3) 若将 80 ns 的瓶颈段细分为两个 40 ns 的段(流水线变五段),时钟周期与总执行时间变为多少?加速比提升到多少?
答案与解析
第 1 题:C |考点:控制器功能|难度:易 控制器完成指令控制、操作控制(产生微命令)、时间控制;运算是运算器的事(A),存指令是 IR 的事(B),主存辅存调度是存储系统/OS 的事(D)。错因提醒:A 是运算器功能,别与控制器混淆。
第 2 题:D |考点:运算器组成|难度:易 运算器 = ALU + 寄存器组 + 暂存器 + 状态寄存器 + 内部总线;指令译码器属于控制器。错因提醒:MAR/MDR 属于 CPU 但既不算运算器也不算控制器(接口部件),命题人常拿它们设错。
第 3 题:B |考点:寄存器可见性|难度:易 MAR、MDR、IR、PC、μIR 均为用户不可见(PC 只能被转移指令间接改变,不可直接读写);通用/变址/基址/栈指针/条件码寄存器用户可见。错因提醒:把 PC 当"可见"——它可被影响但不可直接访问,考试口径归入不可见。
第 4 题:C |考点:取指周期 PC 行为|难度:易 取指周期内完成 ,故取指结束时 PC 已指向下一条指令。错因提醒:选 A 忘了自增;这是相对寻址用"下一条指令地址"作基数的根源。
第 5 题:B |考点:间址周期任务|难度:中 间址周期把形式地址 A 变换为有效地址 EA(间址一次访主存一次)。A 是取指周期、C 是执行周期、D 是中断周期任务。错因提醒:间址周期取的是"地址"而不是操作数本身(最后一次间址取得的才是数)。
第 6 题:D |考点:中断周期任务|难度:中 中断周期只做硬件动作:保存断点、关中断、向量地址送 PC;执行中断服务程序是软件行为,发生在随后的取指周期之后。错因提醒:"关中断"由中断隐指令(硬件)完成,不是服务程序里第一条指令干的事。
第 7 题:A |考点:单总线约束|难度:易 总线是共享介质,同一时刻只允许一个发送者(多个 out 门同时开会造成总线冲突);但接收不冲突,多个 in 可同拍有效。错因提醒:D 把"单发送"误推广为"单接收"。
第 8 题:C |考点:寄存器传送微操作序列|难度:中 T0:R1out、Yin;T1:R2out、Add、Zin;T2:Zout、R0in。总线一拍传一个数 + ALU 组合逻辑不能保持,故最少 3 拍。错因提醒:选 2 拍通常忘了结果回写也要占总线一拍。
第 9 题:B |考点:暂存器存在的原因|难度:中 两个操作数无法同拍上总线(只送出 R1 先锁进 Y),且 ALU 输出若直接挂总线会与输入形成不稳定环路,故结果经 Z 暂存。错因提醒:Y/Z 与"通用寄存器容量""访存速度"无关。
第 10 题:B |考点:微命令与微操作关系|难度:易 微命令 = 控制信号(因),微操作 = 执行部件完成的动作(果);相容微命令可同拍并行,互斥不行。错因提醒:C 把因果关系颠倒,是经典干扰项。
第 11 题:B |考点:控制存储器|难度:易 控存是 CPU 内的 ROM,存放全部微程序;机器指令在主存。错因提醒:说"控存存放机器指令"是概念性错误;控存字长 = 微指令字长。
第 12 题:D |考点:硬布线 vs 微程序|难度:中 硬布线用组合逻辑直接产生微命令:速度快(仅门延迟)、但设计复杂、改指令要改电路(难扩展),适合 RISC。错因提醒:速度快与易扩展不可兼得(微程序才易扩展)。
第 13 题:B |考点:微程序控制器速度瓶颈|难度:中 每条机器指令要执行多条微指令,每条微指令都要读一次控存,访控存时间叠加拖慢执行。错因提醒:C 错在"主存"——控存在 CPU 内部,与主存无关。
第 14 题:C |考点:直接编码位数|难度:中 直接编码每位对应一个微命令、无需译码,40 个微命令需 40 位。错因提醒:选 A 是按 算的——那是"给微命令编号"的思路(需译码),不是直接控制方式。
第 15 题:B |考点:字段直接编码留空状态|难度:中 4 位共 16 个编码,全 0(0000)留作"本字段不发出微命令",故最多 个。错因提醒:忘留空状态选 16 是最高频失误;不留空则该字段每拍必发一个微命令,通常不合要求。
第 16 题:B |考点:字段直接编码分组原则|难度:中 互斥微命令(不同时发出)才可共用一个字段靠译码区分;相容微命令必须分在不同字段才能同拍并行。错因提醒:A 恰好说反;分组依据是互斥/相容关系,与先后顺序无关。
第 17 题:B |考点:字段间接编码定义|难度:中 字段间接编码 = 一个字段的微命令含义需另一字段编码配合解释,进一步压缩字长但削弱并行、译码复杂。错因提醒:A 是直接编码、C 是字段直接编码、D 是增量方式——四种方式各配一个"一句话定义"记牢。
第 18 题:B |考点:断定方式|难度:易 断定方式(下址字段方式)在微指令中设下址字段直接给出后继微地址,配合判别测试字段按状态"断定"实际去向。错因提醒:A 是增量方式、C 是入口地址形成(操作码映射),三者别混。
第 19 题:B |考点:水平型 vs 垂直型微指令|难度:中 水平型一条微指令并行定义多个微命令:字长长、微程序短、并行强、速度快、难编写;垂直型相反。错因提醒:"水平型字长短"是高频错误选项——恰恰相反。
第 20 题:B |考点:控制冒险对策(提前判定)|难度:中 分支判定越早,预测错误时已进入流水线、需要冲刷的指令越少:EX 段判出代价 2 拍,提前到 ID 段降为 1 拍。错因提醒:IF 段时指令还没译码,无法判定。
第 21 题:B |考点:结构冒险识别与对策|难度:中 争用同一硬件资源是结构冒险;根治手段是资源重复(指令/数据存储器分体,即 I/D Cache 分离)。D(暂停一拍)也能消除冲突,但"常用/根本"对策是分体。错因提醒:看到"资源争用"关键词选结构冒险,别被"同周期""下一条"迷惑而选数据冒险。
第 22 题:B |考点:load-use 冒险与转发极限|难度:难
lw 的数据 MEM 段末才可用,add 的 EX 段紧随其后,即使 MEM→EX 转发也要把 add 的 EX 推迟一拍(停 1 拍);无转发时(同拍先写后读假设)停 2 拍。错因提醒:选 0 把"转发万能"当真——转发对 load-use 最多把 2 拍降为 1 拍,不能归零。
第 23 题 |考点:微操作序列书写(存数 + 寄存器间接寻址)|难度:中
共 7 拍。错因提醒:① 寄存器间接寻址的有效地址就是 ,不需要访主存取地址(那是间接寻址/间址周期的事),直接 R2out、MARin;② 写主存必须"数据先入 MDR、地址先入 MAR,再发 Write",顺序不能乱。
第 24 题 |考点:微指令编码字段设计|难度:中 (1) 各字段位数("+1 留全 0 状态"):3 个命令 → ;5 → ;6 → ;7 → ;2 → ;4 → ;5 → 。字段合计 位,相容微命令直接占 1 位,操作控制字段共 20 位。 (2) 下地址字段 = 位;微指令总字长 位。 (3) 至少 位;按 2 的幂配置为 位。 错因提醒:组内 7 个命令算成 3 位看似"没用上 8",正确写法仍是 ——因为 8 个编码中全 0 被留空,实际可表示 7 个;若不留空(本题约定留空)则是 ,数值巧合相同,规范必须写"+1"。
第 25 题 |考点:五段流水线时空图与性能指标|难度:中 (1) 时空图(可单步推演,见交互演示页"指令流水线时空图"):
(2) 。 (3) (上限为段数 5,未达上限因流水线装填/排空)。 (4) 条/ns;。 错因提醒:总时间不是 拍——流水线重叠才是考点核心;效率公式别把分母的 漏掉后再错乘一遍。
第 26 题 |考点:数据冒险停顿计算与转发极限|难度:难 (1) 无转发:I2 的 ID 最早与 I1 的 WB 同拍(第 5 拍),正常应为第 3 拍 → I2 停 2 拍;I3 需要 I2 的 ,I2 WB 在第 8 拍,I3 的 ID 正常为第 4 拍 → I3 停 4 拍。时空图:
总时间 (停顿合计 6 拍)。 (2) 有转发:load-use 保留 1 拍停顿;I3 所需 由 I2 的 EX 输出经 EX→EX 转发直达,不再停顿。总时间 (时空图中 I2 的 ID 重复一拍,I3 的 ID 顺延一拍)。 (3) ALU-ALU 相关(I2→I3):产生结果的 EX 与使用结果的 EX 间隔一拍,EX→EX 转发零停顿;load-use 相关(I1→I2):数据 MEM 段末才有,而使用的 EX 段只比它早被"预订",MEM→EX 转发必须把使用方推迟一拍——转发的物理极限由数据就绪时刻决定。 错因提醒:无转发时 I3 的停顿数(4 拍)不是 1 也不是 2——它要等 I2 真正 WB;把 I3 的停顿按"I2 停 2 拍顺延"估算会算错,必须按"I3 的 ID ≥ I2 的 WB(第 8 拍)"推。
第 27 题 |考点:控制冒险 CPI 计算|难度:中 (1) 。 (2) ;加速比 。 (3) 控制冒险源于转移指令改变 PC、后续取指方向在判定前不确定——危害对象是指令流走向,与"操作数未就绪"的数据冒险机理不同;分支预测/提前判定/延迟槽都是针对"走向不确定"的手段(数据冒险用转发/暂停/调度)。 错因提醒:预测错误的代价拍数 = 分支判定前已进入流水线的指令条数(EX 判出为 2,ID 判出为 1),不是"流水线段数";只有预测错误才付代价,故乘以错误率。
第 28 题 |考点:超标量时空图与加速比|难度:中 (1) 成对发射,第 对在第 拍 IF、第 拍 WB:
(2) ;相对单发射 12 拍的加速比 。 (3) 双发射理想上限为 2。本题 8 条指令分 4 对,装填期(前 4 拍)与排空期摊薄了并行度, 时趋近 2。 错因提醒:双发射不是把 8 条的总时间砍半为 6 拍——装填期不变;每拍发射 2 条的前提是各段都有双份资源且指令间无冒险。
第 29 题 |考点:微程序规模与控存容量|难度:中 (1) 总微指令数 。 (2) ,配置为 位;下地址字段至少 位。 (3) 微指令不含下址字段,其余不变,字长减少 10 位 → 位(转移改用专门的转移微指令实现)。 错因提醒:取指微程序是公用段,只计一次,不要乘 64;中断/间址微程序同理是公用的。
第 30 题 |考点:瓶颈段与流水线性能|难度:中 (1) 时钟周期取最长段时间 (瓶颈段决定,否则该段来不及完成会丢数据)。 (2) ;串行每条 ns、共 2300 ns → ;(约 条/ms)。 (3) 细分后五段为 50、40、40、50、50 ns,新瓶颈 50 ns → ;;。 错因提醒:① 加速比不能用"段数×n÷拍数"一刀切——各段不等长时串行时间要按段和算;② 细分瓶颈段后段数 变 5,公式里的 同步改变;最大吞吐率由 升到 ,仍未达 ,因为还有 50 ns 的段。