0
$\begingroup$

The question is the following: 3. Given a hypothetical microprocessor which generates a 16-bit address (assume that the program counter and address registers are 16 bits wide) and has a 16 bit data bus. a) What is the maximum memory address space that the processor can access directly if it connected to a "16-bit memory"? b) What is the maximum memory address space that the processor can access directly if it is connected to an "8-bit memory"?

It feels like the answer to both would be 2^16, which is equivalent to 24KiB. It also feel natural to say that an 8-bit memory can tranfer 8 bits and a 16 bit memory can transfer 8 or 16 bit words.

But the problem is that the actual answer booklet says the following: In cases (a) and (b), the microprocessor will be able to access 2^16 = 64K bytes; the only difference is that with an 8-bit memory each access will transfer a byte, while with a 16-bit memory an access may transfer a byte or a 16-byte word.

So 1) 64K? Isn't the unit suppose to be KiB? I am very confused. 2) 16-byte word? Shouldn't it be a 16-bits word?

$\endgroup$
1
$\begingroup$

I think there is a confusion here between the number of memory addresses and the total size of memory that can be addressed.

The microprocessor can access $2^{16} = 65536$ memory addresses, regardless of the size of data held at each memory address.

If each memory address holds one byte ($8$ bits) of data then the total memory size that can be addressed directly is $2^{16} \text{ bytes}$, which is $2^6 \text{ KiB} = 64 \text{ KiB}$.

On the other hand, if each memory address holds two bytes ($16$ bits) then the total memory size that can be addressed directly is $2 \times 2^6 \text{ KiB} = 128 \text{ KiB}$.

It also appears your text is using KB as an abbreviation for KiB, which is a common shorthand but not strictly correct.

| cite | improve this answer | |
$\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.