PlayStation架构揭秘:CPU与图形处理背后的技术细节大剖析
2026/6/5 11:46:46 网站建设 项目流程

罗德里戈·科佩蒂(Rodrigo Copetti)的实用分析

如果您使用辅助工具,可切换到“经典”版本;若使用旧版浏览器,尝试“blink”版本。文章有英语、西班牙语、葡萄牙语(巴西)、简体中文、俄语版本,也欢迎添加翻译。

书籍版本

本文也在许多书店出版,方便离线读者阅读。电子书无DRM限制,印刷版汇编了多篇文章,并配有高分辨率的原创照片。您可在这里找到印刷版合集,在 Amazon Kindle、Apple Books、Kobo 和其他书店找到单本电子书,所得收益将用于改进现有文章和开发新文章。更多信息,查看这里。

目录

  1. 辅助图片
  2. 快速介绍
  3. CPU
    1. 起源
      1. 一点历史
      2. MIPS与索尼
      3. LSI与委托
    2. 产品特性
    3. 接管CPU
    4. 核心补充
      1. 系统控制协处理器
      2. 几何变换引擎
      3. 运动解码器
    5. 缺失的单元?
    6. 大量延迟
      1. 核心理念
  4. 图形处理
    1. 内容组织
    2. 绘制场景
      1. 指令
      2. 可见性处理方式
      3. 光栅化
      4. 着色器
      5. 纹理
      6. 剩余步骤
    3. 设计示例
    4. 利用VRAM
    5. 秘密与限制
      1. 扭曲的模型/纹理
      2. 相互矛盾的说法
      3. 预渲染图形
    6. 视频输出
  5. 音频处理
    1. 流媒体时代
  6. 输入/输出
    1. CD子系统
    2. 前置端口
  7. 操作系统
    1. BIOS/内核
    2. 启动过程
  8. 游戏
    1. 开发生态系统
  9. 防盗版/区域锁定
    1. 破解方法
    2. 反制措施
  10. 总结
  11. 版权与许可
  12. 参考资料/延伸阅读
  13. 贡献方式
  14. 更新日志

辅助图片

主机模型

有原版和轻薄版两种。原版PlayStation于1994年12月3日在日本发布,1995年9月9日在北美发布,1995年9月29日在欧洲发布;PS One(轻薄版)于2000年7月7日在日本发布,2000年9月19日在北美发布,2000年9月29日在欧洲发布,它是将众多定制集成电路整合到一个芯片后的成果。

主板

有原版和标注版。展示的主板型号为 'SCPH - 1000',其余芯片安装在背面,后期型号使用SG - RAM代替了VRAM,并移除了大部分外部输入/输出和视频输出接口。还有标注了重要部件的主板。

架构图

主要架构图中,总线接口单元还连接到GPU和SPU的特殊端口。

快速介绍

索尼深知3D硬件开发可能复杂,所以推出的这款游戏机设计上“简单”又“实用”,不过可能有代价!

CPU

本节剖析索尼CXD8530BQ,它是游戏机中的两大芯片之一,即“片上系统”(System - on - Chip)。

起源

主处理器采用“由Y设计、基于Z架构、由W提供第二货源的X”模式,较难概括。先从历史背景说起。

一点历史

20世纪90年代初,许多流行CPU命运转折。8位处理器如Z80和6502风光不再;摩托罗拉68000及其他16位设计面临被取代;当时PC领域,安德鲁·S·塔嫩鲍姆(Andrew S. Tanenbaum)预测英特尔x86架构在家庭市场寿命只剩“五年”。此时,一波源于学术界的CPU进入主流设备市场,如MIPS、PowerPC、SPARC、ARM等,它们都遵循精简指令集计算机(Reduced Instruction Set Computer,RISC)架构,该架构规定单条指令不能同时进行内存访问和寄存器操作,使硬件设计师能简化执行指令电路并优化。

MIPS与索尼

MIPS计算机系统源于创始人将研究成果转化为实际处理器的热情,契合20世纪80年代硅谷风险投资家对创新的投资热情。其首款CPU “MIPS R2000”是首款采用RISC设计的商用CPU,用于许多UNIX工作站。1987年,硅图公司(SGI)采用并收购MIPS芯片,用于其设备,SGI在计算机图形市场有重要影响力。PlayStation开发前,MIPS转向基于IP授权的商业模式,其R3000A CPU属低端产品,从成本看是有吸引力的选择。索尼自行设计音频和图形芯片,需一款强大且价格合理的CPU驱动,以展示芯片能力并使游戏机有竞争力。

LSI与委托

LSI Logic是MIPS授权方,提供“自定义CPU”计划CoreWare服务,客户可从构建模块中组装定制CPU包。CoreWare库中“CW33300”模块源自LSI LR33300,LR33300和CW33300与MIPS R3000A系列二进制兼容,编程接口(MIPS I ISA)不变。最终,索尼委托LSI构建CPU包,选CW33300并修改,与其他模块集成到PlayStation主板芯片。

产品特性

最终CPU核心运行频率为33.87 MHz,有以下特性:

  • MIPS I ISA:MIPS指令集架构首个版本,用32位字,含乘法和除法指令。
  • 32个通用寄存器和2个乘/除寄存器:均为32位,一个通用寄存器 (`R0`) 硬连线为零。
  • 32位数据总线:PS1中分为主总线(32位,连接MDEC和GPU)和副总线(16/8位,连接其余组件和输入/输出设备,由总线接口单元桥接,可访问GPU和SPU特殊端口)。
  • 32位地址总线:可访问高达4 GB物理内存。
  • 5级流水线:可同时处理多达五条指令。
  • 4 KB指令缓存:可“隔离”,允许程序直接操作。
  • 无数据缓存:1 KB内存映射到固定地址,称暂存器,作“快速SRAM”。

索尼提供2 MB RAM供通用使用,主板安装扩展数据输出(Extended Data Out,EDO)芯片,比典型DRAM效率略高、延迟更低。

接管CPU

图形、音频或CD驱动器等子系统需快速获取大量数据时,CPU可能无法满足。CD - ROM控制器、MDEC、GPU、SPU和并行端口可访问专用DMA控制器,直接内存访问(Direct Memory Access,DMA)接管主总线独立传输数据,吞吐量比通过CPU高,但CPU需设置DMA操作。DMA启动后,CPU无法访问主总线,除非暂存器有任务。

核心补充

CW33300支持最多配置四个协处理器,索尼定制了三个:

系统控制协处理器

“CP0”系统控制协处理器是MIPS CPU常见模块,在基于R3000的系统中,负责管理缓存实现,可直接访问数据缓存(暂存器形式)和指令缓存(缓存隔离),还处理中断、异常和断点。R3000核心依赖它使用许多组件,协处理器可控制CPU周边设备,是系统组成部分。后来基于R4000的系统将内存管理单元(Memory Management Unit,MMU)和转换后备缓冲器(Translation Lookaside Buffer,TLB)集成到该模块。

几何变换引擎

“CP2”几何变换引擎(Geometry Transformation Engine,GTE)是专门数学处理器,加速向量和矩阵计算。虽只处理定点类型,但为3D图形提供有用操作,如矩阵或向量运算、透视变换、外积、插值函数、深度提示和颜色值计算、Z/深度平均等,负责图形流水线初始阶段,为GPU渲染生成数据。

运动解码器

运动解码器(MDEC或宏块解码器)与CPU相邻,将“宏块”解压缩为GPU能理解的格式,宏块类似JPEG编码图像。MDEC可解压缩8x8像素、每像素24位的位图,每秒处理9000个宏块,能以每秒30帧的速度流式传输320x240像素的全动态视频(Full - Motion Video,FMV)。DMA用于传输压缩数据,数据也可反向传输到VRAM。它不是MIPS协处理器,CPU和DMA通过内存映射访问。更多信息可参考萨宾(Sabin)和切坎斯基(Czekański)的资料。

缺失的单元?

“CP1”为浮点运算单元(Floating - Point Unit,FPU)保留,但索尼未提供。CPU可用软件例程或定点运算进行小数运算,游戏逻辑可用定点运算,在精度和性能间权衡合理。想回顾“定点”“浮点”等概念,可阅读加布里埃尔·伊万切斯库(Gabriel Ivancescu)的文章。

大量延迟

CW33300是流水线处理器,会排队并并行执行多条指令,提高吞吐量,但可能导致流水线冒险。MIPS I架构易受控制冒险(指令可能在不该执行时执行)和数据冒险(指令可能用过时数据操作)影响。MIPS I CPU表现为:

  • 任何跟随“分支”或“跳转”操作码的指令无条件执行,开发者需用简单指令填充流水线,称分支延迟槽。现代CPU可利用分支预测,条件不满足时丢弃推测性计算,满足时节省时间。
  • “加载”指令获取数据时不使流水线停顿,当下一条指令依赖前一条“加载”指令数据时,需插入填充指令确保获取正确操作数。部分延迟槽填充有意义指令,并非浪费周期。
核心理念

RISC哲学将CPU编程负担转移到编译器,MIPS优先开发高质量编译器配合新CPU,设想开发者用高级语言,工具链自动处理冒险。向开发者暴露CPU流水线是MIPS核心设计策略,虽有缺点,但应对巧妙,不过暴露流水线使向后兼容性变棘手。

图形处理

图形流水线很大部分由GTE完成,处理后数据送索尼专有图形处理器单元(Graphics Processor Unit,GPU)渲染。

内容组织

系统有1 MB视频随机存取存储器(Video Random Access Memory,VRAM),存帧缓冲区、纹理等资源,CPU可用DMA填充。VRAM是双端口的,用两条16位总线,允许多方同时访问。后期版本改用同步图形随机存取存储器(Synchronous Graphics Random Access Memory,SGRAM)芯片(单端口,用单个32位数据总线),各有优缺点。后期游戏在基于VRAM的系统上运行可能有图形故障,马丁·科思(Martin Korth)的《Nocash PSX规格》文档记录了相关时序信息。

绘制场景

以失眠症工作室(Insomniac)的《小龙斯派罗:龙年》(Spyro: Year of the Dragon)为例说明。

指令

……(此处原文未完整,保持原文状态)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询