认识缓存
Author: 阮开繁 Date: 2000年 第18期
所谓缓存(Cache)就是高速缓冲存储器,它位于CPU与主存(即DRAM动态存储器)之间,通常由SRAM(静态存储器)构成,它的容量较小但存取速度较快。目前计算机主要使用的内存为DRAM,它具有造价低、容量大的特点,受到广泛欢迎。但由于DRAM是使用电容特性来储存信息,存取速度难以进一步提高,而CPU每执行一条指令都要一次或多次访问主存,DRAM的速度又远小于CPU速度,因此为了实现速度上的匹配,只能在CPU指令周期中插入等待,这样将大大降低系统的执行效率。SRAM由于采用了与CPU同样的制作工艺,因此与DRAM相比,它的存取速度要快得多。但其体积大、功耗大、价格也高,不可能也不必要将所有内存都换成SRAM,因此,为了解决速度与成本的矛盾就产生了一种分级处理方法,即在主存与CPU之间加装一个容量较小的SRAM作为高速缓冲存储器,当使用缓存时,在缓存中就保存有主存部分内容的副本(即为存储器映像),CPU在读写数据时,首先访问缓存,由于缓存速度与CPU速度相当,所以CPU可以在零等待下完成指令执行,只有当缓存中没有CPU所需的数据时(这时称为“未命中”),CPU才去访问主存。CPU访问缓存的命中率在80%以上,从而大大提高了CPU访问数据的速度,提高了系统性能。
传统的Socket架构通常采用两级缓冲结构,即在CPU中集成一级缓存(L1 Cache),在主板上装第二级缓存(L2 Cache),而Slot 1架构的L2 Cache则与CPU做在同一块电路板上,以内核速度(CPU速度)或内核速度一半运行,速度比Socket架构的L2 Cache更快,能更大限度地发挥与高速CPU配合的优势,当然这对Cache的工艺要求也较高。CPU在执行指令时,首先在L1缓存中查找数据,如找不到,则在L2缓存中找,如找到则传输给CPU同时修改L1缓存的数据,若数据不在L1和L2缓存中,则从主存中提取数据同时修改两级缓存的数据。由此可见,缓存相当于一个临时的快速运输器、搬运工,它对于系统的运作有不可忽视的作用,所以选择有缓存和大容量缓存的CPU可提高我们计算机的工作效率,当然,价格也会很高。