AXI三板斧之Outstanding、Out-of-order、interleaving

2024-06-20 00:20

本文主要是介绍AXI三板斧之Outstanding、Out-of-order、interleaving,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、AXI三板斧之Outstanding

可以不用等单个命令的响应,直接连续发送N个命令(N>1),假设Slave端的Outstanding能力为N时(N>1),那么Master端可以在Slave不返回读数据的情况下,连续发出N个请求。假如在这期间Slave端返回了m个数据,那么Master端还可以接着发m个请求。形象点说,就是Master端 "在路上" 的请求最多为N个。

下图所示,AXI Slave包含一个深度为8的Buffer用来缓存请求命令,那么该Slave的Outstanding为8,Master端可以连续发出8个请求,如果这期间Slave没有返回数据,那么Master端则不能再发出新的请求。如果这期间Slave端从Buffer中读取了m个请求命令进行处理后将数据返回给Master,这样Buffer中就又有了新的空间可以缓存命令。

比如,可以连续发送地址1和地址2,然后连续发送地址1要写入的数据和地址2要写入的数据,最后依次等待地址1的响应和地址2的响应。这时Outstanding能力为2。

请问,AHB总线是否支持Outstanding?请问,AXI Outstanding特性相比AHB的时序特性提高在哪里?请景芯SoC训练营同学画出时序图对比。

请问,如果地址1对应的slave是busy,数据暂时无法写入,而地址2对应的slave是idle,数据可以先写入,这时AXI怎么处理来提高带宽?这种特性对应AXI的那种特性?

2、AXI三板斧之out-of-order

out-of-order,连续发送地址1和地址2,然后连续发送地址1要写入的数据和地址2要写入的数据,如果地址1对应的slave是busy,数据暂时无法写入,而地址2对应的slave是idle,那么数据可以先写入slave2,即先完成后发的地址2的操作,再完成地址1的写操作,这就是out-of-order。

3、AXI三板斧之interleavling

注意,对于AXI3,写命令和写数据不一定有先后顺序且ID顺序不一定相同,即AXI3支持interleavling。由于interleavling基本不用,因此AXI4放弃了interleavling功能,即AXI4因为已经没有WID信号,所以写数据的顺序要和写地址的顺序一样。

这篇关于AXI三板斧之Outstanding、Out-of-order、interleaving的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076566

相关文章

MapReduce算法 – 反转排序(Order Inversion)

译者注:在刚开始翻译的时候,我将Order Inversion按照字面意思翻译成“反序”或者“倒序”,但是翻译完整篇文章之后,我感觉到,将Order Inversion翻译成反序模式是不恰当的,根据本文的内容,很显然,Inversion并非是将顺序倒排的意思,而是如同Spring的IOC一样,表明的是一种控制权的反转。Spring将对象的实例化责任从业务代码反转给了框架,而在本文的模式中,在map

兔子-(PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP'

由于在PHP最新的版本中增加了一个配置项目“request_order”,默认值为“GP”,这个存在一定的安全风险。这里我们建议用户将配置更改为“CGP” 可以在php的安装目录下找到php.ini配置目录,找到下面选项: request_order = "GP"  更改为 request_order = "CGP"   重启服务器后即可。 此

Hive中order by,sort by,distribute by,cluster by的区别

一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。 二:sort by sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort

MySQL - 关于 Order By 乱序问题

一、问题     在 Order By 的查询语句中, 如果 Order By 的字段存在较多相同数据时,可能会出现乱序的问题,即多次查询的返回结果顺序不一致 二、方案     添加第二个 Order By 的字段,且该字段尽量唯一 三、示例 -- 原始语句SELECT * FROM detail ORDER BY type ASC-- 调整语句SELECT * FROM detai

group by和order by

order by  是按字段排序       (排序查询asc升序desc降序) group by  是按字段分类    (分组查询having只能用于group by子句,作用于组内,having条件子句可以直接跟函数表达式)       order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。

MyBatis排序时使用order by 动态参数时需要注意,用$而不是#, #{}和${}的区别以及order by注入问题

ORDER BY ${columnName} 这里MyBatis不会修改或转义 字符串 。 重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。 #{}相当于jdbc中的preparedstatement ${}是输出变量的值 简单的说就是#{}传过来的参数带

N-ary Tree Level Order Traversal

Input: root = [1,null,3,2,4,null,5,6]Output: [[1],[3,2,4],[5,6]] 思路:就是一个queue的level order 收集; /*// Definition for a Node.class Node {public int val;public List<Node> children;public Node() {}pu

BFS 到 Level Order traverse 到 UnionFind 到 Topological Sort 到 Dijkstra 思路总结

====BFS 找联通量,找component. Number of Islands (BFS, DFS 都可以做) Surrounded Regions 算法是:先收集四个周边的 O,然后用BFS或者DFS向里面扩展,visited记录connect点,最后如果没有被visited到的O,会变成X;T: O(m*n), Space: O(m*n). Is Graph Bipartite (

oracle order by 的问题以及分页问题

转自: http://www.blogjava.net/freeman1984/archive/2011/10/20/361633.html Oracle会根据具体的数据块的存储返回记录. oracle数据库是没有默认排序的  要排序必须加上order  by  因为oracle是按块进行读取数据的  如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序 oracle

leetcode 刷题之路 4 Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3/ \9 20/ \15 7