单核CPU vs. 多核CPU

article/2025/8/23 10:37:14

单核CPU vs. 多核CPU

单核CPU

起源:

CPU的起源是1971年英特尔公司推出,由此正式宣告计算机的诞生,可以说是世界级的改变,并且严格准守冯诺依曼体系结构,在英特尔推出CPU之前的计算机所使用的处理器工作是非常麻烦的,需要复杂的线路组合才能使其正常工作,当然英特尔推出的CPU也是需要线路组合,但是相比之前的线路英特尔的要较为简洁,并且英特尔将这些线路组合称为总线!

工作原理:

单核CPU较为死脑,在通电时该CPU就会执行存储块中的指定地址的指令,如果你想要执行内存块其他地方的代码必须调整总线位置才可以让其执行!

单核CPU就相当于阻塞程序,在工作期间只能执行某一个程序!

单核(超时间轴)CPU

显而易见,单核CPU并不是长久的,所以英特尔推出了时间轴的工作方式,一个CPU干上两个或两个以上的CPU的活。因为CPU的工作速度取决于晶体管,晶体管越多,CPU每秒工作率就越大,英特尔就想了一个增加CPU的晶体管的办法,让CPU的工作频率赫兹增加,然后增加北桥芯片用于和内存通讯,再将地址总线与内存对应起来(以次方的方式),这样就无需每次执行其他程序前修改一次线路了。

最后需要操作系统的帮忙,当CPU通电时会一直执行某一块内存的代码,但是无需手动修改线路了。此外CPU中还有时钟电路,该电路用于控制CPU多少毫秒跳转到指定地址,那么操作系统可以利用时钟电路让其CPU跳转到其他地方,然后再跳转回来!

PS:晶体管是一种固体半导体器件,具有检波、整流、放大、开关、稳压、信号调制等多种功能。晶体管作为一种可变电流开关,能够基于输入电压控制输出电流。

多核CPU

多核CPU,即多个CPU组成。这些CPU集成在一个芯片里,可以通过内部总线来交互数据,共享数据,这些CPU中分配出一个独立的核执行操作系统,每个核都有自己的寄存器,ALU运算单元等(这些都是封装在CPU内部的),但是一级二级缓存是共享的,这些CPU通过总线来交互数据,并且工作是并行的,资源分配是由操作系统来完成,操作系统来决定程序CPU的控制权分配,所以一个多核CPU的工作效率大多体现在操作系统的分配上,因为一个CPU基本上可以执行很多个程序,通过PCB进程控制块的方式存储当前代码段,然后来回跳转,所以当CPU核过多时,操作系统在分配时可能会导致部分CPU闲置!

多个CPU

即拥有多个CPU的主机,每个CPU只能用来独立执行不同的程序,这些CPU都是单核的,不用在家用电脑,只用在特定的机器上。因为单核CPU执行一个程序比来回跳转执行的速度要快很多,但是难以管理。每个CPU有自己的总线,一级二级缓存,那么这样需要更大的占用面积,更多的总线,因为这些CPU不是封装在一个芯片里的!

单核CPU和多核CPU的区别:

双核的优势不是频率,而是对付同时处理多件事情。单核同时只能干一件事,比如你同时在后台BT下载,前台一边看电影一边拷贝文件一边QQ。这么多程序同时需要CPU来响应要靠操作系统,Windows本身就是多线程操作系统(DOS就是单线程系统,DOS下双核和单核没区别,处理一个任务时必须停下来等待处理结束才能干下一件事),它可以把每个处理任务划分为“多份”,多个处理任务按顺序排成队列,这样单核的CPU可以一次处理“一份”,轮流处理每个程序的“份”,这样感觉就是CPU同时在干几件事了。但如果CPU不够强劲,同时排队等待处理的东西太多了,那就会感觉系统在等待、有延时、反应慢等症状。再或者某个程序出现错误,死机了,造成后面排队的其他任务都在那里干等,造成系统无反应。

双核CPU就是基板上集成有多个单核CPU,自己集成了任务分配系统,再搭配操作系统就能真正同时开工,两个核心同时处理“两份”任务,速度快了,万一一个核心死机,起码另一个CPU还可以继续处理关闭软件、关机等任务。

所以一方面每个核心的性能还在发展,另一方面多核心集成的手段双管齐下,这样CPU的性能可以迅速提升。1G双核应该比1G单核快近2倍,那么1G的4核应该比1G的双核快近2倍!如果有4G的双核,那么应该和2G的四核性能近似。


下面是一些道友的见解,记录于此处,便于以后查阅:

@ 单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已, 系统给每个线程分配时间片来执行, 每个时间片大概10ms左右, 看起来像是同时跑, 但实际上是每个线程跑一点点就换到其它线程继续跑。

@ 多线程的用处在于,做某个耗时的操作时,需要等待返回结果,这时用多线程可以提高程序并发程度。如果一个不需要任何等待并且顺序执行能够完成的任务,用多线程简直是浪费。

@ 线程必然不是越多越好,线程切换也是要开销的,当增加一个线程时,额外开销要小于该线程能够消除的阻塞时间,这才叫物有所值。Linux自从2.6内核开始,就会把不同的线程交给不同的核心去处理。Windows也从NT.4.0开始支持这一特性。

@ 什么时候该使用多线程呢?这要分四种情况讨论:

a.多核CPU——计算密集型任务。此时要尽量使用多线程,可以提高任务执行效率,例如加密解密,数据压缩解压缩(视频、音频、普通数据),否则只能使一个核心满载,而其他核心闲置。

b.单核CPU——计算密集型任务。此时的任务已经把CPU资源100%消耗了,就没必要也不可能使用多线程来提高计算效率了;相反,如果要做人机交互,最好还是要用多线程,避免用户没法对计算机进行操作。

c.单核CPU——IO密集型任务,使用多线程还是为了人机交互方便。

d.多核CPU——IO密集型任务,这就更不用说了,跟单核时候原因一样。

@ CPU的多核和应用程序的多线程的关系

        多核指的是CPU有多个核心,多线程是程序有多个线程在同时执行。

        多核要用多线程才能发挥优势。同样,多线程要在多核上才能真正有优势。

        这点来说,对程序员不是透明的。程序员可以控制程序/线程在哪个CPU(核)上运行。用户也可以控制程序在哪几个核上运行。所以,多核、多线程对用户和程序员都不是透明的。


继续补充一点关于“进程、线程”的知识

进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,即进程是操作系统进行资源分配的最小单元。进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。

线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。

每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。

多线程可以实现并行处理,避免了某项任务长时间占用CPU。要说明的一点是,目前大多数的操作系统教材中的单处理器都是指的单核处理器。对于单核单处理器(CPU),为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,这就给人一种假象,好像这些线程都在同时运行。由此可见,如果两个非常活跃的线程为了抢夺对CPU的控制权,在线程切换时会消耗很多的CPU资源,反而会降低系统的性能。

最开始,线程只是用于分配单个处理器的处理时间的一种工具。但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器,只需将程序编写成多线程模式即可。程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校。

根据前面的论述,大家可能感觉线程处理非常简单。但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。举个例子来说,两个线程不能将信息同时发送给一台打印机。为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。

线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。

最简单的比喻,多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。同时它的出现也带来了一些问题。

注:单核处理器并不是一个长久以来存在的概念,在近年来多核心处理器逐步普及之后,单核心的处理器为了与双核和四核对应而提出。顾名思义处理器只有一个逻辑核心。

多核处理器和多处理器的区别

多核是指一个CPU有多个核心处理器,处理器之间通过CPU内部总线进行通讯。而多CPU是指简单的多个CPU工作在同一个系统上,多个CPU之间的通讯是通过主板上的总线进行的。

从以上原理可知,N个核的CPU,要比N个CPU在一起的工作效率要高(单核性能一致的情况下)。 


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

相关文章

多核计算机是指有多个cpu,多核和多个CPU有什么区别?

多核和多个CPU有什么区别? 多核和多个CPU有什么区别?首先让我们了解以下两项: 什么是多核CPU?简单的理解是,我们将多个内核加载到一个程序包中,让用户了解这是一个处理器. 这样做的好处是,最初在单台计算机…

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

文章目录 1 cpu架构和工作原理2 多核cpu和多cpu架构3 进程和线程4 多核、多CPU与多线程、多进程的对应关系5 总结 1 cpu架构和工作原理 计算机有5大基本组成部分,运算器,控制器,存储器,输入和输出。运算器和控制器封装到一起&…

多核与多处理器的区别

一、定义 多核:单块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):  是根据交叉口通行权在一个周期内的更迭次数来划分的,一个信号周期内"通行权"的交接几次,就是几个信号阶段。也就是说只要信号灯色有变化(红、黄除外),相位阶段就发生了变化。…