一直以来感觉arm的流水线处理的很有问题 可能是我比较无知吧
但是 不同版本的arm以内流水线等级不同导致pc这里很乱 同时导致了 各个版本的cpu软件的不兼容 这样是不是不利于以后的兼容性啊 x86的话 奔腾也是可以跑486的软件啊~ 是吧
这跟流水线没关系,主要是ARM系列的体系结构设计问题,后面的并非100%兼容前面的。
x86为了兼容放弃了很多,包括令人诟病的性能和功耗问题,都是因为要向前兼容引起的。说实话x86设计的非常别扭。
用不了兼容,你要3及流水线就用ARM7,要5及流水线就用ARM9,并不是说有了ARM9,ARM7就消失了.流水线多少和产品开发没多少必然联系,我们关心的ARM的指令集合,处理速度.不管怎么样,内核都是ARM的,体系构架基本类似,已经很不错拉.当然,ARM没法和X86兼容,否则就不叫ARM了,
你可能对流水线的理解有一定误区,各个版本的cpu软件的不兼容,相同系统的产品只是部分的相关的寄存器有不相同的设置等等,也许我可能对你的意思没有太理解,可以在讨论一下!
各位版主说的很好了,软件兼容和流水线关系不是很大的。
正因为ARM的性能不同,所以会造成较大的差异设计,因为ARM成本低,变化大,所以软件兼容问题是有的。
回复 5楼 gooogleman 的帖子
其实流水线和指令集本身就没关系,指令集是CPU对外的接口,流水线是指令集本身的实现,可以说程序设计一般不需要考虑流水线问题,除非做极进的性能优化。
回复 6楼 说的不错,这个与指令执行肯定是有关系的,在循环中进行代码优化中可以考滤
回复 7楼 daicheng 的帖子
循环优化更多的是考虑减少cacheline miss
:L !
这只是物理层的应用。
流水型,只是对先关处理的分解。
指令是不会变。
你写程序,难道还要写一个无敌的流水型指令吗?
可能性的有的指令可能会很慢。
回复 9楼 sadlife1000 的帖子
编译器gcc在加上-o3优化的时候会自动避免流水线hazard,对于MIPS处理器,还会在delay slot中置入指令以提高效率