在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 5629|回复: 6

[讨论] AXI中的Byte invariance是一种什么机制

[复制链接]
发表于 2021-5-13 16:54:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Q1:ARM在AXI SPEC中提到,AXI使用byte-invariant endianness scheme的方式,这样就能支持mix-endian了吗?
Q2:在这种架构下,比如说slave有big-endian,也有little-endian的,应该如何处理?
Q3:看了ARM官方的解释,bus上传输,是不管大端还是小端,数据的处理有对应的slave进行转换?不知道这个理解是否正确,如果是,这种转换的过程由硬件还是软件来完成?

发表于 2021-5-21 07:13:25 来自手机 | 显示全部楼层
有点意思
发表于 2021-7-18 11:56:14 | 显示全部楼层
Byte invariance的意思是不管大小端,粒度都是以byte为单元,一个byte内的内容是不会变的,但是byte的排列顺序会根据是否是大小端而发生改变

大小端的转换是需要你的硬件去做转换的,magic does not happen itself
 楼主| 发表于 2021-7-20 17:06:07 | 显示全部楼层


churchmice 发表于 2021-7-18 11:56
Byte invariance的意思是不管大小端,粒度都是以byte为单元,一个byte内的内容是不会变的,但是byte的排列 ...


前段时间基本都弄懂了,实际上就是以存储器内部的排布方式在AXI总线上传输,至于大小端的处理,由数据接收方在其内部处理。AXI以byte作为最基本的传输单位,大小端不会影响byte中的数据排布

发表于 2022-1-10 14:18:43 | 显示全部楼层
楼主,
问一下接收方要怎么确认接收的这笔数据里的大端部分和小端部分呢?然后再进行分别的处理
发表于 2022-1-10 14:24:27 | 显示全部楼层


mysoul 发表于 2021-7-20 17:06
前段时间基本都弄懂了,实际上就是以存储器内部的排布方式在AXI总线上传输,至于大小端的处理,由数据接 ...


楼主,
那数据接收方是通过什么确认数据是大端还是小端,是在传输数据的时候会带一些识别大端小端的识别bit在cmd里吗
 楼主| 发表于 2022-1-12 15:16:03 | 显示全部楼层


sjx123456 发表于 2022-1-10 14:24
楼主,
那数据接收方是通过什么确认数据是大端还是小端,是在传输数据的时候会带一些识别大端小端的识别b ...


首先以静态端模式为例:      1.在系统设计初期,大小端模式就是确定了,假如说ARM整个体系结构都是小端,但是有一些外设如DSP这种可能是大端的,那么在与DSP的通信时,总线上传输还是小端的。这时就需要在DSP外面对数据进行端模式的转换,转换完成后再送给DSP。DSP数据发送也是一样的。
      2.在这种静态端模式的前提是,系统中的每个master或者slave,端模式都是提前知道的,并且不会动态变化,所以可以自行根据master或slave的特点,决定是否需要转换逻辑

如果是动态端模式:
      1.这种我在实际项目中没有用过,但是之前看到过的IP一般会有一个pin来控制大小还是小端模式。可以依据这些信息来决定是否转换。
      2.个人的项目经历没有见过那种会实时切换端模式的应用,所以不多讲
      3.CPU core的pin控制端模式时,有见过做成动态可配置的,不过这种一般都是系统复位的时候改变core的某些行为


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 10:30 , Processed in 0.022326 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表