Alex_McAvoy

想要成为渔夫的猎手

数据通路的功能与基本结构

【数据通路的功能】

数据在功能部件之间传送的路径称为数据通路,运算器与各寄存器之间的传送路径就是中央处理器内部数据通路

数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,这些都要加以控制

建立数据通路的任务是由操作控制部件来完成的,数据通路的功能是实现 CPU 内部的运算器与寄存器以及寄存器之间的数据交换

【数据通路的基本结构】

数据通路的基本结构主要有以下几种:

  • CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上,这种结构比较简单,但数据传输存在较多的冲突现象,性能较低

    • 单总线结构:连接各部件的总线只有一条
    • 双总线结构:CPU 中有两条总线
    • 多总线结构:CPU 中有两条以上的总线
  • CPU 内部三总线方式:将所有寄存器的输入端和输出端都连接到多条公共的通路上,相比之下单总线中一个时钟内只允许传一个数据,因而指令执行效率很低,因此采用多总线方式,同时在多个总线上传送不同数据,提高效率

  • 专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能比较高,但硬件量大

【数据传送】

寄存器间的数据传送

奇存器之间的数据传送可以通过 CPU 内部总线完成

以 $PC$ 寄存器为例,某寄存器 $AX$ 的输出和输入分别由 $AXout$ 和 $AXin$ 控制,把 $PC$ 内容送至 $MAR$,实现传送操作的流程及控制信号为:

  • $(PC) \rightarrow Bus$:$PCout$ 有效,$PC$ 内容送总线
  • $Bus \rightarrow MAR$:$MARin$ 有效,总线内容送 $MAR$

主存与 CPU 间的数据传送

主存与 CPU 之间的数据传送也要借助 CPU 内部总线完成

以 CPU 从主存读取指令为例说明数据在数据通路中的传送过程,实现传送操作的流程数据通路和控制信号及控制信号为:

  • $PC \rightarrow Bus \rightarrow MAR$:$PCout$ 和 $MARin$ 有效,现行指令地址 $\rightarrow MAR$
  • $1 \rightarrow R$:$CU$ 发读命令
  • $MEM(MAR) \rightarrow MDR$:$MDRin$ 有效
  • $MDR \rightarrow Bus \rightarrow IR$:$MDRout$ 和 $IRin$ 有效,现行指令 $\rightarrow IR$

执行算术或逻辑运算

当执行算术或逻辑操作时,由于 $ALU$ 本身是没有内部存储功能的组合电路,因此如要执行加法运算,被相加的两个数必须在 $ALU$ 的两个输入端同时有效

先将一个操作数经 CPU 内部总线送入暂存器 $Y$ 保存起来,$Y$ 的内容在 $ALU$ 的左输入端始终有效,再将另一个操作数经总线直接送到 $ALU$ 的右输入端,这样两个操作数都送入了 $ALU$,运算结果暂存在暂存器 $Z$ 中

  • $Ad(IR) \rightarrow Bus \rightarrow MAR$:$MDRout$ 和 $MARin$ 有效
  • $1\rightarrow R$:$CU$ 发读命令
  • $MEM \rightarrow$ 数据线 $\rightarrow MDR$:操作数从存储器 $\rightarrow$ 数据线 $\rightarrow MDR$
  • $MDR \rightarrow Bus \rightarrow Y$:$MDRout$ 和 $Yin$ 有效,操作数 $\rightarrow Y$
  • $(ACC)+(Y) \rightarrow Z$:$ACCout$ 和 $ALUin$ 有效,$CU$ 向 $ALU$ 发加命令,结果 $\rightarrow Z$
  • $Z \rightarrow ACC$:$Zout$ 和 $ACCin$ 有效,结果 $\rightarrow ACC$

感谢您对我的支持,让我继续努力分享有用的技术与知识点!