【AMBA Bus ACE 总线 1 -- ACE 总线介绍】

news2024/11/26 18:49:54

文章目录

    • Coherency 问题简介
    • ACE 出现背景
    • ACE 总线介绍
    • Acknowledge signaling
    • Snoop Channel Signals

Coherency 问题简介

一致性Coherency)问题通常出现在多处理器系统中,尤其是当多个处理器可能同时访问同一内存位置时。简单来说,一致性问题是关于保证一个处理器上的操作结果对于其他处理器来说是可见和一致的问题。这里涉及两个主要方面:

  1. 数据一致性:如果两个或多个处理器都要读写同一个内存位置,我们需要确保它们不会读到过时或不正确的数据。例如,如果处理器A更新了某个内存位置的数据,那么处理器B在之后读取该位置时应该能读到处理器A最新写入的数据,而不是旧的数据。
  2. 操作顺序一致性:不仅数据要保持一致,操作的顺序也要一致。也就是说,如果处理器A先执行操作1然后执行操作2,其他处理器观察到的操作顺序也应该是这样。

ACE 出现背景

为了解决 Coherency 这一挑战,ARM引入了ACE协议。ACE是基于AXI(Advanced eXtensible Interface,高级可扩展接口)协议的一种扩展,AXI本身就是ARM处理器和外设之间的高性能、高带宽接口协议。通过ACE,ARM能够提供一种机制,使得多核处理器系统中的缓存可以实现一致性管理和数据共享。

ARM的ACE协议引入了以下关键特点来支持缓存一致性和系统级一致性:

  • 缓存一致性协议支持:支持多核心之间的缓存行一致性,允许有效地同步缓存数据。
  • 屏障事务(Barrier Transactions):支持同步操作,确保特定操作的顺序性。

ACE 总线介绍

ACE 总线主要是解决多个master共享数据时产生coherency的问题,对于memory 属性因此强调的是 shareable, 可以理解为某一个地址或者cache 行,它可能被多个master所共享,因为我们叫它shareable。

CE 协议相较于AXI 总线增加了3组总线:

  • AC(Snoop Address)
  • CR(Snoop Response)
  • CD(Snoop Data).
    在这里插入图片描述

AC 的方向是个 slave 方向(slave interface给master interface的线),也就是slave 方向向master方向的请求,因为master要连接到总线上,总线和master连接的那个点就叫做slave interface,只有slave interface 才可以和master 相连,所以针对coherency 总线发起一个 snoop transaction 给 master,比如 CPU 或者DMA,然后Master 会通过 CR(Snoop Response) 来响应这个transaction,有snoop 就有可能出现数据的传输,有些情况下,数据可以通过snoop data 把数据传过来。

需要注意的是并不是所有的 snoop transaction 都需要有 snoop data 传输

Acknowledge signaling

此外还有 Wack 和 Rack, 主要用于告诉一次完成的transaction 结束了。

SignalSource
RACKManager
WACKManager

在这里插入图片描述

  • Rack 拉高的前提是当Rlast Rvalid Rready 都握手成功的时候
  • Wack 拉高的前提是 Bvalid Bready 都握手成功

这两个信号解决的问题是:针对相同cache line 访问的情况,如果 RACK 或者WACK 没有给的时候,另外一个 Master 对这个cache line的snoop transaction,coherency总线是不应该发过来。

Snoop Channel Signals

Snoop channel signalsSignals
Snoop AddressACVALID, ACREADY, ACADDR[x:0], ACSNOOP[3:0], ACPROT[2:0]
Snoop ResponseCRVALID, CRREADY, CRRESP[4:0]
Snoop DataCDVALID, CDREADY,CDDATA[x:0], CDLAST
  • 既然对于cache行的操作,那么就要告诉它一个地址,因为如果不给地址,那不就不知道对那个cacheline操作;
  • ACPROT[2:0]:因为访问有安全和非安全的区别,特权及非特权,所以需要有PROT信号;
  • ACSNOOP[3:0] :因为snoop transaction有很多种,比如 clean, invalidae,clean share等等,这些snoop transaction就是通过 ACSNOOOP[3:0] 来区分的。
  • CDDATA[x:0] 用来将snoop数据传回给 coherency总线,然后 coherency总线决定是将数据写入memory总还是传给其他master。

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

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

相关文章

解决在 Python 数据分析中遇到的 Matplotlib 字体警告问题

当在 Python 数据分析中遇到类似以下警告时: D:\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:211: RuntimeWarning: Glyph 24037 missing from current font.font.set_text(s, 0.0, flagsflags) D:\anaconda3\lib\site-packages\matplotlib\ba…

【Java EE】总结12种锁策略以及synchronized的实现原理

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

网易云热评加密函数逆向(Jsrpc)

今天给大家来个jsrpc实战教程,让大家继续加深对jsrpc的理解和认识。 1、因为网易云音乐热评的加密并不在cookie上,而是参数加密,所以这里就不需要进行hook住cookie了。 2、之前就知道网易云音乐热评的加密存在之地是在下图的位置,是那个函数window.asrsea(JSON.stringify(…

我成为亚马逊云科技“技领云博主“啦

小李哥前一阵子被选为了大中华区亚马逊云科技”技领云领袖“博主项目首批成员。目前该项目也在公开招募,今天就给大家给大家探秘下该项目~1️⃣什么是”技领☁️领袖“博主项目? 该项目是由亚马逊云科技AWS官方发起的项目,主要是招…

开源代码分享(23)-基于混合整数二阶锥规划(MISOCP)的主动配电网最优潮流计算

参考文献: [1]乔珊. 主动配电网多源协同运行优化研究[D]. 山东大学, 2021. [2]高红均,刘俊勇,沈晓东,等. 主动配电网最优潮流研究及其应用实例 [J]. 中国电机工程学报, 2017, 37 (06): 1634-1645. DOI:10.13334/j.0258-8013.pcsee.152839. 1.引言 主动配电网技术的…

智慧养猪场视频AI智能监控与可视化管理方案

在科技日新月异的今天,智能化、自动化已成为众多行业追求的方向。养猪业作为传统农业的重要组成部分,同样迎来了技术革新的春风。特别是随着人们对食品安全等问题的日益关注,养猪场视频监控监管方案的智能化升级显得尤为重要。 养猪场视频智…

Java基础(运算符)

运算符 运算符和表达式 运算符:对字面量或者变量进行操作的符号 表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式;不同运算符连接的表达式体现的是不同类型的表达式。 算术运算符(加…

短视频素材哪个软件好?短视频素材那里来?

在当今数字化时代,高质量的视频素材对于提升任何视频项目的吸引力和专业度都至关重要。以下是全球范围内精选的视频素材网站,每个都能为你的视频创作提供独特的视觉支持和灵感。 1. 蛙学府(中国) 主要提供丰富的中文视频素材&…

Centos 5 的yum源

背景 有使用较老的Centos 5 系统内部安装软件无法正常报错,是由于系统叫老yum源存在问题 处理方法 更换下述yum源,可以将其他repo源文件备份移动到其他目录,添加下述源后重新测试 [C5.11-base] nameCentOS-5.11 baseurlhttp://vault.c…

哈希表练习题

前言 本次博客将要写一写,哈希表的一些使用 哈希表主要是一个映射,比如数组就是一个哈希表 是一个整型对应另一个整型,介绍的哈希表还是要以写题目为例 第一题 242. 有效的字母异位词 - 力扣(LeetCode) 直接来看…

vue-manage-system 更新,后台管理系统开发更简单

vue-manage-system 近期进行了一次版本升级,主要是支持了更多功能、升级依赖版本和优化样式,并且上线了官方文档网站,大部分功能都有文档或者使用示例,更加适合新手上手开发,只需要根据实际业务简单修改,就…

【讯为Linux驱动笔记1】申请一个字符设备

Linux下每个设备都需要有一个专属设备号:主设备号 次设备号 【申请字符设备】 主设备号:一类驱动:如:USB驱动 次设备号:这类驱动下的某个设备 如:键盘鼠标 设备号是32位的dev_t类型的,高12位主…

STL_deque_stack_queue

Deque deque容器(双端队列) ​deque是一种双向开口的分段连续线性空间(对外号称连续,使用者无法感知它是分段的)。deque支持从头尾两端进行元素的插入和删除。deque没有容量的概念,因为它是动态地以分段连续空间组合而成的。随时…

同态加密原理解析

目录 1.数学介绍2.使用多项式环进行加密2.1 私钥和公钥的产生2.2 加密2.3 解密 3.同态计算3.1 同态加法3.2 同态乘法 1.数学介绍 同态加密方案基于一个难以计算的问题Ring Learning with Errorsred。这些方案中的数据在加密和未加密时都用多项式表示。 这里举一个简单的多项式…

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 土堆教程

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 教程大纲如何使用此教程快速开始版本 Windows下判断有无NVIDIA GPU安装Anaconda作用流程下载安装 Anaconda 创建虚拟环境利用conda或者…

jmeter安装和简单使用

jmeter安装和简单使用 1. 安装 jmeter是基于Java开发的测试应用,其运行依赖于java环境,所以在下载运行jmeter前,先确保本机已经安装jdk或者jre,安装jdk步骤此处不描述。 下载jmeter: jmeter是Apache旗下的产品&…

电阻理论基础

电流的形成是电荷运动,电子方向相反,标量 电压:电势有参考点,是一个相对量 电阻的值不取决于电压和电流的, Ra表示标准电阻 R表示任意温度的电阻

数据结构:时间复杂度和空间复杂度

目录 1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例 3.空间复杂度 1. 如何衡量一个算法的好坏 下面求斐波那契数列的算法好还是不好,为什么?该如何衡量一个算…

新书推荐机器学习大数据平台的构建、任务实现与数据治理

在大数据与机器学习日新月异的今天,构建稳定、安全、可扩展的数据平台已成为企业和研究机构的迫切需求。这本书应运而生,提供了详尽且实用的指南,帮助读者在云计算环境中构建、优化和治理大数据平台。 作者以清晰明了的写作风格,…

实现基于UDS LIN诊断协议的本地OTA升级

一、目标 在上篇文章LIN诊断实现MCU本地OTA升级_lin ota-CSDN博客中已经基于LIN诊断协议实现了通过PC端上位机对MCU进行本地的OTA升级,但是没有完全按照UDS协议实现。本篇将在上篇文章的基础上进行改进,实现基于UDS LIN诊断协议的本地OTA升级。本篇文章对…