内核解读之内存管理(1)CPU体系架构UMA和NUMA

news2024/9/24 5:33:41

文章目录

    • 1. SMP(UMA) 体系架构
    • 2. NUMA 体系架构
    • 3. NUMA 结构基本概念

内存和cpu有着密不可分的联系,学习内存管理,先了解下cpu的架构。

1. SMP(UMA) 体系架构

CPU 计算平台体系架构分为 SMP 体系架构和 NUMA 体系架构等,下图为 SMP 体系架构:

img

image

SMP(Sysmmetric Multi-Processor System,对称多处理器系统),它由多个具有对称关系的处理器组成。所谓对称,即处理器之间没有主从之分,。SMP 架构使得一台计算机不再由单个 CPU 组成。

SMP 的结构特征就是「多处理器共享一个集中式存储器」,每个处理器访问存储器所需的时间一致,工作负载能够均匀的分配到所有可用处理器上,极大地提高了整个系统的数据处理能力。但是,如果多个处理器同时请求访问共享资源时,就会引发资源竞争,需要软硬件实现加锁机制来解决这个问题。所以,SMP 又称为 UMA(Uniform Memory Access,一致性存储器访问),其中,一致性指的就是在任意时刻,多个处理器只能为内存的每个数据保存或共享一个唯一的数值。

因此,这样的架构设计无法拥有良好的处理器数量扩展性,因为共享内存的资源竞态总是存在的,处理器利用率最好的情况只能停留在 2 到 4 颗

2. NUMA 体系架构

img

imageNUMA架构

计算机系统中,处理器的处理速度要远快于主存的速度,所以限制计算机计算性能的瓶颈在存储器带宽上。SMP 架构因为多处理器访问存储器的竞争,所以处理器可能会时刻对数据访问感到饥饿。

NUMA(Non-Uniform Memory Access,非一致性存储器访问)架构优化了 SMP 架构扩展性差以及存储器带宽窄的问题。

从上图可以看出,主要的区别在于 NUMA 架构采用了分布式存储器,将处理器和存储器划分为不同的节点(NUMA Node),每个节点都包含了若干的处理器与内存资源。多节点的设计有效提高了存储器的带宽和处理器的扩展性。

另一方面,NUMA 节点的处理器可以访问到整体存储器。按照节点内外,内存被分为节点内部的本地内存以及节点外部的远程内存。当处理器访问本地内存时,走的是内部总线,当处理器访问远程内存时,走的是主板上的 QPI 互联模块。访问前者的速度要远快于后者,NUMA(非一致性存储器访问)因此而得名。

3. NUMA 结构基本概念

img

  • Socket:表示一颗物理 CPU 的封装(物理 CPU 插槽),简称插槽。为了避免将逻辑处理器和物理处理器混淆,Intel 将物理处理器称为插槽。
  • Core: 物理 CPU 封装内的独立的一组程序执行的硬件单元,比如寄存器,计算单元等。
  • Thread: 使用超线程技术虚拟出来的逻辑 Core,需要 CPU 支持。为了便于区分,逻辑 Core 一般被写作 Processor。在具有 Intel 超线程技术的处理器上,每个内核可以具有两个逻辑处理器,这两个逻辑处理器共享大多数内核资源(如内存缓存和功能单元)。此类逻辑处理器通常称为 Thread 。
  • Node: 包含有若干个物理 CPU 的组。

img

上图的 NUMA Topology 有 2 个 NUMA node,每个 node 有 1 个 socket,即 pCPU, 每个 pCPU 有 6 个 core,1 个 core 有 2 个 Processor,则共有逻辑 cpu processor 24 个。

在 LINUX 命令行中执行 lscpu 即可看到机器的 NUMA 拓扑结构:

img

如上图所示,机器有 2 个 node 分配到 2 个 socket 上,每个 socket 有 14 个 core,每个 core 有 2 个 processor, 则共有 56 个 cpu processor。同时,从上图也可看出 NUMA node 0 上的 cpu 分布为 0-13,28-41,而 node 1 上的分布为 14-27, 42-55。

NUMA node 处理器访问本地内存的速度要快于访问远端内存的速度。访问速度与 node 的距离有关系,node 间的距离称为 node distance。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Kotlin】函数 ② ( Unit 函数 | TODO 函数抛出异常返回 Nothing 类型 | 反引号函数名 )

文章目录一、Unit 函数二、TODO 函数抛出异常返回 Nothing 类型三、反引号函数名一、Unit 函数 Java 语言 中 没有返回值的函数 其 返回类型 是 void ; Kotlin 语言 中 没有返回值的函数 其返回类型是 Unit , 该函数又称为 Unit 函数 ; Kotlin 语言中 推出 Unit 类型概念 , 是…

电子产品拆解分析-暖手宝

①电子产品拆解分析-暖手宝一、功能介绍二、拆解电路分析以及器件作用1、暖手宝整体电路2、锂电池充电升压电路根据数据手册以及电路实物绘画原理图3、控制PTC加热垫换挡电路根据实物绘画原理图4、主控MUC电路三、各模块对应的原理图一、功能介绍 ①按键三档调温暖手&#xff1…

如何站在开发者的角度理解框架的设计思想?

感谢支持 我已经在CSDN发布了100多篇原创文章,如果你读过我的文章,欢迎点击下方的链接,帮我五星评价一下,谢谢。 很简单,点击下图,像截图一样五星评价一下就可以了: 有问必答 最近有好多读者…

Vue(六)

1. 列表渲染(接五) 1.1 Vue监测数据的原理—数组 修改数组:最后追加元素:push;删除最后一个元素:pop;删除第一个元素:shift;在最前面加一个:unshift;在指定位…

shell之函数和数组练习案例

目录函数和数组练习案例1、编写函数,实现打印绿色OK和红色FAILED判断是否有参数,存在为Ok,不存在为FAILED2、编写函数,实现判断是否无位置参数,如无参数,提示错误3、编写函数实现两个数字做为参数&#xff…

ArcGIS基础实验操作100例--实验46按要素融合多边形

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验46 按要素融合多边形 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

ctf中linux内核态的漏洞挖掘与利用系列1

说明 该系列文章主要是从ctf比赛入手,针对linux内核上的漏洞分析、挖掘与利用做讲解,本篇文章主要介绍内核漏洞利用所需的前置知识以及准备工作。 linux内核态与用户态的区别 以 Intel CPU 为例,按照权限级别划分,Intel把 CPU指…

8.JS笔记-函数

1.函数 函数是封装了一段可以被重复执行调用的代码块。目的是让大量代码重复使用 封装:将一个或多个功能通过函数的方式进行封装,对外只提供一个简单的函数接口(将主板、CPU等封到主机里) 2.函数使用 2.1 声明函数 function 函…

DHCP自动分配IP命令配置

由路由器R3充当服务器给PC3和PC4分配IP地址&#xff1a; [r3] dhcp enable-----开启DHCP服务器 [r3] ip pool ? STRING<1-64> Pool name [r3] ip pool aaa-----创建地址池&#xff08;aaa是地址池的名字&#xff09; [r3-ip-pool-aaa]network 192.168.4.0 mask 24-----…

【C进阶】C语言终话,了解计算机的程序环境和预处理过程

目录 &#x1f3c2;前言&#x1f3c2;&#xff1a; &#x1f3c7;一、详解编译与链接&#x1f3c7;&#xff1a; 1.程序的翻译环境与执行环境&#xff1a; 2.翻译环境&#xff1a; 3.翻译阶段&#xff1a; ①.编译&#xff1a; ②.链接&#xff1a; 4.运行环境&#xff1a; …

Java 并发编程 (一)Semaphore和Exchanger的使用

Semaphore和Exchanger的使用 Semaphore 功能介绍 Semaphore 主要作用就是限制线程并发数量。 Semaphore 的构造函数中permits 可以控制最大并发数。每个线程可以acquire指定数量的 permit 。但是acquire n个 则需要释放n个。防止被阻塞 public class MySemaphore {// permits…

【python】鞭炮快乐响,春联贴门上,祝福送到你身旁

前言 大家早好、午好、晚好吖 ❤ ~ 现在贴春联已成风俗&#xff0c;红色的对联贴在大门上&#xff0c;房子顿时生辉。 正如诗云&#xff1a;“喜气临门红色妍&#xff0c;家家户户贴春联&#xff1b;旧年辞别迎新岁&#xff0c;时序车轮总向前。” 今天&#xff0c;我们就用p…

静态路由的拓展配置

静态路由的拓展配置&#xff1a; 1、负载均衡 当路由器访问同一个目标具有多条开销相似的路径&#xff08;经过路由器的数量&#xff09;时&#xff0c;可以让流量拆分后沿多条路径同时传输&#xff0c;可以达到叠加带宽的效果。&#xff08;当开销不相似时做负载均衡&#xff…

数据可视化系列-03AIPL消费者行为全链路可视化模型实践

文章目录4.AIPL消费者行为全链路可视化模型实践4.1、用户画像用户画像产生的原因用户画像概述用户画像构成原则第一类用户画像 User Persona第二类用户画像User Profile4.2、标签体系标签体系简介标签分类贴标签的方式标签的优化用户画像标签和权重4.3、用户画像大数据应用4.4、…

USB基础

一 USB 芯片组成 同以太网类似&#xff0c;USB芯片也分为Controller部分(主机控制器/设备控制器)和PHY部分(收发器) 两大部分组成。 Controller部分 主要实现USB的协议和控制&#xff0c;内部逻辑主要有 MAC层&#xff0c;CSR层&#xff0c;FIFO层等。 MAC层实现安装USB协议…

一文看懂 Redis 主从同步的原理

Redis 主从同步的基本原理有三种&#xff0c;分别是&#xff1a;全量复制&#xff0c;基于长链接的命令传播&#xff0c;增量复制。 接下来分别说说这三种主从间同步的原理。 全量复制 当我们启动多个 Redis 实例的时候&#xff0c;它们相互之间就可以通过 replicaof&#x…

新人转行IC该怎么选择岗位?(内附各岗位学习视频)

最近看到不少同学在后台提问&#xff1a;新人转行IC该怎么选择岗位&#xff1f;其实转行本身就是一件大事&#xff0c;转行之前一定要做好调研&#xff0c;选择适合自己的岗位&#xff0c;这样才能规划好职业生涯。 IC行业这几个岗位是最常见的&#xff1a;数IC前端设计工程师…

PoolFormer实战:使用PoolFormer实现图像分类任务(二)

文章目录训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整算法设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法运行以及结果查看测试热力图可视化展示完…

JSON数据解析

1.基础 JSON(JavaScript Object Notation) 是一种通用的轻量级数据交换文本格式。它很容易让人阅读和编写&#xff0c;也便于机器进行解析和生成。它使用JavaScript语法来存储和描述数据对象&#xff0c;但是JSON完全独立于JavaScript。JSON可适用于多种流行编程语言。这些特性…

JavaScript 用法

文章目录JavaScript 用法<script><script><script> 标签<body><body><body> 中的 JavaScriptJavaScript 函数和事件在 <head><head><head> 或者 <body><body><body> 的JavaScript<head><hea…