軟體設計師考點1 計算機組成原理與體系結構
一、資料的表示
1.R進位制轉十進位制:按權展開發法,例如二進位制:10100.01 = 1*24 + 1*22 + 1*2-2
2.十進位制轉R進位制:短除法,例如:將14轉換為二進位制
2 | 14 餘 0
2 |7 餘1
2 | 3 餘1
2 | 1 餘1
得到結果為:1 1 1 0
3.二進位制和八進位制,十六進位制的轉換:分段法。
4.碼數
原碼:原本的二進位制數,最高位為符號位,1為負,0為正。 範圍:-(2n-1-1)~ 2n-1-1
反碼:正數與原碼相同,負數符號位不變,其他位按位取反 範圍:-(2n-1-1)~ 2n-1-1
補碼:正數與原碼相同,負數為反碼加1 範圍:-2n-1
移碼:補碼首位取反,一般用作浮點運算中的階碼。
5.資料的表示-浮點數運算
N = M * Re,M為尾數,R為基數,e為指數,計算方式:低位向高位對階⇒尾數相加(減)⇒結果格式化(小數點前只能是一位)
二、計算機結構
1.主機機構:
運算器:
①算數邏輯單元ALU
②累加暫存器AC
③資料快取暫存器DR
④狀態條件暫存器PSW:儲存運算過程中的相關標誌位
控制器:
①程式計數器PC
②指令暫存器IR
③指令譯碼器
④時許部件
三、Flynn分類法:一種計算機體系結構的分類法
指令流和資料流:
單指令流單資料流SISD:控制部件一個,處理器一個,主存模組一個。例如:單處理器系統
單指令流多資料流SIMD:控制部分一個,處理器多個,主存模組多個。例如:陣列處理器
多指令流單資料流MISD:目前沒有
多指令流多資料流MIMD:控制器多個,處理器多個,主存模組多個。
四、CISC和RISC
指令系統型別 | 指令 | 定址方式 | 實現方式 | 其他 |
CISC(複雜) | 數量多,使用頻率差別大,可變長格式 | 支援多種 | 微程式控制技術(微碼) | 研製週期長 |
RISC(精簡) | 數量少,使用頻率接近,定長格式,大部分為單週期指令,操作暫存器,只用Load/store操作記憶體 | 支援方式少 | 增加了通用暫存器,硬佈線邏輯控制為主,適合採用流水線 | 優化編譯,有效支援高階語言 |
五、流水線技術:在程式執行過程中多條指令重疊操作的一種準並行處理實現技術
1.流水線週期為執行時間最長的一段。
2.流水線計算公式為:1條指令執行時間+(指令數-1)*流水線週期
3.流水線吞吐率:單位時間內流水線完成的任務數量,計算公式:吞吐率 = 指令條數 / 流水線執行時間
流水線最大吞吐率:= 1 / 流水線週期
4.流水線的加速比:完成同一批任務不使用流水線所用的時間和使用流水線時間的比值。
計算流水線加速比的公式:S = 不適用流水線執行時間 / 使用流水線執行時間
5.流水線的效率:流水線的裝置利用率。E = n個任務佔用的時空區 / k個流水段的總時空區
六、儲存系統
CPU:暫存器,儲存速度最快,容量最小。
cache:快取記憶體儲存器
①功能:提高CPU資料輸入輸出的速率。
②Cache+主存的系統的平均時間= (cache訪問命中率)* cache週期時間 + (1-cache命中率) * 主存週期時間
③區域性性原理:計算機在處理事件和程序時,某些時段會集中讀取某些空間資料的情況。
④工作集:程式執行時被集中訪問的頁面集
記憶體(主存):
①隨機存取儲存器(RAM):特點:斷電後儲存資訊丟失
②只讀儲存器(ROM):特點:斷電後儲存資訊仍在。
編址
記憶體地址從AC000H到C7FFFH,共有 112 個地址單元。若該記憶體地址按字(16bit)編制,由28個儲存器晶片構成。已知每個儲存器晶片有16K個儲存單元,則該晶片每個儲存單元儲存 4 位?
(C7FFFH + 1) - AC000H = C8000H - AC000H = 1C000H = 0001 1100 0000 0000 0000 =0001 1100 00K = 26 +25 + 24 = 64 + 32 + 16 = 112k
儲存位數 = (地址單元 * 編址位數) / (晶片數 * 晶片儲存單元) = (112 * 16 ) / (32 * 16) = 4
外存(輔存):
①磁碟機構與引數
存取時間 = 尋道時間 + 等待時間
七、匯流排系統
根據匯流排位置不同分為:
①內部匯流排
②系統匯流排
資料匯流排:傳輸資料
地址匯流排
控制匯流排:傳送相應的控制訊號
③外部匯流排
八、可靠性
系統可靠性分析
①串聯絡統:R = R1 * R2 *R3 *.........Rn
②並聯系統:R = 1- (1-R1)× (1- R2)× .........×(1-Rn)
N模冗餘模型與混合系統
冗餘模型:多個系統獨立,通過表決器採用少數服從多數的原則輸出結果。
混合系統:串聯和並聯混合
九、校驗碼
差錯控制-CRC與海明校驗碼
碼距:編碼系統中所有碼字之間的最小距離。
①迴圈校驗碼CRC:只能進行檢錯,不能進行糾錯
模二除法:除法運算中不計其進位的除法
例如:10111對110進行模二除法:
海明效驗碼:既能檢錯也能糾錯。
①求海明校驗碼的校驗位:2r >= x+r+1,r為校驗碼的位數,x為資訊位
②求校驗碼的位置海明校驗碼方法中,校驗碼的位置是固定的,從2^0位,2^1 位 --> 2^2位 ... 2^n位 ,總個數為K位
③畫圖表:註釋: 我分別把七個位置用1~7來表示了 在填寫資訊為的時候也要把高位的資料填到高的位置 ,例如1011 就要類似圖中的填法
位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
資訊碼 | 1 | 1 | 0 | 1 | |||
校驗碼 | R1 | R2 | R3 |
④
計算校驗位的值,也是最為關鍵的一步 。
確定校驗位的分組原則:每個位數都由R1、R2、R3中的一或若干個所確定。
說明:1由第一位R1來校驗;2由第二位R2來校驗;由於3=1+2(1和2指的是位數,都是2的n次方)所以3由第一位R1和第二位R2校驗,4由第四位R3校驗,5和3道理是一樣的,5=1+4(2^0+2^2);6=2+4;7=1+2+4來校驗,一次類推;
畫表如下所示:
海明碼位置 | 佔用的校驗位號 | 備註 |
1 | 1 | R1 |
2 | 2 | R2 |
3 | 1,2 | R1,R2 |
4 | 4 | R3 |
5 | 1,4 | R1,R3 |
6 | 2,4 | R2,R3 |
7 | 1,2,4 | R1,R2,R3 |
⑤
進行彙總,看每個校驗位都確定了哪一位。
R1:1、3、5、7
R2:2、3、6、7
R3: 4、5、6、7
第五步:用亦或運算求出R1、R2、R3的值:(以R1為例)
普及:參加運算的兩個物件,如果兩個相應位為“異”(值不同),則該位結果為1,否則為0。多個異或運算時,從左至右依次異或
第二行是對應的資訊位上的數,如圖求出R1=1
以此類推,求出值表如下
位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
資訊碼 | 1 | 1 | 0 | 1 | |||
校驗碼 | 1 | 0 | 0 |
海明校驗碼參考地址:海明校驗碼--檢錯糾錯詳解 - dalyHu的個人空間 - OSCHINA - 中文開源技術交流社群