S SmartDocs

Hardware & Embedded Systems

Arduino, RISC-V, MSP430, PLC, Linux drivers and embedded systems engineering.

RISC V Hardware 中文 Updated 2026-07-04

處理器組織

處理器必須:提取指令、解譯指令、提取資料、處理資料、寫回資料。為此需要:ALU、控制單元、暫存器,以及內部匯流排把它們連起來。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

起點:程式到底在做什麼

1970–80 年代,語意鴻溝(高階語言與機器語言的落差)推動 CISC:更豐富的指令、更複雜的定址,希望「一條指令做一件高階的事」。但對真實程式的動態量測顯示

Read article →
RISC V Hardware 中文 Updated 2026-07-04

超純量 vs. 超管線

兩者可疊加。超純量的效益上限由程式本身的 ILP 決定:量測顯示一般整數程式相鄰指令間的可平行度平均僅 2–3,必須靠大視窗與投機執行去更遠處找平行。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

微操作

指令週期(提取、間接、執行、中斷)可分解為一系列微操作:暫存器間的一次傳輸、一次 ALU 運算、一次記憶體讀寫。每個微操作在一個時脈週期(或子週期)內完成。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

Flynn 分類法

SMP:多個能力相同的處理器,共享同一主記憶體與 I/O,由單一作業系統統一管理,任何處理器都能執行任何工作(對稱)。優點:效能(工作可真平行)、可用性(單一處理器失效不停機)、漸進擴充。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

RISC-V 的緣起與治理

RV32I 小到什麼程度?40 條指令、六種格式、無旗標、無條件碼——一名學生可以在一學期內以 Verilog 完整實作(第三部將證明這一點),卻足以支撐完整的編譯器目標與作業系統。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

總覽

注意兩件事:(1) funct7 的 bit 30 是 add/sub 與 srl/sra 的唯一區分——解碼器只需看這一位;(2) 移位量取 rs2 的低 5 位(0–31)。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

工具鏈與組譯流程

沒有安裝工具鏈也可以使用線上模擬器(如 RARS、Venus)練習;第 26 章我們則以「手工組譯+readmemh」的方式餵程式給自製 CPU。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

M 擴展:乘法與除法

RISC-V 不因除零觸發例外——語言運行期(如 C 的 UB、Java 的 ArithmeticException)自行檢查。硬體簡單、語意可移植。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

特權模式

CSR(Control and Status Register)有獨立的 12 位元位址空間(至多 4096 個)。六條指令(I 型,opcode=SYSTEM)

Read article →
RISC V Hardware 中文 Updated 2026-07-04

硬體思維:與軟體語言的根本差異

模組是硬體的基本封裝單位;實例化一次就是放一份實體電路。第 23 章的 CPU 頂層就是把 ALU、暫存器檔、控制器等模組「接線」起來。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

設計規劃

要點:(1) signed() 讓 < 與 >>> 依二補數語意工作(第 9 章);(2) 移位量取 b[4:0]——正是規格「取 rs2 低 5 位」的直接翻譯;(3) 加法與減法會由合成器共享同一個加法器(B 取反 + 進位,圖見第 9 章)。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

頂層介面與資料路徑

CPU 核心只暴露兩組記憶體埠——把記憶體放在核外(top 模組接線),日後換成快取或匯流排介面(第 3、4 章)都不必改核心。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

管線切割:四組暫存器

兩個細節:(1) rd != 0——x0 永遠不構成相依;(2) exmem_fwd_data 不能直接用 alu_y:若 EX/MEM 那條是 jal,要前遞的是 pc+4;是 lui,要前遞的是 imm。因此前遞值本身也要過一個小多工器。

Read article →
RISC V Hardware 中文 Updated 2026-07-04

驗證策略總覽

同一份測試程式在單週期與管線兩個實作上執行——兩者 ISA 相同、微架構不同,結果必須完全一致。這正是第 1 章「架構 vs. 組織」的實證:架構是合約,組織是實作。

Read article →
traffic light 中文 Updated 2026-05-17

交通號誌控制系統設計 — PLC + Modbus + SCADA

方案 A(傳統工業自動化方案) > 適用情境:十字路口、產業道路、廠區出入口、隧道號誌等需要高可靠度(MTBF)與符合工業規範(IEC 61131-3、IEC 61508 SIL2)的場域。

Read article →