我想在PCIe上执行64字节事务。我正在使用Intel i7第9代CPU。
通过使它成为WC区域并像这样写入数据,我能够对PCIe设备内存进行64字节的写入事务:
_mm256_store_si256(pcie_memory_address, ymm0);
_mm256_store_si256(pcie_memory_address+32, ymm1);
_mm_mfence();
我尝试使用指令读取64字节:
_mm256_loadu_si256();
[用作写操作,但此处读操作为2 * 32字节读。
有人可以帮我吗?我想一次读取64字节。
我从此链接引用了英特尔文档:https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/pcie-burst-transfer-paper.pdf
正如你们说过的,我已经将_mm256_stream_load_si256()与wc内存一起使用,我现在也能够读取64字节。这是我的用法]
__m256i a = _mm256_stream_load_si256 ((__m256i*)mem_base + 0);
__m256i b = _mm256_stream_load_si256 ((__m256i*)mem_base + 1);
_mm_mfence();
谢谢你们的帮助