冯诺依曼体系结构及三级缓存

Posted 蚍蜉撼树谈何易

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冯诺依曼体系结构及三级缓存相关的知识,希望对你有一定的参考价值。

冯诺依曼体系结构
在这里插入图片描述

在这里插入图片描述

这里解释一下什么是局部性原理:
局部性原理可分为时间局部性与空间局部性。
时间局部性:如果在某一点时访问了存储器的特定位置,则很可能在不久的将来将再次访问相同的位置。在对相同存储器位置的相邻访问之间存在时间接近性。
空间局部性:意思是假如要多次访问某一位置语句,则此时cache便认为它附近的语句有可能在将来也会被使用,此时它就会把该位置附近的位置也加入到cache中。

三级缓存与高速缓存(cache)
首先必须明确三级缓存均属于高速缓存
一级缓存:一级缓存通常设置在cpu内部,但是比起寄存器来说还是远一点,因为其放在cpu内部,所以它的空间是很小的,通常为8-16k
二级缓存:二级缓存在CPU之外,因为主板上的空间很大,所以二级缓存比一级缓存大得多,大概是256KB-1MB左右,但是它的速度慢,因为它离CPU比较远。二级缓存通常用作一级缓存与内存的交换空间
三级缓存:其空间更大,但是相应的离cpu也越来越远。
所以从远及近看 CPU〈------〉寄存器〈----》缓存《-----》内存。
缓存中的数据是可以提升的?
比如初始情况下,一个数据位于三级缓存中,但是因为经常使用,所以它会被提升到二级缓存甚至一级缓存,这块很好理解,经常用cpu就让该数据离它更近点。
为了保证CPU访问时有较高的命中率,Cache中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache,提高Cache的利用率。
LRU为操作系统中提供的算法。

以上是关于冯诺依曼体系结构及三级缓存的主要内容,如果未能解决你的问题,请参考以下文章

[linux] 冯诺依曼体系及操作系统的概念

冯诺依曼结构

Linux 系统编程 -进程概念篇

[linux] 冯诺依曼体系及操作系统的概念

Linux冯诺依曼体系结构

Linux冯诺依曼体系结构