在讨论固态硬盘时经常会听到"无缓存方案"一词,缺少了DRAM缓存的固态硬盘还能正常工作吗?会不会因为少了缓存而短命?
所有硬盘都有缓存:
顾名思义,缓存是用来暂存数据的。不过机械硬盘和固态硬盘的缓存作用略有差异,后者当中的缓存除了缓冲用户读写的数据之外,更多地是为了存储名为FTL的闪存映射表,以便让闪存构成的固态硬盘能像磁盘一样工作。
基于以上的原理,固态硬盘不可能完全没有缓存。东芝TR200这类DRAM-Less固态硬盘会在主控内集成一定容量的SRAM缓存来代替独立的DRAM缓存芯片。
通过SRAM缓存优化SSD性能:
不同DRAM-Less固态硬盘的SRAM缓存容量或许会不同,对于TR200来说它拥有32MB的主控内缓存。4K随机读取速度达到45MB/s以上,不逊色于传统独立DRAM缓存固态硬盘。
大家都知道闪存的写入速度比读取要慢,而在上图TxBench测试中可以看到,无论是128KB的大区块还是4KB的零碎数据,随机(Random)写入与顺序(Sequential)写入的数值都差不多。这是因为东芝在TR200的固件中设计了合并写入,不同程序产生的零碎写入会被整合为能够发挥多通道并发优势的形式写入:
以东芝64层堆叠技术的BiCS3闪存为例,它的一个Page页面容量为16KB,在绑定多通道并发工作(类似RAID0,但是安全有保障)后,小的、零碎的写入请求都会在SRAM缓存中预先整合为类似大块并发写入。
经过优化后TR200的随机写入性能上升了,闪存磨损也被控制在一个更低的水平。
NVMe协议给出了更优的解决方案:
同主控内置SRAM缓存相比,专为闪存而生的NVMe协议还给出了更好的方案——HMB主机内存缓冲。该功能就出现在了东芝的迷你单芯片NVMe固态硬盘RC100当中。
东芝将主控和BiCS闪存融合封装为一体,缓存则通过HMB共享主机内存来满足。
而且RC100通过HMB共享的内存容量也并不高,只有38MB但却已经够用了。
,