0

我的项目 - RAM 速度测试实用程序。因此,我使用 MOVSD(作为具有最大块 DW 的 MOV)从一个源读取一些内存并写入另一个源。但是我得到的结果显示没有使用 RAM,而是使用了内存缓存,因为 DDR2 SDRAM 中的读/写速度为 768 MByte/s。

所以我需要80x86汇编程序中的指令或函数将大块移动到内存,溢出缓存和测试内存,而不是缓存测试。我使用 Assembler 是因为我不需要 C/C++ 所做的优化,我重写了不同的内存块,编译器可能认为它不需要,并破坏了我的测试。这就是为什么我不使用 memcpy 和其他人。

4

1 回答 1

2

移动比最大缓存大小更大的块,并确保movntdq用于写入和movntdqa读取。

于 2012-05-25T16:24:16.443 回答