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.
Very clearly answer, thank you very much.