失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 内存映射IO (MMIO) 简介

内存映射IO (MMIO) 简介

时间:2019-11-02 15:00:13

相关推荐

内存映射IO (MMIO) 简介

MMIO(Memory mappingI/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 的主要区别

1)前者不占用CPU的物理地址空间,后者占有(这是对x86架构说的,一些架构,如IA64,portI/O占用物理地址空间)。2)前者是顺序访问。也就是说在一条I/O指令完成前,下一条指令不会执行。例如通过Port I/O对设备发起了操作,造成了设备寄存器状态变化,这个变化在下一条指令执行前生效。uncache的MMIO通过uncahce memory的特性保证顺序性。3)使用方式不同由于port I/O有独立的64KI/O地址空间,但CPU的地址线只有一套,所以必须区分地址属于物理地址空间还是I/O地址空间。

如果觉得《内存映射IO (MMIO) 简介》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。