内存映射IO (MMIO) 简介
MMIO(Memory mapping I/O )即 内存映射I/O ,它是PCI规范的一部分, I/O设备 被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的 帧缓存 ,BIOS,PCI设备就可以使用读写内存一样的 汇编指令 完成,简化了程序设计的难度和接口的复杂性。
基本概念
MMIO(Memory mapping I/O)即内存映射I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的帧缓存,BIOS,PCI设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。I/O作为CPU和外设交流的一个渠道,主要分为两种,一种是Port I/O,一种是MMIO(Memory mapping I/O)。(来自百度百科)
简而言之,MMIO就是通过将外围设备映射到内存空间,便于CPU的访问。 I/O作为CPU和外设交流的一个渠道,主要分为两种,一种是Port I/O,一种是MMIO(Memory mapping I/O)。 前者就是我们常说的 I/O端口 ,它实际上的应该被称为 I/O地址 空间。
小概念:
32位操作系统,32bit的处理器,拥有32bit寻址能力,即可访问2^32=4G的物理地址,那么就具有4G内存的识别能力。
物理地址:并不是指物理内存的地址,而是指处理器和系统内存之间所用到的地址,可以理解为CPU最为方便访问的地址(有别于我们之前所知道的物理地址的定义:段地址*16+偏移地址),而这一个内存并不独属于物理内存,而被分成了很多部分,物理内存当然也能够占用其中的一部分。
PortIO和MMIO 的主要区别
2)前者是顺序访问。也就是说在一条I/O指令完成前,下一条指令不会执行。例如通过Port I/O对设备发起了操作,造成了设备寄存器状态变化,这个变化在下一条指令执行前生效。uncache的MMIO通过uncahce memory的特性保证顺序性。
3)使用方式不同
赞 (0)