Caching 基于缓存的虚拟地址到物理地址的转换
我确实理解如何将虚拟地址转换为物理地址以访问主内存。我也了解缓存的工作原理 但我的问题是把这两个概念放在一起,理解进程如何访问内存的大局,以及如果缓存丢失会发生什么。因此,我有这张图纸,它将帮助我提出以下问题: 1-进程是否使用表示主内存中字节位置的完全相同的物理地址访问缓存 2-TLB实际上是在第一级缓存中,还是在CPU芯片内专门用于翻译的独立内存 3-当缓存未命中时,我需要获取整个块并在缓存中分配,但主内存以帧(页)而不是块的形式组织。那么,一个进程页是否会被划分为缓存块,以便在未命中时将其带到缓存中 4-假设有TLB未命中,这是否意味着我需要一直到主内存并在那里执行页面漫游,还是页面漫游发生在缓存中 5-TLB未命中是否保证缓存未命中 6-如果你有任何能解释我试图理解的大局的阅读材料,我将非常感谢与我分享 谢谢,请随时回答我提出的任何问题Caching 基于缓存的虚拟地址到物理地址的转换,caching,memory-management,operating-system,virtual-memory,tlb,Caching,Memory Management,Operating System,Virtual Memory,Tlb,我确实理解如何将虚拟地址转换为物理地址以访问主内存。我也了解缓存的工作原理 但我的问题是把这两个概念放在一起,理解进程如何访问内存的大局,以及如果缓存丢失会发生什么。因此,我有这张图纸,它将帮助我提出以下问题: 1-进程是否使用表示主内存中字节位置的完全相同的物理地址访问缓存 2-TLB实际上是在第一级缓存中,还是在CPU芯片内专门用于翻译的独立内存 3-当缓存未命中时,我需要获取整个块并在缓存中分配,但主内存以帧(页)而不是块的形式组织。那么,一个进程页是否会被划分为缓存块,以便在未命中时将
- TLB用于将虚拟地址快速转换为物理地址。它可以快速缓存虚拟到物理内存的映射。它与物理内存内容没有任何关系
- 缓存允许更快地访问内存。它只是为了更快地提供物理内存的内容
请记住,术语“缓存”可用于多种用途(例如,在描述TLB时请注意缓存的用法)。TLB更具体一点,通常意味着虚拟内存转换,尽管这不是通用的。例如,一些DMA控制器也有TLB,但TLB不一定用于将虚拟地址转换为物理地址,而是用于将块地址转换为物理地址。感谢@Robin提供了详细的回答1。是或否。取决于缓存类型。物理索引、物理标记(PIPT)缓存将仅使用PA。虚拟索引、虚拟标记(VIVT)仅使用VA。其他VIPT、PIVT使用PA和VA从缓存中获取值。2。TLB是一个单独的缓存。我不知道TLB缓存与其他L1、L2等缓存相交的CPU体系结构4。不是真的。翻译需要访问翻译表。CPU通过PA访问转换表,因此在PIPT情况下,转换表可以作为任何其他类型的数据显示在缓存中。TLB未命中可能通过不访问主内存来解决。