SSD的原理和结构简介

简介: SSD如淡雅之兰花,寻求内外统一,内涵与外在俱佳,除了英俊潇洒的外表,内在的魅力同样不可抵挡。

在了解了SSD的历史和前景之后,让我们一起真正的走进SSD,揭开SSD神秘的面纱。

SSD如淡雅之兰花,寻求内外统一,内涵与外在俱佳,除了英俊潇洒的外表,内在的魅力同样不可抵挡。

SSD主要有三部分构成:主控(Controller), DRAM缓存和NAND闪存。

主控对于SSD的作用,类似CPU对于电脑的作用,属于大脑中枢,拥有最高指挥权,管理NAND闪存,实现数据的存储。


DRAM缓存是Host与SSD主控之间的数据中转站。在Host写入数据时,并不会直接交给主控去写入NAND闪存,而是先把数据丢到DRAM缓存中,之后再传到主控内部的缓存中,最后再由主控写入NAND闪存,这样做的目的是提高数据传输的效率。


是不是有点不太好理解?没关系,举个简单的例子:(已经理解的同学可以略过这部分)

比如说,在网购的时候,一件A商品会产生10元邮费,如果要购买5件A商品,我们一次购买5件呢?还是分5次购买呢?很显然,肯定会一次购买5件呀,这样只需要付一次邮费(每个人都很聪明,我这里只是举个例子哈)。
同理,如果Host每发一笔数据,不管传输的数据大小,主控都直接响应,然后写数据到NAND闪存,这时主控会花费了大量的精力去处理琐碎的事情,致使SSD表现不尽如人意,最终被嫌弃。SSD又一次发挥聪明才智,将DRAM这一干将招致麾下,并给DRAM派了个任务量,在Host传输数据时,先送到DRAM手里,如果没有达到任务量,就不要给领导-主控汇报了。这样大大地降低了主控的负担,提高了SSD处理数据的效率。

NAND闪存是数据归属地,NAND颗粒的存在,赋予了SSD储存数据的使命。为了提高存储的性能,主控会通过不同的通道(Channel)操作NAND闪存。

DRAM与NAND的结构与原理会在后续文章中详细介绍,今天主要分享SSD的司令官-主控。

由于Host和NAND闪存两位人士,性格迥异,对数据处理的方式完全不一样。此时就需要领导者-主控登场了,发挥管理智慧,打造一支和谐共赢的团队,实现存储数据的使命。

对于一个称职的主控,需要有能力完成两项艰巨的任务:
1. 为Host和NAND提供适当的对接界面(Interface)以及协议(protocol);
2. 高效地处理数据,优化传输速率,同时保证数据的完整性。

目前主流SSD主控架构如下图:


主要有三大部分组成:与Host对接的界面(Host interface), 闪存转换层FTL以及闪存对接界面(Flash interface)。

Host interface采用的协议(protocol)包括SATA,PCIe/NVMe SSD协议(后续文章会详细介绍)。


闪存转换层FTL是主控的核心部分,主要实现磨损平衡(Wear-leveling), 垃圾数据回收(Garbage Collection), 坏块管理(Bad Block Management)和数据纠错处理(ECC, Error Correction Code)。
FTL层涉及的内容较多,在这里就不展开了,后续专门介绍FTL。


Flash interface包括了SSD主控的flash controller,用来控制主控与NAND闪存之间的数据传输。



相关文章
|
存储 缓存 固态存储
存储性能软件加速库(SPDK)
存储性能软件加速库(SPDK)
|
3月前
|
存储 人工智能 并行计算
阿里云六项满分!AI训推一体机权威报告发布
近日,国际数据公司IDC发布《中国AI训推一体机技术能力评估,2025》报告,阿里云在性能指标、架构能力、模型微调能力、推理能力、存储和网络架构、交付运维能力6项评估维度中获得满分,也是唯一一家性能指标维度满分的厂商。
376 0
|
11月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
存储 缓存 固态存储
|
7月前
|
Ubuntu 数据可视化 开发工具
【VTK】ubuntu手动编译VTK9.3 Generating qmltypes file 失败
通过以上步骤,您可以成功解决在Ubuntu上编译VTK 9.3时遇到的 `Generating qmltypes file`失败的问题。关键在于确保系统正确安装了所需的Qt库,并通过CMake配置正确的路径。编译完成后,您将拥有一个功能完备的VTK库,可以用于各种可视化任务。
170 14
|
9月前
|
存储 人工智能 芯片
《光存储与3D存储:开启人工智能硬件存储新时代》
在人工智能快速发展的背景下,数据存储技术的重要性日益凸显。光存储(如全息、多维、超分辨光存储)和3D存储(如3D NAND闪存、3D NVM)等新型技术,以其高密度、高速度的优势,为AI硬件带来全新机遇。这些技术不仅能大幅提升数据处理效率,支持实时决策,还面临成本、稳定性和兼容性等挑战。未来,科研人员和企业需共同努力,推动这些技术与AI硬件的深度融合,助力AI创新与发展。
218 13
|
9月前
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
245 13
|
11月前
|
存储 安全 固态存储
计算机启动:从插上电源到操作系统启动的全过程
当我们插上电源,计算机从休眠状态苏醒,直至操作系统完全启动,这一系列复杂的过程涉及到硬件和软件的多个层面。本文将详细解析计算机插上电源后操作系统所做的工作,揭示这一过程的技术细节。
492 6
threeJs绘制曲线
这篇文章讲解了如何使用Three.js中的CatmullRomCurve3来绘制平滑的曲线,并提供了实现的代码示例。
172 3
threeJs绘制曲线

热门文章

最新文章