計算機組成原理(1)-軟體設計(二十二)

後端從入門到精通 發佈 2024-04-10T17:10:04.299358+00:00

計算機組成原理在軟體設計考試分值占比較高,主要會考1、數據的表示:數據進位轉化。(日常生活中使用的都是十進位的數據,但是計算機都是使用二進位,為了方便轉換還有八進位和十六進位)計算機結構、Flynn分類法、CISC與RISC、流水線技術、存儲系統、總線系統、可靠性及校驗碼。

計算機組成原理在軟體設計考試分值占比較高,主要會考

1、數據的表示:數據進位轉化。(日常生活中使用的都是十進位的數據,但是計算機都是使用二進位,為了方便轉換還有八進位和十六進位)

計算機結構、Flynn分類法、CISC與RISC、流水線技術、存儲系統、總線系統、可靠性及校驗碼。

一、數據的表示


任意進位轉十進位

例如二進位的轉換。

二進位轉十進位可以按權展開法,當小數點左邊的是正數次方,右邊的則是負數。

比如:二進位 10100.01

轉成十進位:1*2的四次方+1*2的二次方+1*2的負二次方

比如:七進位 603.01

轉成十進位:6*7的二次方+33*7的零次方+1*7的負二次方



十進位轉二進位


可以使用短除法。

例如:十進位94

二進位:

94除以2 等於47 餘0

47除以2 等於23 餘1

23除以2 等於11 餘1

11除以2 等於5 餘1

5除以 2 等於2 餘1

2除以2 等於1 餘0

1除以2 等於0 餘1

1011110


二進位轉八進位與十六進位數

每三個2進位位可以轉一個8進位位,高位補0,然後把每個位子轉8進位。

10 001 110

那麼二進位110轉八進位是 1*2的二次方+1*二的一次方 = 6

二進位001轉八進位 1*2的零次方 = 1

二進位010轉八進位 1*2的一次方 = 2

所以 八進位是 216


每四個2進位可以轉一個16進位,高位補0。

十六進位到兩位則用字母代替,10是A,11是B,12是C,依次類推。

1000 1110

那麼二進位1000轉十六進位 1*2的三次方 = 8

二進位1110轉十六進位 1*2的三次方 + 1*2的二次方 + 1*2的1次方 = 8+4+2=14

所以十六進位 8E


問:反碼1111 1111 代表十進位的多少

第一步:先把反碼轉成原碼 1000 0000

第二步:首位1代表負數,所以是 -0


問:補碼0000 0000 代表十進位的多少

0


問:移碼1000 000代表十進位多少?

移碼首位1代表正數,所以是 0。



原碼反碼範圍 -127~127

補碼:-128~127



浮點數

1000的科學計數法是1.0 * 10的三次方,這就是計算機里的浮點數。

119則是1.19*10的平方。

所以公式為:

N = M * R的e次方。

其中M稱為尾數,R稱為基數,e稱為指數。

所以1.19是尾數 ,10是基數、2是指數。


問:如何把兩個浮點數相加?

1.0*10的三次方 + 1.19乘以10的平方

對階,把平方轉成三次方,0.119*10的三次方

所以等於1.119 * (10的三次方)


對階 -> 尾數相加 ->結果格式化。

當小數點左邊是0或者超過一位,則需要格式化



二、計算器結構

運算器、控制器、主存儲器 這些都屬於主機。

而主機里最重要的部分是 運算器 + 控制器 = cpu (Central Processing Unit)


運算器包含 算術邏輯單元ALU、累加寄存器AC、數據緩衝寄存器DR(作用讀寫操作的時候,暫存數據)、狀態條件寄存器PSW(作用在運算過程中存儲標誌位)。


控制器包含 程序計數器PC、指令寄存器IR、指令解碼器、時序部件。


三、flynn分類法

單指令流單數據流SISD:意味著控制部件 是一個,處理器 是一個,主存模式 一個。代表就是單處理系統,老計算機。 (後面多核,4g8g就不屬於此類)

單指令流多數據流SIMD:控制部件 一個,處理部件 多個,主存模式 多個。處理器以異步的形式執行同一條指令。代表有 陣列處理器、並行處理機。

多指令流單數據流:控制器多個 處理器 一個,主存模式。並不存在,理論模型,沒有實際意義和價值。

多指令流多數據流:控制器,處理器和主存模式 都是多個。代表多處理器系統。


四、CISC與RISC

CISC複雜模式,RISC精簡模式。

CISC是計算機沒有大規模通用化時候提出來的,數量多,使用頻率差別大,可變長格式,支持多種。

RISC大部分都是操作寄存器,只有load/store操作內存,優化編譯,有效支持高級語言。

五、流水線

執行一條指令分為 取指、分析、執行。

如果沒有流水線,當有三條指令的情況下,則執行順序是:

第一條指令 取指、分析、執行。

第二條指令 取指、分析、執行。

第三條指令 取指、分析、執行。


如果有流水線,則他們的執行順序是:

第一條指令 第二條指令 第三條指令 取指。

第一條指令 第二條指令 第三條指令 分析。

第一條指令 第二條指令 第三條指令 執行。

流水線所做的工作,是把空閒時間利用起來。


流水線的計算

問:把一條指令分為 取指、分析、執行三個部分,且三部分的時間分別是取指2ns、分析2ns、執行2ns。那麼流水線周期多少?100條指令全部執行完畢需要時間是多少

分析:流水線周期指執行時間最長的一段,所以流水線周期最長的是2ns。

一條指令執行時間 + n-1條指令的執行時間

2+2+1 + 99 *2= 5+198 = 203

這是理論公式,第一條指令時間, 後面指令乘以 周期時長。

實踐公式:(k+n-1)*流水線周期。這裡k代表分成幾段。

(3+100-1)*2 = 204


流水線吞吐率計算

指單位時間內流水線所完成的任務數量或者輸出結果數量。

TP=指令條數 除以 流水線執行時間

TP = 100/203nm

關鍵字: