Endian about AHB-Lite and AHB5 Specification

Hello to all,

I have a question about AMBA3 AHB-Lite and AHB5 Specification:

In AMBA3 AHB-Lite Specification, "Table 6-2 Active byte lanes for a 32-bit big-endian data bus" is mean word-invariant big-endian or byte-invariant big-endian? Why its Active DATA byte different to Table 6-2 Active byte lanes for a 32-bit byte-invariant big-endian data bus" in AHB5 Specification.

Thanks a lot.

  • "byte invariant" endianness was only added as an option to the AMBA 5 AHB spec, so the tables in the AMBA 3 AHB-lite spec must be "word-invariant".

    As to why the big-endian table in the AMBA 5 AHB spec is different, it's simply because the AMBA 5 spec is describing how "byte-invariant" operates, which is different to the "word-invariant" scheme.

    "byte-invariant" means that the position of a transfer on a wider data bus remains the same regardless of endianness, but that the order of the bytes within that transfer do change. "word-invariant" means that the order of the bytes within a transfer remain the same regardless of endianness, but the position of a word (or narrower) transfer on a wider data bus does change.

    "byte-invariant" is believed to be better for mixed-endian data structures, because you can easily mix big and little endian data as the active byte lanes for each data item remain the same regardless of the data endianness.