SSD 基本工作原理

SSD 硬件组成部分

SSD(Soild State Drive) 的硬件包括几大部分:主控、闪存、缓存芯片DRAM、PCB、接口。

SSD 主要有三大功能模块组成

  • 前端接口和相关的协议模块;
  • 中间的FTL(Flash Translation Layer)模块;
  • 后端和闪存通信模块;

SSD前端负责和主机直接通信,接受主机发送来的命令和数据,命令经SSD处理后(FTL模块),最终交由前端将命令状态或数据返回给主机。

SSD的写和读操作

主机通过接口发送写命令给SSD,SSD接收到命令后执行,并接受主机将要写入的数据。数据一般会先缓存在SSD内部的RAM中,FTL为每个逻辑数据块分配一个闪存地址,当数据凑到一定数量后,FTL(FTL主要完成逻辑数据到闪存空间的映射)发送写入闪存请求给后端,后端根据写请求,把缓存里的数据写到对应的NAND内存空间。

当主机发来读命令时,SSD能根据需要读取的逻辑数据块查找映射表(逻辑地址到物理地址转换的映射表),获取这些逻辑数据在闪存空间的位置,后端便能从闪存上把对应数据读到SSD内部缓存空间,然后前端负责把这些数据返回给主机。

SSD 指标

工作温度范围: 0~70℃,非工作温度范围:-50~90℃

性能指标:IOPS(读写性能)、吞吐量(顺序读写)、响应时间/延时

Endurance:(for example: 200GB SSD)

  • 10 DWPD(Drive Writes Per Day)for 5 years
  • TBW(Terabytes Written): 10 * 200 GB * 365 * 5 ≈ 3600 TB

数据可靠性

  • ​​UBER​​:Uncorrectable Bit Error Rate,不可修复的错误比特率,在闪存应用中,指已经经过纠错码纠错,但仍无法纠正所有错误,与预期数据相较下的纠码失败率。
  • ​​RBER​​:Raw Bit Error Rate,原始的错误比特率,从闪存内读出,尚未经过纠错码纠错,与预期数据相较下的误码率。
  • MTBF​​:Mean Time Between Failure,平均无故障工作时间,是衡量一个的可靠性指标。

功耗:Max active、Active、Idle、Standby、Sleep、DevSleep

最大功耗与发热控制
SSD 最大功耗是 ASIC 主控 和 闪存模块。当SSD温度传感器侦测到温度达到阈值,如70℃时,固件会启动降温算法模块,限制闪存后端并发写的个数。当温度下降到阈值70℃以下后,SSD固件会重新恢复到正常的后端写并发个数。

SSD系统兼容性

  • BIOS和OS的兼容性

    (从测试角度)OS、CPU、BIOS、应用程序
  • 电信号和硬件兼容性
  • 容错处理

    在主机端发生错误的条件下,SSD即使不能正常和主机交互数据,也至少要保证不变砖。
    从设计角度考虑加入容错模块、加大系统兼容性测试的覆盖面,这些都是提高SSD系统兼容性的手段和方法。

BIOS 和 SSD 交互

SSD 上电加载后,主机 BIOS 开始自检,主机中的 BIOS 作为第一层软件和 SSD 进行交互的步骤如下:

  1. 和SSD发生连接,SATA 和 PCIe 走不同的底层链路连接,协商(negotiate)到正确的速度上,自此主机端和 SSD 连接成功;
  2. 发出识别 SSD 的命令(如 SATA Identify)来读取 SSD 的基本信息,基本信息包括产品型号(part number)、FW 版本号、产品版本号等,BIOS 会验证信息的格式和数据的正确性;
  3. 读取 SSD 的其他信息,如 SMART(Self-Monitoring, Analysis, and Reporting Technology),直到 BIOS 找到硬盘上的主引导记录 MBR(Master Boot Record),加载 MBR;
  4. MBR 开始读取硬盘分区表 DPT(Disk Partition Table),找到活动分区中的分区引导记录 PBR (Partition Boot Record),并且把控制权交给PBR;
  5. SSD 通过数据读写功能来完成 OS 加载。

SSD Driver 关键技术

  1. ID管理
  2. 纠错算法
  3. 逻辑物理映射
  4. 磨损平衡(wear-Leveling)
  5. 垃圾回收(Garbage Collection)
  6. 缓存策略
  7. 掉段保护(Sudden Power Off Recovery, SPOR)

NAND 体系架构

Cache Registers: 供资料暂存或测试程式用,其读取跟写入速度都很快,断电后资料会遗失。
Data Registers: 用來暂存要放到page或从page取出的資料。

​​NAND 闪存接口(如 ALE/CLE)​​:NAND 闪存的接口是​​并行总线​​(如 8 位 I/O),用于控制闪存芯片的操作(读/写/擦除)。

  • ​​ALE(Address Latch Enable)​​:锁存地址信息。
  • CLE(Command Latch Enable)​​:锁存命令信息。
  • ​其他控制信号​​:WE#(写使能)、RE#(读使能)、CE#(片选)等。
  • DQs: 数据选通,为数据输入/输出提供同步参考时钟
  • DQs_t: 数据选通互补信号,NV-DDR2/DDR3接口中用于数据同步的互补参考信号
  • ENi: 枚举输入,支持CE#引脚减少功能,菊花链中前一个NAND设备的ENo输出
  • ENo: 枚举输出,连接至菊花链中下一个NAND设备的ENi引脚
  • R/B#:就绪/忙,开漏输出(低电平有效),需外接上拉电阻,指示阵列活动状态
  • VCC: 核心电源
  • VCCQ: I/O电源
  • VPP:可选高压电源,用于增强操作(如提升能效)
  • VSS:核心地
  • VSSQ:I/O地
  • VREFQ:参考电压,用于NV-DDR2/DDR3接口
  • ZQ:需通过RZQ电阻接地
  • NC:无连接,内部未连接,可悬空或驱动
  • DNU:请勿使用,必须悬空
  • RFU:保留未来使用,必须悬空
  • 数据线​​:通常为 8 位并行 I/O 总线(非差分信号),复用传输数据、地址和命令。

    PCIe 是 SSD ​​与主机通信​​的高速串行接口,而 ALE/CLE 是 SSD ​​主控与 NAND 闪存芯片通信​​的并行控制信号。

LUN (Logical Unit Number,逻辑单元号)

在SSD中,LUN通常对应NAND闪存芯片的Die(晶圆)或Plane(平面),是主控管理闪存操作的最小逻辑单元。

Asynchronous Interface Mode Selection

标签: ssd

添加新评论