




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章第四章 指令級并行指令級并行 主要內(nèi)容 n4.1 指令級并行的概念 n4.2 指令的動態(tài)調(diào)度 n4.3 動態(tài)分支預(yù)測技術(shù) n4.4 多指令流出技術(shù) n4.5 循環(huán)展開和指令調(diào)度 n4.1指令級并行的概念 4.1 4.1 指令級并行的概念指令級并行的概念 n指令級并行指令級并行(ILP:Instruction-Level Parallelism):是指 指令之間存在的一種并行性,利用它計(jì)算機(jī)可以執(zhí)行兩條 或兩條以上的指令。 n途徑:資源重復(fù)資源重復(fù)-設(shè)置多個(gè)處理部件 時(shí)間重疊時(shí)間重疊-幾乎所有的處理機(jī)都利用流水線來使指令 重疊并行執(zhí)行,以達(dá)到提高性能的目的。 n本章研究:本章研究:如何通過
2、各種可能的技術(shù),獲得更多的指令級 并行性。 硬件軟件技術(shù)硬件軟件技術(shù) 必須要硬件技術(shù)和軟件技術(shù)互相配合,才能夠最大限度地挖 掘出程序中存在的指令級并行。 n流水線處理機(jī)的實(shí)際流水線處理機(jī)的實(shí)際CPICPI 理想流水線的CPI加上各類停頓的時(shí)鐘周期數(shù): CPICPI流水線 流水線 = CPI = CPI理想 理想 + + 停頓停頓結(jié)構(gòu)沖突 結(jié)構(gòu)沖突 + + 停頓停頓數(shù)據(jù)沖突 數(shù)據(jù)沖突 + + 停頓停頓控制沖突 控制沖突 理想CPI是衡量流水線最高性能的一個(gè)指標(biāo)。通過 減少右邊各項(xiàng),就能減小總的CPI,從而提高IPC。 IPC(Instructions Per Cycle):定義為一個(gè)時(shí) 鐘周期內(nèi)
3、流水線上完成的指令條數(shù)。 4.1 指令級并行的概念指令級并行的概念 1. 循環(huán)級并行循環(huán)級并行 n使一個(gè)循環(huán)中的不同循環(huán)體并行執(zhí)行。 n開發(fā)循環(huán)體中存在的并行性是指令級并行研究的重點(diǎn)之一 n最基本的開發(fā)循環(huán)級并行的技術(shù) n循環(huán)展開(loop unrolling)技術(shù) (4.5節(jié)介紹) n采用向量指令和向量數(shù)據(jù)表示 (向量章節(jié)介紹) 2. 相關(guān)與流水線沖突相關(guān)與流水線沖突 n靜態(tài)指令調(diào)度 n動態(tài)指令調(diào)度 4.1 指令級并行的概念指令級并行的概念 相關(guān)是程序固有的相關(guān)是程序固有的 一種屬性,它反映一種屬性,它反映 了程序中指令之間了程序中指令之間 的相互依賴關(guān)系。的相互依賴關(guān)系。 相關(guān)是否會導(dǎo)致實(shí)
4、際沖相關(guān)是否會導(dǎo)致實(shí)際沖 突的發(fā)生以及該沖突會突的發(fā)生以及該沖突會 帶來多長的停頓,則是帶來多長的停頓,則是 流水線的屬性。流水線的屬性。 不保持不保持“程序順序程序順序” 3. 對于正確地執(zhí)行程序來說,必須保持的最關(guān)鍵的兩個(gè) 屬性是:數(shù)據(jù)流數(shù)據(jù)流和異常行為。異常行為。 n數(shù)據(jù)流:數(shù)據(jù)流:指數(shù)據(jù)值從其產(chǎn)生者指令到其消費(fèi)者指令的實(shí)際 流動。 n保持異常行為保持異常行為是指:無論怎么改變指令的執(zhí)行順序,都不 能改變程序中異常的發(fā)生情況。 l即原來程序中是怎么發(fā)生的,改變執(zhí)行順序后還是怎 么發(fā)生。 l弱化為:指令執(zhí)行順序的改變不能導(dǎo)致程序中發(fā)生新 的異常。 4.1 指令級并行的概念指令級并行的概念
5、n4.2 指令的動態(tài)調(diào)度 4.2 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 關(guān)鍵知識回顧:關(guān)鍵知識回顧: 1.相關(guān)相關(guān) u相關(guān)是指兩條指令之間存在某種依賴關(guān)系,是程序固有的一種 屬性。 u相關(guān)包括:名相關(guān),數(shù)據(jù)相關(guān),控制相關(guān)。 2.沖突(沖突( HAZARDS,也稱為冒險(xiǎn)),也稱為冒險(xiǎn)) u沖突是指由于相關(guān)的存在,使得指令流中的下一條指令不能在 指定的時(shí)鐘周期執(zhí)行。 u具體一次相關(guān)是否會導(dǎo)致實(shí)際沖突的發(fā)生以及該沖突會帶來多 長的停頓,則是流水線的屬性。 u流水線沖突包括:結(jié)構(gòu)沖突,數(shù)據(jù)沖突,控制沖突。 3. 沖突的解決沖突的解決 (1 1)結(jié)構(gòu)沖突:)結(jié)構(gòu)沖突:停頓(流水線氣泡) (2 2)數(shù)據(jù)沖
6、突:)數(shù)據(jù)沖突: 定向傳送技術(shù) 定向傳送與停頓相結(jié)合 指令調(diào)度(編譯器)(編譯器) 前提:在亂序流動的流水線中。 不足:可能會產(chǎn)生新的WAR或WAW沖突。 (3 3)控制沖突)控制沖突: 預(yù)測分支失敗 預(yù)測分支成功 延遲轉(zhuǎn)移技術(shù) (編譯器)(編譯器) 靜態(tài)調(diào)度靜態(tài)調(diào)度 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 n靜態(tài)調(diào)度靜態(tài)調(diào)度 依靠編譯器對代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。 它不是在程序執(zhí)行的過程中,而是在編譯期間進(jìn)行代碼 調(diào)度和優(yōu)化。 通過把相關(guān)的指令拉開距離來減少可能產(chǎn)生的停頓。 n動態(tài)調(diào)度動態(tài)調(diào)度 在程序的執(zhí)行過程中,依靠專門硬件對代碼進(jìn)行調(diào)度, 減少數(shù)據(jù)相關(guān)導(dǎo)致的停頓。 4.2 指令的
7、動態(tài)調(diào)度指令的動態(tài)調(diào)度 一、動態(tài)調(diào)度的基本思想一、動態(tài)調(diào)度的基本思想 考慮下面一段代碼: DIV.D F4F4,F(xiàn)0,F(xiàn)2 SUB.D F10,F(xiàn)4F4,F(xiàn)6 ADD.D F12,F(xiàn)6,F(xiàn)14 SUB.DSUB.D指令與DIV.DDIV.D指令關(guān)于F4F4相關(guān),導(dǎo)致流水線停頓。 ADD.DADD.D指令與流水線中的任何指令都沒有關(guān)系,但也因此受但也因此受 阻阻。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 在前面的基本流水線中:指令在譯碼階段判斷相關(guān)關(guān) 系。 ID 檢測結(jié)構(gòu)沖突 檢測數(shù)據(jù)沖突 一旦一旦一條指令受阻,一條指令受阻,其后的指令都將停頓其后的指令都將停頓。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)
8、調(diào)度 n動態(tài)調(diào)度的基本思想是前面指令的阻塞不影響后面的 指令的繼續(xù)前進(jìn)。具體做法是流水線的譯碼階段再分為 兩個(gè)階段: n流出流出( (Issue, IS) ):指令譯碼,并檢查結(jié)構(gòu)沖突。(in- order issue) n讀操作數(shù)(讀操作數(shù)(Read Operands, RO):):等待數(shù)據(jù)沖突消失 (如果有沖突),然后讀操作數(shù)。(out of order execution) IS RO 檢測結(jié)構(gòu)沖突檢測數(shù)據(jù)沖突 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 n有的代碼在采用亂序執(zhí)行后可能會發(fā)生WAR沖突和WAW沖突。 n例如,考慮下面的代碼 DIV.D F4, F0, F2 SUB.D F10,
9、 F4, F6 ADD.D F6, F8, F14 DIV.D F10, F1, F3 反相關(guān)反相關(guān) 輸出相關(guān)輸出相關(guān) 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) SUB.D SUB.D F10F10, , F4F4, , F6F6 WARWAR沖突沖突 WAWWAW沖突沖突 TomasuloTomasulo算法算法可以通過使用寄存器重命名來消除。可以通過使用寄存器重命名來消除。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 回顧:寄存器換名可以消除WAR沖突和WAW沖突。 考慮之前的代碼: DIV.D F4, F0, F2 SUB.D F10,F4, F6 ADD.D F6, F8, F14 DIV.D F10, F1, F
10、3 反相關(guān)反相關(guān),F6,F6 輸出相關(guān)輸出相關(guān),F10,F10 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān),F4,F4 消除名相關(guān):消除名相關(guān):引入兩個(gè)臨時(shí)寄存器引入兩個(gè)臨時(shí)寄存器S S和和T T,分別將第一個(gè),分別將第一個(gè)F10F10 換成換成S S,將后一個(gè),將后一個(gè)F6F6換成換成T T。 S, T, 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 二、二、Tomasulo算法算法 1.1.基本思想基本思想 核心思想: n記錄和檢測指令相關(guān),操作數(shù)一旦就緒就立即執(zhí) 行,把發(fā)生RAW沖突的可能性減少到最小; n通過寄存器換名來消除WAR沖突和WAW沖突。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 nIBM 360/91首先采用了
11、Tomasulo算法。 nIBM 360/91的設(shè)計(jì)目標(biāo)是基于整個(gè)360系列的統(tǒng)一指令 集和編譯器來實(shí)現(xiàn)高性能,而不是設(shè)計(jì)和利用專用的 編譯器來提高性能。 需要更多地依賴于硬件。 nIBM 360體系結(jié)構(gòu)只有4 4個(gè)雙精度浮點(diǎn)寄存器,限制了 編譯器調(diào)度的有效性。 n360/91360/91的訪存時(shí)間和浮點(diǎn)計(jì)算時(shí)間都很長。 (也是Tomasulo算法要解決的問題) 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 n基于Tomasulo算法的MIPS處理器浮點(diǎn)部件的基本結(jié)構(gòu) 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP store緩緩沖沖器器 load緩緩沖沖器器 地地址址部部件件 load/stor
12、e操操作作 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 數(shù)數(shù)據(jù)據(jù) 1 1 存存儲儲部部件件 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 地地址址 2 3 2 3 4 5 6 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 1 1)保留站(保留站(reservation stationreservation station) 設(shè)置在運(yùn)算部件入口,每個(gè)保留站中保存一條已經(jīng)流出并 等待到本功能部件執(zhí)行的指令執(zhí)行的指令(相關(guān)信息)。 包括:包括:操作碼、操作數(shù)以及用于檢測和解決沖突的信息。 n在一條指令“流出”到保留站的時(shí)候,如果該指令 的
13、源操作數(shù)已經(jīng)在寄存器中就緒,則將之取到該保 留站中。 n如果操作數(shù)還沒有計(jì)算出來,則在該保留站中記錄 將產(chǎn)生這個(gè)操作數(shù)的保留站的標(biāo)識。 浮點(diǎn)加法器有3個(gè)保留站:ADD1,ADD2,ADD3 浮點(diǎn)乘法器有2個(gè)保留站:MULT1,MULT2 每個(gè)保留站都有一個(gè)標(biāo)識字段,唯一地標(biāo)識了該保留站。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 n基于Tomasulo算法的MIPS處理器浮點(diǎn)部件的基本結(jié)構(gòu) 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP store緩緩沖沖器器 load緩緩沖沖器器 地地址址部部件件 load/store操操作作 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 數(shù)數(shù)據(jù)
14、據(jù) 1 1 存存儲儲部部件件 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 地地址址 2 3 2 3 4 5 6 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 2 2)公共數(shù)據(jù)總線公共數(shù)據(jù)總線CDBCDB (Common Data Bus) 所有功能部件的計(jì)算結(jié)果都是送到CDB上,由它把這些結(jié) 果直接送到(播送到)各個(gè)需要該結(jié)果的地方。 3 3)loadload緩沖器和緩沖器和storestore緩沖器緩沖器 存放讀/寫存儲器的數(shù)據(jù)或地址 (與保留站類似) 4 4)浮點(diǎn)寄存器)浮點(diǎn)寄存器FPFP n共有16個(gè)浮點(diǎn)寄存器:F0,F(xiàn)2,F(xiàn)4,F(xiàn)30。
15、 n它們通過一對總線連接到功能部件,并通過CDB連接到 store緩沖器。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 5)指令隊(duì)列)指令隊(duì)列 n指令部件送來的(譯碼后)指令放入指令隊(duì)列 n指令隊(duì)列中的指令按先進(jìn)先出的順序流出 6)運(yùn)算部件)運(yùn)算部件 n浮點(diǎn)加法器完成加法和減法操作 n浮點(diǎn)乘法器完成乘法和除法操作 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站
16、站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 F8F8 F6F6 F4F4 F2F2 C C B B A A ADD1ADD1 MUL1MUL1 MUL2MUL2 ADD2ADD2 ADD3ADD3 ADD F2,ADD F2,F0F0,F6,F6 MUL MUL FOFO,F2,F4,F2,F4 Qi F0F0 D D SUB SUB F6,F8,F4F6,F8,F4 MUL MUL FOFO,F2,F4,F2,F4 ADD F2,ADD F2,F0F0, ,F6F6 SUB SUB F6F6,F8,F4,F8,F4 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)
17、總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 MUL MUL FOFO,F2,F4,F2,F4 ADD F2,ADD F2,F0F0, ,F6F6 SUB SUB F6F6,F8,F4,F8,F4 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)
18、標(biāo)識識 MUL A, BMUL A, B ADD F2,F0,F6ADD F2,F0,F6 F8F8 F6F6 F4F4 F2F2 D D C C B B ADD1ADD1 MUL1MUL1 MUL2MUL2 ADD2ADD2 ADD3ADD3 Qi SUB SUB F6,F8,F4F6,F8,F4 F0F0 A A MUL1MUL1 寄存器寄存器 狀態(tài)表狀態(tài)表 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB)
19、1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 MUL MUL FOFO,F2,F4,F2,F4 ADD F2,ADD F2,F0F0, ,F6F6 SUB SUB F6F6,F8,F4,F8,F4 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 MUL A, BMUL A, B ADD CADD C F8F8 F6F6 F4F4 F2F2 D D C C B B ADD1A
20、DD1 MUL1MUL1 MUL2MUL2 ADD2ADD2 ADD3ADD3 MUL1MUL1 ADD1ADD1 Qi F0F0 A A SUB D BSUB D B ADD2ADD2 SUB SUB F6,F8,F4F6,F8,F4 MUL1 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 MUL MUL FOFO,F2,F4,F2,F4 ADD F2,ADD F2
21、,F0F0, ,F6F6 SUB SUB F6F6,F8,F4,F8,F4 從從指指令令部部件件來來 浮浮點(diǎn)點(diǎn)寄寄存存器器FP 緩緩沖沖器器 浮浮點(diǎn)點(diǎn)操操作作 操操作作數(shù)數(shù)總總線線 操操作作總總線線 1 浮浮點(diǎn)點(diǎn)加加法法器器 浮浮點(diǎn)點(diǎn)乘乘法法器器 指指令令隊(duì)隊(duì)列列 2 3 公公共共數(shù)數(shù)據(jù)據(jù)總總線線(CDB) 1 2 保保留留站站 標(biāo)標(biāo)識識 標(biāo)標(biāo)識識 MUL A, BMUL A, B ADD MUL1, CADD MUL1, C F8F8 F6F6 F4F4 F2F2 D D C C B B ADD1ADD1 MUL1MUL1 MUL2MUL2 ADD2ADD2 ADD3ADD3 MUL1MUL
22、1 ADD1ADD1 Qi F0F0 A A SUB D, BSUB D, B ADD2ADD2 E E ADD E, ADD E, C C 硬件重命名硬件重命名 F F n在Tomasulo算法中,寄存器換名是通過保留站和流出邏輯 來共同完成的。 n當(dāng)指令流出時(shí),如果其操作數(shù)還沒有計(jì)算出來,則將該 指令中相應(yīng)的寄存器號換名為將產(chǎn)生這個(gè)操作數(shù)的保留站換名為將產(chǎn)生這個(gè)操作數(shù)的保留站 的標(biāo)識的標(biāo)識。 n指令流出到保留站后,其操作數(shù)寄存器號或者換成了數(shù) 據(jù)本身(如果該數(shù)據(jù)已經(jīng)就緒),或者換成了保留站的標(biāo) 識,不再與寄存器有關(guān)系不再與寄存器有關(guān)系。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 nTomasu
23、lo算法具有以下兩個(gè)特點(diǎn):兩個(gè)特點(diǎn): 1)沖突檢測和指令執(zhí)行控制是分布的。 每個(gè)功能部件的保留站中的信息決定了什么時(shí)候指每個(gè)功能部件的保留站中的信息決定了什么時(shí)候指 令可以在該功能部件開始執(zhí)行。令可以在該功能部件開始執(zhí)行。 2)計(jì)算結(jié)果通過CDB直接從產(chǎn)生它的保留站傳送到所有需 要它的功能部件,而不用經(jīng)過寄存器。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 2.2.指令執(zhí)行的步驟指令執(zhí)行的步驟 使用Tomasulo算法的流水線需3步: (1)流出:流出:從指令隊(duì)列的頭部取一條指令。 n如果沒有空閑的保留站,指令就不能流出。(結(jié)構(gòu)沖突) n如果該指令的操作所要求的保留站有空閑的,就把該 指令送到該保留
24、站(設(shè)為r)。 n如果其操作數(shù)在寄存器中已經(jīng)就緒,就將這些操作數(shù)送入保留站如果其操作數(shù)在寄存器中已經(jīng)就緒,就將這些操作數(shù)送入保留站r r。 n如果其操作數(shù)還沒有就緒,就把將產(chǎn)生該操作數(shù)的保留站的標(biāo)識送入如果其操作數(shù)還沒有就緒,就把將產(chǎn)生該操作數(shù)的保留站的標(biāo)識送入 保留站保留站r r。 (寄存器換名和對操作數(shù)進(jìn)行緩沖,消除WARWAR沖突) n完成對目標(biāo)寄存器的預(yù)約目標(biāo)寄存器的預(yù)約工作 (消除了WAWWAW沖突) 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 (2) 執(zhí)行執(zhí)行 n當(dāng)兩個(gè)操作數(shù)都就緒后,本保留站就用相應(yīng)的功能部件 開始執(zhí)行指令規(guī)定的操作。 (消除了R RAWAW沖突) nload和stor
25、e指令的執(zhí)行需要兩個(gè)步驟: n計(jì)算有效地址(要等到基地址寄存器就緒) n把有效地址放入load或store緩沖器 (3) 寫結(jié)果寫結(jié)果 功能部件計(jì)算完畢后,就將計(jì)算結(jié)果放到CDBCDB上,所有 等待該計(jì)算結(jié)果的寄存器和保留站(包括storestore緩沖器) 都同時(shí)從CDBCDB上獲得所需要的數(shù)據(jù)。 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 3. 3. TomasuloTomasulo算法舉例算法舉例 每個(gè)保留站有以下6個(gè)字段:(P121 圖4.2) nBusy:為“yes”表示本保留站或緩沖單元“忙”。 nOp:要對源操作數(shù)進(jìn)行的操作。 nVj,Vk:源操作數(shù)的值。 nQj,Qk:將產(chǎn)生源操作數(shù)
26、的保留站號。 n等于0 0表示操作數(shù)已經(jīng)就緒且在VjVj或VkVk中,或者不需要操 作數(shù)。 (起“標(biāo)志字段”作用) n對于每一個(gè)操作數(shù)來說,V V或Q Q字段只有一個(gè)有效。 nA:僅loadload和storestore緩沖器有該字段。開始是存放指令中的立 即數(shù)字段,地址計(jì)算后存放有效地址。 nQi:寄存器狀態(tài)表。 n每個(gè)寄存器在該表中有對應(yīng)的一項(xiàng),用于存放將把結(jié)果 寫入該寄存器的保留站的站號。 n為0 0表示當(dāng)前沒有正在執(zhí)行的指令要寫入該寄存器,也即 該寄存器中的內(nèi)容就緒。 (起“標(biāo)志字段”作用) 例:對于下述指令序列,給出當(dāng)?shù)谝粭l指令完成并寫 入結(jié)果時(shí),Tomasulo算法所用的各信息表中
27、的內(nèi)容。 L.DF6,34(R2) L.DF2,45(R3) MUL.DF0,F2,F4 SUB.DF8,F2,F6 DIV.DF10,F0,F6 ADD.DF6,F8,F2 4.2 指令的動態(tài)調(diào)度指令的動態(tài)調(diào)度 n當(dāng)采用Tomasulo算法時(shí),當(dāng)?shù)谝粭l指令完成并寫入結(jié) 果時(shí), 各條指令所處階段如下表。 指指 令令 指令狀態(tài)表指令狀態(tài)表 流出流出 執(zhí)行執(zhí)行 寫結(jié)果寫結(jié)果 L.D F6 , 34(R2) L.D F2 , 45(R3) MUL.DF0 , F2 , F4 SUB.D F8 , F6 , F2 DIV.DF10 , F0 , F6 ADD.D F6 , F8 , F2 4.2 指令
28、的動態(tài)調(diào)度指令的動態(tài)調(diào)度 名稱名稱 保留站保留站 Load1Load1 Load2Load2 Add1Add1 Add2Add2 Add3Add3 Mult1Mult1 Mult2Mult2 BusyBusy nono no no no no no no nono nono nono OpOp VjVj VkVk QjQj QkQk A A 寄存器狀態(tài)表寄存器狀態(tài)表 F0 F0 F2 F2 F4 F4 F6 F8 F6 F8 F10 F30F10 F30 Qi Qi L.D F6,34(R2) 流出流出 loadload緩沖器、保留站以及寄存器狀態(tài)表中的內(nèi)容如下表緩沖器、保留站以及寄存器狀態(tài)表
29、中的內(nèi)容如下表 RegsRegsR2R23434LDLDyesyes Load1Load1 名稱名稱 保留站保留站 Load1Load1 Load2Load2 Add1Add1 Add2Add2 Add3Add3 Mult1Mult1 Mult2Mult2 BusyBusy yes yes no no no no no no nono nono nono OpOp LD LD VjVj VkVk QjQj QkQk A A 34+RegsR234+RegsR2 寄存器狀態(tài)表寄存器狀態(tài)表 F0 F2 F4 F6 F8 F10 F30F0 F2 F4 F6 F8 F10 F30 Qi Qi Loa
30、d1 Load1 loadload緩沖器、保留站以及寄存器狀態(tài)表中的內(nèi)容如下表緩沖器、保留站以及寄存器狀態(tài)表中的內(nèi)容如下表 L.D F6,34(R2) 執(zhí)行執(zhí)行 計(jì)算有效地址計(jì)算有效地址 名稱名稱 保留站保留站 Load1Load1 Load2Load2 Add1Add1 Add2Add2 Add3Add3 Mult1Mult1 Mult2Mult2 BusyBusy nono no no no no no no nono nono nono OpOp VjVj VkVk QjQj QkQk A A 寄存器狀態(tài)表寄存器狀態(tài)表 F0 F2 F4 F6 F8 F10 F30F0 F2 F4 F6 F8 F10 F30 Qi Qi loadload緩沖器、保留站以及寄存器狀態(tài)表中的內(nèi)容如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園家長委員會2025親子旅行計(jì)劃
- 重癥護(hù)理病房管理經(jīng)驗(yàn)分享范文
- 新部編版語文五年上冊語言藝術(shù)培養(yǎng)計(jì)劃
- 新部編版一年級語文上課堂管理計(jì)劃
- 2023-2024學(xué)年貴州省黔西南州高一下學(xué)期3月月考地理試題(解析版)
- 制藥行業(yè)生產(chǎn)質(zhì)量管理措施
- 河南省商丘市部分學(xué)校2024-2025學(xué)年高二下學(xué)期4月期中考試英語試題(解析版)
- 廣西壯族自治區(qū)河池市2024-2025學(xué)年高三下學(xué)期4月月考聯(lián)考英語試題(解析版)
- 某年度ICU專用末端裝置戰(zhàn)略市場規(guī)劃報(bào)告
- 2025-2030中國掛燙機(jī)行業(yè)發(fā)展分析及發(fā)展前景與趨勢預(yù)測研究報(bào)告
- 2024年山東省公務(wù)員錄用考試《行測》真題及答案解析
- 鐵路基礎(chǔ)知識題庫單選題100道及答案解析
- 病理檢驗(yàn)技術(shù)課程設(shè)計(jì)
- 世界歷史第二冊全部教案
- 市政道路及設(shè)施零星養(yǎng)護(hù)服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 山東省青島市市北區(qū)2025屆數(shù)學(xué)七年級第一學(xué)期期末監(jiān)測試題含解析
- 北京市通州區(qū)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題(無答案)
- 2024年江蘇省南京市玄武區(qū)玄武外國語學(xué)校八年級下學(xué)期物理期末模擬卷1
- 河砂、碎石組織供應(yīng)、運(yùn)輸、售后服務(wù)方案
- 免疫學(xué)實(shí)驗(yàn)技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱醫(yī)科大學(xué)大慶校區(qū)
- 浙江省寧波市鎮(zhèn)海區(qū)人教PEP版2022年小學(xué)畢業(yè)考試英語試卷【含答案】
評論
0/150
提交評論