概要
- Sony PlayStationのCPU設計と選定経緯の解説
- MIPSアーキテクチャとRISCの流れ、業界動向
- PlayStation用SoCの構成要素と特徴
- 各種コプロセッサとDMA機能の役割
- 演算性能や設計上の制約についても言及
PlayStationのCPU設計と歴史的背景
- Sony は3Dハードウェア開発の複雑化を避けるため、 シンプルかつ実用的 な設計を選択
- メインCPUは CXD8530BQ、現代で言う System-on-Chip の先駆け
- 1990年代初頭、 RISCアーキテクチャ への移行が業界全体で進行
- Appleは PowerPC、Sunは SPARC、Acornは ARM を採用
- Sega Saturnは Hitachi SH、Nintendo Virtual Boyは NEC V810 を採用
- MIPS はStanford発の企業で、後に SGI が採用・買収
- MIPS R2000 が商用RISC CPUの先駆け
- PlayStationにはコスト面で有利な R3000A 系を採用
LSI LogicとカスタムCPU
- LSI Logic はMIPSのライセンスを受け、 CoreWare サービスでカスタムCPUを提供
- CW33300 は LR33300 由来で、 MIPS R3000A互換
- Sonyは CW33000 をベースに独自カスタマイズし、SoCとしてマザーボードに搭載
PlayStation SoCの主な仕様
- CPUコア は33.87MHz動作
- MIPS I ISA (32ビットワード、乗除算命令含む)
- 32本の汎用レジスタ +2本の乗除算レジスタ
- 32ビットデータバス (Main Bus: 32bit、Sub Bus: 16/8bit)
- 32ビットアドレスバス (最大4GB物理メモリ対応)
- 5段パイプライン、 4KB命令キャッシュ (データキャッシュは無し、Scratchpadとして1KBを割当)
- メインメモリ は2MBの EDO RAM (高速性重視)
DMAとバス制御
- CD-ROMコントローラ、MDEC、GPU、SPU、パラレルポート はDMAコントローラ経由で独立転送可能
- DMA動作中はCPUがメインバスにアクセス不可、Scratchpad利用でCPUのアイドル回避
コプロセッサ構成
- 最大4つのコプロセッサ 対応、PlayStationでは3つを実装
- System Control Coprocessor(CP0)
- キャッシュ管理、割り込み・例外・ブレークポイント制御
- データキャッシュはScratchpadとして利用
- Geometry Transformation Engine(CP2)
- ベクトル・マトリクス演算を高速化
- 3D投影、ライティング、クリッピング等の初期グラフィックス処理を担当
- Motion Decoder(MDEC)
- JPEG類似のマクロブロック画像の展開
- 最大毎秒9,000マクロブロック処理、320x240px/30fpsのFMV再生対応
- SoC内でCPU・DMAとメモリマップ経由で接続
- System Control Coprocessor(CP0)
欠落ユニットと設計上の制約
- CP1(FPU)は非搭載
- 浮動小数点演算はソフトウェア処理または固定小数点演算で代用
- ゲームロジックや物理演算は主に固定小数点で対応
まとめ
- PlayStationは コスト・性能・開発容易性 のバランスを重視した設計
- MIPS R3000A互換SoC と独自コプロセッサ群で3Dグラフィックスを実現
- DMAやScratchpad活用による高速データ転送とCPU効率化
- 浮動小数点演算の弱さはソフトウェアや設計工夫で補完