計算機(jī)體系結(jié)構(gòu)知識點匯總_第1頁
計算機(jī)體系結(jié)構(gòu)知識點匯總_第2頁
計算機(jī)體系結(jié)構(gòu)知識點匯總_第3頁
計算機(jī)體系結(jié)構(gòu)知識點匯總_第4頁
計算機(jī)體系結(jié)構(gòu)知識點匯總_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章計算機(jī)體系結(jié)構(gòu)的基本概念1.計算機(jī)系統(tǒng)結(jié)構(gòu)的經(jīng)典定義程序員所看到的計算機(jī)屬性,即概念性結(jié)構(gòu)與功能特性。2.透明性在計算機(jī)技術(shù)中,把這種本來存在的事物或?qū)傩?,但從某種角度看又好像不存在的概念稱為透明性。3.系列機(jī)由同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)、但具有不同組成和實現(xiàn)的一系列不同型號的計算機(jī)。4.常見的計算機(jī)系統(tǒng)結(jié)構(gòu)分類法有兩種:Flynn分類法、馮氏分類法Flynn分類法把計算機(jī)系統(tǒng)的結(jié)構(gòu)分為4類:單指令流單數(shù)據(jù)流(SISD)單指令流多數(shù)據(jù)流(SIMD)多指令流單數(shù)據(jù)流(MISD)多指令流多數(shù)據(jù)流(MIMD)5. 改進(jìn)后程序的總執(zhí)行時間系統(tǒng)加速比為改進(jìn)前與改進(jìn)后總執(zhí)行時間之比6. CPI(

2、Cycles Per Instruction):每條指令執(zhí)行的平均時鐘周期數(shù) CPI = 執(zhí)行程序所需的時鐘周期數(shù)IC7. 存儲程序原理的基本點:指令驅(qū)動8. 馮諾依曼結(jié)構(gòu)的主要特點1.以運算器為中心。2.在存儲器中,指令和數(shù)據(jù)同等對待。 指令和數(shù)據(jù)一樣可以進(jìn)行運算,即由指令組成的程序是可以修改的。3.存儲器是按地址訪問、按順序線性編址的一維結(jié)構(gòu),每個單元的位數(shù)是固定的。4.指令的執(zhí)行是順序的5.指令由操作碼和地址碼組成。6.指令和數(shù)據(jù)均以二進(jìn)制編碼表示,采用二進(jìn)制運算。9.軟件的可移植性一個軟件可以不經(jīng)修改或者只需少量修改就可以由一臺計算機(jī)移植到另一臺計算機(jī)上正確地運行。差別只是執(zhí)行時間的不

3、同。我們稱這兩臺計算機(jī)是軟件兼容的。實現(xiàn)可移植性的常用方法:采用系列機(jī)、模擬與仿真、統(tǒng)一高級語言 。軟件兼容:向上(下)兼容:按某檔機(jī)器編制的程序,不加修改就能運行于比它高(低)檔的機(jī)器。向前(后)兼容:按某個時期投入市場的某種型號機(jī)器編制的程序,不加修改地就能運行于在它之前(后)投入市場的機(jī)器。向后兼容是系列機(jī)的根本特征。兼容機(jī):由不同公司廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計算機(jī) 。10.并行性:計算機(jī)系統(tǒng)在同一時刻或者同一時間間隔內(nèi)進(jìn)行多種運算或操作。同時性:兩個或兩個以上的事件在同一時刻發(fā)生。并發(fā)性:兩個或兩個以上的事件在同一時間間隔內(nèi)發(fā)生。 從處理數(shù)據(jù)的角度來看,并行性等級從低到高可分為:1

4、.字串位串:每次只對一個字的一位進(jìn)行處理。 最基本的串行處理方式,不存在并行性。2字串位并:同時對一個字的全部位進(jìn)行處理,不同字之間是串行的。 開始出現(xiàn)并行性。3.字并位串:同時對許多字的同一位(稱為位片)進(jìn)行處理。 具有較高的并行性。4.全并行:同時對許多字的全部位或部分位進(jìn)行處理。 最高一級的并行。從執(zhí)行程序的角度來看,并行性等級從低到高可分為:1.指令內(nèi)部并行:單條指令中各微操作之間的并行。2.指令級并行:并行執(zhí)行兩條或兩條以上的指令。3.線程級并行:并行執(zhí)行兩個或兩個以上的線程。 通常是以一個進(jìn)程內(nèi)派生的多個線程為調(diào)度單位。4.任務(wù)級或過程級并行:并行執(zhí)行兩個或兩個以上的過程或任務(wù)(程

5、序段) 以子程序或進(jìn)程為調(diào)度單元。5.作業(yè)或程序級并行:并行執(zhí)行兩個或兩個以上的作業(yè)或程序。 提高并行性的技術(shù)途徑:1.時間重疊 引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設(shè)備的各個部分,以加快硬件周轉(zhuǎn)而贏得速度。2.資源重復(fù) 引入空間因素,以數(shù)量取勝。通過重復(fù)設(shè)置硬件資源,大幅度地提高計算機(jī)系統(tǒng)的性能。3.資源共享 這是一種軟件方法,它使多個任務(wù)按一定時間順序輪流使用同一套硬件設(shè)備。 第二章 計算機(jī)指令集結(jié)構(gòu)1. CPU中用來存儲操作數(shù)的存儲單元的主要類型:堆棧、累加器、通用寄存器組2. 通用寄存器型指令集結(jié)構(gòu)進(jìn)一步細(xì)分為3種類型寄存器-寄存器型(RR型)寄存器-

6、存儲器型(RM型)存儲器-存儲器型(MM型)3.指令集結(jié)構(gòu)的設(shè)計主要考慮3個因素:速度、成本、靈活性對指令集的基本要求:完整性、規(guī)整性、高效率、兼容性 4.設(shè)計RISC機(jī)器遵循的原則 1.指令條數(shù)少而簡單。只選取使用頻度很高的指令,在此基礎(chǔ)上補(bǔ)充一些最有用的指令。2.采用簡單而又統(tǒng)一的指令格式,并減少尋址方式;指令字長都為32位或64位。3.指令的執(zhí)行在單個機(jī)器周期內(nèi)完成。(采用流水線機(jī)制)4.只有l(wèi)oad和store指令才能訪問存儲器,其他指令的操作都是在寄存器之間進(jìn)行。 (即采用load-store結(jié)構(gòu))5.大多數(shù)指令都采用硬連邏輯來實現(xiàn)。6.強(qiáng)調(diào)優(yōu)化編譯器的作用,為高級語言程序生成優(yōu)化的

7、代碼。7.充分利用流水技術(shù)來提高性能。5.指令由兩部分組成:操作碼、地址碼指令集的3種編碼格式:變長編碼格式、定長編碼格式、混合型編碼格式第三章 流水線技術(shù)1.流水線技術(shù):把一個重復(fù)的過程分解為若干個子過程,每個子過程由專門的功能部件來實現(xiàn)。把多個處理過程在時間上錯開,依次通過各功能段,這樣,每個子過程就可以與其他的子過程并行進(jìn)行。流水線中的每個子過程及其功能部件稱為流水線的級或段,段與段相互連接形成流水線。流水線的段數(shù)稱為流水線的深度。通過時間:第一個任務(wù)從進(jìn)入流水線到流出結(jié)果所需的時間。排空時間:最后一個任務(wù)從進(jìn)入流水線到流出結(jié)果所需的時間。2.分類1.單功能流水線與多功能流水線單功能流水

8、線:只能完成一種固定功能的流水線。多功能流水線:流水線的各段可以進(jìn)行不同的連接,以實現(xiàn)不同的功能。2.靜態(tài)流水線與動態(tài)流水線靜態(tài)流水線:在同一時間內(nèi),多功能流水線中的各段只能按同一種功能的連接方式工作。動態(tài)流水線:在同一時間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時執(zhí)行多種功能。3.部件級、處理機(jī)級及處理機(jī)間流水線部件級流水線(運算操作流水線):把處理機(jī)的算術(shù)邏輯運算部件分段,使得各種類型的運算操作能夠按流水方式進(jìn)行。處理機(jī)級流水線(指令流水線):把指令的解釋執(zhí)行過程按照流水方式處理。把一條指令的執(zhí)行過程分解為若干個子過程,每個子過程在獨立的功能部件中執(zhí)行。處理機(jī)間流水線(宏流水線)

9、:它是由兩個或者兩個以上的處理機(jī)串行連接起來,對同一數(shù)據(jù)流進(jìn)行處理,每個處理機(jī)完成整個任務(wù)中的一部分。4.線性流水線與非線性流水線線性流水線:流水線的各段串行連接,沒有反饋回路。數(shù)據(jù)通過流水線中的各段時,每一個段最多只流過一次。非線性流水線:流水線中除了有串行的連接外,還有反饋回路。5.順序流水線與亂序流水線順序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序完全相同。每一個任務(wù)在流水線的各段中是一個跟著一個順序流動的。亂序流水線:流水線輸出端任務(wù)流出的順序與輸入端任務(wù)流入的順序可以不同,允許后進(jìn)入流水線的任務(wù)先完成(從輸出端流出)。6.標(biāo)量處理機(jī)與向量流水處理機(jī) 標(biāo)量處理機(jī):處理機(jī)不

10、具有向量數(shù)據(jù)表示和向量指令,僅對標(biāo)量數(shù)據(jù)進(jìn)行流水處理。向量流水處理機(jī):具有向量數(shù)據(jù)表示和向量指令的處理機(jī)。3.吞吐率:在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量。解決流水線瓶頸問題的常用方法:細(xì)分瓶頸段、重復(fù)設(shè)置瓶頸段。加速比:完成同樣一批任務(wù),不使用流水線所用的時間與使用流水線所用的時間之比。效率:流水線中的設(shè)備實際使用時間與整個運行時間的比值,即流水線設(shè)備的利用率。當(dāng)流水線各段時間相等時,流水線的效率與吞吐率成正比。 Tk=(k+n-1) t E=TPt t=T通過/m (m表示段數(shù))流水線的效率是流水線的實際加速比S與它的最大加速比k的比值。 從時空圖上看,效率就是n個任務(wù)占用的

11、時空面積和k個段總的時空面積之比。4.一條指令的執(zhí)行過程分為以下5個周期:1.取指令周期(IF)IR MemPC 。PC值加4。(假設(shè)每條指令占4個字節(jié))2.指令譯碼/讀寄存器周期(ID)譯碼。用IR中的寄存器編號去訪問通用寄存器組,讀出所需的操作數(shù)。3.執(zhí)行/有效地址計算周期(EX)不同指令所進(jìn)行的操作不同:存儲器訪問指令:ALU把所指定的寄存器的內(nèi)容與偏移量相加,形成用于訪存的有效地址。寄存器寄存器ALU指令:ALU按照操作碼指定的操作對從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運算。寄存器立即數(shù)ALU指令:ALU按照操作碼指定的操作對從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)進(jìn)行運算。分支指令:ALU

12、把偏移量與PC值相加,形成轉(zhuǎn)移目標(biāo)的地址。同時,對在前一個周期讀出的操作數(shù)進(jìn)行判斷,確定分支是否成功。4存儲器訪問分支完成周期(MEM)該周期處理的指令只有l(wèi)oad、store和分支指令。其他類型的指令在此周期不做任何操作。load和store指令load指令:用上一個周期計算出的有效地址從存儲器中讀出相應(yīng)的數(shù)據(jù)。store指令:把指定的數(shù)據(jù)寫入這個有效地址所指出的存儲器單元。分支指令 分支“成功”,就把轉(zhuǎn)移目標(biāo)地址送入PC。 分支指令執(zhí)行完成。5.寫回周期(WB) ALU運算指令和load指令在這個周期把結(jié)果數(shù)據(jù)寫入通用寄存器組。 ALU運算指令:結(jié)果數(shù)據(jù)來自ALU。 load指令:結(jié)果數(shù)據(jù)

13、來自存儲器系統(tǒng)。5.相關(guān):兩條指令之間存在某種依賴關(guān)系。相關(guān)有3種類型:數(shù)據(jù)相關(guān)(也稱真數(shù)據(jù)相關(guān))、名相關(guān)、控制相關(guān)數(shù)據(jù)相關(guān)具有傳遞性,反映了數(shù)據(jù)的流動關(guān)系如果兩條指令使用相同的名,但是它們之間并沒有數(shù)據(jù)流動,則稱這兩條指令存在名相關(guān)。反相關(guān):如果指令j寫的名與指令i讀的名相同,則稱指令i和j發(fā)生了反相關(guān)。 指令j寫的名指令i讀的名輸出相關(guān):如果指令j和指令i寫相同的名,則稱指令i和j發(fā)生了輸出相關(guān)。 指令j寫的名指令i寫的名換名技術(shù):通過改變指令中操作數(shù)的名來消除名相關(guān)。前提:寄存器足夠??刂葡嚓P(guān)是指由分支指令引起的相關(guān)。流水線沖突是指對于具體的流水線來說,由于相關(guān)的存在,使得指令流中的下一

14、條指令不能在指定的時鐘周期執(zhí)行。6.流水線沖突有3種類型:結(jié)構(gòu)沖突:因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。數(shù)據(jù)沖突:當(dāng)指令在流水線中重疊執(zhí)行時,因需要用到前面指令的執(zhí)行結(jié)果而發(fā)生的沖突。控制沖突:流水線遇到分支指令和其他會改變PC值的指令所引起的沖突。數(shù)據(jù)沖突有:寫后讀沖突(RAW) 在 i 寫入之前,j 先去讀。 j 讀出的內(nèi)容是錯誤的。對應(yīng)于數(shù)據(jù)相關(guān)寫后寫沖突(WAW) 在 i 寫入之前,j 先寫。最后寫入的結(jié)果是 i 的。錯誤!對應(yīng)于輸出相關(guān)讀后寫沖突(WAR) 在 i 讀之前,j 先寫。i 讀出的內(nèi)容是錯誤的!由反相關(guān)引起。定向技術(shù):在某條指令產(chǎn)生計算結(jié)果之前,其他指令并不

15、真正立即需要該計算結(jié)果,如果能夠?qū)⒃撚嬎憬Y(jié)果從其產(chǎn)生的地方直接送到其他指令需要它的地方,那么就可以避免停頓。流水線互鎖機(jī)制,插入“暫?!?。 作用:檢測發(fā)現(xiàn)數(shù)據(jù)沖突,并使流水線停頓,直至沖突消失。 依靠編譯器解決數(shù)據(jù)沖突 讓編譯器重新組織指令順序來消除沖突,這種技術(shù)稱為指令調(diào)度或流水線調(diào)度。控制沖突 處理分支指令最簡單的方法:“凍結(jié)”或者“排空”流水線 。由分支指令引起的延遲稱為分支延遲。減少分支延遲的方法:預(yù)測分支失敗 允許分支指令后的指令繼續(xù)在流水線中流動,就好象什么都沒發(fā)生似的。若確定分支失敗,將分支指令看作是一條普通指令,流水線正常流動。若確定分支成功,流水線就把在分支指令之后取出的所有

16、指令轉(zhuǎn)化為空操作,并按分支目地重新取指令執(zhí)行。要保證:分支結(jié)果出來之前不會改變處理機(jī)的狀態(tài),以便一旦猜錯時,處理機(jī)能夠回退到原先的狀態(tài)。預(yù)測分支成功 假設(shè)分支轉(zhuǎn)移成功,并從分支目標(biāo)地址處取指令執(zhí)行。起作用的前題:先知道分支目標(biāo)地址,后知道分支是否成功。前述5段流水線中,這種方法沒有任何好處。延遲分支主要思想: 從邏輯上“延長”分支指令的執(zhí)行時間。把延遲分支看成是由原來的分支指令和若干個延遲槽構(gòu)成,不管分支是否成功,都要按順序執(zhí)行延遲槽中的指令。 分支延遲指令的調(diào)度任務(wù):在延遲槽中放入有用的指令。由編譯器完成。能否帶來好處取決于編譯器能否把有用的指令調(diào)度到延遲槽中。三種調(diào)度方法: 從前調(diào)度、從目

17、標(biāo)處調(diào)度、從失敗處調(diào)度MIPS若檢測到RAW沖突,流水線互鎖機(jī)制必須在流水線中插入停頓,并使當(dāng)前正處于IF段和ID段的指令不再前進(jìn)。分支指令的條件測試和分支目標(biāo)地址計算在EX段完成,對PC的修改在MEM段完成。向量處理機(jī)在流水線處理機(jī)中,設(shè)置向量數(shù)據(jù)表示和相應(yīng)的向量指令,稱為向量處理機(jī)。不具有向量數(shù)據(jù)表示和相應(yīng)的向量指令的流水線處理機(jī),稱為標(biāo)量處理機(jī)。處理方式:1.橫向(水平)處理方式向量計算是按行的方式從左到右橫向地進(jìn)行。組成循環(huán)程序進(jìn)行處理。i數(shù)據(jù)相關(guān):N次 功能切換:2N次不適合于向量處理機(jī)的并行處理。2.縱向 (垂直)處理方式向量計算是按列的方式從上到下縱向地進(jìn)行。兩條向量指令之間:數(shù)

18、據(jù)相關(guān):1次 功能切換:1次對處理機(jī)結(jié)構(gòu)的要求:存儲器存儲器結(jié)構(gòu)3.縱橫 (分組)處理方式又稱為分組處理方式。把向量分成若干組,組內(nèi)按縱向方式處理,依次處理各組。對處理機(jī)結(jié)構(gòu)的要求:寄存器寄存器結(jié)構(gòu)提高向量處理機(jī)性能的方法:設(shè)置多個功能部件,使它們并行工作。采用鏈接技術(shù),加快一串向量指令的執(zhí)行。采用循環(huán)開采技術(shù),加快循環(huán)的處理。采用多處理機(jī)系統(tǒng),進(jìn)一步提高性能。鏈接技術(shù)鏈接特征:具有先寫后讀相關(guān)的兩條指令,在不出現(xiàn)功能部件沖突和源向量沖突的情況下,可以把功能部件鏈接起來進(jìn)行流水處理,以達(dá)到加快執(zhí)行的目的。鏈接特性的實質(zhì):把流水線定向的思想引入到向量執(zhí)行過程的結(jié)果。第4章 指令級并行這種指令之間

19、存在的潛在并行性稱為指令級并行。1.流水線處理機(jī)的實際CPI理想流水線的CPI加上各類停頓的時鐘周期數(shù): CPI流水線 = CPI理想 + 停頓結(jié)構(gòu)沖突 + 停頓數(shù)據(jù)沖突 + 停頓控制沖突理想CPI是衡量流水線最高性能的一個指標(biāo)。2.基本程序塊:一段除了入口和出口以外不包含其他分支的線性代碼段。3.循環(huán)級并行:使一個循環(huán)中的不同循環(huán)體并行執(zhí)行。4.程序順序:由源程序確定的在完全串行方式下指令的執(zhí)行順序。保持異常行為是指:無論怎么改變指令的執(zhí)行順序,都不能改變程序中異常的發(fā)生情況。數(shù)據(jù)流:指數(shù)據(jù)值從其產(chǎn)生者指令到其消費者指令的實際流動。靜態(tài)調(diào)度依靠編譯器對代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不

20、是在程序執(zhí)行的過程中、而是在編譯期間進(jìn)行代碼調(diào)度和優(yōu)化。通過把相關(guān)的指令拉開距離來減少可能產(chǎn)生的停頓。動態(tài)調(diào)度在程序的執(zhí)行過程中,依靠專門硬件對代碼進(jìn)行調(diào)度,減少數(shù)據(jù)相關(guān)導(dǎo)致的停頓不精確異常:當(dāng)執(zhí)行指令i導(dǎo)致發(fā)生異常時,處理機(jī)的現(xiàn)場(狀態(tài))與嚴(yán)格按程序順序執(zhí)行時指令i的現(xiàn)場不同。精確異常:如果發(fā)生異常時,處理機(jī)的現(xiàn)場跟嚴(yán)格按程序順序執(zhí)行時指令i的現(xiàn)場相同。記分牌算法和Tomasulo算法是兩種比較典型的動態(tài)調(diào)度算法。Tomasulo算法基本思想 1.核心思想記錄和檢測指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減少到最??;通過寄存器換名來消除WAR沖突和WAW沖突。更多地依賴于

21、硬件寄存器換名可以消除WAR沖突和WAW沖突。寄存器換名是通過保留站和流出邏輯來共同完成的。Tomasulo算法具有以下兩個特點:沖突檢測和指令執(zhí)行控制是分布的。每個功能部件的保留站中的信息決定了什么時候指令可以在該功能部件開始執(zhí)行。計算結(jié)果通過CDB直接從產(chǎn)生它的保留站傳送到所有需要它的功能部件,而不用經(jīng)過寄存器。每個保留站有以下幾個字段:Op:要對源操作數(shù)進(jìn)行的操作。Qj,Qk:將產(chǎn)生源操作數(shù)的保留站號。等于0表示操作數(shù)已經(jīng)就緒且在Vj或Vk中,或者不需要操作數(shù)。Vj,Vk:源操作數(shù)的值。對于每一個操作數(shù)來說,V或Q字段只有一個有效。對于load來說,Vk字段用于保存偏移量。Busy:為“yes”表示本保留站或緩沖單元“忙”。A:僅load和store緩沖器有該字段。開始是存放指令中的立即數(shù)字段,地址計算后存放有效地址。動態(tài)分支

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論