Intel Memory System Address Map问题
对于Intel的北桥Datasheet,都会介绍其system memory map,如附件所示。里面的提到map的空间是0-4G,我想知道这个空间是如何与物理地址对应起来的,有知道的兄弟告知一下吧,多谢啊! 这里介绍的就是物理地址空间 那如果我接的内存条只有1G呢?如何与0xFExxxxxx对应起来? 还真没想过,帮你顶一下 我以前也很想知道内存地址是怎样分:lol :lol 给内存条的,问过一个台湾人,他也不知道,于是我就认为他菜菜的 实际的内存条对应的内存应该是从1MB开始的地方往上的,如1MB-1GB,当然不是连续的,中间有一些划分给其他用处了,如ISA hole,TSEG等。北桥DS的system address map部分应该有的呀。 北桥的DS里会描述北桥对memory transcation的转发规则。0~4G-1的地址空间分为两大部分,低地址部分用作物理内存寻址,高地址部分用作MMIO,LOCAL/IO APIC和其它保留用途。两个部分的分界线处的地址叫做TOLM (top of low memory)。这个地址在内存初始化时填入北桥一个寄存器中。之后,对0~TOLM-1的地址范围的访问将会被北桥转发到内存控制器。当然在这个地址范围还有一些特殊区域,用于PC-AT的兼容,比如A,B段,C~F段,北桥会有相应的寄存器来控制对些特殊区域的转发。 楼主不是楼上的意思,再具体一点:内存控制器怎么给内存条分配地址的,比如说0xaaaaaa这个地址分给第一个内存条 srcore的描述我好像有点懂了,我再测试一下,有了结果再上来告知大家! 0~1MB的空间是Legacy的内存空间,不允许操作系统使用。操作系统能使用的物理空间为1M~(TOLM-1),TOLM~(4GB-1)这个范围操作系统不能使用,是APIC,PCI等外设做内存映射使用的。TOLM是动态的,取决于实际的物理内存大小,如果实际物理内存<4GB,则TOLM=实际物理内存。如果实际物理内存>4GB,TOLM的值为4GB-约256MB,这时操作系统能使用的地址范围分为两段,分别是:1MB~(4GB-约256MB),4GB~(实际物理内存-1)。不知道说得对不对,请大家指正。
页:
[1]