NVMe 固态

接口

Wikipedia - M.2

内部基本结构

1. 主控

如何选购固态硬盘? - dloe 的回答

主流 NVMe SSD 主控简介

  • Marvell 88SS1092、88SS1093 88SS1098、88SS1088

  • SandForce

    性能也不错,它的特点是支持压缩数据,比如一个10M的可压缩数据可能被他压成5M的写入硬盘,但还是占用10M的空间,可以提高点速度,最大的特点是会延长SSD的寿命,但是主控CPU占用会高点而且速度会随着硬盘的使用逐渐小幅度降低。代表型号为SF-2281,运用在包括Intel、金士顿、威刚等品牌的SSD上。相比Marvell公司,SandForce公司这两年就有点折腾了。被LSI、Avago多次转手之后,SandForce最终于2014年落入机械硬盘厂商希捷的手中。(至于希捷好基友西数也是通过收购拓展固态硬盘业务,举债千亿收购闪迪,砸锅卖铁为君来。收购将于2016年5月12日生效。)

  • Samsung

    上一代的主控代号 Polaris(代表产品 960),就已经实现了 3GB/s 的读取速度。这一代的 Phoenix 主控更是将写入速度提高到 2GB/s 以上(代表产品 970),搭配 64 层 3D NAND,可以说几乎无敌,可惜的就是坑爹的价格,至今我还为我的那个 sm961 感觉肉疼。

  • Phison

    控制 IC 介面 產品型態 儲存容量 NAND FLASH 類型 連續讀 / 寫 (up to)
    PS5012-E12 PCIe Gen3x4 NVMe M.2 2280 256GB ~ 2048GB 3D TLC 3,400/3,000 MB/s
2. NAND 闪存
[你真的懂3D NAND闪存? 半导体行业观察](https://zhuanlan.zhihu.com/p/48579501)
  • 闪存缩放限制 Flash Memory Scaling Limit

指无论芯片上的元件能缩小多少,闪存都无法跟上步伐。

解决的方向有:

  1. 3D NAND Flash : 把存储单元立体化

  2. 多层单元 (Multi-Level Cell) : 让每个存储单元不只存储ㄧ个 bit

  3. 硅穿孔技术 (TSV,Through Silicon Via) : 让多颗闪存晶粒可以直接堆叠封装

  • 3D NAND闪存:未来的出路

Samsung V-NAND White Paper

-w630

  • 多层单元

    SLC 1 bit: 0,1 MLC 2 bit: 00,01,10,11 TLC 3 bit: 000,001,010,011,100,101,110,111 QLC 4 bit: 0000,0001,…, 1111

    一个存储单元上,一次存储的位数越多,该单元拥有的容量就越大,这样能节约闪存的成本,提高NAND的生产量。但随之而来的是,向每个单元存储单元中加入更多的数据会使得状态难以辨别,并且可靠性、耐用性和性能都会降低。

3. 缓存

由于TLC需要更精确的控制电压,那么写入数据当然也会花费更多的时间;同样的,由于需要识别 8 种信号,而 MLC 只需要识别 4 种,SLC 只有1和0两种,这也就解释了SLC的性能为何最好。现在的 TLC SSD 都启用了 SLC Cache 模式提升写入速度。

写入缓存的数据不一定会直接写入到固态硬盘上,只有最终需要保存的数据才会写入到固态硬盘的 FLASH 芯片上,这个由程序和系统控制。没有缓存的产品也不是说寿命会很不堪,还有还有PO(7%以上)空间来维持。因此,具备较大缓存有助于减少固态硬盘上FLASH芯片的读写次数,延长了芯片的使用时间,一定程度上提高读写能力。   

6. 注意事项
  • 4K 对齐

    4K 对齐

    如果4K不对齐,不但会极大的降低数据写入和读取速度,还会增加固态硬盘不必要的写入次数,影响寿命。非常重要。AS SSD Benchmark、DiskGenius、分区助手可检查或纠正。 4K对齐选8,2048和4098扇区数有多大区别?实测告诉你-中关村在线硬件论坛​bbs.zol.com.cn

  • 分区方法:小分区、少分区

    SSD有一种技术叫做“垃圾回收机制”,TRIM 是系统用来告诉SSD主控哪些数据所占据的地址是“无效”的,而“垃圾回收机制”就是SSD内部对这些“无效”数据进行清理的过程。 SSD中的擦除只能是“将无效数据所在的整个区域摧毁”,不能像机械硬盘那样实现“点对点精确定位打击”,因此“垃圾回收机制”过程也显得很繁琐——先把区域内的有效数据集中起来,转移到空闲的位置,然后把“问题区域”整个清除,清除出来的地方可以作为下次垃圾回收时的转移地点。

    所以“小分区”的概念就出来了。所谓“小分区”就是不要把SSD的容量都分满,保留一部分容量作为“空闲位置”,用于SSD内部的优化操作,如磨损平衡、垃圾回收和坏块映射。一般情况下这一步骤厂商已经帮我们设定好了,例如NAND容量128G的SSD,厂家会标称120G,剩下的部分就被设置成了预留空间。当然如果你十分注重SSD性能,也可以在此基础上继续增加预留空间,如:128G的固态硬盘在分区的时候只分120G或者更少。

    “少分区”则是另外一种概念,关系到4k对齐对SSD的影响。一方面现在主流SSD容量都不是很大,分区越多意味着浪费的空间越多(每个分区总有那么些空间是用不到的),另一方面分区太多容易导致分区错位,在分区边界的磁盘区域SSD性能可能受到影响。如:128G的固态硬盘分2个分区,256G的分2-4个分区为宜。

  • 保留足够的剩余空间

    固态硬盘存储越多性能越慢。而如果某个分区长期处于使用量超过90%的状态,固态硬盘崩溃的可能性将大大增加。所以及时清理无用的文件,设置合适的虚拟内存大小,将电影音乐等大文件存放到机械硬盘非常重要,必须让固态硬盘分区保留足够的剩余空间。

  • 因为PCIE接口的特殊性,使用PCIE SSD作为系统盘时其启动速度会比SATA接口慢,启动时间较长。

  • 关闭设备上Windows写入高速缓存缓冲区刷新 NVMe 协议的 PCIe SSD 对 CPU 主频及内存频率要求高,且 Windows 10 系统测试 PCIe SSD 时,要在磁盘驱动器的写入缓存策略里,关闭设备上 Windows 写入高速缓存缓冲区刷新,否则无法完全发挥其性能。