Caching 关于TLB和缓存在典型程序中的不同之处

Caching 关于TLB和缓存在典型程序中的不同之处,caching,memory-management,operating-system,tlb,Caching,Memory Management,Operating System,Tlb,一个典型的处理器有20%的内存指令。假设有5%的数据TLB未命中,每个需要100个周期来处理。假设每个指令需要1个周期来执行,缓存中的每个内存操作需要1个周期,10%的数据访问是缓存未命中。每个缓存未命中是15个周期,那么执行1000条指令需要多长时间 我不知道答案,但我对TLB和缓存的重要性感到困惑,我的印象是缓存和TLB是一回事?它们是两个截然不同的东西 简单地说,TLB只包含地址(需要TLB来加速虚拟地址的转换),而缓存可以包含任何内容(即任何类型的内存、代码或数据)。缓存未命中的开销=1

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


我不知道答案,但我对TLB和缓存的重要性感到困惑,我的印象是缓存和TLB是一回事?

它们是两个截然不同的东西


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

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

TLB未命中的开销=99个周期

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

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

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


你读过例如和吗?谢谢大家,我问了一些问题,了解了这个概念。
                = 1000 + (20 * 14) + (10 * 99) = 1000 + 280 + 990 = 2270 cycles