以AXI write为例,我理解size和strobe都是用来表明使用bus带宽中的某一个或几个byte,那为什么AXI协议既定义size又提供strobe,就以写来说,只用其中一个是不是也可以满足需求?这两者是不是有各自特定的应用场景?
假设 data bus = 128bit, 一次write 操作的start address =0x0, 假设 CPU 需要更新地址0x1, 0x2, 0x3. 1> 如果只有size信息,那就会错误的更新某些地址的值(比如 size=4B, 地址0x0的数据也会被更新) 2> 如果只有strob 信息, 那带来的问题就是: 1. 无法确定一次 transaction 的最大的数据量,因此对于 warp 操作,就无法确定 warp boundary 的值。 2. 每次 transfer,都需要将所有位置的的 strobe 查询一遍,使得逻辑复杂。3. 会在 data sizing(up sizer 或者 downsizer) 的时候出现问题。