跳至主要内容

Embedded / 韌體 / 硬體 名詞表

彙整知識庫中所有嵌入式系統、韌體、硬體與半導體筆記出現過的名詞,用於從名詞反查回原始筆記。文章清單見 Embedded 系列索引

ARM Trusted Firmware(BL1BL33、EL0EL3、TrustZone、Secure/Normal World、PSCI、SMC、TBBR、OP-TEE 等)術語不在此重複,見 Android 名詞表 第五節。


一、開機與 Bootloader

泛用概念

名詞說明出處
Reset vectorCPU 上電或 reset 後 PC 指向的固定位址,從此取第一條指令,執行 SoC 內建的 boot ROM/第一段 code開機流程(泛用概念)
多階段開機(multi-stage)早期程式空間極小(可能只有幾 KB SRAM),需分階段逐步載入,每階段初始化足夠硬體再交棒給下一階段開機流程(泛用概念)
Chain of trust(信任鏈)Secure boot 中每一階段驗證下一階段簽章後才執行開機流程(泛用概念)
Root of trust信任鏈的起點,通常是不可竄改的 boot ROM開機流程(泛用概念)

x86(BIOS / UEFI / GRUB)

名詞說明出處
Reset Vector 0xFFFFFFF0x86 上電後 CS:IP 設為 0xFFFF:0xFFF0(映射至 0xFFFFFFF0),指向主機板 SPI Flash 上的韌體x86 Linux Boot Flow
BSP / AP多核 CPU 中只有 BSP(Bootstrap Processor) 跑開機流程,其他核心 AP(Application Processor) 等待被喚醒x86 Linux Boot Flow
Real / Protected / Long Modex86 CPU 模式:16-bit Real Mode(開機初期、只能定址 1MB)→ 32-bit Protected Mode → 64-bit Long Mode(現代 kernel 標準)→ 啟用 MMUx86 Linux Boot Flow
BIOS傳統韌體。開機執行 POST,遍歷 Boot Order,經 INT 13h 讀取 MBRx86 Linux Boot Flow
POST(Power-On Self Test)韌體開機時的硬體自我測試(CPU/DRAM/晶片組/儲存/VGA),出錯發出 beep codex86 Linux Boot Flow
MBR磁碟第一個磁區(512 bytes),含 Stage 1 bootstrap code(446 bytes)、4 個分割表項與結尾 magic number;載入至 0x7C00 執行x86 Linux Boot Flow
Magic Number 0x55AAMBR 結尾兩 bytes,BIOS 用來確認該磁區可開機x86 Linux Boot Flow
UEFIBIOS 的現代替代品,32/64-bit、支援 GPT、Secure Boot、圖形 UI 與 PXE 網路開機x86 Linux Boot Flow
SEC / PEI / DXE / BDSUEFI PI 規範四階段:SEC(Cache-as-RAM、最早信任根)→ PEI(Pre-EFI,初始化 DRAM、載入 DXE Core)→ DXE(Driver Execution Environment,載入驅動)→ BDS(Boot Device Selection,讀 NVRAM 的 BootOrderx86 Linux Boot Flow
Cache-as-RAMDRAM 尚未初始化時,把 CPU 快取當 RAM 用,供 SEC 階段執行x86 Linux Boot Flow
ESP(EFI System Partition)FAT32 分割區,存放 .efi 開機程式(如 BOOTX64.EFIshimx64.efigrubx64.efix86 Linux Boot Flow
Secure Boot(PK / KEK / db)UEFI 逐層驗證簽章:Platform Key → Key Exchange Key → 簽章資料庫 db → shim/bootloader → kernel,防 Bootkitx86 Linux Boot Flow
shimSecure Boot 下的第一階 EFI 程式(shimx64.efi),再去載入 grubx64.efix86 Linux Boot Flow
GRUB Stage 1 / 1.5 / 2Legacy GRUB 分階段:Stage 1(MBR,446 bytes,只夠跳轉)→ Stage 1.5(MBR Gap,提供檔案系統驅動)→ Stage 2(完整環境、讀 grub.cfg)。UEFI 模式 grubx64.efi 直接含完整 GRUBx86 Linux Boot Flow
e820 mapBIOS/GRUB 傳給 kernel 的記憶體映射表x86 Linux Boot Flow
vmlinuz / vmlinuxvmlinuz 為壓縮過的 kernel image,自帶解壓縮 stub 解出真正的 vmlinux ELF,再跳進 start_kernel()x86 Linux Boot Flow
initramfs / initrdkernel 內建的暫時 in-memory rootfs,載入掛載真 rootfs 前所需的模組(dm_crypt、RAID、NVMe…),完成後 pivot_rootswitch_root 切換x86 Linux Boot FlowRISC-V Linux Boot Flow
pivot_root / switch_root從 initramfs 切換到真正 rootfs 並執行 /sbin/init 的動作x86 Linux Boot Flow
MBR vs GPT分割表格式:MBR 上限 2TB、4 主分割區;GPT 上限 9.4ZB、預設 128 分割區、有備份表與 GUID,配 UEFI 使用x86 Linux Boot Flow
systemd-analyze分析開機時間:blame(各服務耗時)、critical-chain(關鍵路徑)、plot(視覺化)x86 Linux Boot Flow
os-prober / update-grub灌 Windows 覆蓋 GRUB 後修復:sudo os-prober 找出其他 OS 分割區、sudo update-grub 重建選單GRUB 修復

RISC-V(OpenSBI / SBI)

名詞說明出處
ZSBL(Zero Stage Bootloader)片上 ROM 內建、不可修改的第一段 code,初始化基本時鐘與 SRAM,把 FSBL 載入 SRAM 後跳轉RISC-V Linux Boot Flow
FSBL(First Stage Bootloader)第一階 bootloader(如 SiFive FSBL、oreboot、或由 U-Boot SPL 扮演),做 DRAM 初始化並載入 OpenSBIRISC-V Linux Boot Flow
OpenSBI開源 M-mode 韌體,實作 SBI 介面、傳遞 FDT 位址、切換至 S-mode 跳進 U-Boot 或 kernelRISC-V Linux Boot Flow
SBI(Supervisor Binary Interface)定義 S-mode(kernel)與 M-mode(韌體)之間標準介面,類比 x86 BIOS INT 或 ARM 的 PSCIRISC-V Linux Boot Flow
M / S / U-modeRISC-V 三個特權層級:M-mode(OpenSBI、bootloader,最高權)、S-mode(kernel、hypervisor)、U-mode(應用程式)RISC-V Linux Boot Flow
ecallS-mode 向下呼叫 M-mode 韌體的指令(類 syscall),SBI 呼叫的觸發方式RISC-V Linux Boot Flow
SBI 呼叫慣例a7=Extension ID、a6=Function ID、a0~a5=參數;ecalla0=錯誤碼、a1=返回值RISC-V Linux Boot Flow
CSR(Control and Status Registers)M/S-mode 的控制暫存器,如 mhartidmstatusmepcmtvecsatpsstatussepcRISC-V Linux Boot Flow
hartHardware Thread,RISC-V 的硬體執行緒。Hart 0 為 primary hart 跑開機流程,其餘 secondary hart WFI 等待喚醒RISC-V Linux Boot Flow
HSM(Hart State Management)OpenSBI 的 SBI 擴充,負責多核 hart 的啟停管理(sbi_hsmRISC-V Linux Boot Flow
PMP(Physical Memory Protection)M-mode 設定的實體記憶體保護,OpenSBI 初始化 M-mode 環境時設定RISC-V Linux Boot Flow
fw_jump / fw_payload / fw_dynamicOpenSBI 三種韌體映像:fw_payload(把 U-Boot/kernel 打包進來,QEMU 常用)、fw_jump(跳轉到固定位址)、fw_dynamic(前階段動態傳遞下一階段資訊,現代主流)RISC-V Linux Boot Flow
FDT(Flattened Device Tree)扁平化的 device tree,OpenSBI 把其位址放在 a1 暫存器傳給下一階段,kernel 以 early_init_fdt() 解析RISC-V Linux Boot Flow
Sv39 / Sv48 / Sv57RISC-V 分頁模式:Sv39(39-bit 虛擬位址、3 層頁表、64-bit Linux 預設)、Sv48(4 層)、Sv57(5 層)RISC-V Linux Boot Flow
CLINTCore Local Interruptor,處理軟體中斷(IPI)與計時器中斷,每個 hart 各一組RISC-V Linux Boot Flow
PLICPlatform-Level Interrupt Controller,處理外部中斷(UART、GPIO、NVMe…),可設各 hart 的優先權與 maskRISC-V Linux Boot Flow
extlinux.conf類 GRUB 的 U-Boot 開機設定檔(DEFAULTLABELKERNELFDTAPPENDRISC-V Linux Boot Flow

U-Boot

名詞說明出處
U-Boot(Das U-Boot)嵌入式平台最常見的開源 bootloader,初始化硬體、載入 kernel 與 device tree,提供互動式命令列Das U-Boot嵌入式系統背景知識
U-Boot SPL vs ProperSoC 剛上電只有小容量 SRAM,先跑輕量 SPL 初始化 DRAM,再載入完整的 U-Boot ProperRISC-V Linux Boot Flow
bootcmdU-Boot 環境變數:自動開機倒數結束後執行的指令Das U-Boot
bootargsU-Boot 環境變數:傳給 Linux kernel 的 cmdline(如 console=ttyS0,115200 root=/dev/mmcblk0p2Das U-Boot
printenv / setenv / saveenv列出/設定/存回 flash(eMMC/NAND/SPI)中的環境變數Das U-Boot
tftp / fatload從網路(TFTP)或本地儲存(MMC FAT)把 kernel 與 dtb 載入到指定記憶體位址Das U-Boot
booti / bootm啟動 kernel。booti 三引數為 <kernel><initrd>- 表無)、<dtb> 的載入位址Das U-Boot
FIT ImageFlattened Image Tree,把 kernel + DTB + initramfs 打包成一檔的 U-Boot 標準格式RISC-V Linux Boot Flow

二、建置系統

Yocto

名詞說明出處
Yocto Project打造客製化 embedded Linux 發行版的建構框架——不是發行版,而是幫你建出專屬 toolchain/kernel/rootfs 的工具集Yocto Project
BitBakeYocto 的任務排程與建構引擎,解析 recipe、處理相依、執行 fetch/compile/package 等 taskYocto Project
OpenEmbedded與 BitBake 搭配的核心 metadata 集,提供大量基礎 recipeYocto Project
Recipe(.bb描述如何建一個套件:原始碼來源(SRC_URI)、版本、相依(DEPENDS)、編譯與安裝步驟Yocto Project
SRC_URIrecipe 中指定原始碼來源的變數Yocto Project
DEPENDSrecipe 中指定建置相依的變數Yocto Project
Layer(meta-*一組 recipe/設定的集合,可疊加組合(metameta-poky、BSP 的 meta-<vendor>),以 bblayers.conf 管理啟用哪些 layerYocto Project
MACHINE / DISTROMACHINE 指定目標硬體、DISTRO 指定發行版政策,設在 conf/local.confYocto Project
oe-init-build-envsource 它以設定環境並進入 build/ 目錄Yocto Project
bitbake core-image-minimal建構目標 image,產物在 tmp/deploy/images/<machine>/(含 kernel、dtb 與 .wic.ext4 等 rootfs image)Yocto Project

Buildroot

名詞說明出處
Buildroot另一套嵌入式建置系統,統管 kernel 與 U-Boot,kernel 底下再掛 Driver 與 Device TreeBuildroot嵌入式系統背景知識
make menuconfigBuildroot 主設定入口(選套件、kernel、rootfs 等)Buildroot
make uboot-menuconfig設定 U-Boot 的入口Buildroot
defconfig預設設定檔,建置系統與 kernel/U-Boot 設定的起點嵌入式系統背景知識

三、韌體工程實踐

名詞說明出處
Release Channel(發布通道)「正式 vs 非正式 image」對應的概念,經典是 Chrome 四通道 Canary → Dev → Beta → Stable:越前面越新越不穩、給早期測試踩雷,越後面越嚴謹Firmware Image 管理
Build Promotion(建置晉升)同一個 build artifact 不重編譯,「一路晉升」通過各 gate(自動測試 → 候選 → 整合測試 → 正式),保證位元層級相同——build once, promote manyFirmware Image 管理
Nightly Build每日/每晚自動出的 build,搭配 trunk-based development 隨時可產出非正式 imageFirmware Image 管理
Trunk-Based Development主線隨時可出 build 的持續整合模式,原則是 "master/trunk is always green",靠自動化擋掉壞 commitFirmware Image 管理
Shift-Left Testing(測試左移)把測試/整合往開發前段推,越早發現 bug 修復成本越低;非正式 image 是其載體Firmware Image 管理
Release Candidate(RC)從 release branch 切出、凍結功能(feature freeze)、只修 bug、經完整 regression 才 sign-off 給 QA 的正式 imageFirmware Image 管理
CI/CD pipeline承載 build promotion 與分支策略的自動化骨幹(Jenkins、GitLab CI 等)Firmware Image 管理
LAVALinaro 的自動化韌體/OS 測試框架,把 build flash 到實體板開機測試Firmware Testing
openQA開源自動化 OS 測試工具,常與 LAVA 一同出現在韌體 CI 議程Firmware Testing
Linaro validationLinaro 的 validation 平台(validation.linaro.org),韌體驗證的參考基礎設施Firmware Testing

四、硬體與週邊

名詞說明出處
嵌入式 Linux 四大組成Bootloader(上電最先執行、載入 kernel)→ Kernel(管理記憶體/排程/檔案系統/driver)→ rootfs(使用者空間、init 與應用)→ Driver(kernel 與硬體周邊的橋樑)嵌入式系統背景知識
Device Tree(.dts / .dtb描述板上硬體資訊的資料結構,.dts 原始檔編譯成 .dtb,由 bootloader 傳給 kernel嵌入式系統背景知識
交叉編譯(cross-compile)在一個架構的主機上編譯出另一架構可執行的程式,需對應的 toolchain嵌入式系統背景知識
kernel space vs user space核心空間(driver、排程、記憶體管理)與使用者空間(函式庫、應用程式)的權限分界嵌入式系統背景知識
init(BusyBox init / systemd)rootfs 掛載後執行的第一個使用者空間程式,管理服務啟動嵌入式系統背景知識
State Machine(狀態機)用「狀態+事件+轉換規則」描述系統行為的模型,嵌入式常用來管理開機/待機/工作等狀態;實作四步驟:定義狀態 → 定義事件 → 定義轉換規則 → 實作狀態機State Machine
nvidia-smi查 NVIDIA GPU 狀態的指令:驅動版本、CUDA 版本、溫度功耗、佔用 VRAM 的 processNVIDIA GPU
lsmod | grep nvidia查 NVIDIA kernel 模組相依:nvidianvidia_uvmnvidia_drmnvidia_modesetNVIDIA GPU
CUDANVIDIA 的 GPU 運算平台,nvidia-smi 會顯示其版本NVIDIA GPU
Raspberry Pi Imager官方燒錄工具,把 OS 寫入 microSD,開機前可預設 SSH/Wi-Fi/帳號Raspberry Pi
GPIO通用輸入輸出腳位,可接感測器與周邊,常用於 IoT、home server、自動化Raspberry Pi嵌入式系統背景知識

五、半導體與製程

名詞說明出處
半導體導電性介於導體與絕緣體之間的材料(最常見為矽 Si),可透過摻雜與外加電壓控制導電行為,是 IC 的基礎半導體
N 型 / P 型摻入不同雜質形成多數載子為電子(n-type)或電洞(p-type)半導體
摻雜(doping)摻入雜質改變半導體導電行為的手段半導體
PN 接面(junction)二極體的基礎,具單向導通特性半導體
MOSFET現代 IC 最基本的開關元件,由 gate 電壓控制 source–drain 通道導通半導體
CMOSNMOS + PMOS 互補組成,靜態功耗低,是數位邏輯主流製程半導體
fabless只做 IC 設計、不自建晶圓廠(如聯發科、NVIDIA、高通)半導體
foundry(晶圓代工)專做製造的晶圓廠(如台積電 TSMC)半導體
OSAT(封裝測試)委外封裝與測試廠(如日月光)半導體
IDM設計+製造整合(如 Intel、三星)半導體
光罩 / 微影 / 蝕刻 / 沉積 / 離子佈植反覆堆疊的核心製程:photomask、lithography、etch、deposition、implant半導體
製程節點如 3nm、5nm,越先進單位面積電晶體越多、效能/功耗越好半導體

六、半導體量產測試

測試站點與設備

名詞說明出處
test insertion(測試站點)晶片從晶圓到客戶手上經過的一連串測試站點,每加一站成本顯著上升半導體量產測試全景
CP(Chip Probing / Wafer Sort)晶圓切割封裝的測試,用探針卡扎裸 die 接點透過 ATE 篩壞品;核心價值是省封裝費並回饋晶圓良率給 fabCP 晶圓測試半導體量產測試全景
FT(Final Test)晶片封裝後的測試,放進 socket 經 load board 接 ATE,驗封裝製程有無引入缺陷、補測 CP 測不了的項目、分 bin 出貨FT 最終測試
SLT(System-Level Test)出貨前把晶片放進類產品板開機跑韌體/OS,攔 ATE 結構性測試抓不到的漏網缺陷(test escape),把品質壓到客戶要求的 DPPMSLT 系統級測試
ATE(Automated Test Equipment)自動化測試設備(不是測試階段),CP 與 FT 共用的機台平台,把測試向量以電訊號打進接腳比對輸出ATE 是什麼
Tester / Handler / ProberATE 環境三要素:tester(機台本體)、prober(移動晶圓對準探針)、handler(抓取封裝品放進 socket、依結果分料)ATE 是什麼FT 最終測試
probe card(探針卡)CP 用來接觸裸 die pad 的介面;分懸臂樑(Cantilever/CPC)、垂直(Vertical/VPC)、MEMS 三類,接觸電阻與寄生電感限制了高頻與大電流測試CP 晶圓測試ATE 是什麼
load board + socketFT/SLT 用來連接封裝品與機台的介面硬體FT 最終測試
DUT(Device Under Test)受測晶片SLT 系統級測試
wafer mapCP 產出的晶圓好壞分布圖(以 ink 點或電子紀錄),封裝廠只取 good dieCP 晶圓測試
WAT / PCMWafer Acceptance Test(也稱 PCM),測晶圓切割道(scribe line)上的 test key 元件電性參數,監控 fab 製程是否穩定——與測產品的 CP 完全不同層次CP 晶圓測試半導體量產測試全景
WLCSP晶圓級封裝,產品在晶圓階段就完成封裝,CP 測完切割即出貨,無傳統 FTCP 晶圓測試半導體量產測試全景
盲封製程成熟、良率穩定時跳過 CP 直接封裝的做法,風險自負CP 晶圓測試
redundancy analysis / laser repair記憶體 CP 特有:算出可修復位址,用雷射把 repairable die 救回,同時提升良率與可靠度CP 晶圓測試

測試哲學與 DFT

名詞說明出處
結構性測試(Structural Test)CP/FT 主體:不驗功能而驗「電路結構有沒有做對」,依賴 DFT,有 fault model 可量化 coverage、測試時間秒級半導體量產測試全景ATE 是什麼
功能性測試(Functional Test)SLT 主體:直接模擬終端使用情境(開機、跑 OS、真實 workload),抓結構測試抓不到的缺陷,但無 coverage 理論、時間長、fail 難除錯半導體量產測試全景
DFT(Design for Test)設計階段就埋進晶片的測試電路(scan chain、MBIST),讓 ATE 能控制與觀測內部節點ATE 是什麼
ATPG(Automatic Test Pattern Generation)自動產生測試向量的工具,配合 scan chain 控制/觀測內部節點ATE 是什麼
scan chain把晶片內部暫存器串成移位鏈,把深埋電路「攤開」給機台看ATE 是什麼
MBIST(Memory Built-In Self-Test)記憶體區塊內建自我測試電路,機台下指令收結果即可ATE 是什麼
fault model(故障模型)讓覆蓋率可精確計算的模型:stuck-at、transition、bridging 等ATE 是什麼半導體量產測試全景
stuck-at fault最常見的故障模型(節點卡在固定 0 或 1),可計算「pattern 覆蓋了 98.5% stuck-at fault」這類工程陳述ATE 是什麼
fault coverage一組 pattern 對某 fault model 的覆蓋率,可量化ATE 是什麼

分級、良率與品質度量

名詞說明出處
binning依測試結果把晶片實體分料(physical binning),除好壞外還依效能等級分級FT 最終測試
speed binning依 Fmax/Vmin 把同一顆設計分成不同 speed grade 販售,決定 SKU 與定價FT 最終測試半導體量產測試全景
Fmax / Vmin最高工作頻率/最低工作電壓,FT 量測用於 speed binning 與系統軟體 DVFS 設定FT 最終測試ATE 是什麼
DPPM(Defective Parts Per Million)每百萬顆的不良數,chip vendor 寫進合約的品質承諾;汽車客戶動輒要求個位數SLT 系統級測試
十倍法則缺陷越晚被發現越貴:CP 攔到損失一顆 die、FT 多賠封裝費、逃到客戶產線要拆板重工、逃到終端是 field return 與品牌傷害半導體量產測試全景
test escape逃過測試站點的漏網缺陷,SLT 的攔截對象SLT 系統級測試
SDC(Silent Data Corruption)晶片不當機、只默默算錯的靜默資料損毀,多源自 timing margin 勉強及格的邊際缺陷,需特定指令/資料才觸發SLT 系統級測試ATE 是什麼
邊際缺陷(marginal defect)電性「勉強及格」(timing margin 偏低但未低到 scan fail),特定電壓/溫度/資料下才出錯SLT 系統級測試
Shift Right + Shift Left先在 SLT 攔系統級失效(shift right),再把失效模式回饋給 ATE pattern 與設計規則(shift left)形成閉環SLT 系統級測試
adaptive SLT依前段測試資料用預測模型給每顆晶片打 DPPM 風險標籤,高風險跑完整測項、低風險精簡或跳過SLT 系統級測試
chiplet / 2.5D/3D 封裝先進封裝讓「每顆 die 都 known-good」不等於「組起來 known-good-system」,引入 die-to-die interconnect、封裝應力、熱耦合等新失效模式SLT 系統級測試

MTBF 與系統整合

名詞說明出處
MTBF(Mean Time Between Failures)教科書上是可修復系統的平均故障間隔(總運作時間 ÷ 故障次數);在行動裝置產品線語境更常指整機軟體穩定性指標,客戶把門檻寫進出貨 exit criteriaMTBF 與系統整合
MTTF(Mean Time To Failure)用於不可修復元件(壞了就換)的平均壽命,晶片、燈泡講 MTTFMTBF 與系統整合
MTTR(Mean Time To Repair)平均修復時間;MTBF = MTTF + MTTR,可用度 = MTBF / (MTBF + MTTR)MTBF 與系統整合
MonkeyAndroid 內建壓測工具,注入偽隨機(seed 可重現)使用者事件流對整個軟體堆疊施壓,是 MTBF 壓測核心MTBF 與系統整合
MTBF triage把壓測收集的 crash 去重、初判、跨 stack log 分析後分派給 owner 團隊的循環;本質是「以統計形式呈現的跨團隊 log 分析」,落在系統整合(SI)團隊MTBF 與系統整合
系統整合(SI)模組團隊對零件負責、SI 對「組起來撐不撐得住」負責;MTBF 與 SLT 都是其主場,需跨層 debug 能力歸因失效MTBF 與系統整合