多核处理器基础:SMP、AMP和BMP 以及 AP、BP和CP

news/2024/11/24 11:14:29/

原文链接:https://www.cnblogs.com/zamely/p/4334979.html

多核处理器也称片上多核处理器(Chip Multi-Processor,CMP)。

 

1.多核处理器的流行

多核出现前,商业化处理器都致力于单核处理器的发展,其性能已经发挥到极致,仅仅提高单核芯片的速度会产生过多热量且无法带来相应性能改善,但CPU性能需求大于CPU发展速度。尽管增加流水线提高频率,但缓存增加和漏电流控制不力造成功率大幅增加,性能反而不如之前低频率的CPU。功率增加,散热问题也严重了,风冷已经不能解决问题了。

那么新技术必须出现-多核处理器。早在1996年就有第一款多核CPU原型Hydra。2001年IBM推出第一个商用多核处理器POWER4,2005年Intal和AMD多核处理器大规模应用。

多核处理器越来越流行,无论在服务器、桌面、上网本、平板、手机还是医疗设备、国防、航天等方面。

我们来了解一下基础知识。

 

2.多核处理器分类-同构、异构

从硬件的角度来看,多核设计分为两类。如果所有的核心或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等。

 

3. 多核处理器运行模式-SMP、AMP、BMP

从软件的角度来看,多核处理器的运行模式有三种:

SMP-对称多处理,symmetric multi-processing。

AMP-非对称多处理,asymmetric multi-processing

BMP-边界多处理(翻译不确定),bound multi-processing

以下是三种模式的特点和优点:

 

简单的解释一下:

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等。所有的核心共享内存。另外,这种模式的通常都是同构多核处理器,因为异构的结构不同,实现比较复杂。

 

BMP-边界多处理,和SMP类似,也是一个OS管理所有内核,但是不同的是,BMP中,开发者可以指定将某个任务仅在某个指定内核上执行。

 

4.多核处理器相关术语

AP-Application Processor,应用处理器

BP-Baseband Processor,基带处理器

以上在手机中出现的比较多,有的会将两者集成到一个硅片中。

GPU-图像处理单元,Graphic Processor Unit,有的PC芯片会将CPU和GPU集成起来。

Soc-System On Chip,片上系统。这个定义多种,一般一个芯片上有多个内核都可以这样说吧,这个我也不确定。有的说Xilinx Zynq7000的是Soc(CortexA9+FPGA0,有的说Exynos4412也是Soc(四核Cortex A9)。


 

 5.手机的AP、BP和CP

AP:Application Processor  ,应用处理器 ,CPU + GPU 

BP:Baseband Processor,基带处理器

CP: CP的概念容易发生混淆,其主要有以下三方面的含义

  1. CP:Cellular Processor = Cellular Modem = Baseband Modem ,蜂窝调制解调器,即此时和BP含义相同
  2. CP::CoProcessor,协处理器,协处理器的概念本身范围较宽泛,在手机中应用中,其一般指【基带芯片加协处理器】 或者是【多媒体加速器】。CP包括与网络进行通信所需的所有数字组件。CP通常由一个基于ARM的处理器和一个DSP组成。它具有自己的操作系统,并通过HS(高速)串行连接与运行Android,iOS和WindowsPhone等操作系统的AP单元进行通信。其可以处理虚拟现实,增强现实,图像处理,HIFI,HDR,传感器等。           参考链接:协处理器--百度百科
  3. CP:英文单词couple的缩写,网络用语,处CP意思是指有恋爱关系的同人配对。(乱入了,开个玩笑)

为什么会有AP、BP之分?

FCC(美国联邦通信委员会)认证要求将AP和BP分开,因为射频控制相关的功能(信号调制、编码、射频位移等)都是高度的时间相关的,最好能将这些函数放在一个CPU核上运行,并在这个CPU核上运行一个实时的操作系统,这样AP核上操作系统和驱动的bug就不会导致设备发送灾难性的数据到移动网络中;并且一旦BP被设计和认证好,不管你采用的操作系统和应用软件怎么变化,它都可以正确的执行通讯功能,手机的设计者也可以更加自由的设计用户界面和应用软件;同时,AP侧睡眠唤醒,BP侧实时处理数据,也能有效降低功耗。

AP上面运行了我们通常的操作系统和应用软件,如Android、Windows  phone 7这些。而我们通常所说的双核啊、四核啊这些就是指的其AP核的多少了吧。

BP主要的作用是发送和接受各种数据,即和通信息息相关,BP中的DSP实现了协议的算法,对数据进行编解码,BP中的CPU则负责协调控制与基站和AP的通信。BP中的电源管理模块对手机的待机时间有很大的影响,因为大多数时间BP的cpu都应该处于idle状态,每隔一段时间才打开查看paging channel上是否有呼叫进入。另外,SIM模块也是直接和BP相连接的,对SIM卡的操作也是通过BP进行的。

有些芯片制造商,有能力将AP和BP集成在一个芯片上,AP与BP通过总线通信。而有些则是,AP是AP,BP是BP。

手机开发商,会将开发的手机软件包分为AP和BP两部分,运行在Application Processor(AP)的软件包称为AP包,包括操作系统、用户界面和应用程序等;与Baseband Processor(BP)相关的软件包称为BP包, 包括baseband modem的通信控制软件等。 相应地,所谓的刷新手机AP和BP文件即是将这两个软件包更新到手机上。为方便刷机,也有将AP,BP文件和flex文件(手机的参数配置文件)作在一起的一体包。


http://www.ppmy.cn/news/527526.html

相关文章

u-boot spl 学习总结

什么是SPL? SPL(secondary program loader)是一个十分小的bin文件,它是用来引导主u-boot文件。对于一些SRAM很小的SOC,无法一次性加载ROM中的bootloader到SRAM中,因为一般SRAM远远小于bootloader的大小。这时候SPL应运而生了。 …

omap_prcm_PM

原文地址:http://lhsblog01.blog.163.com/blog/static/102004519201022110333796/ //*****************prcm******************************************************* power reset and clock managment. PM由三个架构模块组成: power, clock, volta…

PX4驱动分析之MPU6000

PX4驱动分析之MPU6000 前言: 首先分析PX4中MPU6000传感器驱动的注册,调用,实例的过程,先要理解一个事情。就是PX4是使用了一个类Linux操作系统的Nuttx操作系统。 也就是PX4上的驱动编写类似于Linux上的驱动编写。 软件层次图 所…

基于Ti Omap3x 分析v4l2架构

1 概述 本文将基于Ti Omap3x这个典型的实例来分析v4l2在具体media场景中的应用。通过分析app层的行为以及driver层的实现来对整个多媒体框架有一个大概的认识。内容主要包括主要包括v4l2-core、meida framework。 前几章的内容借鉴了这篇文章: 【原创】Linux v4l…

Linux_OMAP4460 u-boot 1.1.4代码分析

最近在调试omap4460,决定跟踪下u-boot的代码。 有问题留下邮箱可以共同学习,调试。 代码阅读顺序: 1.第一阶段(Stage 1) 第一阶段的启动代码在 cpu\<cpu type>\start.s中,完成的工作主要有: CPU自身初始化:包括 MMU,Cache,时钟系统,SDRAM 控制器等的初始化 …

CoCube传感器MPU6050笔记

参考&#xff1a; 输出x&#xff0c;y&#xff0c;z角度信息&#xff1a; #include <MPU6050_tockn.h> #include <Wire.h>MPU6050 mpu6050(Wire);void setup() {Serial.begin(9600);Wire.begin();mpu6050.begin();mpu6050.calcGyroOffsets(true); }void loop() {…

Khadas VIM3 (Amlogic A311D) uboot去掉烦人的乱七八糟的打印1——BL2 BL3x

BL2 BL30 BL31 DDRFW改造串口静默 BL2拖到IDA64&#xff0c;以ARM LittleEndian 64bit反汇编&#xff0c;很轻易的找到puts putchar函数&#xff0c; ROM:000000000000B4B8 putchar ; CODE XREF: sub_613428↑p ROM:…

linux3.4.0 按键驱动程序分析(pandaboard omap4460)

linux3.4.0 按键驱动程序分析&#xff08;pandaboard omap4460&#xff09; 在内核中&#xff0c;按键的驱动程序已经设计好了&#xff0c;要使自己板上的按键工作起来&#xff0c;需要做的是在相应的文件中添加硬件信息&#xff0c;然后对内核进行正确的配置。 以下先使按键工…