我的项目 - RAM速度测试utilite。 所以我使用MOVSD(作为具有最大大小块DW的MOV)从一个源读取一些内存并写入另一个源。但是我得到的结果显示没有使用RAM,而是使用内存缓存,因为DDR2 SDRAM中的读/写速度是768 MByte / s。
所以我需要80x86的汇编程序中的指令或函数将大块移动到内存,溢出缓存和测试内存,而不是缓存测试。我使用Assembler,因为我不需要C / C ++做的优化,我重写不同的内存块,编译器可能认为它不需要,并破坏我的测试。这就是为什么我不使用memcpy和其他人。
答案 0 :(得分:2)
移动比最大缓存大小更大的块,并确保使用movntdq
进行写入,使用movntdqa
进行阅读。