I am a bit lost calculating how much segments will the system handle in a memory segmented system (without virtual memory). The problem says that the system has a word length of 32 bits and the address are 6 hexadecimal numbers, 3 of them are the segment identifier. We have a segment size of 4KiB
I tought this:
If the address are of 24 bits wide, we could address $2^{24}$ bytes of data and our segment size is $2^{12}$ bytes. So divide them and we have the maximum number of segments our system can handle.
But I was told this isn't the way to solve this problem. Here is the way it's supposedly correct:
We have $2^{24}$ address in our system, with a length of 32 bits so we have $2 ^ {29}$ bits of addressable memory, $2 ^{16}$ KiB of addressable memory. So dividing between our segment size we have $2^{14}$ segments.
But I don't find this answer correct, because if it says that the 3 hex digits identifies the segment we have 12 bits to identify every segment, with a maximum of $2^{12}$ segments, so I don't know how the second solution manage to add 4 times more segments than my solution.
So what answer is correct?
Thanks