当前位置: 首页 > news >正文

【ARM CoreLink 系列 2 -- CCI-400 控制器简介】

文章目录

    • CCI-400 介绍
      • DVM 机制介绍
      • DVM 消息传输过程
      • TOKEN 机制介绍

下篇文章:ARM CoreLink 系列 3 – CCI-550 控制器介绍

CCI-400 介绍

CCI(Cache Coherent Interconnect)是ARM 中 的Cache一致性控制器。
在这里插入图片描述

CCI-400 将 Interconnect 和coherency 功能结合到一个模块中。它支持多达两个ACE master 点的interface,例如:

Cortex®-A7 processor
Cortex-A15 processor
Cortex-A17 processor
Cortex-A53 processor
Cortex-A57 processor

FeatureDetails
AMBA specificationsAMBA 4 ACE and ACE-Lite
ACE Slave interfaces2 for fully coherent processors including Arm Cortex
ACE-Lite slave interfaces1-3 for IO coherent devices such as Mali processors, accelerators and IO
Memory and system master interfaces1-2 memory interfaces 1 system interface
CoherencyBroadcast snoop protocol
Memory map40 bit Physical, configurable address map 44 bit DVM

CCI-400还支持多达三个ACE-Lite主站,例如,ARM MaliTM-T600系列图形处理器单元(GPU)。
所有这些接口都有可选的DVM消息支持,以管理分布式内存管理单元(MMU),例如CoreLink MMU-400。这些单元可以通过CCI-400与最多三个ACE-Lite从机进行通信。

硬件管理的一致性可以通过共享片上数据来提高系统性能和降低系统功耗。

CCI-400 cache一致性控制器实现了ACE协议,demo系统框图如下所示:
在这里插入图片描述
CCI-400cache一致性控制器是一个基础设施组件,支持以下内容:

  • 在最多两个 ACE 主站和三个ACE-Lite主站之间的数据一致性,有三个独立的序列化点(PoS)和全屏障支持。

  • 主站和最多三个从站之间的高带宽、跨栏互连功能。

  • 主站之间的DVM消息传输,DVM消息主要用于通知系统中的其他处理器,一段内存的缓存状态发生了变化。例如,当一个处理器需要写入一段内存时,它会通过发送DVM消息,通知其他处理器该内存的缓存需要被更新或者失效。

  • QoS虚拟网络(QVN):本质上是一种 Virtual 的 Network,我们知道从一个 master 到一个slave,它中间走的实际路线叫做physical network,在physical network上根据需要还可以设置多个virtual 的 network,在 virtual network之间,通过类似于token这种机制(只有一个master获得了token,它才有资格去往下发送它的一些传输的请求)。QVN 机制使用这种 virtual network,使用这种基于token的机制去传输数据能够很好的避免系统拥塞。

  • 服务质量(QoS)调节:QoS机制可认为是一种资源分配的机制,比如根据 outstanding 的能力,去限制某一个端口发送数据的能力。还可以根据发送速率或者传输的latency来分配transaction,这些都是QoS-400能够做到的。

  • 性能监测单元(PMU),统计与性能有关的事件。

DVM 机制介绍

Distributed Virtual Memory(DVM)机制是一种用于实现分布式虚拟内存的技术。它允许多个处理器共享同一块物理内存,并通过高速网络连接进行通信。

DVM机制的核心思想是将物理内存划分为多个虚拟内存空间,并将这些虚拟内存空间分配给不同的处理器。每个处理器只能访问自己的虚拟内存空间,但可以通过网络与其他处理器进行通信和共享数据。

DVM机制的实现主要依赖于以下几个关键技术:

  • 虚拟内存管理:每个处理器都有自己的虚拟地址空间,通过地址转换机制将虚拟地址映射到物理地址。这样可以实现不同处理器之间的地址隔离和虚拟内存的管理。
  • 数据共享:处理器可以通过网络连接,将自己的虚拟内存中的数据共享给其他处理器。这种数据共享可以通过消息传递、远程存取等方式实现。
  • 一致性维护:由于多个处理器共享同一块物理内存,需要保证数据的一致性。当一个处理器修改了共享内存中的数据时,其他处理器需要及时获得最新的数据,以保证一致性。这通常需要使用一致性协议和缓存一致性机制。

DVM机制的优点是可以充分利用多处理器系统的计算资源,提高系统的性能和可扩展性。它适用于需要高并发和大规模数据共享的应用场景,例如分布式计算、数据中心等。

需要注意的是,DVM机制并非ARM处理器中的内置特性,而是一种通用的分布式计算技术。在ARM处理器中,可以通过软件实现DVM机制,或者使用一些专门的硬件实现,如ARM的CoreLink CCI(Cache Coherent Interconnect)系列产品。这些产品提供了高性能的互连网络和缓存一致性机制,以支持分布式虚拟内存的实现。

DVM 消息传输过程

DVM消息的传输过程如下:

  • 当一个处理器需要改变某段内存的状态时(例如,写入数据),它会生成一个DVM消息,并将其发送到CCI。

  • CCI在收到DVM消息后,会将其转发到其他连接到CCI的处理器。这些处理器在收到DVM消息后,会检查自己的缓存,如果缓存中包含了该内存,那么会根据DVM消息的类型进行相应的操作,例如,更新缓存或者将缓存失效。

  • 当所有的处理器都对DVM消息进行了响应之后,CCI会向原始处理器发送一个确认消息,表示该DVM消息已经被所有的处理器处理完毕。

如下是 DVMop 一个典型的应用:
在这里插入图片描述
在这里插入图片描述

通过DVM消息,处理器可以有效地维护缓存一致性,确保在多处理器系统中,所有的处理器都可以看到最新的数据。这对于提高多处理器系统的性能和可靠性具有重要意义。

需要注意的是,DVM消息的具体实现可能会因ARM的不同产品而有所不同。具体的细节,如DVM消息类型、格式和传输过程,需要参考相关的硬件文档和规范。

TOKEN 机制介绍

在多个设备同时访问总线时,如果不进行流量控制,可能会导致数据冲突和混乱。为了避免这种情况,ARM引入了总线token机制。

总线token机制基于一个令牌(token)的概念。令牌可以理解为一种权限,只有持有令牌的设备才能在总线上进行数据传输。当一个设备需要访问总线时,它必须请求令牌。如果当前总线上没有令牌可用,设备必须等待,直到有令牌可用为止。一旦设备获得令牌,它就可以在总线上进行数据传输。当传输完成后,设备释放令牌,使其可供其他设备使用。

总线token机制具有以下特点:

  • 确保数据传输的有序性:每次只有一个设备可以持有令牌,这样可以保证数据传输按照请求的顺序进行。
  • 控制总线的带宽:通过令牌管理,可以控制总线上的设备数量,以控制总线的带宽使用情况,避免过多设备同时访问总线导致的性能下降。
  • 提高系统的可靠性:总线token机制可以避免数据冲突和竞争,从而提高系统的可靠性和稳定性。

总线token机制是ARM处理器中用于管理总线上的数据传输的一种重要机制,能够保证数据传输的有序性和可靠性。在多设备同时访问总线的情况下,总线token机制可以有效地管理和控制数据传输。

下篇文章:ARM CoreLink 系列 3 – CCI-550 控制器介绍

推荐阅读
https://blog.51cto.com/qmiller/5285105

相关文章:

【ARM CoreLink 系列 2 -- CCI-400 控制器简介】

文章目录 CCI-400 介绍DVM 机制介绍DVM 消息传输过程TOKEN 机制介绍 下篇文章:ARM CoreLink 系列 3 – CCI-550 控制器介绍 CCI-400 介绍 CCI(Cache Coherent Interconnect)是ARM 中 的Cache一致性控制器。 CCI-400 将 Interconnect 和coh…...

LeetCode(力扣)77. 组合Python

LeetCode77. 组合 题目链接代码 题目链接 https://leetcode.cn/problems/combinations/description/ 代码 class Solution:def combine(self, n: int, k: int) -> List[List[int]]:result []return self.backtracking(n, k, 1, [], result)def backtracking(self, n, k…...

uniapp h5 微信缓存,解决版本更新还是旧版本

文章目录 一、微信缓存是什么?二、如何解决1.打包入口文件解决2.给请求url加时间戳3.给打包的js文件添加时间戳并修改打包后的css文件夹 总结 一、微信缓存是什么? 微信缓存是指微信客户端为了提高用户的使用体验,会在用户使用微信过程中将一…...

Nacos——Distro一致性协议

Nacos——Distro一致性协议 1. 理论 一致性一直都是分布式系统中绕不开的话题。根据CAP中,要么CP(保证强一致性牺牲可用性),要么AP(最终一致性来保证可用性),在市面上也有几种一致性算法,像Paxos,Raft,Zoo…...

大模型参数高效微调PEFT的理解和应用

简介 近年的大型语言模型(也被称作基础模型),大多是采用大量资料数据和庞大模型参数训练的结果,比如常见的ChatGPT3有175B的模型参数量。随着Large Language Model(LLM)的横空出世,网络模型对常见问题的解答有了很强的…...

工作游戏时mfc140u.dll丢失的解决方法,哪个方法可快速修复mfc140u.dll问题

在 Windows 操作系统中,mfc140u.dll 文件是非常重要的一个组件,许多基于 MFC(Microsoft Foundation Classes)的程序都需要依赖这个文件。然而,有些用户在运行这些程序时可能会遇到mfc140u.dll丢失的问题,导…...

选择排序——直接选择排序

直接选择排序:(以重复选择的思想为基础进行排序) 1、简述 顾名思义就是选出一个数,再去抉择放哪里去。 设记录R1,R2…,Rn,对i1,2,…,n-1,重复下…...

【C++基础】观察者模式(“发布-订阅”模式)

本文参考:观察者模式 - 摩根斯 | 爱编程的大丙 观察者模式允许我们定义一种订阅机制,可在对象事件发生时通知所有的观察者对象,使它们能够自动更新。观察者模式还有另外一个名字叫做“发布-订阅”模式。 发布者: 添加订阅者&…...

从业多年,我总结出软件测试工程师必须掌握的技能,你不可错过!

经常会有小伙伴询问:“测试工程师有哪些必须要掌握的技能?”这是一个非常大的课题,因为每个人从事的行业不同、岗位不同,需要掌握的技能自然也不一样。 今天小编就从不同岗位、不同行业两个大方面,来讲讲软件测试工程师…...

【nerfStudio】5-nerfStudio导出3D Mesh模型

几何图形的导出 在这里我们将介绍如何从nerfstudio中导出点云和网格。您将使用的主要命令是ns-export。我们将点云导出为.ply文件,纹理网格导出为.obj文件。 导出网格 1. TSDF融合 TSDF(截断有符号距离函数)融合是一种使用深度图像提取表面网格的算法。此方法适用于所有…...

重要公告|投票委托已经上线,应该如何选择社区代表?

社区代表是Token持有者委托投票权的个人或团体,可以代表Token持有者在Moonbeam治理中投票。委托是可选的,允许代表在治理过程中代表更大比例的Token和Token持有者。相比社区代表,不愿投票的Token持有者可以将投票权委托给社区代表&#xff0c…...

【操作系统】聊聊进程、线程、协程

进程内部有那些数据 为什么创建进程的成本高 进程和线程 进程是资源分配的基本单位,而线程是程序执行的基本单位,一个是从资源分配的角度看,另一个是执行角度。 那么进程和程序的区别是什么? 程序,一段代码&#xff…...

springboot 下 activiti 7会签配置与实现

流程图配置 会签实现须在 userTask 节点下的 multi instance 中配置 collection 及 completion condition; collection 会签人员列表;element variable 当前会签变量名称,类似循环中的 item;completion condition: 完成条件。 ${taskExecutionServiceIm…...

RK3399平台开发系列讲解(内核调试篇)spidev_test工具使用

🚀返回专栏总目录 文章目录 一、环境二、执行测试三、回环测试四、字节发送测试五、32位数据发送测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,“spidev_test” 是一个用于测试和配置 SPI(Serial Peripheral Interface)设备的命令行工具。…...

点云从入门到精通技术详解100篇-自适应点云局部邻域特征的特征提取与配准(续)

目录 3.4 深度相机误差建模 3.5 实验结果及分析 3.5.1 TOF 相机平面畸变校正 3.5.2 TOF 相机深度误差校正...

VBA技术资料MF52:VBA_在Excel中突出显示前 10 个值

【分享成果,随喜正能量】一言之善,重于千金。善良不分大小,有时候你以为的一句话,小小的举手之劳,也可能就是别人的救赎!不要吝啬你的善良,因为你永远不知道那小小的善良能给多少人带来光明。。…...

leetcode做题笔记134. 加油站

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost &…...

Allegro166版本如何在颜色管理器中实时显示层面操作指导

Allegro166版本如何在颜色管理器中实时显示层面操作指导 在用Allegro166进行PCB设计的时候,需要在颜色管理器中频繁的开关层面。但是166不像172一样在颜色管理器中可以实时的开关层面,如下图 需要打开Board Geometry/Soldermask_top层,首先需要勾选这个层面,再点击Apply即…...

纷享销客入选中国信通院《高质量数字化转型产品及服务全景图》

近期,在中国信息通信研究院主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中上,重磅发布了《高质量数字化转型产品及服务全景图(2023)》,纷享销客凭借先进的技术能力和十余年客户业务场景应用理解&#xf…...

C高级 DAY4

一、分支语句 case ...in语句 shell中的switch语句 case $变量名 in常量1)语句;; ------->类似于C中break的作用,;;除了最后一条分之外,都不能省略常量2)语句;; 常量n)语句;;*) ------->类似于C中default,但…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...