处理器对程序性能的影响

来源:互联网 发布:mac os x sierra壁纸 编辑:程序博客网 时间:2024/05/01 09:03

处理器可以进行指令级的并行,及多条指令同时进行运算,且是乱序的,即指令执行的顺序不一定与机器代码的顺序一致。主要由指令控制单元与执行单元构成,前者是对指令进行译码,并将指令传到执行单元与按顺序通过队列传到退役单元,在执行单元,指令的运算式乱序的,可同时处理大量指令,但不同数据间的数据相关限制了执行顺序,这种限制形成了关键路径。我们可以根据这个特征来提高程序的表现。
循环展开,可以在每次循环中,增加迭代的数量。
提高并行性也是提高程序性能的较好途径,它通过将运算分解位两个互不影响的运算组合从而减少主要路径上的运算。重新结合交换也是通过减少主要路径上的运算来提高程序性能,但这两个方法都要考虑到浮点运算并不支持结合律。
另外还存在一些限制因素,比如寄存器溢出,并行计算所需寄存器超出处理器所能提供的时候,会将数据保存到内存中,大大降低了程序性能。分支预测错误及其惩罚,虽然对有规律的模式与长期的趋势具有分辨能力,但对与分支不具规律时处理器使用投机猜测前往哪个分支,若猜测错误就会清楚所有已经计算的数据,重新在需求的分支上执行指令,这对处理器性能影响较大,所以最好用条件控制转移,可以提高程序表现。
存储器也有数据相关,load指令会读取store中的表项,若有与load指令相匹配的地址,则load指令需等store指令完成才能进行,这会使程序性能降低。所以要考虑到储存的数据相关

0 0
原创粉丝点击