这样问还不如问为什么当时会采用这种别扭的方式来产生内存的物理地址?我想可能是因为当时没有厂家会生产这种20位cpu的,不划算,又要设计又要生产测试,还未必能成熟,投入的资金太大,但是8位cpu技术相当成熟,可以用8位cpu去拼凑,而且当时内存的生产技术,空间达到了1M,为了能寻遍这1M内存空间,地址线数量必须有20根,但可惜当时的cpu的位数不满足要求,要想cpu位数达到要求,必须也是20位的cpu,可惜不能满足,3个8位cpu拼出来的话,就是24位,位数多了浪费,20位cpu的话又没有生产的,就只能选择2个8位cpu进行拼接,但是拼接出来不够怎么办?然后就开始看这20个二进制序列,想办法用其它二进制序列拼凑,可以用8位拼凑,毕竟3乘以8等于24位,也能凑出来20位,可能效率方面不允许,再试试16位拼凑,两个16位就够了,这次效率各方面过关了,就采用两个16位去拼凑出这20位,16进制可太好用了,就用16进制写下两个16位的二进制序列地址,左看右看,发现16位二进制序列是用4位16进制数表示的,那么20位就是用5位16进制数表示,问题就变成了如何把两个4位16进制数合成一个5位16进制数,发现把某个地址左移一位不就出来20位地址了么?这个方法绝对可行,但如何实现,于是地址加法器就被设计出来了,如此一来,cpu可算跨入寻址到M级别的内存空间了,既满足了技术指标,又省钱,人类发明的东西总是喜欢起个名字来显示自己的过人之处,于是移位的那个地址被命名为段地址,剩下的那个地址被命名为偏移地址,这些术语都是对cpu而言的,内存才不会用这些术语呢
采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。地址加法器采用物理地址=段地址×16+偏移地址合成物理地址