演算法在 CPU 上呈現為「先做什麼、再做什麼」的循序決策序列;硬體電路則如洪水氾濫,所有邏輯單元同時運作,結果由電位自然沉澱。本文從冒泡排序、二分搜尋、灌溉系統比喻三個維度,闡述硬體與軟體處理的本質鴻溝。

| 維度 | 軟體 (CPU) | 硬體 (ASIC/FPGA) |
|---|---|---|
| 設計語言 | C/C++/Rust/Go (指令序列) | Verilog/VHDL/Chisel (平行邏輯) |
| 關注點 | 演算法複雜度 O(n)、快取命中率 | 電路面積、功耗、時序收斂、扇出 |
| 除錯方式 | 斷點、日誌、單元測試 | 波形模擬、形式驗證、時序分析 |
| 彈性 | 極高 (重新編譯即可) | 低 (流片成本高、FPGA 重新配置慢) |
| 適用場景 | 複雜邏輯、頻繁變更、控制面 | 固定高速路徑、資料平面、封包轉發 |
現代網路設備採用「控制面軟體化 + 資料面硬體化」架構,正是利用兩者優勢互補:軟體處理複雜協議狀態機,硬體以線速轉發封包。