SSD简介
概念
SSD(Solid State Drive),即固态硬盘,是一种以半导体闪存(NAND FLASH)为介质的存储设备。
SSD组成
SSD主要部件为控制器和存储芯片,
SSD硬件包括主控,闪存 ,缓存芯片DRAM(可选),PCB(电源芯片,电阻,电容等),接口(SATA, PCIE等),其主体就是一块PCB。
从软件角度看SSD
SSD内部运行固件(Firmware)负责调度数据从接口端到介质端的读写,还包括嵌入核心的内存介质寿命和可靠性管理的调度算法以及SSD内部算法。
SSD三大技术核心
SSD控制器,闪存和固件
SSD的优势
1)性能好
读写速度比HDD有几倍到几百倍的差异,随机读写性能(速度和时延)差异最为明显
2)功耗低
待机功耗可降到毫瓦级别
功耗消耗
SSD的功耗主要消耗在闪存上,读取数据和写入并发在后端的闪存,闪存的单位读写功耗决定性的,
如16KB闪存页(Page)的读写功耗决定了主机端满负荷下SSD的平均读写功耗;
其次影响读写功耗的是主控功耗,其约占功耗的20%
科学的比较功耗
power/IOPS,单位IOPS性能上的功耗输出,该值越低越好
3)抗震防摔
SSD内部不存在任何机械部件
4)无噪声
5)身形小
SSD的工作原理
用户操作SSD的流程
用户从操作系统应用层对SSD发送请求
V
文件系统将读写请求路径驱动转化为相应的符合协议的读写和其他命令
V
SSD收到命令执行相应操作,输出结果
每个命令的输入和输出经协议标准组织标准化
SSD的输入是命令,输出是数据和命令状态
SSD三大功能模块
1)前端接口和相关的协议模块
负责和主机直接通信,接收主机发送的命令和数据,命令经SSD处理后最终交由前端返回命令状态和数据给主机。
SSD通过诸如SATA, PCIE等接口与主机相连,实现对应的ATA和NVME协议。
2)FTL模块(Flash Translation Layer)
3)后端和闪存通信模块
SSD进行写的例子
主机通过接口发送写命令给SSD
SSD接收命令后执行,并接收主机要写入的数据
数据一般会缓存在SSD内部的RAM中
FTL会为每个逻辑数据块分配一个内存地址,当数据凑到一定数量后,
FTL便会发送写闪存请求到后端
后端根据写请求,把缓存中的数据写到对应的内存空间
说明
闪存不能覆盖写,所以闪存块需要擦除才能写入
主机发来的某个数据块,不是写在闪存的固定位置,SSD可以为其分配任何可能的闪存空间写入,
因此SSD内部需要FTL这么一个东西,来完成逻辑数据块到闪存物理空间的转换或者映射。