計算機系統結構之重要知識點複習
第一章 計算機系統結構的概念
重要知識點:
1. 計算機系統結構的定義
答:計算機系統結構是程式設計師看到的計算機屬性,即概念性結構和功能性結構
2. 計算機系統結構的Flynn分類法
答:
分類依據:
指令流(計算機執行指令的序列)
資料流(指令流呼叫的資料序列)
多倍性(在系統受限的部件上,同時處於同一執行階段的指令或資料的最大數目)
四大分類:
1)單指令流單資料流(SISD)
2)單指令流多資料流(SIMD)
3)多指令流單資料流(MISD)
4)多指令流多資料流(MIMD)
Ps:S代表Single,M代表Multiple
3. 計算機系統設計的定量原理(4個),熟練運用Amdahl定律和CPU效能公式
答:
計算機系統設計的4個定量原理:
1)以經常性事件為重點
2)遵循Amdahl定律
3)CPU效能公式
4)程式區域性性原理
關於定量原理的簡單分析:
Amdahl定律:加速某部件執行速度所能獲得的系統性能加速比,受限於改部件的執行時間佔系統中總執行時間的百分比
加速比公式的推導:
加速比=改進前的總執行時間/改進後的總執行時間(核心定義式)
改進後的總執行時間=改進前的總執行時間*[(1-可改進比例)+可改進比例/部件加速比]
加速比=1/[(1-可改進比例)+可改進比例/部件加速比](這是針對只有一個部件改進的情況,如果有多個部件改進的話,要求加速比要根據核心定義式來)
多個部件改進求加速比:加速比=1/[(1-多個部件可改進比例之和)+多個部件可改進比例之和/多個部件加速比之和](預測是考試重點)
CPU效能公式的推導:
CPU時間=時鐘週期數*單個時鐘週期時間(單個時鐘週期時間是系統頻率的倒數)
新定義一個CPI,CPI=時鐘週期數/指令條數
定義IC,IC=指令條數
那麼CPU時間=IC*CPI*時鐘週期時間
程式區域性性原理的分析:
指的是程式執行時訪問的儲存器地址不是隨機的,是相對成簇的,比如數組裡面的資料在地址空間裡面都是連續存在的,包括時間區域性性和空間區域性性
時間區域性性:指程式將要用到的資訊和可能是當前正在使用的資訊
空間區域性性:指程式將要用到的資訊很可能與目前正在使用的資訊在空間上相鄰或者相近
(簡單瞭解即可)
4. 理解執行時間和吞吐率的含義
答:
執行時間:計算機完成某一任務所花費的全部時間(包括磁碟訪問,儲存器訪問,IO,作業系統開銷等)
吞吐率:單位時間內計算機完成任務的多少
5. 系列機的含義與軟體相容方式
答:
系列機:由同一廠家生產的具有相同的系統結構,但具有不同的組成和實現的一系列不同型號的計算機
系列機的4種軟體相容方式:
1)向前相容
2)向後相容
3)向上相容
4)向下相容
6. 模擬與模擬的區別
答:
模擬:用軟體的方法在一臺現有的計算機上實現另外一臺計算機的指令集
模擬:用一臺現有計算機上的微程式去解釋實現另一臺計算機
區別:
1)模擬程式放在記憶體中,而模擬微程式放在儲存器中
2)模擬的執行速度比模擬快
3)模擬只能在系統結構差距不大的計算機之間使用
7. 並行性,同時性,併發性的含義
答:
並行性:指計算機系統在同一時刻或同一時間間隔內進行多種運算或操作
注意:並行性包括同時性和併發性!!!!
同時性:指兩個或者兩個以上的事情在同一時間發生
併發性:指兩個或者兩個以上的事情在同一間隔發生
8.提高並行性的技術途徑
答:
1)時間重疊:流水線技術
2)資源重複:多處理機系統
3)資源共享:多道程式,分時系統,印表機
第二章 計算機指令集結構
1. 根據儲存運算元的儲存單元的型別對指令集結構進行分類以及每類的特點
答:
指令集結構的分類:
1)堆疊類指令集結構
2)累加器類指令集結構
3)通用暫存器類指令集結構
堆疊類指令集結構的特點:
1)運算元都是隱式給出(即棧頂和次棧頂中的資料)(棧頂和次棧頂的資料取出來進行運算之後,結果再次壓入堆疊當中)
2)只能通過psuh/pop指令訪問儲存器
3)指令字短,程式佔用空間小但訪問存在瓶頸(由堆疊這種資料結構決定)
累加器類指令集結構的特點:
1)一個運算元是隱式給出(累加器本身資料),一個運算元是顯示給出(一個儲存單元的資料)(運算結果再次送回累加器)
通用暫存器類指令集結構的特點:
1)所有運算元都是顯示給出(或是來源於儲存器,或是來源於通用暫存器本身,結果再次希爾通用暫存器)
2. 定址方式的含義以及常見的定址方式
答:
定址方式的含義:
指一種指令集結構如何確所要訪問的資料的地址
常見的定址方式:
1)暫存器定址(ADD R1,R2):Regs[R1] <-- Regs[R1]+Regs[R2]
2)立即數定址(ADD R3,#6):Regs[R3] <-- Regs[R3]+6
3)偏移定址(ADD R3,120(R2)):Regs[R3] <-- Regs[R3]+Mem[120+Regs[R2]]
3. 偏移定址方式中偏移量的取值範圍的特點,立即數定址方式中立即數取值範圍的特點
答:
偏移量的取值範圍特點:
1)分佈廣泛
2)較小偏移量和較大偏移量佔的比重大
立即數取值範圍的特點:
1)較小的立即數最常用,但有時也會用到較大的立即數
2)立即數範圍大小設定為8位到16位
4. CISC複雜指令集結構存在的問題,RISC精簡指令集結構的設計原則
答:
CISC複雜指令集結構存在的問題:
1)各種指令的使用頻度相差懸殊,許多指令很少用到
2)指令集龐大,指令條數多,許多指令的功能又很複雜
3)許多指令由於操作複雜,其CPI值比較大,執行速度慢
4)由於指令功能複雜,規整性不好,不利於採用流水線技術來提高效能
RISC精簡指令集結構的設計原則
1)指令條數小,指令簡單
2)採用簡單而有統一的指令格式,並減少定址方式
3)指令的執行在單個機器週期內完成
4)只有load和store指令才能訪問儲存器,其他指令的操作都是在暫存器之間進行
5)大多數指令都採用硬連邏輯來實現
6)強調優化編譯器的作用,為高階語言程式生成優化的程式碼
7)充分理由流水線技術來提高效能
5. 能夠改變控制流的4種指令型別
答:
1)條件分支(if else)
2)跳轉(break,continue)
3)過程呼叫(函式呼叫)
4)過程返回(return)
6. 資料表示的含義,運算元型別的兩種表示方法
答:
資料表示:
指計算機硬體能夠直接識別,指令集可以直接呼叫的資料型別
運算元型別的兩種表示方法:
1)由指令中的操作碼指定運算元的型別
2)給資料加上標識,由資料本身給出運算元的型別
7. 指令集的3種編碼格式
答:
1)可變長度的編碼格式(該編碼格式適合指令集的定址方式和操作種類很多時)
2)固定長度編碼格式(該編碼格式適合指令集的定址方式和操作種類很少時)
8. MIPS的暫存器和資料定址方式的特點
答:
MIPS暫存器的特點:
1)32個64位的通用暫存器,R0~R31,R0的值永遠是0
2)32個64位的浮點暫存器(可存放單雙精度)
3)還有一些特殊狀態暫存器(比如浮點狀態暫存器)
資料定址方式的特點:
1)只有立即數定址和偏移量定址的兩種方式
2)立即數字段和偏移量欄位都是16位
3)暫存器間接定址是通過把0作為偏移量來實現的
4)16位絕對定址是把R0作為基址暫存器來完成的
9. MIPS的3種指令方式中各欄位的含義
答:
MIPS指令都是32位的,操作碼佔6位,三類:I類,R類,J類
1)I類指令(load,store,立即數指令,分支指令,暫存器跳轉指令,暫存器連結跳轉指令)
操作碼 + rs + rt + 立即數
Rs:第一個源運算元暫存器
Rt:第二個源運算元暫存器
2)R類指令(ALU指令,專用暫存器讀寫指令,move指令等)
操作碼 + rs + rt + rd + shamt + funct
Rd:存放操作結果的目的暫存器
Shamt:移位的位數
Funct:運算操作碼(功能碼)
3)J類指令:(跳轉指令,跳轉並連結指令,自陷指令,異常返回指令)
操作碼 + 與pc相加的偏移量
10.MIPS的4種操作型別,控制指令的組成
答:
MIPS的4種操作的型別:
1)Load和store
2)ALU操作
3)分支與跳轉
4)浮點操作
控制指令的組成:
1)跳轉指令
2)分支指令
第三章 流水線技術
1. 流水線的概念和時空圖
答:
流水線的概念:把多個處理過程在時間上錯開,依次通過各功能段,這樣每個子過程就可以與其他子過程並行進行,這個就叫做流水線技術
流水線的工作過程採用時空圖來描述,橫座標表示時間,縱座標表示空間,即流水線中每一個流水段
2. 流水線的分類
答: 流水線由多種分類,分類依據不同,分類自然也不同
1)單功能流水線和多功能流水線(劃分依據:功能的多少)
2)靜態流水線和動態流水線(劃分依據:同一時間內各段之間的連線方式)
3)部件級,處理機級及處理機間流水線(劃分依據:流水的級別)
4)線性流水線和非線性流水線(劃分依據:流水線中是否有反饋迴路)
5)順序流水線和亂序流水線(劃分依據:任務流入和流出的順序是否相同)
3. 計算以下兩種情況的流水線的吞吐率(核心定義式:TP=n/Tk)
1)各段時間均等的流水線
2)各段時間不均等的流水線
4. 解決流水線瓶頸常用的兩種方法
答:
1)細分瓶頸段
2)重複設定瓶頸段(不差錢的搞法,在瓶頸段設定多個運算部件)
5. 計算流水線的加速比和效率
答:
加速比=不採用流水線的時間/採用流水線的時間
效率=時空圖所有小矩形總面積/時空圖大矩形面積
6. 經典5段流水線的執行過程
答:
1)取指令週期
2)指令譯碼週期
3)執行/有效地址計算週期
4)儲存訪問/分支完成周期
5)寫回週期
7. 指令相關定義(3種),運用換名技術解決名相關
答:指令相關的定義:
1)資料相關(此次運算需要前一次運算的結果作為資料)
2)名相關(指令所訪問的暫存器或儲存器單元相同)
3)控制相關(分支指令引起的相關)
換名技術:因為名相關的兩條指令之間沒有資料的傳送,只使用了相同的名而已,所以如果把其中一條指令所使用的名換成別的,並不影響另外一條指令的正確執行
8. 流水線衝突的定義(3種),結構衝突和資料衝突的解決措施
答:
流水線衝突的定義:指對於具體執行的流水線來說,由於相關的存在,使得指令流中的下一條指令不能在指定的時間執行
流水線衝突的分類:
1)結構衝突(因硬體資源滿足不了指令重疊執行的要求而引發的衝突)
2)資料衝突(當指令在流水線中重疊執行時,因需要後面指令的執行結果而引發的衝突)(通俗說就是現在要用到還沒有算出來的結果)
3)控制衝突(流水線遇到分支指令和其他會改變pc值的指令所引起的衝突)
結構衝突的解決措施:
1)適當停頓流水線,推遲衝突中的一個操作
2)增加硬體裝置資源
資料衝突的解決措施:
1)定向技術:把計算結果從產生的地方直接放到需要的地方)
2)適當停頓流水線(因為需要的東西還沒有算,所以你先停下自己的工作,等它算出來,你再拿著算出來的結果繼續開始工作)
第五章 儲存系統
1. 多級儲存層次的設計目標
答:
1)速度快
2)容量大
3)價格低
2. 以下概念的含義:命中率,失效率,命中時間,失效開銷,平均訪存時間的計算公式
答:
命中率:cpu訪問儲存系統時,找到所需資訊的概率
失效率:cpu訪問儲存系統時,找不到所需資訊的概率
命中時間:cpu訪問儲存系統時,找到所需資訊所花費的時間
失效開銷:cpu訪問儲存系統時,找不到所需資訊所花費的時間
平均訪存時間的計算公式=命中開銷+不命中率*不命中開銷
3.三種映像規則的實現原理
答:
1)全相連映像(主存中的任意一塊可以放到cache中的任意一個位置)(任意一個)
2)直接映像(主存中的每一個塊只能放置到cache的唯一一個位置)(唯一一個)
3)組相連映像(主存中的一個塊可以放到cache中唯一一個組中的任意一個位置)(唯一一個組的任意位置)
4.cache塊的查詢方法
答:
標識+索引
先索引到組/塊,然後在組/塊內根據標識查詢
同一組內索引相同,標識不同
5. cache的工作過程
答:
21064的cache的實體地址為24位(塊地址29位+塊內位移5位)
1)先得到標識的位數,進而得到索引
2)將索引作為地址從目錄項裡面得到相應的標識和有效位
3)同時用索引從cache的資料體中選一塊,用塊內位移作為偏移量得到相應的標識
4)將兩個標識相比較(有效位為1比較才有效)
5)匹配成功且有效位為1,cache命中,發訊號通知cpu取走資料
6)匹配不成功,cache不命中,給cpu傳送一個等待訊號,並從下一級儲存器調入一個新的資料庫(如需替換cache中資料塊,則按照對應的替換演算法進行替換)
6. 兩種寫策略的含義及其優缺點
答:
1)寫直達法:不僅把資料寫入cache,還寫入下一級儲存器
優點:資料保證了一致性
缺點:慢
2)寫回法:只把資料寫入cache,不寫入下一級儲存器
優點:快
缺點:資料沒有保證一致性
7. 熟練運用平均訪存時間公式,cpu時間公式,儲存器停頓時鐘週期數公式進行cache效能分析
8. cache失效的三種類型,降低cache失效率的四種方法
答:
Cache失效的三種類型:
1)強制性不命中(第一次訪問時,cache中沒有對應程式的任何資料)
2)容量不命中(容量限制,需要訪問的資料因為cache容量有限被替換出去了)
3)衝突不命中(組相連映像中,太多的快映像到同一組,出現的在組內x塊被y塊替換了,需要訪問x的時候訪問不到情況)
降低cache失效率的四種方法:
1)增加cache塊的大小(程式區域性性原理,增加了塊大小,所以減少了塊數目,可能會增加衝突不命中)
2)增加cache的容量(以增加成本,命中時間為代價)
3)提高相連度(以增加命中時間為代價)
4)偽相連(列相連)(即獲得了多路組相連cache的低不命中率,又保持了直接映像cache的命中速度
9. 減少cache失效開銷的3種方法
答:
1)採用兩級cache
2)讓讀不命中優先於寫(等我寫完再讀)
3)寫緩衝合併(不寫重複的,提高了寫的效率)
10. 減少命中時間的兩種方法
答:
1)容量小,結構簡單的cache(硬體越簡單,速度就越快)
2)虛擬cache
第七章 互連網路
1.互連網路的定義與三大要素
答:
互連網路的定義:一種由開關元件按照一定的拓撲結構和控制方式構成的網路,用來實現計算機系統中結點之間的相互連線
互連網路的三大要素:
1)互連結構
2)開關元件
3)控制方式
2.常見的互連函式
略(不好寫這上面,看書比較好)
第八章 多處理機
1. 依據儲存器結構對多處理機進行分類
答:
1)對稱式共享儲存器多處理機
2)分散式儲存器多處理機
2. 分散式儲存器多處理機的兩種通訊方式
答:
1)共享地址空間
2)多個獨立的地址空間
3. 多處理機Cache一致性的定義
答:
如果允許共享資料進入Cache,那麼當其中一個處理器對自己Cache中的資料進行了修改之後,其他Cache中的副本資料沒有被修改,資料不一致
4. 兩種共享資料狀態跟蹤技術的實現過程
答:
1)目錄式協議
2)監聽式協議
實現過程:
1)目錄式協議:
對於分散式儲存器多處理機,由多個儲存器,多個Cache,多個CPU,多個IO,一個儲存器,一個Cache,和一個CPU和一個IO叫做一個處理單元,一個處理單元配備一個目錄,該目錄記載了該單元的儲存器中的資料在哪些Cache中存在了副本,當該單元從自己的儲存器讀入一個數據然後又修改了之後,該單元會先把該資料從自己的Cache寫回自己的儲存器,然後檢視自己的目錄,看看我修改的資料在那些Cache中存在副本,依次修改資料,保證共享資料的一致性
2)監聽式協議
所有的儲存器一直監聽匯流排,當某個儲存器對共享資料進行了修改之後就對該資料被修改的資訊進行廣播,所有的儲存器都是一直在監聽匯流排的,收到訊息之後會對比一下看看自己是否有被修改資料的副本,有的話進行修改,沒有的話不進行操作
5. 兩種更新協議的實現過程
答:
1)寫作廢協議
2)寫更新協議
實現原理:
寫作廢協議:
當本地cache中的資料被修改之後,告訴所有的Cache你們的該資料作廢了,因為被我修改了,你別用了
寫更新協議:
當本地Cache中的資料被修改之後,告訴所有的Cache你們的該資料也要進行修改,因為我剛剛修改了我本地Cache的該資料
6. 對稱式共享儲存器系統中監聽協議的實現過程
答:
對稱式共享儲存器系統由多個cache多個cpu,但是隻有一個儲存器,他們共用這個儲存器,假定一個cahce和一個cpu叫做一個運算單元,假定發生資料修改的單元的cpu和cache分別叫做本地cache和本地cpu,當本地運算單元傳送資料修改時,cpu寫把修改之後的資料寫入本地cache和儲存器,然後向匯流排廣播該資料被我修改的訊息,其他運算單元看看自己的caceh中有沒有改資料的副本,有的話也要進行修改,沒有的話就跳過
7. 分散式儲存器多處理機目錄協議的實現過程
答:
分散式儲存器多處理機系統有多個cache,多個cpu,多個儲存器,多個目錄,假定一個儲存器一個cpu一個cache一個目錄叫做一個運算單元,假定發生資料修改的單元的cpu和cache和儲存器分別叫做本地cpu,本地cache,本地儲存器,當本地運算單元發生資料修改時,先把修改的資料寫回本地cache,然後查詢本地目錄,看看被修改的資料在哪些cache中存在副本,然後讓他們都修改一下該資料在他們cache中的副本,從而保證資料一致性