【正文】
運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 I 1 DF DS TC WB L O A D 指令 I 2 EX DF DS TC WB 使用 LOAD 數(shù)據(jù) I 3 RF EX DF DS TC WB I 4 IS RF EX DF DS TC WB I 5 IF IS RF EX DF DS TC WB I 6 IF IS RF EX DF DS TC WB 超流水線處理機(jī)性能 指令級(jí)并行度為 (1,n)的超流水線處理機(jī),執(zhí)行 N條指令所的時(shí)間為: 超流水線處理機(jī)相對(duì)于單流水線普通標(biāo)量處理機(jī)的加速比為: 加速比的最大值為: S(1, n)MAX= n T n k n tN( , ) ( )1 1? ? ? ?1)1()1()1(),1()1,1(),1(?????????????NnkNkntnNktNknTTnS 超標(biāo)量超流水線處理機(jī) 一個(gè)時(shí)鐘周期發(fā)射 m次,每次發(fā)射 n條指令 指令執(zhí)行時(shí)序 典型處理機(jī)結(jié)構(gòu) 超標(biāo)量超流水線處理機(jī)性能 三種處理機(jī)的性能比較 每個(gè)時(shí)鐘周期發(fā)射 3 次,每次同時(shí)發(fā)射 3 條指令的 超標(biāo)量超流水線處理機(jī)的指令執(zhí)行時(shí)空圖 1 2 3 4 5 6 I1 IF ID EX WR 時(shí)鐘周期 I2 IF ID EX WR I3 IF ID EX WR I4 IF ID EX WR I5 IF ID EX WR I6 IF ID EX WR I7 IF ID EX WR I8 IF ID EX WR I9 IF ID EX WR I10 IF ID EX WR I11 IF ID EX WR I12 IF ID EX WR 指令 IF :取指令, ID :指令譯碼, EX :執(zhí)行指令, WR :寫回結(jié)果 指令執(zhí)行時(shí)序 典型處理機(jī)結(jié)構(gòu) DEC公司的 Alpha處理機(jī)為典型的 超標(biāo)量超流水線結(jié)構(gòu) 。 主要由四個(gè)功能部件和兩個(gè) Cache組成:整數(shù)部件EBOX 浮點(diǎn)部件 FBOX 地址部件 ABOX 中央控制部件 IBOX 指令 Cache和數(shù)據(jù) Cache 在 EBOX內(nèi)還有多條專用數(shù)據(jù)通路,可以把運(yùn)算結(jié)果直接送到執(zhí)行部件。 中央控制部件 IBOX能夠同時(shí)完成: 同時(shí)讀出兩條指令; 同時(shí)對(duì)兩條指令進(jìn)行譯碼,并作相關(guān)性檢測; 如果資源和相關(guān)性允許, IBOX就把兩條指令同時(shí)發(fā)射給 EBOX、 ABOX和 FBOX三個(gè)執(zhí)行部件中的兩個(gè)。 指令流水線的控制方式: 采用 順序發(fā)射亂序完成 。 在指令 Cache中有一個(gè)轉(zhuǎn)移歷史表,實(shí)現(xiàn)條件轉(zhuǎn)移的動(dòng)態(tài)預(yù)測。 Alpha 21064處理機(jī)共有 三條指令流水線: (1)整數(shù)操作流水線為 7個(gè)流水段 ,其中,取指令 2個(gè)流水段、分析指令 2個(gè)流水段、運(yùn)算 2個(gè)流水段、寫結(jié)果 1個(gè)流水段。 (2)訪問存儲(chǔ)器流水線為 7個(gè)流水段 。 (3)浮點(diǎn)操作流水線分為 10個(gè)流水段 ,其中,浮點(diǎn)執(zhí)行部件 FBOX的延遲時(shí)間為 6個(gè)流水段。 三條指令流水線的平均段數(shù)為 (7+7+10)/3=8,且每個(gè)時(shí)鐘周期發(fā)射兩條指令。因此, Alpha 21064處理機(jī)為超標(biāo)量超流水線處理機(jī)。 7 個(gè)流水段的整數(shù)操作流水線(0) (1) (2) (3) (4) (5) (6)IF S W A P I0 I1 A1 A2 WRIF :取指令; SWAP :交換雙發(fā)射指令,轉(zhuǎn)移預(yù)測; I0 :指令譯碼;I1 訪問通用寄存器堆,發(fā)射校驗(yàn); A1 :計(jì)算周期 1 , IBOX 計(jì)算新的 PC 值;A2 :計(jì)算周期 2 ,查指令快表; WR :寫整數(shù)寄存器堆,指令 Cache 命中檢測。7 個(gè)流水段的訪問存儲(chǔ)器流水線 ( 0 ) (1) (2) (3) (4) (5) (6)IF S W A P I0 I1 AC TB HMAC : ABOX 計(jì)算有效數(shù)據(jù)地址; TB :查數(shù)據(jù)快表;HM :寫讀數(shù)緩沖棧,數(shù)據(jù) Cache 命中 / 不命中檢測。 1 0 個(gè)流水段的浮點(diǎn)操作流水線 ( 0 ) (1) (2) (3) (4) (5) (6) (7) (8) (9)IF S W A P I0 I1 F1 F2 F3 F4 F5 F W RF1 - F5 :浮點(diǎn)計(jì)算流水線; FWR :寫回浮點(diǎn)寄存器堆。 超標(biāo)量超流水線處理機(jī)的性能 指令級(jí)并行度為 (m,n)的超標(biāo)量超流水線處理機(jī),連續(xù)執(zhí)行 N條指令所需要的時(shí)間為: 超標(biāo)量超流水線處理機(jī)相對(duì)于單流水線標(biāo)量處理機(jī)的加速比為: 在理想情況下,超標(biāo)量超流水線處理機(jī)加速比的最大值為: S(m,n)MAX= m n T m n k N mm n t( , ) ( )? ? ?? ?mNmnkNkmntmnmNktNknmSSnmS????????????? )1()()1(),()1,1(),( 三種標(biāo)量處理機(jī)的性能比較 相 2 . 5 對(duì) 性 2 . 0 能 1 . 5 1 . 0 0 . 5 0 . 0 1 2 3 4 5 6 7 8 指令級(jí)并行度 超流水線處理機(jī) 超標(biāo)量處理機(jī) 超標(biāo)量超流水線處理機(jī) 從三種標(biāo)量處理機(jī)的性能曲線中,可以得出如下結(jié)論: 超標(biāo)量處理機(jī)的相對(duì)性能最高,其次是超標(biāo)量超流水線處理機(jī),超流水線處理機(jī)的相對(duì)性能最低, 主要原因如下: (1)超標(biāo)量處理機(jī)功能部件的沖突比超流水線處理機(jī)小。在指令執(zhí)行過程中的許多功能段,超標(biāo)量處理機(jī)都重復(fù)設(shè)置有多個(gè)相同的指令執(zhí)行部件,而超流水線處理機(jī)只是把同一個(gè)指令執(zhí)行部件分解為多個(gè)流水級(jí)。 (2)條件轉(zhuǎn)移等操作造成的損失,超流水線處理機(jī)要比超標(biāo)量處理機(jī)大。 由于超流水線處理機(jī)采用深度流水線結(jié)構(gòu),對(duì)條件轉(zhuǎn)移等操作比超標(biāo)量處理機(jī)敏感。 (3)超流水線處理機(jī)的啟動(dòng)延遲通常要比超標(biāo)量處理機(jī)大。 超標(biāo)量處理機(jī)在每個(gè)時(shí)鐘周期的一開始就同時(shí)發(fā)射多條指令, 超流水線處理機(jī)把一個(gè)時(shí)鐘周期平均分成多個(gè)流水線周期,每個(gè)流水線周期只發(fā)射一條指令。 當(dāng)橫坐標(biāo)給出的理論指令級(jí)并行度比較低時(shí),處理機(jī)的實(shí)際指令級(jí)并行度的提高比較快。 當(dāng)理論指令級(jí)并行度進(jìn)一步增加時(shí),處理機(jī)實(shí)際指令級(jí)并行度提高的速度越來越慢。 在實(shí)際設(shè)計(jì)超標(biāo)量、超流水線、超標(biāo)量超流水線處理機(jī)的指令級(jí)并行度時(shí)要適當(dāng),否則,有可能造成花費(fèi)了大量的硬件,但實(shí)際上處理機(jī)所能達(dá)到的指令級(jí)并行度并不高。 目前,一般認(rèn)為, m 和 n 都不要超過 4。 一個(gè)特定程序由于受到本身的數(shù)據(jù)相關(guān)和控制相關(guān)的限制,它的指令級(jí)并行度的最大值是有限的,是有個(gè)確定的值。 最大指令級(jí)并行度由程序自身的語義決定,與這個(gè)程序運(yùn)行在那一種處理機(jī)上及采用何種方法開發(fā)并行性無關(guān)。 對(duì)于某一個(gè)特定的程序,圖中的三條曲線最終都要收攏到同一個(gè)點(diǎn)上。 對(duì)于各個(gè)不同程序,這個(gè)收攏點(diǎn)的位置也是不同的。 本章重點(diǎn): ,發(fā)生的情況及解決的辦法 、多發(fā)射與先行指令窗口 、超流水線處理機(jī)的結(jié)構(gòu)及性能分析 練習(xí)題 :