AHB传输---突发操作

突发操作

在本协议中定义了4拍、8拍和16拍的突发,以及未定义长度的突发和单次传输。它支持增量和包装突发:

  • 增量突发访问连续位置,每个传输的地址是前一个地址的增量。
  • 包装突发在跨越地址边界时会包装。地址边界的计算方法是突发中拍数与传输大小的乘积。拍数由HBURST控制,传输大小由HSIZE控制。

例如,一个四拍的包装突发对字(4字节)访问在16字节边界处包装。因此,如果突发的起始地址是0x34,那么它由四个传输组成,地址分别是0x34、0x38、0x3C和0x30。

HBURST[2:0]控制突发类型。表3-3列出了可能的突发类型。

HBURST[2:0]类型描述
000SINGLE单次传输突发
001INCR未定义长度的增量突发
010WRAP44拍包装突发
011INCR44拍增量突发
100WRAPS8拍包装突发
101INCRS8拍增量突发
110WRAP1616拍包装突发
111INCR1616拍增量突发

master不应尝试开始一个跨越1KB地址边界的增量突发。

master可以使用以下方式执行单次传输:

  • 单次传输突发。
  • 长度为1的未定义长度突发。

注意 突发大小表示突发中的拍数,而不是传输的字节数。通过将拍数乘以每个拍中的数据量(由HSIZE[2:0]指示)来计算突发中传输的总数据量。

所有突发传输必须对齐到等于传输大小的地址边界。例如,字传输必须对齐到字地址边界(HADDR[1:0] = 00),半字传输必须对齐到半字地址边界(HADDR[0] = 0)。IDLE传输的地址也必须对齐,否则在仿真期间,总线监视器可能会报告错误的警告。

1. 在busy传输后终止突发

一旦突发开始,如果master在继续下一个传输之前需要更多时间,它将使用busy传输。

在未定义长度的增量突发(INCR)期间,master可能会插入busy传输,然后决定不再需要更多的数据传输。在这种情况下,master可以执行一个非顺序(NONSEQ)或空闲(IDLE)传输,从而有效地终止未定义长度的突发。

协议不允许master使用busy传输来结束固定长度的突发,对于以下类型的固定长度突发:

  • 增量突发:INCR4、INCR8 和 INCR16。
  • 包装突发:WRAP4、WRAP8 和 WRAP16。

这些固定长度的突发类型必须以顺序(SEQ)传输结束。

master在单次传输突发(SINGLE burst)后不允许立即执行busy传输。单次传输突发必须跟随一个空闲(IDLE)传输或非顺序(NONSEQ)传输。

2. 提前终止突发

突发可以通过以下任一方式终止:

  • slave错误响应(Slave error response)。
  • 多层互连终止(Multi-layer interconnect elimination)。

2.1 slave错误响应(Slave error response)。

如果slave提供错误响应,master可以取消突发中剩余的传输。然而,这不是一个严格的要求,master也可以继续完成突发中的剩余传输。

如果master取消突发中剩余的传输,那么它必须在两周期的错误响应期间改变HTRANS以指示空闲(IDLE)。

如果master没有完成那个突发,那么在下次访问该slave时,没有要求它重新构建突发。例如,如果一个master只完成了一个8拍突发中的3拍,那么在下次访问该slave时,它不必完成剩余的5个传输。

2.2 多层互连终止

尽管master不允许提前终止突发请求,但slave必须设计得能够在突发未完成时正确工作。

当在多master系统中使用多层互连组件时,它可以终止一个突发,以便另一个master可以访问slave。slave必须从原始master终止突发,然后,如果发生这种情况,适当地响应新master。

2.3 burst examples

2.3.1 四拍包装突发,WRAP4

图3-8 展示了使用四拍包装突发进行写传输的过程,为第一个传输添加了等待状态。

因为这是一个四拍字传输的包装突发,地址在16字节边界处包装,传输到地址0x3C后,紧接着是传输到地址0x30。 

2.3.2 四拍增量突发,INCR4

图3-9 展示了使用四拍增量突发进行读取传输的过程,为第一个传输添加了等待状态。 在这种情况下,地址在16字节边界处不会包装,地址0x3C之后的传输是到地址0x40。

2.3.3 八拍包装突发,WRAP8

图3-10 展示了使用八拍包装突发进行读取传输的过程。 

因为这是一个八拍字传输的包装突发,地址在32字节边界处包装,传输到地址0x3C后,紧接着是传输到地址0x20。

2.3.4 八拍增量突发,INCR8

图3-11 展示了一个使用半字(Halfword)传输的八拍增量突发。

这个突发使用半字传输,因此地址以2的增量递增。由于突发是增量的,地址在超过16字节地址边界后继续递增。 

2.3.5 未定义长度的增量突发,INCR

图3-12 展示了未定义长度的增量突发。

 图3-12 展示了两个突发:

  • 第一个突发是一个写操作,由两个半字传输组成,地址从0x20开始。这些传输的地址递增。
  • 第二个突发是一个读操作,由三个字传输组成,地址从0x5C开始。这些传输的地址也递增。

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

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

相关文章

Android—统一依赖版本管理

依赖版本管理有多种方式 config.gradle 用于Groovy DSL,新建一个 config.gradle 文件,然后将项目中所有依赖写在里面,更新只需修改 config.gradle文件内容,作用于所有module buildSrc 可用于Kotlin DSL或Groovy DSL,…

MATLAB冒号表示法

MATLAB 冒号表示法 colon(:)是在MATLAB中最有用的运算符之一。它用于创建向量,下标数组和指定迭代。 如果要创建包含1到10的整数的行向量,请编写- 示例 1:10 MATLAB执行该语句并返回包含1到10的整数的行向量- ans 1 2 3 4 5 6 7 8 9 10 如果要指定一…

github Copilot的使用总结

1. 代码建议和补全 GitHub Copilot 的基本使用涉及编写代码时的实时代码建议和补全。一旦你已经安装并配置好 GitHub Copilot 插件,你可以在支持的编辑器(如 Visual Studio Code)中开始使用 Copilot。以下是一些基本的使用步骤: …

VBA技术资料MF146:发出多次Beep提示声

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

Pandas 2.2 中文官方教程和指南(十七)

原文:pandas.pydata.org/docs/ 重复标签 原文:pandas.pydata.org/docs/user_guide/duplicates.html Index对象不需要是唯一的;你可以有重复的行或列标签。这一点可能一开始会有点困惑。如果你熟悉 SQL,你会知道行标签类似于表上的…

TCP/IP协议族中的TCP(三):解析其关键特性与机制

⭐小白苦学IT的博客主页⭐ ⭐初学者必看:Linux操作系统入门⭐ ⭐代码仓库:Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统 前言 TCP(Transmission Control Protocol,传输控制协议)是互联网协议族中至关重要的组成部…

08.OSPF的特殊区域及其特点

OSPF特殊区域 Stub 末梢区域,处在AS的边缘,只有连接其他区域的ABR,没有ASBR,没有虚连接穿越的非骨干区域 只能接收LSA1和LSA2与 LSA3,不能接收LSA4和LSA5区域内部路由与外部AS路由通信,由本区域的ABR&am…

K8S 部署和访问 Kubernetes 仪表板(Dashboard)

文章目录 部署 Dashboard UI浏览器访问登陆系统 Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览…

unit4.web服务的部署及高级优化方案

搭建web服务器要求如下: 1.web服务器的主机ip:172.25.254.100 [rootserver101 桌面]# vmset.sh 100 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3) [rootserver101 桌面]# ifc…

Swift中TableView的编辑模式

Swift中TableView的编辑模式可以通过UITableView的属性isEditing来控制。 要将TableView设置为编辑模式,可以使用以下代码: tableView.isEditing true要退出编辑模式,可以使用以下代码: tableView.isEditing false当TableVie…

鑫海移民荣耀呈现:EB5投资移民盛宴落幕,卓越项目引领投资新潮

随着春日的暖阳渐渐铺满大地,我们鑫海移民集团在这个充满希望的季节里,举办了一场意义非凡的EB5投资移民专题活动。于2024年4月27日(周六)下午13:30,在北京渤海润泽威斯汀酒店隆重举行,我们与众多热情的参与…

数据结构-前缀树

前缀树 前缀树定义 前缀树(Trie树),又称字典树、单词查找树或键树,是一种专门设计用于高效存储和检索字符串集合中词项的树形数据结构。其核心特性在于能够快速实现字符串的前缀匹配,极大减少了无谓的字符比较&#xf…

微信小程序详解

微信小程序是一种无需下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户只需扫一扫或搜索一下即可打开应用。微信小程序全面开放申请后,企业、政府、媒体、其他组织或个人开发者均可申请注册。 微信小程序的特点包括:…

基于java的商店积分管理系统的设计与实现

功能需求 从功能上可以划分为个人信息管理、商店管理、平台管理、订单管理和数据分析。后台管理系统主要服务于商户和平台管理员,兑换用户是属于商户平台的自有用户,不会被纳入到后台管理系统中来。商户用户可以对自己的积分进行管理,平台管…

echarts下载图片

toolbox: {show: true,//展示工具栏itemSize:20,//icon的大小iconStyle:{borderColor:"#409eff",borderWidth:"3",color:"#fff"},right:"40px",//偏移位置feature: {saveAsImage: {title: "下载图表", //鼠标滑过之后文案na…

用wps自带工具给图片做标注

在wps中,选中wps中的图片,右键选择【编辑】进入图片编辑器,在选项卡面板右侧选择【标注】工具,再选择【添加文本】工具,即可直接在图片上输入文字,标注完成后选择【覆盖原图】就完成标注任务。

【Canvas与艺术】绘制美国星条旗

注意&#xff1a; 该图位置和大小都是按照网上说明精确绘制的。 【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>使…

uniapp 阿里云点播 其他功能

详细记录 阿里云播放器 基础功能 官方文档 继 根据业务开发了其他功能 大家可以结合 上一篇 基础阿里云播放器使用 使用

C++指针的比较

指针可以用关系运算符进行比较&#xff0c;如 、< 和 > 整体的流程&#xff1a; 初始化指针ptr指向数组var的第一个元素。进入while循环&#xff0c;循环条件是ptr的地址小于或等于数组最后一个元素的地址。在循环内&#xff0c;首先打印ptr指向的地址和该地址处的值。然…

Laravel 多语言项目开发

配置 Laravel 已经内置了对多语言的支持&#xff0c;可以使用 Laravel 的本地化&#xff08;localization&#xff09;功能轻松实现多语言。 首先&#xff0c;你需要创建一个语言文件存储你的翻译内容。在 resources/lang 目录下&#xff0c;创建一个你需要的语言文件夹&…