写在前面
说道物理内存,我们大多数人第一时间想到的就是内存条。也就是随机存储器(Random Access Memory,RAM)。RAM是与CPU直接交换数据的内部存储器。现在大多数计算机使用的RAM是双倍速率同步同态随机存储器(Dual Data Rate SDRAM,DDR)的存储设备。DDR的初始化是在BIOS或者BootLoader中完成。接着引导程序会把DDR的大小传递给Linux Kernel。
目前大多数嵌入式系统,手机操作系统,台式机以及笔记本都采用UMA架构。还有一种是NUMA架构,大多数服务器采用NUMA架构。这里不讨论NUMA架构。
一、统一内存存访问架构(UMA,Uniform Memory Access)
UMA又称均匀访存模型,统一寻址技术。是指所有的物理存储器被均匀共享,即处理器访问它们的时间是一样的。简单理解就是,多个CPU通过一根总线来访问物理内存DDR。但多个CPU是访问内存的不同内存单元还是相同的内存单元,同一时刻只有一个CPU能够访问内存。
为了更好的理解UMA架构,以下图为例。一个操作系统使用UMA架构,有4个CPU,它们都有L1高速缓存,CPU0和CPU1组成一个簇(Cluster0),它们共享一个L2高速缓存;CPU2和CPU3组成一个簇(Cluster1),它们共享另外一个L2高速缓存;4个CPU共享一个L3高速缓存,然后通过总线访问DDR;