Caching #直接映射缓存中集合的数目

Caching #直接映射缓存中集合的数目,caching,Caching,如果我有9个地址位,那么直接映射缓存中有多少组? 如果我有10个地址位,那么直接映射缓存中有多少组 这个问题有一个通用公式吗 对于直接映射,每个地址只映射到缓存中的一个位置,因此直接映射缓存中的集合数正好是缓存的大小 标记将有0位,并且您没有提供足够的信息来确定索引位或位移位 假设您使用的是单词寻址,并且您的意思是索引+标记有9或10位: 9位->2^9组 10位->2^10个集合好的,对于(a),先画8列——这些将是缓存中的集合 对于每个地址,检查地址(仅高位——忽略最低两位)是否位于由位2-

如果我有9个地址位,那么直接映射缓存中有多少组? 如果我有10个地址位,那么直接映射缓存中有多少组

这个问题有一个通用公式吗


对于直接映射,每个地址只映射到缓存中的一个位置,因此直接映射缓存中的集合数正好是缓存的大小

标记将有0位,并且您没有提供足够的信息来确定索引位或位移位

假设您使用的是单词寻址,并且您的意思是索引+标记有9或10位:

9位->2^9组

10位->2^10个集合

好的,对于(a),先画8列——这些将是缓存中的集合

对于每个地址,检查地址(仅高位——忽略最低两位)是否位于由位2-4编号的列底部。如果该列中没有写入任何内容,或者位2-10不匹配,则表示未命中。若第2-10位和你们当前在该列底部写的内容相匹配,那个么这是一个命中率,因为你们在缓存中有那个地址。无论是命中还是未命中,都要划掉列中的当前值,并在其中写入新地址


希望有帮助。

如果是直接映射,则块数将等于1

现在,您可以通过(缓存大小)/(块数)获得集合数


这里是(缓存大小)/1=缓存大小。

好的,我如何区分标记、索引和字节偏移量?字有多大,缓存有多大?我想这就是我的问题,没有指定任何一个。那么内存有多大?如果内存大于1024个字,您可能会假设缓存中有1024个字,因此设置了1024个。缓存的1024个字并不大,因此听起来是正确的——如果字是32位的,则只有4KB