寫在前面
2017 2018/1/8 17:00 又是一學期結束了
考完系統結構這門課程以后....
我現在最大的疑惑就是——
為什么我背的都沒考
更不幸的是!考到的又都沒看到
但,這門課程對於計算機專業來說,還是很重要的,比如某京大學還把它作為考研科目之一呢(別胡思亂想了,不是北大吶)
先說一下我們學校用的這套教材——《計算系統結構(第二版)》鄭偉民、湯志忠編著 清華大學出版社
PS:完整的課件PPT(前9章)以及學習過程中整理的學習資料、習題答案等詳見 >>這里>>
進入正文
下面是我在復習過程中總結出的一些這門課程在這套教材下的常見考(問)題...
❤標記❤
❤標記❤
【例題】有5個中斷源,其中斷優先級1級最高,5級最低,正常情況下的中斷屏蔽碼和 改變后的中斷屏蔽碼如下表所示,每個中斷源的有5位中斷屏蔽碼,其中“1” 表示該中斷源被屏蔽,“0”表示該中斷源開放。
(1)如果5個中斷源同時申請,分別寫出使用正常的中斷屏蔽碼和改變后中斷屏蔽碼時,處理機響應各中斷源的中斷服務請求的先后次序和實際中斷處理次序。(2)假設處理機從響應中斷源的中斷服務請求開始,到運行中斷服務程序中第一次開中斷所用時間為1個單位時間,運行中斷服務程序的其它部分所使用的時間為4個單位時間,那么在執行主程序時,有D3、D4和D5同時發出中斷服務請求,過了3個單位時間,又有中斷源D1和D2同時發出中斷服務請求,如果使用改變后中斷屏蔽碼,請畫出處理機響應中斷源的中斷服務請求和實際運行中斷服務程序過程示意圖。
例1:在一個頁式二級虛擬存貯器中,采用FIFO算法進行頁面替換,發現命中率H太低,因此有下列建議:
(1) 增大輔存容量
(2) 增大主存容量(頁數)
(3) 增大主、輔存的頁面大小
(4) FIFO改為LRU
(5) FIFO改為LRU,並增大主存容量(頁數)
(6) FIFO改為LRU,且增大頁面大小
試分析上述各建議對命中率的影響情況。
[解答]
(1) 增大輔存容量,對主存命中率H不會有什么影響。因為輔存容量增大,並不是程序空間的增大,程序空間與實主存空間的容量差並未改變。所以,增大物理輔存容量,不會對主存的命中率H有什么影響。
(2) 如果主存容量(頁數)增加較多時,將使主存命中率有明顯提高的趨勢。但如果主存容量增加較少,命中率片可能會略有增大,也可能不變,甚至還可能會有少許下降。這是因為其前提是命中率H太低。如果主存容量顯着增加,要訪問的程序頁面在主存中的機會會大大增加,命中率會顯著上升。但如果主存容量(頁數)增加較少,加上使用的FIFO替換算法不是堆棧型的替換算法,所以對命中率的提高可能不明顯,甚至還可能有所下降。
(3) 因為前提是主存的命中率H很低,在增大主、輔存的頁面大小時,如果增加量較 小,主存命中率可能沒有太大的波動。因為FIFO是非堆棧型的替換算法,主存命中事可能會有所增加,也可能降低或不變。而當頁面大小增加量較大時,可能會出現兩種相反的情況。當原頁面大小較小時,在顯著增大了頁面大小之后,一般會使主存命中率有較大提高。但當原頁面大小已較大時,再顯著增大頁面大小后,由於在主存中的頁面數過少,將會使主存命中宰繼續有所下降。
(4) 頁面替換算法由FIFO改為LRU后,一般會使主存的命中率提高。因為LRU替換算法比FIFO替換算法能更好地體現出程序工作的局部性特點。然而,主存命中率還與頁地址流、分配給主存的實頁數多少等有關,所以,主存命中率也可能仍然較低,沒有明顯改進。
(5) 頁面替換算法由FIFO改為LRU,同時增大主存的容量(頁數),一般會使主存命中率有較大的提高。因為LRU替換算法比FIFO替換算法更能體現出程序的局部性,又由於原先主存的命中宰太低,現增大主存容量(頁數),一般會使主存命中率上升。如果主存容量增加量大些,主存命中率H將會顯著上升。
(6) FIFO改為LRU,且增大頁面大小時,如果原先頁面大小很小,則會使命中率顯著上升;如果原先頁面大小已經很大了,因為主存頁數進一步減少而使命中率還會繼續有所下降。
例2:采用組相聯映象、LRU替換算法的Cache存貯器,發現等效訪問速度不高,為此提議:
(1) 增大主存容量
(2) 增大Cache中的塊數(塊的大小不變)
(3) 增大組相聯組的大小(塊的大小不變)
(4) 增大塊的大小(組的大小和Cache總容量不變)
(5 )提高Cache本身器件的訪問速度
試問分別采用上述措施后,對等效訪問速度可能會有什么樣的顯著變化?其變化趨勢如何?如果采取措施后並未能使等效訪問速度有明顯提高的話,又是什么原因?
[分析] Cache存儲器的等效訪問時間 ta = Hc*tc + (1-Hc)*tm
等效訪問速度不高,就是ta太長。要想縮短ta,一是要使Hc命中率盡可能提高,這樣(1-Hc)tm的分量就會越小,使ta縮短,越來越接近於tc。但如果ta已非常接近於tc時,表明Hc已趨於1,還想要提高等效訪問速度,則只有減小tc,即更換成更高速的Cache物理芯片,才能縮短ta。另外,還應考慮Cache存貯器內部,在查映象表進行Cache地址變換的過程時,是否是與訪物理Cache流水地進行,因為它也會影響到ta。當Hc命中率已很高時,內部的查映象表與訪Cache由不流水改成流水,會對tc有明顯的改進,可縮短近一半的時間。所以,分析時要根據不同情況做出不同的結論。
如果Cache存貯器的等效訪問速度不高是由於Hc太低引起的,在采用LRU替換算法 的基礎上,就要設法調整塊的大小、組相聯映象中組的大小,使之適當增大,這將會使Hc 有所提高.在此基礎上再考慮增大Cache的容量.Cache存貯器中,只要Cache的容量比較 大時,由於塊的大小受調塊時間限制不可能太大,增大塊的大小一般總能使Cache命中率 得到提高.
[解答]
(1)增大主存容量,對Hc基本不影響.雖然增大主存容量可能會使tm稍微有所加大,如果Hc已很高時,這種tm的增大,對ta的增大不會有明顯的影響。
(2)增大Cache中的塊數,而塊的大小不變,這意味着增大Cache的容量.由於LRU替換算法是堆棧型的替換算法,所以,將使Hc上升,從而使ta縮短.ta的縮短是否明顯還要看當前的Hc處在什么水平上.如果原有Cache的塊數較少,Hc較低,則ta會因Hc迅速提高而顯著縮短.但如果原Cache的塊數已較多,Hc已很高了,則增大Cache中的塊數,不會使Hc再有明顯提高,此時其ta的縮短也就不明顯了。
(3)增大組相聯組的大小,塊的大小不變,從而使組內的塊數有了增加,它會使塊沖突 突概率下降,這也會使Cache塊替換次數減少.而當Cache各組組內的位置已全部裝滿了 主存的塊之后,塊替換次數的減少也就意味着Hc的提高。所以,增大組的大小能使Hc提高,從而可提高等效訪問速度。不過,Cache存貯器的等效訪問速度改進是否明顯還要看目前的Hc處於什么水平。如果原先組內的塊數太少,增大組的大小,會明顯縮短ta;如果 原先組內塊數已較多,則ta的縮短就不明顯了。
(4)組的大小和Cache總容量不變,增大Cache塊的大小,其對ta影響的分析大致與(3) 相同,會使ta縮短,但耍視目前的Hc水平而定。如果Hc已經很高了,則增大Cache塊 的大小對ta的改進也就不明顯了。
(5)提高Cache本身器件的訪問速度,即減小ta,只有當Hc命中率已很高時,才會顯著縮短ta。如果Hc命中率較低時,對減小ta的作用就不明顯了。
---------------------分割線---------------------分割線---------------------分割線-------------------------
發福利啦!!!
下面就是這次考試我遇到的部分常規題目(標紅)以及其他復習所謂必看點吶...
當浮點數值尾數的基值為8,除尾符之外尾數機器位數為6位時,可表示的規格化最小的正尾數值是(A)。
A、0.125 B、0.25 C、0.5 D、1/64
ILLIAC Ⅳ陣列處理機中,PE之間所用的互連函數是(C)。
A、Shuffle B、Cbule0和Cbule1
C、PM2±0和PM2±3 D、PM2±2
用N=16的互聯網絡互聯16個處理機,編號為0~15,若網絡實現的互聯函數為Cube2(Cube0),則從7號處理機聯接到的處理機號是(B)。
A、3 B、2
C、7 D、5
IBM 370系統中,中斷響應優先級級別最高的中斷類型是( D )。
A、程序性中斷 B、重新啟動中斷
C、輸入輸出中斷 D、緊急機器校驗中斷
解決軟件移植最好的辦法就是(A)。
A、采用統一高級語言 B、采用模擬方法
C、采用統一標准設計計算機結構 D、采用仿真的方法
計算機優化使用的操作碼編碼方法是(A)。
A、哈夫曼編碼 B、ASCII碼
C、擴展操作碼 D、BCD碼
一個由25台計算機組成的Cluster系統的指令內部由4個PentiumIII 700M,其指令峰值速度為多少?
答:由“III”可知IPC = 3 即 CPI = 1/3 且Fz=700 MHz
指令峰值速度=Fz / (CPI * 10^6)=700 * 10^6Hz * 4 * 25 / ((1/3)*10^6) = 2.1*10^5 MIPS
基本輸入輸出方式中程序控制方式稱為(狀態驅動輸入輸出處理方式)。
ILP=n的k段超流水處理機執行N條指令相對於單發射流水處理機的加速比為(n(N+k-1)/nk+N-1)。
2-4-8擴展編碼方法最多可編碼的碼點數為(178)個。1+1+((2^2-1)*4-1)*6 = 178.
中斷屏蔽不能改變中斷(響應)優先次序,但是,它能動態改變中斷執行次序。
在尾數采用補碼、小數表示且p=6,階碼采用移碼、整數表示且q=6,尾數基值rm為16,階碼基值re為2的情況下:對於規格化浮點數,最大階數為(63)。re^q-1 = 2^6-1
在同一時間內,多功能流水線中的各個功能段可以按照不同的方式連接,實現同時執行多種功能是(動態流水線)。
在典型程序中,轉移指令占的比例為p=20%,轉移成功概率為q=60%,那么對於8段流水線的最大吞吐率下降百分比為(46%)。1-1/(pq(k-1))
按Cache地址映像的塊沖突概率從高到低的順序是(直接映像、組相聯映像、全相聯映像)。
不屬於堆棧算法的是(FIFO算法)。附注:堆棧型算法的基本特點:隨着分配給程序的主存頁面數增加,主存命中率也提高,至少不下降。
設計一台計算機應有哪五類基本指令?
通用計算機必須有5類基本指令
1、數據傳送類指令
2、運算類指令
3、程序控制指令
4、輸入輸出指令
5、處理控制和調試指令
在多處理機系統中,Cache一致性問題由什么引起,主要采用哪兩種方法解決?
Cache一致性問題主要由共享可寫的數據、進程遷移、I/O 傳輸等原因產生。目前主要采用監聽協議和基於目錄的協議,分別適用於不同結構。
請你分析浮點數的尾數基值為2,同號相減或異號相加,階差大於等於2,需要設置警戒位嗎?需要設置幾位警戒位?
需要,1位警戒位。
關於警戒位:
(1) 同號相加或異號相減,浮點數的尾數之和不需要左規格化,因此不必設置警戒位。
(2) 同號相減或異號相加,階差為0,不必設置警戒位。
(3) 同號相減或異號相加,階差為1,只需要設置一位警戒位。
(4) 同號相減或異號相加,階差大於等於2,只需一位警戒位。
簡述流水線技術特點
(1)只有連續提供同類任務才能發揮流水線效率,盡量減少因條件分支造成的“斷流”,通過編譯技術提供連續的相同類型操作。
(2)每個流水段都要設置一個流水寄存器,增加時間開銷:流水線的執行時間加長;增加硬件開銷:每段需要增加一個寄存器。
(3)各流水段的時間應盡量相等,流水線處理機的基本時鍾周期等於時間最長的流水段的時間長度。
(4)流水線需要有“裝入時間”和“排空時間”。
超標量處理機和超流水線處理機異同點。
超流水線處理機的工作方式與超標量處理機不同,超變量是以增加硬件資源為代價來換取處理機的性能,而超流水線處理機秩序增加少量硬件,是通過個部件硬件的充分重疊工作倆提高處理機性能的。從流水線的時空圖來看,超變量處理機采用的是空間並行性,而超流水線處理機采用的是時間並行性。
在設計一個計算機系統時,確定數據表示的原則主要有哪幾個?
確定數據表示的原則主要有三個
一是縮短程序的運行時間,
二是減少CPU與主存儲器之間的通信量,
三是這種數據表示的通用性和利用率。
列出互連網絡中四種尋徑方式?並指出它們各自優缺點?
1.線路交換 在傳遞一個信息前需要頻繁的建立從源結點到目地結點的物理通路,開銷將會很大。
2.存儲轉發尋址 包緩沖區大,不利於VLSI的實現;時延大,與結點的距離成正比
3.虛擬直通 沒有必要等到整個消息全部緩沖后再做路由選擇,只要接收到用作尋址的消息頭部即可判斷,通信時延與結點數無關;同樣不利於VLSI的實現。
4.蟲蝕尋址 每個結點的緩沖區小,易於VLSI實現;較低的網絡時延。
如果外設要求的通道實際流量十分接近或等於通道具有的最大流量時,則可能發生局部的數據丟失問題,我們怎樣解決(三種方法)?
1. 增大通道最大流量。
2. 動態改變設備優先級。
3. 增加一定數量的緩存器,尤其是優先級比較低的設備
解決軟件移植最好的辦法有哪些?
1.采用系列機
2.采用模擬與仿真
3.采用統一的高級語言
至於試題中的大題,在上面都有用 ❤標記❤出來!!!
期待以后學得更好
雖然在這門課的掌握上還有很多不理解、沒學習到的地方!但下學期想來准備考研也沒法避開類似於計組、計算機網絡、操作系統等等這些相關聯課程,嘻嘻,如果這門課程大家有什么疑惑的地方,關於這篇博客的內容,或是這門課程相關的,歡迎大家聯系我互相交流學習啦~ ღ( ´・ᴗ・` )