更新时间:2024-09-20 21:33
同步双核是指两个CPU核心一起以相同频率和电压完成同一任务;异步双核中,两个核心可以以相同或不同频率及电压单独执行处理指令,不需要两个一起开动来完成一个任务而造成不必要的能耗。
手机异步双核处理器:异步双核可以根据任务需求开启一个核心或者多个核心并且调整CPU的时钟频率,。
同步CPU——Synchronous,Synchronism,是指各个CPU内核必须以相同频率相同电压时工作或同时休息,不能轮流工作,二级缓存共享。CPU性能得到最大发挥,但同时也带来更高的功耗。手机同步双核包括三星Exynos4210,德仪OMAP44x0,高通骁龙S4,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,异步双核的最大优点是在保证手机性能的同时将功耗降低,表现为更省电。
主要指由高通Scorpion架构和Krait架构引起。
2011 年,高通发布双核手机处理器MSM8x60,集成世界上首款采用Asymmetric SMP(异步对称多处理)架构的双核CPU。异步架构与同步架构不同,由于两个CPU内核可以分别执行不同的任务,引起了一部分人的误解,认为异步双核的CPU内核不能同时工作,而只能交替工作,是假双核,并将MSM8x60戏称为“胶水双核”。(“胶水双核”一词最早是在PC处理器厂商Intel和AMD的争论中出现的,并进而引发了“胶水”与“原生”双核及四核之争。2005年,Intel将两颗Pentium 4核心封装在一个基板上,组成了Pentium D,AMD认为这种架构是假双核,是用“胶水”将两个单核CPU“拼”成的双核。)
这里涉及到对Asymmetric和SMP的理解。
SMP——Symmetric multiprocessing,对称多处理,操作系统可以同时管理所有CPU内核,应用并不限定某一个内核,任务平均分配到每个cpu内核。
相对SMP的是AMP——Asymmetric multiprocessing,非对称多处理,操作系统不能同时管理所有CPU内核,每个cpu内核可以由不同的操作系统管理,每个应用只能限定一个内核,特定的任务只能分配给某一个特定的内核。
异步对称式多核处理器(aSMP):以电源效率为设计理念。为了获得更好的功效、性能表现和热曲线,高通将最新的Krait微架构设计为异步对称式多核处理器系统(或称为aSMP)。aSMP架构和同步SMP 架构之间的区别是: 独立的时钟和电压:aSMP系统中的每个核,包括二级缓存,都有一个独立的电压和时钟。这使每个CPU 内核都能够根据处理的工作类型,以最有效的电压和频率运行,从而获得最佳功耗。
功耗减少25-40%:如图1 所示,aSMP架构比当前的同步SMP 架构功耗减少25-40%。
待机功耗:在aSMP中,每个不需使用的内核都可以完全独立关闭,使其在待机状态时没有功耗。
降低复杂性:aSMP不需要“伴随内核”或“小内核”,对每个内核电压和频率的单独控制使aSMP系统中的每个内核均可在低功率模式下操作,从而减少了多核对程序管理或更复杂的软件管理的需求。
异步CPU 功耗节省
典型的AMP处理器如手机的AP+ BP的SOC。
意法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结构示意图
而同步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——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内核。
和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方式运行。
以上对比可见,高通的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与标准的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。
以上图表对比可见:
第一,高通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无论是否多线程乱序处理下都异步运作。
由此可见,在顺序处理或单线程下,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有本质上的区别。