1.SSD的架构
前端:前端存在接口和相关的协议模块。SSD前端负责和主机直接通信,接受主机发来的命令和相关数据;命令经SSD处理之后,由前端返回命令和数据给主机。
中间:中间存在FTL层,
后端:后端存在闪存通信模块,包括NAND
image
2.SSD的读写
SSD怎么进行读写,主机通过接口发送命令到SSD中,SSD接收命令开始接受主机的数据,该数据保存到SSD的RAM中,FTL会为每个逻辑数据块分配一个闪存地址,等到一定的数据量之后,FTL就会发生写闪存请求给后端,然后根据请求,将缓存中的数据写到对应的闪存空间。
image
3.闪存的层级架构
盘->芯片->晶圆->块->页->存储单元(Cell,即一个浮栅晶体管,存0或1)
按块擦除,按页写入。闪存不能够覆写。
3.为什么要FTI(flash translation layer)算法

  • 地址映射“闪存的缺点是不能够覆写,因此每次都要擦除才能够写入,所以每次主机的数据块过来的时候,SSD可以分配任意的闪存空间写入,为了确定对应的写入地址,就需要使用FTL算法来维护一张逻辑地址到物理地址的映射表,将主机的逻辑数据块根据映射表找到对应的闪存空间的位置,在这个基础上做前后端的数据传输。
  • 垃圾回收:闪存不能够覆写,随着用户的不断写入,闪存空间会产生无效数据,例如在一个块中有128页,其中64页是无效数据,64页是有效数据,如果要将这64页利用起来,就只能采取下列的方案,先将64页有用的数据搬移出来,然后将整个块在整体擦除。就是垃圾回收的方式。
  • 磨损均衡:闪存都是有寿命的,不能让每个闪存块一直写数据,所以要做一个算法尽量让每个闪存块均衡写入。
    还有坏块处理,读干扰处理的能很多其他的闪存维护的FTL算法。
posted on 2026-05-19 16:14  NianYiNo  阅读(19)  评论(0)    收藏  举报