你对计算机存储系统有一些误解。正好我最近几年一直在搞分布式存储,就随便说说。
外存储器的目的是进行持久化存储。操作系统会使用未分配的内存作为读缓存。操作系统的层面上,写使用 write through cache. 换句话说,写入速度取决于外存速度。『闪存使用内存作为缓存』,这句话是成立的,但是所有的外存储器都会使用内存作为缓存,内存的速度永远是高于外存数个数量级的。 See
https://gist.github.com/jboner/2841832在存储器内部,未加电池保护的写缓存是 write through cache. 若存储设备有额外电源保护,则可使用 write back cache. 但是这是存储器(盘/HBA卡/RAID卡)的板载内存 cache,并非计算机主存。
关于闪存盘的『缓存』,本质上是使用存储 cell 『模拟』 SLC. 每个存储 cell 都是一个电容器和电压表的联合,所谓模拟 SLC 本质上是使用此 cell 的方式为 ── 设定 cell 的电压 threshold 超过则为 1 低于则为 0。本质上这块 SLC 还是 MLC/TLC/QLC,只是之前 2/3/4 个电压等级变成了 1 个电压等级。『模拟』SLC 快是因为这部分模拟 SLC 不需要更复杂的纠错算法即可读出正确的数据。
再说到闪存盘的真正的缓存(DRAM),很多消费级盘是没有 DRAM 的 (dram-less). 他们只是写起来更慢,读取速度不会有差别(同等 flash 的前提下)。