海战先锋驱逐舰用法:为什么缓存可以加快硬盘的读写速度呢 ?

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 15:44:04
请大家注意,我说的不是硬盘内部的缓存...说的是操作系统分配给出硬盘的缓存! 这个速度之差,最明显的是在DOS下的SMARTDRV...设置增加缓存和没设置缓存的效果简直就一个天一个地!!!

但我真的很不明白这是为什么...我的思路是:

物理盘片-->硬盘集成的缓存-->DMA控制电路-->系统缓存-->内存-->CPU

为什么会比

物理盘片-->硬盘集成的缓存-->DMA控制电路-->内存-->CPU

快得多呢? 难道"DMA控制电路-->系统缓存"这个过程的处理时间为负的!?

真的很不明白...

MichaelMagic 说得有点道理, 但我还是有一个问题:你说"如果每次读的数据都是新鲜的, 它不会快"但事实好像不是这样呀...比如说,在DOS下复制文件的时候,这时的情况应该每次读写的都是新鲜的数据了吧,但也明显要快上很多呀...MichaelMagic能再解释一下吗?

那个原理其实很简单,操作系统为硬盘划出缓存是在内存中建立的,内存的速度比硬盘的速度快很多,而且它的原理也和CPU内存的L1 cache和L2 cache能提高CPU的处理速度是一样的.
系统要读数据首先是在CPU的L1查找,再到L2,然后寻找内存,如果找不到才访问硬盘等外部存储器,CPU是不能直接访问硬盘等外存的.磁盘写入缓存也类似于这个道理,只不过不会立即将数据写入硬盘等设备.
在DOS下面就是,完全是直接在CPU和硬盘之间交换数据,而又不能直接通过内存缓冲,所以速度非常慢.