【正文】
指令 3 執(zhí)行指令 3 取指令 2 執(zhí)行指令 2 取指令 1 執(zhí)行指令 1 必須等 上條 指令執(zhí)行結(jié)束,才能確定 下條 指令的地址 造成時(shí)間損失 3. 影響指令流水效率加倍的因素 (1) 執(zhí)行時(shí)間 取指時(shí)間 (2) 條件轉(zhuǎn)移指令 對指令流水的影響 解決辦法 ? 取指令 部件 指令部件 緩沖區(qū) 執(zhí)行指令 部件 猜測法 4. 指令的六級流水 六級流水 14 個(gè)時(shí)間單位 串行執(zhí)行 6 9 = 54 時(shí)間單位 完成 一條指令 6 個(gè)時(shí)間單位 CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 指令 1 與指令 4 沖突 指令 2 與指令 5 沖突 指令 指令 指令 6 沖突 …… CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI CO FO EI WO DI FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 8 指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t 三、影響指令流水性能的因素 1. 訪存沖突 解決辦法 ? 指令存儲器和數(shù)據(jù)存儲器分開 ? 指令預(yù)取技術(shù) (適用于訪存周期短的情況) 2. 相關(guān)問題 程序的相近指令之間出現(xiàn)某種關(guān)聯(lián) 使指令流水出現(xiàn)停頓 影響流水線效率 (1) 控制相關(guān) WO EI FO CO DI WO EI FO DI FI FI DI FI CO FI FO CO DI FI WO EI FO CO DI FI DI FO EI WO EI FO CO FI DI CO WO DI FI CO FI 指令 1 指令 2 指令 3 指令 4 指令 5 指令 6 指令 7 指令 15 指令 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 轉(zhuǎn)移損失 t 設(shè) 指令 3 是轉(zhuǎn)移指令 BNE 指令必須等 CPX 指令的結(jié)果 才能判斷出 是轉(zhuǎn)移 還是順序執(zhí)行 LDA 0 LDX 0 INX CPX N BNE M DIV N STA ANS ADD X, D M (2) 數(shù)據(jù)相關(guān) 幾條相近的指令間,共用 同一存儲單元 或 同一寄存器 時(shí), 會出現(xiàn) 數(shù)據(jù)相關(guān) ADD R1, R2 如: SUB R1, R3 采用 旁路技術(shù) 解決辦法 寄存器組 鎖存器 鎖存器 ALU 四、流水線的多發(fā)技術(shù) 1. 超標(biāo)量技術(shù) ? 每個(gè)時(shí)鐘周期內(nèi)可 并發(fā)多條獨(dú)立指令 ? 不能調(diào)整 指令的 執(zhí)行順序 配置多個(gè)功能部件 通過編譯優(yōu)化技術(shù),把可并行執(zhí)行的指令搭配起來