文章目录
- 📚SSD综述
- 🐇SSD基本结构
- 🐇SSD与HDD
- 🐇SSD基本工作原理
- ⭐SSD请求处理流程
- ⭐SSD主要组成模块
- ⭐SSD读写操作
- 🐇SSD产品核心指标
- ⭐基本信息
- ⭐性能指标
- ⭐数据可靠性和寿命
- ⭐功耗
- 📚可计算存储
📚SSD综述
🐇SSD基本结构
- SSD即固态硬盘,是一种以半导体闪存(NAND Flash)为介质的存储设备。和传统机械硬盘(HDD)不同,SSD以半导体存储数据,用纯电子电路实现。
- SSD的硬件包括几大部分:主控、闪存、缓存芯片DRAM、PCB、接口。SSD的主体其实就是一块PCB。
SSD与传统的HDD相比,具有更快的读写速度、更低的功耗和更好的抗震性能。
主控:SSD的大脑,负责管理数据的读写、错误校正、坏块管理、数据加密等任务。主控芯片的性能直接影响到SSD的整体性能。
闪存:闪存是SSD中用于存储数据的核心部件,闪存的类型和质量直接影响SSD的性能和耐用性。
缓存芯片DRAM:用于临时存储数据,以提高SSD的读写速度。
**PCB **:SSD的物理载体,所有其他组件都安装在PCB上。PCB上还可能集成有电源管理芯片、电阻、电容等其他电子元件。
接口(Interface):接口是SSD与计算机其他部分通信的通道。
- SATA:常见的硬盘接口,传输速度相对较慢。
- SAS:高性能的服务器级接口,传输速度较快。
- PCIe:高速接口,提供更高的数据传输速率。
SSD的主体其实是一块PCB,所有的组件都安装在这块PCB上,并通过接口与计算机的主板相连。
- 从软件角度看,SSD内部运行固件(Firmware,FW)负责调度从接口端到介质端的数据读写,包括嵌入核心的闪存介质寿命和可靠性管理调度算法。
- 存储介质
当前闪存生产供应商主要有三星、SK海力士、铠侠、西数、长存。
🐇SSD与HDD
-
传统HDD采用的是“磁头+马达+磁盘”的机械结构,SSD则变成了“闪存介质+主控”的半导体存储芯片结构。
-
从技术参数上,与HDD相比,SSD的优点:性能好、功耗低、抗震防摔、无噪声、身形小巧百变。
🐇SSD基本工作原理
⭐SSD请求处理流程
- 从主机开始,用户从操作系统应用层面对SSD发出请求;
- 文件系统将读写请求经驱动转化为相应的符合协议的读写与其他命令;
- SSD收到命令执行相应操作,然后输出结果。
SSD的输入是命令,输出是数据和命令状态。
⭐SSD主要组成模块
-
前端接口和相关的协议模块
-
SSD前端负责和主机直接通信,接收主机发来的命令和相关数据,命令经SSD处理后,最终交由前端将命令状态或数据返回给主机。
-
SSD通过SATA、SAS和PCIe等接口与主机相连,实现对应的ATA、SCSI和NVMe等协议。
-
-
FTL模块:
-
处理逻辑到物理地址的映射。
-
垃圾回收(闪存不能覆盖写):移动有效数据,擦除旧数据块。
-
磨损平衡(闪存有寿命,闪存块不能一直写):均衡写入,延长闪存寿命。
-
坏块管理、读干扰处理、数据保持、错误处理等
-
-
后端和闪存通信模块:执行写入和读取操作。
⭐SSD读写操作
- 写操作:主机发送写命令,SSD缓存数据,FTL分配闪存地址,后端写入数据
- 读操作:主机发送读命令,FTL查找映射表,后端读取数据,前端返回数据。
-
以写为例:
- 主机通过接口将写命令发送给SSD,SSD收到该命令后执行命令,并接收主机要写入的数据。
- 数据一般会先缓存在SSD内部的RAM中,FTL会为每个逻辑数据块分配一个闪存地址,当数据达到一定数量后,FTL便会给后端发送写闪存请求,然后后端根据写请求把缓存中的数据写到对应的闪存空间。
-
由于闪存不能覆盖写,所以闪存块需擦除才能写入。主机发来的某个数据块不是写在闪存固定位置,SSD可以为其分配任何可能的闪存空间以供其写入。因此,SSD内部需要FTL来完成逻辑数据块到闪存物理空间的转换或者映射。
- 举个例子。假设SSD容量为128GB,逻辑数据块大小为4KB,则该SSD一共有128GB/4KB=32M个逻辑数据块。
- 每个逻辑块都有一个映射,即每个逻辑块在闪存空间中都有一个存储位置。闪存地址的大小如果用4B表示,那么存储32M个逻辑数据块在闪存中的地址则需要32Mx4B=128MB大小的映射表。
-
正因为SSD内部维护了一张逻辑地址到物理地址转换的映射表,所以当主机发来读命令时,SSD能根据需要读取的逻辑数据块查找该映射表,获取这些逻辑数据在闪存空间中的位置,后端便能从闪存上把对应数据读到SSD内部缓存空间,然后前端负责把这些数据返回给主机。
-
由于前端接口协议都是标准化的,后端和闪存的接口及操作也是标准化的,因此,一个SSD在前端协议及闪存确定下来后,差异化就体现在FTL算法上了。FTL算法决定了性能、可靠性、功耗等SSD的核心指标。
🐇SSD产品核心指标
⭐基本信息
-
容量配置(Capacity)
-
SSD容量是指提供给终端用户使用的最终容量,以字节(B)为单位。
-
注意,标称的数据都以十进制为单位。以二进制为单位的容量在行业内称为裸容量,以十进制为单位的容量称为用户容量。
-
同一组数据,二进制比十进制会多出7%的容量。这里是针对GB级而言的。
-
闪存本身是裸 容量。SSD可以利用这多出来的7%的空间管理和存储内部数据,比如把这部分额外的空间用作FTL映射表存储空间、垃圾回收所需的预留交换空间、闪存坏块的替代空间等。
-
这里的7%的空间可以转换为OP概念
-
-
介质信息(Component)
-
闪存这种半导体介质有其自身的物理参数:PEcycles(编程擦除次数)、Program(写编程)时间、数据Erase(擦除)和Read(读)时间、温度对读写擦的影响、闪存页的大小、闪存块的大小……
-
介质的好坏直接影响数据存储的性能和完整性。
-
-
外观尺寸(Form Factor)、重量(Weight)、环境温度(Temperature)、震动可靠性(Shock and Vibration)、认证(Certification)、加密(Encryption)
⭐性能指标
- IOPS:每秒完成的输入输出请求数,反映随机读写性能。
- 吞吐量:每秒读写命令完成的数据传输量,也称带宽,反映顺序读写性能。
- 响应时间/延时:每条命令从发出到收到状态回复所需的时间,包括平均延时和最大延时。
- 平均延时:所有命令响应时间的总和除以命令的个数。
- 最大延时:测试周期内所有命令中响应时间最长的那笔。
性能测试设计要考虑访问模式:
- Random/Sequential:随机和连续数据命令请求。
- Block Size:单条命令传输的数据大小,在性能测试中通常从4KB到512KB不等。
- Read/Write Ratio:读写命令数混合的比例。
任何测试负荷都是上述这些模式的组合。
- 顺序读测试:指的是LBA连续读,块大小为256KB、512KB等,读写比例为 100%:0。
- 随机写测试:指的是LBA不连续的写,块大小一般为4KB,读写比例为0:100%。
- 随机混合读写:指的是LBA不连续的读写混合测试,块大小一般为4KB,读写保持一定的比例。
- 服务质量(QoS)反映延时“置信级”:在测试规定的时间内使用不同百分比的命令中的最大延时。
-
空盘与满盘
-
HDD和SSHD满盘和空盘写的IOPS相差不大;SSD满盘和空盘写的IOPS相差很大,因为满盘后写会触发垃圾回收。
-
消费级SSD,商家给的测试数据一般是空盘测试的数据;企业级SSD,客户更关注稳态性能,即满盘性能。
-
⭐数据可靠性和寿命
-
数据可靠性
-
UBER (Uncorrectable Bit Error Rate):不可修复的错误比特率,衡量数据读取时错误的概率。
- SSD的存储介质闪存具有天然的数据位翻转率,可能由于擦写磨损、读取干扰、编程干扰或数据保持错误导致。
- SSD使用纠错码(如ECC)修正错误数据,但某些情况下错误可能无法纠正,因此需要UBER来告知用户数据错误无法纠正的概率。
-
RBER (Raw Bit Error Rate):原始错误比特率,反映闪存的质量。
- RBER是影响UBER的核心因素。
- 在相同的ECC编码长度和保护强度下,RBER越低,UBER也越低,且呈指数级降低。
- RBER随使用时间(PE Cycle)增加而增加。
- RBER与闪存内部结构有关,不同闪存块的RBER可能完全不同。
-
MTBF (Mean Time Between Failure):平均故障间隔时间,反映产品的可靠性。
-
-
寿命
-
DWPD(Drive Writes Per Day):每天驱动器写入次数,即在SSD的保修期内,用户每天可以把盘写满多少次。
- 写密集型应用(如OLTP)需要高DWPD值的SSD;读密集型应用对DWPD值的要求较低;根据应用场景选择合适的DWPD值,以平衡性能和成本。
-
TBW(Terabytes Written):在SSD的生命周期内可以写入的总字节数。
-
NAND PE Cycles:闪存标称写擦除次数。
-
Capacity:SSD单盘用户可使用的容量。
-
WA(写入放大系数):与SSD固件设计和用户写入的数据类型相关。
-
-
可以根据TBW计算每天的写入量
-
⭐功耗
-
空闲(Idle)功耗:SSD无操作且未进入省电模式时的功耗。
-
最大峰值(Max active)功耗:SSD在最大工作负载(如连续写操作)时的功耗。
-
Standby/Sleep功耗:SSD在待机或睡眠模式下的功耗,通常较低。
-
DevSleep(深度睡眠)功耗:SSD在深度睡眠模式下的极低功耗,通常在10mW以下。
-
系统功耗状态
-
S0:工作模式,OS可以管理SSD的功耗状态。
-
S1-S5:不同的睡眠和休眠模式,功耗和恢复时间随模式加深而增加。
-
进入和退出功耗模式存在延时,频繁切换可能导致性能损失。
-
从正常工作模式切换到低功耗模式需要适当的时间,以避免过早进入低功耗模式而影响性能。
-
-
适配性(Compliance)、兼容性(Compatibility)
-
其他:产品可靠性(RMA Rate)、测试条件信息、系统兼容性信息
📚可计算存储
- 可计算存储(Computational Storage)是一种新兴的存储技术,它将处理数据的计算能力整合到存储设备中,以提高数据处理效率、降低延迟、减少数据移动和网络传输的开销。
- 这种技术特别适用于需要处理大量数据的应用场景,如大数据分析、人工智能、物联网(IoT)等。
- 可计算存储的主要特点:
- 本地计算:计算任务在存储设备本地执行,而不是将数据发送回中央处理器(CPU)或专用服务器。
- 减少数据移动:通过在存储设备上直接处理数据,减少了数据在存储和计算资源之间移动的需要,从而降低了延迟和网络拥塞。
- 提高效率:可计算存储可以预处理数据,只将必要的信息发送到服务器,从而提高了整体系统效率。
- 扩展性:通过分散计算负载到存储设备,可计算存储有助于扩展系统的处理能力。
- 安全性:数据在存储时就可以进行加密和处理,减少了数据在传输过程中被截获的风险。
中央处理器(CPU)或专用服务器。 - 减少数据移动:通过在存储设备上直接处理数据,减少了数据在存储和计算资源之间移动的需要,从而降低了延迟和网络拥塞。
- 提高效率:可计算存储可以预处理数据,只将必要的信息发送到服务器,从而提高了整体系统效率。
- 扩展性:通过分散计算负载到存储设备,可计算存储有助于扩展系统的处理能力。
- 安全性:数据在存储时就可以进行加密和处理,减少了数据在传输过程中被截获的风险。
- 参考书籍:《深入浅出SSD:固态存储核心技术、原理与实战》(第2版)