2008年8月2日星期六

powerpc和x86的学习心得(1)

最近又开始学习x86了,以前大学学过之后就一直没有用到,反而是来华为之后才接触的powerpc使用的很多,其实x86都忘的差不多了,从理论上powerpc体系结构更先进,但是商业运作上面输给x86阵营,由于x86的cpu随处可见,用的十分广泛,自己搞linux又绕不开它,所以决定好好学学,这样对比来学,对powerpc的理解也会加深一些。
今天开始总结一下学习心得:
powerpc体系定义了很多通用寄存器(典型的32个),但是具体怎么使用这些寄存器,powerpc并没有规定,而是把这些使用的方法全部推给了编译器来自己来约定,由编译器来定义abi,比如r1做栈指针,r3-r10传参数等等;这样的好处就是灵活,缺点是如果编译器的abi不同,那么编译出来的二进制程序无法相互兼容。

对比来看,x86把自己的寄存器假设了几个应用场景,这个干啥的,那个干啥用,都差不多给你规定好了,你只管用就好了,不存在abi的问题,所以优点是傻瓜式的cpu,简单方便,统一的唯一的abi;缺点是:不灵活,不能自己定制。

我认为这是这两款cpu之间除了risc和cisc的区别以外最大的区别了。

没有评论: