很多对移动CPU的异步多核的概念不是很理解,它作为高通骁龙系列的一大特色,它和同步多核处理器之间又有什么区别?各有什么优势呢?异步多核处理器又是怎么达到节能目的?此外,像三星Exynos 5440这一类“大小核”的处理器又会有什么特点呢?本文都将为你一一解答。

异步多核

异步多核,或者叫aSMP(asynchronous SMP),是由高通提出的,并应用在自家的Snapdragon S3/S4处理器中。之前也有过不少争论,比如说异步多核核心之间不能通讯,称之为“胶水双核”;或者说异步多核同时只能有一个核心接受指令,效率很低。当然呢,这些实际上都是不对的。

 什么是异步多核?其重点在于频率异步,可以将它称为异步频率架构(Asynchronous Clock Architecture)。在这样设计的多核处理器中,每个核心都可以工作在不同的电压和频率下。这样,可以将计算繁重的任务交给一个工作在高频的核心,而压力较小的任务则可以让一个工作在低频的,较慢的核心去负担。而在同步多核中,所有的核心都只能工作在相同的电压和频率下。

如下图所示,当有两个任务,一个计算负荷较重,而另一个计算负荷较轻时(图中紫色部分表示任务的计算负荷),异步多核可以让负荷较重的核心CPU0工作在较高的频率(图中蓝色部分代表频率),而负荷较轻的核心CPU1工作在较低的频率和电压下,由此来减小功耗。而同步多核的CPU1虽然负荷较轻,但由于架构限制,只能和CPU0保持同样的高频率和高电压,由此浪费了更多的能量。

而在高通实际的设计中,不仅多个核心可以工作在不同的电压和频率下,它们共享的L2缓存也可以根据实际的负荷,工作在一个单独的电压和频率下,从而最大限度的节能。

异步多核架构看上去确实很美好,但实际上并不是完美的。在一些情况下,异步频率架构会发生性能的损失。一种情况是,当一个CPU的L1缓存没有命中,需要去L2缓存取数据时,由于异步多核架构的各个核心和L2缓存工作在不同的频率下,需要更多的时间去完成数据的传输,如图中A的箭头所示。例如高通S4,其Krait CPU核心可以工作在最高1.5GHz下,而L2缓存的最高频率为1.3GHz,如果L2缓存处于频率更低的节能状态,此时核心就需要等待L2缓存完成传输。

另一种情况下会损失更多的性能。当其中一个核心,例如CPU0的L1缓存没有命中,需要的数据在CPU1的L1缓存时,则数据需要从CPU1的L1缓存传输到CPU0的L1缓存,如图中B箭头所示。如果此时恰好CPU1的负担比较轻,处在较低的工作频率下,则需要很长的时间才能完成数据传输,而工作在高频的CPU0则被浪费在了等待中。

在SiSoftware Sandra的多线程效率测试中也可以反映这一点,异步多核(图中紫色,Sony Xperia S,高通8660)相比同步多核Tegra2(图中绿色),核心之间通讯的延迟较高,带宽较低。当然,采用超线程技术的Intel Atom(图中蓝色),由于两个虚拟核心本身是一个物理核心,核心间通讯的延迟最低,带宽最高。

“大小核”

那么,如何才能做到既能根据计算任务的轻重,动态的调节核心的能力,最大限度的节能;又避免异步多核架构在一些情况下性能损失的问题呢?ARM提出了大小核(big.LITTLE)的架构。

在这样的一个架构中,包括了一个由“大核心”组成的集群,和“小核心”组成的集群。每个集群内部的多个核心,都是属于传统的同步频率架构,工作在相同的频率和电压下,因此不会出现异步多核损失性能的情况。“大核心”为高性能的核心,工作在较高的电压和频率下,消耗更多的能量,用于计算繁重的任务,典型的比如Cortex-A15。“小核心”性能虽然较低,但效率很高,典型的比如Cortex-A7,虽然其性能是A15的1/2,但耗电只有1/7,相比之下能效就是A15的3.5倍了。在一些计算压力不大的任务中,比如发个短信之类的,就不用劳驾性能强劲但又非常耗电的A15核心了,直接用性能足够,非常省电的A7核心就行。

大小核芯都采用相同的指令集,切换时以集群为单位。如上图,系统在任务较重时激活2个大核心,任务较轻时则激活2个小核心。它们之间通过特殊设计的总线相连,切换时总线自动将一个集群的状态传输给另一个集群,切换的时间非常快,小于20微秒。

实际上,在ARM提出大小核之前,nVIDIA的Tegra 3已经有这个意思了。Tegra 3包括四个高性能的A9核心(相当于大核心),和一个性能较低的,采用低功耗设计的A9伴核(小核)。当然那时候的设计还没有big.LITTLE完善,也没有特殊设计的缓存一致性互联,切换的时间也较长,达到了毫秒级别。

不出意外的话,三星Exynos 5440将会是第一个采用大小核设计的SoC。它将采用28nm HKMG工艺,集成4个Cortex-A15作为大核心,和4个Cortex-A7作为小核心,传言GPU也会回归到PowerVR,很有可能在Galaxy S4中使用。

转载于:https://my.oschina.net/dengyz/blog/158985

移动CPU异步多核和大小核的那些事相关推荐

  1. android cpu调度策略_ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法

    在2013年,big.LITTLE 家族又增加了新的SoC实现,有2个Cortex-A15+3个Cortex-A7核的ARM的参考测试芯片TC2,以及在三星Galaxy S4手机中应用的Samsung ...

  2. linux核能软件,ARM big.LITTLE大小核架构在Linux和Android内核下多核调度算法

    在2013年,big.LITTLE家族又增加了新的SoC实现,有2个Cortex-A15+3个Cortex-A7核的ARM的参考测试芯片TC2,以及在三星Galaxy S4手机中应用的Samsung- ...

  3. CPU,多核,多线程,并发,并行,计算效率

    计算机原理:CPU.并发.并行.多核.多线程.多进程 0.计算机工作流程 0.0 基础概念:计算机组成 0.1 CPU(Central Processing Unit) (1)控制单元 (2)运算单元 ...

  4. intel服务器单核性能提升,Intel 12代酷睿最大担心解除:Win11优化大小核架构、单核性能大涨...

    再过几天,微软就会在6月24日的发布会上推出Windows 11(简称Win11)系统了,界面比Win10改变不少,此前的性能测试也是有喜有忧,多核比Win10还差了.不过对Intel来说,Win11 ...

  5. CPU单核多核区别【转载】

    CPU个数.CPU核心数.CPU线程数 我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之 ...

  6. 多CPU,多核,多进程,多线程以及进程和线程的简单理解以及区别

    当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发. 首先,要先了解几个概念: 1.进程是程序的一次执行. 2.进程是资源分配的基本单位. 3.一个进程可以包括多个线程. 4.在单CPU计算 ...

  7. 单核CPU与多核CPU工作原理

    单核CPU与多核CPU工作原理 今天要介绍一下单核CPU和单核(超时间轴)CPU以及多核CPU的工作原理 一.单核CPU 起源: CPU的起源是1971年英特尔公司推出,由此正式宣告计算机的诞生,可以 ...

  8. WIN10 WIN11 12代 13代 大小核;性能核;电源选项;P-core,E-core;

    WIN10 WIN11 12代 13代 大小核;性能核:电源选项:P-core,E-core; 说明: WIN10 也是能正常用 12,13代大小核的. 方法: 1.右键开始菜单,选择"Wi ...

  9. win10 22H2优化了大小核吗?

    win10 22H2是最近win10新推出的一大版本更新,不少用户都想知道22H2大小核是否优化了.据消息称是没有的,下面一起来看看这个问题吧. win10 22H2大小核是否优化了? 答:没有. w ...

  10. 英特尔12代处理器安装WIN10,以及解决大小核调度。

    设备信息:拯救者 2022款,12700H,WIN11. 使用需求:安装WIN10以及正确打上驱动,并解决大小核心调度问题. 安装版本:Windows10 专业版 1909 (2019 Dec)  1 ...

最新文章

  1. 算法笔记-递归算法、递归排序、递归的时间复杂度、master公式(也叫主方法)
  2. SAP ECM的相关设定(ECN)
  3. mysql的还原_MySQL 还原
  4. 从燃尽图看项目管理:你的项目哪里出错了?(燃尽图类型全解析)
  5. react父子组件通信案例
  6. 学excel还是学python_已经会Excel了还需要学python吗?
  7. selenium python怎么断言_如何为python / selenium中的特定元素断言文本?
  8. 为什么说 C++ 太复杂?有必要这么复杂吗?| 原力计划
  9. Nginx爆出新漏洞,谨防“拖库”风险
  10. 无法登录 mysql 服务器_无法登录 MySQL服务器/无法开启 MySQL服务
  11. 网站被移动运营方屏蔽怎么办?
  12. dw添加下拉菜单_Dreamweaver怎么创建下拉菜单
  13. RS232串口与RS485串口的区别
  14. < 知识拓展:CSS 中常用的计量单位有哪些? >
  15. 微信小程序通过url 上传远端图片 到微信小程序临时素材库 java
  16. 服务器未能识别是什么意思,服务器未能识别 HTTP 标头 SOAPAction 的值
  17. 1132: 数字字符统计
  18. 图像超分算法小合集二:FSRCNN、DRCN、RDN、EDSR
  19. Eclipse开发EJB3
  20. JavaScript摘录(二)

热门文章

  1. TF卡用FAT32还是NTFS?
  2. FBReader集成后,打开书出现空白页面
  3. 金融工程学(四):远期和期货的运用
  4. java开发一款推箱子游戏
  5. 1553B为什么要加耦合器?
  6. 有机会向面试官提问时,你应该问这 11 个问题
  7. ssl1653数字游戏
  8. 暴雪插件占用服务器,你还在用这款插件吗?暴雪公布《魔兽世界》怀旧服卡顿原因...
  9. 社区志愿者招募管理系统
  10. tc7102路由器虚拟服务器,电信华为tc7102路由器怎么设置