先一句话总结:ONFI 和 Toggle 是 NAND Flash 的两种高速 DDR 接口协议,用于主控 ↔ Flash之间高速读写;ONFI 是开放联盟标准(美光 / 海力士等),Toggle 是三星 / 铠侠主导的私有标准,现在高端 SSD 里两者都用、性能接近。
一、ONFI(Open NAND Flash Interface)
2006 年由 Intel/Micron/SK Hynix/Phison 等发起,目标统一 NAND 接口。
1)主要版本与速率
- ONFI 1.0:SDR,最高 50MT/s(老接口)
- ONFI 2.0:NV-DDR,单端时钟 CLK,最高 133/200MT/s
- ONFI 3.0:NV-DDR2,无 CLK、差分 DQS/RE,最高 400MT/s
- ONFI 4.0:NV-DDR3,最高800MT/s,差分、支持 VCCQ=1.2V
2)信号特点(NV-DDR2/3,常用)
- 无全局时钟 CLK
- 差分 DQS(DQS_t/DQS_c):写数据同步
- 差分 RE(RE_t/RE_c):读数据同步
- DQ [7:0]:双向数据
- CLE/ALE/CE#/WE#/RE#:控制信号(同传统 NAND)
3)生态
- 开放标准,美光、海力士、长江存储等主流厂商支持
- 主控:群联、慧荣、联芸等全支持
二、Toggle(三星 / 铠侠私有标准)
2007 年由 Samsung + Toshiba(现铠侠)推出,对抗 ONFI。
1)主要版本与速率
- Toggle 1.0:DDR,差分 DQS,最高133/200MT/s
- Toggle 2.0:最高400MT/s,支持 ODT(片内终结)
- Toggle 3.0:最高800MT/s,1.2V,与 ONFI 4.0 速率对齐
2)信号特点
- 无 CLK,全程差分 DQS/RE(和 ONFI NV-DDR2/3 几乎一样)
- 写:Host 发差分 DQS,双边沿采样 DQ
- 读:Flash 发差分 DQS,Host 双边沿采样 DQ
- 控制信号 CLE/ALE/CE# 等与传统 NAND 兼容
3)生态
- 三星 SSD、铠侠原厂盘用 Toggle;
- 主控一般同时支持 ONFI/Toggle,可通过配置切换
三、ONFI vs Toggle 核心区别(面试必背)
| 对比项 | ONFI(NV-DDR2/3) | Toggle(1.x/2.x/3.x) |
|---|---|---|
| 发起方 | 开放联盟(美光 / 海力士) | 三星 + 铠侠(私有) |
| 时钟 | NV-DDR2/3 无 CLK,差分 DQS/RE | 全程无 CLK,差分 DQS/RE |
| 速率 | 最高 800MT/s(ONFI 4.0) | 最高 800MT/s(Toggle 3.0) |
| 命令集 | 标准命令集,功能全 | 兼容 ONFI 基础命令,部分私有扩展 |
| 兼容性 | 跨厂商通用 | 三星 / 铠侠为主,主控多兼容 |
| 典型应用 | 美光 / 海力士 / 长鑫 Flash 的 SSD | 三星 SSD、铠侠原厂 SSD |
一句话:现在的高速 ONFI(NV-DDR2/3)和 Toggle 在物理层几乎一样,都是差分 DQS/RE、无 CLK,速率都到 800MT/s;主要差异是生态和厂商阵营。
四、和 FTL 的关系(你前面问过 FTL)
- FTL:固件层,做地址映射、GC、磨损均衡(主控里跑)
- ONFI/Toggle:物理接口层,负责主控 ↔ Flash 的高速数据传输
- 关系:FTL 产生的读写请求,通过 ONFI/Toggle 接口发给 Flash。
五、面试 / 简历怎么写(精简版)
- 熟悉 NAND Flash 高速接口协议 ONFI(NV-DDR2/3)与 Toggle,掌握差分 DQS/RE 时序、双边沿采样、速率 800MT/s;理解协议差异及主控配置切换方法。