【ARM Cache 系列文章 9 -- ARM big.LITTLE技术】

文章目录

    • big.LITTLE 技术背景
      • big.LITTLE 技术详解
      • big.LITTLE 硬件要求
    • big.LITTLE 软件模型
      • CPU Migration
      • Global Task Scheduling
      • Global Task Scheduling比CPU Migration的优势

转自:https://zhuanlan.zhihu.com/p/630981648
如有侵权,请联系删除

big.LITTLE 技术背景

为满足在移动设备应用领域中的节能需求,ARM于2011年首次提出了big.LITTLE技术。big.LITTLE技术是一种使用两种不同ARM处理器的处理架构技术,即big处理器和LITTLE处理器,big处理器用于提供高性能,LITTLE处理器用于追求最大能效。big.LITTLE技术特别适用于功耗动态变化的手机、平板等移动设备领域;以手机为例,在游戏、高质量视频等高能耗场景,切换到big处理器进行处理,而对于文字输入、听音乐、待机等低能耗场景,切换到LITTLE处理器进行处理。

big.LITTLE 技术详解

以最早的 ARM big.LITTLE处理架构为例,讲述 big.LITTLE 技术的原理。
big.LITTLE 技术的基本要求是使用的两种处理器采用的指令集相同。最早的 ARM big.LITTLE处理架构由 Cortex-A15 和 Cortex-A7 处理器组成,两者支持相同的 ARMv7-A 指令集,相同的指令集保证了程序指令在两种处理器上连续执行。

下图是一个典型的 big.LITTLE 架构示例,其中big处理器是双核的 Cortex-A15 cluster,LITTLE 处理器是双核的 Cortex-A7 cluster,每个cluster 个各包含一个 L2 Cache,连接到 Cache Coherent Interconnect IP CCI-400,由 CCI-400进行Cache一致性管理;通过GIC-400中断控制器根据当前任务使用的处理器动态分发中断信号。
在这里插入图片描述

big.LITTLE 技术的基本理念是根据瞬时性能需求将任务动态分配给合适的处理器,并关闭空闲处理器的电源开关,以达到最优的能耗比。这里假定如下应用场景,通常情况下,对于大多数任务Cortex-A7 处理器足以应对,此时Cortex-A15处理器的供电处于关断状态;当某个任务对性能的要求超过Cortex-A7 处理器的能力时,Cortex-A15处理器被打开,该任务切换到Cortex-A15处理器进行处理;当任务对性能的要求降低后,Cortex-A15处理器的电源再次被关断,转由Cortex-A7 处理器进行处理,从而降低了整体能耗。

big.LITTLE 硬件要求

big.LITTLE技术对硬件的要求包括:

(1)使用的两种处理器cluster的架构相同,采用相同的指令集,每个cluster内的处理器类型相同,即包括一个big处理器cluster和一个LITTLE处理器cluster;

(2)包含一个GIC中断控制器,根据当前任务使用的处理器动态分发中断信号;

(3)具有Cache一致性支持。

下面对Cache一致性支持进行详细介绍。Cache一致性是big.LITTLE技术的关键要素。以如下big.LITTLE架构为例,该CPU子系统主要由Cortex-A7 处理器cluster、Cortex-A15 处理器cluster、GIC-400中断控制器、CCI-400控制器组成。Cortex-A7 处理器cluster和Cortex-A15 处理器cluster利用AMBA AXI Coherency Extensions (ACE) 接口和CCI-400控制器实现了Cache一致性,保证了不同处理器cluster间的无缝数据传输,无需外部DDR存储器的参与。

big.LITTLE 软件模型

big.LITTLE技术使用的两种软件模型为CPU Migration和Global Task Scheduling。
在这里插入图片描述

CPU Migration

对于CPU Migration软件模型,每个big处理器均与一个LITTLE处理器配对使用,在任何时刻,配对的big处理器和LITTLE处理器只有一个上电工作,另一个断电,上电工作的处理器根据当前负载情况进行选择。此模型要求每个处理器cluster的CPU核心数量相同。

Global Task Scheduling

对于Global Task Scheduling软件模型,任务调度器根据每个任务的性能需求以及big和LITTLE处理器的处理能力,对该任务使用的处理器进行分配,且可以分配到任意一个处理器。此外,在任务分配的响应时间方面,比CPU migration模型更快。

Global Task Scheduling比CPU Migration的优势

(1)big和LITTLE处理器的数量可以不同,因此使得芯片架构配置更加灵活;

(2)可以使用任意数量的处理器。在性能需求峰值情况下能够使用所有处理器,然而对于CPU Migration,在任意时刻只能有一半数量的处理器工作。

综上,高效和灵活的优势使得Global Task Scheduling软件模型成为主流。其中,ARM公司对Global Task Scheduling软件模型的实现被称为 big.LITTLE MP。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/83034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的查询方法

单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 要求: 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、…

php后端实现调用高德地图进行POI搜索

对于当前位置或者选定省市位置进行查询 接口实现 /*** 查询地址* ApiTitle (查询地址)* ApiSummary (查询地址)* ApiMethod (POST)* ApiRoute (/api/demo/address)* ApiParams (name"dart", type"integer", requiredtrue, description"省…

TCP/IP四层模型对比OSI七层网络模型的区别是啥?数据传输过程原来是这样的

一、TCP/IP四层模型对比OSI七层模型 它们两个定义的一些功能和协议都是差不多的。TCP/IP四层协议模型比我们的七层少了三层,把我们的数据链路层和物理层放在一层里面了,叫做数据链路层(网络接口层),对应网络协议也没有…

openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句

文章目录 openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句35.1 语法格式35.2 参数说明35.3 示例 openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句 修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所…

基于应用值迭代的马尔可夫决策过程(MDP)的策略的机器人研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

文章目录 具体步骤附录 笔者的操作环境: Spring Cloud Alibaba:2022.0.0.0-RC2 Spring Cloud:2022.0.0 Spring Boot:3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 具体步骤 因为 …

Three.js光源

目录 Three.js入门 Three.js光源 Three.js阴影 Three.js纹理贴图 本文我们将研究three.js中的灯光类型和JavaScript中的光源,探索不同的光源设置。我们的目标是全面理解光源设置和类型,比如环境光、半球光、矩形光、方向光、点光源和聚光灯。我们将…

智能安防监控:基于Java+SpringBoot实现人脸识别搜索

目录 引言背景介绍目的和重要性 人脸识别技术的基本原理图像采集和预处理特征提取与表示人脸匹配算法 人脸识别搜索的应用领域公告安全和监控社交网络和照片管理 参考实现步骤数据收集与预处理人脸特征提取查询处理 引言 背景介绍 结合人脸识别技术,在工厂、学校、…

Java后台生成ECharts图片

前言 通过echarts的jar包,Java后台生成一张图片,并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

gitlab-Runner搭建

root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行: gitlab-runner register --url https://git…

泊松损坏图像的快速尺度间小波去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Rocky Linux更换为国内源

Rocky Linux提供的可供切换的源列表:Mirrors - Mirror Manager 其中以 COUNTRY 列为 CN 的是国内源。 选择其中一个Rocky Linux 源使用帮助 — USTC Mirror Help 文档 操作前请做好备份 对于 Rocky Linux 8,使用以下命令替换默认的配置 sed -e s|^mirr…

实现静态资源访问的几种方法

什么是静态资源? 静态资源是指在服务器端存储的不会变化的文件,如HTML、CSS、JavaScript、图片、音频、视频等文件。这些文件一般不包含动态内容,每次请求时返回的内容都是固定的。 为什么要使用静态资源? 提升网站性能&#xf…

Docker学习(二十四)报错速查手册

目录 一、This error may indicate that the docker daemon is not running 报错docker login 报错截图:原因分析:解决方案: 二、Get "https://harbor.xxx.cn/v2/": EOF 报错docker login 报错截图:原因分析&#xff1a…

谷歌推出AI模型机器人RT2 将文本和图像输出为机器人动作

去年年底,ChatGPT火遍全球,全世界都见识了大语言模型的强大力量。人们对大模型不再陌生,开始使用基于大模型的应用绘画、作图、搜索资料、设计剧情等,而妙用不止于此。谷歌推出了Robotics Transformer 2(RT2),这是一个…

Python中enumerate用法详解

目录 1.简介 2.语法 3.参数 4.返回值 5.详解 6.实例 7.补充 1.简介 enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 2.语法 以下是 enumerate() 方法的语…

Sencha Ext.NET Crack 快速应用程序的正确工具集

Sencha Ext.NET Crack 快速应用程序的正确工具集 Sencha Ext.NET是一个高级的ASP.NET核心组件框架,它包含了强大的跨浏览器Sencha Ext JS库。通过140多个预构建和专业测试的UI组件实现企业级性能和生产效率。Sencha Ext.NET使用尖端的Web技术创建功能强大的Web应用程…

Transformer理论学习

Transformer出自于论文《attention is all you need》。 一些主流的序列模型主要依赖于复杂的循环结构或者CNN,这里面包含了编解码器等。而Transformer主要的结构是基于注意力机制,而且是用多头注意力机制去替换网络中的循环或者CNN(换言之就是transfor…

可靠传输-选择重传协议SR

一个数据分组的误码就会导致其后续多个数据分组不能被接收方按序接收而丢弃 (尽管它们无乱序和误码)。这必然会造成发送方对这些数据分组的超时重传,显然这是对通信资源的极大费。 为了进一步提高性能,可设法只重传出现误码的数据分组。因此,…