而固态硬盘就有很大的不同了,首先闪存的读取比写入更快,这是MLC、TLC闪存天生决定的,压根不需要专门为读取做缓存。在ATTO测试结果中代表读取速度的灰色条总会比代表写入的红色条更长一些:
不过如果将测试区块调小到64KB,你可能会发现不一样的结果:红条长度首次超过了灰条,小于4KB的区块写入速度比读取速度还要快! 出现这种现象也很简单:固态硬盘对小于4KB的区块进行了缓存,将他们凑满4KB或16KB(1个Page页的大小)之后再合并写入,造成写入比读取更快的结果。闪存的最小写入单位是Page,固态硬盘通常使用4K作为页的逻辑大小,而闪存页的实际大小往往是16KB,只有512字节或1KB、2KB还不够一次写入的最小单位,所以将他们缓存起来合并写入是最明智的。 做小于4KB数据的缓存合并只需要很小的空间,固态硬盘对于DRAM缓存的需求并不是缓存数据,而是存储对固态硬盘至关重要的FTL闪存映射表:管理逻辑地址与闪存物理地址的映射关系。 随着技术的发展,DRAM缓存早已不是固态硬盘的必备组件。透过最新NVMe协议,固态硬盘可以调用主机内存的一小部分专用空间存储FTL映射表,实现精简增效。 在东芝推出的单芯片融合NVMe固态硬盘中,主控与闪存被封装为一体,而DRAM缓存则被NVMe协议的HMB功能所取代,缓存容量最终成为了历史。 最后值得一提的是,最近几年购买的硬盘,不管是机械硬盘还是固态硬盘,在新版检测软件中都是查不到缓存容量参数。比如CrystalDiskInfo检测2TB机械硬盘,HDTune中干脆将它的缓存标注为n/a(不存在)。其实,这是ATA标准的一个局限,当时设计时只预留到32MB的代码,而现在硬盘的容量全都超过了32MB,无法正确识别。机械硬盘的缓存:运气爆发可以提升读取通常来说,机械硬盘的读取和写入速度基本一样。但如果在ATTO测试中使用较小的测试区块(64K),你会发现读取的速度明显比写入更快,甚至会发生读取400MB/s以上现象:正常是不可能有这么快的。
在机械硬盘中,缓存主要发挥了加速读取的作用。如果一个数据刚刚被读取过,将临近它位置的数据保留在DRAM缓存中,就有机会被下一次读取命中——直接从DRAM缓存读出的速度远比从机械盘片读取快的多。 缓存命中意味着性能大幅提升,这就是机械硬盘缓存的主要作用。理论上大缓存的确有助于提升机械硬盘的读取性能,但是提升幅度是非常有限的:它对于最重要的随机读取速度没有帮助。 大缓存不一定意味着高性能,当前很多采用128M以上大缓存设计的机械硬盘采用了SMR叠瓦磁记录技术,增大缓存容量是为了降低SMR带来的性能衰减幅度。 以上就是分享的机械硬盘和固态硬盘缓存作用详解,总的来说,机械硬盘和固态硬盘的缓存作用大不相同。