如何理解处理器、CPU、多处理器、内核、多核?

最近在学计算机原理,涉及到核心数的概念,不太理解,在网上找资料阅读了几篇文章,发现这篇文章的解释容易理解,于是搬运过来。

按照时间顺序或者说是CPU的发展顺序逐个解释好了:

一、处理器 Processor

处理器就是对程序指令进行处理的设备,指令可以分为三大类,第一类是对数据进行某种运算,例如对两个整数进行相加、相乘之类的。第二类是对数据进行读取、存储。第三类是对指令本身进行操作,例如分支、跳转等。

二、中央处理器和协处理器 CPU and Coprocessor

某些计算机因为通用处理器的性能无法满足应用的性能需要,可以通过加装特殊的专用处理器来提供特定应用的性能。例如早期的CPU没有浮点计算单元,需要计算浮点数据的可以加装FPU(floating-point unit,浮点单元)提高浮点数的计算性能(没有FPU的CPU也可以计算浮点数,但很慢);现代的显卡可以用来进行多种并行运算,其运算性能远高于普通的CPU,也叫GPU(graphics processing unit ,图形处理器);谷歌专门为机器学习打造的TPU(Tensor processing unit,张量处理器)。这些专用处理器有一个统一的名词叫Coprocessor,协处理器。

同时插有386CPU和387FPU的主板[1]

为了与协处理器区分,传统的处理器一般称之为CPU(Central Process Unit,中央处理器)。

三、多处理器 Symmetric MultiProcessing

早期的分布式计算、集群技术尚未成熟普及,单个CPU的性能对于普通用户来书通常是够用的。但对于服务器来说,则是永远都嫌不够的。因此在服务器市场,一直有多路CPU配置的存在。一般来说,多个CPU都是相同的型号,所以叫SMP(Symmetric MultiProcessing,对称多处理器)。在x86架构上第一款支持SMP的处理器是Pentium Pro。

插有两块Pentium Pro的Tyan S1668[2]

当然,为了在一个系统中同时容纳两个甚至四个CPU,主板布局、散热设计都需要进行大量的改进,SMP系统的价格往往较为高昂。

四、多核心 Core

早期CPU性能提升的重要手段是提升频率,在1995年~2001年6年间,单以Intel的P6架构为例,CPU频率从Pentium Pro的150MHz提升到Pentium III的1.13GHz,提升幅度高达750%。但随着半导体制程逐步成熟,CPU的频率提升逐渐放缓,在Pentium 4上还遇到了功耗问题导致Netburst架构提前终止。在此期间,CPU厂商把SMP技术应用在单个CPU中,为了与SMP区分,单个物理CPU内,等同原来单个CPU的模块称之为Core(核心),这样的CPU称之为多核CPU。也有根据具体的CPU核心数量成为双核/四核CPU这样。

双核心的Pentium D[3]

事实上,对于操作系统和软件来说,多核心与对称多处理器并没有区别。但硬件成本方面则可以比SMP系统便宜很多。

五、内核 Kernal

至于内核,则是操作系统层面的术语。在早期的计算机都是非常大型的机器,价格也非常昂贵,一台价格高昂的计算机给单个用户使用是不现实的。或者更准确一点来说,让一台大型机闲置下来等待某个用户响应或者某个IO设备响应是非常浪费的。因此就有了多任务应用(Multi-Tasking)。不同应用通常是通过排队、轮询、中断等方式进行切换运行,这个不展开了。

多任务应用的一个挑战是内存保护。如果两个应用访问同一个物理地址上的数据,其中一个对这个地址的数据进行了更改,可能导致另外一个应用运行错误甚至崩溃。因此就有了虚拟内存这个技术。就是操作系统给每个应用分配一段地址空间,但对应的物理地址是不同的。假设应用A需要访问0x20这个地址的数据,可能真正的物理内存地址为0x40;而同时运行的应用B也需要向0x20这个地址写入数据,写入的真实物理内存地址为0x80,对应用程序A没有任何影响。

而把物理内存地址0x40映射给应用A的0x20,物理内存地址0x80映射给应用B的0x80,是由操作系统的特定模块实现的,很显然,它必须能够访问整个真实的地址空间。这个模块就是操作系统的内核(Kernel)。当然,除了这个模块本身以外,还有相当多操作系统的模块是需要使用真实内存地址的,例如各种硬件驱动,文件系统驱动等。操作系统中的其它应用,则可以工作在保护模式下,这类应用的工作模式有一个专用名词叫用户模式(User Mode),与之对应的则是内核模式(Kernel Mode)。

Linux中Kernel Mode和User Mode的划分[4]

作者:木头龙
链接:https://www.zhihu.com/question/321291471/answer/660626351
来源:知乎

  • 7
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值