深入解析缓存技术:原理、设计与性能优化
1. 缓存内存原理
缓存内存旨在结合昂贵高速内存的快速访问时间和廉价低速内存的大容量优势。其基本概念是,存在一个相对大且慢的主内存,以及一个较小、较快的缓存内存,缓存中包含主内存部分内容的副本。
当处理器尝试读取一个内存字时,会先检查该字是否在缓存中。若在,则直接将其提供给处理器;若不在,则从主内存读取包含该字的一个固定大小的块到缓存,再将该字提供给处理器。由于引用局部性现象,当为满足一次内存引用而将一个数据块取到缓存时,未来很可能会再次引用该内存位置或该块中的其他字。
缓存可以有多个级别,如L2缓存通常比L1缓存慢且大,L3缓存又比L2缓存慢且大。
缓存/主内存系统的结构方面,主内存最多由$2^n$个可寻址字组成,每个字有唯一的$n$位地址。为了映射,主内存被视为由多个固定长度、每个包含$K$个字的块组成,即主内存中有$M = 2^n/K$个块。缓存由$m$个块(称为行)组成,每行包含$K$个字以及几个位的标签,还包括控制位(如指示该行自加载到缓存后是否被修改的位)。行的长度(不包括标签和控制位)就是行大小,行大小最小可为32位,此时每个“字”为一个字节,行大小为4字节。缓存中的行数远少于主内存中的块数($m < M$)。
读取操作时,处理器生成要读取的字的读取地址(RA)。若该字在缓存中,就将其提供给处理器;否则,将包含该字的块加载到缓存,再将该字提供给处理器。在典型的当代缓存组织中,这两个操作可并行进行。当发生缓存命中时,数据和地址缓冲区禁用,仅处理器和缓存之间进行通信,无系统总线流量;当发生缓存未命中时,将所需地址加载到系统总线上,数据通过数据缓冲区返回给缓存和处理器。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



