gpt4 book ai didi

linux - 什么逻辑 CPU 适用于生成正确的 PageNumber 和 PageOffset?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:11 25 4
gpt4 key购买 nike

据我了解,要从物理内存访问页面,CPU 会为请求的页面生成 PageNumber 和 PageOffset。逻辑 PageNumber 内容随后被页表条目中的物理 PageNumber 内容替换。因此,请求页面的物理位置是PageNumber+PageOffset。那么,CPU 是如何获得 Offset 值的信息的呢?

另外,在分配新页面时,CPU如何确定要分配的页面的偏移值?

最佳答案

当完成从虚拟内存到物理内存的转换时,并不是地址中的所有位都被替换。虚拟内存的高位确实被物理地址位代替了,但是一定数量的低位被保留了下来,它们对应着偏移量。标识页面偏移量的位数因架构而异。

看看这张图:

Address translation

图例:

  • p 页码
  • f 页面基址
  • d 位移(或偏移量)

请注意,在地址转换期间偏移量不会改变。因此,当 CPU 检索内存时,不需要计算 - 偏移量不变。

对于你的第二个问题:分配内存时,分配了一个整个页面,CPU 不关心页面中的偏移量。仅当从 CPU 请求特定内存地址(其偏移量不变)时,偏移量才有意义。

关于linux - 什么逻辑 CPU 适用于生成正确的 PageNumber 和 PageOffset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154069/

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