回复 #10 zx_wing 的帖子
能否再详细说一下你的看法? 原帖由 scutan 于 2008-7-16 19:34 发表 http://linux.chinaunix.net/bbs/images/common/back.gif嗯,是的,我在1楼给出的函数汇编之后就是您说的这些指令。
那您对于这样使用之后的性能有没有研究过呢?
谢谢
使用之后性能是有一些变化,但是基本不变,变好还是变差就要看具体的情况了,:) 有很多情况下没有变化,还不如不用.
而且同样的任务算法单CPU和多CPU也有一些区别.
你自己写一些比较典型的程序测试一下就感受很具体了.
1. 简单计算,如y=x1+x2;
2. 需要读的计算,如
y=x1+x2;
z=y*x1;
z=z+x2;
2. ... 原帖由 system888net 于 2008-7-16 23:04 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
能否再详细说一下你的看法?
简单的说就是SSE2指令还是使用了cache,只是这块cache不是我们通常说的L1、L2、L3 cache而已。 原帖由 zx_wing 于 2008-7-16 23:23 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
简单的说就是SSE2指令还是使用了cache,只是这块cache不是我们通常说的L1、L2、L3 cache而已。
说得不错,赞成
除了L1,L2,L3 外,现在的 processor 还多了个 write buffer, 再来缓冲了一下 :mrgreen: :mrgreen:
write combining 就是利用了 write buffer
我看除了浮点数指令真正实现 registers 写 memory 外, 如:fst, fstp 等指令,其它貌似做不到 原帖由 zx_wing 于 2008-7-16 23:23 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
简单的说就是SSE2指令还是使用了cache,只是这块cache不是我们通常说的L1、L2、L3 cache而已。
我理解LZ所说的绕开的cache应该是指L1、L2、L3 cache.
与你的观点是相符的.
你的观点也是一个有益的补充,不同角度看问题. 谢谢楼上各位,明白了。 原帖由 scutan 于 2008-7-16 14:46 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
根据文档我是这样理解的,如果有两组数据,A, B,A是经常被用到,而B中的元素则是偶尔被用到,即使用到也只用一次。
那么如果在对A中数据进行操作的时候,需要B,则将B读取进来,但是这样的话 ...
顺便说一下scutan同学这里的正题。
这是不可能的,因为读必须经过cache,也就是说没有直接从内存读到寄存器的说法,都是先读到cache,再到寄存器。
是否绕开cache,是针对写的情况。还没有听说过绕开CPU cache导致性能提高的情况,intel手册明确强调,绕开cache将导致显著的性能下降。 原帖由 zx_wing 于 2008-7-17 00:05 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
顺便说一下scutan同学这里的正题。
这是不可能的,因为读必须经过cache,也就是说没有直接从内存读到寄存器的说法,都是先读到cache,再到寄存器。
是否绕开cache,是针对写的情况。还没有听说过绕开CPU ca ...
正确,绕开cache是针对写的情况而言的.
但不排除CPU的一些机制在未来的发展中有其它的变化.
毕竟这个主动权在AMD,INTEL等手中.
[ 本帖最后由 system888net 于 2008-7-17 00:11 编辑 ] 绕开 cache 去写,不但效率得不到保证,还会出现错误
写操作一般都要经过 cachecontroler 的过滤,,
绕开cache,等于,下次再读取memory的时候得不到保证,cachecontroler可能不认为cache里面的是脏数据 原帖由 mik 于 2008-7-17 00:13 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
绕开 cache 去写,不但效率得不到保证,还会出现错误
写操作一般都要经过 cachecontroler 的过滤,,
绕开cache,等于,下次再读取memory的时候得不到保证,cachecontroler可能不认为cache里面的是脏数据
嗯,想了一下,确实是这个道理。