为什么需要内存映射的IO?

问题描述 投票:0回答:1

为什么我们需要内存映射的IO?从我在CS课中学到的知识,MMIO摘录了控制设备的特定指令。但是,如果设备的控制寄存器(以及地址空间中每个存储单元的内容)取决于设备的品牌和型号,那么从抽象方面获得了什么?

memory operating-system hardware
1个回答
0
投票

有控制和数据路径。用于数据路径的内存映射I / O可以减少数据复制。

没有内存映射的I / O,您的应用程序write将数据复制到内核缓冲区,然后将其传输到设备中。使用内存映射的I / O,内核缓冲区将映射到应用程序地址空间,以便应用程序可以直接将其写入,从而消除了一个数据副本。

类似地,当应用程序调用read时,内核首先读取内核缓冲区,然后将数据复制到您的应用程序数据中。使用内存映射的I / O,内核可以直接读入应用程序缓冲区。

© www.soinside.com 2019 - 2024. All rights reserved.