ARM多核调度器DSU

1. 背景

        从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU(DynamIQ Shared Unit)。DSU的核心功能是控制CPU内核,使其成簇Cluster使用,簇内每一个核心可以单独开关、调整频率/电压,能效表现更佳,甚至制造商是可以将不同核心以不对等的数量放到一个簇内,兼顾成本与性能。

        再有就是L3缓存的共享。DSU能够使用CCI、CCN或是CMN不同总线技术,把CPU与SoC里其它单元(GPU、Modem、内存)高速连接起来;假如它拥有4MB三级缓存,能以动态方式分配缓存给每个核心,比如说Cortex-A75×1+ Cortex-A55×7下,可以将3MB缓存分配给A75核心,剩下7个A55核心共享1MB缓存,甚至可将三级缓存交给GPU等单元使用,灵活性非常高;

        在设计DynamIQ之时ARM还考虑到冗余需求,比如相比智能手机,汽车对可靠性、冗余度要求高出不少,DynamIQ允许多个簇通过CCIX连接在一起,这样处理器就可以分布于汽车不同位置,当发生交通意外一个簇受损时,DynamIQ技术可以调用出备用处理器,保证汽车正常运转。

2. DSU结构

DynamIQ cluster顶层由DSU与DebugBlock组成。

DSU:包含L3、ctrl logic & external interface。

DebugBlock:包含3组apb接口、rom、CTM、CTI & PMU。

2.1 组件说明

元件描述
CPU桥接器CPU 网桥,控制内核和 DSU 之间的缓冲和异步处理。
时钟和电源管理群集支持一组由外部电源控制器控制的省电模式。这些模式是通过 P 通道上的电源模式请求来选择的,对于每个内核,以及用于 DSU 的单独 PChannel。
通过从外部时钟控制器向DSU发出的Q通道请求来支持时钟门控。Q 通道允许单独控制 SCLK、PCLK、ATCLK 和 GICCLK 时钟输入。
Snoop 控制单元SCU 保持集群中所有数据缓存之间的一致性,存在私有的缓冲区
L3 缓存

缓存大小实现为 256KB、512KB、1MB、1.5MB、2MB、3MB 或 4MB。

所有缓存的行长均为 64 字节。

可选择实现数据和标签RAM的ECC保护。

主存储器主控主存储器接口最多支持两个ACE或CHI主接口。
加速器一致性端口加速器一致性端口 (ACP) 是可选的从接口。ACP 提供对可缓存内存的直接内存访问。SCU 通过检查 ACP 访问在核心和 L3 缓存中的分配来保持缓存一致性。ACP 实现了ACELite 协议的子集。
外设端口外设端口是可选的主接口,提供对紧密耦合加速器的DEVICE访问。该端口实现 AXI 4 主接口协议。
DSU系统控制寄存器DSU 实现一组系统控制寄存器,这些寄存器对群集中的所有内核都是通用的。您可以从
集群中的任何内核访问这些寄存器。这些寄存器提供:
1.控制群集的电源管理。
2.L3缓存分区控制。
3.CHI QoS总线控制和方案ID分配。
4.有关 DSU硬件配置的信息。
5.L3 缓存命中和未命中计数信息。
调试和跟踪组件每个内核都包括一个嵌入式跟踪宏单元 (ETM),允许在调试时进行程序跟踪。
来自内核的触发事件被合并并输出到调试 APB 主节点。在调试 APB 从机上接收到内核的触发事件和调试寄存器访问。
群集到 DebugBlock APB当 APB 写入时,来自内核的触发事件将传输到 DebugBlock
DebugBlock 群集 APB触发事件在APB 写入 DSU 时传输到内核。来自系统调试APB 的寄存器访问被传输到 DSU
系统调试 APB系统调试 APB 从属接口连接到外部 CoreSight 组件,如调试访问端口(DAP)
CTI 和 CTMDebugBlock 实现嵌入式交叉触发器 (ECT)。交叉触发接口 (CTI) 分配给集群
中的每个 PE,如果存在,则为集群 ELA 分配额外的 CTI。CTI 通过交叉触发矩阵 (CTM) 相互连接。实现单个外部通道接口,允许将交叉触发扩展到 SoC。
调试ROMROM 表包含系统中的组件列表。调试器可以使用 ROM 表来确定实现了哪些CoreSight 组件
电源管理和时钟门控DebugBlock 实现了两个 Q 通道接口,一个用于控制 PCLK 时钟的请求,另一个用于控制调试电源域的请求。

3. DSU AE结构

        DSU AE主要是添加了比较器,再有就是亮色部分都复制一份,包括执行逻辑、时钟、功率状态,各个界面,当然缓存不能复制,那样成本太高,也意义不大。

3.1 Split模式

3.2 lockstep模式

3.3 Hybrid模式

3.4 CMN

        ARM发展了一种介于总线和NoC之间的连接系统,称之为CMN,主要用于连接CPU内核,也可以CPU内核和加速器之间的连接。采用MESH网格结构,但没有路由功能,本质上还是总线,但MESH网格支持的单元很多,远比一般总线要多,最高可支持512核,支持512MB的L3缓存,目标市场主要是HPC领域。

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

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

相关文章

如何使用Webpack打包js文件

《Webpack打包简单的js文件》 初始化一个新的npm 步骤一: 初始化npm项目,创建一个package.json文件 npm init -y 步骤二: 添加打包脚本:在scripts部分添加一个命令来运行webpack "scripts": {"build":…

【机器学习】TensorFlowLite安装和模型训练

运行环境 Linux,部分库不支持Apple芯片 做AI这部分的开发,还是强烈建议装个Linux双系统或虚拟机 这些比折腾Windows和Mac上的移植环境要轻松得多 安装依赖 sudo apt install libportaudio219.6.0-1.2 pip3 install tf-models-official2.3.0 pip3 in…

Lodop-批量逐个打印返回状态

文章目录 前言一、LODOP.GET_VALUE(PRINT_STATUS_OK, P_ID)二、LODOP.GET_VALUE(PRINT_STATUS_EXIST, P_ID)三、核心实现代码总结 前言 前面写过Lodop的相关文章 : 文章一:《Lodop打印控件常用指令记录》 文章二:《Vue3hooks快速接入Lodop打…

Docker-Confluence部署记录

启动 docker container run -v $(pwd):/var/atlassian/application-data/confluence/ --nethost -d --nameconfluence_720_20240120 confluence/confluence:7.2.0新建mysql数据库 导入破解包 atlassian-agent 参考-Confluence 破解方式(Linux) 按流程破…

springcloud OpenFeign服务接口调用

文章目录 代码下载地址OpenFeign简介OpenFeign使用步骤测试 OpenFeign超时控制超时设置,故意设置超时演示出错情况服务提供方8001故意写暂停程序服务消费方80添加超时方法PaymentFeignService服务消费方80添加超时方法OrderFeignController测试YML文件里需要开启Ope…

区间问题笔记

1、k倍区间 #include <iostream> #include<cmath> #include<vector> #include<algorithm> #include<stack> using namespace std;long long sum[100005]; // 前缀和数组 int cnt[100005]; // 记录sum[i]除k得到的余数的个数 int ans;int…

操作系统实验报告

目录 目录 实验一 一、实验结果 实验二 使用信号量实现进程互斥与同步 一、实验结果 1. 使用信号量实现有限缓冲区的生产者和消费者问题 2. 使用信号量实现读进程具有优先权的读者和写者问题 实验三 死锁和预防 一、实验要求 二、实验内容 三、实验结果 实验四 内…

js中高德地图如何自身所在城市

直接上代码 <!doctype html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"initial-scale1.0, user-scalableno, wi…

如何对拉索回归进行调参?

对拉索回归进行调参主要涉及确定最佳的正则化参数 λ。正则化参数 λ 控制着模型对系数的收缩程度&#xff0c;影响着模型的复杂度。选择合适的 λ 值既可以防止过拟合&#xff0c;也可以保证模型有足够的预测能力。 以下是进行拉索回归调参的一般步骤&#xff1a; 准备数据&a…

Linux中的新建用户、切换用户

目录 一、Linux系统中有哪些用户 二、新建普通用户 三、root账号与普通账号的切换 一、Linux系统中有哪些用户 1.root 超级管理员&#xff08;不受权限约束&#xff09; 2.其他用户 普通用户&#xff08;受到权限约束&#xff09; 二、新建普通用户 创建新用户 sudo user…

代码随想录算法训练53 | 动态规划part14

1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列_哔哩哔哩_bilibili 代码随想录 1035.不相交的线 其实本题和 1143.最长公共子序列 是一模一样的&#xff0c;大…

c++算法之模拟

目录 模拟算法介绍 例题 蓝桥OJ549 扫雷 题目描述 输入描述 输出描述 输入输出样例 示例 1 运行限制 解 蓝桥OJ 551灌溉 题目描述 输入描述 输出描述 输入输出样例 示例 1 运行限制 解 蓝桥OJ 498回文日期 题目描述 输入描述 输出描述 输入输出样例 示…

如何删除Windows密码,看这篇文章就够了

删除Windows帐户的密码一点也不困难。删除密码后,当计算机启动时,你就不再需要登录到Windows。 在你删除密码后,家里或办公室里的任何人都可以完全访问你电脑上的所有内容,所以这样做并不是一件非常注重安全的事情。 ​注意:如果你忘记了密码,那么你将无法使用下面的方…

Oracle 12CR2 RAC部署翻车,bug避坑经历

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

【AI】ChatGPT和文心一言那个更好用

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读文章&#xff01; 此篇是【话题达人】序列文章&#xff0c;这一次的话题是《自然语言处理的发展》 文章将以博主的角度进行讲述&#xff0c;理解和水平有限&#xff0c;不足之处&#xff0c;望指正。 目录 背景自我介绍面试题…

java项目性能优化(MyBatis中开启查询缓存及flushCache与useCache的使用)

在java项目中&#xff0c;如果需要大量的DB查询&#xff0c;导致缓存过多&#xff0c;项目运行缓慢&#xff0c;可以设置在select查询时&#xff0c;添加二级缓存的清空。 如果没有去配置flushCache、useCache&#xff0c;那么默认是启用缓存的。 1&#xff0c;flushCache默认…

深度解析window.history.go()和history.back()

深度解析window.history.go()和history.back() 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在今天的文章中&#xff0c;我们将深入研究前端开发中两个非常重要的…

Redis Interview Speedrun

Redis Interview Speedrun redis缓存雪崩 缓存雪崩是指大量key同时失效&#xff0c;此时有大量并发访问请求直接进到数据库&#xff0c;导致数据库压力过大&#xff0c;容易宕机。解决方案是在设置key的过期时间时&#xff0c;不应该设置一样的过期时间&#xff0c;可以选择设置…

git本地分支的合并

目录 第一章、本地分支的切换测试1.1&#xff09;切换之前的master分支下文件内容1.2&#xff09;切换到develop分支后修改文件1.3&#xff09;切回master分支出现报错&#xff1a;1.4&#xff09;报错分析 第二章、解决方式2.1&#xff09;方式1&#xff1a;commit2.2&#xf…

TorchServe部署问题-curl: (7) Failed connect to localhost:8080; Connection refused

1.问题原因&#xff1a;防火墙未关闭 &#xff08;1&#xff09;查看防火墙状态 ufw status &#xff08;2&#xff09;关闭防火墙 ufw disable 参考博客&#xff1a;curl error &#xff08;7&#xff09;拒绝连接_curl error 7-CSDN博客 2.问题原因&#xff1a;Nginx未安装…