我们首先假设一个存储器结构,CPU,L1高速缓存,主存。
一个存储器地址有m位,形成个不同的地址。高速缓存可组织成个高速缓存组的数组。每个组包含E个高速缓存行,每一个行由字节的数据块构成。有效位代表本行是否有意义。m位的地址可以被分为 t位(标记),s位(组索引),b位(块偏移)。
高速缓存的结构用元组表示,大小。
当一条加载指令指示CPU从主存地址A读出一个字时,假设L1高速缓存包含地址A处那个字的副本,高速缓存的结果使得它能通过检查地址位寻找到请求的字。类似于简单的哈希表。
地址A被参数S和B分为三个字段。A中的s个组索引位是S个组的数组索引。组索引位是一个无符号整数,它告诉我们这个字存储在哪一个组内。t个标记位告诉我们组内的哪一行包含着这个字,该行需设置有效位,而后b个块偏移位告诉我们在B个字节的数据块的字偏移。
简而言之,A地址的s位确定组,t位确定行,b确定该行的哪一位。