固态硬盘是什么?

381 阅读5分钟

之前文章提到过在计算机中存储设备分为「易失性」和「非易失性」两种特性,这是一个重要的概念。「易失性」在断电后,数据会丢失。「非易失性」,即使在断电后,仍然保存着信息。

易失性的代表为:高速缓存存储器、内存条;

非易失性的代表为:光盘、硬盘、固态硬盘。

固态硬盘是什么?

固态硬盘(Solid State Disk,SSD) 是一种基于闪存的存储技术。它是传统的旋转磁盘的替代品。比起旋转磁盘,SSD 由半导体构成,没有移动部件。因此随机访问时间比起旋转磁盘要快,能耗更低,同时也更结实。

SSD 封装插到 I/O 总线的标准硬盘插槽上(USB 或者 SATA)中,行为就和其他硬盘一样,处理来自 CPU 的读写逻辑磁盘块的请求。

image.png

一个 SSD 封装由一个或多个闪存芯片和闪存翻译层组成,闪存芯片作为存储介质,代替了传统机械硬盘中的旋转磁盘。而闪存翻译层则在 SSD 内部完成逻辑块和物理设备之间的翻译,这是实现数据存储和访问的关键部分。

SSD 读写操作

每个闪存芯片由多个块(B)组成,每个块由多个页(P)组成。

SSD 的读性能通常要优于写性能,这是因为写入操作在内部涉及更多的步骤和额外的开销,导致相对较慢的性能。

一个显著的例子是块的擦除过程,在闪存中,数据以页为基本单位进行访问,但要进行写入操作时,必须首先擦除整个块。擦除块的操作需要相对较长的时间,通常在1毫秒级别,与单个页的访问时间相比高出一个数量级。

如果一次写操作尝试修改一个已经包含数据的页(尚未填满的页,仍有空间可用),则需要执行写放大操作。这意味着块中所有数据的页都必须被复制到一个新的块,然后才能执行对所需页的写入操作,这进一步增加了写入的开销。

SSD 制造商已经在闪存翻译层中实现了复杂的逻辑,试图去抵消高昂的代价,最小化内部写的次数,即使是这样,随机写入的性能仍然无法与读取操作的性能相提并论。

SSD 文件拷贝

在大多数情况下,SSD 拷贝大文件会比拷贝小文件更快。这是因为SSD的性能特性,特别是在涉及随机写入和读取方面,会对文件拷贝的速度产生影响。

拷贝小文件时,由于每个文件的大小相对较小,操作系统需要处理更多的小块数据读写操作,这会导致更多的随机读写,每个操作涉及的额外开销和寻址时间会导致整体拷贝速度变慢。

拷贝大文件时,连续的大块数据可以被顺序读取和写入,这充分利用了 SSD 的顺序读写性能,减少了寻址时间和额外开销,从而加快了拷贝过程。

具体情况可能会因硬件、操作系统、文件系统和拷贝工具等因素而有所不同。

SSD 的寿命

SSD 的一个潜在的缺陷是闪存会磨损,因为闪存芯片在经过一定数量的擦写操作后会损坏,这可能影响SSD的寿命,通常在经过一定次数的重写后,块会损坏,这就是所谓的闪存耐用性问题。

SSD 内部的闪存翻译层会努力平均分布擦除操作,以延长每个块的寿命。

假设 Intel 保证能够经得起 128PB 的写,根据下面的工作负载,来估计一下 SSD 的寿命:

  1. 顺序写的最糟情况:以 470M/s 的速度持续地写 SSD,寿命约为 8 年;
  2. 随机写的最糟情况:以 303M/s 的速度持续地写 SSD,寿命约为 13 年;
  3. 平均情况:以 20G/天的速度写 SSD,寿命约为 17535 年;

SSD 的寿命是一个复杂的问题,受到多种因素的影响,包括使用方式、写入模式、制造工艺等。

总结两句

由于 SSD 的价格较高,每字节的成本约为旋转磁盘的 30 倍,所以在相同预算下,能够购买的存储容量要小很多,通常是旋转磁盘的约 1/100。但随着技术的发展,SSD的价格逐渐下降,两者之间的价格差距也在缩小。

SSD 已经在音乐设备、笔记本电脑以及服务器等领域得到广泛应用。由于其读写速度快、抗震抗摔、能耗低等特点,SSD 在许多领域都能提供更好的性能和用户体验,逐渐成为了存储设备的首选。


内容来源:《深入理解计算机系统》

如果您对本篇文章中提到的问题有任何疑问或想法,请在评论区留言,我将尽力回复。

微信公众号「小道研究」,获取更多关于前端技术的深入分析和实践经验。