让CPU更高效 扩展指令集那点事
更新时间:2020-03-05 10:59:00 浏览次数:566+次在CPU的一代一代“进化”中,除了频率、缓存乃至核心结构的变化外,有一个不太起眼的升级经常会被小伙伴们忽略,就是“扩展指令集”。指令集很多小伙伴大概耳熟,它就是指挥CPU工作的指令。不过扩展指令集又是什么?对我们使用有什么影响呢?
用一个简单的例子来说,如果说指令集是让CPU理解“9×9就是9个9连加”这种基本常识并进行计算的话,扩展指令集就可以看做是乘法口诀表、开方查询表一类的东西,可以大幅提升效率。比如SSE、AVX指令集就可以提升浮点运算能力,进而提升游戏速度。
另外还有一些指令集是开启新功能必不可少的,比如i7-3770的性能不比九代的i3差,但因为缺少FMA3指令集,在玩《怪物猎人世界》、CEMU模拟器时就会出问题。现在很多小伙伴用的虚拟机要想运行更流畅,也需要CPU有指令集和专用单元支持才行。
那让CPU尽量支持多多的指令集,覆盖的能力越全面越好呗。这可不行,因为这些指令都需要设置一些专门的编解码甚至处理电路,会加大芯片的复杂度。要保持芯片的体型,只能挑一些常用或者通用性强的指令。就像我们乘法口诀表背到9×9就好,更大的数字计算用口诀结合计算公式也很方便。
挑选CPU的时候,咱们也不必追求指令集更多更全面,比如现在有些CPU支持面向商用的博锐(vPro)指令集,这个真的是在大型专业商用软件中才会用,家用、娱乐、游戏电脑选这些CPU绝对是浪费钱。
可是分清各种指令集真的很难,更不要说这些指令集居然还有版本的不同,比如SSE 4.1和4.2,怎么知道其中哪些需要哪些不需要呢?其实也很简单,就和挑选显卡一样,在性能、价格类似的情况下,尽量选更新的CPU就好,这样即使是入门级CPU也可以保证大家用上现在乃至未来一段时间的主流指令集了。