如题所述
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-08-10
win7和win8是否支持推土机?推土机一个模块中的两个线程需要不断的切换以此来充分利用指令提取和解码以及缓存带宽等资源,因为这些资源是由两个线程共享的。合理的切换能够明显提高资源的利用率。不合理的切换将会使线程执行卡壳,即产生冲突,性能会大幅下降。虽然不能保证100%不会产生冲突,但是应该尽量避免冲突。Intel的超线程中一个核心上的两个线程也要不断的切换。当然超线程和推土机的集群化多线程(多簇化多线程)还是有明显差别的。推土机的执行单元是线程独享的,而Intel的SMT是线程共享的。至于许多人说的浮点单元是共享的,其实推土机一个模块里面是2个128位浮点单元,或者说是1个256位浮点单元。而羿龙2代一个核心里面只有1个128位浮点单元。推土机的这种共享方式是为了提高单线程浮点性能,前提是程序要包含AVX指令集。也许会有人说这种线程切换和软件没关系,那你就大错特错了。在Linux内核配置中就有超线程选项,选上了它操作系统才能支持超线程的调度方式。如果不选它,超线程CPU性能就达不到应有的水平。同样推土机的线程调度也需要操作系统的支持。如果是线程数量少但是负荷高,就应该把线程分配到不同的模块中去从而提高性能。至于Windows是否支持推土机,就只有微软自己才知道了。虽然微软发布了补丁,但是我们又怎么知道补丁到底是在补什么呢?不排除Intel和微软联盟把AMD摆了一道。除此之外,软件本身还可以对调度进行优化。AMD官方发布的推土机软件优化指南中第八章专门讲了这个内容。虽然FX-8150和3770K一样都是8线程,但是8150不论是整数性能还是浮点性能都要更强些。这是因为3770K里面的执行单元是由2个线程共享的,而8150的执行单元是由1个线程独享的。粗略算算,取一条指令最多花千分之一个周期,解码一条指令花四分之一个周期,而执行一条指令要1个或多个周期。如此一来,大部分时间都在执行上。如果执行部分由两个线程共享,势必会有很大的瓶颈。