我试图了解PCI Express如何工作,所以我可以编写一个Windows驱动程序,可以读取和写入没有板载内存的自定义PCI Express设备.
据我所知,PCIE配置空间中的基地址寄存器(BAR)保存了PCI Express应响应/允许写入的存储器地址.(这是正确的理解吗?)
我的问题如下:
我很感激你的时间.
最好的祝福,
假设CPU想要从PCI Express设备进行DMA读传输.与PCI Express设备的通信由事务层分组(TLP)提供.从理论上讲,TLP的最大有效载荷大小为1024双字.那么,当CPU向4兆字节大小的PCI Express设备发出DMA读取命令时,DMA控制器如何动作?
我知道PCI配置空间中的基地址寄存器(BAR)定义了PCI地址的起始位置,但该区域的大小是如何建立的?
当然这是硬件的属性,因为它只知道它可以处理的地址空间有多远.但是,我似乎无法在PCI配置结构中看到BAR大小字段.