1. 转移指令对流水线的影响 如下图所示,T1周期取指add指令,T2周期取指sub指令,T3周期取指beq指令。 对于人类来说,我们能看到sub和beq之间可能存在一个循环...
![240](https://cdn2.jianshu.io/assets/default_avatar/10-e691107df16746d4a9f3fe9496fd1848.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
1. 转移指令对流水线的影响 如下图所示,T1周期取指add指令,T2周期取指sub指令,T3周期取指beq指令。 对于人类来说,我们能看到sub和beq之间可能存在一个循环...
1. 什么是数据冒险 当前指令需要使用之前指令的运算结果,但是结果还没有写回。 2. 数据冒险举例 比如下图中,第2条add指令需要使用第1条sub指令的结果,第1条sub指...
流水线本质是提高了时间并行性,这样可能会带来一些错误。 1. 什么是冒险hazard 阻止下一条指令在下一个时钟周期开始执行的情况。 2. 冒险的分类 2.1 结构冒险 所需...
1. 超标量流水线的定义 超标量结构:通常,具有两条或两条以上并行工作的流水线结构就称为超标量结构。 上一篇笔记说到,优化流水线的方向可以加深流水线,这一篇笔记介绍另一个方向...
1. 厨房做菜的例子 采用流水线做菜方式,单独一道菜需要4+分钟,因为每个流程之间交接需要一些时间,对应处理器的流水线寄存器带来的延迟。 做4道菜用流水线的方式一共需要7+分...
1. 举个例子 一个大厨做菜的例子,如下图所示, 用4个小厨师进行流水线的操作,如下图所示, 每个小厨师负责一个环节,还有一个小厨师“吹号”,这样4分钟后,流水线填满,即每个...
1. 隐藏数据通路的实现细节 我们首先把数据通路的实现细节隐藏起来,只看下面这8个控制信号, 分析指令位域,我们从指令编码中还可以得到opcode和func位域,如下图所示,...
我们研究beq指令,beq rs,rt,imm16 1. 条件分支指令的示例 if(i == j) f = g+h; else f = g-h; 对应的MIPS指令是, be...
我在这次学习中,使用的是MIPS指令集的子集,可参考之前的几篇笔记,其中访存指令lw和sw都是I型指令, lw rt,imm16(rs) sw rt,imm16(rs) 1....
1. MIPS指令系统从不同维度的划分 1.1 从功能维度划分 <1> 运算指令 <2> 访存指令 <3> 分支指令 1.2 从格式维度划分 <1> R型指令 <2> I型指...
1. 基本原则 根据指令需求,连接组件,建立数据通路 2. 指令的需求 指令的需求简单分为以下两类, <1> 所有指令的共同需求 <2> 不同指令的不同需求 2.1 所有指令...
1. 处理器的设计步骤 <1> 分析指令系统,得出对数据通路的要求。所谓数据通路,就是指令所要操作的数据,需要通过怎样的电路结构。 <2> 为数据通路选择合适的组件,例如加法...
1. 32-bit除法器的工作流程图 首先来看32-bit除法器的工作流程图,如下图所示, 2. 4-bit除法器的硬件实现 我们以4-bit除法器的硬件实现作为例子学习,如...
1. 十进制除法的运算过程 这里选取两个特殊的十进制数来演示除法的运算过程,如下图所示, 2. 二进制除法的运算过程 二进制除法的运算过程与十进制的除法类似,如下图所示, <...
1. 例子:2个十进制数相乘 1.1 选择普通的十进制数相乘2345*9876 如下图所示,是两个十进制数相乘的例子,2345*9876, <1> 首先计算2345*6,根据...