NAND介质工程

每条命令不到700纳秒:主控命令分发的核间分工与L2P分片

作者:军航科工半导体命令分发引擎 / 多核主控 / L2P分片

从1,500 KIOPS倒推每命令的周期预算,说明为什么数据面必须硬件化、队列如何绑核,以及映射表分片为何是多核扩展的前提。

先算一笔时间账

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 时,这部分分工可以下沉为硬件调度器,减少核间交互开销。相关设计仍处于产品定义阶段。

关键词
命令分发引擎多核主控L2P分片无锁队列LDPCJHC400固件架构