This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

xio2001 的Auto-prefetch agent似乎没起作用?

Other Parts Discussed in Thread: XIO2001

请教:

        我们发现无论怎样修改Auto-prefetch agent中各个寄存器的值以及xio2001的MRRS,当CPU发起一次DMA 1MB 读取传输时,在xio2001 PCI侧所测量到的突发长度均无任何变化,一直为256B。

           进一步的测试发现xio2001 pci read 的突发长度仅与CPU的PCIE控制器的参数相关:

                      1.当CPU PCIE 控制器的MRRS设置为512B,发起1MB的DMA读取操作,xio2001 的pci突发读取长度变为256B.  

                      2.当CPU PCIE 控制器的MRRS设置为128B,发起1MB的DMA读取操作,xio2001 的pci突发读取长度变为128B.    

                      3.当CPU PCIE 控制器的MRRS设置为512B,发起64B的DMA读取操作,xio2001 的pci突发读取长度变为64B

           我们的疑问是:

                    1.xio2001 的Pre-Fetch Agent Request Limits Register默认为0x443,其预取长度应该为512B。当CPU仅发起64B的DMA请求时,xio2001 pci 侧所测量到的信号发现仅有64B的突发传输,为什么没有出现512B预取操作?看起来Pre-Fetch Agent似乎没有任何作用?

                    2.无论我们怎样修改xio2001 的Pre-Fetch Agent Request Limits Register,MRRS,以及CPU pcie控制器的相关寄存器,为什么最大的突发传输长度被限制在了256B,这一限制是受到什么因素的影响?