【AMBA Bus ACE 总线 2 -- ACE Snoop transaction】

2024-04-27 01:12

本文主要是介绍【AMBA Bus ACE 总线 2 -- ACE Snoop transaction】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Snoop Transaction 简介
      • 主要类型的snoop transaction
      • snoop transaction的目的
    • ACE Snoop transaction

Snoop Transaction 简介

ARM ACE (AXI Coherency Extensions) 协议中的snoop transaction是一种机制,旨在维持多核处理器系统中缓存之间的一致性。在多核系统中,每个处理器核心可能有自己的一级或二级缓存,这可能导致同一内存地址在不同缓存中有不同的副本。snoop transaction允许一个处理器核心查询(“snoop”)其他核心的缓存状态,以确保数据一致性。

主要类型的snoop transaction

  • Read Snoop:当一个核心需要读取某个内存地址的数据时,它会发起一个read snoop,以检查其他核心的缓存是否有该地址的更新副本。
  • Write Snoop:当一个核心想要写入某个内存地址时,它会发起一个write snoop,以确保其他核心的缓存不会保留该内存地址的过时副本。

snoop transaction的目的

  • 保持缓存一致性:通过snoop transaction,系统能够确保所有处理器核心看到的是同一内存地址的最新数据,从而避免了数据不一致的问题。
  • 提高系统性能:维持缓存一致性有助于提高多核系统的整体性能,因为它减少了对内存的直接访问次数,使得数据访问更加高效。

ACE Snoop transaction

在这里插入图片描述

图 1-1

假如 Master0 和 Master1 对某个cache行都有备份,当发起 snoop transaction 的时候是否想把另外一个cache行的数据进行invalidate 操作还是其他操作,这个是和snoop信号线配合完成的。domain 决定 coherency的区间。

一个系统上可能有很多master,这些master分为不同的domain,所谓的coherency不一定是系统层面的coherency,可以是某些domain的coherency。同样,可以通过snoop信号线来决定snoop transaction的类型。

通过AW, AR channel发起一些transaction,对于master0来说只是一个简单请求,但是当它发给coherency总线的时候,coherency总线就会根据domain和snoop信号线来决定发起一个什么样的transaction。

在这里插入图片描述

图 1-2

如上图1-2 所示,Master0 通过 AW/AR channel 给 Coherency interconnect 线发起一个snoop transaction,coherency总为了去snoop 其他 master 中的cache行,coherency 总线通过AC channel发起一个transaction请求给master1,然后 CR channel 和 CD channel 会给出对应的response,coherency总线受到 respons 之后会把最终的 respons给 Master0 的 B/R channel上,如下图 1-3 :

在这里插入图片描述

图 1-3

这篇关于【AMBA Bus ACE 总线 2 -- ACE Snoop transaction】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939157

相关文章

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

电子电气架构---私有总线通信和诊断规则

电子电气架构—私有总线通信和诊断规则 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、

C#通过ACE OLEDB驱动程序访问 Access和 Excel

ACE 代表 Access Connectivity Engine。它是 Microsoft 提供的一组组件,用于访问和操作 Microsoft Access 数据库以及其他类似的文件格式,如 Excel 工作簿。ACE 主要包括以下几部分: ACE OLEDB 驱动程序:用于通过 OLE DB 提供程序访问 Access 数据库和 Excel 文件。例如,Microsoft.ACE.OLED

I2C总线协议(AT24C02C)

本文章是基于TQ2440开发板上的AT24C02C 一, I2C简介       IIC即Inter-Integrated Circut(集成电路总线),有飞利浦在八十年代实际出来. I2C是一种多向控制总线,就是同一个总线下可以连接多个芯片,同时每个芯片都可以作为实时数据传输的控制源. 二. 硬件结构       I2C串行总线一般有两根信号线,一根是双向的数据总线SDA, 一根是

linux驱动模型 -- bus,device,device_driver之间的关系

Linux 设备驱动模型中,按照层次的组织结构,抽象成总线(struct bus_type),设备(struct device),驱动(struct device_driver)的层次组织形式,这是最原始的抽象结构,在此基础之上,根据不同类型的总线/设备/驱动,有形成了更高层次的组织结构,如 virtio总线(struct bus_type virtio_bus),virtio设备(

org.hibernate.transaction.JDBCTransaction cannot be cast to javax.transaction.Transaction

org.hibernate.transaction.JDBCTransaction cannot be cast to javax.transaction.Transaction 这部分的具体地方为Transaction tr =(Transaction) session.beginTransaction();  错误原因:包倒错了,应该导入的包是hibernate的Transaction包

【STM32】CAN总线基础入门

CAN总线基础入门 一、CAN简介二、主流通信协议对比三、CAN物理层1、CAN硬件电路2、CAN电平标准3、CAN收发器 – TJA1050(高速CAN)4、CAN物理层特性 四、帧格式1、CAN总线帧格式2、数据帧3、数据帧各部分用途简介4、数据帧的发展历史5、遥控帧6、错误帧7、过载帧8、帧间隔9、位填充10、波形实例 五、位同步1、接收方数据采样2、接收方数据采样遇到的问题3、位时序

V90总线伺服报800F错误

1、博途PLC工艺对象位置轴轴控功能块 博途PLC工艺对象位置轴轴控功能块(完整SCL代码)-CSDN博客文章浏览阅读423次。S7-1200PLC脉冲轴位置轴位置控制功能块S7-1200PLC脉冲轴位置轴位置控制功能块优化(完整SCL源代码)_s71200 脉冲轴-CSDN博客文章浏览阅读341次。该博客详细介绍了如何优化S7-1200 PLC的位置控制功能块,使得在轴激活限位时无需复位即可直

【PostgreSQL教程】PostgreSQL 高级篇之 TRANSACTION(事务)

博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我