I know that in real mode addressing if I want to calculate physical address when I am given the segment+offset I need to use the equation: physical address=segment*16+offset
What I don't got is how there are no colliding in this form. I can simply take address 0x1000:0x0010 that will be translated into pyhsical address 0x10010 and also take pyhsical address 0x1001:0x0000 that will be translated into the same pyhsical address 010010.
Wouldn't it be more efficient to just save 4 bits for segment and 16 bits for offset and then the physical address will be segment<<16 + offset? (and then there is one to one mapping between segment+offset and physical address)