微处理器对I/O接口寻址的方式可分为两大类,一种是内存映射式寻址( Memory Mapped I/O),另一种是输入输出映射式寻址(I/O Mapped I/O)。 内存映射式寻址采用了I/O接口与存储器统一编址的方式,这种方式是将I/O接口看成内存区域中的一个或几个单元,占用内存区域中的一些地址。这种方式的优点是,不需专门的I/O指令,而采用访问内存的指令来访问I/O接口。一般来说,访问内存的指令功能是比较强的,因而这种方法可以像访问内存那样,直接对I/O接口的信息进行处理。这种方式的缺点是地址的利用率较低。I/O接口占用内存的一部分地址,使得内存可寻址的区域减少。由于存储器需占用的地址由该芯片的容量决定,且其占用的地址必须是连续的,因此当I/O接口占用一部分地址时,与其相连的一些地址不能为存储器使用。在微控制器89C51中就采用了这种方法,其数据存储器的寻址空间为64K字节,如需扩展部分I/O接口,将减少存储器扩展的寻址空间,如在系统中采用8K的存储器芯片,则即使扩展一个地址的I/O接口也会占用8K的地址。 输入输出映射式编址的方法,又称为I/O接口单独编址方式,它将I/O接口地址区域与内存地址区域单独编排。在实际使用时将微处理器提供的地址信号作为存储器寻址的地址信号,同时此地址信号或其中的一部分还可用作I/O接口的地址信号。在指令系统中有专门的访问 I/O接口的指令。在执行存储器访问指令和I/O访问指令时,微处理器发出不同的控制信号(即存储器选中或I/O接口选中信号),此控制信号和地址信号相结合来区分当前的操作是存储器访问还是I/O访问。单独编址方式的优点是I/O接口不占用内存区域的地址,其缺点是访问I/O接口的指令功能不强,一般只有传送类指令,而没有运算类指令。在微处理器Z80、INTEL 8086/8088中采用了这种方式,这两种微处理器的指令系统中都具有专门的输入输出指令,而控制信号则有存储器选中和I/O接口选中信号。 |