soc AXI接口术语和特性
AXI接口术语和特性
1、outstanding
2、interleaving
3、out-of-oder
4、写数据可以优先于写地址
5、大小端
小端:低地址数据放在总线bus的低位。
大端:低地址数据放在总线bus的高位。
6、INCR模式
INCR模式master只提供首地址,地址累加是slave端做的
7、原子操作
7.1、原子操作的用途
在多线程的操作系统中,都有一个获取线程锁的过程,这个锁是唯一的,一个线程抢到了其他线程就抢不到,如何实现这个功能呢?加入将内存的一个变量作为锁的标志,如果这个标志位0表示没有线程抢这个锁,如果为1表示某个线程抢到了这个锁。那么在抢锁之前先要看一下这个标志是否为0,如果为0表示锁是空闲的可以抢,为了表示抢到了这个锁,还得把这个变量置为1。这个抢锁的过程就至少需要有一读一写。但是在多线程操作的过程中,可能很多线程都在读取这个变量,都读到的值为0(读的时间还是比较长的,多核并发完全可以读多次),然后所有线程都写1,这样就造成了多个线程都得到了锁,与锁唯一的要求不合。也就是说通过软件手段是不能保证某个值被一个线程(Master)读取和写入的过程中没有被其他线程(Master)读取和写入。这就要求线程支持原子操作。
由于内存在使用过程中会出现ecc错误,需要刷新数据来纠正这些错误,操作系统通过内存巡检来完成刷新操作,内存巡检就是读取内存的值,通过ecc校验更正错误值,然后写入到内存,系统读取数据后,操作系统还是在正常运行的,内存上的程序很有可能把内部数据修改了,如果还是拿原来读取的数据ecc校验后写入就会冲掉程序保存的数据,这当然是不行的。这个时候内存巡检就要用到原子操作,巡检值使用exlusive方式读取内存,让这段内存记录在读取数据后内存数据有没有被改写过,如果被改写过,ecc校验后的数据使用exlusive方式写入的时候就会不成功,防止覆盖新的数据。巡检程序发现写入不成功就重新巡检这段内存,直到成功。
7.2、exlusive原子操作
Master_A以exclusive方式读取Salve的一段地址(以lane_cash为单位,一般为64byte)的值后,相当于Master通知slave监控这段地址的写,slave的一个moniter会纪录这个Master_A,如果Master_A在写入这个slave之前没有其他Master写过这个数据的话,Master_A往这段地址写入数据是会返回一个Exok即原子操作成功,指示数据正确写入;如果在Master_A写入数据之前有其他Master也往slave的这段地址写过数据,那么Master_A以exlusive写数据的操作会返回ok,这其实表示exclusive操作失败了,数据也被moniter阻挡没有写入到slave中。这样保证读写这一整个过程中,软件知道是不是只有一个线程(Master)在写这段地址(其他线程在这个过程可以读),也只有exlusive写返回Exok后才说明线程锁抢占成功,这样就只有一个线程能抢占成功。
是一种应用场景相关的操作,在多核CPU中,为了保证一个master对slave的访问操作不让其他master来访问,保证访问slave的数据不被其他master改写。有点像多线程中的线程锁。在AXI3.0的时候有normal access/exclusive access/locked access, 其中normal access是不进行任何干预的访问,exclusive则是slave端监控一下,在master访问期间有没有其他master访问过,如果访问过就给告警什么的,让master重新访问一遍。locked access这种模式在AXI 4.0取消了,即硬件锁定,其他master访问不了master到slave的总线,这种方式对性能影响很大,所以取消了。
8、cash
cash是slave端的一个缓冲,如果多个设备都访问slave的某一部分数据,那么这部分数据可以缓存到cash中,只要第一个master访问后,其他master访问则部分数据时就不去slave中去取这些数据,而是直接从cash中取出来,这样节省时间。axcash信号在总线中是透传的。在与AXI相连的CHI协议中实现实现了cash操作。
9、额外信号Qos/user
Qos和user在总线中也通常是透传,Qos有时候用于多个master访问的优先级用于仲裁。
10、应答信号:BRESP/RRESP
写操作单独有一个写应答通道;读应答RRESP与读数据集成在同一通道;
对于写操作,每个burst只有一个写应答BRESP,且必须在最后一拍写数据后产生;读操作每一拍数据都有对应的读应答信号返回;
11、ID
Master无需知道某个ID被其他设备使用了没有,应为interconnect会在Master的ID上额外添加8bit,来区分不同Master的ID。
12、低功耗操作
开启低功耗模式:Master拉低CSYSREQ信号,SLAVE收到后等SLAVE的任务处理完后拉低CACTIVE表示响应,并且在时钟关闭后拉低CSYSACK表示响应。
撤销低功耗模式:Master拉起CSYSREQ信号,SLAVE接收到以后拉高CACTIVE,解开时钟后,拉高CSYSACK信号。
原文编写与2019-12-05
soc AXI接口术语和特性的更多相关文章
- 关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP
关于Xilinx AXI Lite 源代码分析---自建带AXI接口的IP 首先需要注意此处寄存器数量的配置,它决定了slv_reg的个数. 读写数据,即是对寄存器slv_reg进行操作: 关于AXI ...
- golang接口三个特性
类型和接口 因为映射建设在类型的基础之上,首先我们对类型进行全新的介绍.go是一个静态性语言,每个变量都有静态的类型,因此每个变量在编译阶段中有明确的变量类型,比如像:int.float32.MyTy ...
- C#8.0接口默认实现特性
文章:[译]C#8.0中一个使接口更加灵活的新特性-默认接口实现 原文示例代码: public interface IBook { void AddBook(string bookName, stri ...
- JDK8中接口的新特性
在JDK8环境中,接口中的方法不再是只能有抽象方法,还可以有静态方法和default方法.实现类只需要实现它的抽象方法即可,JDK8中的接口有愈发向抽象类靠拢的感觉. 关于静态方法和默认方法作如下简述 ...
- jdk8中接口中的特性
jdk8中可以定义静态方法(public static)和默认方法(public default),public 可以省略 调用接口中的静态方法时:只能通过接口本身来调用,不能被该接口的实现类来调 调 ...
- Zynq-PL中创建AXI Master接口IP及AXI4-Lite总线主从读写时序测试(转)
转载:原文 http://www.eefocus.com/antaur/blog/17-08/423751_6cc0d.html 0. 引言 通过之前的学习,可以在PL端创建从机模式的AXI接口IP ...
- JAVA8新特性——接口定义增强
JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ 接口定义增强 在JDK1.8以前,接口是定义的: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法 ...
- java8新特性学习:函数式接口
本文概要 什么是函数式接口? 如何定义函数式接口? 常用的函数式接口 函数式接口语法注意事项 总结 1. 什么是函数式接口? 函数式接口其实本质上还是一个接口,但是它是一种特殊的接口:SAM类型的接口 ...
- JDK1.8之后的新特性和新接口
接口的旧特性: 就特性下接口中只有: 常量(必须赋值) 抽象方法abstract(和final static private三个关键字冲突) interface Inter { //int a ; / ...
随机推荐
- Sentry 开发者贡献指南 - Feature Flag
功能 flag 在 Sentry 的代码库中声明. 对于自托管用户,这些标志然后通过 sentry.conf.py 进行配置. 对于 Sentry 的 SaaS 部署,Flagr 用于在生产中配置标志 ...
- CTF-sql-万能密码
以下是我在学习sql注入时的一些感想分享,希望能帮助到大家,如有错误,望指出. 万能密码的种类: ①select * from admin where username ="" a ...
- 《剑指offer》面试题13. 机器人的运动范围
问题描述 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入 ...
- 5.13-jsp分页功能实现
1.分页共能的实现 可以在dao层中创建方法 List<Member> pager(Long pageSize, Long pageNum);(方法灵活运用)其中传入的两个参数pageSi ...
- 【刷题-LeetCode】152 Maximum Product Subarray
Maximum Product Subarray Given an integer array nums, find the contiguous subarray within an array ( ...
- 一次神奇的Azure speech to text rest api之旅
错误Max retries exceeded with url: requests.exceptions.ConnectionError: HTTPSConnectionPool(host='%20e ...
- 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)
ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...
- 沁恒CH32F103C8T6的开发和烧录配置说明
概述 CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制.多级电源管理. 通用DMA控制器等. 此系列具有 2 路 USB2.0接口.多通道 TouchKey. 1 ...
- kubernetes之kubeadm 安装kubernetes 高可用集群
1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G ...
- 3D建模服务提供更高效、专业的3D制作能力,“筑”力开发者
3D建模服务(3D Modeling Kit)是HMS Core在图形图像领域又一技术开放.3D建模产品的定位就是要做快速.简洁.低成本的3D制作能力,并陆续开放给有3D模型.动画游戏制作等能力诉求的 ...