1、1. CPU 执行一段程序时, cache 完成存取的次数为 1900 次,主存完成存取的次数为 100次,已知 cache 存取周期为 50ns,主存存取周期为 250ns,求1 cache 的命中率;2 cache主存系统的效率;3 平均访问时间。 解:(1)命中率 95.0)19/(10)( mCNH(2)平均访问时间:nsnsTTca 62).(5.)1( (3)访问效率 %38106/ eac2有一个 cache 的容量为 2K 字,每块为 16 字,问: 。(1)该 cache 可容纳多少个块 ?(2)如果主存的容量是 256K 字,则有多少个块 ?(3)主存的地址有多少位? ca
2、che 的地址有多少位?(4)在直接映射方式下,主存中的第 i 块映射到 cache 中哪一个块?解:(1)cache 的容量为 2K 字,每块为 16 字,则 cache 中有 204816=128 块(2)如果主存的容量是 256K 字,则有 256 1 02416=16384 个块。(3)因为主存的容量是 256K=218 字,所以主存的地址有 18 位。cache 的容量为 2K字,所以 cache 的地址有 11 位。 ,(4)在直接映射方式下,主存中的第 i 块映射到 cache 中第 I mod l28 个块中。3一个虚拟存储器有 8 个页面,页面大小为 1 024 字,内存有
3、4 个页面框架,页面的内容为:虚页号 0 1 2 3 4 5 6 7 实页号 3 1 - - 2 - 0 -(1)以下哪些虚拟地址将引起页面失效?(2)对应以下虚拟地址的主存地址是什么?(a)0 (b)3728 (c)1023 (d)1024 (e)1025 (f)7800 (g)4096解:题中所给地址对应的主存页面、页内地址、页面失效情况如表所示。因为页面大小为 1 024 字,内存有 4 个页面框架,所以内存地址格式为:11 10 9页面 页内地址实页面为 0、页内地址 0 的虚拟地址所对应的主存地址是:00 0000000000=000H实页面为 0、页内地址 1023 的虚拟地址所对
4、应的主存地址是:00 1111111111=3FFH实页面为 1、页内地址 0 的虚拟地址所对应的主存地址是:01 0000000000=400H实页面为 1、页内地址 1023 的虚拟地址所对应的主存地址是:01 1111111111=7FFH实页面为 2、页内地址 0 的虚拟地址所对应的主存地址是:10 0000000000=800H实页面为 2、页内地址 1023 的虚拟地址所对应的主存地址是:10 1111111111=BFFH实页面为 3、页内地址 0 的虚拟地址所对应的主存地址是:11 0000000000=C00H实页面为 3、页内地址 1023 的虚拟地址所对应的主存地址是:1
5、1 1111111111=FFFH实页面为 1、页内地址 1 的虚拟地址所对应的主存地址是:01 0000000001=401H虚页号 0 1 2 3 4 5 6 7 实页号 3 1 - - 2 - 0 -地址 虚页面 实页面 页内地址 主存地址 实访问情况0 0 3 0 C00H 有效3728(E90H) 3 - 656(290H) - 页面失效1023(3FFH) 0 3 1023 FFFH 有效1024(400H) 1 1 0 400H 有效1025(401H) 1 1 1 401H 有效7800(1E78H) 7 - 632(278H) - 页面失效4096(1000H) 4 2 0
6、800H 有效5 设 主 存 容 量 4MB, 虚 存 容 量 1GB, 页 面 大 小 为 4KB。(1)写 出 主 存 地 址 格 式 。(2)写 出 虚 拟 地 址 格 式 。(3)页 表 长 度 为 多 少 ?解:(1)主存地址格式为:21 12 11 0页号(10 位) 页内地址(12 位)(2)虚拟地址格式为:29 12 11 0页面号(18 位) 页内地址(12 位)(3)页表长度为 。K256183设某计算机的 cache 采用 4 路组相联映像,己知 cache 容量为 16KB, ;主存容量为2MB,每个字块有 8 个字,每个字有 32 位。请回答:(1)主存地址为多少位(
7、按字节编址 ),各字段如何划分(各需多少位)?(2)设 cache 起始为空,CPU 从主存单元 0,1,100。依次读出 101 个字(主存次读出一个字),并重复按此次序数读 11 次,问命中率为多少?(3)若 cache 速度是主存的 5 倍,问采用 cache 与无 cache 比较速度提高多少倍?解:(1)主存容量为 2MB,技字节编址,所以主存地址为 21 位。每个字块有 8 个字,每个字有 32 位(4 个字节) ,所以字块的大小为 8*4=32 个字节,需要 5 位地址;cache 采用 4 路组相联映像,所以组内块号需要 2 位地址;cache 容量为 16KB=214B,每个
8、组有 4 路 32B=27B, 214B2 7B=27,所以组号地址为7 位;主存害量为 2MB=221B,2 21B2 14B=27,所以主存高位地址为 7 位;共地址格式如下:(2)由于每个字块有 8 个字,所以 CPU 的 0,1,100 字单元分别在字块 0字块1l 和字块 12 中,采用 4 路组相联映像将分别映像到第 0 组第 12 组中,但 cache 起始为空,所以第一次读时没命中,但后面 10 次可以命中。 所以:命中率:1011=91(3)设 cache 将所有数据读一次的访存时间为 T,则主存的时间为 5T。有 cache 则访存时间:10T+5T=15T无 cache 则访存时间:11 5T所以:速度提高倍数=5515=367 倍