【正文】
粗粒度 軟件實(shí)現(xiàn) 細(xì)粒度 硬件實(shí)現(xiàn) 并發(fā) 同時(shí) 取指令 3 執(zhí)行指令 3 三、指令流水原理 2. 指令的二級(jí)流水 1. 指令的串行執(zhí)行 取指令 取指令部件 完成 總有一個(gè)部件 空閑 指令預(yù)取 若 取指 和 執(zhí)行 階段時(shí)間上 完全重疊 指令周期 減半 速度提高 1 倍 … 執(zhí)行指令 執(zhí)行指令部件 完成 取指令 1 執(zhí)行 指令 1 取 指令 2 執(zhí)行 指令 2 取 指令 3 執(zhí)行指令 3 取指令 2 執(zhí)行指令 2 取指令 1 執(zhí)行指令 1 必須等 上條 指令執(zhí)行結(jié)束,才能確定 下條 指令的地址, 造成時(shí)間損失 3. 影響指令流水效率加倍的因素 (1) 執(zhí)行時(shí)間 取指時(shí)間 (2) 條件轉(zhuǎn)移指令 對(duì)指令流水的影響 解決辦法 ? 取指令 部件 指令部件 緩沖區(qū) 執(zhí)行指令 部件 猜測(cè)法 4. 指令的六級(jí)流水 六級(jí)流水 14 個(gè)時(shí)間單位 串行執(zhí)行 6 9 = 54 個(gè)時(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. 結(jié)構(gòu)相關(guān) 不同指令爭(zhēng)用同一功能部件產(chǎn)生資源沖突 程序的相近指令之間出現(xiàn)某種關(guān)聯(lián) 使指令流水出現(xiàn)停頓,影響流水線效率 解決辦法 ? 停頓 ? 指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開 ? 指令預(yù)取技術(shù) (適用于訪存周期短的情況) 2. 數(shù)據(jù)相關(guān) 不同指令因重疊操作,可能改變操作數(shù)的 讀 /寫 訪問順序 ? 采用 旁路技術(shù) 解決辦法 ? 寫后讀相關(guān)( RAW) SUB R1, R2, R3 ADD R4, R5, R1 ;( R2) ( R3) R1 ;( R5) +( R1) R4 ? 讀后寫相關(guān)( WAR) STA M, R2 ADD R2, R4, R5 ;( R2) M 存儲(chǔ)單元 ;( R4) +( R5) R2 ? 寫后寫相關(guān)( WAW) ? 后推法 MUL R3, R2, R1 SUB R3, R4, R5 ;( R2) ( R1) R3 ;( R4) ( R5) R3 (2) 數(shù)據(jù)相關(guān) ADD R1, R2 如: SUB R1, R3 采用 旁路技術(shù) 解決辦法 寄存器組 鎖存器 鎖存器 ALU 3. 控制相關(guān) BNE 指令必須等 CPX 指令的結(jié)果 才能判斷出 是轉(zhuǎn)移 還是順序執(zhí)行 LDA 0 LDX 0 INX CPX N BNE M DIV N STA ANS ADD X, D M 由轉(zhuǎn)移指令引起 3. 控制相關(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)移指令 五