一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;
缓存图示 二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地。
第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。[1]
硬盘的速度一直是制约整个硬件平台性能提升的瓶颈,无论处理器再快,显卡的性能再强,如果没有足够多的数据从硬盘中提取出来用于计算也是没有意义的,所以现在才推出了固态硬盘,主要是读取速度加快了很多,机械硬盘的缓存就是为了提高硬盘的性能,由于,机械硬盘无法再提升很大的读取速度了,因此利用缓存预先缓存数据是很有必要的。
游戏方面对硬盘要求比较高的就是大型的3D游戏,比如《魔兽世界》切换界面的时候需要“读条”加载游戏数据,大量玩家出现的屏幕上的时候因为数据读取的缓慢造成帧数的下降都是有的现象,对于应用软件方面,比如maya在做视频数据的渲染的时候,需要大量的读写操作,硬盘缓存也是很有必要的。
总之在购买硬盘的时候,建议尽可能购买一些缓存容量大一点的机械硬盘新能方面是多少有些提升的。