SSD基本架构与工作原理

SSD的核心由一个或多核心的CPU控制器、DRAM缓存以及多个NAND闪存芯片组成。CPU控制器负责管理所有读写操作,并通过DRAM缓存存储映射表等元数据,以加速寻址过程。

图片

NAND闪存则是数据存储的实际介质,其组织结构从大到小依次为通道(包含多个封装)、Die、Plane、Block和Page。

图片

读写操作流程

SSD的读写操作遵循NAND闪存的基本特性,即写入前需擦除(Erase-before-write),操作单位不对称(读/编程操作在Page级别,而擦除操作在Block级别),且具有有限的耐久性和数据保持性。

图片

  • 读取(Read):数据从NAND闪存的Page传输到SSD控制器的页面缓冲区,再传输至主机,延迟tR。

  • 写(Program):数据从主机写入页面缓冲区,再编程到NAND闪存的Page中,耗时tPROG。

  • 擦除(Erase):整个Block的数据被清除,tERASE通常需要毫秒(ms)级别。

SSD常见写入步骤:

写入过程中,host写入数据给到缓存,再由缓存下刷到NAND存储,需要注意的是写入数据后的垃圾回收GC。

图片

  • 写入命令与地址:SSD控制器向NAND闪存发送写命令和相应的页地址。

  • 数据传输:数据通过I/O线从主机或SSD的缓存传输到NAND闪存的页面缓冲区。这个过程中,数据先暂存在缓冲区,随后批量写入存储单元。

  • 数据编程:NAND闪存内部的接口电路将缓冲区中的数据编程到存储单元中。此过程通常需要几百微秒。

  • 状态等待与确认:写入期间,SSD控制器会定期查询NAND的状态寄存器,等待写入操作完成的指示。

  • ECC编码与校验:在数据写入之前,根据SSD设计,会对数据进行ECC编码,以防止未来读取时的错误。写入后,可能会通过读回数据并对比原始数据进行校验。

  • GC(垃圾回收)和 Wear-Leveling:长期使用中,SSD控制器还需管理垃圾回收和磨损均衡,以维护性能和延长SSD寿命,但这通常不在单次读写操作流程内直接体现。

SSD常见读取步骤:

读取过程中,host发送数据读取请求,数据从NAND读取,这个过程可能会有因为NAND读取异常发送Read Retry。

图片

  • 命令发送:主机向SSD的控制器发送读取命令,通常伴随着要读取的页地址信息。

  • 地址传输:紧接着,页地址通过命令/地址总线传送给NAND闪存控制器。在某些NAND架构中,地址传输可能分为行地址和列地址两个阶段。

  • 读取命令确认:控制器发送一个确认读取命令到NAND芯片,以确保NAND准备进行读取操作。

  • NAND操作:NAND闪存芯片接收到命令和地址后,开始从指定的物理页中读取数据。数据首先被加载到NAND芯片内部的页面缓冲区。

  • 数据传输:一旦数据准备就绪,NAND芯片通过I/O线将数据传输到SSD控制器。此时,NAND芯片会处于忙碌状态,直到数据传输完成。

  • 状态检查:在数据传输过程中或完成后,SSD控制器需要监控NAND的状态寄存器,以确认操作成功完成。

  • 数据校验:为了确保数据完整性,SSD控制器执行ECC(Error Correction Code)校验。如果数据在读取过程中发生错误,ECC可以帮助纠正这些错误。

相关推荐

  1. 决策树基础:定义工作原理

    2024-07-23 10:38:01       32 阅读
  2. 【人工智能】ChatGPT基本工作原理

    2024-07-23 10:38:01       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 10:38:01       48 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 10:38:01       53 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 10:38:01       41 阅读
  4. Python语言-面向对象

    2024-07-23 10:38:01       52 阅读

热门阅读

  1. Python语言-面向对象

    2024-07-23 10:38:01       52 阅读
  2. 开封建筑设计资质申请正确填写信息

    2024-07-23 10:38:01       24 阅读
  3. Android中接入hook框架:lancet-base

    2024-07-23 10:38:01       20 阅读
  4. 如何平衡硬约束与软约束

    2024-07-23 10:38:01       19 阅读
  5. 医学深度学习与机器学习融合的随想

    2024-07-23 10:38:01       21 阅读
  6. 19、基于共享内存的内存池

    2024-07-23 10:38:01       19 阅读
  7. Hisilicon适配按键

    2024-07-23 10:38:01       19 阅读