1
|
Zachariah the Magnificent · 技术社区 · 6 年前 |
1
1
有几个场景,让我们选择一个。在此场景中,使用物理地址访问缓存。 所有并行执行的多个进程(P1、P2…Pn)都在虚拟地址上运行。我们可以让TLB(保存虚拟到物理转换)在上下文切换上刷新其条目。所有进程都可以具有相同数量的虚拟页。但在给定的时间内,只有少数人通过一个过程进行裁判。因此,您可以将这些最常用的页面保存在物理内存中,其余页面保存在硬盘中。这适用于当前处于活动状态的所有进程。 当进程P1当前正在运行时,当需要从内存中提取数据时,该进程类似于仅存在一个进程时的处理方式。这里需要注意的一点是,当进程P1发生页面错误时,如果要在物理内存中替换的页面属于另一个进程,则需要更新该进程的页面表以反映这一点。 如果检查物理页面的上下文,它可以包含来自多个进程的页面。这样每个进程的页面表就可以知道虚拟页面位于哪个物理位置。 |
2
0
大多数CPU设计的缓存基于 身体的 地址,因此即使TLB失效需要页面遍历才能为虚拟地址找到正确的物理页面,它们在上下文切换后仍然可能很热。 如果进程迁移到另一个CPU核心,则专用L1和L2将是冷的,但共享L3仍将是热的。 |
Christian Bouwense · 进程如何跟踪其局部变量 6 年前 |
BeeOnRope · 在x86中是否允许访问跨越零边界的内存? 7 年前 |
Lee.HW · chrono库的实现 7 年前 |
Zephyr · 虚拟索引物理标记缓存同义词 7 年前 |
Uchia Itachi · VIPT缓存:TLB和缓存之间的连接? 7 年前 |