cache&命中率
cache(即高速缓冲存储器(cache Memory)。
它是一个相对于内存来说容量很小,速度贼快,用静态存储器实现的存储系统,解决内存跟不上CPU运算速度的问题。
为什么要设计cache
电脑的内存是以系统总线的时钟频率工作的,这个频率通常也就是CPU的外频(对于雷鸟、毒龙系列的处理器,由于在设计采用了DDR技术,CPU工作的外频为系统总线频率的两倍)。但是,CPU的工作频率(主频)是外频与倍频因子的乘积。这样一来,内存的工作频率就远低于CPU的工作频率了。这样造成的直接结果是:CPU在执行完一条指令后,常常需要“等待”一些时间才能再次访问内存,极大降了CPU工作效率。在这样一种情况下, cache就应运而生了!
cache是什么
cache是一种特殊的存储器,它由cache存储部件和cache控制部件组成。cache 存储部件一般采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而cache控制器部件包括主存地址寄存器、cache 地址寄存器,主存—cache地址变换部件及替换控制部件等。至于它们各自又是怎样工作的、有何作用等等,就没有必要做进一步的研究,知道一般 cache分为L1 cache(其中又分为数据cache、代码cache)、L2 cache就行。
cache是怎样工作的
我们知道,CPU运行程序是一条指令一条指令地执行的,而且指令地址往往是连续的,意思就是说CPU在访问内存时,在较短的一段时间内往往集中于某个局部,这时候可能会碰到一些需要反复调用的子程序。电脑在工作时,把这些活跃的子程序(数据或指令)存入比内存快得多的cache中。**CPU在访问内存时,首先判断所要访问的内容是否在cache中,如果在,就称为“命中”,此时CPU直接从cache中调用该内容;否则,就称为 “不命中”,CPU只好去内存中调用所需的子程序或指令了。**CPU不但可以直接从cache中读出内容,也可以直接往其中写入内容。由于cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。
影响cache命中率的因素
-
cache 的容量,大一些好。
-
cache 与主存储器每次交换信息的单位量(cache Line Size)适中。
-
cache 不同的组织方式,多路组相联更好。
-
cache 的多级组织可提高命中率。
-
cache 装满后的换字算法。
为什么不全用cache
- 价格因素。
- 电脑在执任务时,那种使用频率非常高的子程序或指令不是很多的,因此那些使用频率不太高的内容只须保存在速度相对较低的内存中即可。