标题：异步双核
概述
目前市面上已经有多款双核手机处理器，这通常指移动处理器的双核CPU，其中包括异步双核和同步双核两种结构。同步双核是指两个CPU核心一起以相同频率和电压完成同一任务；异步双核中，两个核心可以以相同或不同频率及电压单独执行处理指令,不需要两个一起开动来完成一个任务而造成不必要的能耗。
手机异步双核处理器特点：异步双核可以根据任务需求开启一个核心或者多个核心并且调整CPU的时钟频率，做到降低功耗并且更加省电。 
同步CPU——Synchronous，Synchronism，是指各个CPU内核必须以相同频率相同电压时工作或同时休息，不能轮流工作，二级缓存共享。CPU性能得到最大发挥，但同时也带来更高的功耗。目前手机同步双核包括三星Exynos4210，德仪OMAP44x0，Nvidia的Tegra2等，代表有三星i9100，MOTO XT910，LG P990。
异步CPU——Asynchronism，各个CPU内核能够同时以相同或不同频率电压处理不同任务，二级缓存共享，显著降低能耗。目前异步双核手机处理器多采用了高通的处理器，比如高通MSM8260（代表机型是小米M1，HTC的G14，G17，G18等）、MSM8660（代表机型是小米电信定制版、三星GALAXY SII（I929）、酷派9900等）、MSM8960（代表机型华硕PadFone、三星GALAXY SIII (I535)、HTC One XC和海尔W910等）、APQ8060（代表机型三星GALAXY SII HD LTE等）等。 
同步异步的区别：同步的2个CPU是一个整体，无论多少个任务指令 ，都同时合力先完成一个，然后再完成下一个，和电脑CPU相似。异步的2个CPU可独立工作，分别完成不同的任务。在第一个CPU未达到满载状态时，第二个CPU首选执行其他任务或者空闲（不启动）；只有在第一个CPU满载非常严重的情况，第二个CPU才会主动分担第一个CPU的任务。所以并不是网络上谣传的两个核心不能同时执行一个任务。 
高通aSMP（Asynchronism Symmetric Multiprocessing），是采用在一个CPU满载情况下再启用另一个CPU，在待机和运行CPU性能需求较低的软件程序方面，的确有相对低功耗的优势。目前，手机大多数都是待机状态或执行性能要求较低的任务（如网页浏览、即时通讯应用等），而且大多数应用在开发的时候其实都是单线程的，也就是说本质上大多数应用只能分配给一个CPU内核处理，所以，异步多处理还是可以很好的降低功耗，因而更加省电。
所以说，相比同步结构的双核CPU，异步双核的最大优点是在保证手机性能的同时将功耗降低，表现为更省电。
  双核手机
手机异步双核cpu
主要指由高通Scorpion架构和Krait架构引起手机CPU异步和同步之争。 
  高通自称MSM8260的aSMP结构
2011 年，高通发布双核手机处理器MSM8x60，集成世界上首款采用Asymmetric SMP（异步对称多处理）架构的双核CPU。异步架构与同步架构不同，由于两个CPU内核可以分别执行不同的任务，引起了一部分人的误解，认为异步双核的CPU内核不能同时工作，而只能交替工作，是假双核，并将MSM8x60戏称为“胶水双核”。（“胶水双核”一词最早是在PC处理器厂商Intel和AMD的争论中出现的，并进而引发了“胶水”与“原生”双核及四核之争。2005年，Intel将两颗Pentium 4核心封装在一个基板上，组成了Pentium D，AMD认为这种架构是假双核，是用“胶水”将两个单核CPU“拼”成的双核。）[1]
  intel的Pentium D胶水双核  MSM8960 块状图[2]
这里涉及到对Asymmetric和SMP的理解。 
SMP——Symmetric multiprocessing，对称多处理，操作系统可以同时管理所有CPU内核，应用并不限定某一个内核，任务平均分配到每个cpu内核。 
相对SMP的是AMP——Asymmetric multiprocessing，非对称多处理，操作系统不能同时管理所有CPU内核，每个cpu内核可以由不同的操作系统管理，每个应用只能限定一个内核，特定的任务只能分配给某一个特定的内核。 
异步对称式多核处理器（aSMP）：以电源效率为设计理念。为了获得更好的功效、性能表现和热曲线，高通将最新的Krait微架构设计为异步对称式多核处理器系统（或称为aSMP）。aSMP架构和同步SMP 架构之间的区别是： 独立的时钟和电压：aSMP系统中的每个核，包括二级缓存，都有一个独立的电压和时钟。这使每个CPU 内核都能够根据处理的工作类型，以最有效的电压和频率运行，从而获得最佳功耗。
功耗减少25-40%：如图4 所示，aSMP架构比当前的同步SMP 架构功耗减少25-40%。
待机功耗：在aSMP中，每个不需使用的内核都可以完全独立关闭，使其在待机状态时没有功耗。
降低复杂性：aSMP不需要“伴随内核”或“小内核”，对每个内核电压和频率的单独控制使aSMP系统中的每个内核均可在低功率模式下操作，从而减少了多核对程序管理或更复杂的软件管理的需求。
  异步CPU 功耗节省
异步CPU 功耗节省[3]
典型的AMP处理器如手机的AP+ BP的SOC。 
  意法u8500的ap+bp的amp结构
意法u8500的ap+bp的amp结构
大多数手机都含有两个处理器。操作系统、用户界面和应用程序都在ApplicationProcessor(AP)上执行，AP一般采用基于ARM架构的CPU（业内多数手机CPU厂商选择直接购买ARM的CPU设计，然后与其它组件整合，比如GPU、多媒体处理、调制解调器等等，制造出完整的SoC片上系统。这些现成的CPU都是基于ARM Cortex A5、A8、A9，甚至A15微架构的，而Cortex架构则是基于ARM自主的v7指令集进行开发的。但也有少数手机处理器厂商，如高通，直接在v7指令集的基础上开发自己的处理器微架构，如Scorpion和Krait，进而设计自主的CPU）。而手机射频通讯控制系统，则运行在另一个分开的CPU——Baseband Processor(BP)，即基带芯片（Modem）。 
BP运行实时操作系统，执行射频射频控制（信号调制、编码、射频位移等）。BP的好处是，无论采用的操作系统和应用软件变化，都可以正确的执行通讯功能。应用程序操作系统和驱动的bug也不会导致设备发送灾难性的数据到移动网络中。 
AP+BP就是一个典型的AMP:通讯系统和程序系统不能同时控制两个处理器，通讯任务或应用程序任务不能在两个处理器之间平分，只能是由一个 
  AMP结构示意图
AMP结构示意图
而同步CPU——Synchronous，Synchronism，是指各个CPU内核同时以同一频率运行，参与各方必须采用同一时脉。 
异步CPU——Asynchronism，各个CPU内核可以各自以不同的频率运行，参与各方不采用同一时脉。 
由此可见，所谓同步和异步的概念源自对Symmetric（对称）和Asymmetric（非对称）的理解和翻译。同步=SMP，异步=AMP，这是大部分人的概念。 
SMP或AMP指的是两个以上的处理单元之间的状态，一个手机处理器多个处理器单元之间可以存在不同的状态：CPU和GPU之间，CPU和DSP之间，CPU和FUP之间是BMP；CPU(AP)和基带芯片(BP)之间是AMP；而CPU和CPU之间是SMP。
另外还有介于SMP和AMP之间的BMP——Bound multiprocessing，操作系统可以同时管理所有CPU内核，但每个应用被锁定于某个指定的CPU内核。 
而Nvidia的Tegra3采取了VSMP——Variable SMP ，可变式对称多处理，动态地启用或禁用一个或四个cpu内核，以达到降低功耗的作用。任务平均分配到所有未关闭的cpu内核，未关闭的内核都以同一频率运行。 
  高通ASMP示意图[4]
而高通的ASMP——Asymmetric SMP，非对称的对称处理，根据高通的说法，CPU内核可以以不同的频率运行，必要时可以关闭部分CPU内核，而任务在CPU内核之间不平均分配。即SMP的两个CPU内核采取了AMP的方式运行。 
这种情况更类似于ARM结构中big.LITTLE的coretx a15+cortex a7的CPU+SPU（Synergistic Processing Unit，协处理器）的思想，也类似在德州仪器omap4470的SOC中，采用的coretex a9 x2+ cortex m3 x2，和omap5430中采用的coretx a15 x2+cortex m4 x2的cpu+ m系spu的协处理器切换方式，只不过高通将不对称的SPU——cortex a7或cortex m3（m4）换成了和CPU对称的CPU内核。 
  德仪omap4430的a9+m3协处理方式
  omap5430的a15+m4协处理方式
  big.LITTLE的协处理器方式
和big.LITTLE，Ax+Mx协处理方式的cpu内核切换，SPU关闭不同，高通的ASMP的cpu内核切换后，作为SPU的CPU内核没有关闭，SMP的两个cpu内核以Asymmetric方式运行。如果big.LITTle，Ax+Mx在cpu内核切换后，协处理器没有关闭，而是继续运行，那么可以称为Symmetric AMP，sAMP，AMP的主cpu内核和SPU以Symmetric方式运行。

SMPASMPVSMPAMPBMP系统能否同时管理所有CPUYesYesYesNoYes任务在所有cpu内核分配方式平均分配指定某一个cpu
执行平均分配指定某一个cpu
执行只能特定一个cpu
执行能否关闭cpu核心NoYesYesYesYes运行中的cpu内核
是否以同一频率运行YesNoYesNoNo典型代表cpu+cpu
gpu+gpu
tegra3的
a9 x4+ a9 x1（spu）ap+bpcpu+gpu
cpu+dsp以上对比可见，高通的ASMP，从本质上是一个披着SMP外衣的AMP，是一个能够同时管理所有CPU内核AMP，在CPU内核管理上采取SMP的方式，在任务分配上采取了AMP的方式，与其说是SMP的一种，不如说是AMP的改进型。 
只要各CPU内核不采取同一时脉，就是异步处理器，与架构无关。平时所谓的高通异步双核如骁龙S3系列（MSM8260，MSM8660，APQ8060）等高通Scorpion架构双核，骁龙S4系列（MSM8960，MSM8260a，MSM8270）等krait架构双核，及Krait四核CPU，更准确的说法是ASMP，异步对称处理器。 
总结——无论如何，高通scorpion和krait架构的双核，四核，都是异步多核，并不是伪双核，或者非原生双核。 
双核的概念没有“真”或“伪”之分，所以也没有“原生”或”非原生“的绝对标准。就算是omap44x0和exynos代表的同步双核也有部分异步的概念，异步双核在某些情况下也能同步。同步或异步主要以是否按照同一频率时脉来划分，但并非唯一标准。即使单纯考虑性能，很多时候高通双核并不输所谓的同步双核甚至四核，考虑功耗以及散热的情况下，优势更明显。
同步的2个CPU是一个整体，无论多少个任务指令 ，都同时合力先完成一个，然后再完成下一个，和电脑CPU相似。异步的2个CPU可独立工作，多个任务时分别分开完成不同的任务。第一个在CPU满载状态，不能独立完成任务指令时，第二个CPU首选不管第一CPU去执行下一个任务或者空闲（不启动），第一CPU在满载的非常严重的情况下才会主动分担第一CPU的任务。 
高通ASMP处理器和标准SMP有较多的差异，两者不能简单划为同一类。 
ASMP运行方式
高通的ASMP与标准的SMP存在有差异的cpu运作方式。下面以高通msm8260和德州仪器omap4430来说明。
德州仪器omap4430，cortex-a9架构双核，默频1.0ghz，标准SMP。不强制同步，IPC（ Instruction Per Clock)为2.5mips/mhz，功耗效率为0.265mw/mips，调频级数为300mhz——418mhz——536mhz——654mhz——772mhz——890mhz———1008mhz。
高通msm8260，scorpion架构双核，默频1.2ghz或1.5ghz，ASMP，异步，IPC为2.1mips/mhz，功耗效率为0. 255mw/mips。调频级数为384mhz——518mhz———652mhz———786mhz———920mhz———1188mzh。
  msm8260和omap4430的功耗比较
  cortex-a9和socrpion架构dmips标准
不同的cpu性能需要（假设）omap4430的SMPmsm8260的ASMPcpu 1的频率 cpu 2的频率 总体cpu性能输出 功耗 多余的cpu性能 浪费的cpu功耗 cpu 1的频率 cpu 2的频率 总体cpu性能输出 功耗 多余的cpu性能 浪费的cpu功耗 待机—0mips300mhz300mhz1500mips397.5mw1500mips397.5mw384mhz0mhz806mips205.5mw806mips205.5mw无插件桌面—700mips300mhz300mhz1500mips397.5mw800mips212mw384mhzomhz806mips205.5mw106mips27mw全插件桌面—1500mips300mhz300mhz1500mips397.5mw0mips0mw786mhz0mhz1650mips420.7mw150mips38.25mwwww方式打开新浪首页—2500mips536mhz536mhz2680mips710mw180mips47.7mw1188mihz0mhz2500mips637.5mw0mips0mw《极品飞车》游戏—3500mips772mhz772mhz3860mips1023mw360mips95mw1188mhz652mhz3869mips986.6mw369mips94mw《质量效应》——45000mips890mhz890mhz4450mips1179mw0mips0mw1188mhz920mhz4427mips1129mw0mips0mw以上图表对比可见：
第一，高通ASMP，是采用在一个cpu满载情况下再启用另一个gpu，在待机和低cpu性能需求的软件程序方面，的确有相对低功耗的优势，但在高cpu性能需求的软件和游戏时，功耗和cortex a9的SMP有是一样的，在待机状态还是省电。全负荷状态时是一样的。
第二，高通ASMP，在性能加载速度要比AMP慢。
比如，omap4430从桌面启动《质量效应》游戏，仅需对cpu进行5次增加电压，提升频率即可：
300mhz x2——418mhz x2——536mhz x2——654mhz x2——772mhz x2——890mhz x2
而高通msm8260则需要7次加压：
786mhz + 0mhz——920mhz + 0mhz———1188mhz + 0mhz———1188mhz + 384mhz————1188mhz + 518mhz——1188mhz + 652mhz——1188mhz + 768mhz——1188mhz + 920mhz
第三，两个cpu内核长期处于不同状态，对其使用寿命也会有较大差异。
总之， ASMP的异步cpu运行方式在低性能需求跃迁到高性能需求时，跃迁幅度越大，加电压的次数越多，需时越长。ASMP的低功耗优势在待机和低cpu需求时明显，高cpu需求时优势缩小甚至没有。长期将任务由一个cpu内核执行，其相对SMP的cpu内核的寿命会缩短，而长期闲着的cpu内核则相对延长。
ASMP和非强制同步SMP的区别高通msm8x60的Asynchronous Symmetric Multiprocessing运作方式（Asynchronous SMP），本质仍是SMP，在处理器中，两个核心的p-state——power state，电源管理状态，相当于电源门控power gating技术，用电源控制来切换cpu核心功率——是独立的，可以动态根据负载调整每个核心的电压和频率，乃至直接关闭其中的一个核心，是节省电力的一种手段。
从该角度上说目前几乎所有的多核处理器都是Asynchronous SMP，比如Intel从Nehalem开始引进的p-gating，AMD从Thuban开始引进的Unganged CNQ和Llano/Bobcat的p-gating。TI OMPA4 Series，三星Exynos以及苹果A5也都无一例外地采取了非强制同步的设计。唯一的例外就是强制同步运作的Tegra 2，而NV将在Kal-El上引入该机制。
但SMP的动态电压与频率调整技术(Dynamic Voltage and Frequency Scaling，DVFS）与高通的ASMP还是有明显差异：SMP支持TLP（Thread level parallelism，线程级平行），而不支持TLP；SMP在多线程。乱序处理下才能使用DVFS，ASMP无论是否多线程乱序处理下都异步运作。
​SMP的动态调整电压技术 高通ASMP的异步电压和频率 开启前提 乱序处理，多线程任何时候任务分配方式平均分配指定一个cpu内核完成能否关闭cpu核心NoYes伴核切换后是否关闭YesNocpu内核之间的频率差距不能相差太大，只能相差一级到两级调频级数。可以相差非常大，一个满载最高频率，一个空载关闭。由此可见，在顺序处理或单线程下，omap4430仍然是按两个cpu内核同频，如536mhz x2的方式存在，根本不可能存在536mhz + 654mhz 的方式。在乱序处理和多线程下，omap4460允许存在536mhz + 654mhz甚至1008mhz +772mhz的方式，但不可能存在418mhz +0mhz的方式，即一个对称cpu内核关闭的情况，也不存在890mhz +418mhz的级数相差太大的方式。
但对于ASMP的msm8260，不仅可以1188mhz +0mhz的一个对称cpu内核关闭情况，也可以1188mhz+384mhz的级数相差非常大的情况。
同步的ASMP和SMP的区别在cpu最大加载情况下，异步双核也可以达到两个cpu内核都按同一个频率——最高频率运行，但实际上仍不是采同一时脉，只是两个时脉恰好同频。在某些技术手段下，如频率调节软件tegrak，可以使异步双核在除最高频率外的同一频率下运行。此时称为同步asmp。但即使如此，异步双核的仍然与同步双核标准SMP有本质上的区别。