假设我的处理器上连接了一个内存映射设备,从用户空间写入该设备的最快方法是什么?让我困惑的是,通常处理器使用回写缓存,因此当您更改某些内存位置时,它不必反映在物理内存中(在这种情况下映射到设备)。一些设备驱动程序大师能解释一下这是如何工作的吗?
我对使用用户级设备驱动程序来实现此目的很感兴趣。我希望写入速度快,因为在计算机上运行的应用程序不需要等待太多,只需要几个周期。
最快的方法如下。
- 使用mmap将设备地址空间映射到用户空间。来自用户空间的读取和写入然后直接进入设备
- 设置mmu以防止缓存。您也可以使用缓存刷新指令来刷新缓存