W65C816S
W65C816Sは、ウェスタンデザインセンター(WDC)によって開発され、1985年にリリースされた
16ビットマイクロプロセッサ(MPU)です。このチップは、モステクノロジーの6502 NMOS MPUの
CMOS改良版であるWDC 65C02(
8ビットMPU)をさらに発展させたもので、先行モデルとの
互換性を維持しつつ、
16ビット処理能力と拡張された機能を追加しました。
Apple IIGSの主要な中央処理装置(
CPU)として採用されたほか、日本のゲーム機である
スーパーファミコンでは、これを基にしたカスタム版
CPUが使用されました。
プロセッサの名称「65816」は、先行モデルである65C02との高い
互換性を持つ「エミュレーションモード」を示す「65」と、
8ビットまたは
16ビットのレジスタサイズを選択して使用できる能力を示す「816」に由来します。
16ビット幅のレジスタが利用可能になったことに加え、W65C816Sはメモリ
アドレス空間を
24ビットに拡張し、最大16MB(64KBバンクが256個分)のランダムアクセスメモリ(RAM)をサポート可能になりました。また、強化された命令セット、
16ビット幅のスタックポインタ、およびシステムハードウェアの管理を容易にするためのいくつかの新しい電気信号を備えています。
リセットが実行されると、W65C816Sは「エミュレーションモード」と呼ばれる状態で起動します。このモードでは、ほぼ65C02として動作し、多くの既存65C02ソフトウェアとの高い
互換性を保ちます。その後、特定の2命令シーケンスを実行することで、「ネイティブモード」に切り替えることが可能です。ネイティブモードでは、
16ビットレジスタや
24ビットアドレス空間を含む、W65C816Sのすべての強化機能が有効になります。ただし、ピン配置に関しては、65C02のPDIP40パッケージが先代6502とピン
互換性を持つのに対し、W65C816SのPDIP40パッケージは6502ファミリーの他のどのMPUともピン
互換性を持たない点が異なります。
W65C802(または65802)は、65C816とソフトウェアレベルで完全に
互換性がありながら、6502や65C02と電気的なピン
互換性を持つように設計された派生モデルです。これにより、65C802は6502または65C02を搭載した多くの既存システムで代替品として使用することが理論上可能でした。しかし、65C802は物理的なピン数の制約から
24ビットのアドレスを出力できず、アクセス可能な
アドレス空間が64KBに制限されるという欠点がありました。このため、新規設計では通常65C816が選択され、65C802は現在生産されていません。
歴史
WDCの創設者兼CEOであるビル・メンシュは、1981年に65C02の開発に着手しました。主な目標は、オリジナルの6502が採用していたNMOSプロセスを消費電力の低い
CMOSプロセスに移行することであり、これにより同じクロックスピードで消費電力を大幅に削減することが可能となりました。また、より高いクロック周波数をサポートする能力の向上も目指されました。65C02の設計では、NMOS 6502に存在したいわゆる「エラッタ」(不具合)を修正し、新たな命令や既存命令に対する新しい
アドレッシングモードが導入されました。
1982年、メンシュはアップルコンピュータとの協議を経て、グラフィックスやサウンド機能を強化した新しい
Apple IIシリーズ向けにW65C816Sの開発を開始しました。Appleは、
Apple IIで使用されていた6502とのソフトウェア
互換性を維持しつつ、より大容量のメモリにアクセスでき、
16ビットのデータを効率的に扱える新しいMPUを求めていました。W65C816Sは1984年3月に設計が完了し、その年の後半にはAppleやAtariにサンプルが提供され、1985年に正式にリリースされました。ビル・メンシュの妹であるキャサリンも開発チームに加わり、デバイスのレイアウトの一部を担当しています。
65C802も同じ開発プロセスの中で誕生しました。このチップは65C816と内部構造は同一であり、同じ製造ラインで生産され、最終段階のメタル化工程で外部ピンへの接続方法が異なりました。65C802はオリジナルの6502と同じピン配置を持つことで
互換性を実現しましたが、これによりアドレスピンが16本に制限され、外部メモリへのアクセスが64KBに限定されました。システムをゼロから設計する多くのメーカーは65C816を選択したため、65C802は生産を終了しました。
Appleはその後、
Apple IIGSコンピュータに65C816を採用しました。このプロセッサの基本設計は、1980年代中頃から1990年代初頭にかけて、VLSI Technology、GTE、
三洋電機など、複数のメーカーによって
セカンドソース供給されました。
ルネサスエレクトロニクスの
マイクロコンピュータである7700ファミリは65816と設計上の共通点がありますが、完全な
互換性はありません。1990年代には、65C816と65C02は完全にスタティックなコアに改良され、プロセッサのクロック供給を停止してもレジスタの内容を保持できるようになり、待機時の低消費電力を実現する設計を可能にしました。
2024年4月現在でも、W65C816SはWDCから40ピンPDIP、44ピンPLCC、44ピンT
QFPといったパッケージで提供されており、また、W65C265として
マイクロコントローラ(MCU)の形で、あるいは
ASIC統合のためのIPコアとしても提供され続けています。
主な特徴と機能
WDC 65C816は、以下のような特徴を備えています。
スタティックCMOS設計: 完全なスタティック設計により、低い消費電力と優れたノイズ耐性を実現。広い動作
電圧・クロック周波数範囲をサポート。
動作モード: 「エミュレーションモード」により6502/65C02と高いソフトウェア
互換性を持ち、「ネイティブモード」で全ての強化機能を利用可能。両モードで256個の
オペコードが機能します。
拡張アドレッシング: 24ビットメモリアドレッシングにより、16MBの広大な
アドレス空間へのアクセスが可能。
16ビットレジスタ: ALU、アキュムレータ(A)、スタックポインタ(SP)、インデックスレジスタ(X、Y)が
16ビット幅に拡張。
16ビット幅の直接ページ(ゼロページ)レジスタ(DP)も搭載。
バンク機能: 8ビットのデータバンク(DB)およびプログラムバンク(PB)レジスタがアドレスの上位ビット(16-23ビット)を生成し、
アドレス空間をバンクに分割。PBとDBが独立していることで、プログラムとデータを異なるバンクに配置可能です。
制御信号: 有効データアドレス(VDA)、有効プログラムアドレス(VPA)、ベクタプル(VPB)といった信号出力により、外部ハードウェア連携を強化。アボート(ABORTB)入力と関連ベクタによるバスエラー処理もサポート。
命令セット: 元の6502の13種を含む合計24種の
アドレッシングモードと、92種の新命令を追加。RAM間でデータを効率的に移動させるブロックコピー命令(MVN、MVP)、消費電力を抑えるWAI/STP命令、
コプロセッサ連携用のCOP命令などを搭載しています。
モード切り替え (XCE命令): エミュレーションモード(eビット)の状態をキャリーフラグ(cビット)と交換するXCE命令によって、容易に両モードを切り替えることができます。
主な採用ハードウェア
W65C816およびそのカスタム版は、以下のシステムで重要な役割を果たしました。
エイコーン Acorn Communicator
Apple IIGS: 6502
互換性を持つ高性能
CPUとして採用されました。
SuperCPU: コモドール64用の拡張カートリッジとして開発され、標準の
CPUを置き換えて性能を向上させました。
スーパーファミコン: ファミリーコンピュータの
CPUである6502ファミリーの上位互換にあたる本チップを基に、リコーによってカスタマイズされた Ricoh 5A22が
CPUとして搭載されました。
任天堂SA-1: 一部の
スーパーファミコン用ゲームカートリッジに搭載されたカスタムチップで、65C816の上位互換の機能を持つ
コプロセッサとして使用されました。
Foenix Retro Systems C256 U/U+ および F256K: 現代のレトロコンピュータプロジェクトで主要
CPUとして採用されています。
これらの採用例は、W65C816が持つ
互換性と拡張性が、様々な時代のハードウェア設計において価値ある選択肢であったことを示しています。