【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)

         大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁。

        上课时我们讲了AXI的寻址选项,本章节讲一下AXI的额外的控制信息

        大家可能经常看到AXI使用的程序里有未连接的信号,如*_prot、*_cache,这些信号为什么不连接,AXI总线也可以工作呢?本章节就来解释下这个问题。

  • *_prot:AXI总线的保护单元支持,
  • *_cache:系统级缓存和其他性能增强组件的支持

        这里会有一系列的课程,和大家分享AMBA总线家族,欢迎大家一起学习,收藏点赞。

 系列文章

【总线】AMBA总线架构的发展历程-CSDN博客

【总线】设计fpga系统时,为什么要使用总线?-CSDN博客

【总线】AXI总线:FPGA设计中的通信骨干-CSDN博客

【总线】AMBA总线家族的明星成员:AXI协议简介-CSDN博客

【总线】AXI4第一课时:揭秘AXI4总线的五大独立通道-CSDN博客

【总线】AXI4第二课时:深入AXI4总线的基础事务-CSDN博客

【总线】AXI4第三课时:握手机制-CSDN博客

【总线】AXI4第五课时:信号描述-CSDN博客

【总线】AXI4第六课时:寻址选项深入解析-CSDN博客

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)-CSDN博客


原理

缓存支持

        系统级缓存和其他性能增强组件的支持是由缓存信息信号 ARCACHE 和 AWCACHE 提供的。这些信号提供了关于事务可以如何处理的额外信息。

        ARCACHE[3:0] 或 AWCACHE[3:0] 信号通过提供以下事务属性来支持系统级缓存:

  • 可缓冲 (B) 位,ARCACHE[0] 和 AWCACHE[0]:当此位为高时,意味着互连体或任何组件可以延迟事务到达其最终目的地,延迟的周期可以是任意的。这通常仅与写入有关。
  • 可缓存 (C) 位,ARCACHE[1] 和 AWCACHE[1]:当此位为高时,意味着在最终目的地的事务不需要与原始事务的特性相匹配。

        对于写入,这意味着可以合并多个不同的写入。

         对于读取,这意味着可以为多个读取事务预取一个位置,或者只为一个位置获取一次。

  • 读分配 (RA) 位,ARCACHE[2] 和 AWCACHE[2]:当 RA 位为高时,意味着如果传输是一个缓存未命中的读取,则应该进行分配。如果 C 位为低,则 RA 位不能为高。
  • 写分配 (WA) 位,ARCACHE[3] 和 AWCACHE[3]:当 WA 位为高时,意味着如果传输是一个缓存未命中的写入,则应该进行分配。如果 C 位为低,则 WA 位不能为高。

        在写事务的情况下,AWCACHE 信号可以用来确定哪个组件提供写响应。如果写事务被标记为可缓冲的,那么由桥接或系统级缓存提供写响应是可以接受的。然而,如果事务被标记为不可缓冲的,那么写响应必须来自事务的最终目的地。

        AXI协议并不决定缓冲或缓存数据到达目的地的机制。例如,系统级缓存可能有控制器来管理清除、冲刷和使缓存条目无效。另一个例子是包含写缓冲区的桥接器,如果它接收到一个具有匹配事务ID的不可缓冲写入,它可能有控制逻辑来排空缓冲区。

保护单元支持

        为了支持复杂的系统设计,通常需要互连体和系统中其他设备提供对非法事务的保护。AWPROT 或 ARPROT 信号提供了三个级别的访问保护:

  • 普通或特权,ARPROT[0] 和 AWPROT[0]:

        低电平表示普通访问。

        高电平表示特权访问。这被一些主设备用来表示它们的处理模式。特权处理模式通常在系统中拥有更高级别的访问权限。

  • 安全或非安全,ARPROT[1] 和 AWPROT[1]:

       低电平表示安全访问。

        高电平表示非安全访问。这在需要更高程度区分处理模式的系统中使用。

  • 指令或数据,ARPROT[2] 和 AWPROT[2]:

        低电平表示数据访问。

        高电平表示指令访问。这个位提供了事务是指令访问还是数据访问的指示。

为什么可以不连ARCACHE和ARPROT

        在实际应用中,可能会发现某些AXI信号,如ARCACHE和ARPROT,没有被所有系统或设计所使用。这种情况的原因可能包括:

  1. 系统简化:在一些简单的系统设计中,可能不需要复杂的缓存策略或保护机制。因此,设计者可能会选择忽略这些信号以简化设计和减少开销。
  2. 性能考虑:实现这些信号可能需要额外的硬件资源和逻辑。在对性能要求不高或对成本敏感的应用中,可能会省略这些功能。
  3. 特定应用:有些应用可能有特定的缓存或保护需求,这可能由软件或操作系统管理,而不是通过硬件信号控制。
  4. 安全和可靠性:在安全关键的应用中,可能会更加谨慎地使用这些信号,以确保系统的安全和可靠性。
  5. 特定类型的AXI:AXI协议有多个变种(如AXI, AXI-Lite, AXI-Stream等),某些变种可能不支持或不需要所有的AXI信号。

        重要的是要理解,AXI协议提供了一套丰富的信号和特性,以支持广泛的应用场景。设计者可以根据他们的具体需求选择性地实现这些特性。在学习过程中,了解这些信号的完整功能和潜在用途是有价值的,即使在某些实际应用中它们可能不被使用

应用案例

 应用案例 1:多核处理器系统中的缓存一致性

场景描述:在一个多核处理器系统中,每个核心都有自己的缓存。当一个核心的数据被修改后,系统需要确保其他核心的相应缓存行是一致的。

应用点:使用 ARCACHE 和 AWCACHE 信号来标识数据的缓存属性,如是否可以被合并或分配,从而帮助维护缓存一致性。

 应用案例 2:嵌入式系统中的内存保护

场景描述:在嵌入式系统中,不同的软件模块可能需要不同级别的访问权限,如操作系统内核和用户应用程序。

应用点:利用 ARPROT 信号中的保护级别来确保安全访问,防止用户级应用程序访问或修改内核数据。

应用案例 3:高性能计算中的缓存策略

场景描述:在高性能计算(HPC)系统中,缓存的使用对于系统性能至关重要。系统需要智能地管理数据的缓存,以减少内存访问延迟。

应用点:通过 ARCACHE 和 AWCACHE 信号的配置,实现高效的缓存策略,如写回(write-back)或写穿透(write-through)。

应用案例 4:虚拟化环境中的内存管理

场景描述:在虚拟化环境中,多个虚拟机(VM)共享同一个物理硬件资源。每个VM都需要有自己的内存空间和保护级别。

应用点:使用 ARPROT 信号来区分不同VM的访问权限,确保虚拟化环境中的内存安全和隔离。

应用案例 5:实时系统中的确定性响应

场景描述:在实时系统中,对任务的完成时间有严格的要求。系统需要快速响应外部事件,如传感器数据的采集和处理。

应用点:通过优化 ARCACHE 和 AWCACHE 信号的使用,减少缓存引起的不确定性,确保系统能够提供确定性的响应。

应用案例 6:分布式共享内存系统中的一致性

场景描述:在分布式共享内存(DSM)系统中,多个处理器或节点共享同一块内存区域。

应用点:利用 ARCACHE 和 AWCACHE 信号来维护数据在不同节点间的一致性,确保所有节点看到的是最新的数据副本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3.js“非原始值”响应式实现基本原理笔记(二)

如果您觉得这篇文章有帮助的话!给个点赞和评论支持下吧,感谢~ 作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…

STM32F103C8T6核心板原理图和PCB分享

PCB图 原理图 资料下载地址: 原理图PCB库: https://545c.com/d/45573183-61875742-29897c?p7526 (访问密码: 7526)

第3章.中央服务器的物联网模式--企业系统集成

为了从物联网实施中获得最大价值,物联网系统需要与企业中的现有软件系统集成。事实上,与外部系统的集成允许网络世界和物理世界之间的交互——代表物理世界的物联网系统和驻留在网络/虚拟世界中的外部系统。用于此模式的符号如下图所示: 图3.…

mac怎么压缩pdf文件大小,mac压缩pdf文件大小不改变清晰度

在数字化时代,pdf格式因其良好的兼容性和稳定性,成为了文档分享和传输的首选。然而,随着文件内容的丰富,pdf文件的体积也越来越大,给存储和传输带来了不小的困扰。本文将揭秘几种简单有效的pdf文件压缩方法&#xff0c…

图神经网络实战(16)——经典图生成算法

图神经网络实战(16)——经典图生成算法 0. 前言1. 图生成技术2. Erdős–Rnyi模型3. 小世界模型小结系列链接 0. 前言 图生成算法是指用于创建模拟图或网络结构的算法,这些算法可以根据特定的规则和概率分布生成具有特定属性的图&#xff0c…

SCI一区级 | Matlab实现BO-Transformer-BiLSTM时间序列预测

SCI一区级 | Matlab实现BO-Transformer-BiLSTM时间序列预测 目录 SCI一区级 | Matlab实现BO-Transformer-BiLSTM时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-BiLSTM时间序列预测,贝叶斯优化Transfor…

C++_STL---list

list的相关介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 list的底层是带头双向循环链表结构,链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。…

WAIC | 上海人形机器人创新中心 | 最新演讲 | 详细整理

前言 笔者看了7月4号的人形机器人与具身智能发展论坛的直播,并在7月5日到了上海WAIC展会现场参观。这次大会的举办很有意义,听并看了各家的最新成果,拍了很多照片视频,部分演讲也录屏了在重复观看学习 稍后会相继整理创立穹彻智…

[c++] 可变参数模版

前言 可变参数模板是C11及之后才开始使用,学校的老古董编译器不一定能用 相信大家在刚入门c/c时都接触过printf函数 int printf ( const char * format, ... ); printf用于将数据格式化输出到屏幕上,它的参数非常有意思,可以支持任意数量,任意类型的多参数.而如果我们想实现类…

【Java探索之旅】继承概念_语法_父类的成员访问

文章目录 📑前言一、继承1.1 继承的概念1.2 继承语法1.3 继承发生后 二、父类的访问2.1 父类成员变量访问2.2 父类成员方法访问 🌤️全篇总结 📑前言 在面向对象编程中,继承是一种重要的概念,它允许我们创建一个类&…

[go-zero] 简单微服务调用

文章目录 1.注意事项2.服务划分及创建2.1 用户微服务2.2 订单微服务 3.启动服务3.1 etcd 服务启动3.2 微服务启动3.3 测试访问 1.注意事项 go-zero微服务的注册中心默认使用的是Etcd。 本小节将以一个订单服务调用用户服务来简单演示一下,其实订单服务是api服务&a…

VSCode设置好看清晰的字体!中文用鸿蒙,英文用Jetbrains Mono

一、中文字体——HarmonyOS Sans SC 1、下载字体 官网地址:https://developer.huawei.com/consumer/cn/design/resource/ 直接下载:https://communityfile-drcn.op.dbankcloud.cn/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20230517…

昇思25天学习打卡营第18天 | K近邻算法实现红酒聚类

1、实验目的 了解KNN的基本概念;了解如何使用MindSpore进行KNN实验。 2、K近邻算法原理介绍 K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967)&#…

Golang | Leetcode Golang题解之第220题存在重复元素III

题目: 题解: func getID(x, w int) int {if x > 0 {return x / w}return (x1)/w - 1 }func containsNearbyAlmostDuplicate(nums []int, k, t int) bool {mp : map[int]int{}for i, x : range nums {id : getID(x, t1)if _, has : mp[id]; has {retu…

ctfshow web sql注入 web242--web249

web242 into outfile 的使用 SELECT ... INTO OUTFILE file_name[CHARACTER SET charset_name][export_options]export_options:[{FIELDS | COLUMNS}[TERMINATED BY string]//分隔符[[OPTIONALLY] ENCLOSED BY char][ESCAPED BY char]][LINES[STARTING BY string][TERMINATED…

【三级等保】等保整体建设方案(Word原件)

建设要点目录: 1、系统定级与安全域 2、实施方案设计 3、安全防护体系建设规划 软件全文档,全方案获取方式:本文末个人名片直接获取。

数据结构——二叉树相关题目

1.寻找二叉树中数值为x的节点 //寻找二叉树中数值为x的节点 BTNode* TreeFind(BTNode* root, BTDataType x)//传过来二叉树的地址和根的地址,以及需要查找的数据 {if (root Null){return Null;}//首先需要先判断这个树是否为空,如果为空直接返回空if (…

基于python的数据分解-趋势-季节性-波动变化

系列文章目录 前言 时间序列数据的分解,一般分为趋势项,季节变化项和随机波动项。可以基于加法或者乘法模型。季节变化呈现出周期变化,因此也叫季节效应(周期)。 一、数据分解步骤 (1)估计时间序列的长期…

拓扑排序,PageRank(markov),实对称矩阵等

拓扑排序 多件事情有先后顺序,如何判断哪个先哪个后 拓扑排序算法: 1.读入图时,需要记录每个顶点的入度,以及相邻的所有顶点 2.将入度为0的顶点入队(先进先出) 3.取出队首元素a,&#xf…

rocketmq-console可视化界面功能说明

rocketmq-console可视化界面功能说明 登录界面OPS(运维)Dashboard(驾驶舱)Cluster(集群)Topic(主题)Consumer(消费者)Producer(生产者)Message(消息)MessageTrace(消息轨迹) rocketmq-console是rocketmq的一款可视化工具,提供了mq的使用详情等功能。 本章针对于rock…