第十章安騰高性能ppt課件_第1頁(yè)
第十章安騰高性能ppt課件_第2頁(yè)
第十章安騰高性能ppt課件_第3頁(yè)
第十章安騰高性能ppt課件_第4頁(yè)
第十章安騰高性能ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十章安騰高性能第十章安騰高性能處理機(jī)體系結(jié)構(gòu)處理機(jī)體系結(jié)構(gòu)前往本章學(xué)習(xí)要求:l了解高性能處理機(jī)體系結(jié)構(gòu)的發(fā)展過(guò)程;l理解安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想。第十章安騰高性能處理機(jī)體系結(jié)構(gòu)第十章安騰高性能處理機(jī)體系結(jié)構(gòu)l高性能處理機(jī)體系結(jié)構(gòu)的演變l安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想l安騰指令系統(tǒng)結(jié)構(gòu)l指令級(jí)并行機(jī)制l雙核安騰處理機(jī)的組成10.1高性能處理機(jī)體系結(jié)構(gòu)的演變高性能處理機(jī)體系結(jié)構(gòu)的演變一、IA體系結(jié)構(gòu)的歷史演變二、英特爾64位處理機(jī)的兩種體系結(jié)構(gòu)10.1高性能處理機(jī)體系結(jié)構(gòu)的演變高性能處理機(jī)體系結(jié)構(gòu)的演變一、IA體系結(jié)構(gòu)的歷史演變IA32體系結(jié)構(gòu):IA32家族中的第一款32位微處理機(jī)流水技術(shù)IA32

2、體系結(jié)構(gòu)仍是基于CISC架構(gòu)的處理機(jī)。Pentium體系結(jié)構(gòu):CISC外殼加RISC內(nèi)核的結(jié)構(gòu)10.1高性能處理機(jī)體系結(jié)構(gòu)的演變高性能處理機(jī)體系結(jié)構(gòu)的演變二、英特爾64位處理機(jī)的兩種體系結(jié)構(gòu)1、64T(英特爾64):基于顯式并行指令計(jì)算EPICExplicitly Parallel Instruction Computing技術(shù)的IA64體系結(jié)構(gòu),不與IA32指令系統(tǒng)的兼容性。2、安騰體系結(jié)構(gòu):與IA32指令系統(tǒng)的兼容性。10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想l安騰體系結(jié)構(gòu)脫離了IA32 CISC體系結(jié)構(gòu)的束縛,但并沒(méi)有完全照搬RISC處理機(jī)的設(shè)計(jì)思想。EPIC既不是RI

3、SC,也不是CISC,而是一種吸收了CISC和RISC兩者長(zhǎng)處的全新的體系結(jié)構(gòu)。主要體現(xiàn)在以下幾個(gè)方面:l顯式并行指令計(jì)算(EPIC)技術(shù)l超長(zhǎng)指令字(VLIW)技術(shù)l分支推斷技術(shù)l推測(cè)技術(shù)l軟件流水技術(shù)l寄存器堆棧技術(shù)10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想1、顯式并行指令計(jì)算(EPIC)技術(shù)安騰的指令中設(shè)計(jì)了屬性字段,用于指明哪些指令可以并行執(zhí)行。這些屬性信息并不是在指令執(zhí)行過(guò)程中由處理機(jī)判定后獲得的,而是由編譯程序在編譯時(shí)通過(guò)對(duì)源代碼的分析獲取指令級(jí)的并行性信息,并填寫(xiě)到執(zhí)行代碼中。這就是所謂顯式并行的概念。EPIC技術(shù)則充分利用現(xiàn)代編譯程序強(qiáng)大的對(duì)程序執(zhí)行過(guò)程的調(diào)度

4、能力,由專(zhuān)用的EPIC編譯器首先分析源代碼,根據(jù)指令之間的依賴關(guān)系最大限度地挖掘指令級(jí)的并行性,從而確定哪些指令可以并行執(zhí)行,然后把并行指令放在一起并重新排序,提取并調(diào)度其指令級(jí)的并行,并將這種并行性通過(guò)屬性字段“顯式地告知指令執(zhí)行部件。 10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想2、超長(zhǎng)指令字(VLIW)技術(shù)超長(zhǎng)指令字(VLIW)技術(shù)是提高計(jì)算機(jī)系統(tǒng)并行性的有效手段。VLIW系統(tǒng)中指令字長(zhǎng)可多達(dá)幾百位,編譯器經(jīng)過(guò)優(yōu)化,能將多條能夠并行執(zhí)行的指令合并成一個(gè)具有多個(gè)操作碼的超長(zhǎng)指令字,控制多個(gè)獨(dú)立的功能部件工作。EPIC是基于超長(zhǎng)指令字的設(shè)計(jì)。 通過(guò)將多條指令放入一個(gè)超長(zhǎng)指令字

5、,能有效提高處理機(jī)內(nèi)各個(gè)執(zhí)行部件的利用率。 10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想3、分支推斷技術(shù)技術(shù)能將傳統(tǒng)的“ifthenelse分支結(jié)構(gòu)轉(zhuǎn)變?yōu)闊o(wú)分支的順序/并行代碼,以避免由于錯(cuò)誤預(yù)測(cè)分支而付出代價(jià)。當(dāng)處理機(jī)在運(yùn)行中遇到分支時(shí),它并不是進(jìn)行傳統(tǒng)的分支預(yù)測(cè)并選擇可能性最大的一個(gè)分支執(zhí)行,而是按分支的所有可能的后續(xù)路徑開(kāi)始并行執(zhí)行多段代碼并暫存各段代碼的執(zhí)行結(jié)果,直到處理機(jī)能夠確認(rèn)分支轉(zhuǎn)移與否的條件是真是假時(shí),處理機(jī)再把應(yīng)該選擇的路徑上的指令執(zhí)行結(jié)果保留下來(lái)。 采用了推斷技術(shù)后,原有的轉(zhuǎn)移指令被轉(zhuǎn)換成條件執(zhí)行指令。原有的轉(zhuǎn)移指令的所有的分支都被并行執(zhí)行,無(wú)論哪條分支將被

6、命中,都不會(huì)出現(xiàn)流水線斷流現(xiàn)象,故消除了因分支預(yù)測(cè)失誤而重新裝載流水線導(dǎo)致的低效率現(xiàn)象。更進(jìn)一步,以前由于程序分支和指令依賴等因素不能并行執(zhí)行的許多指令現(xiàn)在完全可以并行執(zhí)行,從而提高了處理機(jī)的執(zhí)行效率。 10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想4、推測(cè)技術(shù)推測(cè)技術(shù),包括控制推測(cè)和數(shù)據(jù)推測(cè),以減少存儲(chǔ)器訪問(wèn)響應(yīng)時(shí)間的影響??刂仆茰y(cè)技術(shù)和數(shù)據(jù)推測(cè)技術(shù)允許提前執(zhí)行從內(nèi)存單元至通用寄存器的取數(shù)指令。當(dāng)程序中有分支時(shí),控制推測(cè)技術(shù)將位于分支指令之后的取數(shù)指令提前若干周期執(zhí)行,以此消除訪存延時(shí),提高指令執(zhí)行的并行度。而數(shù)據(jù)推測(cè)技術(shù)則用于解決提前取數(shù)指令后的數(shù)據(jù)相關(guān)性問(wèn)題。推測(cè)技術(shù)避免了

7、cache命中失敗而導(dǎo)致訪存延遲的損失,消除了因處理機(jī)空閑而導(dǎo)致的并行性降低的缺憾。 10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想5、軟件流水技術(shù)安騰體系結(jié)構(gòu)提供了很強(qiáng)的硬件支持,使循環(huán)執(zhí)行過(guò)程中一次循環(huán)的代碼執(zhí)行與下一次循環(huán)代碼的執(zhí)行在時(shí)間上部分重疊,也即下一個(gè)循環(huán)步可以在上一個(gè)循環(huán)步結(jié)束前開(kāi)始執(zhí)行。 安騰體系結(jié)構(gòu)引入了新機(jī)制來(lái)支持軟件流水,包括自動(dòng)寄存器重命名、推斷執(zhí)行和特殊的循環(huán)終止指令。因此,安騰處理機(jī)能夠通過(guò)旋轉(zhuǎn)寄存器機(jī)制為每個(gè)循環(huán)步提供自己的寄存器,并且不需要把循環(huán)擴(kuò)展開(kāi)來(lái)。安騰體系結(jié)構(gòu)中硬件對(duì)編譯器管理軟件流水線的支持使得編譯器能夠生成精簡(jiǎn)的代碼,以高度并行的方式

8、實(shí)現(xiàn)循環(huán)操作。 10.2安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想安騰體系結(jié)構(gòu)的基本設(shè)計(jì)思想6、寄存器堆棧技術(shù)安騰處理機(jī)利用128個(gè)通用寄存器中的96個(gè)堆棧寄存器實(shí)現(xiàn)寄存器堆棧,并在處理機(jī)內(nèi)部設(shè)置一個(gè)寄存器堆棧引擎RSE來(lái)管理寄存器堆棧。當(dāng)96個(gè)堆棧寄存器不夠用時(shí),寄存器堆棧引擎能夠自動(dòng)將寄存器堆棧與內(nèi)存儲(chǔ)器對(duì)接,將寄存器堆棧溢出的數(shù)據(jù)轉(zhuǎn)移到內(nèi)存儲(chǔ)器中保存,或在寄存器堆棧彈出數(shù)據(jù)時(shí)執(zhí)行反向操作。這樣,編譯器將看到一個(gè)容量沒(méi)有限制的寄存器堆??臻g。 10.3安騰指令系統(tǒng)結(jié)構(gòu)安騰指令系統(tǒng)結(jié)構(gòu)一、執(zhí)行單元與指令類(lèi)型 為提高并行處理能力,安騰處理機(jī)內(nèi)部設(shè)置了多個(gè)執(zhí)行單元。這些執(zhí)行單元被分為四類(lèi):I單元:整數(shù)執(zhí)行單元,

9、用于執(zhí)行整數(shù)算術(shù)運(yùn)算、邏輯運(yùn)算、移位和比特處理等指令,以及32位數(shù)據(jù)和指針操作。M單元:存儲(chǔ)器執(zhí)行單元,用于執(zhí)行通用寄存器、浮點(diǎn)寄存器和存儲(chǔ)器之間的取數(shù)load)指令、存數(shù)(store)指令以及某些整數(shù)ALU運(yùn)算指令。B單元:轉(zhuǎn)移執(zhí)行單元,用于執(zhí)行轉(zhuǎn)移分支類(lèi)指令。F單元:浮點(diǎn)執(zhí)行單元,用于執(zhí)行浮點(diǎn)運(yùn)算指令。相應(yīng)地,安騰指令系統(tǒng)中的所有指令被分成六種類(lèi)型,每種指令使用一種或多種執(zhí)行單元。10.3安騰指令系統(tǒng)結(jié)構(gòu)安騰指令系統(tǒng)結(jié)構(gòu)二、安騰寄存器結(jié)構(gòu)與RISC體系結(jié)構(gòu)類(lèi)似,安騰體系結(jié)構(gòu)大量使用寄存器操作;見(jiàn)下一頁(yè)圖只有取數(shù)load和存數(shù)store指令才能夠訪問(wèn)內(nèi)存,所有其他指令都在寄存器上操作。在以安

10、騰為基礎(chǔ)的處理機(jī)內(nèi),用戶可直接使用的寄存器數(shù)量甚至大大超過(guò)了主流RISC處理機(jī)。一方面可以加快數(shù)據(jù)存取的速度,減少訪存延遲,另一方面可以更好地支持并行操作。安騰的主要寄存器10.3安騰指令系統(tǒng)結(jié)構(gòu)安騰指令系統(tǒng)結(jié)構(gòu)三、安騰指令格式典型指令格式:安騰的每條指令占41位。對(duì)于寄存器操作數(shù),需要7位選擇128個(gè)通用寄存器或浮點(diǎn)寄存器。故一條典型的RRR型安騰指令需要21位來(lái)標(biāo)識(shí)兩個(gè)源寄存器操作數(shù)和一個(gè)目標(biāo)寄存器操作數(shù)。大多數(shù)指令還需要一個(gè)6位字段選擇64個(gè)推斷寄存器之一,用于支持推斷執(zhí)行、軟件流水等功能。指令束格式安騰體系結(jié)構(gòu)采用超長(zhǎng)指令字技術(shù),利用集束指令合成;10.3安騰指令系統(tǒng)結(jié)構(gòu)安騰指令系統(tǒng)結(jié)

11、構(gòu)l指令組l指令組將相互之間沒(méi)有讀后寫(xiě)相關(guān),寫(xiě)后寫(xiě)相關(guān),可以并行執(zhí)行的一組指令集合。l指令束模版l模版字段正是為實(shí)現(xiàn)EPIC的設(shè)計(jì)思想服務(wù)的:一方面,編譯器可以通過(guò)5位模版字段指明每個(gè)指令槽中的指令使用哪一個(gè)執(zhí)行單元;另一方面,編譯器可以通過(guò)模板字段明確給出指令束內(nèi)或指令束間的依賴關(guān)系。l 10.3安騰指令系統(tǒng)結(jié)構(gòu)安騰指令系統(tǒng)結(jié)構(gòu)四、安騰匯編語(yǔ)言格式qpMnemonic. Comp1. Comp2 dest=srcmnemonic為指令助記符。dest為目標(biāo)操作數(shù),指明存放運(yùn)算結(jié)果的寄存器。src為源操作數(shù),給出若干個(gè)寄存器操作數(shù)或立即數(shù)。qp選擇64個(gè)推斷寄存器之一。在指令執(zhí)行時(shí),如果選定的

12、一比特推斷寄存器的當(dāng)前值為1,則該指令的執(zhí)行結(jié)果最終會(huì)被硬件采用;否則,該指令的執(zhí)行結(jié)果將被硬件放棄。對(duì)于不需要推斷寄存器的指令,在機(jī)器指令中將默認(rèn)指定推斷寄存器0,該寄存器的值固定為0。因此,所有的指令都可以看作是條件執(zhí)行的。p1. Comp2 為指令完成符,用于進(jìn)一步限定指令所需完成的操作。例例1:下面給出一些匯編指令下面給出一些匯編指令add rl=r2,r3 /簡(jiǎn)單指令:r2+r3=r1(P4)add rl=r2,r3 /推斷指令,指定推斷寄存器4add r1=r2,r3, /立即尋址指令cmpeq P3,P5=0,r4 /帶指令完成符的指令:將r4寄存器的值與0比較,若相等則置推斷寄

13、存器P3為1,P5為0;否則置推斷寄存器P3為0,P5為1ld8 r1=r7 /從寄存器r7指向的存儲(chǔ)器空間讀取連續(xù)8個(gè)字節(jié),裝入寄存器r1add r6=r9,r8; /與上一條指令不存在相關(guān)性,故可放在一個(gè)指令組中sub r3=r1,r4 /第一條指令的目標(biāo)操作數(shù)是本指令的源操作數(shù),故需重新開(kāi)始一個(gè)指令組st8 r6=r10 /將寄存器r10的內(nèi)容存入寄存器r6指向的存儲(chǔ)器單元10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制一、推斷執(zhí)行技術(shù)1、分支對(duì)系統(tǒng)性能的影響分支是在兩個(gè)指令序列中根據(jù)判定條件選擇其中一個(gè)序列執(zhí)行。為了判定最終選擇哪一個(gè)指令序列執(zhí)行,必須等待一些條件判斷指令的執(zhí)行結(jié)果。指令執(zhí)行一旦遇

14、到分支轉(zhuǎn)移,在執(zhí)行判定操作之前,多個(gè)功能部件由于無(wú)法確定程序的執(zhí)行方向而空閑等待,使系統(tǒng)性能明顯下降。分支預(yù)測(cè)并不能充分利用處理機(jī)流水線的功能部件10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制2、安騰的推斷技術(shù)原理推斷技術(shù)處理分支的方法是利用多個(gè)功能部件并行執(zhí)行各個(gè)分支,然后根據(jù)判定結(jié)果選取某一分支的運(yùn)行結(jié)果,因而可消除大部分的轉(zhuǎn)移,使得整個(gè)系統(tǒng)的運(yùn)行速度得到提高。采用顯式并行指令計(jì)算技術(shù)的安騰處理機(jī)將處理機(jī)的多個(gè)功能部件的并行處理能力與編譯器的強(qiáng)大功能相結(jié)合,允許在編譯時(shí)讓編譯器對(duì)程序進(jìn)行優(yōu)化,消除轉(zhuǎn)移,提高效率。安騰處理機(jī)的指令系統(tǒng)允許在每條指令中都指定一個(gè)推斷寄存器。10.4指令級(jí)并行機(jī)制指令級(jí)并

15、行機(jī)制3、推斷執(zhí)行的實(shí)現(xiàn)例2考察下面的一個(gè)典型的if-then-else結(jié)構(gòu):If (x=0) then m=m+1 else m=m-1 在傳統(tǒng)的超標(biāo)量流水線體系結(jié)構(gòu)中,完成上述判斷通常要首先安排一條比較語(yǔ)句,將x與0進(jìn)行比較。得到比較結(jié)果后,再選擇執(zhí)行then分支或else分支。 相應(yīng)的匯編語(yǔ)句大致如下所示:cmp x,0;比較x和0je L1;若相等則轉(zhuǎn)移至標(biāo)號(hào)L1sub m,1;m=m-1jmp L2;無(wú)條件轉(zhuǎn)移至標(biāo)號(hào)L2L1:add m,1;m=m+lL2:10.4指令級(jí)并行機(jī)制例指令級(jí)并行機(jī)制例2續(xù)續(xù) 而安騰處理機(jī)可以通過(guò)編譯優(yōu)化消除條件語(yǔ)句中的分支指令,將該結(jié)構(gòu)轉(zhuǎn)化成順序的推測(cè)執(zhí)

16、行結(jié)構(gòu):cmpeq P1,P2=0,x;/無(wú)條件執(zhí)行:將r4寄存器的值與0比較,若相等則置推斷寄存器P1為1,P2為0,否則置推斷寄存器P1為0,P2為1 (P1)add m=1,m /若P1為1,則m+1送m(P2)add m=-1,m /若P2為1,則m-1送m從判定流程上,似乎上面的三條語(yǔ)句并沒(méi)有從邏輯上改變if-then-else結(jié)構(gòu)的執(zhí)行過(guò)程。但如果我們能夠把這個(gè)例子和安騰體系結(jié)構(gòu)結(jié)合起來(lái),還是可以從這個(gè)簡(jiǎn)單的例子中體會(huì)到安騰處理機(jī)的設(shè)計(jì)思想。10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制4、安騰處理機(jī)設(shè)計(jì)思想首先,安騰指令系統(tǒng)中的每條指令都能夠支持推斷執(zhí)行,所以第二條指令和第三條指令中的條件

17、判斷并不需要使用專(zhuān)門(mén)的判斷指令。雖然后面兩條指令是條件執(zhí)行的,但整體條件判斷結(jié)構(gòu)不再需要分支指令。其次,指令中的推斷操作的安排是由編譯器在編譯過(guò)程中完成的,不需要處理機(jī)在執(zhí)行指令的非常短的時(shí)間內(nèi)動(dòng)態(tài)安排各條指令的條件執(zhí)行。最后,每條指令中雖然可以指定推斷寄存器,但取指令、指令譯碼和執(zhí)行操作并不需要等到推斷寄存器的取值確定后再進(jìn)行。 下面可以看一下傳統(tǒng)流水線與安騰處理機(jī)比較。傳統(tǒng)流水線與安騰處理機(jī)比較10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制二、推測(cè)技術(shù)1、存儲(chǔ)器訪問(wèn)延遲與指令級(jí)并行在現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)中,多級(jí)存儲(chǔ)體系能夠有效提高存儲(chǔ)系統(tǒng)的性能價(jià)格比。但是,在多個(gè)功能單元實(shí)現(xiàn)并行處理的處理機(jī)中,執(zhí)行指

18、令的速度仍然受到存儲(chǔ)器訪問(wèn)速度的制約?,F(xiàn)代RISC處理機(jī)用專(zhuān)用指令訪問(wèn)內(nèi)存,取數(shù)指令往往成為影響處理機(jī)性能的瓶頸。見(jiàn)下圖看一下取數(shù)指令對(duì)處理機(jī)并行執(zhí)行指令的影響。取數(shù)指令對(duì)處理機(jī)并行執(zhí)行指令的影響給出的實(shí)例顯示了取數(shù)指令對(duì)處理機(jī)并行執(zhí)行指令的影響?,F(xiàn)利用具有四個(gè)并行執(zhí)行單元的超標(biāo)量處理機(jī)完成如下的指令序列:load(a)/從內(nèi)存單元取數(shù)至寄存器ak=k+1i=i-1n=n+3q=q+a假設(shè)所有的算術(shù)運(yùn)算指令可以在一個(gè)時(shí)鐘周期中完成,而訪存指令需要三個(gè)時(shí)鐘周期。前四條指令可以分別安排在四個(gè)執(zhí)行單元中并行執(zhí)行。如果load指令所要訪問(wèn)的內(nèi)存單元并沒(méi)有被調(diào)入cache,那么load指令直接訪問(wèn)內(nèi)存需

19、要三個(gè)時(shí)鐘周期才能執(zhí)行完畢。而第五條指令依賴于load指令取得的操作數(shù),所以在執(zhí)行第五條指令之前需要等待兩個(gè)時(shí)鐘周期,從而所有的執(zhí)行單元都必須閑置兩個(gè)時(shí)鐘周期,這就大大降低了執(zhí)行效率。10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制2、控制推測(cè)解決處理機(jī)訪存延遲的辦法就是將訪存操作盡可能提前執(zhí)行。在安騰處理機(jī)中,控制推測(cè)技術(shù)用于解決上述與取數(shù)指令有關(guān)的控制相關(guān)問(wèn)題。10.4指令級(jí)并行機(jī)制指令級(jí)并行機(jī)制3、數(shù)據(jù)推測(cè)控制推測(cè)技術(shù)能夠解決分支和取數(shù)操作中的控制相關(guān),但在指令優(yōu)化過(guò)程中還可能存在數(shù)據(jù)相關(guān)?!纠纠?】考察下面包含分支與取數(shù)指令的程序段:】考察下面包含分支與取數(shù)指令的程序段: if(r3=0) th

20、en r2=r2+1 else r1=r3其功能是判斷指針寄存器r3的值是否為零:若是則將寄存器r2加1;否則將r3指向的內(nèi)存單元的內(nèi)容加載到寄存器r1中。其原始匯編代碼如下:cmpeq P1,P2=0,r3;/無(wú)條件執(zhí)行:將r3寄存器的值與0比較,若相等則置推斷寄存器P1為1,P2為0,否則置推斷寄存器P1為0,P2為1(P1) add r2=1,r2 /若P1為1,則r2+1送r2 (P2)ld8 r1=r3/若P2為1,則以r3的內(nèi)容為地址訪存.,8字節(jié)操作數(shù)被加載至寄存器r1.為了減少訪存延遲,希望將第3條取數(shù)指令提前至第1條指令的前面,或是更早的位置。但第3條指令是推斷執(zhí)行的,其實(shí)際

21、結(jié)果只有在P2為真的情況下才會(huì)被真正存儲(chǔ)。如果第3條指令固執(zhí)行錯(cuò)誤而引起異常處理,但最后發(fā)現(xiàn)該取數(shù)指令實(shí)際上并不需要執(zhí)行,那么將浪費(fèi)大量時(shí)間。安騰體系結(jié)構(gòu)采用的控制推測(cè)技術(shù)對(duì)此的解決方案安騰體系結(jié)構(gòu)采用的控制推測(cè)技術(shù)對(duì)此的解決方案l由編譯器將一條取數(shù)指令分解為兩條指令:(1)推測(cè)取數(shù)指令(loads),可以提前到適當(dāng)位置先期執(zhí)行取數(shù)操作,但如果需要進(jìn)行異常處理時(shí),并不真正調(diào)用操作系統(tǒng)的異常處理例程,而僅僅設(shè)置一個(gè)與被裝入寄存器相關(guān)聯(lián)的標(biāo)志。這一標(biāo)志就是每個(gè)通用寄存器中64位以外的延遲異常標(biāo)記(NaT)位。(2)推測(cè)檢查指令chks), 安排在原來(lái)的取數(shù)指令位置,也即真正使用數(shù)據(jù)之前的位置。ch

22、ks指令檢查被裝入的寄存器的延遲異常標(biāo)記位:如果有未被執(zhí)行的異常處理,則轉(zhuǎn)入異常處理程序;否則,處理機(jī)將loads指令的執(zhí)行結(jié)果保存,并繼續(xù)執(zhí)行下一條指令?!纠纠?】按照上面的處理方式,安騰的編譯器】按照上面的處理方式,安騰的編譯器將對(duì)例將對(duì)例3的匯編代碼進(jìn)行優(yōu)化的匯編代碼進(jìn)行優(yōu)化1d8.S r1r3/以r3內(nèi)容為地址訪存,推測(cè)加載寄存器r1/加載指令被提前若干個(gè)周期cmpeq P1,P2=0,r3;/無(wú)條件執(zhí)行:將r3寄存器的值與0比較,若相等則置推斷寄存器P1為1,P2為0,否則置推斷寄存器P1為0,P2為1(P1) add r2=1,r2 /若P1為1,則r2+l送r2(P2) chk

23、S r1err_recov /若P2為1,則檢查r1寄存器的NaT標(biāo)記,若NaT=1,則轉(zhuǎn)入err_recov例程,若NaT0,則保存r3到r1【例【例5】研究下面的程序段】研究下面的程序段add r5=4,r0;st4r7=r5; / /將r5的值存入r7指向的內(nèi)存單元ld4 r2=r8;/以r8的內(nèi)容為地址訪存,加載寄存器r2add r6=r2,r5 /r6=r2+r5其中第4條指令需要使用第3條指令取數(shù)的結(jié)果。為了減少訪存延遲,編譯器可以將第3條指令提前到第1條指令之前。但這樣做的風(fēng)險(xiǎn)是,假如當(dāng)前寄存器r8的值和r7的值相等,則意味著第三條取數(shù)指令和第二條存數(shù)指令訪問(wèn)的是同一個(gè)內(nèi)存單元。

24、而把取數(shù)指令提前到存數(shù)指令之前將使取數(shù)指令得到存數(shù)之前的值,而不是程序原意要使用的存數(shù)指令執(zhí)行之后的取值。因此,在傳統(tǒng)體系結(jié)構(gòu)中,如果編譯器不能確定存數(shù)和取數(shù)的目標(biāo)地址是否相同(例如在上例中使用指針訪存的情況),則存數(shù)指令之后的取數(shù)指令將不能被移到存數(shù)指令之前.安騰處理機(jī)采用數(shù)據(jù)推測(cè)技術(shù)安騰處理機(jī)采用數(shù)據(jù)推測(cè)技術(shù)l解決上述問(wèn)題。與控制推測(cè)技術(shù)的解決辦法類(lèi)似,由編譯器將一條取數(shù)指令分解為兩條指令:l(1高級(jí)取數(shù)指令(loada),可以提前到適當(dāng)位置先期執(zhí)行取數(shù)操作,但該指令執(zhí)行時(shí)除了從給定的內(nèi)存單元取數(shù)據(jù)之外,還將被訪問(wèn)的內(nèi)存單元的地址登記到一個(gè)名為高級(jí)取數(shù)地址表(ALAT)的硬件數(shù)據(jù)結(jié)構(gòu)中。該

25、地址表中保存了所有已經(jīng)被取數(shù)指令訪問(wèn)過(guò)、且未被存數(shù)指令修改過(guò)的內(nèi)存單元的地址、相應(yīng)的寄存器以及存取數(shù)據(jù)的字節(jié)數(shù)。安騰的所有存數(shù)指令在執(zhí)行時(shí)均會(huì)根據(jù)存數(shù)的目標(biāo)內(nèi)存地址檢索該地址表,如果檢索到地址匹配,則從地址表中刪除該地址。l(2取數(shù)檢查指令(load c), 安排在原來(lái)的取數(shù)指令位置,也即真正使用數(shù)據(jù)之前的位置。該指令執(zhí)行時(shí)將檢索高級(jí)取數(shù)地址表,以便確認(rèn)在高級(jí)取數(shù)指令執(zhí)行后、取數(shù)檢查指令執(zhí)行前是否有任何指令修改了高級(jí)取數(shù)指令訪問(wèn)過(guò)的內(nèi)存單元:如果檢索到匹配項(xiàng),則說(shuō)明沒(méi)有任何指令修改過(guò)高級(jí)取數(shù)指令訪問(wèn)過(guò)的內(nèi)存單元,取數(shù)檢查指令不再執(zhí)行其他操作;如果檢索不成功,則取數(shù)檢查指令重新執(zhí)行一次取數(shù)操作,

26、以便加載到最新的數(shù)據(jù)。例例6按照上面的處理方式,安騰的編按照上面的處理方式,安騰的編譯器將對(duì)例譯器將對(duì)例5的匯編代碼進(jìn)行優(yōu)化:的匯編代碼進(jìn)行優(yōu)化:ld4a r2=r8 /高級(jí)取數(shù), /以r8的內(nèi)容為地址訪存add r5=4,r0;st4r7=r5 /將r5的值存入r7 /指向的內(nèi)存單元ld4c r2=r8; /檢查以r8為指針的寄存器 / r2加載操作add r6=r2,r5 /r6=r2+r510.5雙核安騰處理機(jī)的組成雙核安騰處理機(jī)的組成一、雙核安騰處理機(jī)的基本特性1、并行處理技術(shù)2、顯式并行指令計(jì)算技術(shù)3、超線程技術(shù)4、三級(jí)大容量高速緩沖存儲(chǔ)器5、硬件輔助虛擬化技術(shù)6、高速緩存安全技術(shù)虛

27、擬化技術(shù)虛擬化技術(shù) 所謂虛擬化,是指用單個(gè)處理機(jī)模擬多個(gè)處理機(jī)并行工作,而每個(gè)處理機(jī)都可以被看作一個(gè)獨(dú)立的工作環(huán)境,從而在一個(gè)平臺(tái)上同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且每一個(gè)操作系統(tǒng)中都有多個(gè)程序運(yùn)行。應(yīng)用程序在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。前往超線程技術(shù)超線程技術(shù)1/2l在雙核安騰處理機(jī)中,英特爾首次把在奔騰4處理機(jī)中采用的超線程(Hyper Threading)技術(shù)引進(jìn)到安騰處理器家族中,每個(gè)處理機(jī)支持四個(gè)線程,使其能夠處理的應(yīng)用線程數(shù)是早期單核產(chǎn)品的四倍。前往超線程技術(shù)超線程技術(shù)2/2l超線程技術(shù)在一顆處理機(jī)芯片內(nèi)設(shè)計(jì)多個(gè)邏輯上的處理機(jī)內(nèi)核,這些邏輯上的內(nèi)核共享處理

28、機(jī)內(nèi)的整數(shù)運(yùn)算單元、浮點(diǎn)運(yùn)算單元和二級(jí)cache等資源,但卻被模擬成多個(gè)物理內(nèi)核芯片。從軟件的角度看,系統(tǒng)中好像存在多個(gè)獨(dú)立的處理機(jī)內(nèi)核,因而可以讓單個(gè)處理機(jī)在線程級(jí)實(shí)現(xiàn)并行計(jì)算,支持多線程的操作系統(tǒng)和應(yīng)用軟件。但核心硬件資源實(shí)際上只有一套,故當(dāng)多個(gè)線程同時(shí)訪問(wèn)某一個(gè)資源時(shí),其中一個(gè)線程要暫時(shí)停止并讓出資源,直到這些資源閑置后才能繼續(xù)執(zhí)行。前往10.5雙核安騰處理機(jī)的組成雙核安騰處理機(jī)的組成二、雙核安騰處理機(jī)的組織結(jié)構(gòu)1、指令執(zhí)行單元2、處理機(jī)流水線3、cache組織4、雙核仲裁前往雙核安騰處理機(jī)流水線雙核安騰處理機(jī)流水線 顯示了安騰處理機(jī)的八級(jí)內(nèi)核流水線結(jié)構(gòu)。流水線每個(gè)時(shí)鐘周期可以執(zhí)行最多6條指令。前兩個(gè)流水級(jí)構(gòu)成前端,執(zhí)行取指令操作IPG,指令指針生成,并將指令送入指令旋轉(zhuǎn)級(jí)(ROT)的去耦緩沖器。擴(kuò)展流水級(jí)(EXP)實(shí)現(xiàn)指令分派,REN級(jí)實(shí)現(xiàn)寄存器重命名。寄存器讀操作級(jí)(REG)完成提交操作碼操作,在這一級(jí)訪問(wèn)寄存器文件并在處理完推斷控制后通過(guò)旁路網(wǎng)絡(luò)提交數(shù)據(jù)。最后三級(jí)實(shí)現(xiàn)寬并行執(zhí)行EXE、異

溫馨提示

  • 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)論