论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1571阅读
  • 1回复

硬盘缓存解析 [复制链接]

上一主题 下一主题
离线CJ666
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2008-06-07 18:34:25



缓存英文名为Cache,它也是内存的一种,其数据交换速度快且运算频率高。 硬盘的缓存是硬盘与外部总线交换数据的场所。硬盘的读数据的过程是将磁信号转化为电信号后,通过缓存一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,可见,缓存的作用是相当重要的。根据写入方式的不同,有写通式和回写式两种。写通式在读硬盘数据时,系统先检查请求指令,看看所要的数据是否在缓存中,如果在的话就由缓存送出响应的数据,这个过程称为命中。这样系统就不必访问硬盘中的数据,由于SDRAM的速度比磁介质快很多,因此也就加快了数据传输的速度。回写式就是在写入硬盘数据时也在缓存中找,如果找到就由缓存就数据写入盘中,现在的多数硬盘都是采用的回写式硬盘,这样就大大提高了性能。

  硬盘在控制器上的一块内存芯片,其类型一般以SDRAM为主,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。在接口技术已经发展到一个相对成熟的阶段的时候,缓存的大小与速度是直接关系到硬盘的传输速度的重要因素。目前主流硬盘的缓存主要有2MB和8MB等几种,最大的台式机缓存容量已经提升到16M。而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了16MB、64MB等。
硬盘的缓存主要起三种作用:

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

  二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地。

  三是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。缓存就像是一台计算机的内存一样,在硬盘读写数据时,负责数据的存储、寄放等功能。这样一来,不仅可以大大减少数据读写的时间以提高硬盘的使用效率。同时利用缓存还可以让硬盘减少频繁的读写,让硬盘更加安静,更加省电。更大的硬盘缓存,你将读取游戏时更快,拷贝文件时候更快,在系统启动中更为领先……
离线黑白分明
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 沙发  发表于: 2008-06-08 13:26:51
一直觉得能解决问题就好了,没有仔细学习过,了解下了,谢谢