什么是现代 SSD 的原子写入单元?

Posted

技术标签:

【中文标题】什么是现代 SSD 的原子写入单元?【英文标题】:What is a atomic write unit for mordern SSDs? 【发布时间】:2017-11-05 17:56:04 【问题描述】:

我的理解是,最现代的基于主轴的驱动器都有一个“扇区”作为原子写入单元。现代ssds的单位是什么?

【问题讨论】:

【参考方案1】:

我不完全确定您所说的原子写入单元是什么意思。我假设您的意思是最小的写入单位。

在 NAND 闪存 SSD 中,读写的最小单位称为页。通常,页面大小为 2kB 或 4kB,加上元数据。

另外,擦除的最小单位是几页(32-128 页)。

来源:

http://codecapsule.com/2014/02/12/coding-for-ssds-part-3-pages-blocks-and-the-flash-translation-layer/

https://en.wikipedia.org/wiki/Flash_memory#NAND_memories

【讨论】:

【参考方案2】:

SSD 内部有页面大小,这是最小的硬件存储单元(通常为 2048 字节)。

还有取决于用于与 SSD 通信的协议的块大小(通常为 512)。我看到我的 PC 在 Wireshark 中通过 SCSI 与 USB SSD 通信。

假设 SCSI SSD 的页面大小为 2048,块大小为 512。

让我们在磁盘的最开始写一页。 虽然 SCSI 将页面分为 4 个块,但操作应该保持原子性。

现在我们从偏移量 1024 开始写入 2048 个字节。缓冲区的一半现在位于第 0 页,其余位于第 1 页。操作不再是原子操作。

【讨论】:

以上是关于什么是现代 SSD 的原子写入单元?的主要内容,如果未能解决你的问题,请参考以下文章

原子变量的对齐

从硬件缓存模型到Java内存模型原理浅析

蓝桥ROS机器人之现代C++学习笔记7.5 原子操作

20171130-构建之法:现代软件工程-阅读笔记

现代继电器:如何模拟继电器进行单元测试

20171005-构建之法:现代软件工程-阅读笔记