gpt4 book ai didi

memory - 地址间隔标识符 (ASID) 的用途

转载 作者:行者123 更新时间:2023-12-01 15:38:53 26 4
gpt4 key购买 nike

我目前正在学习 A Silberschatz、P Galvin、G Gagne 的操作系统。
我正在研究内存管理策略,以及他们介绍翻译后备缓冲区 (TLB) 的部分。

Some TLBs store address-space identifiers (ASIDs) in each TLB entry. An ASID uniquely identifies each process and is used to provide address-space protection for that process. When the TLB attempts to resolve virtual page numbers, it ensures that the ASID for the currently running process matches the ASID associated with the virtual page. If the ASIDs do not match, the attempt is treated as a TLB miss.


以上是解释ASID的教科书的引述。
我有点困惑,因为 TLB 未命中意味着逻辑地址无法在 TLB 中匹配,因此必须使用页表检查它以前往物理内存。
话虽如此,ASID 是 TLB 中每个条目的额外位,用于检查正在访问该条目的进程是否属于该进程。
我想知道的是,当使用 ASID 拒绝进程时,它不应该捕获,而不是 TLB 未命中? TLB 未命中会将进程转发到页表,其中进程的逻辑地址将能够映射到主内存中的某个地址。
请帮助我理解错误的地方。
谢谢!

最佳答案

假设您有两个进程在一个系统上运行。进程 A 将其 2d 页映射到第 100 个页框,进程 B 将其 2d 页映射到第 200 个页框。

所以现在 MMU 需要找到第 2 页,但不想再次读取页表。它会转到第 100 页还是第 200 页?

至少有两种方法可以处理这个问题。一种是在有进程切换时刷新缓存。

另一种是为每个进程分配一些唯一的标识符,并将其包含在 TLB 缓存条目中。

I am a bit confused as TLB miss means the logical address weren't able to be matched in TLB, so it has to be checked with Page table to head towards the physical memory.



要将逻辑页 #X 转换为物理页框:
  • 在 TLB 中查找 #X。如果没有,请转到页表。
  • [#X 存在] 是否存在具有与当前进程匹配的 ASID 的 #X 条目?如果没有,请转到页表。
  • 使用 TLB 中的页面映射

  • What I am wondering is, when ASID is used to refuse the process, shouldn't it trap, instead of TLB miss?



    然后你会在进程第一次访问页面时遇到陷阱,程序会崩溃。

    关于memory - 地址间隔标识符 (ASID) 的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52713940/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com