1
1
mirror of https://github.com/foxsen/archbase.git synced 2026-02-03 10:24:49 +08:00

修复笔误:RAW -> WAR

感谢tengwu指出问题。

fixes #38
This commit is contained in:
zhangfuxin
2023-08-24 08:07:19 +00:00
parent 6d46484305
commit 02693d75d8

View File

@@ -12,7 +12,7 @@
指令级并行性Instruction Level Parallelism简称ILP主要指指令之间的并行性当指令之间不存在相关时这些指令可以在处理器流水线上重叠起来并行执行。在程序运行中如果必须等前一条指令执行完成后才能执行后一条指令那么这两条指令是相关的。指令相关主要包括数据相关、控制相关和结构相关。数据相关包括写后读Read After Write简称RAW相关、读后写Write AfterRead简称WAR相关和写后写WriteAfter Write简称WAW相关。其中RAW相关是真正的数据相关因为存在真正的数据传递关系WAR相关和WAW相关又称为假相关或者名字相关指令之间实际不存在数据传递。控制相关主要是由于存在分支指令一条指令的执行取决于该分支指令的执行结果则这两条指令之间存在控制相关。结构相关是指两条指令同时需要流水线中的同一个功能部件。在这些相关中RAW数据相关和控制相关是真正制约指令级并行执行的相关。指令相关容易造成处理器流水线上的冲突引起流水线阻塞从而降低流水线效率。
现代处理器采用多种微结构设计技术挖掘指令级并行性,包括指令流水线、多发射、动态调度、寄存器重命名、转移猜测等技术。指令流水线重叠执行多条不相关的指令;多发射技术允许一个时钟周期执行多条指令,类似于“多车道”;动态调度允许后续指令越过前面被阻塞的指令继续被调度执行,相当于允许“超车”;寄存器重命名主要解决RAW和WAW的假相关问题转移猜测技术可以猜测分支指令的方向和目标在分支指令还未执行完之前获取更多可执行指令以减少控制相关造成的指令流水线阻塞。这方面的技术已经比较成熟。
现代处理器采用多种微结构设计技术挖掘指令级并行性,包括指令流水线、多发射、动态调度、寄存器重命名、转移猜测等技术。指令流水线重叠执行多条不相关的指令;多发射技术允许一个时钟周期执行多条指令,类似于“多车道”;动态调度允许后续指令越过前面被阻塞的指令继续被调度执行,相当于允许“超车”;寄存器重命名主要解决WAR和WAW的假相关问题转移猜测技术可以猜测分支指令的方向和目标在分支指令还未执行完之前获取更多可执行指令以减少控制相关造成的指令流水线阻塞。这方面的技术已经比较成熟。
### 数据级并行性