平均访存时间计算
计算三种方式的平均访存时间。
最通用的计算公式:平均访存时间=命中时间+不命中率*不命中开销
-
直接映像的平均访存时间=
( 命 中 需 要 的 时 钟 周 期 + 直 接 映 像 的 失 效 率 ∗ 直 接 映 像 失 效 的 时 钟 周 期 ) ∗ 时 钟 周 期 长 度 (命中需要的时钟周期+直接映像的失效率*直接映像失效的时钟周期)*时钟周期长度 (命中需要的时钟周期+直接映像的失效率∗直接映像失效的时钟周期)∗时钟周期长度 -
2路组相联映像的平均访存时间=
( 命 中 需 要 的 时 钟 周 期 + 组 相 联 的 失 效 率 ∗ 组 相 联 失 效 的 时 钟 周 期 ) ∗ ( 1 + 组 相 联 增 加 损 耗 的 比 例 ) ∗ 时 钟 周 期 长 度 (命中需要的时钟周期+组相联的失效率*组相联失效的时钟周期)*(1+组相联增加损耗的比例)*时钟周期长度 (命中需要的时钟周期+组相联的失效率∗组相联失效的时钟周期)∗(1+组相联增加损耗的比例)∗时钟周期长度 -
伪相联映像的平均访存时间=
( 命 中 需 要 的 时 钟 周 期 + ( 直 接 映 像 的 失 效 率 − 组 相 联 的 失 效 率 ) ∗ 伪 相 联 额 外 增 加 的 时 钟 周 期 + 组 相 联 的 失 效 率 ∗ 组 相 联 失 效 的 时 钟 周 期 ) ∗ 时 钟 周 期 长 度 (命中需要的时钟周期+(直接映像的失效率-组相联的失效率)*伪相联额外增加的时钟周期+组相联的失效率*组相联失效的时钟周期)*时钟周期长度 (命中需要的时钟周期+(直接映像的失效率−组相联的失效率)∗伪相联额外增加的时钟周期+组相联的失效率∗组相联失效的时钟周期)∗时钟周期长度
Cache的CPU时间
直接映像的CPU时间=
指
令
数
量
∗
(
C
P
I
+
平
均
每
条
指
令
访
存
次
数
∗
直
接
映
像
失
效
率
∗
直
接
映
像
失
效
时
钟
周
期
)
∗
时
钟
周
期
长
度
指令数量*(CPI+平均每条指令访存次数*直接映像失效率*直接映像失效时钟周期)*时钟周期长度
指令数量∗(CPI+平均每条指令访存次数∗直接映像失效率∗直接映像失效时钟周期)∗时钟周期长度
二路组相联的CPU时间=
指
令
数
量
∗
(
C
P
I
+
平
均
每
条
指
令
访
存
次
数
∗
组
相
联
失
效
率
∗
组
相
联
失
效
时
钟
周
期
)
∗
(
(
1
+
组
相
联
增
加
的
损
耗
比
例
)
∗
时
钟
周
期
长
度
)
指令数量*(CPI+平均每条指令访存次数*组相联失效率*组相联失效时钟周期)*((1+组相联增加的损耗比例)*时钟周期长度)
指令数量∗(CPI+平均每条指令访存次数∗组相联失效率∗组相联失效时钟周期)∗((1+组相联增加的损耗比例)∗时钟周期长度)
伪相联映像的CPU时间=
指
令
数
量
∗
(
C
P
I
+
平
均
每
条
指
令
访
存
次
数
∗
(
直
接
映
像
失
效
率
−
组
相
联
失
效
率
)
∗
伪
相
联
额
外
增
加
的
时
钟
周
期
+
平
均
每
条
指
令
访
存
次
数
∗
组
相
联
的
失
效
率
∗
组
相
联
失
效
的
时
钟
周
期
)
∗
时
钟
周
期
长
度
指令数量*(CPI+平均每条指令访存次数*(直接映像失效率-组相联失效率)*伪相联额外增加的时钟周期+平均每条指令访存次数*组相联的失效率*组相联失效的时钟周期)*时钟周期长度
指令数量∗(CPI+平均每条指令访存次数∗(直接映像失效率−组相联失效率)∗伪相联额外增加的时钟周期+平均每条指令访存次数∗组相联的失效率∗组相联失效的时钟周期)∗时钟周期长度
例题:
(1) 理想 Cache(命中率为 100%)情况下的 CPI 为 2.0,时钟周期为 2ns,平均每条指令访存 1.2 次;
(2) 直接映像、2 路组相联映像、伪相联映像这三种 Cache 的容量均为 32 KB,块大小都是 32 字节;
(3) 组相联映像 Cache 中的多路选择器使 CPU 的时钟周期增加了 10%;
(4) 这三种 Cache 的失效开销都是 40 个时钟周期;
(5) 命中时间为 1 个时钟周期;
(6) 32 KB 直接映象 Cache 的失效率为 2%,32 KB 两路组相联映像 Cache 的失效率为1.8%;
(7) 对于伪相联映像 cache,若按直接映像找到(即正常命中)的位置处没有发现匹配时,而在另外一个位置才找到(即伪命中)数据需要 2 个额外的周期;
(8)假设指令条数为 100 条,CPU 的主频是 500MHz。
试计算回答下列问题:(注:结果保留 2 位小数。)
(1)( 6 分) 直接映象、2 路组相联映像、伪相联映像 Cache 的平均访问时间分别是多
少纳秒(ns)?
解:
套公式即可: