gpt4 book ai didi

operating-system - 软件初始化代码位于0xFFFFFFF0H

转载 作者:行者123 更新时间:2023-12-04 08:28:19 25 4
gpt4 key购买 nike

英特尔表示,重置后,处理器将置于实模式,并且软件初始化代码从0xFFFFFFF0H开始。我的问题:

  • 如果处理器处于实模式,如何访问内存> 1MB(0xFFFFFFF0H)
  • 如果RAM小于4GB(例如2GB),这会如何发生?
  • 如果BIOS映射到0x000FFFFFH,为什么处理器开始以0xFFFFFFF0H执行

  • 请帮助我解决这些问题。
    谢谢。

    最佳答案

    我终于在Coreboot documentation中找到了答案:

    Whenever an x86 CPU wakes up after reset, it does it in Real Mode. This mode is limited to 1MiB address space and 64k offsets and the reset vector of the original 8086/88 was located at 0xFFFF0.

    As there was no change even if we run current processors like P3, these newer CPUs also feels like they where start at 0xF000:0xFFF0 after a reset. But they do not. The base of the code segment register is 0xFFFF0000 after reset, so the CPU generates a physical address of 0xFFFFFFF0 to the chipset. And the chipset is responsible to forward this area to the boot ROM. Its confusing: The CPU "thinks" it runs code at 0xF000:0xFFF0 but instead it uses code at 0xFFFFFFF0. The developers must have been tanked up when they realised this design into silicon.


    因此,似乎英特尔文档讨论了“在线”使用的物理地址,即访问实总线时的物理地址。而且这与CPU模式无关(总线不知道或不在乎CPU模式,翻译这些内容是CPU的职责)。

    关于operating-system - 软件初始化代码位于0xFFFFFFF0H,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210296/

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