計(jì)算機(jī)體系結(jié)構(gòu)課后習(xí)題原版答案_張晨曦著_第1頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)課后習(xí)題原版答案_張晨曦著_第2頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)課后習(xí)題原版答案_張晨曦著_第3頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)課后習(xí)題原版答案_張晨曦著_第4頁(yè)
計(jì)算機(jī)體系結(jié)構(gòu)課后習(xí)題原版答案_張晨曦著_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余43頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、第1章計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念1.1 解釋下列術(shù)語(yǔ)層次機(jī)構(gòu):按照計(jì)算機(jī)語(yǔ)言從低級(jí)到高級(jí)的次序,把計(jì)算機(jī)系統(tǒng)按功能劃分成多級(jí)層次結(jié)構(gòu), 每一層以一種不同的語(yǔ)言為特征。這些層次依次為:微程序機(jī)器級(jí),傳統(tǒng)機(jī)器語(yǔ)言機(jī)器級(jí), 匯編語(yǔ)言機(jī)器級(jí),高級(jí)語(yǔ)言機(jī)器級(jí),應(yīng)用語(yǔ)言機(jī)器級(jí)等。虛擬機(jī):用軟件實(shí)現(xiàn)的機(jī)器。翻譯:先用轉(zhuǎn)換程序把高一級(jí)機(jī)器上的程序轉(zhuǎn)換為低一級(jí)機(jī)器上等效的程序,然后再在這低 一級(jí)機(jī)器上運(yùn)行,實(shí)現(xiàn)程序的功能。解釋?zhuān)簩?duì)于高一級(jí)機(jī)器上的程序中的每一條語(yǔ)句或指令,都是轉(zhuǎn)去執(zhí)行低一級(jí)機(jī)器上的一段 等效程序。執(zhí)行完后,再去高一級(jí)機(jī)器取下一條語(yǔ)句或指令,再進(jìn)行解釋執(zhí)行,如此反復(fù), 直到解釋執(zhí)行完整個(gè)程序。計(jì)算機(jī)

2、系統(tǒng)結(jié)構(gòu):傳統(tǒng)機(jī)器程序員所看到的計(jì)算機(jī)屬性,即概念性結(jié)構(gòu)與功能特性。在計(jì)算機(jī)技術(shù)中,把這種本來(lái)存在的事物或?qū)傩?,但從某種角度看又好像不存在的概念稱(chēng)為 透明性。計(jì)算機(jī)組成:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn),包含物理機(jī)器級(jí)中的數(shù)據(jù)流和控制流的組成以及 邏輯設(shè)計(jì)等。計(jì)算機(jī)實(shí)現(xiàn):計(jì)算機(jī)組成的物理實(shí)現(xiàn),包括處理機(jī)、主存等部件的物理結(jié)構(gòu),器件的集成度 和速度,模塊、插件、底板的劃分與連接,信號(hào)傳輸,電源、冷卻及整機(jī)裝配技術(shù)等。系統(tǒng)加速比:對(duì)系統(tǒng)中某部分進(jìn)行改進(jìn)時(shí),改進(jìn)后系統(tǒng)性能提高的倍數(shù)。Amdahl定律:當(dāng)對(duì)一個(gè)系統(tǒng)中的某個(gè)部件進(jìn)行改進(jìn)后,所能獲得的整個(gè)系統(tǒng)性能的提高, 受限于該部件的執(zhí)行時(shí)間占總執(zhí)行時(shí)間的百分

3、比。程序的局部性原理:程序執(zhí)行時(shí)所訪問(wèn)的存儲(chǔ)器地址不是隨機(jī)分布的,而是相對(duì)地簇聚。包 括時(shí)間局部性和空間局部性。CPI:每條指令執(zhí)行的平均時(shí)鐘周期數(shù)。測(cè)試程序套件:由各種不同的真實(shí)應(yīng)用程序構(gòu)成的一組測(cè)試程序,用來(lái)測(cè)試計(jì)算機(jī)在各個(gè)方 而的處理性能。存儲(chǔ)程序計(jì)算機(jī):馮諾依夏結(jié)構(gòu)計(jì)算機(jī)。其基本點(diǎn)是指令驅(qū)動(dòng)。程序預(yù)先存放在計(jì)算機(jī)存 儲(chǔ)器中,機(jī)器一旦啟動(dòng),就能按照程序指定的邏輯順序執(zhí)行這些程序,自動(dòng)完成由程序所描 述的處理工作。系列機(jī):由同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)、但具有不同組成和實(shí)現(xiàn)的一系列不同型號(hào)的 計(jì)算機(jī)。軟件兼容:一個(gè)軟件可以不經(jīng)修改或者只需少量修改就可以由一臺(tái)計(jì)算機(jī)移植到另一分計(jì)算 機(jī)上運(yùn)

4、行。差別只是執(zhí)行時(shí)間的不同。向上(下)兼容:按某檔計(jì)算機(jī)編制的程序,不加修改就能運(yùn)行于比它高(低)檔的計(jì)算機(jī)。向后(前)兼容:按某個(gè)時(shí)期投入市場(chǎng)的某種型號(hào)計(jì)算機(jī)編制的程序,不加修改地就能運(yùn)行 于在它之后(前)投入市場(chǎng)的計(jì)算機(jī)。兼容機(jī):由不同公司廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)。模擬:用軟件的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)(稱(chēng)為宿主機(jī))上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)(稱(chēng)為虛擬機(jī)) 的指令系統(tǒng)。仿真:用一分現(xiàn)有計(jì)算機(jī)(稱(chēng)為宿主機(jī))上的微程序去解釋實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)(稱(chēng)為目標(biāo)機(jī)) 的指令系統(tǒng)。并行性:計(jì)算機(jī)系統(tǒng)在同一時(shí)刻或者同一時(shí)間間隔內(nèi)進(jìn)行多種運(yùn)算或操作。只要在時(shí)間上相 互重疊,就存在并行性。它包括同時(shí)性與并發(fā)性兩種

5、含義。時(shí)間重疊:在并行性概念中引入時(shí)間因素,讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流重尚地 使用同一套硬件設(shè)備的各個(gè)部分,以加快硬件周轉(zhuǎn)而贏得速度。資源重復(fù):在并行性概念中引入空間因素,以數(shù)量取勝。通過(guò)重復(fù)設(shè)置硬件資源,大幅度地 提高計(jì)算機(jī)系統(tǒng)的性能。資源共享:這是一種軟件方法,它使多個(gè)任務(wù)按一定時(shí)間順序輪流使用同一套硬件設(shè)備。耦合度:反映多機(jī)系統(tǒng)中各計(jì)算機(jī)之間物理連接的緊密程度和交互作用能力的強(qiáng)弱。緊密耦合系統(tǒng):又稱(chēng)直接耦合系統(tǒng)。在這種系統(tǒng)中,計(jì)算機(jī)之間的物理連接的頻帶較高,- 般是通過(guò)總線或高速開(kāi)關(guān)互連,可以共享主存。松散耦合系統(tǒng):又稱(chēng)間接耦合系統(tǒng),一般是通過(guò)通道或通信線路實(shí)現(xiàn)計(jì)算機(jī)之間的互連

6、,可 以共享外存設(shè)備(磁盤(pán)、磁帶等)。計(jì)算機(jī)之間的相互作用是在文件或數(shù)據(jù)集一級(jí)上進(jìn)行。異構(gòu)型多處理機(jī)系統(tǒng):由多個(gè)不同類(lèi)型、至少擔(dān)負(fù)不同功能的處理機(jī)組成,它們按照作業(yè)要 求的順序,利用時(shí)間重登原理,依次對(duì)它們的多個(gè)任務(wù)進(jìn)行加工,各自完成規(guī)定的功能動(dòng)作。同構(gòu)型多處理機(jī)系統(tǒng):由多個(gè)同類(lèi)型或至少擔(dān)負(fù)同等功能的處理機(jī)組成,它們同時(shí)處理同一 作業(yè)中能并行執(zhí)行的多個(gè)任務(wù)。1.2 試用實(shí)例說(shuō)明計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、計(jì)算機(jī)組成與計(jì)算機(jī)實(shí)現(xiàn)之間的相互關(guān)系。答:如在設(shè)計(jì)主存系統(tǒng)時(shí),確定主存容量、編址方式、尋址范圍等屬于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。 確定主存周期、邏輯上是否采用并行主存、邏輯設(shè)計(jì)等屬于計(jì)算機(jī)組成。選擇存儲(chǔ)芯片類(lèi)型、 微

7、組裝技術(shù)、線路設(shè)計(jì)等屬于計(jì)算機(jī)實(shí)現(xiàn)。計(jì)算機(jī)組成是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn)。計(jì)算機(jī)實(shí)現(xiàn)是計(jì)算機(jī)組成的物理實(shí)現(xiàn)。一種 體系結(jié)構(gòu)可以有多種組成。一種組成可以有多種實(shí)現(xiàn)。1.3 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的Flynn分類(lèi)法是按什么來(lái)分類(lèi)的?共分為哪幾類(lèi)?答:Flynn分類(lèi)法是按照指令流和數(shù)據(jù)流的多倍性進(jìn)行分類(lèi)。把計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)分為:(1)單指令流單數(shù)據(jù)流SISD(2) 單指令流多數(shù)據(jù)流SIMD(3)多指令流單數(shù)據(jù)流MISD(4) 多指令流多數(shù)據(jù)流MIMD4.4 計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中經(jīng)常使用的4個(gè)定量原理是什么?并說(shuō)出它們的含義。答:(1)以經(jīng)常性事件為重點(diǎn)。在計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)中,對(duì)經(jīng)常發(fā)生的情況,賦予它優(yōu) 先的處理

8、權(quán)和資源使用權(quán),以得到更多的總體上的改進(jìn)。(2) Amdahl定律。加快某部件執(zhí) 行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中所占的重要性。(3) CPU性能公 式。執(zhí)行一個(gè)程序所需的CPU時(shí)間=IC XCPI X時(shí)鐘周期時(shí)間。(4)程序的局部性原理。 程序在執(zhí)行時(shí)所訪問(wèn)地址的分布不是隨機(jī)的,而是相對(duì)地簇聚。4.5 分別從執(zhí)行程序的角度和處理數(shù)據(jù)的角度來(lái)看,計(jì)算機(jī)系統(tǒng)中并行性等級(jí)從低到高 可分為哪幾級(jí)?答:從處理數(shù)據(jù)的角度來(lái)看,并行性等級(jí)從低到高可分為:(1)字串位串:每次只對(duì)一個(gè)字的一位進(jìn)行處理。這是最基本的串行處理方式,不存 在并行性;(2)字串位并:同時(shí)對(duì)一個(gè)字的全部位進(jìn)行處理,不

9、同字之間是串行的。已開(kāi)始出現(xiàn) 并行性;(3)字并位串:同時(shí)對(duì)許多字的同一位(稱(chēng)為位片)進(jìn)行處理。這種方式具有較高的 并行性;(4)全并行:同時(shí)對(duì)許多字的全部位或部分位進(jìn)行處理。這是最高一級(jí)的并行。從執(zhí)行程序的角度來(lái)看,并行性等級(jí)從低到高可分為:(1)指令內(nèi)部并行:?jiǎn)螚l指令中各微操作之間的并行:(2)指令級(jí)并行:并行執(zhí)行兩條或兩條以上的指令;(3)線程級(jí)并行:并行執(zhí)行兩個(gè)或兩個(gè)以上的線程,通常是以一個(gè)進(jìn)程內(nèi)派生的多個(gè) 線程為調(diào)度單位:(4)任務(wù)級(jí)或過(guò)程級(jí)并行:并行執(zhí)行兩個(gè)或兩個(gè)以上的過(guò)程或任務(wù)(程序段),以子程 序或進(jìn)程為調(diào)度單元;(5)作業(yè)或程序級(jí)并行:并行執(zhí)行兩個(gè)或兩個(gè)以上的作業(yè)或程序。1.

10、6某臺(tái)主頻為400MHz的計(jì)算機(jī)執(zhí)行標(biāo)準(zhǔn)測(cè)試程序,程序中指令類(lèi)型、執(zhí)行數(shù)量和平 均時(shí)鐘周期數(shù)如下:指令類(lèi)型指令執(zhí)行數(shù)量平均時(shí)鐘周期數(shù)整數(shù)45000I數(shù)據(jù)傳送750002浮點(diǎn)80004分Z15002求該計(jì)算機(jī)的有效CPI、MIPS和程序執(zhí)行時(shí)間。解:(1) CPI = (45000 X 1 +75000 X 2 + 8000 X 4 +1500 X 2) / 129500 = 1.776(2) MIPS 速率=f/CPI =400/1.776 =225.225MIPS(3)程序執(zhí)行時(shí)間=(45000X 1 +75000X2 + 8000X4+ 1500X2) / 400=575s1.7 將計(jì)算機(jī)

11、系統(tǒng)中某一功能的處理速度加快10倍,但該功能的處理時(shí)間僅為整個(gè)系 統(tǒng)運(yùn)行時(shí)間的40%,則采用此增強(qiáng)功能方法后,能使整個(gè)系統(tǒng)的性能提高多少?解由題可知:可改進(jìn)比例=40% = 0.4 部件加速比=10系統(tǒng)加速比=1.5625根據(jù)Amdahl定律可知:0.4+ 10 采用此增強(qiáng)功能方法后,能使整個(gè)系統(tǒng)的性能提高到原來(lái)的1.5625倍。1.8 計(jì)算機(jī)系統(tǒng)中有三個(gè)部件可以改進(jìn),這三個(gè)部件的部件加速比為: 部件加速比是30:部件加速比是2=20; 部件加速比是3=10(1)如果部件1和部件2的可改進(jìn)比例均為30%,那么當(dāng)部件3的可改進(jìn)比例為多 少時(shí),系統(tǒng)加速比才可以達(dá)到10?(2)如果三個(gè)部件的可改進(jìn)比

12、例分別為30%、30%和20%,三個(gè)部件同時(shí)改進(jìn),那么 系統(tǒng)中不可加速部分的執(zhí)行時(shí)間在總執(zhí)行時(shí)間中占的比例是多少?解:(1)在多個(gè)部件可改進(jìn)情況下,Amdahl定理的擴(kuò)展:(1R)+ Zg已知 S| = 30, S2=2O, S3=10, Sn=10, F=0.3, F2=0.3,得:io=!I-S.3+O.3+片)+ (0.3/30+0.3/20+/10)得F3=0.36,即部件3的可改進(jìn)比例為36%。(2)設(shè)系統(tǒng)改進(jìn)前的執(zhí)行時(shí)間為T(mén),則3個(gè)部件改進(jìn)前的執(zhí)行時(shí)間為:(O.3+O.3+O.2) T = 0.8T,不可改進(jìn)部分的執(zhí)行時(shí)間為0.2T。已知3個(gè)部件改進(jìn)后的加速比分別為與=30, S2

13、=20, S3=10,因此3個(gè)部件改進(jìn)后的 執(zhí)行時(shí)間為:,,0.3T 0.3T 0.27 八八,一Tn =+= 0.045T302010改進(jìn)后整個(gè)系統(tǒng)的執(zhí)行時(shí)間為:Tn = 0.045T+0.2T = 0.245T那么系統(tǒng)中不可改進(jìn)部分的執(zhí)行時(shí)間在總執(zhí)行時(shí)間中占的比例是:0.270.245T= 0.821.9假設(shè)某應(yīng)用程序中有4類(lèi)操作,通過(guò)改進(jìn),各操作獲得不同的性能提高。具體數(shù)據(jù) 如下表所示:操作類(lèi)型程序中的數(shù)量改進(jìn)前的執(zhí)行時(shí)間改進(jìn)后的執(zhí)行時(shí)間(百萬(wàn)條指令)(周期)(周期)操作11()21操作2302015操作335103操作41541(1)改進(jìn)后,各類(lèi)操作的加速比分別是多少?(2)各類(lèi)操作單

14、獨(dú)改進(jìn)后,程序獲得的加速比分別是多少?(3) 4類(lèi)操作均改進(jìn)后,整個(gè)程序的加速比是多少?解:根據(jù)Amdahl定律S= 式 可得Fe(1-Fe) + Se操作類(lèi)型各類(lèi)操作的指令條數(shù)在 程序中所占的比例R各類(lèi)操作的加速比冬各類(lèi)操作單獨(dú)改進(jìn)后, 程序獲得的加速比操作111.1%1.06操作233.3%1331.()9操作338.9%3331.37操作416.7%41.144類(lèi)操作均改進(jìn)后,整個(gè)程序的加速比:Sn =七 2.16(】)+小第2章指令集結(jié)構(gòu)的分類(lèi)2.1 解釋下列術(shù)語(yǔ)堆棧型機(jī)器:CPU中存儲(chǔ)操作數(shù)的單元是堆棧的機(jī)器。累加器型機(jī)器:CPU中存儲(chǔ)操作數(shù)的單元是累加器的機(jī)器。通用寄存器型機(jī)器:C

15、PU中存儲(chǔ)操作數(shù)的單元是通用寄存器的機(jī)器。CISC:復(fù)雜指令集計(jì)算機(jī)RISC:精簡(jiǎn)指令集計(jì)算機(jī)尋址方式:指令系統(tǒng)中如何形成所要訪問(wèn)的數(shù)據(jù)的地址。一般來(lái)說(shuō),尋址方式可以指明 指令中的操作數(shù)是一個(gè)常數(shù)、一個(gè)寄存器操作數(shù)或者是一個(gè)存儲(chǔ)器操作數(shù)。數(shù)據(jù)表示:硬件結(jié)構(gòu)能夠識(shí)別、指令系統(tǒng)可以直接調(diào)用的那些數(shù)據(jù)結(jié)構(gòu)。2.2 區(qū)別不同指令集結(jié)構(gòu)的主要因素是什么?根據(jù)這個(gè)主要因素可將指令集結(jié)構(gòu)分為哪 3類(lèi)?答:區(qū)別不同指令集結(jié)構(gòu)的主要因素是CPU中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元。據(jù)此可將指令系統(tǒng)結(jié)構(gòu)分為堆棧結(jié)構(gòu)、累加器結(jié)構(gòu)和通用寄存器結(jié)構(gòu)。2.3 常見(jiàn)的3種通用寄存器型指令集結(jié)構(gòu)的優(yōu)缺點(diǎn)有哪些?答:指令系統(tǒng)結(jié)構(gòu)類(lèi)型優(yōu)點(diǎn)

16、缺點(diǎn)寄存器-寄存器型(0, 3)指令字長(zhǎng)固定,指令結(jié)構(gòu)簡(jiǎn) 潔,是一種簡(jiǎn)單的代碼生成 模型,各種指令的執(zhí)行時(shí)鐘 周期數(shù)相近。與指令中含存儲(chǔ)器操作數(shù)的指令系統(tǒng)結(jié)構(gòu)相比, 指令條數(shù)多,目標(biāo)代碼不夠緊湊,因而程序占用 的空間比較大。寄存器-存儲(chǔ)器型(L 2)可以在ALU指令中直接對(duì) 存儲(chǔ)器操作數(shù)進(jìn)行引用,而 不必先用load指令進(jìn)行加 栽。容易對(duì)指令進(jìn)行編碼, 目標(biāo)代碼比較緊湊。由于有一個(gè)操作數(shù)的內(nèi)容將被破壞,所以指令中 的兩個(gè)操作數(shù)不對(duì)稱(chēng)。在一條指令中同時(shí)對(duì)寄存 器操作數(shù)和存儲(chǔ)器操作數(shù)進(jìn)行編碼,有可能限制 指令所能夠表示的寄存器個(gè)數(shù)。指令的執(zhí)行時(shí)鐘 周期數(shù)因操作數(shù)的來(lái)源(寄存器或存儲(chǔ)器)不同 而差別

17、比較大。存儲(chǔ)器-存儲(chǔ)器型(2, 2)或(3, 3)目標(biāo)代碼最緊湊,不需要設(shè) 置寄存器來(lái)保存變量。指令字長(zhǎng)變化很大,特別是3操作數(shù)指令。而且 每條指令完成的工作也差別很大。對(duì)存儲(chǔ)器的頻 繁訪問(wèn)會(huì)使存儲(chǔ)器成為瓶頸。這種類(lèi)型的指令系 統(tǒng)現(xiàn)在已不用/°2.4 指令集應(yīng)滿足哪幾個(gè)基本要求?答:對(duì)指令集的基本要求是:完整性、規(guī)整性、高效率和兼容性。完整性是指在一個(gè)有限可用的存儲(chǔ)空間內(nèi),對(duì)于任何可解的問(wèn)題,編制計(jì)算程序時(shí),指 令集所提供的指令足夠使用。規(guī)整性主要包括對(duì)稱(chēng)性和均勻性。對(duì)稱(chēng)性是指所有與指令集有關(guān)的存儲(chǔ)單元的使用、操 作碼的設(shè)置等都是對(duì)稱(chēng)的。均勻性是指對(duì)于各種不同的操作數(shù)類(lèi)型、字長(zhǎng)、操作

18、種類(lèi)和數(shù)據(jù) 存儲(chǔ)單元,指令的設(shè)置都要同等對(duì)待。高效率是指指令的執(zhí)行速度快、使用頻度高。2.5 指令集結(jié)構(gòu)設(shè)計(jì)所涉及的內(nèi)容有哪些?答:(1)指令集功能設(shè)計(jì):主要有RISC和CISC兩種技術(shù)發(fā)展方向;(2)尋址方式的 設(shè)計(jì):設(shè)置尋址方式可以通過(guò)對(duì)基準(zhǔn)程序進(jìn)行測(cè)試統(tǒng)計(jì),察看各種尋址方式的使用頻率,根 據(jù)適用頻率設(shè)置必要的尋址方式。(3)操作數(shù)表示和操作數(shù)類(lèi)型:主要的操作數(shù)類(lèi)型和操 作數(shù)表示的選擇有:浮點(diǎn)數(shù)據(jù)類(lèi)型、整型數(shù)據(jù)類(lèi)型、字符型、十進(jìn)制數(shù)據(jù)類(lèi)型等等。(4)尋 址方式的表示:可以將尋址方式編碼于操作碼中,也可以將尋址方式作為一個(gè)單獨(dú)的域來(lái)表 示。(5)指令集格式的設(shè)計(jì):有變長(zhǎng)編碼格式、固定長(zhǎng)度編碼

19、格式和混合型編碼格式3種。2.6 簡(jiǎn)述CISC指令集結(jié)構(gòu)功能設(shè)計(jì)的主要目標(biāo)。從當(dāng)前的計(jì)算機(jī)技術(shù)觀點(diǎn)來(lái)看,CISC 指令集結(jié)構(gòu)的計(jì)算機(jī)有什么缺點(diǎn)?答:主要目標(biāo)是增強(qiáng)指令功能,把越來(lái)越多的功能交由硬件來(lái)實(shí)現(xiàn),并且指令的數(shù)量也 是越來(lái)越多。缺點(diǎn):(1) CISC結(jié)構(gòu)的指令集中,各種指令的使用頻率相差懸殊。(2) CISC結(jié)構(gòu)指令 的復(fù)雜性帶來(lái)了計(jì)算機(jī)體系結(jié)構(gòu)的復(fù)雜性,這不僅增加了研制時(shí)間和成本,而且還容易造成 設(shè)計(jì)錯(cuò)誤。(3) CISC結(jié)構(gòu)指令集的復(fù)雜性給VLSI設(shè)計(jì)增加了很大負(fù)擔(dān),不利于單片集成。 (4) CISC結(jié)構(gòu)的指令集中,許多復(fù)雜指令需要很復(fù)雜的操作,因而運(yùn)行速度慢。(5)在 CISC結(jié)構(gòu)

20、的指令集中,由于各條指令的功能不均衡性,不利于采用先進(jìn)的計(jì)算機(jī)體系結(jié)構(gòu) 技術(shù)(如流水技術(shù))來(lái)提高系統(tǒng)的性能。2.7 簡(jiǎn)述RISC指令集結(jié)構(gòu)的設(shè)計(jì)原則。答(1)選取使用頻率最高的指令,并補(bǔ)充一些最有用的指令:(2)每條指令的功能應(yīng) 盡可能簡(jiǎn)單,并在一個(gè)機(jī)器周期內(nèi)完成:(3)所有指令長(zhǎng)度均相同;(4)只有Load和Store 操作指令才訪問(wèn)存儲(chǔ)器,其它指令操作均在寄存器之間進(jìn)行;(5)以簡(jiǎn)單有效的方式支持 高級(jí)語(yǔ)言。2.8 指令中表示操作數(shù)類(lèi)型的方法有哪幾種?答:操作數(shù)類(lèi)型有兩種表示方法:(1)操作數(shù)的類(lèi)型由操作碼的編碼指定,這是最常見(jiàn) 的一種方法:(2)數(shù)據(jù)可以附上由硬件解釋的標(biāo)記,由這些標(biāo)記指

21、定操作數(shù)的類(lèi)型,從而選 擇適當(dāng)?shù)倪\(yùn)算。2.9 表示尋址方式的主要方法有哪些?簡(jiǎn)述這些方法的優(yōu)缺點(diǎn)。答:表示尋址方式有兩種常用的方法:(1)將尋址方式編于操作碼中,由操作碼在描述 指令的同時(shí)也描述了相應(yīng)的尋址方式。這種方式譯碼快,但操作碼和尋址方式的結(jié)合不僅增 加了指令的條數(shù),導(dǎo)致了指令的多樣性,而且增加了 CPU對(duì)指令譯碼的難度。(2)為每個(gè)操 作數(shù)設(shè)置一個(gè)地址描述符,由該地址描述符表示相應(yīng)操作數(shù)的尋址方式。這種方式譯碼較慢, 但操作碼和尋址獨(dú)立,易于指令擴(kuò)展。2.10 通常有哪幾種指令格式,請(qǐng)簡(jiǎn)述其適用范圍。答:(1)變長(zhǎng)編碼格式。如果系統(tǒng)結(jié)構(gòu)設(shè)計(jì)者感興趣的是程序的目標(biāo)代碼大小,而不 是性能

22、,就可以采用變長(zhǎng)編碼格式。(2)固定長(zhǎng)度編碼格式。如果感興趣的是性能,而不是 程序的目標(biāo)代碼大小,則可以選擇固定長(zhǎng)度編碼格式。(3)混合型編碼格式。需要兼顧降 低目標(biāo)代碼長(zhǎng)度和降低譯碼復(fù)雜度時(shí),可以采用混合型編碼格式。2.11 根據(jù)CPU性能公式簡(jiǎn)述RISC指令集結(jié)構(gòu)計(jì)算機(jī)和CISC指令集結(jié)構(gòu)計(jì)算機(jī)的性 能特點(diǎn)。答:CPU性能公式:CPU時(shí)間= ICXCPIXT其中,IC為目標(biāo)程序被執(zhí)行的指令條數(shù),CPI為指令平均執(zhí)行周期數(shù),T是時(shí)鐘周期的 時(shí)間。相同功能的CISC目標(biāo)程序的指令條數(shù)ICcisc少于RISC的ICrisc,但是CISC的CPIcisc 和Tcisc都大于RISC的CPIrisc

23、和Trisc,因此,CISC目標(biāo)程序的執(zhí)行時(shí)間比RISC的更長(zhǎng)。第3章流水線技術(shù)3.1 解釋下列術(shù)語(yǔ)流水線:將一個(gè)重復(fù)的時(shí)序過(guò)程,分解成為若干個(gè)子過(guò)程,而每一個(gè)子過(guò)程都可有效地在其 專(zhuān)用功能段上與其它子過(guò)程同時(shí)執(zhí)行。單功能流水線:指流水線的各段之間的連接固定不變、只能完成一種固定功能的流水線。多功能流水線:指各段可以進(jìn)行不同的連接,以實(shí)現(xiàn)不同的功能的流水線。靜態(tài)流水線:指在同一時(shí)間內(nèi),多功能流水線中的各段只能按同一種功能的連接方式工作的 流水線。當(dāng)流水線要切換到另一種功能時(shí),必須等前面的任務(wù)都流出流水線之后,才能改變 連接。動(dòng)態(tài)流水線:指在同一時(shí)間內(nèi),多功能流水線中的各段可以按照不同的方式連接

24、,同時(shí)執(zhí)行 多種功能的流水線。它允許在某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻在實(shí)現(xiàn)另一種運(yùn)算。部件級(jí)流水線:把處理機(jī)中的部件進(jìn)行分段,再把這些部件分段相互連接而成。它使得運(yùn)算 操作能夠按流水方式進(jìn)行。這種流水線也稱(chēng)為運(yùn)算操作流水線。處理機(jī)級(jí)流水線:又稱(chēng)指令流水線。它是把指令的執(zhí)行過(guò)程按照流水方式進(jìn)行處理,即把一 條指令的執(zhí)行過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程在獨(dú)立的功能部件中執(zhí)行。處理機(jī)間流水線:又稱(chēng)為宏流水線。它是把多個(gè)處理機(jī)串行連接起來(lái),對(duì)同一數(shù)據(jù)流進(jìn)行處 理,每個(gè)處理機(jī)完成整個(gè)任務(wù)中的一部分。前一個(gè)處理機(jī)的輸出結(jié)果存入存儲(chǔ)器中,作為后 一個(gè)處理機(jī)的輸入。線性流水線:指各段串行連接、沒(méi)有反饋

25、回路的流水線。數(shù)據(jù)通過(guò)流水線中的各段時(shí),每一 個(gè)段最多只流過(guò)一次。非線性流水線:指各段除了有串行的連接外,還有反饋回路的流水線。順序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序完全相同。亂序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序可以不同,允許后進(jìn)入 流水線的任務(wù)先完成。這種流水線又稱(chēng)為無(wú)序流水線、錯(cuò)序流水線、異步流水線。吞吐率:在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。流水線的加速比:使用順序處理方式處理一批任務(wù)所用的時(shí)間與按流水處理方式處理同一批 任務(wù)所用的時(shí)間之比。流水線的效率:即流水線設(shè)備的利用率,它是指流水線中的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí) 間的

26、比值。數(shù)據(jù)相關(guān):考慮兩條指令,和j, i在/的前面,如果下述條件之一成立,則稱(chēng)指令j與指令 i數(shù)據(jù)相關(guān):(1)指令,使用指令i產(chǎn)生的結(jié)果;(2)指令j與指令人數(shù)據(jù)相關(guān),而指令k又與指令,數(shù)據(jù)相關(guān)。名相關(guān):如果兩條指令使用了相同的名,但是它們之間并沒(méi)有數(shù)據(jù)流動(dòng),則稱(chēng)這兩條指令存在名相關(guān)。控制相關(guān):是指由分支指令引起的相關(guān)。它需要根據(jù)分支指令的執(zhí)行結(jié)果來(lái)確定后面該執(zhí)行 哪個(gè)分支上的指令。反相關(guān):考慮兩條指令,和J, i在j的前而,如果指令,所寫(xiě)的名與指令,所讀的名相同, 則稱(chēng)指令,和,發(fā)生了反相關(guān)。輸出相關(guān):考慮兩條指令,和/,,'在/的前面,如果指令,和指令i所寫(xiě)的名相同,則稱(chēng)指 令”叮

27、發(fā)生了輸出相關(guān)。換名技術(shù):名相關(guān)的兩條指令之間并沒(méi)有數(shù)據(jù)的傳送,只是使用了相同的名。可以把其中一 條指令所使用的名換成別的,以此來(lái)消除名相關(guān)。結(jié)構(gòu)沖突:因硬件資源滿足不了指令重會(huì)執(zhí)行的要求而發(fā)生的沖突。數(shù)據(jù)沖突:當(dāng)指令在流水線中重疊執(zhí)行時(shí),因需要用到前而指令的執(zhí)行結(jié)果而發(fā)生的沖突??刂茮_突:流水線遇到分支指令或其它會(huì)改變PC值的指令所引起的沖突。定向:用來(lái)解決寫(xiě)后讀沖突的。在發(fā)生寫(xiě)后讀相關(guān)的情況下,在計(jì)算結(jié)果尚未出來(lái)之前,后 而等待使用該結(jié)果的指令并不見(jiàn)得是馬上就要用該結(jié)果。如果能夠?qū)⒃撚?jì)算結(jié)果從K產(chǎn)生的 地方直接送到其它指令需要它的地方,那么就可以避免停頓。寫(xiě)后讀沖突:考慮兩條指令i和j,且

28、i在j之前進(jìn)入流水線,指令j用到指令i的計(jì)算結(jié)果, 而且在i將結(jié)果寫(xiě)入寄存器之前就去讀該寄存器,因而得到的是舊值。讀后寫(xiě)沖突:考慮兩條指令i和j,且i在j之前進(jìn)入流水線,指令j的目的寄存器和指令i 的源操作數(shù)寄存器相同,而且j在i讀取該寄存器之前就先對(duì)它進(jìn)行了寫(xiě)操作,導(dǎo)致i讀到 的值是錯(cuò)誤的。寫(xiě)后寫(xiě)沖突:考慮兩條指令i和j,且i在j之前進(jìn)入流水線,指令j和指令i的結(jié)果單元(寄 存器或存儲(chǔ)器單元)相同,而且j在i寫(xiě)入之前就先對(duì)該單元進(jìn)行了寫(xiě)入操作,從而導(dǎo)致寫(xiě) 入順序錯(cuò)誤。這時(shí)在結(jié)果單元中留下的是i寫(xiě)入的值,而不是j寫(xiě)入的。鏈接技術(shù):具有先寫(xiě)后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和Vi沖突的情況

29、下,可 以把功能部件鏈接起來(lái)進(jìn)行流水處理,以達(dá)到加快執(zhí)行的目的。分段開(kāi)采:當(dāng)向量的長(zhǎng)度大于向量寄存器的長(zhǎng)度時(shí),必須把長(zhǎng)向量分成長(zhǎng)度固定的段,然后 循環(huán)分段處理,每一次循環(huán)只處理一個(gè)向量段。半性能向量長(zhǎng)度:向量處理機(jī)的性能為其最大性能Rg的一半時(shí)所需的向量長(zhǎng)度。向量長(zhǎng)度臨界值:向量流水方式的處理速度優(yōu)于標(biāo)量串行方式的處理速度時(shí)所需的向量長(zhǎng)度 的最小值。3.2 指令的執(zhí)行可采用順序執(zhí)行、重疊執(zhí)行和流水線三種方式,它們的主要區(qū)別是什 么?各有何優(yōu)缺點(diǎn)。答:(1)指令的順序執(zhí)行是指指令與指令之間順序串行。即上一條指令全部執(zhí)行完后, 才能開(kāi)始執(zhí)行下一條指令。優(yōu)點(diǎn):控制簡(jiǎn)單,節(jié)省設(shè)備。缺點(diǎn):執(zhí)行指令的速度

30、慢,功能部件的利用率低。(2)指令的重登指令是在相鄰的指令之間,讓第k條指令與取第k+I條指令同時(shí)進(jìn)行。 重登執(zhí)行不能加快單條指令的執(zhí)行速度,但在硬件增加不多的情況下,可以加快相鄰兩條指 令以及整段程序的執(zhí)行速度。與順序方式相比,功能部件的利用率提高了,控制變復(fù)雜了。(3)指令的流水執(zhí)行是把一個(gè)指令的執(zhí)行過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程由專(zhuān) 門(mén)的功能部件來(lái)實(shí)現(xiàn)。把多個(gè)處理過(guò)程在時(shí)間上錯(cuò)開(kāi),依次通過(guò)各功能段,每個(gè)子過(guò)程與其 它的子過(guò)程并行進(jìn)行。依靠提高吞吐率來(lái)提高系統(tǒng)性能。流水線中各段的時(shí)間應(yīng)盡可能相等3.3 簡(jiǎn)述先行控制的基本思想。答:先行控制技術(shù)是把緩沖技術(shù)和預(yù)處理技術(shù)相結(jié)合。緩沖技術(shù)是在

31、工作速度不固定的 兩個(gè)功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù)是指預(yù)取指令、對(duì)指令進(jìn) 行加工以及預(yù)取操作數(shù)等。采用先行控制方式的處理機(jī)內(nèi)部設(shè)置多個(gè)緩沖站,用于平滑主存、指令分析部件、運(yùn)算 器三者之間的工作。這樣不僅使它們都能獨(dú)立地工作,充分忙碌而不用相互等待,而且使指 令分析部件和運(yùn)算器分別能快速地取得指令和操作數(shù),大幅度地提高指令的執(zhí)行速度和部件 的效率。這些緩沖站都按先進(jìn)先出的方式工作,而且都是由一組若干個(gè)能快速訪問(wèn)的存儲(chǔ)單 元和相關(guān)的控制邏輯組成。采用先行控制技術(shù)可以實(shí)現(xiàn)多條指令的重疊解釋執(zhí)行。3.4 設(shè)一條指令的執(zhí)行過(guò)程分成取指令、分析指令和執(zhí)行指令三個(gè)階段,每個(gè)階段所需

32、 的時(shí)間分別為At、At 2At 0分別求出下列各種情況下,連續(xù)執(zhí)行N條指令所需的時(shí)間。(1)順序執(zhí)行方式;(2)只有“取指令”與“執(zhí)行指令”重疊;(3) “取指令”、“分析指令”與“執(zhí)行指令”重疊。解:(1)每條指令的執(zhí)行時(shí)間為:t+t+2At=4ZXt連續(xù)執(zhí)行N條指令所需的時(shí)間為:4NAt(2)連續(xù)執(zhí)行N條指令所需的時(shí)間為:4At+3 (N-D At= (3N+1) At(3)連續(xù)執(zhí)行N條指令所需的時(shí)間為:4At+2 (N-D At= (2N+2) At3.5 簡(jiǎn)述流水線技術(shù)的特點(diǎn)。答:流水技術(shù)有以下特點(diǎn):(1)流水線把一個(gè)處理過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程由一個(gè)專(zhuān)門(mén)的功能部件 來(lái)實(shí)現(xiàn)

33、。因此,流水線實(shí)際上是把一個(gè)大的處理功能部件分解為多個(gè)獨(dú)立的功能部件,并依 靠它們的并行工作來(lái)提高吞吐率。(2)流水線中各段的時(shí)間應(yīng)盡可能相等,否則將引起流水線堵塞和斷流。<3)流水線每一個(gè)功能部件的前面都要有一個(gè)緩沖寄存器,稱(chēng)為流水寄存器。(4)流水技術(shù)適合于大量重復(fù)的時(shí)序過(guò)程,只有在輸入端不斷地提供任務(wù),才能充分 發(fā)揮流水線的效率。(5)流水線需要有通過(guò)時(shí)間和排空時(shí)間。在這兩個(gè)時(shí)間段中,流水線都不是滿負(fù)荷工 作。3.6 解決流水線瓶頸問(wèn)題有哪兩種常用方法?答:細(xì)分瓶頸段與重復(fù)設(shè)置瓶頸段3.7 減少流水線分支延遲的靜態(tài)方法有哪些?答:(1)預(yù)測(cè)分支失?。貉厥〉姆种Ю^續(xù)處理指令,就好象

34、什么都沒(méi)發(fā)生似的。當(dāng)確 定分支是失敗時(shí),說(shuō)明預(yù)測(cè)正確,流水線正常流動(dòng);當(dāng)確定分支是成功時(shí),流水線就把在分 支指令之后取出的指令轉(zhuǎn)化為空操作,并按分支目標(biāo)地址重新取指令執(zhí)行。(2)預(yù)測(cè)分支成功:當(dāng)流水線ID段檢測(cè)到分支指令后,一旦計(jì)算出了分支目標(biāo)地址, 就開(kāi)始從該目標(biāo)地址取指令執(zhí)行。(3)延遲分支:主要思想是從邏輯上“延長(zhǎng)”分支指令的執(zhí)行時(shí)間。把延遲分支看成 是由原來(lái)的分支指令和若干個(gè)延遲槽構(gòu)成。不管分支是否成功,都要按順序執(zhí)行延遲槽中的 指令。3種方法的共同特點(diǎn):它們對(duì)分支的處理方法在程序的執(zhí)行過(guò)程中始終是不變的。它們 要么總是預(yù)測(cè)分支成功,要么總是預(yù)測(cè)分支失敗。3.8簡(jiǎn)述延遲分支方法中的三種

35、調(diào)度策略的優(yōu)缺點(diǎn)。調(diào)度策略對(duì)調(diào)度的要求對(duì)流水線性能改善的影響從前調(diào)度分支必須不依賴(lài)于被調(diào)度的指令總是可以有效提高流水線性能從目標(biāo)處調(diào)度如果分支轉(zhuǎn)移失敗,必須保證被調(diào)度的指令對(duì)程 序的執(zhí)行沒(méi)有影響,可能需要夏制被調(diào)度指令分支轉(zhuǎn)移成功時(shí),可以提高流水線性能。但由于豆制指令,可能加大程序空間從失敗處調(diào)度如果分支轉(zhuǎn)移成功,必須保證被調(diào)度的指令對(duì)程 序的執(zhí)行沒(méi)有影響分支轉(zhuǎn)移失敗時(shí),可以提高流水線性能3.9 列舉出下面循環(huán)中的所有相關(guān),包括輸出相關(guān)、反相關(guān)、真相關(guān)。 for (i=2; i<100: i=i+l)ai=bi+ai;/* si */ci+l=ai+di; /* s2 */ai-l=2*

36、bi; /* s3 */bi+l=2*bi;/* s4 */解:展開(kāi)循環(huán)兩次:ai = bi + ai;/*sl */ci+l = ai + di; / s2 */ai-l = 2*bi; /* s3 */bi+l = 2*bi; /* s4 */ai+l = bi+l + ai+l ;/*sr*/ ci+2 = ai+l + di+l ;/* s2 '*/ ai = 2*bi+l;/* s3 c*/bi+2 = 2*bi+l;/* s4 c*/輸出相關(guān):無(wú)反相關(guān):無(wú)真相關(guān):S1&S2由于循環(huán)引入的相關(guān):S4&S4'(真相關(guān))、sr &S4 (真相關(guān))、

37、S3' &S4 (真相關(guān))、 S1&S3'(輸出相關(guān)、反相關(guān))、S2&S3'(反相關(guān))。3.10 簡(jiǎn)述三種向量處理方式,它們對(duì)向量處理機(jī)的結(jié)構(gòu)要求有何不同?答(1)橫向處理方式:若向量長(zhǎng)度為N,則水平處理方式相當(dāng)于執(zhí)行N次循環(huán)。若使 用流水線,在每次循環(huán)中可能出現(xiàn)數(shù)據(jù)相關(guān)和功能轉(zhuǎn)換,不適合對(duì)向量進(jìn)行流水處理。(2) 縱向處理方式:將整個(gè)向量按相同的運(yùn)算處理完畢之后,再去執(zhí)行其他運(yùn)算。適合對(duì)向量進(jìn) 行流水處理,向量運(yùn)算指令的源/目向量都放在存儲(chǔ)器內(nèi),使得流水線運(yùn)算部件的輸入、輸 出端直接與存儲(chǔ)器相聯(lián),構(gòu)成M-M型的運(yùn)算流水線。(3)縱橫處理方式:把

38、長(zhǎng)度為N的向量 分為若干組,每組長(zhǎng)度為n,組內(nèi)按縱向方式處理,依次處理各組,組數(shù)為FN/nJ,適合流 水處理??稍O(shè)長(zhǎng)度為n的向量寄存器,使每組向量運(yùn)算的源/目向量都在向量寄存器中,流 水線的運(yùn)算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成R-R型運(yùn)算流水線。3.11 可采用哪些方法來(lái)提高向量處理機(jī)的性能? 答:可采用多種方法:(1)設(shè)置多個(gè)功能部件,使它們并行工作:(2)采用鏈接技術(shù),加快一串向量指令的執(zhí)行;(3)采用循環(huán)開(kāi)采技術(shù),加快循環(huán)的處理:(4)采用多處理機(jī)系統(tǒng),進(jìn)一步提高性能。3.12 有一指令流水線如下所示入 T1 I 2 I 3出50ns 50ns 100ns200ns(1)求連續(xù)輸入

39、10條指令,該流水線的實(shí)際吞吐率和效率:(2)該流水線的“瓶頸”在哪一段?請(qǐng)采取兩種不同的措施消除此“瓶頸:對(duì)于你所給出的兩種新的流水線,連續(xù)輸入10條指令時(shí),其實(shí)際吞葉率和效率各是多少? 解:mTpipelinc =):ZXti + (fl l)Atmax i-1= (50 + 50+100+ 200) + 9 x 200=2200(ns)TP = %p"c = %20(2)m工純400 545.45%E = TP = TP-= «m411(2)瓶頸在3、4段。 變成八級(jí)流水線(細(xì)分)Tpipclinc =): Ati +(II - 1 )Atmax i-1=50x8 +

40、 9 x50=850(ns)TP = %i%5(2)>AtiJ400 ioE = TP- = TP-= 58.82%m817 重復(fù)設(shè)置部件3.13有一個(gè)流水線由4段組成,其中每當(dāng)流經(jīng)第3段時(shí),總要在該段循環(huán)一次,然后才 能流到第4段。如果每段經(jīng)過(guò)一次所需要的時(shí)間都是/,問(wèn):(1)當(dāng)在流水線的輸入端連續(xù)地每&時(shí)間輸入任務(wù)時(shí),該流水線會(huì)發(fā)生什么情況?(2)此流水線的最大吞吐率為多少?如果每2A/輸入一個(gè)任務(wù),連續(xù)處理10個(gè)任務(wù) 時(shí)的實(shí)際存吐率和效率是多少?(3)當(dāng)每段時(shí)間不變時(shí),如何提高該流水線的吞吐率?仍連續(xù)處理10個(gè)任務(wù)時(shí),其 存吐率提高多少?解:(1)會(huì)發(fā)生流水線阻塞情況。第1

41、個(gè)任務(wù)S1S2S3S3S4第2個(gè)任務(wù)S1S2stallS3S3S4第3個(gè)任務(wù)S1stallS2stallS3S3S4第4個(gè)任務(wù)SIstallS2stallS3S3S4(2)(3)重復(fù)設(shè)置部件 iA3二仁tAt > 3_2 AtAtTPlinepipeline = 232TP = %z=%3 加E = TP. 5% = 5%2 « 54.35%吞吐率提高倍數(shù)=答=1.64 %3a3.14 有一條靜態(tài)多功能流水線由5段組成,加法用1、3、4、5段,乘法用1、2、5段, 第3段的時(shí)間為2Zkt,其余各段的時(shí)間均為t,而且流水線的輸出可以直接返回輸入端或 暫存于相應(yīng)的流水寄存器中?,F(xiàn)要

42、在該流水線上計(jì)算/1(A,+用),畫(huà)出其時(shí)空?qǐng)D,并計(jì) 算其吞吐率、加速比和效率。2乘法解:首先,應(yīng)選擇適合于流水線工作的算法。對(duì)于本題,應(yīng)先計(jì)算Ai+Bh A2 + B2、A3 + B3 和 A4+B4:再計(jì)算(Ai+B|) XS2+B2)和(A3+B3) X(A4+B4);然后求總的結(jié)果。其次,畫(huà)出完成該計(jì)算的時(shí)空?qǐng)D,如圖所示,圖中陰影部分表示該段在工作。AXB CXD出AXBXCXDA=A + B B=A?+B2 c=a3+b3 D=Ai+BiAi A2 A、A4B B? B3 B4A CAXBBDCXD時(shí)間由圖可見(jiàn),它在18個(gè),時(shí)間中,給出了 7個(gè)結(jié)果:所以吞吐率為:7TP =18Az如

43、果不用流水線,由于一次求積需3a b 一次求和需5a t,則產(chǎn)生上述7個(gè)結(jié)果共需 (4x5+3x3) t =29a tQ所以加速比為:S = i = 1.6118 Az該流水線的效率可由陰影區(qū)的而枳和5個(gè)段總時(shí)空區(qū)的面枳的比值求得:4x5+3x35x18= 0.3223.15 動(dòng)態(tài)多功能流水線由6個(gè)功能段組成,如下圖:加法其中,SI、S4、S5、S6組成乘法流水線,SI、S2、S3、S6組成加法流水線,各個(gè)功能 段時(shí)間均為50ns,假設(shè)該流水線的輸出結(jié)果可以直接返回輸入端,而且設(shè)置有足夠的緩沖寄存器,若以最快的方式用該流水計(jì)算:fxjjZi i-l(1)畫(huà)出時(shí)空?qǐng)D;(2)計(jì)算實(shí)際的吞吐率、加速

44、比和效率。解:機(jī)器一共要做10次乘法,4次加法。加速比二眼小季3.16 在MIPS流水線上運(yùn)行如下代碼序列:LOOP:LWRI, 0 (R2)DADDIURI, RI, #1SWRI, 0 (R2)DADDIUR2, R2, #4DSUBR4, R3, R2BNEZR4, LOOP其中:R3的初值是R2+396。假設(shè):在整個(gè)代碼序列的運(yùn)行過(guò)程中,所有的存儲(chǔ)器訪 問(wèn)都是命中的,并且在一個(gè)時(shí)鐘周期中對(duì)同一個(gè)寄存器的讀操作和寫(xiě)操作可以通過(guò)寄存器文 件”定向二問(wèn):(1)在沒(méi)有任何其它定向(或旁路)硬件的支持下,請(qǐng)畫(huà)出該指令序列執(zhí)行的流水線 時(shí)空?qǐng)D。假設(shè)采用排空流水線的策略處理分支指令,且所有的存儲(chǔ)器訪

45、問(wèn)都命中 Cache,那么執(zhí)行上述循環(huán)需要多少個(gè)時(shí)鐘周期?(2)假設(shè)該流水線有正常的定向路徑,請(qǐng)畫(huà)出該指令序列執(zhí)行的流水線時(shí)空?qǐng)D。假設(shè) 采用預(yù)測(cè)分支失敗的策略處理分支指令,且所有的存儲(chǔ)器訪問(wèn)都命中Cache,那 么執(zhí)行上述循環(huán)需要多少個(gè)時(shí)鐘周期?(3)假設(shè)該流水線有正常的定向路徑和一個(gè)單周期延遲分支,請(qǐng)對(duì)該循環(huán)中的指令進(jìn)行調(diào)度,你可以重新組織指令的順序,也可以修改指令的操作數(shù),但是注意不能 增加指令的條數(shù)。請(qǐng)畫(huà)出該指令序列執(zhí)行的流水線時(shí)空?qǐng)D,并計(jì)算執(zhí)行上述循環(huán) 所需要的時(shí)鐘周期數(shù)。解:寄存器讀寫(xiě)可以定向,無(wú)其他旁路硬件支持。排空流水線。指令123456789101112131415161718

46、19202122LWIFIDEXMWBDADDIUIFSSIDEXMWBSWIF SSIDEXMWBDADDIUIF ID EX MWBDSUBIFSSIDEXMWBBNEZIFSSIDEX M WBLWIF SS IFIDEXMWB第i次迭代(i=0.98)開(kāi)始周期:1+ (iX17) 總的時(shí)鐘周期數(shù):(98X17) +18=1684 有正常定向路徑,預(yù)測(cè)分支失敗。指令12345678910111131415LWIFIDEXMWBDADDIUIFIDSEXMWBSWIFSIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBLWIFmissmissI

47、FIDEXMWB第i次迭代(i=0.98)開(kāi)始周期:1+ (iXIO)LOOP: LWRL 0(R2)DADDIUR2, R2, #4DADDIURI, RI, #1DSUBR4, R3, R2BNEZR4, LOOPSWRI, -4(R2)第i次迭代(i總的時(shí)鐘周期數(shù):(周義數(shù))+11=991 有正常定向路徑。單周期延遲分支。指令1234567891011LWIFIDEXMWBDADDIUIFIDEXMWBDADDIUIFIDEXMWBDSUBIFIDEXMWBBNEZIFIDEXMWBSWIFIDEXMWBLWIFIDEXMWB=0.98)開(kāi)始周期:1+ (i X6 )總的時(shí)鐘周期數(shù):(9

48、8X6) +10=5983.17假設(shè)各種分支指令數(shù)占所有指令數(shù)的百分比如下:條件分支20% (其中的60%是分支成功的)跳轉(zhuǎn)和調(diào)用5%現(xiàn)有一條段數(shù)為4的流水線,無(wú)條件分支在第二個(gè)時(shí)鐘周期結(jié)束:時(shí)就被解析出來(lái),而條 件分支要到第三個(gè)時(shí)鐘周期結(jié)束時(shí)才能夠被解析出來(lái)。第一個(gè)流水段是完全獨(dú)立于指令類(lèi)型 的,即所有類(lèi)型的指令都必須經(jīng)過(guò)第一個(gè)流水段的處理C請(qǐng)問(wèn)在沒(méi)有任何控制相關(guān)的情況下, 該流水線相對(duì)于存在上述控制相關(guān)情況下的加速比是多少?解:沒(méi)有控制相關(guān)時(shí)流水線的平均CPI=1存在控制相關(guān)時(shí):由于無(wú)條件分支在第二個(gè)時(shí)鐘周期結(jié)束時(shí)就被解析出來(lái),而條件分支 要到第3個(gè)時(shí)鐘周期結(jié)束時(shí)才能被解析出來(lái)。所以:(1

49、)若使用排空流水線的策略,則對(duì)于條件分支,有兩個(gè)額外的stall,對(duì)無(wú)條件分支, 有一個(gè)額外的stall:CPI= 1+20%*2+5%*1 = 1.45加速比 S=CPI/1 = 1.45(2)若使用預(yù)測(cè)分支成功策略,則對(duì)于不成功的條件分支,有兩個(gè)額外的stall,對(duì)無(wú) 條件分支和成功的條件分支,有一個(gè)額外的stall 1:CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33加速比 S=CPI/1 = 1.33(3)若使用預(yù)測(cè)分支失敗策略,則對(duì)于成功的條件分支,有兩個(gè)額外的stall;對(duì)無(wú)條 件分支,有一個(gè)額外的stall:對(duì)不成功的條件分支,其目標(biāo)地址已經(jīng)由PC值給

50、出,不必等 待,所以無(wú)延遲:CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29加速比 S=CPI/1 = 1.29V。一存儲(chǔ)器V2Vo+V V3V2VA3 v5<-v3av43.18 在CRAY-1機(jī)器上,按照鏈接方式執(zhí)行下述4條向量指令(括號(hào)中給出了相應(yīng)功 能部件的執(zhí)行時(shí)間),如果向量寄存器和功能部件之間的數(shù)據(jù)傳送需要1拍,試求此鏈接流 水線的通過(guò)時(shí)間是多少拍?如果向量長(zhǎng)度為64,則需多少拍才能得到全部結(jié)果?(從存儲(chǔ)器中取數(shù):7拍)(向量加:3拍)(按(A3)左移:4拍)(向量邏輯乘:2拍)解:通過(guò)時(shí)間就是每條向量指令的第一個(gè)操作數(shù)執(zhí)行完畢需要的時(shí)間,也就

51、是各功能流 水線由空到滿的時(shí)間,具體過(guò)程如下圖所示。要得到全部結(jié)果,在流水線充滿之后,向 量中后繼操作數(shù)繼續(xù)以流水方式執(zhí)行,直到整組向量執(zhí)行完畢。ezoT 通過(guò)=(7+1) + (1+3+1) + (1+4+1) + (1+2+1) =23(拍) 工也共=1通過(guò)+ (64-1) =23+63=86(拍)3.19 某向量處理機(jī)有16個(gè)向量寄存器,其中V0V5中分別放有向量A、B、C、D、E、 F,向量長(zhǎng)度均為8,向量各元素均為浮點(diǎn)數(shù):處理部件采用兩條單功能流水線,加法功能 部件時(shí)間為2拍,乘法功能部件時(shí)間為3拍。采用類(lèi)似于CARY-1的鏈接技術(shù),先計(jì)算(A+B ) *C,在流水線不停流的情況下,

52、接著計(jì)算(D+E) *F,(1)求此鏈接流水線的通過(guò)時(shí)間?(設(shè)寄存器入、出各需1拍)(2)假如每拍時(shí)間為50ns,完成這些計(jì)算并把結(jié)果存進(jìn)相應(yīng)寄存器,此處理部件的實(shí) 際吞吐率為多少M(fèi)FLOPS?解:(1)我們?cè)谶@里假設(shè)A + B的中間結(jié)果放在V6中,(A + B) XC地最后結(jié)果放在 V7中,D+E地中間結(jié)果放在V8中,(D+E) XF的最后結(jié)果放在V9中。具體實(shí)現(xiàn)參 考下圖:通過(guò)時(shí)間應(yīng)該為前者(A+B) XC)通過(guò)的時(shí)間:T 通過(guò)=(1+2+1)+(1+3+1)=9 (拍)(2)在做完(A+B) XC之后,作(C+D) XE就不需要通過(guò)時(shí)間了。V6-A + BV7V6XCV8-D+EV9V8

53、 X F丁 = 1通過(guò)+ (8-1) + 8 = 24( ) = 1200(ns)32TP = = 26.67MFLOPS T第4章指令級(jí)并行4.1 解釋下列術(shù)語(yǔ)指令級(jí)并行:簡(jiǎn)稱(chēng)ILP.是指指令之間存在的一種并行性,利用它,計(jì)算機(jī)可以并行執(zhí)行兩 條或兩條以上的指令。指令調(diào)度:通過(guò)在編譯時(shí)讓編譯器重新組織指令順序或通過(guò)硬件在執(zhí)行時(shí)調(diào)整指令順序來(lái)消 除沖突。指令的動(dòng)態(tài)調(diào)度:是指在保持?jǐn)?shù)據(jù)流和異常行為的情況下,通過(guò)硬件對(duì)指令執(zhí)行順序進(jìn)行重 新安排,以提高流水線的利用率且減少停頓現(xiàn)象。是由硬件在程序?qū)嶋H運(yùn)行時(shí)實(shí)施的。指令的靜態(tài)調(diào)度:是指依靠編譯器對(duì)代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不是在程序 執(zhí)行的過(guò)程中、而是在編譯期間進(jìn)行代碼調(diào)度和優(yōu)化的。保留站:在采用Tomasulo算法的MIPS處理器浮點(diǎn)部件中,在運(yùn)算部件的入口設(shè)置的用來(lái) 保存一條已經(jīng)流出并等待到本功能部件執(zhí)行的指令(相關(guān)信息)。CDB:公共數(shù)據(jù)總線。動(dòng)態(tài)分支預(yù)測(cè)技術(shù):是用硬件動(dòng)態(tài)地進(jìn)行分支處理的方法。在程序運(yùn)行時(shí),根據(jù)分支指令過(guò) 去的表現(xiàn)來(lái)預(yù)測(cè)其將來(lái)的行為。如果分支行為發(fā)生了變化,預(yù)測(cè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論