当前位置:  技术问答>linux和unix

x86平台和Power平台比,谁更稳定?

    来源: 互联网  发布时间:2017-01-27

    本文导语:  从测试来看,x86平台和Power平台比谁更稳定?据说7500在稳定型上很不错了,有测试过的进来谈下,是不是值得购买? | PowerPC是由IBM、Motorola和Apple联合开发的高性能32位和64位RISC微处理器系列,...

从测试来看,x86平台和Power平台比谁更稳定?据说7500在稳定型上很不错了,有测试过的进来谈下,是不是值得购买?

|
PowerPC是由IBM、Motorola和Apple联合开发的高性能32位和64位RISC微处理器系列,以与垄断PC机市场的Intel微处理器和微软公司的软件相竞争。PowerPC微处理器与X86及X86-64并不兼容.

小型机如今的生存状况早已不能与十几年前同日而语,这其中所遇到的最大挑战就来自x86服务器。这是因为小型机性能再提高,去冲击大型机市场意义并不大,可下面的x86服务器的性能提升则对小型机形成了巨大的压力。

处理器的架构不同,并不是最重要的(想想看三大游戏主机都是采用Power架构的处理器而非主流的x86处理器,你能说它代表了高端应用吗?),它无所谓高端与低端,关键还在于应用性能、成本并辅助以相应的RAS需求,并最终影响到市场规模,进而左右应用开发的规模,这反过来也决定了你的生态环境是健康的循环生长,还是恶性的循环消亡。

7500的定位,已经不再是传统的多路x86服务器市场,而是高调的提出了新的市场目标——RISC Replacement,即RISC替换市场,英特尔的这一提法本身就很有意思,也很巧妙,因为传统的UNIX小型机的三大系统中,有两大系统的处理器是基于RISC(Reduced Instruction Set Computer,精简指令集计算机)架构——IBM的POWER与Sun的SPARC,而HP公司的小型机则是基于英特尔的安腾(Itanium)处理器,它采用的是EPIC(Explicitly Parallel Instruction Code,显性并行指令代码)架构,它即不同于x86处理器的CISC(Complex Instruction Set Computer,复杂指令集计算机)架构,也不同于RISC架构,所以英特尔强调RISC替换市场很明确就是指向了POWER与SPARC系统.

主要是我不喜欢IBM、Motorola和Apple这个团队,所以我倾向7500

|

乃那个不是靠CPU,而是靠GPU和其它部件的。
游戏机有专门的适用于图形处理的架构,这个与PC架构是不一样的,另外还有像屏幕滚动这类专用硬件,这个也是PC上没有的。
所以游戏机上玩游戏的效果往往要比同时代的PC强,就这道理。
你但看GPU和CPU的性能数据发现,并不是很好嘛,但游戏做出来确实强,呵呵。
比如说,现在单比硬件性能的话3代的iPod Touch采用ARMv7架构的ARM CortexA-8,并且GPU采用支持OpenGL ES2.0的PowerVR,照道理这个硬件配置比PSP强很多。但是PSP的3D效果和其它特效确实还是比iPhone/iPod Touch上的强,呵呵。
这就是通用的计算机设备和专用游戏设备的差异。

|
用我自己得经验来看,Intel的cpu跑websphere 7比ibm的power更快。

老大,你说呢?

|
推出了至强系列,CPU计算能力越来越高了,在实力上和RISC也在慢慢缩短。

|
以我们公司数据中心应用情况,很多小机做的事情,现在正在被PC服务器替代,用集群解决性能问题。

价钱可省多了

|
转点资料,希望有用。
本文介绍POWER和Intel x86平台间的字节序差异,以及在程序移植中,如何注意,评估字序问题
字节序(Endianness)
字节序是一个比较有意思的现象,简单说就是处理器按照什么存储格式处理、存储数据。
处理器架构的不同,对字节序的处理相应的存在差异,本文介绍POWER处理器和x86处理
器两种不同架构的处理器的字节处理方式。
字节序问题,是程序开发人员经常遇到的,如在程序移植中,驱动程序开发中,不同架
构处理器平台的数据迁移,等等。
字节序有两种,一种是big endian,中文通常译为大印地安序或者大尾,另一种为little
endian,译为小印地安序或者小尾。本文中,统一用其英文名称,不再翻译为中文。

Big endian 和 little endian
字节序反映了一个数据元素及其组成字节在内存中是如何存储和定位的。在一个多位数
中,高位的数字称之为更有效位或更高位(more significant),同样的,在一个多字节
的数中,某一字节的值越大,其字位就越有效,或更高,例如数字0x89ABCDEF,有四个字
节组成,分别为0x89, 0xAB, 0xCD, 0xEF, 相应的算术值为0x89000000,0xAB0000, 0xCD00
和0xEF,很明显,0x89的值最大,称之为数字0x89ABCDEF的最高位,而0xEF为最低位。数字在
内存中的存放,从低位起,有两种存放方式,分别为:
1) 先存放最低位(little endian)
2) 先存放最高位(big endian)

下图表明不同的处理器是如何在内存中,按照big endian和little endian存放32位十六进制
数的,如0x89ABCDEF:



图一. Big endian和little endian存放十六进制数的格式

0x89是最高位字节,0xEF为最低位字节,在big endian字序的系统中,最高位字节存放在内存
的最低位址,在little endian字序的系统中,最低位字节存放在内存的最低位址。对应用程序
而言,写一个字到内存中,然后再从同一个地址读取,字节序并不是太大的问题。但是,如果存
储的字在写的同时,某一个应用读取同一地址的字,应用读取到的值可能会不同,取决于处理器
采用的字节序是big endian还是little endian。

在POWER和Intel x86两种不同的处理器架构中,POWER处理器平台系统使用big endian字节序
存储数据,而x86处理器的系统使用little endian存储数据。从x86平台移植到POWER平台的应
用,很重要的一件事就是定位于字序相关的代码,并转换位big endian格式。

字节序处理
这部分内容介绍如何定位字序相关的代码,并介绍采用何种方式转换字序格式。使用的编程语
言为C,灵活、强大、高效的数据处理能力是C编程语言的一大特点,在许多系统级的应用软件
编写中,C编程语言是最优先的选择,如操作系统和设备驱动程序的开发。这一强大的功能,
同样包含构造新的类型,指针的使用、联合、结构和数据位处理等,这正是处理字节序最需要
的,举例如下:
示例一:使用指针处理数据
#include 
#include 

int main(void) {
int val;
unsigned char *ptr;

ptr = (char*) &val; /* 指针ptr指向val的内存地址*/
val = 0x89ABCDEF; /* 四字节的常量 */
printf("%X.%X.%X.%Xn", ptr[0], ptr[1], ptr[2], ptr[3]);
exit(0);
}
示例二:使用联合处理数据
#include 
#include 

union {
int val;
unsigned char c[sizeof(int)];
}u;

int main(void) {
u.val = 0x89ABCDEF; /* four bytes constant */
printf("%X.%X.%X.%Xn", u.c[0], u.c[1], u.c[2], u.c[3]);
exit(0);
}
分别在x86和POWER平台编译、链接并运行以上程序,得到如下结果:
l x86平台
EF.CD.AB.89

l POWER平台
89.AB.CD.EF
以上的测试用例,反映了比较典型的自序问题。从系统的层次来看,POWER处理器系统只支持
big endian格式的字节序,但也应当知道,在微通道和PCI侧面,却使用持little endian格
式的字节序,POWER系统中,在I/O总线和系统总线间I/O控制器起到桥梁的作用,负责格式的
转换。I/O控制器将数据流看作是字节流,单子节数据直接传输,对多字节数据则兑换字节的
高低位后再传输。
IO相关的应用,如TCP/IP协议的处理,同样会有字节序的处理,TCP/IP协议指定其数据格式
为big endian,基于x86的应用首先转换TCP/IP的数据为little endian格式。实际上,POSIX
提供相应的操作函数,这些函数是htonl(), ntohl(), htons()和ntohs()。
如何编写字节序无关的代码
如果应用在不同字节序的平台间仍可以保持其功能的一致性,可以认为应用是字节序无关的。
换句话说,应用的功能和运行平台的字节序无关,怎样实现这些应用代码呢?给出如下的建议:

1) 使用宏和条件编译
应用代码的编写中,充分使用宏和条件编译,可以明显提高应用的可以执行。

示例一:使用条件编译界定字节序
#include 

#define BIG_ENDIAN 0
#define LITTLE_ENDIAN 1

#define BYTE_ORDER BIG_ENDIAN
union {
int val;
unsigned char c[sizeof(int)];
}u;

int main(void) {
u.val = 0x89ABCDEF;
#if (BYTE_ORDER == BIG_ENDIAN)
printf("%X.%X.%X.%Xn", u.c[0], u.c[1], u.c[2], u.c[3]);
#else /*! BYTE_ORDER == BIG_ENDIAN*/
printf("%X.%X.%X.%Xn", u.c[3], u.c[2], u.c[1], u.c[0]);
#endif /*BYTE_ORDER == BIG_ENDIAN*/
exit(0);
}

示例二:使用宏提取四字节的整形数的16-23位字节
#define INTB16TO23(a) ((a>>16) & 0xff)

int main(void) {
int a=0x11121314;
int b;

b = INTB16TO23(a); // b 的值为 0x12
}

2) 使用编译选项
使用编译器提供的相应的编译选项,如BYTE_ORDER,可以更方便的解决字节序的问题,而不用
修改程序代码,只需要修改makefile即可,已使用big endian字节序为例,增加-DBYTE_ORDER=BIG_ENDIAN,
重新在新的平台编译链接应用即可。

3) 测试内存的分布
假定1为little endian字节序,0为big endian字节序。在以下的示例中,首先测试多字节
整型数的第一个字节,如果为1,则按照little endian的格式处理数据,如为0,则按照big endian
的格式处理数据。采用这种方式的缺点是每一次的数据操作到需要检测,对应用而言,增加
了额外的操作,相应的会造成部分性能的损失。

示例:运行中判断字节序的类型
#include 
#include 

const int endian = 1;
#define is_bigendian() ( (*(char*)&endian) == 0 )
union {
int val;
unsigned char c[sizeof(int)];
}u;

int main(void) {
u.val = 0x89ABCDEF;
if (is_bigendian()) {
printf("%X.%X.%X.%Xn", u.c[0], u.c[1], u.c[2], u.c[3]);
}
else {
printf("%X.%X.%X.%Xn", u.c[3], u.c[2], u.c[1], u.c[0]);
}
exit(0);
}

|
先说说不同os平台上的问题。

去年5月份公司命令各个局点必须将jdk升级到6,于是拉着客户将生产系统几十个机器从was 6.0.2.11 32bit for ppc升级到was 7.0.0.3 64bit(当时比较新的pack,没有bug就不打新的pack了,千万不能没事升个级玩,估计三年之内不会再升级was了。),在两种平台上同时跑,一个是p595,8c/30G左右,aix5.3.0.8,一个是intel的至强pc刀片,双核2C/16G,suse 10sp2,几个月内出了n多问题,现在总算稳定了,不再折腾了。

|
Power平台,我家里有一个应用——XBOX360,速度很快啊,比我的x86电脑玩游戏爽的不是一点两点啊

|
性能上大家也看到这几年x86确实很抢眼,性能从核心上都有很大的提高,工业标准兼容性好,并且价格便宜,可管理性、技术先进性这个目前还是RISC占先。说到稳定性上,这里面还有人为因素和管理因素,至于采购最终的决定权,还有上司的行政因素

|
服务器讲究的是RAS! 
pc server 主要是在性能上得到突破,现在很接近小机,但其它方面还有不少距离;
反之, 预算有限就买pc server, 其tpcc看起来很漂亮;

|
RAS全称是Reliability, Availability and Serviceability,是电脑硬体工程上的术语,最初来自IBM公司为其大型主机所做的宣传广告,强调大型主机系统的坚韧强固:稳定性(或称:坚稳性)、可用性(或称:可靠性)、可服务性,如今这个概念已广为人知,并被缩写、简称为RAS。

|
个人觉得影响这个的原因很多,最起码管理员水平如何、运行环境、用途等等都会影响的。这就好比拿一匹黑色的千里马和一匹白色的千里马来做比较。放在庸夫手里他只是一匹马,放在伯乐手里它就能重复能发挥它千里马的作用

|
稳定性不仅仅取决于处理器,一个计算机系统(比如一台服务器)由众多的硬件组成,上面还运行着复杂的软件,每个部件都影响稳定性。而且稳定性与性能无关,不是说性能好稳定性就好,很多军用设备,在满足需要的前提下,优先使用低频的处理器。

如果仅仅比较处理器的话,肯定PowerPC要比x86稳定,毕竟运行在众多军用设备中(而且已经登陆火星,就我所知,x86处理器还没有到达过地球大气层之外)。

|
还在说Intel/AMD 2000年以后发布得CPU型号是CISC,那太太OUT!!
Intel从P6开始,AMD 从K7开始已经在x86  CPU 内做了x86 指令集到内部u-op的翻译。u-op是RISC类的。
从2002年半导体工艺遇到工作频率物理瓶颈后,AMD发明,Intel,IBM仿照,都改为在一个CPU核里做多个ALU 执行单元。同时在一个CPU 内制作更多的处理器核。
因此Intel/AMD/IBM 等CPU在现在是没有本质技术区别的。性能差异来自工艺和L2/L3 缓存。IBM 在Power CPU上经常放入巨大的L2/L3 缓存,同时利用特殊生产工艺,不惜成品率低。导致的结果是性能好一点,但是成本比其他CPU高很多,Power现在是有钱的小众用户,宰了没商量。
关于硬件稳定性,请参考Google 基础设施总架构师最近发表的文章ppt,当前硬件最不稳定的是硬盘,旋转机械本质限制,然后是电源,因为高压问题,他们的故障率比其他高几个数量级。因此,那个厂商的CPU,可靠性影响是不用考虑了。

各位好好参考参考Google 基础设施总架构师最近发表的文章ppt,去搞清楚现代计算机性能的主要瓶颈和可靠性统计数据。

|
Power和Power PC两种CPU,请搞搞清楚区别。当年Power PC发展的时候有个主要伙伴是Motolora,它可是美国军方和政府CPU的首要供应商。Power PC本来就有嵌入式的变种,因此,在航空航天上应用是基于Motolora的市场关系。
军方及航空航天应用的CPU类型很多,几乎已知的CPU类型都有,如MIPS,PowerPC,Intel 960,SPARC,例如Intel 960 CPU就用于F22 主计算机上。同时,注意Intel 960 是Intel 90年代研发的唯一一个RISC 类CPU,完全不同于x86 CPU。

|
楼上有说:稳定性是个系统工程。
因此,最新的研究是把全系统稳定性,分为硬件、软件两方面来统计分析的。

硬件方面,基于Google的论文,已经得出结论。稳定性最差的是硬盘和电源,比其他部件差1-2个数量级。
软件方面,基于源代码分析,有过几篇文章,总的来说,每千行代码缺陷率,开源软件要好些。


|
   小型机相对X86,不管是硬件还是软件上都比较封闭,其使用的处理器和操作系统一般是产商独有的,而X86是开放的处理器开放服务器,其硬件基本上是通用而统一的,操作系统也是通用的。
但勿忧置疑,短时间内,小型机不管是在性能上还是稳定上是X86平台无法替代的,但我们也看到了以Intel为代表的至强X86处理器平台在逐步缩小与小型机的距离。
随着云计算向众深方向发展,云计算需求的不断加大,建设企业级数据中心的急切需求,对虚拟化技术、多核多线程、并行处理等技术提高了更高的要求。
谁能在云计算企业级应用中获得较大份的蛋糕,谁就是胜者。
但短期来看,以IBM为代表的Power7似乎不管在虚拟化技术、多线程、并行技术这块占有较大优势。
综上:两者在短期时间内,还是会分而治之,各自在自己的领域发挥作用。但从长远上来看,小型机被X86平台服务器所替代似乎是大势所趋。  

|


其实是一回事,没有多少区别(比intel x86和AMD x86之间的区别还小)。当年IBM就是把Power处理器稍加修改,搞出了PowerPC。之所以加个“PC”后缀,是市场定位的需要,Power是面向服务器和工作站的高端产品,而PowerPC是面向桌面、嵌入式市场的低端产品。就象intel把面向服务器和工作站的处理器安个“xeon”的名字一样,只是市场推广名,不代表内部架构有多大的区别。

另外,i960是intel和西门子在80年代中期合作的产物,不是“90年代研发的”。用在F-22上的是i960mx,专门按军标设计的一种型号,不是普通的i960。而且这也是很早以前的事了,只在最初批次的F-22上配备,从2004年升级之后,所有F-22上的35个25MHz的i960mx处理板都被3个133Mhz的PowerPC RAD 750处理板替代,后者是F-22的电子系统分包商BAE systems获得授权之后重新设计和制造的(和原型PowerPC 750处理器引脚、电气特性、指令集兼容,但内部结构和生产工艺是新的),在NASA的火星探测器(勇气号、机遇号等等)也使用了BAE提供的PowerPC RAD 750处理板,基本部件和结构与F-22上的是一样的,只是大小和布局不同而已。
现在,F-22(还有F-35,采用FreeScale生产的500Mhz的PowerPC)上的通用处理器都是采用PPC族产品,没有intel产品,不论x86,还是i860、i960(这两者早都停产了),Itanium也没有。

|
正好不久前有这样的一个项目需要选择是PC服务器还是IBM的小型机,其中各项问题都考虑了。
相对而言,PC服务器性能提升越来越快,相应的各种软件应用也是更新很快包括操作系统。而这一点就是RISC赶不上的,但是这也正保证了RISC设备的稳定性能,用的人少,也从一个侧面保证了一点安全性。在高可靠高安全性的应用方面,RISC短时间内难以备替代,比如运营商的计费平台,银行的帐务,证券交易交割系统等这一类绝对不能出现半点差错的地方,不管怎么样,决策者也好,设计者也好都还不敢轻易使用x86系统。当然我们也看到很多关键部位在转向 x86,但是都有一个前提,就是设计者会问一下自己“这里允许出错吗?也许2年出一次问题,最多也不过是中断以下服务。”仔细盘点一下就是与钱直接有关的还都坚守RISC,其他地方都已经或者即将转向x86了。
不过现在X86正在这方面努力,我们在x86服务器上看到了越来越多的冗余设计,电源、硬盘自然不必说,内存也有ECC,现在还有内存镜像,可靠性得到了进一步提升。x86服务器在硬件设计上已经赶上RISC机器了。 

|
银行用RISC不是为了可靠,而是因为被业务绑架了,最简单的一件事情:你想想银行那些网管都是用RISC的,如果换X86,业务不熟,很有可能会出问题。
跟钱有关的系统,对可靠性要求最高的不是银行业务,而是网络游戏,网游系统根本就没有RISC系统的“计划内停机”的说法,系统不下线就不允许停机。
大型银行、证券、电信企业,核心业务都有用X86跑的,这个对技术水平要求极高。 

|
不能简单地说 ,选择X8 6或者 RISC !主要看应用的场合 !如果是中小企业 , 应用要求不是很高 ,极端情况下允许短时间的中断的 , 一般就选择X86就能满足使用要求 ,且性价比很高 ,整个生命期总的费用也大致比较低 !如果是银行证券保险通讯等关键应用 ,其行业特征不允许拓机和中断 ,实时性为最高级 ,一定首选RISC , 当然这些行业的预算一般都足够 ,整个生命期的费用要比X86高很多 ,这个是必须的也是值得的 ,换来的是高得多的可靠性和稳定性 !

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 云计算时代,现场见证IBM Power虚拟机对决X86物理机
  • Solaris 9是否有x86版本?免费吗?
  • S8 for X86怎么安装呀?
  • solaris8 for x86的支持那些网卡?谢了!
  • X86下使用C、C++
  • 有没有AIX for x86虚拟机
  • X86引导启动程序 我的OS第一帖
  • 我可以在机器上同时装win98,2000,linux,freeBSD,solaris x86吗?
  • solaris9 x86如何安装?必须要从软盘启动吗?
  • 小声的问一句,有没有能装在x86上的unix操作系统
  • 极小的x86操作系统 KolibriOS
  • Solaris for X86 和Solaris for Sparc主要区别在哪?
  • x86(大雪), 谢谢你指点wget, 请进!
  • 关于mac os x86的问题,如何进入图形界面。
  • solaris8 for x86(intel)那里有的下
  • 请问哪有solaris x86 下载
  • 我想装Solaris for X86 能用软盘引导吗?
  • solaris 8 for x86能用 u盘哇?
  • solarsi10(x86)中如何安装Sundance ST201网卡?
  • i386的和x86的盘还有什么区别么?
  • 求centos 5.2 x86 下有效下载地址


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3