使用cache可以提高计算机的运行速度,是因为?
- 提问者网友:两耳就是菩提
- 2021-04-25 05:05
- 五星知识达人网友:底特律间谍
- 2021-04-25 06:20
现在计算机系统中都采用高速 DRAM(动态RAM)芯片作为主存储器。早期的 CPU 速度比较慢,CPU与内存间的数据交换过程中,CPU处于等待状态的情况很多。以早期的8MHz的286为例,其时钟周期为125ns,而DRAM的存取时间一般为60~100ns。因此CPU与主存交换数据无须等待,这种情况称为零等待状态。所以CPU与内存直接打交道是完全不影响速度的。可是近年来CPU的时钟频率的发展速度远远超过了DRAM读写速度的进展。在短短几年内,CPU的时钟周期从100ns加速到几个ns,而DRAM经历了FPM,EDO,SDRAM几个发展阶段,速度只不过从几十ns提高到10ns左右,DRAM和CPU之间的速度差,使得CPU在存储器读写总线周期中必须插入等待周期;由于CPU与内存的频繁交换数据,这极大地影响了整个系统的性能。这使得存储器的存取速度已成为整个系统的瓶颈。当然,另一种方案是采用高速的静态 RAM(SRAM)作为主存储器与CPU匹配,问题是SRAM结构复杂,不仅体积大而且价格昂贵。因此,除了大力加快DRAM的存取速度之外,当前解决这个问题的最佳方案是采用Cache技术。Cache即高速缓冲存储器,它是位于CPU和DRAM主存之间的规模小的速度快的存储器,通常由SRAM组成。Cache的工作原理是保存CPU最常用数据;当Cache中保存着CPU要读写的数据时,CPU直接访问Cache。由于Cache的速度与CPU相当,CPU就能在零等待状态下迅速地实现数据存取。只有在Cache中不含有CPU所需的数据时CPU才去访问主存。Cache在CPU的读取期间依照优化命中原则淘汰和更新数据,可以把Cache看成是主存与CPU 之间的缓冲适配器,借助于Cache,可以高效地完成DRAM内存和CPU之间的速度匹配。
但是,片内Cache容量有限,在CPU内集成大量的SRAM会极大的降低CPU的成品率,增加CPU的成本。在这种情况下,采取的措施是在CPU芯片片内Cache与DRAM间再加Cache,称为片外二级 Cache(Secondary Cache)。片外二级Cache实际上是CPU与主存之间的真正缓冲。由于主板DRAM的响应时间远低于CPU的速度,如果没有片外二级Cache,就不可能达到CPU的理想速度。片外二级 Cache的容量通常比片内Cache大一个数量级以上。