一个设备与其他设备通讯的接口一般成为Port。CPU访问设备时也是通过这个端口进行访问控制的。CPU对于设备端口和内存有两种不同的编址方式:独立编址和统一编址。
独立编址将地址空间分为两种设备的端口地址空间和内存地址空间,CPU通过一个线来区分到底是设备的端口地址还是内存地址。比如Intel处理器就是采用独立编址。对于端口地址空间,需要使用专用的访问指令才能访问,对于内存地址空间可以通过mov等命令进行访问。
同一编址只有一个地址空间,CPU的地址空间不过全为内存使用,需要为端口保留一部分,但是这样不需要使用专有的指令对端口进行访问,只需要使用mov等指令对端口和内存地址进行同一访问。
对于独立编址来说,一个设备(比如显卡)可能即具有内存(存放数据)又具有IO port(控制设备)。将IO port映射到端口地址空间,内存映射到内存地址空间。(linux中分别可以在/proc/ioport和 /proc/iomem查看当前端口地址空间和内存地址空间的占用情况)。
阅读(1487) | 评论(0) | 转发(0) |