先算一筆時間賬
J750/J770 的 4KB 隨機讀目標是 1,500 KIOPS。以 GHz 量級的前端主頻估算,平均分攤到每條命令的處理時間不足 700 納秒,而這段時間裡要裝下 SQ 取指、命令解析、L2P 查表、NAND 讀發起、LDPC 解碼完成後的 DMA 搬運與 CQ 寫回。任何一個環節走通用軟體路徑都會立刻吃光預算。這決定了架構上的基本分工:資料面儘量硬體化,CPU 核只處理控制流與例外。
核間的兩種切分方式
多核處理器上常見的切分有兩類。按功能切:一部分核跑前臺 I/O,另一部分專責垃圾回收、磨損均衡、介質巡檢與金鑰管理。按佇列切:每個核繫結一組 NVMe 提交佇列,佇列內的命令由固定核端到端處理。前者便於把後臺抖動隔離在前臺路徑之外,後者天然避開共享資料結構上的鎖競爭。實際實現通常是組合:前臺核之間按佇列分片,後臺任務集中在獨立核上,兩側只通過無鎖環形佇列傳遞搬遷與回收請求。
L2P 是最容易變成瓶頸的結構
映射表是唯一被所有前臺核共享的大型結構。用全局鎖保護它,核數越多吞吐反而越差。可行做法是按 LBA 區間對映射表分片,並讓佇列到核的繫結與分片對齊,使絕大多數查表落在本核私有的分片內,跨分片更新走訊息傳遞而不是直接訪存。DRAM 頻寬同樣要計入預算,因為每次隨機讀至少要取一次映射項。
硬體加速器的邊界畫在哪
LDPC 引擎、AES 引擎、T10 DIF/DIX 的校驗插入與驗證、DMA 描述符處理都放在硬體通路上;CPU 只在解碼失敗需要進入軟判決重試、或校驗失敗需要上報時才介入。這條“快路徑全硬體、慢路徑進軟體”的分界,也是端到端資料保護能夠以接近零效能代價常開的前提。
從外部主控到 JHC400
當前 Gen4 產品採用外部企業級主控加自研韌體的組合,分發引擎的行為主要通過韌體層的佇列繫結策略與後臺配額來塑形。後續演進到自研主控平臺 JHC400 時,這部分分工可以下沉為硬體排程器,減少核間互動開銷。相關設計仍處於產品定義階段。
