240 发简信
IP属地:天津
  • 120
    21. 控制冒险的处理

    1. 转移指令对流水线的影响 如下图所示,T1周期取指add指令,T2周期取指sub指令,T3周期取指beq指令。 对于人类来说,我们能看到sub和beq之间可能存在一个循环...

  • 120
    20. 数据冒险的解决

    1. 什么是数据冒险 当前指令需要使用之前指令的运算结果,但是结果还没有写回。 2. 数据冒险举例 比如下图中,第2条add指令需要使用第1条sub指令的结果,第1条sub指...

  • 120
    19. 流水线的冒险

    流水线本质是提高了时间并行性,这样可能会带来一些错误。 1. 什么是冒险hazard 阻止下一条指令在下一个时钟周期开始执行的情况。 2. 冒险的分类 2.1 结构冒险 所需...

  • 120
    18. 超标量流水线

    1. 超标量流水线的定义 超标量结构:通常,具有两条或两条以上并行工作的流水线结构就称为超标量结构。 上一篇笔记说到,优化流水线的方向可以加深流水线,这一篇笔记介绍另一个方向...

  • 120
    17. 流水线的优化

    1. 厨房做菜的例子 采用流水线做菜方式,单独一道菜需要4+分钟,因为每个流程之间交接需要一些时间,对应处理器的流水线寄存器带来的延迟。 做4道菜用流水线的方式一共需要7+分...

  • 120
    16. 流水线的基本原理

    1. 举个例子 一个大厨做菜的例子,如下图所示, 用4个小厨师进行流水线的操作,如下图所示, 每个小厨师负责一个环节,还有一个小厨师“吹号”,这样4分钟后,流水线填满,即每个...

  • 120
    15. 控制信号的集成

    1. 隐藏数据通路的实现细节 我们首先把数据通路的实现细节隐藏起来,只看下面这8个控制信号, 分析指令位域,我们从指令编码中还可以得到opcode和func位域,如下图所示,...

  • 120
    14. 分支指令的控制信号

    我们研究beq指令,beq rs,rt,imm16 1. 条件分支指令的示例 if(i == j) f = g+h; else f = g-h; 对应的MIPS指令是, be...

  • 120
    13. 访存指令的控制信号

    我在这次学习中,使用的是MIPS指令集的子集,可参考之前的几篇笔记,其中访存指令lw和sw都是I型指令, lw rt,imm16(rs) sw rt,imm16(rs) 1....

  • 120
    12. 运算指令的控制信号

    1. MIPS指令系统从不同维度的划分 1.1 从功能维度划分 <1> 运算指令 <2> 访存指令 <3> 分支指令 1.2 从格式维度划分 <1> R型指令 <2> I型指...

  • 120
    11. 数据通路的建立

    1. 基本原则 根据指令需求,连接组件,建立数据通路 2. 指令的需求 指令的需求简单分为以下两类, <1> 所有指令的共同需求 <2> 不同指令的不同需求 2.1 所有指令...

  • 120
    10. 处理器的设计步骤

    1. 处理器的设计步骤 <1> 分析指令系统,得出对数据通路的要求。所谓数据通路,就是指令所要操作的数据,需要通过怎样的电路结构。 <2> 为数据通路选择合适的组件,例如加法...

  • 120
    9. 除法器的实现与优化

    1. 32-bit除法器的工作流程图 首先来看32-bit除法器的工作流程图,如下图所示, 2. 4-bit除法器的硬件实现 我们以4-bit除法器的硬件实现作为例子学习,如...

  • 120
    8. 除法的运算过程

    1. 十进制除法的运算过程 这里选取两个特殊的十进制数来演示除法的运算过程,如下图所示, 2. 二进制除法的运算过程 二进制除法的运算过程与十进制的除法类似,如下图所示, <...

  • 120
    5. 乘法的运算过程

    1. 例子:2个十进制数相乘 1.1 选择普通的十进制数相乘2345*9876 如下图所示,是两个十进制数相乘的例子,2345*9876, <1> 首先计算2345*6,根据...