• 【组成原理-处理器】数据通路


    1 数据通路的结构和组成

    数据在功能部件之间传送的路径称为数据通路,包括数据通路上流经的部件,如 ACC、ALU、状态寄存器。通用寄存器等。

    1.1 数据通路的基本结构

    数据通路的基本结构分为两种:

    (1)内部总线结构(可参考“总线”章节)

    • CPU 内部单总线方式(常考,类似看图说话)
    • CPU 内部双总线方式
    • CPU 内部三总线方式

    (2)专用数据通路方式(有一定几率考,但做题方法与单总线的相同):不使用共享的总线

    1.2 数据通路的基本组成(单总线结构)

    在这里插入图片描述

    • “in”:允许数据从内部总线输入到该部件的信号
    • “out”:允许数据从该部件输出到内部总线的信号
    1.2.1 指令相关
    寄存器/部件(从 CU 发出的)控制信号
    程序计数器 PCPCin、PCout
    指令寄存器 IRIRin
    指令寄存器中存储的指令的地址码部分 Ad(IR)AdIRout
    1.2.2 运算相关
    寄存器/部件(从 CU 发出的)控制信号
    累加寄存器 ACCACCin、ACCout
    暂存输入寄存器 YYin
    暂存输出寄存器 ZZout
    算术逻辑单元 ALUALUin
    通用寄存器 RxRxin、Rxout
    1.2.3 存储相关
    • “E”:表示允许控制该部件往主存输入数据/从主存接收数据的信号
    • 未加“E”:表示允许控制该部件往内部总线输入数据/从内部总线接收数据的信号
    • MemR:允许从主存读出数据
    • MemW:允许往主存写入数据
    寄存器/部件(从 CU 发出的)控制信号
    存储器地址寄存器 MARMARin、MARout;MARoutE
    存储器数据寄存器 MDRMDRin、MDRout;MDRinE、MDRoutE
    将寄存器内的数据当做地址,往主存的该地址读或写数据 M(MAR)MemR、MemW

    2 数据通路中的微操作(硬布线控制器、单总线结构)

    在这里插入图片描述

    2.1 取指周期

    微操作控制信号描述
    (PC)–>MARPCout, MARin指令对应的地址放入 MAR 中
    1–>R命令存储器读
    M(MAR)–>MDRMemR, MDRinE从主存的相应地址读出指令并存入 MDR 中
    (MDR)–>IRMDRout, IRinMDR 存储的指令放入 IR 中
    OP(IR)–>ID指令译码
    (PC)+1–>PCPC+1程序计数器加 1 个指令字长

    数据通路:PC–>MAR–>Mem–>MDR–>IR

    2.2 间址周期

    2.2.1 间接寻址
    微操作控制信号描述
    Ad(IR)–>MARMARin读出指令的地址码部分,送入 MAR 中(注意没有 IRout)
    1–>R命令存储器读
    M(MAR)–>MDRMemR, MDRinE从主存的相应地址读出数据并存入 MDR 中
    (MDR)–>YMDRout, YinMDR 存储的数据放入暂存输入寄存器 Y 中

    数据通路:IR–>MAR–>Mem–>MDR–>Y

    2.2.2 寄存器间接寻址
    微操作控制信号描述
    (R0)–>MARR0out, MARin读出 R0 的数据,送入 MAR 中
    1–>R命令存储器读
    M(MAR)–>MDRMemR, MDRinE从主存的相应地址读出数据并存入 MDR 中
    (MDR)–>YMDRout, YinMDR 存储的数据放入暂存输入寄存器 Y 中

    数据通路:R0–>MAR–>Mem–>MDR–>Y

    2.3 执行周期

    ADD (R0), R1为例,功能为((R0))+(R1)–>(R0),说明执行指令流程和控制信号。

    微操作控制信号描述
    (Y)+(R1)–>ZYout, R1out, Zin, ALUinY 中数据和 R1 中数据相加,经过 ALU 计算的结果存入 Z 中(注意没有 ALUout)
    (Z)–>MDRZout, MDRin将计算结果放入 MDR 中
    1–>W命令存储器写
    (MDR)–>M(MAR)MDRoutE, MemW将 MDR 数据放入到主存相应地址中,注意此时 MAR 仍存储着 R0 的数据

    数据通路:Y, R1–>ALU–>Z–>MDR–>Mem

  • 相关阅读:
    Linux文件信息详解
    力扣每日一题 找出数组的第 K 大和 小根堆 逆向思维(TODO:二分+暴搜)
    一文带你走进 Linux 小工具 - tmux
    SpringMVC默认3个HandlerMapping和4个HandlerAdapter
    Spring Session
    分类预测 | Matlab实现GA-RF遗传算法优化随机森林多输入分类预测
    从n皇后入门递归
    借助 .NET 开源库 Sdcb.DashScope 调用阿里云灵积通义千问 API
    C++中的通俗理解左值,右值,左值引用,右值引用
    B. Two-gram
  • 原文地址:https://blog.csdn.net/baidu_39514357/article/details/126803903