【问题标题】:Regarding how TLB and Cache are different in a typical program关于典型程序中 TLB 和 Cache 的不同之处
【发布时间】:2014-03-06 04:06:36
【问题描述】:

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

我不知道答案,但我对 TLB 和缓存的存在感到困惑,我认为缓存和 TLB 是一回事?

【问题讨论】:

标签: caching memory-management operating-system tlb


【解决方案1】:

它们是两种截然不同的东西......

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

【讨论】:

  • 谢谢大家,我做了一些问题并得到了概念。
【解决方案2】:

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

TLB 未命中开销 = 99 个周期

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2010-12-30
    • 2014-10-22
    • 1970-01-01
    • 2019-09-15
    • 2019-05-13
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多