Caching 关于TLB和缓存在典型程序中的不同之处
一个典型的处理器有20%的内存指令。假设有5%的数据TLB未命中,每个需要100个周期来处理。假设每个指令需要1个周期来执行,缓存中的每个内存操作需要1个周期,10%的数据访问是缓存未命中。每个缓存未命中是15个周期,那么执行1000条指令需要多长时间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
我不知道答案,但我对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