歡迎來到硬件部分:計算機體系結構

各位未來的計算機科學家大家好!在本章「計算機體系結構」中,我們將深入探索計算機系統的內部構造。我們將探討基本的物理組件(即硬件),以及它們如何協同運作,將你的程式和應用程式變得活靈活現。

理解硬件至關重要,因為它解釋了為什麼你的電腦有時運行飛快,有時卻慢吞吞,以及它究竟是如何每天處理你輸入的數十億條指令。別擔心那些看起來複雜的名稱——我們將會把系統拆解成簡單易懂的工作項目!

3.1 中央處理器 (CPU)

CPU 與微處理器的角色 (3.1.1)

中央處理器 (Central Processing Unit, CPU) 通常被稱為計算機的「大腦」。它的主要任務是處理輸入到計算機中的指令和數據,以便產生結果(輸出)。

你可以把 CPU 想成是計算機系統的首席執行官 (CEO)。它負責接收指令、分配任務,並確保一切按時運行。

微處理器只是一種現代的集成電路 (IC),它具備 CPU 的功能,並完整地構建在單一的小型矽晶片上。現今大多數的電腦、手機和嵌入式系統都使用微處理器。

馮·諾依曼架構 (Von Neumann Architecture) (3.1.2)

大多數現代計算機採用馮·諾依曼架構,即指令和數據存儲在同一個存儲單元(隨機存取存儲器,RAM)中。CPU 通過內部組件與該存儲器進行持續的數據交換。

CPU 的關鍵組件 (3.1.2a)

CPU 包含幾個負責處理和控制的重要組件:

  • 算術邏輯單元 (Arithmetic Logic Unit, ALU): 執行所有算術運算(如加減法)和邏輯運算(如 AND、OR、NOT)。它是計算與決策的中心。
  • 控制單元 (Control Unit, CU): 管理並協調計算機的所有其他組件。它控制數據和指令的流向,並發出時序訊號。它是 CPU 的管理者。
  • 暫存器 (Registers): 微小且極速的存儲位置,用於在「提取-解碼-執行」週期期間暫時存放數據或指令。
基本暫存器
  • 程式計數器 (Program Counter, PC): 存放下一條指令的地址。
  • 內存地址暫存器 (Memory Address Register, MAR): 存放 CPU 想要讀取或寫入數據或指令的內存地址。
  • 內存數據暫存器 (Memory Data Register, MDR): 存放剛從內存提取即將寫入內存的數據或指令。
  • 當前指令暫存器 (Current Instruction Register, CIR): 存放目前正在解碼及執行的指令。
  • 累加器 (Accumulator, ACC): 暫時存放算術邏輯單元 (ALU) 運算後的結果。

💡 記憶小撇步: MAR 存地址 (Address),MDR 存數據 (Data)。

匯流排 (Buses)

匯流排是電氣路徑,用於在 CPU 與其他組件(如 RAM)之間傳輸數據、地址和訊號。

  • 地址匯流排 (Address Bus): 將地址從 CPU(存於 MAR 中)傳輸到內存。它是單向的
  • 數據匯流排 (Data Bus): 在 CPU 與內存之間(通過 MDR)傳輸實際的數據和指令。它是雙向的
  • 控制匯流排 (Control Bus): 傳輸控制訊號(例如讀/寫訊號、時鐘訊號),以協調所有活動。它是雙向的
提取-解碼-執行 (FDE) 週期 (3.1.2b)

這是 CPU 為運行程式而不斷重複的核心過程。它每秒會發生數百萬次!

FDE 週期步驟:

  1. 提取 (FETCH):
    • 下一條指令的地址從 PC 複製到 MAR
    • PC 遞增以指向下下條指令。
    • 從 RAM 中(根據 MAR 存放的地址)讀取指令/數據,並沿著數據匯流排傳送到 MDR
    • 指令從 MDR 複製到 CIR
  2. 解碼 (DECODE):
    • 控制單元 (CU) 解釋存放在 CIR 中的指令。它會弄清楚指令的意思(例如「將這兩個數字相加」)。
    • CU 為執行階段準備必要的組件(如 ALU 或特定的暫存器)。
  3. 執行 (EXECUTE):
    • 執行該指令。這可能涉及 ALU 進行計算、在暫存器之間移動數據,或是將數據寫回內存。
    • 如果執行的是計算,結果通常會存儲在累加器 (ACC) 中。

初學者覺得這裡複雜是很正常的,別擔心!多練習標註圖表並記住各個暫存器的角色,特別是提取階段中 PC \(\rightarrow\) MAR 和 MDR \(\rightarrow\) CIR 的過程。

影響 CPU 效能的因素 (3.1.3)

三個主要特性決定了 CPU 執行指令的速度:

  1. 時鐘速度 (Clock Speed):
    • 以吉赫茲 (GHz) 為單位。這是 CPU 每秒可以執行的週期數(FDE 週期)。
    • 影響: 時鐘速度越快,意味著 CPU 每秒能執行更多指令,效能就越高。
  2. 核心數量 (Number of Cores):
    • 核心本質上是 CPU 內的一個獨立處理單元。
    • 影響: 核心越多,CPU 就能同時運行多條指令或任務(並行處理)。四核心 CPU 比單核心 CPU 能更有效地同時處理四個任務。
  3. 快取大小 (Cache Size):
    • 快取是位於 CPU 內部或非常靠近 CPU 的小型高速內存,用來存儲常用的指令和數據。
    • 影響: 快取越大,CPU 等待較慢的內存 (RAM) 的機會就越少。通常情況下,較大的快取能提升效能。
指令集 (3.1.4)

指令集是特定 CPU 能夠理解並處理的所有命令(以機器碼表示)的完整列表。每一種不同類型的 CPU(如 Intel 與 ARM)都有其獨有的指令集。

嵌入式系統 (3.1.5)

嵌入式系統是一種內置於大型設備中的計算機系統,旨在執行一個或幾個專用功能。它們通常是針對實時控制進行了優化的微處理器。

它們與可以執行多種功能的通用計算機(如 PC 或筆記型電腦)不同。

嵌入式系統範例:

  • 家用電器(洗衣機、微波爐)
  • 汽車(引擎管理、ABS 防鎖死煞車系統)
  • 安全系統、照明系統和自動販賣機。
快速回顧:計算機體系結構

CPU 使用 FDE 週期來運行程式。增加核心數量、提高時鐘速度以及擴大快取容量都能提升速度。小型化的專用計算機稱為嵌入式系統

3.2 輸入與輸出設備

CPU 需要透過不同的方式來接收資訊 (輸入),並顯示或執行已處理過的資訊 (輸出)。

輸入設備 (3.2.1)

輸入設備允許將數據或指令輸入到計算機系統中。

常見範例:

  • 鍵盤、光學滑鼠:用於輸入文字和控制游標。
  • 條碼掃描器、QR 碼掃描器:讀取光學圖案以輸入數據(如產品條碼)。
  • 數碼相機、麥克風:捕捉影像和聲音,並將其轉化為數碼數據。
  • 觸控屏幕:結合了輸入與輸出功能的設備。
    • 電阻式: 對壓力有反應(如觸控筆或戴手套)。
    • 電容式: 對電荷有反應(如裸指觸摸)。
    • 紅外線式: 使用紅外線束/傳感器陣列來檢測觸摸。
  • 2D 和 3D 掃描器:將物理對象或文件轉化為數碼複製品。
輸出設備 (3.2.2)

輸出設備將計算機處理過的數據,轉換為人類可讀或機器可操作的形式。

常見範例:

  • LED/LCD 屏幕:顯示視覺輸出。(LED 通常比傳統 LCD 更亮且更節能)。
  • 投影機 (DLP, LCD):將視覺輸出投射到大平面上。
  • 噴墨打印機、雷射打印機:產生硬拷貝輸出。
  • 揚聲器 (喇叭):產生聲音輸出。
  • 3D 打印機:創建三維物理對象。
  • 致動器 (Actuator):一種將電訊號轉換為物理運動或力的機械(例如打開閥門、移動機器手臂、轉動馬達)。常用於自動化系統。
傳感器與控制 (3.2.3)

傳感器 (Sensor) 是一種輸入設備,用於檢測並測量物理性質(如光、溫度或壓力),並將其轉換為計算機可以處理的數據(通常是電訊號)。

傳感器是創建自動化系統(見課題 6.1)的基礎。微處理器監控傳感器數據,並在需要採取行動時向致動器發送指令。

傳感器類型與捕捉的數據
  • 溫度傳感器:測量熱度/冷度。(用於中央暖氣系統)。
  • 光傳感器:測量環境光強度。(用於自動街燈)。
  • 壓力傳感器:測量力/重量。(用於防盜警報器的地墊)。
  • 聲學傳感器:測量聲音水平/振動。(用於檢測玻璃碎裂的安全系統)。
  • 加速度計:測量加速度/傾斜/振動。(用於手機改變屏幕方向)。
  • 濕度傳感器:測量水分/潮濕度。(用於農業土壤灌溉)。
  • 氣體傳感器:測量特定氣體的濃度。(用於工業安全/工廠)。
  • 流量傳感器:測量流體經過某一點的速度或體積。(用於測量燃料消耗)。
  • 距離傳感器 (Proximity):在沒有物理接觸的情況下檢測附近物體。(用於汽車泊車感應)。
  • 液位傳感器:測量物質的高度(如水箱中的水量)。
  • 紅外線傳感器:測量熱特徵,或用於遙控器。
  • 磁場傳感器:測量磁場的存在或強度(如指南針應用)。
  • pH 值傳感器:測量酸鹼度。(用於環境科學或農業)。

選擇最合適的傳感器完全取決於應用場景和你需要監控的物理量。如果你要檢查環境狀態,你可能需要溫度、濕度或光傳感器。

快速回顧:輸入/輸出

輸入設備捕捉數據;輸出設備顯示結果或執行動作。傳感器是自動化系統中不可或缺的專用輸入設備。

3.3 數據存儲

主存儲器 (Primary Storage) (3.3.1)

主存儲器是 CPU 可以直接訪問的內存。它對於存儲 CPU 當前正在處理的數據和指令至關重要。

  • 隨機存取存儲器 (RAM):
    • 允許數據讀取與寫入(讀/寫)。
    • 具有揮發性 (Volatile):斷電後數據會丟失。
    • 用於存儲操作系統和當前運行的應用程式/數據。
  • 唯讀存儲器 (ROM):
    • 允許讀取數據,但通常不允許寫入(唯讀)。
    • 具有非揮發性 (Non-volatile):斷電後數據依然存在。
    • 用於存儲計算機的啟動指令(即引導程式 (Bootloader)韌體 (Firmware))。

為什麼兩者都需要? 計算機需要 ROM 來啟動(因為 ROM 在沒電時也能保存指令),而一旦啟動後,需要 RAM 來高效運行程式(因為 RAM 對於動態的暫存數據來說速度快得多)。

輔助存儲器 (Secondary Storage) (3.3.2)

輔助存儲器用於長期、永久地保存數據和程式。它是非揮發性的。CPU 不能直接訪問它;數據必須先複製到 RAM 中。

輔助存儲器的類型 (3.3.3)
1. 磁性存儲 (如硬碟 HDD)
  • 運作原理: 使用塗有磁性材料的旋轉碟片。數據通過磁化碟片上的微小區域(位元)來存儲。讀/寫磁頭在表面移動,利用電磁鐵來讀寫數據。
  • 結構: 碟片被劃分為同心圓的磁軌 (Tracks),進一步劃分為磁區 (Sectors)
  • 範例: 硬碟 (Hard Disk Drives, HDD)。
2. 光學存儲 (如 CD, DVD, 藍光)
  • 運作原理: 數據存儲在旋轉碟片上的微觀凹槽 (Pits) 和平面 (Lands) 中。雷射束照射在表面,通過反射圖案來解析二進制數據。
  • 範例: CD、DVD、藍光碟片。
3. 固態存儲 (快閃記憶體) (如 SSD, USB 隨身碟)
  • 運作原理: 使用電子電路和 NANDNOR 技術。數據通過存儲在電晶體內浮閘中的電荷來表示。由於沒有活動部件,速度非常快。
  • 範例: 固態硬碟 (SSD)、USB 隨身碟、SD 卡。
虛擬內存 (Virtual Memory) (3.3.4)

有時 RAM 滿了,但計算機仍需要載入更多程式或數據,這時就是虛擬內存發揮作用的時候。

  • 定義: 虛擬內存是輔助存儲器(如 HDD 或 SSD)中的一部分,操作系統會將其視為 RAM 來使用。
  • 運作原理: 當 RAM 滿時,操作系統會將不活動的數據和指令(稱為分頁 Pages)從 RAM 移至虛擬內存中。當這些分頁再次需要時,它們會被換回 RAM。
  • 必要性: 它允許計算機運行比物理 RAM 容量更多的應用程式,從而防止系統崩潰。然而,將數據交換到較慢的輔助存儲器會顯著降低效能。
雲端存儲 (Cloud Storage) (3.3.5 & 3.3.6)

雲端存儲是指將數據存儲在遠程物理服務器(由 Google 或 Amazon 等提供商擁有)上,而不是存儲在你自己設備的本地存儲中。數據通過互聯網進行訪問。

與本地存儲的優缺點比較:
  • 雲端存儲優點:
    • 可以從任何有網絡的地方遠程訪問數據。
    • 供應商提供自動備份和災難恢復。
    • 可擴展性(輕鬆增加或減少所需的存儲空間)。
  • 雲端存儲缺點:
    • 需要持續的互聯網連接才能訪問數據。
    • 安全與隱私風險(依賴第三方供應商)。
    • 速度取決於互聯網頻寬(大檔案傳輸可能會慢)。
快速回顧:數據存儲

主存儲器 (RAM/ROM) 速度快,用於活躍任務。輔助存儲器 (HDD/SSD/光學) 用於永久、非揮發性存儲。虛擬內存使用輔助存儲器來暫時擴展 RAM。

3.4 網絡硬件

要連接設備並跨網絡進行通訊,需要專用的硬件。

網絡接口卡 (NIC) (3.4.1)

每台需要接入網絡的計算機都必須配備一張網絡接口卡 (Network Interface Card, NIC)。NIC 負責在計算機與網絡介質(如乙太網線或 Wi-Fi 無線電波)之間轉譯數據。

MAC 地址 (3.4.2)

媒體存取控制 (MAC) 地址是分配給 NIC 的唯一物理識別碼,在生產時確定。

  • 結構: 通常以十六進制書寫(如 00-1A-2B-3C-4D-5E)。
  • 組成: 前半部分識別製造商,後半部分是設備的唯一序號。
  • 用途: 主要用於局域網內,確保數據封包能到達正確的物理設備。
IP 地址 (3.4.3)

互聯網協定 (IP) 地址是分配給連接到計算機網絡的每個設備的數字標籤。

  • 用途: 用於邏輯定址和跨大型網絡(包括互聯網)的路由選擇。它告訴網絡設備的位置
  • 分配: IP 地址由網絡分配;可以是靜態的(永久設置)或動態的(臨時分配,通常由路由器負責)。
IPv4 與 IPv6

互聯網依賴 IP 地址,目前存在兩個版本:

  • IPv4: 使用 32 位元(如 192.168.1.1)。約提供 43 億個唯一地址。
  • IPv6: 使用 128 位元(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。由於 IPv4 地址耗盡,IPv6 是必要的。它提供極大量的地址並具備更好的路由能力。
路由器的角色 (3.4.4)

路由器 (Router) 是一種網絡設備,用於在不同的計算機網絡(網絡 A 與網絡 B)之間引導數據(以封包形式)。

  • 路由器對於連接局域網 (LAN) 與廣域網 (WAN,如互聯網) 至關重要。
  • 它利用封包標頭中包含的 IP 地址,決定數據到達目的地最有效率的路徑。
  • 許多路由器還具備為局域網內的設備分配動態 IP 地址的功能(這稱為 DHCP,你只需知道它會分配 IP 地址即可)。
快速回顧:網絡硬件

NIC 是介面。MAC 地址是永久的物理 ID。IP 地址是路由器用於將數據發送到正確目的地所使用的邏輯網絡位置。

總結

做得好!你現在已經掌握了計算機系統的基礎結構。我們了解了 CPU 如何利用其專用組件和 FDE 週期處理資訊,硬件如何捕捉與顯示數據,以及數據是如何被永久存儲的。你現在也認識了連接世界的關鍵硬件組件。

繼續複習暫存器的角色以及不同類型存儲器之間的區別——這些對於考試成功至關重要!