当我只有一个缓存时,我可以计算罚款。但是我不确定当出现两个并行访问的L1缓存(一个用于数据,另一个用于指令)时该怎么办。我也不确定在收到时钟周期而不是诸如ns之类的实际时间时该怎么办。
如何使用这些新参数计算平均未命中罚款?
我是否只使用两次公式,然后平均未命中罚款,还是还有更多呢?
AMAT = hit time + miss rate * miss penalty
例如,我具有以下值:
AMAT = 4 clock cycles
L1 data access = 2 clock cycle (also hit time)
L1 instruction access = 2 clock cycle (also hit time)
60% of instructions are loads and stores
L1 instruction miss rate = 1%
L1 data miss rate = 3%
这些值如何适合AMAT?
最佳答案
我的观察方式是,由于L1指令高速缓存和L1数据高速缓存是并行访问的,因此您应该计算指令的AMAT和数据的AMAT,然后将最大值作为最终的AMAT。
在您的示例中,由于数据未命中率高于指令未命中率,因此您可以考虑在CPU等待数据期间,它解决了指令高速缓存中的所有未命中问题。
如果度量单位是周期,则您将其做为纳秒。如果知道处理器的频率,则可以以纳秒为单位转换回AMAT。
关于performance - 从AMAT查找平均罚款,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34115363/