乐趣区

关于linux:简单聊聊固态硬盘的物理结构

后面几篇文章,次要围绕的是机械硬盘来说的。目前 ssd 目前利用也越来越广了,值得咱们花精力推敲推敲。SSD 硬盘是地地道道电子技术下的产品,因为不像机械硬盘 IO 时依赖两个耗时的机械轴行为:磁盘旋转,以及磁道寻道,SSD 硬盘的拜访提早要比机械硬盘要低的多,在随机 IO 下的体现尤其显著。咱们明天从最底层登程,看看 SSD 的几个外部机理。

SSD 的组成构造

机械硬盘和 ssd 尽管都同为硬盘,但底层实现技术却齐全不一样,机械硬盘应用的是磁性材料记忆,而 SSD 用的是相似 u 盘的闪存技术。实现技术的不同,必然在硬盘内部结构上他们就有天壤之别。他们的果照对比方下图所示:

不像机械硬盘里的一摞子圆形碟片,SSD 是由一些电路和彩色的存储颗粒形成。SSD 硬盘是基于 NAND Flash 存储技术的,属于非易失性存储设备,换成人话说,就是掉电了数据不会丢。其中咱们眼睛看见的彩色的存储颗粒叫一个 NAND Package,每个 Package 外面会蕴含多个 Die。咱们“拆开”一个 Die 来看一下

每个 Die 有若干个 Plane,每个 Plane 有若干个 Block,每个 Block 有若干个 Page。Page 是磁盘进行读写的最小单位,个别为 2KB/4KB/8KB/16KB 等。

SSD 里的扇区

后面咱们介绍机械硬盘的时候,说到因为历史起因,操作系统等软件里,512KB 扇区的概念是“积重难返”。新的机械硬盘尽管把物理扇区曾经做到 4KB 的了,但没方法,为了兼容老零碎还得整出个逻辑扇区的概念来适配。到了 SSD 里也一样,尽管每一个物理 Page 的大小为 2K 到 16K 不等,然而为了兼容性,也必须得整出个逻辑扇区才行。

SSD 控制器在逻辑上会把整个磁盘再从新划分成一个个的“扇区”,采纳和新机械硬盘一样的 LBA 形式来进行编址(整个磁盘的扇区从 0 到某个最大值形式排列,并连成一条线)。当须要读取某几个 ” 扇区 ” 上数据的时候,SSD 控制器通过拜访这个 LBA MapTable, 再来找到要理论拜访的物理 Page,如下图:

不过 SSD 最小的读写单位就是 Page,他是没方法只扇区来进行读写的。

最底层的闪存单元

下面咱们看到 SSD 是由一个个的 Page 组曾。而在每一个 Page 里,又蕴含了许许多多的闪存单元。。古代的闪存单元有多种类型,目前支流的次要分为 SLC、MLC 和 TLC。

在 SLC 里,一个单元的电压只分成高下两种状态,所以只能示意 1bit 数据。到了 MLC,硬是把一个单元里的电压依照高下分成了四种状态,所以能够示意 2bit。到了 TLC,间接一个单元应拆分成 8 个电压高下不同的状态,为了示意 3bit。因为 TLC 在数据读写须要八种不同电压状态,而施加不同的电压状态、就须要更准确,也就须要更长的工夫能力得以实现。另外因为电压状态多,出错的可能性也会更大。所以,以上三种闪存单元比照:从性能和稳定性角度来看,SLC 最好。从容量角度看,TLC 最大。这就是为什么日常咱们看到的工业级的 SSD 要比笔记本 SSD 要贵很多,其中一个很重要的起因就是工业级的盘往往采纳的闪存单元是 SLC 或 MLC,而咱们家用的笔记本个别都是 TCL,因为便宜嘛。咱们从用表格再对它们直观比照一下:

闪存类型 单 cell 电压变动 单 cell 示意 bit 数 速度 擦写次数 价格
SLC(Single-Level Cell) 两种 1bit 约 10W 次
MLC(Multi-Level Cell) 四种 2bit 个别 约 3K 次 个别
TLC(Trinary-Level Cell) 八种 3bit 约 1K 次 便宜

目前集体 PC 上生产用的支流闪存类型大部分都是 TLC 的,因为价格便宜,容量大。

思考

  • 假如某 SSD 的 Page 大小是 4KB,一个文件是 16KB。那么该文件是存在一个彩色的存储颗粒里, 还是多个?

咱们先把 SSD 的逻辑构造用个直观一点的图来看:

假如只写在一个颗粒里,那么对该文件进行读取的时候,就只能用到一条 Flash 通道,这样速度就会比较慢。如果存在相邻的 4 个颗粒里,每个写入 4KB。这样多个 Flash 通道的带宽会充分发挥进去,传输速度也更快。所以,理论中是扩散在多个。



开发内功修炼之硬盘篇专辑:

  • 1. 磁盘开篇:扒开机械硬盘坚挺的外衣!
  • 2. 磁盘分区也是隐含了技术技巧的
  • 3. 咱们怎么解决机械硬盘既慢又容易坏的问题?
  • 4. 拆解固态硬盘构造
  • 5. 新建一个空文件占用多少磁盘空间?
  • 6. 只有 1 个字节的文件理论占用多少磁盘空间
  • 7. 文件过多时 ls 命令为什么会卡住?
  • 8. 了解格式化原理
  • 9.read 文件一个字节理论会产生多大的磁盘 IO?
  • 10.write 文件一个字节后何时发动写磁盘 IO?
  • 11. 机械硬盘随机 IO 慢的超乎你的设想
  • 12. 搭载固态硬盘的服务器到底比搭机械硬盘快多少?

我的公众号是「开发内功修炼」,在这里我不是单纯介绍技术实践,也不只介绍实践经验。而是把实践与实际联合起来,用实际加深对实践的了解、用实践进步你的技术实际能力。欢送你来关注我的公众号,也请分享给你的好友~~~

退出移动版