• CSAPP第四章:Y86 SEQ(指令顺序执行)的硬件结构


    SEQ硬件结构的抽象表示。

    程序计数器放在寄存器中(左下角,起点)。先向上,再向右

    取指:将程序计数器寄存器作为地址,指令存储器读取一个指令的字节,PC增加器计算valP(程序计数器增加后的值)。

    解码:寄存器文件有两个读端口A和B,从两个端口同时读寄存器值valA和valB。

    执行:根据指令的类型,算术/逻辑单元(ALU)进行不同的操作。

    1. 对于整数操作,执行指令指定的运算。
    2. 对其他指令,作为一个加法器来计算增加或减少栈指针,或计算有效地址,或者简单地加0,将一个输入传递到输出。
    3. 条件码寄存器(CC)有三个条件码:ALU负责计算条件码的新值,当执行一条跳转指令时,会根据条件码和跳转类型来计算分支信号Bch。

    访存:执行访存操作时,数据存储器读出或写入一个存储器字。指令和数据存储器访问的是相同的存储器位置,但是用于不同目的。

    写回: 寄存器文件有两个写端口。端口E用来写ALU计算出来的值。端口M用来写从数据存储器中读出的值。

    上图给出了实现SEQ所需要的硬件。

    1. 用带淡点的浅灰色方框表示硬件单元,包括存储器、ALU等。

    这些单元可以看成黑盒子,不关心它们实现的细节。

    1. 控制逻辑块用灰色圆角矩形表示。
    2. 线路的名字在白色圆角方框中说明。
    3. 宽度为字节的数据连接用中等粗度的线表示。 每条线代表一簇32根线,并列连在一起,将字从硬件的一个部分传送到另一部分。
    4. 宽度为字节或更窄的数据连接用细线表示。每条这样的线实际上代表一簇4根或8根线。
    5. 单个位连接用点线表示。
  • 相关阅读:
    基于B/S开发教师档案管理系统
    umi配置实战
    【JavaWeb】火车票管理系统 (三)用户登录-最终版
    注解@PostConstruct分析
    【Linux学习】05-2Linux上部署项目
    计算机毕设(附源码)JAVA-SSM蓟县农家乐网站
    前端如何mock数据
    [题] 筛质数 #质数(素数)
    Camera2 学习总结
    ts重点学习109-枚举类型的兼容性
  • 原文地址:https://blog.csdn.net/m0_52043808/article/details/134450915