当前位置: 首页 > news >正文

axi 4k边界检测

在AXI4协议中,一个突发传输(burst transfer)不能跨越4KB的边界,为啥呢,因为我们认为每个slave设备通常是4KB对齐的,为了避免一次burst的传输可能越过目的slave这个风险,所以就定了这个规矩
更深的说,确保数据传输和缓存操作遵循4K边界对齐可以提高系统性能,减少缓存一致性问题,并简化内存管理。这是因为许多缓存系统是基于缓存行进行操作的,如果数据跨越了缓存行边界,可能需要额外的处理来确保数据的一致性。
1、AXI4的4K边界指的是地址,还是数据量,比如一组DDR有两片16bit位宽DDR芯片,这时候4K边界应该怎么算?
AXI4的4K边界指的是地址,而不是数据量。4K边界是指地址的低12位全为0的地址点,这是因为系统通常定义一个页面(page)的大小为4KBytes。
对于一组DDR内存,如果有两片16位宽的DDR芯片,计算4K边界还是基于整个DDR内存的物理地址空间来考虑,而不是单个芯片的位宽或容量。一组两片DDR芯片是并行的,所以它们在逻辑上应该被视为一个连续的地址空间。
每个DDR芯片的地址空间中的4K边界地址点是由其物理地址决定的,而不是由芯片的位宽决定的。换句话说,无论数据总线宽度是多少,4K边界始终是由地址的低12位决定的。

2、不跨4K边界如何理解?
假设如果我们有一个起始地址0x00010000,那么4K边界地址将是0x00010000(低12位为000000000000),0x00020000,0x00030000等,这些都是4K对齐的地址点。
在进行突发传输时,我们必须确保起始地址和结束地址都在同一个4K页面内。
判断原则就是:
Start_Address / 4096 == (Start_address + (burst_size * burst_length)) / 4096
代码可以这样写:
wire assert_valid_transaction = start_ar_addr[ MSB : 12 ] == end_ar_addr[ MSB : 12 ];

http://www.jsqmd.com/news/3572/

相关文章:

  • GOSIM 开源出海工作坊:给开源创业者的忠告
  • 华为,让金融智能体月映千江 - 指南
  • 轻量级架构决策记录工具 - ADR Tools
  • 一文搞懂Flex弹性布局空间分配规则
  • “小身材的大心脏”——HT-AD3PS-1+ 在成都恒利泰的射频江湖里到底做了什么?
  • AT_agc012_c [AGC012C] Tautonym Puzzle 题目分析
  • 详细介绍:回调函数与错误处理
  • Django系列(七)HttpRequest(请求)和HttpResponse(响应)对象
  • 值得收藏!GraphRAG:助力大模型突破“健忘”困局,构建逻辑化升级
  • 工业主板:智能制造与严苛环境的坚实基石
  • 课上测试:C编程工具测试(AI)
  • 标题。
  • 虚拟机下的麒麟V10SP1与SP2进行iSCSI连接——基于MobaXterm
  • 中断的基本概念
  • AT_arc173_e [ARC173E] Rearrange and Adjacent XOR
  • 修复gradle8使用Transform第一个构建中断第二次构建失败的问题:java.io.IOException: Unable to delete directory xxxx\build
  • .NET操作Word/WPS打造专业文档 - 页面设置与打印控制完全指南
  • NORDIC蓝牙6.0新品NRF54L15多协议超低功耗高性能BLE芯片 - 动能世纪
  • 记录:git、.${index}. 滚动条
  • 快速入门HarmonyOS应用开发(三) - 教程
  • Docker + IDEA 一键部署! - 实践
  • 使用springboot开发一个宿舍管理系统练习项目 - 实践
  • CF1542
  • Manim实现涟漪扩散特效
  • CRMEB标准版PHP移动订单功能深度解析:多端同步方案
  • PolarFire SOC Auto Update 和 IAP 文档阅读(四) IAP
  • CICD流程建设之持续测试实践指南
  • Xcode 26.0.1 (17A400) 发布 - Apple 平台 IDE
  • Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
  • CNN+MNIST - 实践