描述
一般描述:
为什么在X86处理器上,I/O基地址寄存器不能设置为大于256字节?
解决方案
不,在英特尔x86系统上,I/O基地址寄存器不应设置为大于256字节。
早期英特尔X86微处理器只支持64K I/O地址空间。然而,早期的IBM PCS使用了前十位(SA & lt;0~9和gt),从而限制了I/O地址的最大范围到1K。上6行(SA<10-15&GT)未被解码并被视为不关心位。这一点的最终效果是1K空间是“混叠”,或重复,64次。
这个1K的前256个字节被PC使用,留下768字节的ISA卡只解码10位。当完整的16位在稍后的机器上被解码,例如XT时,16位PC卡不能使用初始的768字节或其63个别名中的任何一个,因为任何10位的卡都将坐在所有64个空间中。唯一的解决方案是使用63个256字节别名中的一个。因此,为了防止I/O空间冲突,只有I/O空间的每个1K的第一个256字节范围是可用的。
没有回复内容