體系結(jié)構(gòu)習(xí)題解答_第1頁
體系結(jié)構(gòu)習(xí)題解答_第2頁
體系結(jié)構(gòu)習(xí)題解答_第3頁
體系結(jié)構(gòu)習(xí)題解答_第4頁
體系結(jié)構(gòu)習(xí)題解答_第5頁
免費預(yù)覽已結(jié)束,剩余12頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第一章計算機體系結(jié)構(gòu)的基本概念1 .層次結(jié)構(gòu)一一計算機系統(tǒng)可以按語言的功能劃分為多級層次結(jié)構(gòu),每一層以不同的語言為特征。第6級:應(yīng)用語言虛擬機11第5級:高級語言虛擬機1第4級:匯編語言虛擬機1f第3級:操作系統(tǒng)虛擬機1f第2級:機器語言(傳統(tǒng)機器級)11第1級:微程序機器級2 .計算機體系結(jié)構(gòu):程序員看到的計算機的屬性,即概念性結(jié)構(gòu)和功能特性。3 .實質(zhì)是計算機系統(tǒng)中軟硬件界面的確定。4 .翻譯一一(基于層次結(jié)構(gòu))先把N+1級程序全部變換成N級程序之后,再去執(zhí)行N級程序,在執(zhí)行過程中,N+1級程序不再被訪問。5 .解釋一一每當(dāng)一條N+1級指令被譯碼后,就直接去執(zhí)行一串等效的N級指令,然后再去

2、取下一條N+1級指令,依此重復(fù)執(zhí)行。6 .體系結(jié)構(gòu)一一程序員所看到的計算機的屬性,即概念性結(jié)構(gòu)與功能特性。主要研究計算機系統(tǒng)軟件和硬件的功能分配以及如何最佳、最合理地實現(xiàn)分配給硬件的功能。8 .透明性一一在計算機技術(shù)中,對本來存在的事物或?qū)傩裕瑥哪骋唤嵌葋砜从趾孟癫淮嬖诘母拍罘Q為透明性。9 .系列機一一在一個廠家生產(chǎn)的具有相同的體系結(jié)構(gòu),但具有不同的組成和實現(xiàn)的一系列不同型號的機器。10 .軟件兼容一一同一個軟件可以不加修改地運行于體系結(jié)構(gòu)相同的各檔機器上,而且它們所獲得的結(jié)果一樣,差別只在于運行的時間不同。11 .兼容機一一不同廠家生產(chǎn)的、具有相同體系結(jié)構(gòu)的計算機。12 .計算機組成一一計算

3、機體系結(jié)構(gòu)的邏輯實現(xiàn)。13 .計算機實現(xiàn)一一計算機組成的物理實現(xiàn)。14 .存儲程序計算機(馮諾依曼結(jié)構(gòu))一一采用存儲程序原理,將程序和數(shù)據(jù)存放在同一存儲器中。指令在存儲器中按其執(zhí)行順序存儲,由指令計數(shù)器指明每條指令所在的單元地址。15 .并行性一一在同一時刻或同一時間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不同的工作。16 .時間重疊一一在并行性中引入時間因素,即多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設(shè)備的各個部分,以加快硬件周轉(zhuǎn)而贏得速度。17 .資源重復(fù)一一在并行性中引入時間因素,是根據(jù)留數(shù)量取勝的原則,通過重復(fù)設(shè)置資源,尤其是硬件資源,大幅度提高計算機系統(tǒng)的性能。18 .資源共

4、享一一是一種軟件方法,它使多個任務(wù)按一定的時間順序輪流使用同一套硬件設(shè)備。19 .同構(gòu)型多處理機由多個同種類型、至少同等功能的處理機組成、同時處理同一作業(yè)中能并行執(zhí)行的多個任務(wù)的機器。20 .異構(gòu)型多處理機由多個不同類型、功能不同的處理機組成、串行完成同一作業(yè)中不同任務(wù)的機器。21 .響應(yīng)時間一一從事件開始到結(jié)束之間的時間,也稱執(zhí)行時間。22 .測試程序組件一一選擇一個各個方面有代表性的測試程序,組成一個通用的測試程序集合。這個通用的測試程序集合稱為測試程序組件。23 .大概率事件優(yōu)先一一此原則是計算機體系結(jié)構(gòu)中最重要和最常用的原則。對于大概率事件(最常見的事件),賦予它優(yōu)先的處理權(quán)和資源使用

5、權(quán),以獲得全局的最優(yōu)結(jié)果。24 .系統(tǒng)加速比一一系統(tǒng)改進(jìn)前與改進(jìn)后總執(zhí)行時間之比。25 .Amdahl定律一一加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中的所占的重要性。26 .程序的局部性原理一一程序在執(zhí)行時所訪問的地址不是隨機的,而是相對簇聚;這種簇聚包括指令和數(shù)據(jù)兩部分。27 .CPI指令時鐘數(shù)(CyclesperInstruction)o第二章計算機指令集結(jié)構(gòu)設(shè)計1. CISC復(fù)雜指令集計算機。2. RISC精簡指令集計算機。3. Amdahl定律一一加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中所占的重要性。4. 程序的局部性原理:程序在執(zhí)行時所訪問

6、地址的分布不是隨機的,而是相對地簇聚;這種簇聚包括指令和數(shù)據(jù)兩部分。i. 程序局部性包括:ii. 邪序的時間局部性:程序即將用到的信息很可能就是目前正在使用的信息。iii. 邪序的空間局部性:程序即將用到的信息很可能與目前正在使用的信息在空間上相鄰或者臨近5. 5.指令系統(tǒng):又稱指令集(instructionset)是計算機體系結(jié)構(gòu)設(shè)計的核心,是計算機軟、硬件接口,是指機器所具有的全部指令的集合。它反映了計算機所擁有的基本功能。它是機器語言程序員所看到的機器的主要屬性之一。哈夫曼壓縮的基本思想:當(dāng)各種事件發(fā)生的概率不均時,采用優(yōu)化技術(shù)對發(fā)生概率最高的事件用最短的位數(shù)(時間)來表示(處理),而對

7、出現(xiàn)概率較低的,用較長的位數(shù)(時間)來表示(處理),就會導(dǎo)致表示(處理)的平均位數(shù)(時間)的縮短。14.2.2堆棧型機器、累加器型機器和通用寄存器型機器各有什么優(yōu)缺點?指令集結(jié)構(gòu)類型優(yōu)點缺點堆棧型是一種表示計算的簡單模型;指令短小。堆棧不能被隨機訪問,從而很難生成有效代碼。同時,由于堆棧是瓶頸,所以很難被高效地實現(xiàn)。累加器型減小了機器的內(nèi)部狀態(tài);指令短小。由于累加器是唯一的暫存器,這種機器的存儲器通信開銷最大。寄存器型是代碼生成最一般的模型。所有操作數(shù)均需命名,且顯式表示,因而指令比較長。2.3常見的三種通用寄存器型機器的優(yōu)缺點各有哪些?指令集結(jié)構(gòu)類型優(yōu)點缺點寄存器-寄存器型(0,3)簡單,指

8、令字長固定,是一種簡單的代碼生成模型,各種指令的執(zhí)行時鐘周期數(shù)相近。和指令中含有對存儲器操作數(shù)訪問的結(jié)構(gòu)相比,指令條數(shù)多,因而其目標(biāo)代碼較大。寄存器-存儲器型(1,2)可以直接對存儲器操作數(shù)進(jìn)行訪問,容易對指令進(jìn)行編碼,且其目標(biāo)代碼較小。指令中的操作數(shù)類型不同。在一條指令中同時對一個寄存器操作數(shù)和存儲器操作數(shù)進(jìn)行編碼,將限制指令所能夠表示的寄存器個數(shù)。由于指令的操作數(shù)可以存儲在不同類型的存儲器單元,所以每條指令的執(zhí)行時鐘周期數(shù)也不盡相同。存儲器-存儲器型(3,3)是一種最緊密的編碼方式,無需浪費”寄存器保存變量。指令字長多種多樣。每條指令的執(zhí)行時鐘周期數(shù)也大不一樣,對存儲器的頻繁訪問將導(dǎo)致存儲

9、器訪問瓶頸問題。2.4 指令集結(jié)構(gòu)設(shè)計所涉及的內(nèi)容有哪些?(2)指令集功能設(shè)計:主要有RISC口CISCM種技術(shù)發(fā)展方向;(3)尋址方式的設(shè)計:設(shè)置尋址方式可以通過對基準(zhǔn)程序進(jìn)行測試統(tǒng)計,察看各種尋址方式的使用頻度,根據(jù)適用頻度設(shè)置相應(yīng)必要的尋址方式;(4)操作數(shù)表示和操作數(shù)類型:主要的操作數(shù)類型和操作數(shù)表示的選擇有,浮點數(shù)據(jù)類型(可以采用IEEE754標(biāo)準(zhǔn))、整型數(shù)據(jù)類型(8位、16位、32位的表示方法)、字符型(8位)、十進(jìn)制數(shù)據(jù)類型(壓縮十進(jìn)制和非壓縮十進(jìn)制數(shù)據(jù)表示)等等。(5)尋址方式的表示:可以將尋址方式編碼與操作碼中,也可將尋址方式作為一個單獨的域來表不。(6)指令集格式的設(shè)計:有

10、固定長度編碼方式、可變長編碼方式和混合編碼方式三種選擇。2.5 簡述CISC計算機結(jié)構(gòu)指令集功能設(shè)計的主要目標(biāo)。從當(dāng)前的計算機技術(shù)觀點來看,CISC結(jié)構(gòu)有什么缺點?CISC結(jié)構(gòu)追求的目標(biāo)是強化指令功能,減少程序的指令條數(shù),以達(dá)到提高性能的目的。從目前的計算機技術(shù)觀點來看,CISC結(jié)構(gòu)存在以下幾個缺點:(1)在CISC結(jié)構(gòu)的指令系統(tǒng)中,各種指令的使用頻率相差懸殊。3 CISC結(jié)構(gòu)的指令系統(tǒng)的復(fù)雜性帶來了計算機體系結(jié)構(gòu)的復(fù)雜性,這不僅增加了研制時間和成本,而且還容易造成設(shè)計錯誤。3 CISC結(jié)構(gòu)的指令系統(tǒng)的復(fù)雜性給VLSI設(shè)計帶來了很大負(fù)擔(dān),不利于單片集成。3 CISC結(jié)構(gòu)的指令系統(tǒng)中,許多復(fù)雜指

11、令需要很復(fù)雜的操作,因而運行速度慢。(5)在結(jié)構(gòu)的指令系統(tǒng)中,由于各條指令的功能不均衡性,不利于采用先進(jìn)的計算機體系結(jié)構(gòu)技術(shù)(如流水技術(shù))來提高系統(tǒng)的性能。3 簡述RISC吉構(gòu)的設(shè)計原則。(1)選取使用頻率最高的指令,并補充一些最有用的指令;(2)每條指令的功能應(yīng)盡可能簡單,并在一個機器周期內(nèi)完成;(3)所有指令長度均相同;(4)只有Load和Store操作指令才訪問存儲器,其它指令操作均在寄存器之間進(jìn)行(5)以簡單有效的方式支持高級語言。3 簡述操作數(shù)的類型及其相應(yīng)的表示方法。操作數(shù)的類型主要有:整數(shù)(定點)、浮點、十進(jìn)制、字符、字符串、向量、堆棧等。操作數(shù)類型有兩種表示方法:(1)操作數(shù)的

12、類型由操作碼的編碼指定,這也是最常見的一種方法;(2)數(shù)據(jù)可以附上由硬件解釋的標(biāo)記,由這些標(biāo)記指定操作數(shù)的類型,從而選擇適當(dāng)?shù)倪\算。3 表示尋址方式的主要方法有哪些?簡述這些方法的優(yōu)缺點。表示尋址方式有兩種常用的方法:將尋址方式編于操作碼中,(2)由操作碼在描述指(3)令的同(4)時也描述了相應(yīng)的尋址方式。這種方式譯碼快,但操作碼和尋址方式的結(jié)合不僅增加了指令的條數(shù),導(dǎo)致了指令的多樣性,而且增加了CPU寸指令譯碼的難度。為每個操作數(shù)設(shè)置一個地址描述符,(6)由該地址描述符表示相應(yīng)操作數(shù)的尋址方式。這種方式譯碼較慢,但操作碼和尋址獨立,易于指令擴展。3 通常有哪幾種指令格式?簡述其適用范圍。(1

13、)變長編碼格式。如果體系結(jié)構(gòu)設(shè)計者感興趣的是程序的目標(biāo)代碼大小,而不是性能,就可以采用變長編碼格式。(2)固定長度編碼格式。如果感興趣的是性能,而不是程序的目標(biāo)代碼大小,則可以選擇固定長度編碼格式。(3)混合型編碼格式。需要兼顧降低目標(biāo)代碼長度和降低譯碼復(fù)雜度時,可以采用混合型編碼格式。3 為了對編譯器設(shè)計提供支持,在進(jìn)行指令集設(shè)計時,應(yīng)考慮哪些問題?(1)規(guī)整性。(2)提供基本指令,而非解決方案。(3)-簡化方案的折中取舍標(biāo)準(zhǔn)1(4叫于在編譯時已經(jīng)知道的量,提供將其變?yōu)槌?shù)的指令llo第三章流水線技術(shù)1,流水線一一將一個重復(fù)的時序過程,分解為若干個子過程,而每一個子過程都可有效地在其專用功能

14、段上與其他子過程同時執(zhí)行。2,流水線按功能多少分為靜態(tài)流水線和動態(tài)流水線;按流水線的級別分為部件級流水線、處理機級流水線和處理機間流水線;按數(shù)據(jù)表示分為標(biāo)量處理機和向量處理機;按是否有反饋回路分為線性流水線和非線性流水線;按流動是否可以亂序分為順序流動流水線和異步流動流水線。3,單功能流水線一一只能完成一種固定功能的流水線。4,多功能流水線一一流水線的各段可以進(jìn)行不同的連接,從而使流水線在不同的時間,或者在同一時間完成不同的功能。5,靜態(tài)流水線一一同一時間內(nèi),流水線的各段只能按同一種功能的連接方式工作。6.動態(tài)流水線一一同一時間內(nèi),流水線的各段可以按不同功能的連接方式工作。7,部件級流水線一一

15、(運算操作流水線)把處理機的算術(shù)邏輯部件分段,以便為各種數(shù)據(jù)類型進(jìn)行流水操作。8,處理機級流水線一一(指令流水線)把解釋指令的過程按照流水方式處理。9,處理機間流水線一一(宏流水線)由兩個以上的處理機串行地對同一數(shù)據(jù)流進(jìn)行處理,每一個處理機完成一項任務(wù)。10,線性流水線一一指流水線的各段串行連接,沒有反饋回路。11,非線性流水線一一指流水線中除有串行連接的通路外,還有反饋回路。12,標(biāo)量流水處理機一一處理機不具有向量數(shù)據(jù)表示,僅對標(biāo)量數(shù)據(jù)進(jìn)行流水處理。13,向量流水處理機一一處理機具有向量數(shù)據(jù)表示,并通過向量指令對向量的各元素進(jìn)行處理。14,結(jié)構(gòu)相關(guān)一一某些指令組合在流水線中重疊執(zhí)行時,發(fā)生資

16、源沖突,則稱該流水線有結(jié)構(gòu)相關(guān)。15,數(shù)據(jù)相關(guān)一一當(dāng)指令在流水線中重疊執(zhí)行時,流水線有可能改變指令讀/寫操作的順序,使得讀/寫操作順序不同于它們非流水實現(xiàn)時的順序,將導(dǎo)致數(shù)據(jù)相關(guān)。16,定向一一將計算結(jié)果從其產(chǎn)生的地方直接送到其他指令需要它的地方,或所有需要它的功能單元,避免暫停。RAW兩條指令i,j,i在j前進(jìn)入流水線,j執(zhí)行要用到i的結(jié)果,但當(dāng)其在流水線中重疊執(zhí)行時,j可能在i寫入其結(jié)果之前就先行對保存該結(jié)果的寄存器進(jìn)行讀操作,得到錯誤值。WAW兩條指令i,j,i在j前進(jìn)入流水線,j、i的操作數(shù)一樣,在流水線中重疊執(zhí)行時,j可能在i寫入其結(jié)果之前就先行對保存該結(jié)果的寄存器進(jìn)行寫操作,導(dǎo)致寫

17、錯誤。WAR兩條指令i,j,i在j前進(jìn)入流水線,j可能在i讀某個寄存器之前對該寄存器進(jìn)行寫操作,導(dǎo)致i讀出數(shù)據(jù)錯誤。20,在一個時鐘周期內(nèi)能夠分時發(fā)射多條指令的處理機稱為超流水線處理機。21,在一個時鐘周期內(nèi)能夠同時發(fā)射多條指令的處理機稱為超標(biāo)量處理機。22,在一個時鐘周期內(nèi)分時發(fā)射指令m次,每次發(fā)射指令n條的處理機稱為超標(biāo)量超流水處理機。3,2簡述流水線技術(shù)的特點。(1)流水過程由多個相聯(lián)系的子過程組成,每個過程稱為流水線的械記II;(2)每個子過程由專用的功能段實現(xiàn);(3)各個功能段所需時間應(yīng)盡量相等,否則,時間長的功能段將成為流水線的瓶頸,會造成流水線的曲塞廂-W流it(4)流水線需要有

18、逆過時間1(第一個任務(wù)流出結(jié)果所需的時間),在此之后流水過程才進(jìn)入穩(wěn)定工作狀態(tài),每一個時鐘周期(拍)流出一個結(jié)果;(5)流水技術(shù)適合于大量重復(fù)的時序過程,只有在輸入端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)揮。請畫出DL湘本流水線,并簡述其工作原理。工作原理:把一條DLX指令在5個周期內(nèi)實現(xiàn),將每一個時鐘周期看作是流水線的一個時鐘周期,硬件每個時鐘周期啟動一條新的指令,并執(zhí)行5條不同指令中的某一部分。每條指令雖仍需5個時鐘周期完成,但提高了吞吐率,實現(xiàn)了流水。指令/時鐘123456789IFIDEXMEMWBI+1IFIDEXI+2IFIDI+3IFI+4MEMWBEXMEMWBIDEXMEM

19、WBIFIDEXMEMWB解決流水線結(jié)構(gòu)相關(guān)的方法有哪些?流水化功能單元資源重復(fù)(3)暫停流水線降低流水線分支損失的方法有哪些?(1)在流水線中盡早判斷出分支轉(zhuǎn)移是否成功;(2)盡早計算出分支轉(zhuǎn)移成功時的PC值(即分支的目標(biāo)地址)“凍結(jié)”或“排空”流水線的方法預(yù)測分支失敗預(yù)測分支成功延遲分支請對延遲分支辦法中的三種調(diào)度策略進(jìn)行評價。.從前調(diào)動:分支必須不依賴于被調(diào)度的指令,總是可以有效提高流水線性能。.從目標(biāo)處調(diào)度:若分支轉(zhuǎn)移失敗,必須保證被調(diào)度的指令對程序的執(zhí)行沒有影響,可能需要復(fù)制被調(diào)度指令。分支轉(zhuǎn)移成功時,可提高流水線性能。但由于復(fù)制指令,可能加大程序空間。.從失敗處調(diào)度:若分支轉(zhuǎn)移成功

20、,必須保證被調(diào)度的指令對程序的執(zhí)行無影響。分支轉(zhuǎn)移失敗時,可提高流水線性能。簡述三種向量處理方法,它們對向量處理機的結(jié)構(gòu)要求有什么不同?.水平處理方式:若向量長度為N,則水平處理方式相當(dāng)于執(zhí)行N次循環(huán)。若使用流水線,在每次循環(huán)中可能出現(xiàn)數(shù)據(jù)相關(guān)和功能轉(zhuǎn)換,不適合對向量進(jìn)行流水處理。.垂直處理方式:將整個向量按相同的運算處理完畢之后,再去執(zhí)行其他運算。適合對向量進(jìn)行流水處理,向量運算指令的源/目向量都放在存儲器內(nèi),使得流水線運算部件的輸入、輸出端直接與存儲器相聯(lián),構(gòu)成M-M型的運算流水線。.分組處理方式:把長度為N的向量分為若干組,每組長度為n,組內(nèi)按縱向方式處理,依次處理各組,組數(shù)為NI適合流

21、水處理??稍O(shè)長度為n的向量寄存器,使每組nI向量運算的源/目向量都在向量寄存器中,流水線的運算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成R-R型運算流水線。3.9有一條流水線如下所示。50ns50ns100ns200ns求連續(xù)輸入10條指令,該流水線的實際吞吐率和效率;該流水線的瓶頸在哪一段?請采取三種不同的措施消除此飾頸L對于你所給出的新流水線,計算連續(xù)輸入10條指令時,其實際吞吐率和效率。解:(1)mTpipeline=7,(n-1)/fmaxi吧二(5050100200)9200二2200(ns)TP=n丁E=TPmJ*i.|pipeline4005=TP=45.45%411(2)瓶頸在3、

22、4段。1變成八級流水線(細(xì)分)3Lpi_H2H3_1H3_2H4_1iT4_4=50ns50ns50ns50ns50ns50nsmTpipeline八%(n-1)Ltmaxi壬=508950=850(ns)TPTpipeline二185(ns)m.:tiii40010E=TP=TP=一58.82%m8172變成兩級流水線(合并)?,3-123-4一200ns200nsTpipeline一ti,(n_1):_tmaxiA二2002H-9200二2200(ns)TP=nT-=9n(nsJ)TPipeline220m、.:tiy40010E=TP一二TP-二90.91%m211=185(ns)4重復(fù)

23、設(shè)置部件TP=n/|pipelineE=4。10:10.58.82%850817總要在該段循環(huán)一次才能流到第四段。一個流水線由四段組成,其中每當(dāng)流經(jīng)第三段時,如果每段經(jīng)過一次的時間都是t,問:(1)當(dāng)在流水線的輸入端每t時間輸入任務(wù)時,該流水線會發(fā)生什么情況?(2)此流水線的實際吞吐率為多少?如果每24t輸入一個任務(wù),連續(xù)處理10個任務(wù)的實際吞吐率和效率是多少?10個任務(wù)時,其吞吐(3)當(dāng)每段時間不變時,如何提高該流水線的吞吐率?仍連續(xù)處理率提高多少?解:(1)會發(fā)生流水線阻塞情況。Instr.1stage1stage2stage3stage3stage4instr.2stage1stage2

24、stallstage3stage3stage4instr.3stage1stallstage2stallstage3stage3stage4instr.4stallstage1stallstage2stallstage3stage3stage4(2)0t1t2t3t4t5tInstr.1stagelstage2stage3stage3stage4instr.2stagelstage2stage3stage3instr.3stagelstage26t7t8tstage4stage3stage3stage423t23tTPmax12.:tpipeline=23:tTP=nTpipeline=102

25、3.:tAE=TP5At/=5%2定54.35%ti(i=1,2,,m),現(xiàn)在有n個任務(wù)需要(2)和非流水線實現(xiàn)相比,這解:(1)如果流水線有m段,各段的處理時間分別是完成,且每個任務(wù)均需流水線各段實現(xiàn),請計算:(1)流水線完成這n個任務(wù)所需要的時間;n個任務(wù)流水實現(xiàn)的加速比是多少?加速比的峰值是多少?mTpipeline=ti;(n一1)tmaxi1(2)mTnopipeline二ntii=1tiTnopipeliSpeeduppipelinem,、.9(n-1)tmaxiW=t0)Speedupmaxm1nzmn1(ti(n土m,Speedupm)3.12在改進(jìn)的DLX流水線上運行如下代碼

26、序列:LOOP:LWR1,0(R2)ADDIR1,R1,#1SW0(R2),R1ADDIR2,R2,#4SUBR4,R3,R2BNZR4,LOOP其中,R3的初始值是R2+396。假設(shè):在整個代碼序列的運行過程中,所有的存儲器訪問都是命中的,并且在一個時鐘周期中對同一個寄存器的讀操作和寫操作可以通過寄存器“定向”。問:(1)在沒有任何其它定向(或旁路)硬件的支持下,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用排空流水線的策略處理分支指令,且所有的存儲器訪問都可以命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?(2)假設(shè)該DLX流水線有正常的定向路徑,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)

27、采用預(yù)測分支失敗的策略處理分支指令,且所有的存儲器訪問都可以命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?(3)假設(shè)該DLX流水線有正常的定向路徑,請對該循環(huán)中的指令進(jìn)行調(diào)度。注意可以重新組織指令的順序,也可以修改指令的操作數(shù),但是不能增加指令的條數(shù)。請畫出該指令序列執(zhí)行的流水線時空圖,并計算執(zhí)行上述循環(huán)需要的時鐘周期數(shù)?解:(1)寄存器讀寫可以定向,無其他旁路硬件支持。排空流水線。Instruction78910111213141516171819202122lwr1,0(r2)IFIDaddir1,r1,#1IFswr1,0(r2)addir2,r2,#4subr4,r3,r2bnz

28、r4,looplwr1,0(r2)EXMWBSSIDEXMIFSSWBIDEXMWBIFIDEXMWBIFSSIDEXMIFSSWBIDEXMWBIFSSIFIDEXMWB第i次迭代(i=0.98)開始周期:1+(ix17)總的時鐘周期數(shù):(98X17)+18=1684(2)有正常定向路徑,預(yù)測分支失敗。Instruction1234567891011lwr1,0(IFIDEXMWBaddir1,r1,#1IFIDSEXMWBswr1,0(IFSIDEXMWBaddir2,r2,#4IFIDEXMWBsubr4,r3,r2IFIDEXMWBbnzr4,loopIFIDEXMWBIwr1,0(r

29、2)IFmissmissIFIDEXMWB第i次迭代(i=0.98)開始周期:1+(ix10)總的時鐘周期數(shù):(98X10)+11=991(3)有正常定向路徑。單周期延遲分支。Loop:lwr1,0(r2)addir2,r2,#4addir1,r1,#1subr4,r3,r2bnzr4,loopswr1,-4(r2)第i次迭代(i=0.98)開始周期:1+(iX6)總的時鐘周期數(shù):(98X6)+10=598Instruction1234567891011lwr1,0(r2)IFIDEXMWBaddir2,r2,#4IFIDEXMWBaddir1,r1,#1IFIDEXMWBsubr4,r3,r

30、2IFIDEXMWBbnzr4,loopIFIDEXMWBswr1,-4(r2)IFIDEXMWBlwr1,0(r2)IFIDEXMWB第五章存儲層次.存儲層次一一采用不同的技術(shù)實現(xiàn)的存儲器,處在離CPU不同距離的層次上,目標(biāo)是達(dá)到離CPU最近的存儲器的速度,最遠(yuǎn)的存儲器的容量。.全相聯(lián)映象一一主存中的任一塊可以被放置到Cache中任意一個地方。.直接映象一一主存中的每一塊只能被放置到Cache中唯一的一個地方。.組相聯(lián)映象主存中的每一塊可以放置到Cache中唯一的一組中任何一個地方(Cache分成若干組,每組由若干塊構(gòu)成)。.替換算法一一由于主存中的塊比Cache中的塊多,所以當(dāng)要從主存中調(diào)

31、一個塊到Cache中時,會出現(xiàn)該塊所映象到的一組(或一個)Cach啾已全部被占用的情況。這時,需要被迫騰出其中的某一塊,以接納新調(diào)入的塊。.LRU一一選擇最近最少被訪問的塊作為被替換的塊。實際實現(xiàn)都是選擇最久沒有被訪問的塊作為被替換的塊。.寫直達(dá)法一一在執(zhí)行寫操作時,不僅把信息寫入Cache中相應(yīng)的塊,而且也寫入下一級存儲器中相應(yīng)的塊。.寫回法一一只把信息寫入Cache中相應(yīng)塊,該塊只有被替換時,才被寫回主存。.按寫分配法一一寫失效時,先把所寫單元所在的塊調(diào)入Cache,然后再進(jìn)行寫入。.不按寫分配法一一寫失效時,直接寫入下一級存儲器中,而不把相應(yīng)的塊調(diào)入Cache。.命中時間訪問Cache#

32、中時所用的時間。.失效率一一CPU訪存時,在一級存儲器中找不到所需信息的概率。.失效開銷一一CPU向二級存儲器發(fā)出訪問請求到把這個數(shù)據(jù)調(diào)入一級存儲器所需的時間。.強制性失效一一當(dāng)?shù)谝淮卧L問一個塊時,該塊不在Cache中,需要從下一級存儲器中調(diào)入Cache,這就是強制性失效。.容量失效一一如果程序在執(zhí)行時,所需要的塊不能全部調(diào)入Cache中,則當(dāng)某些塊被替換后又重新被訪問,就會產(chǎn)生失效,這種失效就稱作容量失效。.沖突失效在組相聯(lián)或直接映象Cache中,若太多的塊映象到同一組(塊)中,則會出現(xiàn)該組中某個塊被別的塊替換(即使別的組或塊有空閑位置),然后又被重新訪問的情況。.相聯(lián)度在組相聯(lián)中,每組Ca

33、che中的塊數(shù)。.VictimCache位于Cache和存儲器之間的又一級Cache,容量小,采用全相聯(lián)策略。用于存放由于失效而被丟棄(替換)的那些塊。每當(dāng)失效發(fā)生時,在訪問下一級存儲器之前,先檢查VictimCache中是否含有所需塊。.偽相聯(lián)Cache-一種既能獲得多路組相聯(lián)Cache的低失效率,又能獲得直接映象Cache的命中速度的相聯(lián)辦法。.故障性預(yù)取一一在預(yù)取時,若出現(xiàn)虛地址故障或違反保護(hù)權(quán)限,就會發(fā)生異常。.非故障性預(yù)取一一在預(yù)取時,若出現(xiàn)虛地址故障或違反保護(hù)權(quán)限,不發(fā)生異常。.非阻塞CacheCache在等待預(yù)取數(shù)據(jù)返回時,還能繼續(xù)提供指令和數(shù)據(jù)。.子塊放置技術(shù)把一個Cach啾劃

34、分為若干小塊,稱為子塊(sub-blocks),并為每個子塊賦予一位有效值,用于說明該子塊中的數(shù)據(jù)是否有效。失效時,只需從下一級存儲器調(diào)入一個子塊。.盡早重啟動一一在請求字沒有到達(dá)時,CPU處于等待狀態(tài)。一旦請求字到達(dá),就立即發(fā)送給CPU,讓等待的CPU盡早重啟動,繼續(xù)執(zhí)行。.請求字優(yōu)先一一調(diào)塊時,首先向存儲器請求CPU所要的請求字。請求字一旦到達(dá),就立即送往CPU,讓CPU繼續(xù)執(zhí)行,同時從存儲器調(diào)入該塊的其余部分。.多級包容性一一一級存儲器(Cache)中的數(shù)據(jù)總位于下一級存儲器中。.虛擬Cache地址使用虛地址的Cache。5.2簡述Cache一主存”和生存一輔存”層次的區(qū)別。存儲層次比較

35、項目-Cache主存層次T存一輔存層次目的為了彌補生存速度的不足為了彌補主存容量的不足存儲管理實現(xiàn)全部曲專用硬件實現(xiàn)主要由軟件實現(xiàn)訪問速度的比值(A級比第二級)幾比一幾百比一典型的塊(頁)大小幾十個字節(jié)幾百到幾千個字節(jié)CPU對第二級的訪問方式可直接訪問均通過第一級失效時CPU是否切換不切換切換到其它進(jìn)程3降低Cached效率有哪幾種方法?簡述其基本思想。常用的降低Cached效率的方法有下面幾種:增加Cache塊大小。增加塊大小利用了程序的空間局部性。提高相聯(lián)度,降低沖突失效。VictimCache,降低沖突失效。偽相聯(lián)Cache,降低沖突失效。硬件預(yù)取技術(shù),指令和數(shù)據(jù)都可以在處理器提出訪問請

36、求前進(jìn)行預(yù)取。由編譯器控制的預(yù)取,硬件預(yù)取的替代方法,在編譯時加入預(yù)取的指令,在數(shù)據(jù)被用到之前發(fā)出預(yù)取請求。編譯器優(yōu)化,通過對軟件的優(yōu)化來降低失效率。5.4簡述減小Cached效的幾種方法。讓讀失效優(yōu)先于寫。子塊放置技術(shù)。請求字處理技術(shù)。非阻塞Cache技術(shù)。采用兩級Cache在Cache一主存”層次中,主存的更新算法有哪幾種?它們各有什么特點?寫直達(dá)法易于實現(xiàn),而且下一級存儲器中的數(shù)據(jù)總是最新的。寫回法速度塊,氣操作能以Cache存儲器的速度進(jìn)行。而且對于同一單元的多個寫最后只需一次寫回下一級存儲器,有些f只到達(dá)Cache,不到達(dá)主存,因而所使用的存儲器頻帶較低。組相聯(lián)Cache比相同容量的

37、之直接映象Cache的失效率低。由此是否可以得出結(jié)論:采用組相聯(lián)Cache一定能帶來性能上的提高?為什么?答:不一定。因為組相聯(lián)命中率的提高是以增加命中時間為代價的,組相聯(lián)需要增加多路選擇開關(guān)。寫出三級Cache的平均訪問時間Ta的公式。平均訪存時間=命中時間+失效率x失效開銷只有第I層的失效時才會訪問第I+1設(shè)三級Cache的命中率分別為H|_i、H|2、HL3,失效率分別為Mi、M2、M_3,第三級Cache的失效開銷為P|_3。平均訪問時間Ta=H|_1+MiH|2+M2(H|_3+M_3XPL3)給定以下的假設(shè),5.10試計算直接映象Cache和兩路組相聯(lián)Cache的平均訪問時間以及C

38、PU的性能。由計算結(jié)果能得出什么結(jié)論?理想Cache情況下的CPI為2.0,時鐘周期為2ns,平均每條指令訪存1.2次;兩者Cache容量土勻為64KB,塊大小都是32字節(jié);組相聯(lián)Cache中的多路選擇器使CPU的時鐘周期增加了10%;這兩種Cache的失效開銷都是80ns;命中時間為1個時鐘周期;64KB直接映象Cache的失效率為1.4%,64KB兩路組相聯(lián)Cache的失效率為1.0%。解:平均訪問時間=命中時間+失效率x失效開銷平均訪問時間1-路=2.0+1.4%*80=3.12ns平均訪問時間2-路=2.0*(1+10%)+1.0%*80=3.0ns兩路組相聯(lián)的平均訪問時間比較低CPU

39、tim產(chǎn)(CPU執(zhí)行+存儲等待周期)*時鐘周期CPUtime=IC(CPI執(zhí)行+總失效次數(shù)/指令總數(shù)*失效開銷)*時鐘周期=IC(CPI執(zhí)彳時鐘周期)+(每條指令的訪存次數(shù)*失效率*失效開銷*時鐘周期)CPUtime1-way=IC(2.0*2+1.2*0.014*80)=5.344ICCPUtime2-way=IC(2.2*2+1.2*0.01*80)=5.36ICCPUtime工way相對性能比:CPUtimeaway5.36/5.344=1,003直接映象cache的訪問速度比兩路組相聯(lián)cache要快1.04倍,而兩路組相聯(lián)Cache的平均性能比直接映象cache要高1.003倍。因此這里選擇兩路組相聯(lián)。6輸入輸出系統(tǒng)假設(shè)一臺at算機的I/O處理占10%,當(dāng)其CPU性能改進(jìn)到原來的100倍時,而I/O性能僅改進(jìn)為原來的兩倍時,系統(tǒng)總體性能會有什么改進(jìn)?1

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論