計算機系統(tǒng)結(jié)構(gòu) 張晨曦 王志英 (高等教育出版社)課后答案
《計算機系統(tǒng)結(jié)構(gòu) 張晨曦 王志英 (高等教育出版社)課后答案》由會員分享,可在線閱讀,更多相關(guān)《計算機系統(tǒng)結(jié)構(gòu) 張晨曦 王志英 (高等教育出版社)課后答案(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、計算機系統(tǒng)結(jié)構(gòu) 張晨曦 王志英等 高等教育出版社 第1章 計算機系統(tǒng)結(jié)構(gòu)的基本概念 1.1 解釋下列術(shù)語 層次機構(gòu):按照計算機語言從低級到高級的次序,把計算機系統(tǒng)按功能劃分成多級層次結(jié)構(gòu),每一層以一種不同的語言為特征。這些層次依次為:微程序機器級,傳統(tǒng)機器語言機器級,匯編語言機器級,高級語言機器級,應(yīng)用語言機器級等。 虛擬機:用軟件實現(xiàn)的機器。 翻譯:先用轉(zhuǎn)換程序把高一級機器上的程序轉(zhuǎn)換為低一級機器上等效的程序,然后再在這低一級機器上運行,實現(xiàn)程序的功能。 解釋:對于高一級機器上的程序中的每一條語句或指令,都是轉(zhuǎn)去執(zhí)行低一級機器上的一段
2、等效程序。執(zhí)行完后,再去高一級機器取下一條語句或指令,再進行解釋執(zhí)行,如此反復(fù),直到解釋執(zhí)行完整個程序。 計算機系統(tǒng)結(jié)構(gòu):傳統(tǒng)機器程序員所看到的計算機屬性,即概念性結(jié)構(gòu)與功能特性。 在計算機技術(shù)中,把這種本來存在的事物或?qū)傩裕珡哪撤N角度看又好像不存在的概念稱為透明性。 計算機組成:計算機系統(tǒng)結(jié)構(gòu)的邏輯實現(xiàn),包含物理機器級中的數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計等。 計算機實現(xiàn):計算機組成的物理實現(xiàn),包括處理機、主存等部件的物理結(jié)構(gòu),器件的集成度和速度,模塊、插件、底板的劃分與連接,信號傳輸,電源、冷卻及整機裝配技術(shù)等。 系統(tǒng)加速比:對系統(tǒng)中某部分進行改進時,改進后系
3、統(tǒng)性能提高的倍數(shù)。 Amdahl定律:當對一個系統(tǒng)中的某個部件進行改進后,所能獲得的整個系統(tǒng)性能的提高,受限于該部件的執(zhí)行時間占總執(zhí)行時間的百分比。 程序的局部性原理:程序執(zhí)行時所訪問的存儲器地址不是隨機分布的,而是相對地簇聚。包括時間局部性和空間局部性。 CPI:每條指令執(zhí)行的平均時鐘周期數(shù)。 測試程序套件:由各種不同的真實應(yīng)用程序構(gòu)成的一組測試程序,用來測試計算機在各個方面的處理性能。 存儲程序計算機:馮·諾依曼結(jié)構(gòu)計算機。其基本點是指令驅(qū)動。程序預(yù)先存放在計算機存儲器中,機器一旦啟動,就能按照程序指定的邏輯順序執(zhí)行這些程序,自動完成由程序所描述的處理工作。
4、 系列機:由同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)、但具有不同組成和實現(xiàn)的一系列不同型號的計算機。 軟件兼容:一個軟件可以不經(jīng)修改或者只需少量修改就可以由一臺計算機移植到另一臺計算機上運行。差別只是執(zhí)行時間的不同。 向上(下)兼容:按某檔計算機編制的程序,不加修改就能運行于比它高(低)檔的計算機。 向后(前)兼容:按某個時期投入市場的某種型號計算機編制的程序,不加修改地就能運行于在它之后(前)投入市場的計算機。 兼容機:由不同公司廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計算機。 模擬:用軟件的方法在一臺現(xiàn)有的計算機(稱為宿主機)上實現(xiàn)另一臺計算機(稱為虛擬機)的指令系統(tǒng)。
5、仿真:用一臺現(xiàn)有計算機(稱為宿主機)上的微程序去解釋實現(xiàn)另一臺計算機(稱為目標機)的指令系統(tǒng)。 并行性:計算機系統(tǒng)在同一時刻或者同一時間間隔內(nèi)進行多種運算或操作。只要在時間上相互重疊,就存在并行性。它包括同時性與并發(fā)性兩種含義。 時間重疊:在并行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設(shè)備的各個部分,以加快硬件周轉(zhuǎn)而贏得速度。 資源重復(fù):在并行性概念中引入空間因素,以數(shù)量取勝。通過重復(fù)設(shè)置硬件資源,大幅度地提高計算機系統(tǒng)的性能。 資源共享:這是一種軟件方法,它使多個任務(wù)按一定時間順序輪流使用同一套硬件設(shè)備。 耦合度:反映多機系
6、統(tǒng)中各計算機之間物理連接的緊密程度和交互作用能力的強弱。 緊密耦合系統(tǒng):又稱直接耦合系統(tǒng)。在這種系統(tǒng)中,計算機之間的物理連接的頻帶較高,一般是通過總線或高速開關(guān)互連,可以共享主存。 松散耦合系統(tǒng):又稱間接耦合系統(tǒng),一般是通過通道或通信線路實現(xiàn)計算機之間的互連,可以共享外存設(shè)備(磁盤、磁帶等)。計算機之間的相互作用是在文件或數(shù)據(jù)集一級上進行。 異構(gòu)型多處理機系統(tǒng):由多個不同類型、至少擔負不同功能的處理機組成,它們按照作業(yè)要求的順序,利用時間重疊原理,依次對它們的多個任務(wù)進行加工,各自完成規(guī)定的功能動作。 同構(gòu)型多處理機系統(tǒng):由多個同類型或至少擔負同等功能的處理機組成,它們
7、同時處理同一作業(yè)中能并行執(zhí)行的多個任務(wù)。 1.2 試用實例說明計算機系統(tǒng)結(jié)構(gòu)、計算機組成與計算機實現(xiàn)之間的相互關(guān)系。 答:如在設(shè)計主存系統(tǒng)時,確定主存容量、編址方式、尋址范圍等屬于計算機系統(tǒng)結(jié)構(gòu)。確定主存周期、邏輯上是否采用并行主存、邏輯設(shè)計等屬于計算機組成。選擇存儲芯片類型、微組裝技術(shù)、線路設(shè)計等屬于計算機實現(xiàn)。 計算機組成是計算機系統(tǒng)結(jié)構(gòu)的邏輯實現(xiàn)。計算機實現(xiàn)是計算機組成的物理實現(xiàn)。一種體系結(jié)構(gòu)可以有多種組成。一種組成可以有多種實現(xiàn)。 1.3 計算機系統(tǒng)結(jié)構(gòu)的Flynn分類法是按什么來分類的?共分為哪幾類? 答:Flynn分類法是按照指令流和數(shù)據(jù)流的多倍性進行分類。把
8、計算機系統(tǒng)的結(jié)構(gòu)分為: (1) 單指令流單數(shù)據(jù)流SISD (2) 單指令流多數(shù)據(jù)流SIMD (3) 多指令流單數(shù)據(jù)流MISD (4) 多指令流多數(shù)據(jù)流MIMD 1.4 計算機系統(tǒng)設(shè)計中經(jīng)常使用的4個定量原理是什么?并說出它們的含義。 答:(1)以經(jīng)常性事件為重點。在計算機系統(tǒng)的設(shè)計中,對經(jīng)常發(fā)生的情況,賦予它優(yōu)先的處理權(quán)和資源使用權(quán),以得到更多的總體上的改進。(2)Amdahl定律。加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中所占的重要性。(3)CPU性能公式。執(zhí)行一個程序所需的CPU時間 = IC ×CPI ×時鐘周期時間。(4)程序的局部性原理。程序在執(zhí)行
9、時所訪問地址的分布不是隨機的,而是相對地簇聚。 1.5 分別從執(zhí)行程序的角度和處理數(shù)據(jù)的角度來看,計算機系統(tǒng)中并行性等級從低到高可分為哪幾級? 答:從處理數(shù)據(jù)的角度來看,并行性等級從低到高可分為: (1)字串位串:每次只對一個字的一位進行處理。這是最基本的串行處理方式,不存在并行性; (2)字串位并:同時對一個字的全部位進行處理,不同字之間是串行的。已開始出現(xiàn)并行性; (3)字并位串:同時對許多字的同一位(稱為位片)進行處理。這種方式具有較高的并行性; (4)全并行:同時對許多字的全部位或部分位進行處理。這是最高一級的并行。 從執(zhí)行程序的角度來看,并行性等級從低到高可分為:
10、 (1)指令內(nèi)部并行:單條指令中各微操作之間的并行; (2)指令級并行:并行執(zhí)行兩條或兩條以上的指令; (3)線程級并行:并行執(zhí)行兩個或兩個以上的線程,通常是以一個進程內(nèi)派生的多個線程為調(diào)度單位; (4)任務(wù)級或過程級并行:并行執(zhí)行兩個或兩個以上的過程或任務(wù)(程序段),以子程序或進程為調(diào)度單元; (5)作業(yè)或程序級并行:并行執(zhí)行兩個或兩個以上的作業(yè)或程序。 1.6 某臺主頻為400MHz的計算機執(zhí)行標準測試程序,程序中指令類型、執(zhí)行數(shù)量和平均時鐘周期數(shù)如下: 指令類型 指令執(zhí)行數(shù)量 平均時鐘周期數(shù) 整數(shù) 45000 1 數(shù)據(jù)傳送 75000 2 浮點 80
11、00 4 分支 1500 2 求該計算機的有效CPI、MIPS和程序執(zhí)行時間。 解:(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776 (或) (2)MIPS速率=f/ CPI =400/1.776 =225.225MIPS (或MIPS) (3)程序執(zhí)行時間= (45000×1+75000×2+8000×4+1500×2)/400=575ms 1.7 將計算機系統(tǒng)中某一功能的處理速度加快10倍,但該功能的處理時間僅為整個系統(tǒng)運行時間的40%,則采用此增強功能方法后,能使整個系統(tǒng)的性能提高多少? 解 由題可知:
12、 可改進比例 = 40% = 0.4 部件加速比 = 10 根據(jù)Amdahl定律可知: 采用此增強功能方法后,能使整個系統(tǒng)的性能提高到原來的1.5625倍。 1.8 計算機系統(tǒng)中有三個部件可以改進,這三個部件的部件加速比為: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10 (1) 如果部件1和部件2的可改進比例均為30%,那么當部件3的可改進比例為多少時,系統(tǒng)加速比才可以達到10? (2) 如果三個部件的可改進比例分別為30%、30%和20%,三個部件同時改進,那么系統(tǒng)中不可加速部分的執(zhí)行時間在總執(zhí)行時間中占的比例是多少? 解:(1)在
13、多個部件可改進情況下,Amdahl定理的擴展: 已知S1=30,S2=20,S3=10,Sn=10,F(xiàn)1=0.3,F(xiàn)2=0.3,得: 得F3=0.36,即部件3的可改進比例為36%。 (2)設(shè)系統(tǒng)改進前的執(zhí)行時間為T,則3個部件改進前的執(zhí)行時間為:(0.3+0.3+0.2)T = 0.8T,不可改進部分的執(zhí)行時間為0.2T。 已知3個部件改進后的加速比分別為S1=30,S2=20,S3=10,因此3個部件改進后的執(zhí)行時間為: 改進后整個系統(tǒng)的執(zhí)行時間為:Tn = 0.045T+0.2T = 0.245T 那么系統(tǒng)中不可改進部分的執(zhí)行時間在總執(zhí)行時間中占的比例是:
14、 1.9 假設(shè)某應(yīng)用程序中有4類操作,通過改進,各操作獲得不同的性能提高。具體數(shù)據(jù)如下表所示: 操作類型 程序中的數(shù)量 (百萬條指令) 改進前的執(zhí)行時間 (周期) 改進后的執(zhí)行時間 (周期) 操作1 10 2 1 操作2 30 20 15 操作3 35 10 3 操作4 15 4 1 (1)改進后,各類操作的加速比分別是多少? (2)各類操作單獨改進后,程序獲得的加速比分別是多少? (3)4類操作均改進后,整個程序的加速比是多少? 解:根據(jù)Amdahl定律可得 操作類型 各類操作的指令條數(shù)在程序中所占的比例Fi 各類操作
15、的加速比Si 各類操作單獨改進后,程序獲得的加速比 操作1 11.1% 2 1.06 操作2 33.3% 1.33 1.09 操作3 38.9% 3.33 1.37 操作4 16.7% 4 1.14 4類操作均改進后,整個程序的加速比: 第2章 指令集結(jié)構(gòu)的分類 2.1 解釋下列術(shù)語 堆棧型機器:CPU 中存儲操作數(shù)的單元是堆棧的機器。 累加器型機器:CPU 中存儲操作數(shù)的單元是累加器的機器。 通用寄存器型機器:CPU 中存儲操作數(shù)的單元是通用寄存器的機器。 CISC:復(fù)雜指令集計算機 RISC:精簡指令集計
16、算機 尋址方式:指令系統(tǒng)中如何形成所要訪問的數(shù)據(jù)的地址。一般來說,尋址方式可以指明指令中的操作數(shù)是一個常數(shù)、一個寄存器操作數(shù)或者是一個存儲器操作數(shù)。 數(shù)據(jù)表示:硬件結(jié)構(gòu)能夠識別、指令系統(tǒng)可以直接調(diào)用的那些數(shù)據(jù)結(jié)構(gòu)。 2.2 區(qū)別不同指令集結(jié)構(gòu)的主要因素是什么?根據(jù)這個主要因素可將指令集結(jié)構(gòu)分為哪3類? 答:區(qū)別不同指令集結(jié)構(gòu)的主要因素是CPU中用來存儲操作數(shù)的存儲單元。據(jù)此可將指令系統(tǒng)結(jié)構(gòu)分為堆棧結(jié)構(gòu)、累加器結(jié)構(gòu)和通用寄存器結(jié)構(gòu)。 2.3 常見的3種通用寄存器型指令集結(jié)構(gòu)的優(yōu)缺點有哪些? 答: 指令系統(tǒng)結(jié)構(gòu)類型 優(yōu) 點 缺 點 寄存器-寄存器型
17、(0,3) 指令字長固定,指令結(jié)構(gòu)簡潔,是一種簡單的代碼生成模型,各種指令的執(zhí)行時鐘周期數(shù)相近。 與指令中含存儲器操作數(shù)的指令系統(tǒng)結(jié)構(gòu)相比,指令條數(shù)多,目標代碼不夠緊湊,因而程序占用的空間比較大。 寄存器-存儲器型 (1,2) 可以在ALU指令中直接對存儲器操作數(shù)進行引用,而不必先用load指令進行加載。容易對指令進行編碼,目標代碼比較緊湊。 由于有一個操作數(shù)的內(nèi)容將被破壞,所以指令中的兩個操作數(shù)不對稱。在一條指令中同時對寄存器操作數(shù)和存儲器操作數(shù)進行編碼,有可能限制指令所能夠表示的寄存器個數(shù)。指令的執(zhí)行時鐘周期數(shù)因操作數(shù)的來源(寄存器或存儲器)不同而差別比較大。 存儲器-存儲器
18、型 (2,2)或(3,3) 目標代碼最緊湊,不需要設(shè)置寄存器來保存變量。 指令字長變化很大,特別是3操作數(shù)指令。而且每條指令完成的工作也差別很大。對存儲器的頻繁訪問會使存儲器成為瓶頸。這種類型的指令系統(tǒng)現(xiàn)在已不用了。 2.4 指令集應(yīng)滿足哪幾個基本要求? 答:對指令集的基本要求是:完整性、規(guī)整性、高效率和兼容性。 完整性是指在一個有限可用的存儲空間內(nèi),對于任何可解的問題,編制計算程序時,指令集所提供的指令足夠使用。 規(guī)整性主要包括對稱性和均勻性。對稱性是指所有與指令集有關(guān)的存儲單元的使用、操作碼的設(shè)置等都是對稱的。均勻性是指對于各種不同的操作數(shù)類型、字長、操作種類和數(shù)據(jù)存儲
19、單元,指令的設(shè)置都要同等對待。 高效率是指指令的執(zhí)行速度快、使用頻度高。 2.5 指令集結(jié)構(gòu)設(shè)計所涉及的內(nèi)容有哪些? 答: (1) 指令集功能設(shè)計:主要有RISC和CISC兩種技術(shù)發(fā)展方向; (2) 尋址方式的設(shè)計:設(shè)置尋址方式可以通過對基準程序進行測試統(tǒng)計,察看各種尋址方式的使用頻率,根據(jù)適用頻率設(shè)置必要的尋址方式。 (3) 操作數(shù)表示和操作數(shù)類型:主要的操作數(shù)類型和操作數(shù)表示的選擇有:浮點數(shù)據(jù)類型、整型數(shù)據(jù)類型、字符型、十進制數(shù)據(jù)類型等等。 (4) 尋址方式的表示:可以將尋址方式編碼于操作碼中,也可以將尋址方式作為一個單獨的域來表示。 (5) 指令集格式的設(shè)計:有變長編碼格式、
20、固定長度編碼格式和混合型編碼格式3種。 2.6 簡述CISC指令集結(jié)構(gòu)功能設(shè)計的主要目標。從當前的計算機技術(shù)觀點來看,CISC指令集結(jié)構(gòu)的計算機有什么缺點? 答:主要目標是增強指令功能,把越來越多的功能交由硬件來實現(xiàn),并且指令的數(shù)量也是越來越多。 缺點: (1) CISC結(jié)構(gòu)的指令集中,各種指令的使用頻率相差懸殊。(2)CISC結(jié)構(gòu)指令的復(fù)雜性帶來了計算機體系結(jié)構(gòu)的復(fù)雜性,這不僅增加了研制時間和成本,而且還容易造成設(shè)計錯誤。(3)CISC結(jié)構(gòu)指令集的復(fù)雜性給VLSI設(shè)計增加了很大負擔,不利于單片集成。(4)CISC結(jié)構(gòu)的指令集中,許多復(fù)雜指令需要很復(fù)雜的操作,因而運行速度慢。 (5
21、) 在CISC結(jié)構(gòu)的指令集中,由于各條指令的功能不均衡性,不利于采用先進的計算機體系結(jié)構(gòu)技術(shù)(如流水技術(shù))來提高系統(tǒng)的性能。 2.7 簡述RISC指令集結(jié)構(gòu)的設(shè)計原則。 答(1) 選取使用頻率最高的指令,并補充一些最有用的指令;(2)每條指令的功能應(yīng)盡可能簡單,并在一個機器周期內(nèi)完成;(3)所有指令長度均相同;(4)只有Load和Store操作指令才訪問存儲器,其它指令操作均在寄存器之間進行; (5) 以簡單有效的方式支持高級語言。 2.8 指令中表示操作數(shù)類型的方法有哪幾種? 答:操作數(shù)類型有兩種表示方法:(1)操作數(shù)的類型由操作碼的編碼指定,這是最常見的一種方法;(2)數(shù)
22、據(jù)可以附上由硬件解釋的標記,由這些標記指定操作數(shù)的類型,從而選擇適當?shù)倪\算。 2.9 表示尋址方式的主要方法有哪些?簡述這些方法的優(yōu)缺點。 答:表示尋址方式有兩種常用的方法:(1)將尋址方式編于操作碼中,由操作碼在描述指令的同時也描述了相應(yīng)的尋址方式。這種方式譯碼快,但操作碼和尋址方式的結(jié)合不僅增加了指令的條數(shù),導(dǎo)致了指令的多樣性,而且增加了CPU對指令譯碼的難度。(2)為每個操作數(shù)設(shè)置一個地址描述符,由該地址描述符表示相應(yīng)操作數(shù)的尋址方式。這種方式譯碼較慢,但操作碼和尋址獨立,易于指令擴展。 2.10 通常有哪幾種指令格式,請簡述其適用范圍。 答: (1) 變長編碼格式。
23、如果系統(tǒng)結(jié)構(gòu)設(shè)計者感興趣的是程序的目標代碼大小,而不是性能,就可以采用變長編碼格式。(2)固定長度編碼格式。如果感興趣的是性能,而不是程序的目標代碼大小,則可以選擇固定長度編碼格式。 (3) 混合型編碼格式。需要兼顧降低目標代碼長度和降低譯碼復(fù)雜度時,可以采用混合型編碼格式。 2.11 根據(jù)CPU性能公式簡述RISC指令集結(jié)構(gòu)計算機和CISC指令集結(jié)構(gòu)計算機的性能特點。 答:CPU性能公式:CPU時間=IC×CPI×T 其中,IC為目標程序被執(zhí)行的指令條數(shù),CPI為指令平均執(zhí)行周期數(shù),T是時鐘周期的時間。 相同功能的CISC目標程序的指令條數(shù)ICCISC 少于RISC的ICRIS
24、C,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目標程序的執(zhí)行時間比RISC的更長。 第3章 流水線技術(shù) 3.1解釋下列術(shù)語 流水線:將一個重復(fù)的時序過程,分解成為若干個子過程,而每一個子過程都可有效地在其專用功能段上與其它子過程同時執(zhí)行。 單功能流水線:指流水線的各段之間的連接固定不變、只能完成一種固定功能的流水線。 多功能流水線:指各段可以進行不同的連接,以實現(xiàn)不同的功能的流水線。 靜態(tài)流水線:指在同一時間內(nèi),多功能流水線中的各段只能按同一種功能的連接方式工作的流水線。當流水線要切換到另一種功能時,必須等
25、前面的任務(wù)都流出流水線之后,才能改變連接。 動態(tài)流水線:指在同一時間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時執(zhí)行多種功能的流水線。它允許在某些段正在實現(xiàn)某種運算時,另一些段卻在實現(xiàn)另一種運算。 部件級流水線:把處理機中的部件進行分段,再把這些部件分段相互連接而成。它使得運算操作能夠按流水方式進行。這種流水線也稱為運算操作流水線。 處理機級流水線:又稱指令流水線。它是把指令的執(zhí)行過程按照流水方式進行處理,即把一條指令的執(zhí)行過程分解為若干個子過程,每個子過程在獨立的功能部件中執(zhí)行。 處理機間流水線:又稱為宏流水線。它是把多個處理機串行連接起來,對同一數(shù)據(jù)流進行處
26、理,每個處理機完成整個任務(wù)中的一部分。前一個處理機的輸出結(jié)果存入存儲器中,作為后一個處理機的輸入。 線性流水線:指各段串行連接、沒有反饋回路的流水線。數(shù)據(jù)通過流水線中的各段時,每一個段最多只流過一次。 非線性流水線:指各段除了有串行的連接外,還有反饋回路的流水線。 順序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序完全相同。 亂序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序可以不同,允許后進入流水線的任務(wù)先完成。這種流水線又稱為無序流水線、錯序流水線、異步流水線。 吞吐率:在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。 流水線的加
27、速比:使用順序處理方式處理一批任務(wù)所用的時間與按流水處理方式處理同一批任務(wù)所用的時間之比。 流水線的效率:即流水線設(shè)備的利用率,它是指流水線中的設(shè)備實際使用時間與整個運行時間的比值。 數(shù)據(jù)相關(guān):考慮兩條指令i和j,i在j的前面,如果下述條件之一成立,則稱指令j與指令i數(shù)據(jù)相關(guān): (1)指令j使用指令i產(chǎn)生的結(jié)果; (2)指令j與指令k數(shù)據(jù)相關(guān),而指令k又與指令i數(shù)據(jù)相關(guān)。 名相關(guān):如果兩條指令使用了相同的名,但是它們之間并沒有數(shù)據(jù)流動,則稱這兩條指令存在名相關(guān)。 控制相關(guān):是指由分支指令引起的相關(guān)。它需要根據(jù)分支指令的執(zhí)行結(jié)果來確定后面該執(zhí)行哪個分支上的指令。
28、 反相關(guān):考慮兩條指令i和j,i在j的前面,如果指令j所寫的名與指令i所讀的名相同,則稱指令i和j發(fā)生了反相關(guān)。 輸出相關(guān):考慮兩條指令i和j,i在j的前面,如果指令j和指令i所寫的名相同,則稱指令i和j發(fā)生了輸出相關(guān)。 換名技術(shù):名相關(guān)的兩條指令之間并沒有數(shù)據(jù)的傳送,只是使用了相同的名。可以把其中一條指令所使用的名換成別的,以此來消除名相關(guān)。 結(jié)構(gòu)沖突:因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。 數(shù)據(jù)沖突:當指令在流水線中重疊執(zhí)行時,因需要用到前面指令的執(zhí)行結(jié)果而發(fā)生的沖突。 控制沖突:流水線遇到分支指令或其它會改變PC值的指令所引起的沖突。 定
29、向:用來解決寫后讀沖突的。在發(fā)生寫后讀相關(guān)的情況下,在計算結(jié)果尚未出來之前,后面等待使用該結(jié)果的指令并不見得是馬上就要用該結(jié)果。如果能夠?qū)⒃撚嬎憬Y(jié)果從其產(chǎn)生的地方直接送到其它指令需要它的地方,那么就可以避免停頓。 寫后讀沖突:考慮兩條指令i和j,且i在j之前進入流水線,指令j用到指令i的計算結(jié)果,而且在i將結(jié)果寫入寄存器之前就去讀該寄存器,因而得到的是舊值。 讀后寫沖突:考慮兩條指令i和j,且i在j之前進入流水線,指令j的目的寄存器和指令i的源操作數(shù)寄存器相同,而且j在i讀取該寄存器之前就先對它進行了寫操作,導(dǎo)致i讀到的值是錯誤的。 寫后寫沖突:考慮兩條指令i和j,且i在j之
30、前進入流水線,,指令j和指令i的結(jié)果單元(寄存器或存儲器單元)相同,而且j在i寫入之前就先對該單元進行了寫入操作,從而導(dǎo)致寫入順序錯誤。這時在結(jié)果單元中留下的是i寫入的值,而不是j寫入的。 鏈接技術(shù):具有先寫后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和Vi沖突的情況下,可以把功能部件鏈接起來進行流水處理,以達到加快執(zhí)行的目的。 分段開采:當向量的長度大于向量寄存器的長度時,必須把長向量分成長度固定的段,然后循環(huán)分段處理,每一次循環(huán)只處理一個向量段。 半性能向量長度:向量處理機的性能為其最大性能的一半時所需的向量長度。 向量長度臨界值:向量流水方式的處理速度優(yōu)于標量串行方式
31、的處理速度時所需的向量長度的最小值。 3.2 指令的執(zhí)行可采用順序執(zhí)行、重疊執(zhí)行和流水線三種方式,它們的主要區(qū)別是什么?各有何優(yōu)缺點。 答:(1)指令的順序執(zhí)行是指指令與指令之間順序串行。即上一條指令全部執(zhí)行完后,才能開始執(zhí)行下一條指令。 優(yōu)點:控制簡單,節(jié)省設(shè)備。缺點:執(zhí)行指令的速度慢,功能部件的利用率低。 (2)指令的重疊指令是在相鄰的指令之間,讓第k條指令與取第k+l條指令同時進行。重疊執(zhí)行不能加快單條指令的執(zhí)行速度,但在硬件增加不多的情況下,可以加快相鄰兩條指令以及整段程序的執(zhí)行速度。與順序方式相比,功能部件的利用率提高了,控制變復(fù)雜了。 (3)指令的流水執(zhí)行是把一個指令
32、的執(zhí)行過程分解為若干個子過程,每個子過程由專門的功能部件來實現(xiàn)。把多個處理過程在時間上錯開,依次通過各功能段,每個子過程與其它的子過程并行進行。依靠提高吞吐率來提高系統(tǒng)性能。流水線中各段的時間應(yīng)盡可能相等 3.3 簡述先行控制的基本思想。 答:先行控制技術(shù)是把緩沖技術(shù)和預(yù)處理技術(shù)相結(jié)合。緩沖技術(shù)是在工作速度不固定的兩個功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù)是指預(yù)取指令、對指令進行加工以及預(yù)取操作數(shù)等。 采用先行控制方式的處理機內(nèi)部設(shè)置多個緩沖站,用于平滑主存、指令分析部件、運算器三者之間的工作。這樣不僅使它們都能獨立地工作,充分忙碌而不用相互等待,而且使指令分析部件和
33、運算器分別能快速地取得指令和操作數(shù),大幅度地提高指令的執(zhí)行速度和部件的效率。這些緩沖站都按先進先出的方式工作,而且都是由一組若干個能快速訪問的存儲單元和相關(guān)的控制邏輯組成。 采用先行控制技術(shù)可以實現(xiàn)多條指令的重疊解釋執(zhí)行。 3.4 設(shè)一條指令的執(zhí)行過程分成取指令、分析指令和執(zhí)行指令三個階段,每個階段所需的時間分別為△t、△t和2△t 。分別求出下列各種情況下,連續(xù)執(zhí)行N條指令所需的時間。 (1)順序執(zhí)行方式; (2)只有“取指令”與“執(zhí)行指令”重疊; (3)“取指令”、“分析指令”與“執(zhí)行指令”重疊。 解:(1)每條指令的執(zhí)行時間為:△t+△t+2△t=4△t 連續(xù)執(zhí)行N條
34、指令所需的時間為:4N△t (2)連續(xù)執(zhí)行N條指令所需的時間為:4△t+3(N-1)△t=(3N+1)△t (3)連續(xù)執(zhí)行N條指令所需的時間為:4△t+2(N-1)△t=(2N+2)△t 3.5 簡述流水線技術(shù)的特點。 答:流水技術(shù)有以下特點: (1) 流水線把一個處理過程分解為若干個子過程,每個子過程由一個專門的功能部件來實現(xiàn)。因此,流水線實際上是把一個大的處理功能部件分解為多個獨立的功能部件,并依靠它們的并行工作來提高吞吐率。 (2) 流水線中各段的時間應(yīng)盡可能相等,否則將引起流水線堵塞和斷流。 (3) 流水線每一個功能部件的前面都要有一個緩沖寄存器,稱為流水寄存器。
35、(4) 流水技術(shù)適合于大量重復(fù)的時序過程,只有在輸入端不斷地提供任務(wù),才能充分發(fā)揮流水線的效率。 (5) 流水線需要有通過時間和排空時間。在這兩個時間段中,流水線都不是滿負荷工作。 3.6 解決流水線瓶頸問題有哪兩種常用方法? 答:細分瓶頸段與重復(fù)設(shè)置瓶頸段 3.7 減少流水線分支延遲的靜態(tài)方法有哪些? 答:(1)預(yù)測分支失敗:沿失敗的分支繼續(xù)處理指令,就好象什么都沒發(fā)生似的。當確定分支是失敗時,說明預(yù)測正確,流水線正常流動;當確定分支是成功時,流水線就把在分支指令之后取出的指令轉(zhuǎn)化為空操作,并按分支目標地址重新取指令執(zhí)行。 (2)預(yù)測分支成功:當流水線ID段檢測到分支指
36、令后,一旦計算出了分支目標地址,就開始從該目標地址取指令執(zhí)行。 (3)延遲分支:主要思想是從邏輯上“延長”分支指令的執(zhí)行時間。把延遲分支看成是由原來的分支指令和若干個延遲槽構(gòu)成。不管分支是否成功,都要按順序執(zhí)行延遲槽中的指令。 3種方法的共同特點:它們對分支的處理方法在程序的執(zhí)行過程中始終是不變的。它們要么總是預(yù)測分支成功,要么總是預(yù)測分支失敗。 3.8 簡述延遲分支方法中的三種調(diào)度策略的優(yōu)缺點。 調(diào)度策略 對調(diào)度的要求 對流水線性能改善的影響 從前調(diào)度 分支必須不依賴于被調(diào)度的指令 總是可以有效提高流水線性能 從目標處調(diào)度 如果分支轉(zhuǎn)移失敗,必須保證被調(diào)度的指令對程
37、序的執(zhí)行沒有影響,可能需要復(fù)制被調(diào)度指令 分支轉(zhuǎn)移成功時,可以提高流水線性能。但由于復(fù)制指令,可能加大程序空間 從失敗處調(diào)度 如果分支轉(zhuǎn)移成功,必須保證被調(diào)度的指令對程序的執(zhí)行沒有影響 分支轉(zhuǎn)移失敗時,可以提高流水線性能 3.9列舉出下面循環(huán)中的所有相關(guān),包括輸出相關(guān)、反相關(guān)、真相關(guān)。 for (i=2; i<100; i=i+1) a[i]=b[i]+a[i] ;/* s1 */ c[i+1]=a[i]+d[i] ; /* s2 */ a[i-1]=2*b[i] ; /* s3 */ b[i+1]=2*b[i] ;/* s4 */ 解
38、:展開循環(huán)兩次: a[i] = b[i] + a[i] ; /* s1 */ c[i+1] = a[i] + d[i] ; /* s2 */ a[i-1] = 2 * b[i] ; /* s3 */ b[i+1] = 2 * b[i] ; /* s4 */ a[i+1] = b[i+1] + a[i+1] ; /* s1’ */ c[i+2] = a[i+1] + d[i+1] ; /* s2 ‘*/ a[i] = 2 * b[i+1] ; /* s3 ‘*/ b[i+2] = 2 * b[i+1] ; /* s4 ‘*/ 輸出相關(guān):無 反相關(guān):無 真相關(guān):S1&S2
39、 由于循環(huán)引入的相關(guān):S4&S4’(真相關(guān))、S1’&S4(真相關(guān))、S3’&S4(真相關(guān))、S1&S3’(輸出相關(guān)、反相關(guān))、S2&S3’(反相關(guān))。 3.10 簡述三種向量處理方式,它們對向量處理機的結(jié)構(gòu)要求有何不同? 答 (1)橫向處理方式:若向量長度為N,則水平處理方式相當于執(zhí)行N次循環(huán)。若使用流水線,在每次循環(huán)中可能出現(xiàn)數(shù)據(jù)相關(guān)和功能轉(zhuǎn)換,不適合對向量進行流水處理。 (2)縱向處理方式:將整個向量按相同的運算處理完畢之后,再去執(zhí)行其他運算。適合對向量進行流水處理,向量運算指令的源/目向量都放在存儲器內(nèi),使得流水線運算部件的輸入、輸出端直接與存儲器相聯(lián),構(gòu)成M-M型的運算流水
40、線。 (3)縱橫處理方式:把長度為N的向量分為若干組,每組長度為n,組內(nèi)按縱向方式處理,依次處理各組,組數(shù)為「N/n」,適合流水處理。可設(shè)長度為n的向量寄存器,使每組向量運算的源/目向量都在向量寄存器中,流水線的運算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成R-R型運算流水線。 3.11 可采用哪些方法來提高向量處理機的性能? 答:可采用多種方法: (1) 設(shè)置多個功能部件,使它們并行工作; (2) 采用鏈接技術(shù),加快一串向量指令的執(zhí)行; (3) 采用循環(huán)開采技術(shù),加快循環(huán)的處理; (4) 采用多處理機系統(tǒng),進一步提高性能。 3.12 有一指令流水線如下所示 (1) 求
41、連續(xù)輸入10條指令,該流水線的實際吞吐率和效率; (2) 該流水線的“瓶頸”在哪一段?請采取兩種不同的措施消除此“瓶頸”。對于你所給出的兩種新的流水線,連續(xù)輸入10條指令時,其實際吞吐率和效率各是多少? 解:(1) (2)瓶頸在3、4段。 n 變成八級流水線(細分) n 重復(fù)設(shè)置部件 1 2 3-1 3-2 4-1 4-2 4-3 4-4 3.13有一個流水線由4段組成,其中每當流經(jīng)第3段時,總要在該段循環(huán)一次,然后才能流到第4段。如果每段經(jīng)過一次所需要的時間都是,問: (1) 當在流水線的輸入端連續(xù)地每時間
42、輸入任務(wù)時,該流水線會發(fā)生什么情況? (2) 此流水線的最大吞吐率為多少?如果每輸入一個任務(wù),連續(xù)處理10個任務(wù)時的實際吞吐率和效率是多少? (3) 當每段時間不變時,如何提高該流水線的吞吐率?仍連續(xù)處理10個任務(wù)時,其吞吐率提高多少? 解:(1)會發(fā)生流水線阻塞情況。 第1個任務(wù) S1 S2 S3 S3 S4 第2個任務(wù) S1 S2 stall S3 S3 S4 第3個任務(wù) S1 stall S2 stall S3 S3 S4 第4個任務(wù) S1 stall S2
43、 stall S3 S3 S4 (2) (3)重復(fù)設(shè)置部件 吞吐率提高倍數(shù)==1.64 3.14 有一條靜態(tài)多功能流水線由5段組成,加法用1、3、4、5段,乘法用1、2、5段,第3段的時間為2△t,其余各段的時間均為△t,而且流水線的輸出可以直接返回輸入端或 暫存于相應(yīng)的流水寄存器中?,F(xiàn)要在該流水線上計算 ,畫出其時空圖,并計算其吞吐率、加速比和效率。 解:首先,應(yīng)選擇適合于流水線工作的算法。對于本題,應(yīng)先計算A1+B1、A2+B2、A3+B3和A4+B4;再計算(A1+B1) ×(A2+B2)和(A3+B
44、3) ×(A4+B4);然后求總的結(jié)果。 其次,畫出完成該計算的時空圖,如圖所示,圖中陰影部分表示該段在工作。 由圖可見,它在18個△t時間中,給出了7個結(jié)果。所以吞吐率為: 如果不用流水線,由于一次求積需3△t,一次求和需5△t,則產(chǎn)生上述7個結(jié)果共需(4×5+3×3)△t =29△t。所以加速比為: 該流水線的效率可由陰
45、影區(qū)的面積和5個段總時空區(qū)的面積的比值求得: 3.15 動態(tài)多功能流水線由6個功能段組成,如下圖: 其中,S1、S4、S5、S6組成乘法流水線,S1、S2、S3、S6組成加法流水線,各個功能段時間均為50ns,假設(shè)該流水線的輸出結(jié)果可以直接返回輸入端,而且設(shè)置有足夠的緩沖寄存器,若以最快的方式用該流水計算: (1) 畫出時空圖; (2) 計算實際的吞吐率、加速比和效率。 解:機器一共要做10次乘法,4次加法。 3.1
46、6 在MIPS流水線上運行如下代碼序列: LOOP: LW R1,0(R2) DADDIU R1,R1,#1 SW R1, 0(R2) DADDIU R2,R2,#4 DSUB R4,R3,R2 BNEZ R4,LOOP 其中:R3的初值是R2+396。假設(shè):在整個代碼序列的運行過程中,所有的存儲器訪問都是命中的,并且在一個時鐘周期中對同一個寄存器的讀操
47、作和寫操作可以通過寄存器文件“定向”。問: (1) 在沒有任何其它定向(或旁路)硬件的支持下,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用排空流水線的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期? (2) 假設(shè)該流水線有正常的定向路徑,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用預(yù)測分支失敗的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期? (3) 假設(shè)該流水線有正常的定向路徑和一個單周期延遲分支,請對該循環(huán)中的指令進行調(diào)度,你可以重新組織指令的順序,也可以修改指令的操作數(shù),但是注意不能增加指令的條數(shù)。
48、請畫出該指令序列執(zhí)行的流水線時空圖,并計算執(zhí)行上述循環(huán)所需要的時鐘周期數(shù)。 解: 寄存器讀寫可以定向,無其他旁路硬件支持。排空流水線。 第i次迭代(i=0..98)開始周期:1+(i×17) 總的時鐘周期數(shù):(98×17)+18=1684 有正常定向路徑,預(yù)測分支失敗。 第i次迭代(i=0..98)開始周期:1+(i×10) 總的時鐘周期數(shù):(98×10)+11=991 有正常定向路徑。單周期延遲分支。 LOOP: LW R1,0(R2) DADDIU R2,R2,#4 DADDIU R1,R1,#1 DSUB R4,R3,R2 B
49、NEZ R4,LOOP SW R1,-4(R2) 第i次迭代(i =0..98)開始周期:1+(i ×6 ) 總的時鐘周期數(shù):(98×6)+10=598 3.17 假設(shè)各種分支指令數(shù)占所有指令數(shù)的百分比如下: 條件分支 20%(其中的60%是分支成功的) 跳轉(zhuǎn)和調(diào)用 5% 現(xiàn)有一條段數(shù)為4的流水線,無條件分支在第二個時鐘周期結(jié)束時就被解析出來,而條件分支要到第三個時鐘周期結(jié)束時才能夠被解析出來。第一個流水段是完全獨立于指令類型的,即所有類型的指令都必須經(jīng)過第一個流水段的處理。請問在沒有任何控制相關(guān)的情況下,該流水線相對于存在上述控制相關(guān)情況下的
50、加速比是多少? 解:沒有控制相關(guān)時流水線的平均CPI=1 存在控制相關(guān)時:由于無條件分支在第二個時鐘周期結(jié)束時就被解析出來,而條件分支 要到第3個時鐘周期結(jié)束時才能被解析出來。所以: (1)若使用排空流水線的策略,則對于條件分支,有兩個額外的stall,對無條件分支,有一個額外的stall: CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45 (2) 若使用預(yù)測分支成功策略,則對于不成功的條件分支,有兩個額外的stall,對無條件分支和成功的條件分支,有一個額外的stall 1: CPI = 1+20%*(60%*1+40%*2) +5%*
51、1 = 1.33 加速比S=CPI/1 = 1.33 (3)若使用預(yù)測分支失敗策略,則對于成功的條件分支,有兩個額外的stall;對無條件分支,有一個額外的stall;對不成功的條件分支,其目標地址已經(jīng)由PC 值給出,不必等待,所以無延遲: CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.29 3.18 在CRAY-1機器上,按照鏈接方式執(zhí)行下述4條向量指令(括號中給出了相應(yīng)功能部件的執(zhí)行時間),如果向量寄存器和功能部件之間的數(shù)據(jù)傳送需要1拍,試求此鏈接流水線的通過時間是多少拍?如果向量長度為64,則需多少拍才能
52、得到全部結(jié)果?
V0←存儲器 (從存儲器中取數(shù):7拍)
V2←V0+V1 (向量加:3拍)
V3←V2 53、向量寄存器,其中V0~V5中分別放有向量A、B、C、D、E、F,向量長度均為8,向量各元素均為浮點數(shù);處理部件采用兩條單功能流水線,加法功能部件時間為2拍,乘法功能部件時間為3拍。采用類似于CARY-1的鏈接技術(shù),先計算(A+B)*C,在流水線不停流的情況下,接著計算(D+E)*F。
(1) 求此鏈接流水線的通過時間?(設(shè)寄存器入、出各需1拍)
(2) 假如每拍時間為50ns,完成這些計算并把結(jié)果存進相應(yīng)寄存器,此處理部件的實際吞吐率為多少MFLOPS?
解:(1)我們在這里假設(shè)A+B的中間結(jié)果放在V6中,(A+B)×C地最后結(jié)果放在V7中,D+E地中間結(jié)果放在V8中,(D+E)×F的最 54、后結(jié)果放在V9中。具體實現(xiàn)參考下圖:
通過時間應(yīng)該為前者((A+B)×C)通過的時間:
T通過= (1+2+1)+(1+3+1) =9(拍)
(2)在做完(A+B)×C之后,作(C+D)×E就不需要通過時間了。
V6←A+B
V7←V6×C
V8←D+E
V9←V8×F
第4章 指令級并行
4.1解釋下列術(shù)語
指令級并行:簡稱ILP。是指指令之間存在的一種并行性,利用它,計算機可以并行執(zhí)行兩條或兩條以上的指令。
指令調(diào)度:通過在編譯 55、時讓編譯器重新組織指令順序或通過硬件在執(zhí)行時調(diào)整指令順序來消除沖突。
指令的動態(tài)調(diào)度:是指在保持數(shù)據(jù)流和異常行為的情況下,通過硬件對指令執(zhí)行順序進行重新安排,以提高流水線的利用率且減少停頓現(xiàn)象。是由硬件在程序?qū)嶋H運行時實施的。
指令的靜態(tài)調(diào)度:是指依靠編譯器對代碼進行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不是在程序執(zhí)行的過程中、而是在編譯期間進行代碼調(diào)度和優(yōu)化的。
保留站:在采用Tomasulo算法的MIPS處理器浮點部件中,在運算部件的入口設(shè)置的用來保存一條已經(jīng)流出并等待到本功能部件執(zhí)行的指令(相關(guān)信息)。
CDB:公共數(shù)據(jù)總線。
動態(tài)分支預(yù)測技術(shù):是用硬件動態(tài)地進行分 56、支處理的方法。在程序運行時,根據(jù)分支指令過去的表現(xiàn)來預(yù)測其將來的行為。如果分支行為發(fā)生了變化,預(yù)測結(jié)果也跟著改變。
BHT:分支歷史表。用來記錄相關(guān)分支指令最近一次或幾次的執(zhí)行情況是成功還是失敗,并據(jù)此進行預(yù)測。
分支目標緩沖:是一種動態(tài)分支預(yù)測技術(shù)。將執(zhí)行過的成功分支指令的地址以及預(yù)測的分支目標地址記錄在一張硬件表中。在每次取指令的同時,用該指令的地址與表中所有項目的相應(yīng)字段進行比較,以便盡早知道分支是否成功,盡早知道分支目標地址,達到減少分支開銷的目的。
前瞻執(zhí)行:解決控制相關(guān)的方法,它對分支指令的結(jié)果進行猜測,然后按這個猜測結(jié)果繼續(xù)取指、流出和執(zhí)行后續(xù)的指令。只是指令執(zhí) 57、行的結(jié)果不是寫回到寄存器或存儲器,而是放到一個稱為ROB的緩沖器中。等到相應(yīng)的指令得到“確認”(即確實是應(yīng)該執(zhí)行的)后,才將結(jié)果寫入寄存器或存儲器。
ROB:ReOrder Buffer。前瞻執(zhí)行緩沖器。
超標量:一種多指令流出技術(shù)。它在每個時鐘周期流出的指令條數(shù)不固定,依代碼的具體情況而定,但有個上限。
超流水:在一個時鐘周期內(nèi)分時流出多條指令。
超長指令字:一種多指令流出技術(shù)。VLIW處理機在每個時鐘周期流出的指令條數(shù)是固定的,這些指令構(gòu)成一條長指令或者一個指令包,在這個指令包中,指令之間的并行性是通過指令顯式地表示出來的。
循環(huán)展開:是一種增加指令間并行性最 58、簡單和最常用的方法。它將循環(huán)展開若干遍后,通過重命名和指令調(diào)度來開發(fā)更多的并行性。
4.2 簡述Tomasulo算法的基本思想。
答:核心思想是:① 記錄和檢測指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減小到最少;② 通過寄存器換名來消除WAR沖突和WAW沖突。寄存器換名是通過保留站來實現(xiàn),它保存等待流出和正在流出指令所需要的操作數(shù)。
基本思想:只要操作數(shù)有效,就將其取到保留站,避免指令流出時才到寄存器中取數(shù)據(jù),這就使得即將執(zhí)行的指令從相應(yīng)的保留站中取得操作數(shù),而不是從寄存器中。指令的執(zhí)行結(jié)果也是直接送到等待數(shù)據(jù)的其它保留站中去。因而,對于連續(xù)的寄存器寫,只有最后一 59、個才真正更新寄存器中的內(nèi)容。一條指令流出時,存放操作數(shù)的寄存器名被換成為對應(yīng)于該寄存器保留站的名稱(編號)。
4.3 根據(jù)需要展開下面的循環(huán)并進行指令調(diào)度,直到?jīng)]有任何延遲。指令的延遲如表4.4。
LOOP: L.D F0,0(R1)
MUL.D F0,F0,F2
L.D F4,0(R2)
ADD.D F0,F0,F4
S.D F0,0(R2)
DSUBI R1,R1,#8
DSUBI R2,R2,#8
BNEZ R1,LOOP
解:將循環(huán)展開兩次,進行指令調(diào)度,即可以消除延遲,代碼如下:
LOOP: L.D F0,0(R1)
L.D F10,-8 60、(R1)
MUL.D F0,F(xiàn)0,F(xiàn)2
MUL.D F10,F(xiàn)10,F(xiàn)2
L.D F4,0(R2)
L.D F14,-8(R2)
ADD.D F0,F(xiàn)0,F(xiàn)4
ADD.D F10,F(xiàn)10,F(xiàn)14
DSUBI R1,R1,16
S.D 0(R2),F(xiàn)0
DSUBI R2,R2,16
BNEZ R1,LOOP
S.D 8(R2),F(xiàn)10
4.4 假設(shè)有一條長流水線,僅僅對條件轉(zhuǎn)移指令使用分支目標緩沖。假設(shè)分支預(yù)測錯誤的開銷為4個時鐘周期,緩沖不命中的開銷為3個時鐘周期。假設(shè):命中率為90%,預(yù)測精度為90%,分支頻率為15%,沒有分支的基本CPI為1。 61、
(1) 求程序執(zhí)行的CPI。
(2) 相對于采用固定的2個時鐘周期延遲的分支處理,哪種方法程序執(zhí)行速度更快?
解:(1)程序執(zhí)行的CPI = 沒有分支的基本CPI(1) + 分支帶來的額外開銷
分支帶來的額外開銷是指在分支指令中,緩沖命中但預(yù)測錯誤帶來的開銷與緩沖沒有命中帶來的開銷之和。
分支帶來的額外開銷= 15% * (90%命中×10%預(yù)測錯誤×4 + 10%沒命中×3)= 0.099
所以,程序執(zhí)行的CPI = 1 + 0.099 = 1.099
(2)采用固定的2 個時鐘周期延遲的分支處理CPI = 1 + 15%×2 = 1.3
由(1)(2)可知分支目標緩沖方法 62、執(zhí)行速度快。
4.5 假設(shè)分支目標緩沖的命中率為90%,程序中無條件轉(zhuǎn)移指令的比例為5%,沒有無條件轉(zhuǎn)移指令的程序CPI值為1。假設(shè)分支目標緩沖中包含分支目標指令,允許無條件轉(zhuǎn)移指令進入分支目標緩沖,則程序的CPI值為多少?
解:設(shè)每條無條件轉(zhuǎn)移指令的延遲為x,則有:
1+5%×x=1.1
x=2
當分支目標緩沖命中時,無條件轉(zhuǎn)移指令的延遲為0。
所以 程序的CPI = 1 + 2 × 5% ×(1 -90%) =1.01
4.6 下面的一段MIPS匯編程序是計算高斯消去法中的關(guān)鍵一步,用于完成下面公式的計算:
Y = a ′ X + Y
其浮點指令延遲如表4.3所 63、示,整數(shù)指令均為1個時鐘周期完成,浮點和整數(shù)部件均采用流水。整數(shù)操作之間以及與其它所有浮點操作之間的延遲為0,轉(zhuǎn)移指令的延遲為0。X中的最后一個元素存放在存儲器中的地址為DONE。
FOO: L.D F2,0(R1)
MUT.D F4,F2,F0
L.D F6,0(R2)
ADD.D F6,F4,F6
S.D F6,0[R2]
DADDIU R1,R1,#8
DADDIU R2,R2,#8
DSUBIU R3,R1,#DONE
BNEZ R3, FOO
(1) 對于標準的MIPS單流水線,上述循環(huán)計算一個Y值需要多少時間?其中有 64、多少空轉(zhuǎn)周期?
(2) 對于標準的MIPS單流水線,將上述循環(huán)順序展開4次,不進行任何指令調(diào)度,計算一個Y值平均需要多少時間?加速比是多少?其加速是如何獲得的?
(3) 對于標準的MIPS單流水線,將上述循環(huán)順序展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu),計算一個Y值平均需要多少時間?加速比是多少?
(1) 對于采用如圖4.8前瞻執(zhí)行機制的MIPS處理器(只有一個整數(shù)部件)。當循環(huán)第二次執(zhí)行到
BNEZ R3,FOO
時,寫出前面所有指令的狀態(tài),包括指令使用的保留站、指令起始節(jié)拍、執(zhí)行節(jié)拍和寫結(jié)果節(jié)拍,并寫出處理器當前的狀態(tài)。
(2) 對于2路超標量的MIPS流水線,設(shè)有兩個 65、指令流出部件,可以流出任意組合的指令,系統(tǒng)中的功能部件數(shù)量不受限制。將上述循環(huán)展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu)。計算一個Y值平均需要多少時間?加速比是多少?
(3) 對于如圖4.13結(jié)構(gòu)的超長指令字MIPS處理器,將上述循環(huán)展開4次,優(yōu)化和調(diào)度指令,使循環(huán)處理時間達到最優(yōu)。計算一個Y值平均需要多少時間?加速比是多少?
解:(1)
L.D F2, 0(R1) 1
Stall
MUT.D F4, F2, F0 2
L.D F6, 0(R2) 3
Stall
Stall
ADD.D 66、 F6, F4, F6 4
Stall
Stall
S.D F6, 0[R2] 5
DADDIU R1, R1, #8 6
DADDIU R2, R2, #8 7
DSUBIU R3, R1, #DONE 8
BNEZ R3, FOO 9
所以,共有14 個時鐘周期,其中有5 個空轉(zhuǎn)周期。
(2)循環(huán)順序展開4 次,不進行任何指令調(diào)度,則指令1~5 及其間的stall 都是必要的,只是指令6~9 只需執(zhí)行一次,因此,共有 10 × 4 + 4 = 44 個時鐘周期,計算出4 個Y 值,所以計算一個Y 值需要11 個時鐘周期,加速比為:14/11 = 1.27 。加速主要是來自減少控制開銷,即減少對R1、R2 的整數(shù)操作以及比較、分支指令而來的。
(3)循環(huán)順序展開4 次,優(yōu)化和調(diào)度指令,如下:
L.D F2, 0(R1)
L.D F8, 8(R1)
L.D F14, 16(R1)
L.D F20, 24(R1)
MUT.D F4, F2, F0
MUT.D F10, F8,
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復(fù)習題含答案
- 1 各種煤礦安全考試試題含答案