用户
 找回密码
 立即注册
搜索

久多:PS3模拟XB360都没问题

[复制链接]
发表于 2006-11-30 11:01:00
原帖由 Edison 于 2006-11-29 21:38 发表
Itanium有两种方式来运行x86指令。

一种是直接运行x86。Itanium内建了x86解码器,可以post-RISC的方式把x86指令转换成Itanium的内部指令,这样的方式和Pentium Pro以后的x86处理器类似,但是这个解码器的设计 ...
呵呵,如果Itanium内建了x86解码器,其效能只能达到同频P4架构的Xeon(我没说错吧?)的性能, 怎能说这个效率高? 1.5G的Itanium怎么也要达到2.6G P4的效能才对得起他那么多晶体管吧?

更何况CELL甚至没有这样的硬件部件. 软模拟从理论上可行,但我不认为它能达到什么好的效率. 更何况有序体系的东西,代码是在编译器仔细整理后才能较好地运行的, 实时翻译并处理X86这类天然处于"无序"状态的指令,我认为结果肯定是灾难性的. 如果不采用实时翻译运行的方式,那就要提前实时分析,优化, 整理X86这类无序体系的代码, 并且为了适应有序处理器的时序特性,同步缓存等等东西,甚至还要填充一些无用的处理"气泡",结果同样是灾难性的.

以上纯个人观点.
使用道具 举报 回复 支持 反对
发表于 2006-11-30 11:36:00
其实CELL只不过是个统称,实际产品是可以按需要重配SPE和PPE的比例,IBM出的那个CELL刀片服务器,SPE和PPE的比例明显和PS3上的不同,加上CELL的有一个设计是,通过网络进行运算负载平衡,也就是说,只要家电里都用上不同SPE和PPE的比例的CELL并连成局域网,那什么类型的程序都能很好运行.
不过CELL太前位了,至少现在家电上都不需要用到CELL.
个人推荐还是XB,不过XB也太大啦吧,能做到好像PS TWO的那样小就好咯.
WII是在家里锻炼身体的好机.......
使用道具 举报 回复 支持 反对
发表于 2006-11-30 11:39:00
我前面说过了,Itanium 2在采用IA32EL的时候,是完全没有使用x86解码器的,直接在Windows for Itanium上运行,是完全基于软件的实时二进制代码转换和重编译,理论上不仅可以执行x86还可以执行其他的ISA。

Itanium@800MHz(Merced)运行IA64本机编译的SPECINT95是45、SPECFP95是70,如果在windows for IA32上跑x86代码编译的CPU95,性能也就是Pentium II 500MHz的水准,而Pentium II 450MHz的SPECint95是17.2、SPECfp95是12.9。简单而言,如果采用硬件方式执行x86代码,Merced的性能只能达到本机代码性能的1/3到1/5。

Itanium 2以硬件方式跑x86代码的SPECINT200/SPECFP是306/170,相当于Pentium III700/450MHz的样子,采用IA32EL在Windows for IA64上跑这些x86编译的代码,SPECint_base2000/SPECfp_base2000分别是569/530。

另外,我不清楚你说的什么x86=天生无序是指什么,in-order和out-of-order是属于微架构体系或者编译器优化的内容,而x86是指ISA,两者并没有什么冲突,Pentium以及更早以前的x86处理器都是in-order的微体系架构。

如果IBM今后认为OoO对Cell/XCPU是有必要的话,完全可以在Cell/XCPU上采用OoO,而无需更改现有的CELL/XBOX 360代码都能直接运行。

Itanium II的晶体管数量庞大主要来自于cache,这是因为VLIW指令包的内存利用率较低,而实际的Itanium CPU内核占用的晶体管数量要低于Pentium 4的CPU内核,我认为Itanium 2的x86性能达到同频P4或者本机代码性能的1/2以上已经是相当不错可以接受的,你看不到任何“模拟器”能做到这样的水平。
使用道具 举报 回复 支持 反对
发表于 2006-11-30 12:03:00
原帖由 Edison 于 2006-11-30 11:39 发表
我前面说过了,Itanium 2在采用IA32EL的时候,是完全没有使用x86解码器的,直接在Windows for Itanium上运行,是完全基于软件的实时二进制代码转换和重编译,理论上不仅可以执行x86还可以执行其他的ISA。

It ...
呵呵, 我只是为了叙说的方便.

无论是在ISA层上还是在微体系结构层,虽然处理的阶段不同,但是有些东西的本质是无论你在哪个层都去不掉的. 就像真相关性一样,逻辑结构上的一个真相关无论你扒到哪一层,它都必然要被真相关束缚. ISA层和微体系结构层本质上是映射的,没有本质的区别.

CELL的程序员虽然也拿C++这样的高级语言写程序,但他不可能做到像X86程序员那样可以对微体系结构层一无所知,任意处理代码,编译器在处理时也采取截然不同的方案, 如果拿for CELL的模拟器直接运行X86编译好的程序, 对于CELL微体系结构层来讲, 其本质的就是我所说的"天然无序",要想运行的好,你还要重新组织.这是要花费相当的时间成本的.
使用道具 举报 回复 支持 反对
发表于 2006-11-30 12:22:00
这样吧,你把x86=天然无序的资料给大家看看好了,你把dependency这样的数据处理关系搭上了ISA/微体系结构,我实在是看不明白你说的什么。
使用道具 举报 回复 支持 反对
发表于 2006-11-30 12:25:00
路过参观,希望可以拣到XO。。。
使用道具 举报 回复 支持 反对
发表于 2006-11-30 12:33:00
opengl模拟directx应该没多大问题

只要api兼容即可,

cpu本身就大部分指令兼容

不过,360硬件资料应该是保密的,我估计难以被在ps3上实现
使用道具 举报 回复 支持 反对
发表于 2006-11-30 12:38:00
原帖由 Edison 于 2006-11-30 12:22 发表
这样吧,你把x86=天然无序的资料给大家看看好了,你把dependency这样的数据处理关系搭上了ISA/微体系结构,我实在是看不明白你说的什么。
呵呵,资料也是人写的,我很少引用资料,我也不善于从细节上抠问题,我确实也没办法说的再清楚了,如果展开来叙说,我一方面还要查很多细节的资料,还要重新温顾相关知识,又要做数学模型,逻辑模型.

可能怪我没说清楚,我不是说x86指令=天然无序,而是说在X86体系下的编译好的那些程序. 你可以这样理解: 同样一段C++代码,for CELL编译出来的和for X86编译出来绝对是两样的.for CELL的编译器还要额外做很多事情. 你拿for X86编译出来的东西直接来个指令翻译就运行在CELL上是不是灾难?其实质就是少了本来该for CELL的编译器做的优化环节,那对CELL来讲不是"天然无序"是什么?

CELL做模拟器不同于无序体系CPU最大的原因在于很多事情是编译器做了,运行无序体系下编译好的代码,要想效能上来,还需要模拟一个类似于指令窗口的东西,但无论摸不模拟,速度都是不可接受的.

我语言表达能力欠佳,人也懒,不多说了,我还是保留我的意见. 我们慢慢等CELL做模拟器的结果吧.
使用道具 举报 回复 支持 反对
发表于 2006-11-30 13:06:00
原帖由 Edison 于 2006-11-30 12:22 发表
这样吧,你把x86=天然无序的资料给大家看看好了,你把dependency这样的数据处理关系搭上了ISA/微体系结构,我实在是看不明白你说的什么。
我猜他说的“天然无序”大概是说:因为现阶段X86处理器都是标配无序技术,所以相关编译器都把代码编成“无序”状态,流到有序架构那里,一堆“无序”指令就让“有序”的他们很头疼了,是不是这个意思?猜错了就当笑话吧。
使用道具 举报 回复 支持 反对
发表于 2006-11-30 13:19:00
什么意思? 编译器故意把代码打乱以便劣化in-order结构?没有这个意图吧?

我认为恰恰相反,无序的意思是把有序的指令序列以无序的顺序执行,而不是把无序的指令序列以有序的顺序执行。指令序列本身就是有序的。有些优化措施,比如把相关性强的东西尽量隔开,是对有序无序都通用的技术。而指令配对,也是x86传统的技术了,虽然在后期作用比较小。

其实PPE模拟x86,已经在XBOX360上面几乎完美地实现了。没有迹象表明MS掌握了反向超线程这样的外星技术,则表明一个PPE就足以模拟P3 733。当然MS作为平台提供商,不一定要在核心调用上使用模拟的方法,但至少表明模拟用户态的代码性能已经足以。MS也可能采用另外的PPE做即时优化编译的工作(我觉得不排除这个可能, 因为C#上面的JIT compiler已经有所积累)
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则