当前位置: 首页 > news >正文

AHB---数据总线

1. 数据总线

为了实现AHB系统,需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位,但这可以根据数据总线宽度进行更改。 数据总线包含以下部分:

  • HWDATA
  • HRDATA
  • Endianness(字节序)

1.1 HWDATA

在写传输期间,master驱动写数据总线。如果传输被延长,则master必须保持HREADY为高时的data valid,直到传输完成。

对于比总线宽度窄的传输,例如在32位总线上的16位传输,master只需要驱动相应的字节通道。slave从正确的字节通道中选择写数据。

1.2 HRDATA

在读传输期间,相应的slave驱动读数据总线。如果slave通过保持HREADY为低来延长读传输,那么slave只需要在传输的最后一个周期提供HREADY为高时的valid data。

对于比总线宽度窄的传输,slave只需要在有效的字节通道上提供valid data。master从正确的字节通道中选择数据。

当传输以OKAY响应完成时,slave需要提供valid data。错误响应(ERROR responses)不需要有效的读数据。

2. 字节序(Endianness)

AHB支持大端序和小端序系统。支持大端序数据存储的两种方法。

AHB5引入了Endian属性来定义支持哪种形式的大端序数据访问。

  • BE8:字节不变大端序(Byte-invariant big-endian)。一个字节访问(8位)使用的是与相同地址上的小端序访问相同的数据总线位。
  • BE32:字不变大端序(Word-invariant big-endian)。一个字访问(32位)使用的最显著(MS)字节和最不显著(LS)字节与相同地址上的小端序访问相同的数据总线位。

以下一组方程定义了小端序、字节不变大端序和字不变大端序访问所使用的数据位。

方程使用以下变量:

  • 地址(address):传输的地址。
  • 数据总线字节(Data_Bus_Bytes):8位数据总线字节通道的数量。
  • INT(x):x的向下取整整数值。

2.1 小端序

当一个小端序组件访问一个字节时,以下方程显示了使用哪些数据总线位:

Byte_Lane = Address - (INT(Address / Data_bus_Bytes)) x Data_Bus_Bytes 

数据传输在 DATA[(8 × Byte_Lane) + 7 : (8 × Byte_Lane)]

当较大的小端序传输发生时,数据以这样的方式传输:

  • 最低有效(LS)字节传输到传输地址。
  • 递增的字节传输到顺序递增的地址。

2.2 字节不变大端序

当一个字节不变大端序组件访问一个字节时,以下方程显示了使用哪些数据总线位:

Byte_Lane = Address - (INT(Address / Data_bus_Bytes)) x Data_Bus_Bytes

 数据传输在 DATA[(8 × Byte_lane) + 7 : (8 × Byte_lane)]

注意:方程与小端序的方程相同。因为大端序和小端序访问对于字节传输是相同的,所以这些传输使用了“字节不变”这个术语。

当较大的字节不变大端序传输发生时,数据以这样的方式传输:

  • 最高有效(MS)字节传输到传输地址。
  • 递减的字节传输到顺序递增的地址。

注意:这是字节不变大端序和小端序组件之间的关键区别。

2.3 字不变大端序

当一个字不变大端序组件访问一个字节时,以下方程显示了使用哪些数据总线位: Address_offset = Address - (INT(Address / Data_Bus_Bytes)) x Data_bus_Bytes 

Word_offset = (INT(Address_offset / 4)) x 4

Byte_offset = Address_offset - Word_offset 

数据传输在 DATA[(8 x (word_offset + 3 - Byte_offset)) + 7 : 8 x (word_offset + 3 - Byte_offset)]

对于32位总线,Word_offset总是0,因此方程简化为:

DATA[(8 x (3 - Byte_offset)) + 7 : 8 x (3 - Byte_offset)]

注意 这表明了字不变大端序和小端序组件之间的一个关键区别。字不变大端序组件传输一个字节量时使用的是与小端序和字节不变大端序组件不同的数据总线位。

对于使用字不变大端序的半字和字传输,数据以这样的方式传输:

  • 最高有效字节传输到传输地址。
  • 递减的字节传输到顺序递增的地址。

对于使用字不变大端序的大于一个字的传输,数据被分割成字大小的块:

  • 最高的字传输到传输地址。
  • 递减的字传输到递增的地址。

32位的数据总线可以扩展用于更宽的数据总线实现。

具有小于数据总线宽度的突发传输的每个突发拍中有不同的有效字节通道。

表6-1和表6-2显示了在小端序或字节不变大端序系统中32位总线上的有效字节通道。在这两种情况下,有效字节通道是相同的,但最高有效字节和最低有效字节的位置不同。

表6-3显示了在字不变大端序系统中32位总线上的有效字节通道。 

2.4 字节不变性

使用字节不变大端序数据结构简化了在单一内存空间中访问混合字节序数据结构的过程。

采用字节不变大端序和小端序意味着,对于数据结构中的任何多字节元素:

  • 无论数据的字节序如何,该元素使用的是相同的连续字节的内存。
  • 字节序决定了字节在内存中的顺序,也就是说,它决定了内存中的第一个字节是元素的最高有效(MS)字节还是最低有效(LS)字节。
  • 任何给定地址的字节传输都会通过相同的数据总线将八位数据传输到相同的地址位置,而不管该字节所属的任何数据元素的字节序如何。

图6-1 展示了一个要求字节不变访问的数据结构示例。在这个示例中,头部字段使用小端序排列,而数据负载使用大端序排列。

在这个结构中,例如,Count 是一个小端序的两字节元素,这意味着它的最低地址是它的最低有效(LS)字节。 使用字节不变性确保了对数据负载进行大端序访问不会破坏小端序元素。

3.数据总线宽度

提高总线带宽的一种方法是增加片上总线的数据路径宽度,而不增加操作频率。增加的金属层和使用大型片上存储块(如嵌入式DRAM)是促进使用更宽片上总线的因素。

指定固定宽度的总线意味着,在许多情况下,总线的宽度对应用来说并不是最优的。因此,采用了一种方法,它允许总线宽度的灵活性,同时仍然确保模块在不同设计之间具有很高的可移植性。

该协议允许数据总线宽度为8、16、32、64、128、256、512或1024位。然而,建议至少使用32位的总线宽度。对于几乎所有应用来说,256位的最大总线宽度已经足够。

对于读写传输,接收模块必须从总线上正确的字节通道选择数据。不需要在所有字节通道上响应数据。

3.1 在宽总线上实现窄slave 

图6-2展示了如何将原本设计为使用32位数据总线的slave模块转换为在64位总线上操作。这只需要添加外部逻辑,而不需要任何内部设计更改,因此该技术适用于硬宏单元。

对于输出,当将窄总线转换为更宽的总线时,可以做以下之一:

  • 如图6-2所示,在宽总线的两半复制数据。
  • 使用额外的逻辑确保只有相应的一半总线被更改。这可以减少功耗。

slave只能接受与其自然接口一样宽的传输。如果master尝试进行的传输宽度超出slave支持的范围,那么slave可以使用错误传输响应。

3.2 在窄总线上实现宽slave

通过使用外部逻辑,可以调整预设计或导入的slave以适应更窄的数据总线。图6-3 展示了在窄总线上实现宽slave的方式。

 

3.3 在宽总线上实现master

master可以通过类似的方式修改,以便在比原设计更宽的总线上工作,即通过:

  • 多路复用输入总线。
  • 复制输出总线。

注意 除非在master中包含了某种机制来限制master尝试的传输宽度,否则master不能在比原设计更窄的总线上工作。master决不能尝试传输宽度(由HSIZE指示)比它连接的数据总线宽度更大的传输。

相关文章:

AHB---数据总线

1. 数据总线 为了实现AHB系统,需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位,但这可以根据数据总线宽度进行更改。 数据总线包含以下部分: HWDATAHRDATAEndianness(字节序) 1.1 HWDATA 在写传输…...

「51媒体」企业单位新闻稿件考核,怎么发布

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 电力税务企事业单位部门等单位提供了新闻稿件,如何在一些重点媒体进行宣发呢: 精准锁定发布媒体 了解考核要求:仔细阅读宣传任务名单,了解…...

「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解

CycloneDX是软件供应链的现代标准。CycloneDX物料清单(BOM)可以表示软件、硬件、服务和其他类型资产的全栈库存。该规范由OWASP基金会发起并领导,由Ecma International标准化,并得到全球信息安全界的支持,如今CycloneD…...

React 之 内置标签<Fragment> (<>...</>) (十一)

通常使用 <>…</> 代替&#xff0c;它们都允许你在不添加额外节点的情况下将子元素组合。相当于vue的内置标签<template/> 1. 返回多个元素 <><OneChild /><AnotherChild /> </>2. 分配多个元素给一个变量 和其他元素一样&#xf…...

Mac M1 解决安装grpcio不可用

问题描述&#xff1a; 使用 pip 已经更新 grpcio 至最新版&#xff0c;调用时还是报错 如下图&#xff1a; Traceback (most recent call last):File "/Users/yu/anaconda3/envs/dify2/lib/python3.10/site-packages/flask/cli.py", line 245, in locate_app__imp…...

Linux第三节--常见的指令介绍集合(持续更新中)

点赞关注不迷路&#xff01;&#xff0c;本节涉及初识Linux第三节&#xff0c;主要为常见的几条指令介绍。 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1f44d;&#x1f3fb; 收藏 ✨ 加关注&#x1f440; 期待与你共同进步! Linux下基本指令 1. man指令 Linu…...

SpringMVC简介和体验

一、SpringMVC简介和体验 1.1 介绍 Spring Web MVC :: Spring Framework Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#…...

Android单行字符串末尾省略号加icon,图标可点击

如图 设置仅显示单行字符串&#xff0c;末尾用省略号&#xff0c;加跟一个icon&#xff0c;icon可点击 tvName.text "test"val drawable ResourcesCompat.getDrawable(resources, R.mipmap.icon_edit, null)tvName.setCompoundDrawablesWithIntrinsicBounds(null,…...

山东省文史书画研究会成立20周年系列活动徽标征集胜选名单公布

2024年5月1日&#xff0c;山东省文史书画研究会成立20周年系列活动徽标征集落下帷幕。征稿启事下发后&#xff0c;得到社会各界人士的广泛关注与参与&#xff0c;共收到设计方案608件。经过初评&#xff0c;选出5幅作品进入复评&#xff0c;并经过网络投票和专家投票相结合的方…...

相机2:曝光三要素之ISO(感光度)

曝光是相机的感光元件与光线接触成像的过程&#xff0c;而曝光三要素分别指的是光圈大小&#xff0c;快门速度和感光度。这三个因素都可以控制曝光量&#xff0c;同时也分别有自己的特点。 什么是感光度&#xff1f; ISO又叫感光度&#xff0c;指的是相机感光元件&#xff08;…...

已解决java.util.IllegalFormatConversionException异常的正确解决方法,亲测有效!!!

已解决java.util.IllegalFormatConversionException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 示例报错代码&#xff1a; 解决思路 解决方法 检查和更正格式说明符 示例修正代码&#xff1a; 调整参数类型…...

OpenCV 库来捕获和处理视频输入和相似度测量(73)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV的周期性噪声去除滤波器(70) 下一篇 :使用 OpenCV 创建视频(74) ​ 目标 如今&#xff0c;拥有数字视频录制系统供您使用是很常见的。因此&#xff0c;您最终会遇到不再处理一批图像&#xf…...

了解TMS运输管理系统,实现物流高效运转

TMS运输管理系统&#xff08;Transportation Management System&#xff09;是一种集成物流和信息技术的解决方案&#xff0c;通过优化运输流程、实时跟踪货物信息和自动化管理操作&#xff0c;提高物流效率&#xff0c;降低运营成本&#xff0c;实现高效运输。 TMS运输管理系…...

数据库原理与应用实验三 嵌套查询

实验目的和要求 加深和掌握对嵌套查询的理解和应用 实验环境 Windows10 SQLServer 实验内容与过程 图书&#xff08;书号&#xff0c;书名&#xff0c;价格&#xff0c;出版社&#xff09; 读者&#xff08;卡号&#xff0c;姓名&#xff0c;年龄&#xff0c;所属单位&a…...

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡的二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题&#xff1a;LeetCode 110.平衡二叉树 思路及…...

【SQL】ACID事务与隔离级别

数据库事务 数据库事务具有ACID这4个特性&#xff1a; A&#xff1a;Atomicity&#xff0c;原子性&#xff0c;将所有SQL作为原子工作单元执行&#xff0c;要么全部执行&#xff0c;要么全部不执行&#xff1b;C&#xff1a;Consistency&#xff0c;一致性&#xff0c;事务完…...

深度神经网络中的不确定性研究综述

A.单一确定性方法 对于确定性神经网络&#xff0c;参数是确定的&#xff0c;每次向前传递的重复都会产生相同的结果。对于不确定性量化的单一确定性网络方法&#xff0c;我们总结了在确定性网络中基于单一正向传递计算预测y *的不确定性的所有方法。在文献中&#xff0c;可以找…...

实用的Chrome浏览器命令

Google Chrome 是一款广泛使用的网络浏览器&#xff0c;它提供了许多实用的快捷键和命令&#xff0c;可以帮助用户更高效地浏览网页。以下是一些常用的 Chrome 浏览器命令&#xff1a; 1. 新标签页: Ctrl T (Windows/Linux) 或 Command T (Mac) 2. 关闭当前标签: Ctrl W 或…...

无人作业控制器--4G/5G通信

一、环境 开发环境&#xff1a;ubuntu 22 ros2 humble 发布运行环境&#xff1a;地平线旭日x3派、arm64 4G 模组&#xff1a; 移远EC20模块 5G 模组&#xff1a;移远RG200U-CN 网络通信模组根据需要选择其中一款&#xff0c; 前期我们使用4G模组&#xff0c;后续迭代因为…...

动态规划-两个数组的dp问题2

文章目录 1. 不同的子序列&#xff08;115&#xff09;2. 通配符匹配&#xff08;44&#xff09; 1. 不同的子序列&#xff08;115&#xff09; 题目描述&#xff1a; 状态表示&#xff1a; 根据题意这里的dp数组可以定义为二维&#xff0c;并且dp[i][j]表示字符串t的0到i的…...

不只是安装:在龙芯2k1000LA上为Loongnix配置WiFi、蓝牙与触摸屏驱动的完整流程

龙芯2k1000LA开发板外设驱动深度配置指南&#xff1a;从WiFi到触摸屏的全栈解决方案 在国产化硬件开发领域&#xff0c;龙芯2k1000LA开发板凭借其完全自主的LoongArch架构&#xff0c;正成为物联网和嵌入式设备开发者的重要选择平台。不同于x86架构的"开箱即用"体验&…...

rt-thread源码探秘:rt_components_board_init的自动初始化机制剖析

1. 从零理解RT-Thread的自动初始化机制 第一次接触RT-Thread的开发者往往会对它的模块化初始化方式感到惊艳——只需要在设备驱动代码末尾加个INIT_BOARD_EXPORT宏&#xff0c;系统启动时就会自动执行初始化函数。这背后到底藏着什么魔法&#xff1f;今天我们就来揭开rt_compon…...

职得Offer校园求职助手Pro深度评测:一个AI Agent陪你跑完求职全流程

一、 职得Offer是什么&#xff1f;—— 不止是工具&#xff0c;更是全程陪伴的AI求职伙伴 在AI应用爆发的今天&#xff0c;面对市面上众多的简历模板、面经题库和招聘平台&#xff0c;求职者尤其是学生群体&#xff0c;依然会陷入“信息过载却无从下手”的困境。“职得Offer校…...

从零构建开源ADAS原型:车道检测、目标识别与PID控制实践

1. 项目概述&#xff1a;从零到一&#xff0c;构建一个开源的ADAS原型系统 最近几年&#xff0c;汽车行业最火的话题之一就是“智能驾驶”。无论是传统车企还是新势力&#xff0c;都在宣传自家的辅助驾驶功能&#xff0c;什么自适应巡航、车道保持、自动紧急制动&#xff0c;听…...

PIM-LLM:1-bit量化大语言模型的混合内存计算架构

1. 项目概述PIM-LLM是一种创新的混合内存计算架构&#xff0c;专门为1-bit量化的大语言模型&#xff08;LLM&#xff09;设计。这个架构通过结合模拟内存计算&#xff08;PIM&#xff09;和数字脉动阵列&#xff0c;实现了对低精度和高精度矩阵乘法运算的高效加速。在边缘AI加速…...

手把手教你逆向分析PerimeterX px3:从混淆还原到参数解密全流程

逆向工程实战&#xff1a;PerimeterX px3防护体系深度解析与突破 在当今数字化时代&#xff0c;网站安全防护与数据采集之间的博弈从未停止。作为前端安全领域的标杆解决方案&#xff0c;PerimeterX的px3防护机制以其复杂的混淆技术和动态行为分析著称&#xff0c;成为众多安全…...

在DOSBox中运行Appler模拟器:重温Apple II的复古计算体验

1. 项目概述&#xff1a;在DOS的土壤里复活Apple II的灵魂如果你和我一样&#xff0c;对计算机历史的交汇点着迷&#xff0c;那么“在8086的机器上模拟一颗6502的心脏”这个想法本身就充满了极客浪漫主义色彩。Appler正是这样一个跨越时代的产物——一个专为MS-DOS编写的Apple …...

Arm Neoverse CMN-650时钟与电源管理架构解析

1. Arm Neoverse CMN-650时钟与电源管理架构解析在现代SoC设计中&#xff0c;时钟与电源管理子系统如同城市的水电供应网络&#xff0c;其设计优劣直接决定了系统性能与能耗效率的平衡。Arm Neoverse CMN-650作为新一代互连架构&#xff0c;通过创新的时钟域划分和电源域管理机…...

上海国际航运研究中心:全球绿色航运发展报告(2024-2025)

本报告由上海国际航运研究中心与世界海事大学联合编制&#xff0c;聚焦 2024 年 1 月至 2025 年 9 月全球绿色航运发展&#xff0c;围绕政策、机制、清洁能源、减排技术、发展趋势五大核心展开&#xff0c;全面呈现航运业低碳转型的全球格局、关键进展与挑战。一、核心政策&…...

RK3568 Debian系统Docker安装与ARM64容器化部署实战指南

1. 项目概述与核心价值最近在折腾一块基于瑞芯微RK3568的开发板&#xff0c;想在上面跑一些服务&#xff0c;自然而然地就想到了Docker。毕竟&#xff0c;Docker带来的环境隔离和便捷部署&#xff0c;对于嵌入式开发和边缘计算场景来说&#xff0c;简直是“神器”。但当我真正动…...