Cache 和 Translation LookAside Buffer [TLB] 有什么区别?
4 回答
Cache
存储内存的实际内容。
TLB
另一方面,只存储映射。TLB
加快在内存中定位操作数的过程。
Cache
通过将这些操作数复制到更快的物理内存来加快读取这些操作数的过程。
来自维基:
在计算机科学中, 缓存(发音为 /kæʃ/,kash)是复制存储在其他地方或较早计算的原始值的数据集合,其中原始数据的获取(由于访问时间较长)或计算成本较高,与读取缓存的成本。换句话说,高速缓存作为临时存储区域运行,可以存储经常访问的数据以供快速访问。一旦数据存储在缓存中,以后可以通过访问缓存的副本而不是重新获取或重新计算原始数据来使用它。
然而
转换后备缓冲区(TLB) 是内存管理硬件用来提高虚拟地址转换速度的 CPU 缓存。 它是处理器中引入的第一个缓存。当前所有的桌面和服务器处理器(例如 x86)都使用 TLB。TLB 具有固定数量的包含页表条目的插槽,这些条目将虚拟地址映射到物理地址。它通常是内容可寻址存储器(CAM),其中搜索关键字是虚拟地址,搜索结果是物理地址。
也看看这个。
缓存是缓冲内存访问 - 实际读取和写入内存。TLA 缓冲区是用来缓冲从进程地址空间中的虚拟地址到内存中的物理地址的映射——伴随着内存访问的服务操作。
TLB 是一种与 CPU 相关的特殊缓存。当我们使用虚拟内存时,我们需要 TLB 来更快地将虚拟地址转换为物理地址。TLB 只存储 page_no 、 offset、 frame_no 和一些控制位。而缓存用于存储经常使用的数据块。从 TLB/page_table 获取物理地址后,如果在缓存中找不到该地址,我们会在缓存中查找该地址,然后再查找主内存。(图 8.10 william stalling 6e)