工作原理
快取的工作原理是当CPU要读取一个资料时,首先从快取中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从记忆体中读取并送给CPU处理,同时把这个资料所在的资料块调入快取中,可以使得以后对整块资料的读取都从快取中进行,不必再调用记忆体。
正是这样的读取机製使CPU读取快取的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的资料90%都在快取中,只有大约10%需要从记忆体读取。这大大节省了CPU直接读取记忆体的时间,也使CPU读取资料时基本无需等待。总的来说,CPU读取资料的顺序是先快取后记忆体。 最早先的CPU快取是个整体的,而且容量很低,英特尔公司从Pentium时代开始把快取进行了分类。当时集成在CPU核心中的快取已不足以满足CPU的需求,而製造工艺上的限製又不能大幅度提高快取的容量。因此出现了集成在与CPU同一块电路板上或主机板上的快取,此时就把 CPU核心集成的快取称为一级快取,而外部的称为二级快取。一级快取中还分资料快取(Data Cache,D-Cache)和指令快取(Instruction Cache,I-Cache)。二者分别用来存放资料和执行这些资料的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的沖突,提高了处理器效能。
快取的利用率
概述
CPU在快取中找到有用的资料被称为命中,当快取中没有CPU所需的资料时(这时称为未命中),CPU才访问记忆体。从理论上讲,在一颗拥有二级快取的CPU中,读取一级快取的命中率为80%。也就是说CPU一级快取中找到的有用资料佔资料总量的80%,剩下的20%从二级快取中读取。由于不能準确预测将要执行的资料,读取二级快取的命中率也在80%左右(从二级快取读到有用的资料佔总资料的16%)。那麽还有的资料就不得不从记忆体调用,但这已经是一个相当小的比例了。较高端的CPU中,还会带有三级快取,它是为读取二级快取后未命中的资料设计的-种快取,在拥有三级快取的CPU中,只有约5%的资料需要从记忆体中调用,这进一步提高了CPU的效率。
为了保证CPU访问时有较高的命中率,快取中的内容应该按一定的演算法替换。一种较常用的演算法是最近最少使用演算法(LRU演算法),它是将固定时间内最少被访问过的行淘汰出局。因此需要为每行设定一个计数器,LRU演算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的资料行出局。这是一种高效、科学的演算法,其计数器清零过程可以把一些频繁调用后再不需要的资料淘汰出快取,提高快取的利用率。
二级快取展示 二级快取处理器快取
所谓处理器快取,通常指的是二级高速快取,或外部高速快取。即高速缓沖存储器,是位于CPU和主存储器DRAM(Dynamic RAM)之间的规模较小的但速度很高的存储器,通常由SRAM(静态随机存储器)组成。用来存放那些被CPU频繁使用的资料,以便使CPU不必依赖于速度较慢的DRAM(动态随机存储器)。L2高速快取一直都属于速度极快而价格也相当昂贵的一类记忆体,称为SRAM(静态RAM),SRAM(Static RAM)是静态存储器的英文缩写。由于SRAM採用了与製作CPU相同的半导体工艺,因此与动态存储器DRAM比较,SRAM的存取速度快,但体积较大,价格很高。
二级快取 AMD FX 8150CPU拥有8M二级快取品牌差异
实际上,Intel和AMD处理器在一级快取的逻辑结构设计上有所不同,所以二级快取对CPU性能的影响也不尽相同。因为CPU读取的资料(包括指令)中有80%的资料来自一级快取,所以一级快取的逻辑结构决定了CPU二级快取容量对CPU性能的影响。Intel的Pentium 4及Celeron系列处理器的一级资料快取被称为资料代码指令追蹤(读写)快取;AMD的Athlon 64/Athlon XP/Sempron/Duron系列处理器 的一级资料快取叫作实资料读写快取。


















