Cache减少失效开销例题:(请求字处理)

题目内容

假设一台计算机具有64个字节的Cache块,采用请求字优先时,Cache需要7个时钟周期取8字节的请求字,剩余的块中每8个字节需要1个时钟周期进行读取。没有采用请求字优先时,取第一个8字节需要8个周期,剩余的块中每8个字节需要1个时钟周期进行读取。
(1)假设在一个块取完之前没有其他访存请求,计算两种情况下的平均失效开销。
(2)Opteron每次流出两条Load指令,每条指令需4个周期流出,假设后续指令将要读取当前装载数据剩余块中的8个字节,比较两种情况下的平均失效开销。

题目分析

(1)在不采用请求字处理技术的情况下,平均失效开销为

8+7×1=15(时钟周期)

采用请求字处理技术后,平均失效开销为

7(时钟周期)

这里之所以只需要7个时钟周期,是因为CPU将请求字调入只需要7个周期,而将块中其他内容调入Cache并不算入失效开销中
由此可以看出采用了请求字处理技术后Cache的平均失效开销明显下降。
(2)出于便于理解的角度,首先分析采用请求字优先的情况。
采用请求字优先时,CPU只需要取出请求字后即可继续进行其他工作。本题中,如果采用请求字技术,那么CPU在一条指令中只需要读出请求字之后就可以进行另一条指令的流出(但是不能进行另外一条指令的读访存操作)。
因此,本题中如果采用请求字优先技术,那么CPU每次接收到第一条Load指令的请求字,即可对第二条Load指令进行流出操作。第二条指令的流出操作时间段于第一条Load指令读取块中剩余内容的时间重叠,因此在指令很多的情况下相当于可以省略每条指令读指令的4个周期。
在请求字优先的条件下,执行完一条LOAD指令的时间为:

7+7×1=14(时钟周期)

在不采用请求字优先的情况下,执行一条LOAD指令的时间为:

8+7×1+4=19(时钟周期)

可以看出,通过采用请求字优先技术,使得平均失效开销为不采用前的14/19。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值