« PlayStation 2硬件架构 (index)

PlayStation 2硬件架构

Chapter 3: 中央处理器 (CPU)


目录

  1. 领队
    1. 超越成功
    2. 面向大众的高端产品
    3. 索尼的特别订单
  2. 可圈可点的内存取舍
  3. 汲取历史教训
  4. 其他有趣的部分

在这款游戏机的核心部分,我们发现了一个名为情感引擎(Emotion Engine,"EE")的强大封装,这个芯片是东芝和索尼的一个联合项目,运行频率约为294.91MHz

Image
Emotion Engine,在该游戏机的首个主板改版中可见

该芯片组包含众多组件,主CPU就是其中之一。 其余部件则供CPU使用,以加快某些任务的执行速度。 为了便于分析,我们将EE分成三个部分:

领队

简而言之,主CPU采用MIPS R5900,这是专为这款游戏机设计的MIPS内核。 你可能还记得,索尼在初代PlayStation上就开始使用MIPS芯片(我们可以找到来自LSI的第二个MIPS芯片R3000A)。 对于下一代产品,我们已经有了一个MIPS "R5900"......但这个名字对我们意味着什么呢?

为了了解新数字背后隐藏的信息,让我们回顾一下那个时代的历史。

超越成功

MIPS R4000是一个广受欢迎的CPU系列,被众多系统所采用,其中包括一个强劲的竞争对手。 由于它的成功,MIPS为大众带来了一系列曾经买不起的先进技术(64位计算、8级流水线等)。

1995年,随着**R10000的发布,MIPS实现了又一次飞跃。 现在,在SGI(硅谷图形)的资助下,MIPS生产了一种新的处理器,将R4000的并行能力提升了"数英里远",首次推出了这些技术:

然而,这种创新是以复杂的设计为代价的,最终产品的价格并不便宜。 SGI只将其捆绑在高端设备中,任何将其引入家用游戏机的尝试都是不可能的。

面向大众的高端产品

SGI/MIPS已经意识到R1000 在商业上的局限性,因此聘请Quantum Effect Devices(QED) 为中低端市场开发经济实惠的R10000版本。 作为一家由MIPS前员工创办的公司,QED的业务是为经济型市场设计MIPS内核的变体。

最终,QED推出了名为R5000的新内核,这是一个经过大幅阉割的R10000内核:

因此,它成为了为经济型设备(如SGI的低端工作站)提供动力的理想CPU。 无论如何,请注意,削减后的流水线仍然可以执行并发浮点运算,似乎QED打算将其作为矢量/3D应用的一个有吸引力的产品。 你很快就会发现,另一家公司也很快注意到了这一点。

顺便提一下,在技术池的另一边,也有类似的进步,但方向正好相反:ARM与DEC联手将ARM芯片推向高端市场。

索尼的特别订单

东芝获得MIPS许可证已有一段时间,对生产MIPS变体和封装并不陌生。 索尼和东芝一度联手为索尼即将推出的游戏机生产专用CPU。 这给东芝带来了巨大的好处:CPU通常需要满足来自不同利益相关者的各种要求,这样就限制了专用化的机会。 现在,CPU只有一个用途:跑3D游戏。 因此,这为各种创新提供了足够的空间。

尽管如此,东芝最终还是采用了经济实惠的R5000设计,并对其进行了调整,以加速矢量运算。 新内核被命名为R5900,并首次推出了以下"3D"增强功能:

除此以外,我们还发现了开发人员可能欢迎的其他改进:

此外,内核还配有一个专用浮点运算单元(称为"COP1"),用于加速32位浮点数(在C语言中也称为float)的运算。 这是一个特殊的区块,因为它不遵循IEEE 754标准,最明显的是它没有无穷大(infinity)(而是计算为0)。 除此之外,它还有32个32位寄存器。

可圈可点的内存取舍

Emotion Engine旁装有两颗各16 MB的内存芯片,总内存共计 32 MB。 使用的内存类型是RDRAM似曾相识!(译注:原文为déjà vu,容易让人想起一首已成为meme的eurobeat)),通过16位总线访问

Image
Emotion Engine的内存设计。 你可以猜到拥堵会出现在哪里

乍看之下,Emotion Engine的内部总线只有128位宽,并无亮眼之处。 不过,RAM芯片采用了双通道架构,即使用两条独立的16位总线(每个芯片一条总线)连接两个芯片,以提高数据吞吐量。 这一布局理论上可达到3.2 GB/秒的带宽。所以大可放心,这款主机不存在内存延迟问题!

在EE的一角,有一个功能强大的DMA控制器或者叫"DMAC",用于在主内存和Scratchpad之间或主内存和EE内部任何组件之间传输数据。

数据传输以128位为一批,但有趣的地方就在这里: 每八个批次,主总线会暂时解锁。 这就为并行执行其他DMA传输(最多十次)或让CPU使用主总线留出了一个小窗口期。 这种工作方式被称为切片模式,是该DMA单元的多种可用模式之一。 请注意,虽然切片模式可以减少主总线上的停滞,但其代价是降低整个DMA传输的速度。

汲取历史教训

不管我们愿不愿意,随着EE内部数据流量的增加,这种设计最终将承受统一内存架构(Unified memory architecture,"UMA")带来的后果。 这就是:多个独立组件试图同时访问主内存,从而造成拥塞。 为了解决这些问题,索尼通过以下方法缓解了对内存的持续需求:

这对于能从缓存中获益的应用程序来说,听起来非常方便,但对于那些根本不应该使用缓存的任务(如操作显示列表),又该怎么办呢? 幸运的是,CPU提供了一种不同的内存访问模式,称为"未缓存"(UnCached),它使用回写缓冲区。 因此,它不会浪费周期来修正缓存(缓存未命中的产物)。

此外,还提供未缓存加速模式。 这种模式增加了一个缓冲区,以加快读取内存中连续地址的速度。

其他有趣的部分

在同一个EE封装中,还有一个名为图像处理单元(Image Processing Unit,"IPU")的处理器,这次是为图像解压缩而设计的。 作为MDEC的继任者,IPU在游戏需要解码MPEG2影像而不占用主CPU时非常有用。

长话短说,游戏向IPU发送压缩图像流(希望使用DMA),然后以GPU可以显示的格式解码。 PS2的操作系统也依赖IPU提供DVD播放功能。

最后,IPU还能运行压缩的高分辨率纹理,从而节省CPU使用量并减少大量传输。


Previous: 2. 快速介绍

Next: 4. 协处理器


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

主页 · 文章 · 支持 · 关于作者 · 关于此网站