A Note on Ancient, Word-Aligned Architectures

On modern computers, including PCs and ARM-based machines, the assumption is that addresses are byte-aligned. Hence, if it is a 32-bit machine, and if its data in RAM is aligned to 32-bit boundaries, then the last two bits of any valid address are always ’00’. In some cases, 16-bit-word-aligned addresses are also allowed. But I think that modern PCs are not even able to fetch an odd byte-address from RAM anymore. In fact, modern RAM refreshes the cache, in longer units.

But back in the days of early mainframe computers, addresses corresponded to words, according to the architecture. Hence, in those days, the least significant bit of an address could be equal to ‘1’ as easily as ‘0’. Yet, when I have a memory from texts written in those days, my memories do not always come back to me with an upgrade.

Not only that, but old mainframes frequently used to have bus-widths that were multiples of 3 bits, instead of having multiples of 4, or powers of 2, bits. And so word-alignment of the addresses was  must. But this was also the original reason for octal notation, instead of hexadecimal notation more common today.