2013年8月26日 星期一

Describing Physical Memory

Reference: http://www.chudov.com/tmp/LinuxVM/html/understand/node16.html

NUMA(non-uniform memory access)架構下,memory被分成很多的bank(又稱為node),而每個bank被CPU access的cost不同
Linux用struct pg_data_t來代表bank(or node)

而PC是一UMA的架構,所以只有一個pg_data_t:contig_page_data

每個node又被切成很多個block稱為zone
Linux用struct zone_t來代表zone,而每個node是ZONE_DMA, ZONE_NORMAL, ZONE_HIGHMEM其中之一
ZONE_ DMA is memory in the lower physical memory ranges which certain ISA devices require.
ZONE_ NORMAL be directly mapped by the kernel in the upper region of the linear address space which is discussed further in Section 5.1

x86架構下
ZONE_ DMA First 16MiB of memory
ZONE_ NORMAL 16MiB - 896MiB
ZONE_ HIGHMEM 896 MiB – End

It is important to note that many kernel operations can only take place using ZONE_ NORMAL so it is the most performance critical zone.

\includegraphics[width=15cm]{graphs/layout.ps}


As the address space usable by the kernel (ZONE_ NORMAL) is limited in size, the kernel has support for the concept of High Memory.
 To access memory between the range of 1GiB and 4GiB, the kernel temporarily maps pages from high memory into ZONE_ NORMAL. This is discussed further in Chapter 10. 

Related Posts:

  • Kernel Space MemoryReference : http://www.chudov.com/tmp/LinuxVM/html/understand/node28.html Kernel的virtual memory適用linear mapping,physical address 0對應到kernel virtual memory的PAGE_OFFSET(通常是0xC000_0000) 也就是說kernel virtual address - PAGE_OFFSET就… Read More
  • 紀錄一下/proc/pid/maps的使用在跑起來的一支程式,可用cat /proc/pid/maps 來看他的memory layout (似乎只看的到user space的) 以下是這段code看到的資訊: address - The starting and ending address of the region in the process's address space permissions - rwx就不用講了,p代表的是private(not shared),… Read More
  • Linux memory layout每一個user process看到的vitrual memory共有4G(32 bit machine) 其中通常切成3G:1G 0x00000000-0xbfffffff: user process(3GB) 0xc0000000-0xffffffff: kernel space (1GB) 而user process(3G)是每支user process不同的,甚至每支user thread也是不同    &… Read More
  • Booting ARM system from bootloader to linux kernel有空來讀一下 會以u-boot code當作bootloader base 開到start_kernel之前的組語部分可以參考 http://gicl.cs.drexel.edu/people/sevy/linux/ARM_Linux_boot_sequence.html… Read More
  • Memory zoneReference : Understaning the Linux Kernel Chap.8 Ideal computer architecture上,任意page frame都是可以被access的 但實際上的電腦架構在硬體上會有些限制住page frame被使用 Linux kernel must deal with two hardware constraints of the 80 × 86 architecture: • The D… Read More

0 意見:

張貼留言