PCI 预取和非预取内存映射

转载 2016年05月31日 20:45:09

博主在学习PCI 手册时遇到这两概念,查阅http://blog.csdn.net/ykqnjust/article/details/6236389该博文时,学习了下。自己的总结如下:
1)PCI设置PCIBARx[3]来配置该模式的选择,而该数值又取决于在引导时间的本地配置寄存器的设定;
2)可预取指的是CPU 可缓存它的内容并且对它做所有类型的优化;可预取性内存是指存储器空间的可预取能力。例如如果读操作没有副作用(即如同从 RAM 中读数据一样不会破坏数据),则称存储器空间可预取。必要时可将字节写操作合并成一个双字写操作。可预取是读取一次以后不会改变读取地址和存储状态的任何改变,因为CPU 可缓存它的内容并且对它做所有类型的优化;
3)非预取的内存就象FIFO地址影射到内存地址,读取数据以后会引起FIFO指针的改变.另外还象一些中断状态I/O影射到内存,读取这个内存后,可能会清除中断标志等等,所以CPU不可缓存这个内存地址;
如果满足以下全部条件,则应该设置为可预取的内存状态:
1.多次读(写)一个长字节产生相同的数据;
2.如果主PCI丢弃读数据,将不会发生负的边际效应;
3.地址空间并没有映射为I/O;
4.允许在转发写缓冲器中进行字节合并;
PS:刚开始学习,很多不懂,知识也有很多错误,欢迎指正;

相关文章推荐

PCI bar 空间可预取与不可预取概念

PCI BAR空间分为两类:IORESOURCE_IO(非可预取)和IORESOURCE_MEM(可预取),一般来说,对于BAR为寄存器空间,都要设置为IORESOURCE_IO;对于BAR为存储器空...

内存映射文件

  • 2015-04-11 11:19
  • 5.75MB
  • 下载

linux 内存映射 PCI内存映射 DMA映射

内存映射, 就是指把外设的内存映射到用户空间访问。系统调用为:        #include        void *mmap(void *addr, size_t le...

linux编程奇淫巧计17(如何达到内存最大带宽,精简指令,预取和NT)

linux编程奇淫巧计17(如何达到内存最大带宽,精简指令,预取和NT)

c++ 内存映射代码

  • 2017-08-18 16:39
  • 712B
  • 下载

内存映射 C++实例

  • 2013-07-09 09:33
  • 139KB
  • 下载

NIO--JAVA NIO之浅谈内存映射文件原理与DirectMemory

转载自:http://www.360doc.com/content/13/0502/23/7669533_282552666.shtml  JAVA类库中的NIO包相对于IO 包来说有一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)