如何理解处理器、CPU、多处理器、内核、多核?_处理器和处理器内核-程序员宅基地

技术标签: 计算机原理  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
来源:知乎

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/alicee_2012/article/details/122898790

智能推荐

CH340系列介绍和STM32的BOOT模式选择烧录模式_ch340n-程序员宅基地

文章浏览阅读6.2k次,点赞7次,收藏33次。STM32入门必须要了解的知识。_ch340n

谷歌云盘将共享链接中的文件保存到自己的云盘中_谷歌云盘怎么保存别人分享的文件-程序员宅基地

文章浏览阅读1.5w次,点赞3次,收藏17次。如何将别人共享的谷歌云盘文件复制到自己的云盘?问题介绍工具使用问题介绍谷歌云盘google drive在接收别人共享的文件时,文件的所有者是原作者,被共享者虽然暂时是可以正常访问该文件的全部信息,但是一旦原有作者删除该文件,被共享者就不能够再访问该文件,因此此时需要将该文件复制到自己的云盘中,以防止内容过期。工具Google colab使用1、首先将分享文件的快捷方式添加到 My Drive 中2、进入google colab,绑定谷歌云盘,黑框所示,第三个图标(可能右侧会提示运行一个代码块_谷歌云盘怎么保存别人分享的文件

uniapp 实现app版本更新_uniapp封装js版本号更新-程序员宅基地

文章浏览阅读529次。在显示版本信息页面,增加点击事件,点击时调用检测版本方法。在登录成功以后调用之前写好的检测版本的js;在onLaunch周期里面更改为true;在登录界面获取这个变量,并更改为false。至此登录检测更新就可以了。_uniapp封装js版本号更新

局域网唤醒计算机,电脑远程开机_局域网唤醒电脑 | 茶杯猫-程序员宅基地

文章浏览阅读4.9k次。需要从你家的另一个房间快速打开你的电脑吗?有了局域网唤醒,你就可以了。下面是如何设置它以及为什么要使用它。有没有想过你可以把电脑从睡眠模式中唤醒,而不必费力地走过去,按下电源按钮?Wake-on-LAN允许您使用其网络连接打开计算机,因此您可以通过轻触按钮从家中的任何位置启动计算机。例如,我经常使用Chrome远程桌面访问楼上的工作站。但如果我的工作站在睡觉,我不需要上楼去打开它。LAN唤醒允许我..._局域网唤醒电脑开机

报名PMP考试需要满足哪些条件?-程序员宅基地

文章浏览阅读227次,点赞6次,收藏4次。项目经验这一点,PMP报考人员是需要有项目管理经验,而所说的具有多少小时的项目管理经验,指的是项目相关经验,比如参与项目研发、测试、交付、运维、技术支持、售前等,这个项目经验也是一个国际上的广义概念,万事皆成项目,做的任何工作都可以规划成是项目。

720云手机电动云台全新上市,让手机能自动拍摄亿万像素VR全景-程序员宅基地

文章浏览阅读638次,点赞21次,收藏14次。除了VR全景拍摄模式,720云手机电动云台还具有3D物体摄影、延时摄影的功能,亦可充当普通视频拍摄的稳定器。通过720云手机电动云台,希望为不同行业需要进行VR全景影像采集、VR全景营销宣传、VR展厅、VR全景工程等需求,提供一个简单、高效、可靠的全景拍摄解决方案,让每个人都能够轻松将VR全景这一独特的视觉技术运用到工作与生活之中。720云的手机电动云台,以其极简操作,超强的亿像素拍摄能力、坚固轻便的设计、极致的使用便捷性,为追求高质量全景图像的专业摄影师和爱好者带来了全新的创作体验。

随便推点

自动更新Android应用后, app 进入后台重进会重启_安卓app每次启动会检测更新并自动更新后提升重启-程序员宅基地

文章浏览阅读4.2k次。[转]从Installer直接打开应用程序会出现Android系统bug2014-12-16阅读194 评论1问题现象:用Android系统自带的Installer安装完应用后,会有以下两个不同表现:1,用户直接在installer界面打开应用。然后按home键后台运行,此时如果再点击该应用的launcher图标或者快捷方式进入,会发现该应用又会从该应用第一个页_安卓app每次启动会检测更新并自动更新后提升重启

Vue--》超详细教程——vue-cli脚手架的搭建与使用_vue-cil脚架-程序员宅基地

文章浏览阅读4.4k次,点赞69次,收藏72次。它简化了程序员基于webpack创建工程化的Vue项目的工程。其好处就是简省了程序员花费时间去配置webpack,从而目标只需专注在撰写项目应用上。,基于vue-cli这个系统,我们就可以快速搭建好“(英文名:Singleagepplication)简称SPA,顾名思义指的是,所有的功能与交互都在这唯一的一个页面内完成。_vue-cil脚架

python给游戏增加音效-程序员宅基地

文章浏览阅读256次,点赞2次,收藏2次。模块在播放音效时可能会占用一定的系统资源,特别是在同时播放多个音效时。如果你的游戏需要频繁播放音效,你可能需要考虑优化音效管理,例如使用音效池或限制同时播放的音效数量。在上面的代码中,我们在射击时播放射击音效,在敌人被击中时播放爆炸音效。你可以根据游戏的实际情况在其他事件(如玩家死亡、关卡开始等)中添加音效播放。替换为你的音效文件的实际路径。如果你的音效文件是其他格式,确保它们与。Kimi: 为了增加音效播放功能,你需要首先确保你的音效文件(例如。格式)已经准备好,并且放在你的项目目录中。

深度网络二手市场在线推荐-程序员宅基地

文章浏览阅读78次。这篇文章的一个启发点是使用Siamese网络和注意力模型将不同类别的特征集成,从而解决数据缺失的问题,然而文章中没有具体讲出注意力模型的参数是如何训练的,即模型上层如何得知下层不同子模型的数据是否缺失,是通过逻辑判断?还是直接用0值训练?或者用各模型的数据单独训练注意力参数?原文地址 https://arxiv.org/abs/1809.02130本文地址:https://www.c..._二手交易平台分类深度学习

CS229吴恩达机器学习入门(全部编程习题的matlab答案\包含原始课件\做过标记的课件\上课网站\习题网站\自己总结的笔记)_cs229习题-程序员宅基地

文章浏览阅读1.7k次,点赞5次,收藏38次。吴恩达机器学习入门,十分适合第一次接触机器学习,或者想为深度学习打基础的同学。大家可以现在coursera上注册一个账号,可以设置每周的学习进度,有每章相应的课后习题和八个编程作业,可以提交编程作业来检查做的对不对,全部完成后会得到徽章,有几个题目图片https://www.coursera.org/learn/machine-learning/home/info刷新不出来,可以科学上网后就可以看到了。coursera网站:https://www.coursera.org/learn/machine_cs229习题

javaweb面试题(全)_web编写代码输出如下内容 姓名 小明 学号 001 性别 男 java 100的表格-程序员宅基地

文章浏览阅读1.2w次,点赞10次,收藏65次。目录1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?............82、Java有没有goto?.................................................................................................83、说说&和&&的区别。............._web编写代码输出如下内容 姓名 小明 学号 001 性别 男 java 100的表格

推荐文章

热门文章

相关标签