Ch1:Computer Abstraction and Technology
前面廢話蠻多的,要考前衝刺的直接跳到 Permormance
1-1 Introduction
- Moore's Law:
- 每 1.5 年晶片上的電晶體密度會翻倍
- 會有極限:因為量子穿隧效應會限制電晶體所能達到的最大密度

電腦的種類
- Personal PC:目前最廣泛使用的電腦
- Server:
- 專門運行大型程式
- 常用於網路傳輸
- 允許多使用者同步使用

- Supercomputer:
- 擁有最高的性能與成本
- 經常用於科學與工程計算

- Embedded Computer(嵌入式電腦):
- 一種嵌入在其他裝置上的電腦
- 能力與表現受限於硬體

- 個人移動裝置(PMD):
- 使用電池供應電源
- 使用無線網路
- e.g. 手機、平板
- Cloud computing:
- 依賴 Warehouse Scale Computer(WSCs)
- Software as a Service(SaaS)
- 一部分運行在 PMD;另一部分運行在雲端
1-2 Eight Great Ideas
以下是電腦架構的八大核心理念:
-
為 Moore's Law 設計(Design for Moore’s Law):
- 摩爾定律預測:晶片上的電晶體數量每兩年會翻倍
- 設計電腦時要考慮到這個成長趨勢,讓系統可以隨著硬體的進步一起升級,不會被限制住。
-
使用抽象來簡化設計(Use Abstraction to Simplify Design)
- 使用抽象來將複雜的系統分層,簡化開發流程
- e.g.作業系統不用思考硬體設計
-
讓常見情況執行更快(Make the Common Case Fast):
- 優化常見的操作情境,有助於提升效率
- e.g. 如果 90% 的時候都在讀資料,那你就應該先讓「讀」的操作更快,而不是優化用不到 10% 的「寫」操作。
-
透過平行處理提升效能(Performance via Parallelism):
- 允許設備可以同時執行多個 process
- e.g. 多核心處理器
-
透過 Pipelining 提升效能(Performance via Pipelining):
- 像工廠流水線一樣,把一個任務拆成多個步驟,每個階段同時運作,提升處理速度。
- e.g. CPU 執行一條指令時,會分成 Fetch, Decode, Execute, Store。當第一條在 execute 時,第二條可以 Decode,第三條可以 Fetch。

-
透過預測提升效能(Performance via Prediction):
- 猜測接下來會發生什麼,提前準備,減少等待時間。
- 即使偶爾猜錯,只要常常猜對,效能整體就會好。
-
建立記憶體分層(Hierarchy of Memories):
- 不同記憶體會有不同的容量與讀取速度

-
靠系統冗餘提升可靠性(Dependability via Redundancy):
- 加入備份 -> 當部分系統出問題時還能運作,避免整個系統掛掉。
- e.g. 資料中心會用 RAID 技術,把資料寫到多顆硬碟上,即使一顆壞掉,還是可以救回資料。
1-3 Below Your Program
計算機結構分層
- Application Software:
- System Software:
- Compiler, Assembler:將高階語言轉成 Machine code
- 作業系統:溝通軟硬體的媒介
- Hardware:
- CPU, Memory, I/O 裝置

程式語言分層

1-4 Under the Cover
Liquid Crystal Display(LCD)
- 由薄層的液晶組成
- 使用電晶體去控制每個液晶穿透的光線
- Frame buffer:
- 資料以 bit map 的方式儲存
- RGB -> 24 bits

Abstraction
- 目標:隱藏 low-level
- Instruction set architecture(ISA, 指令集):
- 是硬體與低階軟體的 interface
- 封裝於作業系統中
- 控制一些基礎操作(如 I/O 控制…)
- Application binary interface:ISA + 作業系統
記憶體揮發性(Volatility)
|
揮發性記憶體(Volatile) |
非揮發性記憶體(Nonvolatile) |
描述 |
只有在電源開啟時才儲存資料,電源關閉後資料會消失 |
可以永遠儲存資料,不受電源供應影響 |
讀取速度 |
快 |
慢 |
成本 |
高 |
低 |
容量 |
小 |
大 |
例子 |
RAM(DRAM、SRAM) |
硬碟、SSD、ROM、Flash |
1-5 Technology of Processor and Memory
- 電腦組成科技的演變

半導體(Semiconductor)
這邊有點超綱,可以不讀。詳情可以參考 VLSI 筆記。
- 簡介:
- 半導體使用矽作為原料
- 矽本身不導電,但可以透過加入材料讓他倒電
- p-type 半導體:
- n-type 半導體:
- 加入 5A 族元素(鉍)
- 形成自由電子

- 製程:

- 成本計算:
- Response time:做完任務需要耗時多久
- Throughput:每段時間做完多少任務
- Relative performance:
Response time 計算方式比較
- Elapsed time:
- 任務全部的 responce time
- 需要參考許多因素(I/O 處理、閒置時間等)
- 決定於系統表現
- CPU time:只參考 CPU 的執行時間
CPU clocking
- 所有數位硬體操作都受到固定速率的 CPU clock 控制
- Clock period:clock cycle 的週期
- Clock rate(時脈):clock 的頻率
- Instruction count:
- 一個程式所需要的指令數量
- 取決於 program, ISA, compiler
- Cycles per instruction (CPI)
- 由 CPU 硬體決定
- 不同 instruction 會有不同的 CPI
- 平均 CPI:
- 實際計算:

1-7 The Power Wall(功率牆)
- Power wall:
- 當 CPU clock rate 提升到某個程度後,就無法再繼續提升,因為晶片產生的熱量太高,無法有效冷卻,導致系統無法穩定運作。

- 動態功耗公式:
- = Capacitive load,電容負載
- = 電壓
- = CPU clock rate

- 因為 power wall 的存在,我們不能依賴提升 clock rate 來提升效能
1-8 The Switch from Uniprocessors to Multiprocessors
- Uniprocessors 的演變:
- 瓶頸:Power wall, 平行化指令, 記憶體延遲

- Multiprocessor:
- Multicore microprocessors:一個 chip 有多個 processor
- 真正的平行化編程:
- 硬體同時處裡多個 instructions
- 對使用者隱藏
Amdahl's Law
- 概述:
- 用來衡量改善系統的後的效率
- 改善性能不會改善整體表現
- 公式:
- :系統整體改善後耗時
- :改善部分的「改善前耗時」
- :未改善部分的耗時
- :系統效率提升倍率