From 2983cdde3e0bbaae71e041fb4c7f36e54d2adddc Mon Sep 17 00:00:00 2001 From: Didnelpsun <2675350965@qq.com> Date: Mon, 11 Jul 2022 23:03:34 +0800 Subject: [PATCH] Update 4-central-processing-unit.md --- Computer-Organization/4-central-processing-unit.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Computer-Organization/4-central-processing-unit.md b/Computer-Organization/4-central-processing-unit.md index 53f306f..876f5e4 100644 --- a/Computer-Organization/4-central-processing-unit.md +++ b/Computer-Organization/4-central-processing-unit.md @@ -216,7 +216,7 @@ + 实现简单。 + 容易冲突,且效率较低。 -对于$ALU$这种是一个组合逻辑电路的部件,其运算过程中必须保持两个输入端的内容不变。如果使用内部单总线方式,因此为了得到两个不同的操作数,$ALU$的一个输入端与总线相连,另一个输入端需通过一个寄存器与总线相连,第一个传入值的输入端需要用寄存器保存数据等待第二个数的输入,避免数据发生变化。此外,$ALU$的唯一的输出端也不能直接与内部总线相连,否则其输出又会通过总线反馈到输入端,影响运算结果,因此输出端需通过一个暂存器(用来暂存结果的寄存器)与总线相连。 +对于$ALU$这种是一个组合逻辑电路的部件,其运算过程中必须保持两个输入端的内容不变。如果使用内部单总线方式,因此为了得到两个不同的操作数,$ALU$的一个输入端与总线相连,另一个输入端需通过一个寄存器与总线相连,第一个传入值的输入端需要用寄存器保存数据等待第二个数的输入,避免数据发生变化。此外,$ALU$的唯一的输出端也不能直接与内部总线相连,否则其输出又会通过总线反馈到输入端,影响运算结果,因此输出端需通过一个暂存器(用来暂存结果的寄存器)或三态门(控制与总线的打开与关闭)与总线相连。 1. 寄存器之间数据传送,比如把$PC$内容送至$MAR$,实现传送操作的流程及控制信号为: 1. $(PC)\rightarrow Bus$:$PCout$有效,$PC$内容送总线。 @@ -527,7 +527,7 @@ T4||OP(IR)→微地址形成部件 #### 指令流水线定义 -一条指令大致分为取指、分析、执行三个阶段,设时间都为t,一共有n条指令: +一条指令大致分为取指、分析、执行三个阶段,设时间都为$t$,一共有$n$条指令: 1. 顺序执行: + 顺序执行所有指令。 @@ -569,7 +569,7 @@ T4||OP(IR)→微地址形成部件 + 理想情况:各阶段花费时间相同,每个阶段结束后能立即进入下一阶段。 + 机器周期一般分为五段:取指$IF$、译码$ID$、执行$EX$、访存$M$、写回$WB$。 -+ 各部件实际耗时:$100ns$、$80ns$、$70ns$、$50ns$、$50ns$,为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。即此处应将机器周期设置为$100ns$。 ++ 假如各部件实际耗时:$100ns$、$80ns$、$70ns$、$50ns$、$50ns$,为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。即此处应将机器周期设置为$100ns$。 + 流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。 #### 结构相关(资源冲突) @@ -595,6 +595,7 @@ T4||OP(IR)→微地址形成部件 #### 控制相关(控制冲突) + 当流水线遇到转移指令和其他改变$PC$值的指令而造成断流时,会引起控制相关。 ++ 主要指转移指令。 + 解决办法: 1. 尽早判别转移是否发生,尽早生成转移目标地址。 2. 预取转移成功和不成功两个控制流方向上的目标指令。 @@ -639,7 +640,7 @@ T4||OP(IR)→微地址形成部件 + 每个时钟周期内可并发多条独立指令。 + 要配置多个功能部件。 + 不能调整指令的执行顺序。 - + 可以结合动态调度技术。 + + 可以结合动态调度技术优化。 2. 超流水技术: + 在一个时钟周期内再分段。 + 在一个时钟周期内单个功能部件使用多次。