在论坛提供的PCIE例程里,无论是LoadStoreTest还是MemCopyTest,均是在noncacheable, nonprefetchable和开32KB L1D cache, 256KB L2 cache情况下测试,并没在仅开L1D cache情况下测试,注释中描述PCIE space can not be accessed with L1D cache only。这一点不太理解?为什么不能在仅开L1 cache下访问PCIE空间?这一点和HYPERLINK是有本质区别的吗/
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.
在论坛提供的PCIE例程里,无论是LoadStoreTest还是MemCopyTest,均是在noncacheable, nonprefetchable和开32KB L1D cache, 256KB L2 cache情况下测试,并没在仅开L1D cache情况下测试,注释中描述PCIE space can not be accessed with L1D cache only。这一点不太理解?为什么不能在仅开L1 cache下访问PCIE空间?这一点和HYPERLINK是有本质区别的吗/
仅开L1D cache时,连续的写操作可能被合并成一个操作,比如如下两个操作:
1. 写4个字节到地址0
2.写4个字节到地址8
可能会在L1D write buffer中合并成1个16字节的写操作,其中8个字节写使能而另8个字节写使能信号无效。
这种方式的访问PCIE不支持,而HyperLink可以支持。
不开L1D cache或同时开L1+L2 cache不会出现上述情况。