233

内核和处理器有什么区别?

我已经在谷歌上找过了,但我只得到了多核和多处理器的定义,这不是我要找的。

4

7 回答 7

217

内核通常是 CPU 的基本计算单元——它可以运行单个程序上下文(如果它支持硬件线程,例如 Intel CPU 上的超线程,则可以运行多个程序上下文),保持正确的程序状态、寄存器和正确的执行顺序,以及通过ALU执行操作。出于优化目的,核心还可以保存带有常用内存块副本的核心缓存。

CPU 可能有一个或多个内核来在给定时间执行任务。这些任务通常是操作系统调度的软件进程和线程。请注意,操作系统可能有许多线程要运行,但 CPU 在给定时间只能运行 X 个这样的任务,其中 X = 核心数 * 每个核心的硬件线程数。其余的将不得不等待操作系统通过抢占当前正在运行的任务或任何其他方式来安排它们。

除了一个或多个内核之外,CPU 还包括一些将内核连接到外部世界的互连,通常还包括一个大型的“最后一级”共享缓存。使 CPU 工作还需要多个其他关键元素,但它们的确切位置可能因设计而异。您需要一个内存控制器来与内存、I/O 控制器(显示器、PCIe、USB 等)通信。在过去,这些元素在 CPU 之外,在互补的“芯片组”中,但大多数现代设计都将它们集成到 CPU 中。

此外,CPU 可能有一个集成的 GPU,以及设计人员出于性能、功率和制造方面的考虑而想要保持的几乎所有其他东西。CPU 设计主要趋向于所谓的片上系统(SoC)。

这是一种“经典”设计,被大多数现代通用设备(客户端 PC、服务器以及平板电脑和智能手机)使用。您可以找到更精细的设计,通常是在学院中,计算不是在基本的“类核心”单元中完成的。

于 2013-10-11T09:05:39.830 回答
145

一张图片可能会说一千多个单词:

一张图片可能会说一千多个单词

* 图描述了现代多处理器、多核系统的复杂性。

资源:

https://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization

于 2014-05-21T23:55:38.573 回答
29

让我们首先澄清一下什么是CPU,什么是核心,中央处理单元CPU,可以有多个核心单元,这些核心本身就是一个处理器,能够执行程序但它自包含在同一个芯片上。

过去一个 CPU 分布在多个芯片中,但随着摩尔定律的发展,他们在一个芯片(die)中拥有一个完整的 CPU,从 90 年代开始,制造商开始在同一个 die 中安装更多内核,所以这就是多核的概念。

如今,在同一个 CPU(芯片或芯片)GPU、Intel Xeon 上可能拥有数百个内核。90 年代开发的其他技术是同时多线程,基本上他们发现可以在同一个单核 CPU 中拥有另一个线程,因为大多数资源已经像 ALU 一样复制了多个寄存器。

所以基本上一个 CPU 可以有多个核心,每个核心都能够同时运行一个或多个线程,我们可能期望未来有更多的核心,但更难高效编程。

于 2014-05-19T10:29:38.277 回答
10

CPU是中央处理单元。自 2002 年以来,我们只有单核处理器,即我们一次只能执行一个任务或一个程序。

为了一次运行多个程序,我们必须使用多处理器一次执行多个进程,因此我们需要另一块主板,这非常昂贵。

因此,英特尔引入了超线程的概念,即将单个 CPU 转换为两个虚拟 CPU,即我们有两个内核来完成我们的任务。现在 CPU 是单 CPU,但它只是假装(伪装)它有一个双 CPU 并执行多个任务。但是拥有真正的多核会比这更好,因此人们开发制造多核处理器,即在一个盒子上的多个处理器,即在单个大 CPU 上抓取多个 CPU。即多核。

于 2015-03-27T14:04:51.057 回答
5

在早期......就像 90 年代之前......处理器无法高效地执行多项任务......因为单个处理器只能处理单个任务......所以当我们过去常说我的杀毒软件、微软 word、vlc 等。软件都在同一时间运行......这实际上不是真的。当我说处理器一次可以处理一个进程时……我是认真的。它实际上会处理一个任务......然后它曾经暂停该任务......接受另一个任务......如果它很短,或者再次暂停它并将其添加到队列中......然后是下一个。但是我提到的这个“暂停”是如此之小(大约 1ns),以至于您不明白任务已暂停。例如。在 vlc 上,一边听音乐一边运行其他应用程序,但正如我告诉你的那样......一次一个程序......

但这是关于旧处理器的......

现在的处理器,即第 3 代 pc 具有多核处理器。现在,“内核”可以与第一代或第二代处理器本身进行比较……嵌入到单个芯片、单个处理器上。所以现在我们了解了什么是内核,即它们是迷你处理器,它们组合成一个处理器。并且每个内核可以一次处理单个进程或为操作系统设计的多线程。他们遵循我上面提到的关于单处理器的相同步骤。

例如。i7 6gen 处理器有 8 个内核...即 1 个 i7 中有 8 个迷你处理器...即它的速度是旧处理器的 8 倍。这就是多任务处理的方式。

单个处理器中可能有数百个内核,例如。英特尔 i128。

我希望我能很好地解释这一点。

于 2017-10-29T11:44:26.830 回答
3

我已经阅读了所有答案,但是这个链接对我来说更清楚地解释了 CPU(处理器)和核心之间的区别。所以我要从那里留下一些笔记。

CPU与Core之间的主要区别在于, CPU是计算机内部的电子电路,它执行指令以执行算术,逻辑,控制和输入/输出操作,而内核是CPU内部的执行单元,用于接收和执行指令。

在此处输入图像描述

于 2020-12-12T07:32:41.290 回答
0

英特尔的图片很有帮助,如 Tortuga 的最佳答案所示。这是它的标题。

处理器:一个半导体芯片,CPU(中央处理器)安装在一个插槽中,大约在 1950 年代至 2010 年代。随着时间的推移,更多的功能被打包到 CPU 芯片上。在 1950 年代发布的单芯片处理器之前,一个处理器可能分布在多个芯片上。在 2010 年代中期,片上系统芯片使得将一个处理器等同于一个芯片变得更加粗略,尽管这通常是人们所说的处理器,例如“这台计算机有一个 i7 处理器”或“这台计算机系统”有四个处理器。”

核心:CPU 的一个块,一次执行一条指令。(你会看到人们说每个时钟周期一条指令,但有些 CPU 对某些指令使用多个时钟周期。)

于 2018-08-30T04:04:30.160 回答