【筆記】計算機科學速成課2-9
視頻鏈接:https://b23.tv/WTK1fx3
畫圖網(wǎng)站:https://excalidraw.com
P2 電子計算機
電路開閉(開關):繼電器、真空管、晶體管。
晶體管只有通電(1),斷電(0)兩種狀態(tài),所以用二進制設計計算機,而數(shù)學中的“布爾代數(shù)”,恰用 true 和 false 進行邏輯運算。
P3 布爾邏輯和邏輯門
1. 布爾邏輯:
NOT:取反。

AND:一假則假。

OR:一真則真。

XOR:相同為假,不同為真。

2. 邏輯門:

3. 邏輯門符號:

P4 二進制
二進制用 1 或 0 表示,1 或 0 叫一“位”或一"比特(bit)"。
1 bytes = 8?bits (1 字節(jié) = 8 比特)。

1. 數(shù)字表示
正負:用第一位表示,1負,0正。
浮點數(shù):有效數(shù)位*指數(shù)(IEEE 754標準,類似科學計數(shù)法)

2. 字符表示
ASCII:7位代碼,128個值。
UNICODE:統(tǒng)一所有編碼的標準。
P5 算術邏輯單元
算術邏輯單元簡稱ALU,有算術單元和邏輯單元兩個單元,負責處理數(shù)字和邏輯運算。
1. 算術單元
算術單元的數(shù)學運算:加法,帶進位的加法,減法,帶進位的減法,數(shù)值取反,增量(+1),減量(-1)數(shù)字無改變通過。
半加器:第一位相加

全加器:進位

8位行波進位加法器 → 超前進位加法器(現(xiàn)在電腦使用)

2. 邏輯單元
作用:邏輯操作 NOT, AND, OR 和簡單的數(shù)字測試。
零測試電路:檢測其中一位是否為1。

P6?寄存器和內(nèi)存
1. 鎖存器

兩個輸入線:

一個輸入線:

2. 寄存器
寄存器:一組鎖存器。
位寬:寄存器能存數(shù)字的位數(shù)。

門鎖矩陣:減少輸入輸出線的使用。所有鎖存器的數(shù)據(jù)線,允許讀取線和允許寫入線分別用一根線連接,當行/列線和允許寫入線都為1時,才允許寫入,以控制單個鎖存器的使用。(16*16的矩陣35根線。)
多路復用器:將地址轉化為行列。eg:輸入11001000,輸出12行8列。

n*n 的矩陣有 n^2 個位址,則可以存儲 n^2 個數(shù)。但 1 個矩陣只可記錄 1 位數(shù)字。

8 個矩陣,所以一個位址存8位,256個位址存256字節(jié)(256*8位)。

3. 內(nèi)存
隨機存取存儲器(內(nèi)存),簡稱RAM,可隨時訪問任何位置,僅在有電的時候存儲數(shù)據(jù)。

P7 中央處理器CPU
CPU:中央處理器,負責執(zhí)行程序,程序由操作(指令)組成。
RAM是CPU外的獨立逐漸,和CPU之間用“地址線”、“數(shù)據(jù)線”和“允許讀/寫線”進行通信。
時鐘:負責管理 CPU 運行的節(jié)奏,以精確地間隔,觸發(fā)電信號,控制單元用這個信號,推動 CPU 的內(nèi)部操作。
時鐘速度:CPU “取指令→解碼→執(zhí)行”的速度,單位赫茲Hz,表示頻率的單位。
超頻:修改時鐘速度,加快 CPU 的速度,超頻過多會讓 CPU 過熱或產(chǎn)生亂碼。
降頻,降低時鐘速度,達到省電的效果,對用電池的設備很重要。
動態(tài)調(diào)整頻率:處理器按需求加快或減慢時鐘速度。
1. CPU工作原理
組件:指令表,控制單元(門電路)、指令寄存器,指令地址寄存器(存當前指令的內(nèi)存地址)。


第一個單芯片CPU:

P8 指令和程序
CPU是可被軟件控制的硬件,具有可編程,輸入不同指令,會執(zhí)行不同任務。
(ALU沒有除法,程序賦予了其除法功能。)
指令集:由指令名稱、用法、操作碼、操作數(shù)組成。
指令和數(shù)據(jù)都存在同一個內(nèi)存里,本質上都是二進制數(shù)。
HALT能區(qū)分指令和數(shù)據(jù)
1. 指令長度
由于8位的指令,其中4位操作碼,只能代指16個指令;4位地址,只能操作16個地址。
兩種解決指令不夠的方法:
用更多位代表指令,如32bit或64bit(指令長度)。
可變指令地址:令不同的指令長度不同。
JUMP可省去它的尋址位數(shù)(操作碼),用8位“立即值”(立即操作數(shù),常量)表示內(nèi)存地址。
HALT則可以省去操作數(shù)的位數(shù)。
P9 高級CPU設計
提高計算機速度的方法
減少晶體管的切換時間。
如設計邏輯門,ALU等組件。后方法達到極限。
CPU硬件層面上設計專門電路。
如設計除法電路。導致ALU越來越復雜,指令越來越多。
在CPU中加入緩存cache / 使用指令流水線。
超高時鐘的速度,使RAM與CPU之間數(shù)據(jù)交換的延遲。
1. 緩存cache
CPU內(nèi)部的小塊RAM。
讓RAM可以傳一批數(shù)據(jù)給CPU。
離CPU近,數(shù)據(jù)傳輸速度快。
緩存命中:想要的數(shù)據(jù)在緩存。
緩存未命中:想要的數(shù)據(jù)不再緩存。
緩存同步
緩存在處理長/復雜的運算,被當臨時空間,存中間值時,導致了緩存和RAM中數(shù)據(jù)的不一致。所以會在緩存滿了CPU又要緩存時,檢查臟位(每塊緩存空間中的特殊標記),如果臟,加載新內(nèi)容之前,把數(shù)據(jù)傳輸給RAM進行同步。
2. 指令流水線
取指令→解碼→執(zhí)行,并行處理提高CPU性能。
但存在“指令之間存在依賴關系”(舊數(shù)據(jù)不能及時變更),條件跳轉”(如JUMP,空等造成延遲)兩個問題,前者需動態(tài)排序有依賴關系的指令(亂序執(zhí)行)。“后者需提前預測可能性(推測執(zhí)行/分支預測),猜對馬上執(zhí)行,猜錯清空流水。

超標量處理器:加相同電路(ALU),使一個時鐘周期處理多條指令(取址+解碼)。

多核處理器:能同時運行多個指令流,一個CPU中有多個獨立處理單元,可以相互共享資源。