AMBA总线协议(8)——AHB(六):分割传输

news2024/10/7 14:27:48

一、前言

        在之前的文章中,我们重点介绍了AHB传输的仲裁,首先介绍了仲裁相关的信号,然后分别介绍了请求总线访问,授权总线访问,猝发提前终止,锁定传输和默认主机总线,在本文中我们将继续介绍AHB的分割传输。

二、AHB分割传输

        分割传输通过根据从机的响应操作来分离(或者分块)主机操作,以给从机提供地址和合适的数据,提高了总线的总体使用率。
        当传输产生时,如果从机认为传输的执行将占据大量的时钟周期,那么从机能够决定发出一个 SPLIT 响应。该信号提示仲裁器尝试这次传输的主机不应该被授予访问总线,直到从机表示它准备好了完成传输时。因此,仲裁器负责监视响应信号,并且在内部屏蔽已经是 SPLIT 传输主机的任何请求。
        在传输的地址周期,仲裁器在 HMASTER[3:0] 产生一个标记,或者总线主机序号,以表示正在执行传输的主机。任何一个发出 SPLIT 响应的从机必须表示它有能力完成这个传输,并且通过记录 HMASTER[3:0] 信号上的主机序号来实现。
        之后,当从机能够完成传输时,它就根据主机序号在在从机到主机的 HSPLITx[15:0]信号上生效适当的位。然后仲裁器使用这个信息来解除来自主机请求信号的屏蔽,并且主机将被及时授予访问总线以重试传输。仲裁器在每个时钟周期采样 HSPLITx 总线,因此,从机只需要生效适当的位一个周期,以便仲裁器能够识别。
        如果系统中有多个具有 SPLIT 能力的从机,那么每个从机的 HSPLITx 总线可以逻辑或在一起以提供给仲裁器单个 HSPLIT 总线。大多数系统中并没有用到最大 16 个总线主机的能力,因此,仲裁器仅要求一个位数和总主机数量一样的 HSPLIT 总线。但是,建议所有具有 SPLIT 能力的从机被设计成支持高达16个主机。

1、分割传输顺序

SPLIT 传输的基本步骤如下:
        (1) 主机以和其他传输一样的方式发起传输并发出地址和控制信息;
        (2) 如果从机能够立刻提供数据,那么它可以马上提供数据。如果从机确认获取数据可能会占据较多的周期,那么它给出一个 SPLIT 传输响应;每次传输中仲裁器广播一个序号或者标记,表示哪个主机正在使用总线。从机必须记录该序号,以便用来在之后的一段时间重新发起传输;
        (3) 仲裁器授予其他主机使用总线,并且 SPLIT 响应的动作允许主机移交总线。如果所有其他主机也接收到一个 SPLIT 响应,那么默认主机将被授予总线;
        (4) 当从机准备完成传输,那么它生效 HSPLITx 总线中的适当位给仲裁器以指示哪个主机应该被重新授予访问总线;
        (5) 仲裁器每个时钟周期监视 HSPLITx 信号,并且当 HSPLITx 中的任何一位被生效,仲裁器将恢复对应主机的优先级;
        (6) 最后仲裁器将授予(SPLIT 的)主机总线,因此主机能重新尝试传输。如果一个优先级更高的主机正在使用总线的话,这可能不会立刻发生;
        (7) 当传输终于开始后从机以一个 OKAY 传输响应来结束(传输)。

2、多个分割传输

        总线协议只允许每个总线主机有一个未完成的处理。如果任何主机模块能够处理多于一个未完成的处理,那么它需要为能够处理的每个未完成处理设置一个额外的请求和授予信号。在协议级上一个信号模块可以表现为许多不同总线主机,每个主机只能有一个未完成的处理。
        然而,可能一个有 SPLIT 能力的从机会接收比它能并发处理的(传输)还要多的传输请求。如果这种情况发生,那么从机可以不用记录对应传输的地址和控制信息,而仅需要记录主机序号就发出 SPLIT 响应。之后从机可以通过生效  HSPLITx 总线中适当的位给之前被给出SPLIT 响应的所有主机来表示它能处理另外一个传输,但是从机没有记录地址和控制信息。之后仲裁器能够重新授予这些主机访问总线,并且它们将重试传输,给出从机要求的地址和控制信息。这表示一个主机可以在它最终完成它要求的传输之前被多次授予总线。

3、预防死锁

        SPLIT 和 RETRY 传输响应都必须在使用中注意预防总线死锁。单个传输决不会锁定AHB,因为每个从机必须被设计成能在预先确定的周期数内完成传输。但是,如果多个不同主机试图访问同一个从机,从机发出 SPLIT 或者 RETRY 响应以表示从机不能处理,那么就有可能发生死锁。

(1)分割传输

        从机可以发出 SPLIT 传输响应,通过确保从机能够承受系统中每个主机(最多 16 个)的单个请求来预防死锁。从机并不需要存储每个主机的地址和控制信息,它只需要简单的记录传输请求已经被处理和 SPLIT 响应已经发出的事实即可。最后所有主机将处在低优先级,然后从机可以有次序的来处理这些请求,指示仲裁器正在服务于哪个请求,因而确保了所有请求最终都被服务。

        当从机有许多未完成的请求时,它可能以任何顺序(随机的)来选择处理这些请求,尽管从机需要注意锁定传输必须在任何其他传输继续之前完成。

        从机使用 SPLIT 响应而不用锁存地址和控制信息显得非常合法(合适)。从机仅需要记录特定主机做出的传输尝试并且稍后的时间段从机通过指示自己已经准备好完成传输就能获取地址和控制信息。主机将被授予总线并将重新广播传输,允许从机锁存地址和控制信息,并且立刻应答数据,或者发出另外一个 SPLIT 响应(如果还需要额外的一些周期的话)。

        理想情况下,从机不应该有多于它能支持的未完成传输,但是要求支持这种机制以防止总线死锁。

(2)重试传输

        发出 SPLIT 响应的从机一次只能被一个主机访问。在总线协议中并没有强制,而在系统体系结构中应该确保这一点。大多数情况下,发出 RETRY 响应的从机必须是一次只能被一个主机访问的外设,因此这会在一些更高级协议中得到保证。
        硬件保护和多主机访问 RETRY(响应)的从机相违背并不是协议中的要求,但是可能会在下文描述的设计中得到执行。仅有的总线级要求是从机必须在预先确定的时钟周期内驱动 HREADY 为高。如果要求硬件保护,那么这可以被 RETRY (响应)的从机自己执行。当一个从机发出一个 RETRY 信号后,它能够采样主机序号。在这之后和传输最终完成之前,  RETRY 的从机可以检查做出的每次传输尝试以确保主机序号是相同的。如果从机发现主机号不一致,那么它可以选择下列的行动方式:
  • 一个错误响应;
  • 一个信号给仲裁器;
  • 一个系统级中断;
  • 一个完全的系统复位

4、分割传输的总线移交

        协议要求主机在接收到一个SPLIT或者RETRY响应后立刻执行一个空闲传输,以允许总线转移给另外一个主机。下图表示了发生一个分块(SPLIT)传输的顺序事件:

需要注意以下的要点:
        (1)传输的地址在时间 T1 之后出现在总线上。在时钟沿 T2 T3 后从机返回两个周期的 SPLIT 响应;
        (2)在第一个响应周期的末尾,也就是 T3 ,主机能够检测到传输将会被分块因此(主
机)改变接下来的传输控制信号以表示一个空闲传输;
        (3)同样也在时间 T3 处仲裁器采样响应信号并确定传输已经被分块。之后仲裁器可以调整仲裁优先权并且在接下来的周期改变授予信号,这样新的主机能够在时间 T4后被授予地址总线;
        (4)新主机可以保证立刻访问(总线)因为空闲传输总是在一个周期内完成。

三、小结

        在本文中我们讲述了AHB协议的分割传输机制,它使得从机可以决定一次传输是否继续进行,以防止 传输的执行将占据大量的时钟周期,有效提高了总线的公平性与效率问题,在后续的文章中我们将一次性学习完AHB最后的内容,包括有复位,数据总线的位宽和接口设备等。

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

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

相关文章

生信豆芽菜-单样本GSEA分析

网址:http://www.sxdyc.com/gradeSsgsea 1、数据准备 第一个文件:表达谱数据 第二个文件:功能基因集 2、提交后,等待运行成功即可下载 当然,如果不清楚数据是什么样的,可以选择下载我们的示例数据&a…

【报错解决】:DataGrip连接Mysql报08S01解决方法

DataGrip连接Mysql报08S01解决方案 报错 [08S01]Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. No appropriate protocol (protocol is disabled or ciph…

Ubuntu Touch OTA-2 推出,支持 Fairphone 3 和 F(x)tec Pro1 X

导读UBports 基金会近日宣布为基于 Ubuntu 20.04 LTS (Focal Fossa) 的 Ubuntu Touch 移动操作系统发布并全面提供 OTA-2 软件更新。 Ubuntu Touch OTA-2 在首次 OTA 更新整整四个月后发布,支持新设备,包括 Fairphone 3、F(x)tec Pro1 X 和 Vollaphone X…

跌倒检测,基于YOLOV8S,只依赖OPENCV,支持C++/PYTHON

跌倒检测,只依赖OPENCV,支持C/PYTHON YOLOV8S检测原理,很多CSDN博客已经介绍了,只需要标记数据,然后训练,转换成ONNX模型,然后OPENCV的DNN模块调用,支持C/PYTHON

MySQL数据库面试题汇总

MySQL数据库 1.什么是数据库? 数据库(Database)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。(简而言之,用来存储大量数据的&…

Java【手撕双指针】LeetCode 11. “盛水最多的容器“, 图文详解思路分析 + 代码

文章目录 前言一、盛水最多的容器1, 题目2, 思路分析3, 代码展示 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结构: 顺序表…

冠达管理:大盘金针探底 数据要素板块掀涨停潮

快速回调后,大盘走出金针探底走势。 沪指周二高开震动,午后指数刷新本轮回调新低后抄底资金加快流入,推动指数快速翻红,并重回3100点整数关口上方,但未能进一步向5日均线挨近。深成指同样是高开震动午后探底上升&#…

网约车接单神器:智能化技术与出行服务的完美结合

随着移动互联网的迅猛发展,网约车行业成为现代出行方式的主流之一。为了提高用户体验和服务效率,网约车接单神器应运而生。本文将探讨网约车接单神器的专业性、思考深度和逻辑性,以及其与智能化技术和出行服务的完美结合。 一、引言&…

Jobs Portal求职招聘系统源码v3.5版本

Jobs Portal求职招聘系统 是为求职者和公司发布职位而开发的交互式求职招聘源码。它使求职者能够发布简历、搜索工作、查看个人工作列表。 它将提供各种公司在网站上放置他们的职位空缺资料,并且还可以选择搜索候选人简历。 除此之外,还有一个管理模块供…

成功解决SQL 错误 [22000]: 第3 行附近出现错误: 试图修改自增列[ID](达梦数据库)

当我们使用工具来手动修改自增列的自增ID时,可能会报如下异常 SQL 错误 [22000]: 第3 行附近出现错误:试图修改自增列[ID] 解决办法: 可以使用SQL语句来修改 ALTER TABLE "fdw"."SYSTEM_DICT_TYPE" DROP IDENTITY; UPDATE "f…

问道管理:多少钱可以申购新股?

随着中国股市的不断发展,越来越多的人开端进入投资领域。而申购新股是投资中的一种常见方法。那么,多少钱能够申购新股呢?这个问题并不简略,需求从多个视点来剖析。 首先,需求了解什么是申购新股。申购新股&#xff0c…

IGBT基本工作原理及IGBT的作用是什么?

IGBT 今天我们一起来了解关于IGBT(绝缘栅双极性晶体管)芯片。在过去的几十年中,我们生活的每个角落都离不开能源的驱动。然而,传统的功率晶体管却受限于一些方面不足。幸运的是,IGBT芯片的出现彻底改变了这一局面。 …

管理系统用户登录功能

一、前言 任何一个管理信息系统都会有登录功能。我们简单可以通过用户名加密码加验证码进行登录。但是就是一个这样的简单功能却涉及的要求很多。 比如对账号的要求,对密码复杂度的要求,对登录时长的要求,对密码有效期的要求,对登…

前端开发中移动端开发需要注意什么? - 易智编译EaseEditing

在前端开发中,移动端开发具有一些独特的挑战和注意事项。以下是移动端开发时需要注意的一些重要点: 响应式设计: 移动设备的屏幕尺寸和分辨率多样,因此要采用响应式设计,确保你的网站或应用在各种设备上都能良好地呈…

Star History 月度开源精选|Llama 2 及周边生态特辑

7 月 18 日,Meta 发布了 Llama,大语言模型 Llama 1 的进阶版,可以自由免费用于研究和商业,支持私有化部署。 所以本期 Star History 的主题是:帮助你快速把 Llama 2 在自己机器上跑起来的开源工具,无论你的…

生信学院|08月25日《SOLIDWORKS PDM帮助企业对设计数据版本的管理应用》

课程主题:SOLIDWORKS PDM帮助企业对设计数据版本的管理应用 课程时间:2023年08月25日 14:00-14:30 主讲人:车立洋 生信科技 PDM专家 1、图纸&文档的版本管理对于企业的重要性 2、SolidWorks PDM对图纸&文档版本的管理 3、SolidW…

浅析阿里云灵积(平台)模型服务

简介: DashScope灵积模型服务以模型为中心,致力于面向AI应用开发者提供品类丰富、数量众多的模型选择,并为其提供开箱即用、能力卓越、成本经济的模型服务API。DashScope灵积模型服务依托达摩院等机构的优质模型,在阿里云基础设施…

Ubuntu22.04利用lightdm替换gdm3出现的问题或Bug

Ubuntu22.04利用lightdm替换gdm3出现的问题或Bug 问题1:快捷键无法使用问题2:qq_music打开失败问题3:微信截图收发文件的解决问题4:Dock以及plank问题的解决随时更新补充中ing... 问题1:快捷键无法使用 修复输入法的问…

【VR】SteamVR2.0的示例场景在哪里

💦本专栏是我关于VR开发的笔记 🈶本篇是——在哪里可以找到SteamVR2.0的示例场景 SteamVR2.0的示例场景在哪里 1. 逐步打开方式2. 快速打开方式 1. 逐步打开方式 Assets——SteamVR——InteractionSystem——Samples——>Interactions_Example 2. 快…

17.8k Star!开源且支持私有化部署的碎片化知识卡片管理工具-Memos

应用简览 Memos 是一个开源的轻量级笔记服务应用,它为用户提供了一个随时记录思绪和想法的私密空间,同时它支持私有化部署,这意味你可以完全掌控你的数据和隐私,同时它还提供了直观的分享功能,让你可以轻松地与他人协作…