1
$\begingroup$

I am confused on byte addressable/word addressable architecture.

I have studied MIPS implementation and I came to know that when the data is retrieved from main memory, it is shifted accordingly to convert it into a byte. But if this is the case, why do we need byte addressable? We can simply fetch a word shift it and operate on its 8 bits.

Or is it that the byte addressable architecture requires multiplexers to select a byte from a 32/64 word fetched from memory?

Please help me out.

$\endgroup$
1
$\begingroup$

In simple implementations, byte addressable is more important for writes than for read. Because, with RAM, you read all 32 or 64 bits then steer data with a multiplexer. For writes, you need to be able to selectively update each part. (An alternative, in early DEC Alpha processors, was not to provide any byte wide access instructions, they eventually added these 8/16 bits accesses in later models)

In a less ideal world, several issues may need to be considered:

  • Some I/O ports may have side effects on reads, so that it is important to know whether each individual byte is read.
  • With EDC memory (error detection and correction), you cannot read or write only a byte, as error detection and correction is only efficient when handling at least 32 or 64 bits at once.
$\endgroup$

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.