缓存和TLB之间有什么区别?
缓存(Cache)
存储内存的实际内容。
而另一方面,TLB
仅存储映射。 TLB
通过加速在内存中定位操作数的过程来提高读取效率。
缓存(Cache)
通过将操作数复制到更快的物理内存中来加速读取这些操作数的过程。
来自维基百科:
在计算机科学中,缓存(发音为 /kæʃ/,kash)是一个数据集合,它复制了存储在其他地方或早期计算的原始值,其中原始数据获取成本昂贵(由于较长的访问时间)或计算成本高于读取缓存的成本。换句话说,缓存作为一个临时存储区域,可以存储经常访问的数据以进行快速访问。一旦数据存储在缓存中,将来可以通过访问缓存副本而不是重新获取或重新计算原始数据来使用该数据。
而
翻译后备缓冲区(TLB)是一种CPU缓存,内存管理硬件用于提高虚拟地址转换速度。这是处理器中引入的第一个缓存。所有当前的桌面和服务器处理器(如x86)都使用TLB。TLB具有固定数量的插槽,其中包含页面表条目,这些条目将虚拟地址映射到物理地址。它通常是内容寻址存储器(CAM),其中搜索键是虚拟地址,搜索结果是物理地址。
还可以看看这个。
缓存是用于缓冲内存访问 - 实际对内存进行读写的过程。而TLB缓冲区则是用于缓存进程地址空间中虚拟地址到内存中物理地址的映射,这是与内存访问相伴随的服务操作。
TLB是一种与CPU相关的特殊缓存。当我们使用虚拟内存时,需要TLB来更快地将虚拟地址转换为物理地址。TLB仅存储页面号、偏移量、帧号和一些控制位。而Cache用于存储经常使用的数据块。从TLB/页表获取物理地址后,我们在缓存中查找该地址,如果没有找到,则查找主存储器。(参见图8.10 William Stalling 6e)