Current and common processing units are 8, 16, 32, 64, 128, etc bit. Why are their datapath multiple of 8 ? Is this all linked to the fact that the industry has settled with a 8-bit byte ?

The PDP-7 was 18-bit. Pentium Pro address bus was 36-bit. Many amd64 processors only implement 56-bit adress space.

Is it a bad design ? Are there any drawback to datapaths or address space that are not a power of 2 (8 being 2**3) ?


The data bus size being multiples of 8 is linked directly to the 8-bit byte.

The address bus is different: implementers provide as many bits as needed to access all the memory the processor supports. In the case of the Pentium Pro, it can access 64GB, so it must have 36 bits.

However, board makers can implement fewer bits of address than the processor supports, if they want to have a board that supports less total physical memory than the processor itself can handle.

Operating system software needs to be able to store those 36-bit addresses, and almost certainly stores that in data structures modulo 8-bits!

Application software on 64-bit processors will generally use 64-bit words to store pointers, since they want to be independent of the actual memory limits imposed by the processor, board, operating system, and available (virtual) memory on the user's system.

| improve this answer | |
  • Concretely, PAE (Physical Address Extension) which provided support for accessing >4GB on a 32-bit processor didn't expose a flat address space. Instead, to access the full 64GB required switching page tables as needed. The actual entries in the page tables were 64-bit where initially only 4 of those extra 32-bits were used to extend the 20-bit page address (+12 bit offset = 36-bits). – Derek Elkins left SE Apr 30 '17 at 8:25

Once you settle for the byte as the smallest addressable unit, there is no practical way around data busses that are a multiple of 8. Older systems used different architectures, with smaller base word sizes, probably mostly because memory was that much more expensive when they came about. 8 bit is a sweet spot that scales well.

| improve this answer | |
  • You know a byte does not always mean 8 bit? You probably wanted octet. – Deduplicator Apr 29 '17 at 21:03
  • I am one of those believing byte is, in addition to a piece bitten off from a larger lot, short for "by-eight", that is 8 bits. – Martin Maat Apr 30 '17 at 15:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.