SSD、SD、eMMC、Raw NAND有什么区别?

Ali*_*air 29 ssd terminology sd-card

所以SSD、eMMC、SD、USB Flash等底层技术...... NAND闪存是否正确?那么它们之间的区别仅仅是控制器的实现方式吗?还是技术完全不同?

据我所知,我认为 SSD 适用于台式机,而 eMMC 适用于移动设备,但是所有这些存储技术之间是否存在一些复杂的区别?

Law*_*ceC 35

NAND - 原始闪存

Raw flash 使用自己的协议,这个协议包括读页、写页和擦除块。它不像磁盘那样工作——磁盘能够读取块和写入块,闪存能够读取和写入页面——并且 在写入新数据之前必须擦除一组称为的页面。您只能在块磨损之前擦除有限的次数,并且不会再完全擦除。

SD - “安全数字”

这是一种存储卡格式。SD 卡包含一个微型微控制器和 NAND。微控制器实现了一个 FTL(闪存转换层),它接受类似磁盘的块访问并将其转换为有意义的 NAND 操作,以及执行磨损均衡和块备用。SD 卡在“主机”端使用 SPI 协议。USB SD 读卡器将 USB 大容量存储命令转换为 SPI SD 命令。

eMMC - 嵌入式 MMC

这基本上是指您可以将其视为内置于主板中的 SD 卡(SD 和 MMC 标准非常相似 - 足以使 SD 卡读卡器通常可以读取 MMC 卡) - 通常焊接在且不可拆卸。通常,它通过内部 SPI 总线连接到硬件的其余部分。手机和 ARM 硬件以及其他嵌入式设备(即路由器)可能具有此功能。更新:一些较新的超值 Windows 上网本也开始提供这些功能。SD 卡和 eMMC 比 SSD 慢,因为 SPI 总线不如 SATA 总线快。

SSD - “固态硬盘”

一个控制器 + 一堆置于硬盘盒中的 NAND。控制器实现了一个 FTL(闪存转换层),它接受类似磁盘的块访问并将其转换为有意义的 NAND 操作,以及执行磨损均衡和块备用。一些控制器类型,如“Sandforce”等,是众所周知的。SSD 在“主机”端使用 SATA 协议和连接器。


如果您在处理原始 NAND(例如 Guruplug)的情况下,您有责任进行磨损均衡和块备份。像jffs2这样的Linux 文件系统可以这样做,但在 FTL 可以像大多数 SD 卡、USB 卡等那样工作的情况下不需要。

  • 这是一个很好的答案。一条评论:虽然 MMC/eMMC/SD 卡使用同步串行接口进行通信,但该接口*非*SPI,因此我不会使用该术语。这令人困惑,因为大多数 MMC/SD 卡还支持 SPI 作为深度嵌入式(基于 MCU)系统的替代低速接口。不过,SPI 模式不用于 x86 或 ARM 应用处理器系统。 (7认同)

Hen*_*nes 20

NAND代表ñ egated。它通常指 的是用硅构建逻辑门的方式

闪存也由硅芯片构建并使用与非门。这导致了术语NAND 闪存。我怀疑这就是您所指的 NAND,但为了完整起见,我想提一下背景。

您可以使用 NAND 闪存构建存储,但您需要某种方式来访问它。

例如,您可以在 PCB 上放置一个 NAND 闪存芯片,添加一个控制器芯片和一些 USB 逻辑,然后您就会得到一个 USB 笔式驱动器。或者您可以添加一个SD控制器并将其置于此格式中,您将获得一张 SD 卡。

在此处输入图片说明

这两者都是相对简单的设备,当您在它们上存储信息时,您将写入固定位置。这是一件坏事,因为对 NAND 闪存的写入次数是有限的。

您可以向设备添加一个控制器,以确保所有写入在 NAND 上均匀分布,同时为计算机提供一致的图像。这需要设备部分的更多智能,并在SSD 中完成。(SSD 应该取代机械硬盘,因此有望获得大量写入)。

它们之间的区别仅仅是控制器的实现方式吗?

对于 SD/USB pendive:大体相同,只是接口不同。
对于 SSD:完全不同的控制器。

还是技术完全不同?

有几种方法可以实现nand存储。主要的实施差异似乎归结为:

  • 您可以在其中存储高电压或低电压(SLCS 单电平)的单电池。基本上是“开”或“关”,或“1”或“0”。
  • 允许多级功率的芯片。(关闭、轻微充电、大部分充电、充满电。将其与立体声信号进行比较。SLC 将打开音乐或关闭音乐。MLC 将关闭、轻音乐、嘈杂的音乐和超聋模式)。

这就留下了eMMC

我以前从未听说过它,但根据维基百科,它是一种闪存存储卡标准。