高效能路由器採用 TCAM (Ternary Content-Addressable Memory) 實現線速轉發。本文從邏輯電路層面剖析「最長前綴匹配」優先編碼器設計、TCAM 與一般 RAM 電路差異、硬體 Hash 平行查找優勢,並對比 CPU 循序執行模型,揭示硬體轉發為何能達到 Tbps 級吞吐。



核心架構:最長前綴匹配 (LPM) 優先編碼器
- 路由表每條目 = 前綴 + 掩碼 + 下一跳。
- TCAM 同時比較所有條目,掩碼位為「不在乎」 (X) 時忽略比對。
- 優先編碼器輸出匹配條目中前綴最長 (掩碼最長) 的索引 → 真正的 LPM。
- 圖中「反掩碼」容器將掩碼逐位安排於比較鍵旁,即標準 TCAM 實作。
內容尋址 (CAM) vs 位址尋址 (RAM)
| 特性 | RAM (快取/記憶體) | CAM/TCAM |
| 查找方式 | 給位址 → 取資料 | 給資料 (Key) → 取位址/索引 |
| 電路複雜度 | 簡單矩陣 (Wordline + Bitline) | 每 bit 需比較器 (XOR + 暫存器) |
| 功耗 | 低 (僅啟用單字元線) | 高 (所有比較器並行運作) |
| 成本 | 低 (密度高) | 極高 (面積大、功耗大) |
| 應用 | 一般資料儲存 | 路由表、ACL、MAC 表、流表 |
硬體 Hash vs 軟體 Hash
- 硬體 Hash = 取位址特定位元切片 (移位+取模),電路極簡、並行無衝突。
- 軟體 Hash 需處理碰撞鏈表 (串行遍歷),追求分布均勻降低鏈長。
- 硬體不怕碰撞,因所有桶位可同時比對;軟體必須串行解決碰撞。
CPU 循序模型 vs 硬體洪流模型
- CPU:指令循序執行,模擬人類決策「先做什麼、再做什麼」,演算法追求時間最短。
- 硬體:如洪水氾濫,所有路徑並行湧流,結果由電位高低 (邏輯 1/0) 自然沉澱,無時間序概念。
- 灌溉系統比喻:CPU = 依序開啟各區水閥;硬體 = 一次開啟總閥,水自動流向所有溝渠。
理解硬體轉發本質,有助於設計高效能網路設備與排查 TCAM 耗盡導致的軟體轉發降級問題。