关于缓存内存大小——获取块的数量 size 和 number words per block
About cache memory size - Getting the number of blocks out of the size and number words per block
这是 Stallings 的《计算机组织与体系结构》一书中的示例
- 缓存可以容纳 64 KB
- 数据在主内存和高速缓存之间以每个 4 字节的块为单位进行传输。这意味着缓存被组织为 16K = 2^14 行,每行 4 字节 *.
- 主存有16M。那是 2^24 个单词。所以 4M 块 4 字节。
我的困惑在第二点。据说每个块有 4 个字节,即 4 个 8 位字,所以一个块是 32 位 = 2^5。现在我想获取缓存中的块数。为此,我将缓存的大小除以一个块的大小,即 2^16(64K)/2^5(4bytes) = 2^11 行,每行 4 字节,但答案是 2^14。我究竟做错了什么?谢谢!
它是 64K 字节,所以它将是 2^16 字节。
你必须把它变成位,所以它将是 (2^16 * 2^3 位) / 2^5 位 = 2^14
这是 Stallings 的《计算机组织与体系结构》一书中的示例
- 缓存可以容纳 64 KB
- 数据在主内存和高速缓存之间以每个 4 字节的块为单位进行传输。这意味着缓存被组织为 16K = 2^14 行,每行 4 字节 *.
- 主存有16M。那是 2^24 个单词。所以 4M 块 4 字节。
我的困惑在第二点。据说每个块有 4 个字节,即 4 个 8 位字,所以一个块是 32 位 = 2^5。现在我想获取缓存中的块数。为此,我将缓存的大小除以一个块的大小,即 2^16(64K)/2^5(4bytes) = 2^11 行,每行 4 字节,但答案是 2^14。我究竟做错了什么?谢谢!
它是 64K 字节,所以它将是 2^16 字节。
你必须把它变成位,所以它将是 (2^16 * 2^3 位) / 2^5 位 = 2^14