作文过年orm Memory Access,NUMA):指内存被划分成多个内存节点的多处理器系统,访问一个内存节点花费的时间取决于处理器和内存节点的距离。每个处理器有一个本地内存节点,处理器访问本地内存节点的速度比访问其他内存节点的速度快。NUMA 是中高端服务器的主流体系结构。
(2)对称多处理器(Symmetric Mul-Processor,SMP):即一致内存访问(Uniform Memory Access,UMA),所有处理器访问内存花费的时间是相同的。每个处理器的地位是平等的,仅在内核初始化的时候不平等:“0 号处理器作为引导处理器负责初始化内核,其他处理器等待内核初始化完成。”
在实际应用中可以采用混合体系结构,在 NUMA 节点内部使用 SMP 体系结构。
内存模型是从处理器的角度看到的物理内存分布情况,内核管理不同内存模型的方式存在差异。内存管理子系统支持 3 种内存模型。
(1)平坦内存(Flat Memory):内存的物理地址空间是连续的,没有空洞。
(2)不连续内存(DisconTIguous Memory):内存的物理地址空间存在空洞,这种模型可以高效地处理空洞。
(3)稀疏内存(Sparse Memory):内存的物理地址空间存在空洞。如果要支持内存热插拔,只能选择稀疏内存模型。
什么情况会出现内存的物理地址空间存在空洞?系统包含多块物理内存,两块内存的物理地址空间之间存在空洞。一块内存的物理地址空间也可能存在空洞,可以查看处理器的参考手册获取分配给内存的物理地址空间。
如果内存的物理地址空间是连续的,不连续内存模型会产生额外的开销,降低性能,所以平坦内存模型是更好的选择。
平坦内存模型会为空洞分配 page 结构体,浪费内存;而不连续内存模型对空洞做了优化处理,不会为空洞分配 page 结构体。和平坦内存模型相比,不连续内存模型是更好的选择。
稀疏内存模型是实验性的,尽量不要选择稀疏内存模型,除非内存的物理地址空间很稀疏,或者要支持内存热插拔。其他情况应该选择不连续内存模型。
内存管理子系统使用节点(node)、区域(zone)和页(page)三级结构描述物理内存。
(2)在具有不连续内存的 UMA 系统中,表示比区域的级别更高的内存区域,根据物理地址是否连续划分,每块物理地址连续的内存是一个内存节点。
成员 node_zones 是内存区域数组,成员 nr_zones 是内存节点包含的内存区域的数量。
成员 node_mem_map 指向页描述符数组,每个物理页对应一个页描述符。注意:成员node_mem_map 可能不是指向数组的第一个元素,因为页描述符数组的大小必须对齐到 2的(MAX_ORDER − 1)次方,(MAX_ORDER − 1)是页分配器可分配的最大阶数。
DMA32 区域(ZONE_DMA32):64 位系统,如果既要支持只能直接访问 16MB 以下内存的设备,又要支持只能直接访问 4GB 以下内存的 32 位设备,那么必须使用 DMA32 区域。
普通区域(ZONE_NORMAL):直接映射到内核虚拟地址空间的内存区域,直译为“普通区域”,意译为“直接映射区域”或“线性映射区域”。内核虚拟地址和物理地址是线性映射的关系,即虚拟地址 =(物理地址 + 常量)。是否需要使用页表映射?不同处理器的实现不同,例如ARM处理器需要使用页表映射,而MIPS 处理器不需要使用页表映射。
高端内存区域(ZONE_HIGHMEM):这是 32 位时代的产物,内核和用户地址空间按 1 : 3 划分,内核地址空间只有 1GB,不能把 1GB 以上的内存直接映射到内核地址空间,把不能直接映射的内存划分到高端内存区域。通常把 DMA 区域、DMA32 区域和普通区域统称为低端内存区域。64 位系统的内核虚拟地址空间非常大,不再需要高端内存区域。
可移动区域(ZONE_MOVABLE):它是一个伪内存区域,用来防止内存碎片,后面讲反碎片技术的时候具体描述。
每个物理页对应一个 page 结构体,称为页描述符,内存节点的 pglist_data 实例的成员node_mem_map 指向该内存节点包含的所有物理页的页描述符组成的数组。
其中,SECTION 是稀疏内存模型中的段编号,NODE 是节点编号,ZONE 是区域类型,FLAGS 是标志位。
内联函数 page_to_nid 用来得到物理页所属的内存节点的编号,page_zonenum 用来得到物理页所属的内存区域的类型。
头文件“include/linux/mm_types.h”定义了 page 结构体。因为物理页的数量很大,所以在 page 结构体中增加 1 个成员,可能导致所有 page 实例占用的内存大幅增加。为了减少内存消耗,内核努力使 page 结构体尽可能小,对于不会同时生效的成员,使用联合体,这种做法带来的负面影响是 page 结构体的可读性差。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。侵权投诉
部分 PowerPC 精简指令集计算机(RISC)简介 PowerPC
种精减指令集计算机(Reduced Instruction Set Computer,RISC)
主要分为两种:UMA(Uniform Memory Access)和NUMA(Non-Uniform Memory Access)。 UMA
(Computer Architecture)是描述计算机各组成部分及其相互关系的
个字节发送的吗?是低字节先发还是高字节先发?是bit0先发还是bit7先发?是...
。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32
上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读
份十分不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,,,,,
种精简指令集(RISC)架构,具有以下RISC架构特点: 较大的通用寄存器堆。 load/store
内容。 简单寻址模式,所有load/store地址由寄存器内容和指令确定
》适合作为高等院校集成电路设计相关专业工程硕士的教材,并可以作为微处理器硬件与软件设计相关专业高年级本科生和研究生的教材。 《微处理器
( Enterprise Cloud Service Architecture,CSA)风格的通用和抽象参考
容量、带宽、性能等方面的需求提高,系统会接入多个 DRAM Devices。而多个 DRAM Devices 不同的
资源,可以配置为各种不同的大小。本白皮书详细介绍了可用的功能,说明了各种可用
访问速度。除了Cache以外,分支预测和指令预取也在很大程度上提升了CPU的执行速度。
低端是进程控制块task_struct(里面包括tss段和ldt段),其余部分是进程的内核态堆栈。
,分别是flat memory model,Discontiguous memory model和sparse memory model。所谓memory
刷新,感觉很术语化,实际上就是对存储单元进行定期的充电,防止数据丢失。每个存储单元可以看成
个个电容,或者电池,会漏电。所以在使用的过程中,要定期补充电荷。 通常主板上使用的
视图(功能视图、系统视图、网络视图、使用视图等),以及物联网可信性。该国际标准的发布将为全球物联网实现提供
管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用
GuestOS本身有虚拟地址空间,用GVA表示。虚拟机认为自己独占整个
空间,用GPA表示。 HostOS本身有虚拟机地址空间,用HVA表示。宿主机本身有
中,如何尽可能少地插入片选指令是研究的热点。根据该问题的特点,构建了片选优化的图划分
、ARM汇编语言程序设计、ARM C/C++语言程序设计、ARM连接器的使用、
是影响软件的关键。根据待开发软件的应用场合和所处理问题的特点,选取合适的
通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能协同工作实现信息交换和资源共享
简介(1)首先对字(Word)、半字(Half-Word)、字节(Byte)的概念作
元数据及其管理是数据仓库和业务分析领域中的核心部分,也是成功建立信息供应链的关键。元数据管理依赖于软件
的执行效率和扩展能力在全系统模拟环境中尤为重要。本文介绍了SimSoc 全系统模拟框架中
来提供其战略性描述。这将大大促进软件的互操作性、集成性,提高开发效率,减少重复开发,降低开发成本。
的特征,并结合国防经济信息管理工作的实际,设计了完整的国防经济信息管理
:2.2.1 数据类型2.2.2 ARM微处理器的工作状态2.2.3 ARM
|