Me and my friend were brainstorming about a question concerning physical memory addressing in real mode and we couldn't wrap our heads around it. Here goes.
In real mode 16 is multiplied to the segment selector register and added to the offset register to get the 20-bit physical address. This consequently leads to the possibility of overlapping segments.
E.G. "Segment Selector -> 0040 & Offset -> 0010" = "Segment Selector -> 0030 & offset -> 0110"
It is our understanding that the segment selector is shifted by 4 bits before being added to the offset. So in order to avoid this segmentation why didn't they just shift the segment selector by 6 (multiply it by 64) before adding it to the offset. In our view this would have eliminated the prospect of memory overlapping.
Does it have to do with any hardware limitations they faced during that time or is it simply a design decision.