首次发明个人计算机时,它们的中央处理器(CPU)是独立的,只有一个处理器核心。 处理器本身 就是 核心。 拥有多核处理器的想法还没有听说过。 如今,看到具有多核的计算机,电话和其他设备已经很常见了-实际上,几乎每种类型的商用计算机都具有多核。 这些内核位于同一,单个,CPU或中央处理单元中。
具有多个内核是一个很大的优势。 一台计算机只有一个核心,一次只能处理一项任务,必须先完成一项任务,然后再转移到另一项任务。 但是,有了更多的内核,计算机就可以一次处理多个任务,这对那些执行大量多任务处理的人特别有用。
在深入探讨多核处理器的工作原理之前,有必要先讨论一下处理技术的背景知识,然后再讨论多核处理器的作用,这一点很重要。
一些历史
在构建具有多核的处理器之前,诸如Intel和AMD之类的人和公司试图构建具有多个CPU的计算机。 这意味着需要一块具有多个CPU插槽的主板。 这不仅更昂贵,因为另一个CPU插槽需要物理硬件,而且由于两个处理器之间需要增加通信而增加了延迟。 母板必须在计算机中两个完全独立的位置之间分割数据,而不是简单地将所有数据发送到处理器。 实际上,物理距离确实意味着过程较慢。 将这些过程放在具有多个内核的一个芯片上,不仅意味着行进距离更短,而且还意味着不同的内核可以共享资源来执行特别繁重的任务。 例如,英特尔的Pentium II和Pentium III芯片均实现为在一个主板上具有两个处理器的版本。
不久之后,处理器需要变得更强大,因此计算机制造商提出了超线程的概念。 该概念本身来自英特尔,最初于2002年在该公司的Xeon服务器处理器上提出,后来在其Pentium 4台式机处理器上提出。 如今,超线程仍在处理器中使用,甚至是英特尔i5芯片与其i7芯片之间的主要区别。 它主要利用了以下事实:处理器中经常有未使用的资源,特别是在任务不需要太多处理能力的情况下,这些资源可用于其他程序。 使用超线程的处理器基本上将自己呈现给操作系统,就好像它具有两个内核一样。 当然,它实际上并没有两个核心,但是对于两个使用一半或更少可用处理能力的程序,也可能会有两个核心,因为它们可以一起利用所有功能。处理器必须提供。 但是,如果没有足够的处理能力在使用该内核的两个程序之间共享,则超线程将比具有两个内核的处理器稍慢。
您可以在此处找到有见地的视频,其中简要介绍了有关超线程的详细信息。
多处理器
经过大量实验,终于可以构建具有多个内核的CPU。 这意味着一个处理器基本上具有一个以上的处理单元。 例如,双核处理器有两个处理单元,四核有四个处理单元,依此类推。
那么为什么公司要开发具有多个内核的处理器? 嗯,对更快的处理器的需求越来越明显,但是单核处理器的发展却在放缓。 从1980年代到2000年代,工程师们能够将处理速度从几兆赫兹提高到几兆赫兹。 像Intel和AMD这样的公司通过缩小晶体管的尺寸来做到这一点,从而在相同的空间内允许更多的晶体管,从而提高了性能。
由于处理器时钟速度与芯片上可容纳的晶体管数量密切相关,因此当晶体管缩小技术开始放缓时,处理器速度提高的发展也开始放缓。 虽然这并不是公司第一次了解多核处理器,但它是他们开始出于商业目的尝试使用多核处理器的时候。 尽管多核处理器是在1980年代中期首次开发的,但它们是为大型公司设计的,直到单核技术开始变慢才真正重新审视。 第一个多核处理器由罗克韦尔国际公司(Rockwell International)开发,是6501芯片的一个版本,在一个芯片上具有两个6502处理器(更多详细信息,请参阅此Wikipedia条目)。
多核处理器做什么?
好吧,这实际上非常简单。 具有多个核心可以一次完成多个任务。 例如,如果您正在处理电子邮件,打开Internet浏览器,正在处理excel电子表格并正在iTunes中听音乐,则四核处理器可以一次处理所有这些操作。 或者,如果用户有一项需要立即完成的任务,则可以将其拆分为更小,更易于处理的任务。
使用多个内核也不仅限于多个程序。 例如,谷歌浏览器使用不同的过程渲染每个新页面,这意味着它可以一次利用多个核心。 但是,某些程序就是所谓的单线程程序,这意味着它们不是为能够使用多个内核而编写的,因此不能这样做。 超线程再次在这里发挥作用,允许Chrome将多个页面发送到一个实际核心上的两个“逻辑核心”。
与多核处理器和超线程并驾齐驱是一个称为多线程的概念。 本质上,多线程是操作系统将代码分成最基本的形式或线程,并同时将其馈送到不同内核的能力,从而可以利用多个内核。 当然,这在多处理器以及多核处理器中都很重要。 多线程比听起来复杂得多,因为它要求操作系统正确地对代码进行排序,以使程序可以继续高效运行。
操作系统本身会对自己的进程执行类似的操作–不仅限于应用程序。 操作系统进程是操作系统始终在后台执行的操作,而无需用户一定知道。 由于这些进程一直在进行,因此拥有超线程和/或多个内核可能会非常有帮助,因为它可以释放处理器以处理其他事情,例如应用程序中发生的事情。
多核处理器如何工作?
首先,主板和操作系统需要识别处理器,并且有多个内核。 较旧的计算机只有一个核心,因此,如果用户尝试将其安装在具有多个核心的较新计算机上,则较旧的操作系统可能无法正常运行。 例如,Windows 95不支持超线程或多核。 所有最新的操作系统都支持多核处理器,包括Windows 7、8,新发布的10和Apple的OS X 10.10。
简而言之,操作系统然后告诉主板需要完成一个过程。 主板然后告诉处理器。 在多核处理器中,操作系统可以告诉处理器一次执行多项操作。 本质上,通过操作系统的指导,数据通过主板从硬盘驱动器或RAM移动到处理器。
多核处理器
在处理器内,有多个高速缓存存储器,这些高速缓存存储器保存用于处理器的下一个或多个操作的数据。 这些级别的缓存可确保处理器不必费神就可以找到下一个进程,从而节省了大量时间。 高速缓存存储器的第一级是L1高速缓存。 如果处理器在L1高速缓存中找不到下一步处理所需的数据,则将查找L2高速缓存。 L2缓存在内存中较大,但比L1缓存慢。
单核处理器
如果处理器在L2高速缓存中找不到所需的内容,则继续沿线到达L3,如果处理器具有L4,则继续。 之后,它将查找主内存或计算机的RAM。
不同处理器处理差异缓存的方式也不同。 例如,某些文件在L2缓存上的L1缓存上复制了数据,这基本上是一种确保处理器可以找到所需内容的方法。 当然,这确实会占用L2缓存中的更多内存。
不同级别的缓存在多核处理器中也起作用。 通常,每个内核都有自己的L1缓存,但是它们将共享L2缓存。 这与有多个处理器的情况不同,因为每个处理器都有自己的L1,L2和任何其他级别的缓存。 使用多个单核处理器,根本就不可能共享缓存。 拥有共享缓存的主要优势之一是可以最大程度地使用缓存,这是因为,如果一个核心不使用缓存,而另一个则可以。
在多核处理器中,当搜索数据时,核心可以查看其自己的唯一L1缓存,然后分支到共享的L2缓存,RAM,最后到硬盘。
我们可能会继续看到更多核心的发展。 处理器时钟速度肯定会继续提高,尽管速度要比以前慢。 虽然现在在智能手机等产品中看到八核处理器已经很普遍,但很快我们就能看到带有数十个内核的处理器。
您认为多核处理技术下一步将走向何方? 在下面的评论中或者通过在我们的社区论坛中启动新话题让我们知道。