关于TLB和Cache在典型程序中的不同之处

时间:2014-02-08 18:14:45

标签: caching memory-management operating-system tlb

典型的有20%的内存指令。假设有5%的数据TLB未命中,每个需要100个周期来处理。假设每个指令需要1个周期执行,每个内存操作在缓存1个周期内,10%的数据访问缓存未命中每个缓存未命中是15个周期,那么执行1000指令需要多长时间。

我不知道答案,但我对TLB和缓存的prsence感到困惑,我觉得缓存和TLB是一回事吗?

2 个答案:

答案 0 :(得分:0)

它们是两个非常不同的东西......

简单地说,TLB只包含地址(需要TLB来加速虚拟地址的转换),而缓存可以包含任何内容(即任何类型的内存,代码或数据)

答案 1 :(得分:0)

缓存未命中的开销= 14个周期

TLB-miss = 99cycles

的开销

缓存未命中= 1000 * 20%* 10%= 20

TLB未命中= 1000 * 20%* 5%= 10

总周期= 1000个周期+(由于缓存未命中导致的开销)+(由于TLB未命中导致的开销)

                = 1000 + (20 * 14) + (10 * 99) = 1000 + 280 + 990 = 2270 cycles