多核CPU、多CPU与多进程、多线程关系

article/2025/8/23 16:21:17

文章目录

      • 1 cpu架构和工作原理
      • 2 多核cpu和多cpu架构
      • 3 进程和线程
      • 4 多核、多CPU与多线程、多进程的对应关系
      • 5 总结

1 cpu架构和工作原理

计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(CPU)。cpu的根本任务,就是执行指令,对计算机来说,都是0,1组成的序列,cpu从逻辑上可以划分为3个模块:控制单元、运算单元和存储单元。这三个部分由cpu总线连接起来。
在这里插入图片描述

CPU的运行原理就是:控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去。

2 多核cpu和多cpu架构

多个物理CPU,CPU通过总线进行通信,效率比较低。
在这里插入图片描述
多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信
在这里插入图片描述

cpu的缓存
CPU缓存是位于CPU与内存之间的临时数据交换器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU缓存一般直接跟CPU芯片集成或位于主板总线互连的独立芯片上。

在这里插入图片描述

随着多核CPU的发展,CPU缓存通常分成了三个级别:L1,L2,L3。级别越小越接近CPU,所以速度也更快,同时也代表着容量越小。L1 是最接近CPU的, 它容量最小(例如:32K),速度最快,每个核上都有一个 L1 缓存,L1 缓存每个核上其实有两个 L1 缓存, 一个用于存数据的 L1d Cache(Data Cache),一个用于存指令的 L1i Cache(Instruction Cache)。L2 缓存 更大一些(例如:256K),速度要慢一些, 一般情况下每个核上都有一个独立的L2 缓存; L3 缓存是三级缓存中最大的一级(例如3MB),同时也是最慢的一级, 在同一个CPU插槽之间的核共享一个 L3 缓存。

读取数据过程。就像数据库缓存一样,首先在最快的缓存中找数据,如果缓存没有命中(Cache miss) 则往下一级找, 直到三级缓存都找不到时,向内存要数据。一次次地未命中,代表取数据消耗的时间越长。

计算过程。程序以及数据被加载到主内存;指令和数据被加载到CPU的高速缓;CPU执行指令,把结果写到高速缓存;高速缓存中的数据写回主内存

3 进程和线程

进程是资源分配的最小单位,一个程序有至少一个进程。线程是程序执行的最小单位。一个进程有至少一个线程。
进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。
多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。
进程和线程在多核cpu,多cpu中的运行关系

4 多核、多CPU与多线程、多进程的对应关系

多cpu的运行,对应进程的运行状态;多核cpu的运行,对应线程的运行状态。

操作系统会拆分CPU为一段段时间的运行片,轮流分配给不同的程序。对于多cpu,多个进程可以并行在多个cpu中计算,当然也会存在进程切换;对于单cpu,多个进程在这个单cpu中是并发运行,根据时间片读取上下文+执行程序+保存上下文。同一个进程同一时间段只能在一个cpu中运行,如果进程数小于cpu数,那么未使用的cpu将会空闲。

进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。
对于多核cpu,进程中的多线程并行执行,执行过程中存在线程切换,线程切换开销较小。对于单核cpu,多线程在单cpu中并发执行,根据时间片切换线程。同一个线程同一时间段只能在一个cpu内核中运行,如果线程数小于cpu内核数,那么将有多余的内核空闲。

5 总结

  1. 单CPU中进程只能是并发,多CPU计算机中进程可以并行。

  2. 单CPU单核中线程只能并发,单CPU多核中线程可以并行。

  3. 无论是并发还是并行,使用者来看,看到的是多进程,多线程。

本文转载,原blog点击此处


http://chatgpt.dhexx.cn/article/eYdhCQnH.shtml

相关文章

多核与多处理器的区别

一、定义 多核:单块CPU上面能处理数据的芯片组的数量,比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。 多处理器:主板上实际插入的cpu数量,一般有两个或者多个处理…

多核CPU和单核的区别~

昨天有同学问我多核cpu和单核的区别大不大,今天简单写一篇回复下吧。大家有其他问题也可以文末给我留言,我会尽量抽时间写文回复。 首先回顾下基本概念,cpu,就是中央处理器,包括运算器和控制器。cpu的主要功能就是“一…

多核处理器结构

文章目录 一、多核处理器的发展演化二、多核处理器的访存结构2.1 通用多核处理器的片上Cache结构2.2 存储一致性模型2.3 Cache一致性协议 三、多核处理器的互连结构3.1 片上总线3.2 交叉开关3.3 片上网络 四、多核处理器的同步机制4.1 原子操作4.2 锁的软件实现方法4.3 屏障软件…

关于 CPU 的多核和超线程技术

1. 关于 CPU 的多核和超线程技术 CPU 的物理个数由主板上的插槽数量决定,每个 CPU 可以有多核心,每核心可能会有多线程。 多核 CPU 的每核(每核都是一个小芯片),在 OS 看来都是一个独立的 CPU。 对于超线程 CPU 来说,每核 CPU …

手机的开机流程分析(pmic角度)

【前言】 电源是手机soc必不可缺的部分之一,那么开机的过程是怎么样的呢,接下来我会从硬件角度分析。 【开机源】

RK3588 PMIC/Power电路 PCB 设计指南

以下为RK3588 电源各供电电路 PCB 设计指南。 1、VDD_LOGIC,VDD_GPU,VDD_NPU,VDD_CPU电源的 DC-DC 远端反馈设计。 100ohm反馈电阻需要靠近输出电容放置,电阻一端连接到 DC-DC 输出电容,另一端连接到PMIC 的VOUT 反馈脚…

linux电源管理配置,Exynos 4412 电源管理芯片PMIC 的配置及使用方法

开发板:迅为4412精英版。 uboot:uboot-2014-10。 PMIC:SAMSUNG S5M8767A 在移植新版u-boot的时候,上网搜电源管理芯片的使用方法资料,发现几乎没有,就算是datasheet也很难下载得到,不知是何原因…

RK3399平台开发系列讲解(电源管理篇)11.10、PMIC(生产者)驱动数据结构体

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、结构描述二、约束结构三、初始化数据结构四、配置结构五、设备操作结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux调节器框架设计用于连接和控制电压和电流调节器。它分为以下…

camera 添加外挂pmic进行供电的涉及

凡是多问几个为什么? 当今camera设计为什么越来越喜欢用外接的pmic? 很多大厂的camera都用到了wl2864,wl2868这样的外接pmic芯片,为什么套片上自带的pmic在已经比较充足的情况下依然加大成本还要这样做呢? 在一个典…

SOC电源管理系统PMIC

SOC电源管理系统 版权声明: 本文作者: 烓围玮未 首发于知乎专栏:芯片设计进阶之路 转发无需授权,请保留这段声明。 随着SOC越来越复杂,包含的IP越来越多,单个SOC上实现了CPU, 射频模块,相机…

mtk-pmic

简单介绍了mtk6353这颗pmic各部分的功能 一.功能框图 6353主要由如下几部分组成 1.电平转换:LDO和buck 2.LED驱动current sink 3.RTC 4.电压检测AUXADC 5.控制信号:上下电时序,系统复位,异常处理 6.充电控制 7.audio codec 8.电量计fuel gauge 二.各部分介绍 1.电平转换 这…

高通Pmic闪光灯代码架构

msm-kernel 注册一个名为"leds-qti-flash"的驱动,驱动代码在"leds-qti-flash.c"文件中。 对下:实现对pmic芯片更新寄存器,也就是实际控制闪光灯的操作。 对上:提供led_classdev结构体,即flash/sw…

Qcom 平台 pmic adc读取代码实现

Qcom 平台读取pmic上 adc电压值的方法 如下图,可以通过平台提供的节点(参考高通文档将mpp配置为adc功能) cat对应的节点获取结果; 也可以通过自行实现的驱动中调用相关接口并转化结果; Kernel demo 参考代码&#x…

浅谈Linux PMIC驱动(一)

转眼间,从事PMIC驱动开发已将近4年,前后参与两款PMIC芯片研发,一款自研,一款Q公司PMIC,对PMIC有了一定的理解,将其总结归纳,算是这几年工作的收获吧? 读者对象:对PMIC感…

PMIC/SBC/PMU 电源管理芯片工作原理

目录 PMIC/SBC作用 DC转换的方式 PMIC 与ASIL PMIC 工作逻辑 PMIC与DDR的关系 PMIC与CPU PMIC/SBC/PMU作用 PMIC:power management IC的缩写,中文是电源管理集成电路。 SBC:…

PMIC 工作原理

1. PMIC芯片每个电压的输出可以通过外部EEPROM定制,若无EEPROM,使用默认的配置; 2. PMIC需要外部给一个使能信号开始工作 3. PMIC支持多种工作模式:BACKUP、ACTIVE、STANDBY 参考PMCI数据手册: BD9574MWF-M Power …

信号与系统--幅度谱和相位谱

周期信号的频谱 为了能既方便又明白地表示一个信号在不同频率下的幅值和相位,可以采用成为频谱图的表示方法。 在傅里叶分析中,把各个分量的幅度|Fn|或 Cn 随着频率nω1的变化称为信号的幅度谱。 而把各个分量的相位 φn 随角频率 nω1 变化称为信号的…

关于信号相位、信号阶段的解释

相位阶段(stage):  是根据交叉口通行权在一个周期内的更迭次数来划分的,一个信号周期内"通行权"的交接几次,就是几个信号阶段。也就是说只要信号灯色有变化(红、黄除外),相位阶段就发生了变化。…

基于stm32的两路正弦波相位差测量

利用stm32测量两路正弦波相位差,有四种主要思路: 1. 两路直接捕获信号直接得到时间差 即将正弦波过比较器变成方波(stm32直接测量正弦波也可以的,频率较大时误差基本上在忍受范围的),开启两路捕获得到上升…

信号控制基本概念(相位和阶段)

本科上课时都上过这些,但是后来做科研没做这个方向,时间一长就都忘了,最近实习做信号控制相关,得拾起来,要不然被人嘲笑了。内容主要参考这篇文章,写的挺好的,也很全面,接下来概括下…