On the fascinating topic of bits, bytes, octets, words and smallest addressable units

I try, below, to condense the various (and often contradicting) bits (pun not intended) of information found in various sources and present my own understanding on this subject.

It turns out the the only two precisely defined terms whose meaning is context-invariant are "bit" and "octet" so I'll start with these:

bit
a single binary digit
octet
eight binary digits

"Word" is usually defined as "the natural size with which a processor is handling data (the register size)". Wikipedia defines it very similarly as "the natural unit of data used by a particular processor design". The most common word sizes encountered today are 8, 16, 32 and 64 bits, but other sizes are possible. For examples, there were a few 36 bit machines, or even 12 bit machines. In other words, "word" is the most common chunk of bits with which a processor can do processing (like addition and subtraction) at a time. That definition is a bit fuzzy, as some processor might have different word sizes for different tasks (integer vs. floating point arithmetic for example). The word size is what the majority of operations work with (source). By that definition, the word size of a CPU is also the size of the data path of the ALU (NB: not to be confused with the memory data bus).

"Pointer size" TBP

"Smallest addressable unit" TBP

"Data bus size" TBP

"Cache line" TBP