某机字长 32 位, 主存容量 32MB, 按字节编址; 该机的 Cache 采用 4 路组相联映射方式, Cache 容量为16KB, 块长为 4 个字, 试回答下列问题。
主存地址位数为多少?
主存按字节编址, 容量为 32MB=225 B, 故主存地址位数为 25。
画出主存地址格式示意图, 注明各字段名称及位数。
主存字长 32 位, 按字节编址, 块长为 4 个字, 即 4 字×4B/ 字=16B=24 B, 故字块内地址需 4 位;Cache 采用四路组相联映射, 故每组容量为 16B×4=64B, Cache 共分 16kB/ 64B=256=28组, 故组地址需 8位; 主存字块标记位数为 25-4-8=13 位。
主存地址格式如下表所示:
| 主存字块标记(13位) | 组地址(8位) | 字块内地址(4位) |
设该 Cache 的命中率为 98%, 如果 Cache 的速度是主存的 5 倍, 则该机采用 Cache 时存储系统的速度是不采用 Cache 时的多少倍(设 CPU 访存时同时访问 Cache 和主存, 若 Cache 命中则中断主存访问) ?
设 Cache 访问时间为 t, 则主存访问时间为 5t, 采用 Cache 时存储系统的平均访问时间: T=t×0. 98+5t×(1-0. 98) =1. 08t; 故采用 Cache 存储系统的速度是不采用 Cache 时的 5/ 1. 08≈4. 6 倍。