不是这个意思,是执行单元在读内存的时候发生cache miss,这时候需要从内存搬数据到缓存。如果这个时间执行单元什么都不做,那就会浪费几百个时钟周期;但是如果做上下文切换,成本又太高,索性切换去执行另一个线程。
所以HT的效率跟cache miss率有关。假如一个多线程程序的平均cache miss率为30%,也就是说有30%的时间是在等待内存数据传输,那么开启超线程后,cache miss率会降到9%,性能提升就是0.91/0.7=1.3,也就是提升了30%的性能。所以cache miss率越高,提升就越大。
【 在 iMx 的大作中提到: 】
: 是不是这样,cpu一次算8个加法,但是一个线程只有4个加法要算,就给另一个线程搭便车
:
--
FROM 49.7.47.*