多核体系结构的发展

随着芯片制造工艺的不断进步,从体系结构来看,传统的处理器体系结构技术已面临瓶颈,晶体管的集成度已超过上亿个,很难单纯地通过提高主频来提升性能,而且主频的提高同时也带来功耗的提高。所以并行计算技术应用而生,通过增加计算机中物理处理器的数量,能够有效地利用线程的并行性,实现真正意义上的并行执行。

并行计算机是由一组处理单元组成的,通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。20世纪60年代初,晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术导致了并行计算机的出现。这一时期的并行计算机多是规模不大的共享存储器系统,例如IBM 36020年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。这些并行特性的应用大大提高了并行计算机系统的性能。

Flynn根据指令流和数据流的不同组织方式,把计算机系统的结构分为以下4类:

单指令流单数据流(Single Instruction stream Single Data stream, SISD

单指令流多数据流(Single Instruction stream Multiple Data stream, SIMD

多指令流单数据流(Multiple Instruction stream Single Data stream, MISD

多指令流多数据流(Multiple Instruction stream Multiple Data stream, MISD

指令流是指机器执行的指令序列,数据流是指指令流调用的数据序列,包括输入数据和中间结果。SISD就是顺序处理的串行机。SIMDMIMD是典型的并行计算机。SIMD计算机中,有一个控制部件和许多处理单元。大量的处理单元通常构成阵列,因此SIMD计算机也称为“阵列处理机”。所有处理单元在控制部件统一控制下工作,控制部件向所有的处理单元广播同一条指令,所有的处理单元同时执行这条指令,但是每个处理单元操作的数据不同。控制部件可以有选择地屏蔽掉一些处理单元,被屏蔽掉的处理单元不执行控制部件广播的指令。MIMD计算机没有统一的控制部件。各处理器可以独立地执行不同的指令,每个处理器都有控制部件,各处理器通过互联网络进行通信。SIMD所使用的CPU通常是专门设计的,而MIMD可以使用通用的CPU

从系统结构的角度,并行计算机目前有以下几种:

(1)分布式存储器的SIMD处理机。含有多个同样结构的处理单元(PE),通过寻径网络以一定方式互相连接。每个PE有各自的本地存储器(LM)。在阵列控制部件的统一指挥下,实现并行操作。程序和数据通过主机装入控制存储器。通过控制部件的是单指令流,所以指令的执行顺序还是和单处理机一样,基本上是串行处理。指令送到控制部件进行译码。划分后的数据集合通过向量数据总线分布到所有PE的本地存储器LMPE通过数据寻径网络互连。数据寻径网络执行PE间的通信。控制部件通过执行程序来控制寻径网络。PE的同步由控制部件的硬件实现。

(2)向量超级计算机(共享式存储器SIMD)。集中设置存储器,共享的多个并行存储器通过对准网络与各PE相连。存储模块的数目等于或略大于处理单元的数目。通过灵活的高速对准网络,使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行。这种方案在处理单元数目不太大的情况下很理想。

(3)对称多处理器(SMP)。一个计算机上汇集了一组处理器,各处理器之间共享内存子系统以及总线结构。在这种架构下,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其它资源。从系统管理角度来看,就像一台单机一样。系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。系统的所有资源被所有的CPU共享,工作负载能够均匀地分配到所有可用的处理器之上。

(4)并行向量处理机(PVP)。有专门定制的向量处理器,通过向量处理和多个向量处理器并行处理两条途径来提高处理能力。通常使用定制的高带宽网络将向量处理器连向共享存储器模块。存储器可以以很高的速度向处理器提供数据。

(5)集群计算机。随着微处理器和网络技术的进步而逐渐发展起来的,它主要用来解决大型计算问题。是一种并行或分布式处理系统,由很多连接在一起的独立计算机组成,像一个单集成的计算机资源一样协同工作。计算机节点可以是一个单处理器或多处理器的系统,拥有内存、I/O设备和操作系统。集群一般是指连接在一起的两个或多个计算机(节点)。连接在一起的计算机集群对用户和应用程序来说像一个单一的系统,这样的系统可以提供一种价格合理的且可获得所需性能和快速而可靠的服务的解决方案。

6)网格计算是伴随着互联网技术而迅速发展起来的,专门复杂科学计算的新型计算模式。这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万个“节点”组成的“一张风格”,所以这种计算方式叫网格计算。网格类似于集群,但是跟集群相比,节点更加分散,节点的组织方式也更加灵活,相应的是,平均每个节点所能提供的计算能力一般比集群要低,并且节点间的通讯效率也较低。

并行计算机与超级计算机技术,为多核计算机的出现奠定了基础。集成电路的进步也为多核芯片提供了物理条件。

多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级cache、二级cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。

片上多核处理器(CMP)是将多个计算内核集成在一个片处理器芯片中,从而提高计算能力。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器,这样多个微处理器核心就可以并行地执行程序代码,因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心,使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外,CMP还能充分利用不同应用的指令级并行和线程级并行,具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。

按照内核的对等与否,CMP可分为同构多核和异构多核。计算内核相同,地位对等的称为“同构多核”。同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。计算内核不同,地位不对等的称为“异构多核”,异构多核多采用“主处理核+协处理核”的设计,Cell处理器正是这种异构架构的典范。它是一枚拥有9个硬件核心的多核处理器。在Cell芯片中,只有一个是IBM完整的Power(精简的PowerPC970)处理器,其余8个内核都是为处理图像而专门设计的、用于浮点运算的协处理器。主处理器的主要职能就是负责任务的分配,实际的浮点运算工作都是由协处理器来完成。由于Cell中的协处理器只负责浮点运算任务,所需的运算规则非常简单,对应的电路逻辑同样如此,只要CPU运行频率足够高,Cell就能获得惊人的浮点效能。整数性能和动态指令执行性能并不理想。由于电路逻辑简单,主处理器和协处理器都可以轻松工作在很高的频率上,Cell起步频率可达到4GHz。在高效率的专用核心和高频率的帮助下,Cell可以获得高达256Gigaflops2560亿次浮点运算每秒)的浮点运算能力。Cell聚集在消费性电子市场。
CMP
处理器由多个CPU核心组成,每个核心执行各自的程序代码,但是CMP处理器的各CPU核心执行的程序之间要进行数据共享和同步,所以硬件结构必须支持核间通信。高效的通信机制是CMP处理器高性能的重要保障,比较主流的片上高效通信机制有两种,一种是基于总线共享的cache结构,一种是基于片上的互连结构。

总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度高,缺点是基于总线的结构可扩展性较差。

基于片上互连的结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件改动较大。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页