This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AXI write strobes

Note: This was originally posted on 21st February 2007 at http://forums.arm.com

the AXI spec says:

10.1 About unaligned transfers
[...]
For any burst that is made up of data transfers wider than one byte, it is possible that the first bytes that have to be accessed do not align with the natural data width boundary. For example, a 32-bit (four-byte) data packet that starts at a byte address of 0x1002 is not aligned to a 32-bit boundary.


and then shows some examples of bursts with unaligned first bytes.

i also see references to disabling all strobes on any beat of a burst write.

but, what about unaligned ending bytes?  for example, a burst of 1kB starting at address 0x1 would have both an unaligned starting and ending byte.  is this allowed?

do the bytes of a burst have to be contiguous?  could the writes strobes have holes in them, for example, 0x5, 0xa, 0x9, etc.?

also, i was wondering what AXI masters ARM has that makes use of this feature?  do ARM processors ever generate unaligned bursts for instruction or data accesses, or is it only the DMA controller that issues unaligned bursts?  and in what scenario would a master disable all the strobes after starting a burst write (something like interrupting a dirty line castout?)?

thanks!
james
Parents
  • Note: This was originally posted on 27th February 2007 at http://forums.arm.com

    Hi James,

    >but, what about unaligned ending bytes? 

    Wouldn't be allowed. It is only the first transfer in a burst that is unaligned, all the remaining transfers are aligned.

    However for a write transaction you could use the WSTRB bits to signal which of the final bytes is valid, that way having the same effect as an unaligned final transfer in the burst. But you cannot do this for reads.

    > for example, a burst of 1kB starting at address 0x1 would
    > have both an unaligned starting and ending byte.  is this allowed?

    No. The final transfer would be aligned.

    > do the bytes of a burst have to be contiguous?  could the writes
    >  strobes have holes in them, for example, 0x5, 0xa, 0x9, etc.?

    The write strobes can change for each transfer of a burst, so you could see the above sequence.

    > also, i was wondering what AXI masters ARM has that makes
    > use of this feature?

    I am not aware of any current ARM masters that use the WSTRBs to indicate sparse transfers, but maybe someone else will know more about specific ARM master designs.

    Colin.
Reply
  • Note: This was originally posted on 27th February 2007 at http://forums.arm.com

    Hi James,

    >but, what about unaligned ending bytes? 

    Wouldn't be allowed. It is only the first transfer in a burst that is unaligned, all the remaining transfers are aligned.

    However for a write transaction you could use the WSTRB bits to signal which of the final bytes is valid, that way having the same effect as an unaligned final transfer in the burst. But you cannot do this for reads.

    > for example, a burst of 1kB starting at address 0x1 would
    > have both an unaligned starting and ending byte.  is this allowed?

    No. The final transfer would be aligned.

    > do the bytes of a burst have to be contiguous?  could the writes
    >  strobes have holes in them, for example, 0x5, 0xa, 0x9, etc.?

    The write strobes can change for each transfer of a burst, so you could see the above sequence.

    > also, i was wondering what AXI masters ARM has that makes
    > use of this feature?

    I am not aware of any current ARM masters that use the WSTRBs to indicate sparse transfers, but maybe someone else will know more about specific ARM master designs.

    Colin.
Children
No data