文章

36

粉丝

0

获赞

0

访问

3.7k

头像
2010年计算机学科专业基础综合试题 - 第44题回答
计算机组成原理
发布于2025年9月19日 21:50
阅读数 95

1. 地址共有$8 \times (64B \times 8b/B + 19 + 1 + 0 + 0)b = 4256b$

   元素逐个进行解读——$8 \times$这个是Cache行数,$64B \times 8b/B$是单个Cache块大小,$19$是标记位宽度,$1$为有效位,题目说了不考虑一致性维护位和替换算法位,所以两个都占位$0$

2. 按行优先存放,则

   ```a[0][31]``` = $320 + (0 \times 256 + 31) \times 4= 320 + 124 = 444$

   ```a[1][1]``` = $320 + (1 \times 256 + 11) \times 4 = 320 + 1024 + 4 = 1344$

   转换成二进制,则

   ```a[0][31]```:```0001 1011 1100```,```a[1][1]```:```0101 0100 0000```,

   然后取中间3位就好(看结构图),得知```a[0][31]```对应行号为$6$,```a[1][1]```对应行号为$5$

   当然还有一种方法,比这个简洁

   ```a[0][31]```对应$(320 + 31 \times 4) / 64 = 6$,```a[1][1]```对应$(320 + 256 \times 4 + 1 \times 4) / 64 \% 8 = 5$

   原理就是$物理地址 / 块大小 = 内存块号 \dots 块内地址$,$内存块号 / 行数 = 标记 \dots 行号$

3. 程序A:按行读取

   每个字块存放$\frac{64B}{4B} = 16$个int型数据。第一次访问Cache块的时候会有缺失,其余15个均能命中,则程序A的命中率为$\frac{15}{16} = 93.75\%$

   程序B:按列读取

   因为数...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发