折叠 编辑来自本段 工作原理
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接360百科读取内存的时间,也使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和主存储器DR黑片AM(Dynamic RAM)之间的规模较小的但速度很高的存储器,通常由S随是打RAM(静态随机存储器)组成。用来存放那些被CPU频繁使用的数据,以便使CPU不必依赖于速度较慢的DRAM(动态随机存储器)。L2高速缓存一直都属于速度极快而价格也相当昂贵的一类内存,称为SRAM(静态RAM),S浓式项兵况活那存孩帮RAM(Static R她完抗响威于AM)是静态存储器的英文缩写。毛屋乐既合比着称由于SRAM采用了与制作CPU相同的半导体工艺,因此与动态存储器DRAM比较,SRAM的存取按土易检过赵物笔它速度快,但体积较大,价阳讨春上减低谁队垂格很高。