多核处理器分类及运行方式
- 多核处理器分类-同构、异构
从硬件的角度来看,多核设计分为两类。如果所有的核心或CPU具有相同的构架,那么定义为同构多核(homogeneous);如果架构不同,那么称为异构(heterogeneous)多核。
从应用来看,同构多核处理器中大多数由通用处理器核构成,每个核可以独立运行,类似更强的单核处理器。
而异构多核处理器往往同时继承了通用处理器、DSP、FPGA、媒体处理器、网络处理器等,每个内核针对不同的需求设定的,从而提高应用的计算性能或实时性能。
目前的异构多处理器有:TI的达芬奇平台DM6000系列(ARM9+DSP)、Xilinx的Zynq7000系列(双核Cortex-A9+FPGA)、Cell处理器(1个64位POWERPC+8个32位协处理器)等等。
同构多处理器就比较多了,Exynos4412,freescale i.mx6 dual和quad系列、TI的OMAP4460等,Intel的Core Duo、Core2 Duo等。
- 多核处理器运行模式-SMP、AMP、BMP
从软件的角度来看,多核处理器的运行模式有三种:
SMP-对称多处理,symmetric multi-processing。
AMP-非对称多处理,asymmetric multi-processing
BMP-边界多处理(翻译不确定),bound multi-processing
以下是三种模式的特点和优点:
AMP-多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,或者不同版本的操作系统,但是有一个主要核心,用来控制整个系统以及其它从核心。
具有主从模式,每个核心有自己的内存空间(同时会有共享的内存空间),另外两者之间还有一定的通信机制。从硬件上来说,这种多处理模式可能是同构的,也可能是异构的,
但大多情况是异构多处理器。如MCU+DSP,MCU+FPGA等。同构的当然也有。
SMP-对称多处理,这个是目前用的最多的,一个OS同等的管理各个内核,为各个内核分配工作负载。目前,大多数的系统都支持SMP模式,如Linux,Vxworks,windows。这种模式
就是简单提高运行性能。比如PC机上双核、四核运行windows,linux等。所有的核心共享内存。另外,这种模式的通常都是同构多核处理器,因为异构的结构不同,实现比较复杂。
BMP-边界多处理,和SMP类似,也是一个OS管理所有内核,但是不同的是,BMP中,开发者可以指定将某个任务仅在某个指定内核上执行。