if in the spec it says only block sizes of 2^2 bytes (1 word), 2^3 bytes
(2 words), 2^4 bytes (4 words), and 2^5 bytes (8 words)( are allowed in
terms of size transfer to and from memory, then why do they have
BYTE_SIZE and HALF_WORD_SIZE in the TransferUnit enum?
We would never use BYTE_SIZE and HALF_WORD_SIZE in our code right?
and if we are supposed to, then in what scenario?