AMP架构详解

一、多核处理器分类

多核处理器从结构上划分:
同构多核: 同构多核处理器是指系统中的处理器在结构上是相同的,在软硬件设计上较为简单,通用性高。
异构多核: 异构多核处理器是指系统中的处理器在结构上不同的,在特定场合中可以进行加速,提高性能。

Xilinx 的 ZYNQ SOC 融合了这两种架构, ZYNQ SOC 芯片包含两个独立的 Cortex-A9 处理器,这两个处理器核在结构上是相同的,同时又包括了可编程的逻辑单元( PL),使得 ZYNQ 整体系统成为了一个异构多核系统,同时具有较高的通用性和性能。

二、多核处理器运行模式

多核处理器的运行模式有 AMP(非对称多处理)、 SMP(对称多处理)和 BMP(受约束多处理)三种运行模式。
AMP(非对称多处理asymmetric multi-processing):多个内核相对独立的运行不同的任务,每个内核相互隔离,可以运行不同的操作系统。
SMP(对称多处理symmetric multi-processing): ,多个处理器运行一个操作系统,这个操作系统管理多个内核。
BMP(受约束多处理bound multi-processing): BMP运行和SMP运行模式类似,开发者可以指定将某个任务仅在某个指定内核上执行。

我们可从Xilinx官方文档UG585手册中找到如下简介:
AMP架构详解_第1张图片

AMP-非对称多处理,多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,或者不同版本的操作系统。但是有一个主要核心,用来控制整个系统以及其它从核心。具有主从模式。举个例子,比如一个主要核心控制用户界面UI,从核心控制数据采集以及输出。还有POS机,一个负责UI,一个负责交易。也就是两者负责不同的任务。每个核心有自己的内存空间(同时会有共享的内存空间),另外两者之间还有一定的通信机制。从硬件上来说,这种多处理模式可能是同构的,也可能是异构的,但大多情况是异构多处理器。如MCU+DSP,MCU+FPGA等。同构的当然也有。比如Xilinx就提供了案例,Sun公司的Solari4.1.3系统也支持AMP模式(从主从角度来看,而不是多个操作系统)。Mars Board也可以运行AMP模式。

SMP-对称多处理,这个是目前用的最多的,一个OS同等的管理各个内核,为各个内核分配工作负载。目前,大多数的系统都支持SMP模式,如Linux,Vxworks,windows。这种模式就是简单提高运行性能。比如PC机上双核、四核运行windows,linux等。所有的核心共享内存。另外,这种模式的通常都是同构多核处理器,因为异构的结构不同,实现比较复杂。

参考: link1、link2、

你可能感兴趣的:(硬件工程师,fpga开发,嵌入式硬件,单片机)