00:24 早期是加快晶體管切換速度,來提升 CPU 速度
01:20 給 CPU 專門的除法電路 + 其他電路來做複雜操作,比如遊戲,視頻解碼
02:28 給 CPU 加緩存,提高數據存取速度,更快餵給 CPU,用計算餐館銷售額舉例
05:13 髒位 - Dirty bit
05:33 流水線設計,用 1 個洗衣機和 1 個乾燥機舉例
06:01 並行處理 - parallelize
07:33 亂序執行 - out-of-order execution
08:21 推測執行 - speculative execution
08:50 分支預測 - branch prediction
09:34 多個 ALU
09:54 多核 (Core)
10:11 多個獨立 CPU
10:52 超級計算機,中國的"神威 太湖之光"
緩存:
CPU已經很強大,而RAM與CPU 的傳輸速度卻沒有提高,所以直接在CPU中內嵌一個RAM,叫做“緩存”
緩存命中/緩存未命中
髒位:dirty bit
當緩存中產生中間值(比如複雜運算時,會先算出一個值,先存起來後面會用到)時,緩存的數據與RAM中就不一致了(因爲RAM中沒有這個中間值)
這種不一致需要記錄下來,之後要同步。因此緩存裏每塊空間有一個特殊標記,叫做“髒位”
異步與同步:
當“緩存”滿了而CPU又需要緩存時,會檢查“”髒位,如果是髒的會把數據先寫回RAM,然後再清理緩存,加載新的內容
CPU並行:
CPU內的不同部分並行處理,使單個時鐘週期可以處理一條指令
CPU並行帶來的問題:
1.指令之間的依賴關係。
高端CPU會將有依賴關係的指令進行動態排序,叫做“亂序執行”
2.條件跳轉
某些跳轉指令會讓CPU空等(要等跳轉之後的結果再繼續執行指令)而造成延遲。
高端CPU會“推測執行”。先進行推測,把指令排好,如果結果正確,則直接執行排好的指令;如果錯誤,就會清空排好的指令。
爲了增加推測的正確性,CPU廠商用複雜的方法開發了“分支預測”
超標量處理器 —— 多核CPU
超級計算機