計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)重點(diǎn)知識點(diǎn)

第1章 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念


1.1 解釋下列術(shù)語

層次結(jié)構(gòu):按照計(jì)算機(jī)語言從低級到高級的次序艾疟,把計(jì)算機(jī)系統(tǒng)按功能劃分成多級層次結(jié)構(gòu)盾鳞,每一層以一種不同的語言為特征。這些層次依次為:微程序機(jī)器級,傳統(tǒng)機(jī)器語言機(jī)器級衰絮,匯編語言機(jī)器級凝赛,高級語言機(jī)器級注暗,應(yīng)用語言機(jī)器級等坛缕。


虛擬機(jī):用軟件實(shí)現(xiàn)的機(jī)器。


翻譯:先用轉(zhuǎn)換程序把高一級機(jī)器上的程序轉(zhuǎn)換為低一級機(jī)器上等效的程序捆昏,然后再在這低一級機(jī)器上運(yùn)行赚楚,實(shí)現(xiàn)程序的功能。


解釋:對于高一級機(jī)器上的程序中的每一條語句或指令骗卜,都是轉(zhuǎn)去執(zhí)行低一級機(jī)器上的一段等效程序宠页。執(zhí)行完后,再去高一級機(jī)器取下一條語句或指令寇仓,再進(jìn)行解釋執(zhí)行举户,如此反復(fù),直到解釋執(zhí)行完整個程序遍烦。


計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):傳統(tǒng)機(jī)器程序員所看到的計(jì)算機(jī)屬性俭嘁,即概念性結(jié)構(gòu)與功能特性。


在計(jì)算機(jī)技術(shù)中服猪,把這種本來存在的事物或?qū)傩孕忠珡哪撤N角度看又好像不存在的概念稱為透明性。


計(jì)算機(jī)組成:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn)蔓姚,包含物理機(jī)器級中的數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計(jì)等捕虽。


計(jì)算機(jī)實(shí)現(xiàn):計(jì)算機(jī)組成的物理實(shí)現(xiàn),包括處理機(jī)坡脐、主存等部件的物理結(jié)構(gòu)泄私,器件的集成度和速度,模塊备闲、插件晌端、底板的劃分與連接,信號傳輸恬砂,電源咧纠、冷卻及整機(jī)裝配技術(shù)等。


系統(tǒng)加速比:對系統(tǒng)中某部分進(jìn)行改進(jìn)時泻骤,改進(jìn)后系統(tǒng)性能提高的倍數(shù)漆羔。


Amdahl定律:當(dāng)對一個系統(tǒng)中的某個部件進(jìn)行改進(jìn)后,所能獲得的整個系統(tǒng)性能的提高狱掂,受限于該部件的執(zhí)行時間占總執(zhí)行時間的百分比演痒。


程序的局部性原理:程序執(zhí)行時所訪問的存儲器地址不是隨機(jī)分布的,而是相對地簇聚趋惨。包括時間局部性和空間局部性鸟顺。


CPI:每條指令執(zhí)行的平均時鐘周期數(shù)。


測試程序套件:由各種不同的真實(shí)應(yīng)用程序構(gòu)成的一組測試程序器虾,用來測試計(jì)算機(jī)在各個方面的處理性能讯嫂。


存儲程序計(jì)算機(jī):馮·諾依曼結(jié)構(gòu)計(jì)算機(jī)蹦锋。其基本點(diǎn)是指令驅(qū)動。程序預(yù)先存放在計(jì)算機(jī)存儲器中欧芽,機(jī)器一旦啟動莉掂,就能按照程序指定的邏輯順序執(zhí)行這些程序,自動完成由程序所描述的處理工作渐裸。


系列機(jī):由同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)巫湘、但具有不同組成和實(shí)現(xiàn)的一系列不同型號的計(jì)算機(jī)装悲。


軟件兼容:一個軟件可以不經(jīng)修改或者只需少量修改就可以由一臺計(jì)算機(jī)移植到另一臺計(jì)算機(jī)上運(yùn)行昏鹃。差別只是執(zhí)行時間的不同。


向上(下)兼容:按某檔計(jì)算機(jī)編制的程序诀诊,不加修改就能運(yùn)行于比它高(低)檔的計(jì)算機(jī)洞渤。


向后(前)兼容:按某個時期投入市場的某種型號計(jì)算機(jī)編制的程序,不加修改地就能運(yùn)行于在它之后(前)投入市場的計(jì)算機(jī)属瓣。


兼容機(jī):由不同公司廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)载迄。


模擬:用軟件的方法在一臺現(xiàn)有的計(jì)算機(jī)(稱為宿主機(jī))上實(shí)現(xiàn)另一臺計(jì)算機(jī)(稱為虛擬機(jī))的指令系統(tǒng)。


仿真:用一臺現(xiàn)有計(jì)算機(jī)(稱為宿主機(jī))上的微程序去解釋實(shí)現(xiàn)另一臺計(jì)算機(jī)(稱為目標(biāo)機(jī))的指令系統(tǒng)抡蛙。


并行性:計(jì)算機(jī)系統(tǒng)在同一時刻或者同一時間間隔內(nèi)進(jìn)行多種運(yùn)算或操作护昧。只要在時間上相互重疊,就存在并行性粗截。它包括同時性與并發(fā)性兩種含義惋耙。


時間重疊:在并行性概念中引入時間因素,讓多個處理過程在時間上相互錯開熊昌,輪流重疊地使用同一套硬件設(shè)備的各個部分绽榛,以加快硬件周轉(zhuǎn)而贏得速度。


資源重復(fù):在并行性概念中引入空間因素婿屹,以數(shù)量取勝灭美。通過重復(fù)設(shè)置硬件資源,大幅度地提高計(jì)算機(jī)系統(tǒng)的性能昂利。


資源共享:這是一種軟件方法届腐,它使多個任務(wù)按一定時間順序輪流使用同一套硬件設(shè)備。


耦合度:反映多機(jī)系統(tǒng)中各計(jì)算機(jī)之間物理連接的緊密程度和交互作用能力的強(qiáng)弱蜂奸。


緊密耦合系統(tǒng):又稱直接耦合系統(tǒng)梯捕。在這種系統(tǒng)中,計(jì)算機(jī)之間的物理連接的頻帶較高窝撵,一般是通過總線或高速開關(guān)互連傀顾,可以共享主存。


松散耦合系統(tǒng):又稱間接耦合系統(tǒng)碌奉,一般是通過通道或通信線路實(shí)現(xiàn)計(jì)算機(jī)之間的互連短曾,可以共享外存設(shè)備(磁盤寒砖、磁帶等)。計(jì)算機(jī)之間的相互作用是在文件或數(shù)據(jù)集一級上進(jìn)行嫉拐。


異構(gòu)型多處理機(jī)系統(tǒng):由多個不同類型哩都、至少擔(dān)負(fù)不同功能的處理機(jī)組成,它們按照作業(yè)要求的順序婉徘,利用時間重疊原理漠嵌,依次對它們的多個任務(wù)進(jìn)行加工,各自完成規(guī)定的功能動作盖呼。


同構(gòu)型多處理機(jī)系統(tǒng):由多個同類型或至少擔(dān)負(fù)同等功能的處理機(jī)組成儒鹿,它們同時處理同一作業(yè)中能并行執(zhí)行的多個任務(wù)。



1.3 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的Flynn分類法是按什么來分類的几晤?共分為哪幾類约炎?

答:Flynn分類法是按照指令流和數(shù)據(jù)流的多倍性進(jìn)行分類。把計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)分為:

單指令流單數(shù)據(jù)流SISD

單指令流多數(shù)據(jù)流SIMD

多指令流單數(shù)據(jù)流MISD

多指令流多數(shù)據(jù)流MIMD


1.4 計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中經(jīng)常使用的4個定量原理是什么蟹瘾?并說出它們的含義圾浅。

答:(1)以經(jīng)常性事件為重點(diǎn)。在計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)中憾朴,對經(jīng)常發(fā)生的情況狸捕,賦予它優(yōu)先的處理權(quán)和資源使用權(quán),以得到更多的總體上的改進(jìn)众雷。(2)Amdahl定律灸拍。加快某部件執(zhí)行速度所獲得的系統(tǒng)性能加速比,受限于該部件在系統(tǒng)中所占的重要性报腔。(3)CPU性能公式株搔。執(zhí)行一個程序所需的CPU時間 =?IC×CPI×?xí)r鐘周期時間。(4)程序的局部性原理纯蛾。程序在執(zhí)行時所訪問地址的分布不是隨機(jī)的纤房,而是相對地簇聚。



1.7 將計(jì)算機(jī)系統(tǒng)中某一功能的處理速度加快10倍翻诉,但該功能的處理時間僅為整個系統(tǒng)運(yùn)行時間的40%炮姨,則采用此增強(qiáng)功能方法后,能使整個系統(tǒng)的性能提高多少碰煌?

?由題可知: ??可改進(jìn)比例 = 40% = 0.4 ?????部件加速比 = 10

根據(jù)Amdahl定律可知:

采用此增強(qiáng)功能方法后舒岸,能使整個系統(tǒng)的性能提高到原來的1.5625倍。



第2章 指令集結(jié)構(gòu)的分類


解釋下列術(shù)語

堆棧型機(jī)器:CPU 中存儲操作數(shù)的單元是堆棧的機(jī)器芦圾。


累加器型機(jī)器:CPU 中存儲操作數(shù)的單元是累加器的機(jī)器蛾派。


通用寄存器型機(jī)器:CPU 中存儲操作數(shù)的單元是通用寄存器的機(jī)器。


CISC:復(fù)雜指令集計(jì)算機(jī)


RISC:精簡指令集計(jì)算機(jī)


尋址方式:指令系統(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)缺點(diǎn)有哪些锉屈?

答:

指令系統(tǒng)結(jié)構(gòu)類型優(yōu) ?點(diǎn)缺 ?點(diǎn)

寄存器-寄存器型

(0,3)

指令字長固定髓考,指令結(jié)構(gòu)簡潔部念,是一種簡單的代碼生成模型弃酌,各種指令的執(zhí)行時鐘周期數(shù)相近氨菇。與指令中含存儲器操作數(shù)的指令系統(tǒng)結(jié)構(gòu)相比,指令條數(shù)多妓湘,目標(biāo)代碼不夠緊湊查蓉,因而程序占用的空間比較大。

寄存器-存儲器型

(1榜贴,2)

可以在ALU指令中直接對存儲器操作數(shù)進(jìn)行引用豌研,而不必先用load指令進(jìn)行加載。容易對指令進(jìn)行編碼唬党,目標(biāo)代碼比較緊湊鹃共。由于有一個操作數(shù)的內(nèi)容將被破壞,所以指令中的兩個操作數(shù)不對稱驶拱。在一條指令中同時對寄存器操作數(shù)和存儲器操作數(shù)進(jìn)行編碼霜浴,有可能限制指令所能夠表示的寄存器個數(shù)。指令的執(zhí)行時鐘周期數(shù)因操作數(shù)的來源(寄存器或存儲器)不同而差別比較大蓝纲。

存儲器-存儲器型

(2阴孟,2)或(3,3)

目標(biāo)代碼最緊湊税迷,不需要設(shè)置寄存器來保存變量永丝。指令字長變化很大,特別是3操作數(shù)指令箭养。而且每條指令完成的工作也差別很大慕嚷。對存儲器的頻繁訪問會使存儲器成為瓶頸。這種類型的指令系統(tǒng)現(xiàn)在已不用了。


?指令集應(yīng)滿足哪幾個基本要求喝检?

答:對指令集的基本要求是:完整性砂心、規(guī)整性、高效率和兼容性蛇耀。

完整性是指在一個有限可用的存儲空間內(nèi)辩诞,對于任何可解的問題,編制計(jì)算程序時纺涤,指令集所提供的指令足夠使用译暂。

規(guī)整性主要包括對稱性和均勻性。對稱性是指所有與指令集有關(guān)的存儲單元的使用撩炊、操作碼的設(shè)置等都是對稱的外永。均勻性是指對于各種不同的操作數(shù)類型、字長拧咳、操作種類和數(shù)據(jù)存儲單元伯顶,指令的設(shè)置都要同等對待。

高效率是指指令的執(zhí)行速度快骆膝、使用頻度高祭衩。


?指令集結(jié)構(gòu)設(shè)計(jì)所涉及的內(nèi)容有哪些?

答:?(1) 指令集功能設(shè)計(jì):主要有RISC和CISC兩種技術(shù)發(fā)展方向阅签; (2) 尋址方式的設(shè)計(jì):設(shè)置尋址方式可以通過對基準(zhǔn)程序進(jìn)行測試統(tǒng)計(jì)掐暮,察看各種尋址方式的使用頻率,根據(jù)適用頻率設(shè)置必要的尋址方式政钟。 (3) 操作數(shù)表示和操作數(shù)類型:主要的操作數(shù)類型和操作數(shù)表示的選擇有:浮點(diǎn)數(shù)據(jù)類型路克、整型數(shù)據(jù)類型、字符型养交、十進(jìn)制數(shù)據(jù)類型等等精算。 (4) 尋址方式的表示:可以將尋址方式編碼于操作碼中,也可以將尋址方式作為一個單獨(dú)的域來表示碎连。 (5) 指令集格式的設(shè)計(jì):有變長編碼格式灰羽、固定長度編碼格式和混合型編碼格式3種。


?簡述CISC指令集結(jié)構(gòu)功能設(shè)計(jì)的主要目標(biāo)破花。從當(dāng)前的計(jì)算機(jī)技術(shù)觀點(diǎn)來看谦趣,CISC指令集結(jié)構(gòu)的計(jì)算機(jī)有什么缺點(diǎn)?

答:主要目標(biāo)是增強(qiáng)指令功能座每,把越來越多的功能交由硬件來實(shí)現(xiàn)前鹅,并且指令的數(shù)量也是越來越多。

缺點(diǎn): (1) CISC結(jié)構(gòu)的指令集中峭梳,各種指令的使用頻率相差懸殊舰绘。(2)CISC結(jié)構(gòu)指令的復(fù)雜性帶來了計(jì)算機(jī)體系結(jié)構(gòu)的復(fù)雜性蹂喻,這不僅增加了研制時間和成本,而且還容易造成設(shè)計(jì)錯誤捂寿。(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)的指令集中驳概,由于各條指令的功能不均衡性赤嚼,不利于采用先進(jìn)的計(jì)算機(jī)體系結(jié)構(gòu)技術(shù)(如流水技術(shù))來提高系統(tǒng)的性能。


簡述RISC指令集結(jié)構(gòu)的設(shè)計(jì)原則顺又。

答(1)?選取使用頻率最高的指令更卒,并補(bǔ)充一些最有用的指令;(2)每條指令的功能應(yīng)盡可能簡單稚照,并在一個機(jī)器周期內(nèi)完成蹂空;(3)所有指令長度均相同;(4)只有Load和Store操作指令才訪問存儲器果录,其它指令操作均在寄存器之間進(jìn)行上枕; (5) 以簡單有效的方式支持高級語言。


?指令中表示操作數(shù)類型的方法有哪幾種雕憔?

答:操作數(shù)類型有兩種表示方法:(1)操作數(shù)的類型由操作碼的編碼指定姿骏,這是最常見的一種方法糖声;(2)數(shù)據(jù)可以附上由硬件解釋的標(biāo)記斤彼,由這些標(biāo)記指定操作數(shù)的類型,從而選擇適當(dāng)?shù)倪\(yùn)算蘸泻。


?表示尋址方式的主要方法有哪些琉苇?簡述這些方法的優(yōu)缺點(diǎn)。

答:表示尋址方式有兩種常用的方法:(1)將尋址方式編于操作碼中悦施,由操作碼在描述指令的同時也描述了相應(yīng)的尋址方式并扇。這種方式譯碼快,但操作碼和尋址方式的結(jié)合不僅增加了指令的條數(shù)抡诞,導(dǎo)致了指令的多樣性穷蛹,而且增加了CPU對指令譯碼的難度。(2)為每個操作數(shù)設(shè)置一個地址描述符昼汗,由該地址描述符表示相應(yīng)操作數(shù)的尋址方式肴熏。這種方式譯碼較慢,但操作碼和尋址獨(dú)立顷窒,易于指令擴(kuò)展蛙吏。


?通常有哪幾種指令格式,請簡述其適用范圍。

答: (1) 變長編碼格式鸦做。如果系統(tǒng)結(jié)構(gòu)設(shè)計(jì)者感興趣的是程序的目標(biāo)代碼大小励烦,而不是性能,就可以采用變長編碼格式泼诱。(2)固定長度編碼格式坛掠。如果感興趣的是性能,而不是程序的目標(biāo)代碼大小治筒,則可以選擇固定長度編碼格式却音。 (3) 混合型編碼格式。需要兼顧降低目標(biāo)代碼長度和降低譯碼復(fù)雜度時矢炼,可以采用混合型編碼格式系瓢。


?根據(jù)CPU性能公式簡述RISC指令集結(jié)構(gòu)計(jì)算機(jī)和CISC指令集結(jié)構(gòu)計(jì)算機(jī)的性能特點(diǎn)。

答:CPU性能公式:CPU時間=IC×CPI×T

其中句灌,IC為目標(biāo)程序被執(zhí)行的指令條數(shù)夷陋,CPI為指令平均執(zhí)行周期數(shù),T是時鐘周期的時間胰锌。

相同功能的CISC目標(biāo)程序的指令條數(shù)ICCISC?少于RISC的ICRISC骗绕,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此资昧,CISC目標(biāo)程序的執(zhí)行時間比RISC的更長酬土。



第3章 流水線技術(shù)


3.2 指令的執(zhí)行可采用順序執(zhí)行、重疊執(zhí)行和流水線三種方式格带,它們的主要區(qū)別是什么撤缴?各有何優(yōu)缺點(diǎn)。

答:(1)指令的順序執(zhí)行是指指令與指令之間順序串行叽唱。即上一條指令全部執(zhí)行完后屈呕,才能開始執(zhí)行下一條指令。

優(yōu)點(diǎn):控制簡單棺亭,節(jié)省設(shè)備虎眨。缺點(diǎn):執(zhí)行指令的速度慢,功能部件的利用率低镶摘。

(2)指令的重疊指令是在相鄰的指令之間嗽桩,讓第k條指令與取第k+l條指令同時進(jìn)行。重疊執(zhí)行不能加快單條指令的執(zhí)行速度凄敢,但在硬件增加不多的情況下碌冶,可以加快相鄰兩條指令以及整段程序的執(zhí)行速度。與順序方式相比贡未,功能部件的利用率提高了种樱,控制變復(fù)雜了蒙袍。

(3)指令的流水執(zhí)行是把一個指令的執(zhí)行過程分解為若干個子過程,每個子過程由專門的功能部件來實(shí)現(xiàn)嫩挤。把多個處理過程在時間上錯開害幅,依次通過各功能段,每個子過程與其它的子過程并行進(jìn)行岂昭。依靠提高吞吐率來提高系統(tǒng)性能以现。流水線中各段的時間應(yīng)盡可能相等


3.3 簡述先行控制的基本思想。

答:先行控制技術(shù)是把緩沖技術(shù)和預(yù)處理技術(shù)相結(jié)合约啊。緩沖技術(shù)是在工作速度不固定的兩個功能部件之間設(shè)置緩沖器邑遏,用以平滑它們的工作。預(yù)處理技術(shù)是指預(yù)取指令恰矩、對指令進(jìn)行加工以及預(yù)取操作數(shù)等记盒。

采用先行控制方式的處理機(jī)內(nèi)部設(shè)置多個緩沖站,用于平滑主存外傅、指令分析部件纪吮、運(yùn)算器三者之間的工作。這樣不僅使它們都能獨(dú)立地工作萎胰,充分忙碌而不用相互等待碾盟,而且使指令分析部件和運(yùn)算器分別能快速地取得指令和操作數(shù),大幅度地提高指令的執(zhí)行速度和部件的效率技竟。這些緩沖站都按先進(jìn)先出的方式工作冰肴,而且都是由一組若干個能快速訪問的存儲單元和相關(guān)的控制邏輯組成。

采用先行控制技術(shù)可以實(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)△t


3.5 簡述流水線技術(shù)的特點(diǎn)境钟。

答:流水技術(shù)有以下特點(diǎn):

(1) 流水線把一個處理過程分解為若干個子過程锦担,每個子過程由一個專門的功能部件來實(shí)現(xiàn)。因此慨削,流水線實(shí)際上是把一個大的處理功能部件分解為多個獨(dú)立的功能部件洞渔,并依靠它們的并行工作來提高吞吐率套媚。

(2) 流水線中各段的時間應(yīng)盡可能相等,否則將引起流水線堵塞和斷流磁椒。

(3) 流水線每一個功能部件的前面都要有一個緩沖寄存器堤瘤,稱為流水寄存器。

(4)?流水技術(shù)適合于大量重復(fù)的時序過程浆熔,只有在輸入端不斷地提供任務(wù)本辐,才能充分發(fā)揮流水線的效率。

(5)?流水線需要有通過時間和排空時間医增。在這兩個時間段中慎皱,流水線都不是滿負(fù)荷工作。


3.6 解決流水線瓶頸問題有哪兩種常用方法叶骨?

答:細(xì)分瓶頸段與重復(fù)設(shè)置瓶頸段


3.7 減少流水線分支延遲的靜態(tài)方法有哪些茫多?

答:(1)預(yù)測分支失敗:沿失敗的分支繼續(xù)處理指令忽刽,就好象什么都沒發(fā)生似的地梨。當(dāng)確定分支是失敗時,說明預(yù)測正確缔恳,流水線正常流動宝剖;當(dāng)確定分支是成功時,流水線就把在分支指令之后取出的指令轉(zhuǎn)化為空操作歉甚,并按分支目標(biāo)地址重新取指令執(zhí)行万细。

(2)預(yù)測分支成功當(dāng)流水線ID段檢測到分支指令后,一旦計(jì)算出了分支目標(biāo)地址纸泄,就開始從該目標(biāo)地址取指令執(zhí)行赖钞。

(3)延遲分支:主要思想是從邏輯上“延長”分支指令的執(zhí)行時間。把延遲分支看成是由原來的分支指令和若干個延遲槽構(gòu)成聘裁。不管分支是否成功雪营,都要按順序執(zhí)行延遲槽中的指令。

3種方法的共同特點(diǎn):它們對分支的處理方法在程序的執(zhí)行過程中始終是不變的衡便。它們要么總是預(yù)測分支成功献起,要么總是預(yù)測分支失敗。


3.8 簡述延遲分支方法中的三種調(diào)度策略的優(yōu)缺點(diǎn)镣陕。

調(diào)度策略對調(diào)度的要求對流水線性能改善的影響

從前調(diào)度分支必須不依賴于被調(diào)度的指令總是可以有效提高流水線性能

從目標(biā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.12 有一指令流水線如下所示

求連續(xù)輸入10條指令,該流水線的實(shí)際吞吐率和效率硝清;

該流水線的“瓶頸”在哪一段辅斟?請采取兩種不同的措施消除此“瓶頸”。對于你所給出的兩種新的流水線芦拿,連續(xù)輸入10條指令時士飒,其實(shí)際吞吐率和效率各是多少?

解:(1)

(2)瓶頸在3蔗崎、4段酵幕。

變成八級流水線(細(xì)分)




重復(fù)設(shè)置部件








3.14 有一條靜態(tài)多功能流水線由5段組成,加法用1缓苛、3芳撒、4、5段未桥,乘法用1笔刹、2、5段冬耿,第3段的時間為2△t舌菜,其余各段的時間均為△t,而且流水線的輸出可以直接返回輸入端或




暫存于相應(yīng)的流水寄存器中∫嘞猓現(xiàn)要在該流水線上計(jì)算 ????????????日月,畫出其時空圖,并計(jì)算其吞吐率染乌、加速比和效率山孔。


解:首先,應(yīng)選擇適合于流水線工作的算法荷憋。對于本題,應(yīng)先計(jì)算A1+B1褐望、A2+B2勒庄、A3+B3和A4+B4串前;再計(jì)算(A1+B1) ×(A2+B2)和(A3+B3) ×(A4+B4);然后求總的結(jié)果实蔽。




其次荡碾,畫出完成該計(jì)算的時空圖,如圖所示局装,圖中陰影部分表示該段在工作坛吁。



由圖可見,它在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è)置有足夠的緩沖寄存器肋拔,若以最快的方式用該流水計(jì)算:

畫出時空圖锈津;

計(jì)算實(shí)際的吞吐率、加速比和效率凉蜂。

解:機(jī)器一共要做10次乘法维苔,4次加法。








第5章 存儲層次



簡述“Cache—主存”層次與“主存—輔存”層次的區(qū)別豁鲤。

答:

??????????????存儲層次

比較項(xiàng)目

“Cache—主存”層次“主存—輔存”層次

目的為了彌補(bǔ)主存速度的不足為了彌補(bǔ)主存容量的不足

存儲管理的實(shí)現(xiàn)全部由專用硬件實(shí)現(xiàn)主要由軟件實(shí)現(xiàn)

訪問速度的比值

(第一級比第二級)

幾比一幾萬比一

典型的塊(頁)大小幾十個字節(jié)幾百到幾千個字節(jié)

CPU對第二級的訪問方式可直接訪問均通過第一級

不命中時CPU是否切換不切換切換到其它進(jìn)程


地址映象方法有哪幾種兜材?它們各有什么優(yōu)缺點(diǎn)?

答:(1) 全相聯(lián)映象纫雁。實(shí)現(xiàn)查找的機(jī)制復(fù)雜煌往,代價(jià)高,速度慢。Cache空間的利用率較高刽脖,塊沖突概率較低羞海,因而Cache的失效率也低。(2)直接映象曲管。實(shí)現(xiàn)查找的機(jī)制簡單却邓,速度快。Cache空間的利用率較低院水,塊沖突概率較高腊徙,因而Cache的失效率也高。(3)組相聯(lián)映象檬某。組相聯(lián)是直接映象和全相聯(lián)的一種折衷撬腾。


降低Cache失效率有哪幾種方法?簡述其基本思想橙喘。

答:常用的降低Cache失效率的方法有下面幾種:

增加Cache塊大小时鸵。增加塊大小利用了程序的空間局部性。

增加Cache的容量厅瞎。

提高相聯(lián)度饰潜,降低沖突失效。

偽相聯(lián)Cache和簸,降低沖突失效彭雾。當(dāng)對偽相聯(lián)Cache進(jìn)行訪問時,首先是按與直接映象相同的方式進(jìn)行訪問锁保。如果命中薯酝,則從相應(yīng)的塊中取出所訪問的數(shù)據(jù),送給CPU爽柒,訪問結(jié)束吴菠。如果不命中,就將索引字段的最高位取反浩村,然后按照新索引去尋找“偽相聯(lián)組”中的對應(yīng)塊做葵。如果這一塊的標(biāo)識匹配,則稱發(fā)生了“偽命中”心墅。否則酿矢,就訪問下一級存儲器。

硬件預(yù)取技術(shù)怎燥。在處理器提出訪問請求前預(yù)取指令和數(shù)據(jù)瘫筐。

由編譯器控制的預(yù)取,硬件預(yù)取的替代方法铐姚,在編譯時加入預(yù)取的指令策肝,在數(shù)據(jù)被用到之前發(fā)出預(yù)取請求。

編譯器優(yōu)化,通過對軟件的優(yōu)化來降低失效率驳糯。

“犧牲”Cache篇梭。在Cache和其下一級存儲器的數(shù)據(jù)通路之間增設(shè)一個全相聯(lián)的小Cache氢橙,存放因沖突而被替換出去的那些塊酝枢。每當(dāng)發(fā)生不命中時,在訪問下一級存儲器之前悍手,先檢查“犧牲”Cache中是否含有所需的塊帘睦。如果有,就將該塊與Cache中某個塊做交換坦康,把所需的塊從“犧牲”Cache?調(diào)入Cache竣付。


簡述減小Cache失效開銷的幾種方法。

答:讓讀失效優(yōu)先于寫滞欠、寫緩沖合并古胆、請求字處理技術(shù)、非阻塞Cache或非鎖定Cache技術(shù)筛璧、采用二級Cache逸绎。


5.6?通過編譯器對程序優(yōu)化來改進(jìn)Cache性能的方法有哪幾種?簡述其基本思想夭谤。

答:(1)數(shù)組合并棺牧。通過提高空間局部性來減少失效次數(shù)。有些程序同時用相同的索引來訪問若干個數(shù)組的同一維朗儒,這些訪問可能會相互干擾颊乘,導(dǎo)致沖突失效,可以將這些相互獨(dú)立的數(shù)組合并成一個復(fù)合數(shù)組醉锄,使得一個Cache塊中能包含全部所需元素乏悄。(2)內(nèi)外循環(huán)交換。循環(huán)嵌套時恳不,程序沒有按數(shù)據(jù)在存儲器中的順序訪問檩小。只要簡單地交換內(nèi)外循環(huán),就能使程序按數(shù)據(jù)在存儲器中的存儲順序進(jìn)行訪問妆够。(3)循環(huán)融合识啦。有些程序含有幾部分獨(dú)立的程序段,它們用相同的循環(huán)訪問同樣的數(shù)組神妹,對相同的數(shù)據(jù)作不同的運(yùn)算颓哮。通過將它們?nèi)诤铣梢粋€單一循環(huán),能使讀入Cache的數(shù)據(jù)被替換出去之前得到反復(fù)的使用鸵荠。(4)分塊冕茅。通過改進(jìn)時間局部性來減少失效。分塊不是對數(shù)組的整行或整列進(jìn)行訪問,而是對子矩陣或塊進(jìn)行操作姨伤。


5.7 在“Cache—主存”層次中哨坪,主存的更新算法有哪兩種?它們各有什么特點(diǎn)乍楚?

答:(1)寫直達(dá)法当编。易于實(shí)現(xiàn),而且下一級存儲器中的數(shù)據(jù)總是最新的徒溪。

(2)寫回法忿偷。速度快,“寫”操作能以Cache存儲器的速度進(jìn)行臊泌。而且對于同一單元的多個寫最后只需一次寫回下一級存儲器鲤桥,有些“寫”只到達(dá)Cache,不到達(dá)主存渠概,因而所使用的存儲器頻帶較低茶凳。


5.8 組相聯(lián)Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出結(jié)論:采用組相聯(lián)一定能帶來性能上的提高播揪?為什么贮喧?

答:不一定。因?yàn)榻M相聯(lián)命中率的提高是以增加命中時間為代價(jià)的剪芍,組相聯(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è)采用寫直達(dá)策略检激,且有一個寫緩沖器肴捉,并且忽略寫緩沖器引起的等待。試問指令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的實(shí)際失效率比混合Cache的高作儿,但其平均訪存時間反而較低洛二。分離Cache提供了兩個端口,消除了結(jié)構(gòu)相關(guān)攻锰。


5.11 給定以下的假設(shè)晾嘶,試計(jì)算直接映象Cache和兩路組相聯(lián)Cache的平均訪問時間以及CPU的性能。由計(jì)算結(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í)行+存儲等待周期)*時鐘周期

CPU time=IC(CPI執(zhí)行+總失效次數(shù)/指令總數(shù)*失效開銷)?*時鐘周期

=IC((CPI執(zhí)行*時鐘周期)+(每條指令的訪存次數(shù)*失效率*失效開銷*時鐘周期))

CPU time 1-way=IC(2.0*2+1.2*0.014*80)=5.344IC

CPU time 2-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)泊碑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毯欣,隨后出現(xiàn)的幾起案子馒过,更是在濱河造成了極大的恐慌,老刑警劉巖仪媒,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沉桌,死亡現(xiàn)場離奇詭異谢鹊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)留凭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門佃扼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔼夜,你說我怎么就攤上這事兼耀。” “怎么了求冷?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵瘤运,是天一觀的道長。 經(jīng)常有香客問我匠题,道長拯坟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任韭山,我火速辦了婚禮郁季,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钱磅。我一直安慰自己梦裂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布盖淡。 她就那樣靜靜地躺著年柠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褪迟。 梳的紋絲不亂的頭發(fā)上冗恨,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音牵咙,去河邊找鬼派近。 笑死,一個胖子當(dāng)著我的面吹牛洁桌,可吹牛的內(nèi)容都是我干的渴丸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼另凌,長吁一口氣:“原來是場噩夢啊……” “哼谱轨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吠谢,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤土童,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后工坊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體献汗,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敢订,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了罢吃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片楚午。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖尿招,靈堂內(nèi)的尸體忽然破棺而出矾柜,到底是詐尸還是另有隱情,我是刑警寧澤就谜,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布怪蔑,位于F島的核電站,受9級特大地震影響丧荐,放射性物質(zhì)發(fā)生泄漏缆瓣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一篮奄、第九天 我趴在偏房一處隱蔽的房頂上張望捆愁。 院中可真熱鬧,春花似錦窟却、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咖城,卻和暖如春茬腿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宜雀。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工切平, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辐董。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓悴品,卻偏偏與公主長得像,于是被迫代替她去往敵國和親简烘。 傳聞我的和親對象是個殘疾皇子苔严,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354