继续这个系列,PS3最近又经常沦为话题哈,以前是和PC比,现在的话又要和新出的主机比,一会又要和移动U比,那这次就来说说PS3,让大家更了解PS3,方能更科学的去比较。
PS3的规格参数这些就不说了,之前有提到过,并且很多数据网上也很全,这次就主要说说至今还是褒贬两级分化的Cell。
首先标准的Cell是1 x PPU + 8 x SPU,PPU就是传统的CPU核心,SPU类似于协处理器。PS3中为了提升生产良品率和降低功耗发热,屏蔽掉了一个SPU,以及PS3的系统和安全又占用掉一个,所以PS3上游戏处理可用的一共是6个SPU。
首先说优点
SPU的功能强大,可以处理物理、音频、光源、辅助GPU进行几何运算,以及弥补GPU架构问题无法使用的computer shader等等,并且游戏中的动态对象都可以捆绑到SPU上处理。
然后是缺点
SPU每个都可以以自己的工作线程执行,但必须和主线程也就是PPU同步,因为SPU的线程只能由PPU管理。本身Cell的线程就比较繁杂,首先为了通信PPU和SPU必须经由event queue,所以先得创建event queue,然后创建管理线程、工作线程、SPU线程,连接event queue,创建线程组,再连接等等,这些都要PPU主线程来完成。但是PPU毕竟只有一个,并且速度有限,所以PPU很难让所有SPU都满载工作,受限于PPU的速度,必然出现等待周期。
并且这个过程是顺序的,也就是说SPU必须等PPU更新完,然后SPU执行相关任务,然后再连接PPU开始下一个更新,这个过程也会出现浪费周期。
简评一下
Cell理论上确实很强,也很独特,但是整体架构设计上也确实存在严重的问题,以至于根本不可能发挥出全部性能,索尼的第一方也做不到,甚至像顽皮狗,游击队都开始在GDC上拿PS3当反面教材来衬托PS4的开发环境多么多么友好了。
下面看截图,都是实机截图,不过上传被压缩也是肯定的