← 返回信息流
AI 资讯Hacker News·1 天前

PlayStation 架构解析

原标题:PlayStation Architecture

速览

本文深入剖析了 PlayStation 主机的底层硬件架构设计。内容涵盖 CPU、GPU 及内存子系统的协同工作机制。该架构旨在优化游戏渲染效率与数据处理能力,为玩家提供更流畅的沉浸式体验。

AI 深度解读

PlayStation 架构深度解析:从 MIPS 到 CXD8530BQ

背景

20 世纪 90 年代初,计算机处理器领域正处于一个关键的转折点。曾经主导市场的 8 位处理器(如 Z80 和 6502)逐渐退出舞台,而摩托罗拉著名的 68000 及其他在 80 年代末取得成功的 16 位设计也面临被取代的命运。即使在个人电脑领域,Andrew S. Tanenbaum 在与 Linus Torvalds 的著名辩论中曾预测,Intel 的 x86 架构在家庭市场仅剩五年的寿命。

表面上看,技术发展似乎撞上了墙,但实际上,一股新的、相对未知的 CPU 浪潮正在涌入主流设备。这些设计大多源于学术界,旨在验证特定的设计原则。当时的新兴代表包括:

  • MIPS:被 Silicon Graphics Incorporated (SGI) 采用,主要针对图形工作站。
  • PowerPC:被 Apple 采用,主要针对桌面出版。
  • SPARC:由 Sun Microsystems 开发,主要针对服务器和商业工作站。
  • ARM:由 Acorn 开发,最初针对消费市场,后扩展至 PDA、手机等嵌入式设备。
  • 以及其他尚未被大厂最终采纳的微控制器芯片,如日立(Hitachi)的 SH 和 NEC 的 V810,它们后来分别被选用于 Sega Saturn 和 Nintendo Virtual Boy。

这些处理器的共同点是都遵循**精简指令集计算机(RISC)**的设计规范。RISC 架构的一条核心规则是:单条指令不能混合内存访问与寄存器操作。这一限制简化了执行指令的硬件电路,并为引入并行处理技术奠定了基础。

索尼深知 3D 硬件开发可能变得极其复杂,因此其即将推出的主机(PlayStation)在设计上力求简单实用,尽管这可能带来一定的成本代价。

核心内容

芯片起源与 MIPS 的演进

索尼 PlayStation 的核心是 CXD8530BQ,用今天的术语来说,这是一个“系统级芯片”(System-on-Chip)。其 CPU 部分的起源可以追溯到 MIPS Computer Systems。MIPS 由斯坦福大学的教授创立,旨在将研究成果转化为实体处理器。1980 年代,硅谷风险投资家对这些创新充满热情。其首款商用 CPU MIPS R2000 是首款采用 RISC 设计的商用 CPU,并广泛应用于 UNIX 工作站。

1987 年,随着 Silicon Graphics Incorporated (SGI) 采用并最终收购 MIPS,MIPS 芯片成为行业焦点。SGI 在计算机图形市场极具影响力,特别是在开发硬件加速顶点流水线方面(此前该功能由 CPU 软件完成)。合并后,SGI 在 CPU 和图形领域均占据领先地位。

在 PlayStation 开发之前,MIPS 转向了基于 IP 授权的商业模式,允许被授权方定制和设计 CPU。索尼需要一款既能展示其自研音频和图形芯片强大性能,又能保持主机价格竞争力的处理器。最终,他们选择了 MIPS 产品目录中性价比极高的 R3000A CPU。

LSI 与定制芯片

索尼并未直接购买现成的 MIPS 芯片,而是委托半导体制造商 LSI Logic 进行定制。LSI Logic 是 MIPS 的授权方,提供名为 CoreWare 的“构建自定义 CPU”服务。该服务允许客户从一系列构建模块中组装定制 CPU 封装。

LSI 的 CoreWare 库中包含一个名为 CW33300 的模块,它源自 LSI 商业化的现成芯片 LR33300。CW33300 和 LR33300 均与 MIPS R3000A 系列二进制兼容。虽然架构在某些区域略有不同,但编程接口(MIPS I ISA)保持一致。索尼选择了 CW33300,修改了部分位,并将其与其他模块集成,形成了 PlayStation 主板上的最终芯片。

CXD8530BQ 的技术规格

该 CPU 核心运行频率为 33.87 MHz,主要特性如下:

  • 指令集架构 (ISA):采用 MIPS I ISA,这是 MIPS 指令集架构的第一个版本。它使用 32 位字长,并包含乘法和除法指令。
  • 寄存器
    • 32 个通用寄存器(32 位)。
    • 2 个乘法/除法寄存器(32 位)。
    • 其中一个通用寄存器 R0 硬连线为零,这是 RISC 设计的常见特征。
  • 总线结构
    • 32 位数据总线:在 PS1 中分为两部分:
      • 主总线 (32-bit):连接 MDEC(多媒体解码器)和 GPU。
      • 子总线 (16/8-bit):连接其余组件和 I/O。该总线由总线接口单元(Bus Interface Unit)桥接,该单元还允许访问 GPU 和 SPU(声音处理器)的特殊端口。
    • 32 位地址总线:支持访问高达 4 GB 的物理内存(包括 RAM、内存映射 I/O 等)。
  • 流水线:采用 5 级流水线,允许同时处理多达五条指令。
  • 缓存
    • 4 KB 指令缓存:支持“隔离”模式,允许程序直接操作指令缓存。
    • 无数据缓存:通常保留给数据缓存的 1 KB 内存被映射到固定地址,称为 Scratchpad(暂存区),用作“快速 SRAM”。
  • 内存:索尼提供了 2 MB 的通用 RAM。有趣的是,主板上安装了 EDO(扩展数据输出) 芯片,其效率略高于典型 DRAM,具有更低的延迟。

直接内存访问 (DMA)

在运行过程中,子系统(图形、音频或 CD 驱动器)需要以高速率获取大量数据,而 CPU 有时无法跟上需求。为此,CD-ROM 控制器、MDEC、GPU、SPU 和并行端口被赋予了对专用 DMA 控制器 的访问权限。

直接内存访问 (DMA) 接管主总线以独立执行数据传输。虽然 CPU 仍需设置 DMA 操作,但 DMA 能带来比通过 CPU 路由传输高得多的吞吐量。值得注意的是,一旦 DMA 启动,CPU 将无法访问主总线。这意味着除非 CPU 有 Scratchpad 中的任务可执行,否则它将处于空闲状态。

协处理器

像其他基于 MIPS R3000 的 CPU 一样,CW33300 支持最多四个协处理器的配置。索尼对其进行了定制,使用了三个:

  1. 系统控制协处理器 (System Control Coprocessor)
    • 标识为 CP0,是 MIPS CPU 中的常见模块。
    • 在基于 R3000 的系统中,CP0 管理缓存的实现方式。它启用了对数据缓存(以“Scratchpad”形式)和指令缓存(通过“缓存隔离”)的直接访问。

(注:原文在此处中断,未提供其余两个协处理器的详细信息,故解读止步于此。)

关键要点

  • RISC 架构的普及:PlayStation 的 CPU 设计深受 90 年代初 RISC 架构(如 MIPS、PowerPC、SPARC)兴起的影响,旨在通过简化指令集提高硬件效率和并行处理能力。
  • IP 授权与定制:索尼没有直接购买 MIPS 芯片,而是通过 LSI Logic 的 CoreWare 服务,基于 MIPS R3000A 的兼容核心(CW33300)进行了定制集成,以平衡性能与成本。
  • 独特的缓存设计:与当时许多处理器不同,PlayStation 的 CPU 没有数据缓存,而是使用固定的 1 KB Scratchpad 作为快速 SRAM,这要求开发者手动管理数据布局。
  • DMA 的重要性:由于 CPU 无法始终满足高速数据吞吐需求,系统广泛依赖 DMA 控制器在子系统(GPU、SPU、CD-ROM 等)和
查看原文 →copetti.org