VALID/READY 握手机制

news2024/11/19 18:33:14

VALID/READY 握手机制

AXI 总线共有 5 个独立的通道,分别为写地址,写数据,写回应,读地址,读数据通道。5 条通道相互独立,有一些细小的差别,但共同使用一套握手机制:VALID/READY 机制。

 

VALID/READY 机制这个赛高啊,这个好啊,ARM 的手册上这么夸:

作为一种双向流控机制,VALID/READY 机制可以使发送接收双方都有能力控制传输速率。

 

发送方置高 VALID 信号表示发送方已经将数据,地址或者控制信息放到的写总线上,并保持。

接收方置高 READY 信号表示接收方已经做好接收的准备。

所谓的双向流控机制,指的是发送方通过 VALID 信号置起控制发送速度的同时,接收方也可以通过 READY 信号的置起与否控制接收速度,反压发送方的发送速度。

当双方的信息同时为高,时钟上升沿到达后,一次数据传输完成,在 1 到 n 次时钟上升沿后,双方传完了要传的信息后,两信号同时拉低。

VALID/READY 的三种情况

VALID/READY 信号按照到达的先后顺序可以分为 3 种情况:

 

1.VALID 信号先到达

发送方 VALID 信号早早就到了,这时还不到 T2 时刻,并带来了新鲜的数据(数据通道),地址或者控制信息(地址通道)。

但过了 T2 也没见到接收方的 READY 信号。原来是接收方还忙着,可能上一次的数据还没存完,还堵在数据通路上,忙过了 T2 才来。

好吧,那也行,T3 时刻传输完成。

在这种情况下,接收方通过 READY 信号控制了传输速度,反压了发送速度。

协议规定:VALID 信号一旦置起就不能拉低,直到此次传输完成。对于接收方编程来说,检测到 VALID 信号置起,如果系统正忙,完全可以让发送方等待,发送方在完成传输之前都不会置低 VALID 信号,不需要考虑发送方撤销传输的可能。

协议另外规定:发送方不能在置起 VALID 信号之前就光等待 READY 信号。

这句阅读理解有点难,原文为:

作者个人从总线接口编程的角度理解,READY 信号可能先到达,如下图的情况。但是发送方编程时,不能依赖 READY 信号先到达的情况。不能将 READY 信号置高作为置高 VALID 的条件,比如将 READY 信号通过组合逻辑生成 VALID 信号。

换句话说,发送方准备发送,置起 VALID 信号是完全主动的过程。接收方按照协议可以依赖发送方,但如果此时发送方也依赖接收方,就会造成死锁的情况,所以协议在这里规定了 VALID 信号的主动性。

 

2.READY 信号先到达

READY 信号很自由,可以等待 VALID 信号到来再做响应,但也完全可以在 VALID 信号到来前就置高,表示接收端已经做好准备了。

READY 信号与 VALID 不同,接收方可以置起 READY 之后发现:其实我好像还挺忙,然后拉低 READY 信号。只要此时 VALID 信号没有置起,这种操作是完全可以。

 

3.同时到达

同时到达就很简单,等到下一个时钟上升沿 T2,传输就这么轻松愉快地完成了,一个时钟周期里就完成了。

</article>

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

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

相关文章

代码随想录——最长回文子串

题目 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s “babad” 输出&#xff1a;“bab” 解释&#xff1a;“aba” 同样是符合题意的答案。 示例 2&#xff1a; 输入&#xff1a;s “cbbd” 输出&#xff1a;“bb” 示例 3&a…

六、RTMP协议 时间戳

RTMP时间戳 基本介绍 RTMP中时间戳的单位为毫秒(ms)时间戳为相对于某个时间点的相对值时间戳的长度为32bit&#xff0c;不考虑回滚的话&#xff0c;最大可表示49天17小时2分钟47.296秒Timestamp delta单位也是毫秒&#xff0c;为相对于前一个时间戳的一个无符号整数&#xff1…

【计算机毕业设计】奖学金管理系统源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐…

【数据结构】---详解二叉树--- ⌈知识点总结⌋ 和 ⌈常见力扣题目⌋ 确定不来看吗?

前言 ❤️ 铁汁们大家好&#xff0c;欢迎大家来到出小月的博客里&#xff0c; &#x1f917;&#x1f917;&#x1f917;之前呢&#xff0c;我分享了数据结构的栈和队列。。。。今天呢&#xff0c;给大家分享关于树的内容包括了树的结构、遍历和一些题目&#xff0c;希望大家看…

如何使用Github的Action实现博客的自动部署

如何使用Github的Action实现博客的自动部署 以下是详细的采坑记录&#xff0c;花费了不少时间。 现在的状态是&#xff0c;更新完博客时&#xff0c;需要执行以下的指令&#xff1a; hexo clean && hexo g && hexo d && git add . && git …

Git分布式版本控制工具

layout: post title: Git分布式版本控制工具 description: Git分布式版本控制工具 tag: 开发工具 文章目录git 基本配置与指令设置用户信息为常用指令设置别名解决gitbash乱码问题基础操作指令&#xff1a;初始化、添加到暂存区、提交到仓库、查看状态、日志版本回退git reset配…

智工教育:一级建造师《公路实务》考前必背知识点

一、路基工程 1.地基表层碾压处理压实度控制标准为&#xff1a;二级及二级以上公路一般土质应不小于90%&#xff1b;三、四级公路应不小于85%。 2.石质路堑施工技术 &#xff08;1&#xff09;应逐级开挖&#xff0c;逐级按设计要求进行防护。 &#xff08;2&#xff09;施工…

高效工具-局域网服务器访问公网

文章目录任务需求方法1&#xff1a;使用CCproxy代理简单介绍下载安装配置逻辑本机配置客户机配置成功测试方法2:修改MAC地址查询本机MAC地址修改内网服务器MAC地址打开rc-local.service服务添加Install段创建rc.local文件添加核心的修改MAC地址代码创建链接启动服务成功测试参考…

线上超市小程序开发有什么作用_超市小程序有什么功能呢

1。开发超市小程序有什么价值&#xff1f; 1、对于消费者来说&#xff1a;通过超市小程序能够更加直接的购买到想要的产品&#xff0c;消费者无需再到门店寻找商品可以直接通过超市小程序进行在线浏览&#xff1b;通过在线搜索的方式能够更加便捷的搜索到相应的商品&#xff0…

mysql连接池的实现

文章目录前言一、池化技术二、什么是数据库连接池三、为什么使用数据库连接池不使用连接池使用连接池长连接和连接池的区别四、数据库连接池运行机制五、连接池和线程池的关系六、连接池设计要点连接池设计逻辑构造函数初始化请求获取连接归还连接析构连接池前言 本文是mysql连…

模数转换电路

一、Exynos4412 A/D转换器概述 1. 概述 ADC(Analog-to-Digital Converter)&#xff0c;就是模数转换器。从字面上看&#xff0c;A我们称为模拟信号(Analog signal)&#xff0c;D我们称为数字信号(digital signal)。 模数转换器&#xff0c;在电子技术中即是将模拟信号转换成数字…

[附源码]java毕业设计家乡旅游文化推广系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

教你STM32做USB鼠标、键盘

使用CubeMX软件傻瓜式的配置&#xff0c;一键生成USB的HID驱动。 一、USB鼠标 1、CubeMX配置 ①、选择相对应的芯片 ②、配置时钟和Debug和debug ③、配置USB ④、生成代码 最好把这个也勾上&#xff0c;勾上以后每个外设配置不再都给你塞到main.c里&#xff0c;而是建一个.c…

简单的爬虫架构和网页下载器requests

目录 简单的爬虫架构&#xff1a; 网页下载器&#xff1a; URL管理器: 网页解析器: 网页下载器requests: 发送requests请求&#xff1a; 接收requests请求: requests操作实例&#xff1a; 简单的爬虫架构&#xff1a; 网页下载器&#xff1a; 负责通过URL将网页进行下载…

聊聊Vuex原理

背景 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。Vuex 是专门为 Vue.js 设计的状态管理库&#xff0c;以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。如果你已经灵活运用&#xff0c;但是依然好奇它底层实现逻辑&#xff0c;不妨一探究竟。 Vue 组件开发…

docker系统笔记-03镜像的创建管理和发布

镜像的获取 pull from registry (online) 从registry拉取 public&#xff08;公有&#xff09;private&#xff08;私有&#xff09; build from Dockerfile (online) 从Dockerfile构建load from file (offline) 文件导入 &#xff08;离线&#xff09; 镜像的基本操作 dock…

概率 | 【提神醒脑】自用笔记串联二 —— 数字特征、大数定律、统计量

本文总结参考于 kira 2023概率提神醒脑技巧班。 笔记均为自用整理。加油&#xff01;ヾ(◍∇◍)&#xff89;&#xff9e; 第一部分笔记详见 概率 | 【提神醒脑】自用笔记串联一 —— 事件、随机变量及其分布_西皮呦的博客-CSDN博客 一研为定&#xff01; 四、随机变量的数字特…

cocos2dx 3D物理相关知识点汇总

&#xff08;一&#xff09;3D相关基础知识 网格&#xff08;Mesh&#xff09; 通常说的网格其实就是3D建模出来的形状。因为模型是由很多三角形组成&#xff0c;所以&#xff0c;就像网格一样。 纹理 纹理的作用就是给网格上色。 怎么上色的&#xff1f; 举个简单的例子。…

m基于GA遗传优化的生产工艺设备布置优化matlab仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 在设备布置的问题上&#xff0c;本文将作业车间设备布置这个多目标优化问题看成是包含布局面积&#xff0c;物流成本和生产工艺的连续优化的多行设备布置问题&#xff0c;使之更具有实际意义…

如何在 Rocky Linux 上安装 Apache Kafka?

Apache Kafka 是一种分布式数据存储&#xff0c;用于实时处理流数据&#xff0c;它由 Apache Software Foundation 开发&#xff0c;使用 Java 和 Scala 编写&#xff0c;Apache Kafka 用于构建实时流式数据管道和适应数据流的应用程序&#xff0c;特别适用于企业级应用程序和关…