Memory Configuration for 32-bit, 64-bit and PAE enabled OS

时间:2019-04-08 14:05:38

标签: memory memory-management linux-kernel embedded-linux

I am confuse about memory configuration, i have below questions.

  1. if 32-bit os maximum virtual address is 4GB, When i have 4 gb of ram for 32-bit os, What about the virtual memory size ? is it required virtual memory or we can directly use physical memory ?

  2. In 32-bit os 12 bits are offset because page size=4k i.e 2^12 and 2^20 for page addresses What about 64-bit os, What is offset size ? What is page size ? How it calculated.

  3. What is PAE? If enabled how to decide size of PAE, what is maximum and minimum size of extended memory.

1 个答案:

答案 0 :(得分:0)

问题1 答:-

32位处理器包括一个可以存储2 ^ 32的32位寄存器,而64位处理器包括一个可以存储2 ^ 64的64位寄存器。 理论上,一个64位寄存器可以存储16艾字节的内存。

对于32位操作系统,最大虚拟内存为4GB,它最多只能寻址4GB的物理RAM(无PAE)。

对于Linux内核,它适用于虚拟内存管理,即CPU地址,例如,地址的类型很多。总线地址,物理地址(还有其他访问物理内存的概念,例如DMA和IOMMU)

虚拟内存大小是单个进程的最大虚拟大小。

有关32位和64位处理器的更多详细信息,请使用link

第二季度 答:-

对于64位OS,地址空间为16艾字节RAM。通常,页面大小为8K,即2 ^ 13(此外,还有大页面和巨大标签的概念)。

64位当前使用48位物理地址,这些地址允许您寻址最多256 TB的主内存。因为页面表本身也是页面,并且由页面表项组成。由于一个表中的条目数是有限的,并且取决于条目的大小和页面的大小,因此表被分为多个级别。通常有2或3个级别,有时甚至有4个级别。

64位操作系统的常规计算:-

 Number of entries in page table = virtual address space size/page size

                            = 2^(64-13) (if page size is 8K)

                            = 2^51 for maximum page table entries (if you are using whole 64 bits)

Page Size == Frame Size.

问题3 答:-

对于PAE,页表项从32位扩展到36位。这为页表项中的物理页地址或页框架号(PFN)字段留出更多空间。在PAE的最初实现中,页面帧号(PFN)字段从20位扩展到24位。与要转换的地址的“字节偏移”的大小仍为12位,因此总物理地址大小从32位增加到36位(从20 + 12到24 + 12)。这将理论上可由CPU寻址的物理内存从4 GB增加到了64 GB。

Maximum size of PAE is = 64GB (2^36).

有关PAE的详细信息,请使用link