首页 > 其他分享 >【数字】AXI burst跨4k的问题

【数字】AXI burst跨4k的问题

时间:2024-08-27 18:51:36浏览次数:5  
标签:slave 边界 burst 地址 4K 对齐 AXI 4k

AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K。因此其中某个Burst的操作可能 会出现在4K边界上。 请问: 在这样的情况下,Master_A设计的Burst操作是否需要遵守4k边界的约定?

       协议中之所以规定一个burst不能跨越4K边界是为了避免一笔burst交易访问两个slave(每个slave的地址空间是4K/1K对齐的)假如一个burst交易访问了两个slave A 和B(A在前B在后),那么只有A收到了地址和控制信息,而B不会收到地址和控制信息,因此只有A响应B并无响应,这就会导致此笔burst交易无法完成(B无法返回最后一笔transfer)。因此如果你必须确定系统中所有slave中地址空间最小的那一个,假设是1M,这样你的burst边界可以大于4K至1M。但还是不建议这么做,毕竟一个burst跨越4K边界的概率还是较低的,如果真的跨越了就拆分。

 Q1:不是一个burst的最长是16(len)×128byte(size)=2Kbyte吗,所以一个burst怎么超过4K的边界?

 Q2:“4K/1K对齐的”是什么意思?

 Q3:“如果真的跨越了就拆分”是什么意思?

所谓的4K边界是指低12bit为0的地址,例如32'h00001000, 32'h00002000... 这些特殊的地址我们称之为4k边界;同理1k边界是指低10bit为0的地址,例如32'h00000400,32'h00000800...

4K对齐最大原因是系统中定义一个page大小是4K。所以,为了更好的设定每个slave的访问attribue,就给一个slave划分4K空间。 4K对齐,以32位地址为例,[31:12]相等的地址都是同一个page,没有跨4K边界。 即[11:0] 可以为0~0xFFF. 例如0x1000和0x2000就是在不同的page,跨了4K边界。0x1000和0x1FFF则是在同一个page,没有跨4K边界。同理,0x1FFF和0x2000则跨了4K边界,虽然他们是相邻的byte。 再说到一次burst没有4K大小,但是如果起始地址是0x1FFC, INCR模式,会跨边界吧? 1K对齐,就是说 [31:10]相等的地址都是在一个1K对齐的空间内。 至于真的跨越了,就拆分。例如处理器load多个数据,就是跨页访问,到了接口控制模块,也会把这一个访问拆分成两个访问。在interfere上的都是符合协议的transaction。例如,core要访问0x1FF0-0x200C共32byte的数据(每次beat 4B)。系统会自动给拆分成0x1FF0-0x1FFC和0x2000-0x200C两个transaction。

ARM对AHB burst这样设计的目的是在于,SLAVE的地址访问空间基本都是以1KB为单位的,当AHB以burst方式传输时,为了避免错误的访问到其他的Slave空间而造成系统致命错误,因此在burst传输时限制1KB,若需要跨1KB边界时,需要重新initial一个新的传输。

在AHB划分系统时,最小的地址空间为1KB,即slave至少地址空间是1k,或者2K,或者1M等。这样,当AHB访问地址空间时,因为地址空间对其的原因,就不会恶意的访问到其他的地址空间。

cpu发出这样的请求时,AHB会自动的将其转换为1KB,1KB的传输格式,可以根据其地址区间是否跨越对齐的000来判断。

标签:slave,边界,burst,地址,4K,对齐,AXI,4k
From: https://blog.csdn.net/weixin_42664351/article/details/141609731

相关文章

  • Twenty Lectures on Algorithmic Game Theory 算法博弈论二十讲 Lecture 5 Revenue-Ma
    TwentyLecturesonAlgorithmicGameTheory算法博弈论二十讲Lecture5Revenue-MaximizingAuctions(上)Lecture5Revenue-MaximizingAuctions第2至第4讲聚焦于设计能够最大化社会福利的机制,无论是精确还是近似。这类机制的收益产生仅仅是副作用,是激励代理人如实......
  • Axios:轻松进行 HTTP 请求的强大工具
    在前端开发中,与服务器进行通信是非常常见的需求。无论是获取数据、发送表单,还是上传文件,HTTP请求都扮演着重要角色。虽然JavaScript提供了原生的fetchAPI和XMLHttpRequest,但它们在处理复杂请求时可能不太方便。这时候,Axios作为一个基于Promise的HTTP客户端库,提......
  • axis参数讲解
    axis在python使用中非常常见,比如numpy、pandas等使用情景。但是笔者几乎每次都会忘记axis=0和axis=1各自对应的是行还是列,最终决定写下笔记以防再次忘记。axis的作用:指明以行为单位进行处理数据,还是以列为单位处理数据。下图就已经很清晰地展示了axis=0和axis=1,一图胜......
  • 异步交互技术Ajax-Axios
    目录一、同步交互和异步交互二、Ajax 1.概述2.如何实现ajax请求三、异步传输数据乱码的问题regist.html页面代码 服务端代码处理四、Axios1. Axios的基本使用(1)引入Axios文件(2)使用Axios发送请求,并获取响应结果。2.案例3.请求方法的别名(推荐用这个,简单)一、同......
  • Magnet AXIOM 8.3.1 Windows x64 Multilingual - 数字取证与分析
    MagnetAXIOM8.3.1Windowsx64Multilingual-数字取证与分析DigitalForensicSoftware请访问原文链接:https://sysin.org/blog/magnet-axiom/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgMagnetAXIOM-恢复并分析一个案件中的证据检查来自移动、云......
  • C. Perform Operations to Maximize Score
    原题链接题解着重点:分类讨论+二分中位数首先,由于要求中位数,我们先将数组进行排序;接着我们取遍所有的ai及其对应中位数。此时,分歧产生,我们有k次增值的机会,是加到ai(不会改变中位数)上还是增值后改变中位数(此时中位数可能改变)?显然,我们要分类讨论情况一:我们加到选取的ai上,显然......
  • axios+cheerio抓一本小说
    importaxiosfrom'axios';importfsfrom'fs-extra';importpathfrom'path';import*ascheeriofrom'cheerio'constinstance=axios.create();asyncfunctionmain(){constdata={url:atob('aHR......
  • AMD Xilinx MPSoC 在分别下载 PL bit文件、PS软件的情况下,PS软件如何访问 PL AXI寄存
    在调试模式下,可以通过JTAG下载MPSoCPL的bit文件,再下载MPSoCPS的软件。这时候,PL已经下载,PS软件应该能够访问PL实现的AXI寄存器。但是PS的软件会卡住。如果使用同样的软件和bit文件,做成boot.bin,在QSPI/SD启动模式下,又一切正常。或者boot.bin里只有PS的软件,启动过程中通过Vivado加......
  • axios取消请求CancelToken的原理解析及用法示例
    文章目录一、axios的实例与请求流程二、CancelToken的作用三、CancelToken的实现原理四、取消请求的流程五、CancelToken用法六、利用拦截器取消请求1、axios请求拦截器2、axios响应拦截器3、利用路由导航守卫取消请求一、axios的实例与请求流程下图是axios实例......
  • Node.js使用Axios发起http调用
    axios功能比较多,除了基本get/post调用之外,还支持多个接口并发调用、全局配置、拦截器等功能。笔者这里只介绍简单使用方法。安装npminstallaxiosGET请求:constaxios=require('axios');axios.get('http://api.qingyunke.com/api.php',{params:{key:'fre......