mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-06-16 06:56:54 +08:00
Update 4-central-processing-unit.md
This commit is contained in:
@@ -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. 超流水技术:
|
||||
+ 在一个时钟周期内再分段。
|
||||
+ 在一个时钟周期内单个功能部件使用多次。
|
||||
|
||||
Reference in New Issue
Block a user