这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 有没有人熟悉ATA硬盘的write cache

共3条 1/1 1 跳转至

有没有人熟悉ATA硬盘的write cache

菜鸟
2006-08-19 00:45:27     打赏
硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读
取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取
下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速
度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;

二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然
后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进
行读取或写入的时候)时再将缓存中的数据写入到盘片上。
<<<<<<<<<<<<<<<<<<<<<<<<请问硬盘里面的firmware会在空闲的时候自动进行这种所谓的写入到盘片的操作么?还是需要主机发一个flush 
write cache的ATA命令来触发这种操作?<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数
据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存
区域,等到下次启动时再将这些数据写入目的地;
第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一
些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。



关键词: 没有人     熟悉     硬盘     write     cache     缓存         

菜鸟
2006-09-05 23:14:00     打赏
2楼
自己顶

菜鸟
2006-09-13 19:28:00     打赏
3楼


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]