《計算機體系結(jié)構(gòu)(張晨曦)》課后習題答案_第1頁
《計算機體系結(jié)構(gòu)(張晨曦)》課后習題答案_第2頁
《計算機體系結(jié)構(gòu)(張晨曦)》課后習題答案_第3頁
《計算機體系結(jié)構(gòu)(張晨曦)》課后習題答案_第4頁
《計算機體系結(jié)構(gòu)(張晨曦)》課后習題答案_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第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í)行低一級機器上的一段等效程序。執(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)中某部分進行改進時,改進后系統(tǒng)性能提高的倍數(shù)。Amdahl定律:當對一個系統(tǒng)中的某個部件進行改進后,所能獲得的整個系統(tǒng)性能的提高,受限于該部件的執(zhí)行時間占總執(zhí)行時間的百分比。程序的局部性原理:程序執(zhí)行時所訪問的存儲器地址不是隨機分布的,而是相對地簇聚。包括時間局部性和空間局部性。CPI:每條指令執(zhí)行的平均時鐘周期數(shù)。測試程序套件:由各種不同的真實應(yīng)用程序構(gòu)成的一組測試程序,用來測試計算機在各個方面的處理性能。存儲程序計算機:馮·諾依曼結(jié)構(gòu)計算機。其基本點是指令驅(qū)動。程序預(yù)先存放在計算機存儲器中,機器一旦啟動,就能按照程序指定的邏輯順序執(zhí)行這些程序,自動完成由程序所描述的處理工作。系列機:由同一廠家生產(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)。仿真:用一臺現(xiàn)有計算機(稱為宿主機)上的微程序去解釋實現(xiàn)另一臺計算機(稱為目標機)的指令系統(tǒng)。并行性:計算機系統(tǒng)在同一時刻或者同一時間間隔內(nèi)進行多種運算或操作。只要在時間上相互重疊,就存在并行性。它包括同時性與并發(fā)性兩種含義。時間重疊:在并行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設(shè)備的各個部分,以加快硬件周轉(zhuǎn)而贏得速度。資源重復(fù):在并行性概念中引入空間因素,以數(shù)量取勝。通過重復(fù)設(shè)置硬件資源,大幅度地提高計算機系統(tǒng)的性能。資源共享:這是一種軟件方法,它使多個任務(wù)按一定時間順序輪流使用同一套硬件設(shè)備。耦合度:反映多機系統(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):由多個同類型或至少擔負同等功能的處理機組成,它們同時處理同一作業(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ù)流的多倍性進行分類。把計算機系統(tǒng)的結(jié)構(gòu)分為:單指令流單數(shù)據(jù)流SISD單指令流多數(shù)據(jù)流SIMD多指令流單數(shù)據(jù)流MISD多指令流多數(shù)據(jù)流MIMD1.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í)行時所訪問地址的分布不是隨機的,而是相對地簇聚。1.5分別從執(zhí)行程序的角度和處理數(shù)據(jù)的角度來看,計算機系統(tǒng)中并行性等級從低到高可分為哪幾級?答:從處理數(shù)據(jù)的角度來看,并行性等級從低到高可分為:(1)字串位串:每次只對一個字的一位進行處理。這是最基本的串行處理方式,不存在并行性;(2)字串位并:同時對一個字的全部位進行處理,不同字之間是串行的。已開始出現(xiàn)并行性;(3)字并位串:同時對許多字的同一位(稱為位片)進行處理。這種方式具有較高的并行性;(4)全并行:同時對許多字的全部位或部分位進行處理。這是最高一級的并行。從執(zhí)行程序的角度來看,并行性等級從低到高可分為:(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ù)450001數(shù)據(jù)傳送750002浮點80004分支15002求該計算機的有效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(3)程序執(zhí)行時間=(45000×1+75000×2+8000×4+1500×2)/400=575s1.7將計算機系統(tǒng)中某一功能的處理速度加快10倍,但該功能的處理時間僅為整個系統(tǒng)運行時間的40%,則采用此增強功能方法后,能使整個系統(tǒng)的性能提高多少?解由題可知:可改進比例=40%=0.4部件加速比=10根據(jù)Amdahl定律可知:采用此增強功能方法后,能使整個系統(tǒng)的性能提高到原來的1.5625倍。1.8計算機系統(tǒng)中有三個部件可以改進,這三個部件的部件加速比為:部件加速比1=30;部件加速比2=20;部件加速比3=10如果部件1和部件2的可改進比例均為30%,那么當部件3的可改進比例為多少時,系統(tǒng)加速比才可以達到10?如果三個部件的可改進比例分別為30%、30%和20%,三個部件同時改進,那么系統(tǒng)中不可加速部分的執(zhí)行時間在總執(zhí)行時間中占的比例是多少?解:(1)在多個部件可改進情況下,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í)行時間中占的比例是:1.9假設(shè)某應(yīng)用程序中有4類操作,通過改進,各操作獲得不同的性能提高。具體數(shù)據(jù)如下表所示:操作類型程序中的數(shù)量(百萬條指令)改進前的執(zhí)行時間(周期)改進后的執(zhí)行時間(周期)操作11021操作2302015操作335103操作41541(1)改進后,各類操作的加速比分別是多少?(2)各類操作單獨改進后,程序獲得的加速比分別是多少?(3)4類操作均改進后,整個程序的加速比是多少?解:根據(jù)Amdahl定律可得操作類型各類操作的指令條數(shù)在程序中所占的比例Fi各類操作的加速比Si各類操作單獨改進后,程序獲得的加速比操作111.1%21.06操作233.3%1.331.09操作338.9%3.331.37操作416.7%41.144類操作均改進后,整個程序的加速比:第2章指令集結(jié)構(gòu)的分類解釋下列術(shù)語堆棧型機器:CPU中存儲操作數(shù)的單元是堆棧的機器。累加器型機器:CPU中存儲操作數(shù)的單元是累加器的機器。通用寄存器型機器:CPU中存儲操作數(shù)的單元是通用寄存器的機器。CISC:復(fù)雜指令集計算機RISC:精簡指令集計算機尋址方式:指令系統(tǒng)中如何形成所要訪問的數(shù)據(jù)的地址。一般來說,尋址方式可以指明指令中的操作數(shù)是一個常數(shù)、一個寄存器操作數(shù)或者是一個存儲器操作數(shù)。數(shù)據(jù)表示:硬件結(jié)構(gòu)能夠識別、指令系統(tǒng)可以直接調(diào)用的那些數(shù)據(jù)結(jié)構(gòu)。 區(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)。常見的3種通用寄存器型指令集結(jié)構(gòu)的優(yōu)缺點有哪些?答:指令系統(tǒng)結(jié)構(gòu)類型優(yōu)點缺點寄存器-寄存器型(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ù)的來源(寄存器或存儲器)不同而差別比較大。存儲器-存儲器型(2,2)或(3,3)目標代碼最緊湊,不需要設(shè)置寄存器來保存變量。指令字長變化很大,特別是3操作數(shù)指令。而且每條指令完成的工作也差別很大。對存儲器的頻繁訪問會使存儲器成為瓶頸。這種類型的指令系統(tǒng)現(xiàn)在已不用了。指令集應(yīng)滿足哪幾個基本要求?答:對指令集的基本要求是:完整性、規(guī)整性、高效率和兼容性。完整性是指在一個有限可用的存儲空間內(nèi),對于任何可解的問題,編制計算程序時,指令集所提供的指令足夠使用。規(guī)整性主要包括對稱性和均勻性。對稱性是指所有與指令集有關(guān)的存儲單元的使用、操作碼的設(shè)置等都是對稱的。均勻性是指對于各種不同的操作數(shù)類型、字長、操作種類和數(shù)據(jù)存儲單元,指令的設(shè)置都要同等對待。高效率是指指令的執(zhí)行速度快、使用頻度高。指令集結(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è)計:有變長編碼格式、固定長度編碼格式和混合型編碼格式3種。簡述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)在CISC結(jié)構(gòu)的指令集中,由于各條指令的功能不均衡性,不利于采用先進的計算機體系結(jié)構(gòu)技術(shù)(如流水技術(shù))來提高系統(tǒng)的性能。簡述RISC指令集結(jié)構(gòu)的設(shè)計原則。答(1)選取使用頻率最高的指令,并補充一些最有用的指令;(2)每條指令的功能應(yīng)盡可能簡單,并在一個機器周期內(nèi)完成;(3)所有指令長度均相同;(4)只有Load和Store操作指令才訪問存儲器,其它指令操作均在寄存器之間進行;(5)以簡單有效的方式支持高級語言。指令中表示操作數(shù)類型的方法有哪幾種?答:操作數(shù)類型有兩種表示方法:(1)操作數(shù)的類型由操作碼的編碼指定,這是最常見的一種方法;(2)數(shù)據(jù)可以附上由硬件解釋的標記,由這些標記指定操作數(shù)的類型,從而選擇適當?shù)倪\算。表示尋址方式的主要方法有哪些?簡述這些方法的優(yōu)缺點。答:表示尋址方式有兩種常用的方法:(1)將尋址方式編于操作碼中,由操作碼在描述指令的同時也描述了相應(yīng)的尋址方式。這種方式譯碼快,但操作碼和尋址方式的結(jié)合不僅增加了指令的條數(shù),導致了指令的多樣性,而且增加了CPU對指令譯碼的難度。(2)為每個操作數(shù)設(shè)置一個地址描述符,由該地址描述符表示相應(yīng)操作數(shù)的尋址方式。這種方式譯碼較慢,但操作碼和尋址獨立,易于指令擴展。通常有哪幾種指令格式,請簡述其適用范圍。答:(1)變長編碼格式。如果系統(tǒng)結(jié)構(gòu)設(shè)計者感興趣的是程序的目標代碼大小,而不是性能,就可以采用變長編碼格式。(2)固定長度編碼格式。如果感興趣的是性能,而不是程序的目標代碼大小,則可以選擇固定長度編碼格式。(3)混合型編碼格式。需要兼顧降低目標代碼長度和降低譯碼復(fù)雜度時,可以采用混合型編碼格式。根據(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的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目標程序的執(zhí)行時間比RISC的更長。第3章流水線技術(shù)3.1解釋下列術(shù)語流水線:將一個重復(fù)的時序過程,分解成為若干個子過程,而每一個子過程都可有效地在其專用功能段上與其它子過程同時執(zhí)行。單功能流水線:指流水線的各段之間的連接固定不變、只能完成一種固定功能的流水線。多功能流水線:指各段可以進行不同的連接,以實現(xiàn)不同的功能的流水線。靜態(tài)流水線:指在同一時間內(nèi),多功能流水線中的各段只能按同一種功能的連接方式工作的流水線。當流水線要切換到另一種功能時,必須等前面的任務(wù)都流出流水線之后,才能改變連接。動態(tài)流水線:指在同一時間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時執(zhí)行多種功能的流水線。它允許在某些段正在實現(xiàn)某種運算時,另一些段卻在實現(xiàn)另一種運算。部件級流水線:把處理機中的部件進行分段,再把這些部件分段相互連接而成。它使得運算操作能夠按流水方式進行。這種流水線也稱為運算操作流水線。處理機級流水線:又稱指令流水線。它是把指令的執(zhí)行過程按照流水方式進行處理,即把一條指令的執(zhí)行過程分解為若干個子過程,每個子過程在獨立的功能部件中執(zhí)行。處理機間流水線:又稱為宏流水線。它是把多個處理機串行連接起來,對同一數(shù)據(jù)流進行處理,每個處理機完成整個任務(wù)中的一部分。前一個處理機的輸出結(jié)果存入存儲器中,作為后一個處理機的輸入。線性流水線:指各段串行連接、沒有反饋回路的流水線。數(shù)據(jù)通過流水線中的各段時,每一個段最多只流過一次。非線性流水線:指各段除了有串行的連接外,還有反饋回路的流水線。順序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序完全相同。亂序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序可以不同,允許后進入流水線的任務(wù)先完成。這種流水線又稱為無序流水線、錯序流水線、異步流水線。吞吐率:在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。流水線的加速比:使用順序處理方式處理一批任務(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í)行哪個分支上的指令。反相關(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ù)的傳送,只是使用了相同的名??梢园哑渲幸粭l指令所使用的名換成別的,以此來消除名相關(guān)。結(jié)構(gòu)沖突:因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。數(shù)據(jù)沖突:當指令在流水線中重疊執(zhí)行時,因需要用到前面指令的執(zhí)行結(jié)果而發(fā)生的沖突??刂茮_突:流水線遇到分支指令或其它會改變PC值的指令所引起的沖突。定向:用來解決寫后讀沖突的。在發(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讀取該寄存器之前就先對它進行了寫操作,導致i讀到的值是錯誤的。寫后寫沖突:考慮兩條指令i和j,且i在j之前進入流水線,,指令j和指令i的結(jié)果單元(寄存器或存儲器單元)相同,而且j在i寫入之前就先對該單元進行了寫入操作,從而導致寫入順序錯誤。這時在結(jié)果單元中留下的是i寫入的值,而不是j寫入的。鏈接技術(shù):具有先寫后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和Vi沖突的情況下,可以把功能部件鏈接起來進行流水處理,以達到加快執(zhí)行的目的。分段開采:當向量的長度大于向量寄存器的長度時,必須把長向量分成長度固定的段,然后循環(huán)分段處理,每一次循環(huán)只處理一個向量段。半性能向量長度:向量處理機的性能為其最大性能的一半時所需的向量長度。向量長度臨界值:向量流水方式的處理速度優(yōu)于標量串行方式的處理速度時所需的向量長度的最小值。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í)行是把一個指令的執(zhí)行過程分解為若干個子過程,每個子過程由專門的功能部件來實現(xiàn)。把多個處理過程在時間上錯開,依次通過各功能段,每個子過程與其它的子過程并行進行。依靠提高吞吐率來提高系統(tǒng)性能。流水線中各段的時間應(yīng)盡可能相等3.3簡述先行控制的基本思想。答:先行控制技術(shù)是把緩沖技術(shù)和預(yù)處理技術(shù)相結(jié)合。緩沖技術(shù)是在工作速度不固定的兩個功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù)是指預(yù)取指令、對指令進行加工以及預(yù)取操作數(shù)等。采用先行控制方式的處理機內(nèi)部設(shè)置多個緩沖站,用于平滑主存、指令分析部件、運算器三者之間的工作。這樣不僅使它們都能獨立地工作,充分忙碌而不用相互等待,而且使指令分析部件和運算器分別能快速地取得指令和操作數(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條指令所需的時間為: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)△t3.5簡述流水線技術(shù)的特點。答:流水技術(shù)有以下特點:(1)流水線把一個處理過程分解為若干個子過程,每個子過程由一個專門的功能部件來實現(xiàn)。因此,流水線實際上是把一個大的處理功能部件分解為多個獨立的功能部件,并依靠它們的并行工作來提高吞吐率。(2)流水線中各段的時間應(yīng)盡可能相等,否則將引起流水線堵塞和斷流。(3)流水線每一個功能部件的前面都要有一個緩沖寄存器,稱為流水寄存器。(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段檢測到分支指令后,一旦計算出了分支目標地址,就開始從該目標地址取指令執(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)度的指令對程序的執(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*/ 解:展開循環(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由于循環(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型的運算流水線。(3)縱橫處理方式:把長度為N的向量分為若干組,每組長度為n,組內(nèi)按縱向方式處理,依次處理各組,組數(shù)為「N/n」,適合流水處理??稍O(shè)長度為n的向量寄存器,使每組向量運算的源/目向量都在向量寄存器中,流水線的運算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成R-R型運算流水線。3.11可采用哪些方法來提高向量處理機的性能?答:可采用多種方法:設(shè)置多個功能部件,使它們并行工作;采用鏈接技術(shù),加快一串向量指令的執(zhí)行;采用循環(huán)開采技術(shù),加快循環(huán)的處理;采用多處理機系統(tǒng),進一步提高性能。3.12有一指令流水線如下所示求連續(xù)輸入10條指令,該流水線的實際吞吐率和效率;該流水線的“瓶頸”在哪一段?請采取兩種不同的措施消除此“瓶頸”。對于你所給出的兩種新的流水線,連續(xù)輸入10條指令時,其實際吞吐率和效率各是多少?解:(1)(2)瓶頸在3、4段。變成八級流水線(細分)重復(fù)設(shè)置1123-13-24-14-24-34-43.13有一個流水線由4段組成,其中每當流經(jīng)第3段時,總要在該段循環(huán)一次,然后才能流到第4段。如果每段經(jīng)過一次所需要的時間都是,問:當在流水線的輸入端連續(xù)地每時間輸入任務(wù)時,該流水線會發(fā)生什么情況?此流水線的最大吞吐率為多少?如果每輸入一個任務(wù),連續(xù)處理10個任務(wù)時的實際吞吐率和效率是多少?當每段時間不變時,如何提高該流水線的吞吐率?仍連續(xù)處理10個任務(wù)時,其吞吐率提高多少?解:(1)會發(fā)生流水線阻塞情況。第1個任務(wù)S1S2S3S3S4第2個任務(wù)S1S2stallS3S3S4第3個任務(wù)S1stallS2stallS3S3S4第4個任務(wù)S1stallS2stallS3S3S4(2)(3)重復(fù)設(shè)置部件吞吐率提高倍數(shù)==1.643.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+B3)×(A4+B4);然后求總的結(jié)果。其次,畫出完成該計算的時空圖,如圖所示,圖中陰影部分表示該段在工作。由圖可見,它在18個△t時間中,給出了7個結(jié)果。所以吞吐率為: 如果不用流水線,由于一次求積需3△t,一次求和需5△t,則產(chǎn)生上述7個結(jié)果共需(4×5+3×3)△t=29△t。所以加速比為: 該流水線的效率可由陰影區(qū)的面積和5個段總時空區(qū)的面積的比值求得: 3.15動態(tài)多功能流水線由6個功能段組成,如下圖:其中,S1、S4、S5、S6組成乘法流水線,S1、S2、S3、S6組成加法流水線,各個功能段時間均為50ns,假設(shè)該流水線的輸出結(jié)果可以直接返回輸入端,而且設(shè)置有足夠的緩沖寄存器,若以最快的方式用該流水計算:畫出時空圖;計算實際的吞吐率、加速比和效率。解:機器一共要做10次乘法,4次加法。3.16在MIPS流水線上運行如下代碼序列:LOOP:LW R1,0(R2)DADDIU R1,R1,#1SW R1,0(R2)DADDIU R2,R2,#4DSUBR4,R3,R2BNEZR4,LOOP其中:R3的初值是R2+396。假設(shè):在整個代碼序列的運行過程中,所有的存儲器訪問都是命中的,并且在一個時鐘周期中對同一個寄存器的讀操作和寫操作可以通過寄存器文件“定向”。問:在沒有任何其它定向(或旁路)硬件的支持下,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用排空流水線的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?假設(shè)該流水線有正常的定向路徑,請畫出該指令序列執(zhí)行的流水線時空圖。假設(shè)采用預(yù)測分支失敗的策略處理分支指令,且所有的存儲器訪問都命中Cache,那么執(zhí)行上述循環(huán)需要多少個時鐘周期?假設(shè)該流水線有正常的定向路徑和一個單周期延遲分支,請對該循環(huán)中的指令進行調(diào)度,你可以重新組織指令的順序,也可以修改指令的操作數(shù),但是注意不能增加指令的條數(shù)。請畫出該指令序列執(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:LWR1,0(R2)DADDIUR2,R2,#4DADDIUR1,R1,#1DSUBR4,R3,R2BNEZR4,LOOPSWR1,-4(R2)第i次迭代(i=0..98)開始周期:1+(i×6)總的時鐘周期數(shù):(98×6)+10=5983.17假設(shè)各種分支指令數(shù)占所有指令數(shù)的百分比如下:條件分支20%(其中的60%是分支成功的)跳轉(zhuǎn)和調(diào)用5%現(xiàn)有一條段數(shù)為4的流水線,無條件分支在第二個時鐘周期結(jié)束時就被解析出來,而條件分支要到第三個時鐘周期結(jié)束時才能夠被解析出來。第一個流水段是完全獨立于指令類型的,即所有類型的指令都必須經(jīng)過第一個流水段的處理。請問在沒有任何控制相關(guān)的情況下,該流水線相對于存在上述控制相關(guān)情況下的加速比是多少?解:沒有控制相關(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,對無條件分支和成功的條件分支,有一個額外的stall1:CPI=1+20%*(60%*1+40%*2)+5%*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.293.18在CRAY-1機器上,按照鏈接方式執(zhí)行下述4條向量指令(括號中給出了相應(yīng)功能部件的執(zhí)行時間),如果向量寄存器和功能部件之間的數(shù)據(jù)傳送需要1拍,試求此鏈接流水線的通過時間是多少拍?如果向量長度為64,則需多少拍才能得到全部結(jié)果?V0←存儲器(從存儲器中取數(shù):7拍)V2←V0+V1(向量加:3拍)V3←V2<A3(按(A3)左移:4拍)V5←V3∧V4(向量邏輯乘:2拍)解:通過時間就是每條向量指令的第一個操作數(shù)執(zhí)行完畢需要的時間,也就是各功能流水線由空到滿的時間,具體過程如下圖所示。要得到全部結(jié)果,在流水線充滿之后,向量中后繼操作數(shù)繼續(xù)以流水方式執(zhí)行,直到整組向量執(zhí)行完畢。3.19某向量處理機有16個向量寄存器,其中V0~V5中分別放有向量A、B、C、D、E、F,向量長度均為8,向量各元素均為浮點數(shù);處理部件采用兩條單功能流水線,加法功能部件時間為2拍,乘法功能部件時間為3拍。采用類似于CARY-1的鏈接技術(shù),先計算(A+B)*C,在流水線不停流的情況下,接著計算(D+E)*F。求此鏈接流水線的通過時間?(設(shè)寄存器入、出各需1拍)假如每拍時間為50ns,完成這些計算并把結(jié)果存進相應(yīng)寄存器,此處理部件的實際吞吐率為多少MFLOPS?解:(1)我們在這里假設(shè)A+B的中間結(jié)果放在V6中,(A+B)×C地最后結(jié)果放在V7中,D+E地中間結(jié)果放在V8中,(D+E)×F的最后結(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+BV7←V6×CV8←D+EV9←V8×F第5章存儲層次5.1解釋下列術(shù)語多級存儲層次:采用不同的技術(shù)實現(xiàn)的存儲器,處在離CPU不同距離的層次上,各存儲器之間一般滿足包容關(guān)系,即任何一層存儲器中的內(nèi)容都是其下一層(離CPU更遠的一層)存儲器中內(nèi)容的子集。目標是達到離CPU最近的存儲器的速度,最遠的存儲器的容量。全相聯(lián)映象:主存中的任一塊可以被放置到Cache中任意一個地方。直接映象:主存中的每一塊只能被放置到Cache中唯一的一個地方。組相聯(lián)映象:主存中的每一塊可以放置到Cache中唯一的一組中任何一個地方(Cache分成若干組,每組由若干塊構(gòu)成)。替換算法:由于主存中的塊比Cache中的塊多,所以當要從主存中調(diào)一個塊到Cache中時,會出現(xiàn)該塊所映象到的一組(或一個)Cache塊已全部被占用的情況。這時,需要被迫騰出其中的某一塊,以接納新調(diào)入的塊。LRU:選擇最近最少被訪問的塊作為被替換的塊。實際實現(xiàn)都是選擇最久沒有被訪問的塊作為被替換的塊。寫直達法:在執(zhí)行寫操作時,不僅把信息寫入Cache中相應(yīng)的塊,而且也寫入下一級存儲器中相應(yīng)的塊。寫回法:只把信息寫入Cache中相應(yīng)塊,該塊只有被替換時,才被寫回主存。按寫分配法:寫失效時,先把所寫單元所在的塊調(diào)入Cache,然后再進行寫入。不按寫分配法:寫失效時,直接寫入下一級存儲器中,而不把相應(yīng)的塊調(diào)入Cache。命中時間:訪問Cache命中時所用的時間。失效率:CPU訪存時,在一級存儲器中找不到所需信息的概率。失效開銷:CPU向二級存儲器發(fā)出訪問請求到把這個數(shù)據(jù)調(diào)入一級存儲器所需的時間。強制性失效:當?shù)谝淮卧L問一個塊時,該塊不在Cache中,需要從下一級存儲器中調(diào)入Cache,這就是強制性失效。容量失效:如果程序在執(zhí)行時,所需要的塊不能全部調(diào)入Cache中,則當某些塊被替換后又重新被訪問,就會產(chǎn)生失效,這種失效就稱作容量失效。沖突失效:在組相聯(lián)或直接映象Cache中,若太多的塊映象到同一組(塊)中,則會出現(xiàn)該組中某個塊被別的塊替換(即使別的組或塊有空閑位置),然后又被重新訪問的情況。2:1Cache經(jīng)驗規(guī)則:大小為N的直接映象Cache的失效率約等于大小為N/2的兩路組相聯(lián)Cache的實效率。相聯(lián)度:在組相聯(lián)中,每組Cache中的塊數(shù)。VictimCache:位于Cache和存儲器之間的又一級Cache,容量小,采用全相聯(lián)策略。用于存放由于失效而被丟棄(替換)的那些塊。每當失效發(fā)生時,在訪問下一級存儲器之前,先檢查VictimCache中是否含有所需塊。故障性預(yù)?。涸陬A(yù)取時,若出現(xiàn)虛地址故障或違反保護權(quán)限,就會發(fā)生異常。非故障性預(yù)?。涸陬A(yù)取時,若出現(xiàn)虛地址故障或違反保護權(quán)限,不發(fā)生異常。非阻塞Cache:Cache在等待預(yù)取數(shù)據(jù)返回時,還能繼續(xù)提供指令和數(shù)據(jù)。盡早重啟動:在請求字沒有到達時,CPU處于等待狀態(tài)。一旦請求字到達,就立即發(fā)送給CPU,讓等待的CPU盡早重啟動,繼續(xù)執(zhí)行。請求字優(yōu)先:調(diào)塊時,首先向存儲器請求CPU所要的請求字。請求字一旦到達,就立即送往CPU,讓CPU繼續(xù)執(zhí)行,同時從存儲器調(diào)入該塊的其余部分。虛擬Cache:地址使用虛地址的Cache。多體交叉存儲器:具有多個存儲體,各體之間按字交叉的存儲技術(shù)。存儲體沖突:多個請求要訪問同一個體。TLB:一個專用高速存儲器,用于存放近期經(jīng)常使用的頁表項,其內(nèi)容是頁表部分內(nèi)容的一個副本。5.2簡述“Cache—主存”層次與“主存—輔存”層次的區(qū)別。答:存儲層次比較項目“Cache—主存”層次“主存—輔存”層次目的為了彌補主存速度的不足為了彌補主存容量的不足存儲管理的實現(xiàn)全部由專用硬件實現(xiàn)主要由軟件實現(xiàn)訪問速度的比值(第一級比第二級)幾比一幾萬比一典型的塊(頁)大小幾十個字節(jié)幾百到幾千個字節(jié)CPU對第二級的訪問方式可直接訪問均通過第一級不命中時CPU是否切換不切換切換到其它進程5.3地址映象方法有哪幾種?它們各有什么優(yōu)缺點?答:(1)全相聯(lián)映象。實現(xiàn)查找的機制復(fù)雜,代價高,速度慢。Cache空間的利用率較高,塊沖突概率較低,因而Cache的失效率也低。(2)直接映象。實現(xiàn)查找的機制簡單,速度快。Cache空間的利用率較低,塊沖突概率較高,因而Cache的失效率也高。(3)組相聯(lián)映象。組相聯(lián)是直接映象和全相聯(lián)的一種折衷。5.4降低Cache失效率有哪幾種方法?簡述其基本思想。答:常用的降低Cache失效率的方法有下面幾種:增加Cache塊大小。增加塊大小利用了程序的空間局部性。增加Cache的容量。提高相聯(lián)度,降低沖突失效。偽相聯(lián)Cache,降低沖突失效。當對偽相聯(lián)Cache進行訪問時,首先是按與直接映象相同的方式進行訪問。如果命中,則從相應(yīng)的塊中取出所訪問的數(shù)據(jù),送給CPU,訪問結(jié)束。如果不命中,就將索引字段的最高位取反,然后按照新索引去尋找“偽相聯(lián)組”中的對應(yīng)塊。如果這一塊的標識匹配,則稱發(fā)生了“偽命中”。否則,就訪問下一級存儲器。硬件預(yù)取技術(shù)。在處理器提出訪問請求前預(yù)取指令和數(shù)據(jù)。由編譯器控制的預(yù)取,硬件預(yù)取的替代方法,在編譯時加入預(yù)取的指令,在數(shù)據(jù)被用到之前發(fā)出預(yù)取請求。編譯器優(yōu)化,通過對軟件的優(yōu)化來降低失效率?!盃奚盋ache。在Cache和其下一級存儲器的數(shù)據(jù)通路之間增設(shè)一個全相聯(lián)的小Cache,存放因沖突而被替換出去的那些塊。每當發(fā)生不命中時,在訪問下一級存儲器之前,先檢查“犧牲”Cache中是否含有所需的塊。如果有,就將該塊與Cache中某個塊做交換,把所需的塊從“犧牲”Cache調(diào)入Cache。5.5簡述減小Cache失效開銷的幾種方法。答:讓讀失效優(yōu)先于寫、寫緩沖合并、請求字處理技術(shù)、非阻塞Cache或非鎖定Cache技術(shù)、采用二級Cache。5.6通過編譯器對程序優(yōu)化來改進Cache性能的方法有哪幾種?簡述其基本思想。答:(1)數(shù)組合并。通過提高空間局部性來減少失效次數(shù)。有些程序同時用相同的索引來訪問若干個數(shù)組的同一維,這些訪問可能會相互干擾,導致沖突失效,可以將這些相互獨立的數(shù)組合并成一個復(fù)合數(shù)組,使得一個Cache塊中能包含全部所需元素。(2)內(nèi)外循環(huán)交換。循環(huán)嵌套時,程序沒有按數(shù)據(jù)在存儲器中的順序訪問。只要簡單地交換內(nèi)外循環(huán),就能使程序按數(shù)據(jù)在存儲器中的存儲順序進行訪問。(3)循環(huán)融合。有些程序含有幾部分獨立的程序段,它們用相同的循環(huán)訪問同樣的數(shù)組,對相同的數(shù)據(jù)作不同的運算。通過將它們?nèi)诤铣梢粋€單一循環(huán),能使讀入Cache的數(shù)據(jù)被替換出去之前得到反復(fù)的使用。(4)分塊。通過改進時間局部性來減少失效。分塊不是對數(shù)組的整行或整列進行訪問,而是對子矩陣或塊進行操作。5.7在“Cache—主存”層次中,主存的更新算法有哪兩種?它們各有什么特點?答:(1)寫直達法。易于實現(xiàn),而且下一級存儲器中的數(shù)據(jù)總是最新的。(2)寫回法。速度快,“寫”操作能以Cache存儲器的速度進行。而且對于同一單元的多個寫最后只需一次寫回下一級存儲器,有些“寫”只到達Cache,不到達主存,因而所使用的存儲器頻帶較低。5.8組相聯(lián)Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出結(jié)論:采用組相聯(lián)一定能帶來性能上的提高?為什么?答:不一定。因為組相聯(lián)命中率的提高是以增加命中時間為代價的,組相聯(lián)需要增加多路選擇開關(guān)。5.9寫出三級Cache的平均訪問時間的公式。解:平均訪存時間=命中時間+失效率×失效開銷只有第I層失效時才會訪問第I+1。設(shè)三級Cache的命中率分別為HL1、Hl2、HL3,失效率分別為Ml1、Ml2、ML3,第三級Cache的失效開銷為PL3。平均訪問時間TA=HL1+Ml1{Hl2+Ml2(HL3+ML3×PL3)}5.10假設(shè)對指令Cache的訪問占全部訪問的75%;而對數(shù)據(jù)Cache的訪問占全部訪問的25%。Cache的命中時間為1個時鐘周期,失效開銷為50個時鐘周期,在混合Cache中一次load或store操作訪問Cache的命中時間都要增加一個時鐘周期,32KB的指令Cache的失效率為0.39%,32KB的數(shù)據(jù)Cache的失效率為4.82%,64KB的混合Cache的失效率為1.35%。又假設(shè)采用寫直達策略,且有一個寫緩沖器,并且忽略寫緩沖器引起的等待。試問指令Cache和數(shù)據(jù)Cache容量均為32KB的分離Cache和容量為64KB的混合Cache相比,哪種Cache的失效率更低?兩種情況下平均訪存時間各是多少?解:(1)根據(jù)題意,約75%的訪存為取指令。因此,分離Cache的總體失效率為:(75%×0.15%)+(25%×3.77%)=1.055%;容量為128KB的混合Cache的失效率略低一些,只有0.95%。(2)平均訪存時間公式可以分為指令訪問和數(shù)據(jù)訪問兩部分:平均訪存時間=指令所占的百分比×(讀命中時間+讀失效率×失效開銷)+數(shù)據(jù)所占的百分比×(數(shù)據(jù)命中時間+數(shù)據(jù)失效率×失效開銷)所以,兩種結(jié)構(gòu)的平均訪存時間分別為:分離Cache的平均訪存時間=75%×(1+0.15%×50)+25%×(1+3.77%×50)=(75%×1.075)+(25%×2.885)=1.5275混合Cache的平均訪存時間=75%×(1+0.95%×50)+25%×(1+1+0.95%×50)=(75%×1.475)+(25%×2.475)=1.725因此,盡管分離Cache的實際失效率比混合Cache的高,但其平均訪存時間反而較低。分離Cache提供了兩個端口,消除了結(jié)構(gòu)相關(guān)。5.11給定以下的假設(shè),試計算直接映象Cache和兩路組相聯(lián)Cache的平均訪問時間以及CPU的性能。由計算結(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%。解:平均訪問時間=命中時間+失效率×失效開銷平均訪問時間1-路=2.0+1.4%*80=3.12ns平均訪問時間2-路=2.0*(1+10%)+1.0%*80=3.0ns兩路組相聯(lián)的平均訪問時間比較低CPUtime=(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.36IC相對性能比:5.36/5.344=1.003直接映象cache的訪問速度比兩路組相聯(lián)cache要快1.04倍,而兩路組相聯(lián)Cache的平均性能比直接映象cache要高1.003倍。因此這里選擇兩路組相聯(lián)。5.12假設(shè)一臺計算機具有以下特性:95%的訪存在Cache中命中;塊大小為兩個字,且失效時整個塊被調(diào)入;CPU發(fā)出訪存請求的速率為109字/s;25%的訪存為寫訪問;存儲器的最大流量為109字/s(包括讀和寫);主存每次只能讀或?qū)懸粋€字;在任何時候,Cache中有30%的塊被修改過;寫失效時,Cache采用按寫分配法?,F(xiàn)欲給該計算機增添一臺外設(shè),為此首先想知道主存的頻帶已用了多少。試對于以下兩種情況計算主存頻帶的平均使用比例。寫直達Cache;寫回法Cache。解:采用按寫分配:(1)寫直達cache訪問命中,有兩種情況:讀命中,不訪問主存;寫命中,更新cache和主存,訪問主存一次。訪問失效,有兩種情況:讀失效,將主存中的塊調(diào)入cache中,訪問主存兩次;寫失效,將要寫的塊調(diào)入cache,訪問主存兩次,再將修改的數(shù)據(jù)寫入cache和主存,訪問主存一次,共三次。上述分析如下表所示。訪問命中訪問類型頻率訪存次數(shù)Y讀95%*75%=71.3%0Y寫95%*25%=23.8%1N讀5%*75%=3.8%2N寫5%*25%=1.3%3一次訪存請求最后真正的平均訪存次數(shù)=(71.3%*0)+(23.8%*1)+(3.8%*2)+(1.3%*3)=0.35已用帶寬=0.35×109/109=35.0%(2)寫回法cache訪問命中,有兩種情況:讀命中,不訪問主存;寫命中,不訪問主存。采用寫回法,只有當修改的cache塊被換出時,才寫入主存;訪問失效,有一個塊將被換出,這也有兩種情況:如果被替換的塊沒有修改過,將主存中的塊調(diào)入cache塊中,訪問主存兩次;如果被替換的塊修改過,則首先將修改的塊寫入主存,需要訪問主存兩次;然后將主存中的塊調(diào)入cache塊中,需要訪問主存兩次,共四次訪問主存。訪問命中塊為臟頻率訪存次數(shù)YN95%*70%=66.5%0YY95%*30%=28.5%0NN5%*70%=3.5%2NY5%*30%=1.5%4所以:一次訪存請求最后真正的平均訪存次數(shù)=66.5%*0+28.5%*0+3.5%*2+1.5%*4=0.13已用帶寬=0.13×109/109=13%5.13在偽相聯(lián)中,假設(shè)在直接映象位置沒有發(fā)現(xiàn)匹配,而在另一個位置才找到數(shù)據(jù)(偽命中)時,不對這兩個位置的數(shù)據(jù)進行交換。這時只需要1個額外的周期。假設(shè)失效開銷為50個時鐘周期,2KB直接映象Cache的失效率為9.8%,2路組相聯(lián)的失效率為7.6%;128KB直接映象Cache的失效率為1.0%,2路組相聯(lián)的失效率為0.7%。推導出平均訪存時間的公式。利用(1)中得到的公式,對于2KBCache和128KBCache,計算偽相聯(lián)的平均訪存時間。解:不管作了何種改進,失效開銷相同。不管是否交換內(nèi)容,在同一“偽相聯(lián)”組中的兩塊都是用同一個索引得到的,因此失效率相同,即:失效率偽相聯(lián)=失效率2路。偽相聯(lián)cache的命中時間等于直接映象cache的命中時間加上偽相聯(lián)查找過程中的命中時間*該命中所需的額外開銷。命中時間偽相聯(lián)=命中時間1路+偽命中率偽相聯(lián)×1交換或不交換內(nèi)容,偽相聯(lián)的命中率都是由于在第一次失效時,將地址取反,再在第二次查找?guī)淼?。因此偽命中率偽相?lián)=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)=失效率1路-失效率2路。交換內(nèi)容需要增加偽相聯(lián)的額外開銷。平均訪存時間偽相聯(lián)=命中時間1路+(失效率1路-失效率2路)×1+失效率2路×失效開銷1路將題設(shè)中的數(shù)據(jù)帶入計算,得到:平均訪存時間2Kb=1+(0.098-0.076)*1+(0.076*50)=4.822平均訪存時間128Kb=1+(0.010-0.007)*1+(0.007*50)=1.353顯然是128KB的偽相聯(lián)Cache要快一些。5.14假設(shè)采用理想存儲器系統(tǒng)時的基本CPI是1.5,主存延遲是40個時鐘周期;傳輸速率為4字節(jié)/時鐘周期,且Cache中50%的塊是修改過的。每個塊中有32字節(jié),20%的指令是數(shù)據(jù)傳送指令。并假設(shè)沒有寫緩存,在TLB失效的情況下需要20時鐘周期,TLB不會降低Cache命中率。CPU產(chǎn)生指令地址或Cache失效時產(chǎn)生的地址有0.2%沒有在TLB中找到。在理想TLB情況下,計算均采用寫回法16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache機器的實際CPI;在實際TLB情況下,用(1)的結(jié)果,計算均采用寫回法16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache機器的實際CPI;其中假設(shè)16KB直接映象統(tǒng)一Cache、16KB兩路組相聯(lián)統(tǒng)一Cache和32KB直接映象統(tǒng)一Cache的失效率分別為2.9%、2.2%和2.0%;25%的訪存為寫訪問。解:CPI=CPI執(zhí)行+存儲停頓周期數(shù)/指令數(shù)存儲停頓由下列原因引起:從主存中取指令load和store指令訪問數(shù)據(jù)由TLB引起(1)對于理想TLB,TLB失效開銷為0。而對于統(tǒng)一Cache,R指令=R數(shù)據(jù)P指令=主存延遲+傳輸一個塊需要使用的時間=40+32/4=48(拍)若為讀失效,P數(shù)據(jù)=主存延遲+傳輸一個塊需要使用的時間=40+32/4=48(拍)若為寫失效,且塊是干凈的,P數(shù)據(jù)=主存延遲+傳輸一個塊需要使用的時間=40+32/4=48(拍)若為寫失效,且塊是臟的,P數(shù)據(jù)=主存延遲+傳輸兩個塊需要使用的時間=40+64/4=56(拍)CPI=1.5+[RP+(RP*20%)+0]指令訪存全是讀,而數(shù)據(jù)傳輸指令Load或Store指令,f數(shù)據(jù)*P數(shù)據(jù)=讀百分比*(f數(shù)據(jù)*P數(shù)據(jù))+寫百分比*(f數(shù)據(jù)*P干凈數(shù)據(jù)*其對應(yīng)的百分比+f數(shù)據(jù)*P臟數(shù)據(jù)*其對應(yīng)的百分比)=20%*(75%×48+25%*(50%*48+50%*(48+16)))=50(拍)代入上述公式計算出結(jié)果為:配置失效率CPI16KB直接統(tǒng)一映象0.0294.416KB兩路統(tǒng)一映象0.0223.432KB直接統(tǒng)一映象0.0203.2(2)將f數(shù)據(jù)(數(shù)據(jù)訪問指令頻率),Rt和Pt(分別是TLB的失效率和失效開銷),Rc和Pw(分別是Cache的失效率和寫回的頻率)代入公式得:TLB停頓/指令數(shù)={[1+f數(shù)據(jù)]*[Rc(1+Rw)]}RtPt其中,1+f數(shù)據(jù):每條指令的訪問內(nèi)存次數(shù);Rc(1+Rw):每次內(nèi)存訪問需要的TLB訪問次數(shù)。由條件得:TLB停頓/指令數(shù)={[1+20%]*[Rc(1+25%)]}0.2%×20配置失效率理想TLB的CPI16KB直接統(tǒng)一映象0.0294.016KB兩路統(tǒng)一映象0.0223.432KB直接統(tǒng)一映象0.0203.2第6章輸入輸出系統(tǒng)6.1解釋以下術(shù)語響應(yīng)時間:從用戶鍵入命令開始,到得到結(jié)果所花的時間??煽啃裕褐赶到y(tǒng)從某個初始參考點開始一直連續(xù)提供服務(wù)的能力,它通常用平均無故障時間來衡量。可用性:指系統(tǒng)正常工作的時間在連續(xù)兩次正常服務(wù)間隔時間中所占的比率??尚判裕褐阜?wù)的質(zhì)量,即在多大程度上可以合理地認為服務(wù)是可靠的。RAID:廉價磁盤冗余陣列或獨立磁盤冗余陣列。分離事務(wù)總線:將總線事務(wù)分成請求和應(yīng)答兩部分。在請求和應(yīng)答之間的空閑時間內(nèi),總線可以供給其它的I/O使用。采用這種技術(shù)的總線稱為分離事務(wù)總線。通道:專門負責整個計算機系統(tǒng)輸入/輸出工作的專用處理機,能執(zhí)行有限的一組輸入輸出指令。通道流量:指一個通道在數(shù)據(jù)傳送期間,單位時間內(nèi)能夠傳送的數(shù)據(jù)量。虛擬DMA:它允許DMA設(shè)備直接使用虛擬地址,并在DMA傳送的過程中由硬件將虛擬地址轉(zhuǎn)換為物理地址。異步I/O:允許進程在發(fā)出I/O請求后繼續(xù)執(zhí)行,直到該進程真正訪問這些數(shù)據(jù)而它們又尚未就緒時,才被掛起。6.2假設(shè)一臺計算機的I/O處理時間占10%,當其CPU性能改進為原來的100倍,而I/O性能僅改進為原來的2倍時,系統(tǒng)總體性能會有什么樣的變化?解:6.3RAID有哪些分級?各有何特點?答:(1)RAID0。亦稱數(shù)據(jù)分塊,即把數(shù)據(jù)分布在多個盤上,實際上是非冗余陣列,無冗余信息。(2)RAID1。亦稱鏡像盤,使用雙備份磁盤。每當數(shù)據(jù)寫入一個磁盤時,將該數(shù)據(jù)也寫到另一個冗余盤,這樣形成信息的兩份復(fù)制品。如果一個磁盤失效,系統(tǒng)可以到鏡像盤中獲得所需要的信息。鏡像是最昂貴的解決方法。特點是系統(tǒng)可靠性很高,但效率很低。(3)RAID2。位交叉式海明編碼陣列。即數(shù)據(jù)以位或字節(jié)交叉的方式存于各盤,采用海明編碼。原理上比較優(yōu)越,但冗余信息的開銷太大,因此未被廣泛應(yīng)用。(4)RAID3。位交叉奇偶校驗盤陣列,是單盤容錯并行傳輸?shù)年嚵?。即?shù)據(jù)以位或字節(jié)交叉的方式存于各盤,冗余的奇偶校驗信息存儲在一臺專用盤上。(5)RAID4。專用奇偶校驗獨立存取盤陣列。即數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤,冗余的奇偶校驗信息存在一臺專用盤上。(6)RAID5。塊交叉分布式奇偶校驗盤陣列,是旋轉(zhuǎn)奇偶校驗獨立存取的陣列。即數(shù)據(jù)以塊交叉的方式存于各盤,但無專用的校驗盤,而是把冗余的奇偶校驗信息均勻地分布在所有磁盤上。(7)RAID6。雙維奇偶校驗獨立存取盤陣列。即數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤,冗余的檢、糾錯信息均勻地分布在所有磁盤上。并且,每次寫入數(shù)據(jù)都要訪問一個數(shù)據(jù)盤和兩個校驗盤,可容忍雙盤出錯。6.4同步總線和異步總線各有什么優(yōu)缺點?答:(1)同步總線。同步總線上所有設(shè)備通過統(tǒng)一的總線系統(tǒng)時鐘進行同步。同步總線成本低,因為它不需要設(shè)備之間互相確定時序的邏輯。但是其缺點是總線操作必須以相同的速度運行。(2)異步總線。異步總線上的設(shè)備之間沒有統(tǒng)一的系統(tǒng)時鐘,設(shè)備自己內(nèi)部定時。設(shè)備之間的信息傳送用總線發(fā)送器和接收器控制。異步總線容易適應(yīng)更廣泛的設(shè)備類型,擴充總線時不用擔心時鐘時序和時鐘同步問題。但在傳輸時,異步總線需要額外的同步開銷。6.5計算機系統(tǒng)字長32位,包含兩個選擇通道和一個多路通道,每個選擇通道上連接了兩臺磁盤機和兩臺磁帶機,多路通道上連接了了兩臺行式打印機,兩臺讀卡機,10臺終端,假定各設(shè)備的傳輸率如下:磁盤機:800KBps磁帶機:200KBps行打機:6.6KBps讀卡機:1.2KBps終端:1KBps計算該計算機系統(tǒng)的最大I/O數(shù)據(jù)傳輸率。解:本題要求計算通道的吞吐率,而且機器有一個多路通道,這就有兩種可能:字節(jié)多路通道和數(shù)組多路通道。因為如果將多路通道組織成數(shù)組多路通道,某個時刻通道只能為一臺設(shè)備傳送數(shù)據(jù),所以它的傳輸率是所有設(shè)備的傳輸率的最大值,而如果將它組織成字節(jié)多路通道,該通道的最大傳輸率就是所有設(shè)備的傳輸率之和。所以在本題中,從性能上考慮,應(yīng)組織成字節(jié)多路通道形式。所以此類通道的最大傳輸率為:(1)fBYTE=∑fi=f打印機傳輸率×2+f讀卡機傳輸率×2+f終端傳輸率×10=25.6KBps(i=1..14)(2)兩個選擇通道連接的設(shè)備相同,所以只要計算其中一個通道的傳輸率既可。因為磁盤機的傳輸率大于磁帶機。所以此類通道的傳輸率為:max{800,200}=800KBps所以本系統(tǒng)的最大數(shù)據(jù)傳輸率為:f系統(tǒng)=2×800+25.6=1625.6KBps。6.6簡述通道完成一次數(shù)據(jù)傳輸?shù)闹饕^程。答:(1)在用戶程序中使用訪管指令進入管理程序,由CPU通過管理程序組織一個通道程序,并啟動通道。(2)通道處理機執(zhí)行CPU為它組織的通道程序,完成指定的數(shù)據(jù)I/O工作。(3)通道程序結(jié)束后向CPU發(fā)中斷請求。CPU響應(yīng)這個中斷請求后,第二次進入操作系統(tǒng),調(diào)用管理程序?qū)/O中斷請求進行處理。6.7試比較三種通道的優(yōu)缺點及適用場合。答:(1)字節(jié)多路通道。一種簡單的共享通道,主要為多臺低速或中速的外圍設(shè)備服務(wù)。(2)數(shù)組多路通道。適于為高速設(shè)備服務(wù)。(3)選擇通道。為多臺高速外圍設(shè)備(如磁盤存儲器等)服務(wù)的。6.8一個字節(jié)多路通道連接有6臺設(shè)備,它們的數(shù)據(jù)傳輸率如下表所示。設(shè)備名稱D1D2D3D4D5D6數(shù)據(jù)傳輸速率(B/ms)505040252510計算該通道的實際工作流量。若通道的最大流量等于實際工作流量,求通道的工作周期Ts+TD。解:(1)通道實際流量為(2)由于通道的最大流量等于實際工作流量,即有可得,通道的工作周期Ts+TD=5μs。6.9設(shè)某個字節(jié)多路通道的設(shè)備選擇時間Ts為9.8μs,傳送一個字節(jié)的數(shù)據(jù)所需的時間TD為0.2μs。若某種低速外設(shè)每隔500μs發(fā)出一次傳送請求,那么,該通道最多可連接多少臺這種外設(shè)?解:字節(jié)多路通道的最大流量為:字節(jié)多路通道的實際流量為:其中,p為通道連接的外設(shè)臺數(shù),fi為外設(shè)i的數(shù)據(jù)傳輸速率。因為連接的是同樣的外設(shè),所以f1=f2=…=fp=f,故有fbyte=pf。通道流量匹配的要求有:fmax-byte≥fbyte即有:;可得:已知Ts=9.8μs,TD=0.2μs,1/f=500μs,可求出通道最多可連接的設(shè)備臺數(shù)為:6.10在有Cache的計算機系統(tǒng)中,進行I/O操作時,會產(chǎn)生哪些數(shù)據(jù)不一致問題?如何克服?答:(1)存儲器中可能不是CPU產(chǎn)生的最新數(shù)據(jù),所以I/O系統(tǒng)從存儲器中取出來的是陳舊數(shù)據(jù)。(2)I/O系統(tǒng)與存儲器交換數(shù)據(jù)之后,在Cache中,被CPU使用的可能就會是陳舊數(shù)據(jù)。第一個問題可以用寫直達Cache解決。第二個問題操作系統(tǒng)可以保證I/O操作的數(shù)據(jù)不在cache中。如果不能,就作廢Cache中相應(yīng)的數(shù)據(jù)。6.11假設(shè)在一個計算機系統(tǒng)中:每頁為32KB,Cache塊大小為128字節(jié);對應(yīng)新頁的地址不在Cache中,CPU不訪問新頁中的任何數(shù)據(jù);Cache中95%的被替換塊將再次被讀取,并引起一次失效;Cache使用寫回方法,平均60%的塊被修改過;I/O系統(tǒng)緩沖能夠存儲一個完整的Cache塊;訪問或失效在所有Cache塊中均勻分布;在CPU和I/O之間,沒有其它訪問Cache的干擾;無I/O時,每100萬個時鐘周期內(nèi)有18000次失效;失效開銷是40個時鐘周期。如果被替換的塊被修改過,則再加上30個周期用于寫回主存;假設(shè)計算機平均每200萬個周期處理一頁。試分析I/O對于性能的影響有多大?解:每個主存頁有32K/128=256塊。因為是按塊傳輸,所以I/O傳輸本身并不引起Cache失效。但是它可能要替換Cache中的有效塊。如果這些被替換塊中有60%是被修改過的,將需要(256×60%)×30=4608個時鐘周期將這些被修改過的塊寫回主存。這些被替換出去的塊中,有95%的后繼需要訪問,從而產(chǎn)生95%×256=244次失效,將再次發(fā)生替換。由于這次被替換的244塊中數(shù)據(jù)是從I/O直接寫入Cache的,因此所有塊都為被修改塊,需要寫回主存(因為CPU不會直接訪問從I/O來的新頁中的數(shù)據(jù),所以它們不會立即從主存中調(diào)入Cache),需要時間是244×(40+30)=17080個時鐘周期。沒有I/O時,每一頁平均使用200萬個時鐘周期,Cache失效36000次,其中60%被修改過,所需的處理時間為:(36000×40%)×40+(36000×60%)×(40+30)=2088000(時鐘周期)時鐘I/O造成的額外性能損失比例為(4608+17080)÷(2000000+2088000)=0.53%即大約產(chǎn)生0.53%的性能損失。第7章互連網(wǎng)絡(luò)7.1解釋以下術(shù)語線路交換:在線路交換中,源結(jié)點和目的結(jié)點之間的物理通路在整個數(shù)據(jù)傳送期間一直保持連接。分組交換:把信息分割成許多組(又稱為包),將它們分別送入互連網(wǎng)絡(luò)。這些數(shù)據(jù)包可以通過不同的路徑傳送,到目的結(jié)點后再拼合

溫馨提示

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

評論

0/150

提交評論