Skip to content

单总线数据通路:统考大题主战场

考情分析

这是 408 计组综合题的主战场:2009 年(数据通路信息流向)、2015 年(单总线 + 移位寄存器)、2022 年(数据通路分析)的大题都是这个题型。题目给一张单总线 CPU 结构图和自定义的控制信号约定,要求写出某条指令每个节拍的微操作和控制信号。前面单周期/多周期两篇用的 MIPS 教学模型帮你建立直觉,但真题答题用的是本篇这套唐朔飞式写法。

单总线结构长什么样

CPU 内部所有部件挂在一条内部总线上:

通用寄存器 R0~R3 ─┐
PC ──────────────┤
MAR ─────────────┤  内部总线(每拍只能传一个数据)
MDR ─────────────┤
IR ──────────────┤
暂存器 Y ────────┤
ALU ←── Y(一个输入来自暂存器)
  ↑──── 总线(另一个输入直接来自总线)
ALU 输出 → 暂存器 Z → 总线

两个关键约束决定了一切:

  1. 每个节拍总线上只能传送一个数据——两个数据要传就得拆成两拍
  2. ALU 是组合逻辑、自身不存数——两个输入不能同时来自总线,所以一个输入先存进暂存器 Y;输出也不能直接回总线(会和输入打架),先存进暂存器 Z

为什么需要 Y 和 Z(高频简答)

若没有 Y:ALU 两个操作数都要走总线,而总线一拍只能传一个数。若没有 Z:ALU 输出直接上总线,会与正在总线上的输入操作数冲突(组合逻辑成环)。单总线结构必须配 Y、Z 两个暂存器,这是和多总线结构对比的核心考点——三总线结构下 Y、Z 可省,节拍数更少。

控制信号的写法

每个寄存器与总线之间有两类门控信号:

信号含义
R0out打开 R0 → 总线的输出门
R0in打开 总线 → R0 的输入门
MemR / MemW主存读 / 写命令
ALU(add)ALU 操作类型

一拍的微操作写成传送语句 + 控制信号,例如 (R0)Y 这一拍的信号就是 R0out, Yin

取指周期:所有指令共用的三拍

节拍微操作控制信号
T1(PC)MARPCout, MARin
T2M(MAR)MDR(PC)+1PCMemR, MDRin, PC+1
T3(MDR)IR,操作码送译码器MDRout, IRin

注意 T2 里 (PC)+1PC 不占总线——PC 自增由专门的加 1 逻辑完成,所以能和访存同拍并行。这是"哪些操作可以并行"的判断标准:不抢总线、不抢部件的操作才能挤进同一拍

三类指令的执行周期模板

① 寄存器-寄存器型:ADD R0, R1(功能 (R0)+(R1)R0

节拍微操作控制信号
T4(R0)YR0out, Yin
T5(R1)+(Y)ZR1out, ALU(add), Zin
T6(Z)R0Zout, R0in

② 取数型:LOAD R0, (R1)(功能 M[(R1)]R0

节拍微操作控制信号
T4(R1)MARR1out, MARin
T5M(MAR)MDRMemR, MDRin
T6(MDR)R0MDRout, R0in

③ 存数型:STORE (R1), R0(功能 (R0)M[(R1)]

节拍微操作控制信号
T4(R1)MARR1out, MARin
T5(R0)MDRR0out, MDRin
T6(MDR)M(MAR)MemW, MDRout(至主存)

完整例题:访存加法指令

:写出指令 ADD R0, (R1)(功能 (R0)+M[(R1)]R0)从取指到执行完毕的全部节拍。

节拍微操作控制信号说明
T1(PC)MARPCout, MARin取指
T2M(MAR)MDR(PC)+1PCMemR, MDRin, PC+1取指
T3(MDR)IRMDRout, IRin取指、译码
T4(R1)MARR1out, MARin送操作数地址
T5M(MAR)MDRMemR, MDRin取操作数
T6(MDR)YMDRout, Yin一个操作数进暂存器
T7(R0)+(Y)ZR0out, ALU(add), Zin另一个操作数走总线,运算
T8(Z)R0Zout, R0in结果写回

共 8 拍。若问"哪几拍访问了主存":T2、T5 两拍(取指一次 + 取操作数一次)。

答题套路(四步)

  1. 取指三拍照抄(除非题目说明取指已完成)
  2. 执行段先写数据流:操作数从哪来 → 经不经过 ALU → 结果到哪去
  3. 按"一拍一个总线传送"拆拍:双操作数运算必有"先进 Y、再运算进 Z、最后 Z 写回"三拍
  4. 控制信号照"out/in 配对"翻译:源寄存器 out + 目的寄存器 in,访存拍加 MemR/MemW,运算拍加 ALU 操作

常见丢分点:

  • 忘了 Y/Z,让 ALU 两个输入同时走总线 ❌
  • (PC)+1 单独占一拍(它有专用加 1 逻辑,可并入 T2)❌
  • STORE 类指令把 MemW 写在数据还没进 MDR 的那一拍 ❌

真题练习

题库中以下真题就是本题型,建议按"先自己写节拍表、再对答案"的方式练:

  • 2009 年第 44 题:给定数据通路画信息流向
  • 2015 年第 43 题:单总线 + 移位寄存器 SR,写指令的节拍安排
  • 2022 年第 43 题:数据通路分析