当我有一个缓存时,我可以计算惩罚。但是当我看到两个并行访问的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?
答案 0 :(得分:2)
平均内存访问时间(AMAT)通常通过获取指令总数并将其除以服务内存请求所花费的总周期数来计算。
在Computer Architecture a Quantiative Approach, 5th edition AMAT的第B-17页,定义为:
平均内存访问时间=%指令x(命中时间+指令未命中率x未命中罚分)+%数据x(命中时间+数据未命中率x未命中惩罚)`。
正如您在此公式中所看到的,每个指令都计入单个内存访问,并且对数据进行操作的指令(加载/存储)构成额外的内存访问。
请注意,使用AMAT时会有许多简化说明,具体取决于您要执行的性能分析。我之前引用的同一本教科书指出:
总之,尽管在定义和测量方面是最先进的 无序处理器的内存档很复杂,请注意 问题因为它们会显着影响性能。复杂性 之所以出现,是因为乱序处理器容忍了一些延迟 缓存未命中而不会损害性能。因此,设计师 通常使用无序处理器和内存的模拟器 评估内存层次结构中的权衡以确保一个 有助于平均内存延迟实际上有所帮助的改进 计划表现。
我的观点是,在实践中,AMAT用于获得各种不同选项之间的近似比较。因此,总是使用简化的假设。但通常情况下,指令和数据的存储器访问被加在一起,以便在计算AMAT时获得总访问次数,而不是单独计算。
答案 1 :(得分:-1)
我看到它的方式,因为并行访问L1指令高速缓存和L1数据高速缓存,您应该为指令计算AMAT,为数据计算AMAT,然后取最大值作为最后的AMAT。
在您的示例中,由于数据丢失率高于指令丢失率,您可以认为在CPU等待数据期间,它可以解决指令缓存中的所有未命中。
如果测量单位是周期,那么就像纳秒一样。如果您知道处理器的频率,则可以在几纳秒内转换回AMAT。