




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章計(jì)算機(jī)體系結(jié)構(gòu)的基本概念1. 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的經(jīng)典定義程序員所看到的計(jì)算機(jī)屬性,即概念性結(jié)構(gòu)與功能特性。(計(jì)算機(jī)組成:指計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn)。計(jì)算機(jī)實(shí)現(xiàn):計(jì)算機(jī)組成的物理實(shí)現(xiàn))2. 計(jì)算機(jī)系統(tǒng)的多級(jí)層次結(jié)構(gòu):1. 虛擬機(jī):應(yīng)用語(yǔ)言機(jī)器-高級(jí)語(yǔ)言機(jī)器-匯編語(yǔ)言機(jī)器-操作系統(tǒng)機(jī)器2. 物理機(jī):傳統(tǒng)機(jī)器語(yǔ)言機(jī)器-微程序機(jī)器3. 透明性:在計(jì)算機(jī)技術(shù)中,把這種本來(lái)存在的事物或?qū)傩裕珡哪撤N角度看又好像不存在的概念稱(chēng)為透明性。4. 編譯:先用轉(zhuǎn)換程序把高一級(jí)機(jī)器上的程序轉(zhuǎn)換為低一級(jí)機(jī)器上等效的程序5. 解釋?zhuān)簩?duì)于高一級(jí)機(jī)器上的程序中的每一條語(yǔ)句或指令,都轉(zhuǎn)去執(zhí)行低一級(jí)機(jī)器上的一段等效程序。6.
2、 常見(jiàn)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)分類(lèi)法有兩種:Flynn分類(lèi)法、氏分類(lèi)法(按系統(tǒng)并行度Pm:計(jì)算機(jī)系統(tǒng)在單位時(shí)間能處理的最大二進(jìn)制位數(shù) )進(jìn)行分類(lèi)。Flynn分類(lèi)法把計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)分為4類(lèi):?jiǎn)沃噶盍鲉螖?shù)據(jù)流(SISD)單指令流多數(shù)據(jù)流(SIMD)多指令流單數(shù)據(jù)流(MISD)多指令流多數(shù)據(jù)流(MIMD)IS指令流,DS數(shù)據(jù)流,CS(控制流),CU(控制部件),PU(處理部件),MM,SM(表示存儲(chǔ)器)7. 計(jì)算機(jī)設(shè)計(jì)的定量原理:1. 大概率事件優(yōu)先原理(分配更多資源,達(dá)到更高性能)2. Amdahl定理:加速比:Sn=T0(加速前)Tn(加速后)=11-Fe+Fe/Se(Fe為可改進(jìn)比例(可改進(jìn)部分的執(zhí)
3、行時(shí)間/總的執(zhí)行時(shí)間),Se為部件加速比(改進(jìn)前/改進(jìn)后)3. 程序的局部性原理:時(shí)間局部性:程序即將使用的信息很可能是目前使用的信息。空間局部性:即將用到的信息可能與目前用到的信息在空間上相鄰或相近。4. CPU性能公式:1. 時(shí)鐘周期時(shí)間2. CPI:CPI = 執(zhí)行程序所需的時(shí)鐘周期數(shù)IC3. IC(程序所執(zhí)行的指令條數(shù))8. 并行性:計(jì)算機(jī)系統(tǒng)在同一時(shí)刻或者同一時(shí)間間隔進(jìn)行多種運(yùn)算或操作。同時(shí)性:兩個(gè)或兩個(gè)以上的事件在同一時(shí)刻發(fā)生。并發(fā)性:兩個(gè)或兩個(gè)以上的事件在同一時(shí)間間隔發(fā)生。 從處理數(shù)據(jù)的角度來(lái)看,并行性等級(jí)從低到高可分為:1.字串位串:每次只對(duì)一個(gè)字的一位進(jìn)行處理。 最基本的串行
4、處理方式,不存在并行性。2字串位并:同時(shí)對(duì)一個(gè)字的全部位進(jìn)行處理,不同字之間是串行的。 開(kāi)始出現(xiàn)并行性。3.字并位串:同時(shí)對(duì)許多字的同一位(稱(chēng)為位片)進(jìn)行處理。 具有較高的并行性。4.全并行:同時(shí)對(duì)許多字的全部位或部分位進(jìn)行處理。 最高一級(jí)的并行。從執(zhí)行程序的角度來(lái)看,并行性等級(jí)從低到高可分為:1.指令部并行:?jiǎn)螚l指令中各微操作之間的并行。2.指令級(jí)并行:并行執(zhí)行兩條或兩條以上的指令。3.線程級(jí)并行:并行執(zhí)行兩個(gè)或兩個(gè)以上的線程。 通常是以一個(gè)進(jìn)程派生的多個(gè)線程為調(diào)度單位。4.任務(wù)級(jí)或過(guò)程級(jí)并行:并行執(zhí)行兩個(gè)或兩個(gè)以上的過(guò)程或任務(wù)(程序段) 以子程序或進(jìn)程為調(diào)度單元。5.作業(yè)或程序級(jí)并行:并行
5、執(zhí)行兩個(gè)或兩個(gè)以上的作業(yè)或程序。 提高并行性的技術(shù)途徑:1.時(shí)間重疊 引入時(shí)間因素,讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流重疊地使用同一套硬件設(shè)備的各個(gè)部分,以加快硬件周轉(zhuǎn)而贏得速度。2.資源重復(fù) 引入空間因素,以數(shù)量取勝。通過(guò)重復(fù)設(shè)置硬件資源,大幅度地提高計(jì)算機(jī)系統(tǒng)的性能。3.資源共享 這是一種軟件方法,它使多個(gè)任務(wù)按一定時(shí)間順序輪流使用同一套硬件設(shè)備。3.系列機(jī)由同一廠家生產(chǎn)的具有一樣系統(tǒng)結(jié)構(gòu)、但具有不同組成和實(shí)現(xiàn)的一系列不同型號(hào)的計(jì)算機(jī)。7.存儲(chǔ)程序原理的基本點(diǎn):指令驅(qū)動(dòng)8.諾依曼結(jié)構(gòu)的主要特點(diǎn)1.以運(yùn)算器為中心。2.在存儲(chǔ)器中,指令和數(shù)據(jù)同等對(duì)待。 指令和數(shù)據(jù)一樣可以進(jìn)行運(yùn)算,即由指令組
6、成的程序是可以修改的。3.存儲(chǔ)器是按地址訪問(wèn)、按順序線性編址的一維結(jié)構(gòu),每個(gè)單元的位數(shù)是固定的。4.指令的執(zhí)行是順序的5.指令由操作碼和地址碼組成。6.指令和數(shù)據(jù)均以二進(jìn)制編碼表示,采用二進(jìn)制運(yùn)算。9.軟件的可移植性一個(gè)軟件可以不經(jīng)修改或者只需少量修改就可以由一臺(tái)計(jì)算機(jī)移植到另一臺(tái)計(jì)算機(jī)上正確地運(yùn)行。差別只是執(zhí)行時(shí)間的不同。我們稱(chēng)這兩臺(tái)計(jì)算機(jī)是軟件兼容的。實(shí)現(xiàn)可移植性的常用方法:采用系列機(jī)、模擬與仿真、統(tǒng)一高級(jí)語(yǔ)言 。軟件兼容:向上(下)兼容:按某檔機(jī)器編制的程序,不加修改就能運(yùn)行于比它高(低)檔的機(jī)器。向前(后)兼容:按某個(gè)時(shí)期投入市場(chǎng)的某種型號(hào)機(jī)器編制的程序,不加修改地就能運(yùn)行于在它之前(
7、后)投入市場(chǎng)的機(jī)器。向后兼容是系列機(jī)的根本特征。兼容機(jī):由不同公司廠家生產(chǎn)的具有一樣系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī) 。第二章 計(jì)算機(jī)指令集結(jié)構(gòu)1.CPU中用來(lái)存儲(chǔ)操作數(shù)的存儲(chǔ)單元的主要類(lèi)型:堆棧、累加器、通用寄存器組2.通用寄存器型指令集結(jié)構(gòu)進(jìn)一步細(xì)分為3種類(lèi)型寄存器-寄存器型(RR型)寄存器-存儲(chǔ)器型(RM型)存儲(chǔ)器-存儲(chǔ)器型(MM型)3.指令集結(jié)構(gòu)的設(shè)計(jì)主要考慮3個(gè)因素:速度、成本、靈活性對(duì)指令集的基本要求:完整性、規(guī)整性、高效率、兼容性 4.設(shè)計(jì)RISC機(jī)器遵循的原則 1.指令條數(shù)少而簡(jiǎn)單。只選取使用頻度很高的指令,在此基礎(chǔ)上補(bǔ)充一些最有用的指令。2.采用簡(jiǎn)單而又統(tǒng)一的指令格式,并減少尋址方式;指令字
8、長(zhǎng)都為32位或64位。3.指令的執(zhí)行在單個(gè)機(jī)器周期完成。(采用流水線機(jī)制)4.只有l(wèi)oad和store指令才能訪問(wèn)存儲(chǔ)器,其他指令的操作都是在寄存器之間進(jìn)行。(即采用load-store結(jié)構(gòu))5.大多數(shù)指令都采用硬連邏輯來(lái)實(shí)現(xiàn)。6.強(qiáng)調(diào)優(yōu)化編譯器的作用,為高級(jí)語(yǔ)言程序生成優(yōu)化的代碼。7.充分利用流水技術(shù)來(lái)提高性能。5.指令由兩部分組成:操作碼、地址碼指令集的3種編碼格式:變長(zhǎng)編碼格式、定長(zhǎng)編碼格式、混合型編碼格式第三章 流水線技術(shù)1. 流水線技術(shù):把一個(gè)重復(fù)的過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程由專(zhuān)門(mén)的功能部件來(lái)實(shí)現(xiàn)。把多個(gè)處理過(guò)程在時(shí)間上錯(cuò)開(kāi),依次通過(guò)各功能段,這樣,每個(gè)子過(guò)程就可以與其他的子
9、過(guò)程并行進(jìn)行。(流水線中的每個(gè)子過(guò)程與其功能部件稱(chēng)為流水線的級(jí)或段,段與段相互連接形成流水線。流水線的段數(shù)稱(chēng)為流水線的深度。)2. CPU流水線:1. IF(取指令):根據(jù)PC值從指令存中讀取一條指令,并且設(shè)置下一周期的PC值。2. ID(解碼):根據(jù)操作碼從指令中提取操作數(shù)。3. EX(執(zhí)行):執(zhí)行指令4. MEM(存操作)5. WB(回寫(xiě)):修改寄存器3. 通過(guò)時(shí)間:第一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié)果所需的時(shí)間。排空時(shí)間:最后一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié)果所需的時(shí)間。4. 流水線分類(lèi):1.單功能流水線與多功能流水線單功能流水線:只能完成一種固定功能的流水線。多功能流水線:流水線的各段可以進(jìn)行
10、不同的連接,以實(shí)現(xiàn)不同的功能。2.靜態(tài)流水線與動(dòng)態(tài)流水線靜態(tài)流水線:在同一時(shí)間,多功能流水線中的各段只能按同一種功能的連接方式工作。動(dòng)態(tài)流水線:在同一時(shí)間,多功能流水線中的各段可以按照不同的方式連接,同時(shí)執(zhí)行多種功能。3.線性流水線與非線性流水線線性流水線:流水線的各段串行連接,沒(méi)有反饋回路。數(shù)據(jù)通過(guò)流水線中的各段時(shí),每一個(gè)段最多只流過(guò)一次。非線性流水線:流水線中除了有串行的連接外,還有反饋回路。5. 表示方法:1. 連接圖:Figure 1多功能流水線,可執(zhí)行乘與加2. 時(shí)空?qǐng)D:Figure 2靜態(tài): 加法完成后再進(jìn)行乘法。動(dòng)態(tài):不要求加法完成6. 性能指標(biāo):1. 吞吐率:在單位時(shí)間流水線所
11、完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。2. 加速比:完成同樣一批任務(wù),不使用流水線所用的時(shí)間與使用流水線所用的時(shí)間之比。3. 效率:流水線中的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí)間的比值,即流水線設(shè)備的利用率。 n個(gè)任務(wù)實(shí)際占用的時(shí)空區(qū)/k個(gè)段總的時(shí)空區(qū)4. 當(dāng)流水線各段時(shí)間相等時(shí),流水線的效率與吞吐率成正比。 Tk=(k+n-1) tE=TPt5. 流水線的效率是流水線的實(shí)際加速比S與它的最大加速比k的比值。從時(shí)空?qǐng)D上看,效率就是n個(gè)任務(wù)占用的時(shí)空面積和k個(gè)段總的時(shí)空面之比。7. 流水線相關(guān):1. 數(shù)據(jù)相關(guān):數(shù)據(jù)相關(guān)具有傳遞性,反映了數(shù)據(jù)的流動(dòng)關(guān)系如果兩條指令使用一樣的名,但是它們之間并沒(méi)有數(shù)據(jù)流動(dòng),則稱(chēng)
12、這兩條指令存在名相關(guān)。2. 名相關(guān):反相關(guān):如果指令j寫(xiě)的名與指令i讀的名一樣,則稱(chēng)指令i和j發(fā)生了反相關(guān)。 指令j寫(xiě)的名指令i讀的名輸出相關(guān):如果指令j和指令i寫(xiě)一樣的名,則稱(chēng)指令i和j發(fā)生了輸出相關(guān)。 指令j寫(xiě)的名指令i寫(xiě)的名3. 控制相關(guān):控制相關(guān)是指由分支指令引起的相關(guān)8. 流水線沖突:1. 結(jié)構(gòu)沖突:因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。2. 數(shù)據(jù)沖突:當(dāng)指令在流水線中重疊執(zhí)行時(shí),因需要用到前面指令的執(zhí)行結(jié)果而發(fā)生的沖突。3. 控制沖突:流水線遇到分支指令和其他會(huì)改變PC值的指令所引起的沖突。9. 解決流水線沖突:1. 數(shù)據(jù)沖突有:寫(xiě)后讀沖突(RAW)在 i 寫(xiě)入之前,j
13、 先去讀。 j 讀出的容是錯(cuò)誤的。對(duì)應(yīng)于數(shù)據(jù)相關(guān)寫(xiě)后寫(xiě)沖突(WAW)在 i 寫(xiě)入之前,j 先寫(xiě)。最后寫(xiě)入的結(jié)果是 i 的。錯(cuò)誤!對(duì)應(yīng)于輸出相關(guān)讀后寫(xiě)沖突(WAR) 在 i 讀之前,j 先寫(xiě)。i 讀出的容是錯(cuò)誤的!由反相關(guān)引起。定向技術(shù):在某條指令產(chǎn)生計(jì)算結(jié)果之前,其他指令并不真正立即需要該計(jì)算結(jié)果,如果能夠?qū)⒃撚?jì)算結(jié)果從其產(chǎn)生的地方直接送到其他指令需要它的地方,那么就可以避免停頓。流水線互鎖機(jī)制,插入“暫停”。 作用:檢測(cè)發(fā)現(xiàn)數(shù)據(jù)沖突,并使流水線停頓,直至沖突消失。依靠編譯器解決數(shù)據(jù)沖突 讓編譯器重新組織指令順序來(lái)消除沖突,這種技術(shù)稱(chēng)為指令調(diào)度或流水線調(diào)度。2控制沖突有:處理分支指令最簡(jiǎn)單的方
14、法:“凍結(jié)”或者“排空”流水線 。由分支指令引起的延遲稱(chēng)為分支延遲。減少分支延遲的方法:預(yù)測(cè)分支失敗允許分支指令后的指令繼續(xù)在流水線中流動(dòng),就好象什么都沒(méi)發(fā)生似的。若確定分支失敗,將分支指令看作是一條普通指令,流水線正常流動(dòng)。若確定分支成功,流水線就把在分支指令之后取出的所有指令轉(zhuǎn)化為空操作,并按分支目地重新取指令執(zhí)行。要保證:分支結(jié)果出來(lái)之前不會(huì)改變處理機(jī)的狀態(tài),以便一旦猜錯(cuò)時(shí),處理機(jī)能夠回退到原先的狀態(tài)。預(yù)測(cè)分支成功假設(shè)分支轉(zhuǎn)移成功,并從分支目標(biāo)地址處取指令執(zhí)行。起作用的前題:先知道分支目標(biāo)地址,后知道分支是否成功。前述5段流水線中,這種方法沒(méi)有任何好處。延遲分支主要思想: 從邏輯上“延長(zhǎng)
15、”分支指令的執(zhí)行時(shí)間。把延遲分支看成是由原來(lái)的分支指令和若干個(gè)延遲槽構(gòu)成,不管分支是否成功,都要按順序執(zhí)行延遲槽中的指令。分支延遲指令的調(diào)度任務(wù):在延遲槽中放入有用的指令。由編譯器完成。能否帶來(lái)好處取決于編譯器能否把有用的指令調(diào)度到延遲槽中。三種調(diào)度方法: 從前調(diào)度、從目標(biāo)處調(diào)度、從失敗處調(diào)度 MIPS若檢測(cè)到RAW沖突,流水線互鎖機(jī)制必須在流水線中插入停頓,并使當(dāng)前正處于IF段和ID段的指令不再前進(jìn)。分支指令的條件測(cè)試和分支目標(biāo)地址計(jì)算在EX段完成,對(duì)PC的修改在MEM段完成。一條指令的執(zhí)行過(guò)程分為以下5個(gè)周期:1.取指令周期(IF)IR MemPC 。PC值加4。(假設(shè)每條指令占4個(gè)字節(jié))
16、2.指令譯碼/讀寄存器周期(ID)譯碼。用IR中的寄存器編號(hào)去訪問(wèn)通用寄存器組,讀出所需的操作數(shù)。3.執(zhí)行/有效地址計(jì)算周期(EX)不同指令所進(jìn)行的操作不同:存儲(chǔ)器訪問(wèn)指令:ALU把所指定的寄存器的容與偏移量相加,形成用于訪存的有效地址。寄存器寄存器ALU指令:ALU按照操作碼指定的操作對(duì)從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運(yùn)算。寄存器立即數(shù)ALU指令:ALU按照操作碼指定的操作對(duì)從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)進(jìn)行運(yùn)算。分支指令:ALU把偏移量與PC值相加,形成轉(zhuǎn)移目標(biāo)的地址。同時(shí),對(duì)在前一個(gè)周期讀出的操作數(shù)進(jìn)行判斷,確定分支是否成功。4存儲(chǔ)器訪問(wèn)分支完成周期(MEM)該周期處理的指令只有
17、load、store和分支指令。其他類(lèi)型的指令在此周期不做任何操作。load和store指令load指令:用上一個(gè)周期計(jì)算出的有效地址從存儲(chǔ)器中讀出相應(yīng)的數(shù)據(jù)。store指令:把指定的數(shù)據(jù)寫(xiě)入這個(gè)有效地址所指出的存儲(chǔ)器單元。分支指令 分支“成功”,就把轉(zhuǎn)移目標(biāo)地址送入PC。 分支指令執(zhí)行完成。5.寫(xiě)回周期(WB) ALU運(yùn)算指令和load指令在這個(gè)周期把結(jié)果數(shù)據(jù)寫(xiě)入通用寄存器組。ALU運(yùn)算指令:結(jié)果數(shù)據(jù)來(lái)自ALU。load指令:結(jié)果數(shù)據(jù)來(lái)自存儲(chǔ)器系統(tǒng)。相關(guān):兩條指令之間存在某種依賴關(guān)系。流水線沖突是指對(duì)于具體的流水線來(lái)說(shuō),由于相關(guān)的存在,使得指令流中的下一條指令不能在指定的時(shí)鐘周期執(zhí)行。第四章
18、:向量處理機(jī)1. 在流水線處理機(jī)中,設(shè)置向量數(shù)據(jù)表示和相應(yīng)的向量指令,稱(chēng)為向量處理機(jī)。(不具有向量數(shù)據(jù)表示和相應(yīng)的向量指令的流水線處理機(jī),稱(chēng)為標(biāo)量處理機(jī)。)2. 處理方式:1.橫向(水平)處理方式向量計(jì)算是按行的方式從左到右橫向地進(jìn)行。組成循環(huán)程序進(jìn)行處理。i數(shù)據(jù)相關(guān):N次 功能切換:2N次不適合于向量處理機(jī)的并行處理。2.縱向 (垂直)處理方式向量計(jì)算是按列的方式從上到下縱向地進(jìn)行。兩條向量指令之間:數(shù)據(jù)相關(guān):1次 功能切換:1次對(duì)處理機(jī)結(jié)構(gòu)的要求:存儲(chǔ)器存儲(chǔ)器結(jié)構(gòu)3.縱橫 (分組)處理方式又稱(chēng)為分組處理方式。把向量分成若干組,組按縱向方式處理,依次處理各組。對(duì)處理機(jī)結(jié)構(gòu)的要求:寄存器寄存器
19、結(jié)構(gòu)3. 提高向量處理機(jī)性能的方法:1. 設(shè)置多個(gè)功能部件,使它們并行工作。2. 采用技術(shù),加快一串向量指令的執(zhí)行。3. 采用循環(huán)開(kāi)采技術(shù),加快循環(huán)的處理。(分段開(kāi)采:當(dāng)向量長(zhǎng)度大于向量寄存器的長(zhǎng)度,將向量分為長(zhǎng)度相等的段)4. 采用多處理機(jī)系統(tǒng),進(jìn)一步提高性能。4. 特征:具有先寫(xiě)后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和源向量沖突的情況下,可以把功能部件起來(lái)進(jìn)行流水處理,以達(dá)到加快執(zhí)行的目的。特性的實(shí)質(zhì):把流水線定向的思想引入到向量執(zhí)行過(guò)程的結(jié)果。5. 向量處理機(jī)性能的主要參數(shù):1. 一行向量長(zhǎng)度為n指令的執(zhí)行時(shí)間Tvp=Ts+Te+(n-1)Tc(Ts為向量處理部件建立的時(shí)間,Te為流水
20、線的通過(guò)時(shí)間,Tc為流水線的時(shí)鐘周期時(shí)間。2. 每秒多少個(gè)浮點(diǎn)運(yùn)算結(jié)果(MFLOP或一個(gè)浮點(diǎn)運(yùn)算的時(shí)間)3. 一組向量指令的處理時(shí)間4. 向量流水線的最大性能R5. 半性能向量長(zhǎng)度n1/2第5章 指令級(jí)并行這種指令之間存在的潛在并行性稱(chēng)為指令級(jí)并行。指令級(jí)并行度ILP:指令中存在的一種并行性,計(jì)算機(jī)可以并行執(zhí)行兩條與以上的指令。開(kāi)發(fā)ILP的途徑有兩種:1.資源重復(fù)(主要基于硬件的動(dòng)態(tài)開(kāi)發(fā)方法) 2.流水線技術(shù)。(基于軟件的靜態(tài)開(kāi)發(fā)方法)1. 流水線處理機(jī)的實(shí)際CPI理想流水線的CPI加上各類(lèi)停頓的時(shí)鐘周期數(shù): CPI流水線 = CPI理想 + 停頓結(jié)構(gòu)沖突 + 停頓數(shù)據(jù)沖突 + 停頓控制沖突理
21、想CPI是衡量流水線最高性能的一個(gè)指標(biāo)。動(dòng)態(tài)分支預(yù)測(cè):在程序運(yùn)行時(shí),根據(jù)分支指令過(guò)去的表現(xiàn)來(lái)預(yù)測(cè)其將來(lái)的行為。2. 分支歷史表BHT(Branch History Table)或分支預(yù)測(cè)緩沖器(Branch Prediciton Buffer)最簡(jiǎn)單的動(dòng)態(tài)分支預(yù)測(cè)方法。 用BHT來(lái)記錄分支指令最近一次或幾次的執(zhí)行情況(成功或不成功),并據(jù)此進(jìn)行預(yù)測(cè)。 BTB目標(biāo):將分支的開(kāi)銷(xiāo)降為 0方法:分支目標(biāo)緩沖將分支成功的分支指令的地址和它的分支目標(biāo)地址都放到一個(gè)緩沖區(qū)中保存起來(lái),緩沖區(qū)以分支指令的地址作為標(biāo)識(shí)。這個(gè)緩沖區(qū)就是分支目標(biāo)緩沖器(Branch-Target Buffer,簡(jiǎn)記為BTB,或者B
22、ranch-Target Cache)。3. 開(kāi)發(fā)ILP的兩種方法:1. 記分牌動(dòng)態(tài)調(diào)度算法目標(biāo):在沒(méi)有結(jié)構(gòu)沖突時(shí),盡早執(zhí)行沒(méi)有數(shù)據(jù)沖突的指令(指令執(zhí)行時(shí)可以跨越,但是在輸出段都是按序流出的),實(shí)現(xiàn)每個(gè)時(shí)鐘周期執(zhí)行一條指令。記分牌硬件的實(shí)現(xiàn):1.記分牌中維護(hù)著三表,分別記錄指令的執(zhí)行狀態(tài)、寄存器的狀態(tài)、功能部件狀態(tài)、數(shù)據(jù)相關(guān)關(guān)系。 2.它把流水線的譯碼段ID分為了兩個(gè)段:流出和讀操作數(shù)。記分牌流水線處理步驟:1) 流出(ID)如果當(dāng)前流出指令所需的功能部件空閑(無(wú)結(jié)構(gòu)沖突),并且其它執(zhí)行指令的目的寄存器與該指令的不同(無(wú)WAW沖突),記分牌就向功能部件流出該指令,并修改記分牌部的記錄表。2)
23、讀操作數(shù)(ID)監(jiān)測(cè)源操作數(shù)的可用性(前面已流出并且正在執(zhí)行的指令都不對(duì)該寄存器進(jìn)行寫(xiě)操作),如果數(shù)據(jù)可用,它就通知功能部件從寄存器中讀出源操作數(shù)并開(kāi)始執(zhí)行3) 執(zhí)行(EX)取到操作數(shù)則開(kāi)始執(zhí)行,產(chǎn)生出結(jié)果后,就通知記分牌它已經(jīng)執(zhí)行完成4) 寫(xiě)結(jié)果(WB)若WAR沖突已經(jīng)消失,記分牌則通知功能部件把結(jié)果寫(xiě)入目的寄存器記分牌三表:1) 指令狀態(tài)表2) 功能部件狀態(tài)表,每個(gè)部件有一項(xiàng),每一項(xiàng)由以下9個(gè)字段組成:Busy:忙標(biāo)志,指出功能部件是否忙。初值為“no”;Op:該功能部件正在執(zhí)行或?qū)⒁獔?zhí)行的操作;Fi:目的寄存器編號(hào);Fj,F(xiàn)k:源寄存器編號(hào);Qj,Qk:指出向源寄存器Fj、Fk寫(xiě)數(shù)據(jù)的功
24、能部件 ;Rj,Rk:標(biāo)志位,“yes”表示Fj,F(xiàn)k中的操作數(shù)就緒且還未被取走。否則就被置為“no”。3) 結(jié)果寄存器狀態(tài)表:指出哪個(gè)功能部件將結(jié)果寫(xiě)入寄存器2. Tomasulo動(dòng)態(tài)調(diào)度算法:1. 基本思想:記錄和監(jiān)測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減小到最小。通過(guò)寄存器換名來(lái)消除WAR沖突和WAW沖突2. 基本結(jié)構(gòu):(1) 保留站:保存已經(jīng)流出并等待到本功能部件執(zhí)行的指令,在保留站通過(guò)流出邏輯來(lái)完成的寄存器換名(順序流出,亂序執(zhí)行 )(2) 公共數(shù)據(jù)總線(CDB):所有功能部件計(jì)算結(jié)果都送到CDB,由它把這些結(jié)果直接送到各個(gè)需要該結(jié)果的地方(亂序完成)(3)
25、Load/store緩沖器:作用是存放計(jì)算有效地址的分量。記錄正在進(jìn)行的load訪存,等待存儲(chǔ)器的響應(yīng)/保存正在進(jìn)行store訪存的目標(biāo)地址,等待存儲(chǔ)數(shù)據(jù)的到達(dá)。保存完成了的load的結(jié)果(從存儲(chǔ)器取來(lái)的數(shù)據(jù))/保存該store的地址和數(shù)據(jù)3. 指令執(zhí)行步驟:1) 流出2) 執(zhí)行3) 寫(xiě)結(jié)果2.基本程序塊:一段除了入口和出口以外不包含其他分支的線性代碼段。3.循環(huán)級(jí)并行:使一個(gè)循環(huán)中的不同循環(huán)體并行執(zhí)行。4.程序順序:由源程序確定的在完全串行方式下指令的執(zhí)行順序。保持異常行為是指:無(wú)論怎么改變指令的執(zhí)行順序,都不能改變程序中異常的發(fā)生情況。數(shù)據(jù)流:指數(shù)據(jù)值從其產(chǎn)生者指令到其消費(fèi)者指令的實(shí)際流動(dòng)
26、。靜態(tài)調(diào)度依靠編譯器對(duì)代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不是在程序執(zhí)行的過(guò)程中、而是在編譯期間進(jìn)行代碼調(diào)度和優(yōu)化。通過(guò)把相關(guān)的指令拉開(kāi)距離來(lái)減少可能產(chǎn)生的停頓。動(dòng)態(tài)調(diào)度在程序的執(zhí)行過(guò)程中,依靠專(zhuān)門(mén)硬件對(duì)代碼進(jìn)行調(diào)度,減少數(shù)據(jù)相關(guān)導(dǎo)致的停頓不精確異常:當(dāng)執(zhí)行指令i導(dǎo)致發(fā)生異常時(shí),處理機(jī)的現(xiàn)場(chǎng)(狀態(tài))與嚴(yán)格按程序順序執(zhí)行時(shí)指令i的現(xiàn)場(chǎng)不同。精確異常:如果發(fā)生異常時(shí),處理機(jī)的現(xiàn)場(chǎng)跟嚴(yán)格按程序順序執(zhí)行時(shí)指令i的現(xiàn)場(chǎng)一樣。記分牌算法和Tomasulo算法是兩種比較典型的動(dòng)態(tài)調(diào)度算法。Tomasulo算法基本思想1.核心思想記錄和檢測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW(read and
27、write)沖突的可能性減少到最小;通過(guò)寄存器換名來(lái)消除WAR沖突和WAW沖突。更多地依賴于硬件寄存器換名可以消除WAR沖突和WAW沖突。寄存器換名是通過(guò)保留站和流出邏輯來(lái)共同完成的。Tomasulo算法具有以下兩個(gè)特點(diǎn):沖突檢測(cè)和指令執(zhí)行控制是分布的。每個(gè)功能部件的保留站中的信息決定了什么時(shí)候指令可以在該功能部件開(kāi)始執(zhí)行。計(jì)算結(jié)果通過(guò)CDB直接從產(chǎn)生它的保留站傳送到所有需要它的功能部件,而不用經(jīng)過(guò)寄存器。每個(gè)保留站有以下幾個(gè)字段:Op:要對(duì)源操作數(shù)進(jìn)行的操作。Qj,Qk:將產(chǎn)生源操作數(shù)的保留站號(hào)。等于0表示操作數(shù)已經(jīng)就緒且在Vj或Vk中,或者不需要操作數(shù)。Vj,Vk:源操作數(shù)的值。對(duì)于每一個(gè)
28、操作數(shù)來(lái)說(shuō),V或Q字段只有一個(gè)有效。對(duì)于load來(lái)說(shuō),Vk字段用于保存偏移量。Busy:為“yes”表示本保留站或緩沖單元“忙”。A:僅load和store緩沖器有該字段。開(kāi)始是存放指令中的立即數(shù)字段,地址計(jì)算后存放有效地址。循環(huán)展開(kāi)和指令調(diào)度增加指令間并行性最簡(jiǎn)單和最常用的方法開(kāi)發(fā)循環(huán)級(jí)并行性循環(huán)的不同迭代之間存在的并行性。在把循環(huán)展開(kāi)后,通過(guò)重命名和指令調(diào)度來(lái)開(kāi)發(fā)更多的并行性。 編譯器完成這種指令調(diào)度的能力受限于兩個(gè)特性:程序固有的指令級(jí)并行性;流水線功能部件的執(zhí)行延遲。循環(huán)展開(kāi)和指令調(diào)度時(shí)要注意以下幾個(gè)方面:保證正確性。在循環(huán)展開(kāi)和調(diào)度過(guò)程中尤其要注意兩個(gè)地方的正確性:循環(huán)控制,操作數(shù)偏
29、移量的修改。注意有效性。只有能夠找到不同循環(huán)體之間的無(wú)關(guān)性,才能有效地使用循環(huán)展開(kāi)。使用不同的寄存器。(否則可能導(dǎo)致新的沖突)刪除多余的測(cè)試指令和分支指令,并對(duì)循環(huán)結(jié)束代碼和新的循環(huán)體代碼進(jìn)行相應(yīng)的修正。注意對(duì)存儲(chǔ)器數(shù)據(jù)的相關(guān)性分析 例如:對(duì)于load指令和store指令,如果它們?cè)诓煌难h(huán)迭代中訪問(wèn)的存儲(chǔ)器地址是不同的,它們就是相互獨(dú)立的,可以相互對(duì)調(diào)。注意新的相關(guān)性 由于原循環(huán)不同次的迭代在展開(kāi)后都到了同一次循環(huán)體中,因此可能帶來(lái)新的相關(guān)性。 第九章 動(dòng)態(tài)互聯(lián)網(wǎng)絡(luò)互聯(lián)網(wǎng)絡(luò)是一種開(kāi)關(guān)元件按照一定的拓?fù)浣Y(jié)構(gòu)和控制方式構(gòu)成的網(wǎng)絡(luò),用來(lái)實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)中節(jié)點(diǎn)之間的相互連接動(dòng)態(tài)網(wǎng)絡(luò)分類(lèi):總線網(wǎng)絡(luò)、多
30、級(jí)互聯(lián)網(wǎng)絡(luò)、交叉開(kāi)關(guān)網(wǎng)絡(luò)互聯(lián)網(wǎng)絡(luò)三要素:互聯(lián)結(jié)構(gòu)、開(kāi)關(guān)和控制方式1. 基本互聯(lián)函數(shù):1) 交換函數(shù):二進(jìn)制地址編碼中第k位互反的輸入端與輸出端之間的連接。2) 均勻洗牌網(wǎng)絡(luò)。3) PM2I函數(shù):PM2+1X=X+2imodNPM2-1X=X-2imodN2. 互聯(lián)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù):1) 網(wǎng)絡(luò)規(guī)模N:指互聯(lián)網(wǎng)絡(luò)中節(jié)點(diǎn)的個(gè)數(shù)。它表示該網(wǎng)絡(luò)所能連接的部件的數(shù)量。網(wǎng)絡(luò)規(guī)模越大,這個(gè)互聯(lián)網(wǎng)絡(luò)的連接能力越強(qiáng)2) 節(jié)點(diǎn)度d:指互聯(lián)網(wǎng)絡(luò)中節(jié)點(diǎn)所連接的邊數(shù),包括入度,出度。3) 節(jié)點(diǎn)距離:從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)終止所需要跨越邊數(shù)的最小值4) 網(wǎng)絡(luò)直徑D:指網(wǎng)絡(luò)中任意兩個(gè)節(jié)點(diǎn)之間距離的最大值(網(wǎng)絡(luò)直徑越小越好)5) 等分寬度b(主要反映網(wǎng)絡(luò)的最大流量):把由N個(gè)節(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò)切成節(jié)點(diǎn)數(shù)一樣的(N/2)的兩半,在各種切法中,沿切口邊數(shù)的最小值稱(chēng)為該網(wǎng)絡(luò)的等分寬度。而線等分寬度位B=b(通道寬度,單位是位數(shù))6) 對(duì)稱(chēng)性
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 元宇宙社交平臺(tái)虛擬社交平臺(tái)虛擬空間布局與用戶體驗(yàn)提升報(bào)告
- 2025年金融行業(yè)反洗錢(qián)技術(shù)革命與創(chuàng)新監(jiān)管機(jī)制解讀報(bào)告
- 社區(qū)心理健康服務(wù)在社區(qū)心理健康服務(wù)體系建設(shè)中的實(shí)施效果研究與實(shí)踐評(píng)估探索報(bào)告
- 2025年電動(dòng)汽車(chē)電池?zé)峁芾硐到y(tǒng)熱管理材料創(chuàng)新與應(yīng)用趨勢(shì)報(bào)告
- 城市公園改造提升項(xiàng)目社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估與城市綠地生態(tài)效益評(píng)估報(bào)告
- 分布式能源系統(tǒng)2025年生物質(zhì)能源的生物質(zhì)能熱電聯(lián)產(chǎn)政策環(huán)境研究報(bào)告
- 培訓(xùn)機(jī)構(gòu)課時(shí)費(fèi)管理制度
- 江濱公園日常管理制度
- 2025年四川省德陽(yáng)市中考英語(yǔ)真題(解析版)
- 月餅成品包裝管理制度
- 《凈水絮凝劑》課件
- Linux網(wǎng)絡(luò)操作系統(tǒng)項(xiàng)目化教程 課件 項(xiàng)目1-6 安裝Linux操作系統(tǒng)- 管理進(jìn)程
- 污水處理廠安全風(fēng)險(xiǎn)分級(jí)管控體系方案1
- 珠寶行業(yè)代賣(mài)合作協(xié)議書(shū)
- (高清版)JGT 225-2020 預(yù)應(yīng)力混凝土用金屬波紋管
- 中國(guó)地理(廣州大學(xué))智慧樹(shù)知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 自然辯證法-2018版課后思考題答案
- (正式版)JBT 5300-2024 工業(yè)用閥門(mén)材料 選用指南
- 校園超市經(jīng)營(yíng)投標(biāo)方案(技術(shù)方案)
- 《養(yǎng)老護(hù)理員》-課件:擺放良肢位
- 2023年遼寧省高中學(xué)業(yè)水平合格性考試物理試卷真題(答案詳解)
評(píng)論
0/150
提交評(píng)論