机能]嵌入式工程师分析NDS和PSP硬件真正实力
来源:技术交流
发布时间:2024-08-10 06:06:11
想起这个主题的原因是看到一则消息“外国玩家将NDS超频到了100MHz”,结合很久以前就有的“PSP的CPU降频1/3 使用”的信息,让人实在是对NDS 和 PSP 硬件实力的对比感到很好奇。因而查阅了一些资料,结果让人大吃一惊:两者的差距远没有之前一些人分析的1 :5 那么悬殊,任天堂老谋深算的隐藏了实力。
我们先看看NDS:大家都知道NDS采用了两个CPU ,一块是ARM946E-S,它有8k字节指令缓存和4k字节数据缓存,通常工作在 67 MHz ;另一块是33MHz 的ARM7TDMI,有 64 k 字节内存。他们共享32 k字节的高速缓存。当然这些都是众所周知的情况,但是如果是从事嵌入式设备开发的朋友看了这些多半会产生疑问:ARM946E-S 怎么会只能跑到67 MHz,ARM7TDMI怎么会只能跑到33MHz.事实上ARM9架构属于目前嵌入式CPU 中的中端产品,主流的频率应该在200-300MHz左右,ARM7架构属于中低端的产品,但是主流频率也在100-200MHz左右。而且这也不太可能是任天堂公司技术实力太差,移植IP的时候性能严重缩水所致。因为拥有ARM系列的ARM 公司采取的商业策略是只授权硬IP核,即直接交付生产用的版图,根本不允许用户修改,所以在这方面任天堂根本就没有犯错误的机会。
我从电子设计领域的专业渠道了解到的资料显示,NDS 的ARM946E-S 实际可以工作到200MHz,ARM7TDMI实际可以工作到133MHz,请大家注意,这里的频率均不是超频的结果,而是设计的正常工作频率。至于这么做的真实原因,恐怕只有任天堂自己才知道。
不过我们大家可以猜想:可能是为了省电的因素,也有一定的可能是目前软件的水平只需要如此,就是不要妄想这是任天堂的设计失误,事实上他们在硬件设计上“合理就好”的倾向很明显,当年在NGC推出前改规格,降低GPU频率,提高CPU频率,避免瓶颈的事就说明了这点。
我们再来看看PSP 的情况:PSP 有两个1.2V MIPS 4KE CPU 内核,可以运行到 333 MHz,但正常时钟不超过222 MHz ,这可能是出于功耗考虑。一个内核处理大多数系统代码和游戏代码,另一个内核补充了2M字节嵌入式DRAM,负责音频、
静止图像、视频等媒体的处理。PSP 有4M字节嵌入式DRAM以及32 M字节离散 DRAM. 显然SONY方面也采取了和任天堂相似的降频策略,只不过气魄上还是差了点。
当然一些业内人士肯定要笑我胡闹,哪有这样比较两个不同架构CPU 性能的,而且CPU 的性能也只是整体的一部分。好,请听我继续分析。
ARM 公司目前是世界嵌入式CPU IP授权市场的老大,不过ARM7架构是97年左右推出的,拥有可提供0.9MIPS/MHz 的三级流水线年左右推出的,拥有可提供1.1MIPS/MHz 的5 级流水线系列还提供了增强的DSP解决能力,不过这两个都算不上最新技术。PSP 的CPU IP提供者是MIPS公司,它是世界嵌入式CPU IP授权市场的老二,虽然来头稍小一点,但是它提供的MIPS 4KE CPU内核属于最新的MIPS32架构,拥有可提供1.5MIPS/MHz 的5 级
流水线要强不少。本来MIPS32 4KEc 内核在TSMC(台积电)的0.13微米制程下所能达到的最高频率是233MHz,但是SONY方面又不惜血本,它们在日本长崎县谏早市的索尼半导体「SCEI Fab」晶圆厂采用的是0.09微米制程,所以同样的CORE,它们的可以跑到333MHz. 不过这也可能是SONY方面的无心之过,从理论上说更先进的制程除了能带来更高频率,更低的成本外,也能带来更低的功耗。但是恰恰在0.09微米这个工艺节点,由于对深亚微米工艺的特性认识
不足,在超低K 值介电材料的开发上没有跟上,出现了很严重的漏电流问题,导致功耗不但没有降低,还提升了。所有的半导体制造商均是如此,更严重的是,例如INTEL ,能够最终靠使用后来开发的超低K 值介电材料解决这一个问题,甚至直
接升级到更先进的0.065 节点,但是SONY由于游戏机的硬件统一性,很难采取类似的方式。
第一批PSP的水平就决定了之后所有PSP的水平,他是PSP这个木桶的最短一块板。我们难以想象SONY会发布这样的通告:“2006年X 月前生产的PSP,CPU跑在222MHz,2006年X 月后生产的,CPU 可以跑在366MHz,用户可以自行选择”,这样的话,软件开发商和用户非造反不可!从这一点分析,虽然SONY公布的CPU 最高工作频率是333MHz(目前是222MHz),而且目前也的确存在方法让PSP跑到333 ,但是这并不意味着SONY会在将来允许开发商将实际工作频率提高到333MHz,因为这会导致初期版本的PSP 功耗超过SONY方面在制定标准时的预期,从而发生不稳定。333MHz很有可能成为非官方软件的专利。相对而言,任天堂不存在这样的一个问题,他使用的是成熟产品和成熟工艺,没有不可预期的情况,ARM 架构又以功耗低闻名,NDS 达到设计的工作频率没什么悬念,由此导致的持续能力降低不会超过2小时。
如果SONY方面最终能提升工作频率,但是达不到333MHz这么高,那就会是0.34-0.51 之间的某值另外再考虑CPU 的其它方面,NDS 配备了ARM946E-S 和ARM7TDMI,目前任天堂不愿意讨论处理器内核之间的功能划分问题,不过按照过去的多代家用游戏机的惯例,这样的一主一辅两个CPU 的设计,一般是主CPU负责游戏的视频和其它主要运算,辅CPU 负责音频和输入处理等运算,这种划分方式早已被业界熟悉,应用上应该不有一定的问题。SONY方面的情况相对来说比较复杂,PSP 有两个1.2V MIPS 4KE CPU 内核。一个内核处理大多数系统代码和游戏代码,另一个内核补充了2M字节嵌入式DRAM,负责音频、静止图像、视频等媒体的处理。这不是目前流行的双内核结构吗?
其实不然,目前INTEL 和AMD 热推的双内核对应用程序而言是不可见的。处理器内核的调用过程是由OS负责的。但是这样的形式需要庞大复杂的OS作支持,效率也不高。游戏机这种嵌入式设计完全不同,应用程序本身负责处理器内核的调用过程,这样的形式高效,但是难度很高。回顾历史上采用对等式双CPU设计的游戏机,例如SEGA土星等,无不是让程序员们发疯的平台。从理论上说土星的双SH2 (20MHz )比PS的单R3000 (30MHz )是要强一些的,但是除了SEGA自己的AM2 ,AM3 的王牌小组,没有人可以把这两个CPU 的能力都完全发挥出来的,多数土星游戏实际只利用了一个CPU(我承认这一点似乎无法解释MS在XBOX360中采用了3CPU core 的设计,但是MS在XBOX360 跑了WINDOWS XP,这和这一代掌上游戏机采用的OS根本不是一个级别的东西)同样的我对于绝大多数日本游戏开发企业能够把两个MIPS 4KE CPU内核总计666-999MIPS 的能力完全发挥出来表示怀疑。
这里没有采信某些资料上说的PSP的VFPU具有2.6Gflops的说法,原因是MIPS官方没有类似的说法,而且ARM9E同样是有FPU的内存方面,两者的资料都不足,NDS 的两个 CPU共享32 k字节内存,还带有4M字节的系统 DRAM ,而PSP 有4M字节嵌入式DRAM以及32 M字节离散 DRAM ,PSP显然因为拥有大量的高带宽嵌入式DRAM而占有优势,总内存也多得多。不过我们也要考虑到PSP 需要大量内存缓冲他的UMD 驱动器,而且3D处理这类低数据密集度的运算对于内存带宽的敏感远高于对内存容量的敏感。总体上PSP 在这方面的优势没有他在纸面上显示的那么大。
NDS 的3D图形引擎每秒可以传输高达400万个几何顶点或12万个多边形,并声称有3000万像素/ 秒的填充率。还有独立的音频加速硬件。
SONY官方宣称PSP的双内核图像处理器运行在166 MHz,并将图像流水线划分为两类任务:一个内核负责曲线表面和几何处理,另一个则负责纹理表面和像素渲染处理。SONY在斯坦福大学2004年IEEE Hot Chips 会议上公开过PSP的全部规格,包括 6.64 亿像素/ 秒的像素填充率,以及3300万多边形/ 秒的渲染率。PSP 的数据是NDS 的几十倍甚至上百倍,不过个人觉得这个数据看看就可以了,过于夸张了,PSP自己的像素不过130560个,6.64亿/130560=5085.78 ,这个倍数太过分了(NDS 的类似数值是3000万/98304=305.17 ,考虑到每秒30帧画面和例如FSAA的开销,十分合理)。
SONY也在PSP中使用基于可重配置逻辑的VME(虚拟移动引擎)视、音频处理内核,它运行在1.2V和166 MHz,能轻松实现3D 虚拟化、回响、音调控制以及其它音频处理功能。由于PSP 的加速硬件纸面性能过于夸张,难以让人相信,例如3300万个多边形/ 秒的渲染率,已经超出了Geforce3一级桌面显卡的水平,从目前技术来看,集成到PSP上不可能的,也无法和CPU 的解决能力配合(目前3D运算还是离不开CPU 的)。事实上MIPS宣称他的MIPS 3D ASE 硬件加速器能够达到3700万个多边形/ 秒的渲染率,但是这个MIPS 3D ASE 需要和MIPS64架构的CPU配合,而不是PSP的MIPS32,这两者的差距非常大。 那怎么办,这个对比如何做下去呢?自己觉得不妨参照二者CPU的能力做个比较,PSP的加速硬件强大一些,具备曲线表面和几何解决能力(NDS 目前没有资料证明有类似能力),获得20% 的加成(参照T&L 加速器的加成情况)。
前面说了,NDS与PSP的CPU 能力之比在0.34-0.51 之间,那么个人觉得他们的硬件总体能力之比在0.283-0.425 之间,前提是软件开发商的程序水平很高,能充分的利用PSP的两个CPU ,否则这个比值还会上升。
最后对NDS 未来的多媒体播放能力做个预测,目前任天堂方面开放的CPU 能力只到67MHz ,ARM9在这个频率上想播放全屏幕的MPEG4 完全不可能(不使用 播放君),不过参照多种203MHzARM 的PDA 播放MPEG4 的情况,具有硬件加速的NDS 如果工作在200MHz,播放全屏幕的MPEG4 应该不有一定的问题责编:侯健