Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching i3或i7处理器中的clflush()_Caching_Assembly_X86 - Fatal编程技术网

Caching i3或i7处理器中的clflush()

Caching i3或i7处理器中的clflush(),caching,assembly,x86,Caching,Assembly,X86,是否可以使用i3/i7处理器中的clflush指令/函数刷新缓存并检查缓存是否为空??如果是-请建议正确的使用格式(在C中直接使用或在C中使用内联程序集) 我被告知clflush在Core2Duo处理器之外还能正常工作。 我是在从这个链接(下面)重定向后提出这个问题的-------> 二( 我的结果与预期不符。这就是我得到这些结果的原因: 吃了83分 吃了66分 同花顺:吃了52分 吃了45分 ------------------->刷新缓存后,cpu如何减少滴答声?(参考我得到的结果的第2行和

是否可以使用i3/i7处理器中的clflush指令/函数刷新缓存并检查缓存是否为空??如果是-请建议正确的使用格式(在C中直接使用或在C中使用内联程序集)

我被告知clflush在Core2Duo处理器之外还能正常工作。 我是在从这个链接(下面)重定向后提出这个问题的------->

二(

我的结果与预期不符。这就是我得到这些结果的原因:

吃了83分

吃了66分

同花顺:吃了52分

吃了45分


------------------->刷新缓存后,cpu如何减少滴答声?(参考我得到的结果的第2行和第3行)

rdtsc
不是串行化指令,因此测量不准确。作为一种快速攻击,您可以插入一个
cpuid
调用,同时注意更新clobber列表:

asm volatile ("cpuid; rdtsc" : "=a" (a), "=d" (d) : : "ebx", "ecx");

至少对我来说,这改变了输出以符合预期。

rdtsc
不是序列化指令,因此测量不准确。作为一种快速攻击,您可以插入一个
cpuid
调用,同时注意更新clobber列表:

asm volatile ("cpuid; rdtsc" : "=a" (a), "=d" (d) : : "ebx", "ecx");

至少对我来说,这改变了输出以符合预期。

抱歉,我想重新表述最后一行-刷新缓存后cpu如何能减少滴答声???
clflush
不刷新缓存,它只刷新单个缓存线。要完全刷新缓存,您需要
wbinvd
,但请参见抱歉,我想重新表述最后一行-刷新缓存后cpu如何能减少滴答声???
clflush
不刷新缓存,它只刷新单个缓存行。要完全刷新缓存,需要
wbinvd
,但请参见