Matériel et systèmes embarqués
Arduino, RISC-V, MSP430, PLC, pilotes Linux et ingénierie des systèmes embarqués.
記憶體系統概觀
記憶體系統的設計目標是「以接近最便宜技術的單位成本,提供接近最昂貴技術的存取速度」,而達成此目標的關鍵就是與。本章先建立記憶體系統的特徵框架(容量、存取時間、傳輸率等),說明階層為何有效——;再深入快取設計的所有核心要素:容量、映射函數(直接、全關聯、集合關聯)、替換演算法、寫入策略、行大小與多層快取。本章對應 Stallings 第 4 章。
Lire l'article →半導體主記憶體
本章深入主記憶體的實體層:半導體記憶體。首先比較 DRAM 與 SRAM 的單元結構與適用場景,介紹 ROM/PROM/EPROM/EEPROM/快閃記憶體家族;接著說明記憶體晶片的內部組織(位元陣列、位址多工、重新整理)與模組化擴充;然後介紹原理與漢明碼(Hamming code);最後概述為縮小處理器—記憶體鴻溝而生的先進 DRAM 組織:SDRAM、DDR 與現代演進。本章對應 Stallings 第 5 章。
Lire l'article →磁碟
本章討論記憶體階層底部的大容量外部儲存。首先介紹磁碟的物理結構、資料組織與存取時間模型(尋道、旋轉延遲、傳輸);接著詳述以換取效能與可靠度的 0–6 各級;然後補充 Stallings 第 6 版之後的重大變革——;最後簡述光學儲存與磁帶。本章對應 Stallings 第 6 章並更新至現代。
Lire l'article →外部裝置與 I/O 模組
I/O 是計算機三大子系統中最「雜」的一塊:週邊裝置種類繁多、速度差異可達九個數量級、資料格式各異。本章說明為何需要 作為週邊與系統之間的中介,然後依「處理器介入程度遞減」的順序,詳述三種 I/O 技術:、 與,最後介紹 I/O 通道/處理器的概念與外部介面的演進。本章對應 Stallings 第 7 章。
Lire l'article →作業系統概觀
作業系統是「使用者/應用程式」與「硬體」之間的介面,而許多硬體機制正是為了支援作業系統而設計的。本章從計算機結構的視角檢視 OS:批次系統遺留的中斷/計時器/特權模式、多道程式設計與排程,以及本章的重點——:交換、分割、、虛擬記憶體、 與分段。這些概念與 RISC-V 特權結構(第 21 章)直接對應。本章對應 Stallings 第 8 章。
Lire l'article →ALU 概觀
本章討論 ALU 的核心工作:計算機如何表示並運算數值。整數部分:二補數表示法、符號延伸、溢位規則、加減法器硬體、無號與 Booth 乘法、復原式除法。浮點部分:IEEE 754 標準的格式(單精度/雙精度)、偏移指數、隱含位元、特殊值(無窮大、NaN、非正規數)、捨入模式與浮點運算流程。本章對應 Stallings 第 9 章;其中的加法器與 ALU 設計將在第 22 章直接以 Verilog 實作,二補數運算規則是理解 RV32I
Lire l'article →機器指令特性
指令集是「機器語言」的規格,是程式設計師(或編譯器)所見機器的最完整定義,也是結構與組織的分界線。本章討論指令集設計的基本議題:機器指令的要素(opcode、來源/目的運算元、下一指令位址)、每指令位址數的取捨、運算元的型態(數值、字元、邏輯資料)、運算的分類(資料傳輸、算術、邏輯、轉換、I/O、系統控制、控制轉移),以及位元組序(endianness)。本章對應 Stallings 第 10 章,並以 RV32I 作為貫穿範例。
Lire l'article →定址模式
運算元「在哪裡、怎麼找」是指令集設計的核心問題之一。本章系統性地介紹七種經典定址模式(立即、直接、間接、暫存器、暫存器間接、位移、堆疊),分析各自的優缺點與硬體代價;接著討論指令格式設計:指令長度、欄位分配、變長 vs. 定長;最後剖析 RV32I 的六種指令格式(R/I/S/B/U/J),說明其欄位安排背後的硬體考量。本章對應 Stallings 第 11 章。
Lire l'article →處理器組織
本章進入處理器內部:先檢視處理器的暫存器組織(使用者可見暫存器與控制/狀態暫存器),再把指令週期細化為子週期,最後聚焦本章的重頭戲——:像工廠裝配線一樣讓多條指令的不同階段重疊執行。我們將建立管線加速的定量模型,並詳細分析限制管線效能的三類:結構、資料、控制,以及分支處理的各種對策。本章對應 Stallings 第 12 章,是第 25 章管線 CPU 實作的理論基礎。
Lire l'article →起點:程式到底在做什麼
精簡指令集電腦(RISC)指令執行特性 / 大型暫存器檔 / RISC vs. CISC / 從 RISC-I 到 RISC-V
Lire l'article →超純量 vs. 超管線
管線讓多條指令的重疊;更進一步:每個週期指令到多個平行的功能單元,挖掘。本章討論超純量設計的核心問題:哪些相依限制了平行(真資料相依、反相依、輸出相依、程序相依、資源衝突);機器平行的三要素(發射寬度、視窗大小、重新命名);指令發射政策(循序/亂序)、與如何消除假相依並維持精確例外。本章對應 Stallings 第 14 章,並補充現代視角。
Lire l'article →微操作
控制單元是處理器的「指揮官」:它讓資料路徑上的每個部件在正確的時間做正確的事。本章先把指令週期分解到最底層的,說明控制單元的輸入(IR、旗標、時脈)與輸出(控制訊號);然後介紹兩種實現方式:——控制邏輯是組合電路,以及——控制邏輯是存放在控制記憶體中的「微指令」程式。本章整合 Stallings 第 15、16 章,是第 23 章控制單元 Verilog 實作的直接理論來源。
Lire l'article →Flynn 分類法
單一處理器的效能終有極限,平行化是必然的出路。本章依 Flynn 分類法建立平行結構的地圖;深入的組織與其核心難題——,詳述 ;接著介紹與 兩種擴展路徑;最後補充多核心時代的現實:記憶體一致性模型、GPU 與資料平行。本章對應 Stallings 第 18 章(第 6 版),並更新至現代。
Lire l'article →RISC-V 的緣起與治理
本章開啟教材第二部:RISC-V 指令集架構。我們先回答「RISC-V 是什麼、為什麼重要」:一個由 UC Berkeley 發源、由 RISC-V International 治理的指令集標準;剖析它的設計——小而穩定的基礎整數指令集(RV32I/RV64I)加上可選擴展(M/A/F/D/C/V/Zicsr...);建立 RV32I 的程式設計師模型:32 個通用暫存器、PC、無旗標;並說明命名規則(RV32IMAC 之類的字串怎麼讀
Lire l'article →總覽
本章是 RISC-V 32 位元指令集的完整參考:依類別逐一剖析 RV32I 的全部指令——算術邏輯(暫存器型與立即值型)、移位、比較、上位立即值(lui/auipc)、載入/儲存、條件分支、跳躍與鏈結(jal/jalr)、以及系統指令(ecall/ebreak/fence)。每條指令給出格式、編碼欄位、精確語意與組合語言範例。本章依據 RISC-V 官方規格 RV32I 2.1 版(ISA Manual 20260120)撰寫,是第
Lire l'article →工具鏈與組譯流程
本章把第 18 章的指令「用起來」:介紹 GNU 工具鏈的組譯與連結流程、常用偽指令與組譯器指示詞;詳述 RISC-V ——參數與回傳值的暫存器分配、呼叫者/被呼叫者保存責任、堆疊框架的建立與拆除;並以迴圈、陣列、字串、遞迴(階乘與費氏)等完整範例示範慣用寫法。這些程式將於第 26 章載入我們自製的 Verilog CPU 上實際執行。
Lire l'article →M 擴展:乘法與除法
基礎集之外,真實的 RISC-V 處理器總會搭配若干標準擴展。本章詳述與本教材實作最相關的 (乘法與除法):八條指令的語意、mulh 家族的用途、除零與溢位的定義行為;介紹 (16 位元壓縮指令)的編碼思想與硬體代價;概覽 (原子操作)如何支撐多核同步;最後討論「該選哪些擴展」的工程取捨。
Lire l'article →特權模式
使用者層指令(第 18 章)之外,處理器還需要一套「管理機器」的機制:這就是 RISC-V (ISA Manual Volume II)。本章介紹三級特權模式(M/S/U)與其分工;及六條 Zicsr 指令;的完整硬體流程(mtvec/mepc/mcause/mstatus 的角色與 mret 返回);計時器與軟體中斷(CLINT)、外部中斷(PLIC);以及 分頁虛擬記憶體如何落實第 8 章的概念。這是把第一部作業系統支援、第二部指令
Lire l'article →硬體思維:與軟體語言的根本差異
本章為第三部的工具課:以「做 CPU 需要什麼」為範圍,精講 Verilog 硬體描述語言。核心觀念只有一個——:每一行都對應真實的閘、導線與正反器,所有 always 區塊永遠並行存在。我們將依序建立:模組與埠、wire/reg 與四值邏輯、組合邏輯(assign 與 always @(*))、時序邏輯(always @(posedge clk)與非阻塞指定)、參數化、記憶體陣列與 readmemh、測試平台寫法,以及新手最常犯的錯誤
Lire l'article →設計規劃
從本章起,我們動手建造一顆完整的 RV32I 處理器。策略是「先單週期、後管線」:單週期機器每個時脈執行完一整條指令,沒有危障,是理解資料路徑的最佳起點。本章完成所有的 Verilog 實作與原理講解:ALU、暫存器檔、立即值產生器、分支比較器、主控制器、指令/資料記憶體。每個模組都對應前面章節的理論:ALU 對應第 9 章、立即值對應第 11 章、控制訊號對應第 15 章。完整原始碼位於專案的 目錄,已以 Icarus Verilog
Lire l'article →頂層介面與資料路徑
單週期 CPU(二):整合與指令流程頂層資料路徑 / PC 邏輯 / 寫回選擇 / 每類指令的資料流 / 時脈與關鍵路徑
Lire l'article →管線切割:四組暫存器
五級管線 CPU:危障、前遞與停頓IF/ID/EX/MEM/WB 管線暫存器 / 前遞單元 / 載入使用停頓 / 分支沖除 / 完整 Verilog 實作
Lire l'article →驗證策略總覽
驗證與模擬:組譯器、Testbench 與除錯實錄Python 組譯器 / 自檢測試程式 / testbench 設計 / 波形與追蹤除錯 / 迴歸測試自動化
Lire l'article →交通號誌控制系統設計 — PLC + Modbus + SCADA
方案 A(傳統工業自動化方案) 適用情境:十字路口、產業道路、廠區出入口、隧道號誌等需要高可靠度(MTBF)與符合工業規範(IEC 611313、IEC 61508 SIL2)的場域。
Lire l'article →