AHB---独占传输

1.独占传输介绍

AHB5定义了Exclusive_Transfers属性。这个属性定义了一个接口是否支持独占传输的概念。如果这个属性没有定义,那么接口就不支持独占传输。

独占传输提供了一种支持类似semaphore操作的机制。

一个独占访问序列是一个单一master发起的一系列独占传输,操作步骤如下:

  1. 从一个地址执行一个独占读取(Exclusive Read)传输。
  2. 基于从独占读取获得的数据计算一个新数据,以便存储到该地址。
  3. 在独占读取和独占写入之间可以有其他的非独占传输。
  4. 对同一个地址用新数据执行一个独占写入(Exclusive Write)传输:
    • 如果自从独占读取传输以来没有其他master写入该位置,独占写入传输就成功并更新内存。
    • 如果自从独占读取传输以来另一个master已经写入了该位置,独占写入传输就失败,内存位置不会被更新。
  5. 对独占写传输的响应表明传输是成功还是失败。

这个序列确保只有在存储到内存时,该位置仍然保持用于计算要写入该位置的新值的相同值时,才更新内存位置。

如果独占写入传输失败,预期master将重复整个独占访问序列。

如果在独占读传输之后,同一个master更新相同或重叠的位置,是否会导致相关的独占写传输成功或失败,这是硬件实现定义的。

2.独占访问监视器

为了支持独占访问序列,需要一个独占访问监视器,该监视器必须确定独占写入传输是成功还是失败。

独占访问监视器必须能够同时监控系统中每个能够进行独占访问的master的至少一个地址位置。

独占访问监视器在系统中的位置没有定义。然而,它必须被放置在能够观察到用于独占访问序列的所有地址位置的地方。例如,如果一个系统包括多个内存控制器,那么所有的访问都必须通过包含独占访问监视器的中心点进行路由,或者在每个内存控制器处需要一个单独的独占访问监视器。

系统不要求对所有地址位置支持独占访问序列。对于不支持独占访问序列的访问,提供了一个故障安全机制。通常,系统会对主内存支持独占访问序列,但不会对任何外围设备支持

3. 独占访问信号

与独占传输相关联的额外信号包括:

  • HEXCL       独占传输。表明当前传输是独占访问序列的一部分。这个信号是地址阶段信号,并且具有与HADDR相同的有效性约束。

  • HMASTER[m:0]     master标识。具有多个独占传输能力的线程的master必须生成这个信号来区分不同的线程。 由master生成的HMASTER值将与互连生成的值结合,以确保呈现给独占访问监视器的HMASTER值是唯一的。 这个信号是地址阶段信号,并且具有与HADDR相同的有效性约束。

  • HEXOKAY     独占确认。增加了一个额外的响应信号来指示独占传输的成功或失败。

HMASTER[m:0]信号的宽度是硬件设计定义的。然而,本规范推荐以下宽度:

  • 对于master组件,根据支持独占传输能力的线程数量实现所需的位宽。
  • 对于master连接的互连端口,实现4位。互连可以选择性地支持更大的位宽配置。
  • 对于slave或监视器组件,实现8位。slave或监视器组件可以选择性地支持更大的位宽配置。

HMASTER信号的使用不限于独占传输,系统内的互连和slave组件可以使用这个信号来区分系统中的不同master,并相应地调整它们的行为。因此,对于所有传输,而不仅仅是独占传输,必须提供有效的HMASTER指示。

3.1 响应信号

HEXOKAY信号用于指示独占传输的成功或失败:

  • 当HEXOKAY被断言时,表明独占传输已成功,并且对于独占写传输,表明内存位置已被更新。
  • 当HEXOKAY未被断言时,表明独占传输已失败。这可能是因为:
    • 尝试对不支持独占传输的地址位置进行独占传输。
    • 独占写传输失败,因为自匹配的独占读传输以来,内存位置没有保持不变。在这种情况下,内存位置不会被更新。

master可以通过确保首先对位置执行独占读传输,来确保它不会尝试对不支持独占传输的地址位置执行独占写传输。

对HEXOKAY适用以下约束:

  • HEXOKAY只能在HREADY被断言的同一周期内被断言。
  • HEXOKAY不能在HRESP被断言的同一周期内被断言。

4.  独占传输限制

独占传输必须遵守以下限制条件:

  • 必须有一次单数据传输。
  • 突发类型必须被指示为SINGLE或INCR(增量)。
  • 不得包含BUSY传输。
  • 地址必须根据HSIZE指示的数据大小对齐。
  • HPROT信号的值必须保证独占访问监视器能够看到传输。

注意:

  • 如果独占访问监视器位于系统缓存的下游,则传输必须是不可缓存的;如果独占访问监视器位于系统缓存的上游,则允许传输是可缓存的。

独占读传输和独占写传输被认为是同一独占访问序列的一部分,以下信号对于两次传输都必须相同:

  • HADDR,地址。
  • HSIZE,数据大小。
  • HPROT,保护控制。
  • HBURST,突发类型。
  • HMASTER,主设备标识。
  • HNONSEC,非安全(如果适用)。

允许master发出一个独占读传输而不在同一独占访问序列中跟随一个独占写传输。

允许master发出一个独占写传输,该传输未在相同独占访问序列中先前进行独占读传输。在这种情况下,独占写传输必须失败,并且必须取消断言HEXOKAY响应信号。

一个master不得在同一时间点有两个未完成的独占传输。在早期独占传输的数据阶段进行中时,不得发出独占传输的地址阶段,无论传输是否是同一独占访问序列的一部分。

允许在不同HMASTER值的早期独占传输的数据阶段进行中时,发出具有特定HMASTER值的独占传输的地址阶段。

注意: 独占传输的地址阶段被定义为HEXCL被断言且HTRANS指示为NONSEQ时。当HTRANS指示IDLE(空闲)时,HEXCL的断言不被视为独占传输的地址阶段。

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

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

相关文章

【C++】stack、queue和priority_queue的模拟实现

在本篇博客中,作者将会讲解STL中的stack、queue和priority_queue的模拟实现,同时还会带大家了解一下deque这个容器。 一.什么是适配器 STL中一共有6大组件:容器,适配器,空间配置器,仿函数,迭代器…

控制台调试 hover 后才出现的元素

调试 hover后才出现的元素 打开开发者工具,鼠标放在hover时才出现的元素上,然后点击右键; 不要选中任何选项,将鼠标移动到开发者工具的调试面板中; 按下N键,此时悬浮的元素不会消失,定位成功。…

Java注解介绍

注解(Annotation)是Java提供的一种元数据形式,它可以被添加到Java代码的各种元素上,如类、方法、变量、参数等。注解的作用主要包括: 1. 代码文档:注解可以用于生成文档,提高代码的可读性。 2.…

前端之深拷贝

前提: 就是在实际开发中,我有一个编辑的弹窗,可以查看和编辑,因为弹窗里面是一个步骤条,点击下一步就要向对应的接口发送请求,考虑到就比如我点击下一步,此次表箱信息其实不需要修改&#xff0…

大模型_DISC-MedLLM基于Baichuan-13B-Base医疗健康对话

文章目录 DISC-MedLLM介绍概述数据集部署推理流程 DISC-MedLLM 介绍 DISC-MedLLM 是一个专门针对医疗健康对话式场景而设计的医疗领域大模型,由复旦大学数据智能与社会计算实验室 (Fudan-DISC) 开发并开源。 该项目包含下列开源资源: DISC-Med-SFT 数据集 (不包…

智慧园区综合物业管理平台解决方案PPT(130页精品)

我们对智慧园区的理解 智慧园区,是通过信息技术和各类资源的整合,充分降低企业运营成本,提高工作效率,加强各类园区创新、服务和管理能力,为园区铸就一套超强的软实力。智慧园区的实现是多技术融合、多系统融合、多领域…

初识C语言——第十三天

关键字2: static 修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型) static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用 …

全方位了解 Meta Llama 3

本文将为您提供 Llama 3 的全面概览,从其架构、性能到未来的发展方向,让您一文了解这一革命性大语言模型的所有要点。 Meta Llama 发展历程 Llama 1 Llama 是由 Meta(FaceBook) AI 发布的一个开源项目,允许商用,影响力巨大。Lla…

基于springboot+vue+Mysql的在线动漫信息平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Qt | QLCDNumber 类(LCD 数字),LCD 表示液晶显示屏

01、上节回顾 Qt 基础教程合集02、QLCDNumber 1、QLCDNumber 类用于显示类似于 LCD 显示屏上的字符(见右图) ​ 2、QLCDNumber 类是 QFrame 类的直接子类,因此 QLCDNumber 以使用从 QFrame 类继承而来的边框效果 3、QLCDNumber 可显示的符号有:0,1,2,3,4,5,6,7,8,…

ue引擎游戏开发笔记(33)——武器与角色的匹配,将新武器装备到角色身上

1.需求分析: 武器能出现在世界中,完成了第一步,下一步需要角色和武器适配,即不论角色跑动,射击等,武器和角色都相匹配,将武器装备到角色身上。 2.操作实现: 1.首先先把角色原有的武…

【数据结构】--- 深入剖析二叉树(中篇)--- 认识堆堆排序Topk

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 数据结构之旅 文章目录 🏠 初识堆 📒 堆的概念 📒 堆的性质 🏠 向上调整算法 && 向下调整算…

vector的oj题

1.只出现1次的数字 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 方法:…

【Stable Diffusion】三句话,让Ai帮你画18万张图

本文介绍Stable Diffusion的快速上手,本地部署,以及更多有趣的玩法展示。 在 DALL-E 2 和 Imagen 之后,AI绘图领域又一个热乎的深度学习模型出炉——Stable Diffusion 。8月份发布的 Stable Diffusion 更加高效且轻量,可以在消费…

第六节课《Lagent AgentLego 智能体应用搭建》

PDF链接:https://pan.baidu.com/s/1JFtvBWgEGFWJq8pHafvIUg?pwd6666 提取码:6666 Lagent & AgentLego 智能体应用搭建_哔哩哔哩_bilibili https://github.com/InternLM/Tutorial/blob/camp2/agent/README.md InternStudio 一、为什么需要agent…

网页html版面分析-- BeauifulSoup(python 文档解析提取)

介绍 BeauifulSoup 是一个可以从HTML或XML 文件中提取数据的python库;它能通过转换器实现惯用的文档导航、查找、修改文档的方式。 BeauifulSoup是一个基于re开发的解析库,可以提供一些强大的解析功能;使用BeauifulSoup 能够提高提取数据的效…

R语言Rstudio突然无法启动?如何解决

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

由于找不到msvcp120.dll,无法继续执行代码的5种解决方法

在操作计算机的过程中,您或许会遇到这样一种情形:当试图启动某个软件应用程序时,系统突然弹出一个错误提示框,明确指出“找不到msvcp120.dll”,它会导致程序无法正常启动或运行。为了解决这个问题,我总结了…

作为全栈工程师,如何知道package.json中需要的依赖分别需要什么版本去哪里查询?

作为前端工程师,当你需要确定package.json中依赖的具体版本时,可以通过以下方法来查询: NPM 官网查询: 访问 npm 官网,在搜索框中输入你想查询的包名。在包的页面上,你可以看到所有发布过的版本号&#xff…

为什么很多人不推荐你用JWT?

为什么很多人不推荐你用JWT? 如果你经常看一些网上的带你做项目的教程,你就会发现 有很多的项目都用到了JWT。那么他到底安全吗?为什么那么多人不推荐你去使用。这个文章将会从全方面的带你了解JWT 以及他的优缺点。 什么是JWT? 这个是他的官网JSON…