# 数据通路 - 单总线结构

数据通路:数据在功能部件之间传送的路径

信息从哪里开始,中间经过哪些部件,最后传到哪里

由控制部件产生的控制信号建立数据通路

数据通路的基本结构:

  • CPU 内部单总线方式
  • CPU 内部多总线方式
  • 专用数据通路方式

单总线结构

内部总线是指同一部件,如 CPU 内部连接各寄存器及运算部件之间的总线;

系统总线是指同一台计算机系统的各部件,如 CPU、内存、通道和各类 I/O 接口间互相连接的总线

  • 寄存器之间数据传送
    • 比如 PC 内容送至 MAR,实现传送操作的流程及控制信号为:
      • PC->Bus,PCout 有效,PC 内容送总线
      • Bus->MAR,MARin 有效,总线内容送 MAR
      • 也可写为:(PC)->Bus->MAR,重要的是描述清楚数据流向,且要注明哪些控制信号有效
  • 主存与 CPU 之间的数据传送
    • 比如 CPU 从主存读取指令,实现传送操作的流程及控制信号为:
      • (PC)->Bus->MAR,PCout 和 MARin 有效,现行指令地址 ->MAR
      • 1->R,CU 发读命令 (通过控制总线发出)
      • MEM (MAR)->MDR,MDRin 有效
      • MDR->Bus->IR,MDRout 和 IRin 有效,现行指令 ->IR
  • 执行算数或逻辑运算
    • 比如一条加法指令,微操作序列及控制信号为:
      • Ad (IR)->Bus->MAR,MDRout 和 MARin 有效(或 AdIRout 和 MARin 有效)
      • 1->R,CU 发读命令
      • MEM (MAR)-> 数据线 ->MDR,MDRin 有效
      • MDR->Bus->Y,MDRout 和 Yin 有效,操作数 ->Y
      • (ACC)+(Y)->Z,ACCout 和 ALUin 有效,CU 向 ALU 发送加命令
      • Z->ACC,Zout 和 ACCin 有效,结果 ->ACC

例题:

例题

设有如图所示的单总线结构,分析指令 ADD (R0),R1 的指令流程和控制信号

注:(R0) 代表需要一次间接寻址,即 R0 中存放的是操作数地址

  • 分析指令功能和指令周期
    • 功能:((R0))+(R1)->(R0)
    • 取指周期、间址周期、执行周期
  • 写出各阶段的指令流程

取指周期:公共操作

时序微操作有效控制信号
1(PC)->MARPCout,MARin
2M(MAR)->MDRMemR,MARout,MDRinE
3(MDR)->IRMDRout,IRin
4指令译码
5(PC)+1->PC

间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中

时序微操作有效控制信号
1(R0)->MARR0out,MARin
2M(MAR)->MDRMemR,MARout,MDRinE
3(MDR)->YMDRout,Yin

执行周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中

时序微操作有效控制信号
1(R1)+(Y)->ZR1out,ALUin,CU 向 ALU 发 ADD 控制信号
2(Z)->MDRZout,MDRin
3(MDR)->M(MAR)MemW,MDRoutE,MARout

# 数据通路 - 专用通路结构

专用数据通路

# 取指周期

  • (PC)->MAR,C0 有效
  • (MAR)-> 主存,C 有效
  • 1->R,控制单元向主存发送读命令
  • M (MAR)->MDR,C2 有效
  • (MDR)->IR,C3 有效
  • (PC)+1->PC
  • Op (IR)->CU,C4 有效

例题:

例题

上图是一个简化了的 CPU 与主存连接结构示意图 (图中省略了所有的多路选择器)。其中有一个累加寄存器 (ACC),一个状态数据寄存器和其他 4 个寄存器:主存地址寄存器 (MAR)、主存数据寄存器 (MDR)、程序寄存器 (PC) 和指令寄存器 (IR),各部分及其之间的连线表示数据通路,箭头表示信息传递方向。要求:

  • 请写出图中 a、b、c、d,4 个寄存器的名称
    • d 能自动 + 1,d 为 PC
    • PC 内容是地址,送 MAR,故 c 为 MAR
    • b 与微操作信号发生器相连,是 IR
    • 与主存相连的寄存器是 MAR 和 MDR,c 是 MAR,则 a 是 MDR
  • 简述图中取指令的数据通路
    • (PC)->MAR
    • M(MAR)->MDR
    • MDR->IR
    • OP (IR)-> 微操作信号发生器 (可写)
    • (PC)+1->PC (可写)
  • 简述数据在运算器和主存之间进行存 / 取访问
    • 存 / 取的数据放入 ACC 中,设数据地址已放入 MAR 中,
      • 取:M (MAR)->MDR;MDR)->ALU->ACC
      • 存:(ACC)->MDR;(MDR)->M (MAR)
  • 简述完成指令 LDA X 的数据通路 (X 为主存地址,LDA 的功能为 (X)->ACC)
    • X->MAR
    • M(MAR)->MDR
    • (MDR)->ALU->ACC
  • 简述完成指令 ADD Y 的数据通路 (Y 为主存地址,ADD 的功能为 (ACC)+(Y)->ACC)
    • Y->MAR
    • M(MAR)->MDR
    • (MDR)->ALU;(ACC)->ALU;ALU 执行加法
    • (ALU)->ACC
  • 简述完成指令 STA Z 的数据通路 (Z 为主存地址,STA 的功能为 (ACC)->Z)
    • Z->MAR
    • (ACC)->MDR
    • (MDR)->M(MAR)