【计算机体系结构】很难理解?带你从头到尾捋一遍
第一章 計算機體系結構的基本概念
名詞解釋:
(1)層次結構:按照計算機語言從低級到高級的次序,把計算機系統按功能劃分成多級層次結構,每一層以一種不同的語言為特征。
(2)翻譯:先用轉換程序把高一級機器上的程序轉換為低一級機器上等效的程序,然后再在這低一級機器上運行,執行過程中,高一級程序不再被執行。
(3)解釋:對于高一級機器上的程序中的每一條語句或指令,都是轉去執行低一級機器上的一段等效程序。執行完后,再去高一級機器取下一條語句或指令,依次重復執行。
(4)體系結構:程序員所看到的計算機屬性,即概念性結構與功能特性。
(5)系列機:同一廠家生產的具有相同系統結構、不同組成和實現的一系列計算機。
(6)并行性:在同一時刻或同一時間間隔內完成兩種或兩種以上性質相同或不同的工作。
(7)時間重疊:在并行性中引入時間因素,即多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設備的各個部分.
(8)資源重復:在并行性中引人時間因素,是根據“以數量取勝”的原則,通過重復設置資源,尤其是硬件資源,大幅度地提高計算機系統的性能。
(9)資源共享:是一種軟件方法,它使多個任務按一定的時間順序輪流使用同一套硬件設備。
(10)大概率事件優先:此原則是計算機體系結構中最重要和最常用的原則。對于大概率事件,賦予它優先的處理權和資源使用權,以獲得全局的最優結果。
(11)系統加速比:對系統中某部分進行改進時,改進后系統性能提高的倍數。
(12)Amdahl定律:當對一個系統中的某個部件進行改進后,所能獲得的整個系統性能的提高,受限于該部件的執行時間占總執行時間的百分比。
(13)程序的局部性原理:程序執行時所訪問的存儲器地址不是隨機分布的,而是相對地簇聚。包括時間局部性和空間局部性。
(14)CPI:每條指令執行的平均時鐘周期數。
(16)直接成本:與一件產品生產直接相關的成本。
毛利:公司開支的一部分,它必須攤到每一件產品中去。
折扣:商家提供的批發價格折扣,使得零售商獲得利潤。
標價:原料成本+直接成本十毛利+折扣。
(15)可靠性:電子元器件及其構造的系統的可靠性采用概率模型來描述。一個系統的可靠性是指從它開始使用的時刻到出現故障這段時間內正常工作的概率
(16)FIT:10億小時中系統的故障次數。(17)平均無故障時間:是用于度量系統可常提供服務的量化指標。(18)平均修復時間:量度系統中斷服務的量化指標。
(19)平均故障時間:衡量兩次故障之間時間的量化指標。
第二章 指令系統
名詞解釋:
(1)堆棧型機器:CPU中存儲操作數的單元是堆棧的機器。
(2)累加器型機器:CPU中存儲操作數的單元是累加器的機器。
(3)通用寄存器型機器:CPU中存儲操作數的單元是通用寄存器的機器。
(4)尋址方式:是指指令系統中產生所要訪問數據地址的方法。
(5)信息存儲的整數邊界:信息在主存中存放的起始地址必須是該信息寬度的整數倍。
(6)指令系統的完整性:指令系統功能全、使用方便。
(7)指令系統的規整性:主要包括對稱性和均勻性。
(8)數據表示:是指計算機硬件能夠直接識別、指令系統可以直接調用的數據類型。
(9)指令系統的正交性:是指在指令中各個不同含義的字段,如操作數類型、數據類型,尋址方式字段等,在編碼時應互不相關、相互獨立。
(10)PC相對尋址:是一種以程序計數器PC作為參考點的尋址方式,主要用于在轉移指令中指定目標指令的地址。
(11)指令集:就是對CPU支持的機器碼格式規范的一個描述,實際上是一個規范, 規范匯編的文件格式。
簡答題:
1、區別不同指令系統結構的主要因素是什么?根據這個因素可將指令系統結構分為哪三類?
解答:主要因素是CPU中用來存放操作數的存儲單元,指令系統的結構分為堆棧型結構、
累加器型結構以及通用寄存器型結構。
2、通用寄存器型指令系統結構在靈活性和提高性能方面的優勢主要體現在哪幾個方面?
解答:(1)寄存器的訪問速度比存儲器快很多。
(2)對編譯器而言,能更加容易、有效地分配和使用寄存器。在表達式求值方面,通用寄存器型結構具有更大的靈活性和更高的效率。
3、常見的3種通用寄存器型機器的優缺點各有哪些?
寄存器-寄存器型:優點:指令字長固定,結構簡潔;缺點:程序占用空間較大。
寄存器-存儲器型:優點:容易對指令編碼,目標代碼緊湊;缺點:指令的兩個操作數不對稱。
存儲器-存儲器型:優點:目標代碼最緊湊;缺點:指令字長變化很大。
4、計算機指令系統設計所涉及的內容有哪些?
解答:包括指令的功能設計和指令格式的設計。指令系統的功能設計確定哪些基本功能應該由硬件實現,哪些功能由軟件實現;指令格式的設計就是確定指令字的編碼方式;指令系統的基本要求是完整性,規整性、正交性,高效率和兼容性。
5、簡述指令系統結構中采用多種尋址方式的優缺點。
解答:采用多種尋址方式,優點是可以顯著地減少程序的指令條數,缺點是可能增加計算機的實現復雜度以及指令的平均執行時鐘周期數。
6、表示尋址方式的主要方法有哪些?簡述這些方法的優缺點。
解答:表示尋址方式的方法有兩種,一種是隱含在指令的操作碼中,另一種是在指令中設置專門的尋址字段,用以直接指出存址方式。
第一種方法的優點是操作碼和尋址方式需要的總位數少,第二種方法設置尋址字段的方法靈活,操作碼短,但需要設置專門的尋址方式字段。
7、指令系統的規整性主要包括哪兩個方面?簡述其含義。
解答:規整性主要包括對稱性和均勻性。對稱性是指所有與指令系統相關的存儲單元的使用、操作碼的設置等都是對稱的。均勻性是指對于各種不同的操作數類型、字長、操作數種類和數據存儲單元,指令的設置都要同等對待。
8、根據CPU性能公式,簡述RISC指令系統計算機和CISC指令系統計算機的性能特點。
解答:CISC指令系統計算機特點是指令數量多、功能多樣,除了包含基本指令外,往往還提供了很多功能很強的指令。
RISC指令系統指令條數少,指令功能簡單。確定指令系統時,只選取使用頻度很高的指令,在此基礎上補充一些最有用的指令,克服上述CISC的缺點。
9、從當前的計算機技術觀點來看,CISC結構有什么缺點?
解答:(1)各種指令的使用頻度相差懸殊,許多指令很少用到。
(2)指令系統龐大,指令條數很多,許多指令的功能很復雜。
(3)許多指令由于操作繁雜,其CPI值比較大,執行速度慢。
(4)由于指令功能復雜,規整性不好,不利于采用流水技術來提高性能。
10、就指令格式、尋址方式和每條指令的周期數方面比較RISC和CISC處理機的指令系統。
解答:CISC指令系統指令格式.尋址方式多樣,指令條數往往多達200~300條,尋址方式有存儲器間接尋址,縮放尋址、寄存器間接尋址、立即數尋址、偏移尋址等,許多指令由于操作繁雜,其CPI值比較大,一般CISC機器指令的CPI都在4以上,有些在10以上。RISC 指令系統,采用簡單而又統一的指令格式,并減少尋址方式。指令字長都為32位或64位。指令的執行在單周期內完成,采用load-store結構,即只有load和 store指令才能訪問存儲器,其他指令的操作都是在寄存器之間進行。
第三章 流水線技術
名詞解釋:
(1)流水線技術:將一個重復的時序過程,分解成為若干個子過程,而每一個子過程都可有效地在其專用功能段上與其它子過程同時執行。
(2)通過時間:指第一個任務流出結果需要的時間。
(3)排空時間:指最后一個任務進入流水線到輸出流水線的時間。
(4)定向技術:解決數據相關問題,避免暫停。
(5)單功能流水線:指流水線的各段之間的連接固定不變、只能完成一種固定功能的流水線。
(6)多功能流水線:指各段可以進行不同的連接,以實現不同的功能的流水線。
(7)靜態流水線:指在同一時間內,多功能流水線中的各段只能按同一種功能的連接方式工作的流水線。當要切換到另一種功能時,必須等前面的任務都流出之后,才能改變連接。
(8)動態流水線:同一時間內,多功能流水線中的各段可以按照不同的方式連接,同時執行多種功能的流水線。它允許在某些段正在實現某種運算時,另一些段卻在實現另一種運算。
(9)吞吐率:在單位時間內流水線所完成的任務數量或輸出結果的數量。
(10)流水線的加速比:使用順序處理方式處理一批任務所用的時間與按流水處理方式處理同一批任務所用的時間之比。
(11)流水線的效率:即流水線設備的利用率,它是指流水線中的設備實際使用時間與整個運行時間的比值。
(12)數據相關:一條指令需要用到前面指令的執行結果,而這些指令均在流水線中重疊執行。
(13)控制相關:流水線遇到分支指令和其他改變PC值的指令。
(14)結構相關:硬件資源滿足不了指令重疊執行的要求。
計算題:
第四章 指令級并行
名詞解釋:
(1)指令級并行:簡稱ILP。是指指令之間存在的一種并行性,利用它,計算機可以并行執行兩條或兩條以上的指令。
(2)循環展開:展開循環體若干次,將循環級并行性轉化為指令級并行的技術。
(3)指令調度:通過在編譯時讓編譯器重新組織指令順序或通過硬件在執行時調整指令順序來消除沖突。
(4)動態調度:是指在保持數據流和異常行為的情況下,通過硬件對指令執行順序進行重新安排,以提高流水線的利用率且減少停頓現象。是由硬件在程序實際運行時實施的。
(5)公共數據總線:是一條公共結果總線,所有等待這個結果的功能部件(指令)可同時讀取。
(6)分支預測緩沖:最簡單的動態分支預測技術,僅使用一片存儲區域,記錄最近一次或幾次分支特征的歷史。
(7)分支目標緩沖:將分支成功的分支指令的地址和它的分支目標地址都放到一個緩沖區中保存起來,緩沖區以分支指令的地址作為標識,這個緩沖區就是分支目標緩沖區。
(8)前瞻執行:在處理器還未判斷指令是否能執行之前就提前執行,以克服控制相關。
它的思想是:允許指令亂序執行,但必須順序確認。
(9)再定序緩沖:指令前瞻執行時在指令確認階段需要一套額外的硬件緩沖來保存那些執行完畢但未經確認的指令及其結果。這種硬件的緩沖稱為再定序緩沖。
(10)超標量:處理器流出指令時,每個時鐘周期流出的指令數不定。
(11)超流水:處理器的每個功能部件進一步流水化,特別是取指令或指令流出被分解為多個段,使得一個功能部件在一拍中可以處理多條指令。
(12)超長指令字:處理器流出指令時,每個時鐘周期流出的指令數是固定的。
(13)基本程序塊:一段除了入口和出口之外不包含其他分支的線性代碼段。
(14)循環并行性:循環體中指令之間的并行性。
(15)靜態調度:編譯器確定并分離出程序中相關的指令,然后進行指令調度,并對代碼優化。
(16)動態調度:指在決策時刻,調度環境的部分信息可知,根據逐步獲得的信息,不斷更新調度。
簡答題:
1、動態調度的目的:
(1)解決寫后寫和先讀后寫相關引起的數據阻塞;(2)還可解決先寫后讀數據阻塞
2、動態調度
優點:(1)處理一些編譯時未發現的相關,從而簡化編譯器;(2)可以在另一種流水線上有效的運行。
缺點:硬件復雜性顯著增加
3、指令的確認:前瞻執行的指令產生的結果一直到指令處于非前瞻執行狀態時,才能確定為最終結果,才允許最終寫到寄存器或存儲器中去。
4、超標量流水線相比超長指令字處理器的兩個優點:
(1)超標量結構對程序員是透明的,不需要排列指令來滿足指令流出;
(2)即使是沒有經過編譯器對超標量結構進行調度優化的代碼或是舊的編譯器生成的代碼也可以運行。
第五章 存儲層次
名詞解釋:
(1)映像規則:當把一個塊從主存調入Cache時,決定主存塊在Cache中位置關系的規則。
(2)替換算法:當從主存中調一個塊到Cache中時,會出現該塊所映像到的一組Cache塊位置已全部被占用的情況。隨機法;先進先出法FIFO;最近最少使用法LRU;最不常使用法LFU
(3)寫直達法:把信息寫入Cache中相應的塊,也寫入下一級存儲器中相應的塊。優點:速度快,寫操作能以Cache存儲器的速度進行。
(4)寫回法:只把信息寫入Cache中相應塊,該塊只有被替換時,才被寫回主存的一種寫策略。
優點:易于實現,下一級存儲器中的數據總是最新的,簡化數據一致性問題。
(5)命中時間:訪問Cache命中時所用的時間。
(6)失效率:訪問某一級Cache時,未找到所需信息的概率。
(7)失效開銷:Cache失效時,從向下一級存儲器發出請求到把數據調人Cache所需的時間。
(8)強制性失效:當第一次訪問一個塊時,該塊一定不在Cache中,必須從下一級存儲器中調入 Cache,這種失效就是強制性失效。
(9)容量失效:如果程序在執行時,所需要的塊不能全部調入Cache中,則當某些塊被替換后又重新被訪問,就會產生失效,這種失效就稱作容量失效。
(10)沖突失效:在組相聯或直接映像Cache 中,若太多的塊映像到同一組(塊)中,則會出現該組中某個塊被別的塊替換,然后又被重新訪問的情況,這種失效被稱為沖突失效。
(11)相聯度:在組相聯 Cache 中,每組包含的Cache塊數。
(12)Victim Cache:一種降低失效率的方法。位于Cache和存儲器之間的又一級Cache,容量小,采用全相聯策略。存放由于失效而被丟棄的那些塊,當發生失效時,先檢查其中是否有所需的塊,如果有,就將該塊調入Cache。
(13)寫緩沖:一種降低寫失效開銷的方法。在Cache和下一級存儲器間設置一個寫緩沖區,如果寫緩沖有空項,則數據和地址將寫入其中。
(14)寫合并:―種降低寫失效開銷的方法。在往緩沖器寫入地址和數據時,如果寫緩沖器中存在被修改過的塊,就檢查其地址,如果匹配,就將新數據與該塊合并。
(15)非阻塞Cache:一種降低Cache失效開銷的方法。Cache在等待預取數據返回時,還能繼續提供指令和數據,支持“失效下命中”,能處理部分命中訪問,減少評價失效開銷。
(16)流水化Cache:一種降低Cache命中時間的方法。當一級Cache的命中時間是多個周期時,將多個Cache訪問流水化會提高Cache的帶寬,從整體上降低平均命中時間。
(17)請求字處理:一種降低 Cache失效開銷的方法。CPU所請求的字到達后,不等整個塊都調入 Cache,就把該字發送給CPU并使處理器繼續運行。其方案:盡早重啟動和請求字優先。
(18)虛擬Cache:使用虛地址映射Cache并訪問的Ca,消除Ca訪問時用于地址轉換的時間。
(19)DDR:在DRAM時鐘的上沿和下沿都進行數據傳輸,從而可把數據傳輸率提高一倍。
簡答題:
1、簡述“Cache-主存”層次與“主存-輔存”層次的區別?
目的:為了彌補主存速度的不足;為了彌補主存容量的不足。
存儲管理實現:全部由專門硬件實現;主要由軟件實現。
訪問速度:幾比一;幾百比一。
典型塊大小:幾十個字節;幾百個到幾千個字節。
CPU對第二級訪問方式:可直接訪問;均通過第一級訪問。
失效時CPU是否切換:不切換;切換到其他進程。
2、降低Cache失效率的方法:
(1)強制性失效:當第一次訪問一個塊時,該塊一定不在Cache中,必須從下一級存儲器中調入 Cache,這種失效就是強制性失效。
(2)容量失效:如果程序在執行時,所需要的塊不能全部調入Cache中,則當某些塊被替換后又重新被訪問,就會產生失效,這種失效就稱作容量失效。
(3)沖突失效:在組相聯或直接映像Cache 中,若太多的塊映像到同一組(塊)中,則會出現該組中某個塊被別的塊替換,然后又被重新訪問的情況,這種失效被稱為沖突失效。
3、虛擬存儲器:
由價格較貴、速度較快、容量較小的主存儲器M1和價格低廉、速度較慢、容量很大的輔助存儲器M2組成。
特點:
(1)巨大的邏輯空間,不必做存儲器管理
(2)多個進程可以共享主存空間
(3)采用動態再定位
計算題:
1、假設Cache的命中時間為1個時鐘周期,失效開銷為50個時鐘周期,在混合Cache中一次load或store操作訪問Cache的命中時間都要增加一個時鐘周期。指令Cache(0.64%)和數據Cache(6.47%)容量均為16KB的分離Cache和容量為32KB的混合Cache(1.99%)相比,哪種Cache的失效率更低?兩種情況下平均訪存時間各是多少?
解答:
(1)如前所述,約75%的訪存為取指令(100%/(100%+26%+9%)≈75%)。
因此,分離 Cache的總體失效率為:(75%×0.64%)+(25%×6.47%)=2.10%
又32KB的混合Cache的失效率只有1.99%。因為2.10%>1.99%,所以混合Cache失效率低。
(2)平均訪存時間分離=75%×(1+0.64%×50)+25%×(1+6.47%×50)=(75%×1.32)+(25%×4.325)=0.990+1.059=2.05. 平均訪存時間混合=75%×(1+1.99%×50)+25%×(1+1+1.99%×50)=(75%×1.995)+(25%×2.995)=1.496+0.749=2.24。
因為2.05<2.24,所以分離Cache的平均訪存時間少。
2、當不考慮存儲器停頓時,所有指令的執行時間都是2.0個時鐘周期(CPI)。假設Cache失效開銷為50個時鐘周期, Cache的失效率為2%,平均每條指令訪存1.33次。試分析Cache對性能的影響。
解答:
CPU 時間=IC×(CPIexe+每條指令的存儲器停頓周期數)×時鐘周期時間=IC×2.0×時鐘周期時間 考慮Cache的失效后,性能為:CPU 時間有cache=IC×(CPIexe+每條指令的平均訪存次數×失效率×失效開銷)× 時鐘周期時間=IC×(2.0+(1.33×2%×50))×時鐘周期時間
=IC×3.33×時鐘周期時間 實際CPI:3.33 3.33/2.0 = 1.67(倍)
CPU時間也增加為原來的1.67倍。但若不采用Cache,則:CPI=2.0+50×1.33=68.5
3、(1)理想Cache(命中率為100%)情況下的CPI為2.0,平均每條指令訪存1.3次。
(2)兩種Cache容量和塊大小相同,直接映像Cache的失效率為1.4%,相同容量的兩路組相聯Cache的失效率為1.0%。
(3)這兩種結構Cache的命中時間為1個時鐘周期,失效開銷都是35個時鐘周期。
(4)直接映像Cache中,時鐘周期為2ns。但是在2路組相聯Cache中,由于多路選擇器的存在而使CPU的時鐘周期增加到原來的1.10倍。
解答:
(1)平均訪存時間為:平均訪存時間=命中時間+失效率×失效開銷
平均訪存時間1路=[1+(0.014×35)]×2.0=2.98ns
平均訪存時間2路=[1+(0.010×35)]×2.0×1.10=2.97ns
兩路組相聯Cache的平均訪存時間比較低。
(2)CPU時間=IC*(CPI+每條指令的平均訪存次數失效率失效開銷周期)*時鐘周期時間
CPU時間1路 = IC×(2+(1.3×0.014×35))×2.0= 5.27×IC
CPU時間2路 = IC×(2+(1.3×0.010×35))×2.0×1.10= 5.4×IC
5.27<5.4,所以直接映像Cache的平均性能好一些。
4、(1)(2)(4)同上(3)這兩種結構Cache的命中時間為1個時鐘周期,失效開銷都是70ns。
解答:
(1)平均訪存時間1路=2.0+(0.014×70)=2.98ns
平均訪存時間2路=2.0×1.10+(0.010×70)=2.90ns
兩路組相聯Cache的平均訪存時間比較低。
(2)CPU時間1路 = IC×(2.0×2+(1.3×0.014×70))= 5.27×IC
CPU時間2路 = IC×(2.0×2×1.10+(1.3×0.010×70))= 5.31×IC
5.27<5.31,所以直接映像Cache的平均性能好一些。
5、考慮某一兩級Cache, (1)假設在1000次訪存中,L1的失效是40次,L2的失效是20次。求各種局部失效率和全局失效率。(2)假設L2的命中時間是10個時鐘周期,L2的失效開銷是100時鐘周期(200),L1的命中時間是1個時鐘周期,平均每條指令訪存1.5次,不考慮寫操作的影響。問:平均訪存時間是多少?每條指令的平均停頓時間是多少時鐘周期?
解答:
(1)第一級Cache的失效率(全局和局部)是40/1000,即4%;
第二級Cache的局部失效率是20/40,即50%;
第二級Cache的全局失效率是20/1000,即2%。
(2)平均訪存時間=命中時間L1+失效率L1×(命中時間L2+失效率L2×失效開銷L2)
=1+4%×(10+50%×100)=1+4%×60=3.4個時鐘周期
由于平均每條指令訪存1.5次,且每次訪存的平均停頓時間為:3.4-1.0=2.4
所以:每條指令的平均停頓時間=2.4×1.5=3.6個時鐘周期(6.6)。
第六章 輸入輸出系統
簡答題:
(1)同步總線和異步總線各有什么優缺點?
答:1、同步總線上所有設備通過統一的總線時鐘進行同步。同步總線成本低,因為它不需要設備之間相互確定時序的邏輯。同步總線也有缺點,總線操作必須以相同的速度運行。由于各種設備都要精確地以公共時鐘為定時參考,在時鐘頻率很高時容易產生時鐘相對漂移錯誤。
2、異步總線上的設備之間沒有統一的時鐘,設備自己內部定時。設備之間的信息傳送用總線發送器和接收器控制。異步總線容易適應更廣泛的設備類型,擴充總線時不用擔心時鐘時序和時鐘同步問題。但在傳輸時,異步總線需要額外的同步開銷。
(2)什么是通道?簡述通道完成一次數據傳輸的主要過程。
答:通道可以接受CPU的I/O指令,執行CPU為通道組織的通道程序,為主存和外設設置傳輸控制信息。通道完成一次數據傳輸的過程主要分為如下3步。
1、在用戶程序中使用訪管指令進入管理程序,由管理程序組織一個通道程序,并啟動通道。
2、通道執行CPU為它組織的通道程序,完成指定的數據/O工作。
3、通道程序結束后向CPU 發中斷請求。
(3)可靠性:是指系統從初始狀態一直提供服務的能力,用平均無故障時間來衡量;可用性是指系統正常工作時間在連續兩次正常服務間隔時間中所占的比率;可信性是指服務的質量。
(4)通道的種類:
字節多路通道:選擇通道;數字多路通道
總結
以上是生活随笔為你收集整理的【计算机体系结构】很难理解?带你从头到尾捋一遍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 看完这篇Java注解,我要在学妹面前吹牛
- 下一篇: 前置USB接线插主板的1394接口上的后