【AMBA】AHB总线中的HTRANS、HSIZE、HBURST以及1K边界问题

HTRANS、HSIZE和HBURST共同决定下一次数据传输的地址。

HTRANS[1:0]定义传输类型

HTRANS[1:0]主机传输状态描述
00IDLE空闲表示没有进行数据传输,默认状态。
主设备虽然可能已经占用了总线,但是还没有开始传输数据。
从设备需要返回OKAY响应
01BUSY忙主设备正在进行传输,因此没法立即开始新一轮传输。
(可以理解为主设备申请延时)从设备需要返回OKAY响应
10NONSEQ非连续表示单次传输,或者是突发传输(Burst Transfer)中的第一拍数据
在非连序模式下,每次传输都是独立的,后续的传输并不依赖于前一次传输的地址。
11SEQ连续突发中剩下的传输是连续传输。控制信息会与前一次传输相同,但地址等于前一次传输地址加上HSIZE对应的字节数

Note:BUSY传输类型让主设备有能力在突发传输的中间暂停,插入等待周期,即使它仍占有总线并且计划继续当前的突发传输。在BUSY状态下,尽管当前传输暂停,但主设备仍需保持下一次传输所需的正确地址和控制信号,以便在条件允许时能够无缝继续数据传输。
写操作和读操作

  • 突发传输的第一拍传输类型应该是NONSEQ。
  • 主设备没办法立刻开始突发的第二拍传输,因此主设备使用BUSY来延迟。
  • 主开始进行突发的第三拍传输,但这一次从设备没准备好,通过拉低HREADY来插入单个等待状态。

HSIZE[2:0]定义传输大小

最小是1字节,最大是1024bit。
在这里插入图片描述

HBURST[2:0]定义突发类型/传输拍数

HBURST信号是一个重要的控制信号,用于指示数据传输是否为突发传输(Burst Transfer)以及如果是,它指定的是哪种类型的突发模式。
突发传输是一种高效的传输模式,允许连续的数据传输而无需在每次传输之间重新设置地址和控制信号,从而显著提高数据吞吐量和总线效率。

incrementing(递增):每次传输的地址会在上一次地址基础上递增。
wraping(回环):地址在到达边界后自动循环回到起始地址。

例如,一个包含四个拍(beat)的回环突发,每个拍是一个字(4Byte)访问,将会在16字节的边界处循环。因此,如果传输的起始地址是0x34,那么它将包含到地址0x34、0x38、0x3C和再次回到0x30的四次传输。

HBURST[2:0]突发传输类型描述拍数
000SINGLE单次传输1beat
001INCR不定长的递增突发
010WRAP44拍的回环突发4beat
011INCR44拍的递增突发4beat
100WRAP88拍的回环突发8beat
101INCR88拍的递增突发8beat
110WRAP1616拍的回环突发16beat
111INCR1616拍的递增突发16beat

Note:选择INCR时,每一拍都可以改变HSIZE的值;如果选择的是WRAP4~INCR16,那只有在突发结束后才能改变HSIZE的值。

传输数据总量计算

一次突发中传输的数据总量=拍数(HBURST)*每拍的数据大小(HSIZE)。

1K边界

“1K边界”是指一种地址对齐和传输限制,它规定了突发传输(Burst Transfers)不能跨越1KB(1024字节)的地址边界/低10bit的地址。这一限制主要应用于AHB总线的突发传输模式中,以防止数据访问跨越从设备(slave)的地址空间边界,从而避免数据错误和冲突。

在AHB中,从设备通常被配置有特定的地址范围,通常是1KB对齐的,这意味着从设备的地址空间从某个1KB的边界开始,持续1KB,然后是下一个从设备的地址空间,以此类推。这种设计简化了地址解码逻辑,使得多个从设备可以在同一总线上并行存在,而不会互相干扰。

当主设备(master)想要进行突发传输时,如果这次传输会跨越1KB的边界,那么它必须被分割成两部分或更多部分,以确保每次突发传输都在同一个1KB的地址范围内。例如,如果一个突发传输开始于地址0x3F00,那么在达到地址0x3FFF之后,突发传输必须停止,随后从0x4000地址重新开始,以确保不跨越1KB的边界。

为了遵守1KB边界的限制,AHB总线协议要求主设备在设计时考虑这一约束,确保在必要的时候能够将大的突发传输分解为符合边界限制的小突发传输。

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

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

相关文章

前端面试39(关于git)

针对前端开发者的Git面试题可以覆盖Git的基础概念、常用命令、工作流程、团队协作、以及解决冲突等方面。以下是一些具体的Git面试 Git基础知识 什么是Git? Git是一个分布式版本控制系统,用于跟踪计算机文件的更改,并协调多个人共同在一个项…

基于视觉的具身导航

基于视觉的具身导航 背景 什么是(视觉的?)具身导航 输入机器人观测的当前图像 o t o_t ot​和目标图像 o G o_G oG​,输出当前时间步的控制动作 u t u_t ut​,最终到达指定地点的算法流程。 通用的评价指标 性能指…

Git常见命令和用法

Git 文件状态 Git 文件 2 种状态: 未跟踪:新文件,从未被 Git 管理过已跟踪:Git 已经知道和管理的文件 常用命令 命令作用注意git -v查看 git 版本git init初始化 git 仓库初始化之后有工作区、暂存区(本地库)、版本库git add 文件标识暂存某个文件文件标识以终…

人工智能建立在对象存储上的真正原因

tl;dr: 在这篇文章中,我们将探讨 AI 工作负载依赖高性能对象存储的四个技术原因。 1. 对非结构化数据没有限制 在当前的机器学习范式中,性能和能力与计算成比例,计算实际上是数据集大小和模型大小的代理(神经语言模型的缩放定律&a…

C#开发:下载node.js指定版本

一、打开官网 二、找到指定版本 三、选择程序包msi下载 四、验证下载是否成功 cmd输入: node -v npm -v

请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体”

场景: 当使用adobe pdf打印时,出现如下提示“请跳至打印机属性的“Adobe PDF设置”页面,取消选择“仅停靠系统字体;不使用文档字体””,该如何解决。 描述 □“仅停靠系统字体;不使用文档字体” 复选本框…

基坑安全:自动化监测系统的革新力量

在日新月异的基坑工程领域,基坑安全自动化监测系统犹如一位守护者,以其独特的优势,为工程的安全与质量保驾护航。该系统集先进的测量仪器、计算机技术与现代传感技术于一体,对基坑的围护结构及周边环境进行全方位、高精度的实时监…

从零开始学量化~Ptrade使用教程(四)——股票普通买卖与回购业务

股票普通买卖 股票买入 通过选择委托方向实现股票的买入与卖出,可根据输入的价格自动查询可买数量。 用鼠标点击【买入】,如图所示: 输入股票代码并选中后,选择委托类型,若为限价类型,输入委托价格&#xf…

【漏洞复现】锐捷校园网自助服务系统 任意文件读取

声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。 一、漏洞描述 锐捷校园网自助服务系统是用于学校网络管理的一个平台,login_judge.jsf接口存在任意文件读取…

中职网络安全B模块渗透测试server2380

使用nmap扫描添加参数-sV Flag:2.4.38 添加参数-A不然扫不全 (这两题可以直接加-sV -A) Flag: 4.3.11-Ubuntu 根据nmap扫描发现系统为ubuntu系统,ubuntu操作系统在某些版本中默认包含一个名为"ubuntu"的用户帐户。这是为了方…

重生奇迹mu自带四重箭加穿透的弓

1.烈风射手 烈风射手是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“四箭连发”的技能,可以让玩家在一次攻击中发射四支箭矢,每支箭矢都带有穿透效果。 2.影魅猎人 影魅猎人也是自带四重箭加穿透的弓之一。该职业的技能树中有一个叫做“穿…

案例分享:Qt modbusTcp调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.0.0)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/140313789 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片…

Backend - C# 操作PostgreSQL DB

目录 一、安装 Npgsql 插件 (一)作用 (二)操作 (三)注意 二、操作类 (一)操作类 1.NpgsqlConnection类 (1)作用 (2)引入 &a…

[高频SQL50题(基础版)]第五百八十四题,寻找用户推荐人

题目: 表: Customer ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | referee_id | int | ---------------------- 在 SQL 中,id 是该表的主键列。 该表的每一…

儿童房灯具什么牌子好?几款儿童房灯具款式墙裂分享

随着科技的不断发展和生活方式的改变,儿童青少年近视率的增长趋势引起了人们的关注。近视不仅对孩子们的视力健康构成威胁,还可能对他们的学习和日常生活带来不便。因此,如何有效地预防和改善儿童青少年的视力问题成为了一个亟待解决的课题。…

2024学生党蓝牙耳机什么牌子好?品牌高性价比蓝牙耳机推荐

2024年,对于追求性价比和品质的学生党来说,选择一款合适的蓝牙耳机是提升学习和生活品质的重要一环。面对市场上琳琅满目的蓝牙耳机产品,2024学生党蓝牙耳机什么牌子好?如何找到既满足音质需求又具备高性价比的款式呢?…

高考后的IT专业启航:暑期预习指南与学习路线图

文章目录 每日一句正能量前言:启航IT世界,高考后的暑期学习之旅基础课程预习指南基础课程预习指南:构建你的IT知识大厦引言一、计算机科学导论二、编程语言入门三、操作系统基础四、数据结构与算法五、网络基础六、数据库原理结语 技术学习路…

02STM32软件安装新建工程

STM32软件安装&新建工程 1.软件安装:1.1Keil5 MDK安装1.2安装器件支持包离线安装支持包在线安装支持包 1.3软件注册:1.4安装驱动STLINK驱动JLink驱动在此文件夹下USB转串口 2.新建工程2.1STM32开发方式:1.寄存器2.标准库3.HAL库 固件库压…

Nginx访问日志按天拆分

使用 logrotate 来实现 如果系统没有安装logrotate 可以使用 sudo yum install logrotate -y 进行安装 配置 logrotate 接下来我们就来配置 nginx 切割的配置文件,我的 nginx 日志路径在/var/log/nginx 我们在 /etc/logrotate.d/ 目录下新建一个 nginx 的文件…

C++ Primer 总结索引 | 第十六章:模板与泛型编程

1、面向对象编程(OOP)和泛型编程 都能处理在编写程序时 不知道类型的情况。不同之处在于:OOP 能处理类型 在程序运行之前都未知的情况;而在泛型编程中,在编译时就能获知类型了 2、容器、迭代器 和 算法 都是泛型编程的…