多核基本概念
作者:互联网
要讨论多核环境下的操作系统所做的调整,首先需要知道多核环境和单核环境的不同之处。我们首先来看一下多核的一些基本概念。在x86体系结构下,多处理功能芯片经过了对称多处理器结构(SMP Architecture)、超线程结构(HyperThreading)、多核结构(Multi-core Architecture)和多核超线程结构(Multi-core Hy-per Threading Architecture)的4个演变阶段。我们下面分别予以介绍。
多处理器结构
除了提升CPU主频和增加一、二级缓存容量外,提升计算机性能的最直截了当的办法就是在一台电脑里面安装多个CPU。由于CPU数量增加,电脑同时处理的工作量就增加,自然提升了系统吞吐量和改善了用户响应时间,从而感觉到计算机的性能得到了提升。
多处理器结构说简单一点就是在一条总线上挂载多个处理器
。在传统的体系结构下,一台电脑里面只有一个CPU。而在多处理器系统里,一台电脑里面可以有多个CPU。图20-2给出的就是英特尔公司的有两个CPU的计算机体现结构:
在多CPU的情况下,以CPU之间的关系不同又可以分为对称和非对称多处理器结构
。在对称结构下,多个CPU的角色功能平等,没有主从之分,这种多CPU结构称为对称多处理器结构(Symmetric Multi-Processor Architecture,SMP)。在非对称多处理器结构中,则不同CPU的角色地位不同,有主从CPU之分。这种多CPU结构称为非对称多处理器结构(Asymmetric Multi-ProcessorArchitecture,AMP)。由于SMP结构远比AMP结构普遍,本章讨论的多处理器结构将只对SMP进行。
当然,我们并不需要限制在两个CPU上。我们也可以在一台电脑里面安装多于2个的CPU。图20-3给出的就是一台有着4个CPU的计算机体系结构简化图。
超线程结构
虽然在一台电脑里安装多个CPU提升了计算机的性能,但是付出的代价是高昂的成本和巨大的功耗
。而在实际中,基于很多原因,CPU的执行单元并没有得到充分使用。如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外就是目前大多数执行线程缺乏ILP(Instruction-Level Parallel-ism,指令级并发,即多条指令同时执行)支持。这些都造成了目前CPU的性能没有得到全部的发挥。因此,英特尔公司提出了超线程技术来让一个CPU同时执行多重线程,从而提高CPU效率和用户满意度
。
超线程技术是在一个CPU上同时执行多个程序而共享这个CPU内的资源,理论上要像两个CPU一样在同一时间执行两个线程
,超线程技术可在同一时间里让应用程序使用芯片的不同部分。而为了支持这种技术,需要在处理器上多加入一个逻辑处理单元指针(Logical CPU Pointer)。因此新一代的P4 HT的模板的面积比以往的P4增大了5%。而其余部分如ALU、浮点运算单元、二级缓存则保持不变。
图20-4描述的是超线程结构。图中的每个CPU并不是物理上的单个CPU,而是两两为一个独立的CPU,即图中只有4个物理CPU,而每个CPU又因超线程技术分解为两个逻辑CPU。每个逻辑CPU可以执行一个线程序列。这样一个物理CPU可以同时执行两个线程。
需要注意的是,含有超线程技术的CPU需要芯片组和软件的支持,才能比较理想地发挥该项技术的优势
。操作系统如Windows XP、2003以及Linux 2.4.x以后的版本均支持超线程技术。
虽然采用超线程技术能同时执行两个线程,但它并不像两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两个CPU的性能。
多核结构
多CPU成本高、功耗大,而超线程技术又不等于两个CPU的性能,而且时常会碰到两个线程需要同一资源时必须停止一个线程的现象。
那么什么办法可以同时克服多CPU和超线程的缺点呢?即性能像多CPU、功耗像超线程的结构呢?有,就是多核结构。
多核结构就是在一个CPU里面布置两个执行核,即两套执行单元,如ALU、FPU和L2缓存等
。而其他部分则两个核共享。这样,由于使用的是一个CPU,其功耗和单CPU一样。由于布置了多个核,其指令级并行将是真正的并行,而不是超线程结构的半并行。
例如,英特尔公司的奔腾D和奔腾EE(见图20-5)即是分别面向主流市场以及高端市场的双核芯片。其每个核采用独立式缓存设计,在处理器内部两个核之间是互相隔绝的,通过处理器外部(主板北桥芯片)的仲裁器负责两个核心之间的任务分配以及缓存数据的同步等协调工作。两个核共享前端总线,并依靠前端总线在两个核之间传输缓存同步数据。
当然,我们也可以在一个计算机里面放置多个配置有多个执行核的CPU,而形成更多的核
例如,如果我们用4个双核CPU则可以构建如图20-6所示的多核、多处理器体系结构。
多核超线程结构
在多核情况下,我们也可以使用超线程技术,从而形成多核超线程技术。即每个物理执行核里面又分解为两个或多个逻辑执行单元,如图20-7所示。
例如,英特尔公司的奔腾EE多核芯片就支持超线程技术,一块奔腾EE芯片在打开超线程技术之后会被操作系统识别为4个逻辑处理器。
总结
多处理功能芯片经过了对称多处理器结构(SMP Architecture)、超线程结构(HyperThreading)、多核结构(Multi-core Architecture)和多核超线程结构(Multi-core Hy-per Threading Architecture)的4个演变阶段
标签:多处理器,CPU,多核,超线程,线程,基本概念,结构 来源: https://blog.csdn.net/u010711495/article/details/119060025