我注意到CR4寄存器中的PAE位在我的
Linux(3.19)x86-64机器上打开了. PAE功能允许访问高达64gb的物理地址,但我不明白为什么在启用长模式时需要它.我已经查了一会儿,但没有找到任何令人满意的答案.
有什么建议?
解决方法
它使用IA-32e分页.
A logical processor uses IA-32e paging if CR0.PG = 1,CR4.PAE = 1,and IA32_EFER.LME = 1.
With IA-32e paging,linear address are translated using a hierarchy of in-memory paging structures located using the contents of CR3.
IA-32e paging translates 48-bit linear addresses to 52-bit physical addresses.
Although 52 bits corresponds to 4 PBytes,linear addresses are limited to 48 bits; at most 256 TBytes of linear-address space may be accessed at any
given time.
> 32位分页(CR0.PG = 1,CR4.PAE = 0)
> PAE分页(CR0.PG = 1,CR4.PAE = 1,IA32_EFER.LME = 0)
> IA-32e寻呼(CR0.PG = 1,IA32_EFER.LME = 1)
这里报告了一个总结差异的表格(不幸的是,图像)