On Wed, 2014-01-22 at 11:29 -0800, Victor Kamensky wrote: > I don't see why you so attached to desire to describe > data part of memory transaction as just one of int > types. If we are talking about bunch of hypothetical > cases imagine such bus that allow transaction with > size of 6 bytes. How do you describe such data in > your ints speak? What endianity you can assign to > sequence of 6 bytes? While note that description of > such transaction as set of 6 byte values at address > $whatever makes perfect sense.
Absolutely. For example, the "real" bus out of a POWER8 core is something like 128 bytes wide though I wouldn't be surprised if it was serialized, I don't actually know the details, it's all inside the chip. The interconnect between chip is a multi-lane elastic interface whose width has nothing to do with the payload size. Same goes with PCIe. The only thing that can more/less sanely represent all of these things is a series of bytes ordered by address, with attributes such as the access size (or byte enables if that makes more sense or we want to emulate really funky stuff) and possibly other decoration that some architectures might want to have (such as caching/combining attributes etc... which *might* be useful under some circumstances). Cheers, Ben.