MOS Technology 6502:8ビットマイクロプロセッサの概要と歴史(Commodore/NES等搭載)
MOS Technology 6502の誕生から派生モデル、Commodore/C64やNESへの採用事例、技術的特徴と歴史を図解でわかりやすく紹介。
MOS Technology 6502は、1975年にMOS Technology社が開発した8ビットマイクロプロセッサです。発売当時はコスト面で高く評価され、現在でもWDC(Western Design Center)で65C02として生産されています。
Atari 2600、Atari XL、BBC Micro、Commodore 64、Nintendo Entertainment Systemなど、多くの人気家庭用ゲーム機やコンピュータが、メインプロセッサとして6502およびその亜種を使用しています。
設計の背景と歴史
6502は、当時の高価だったマイクロプロセッサ製品に対抗する目的で設計されました。設計チームにはChuck PeddleやBill Menschらが在籍し、Motorolaや他社の設計経験を活かして低コスト・高性能を実現しました。発表時の低価格戦略(当時の市場価格を大きく下回る廉価販売)は、マイクロコンピュータ普及に大きく貢献しました。
アーキテクチャ上の特徴(概要)
- 8ビットデータバス / 16ビットアドレス空間:データ幅は8ビット、アドレス幅は16ビットで、最大64KBのメモリ空間にアクセスできます。
- 汎用レジスタ:A(アキュムレータ)、X、Yの3つの汎用レジスタを持ちます。アキュムレータ中心の命令が多い構成です。
- ステータスレジスタ:フラグ(N,Z,C,V,D,I)を持ち、演算結果や割り込みの制御に用います。Dフラグは10進(BCD)演算モードを示します(NMOS 6502ではサポート)。
- スタック:ページ1(0x0100–0x01FF)に固定されたソフトウェア・スタック(8ビットのスタックポインタ)を使用します。
- ゼロページアドレッシング:アドレスの下位バイトがゼロページ(0x0000–0x00FF)の場合に短く高速にアクセスでき、擬似的に「追加の高速レジスタ」として使われました。
- 多彩なアドレッシングモード:即値、絶対、ゼロページ、インデックス付き、間接、相対(分岐)など、ゲームやシステム向けに効率的な命令が揃っています。
命令セットと特記事項
- 公式には多数の命令(一般的に151の合法オペコード)が定義されており、さらに「未定義(illegal/undocumented)命令」が存在して古くからハッカーやゲーム開発者に利用されてきました。
- 6502にはいくつかの既知のハードウェア的な振る舞い(例えばJMP間接アドレッシングでのページ境界ラップバグなど)があり、これを前提にしたコードや、逆に回避するための工夫が必要でした。
- 一部の派生(例:RicohのNES向けCPU)では、10進モード(BCD)を削除するなどの仕様差があり、互換性や動作差に注意が必要です。
主な派生と実装例
- 6507:ピンを削減した廉価版で、Atari 2600などに採用されました(小型化・コスト削減のためアドレス線やピンが制限される)。
- 6510:Commodore 64で使われた派生。I/Oポートを内蔵したバージョンで、システム制御に用いられました。
- Ricoh 2A03 / 2A07:Nintendo Entertainment System(NES)に搭載された、6502をベースに音源(APU)を統合し、BCD命令を削除した派生チップ。
- 65C02(WDC):Western Design Center(Bill Menschが創設)によるCMOS改良版。低消費電力化や追加命令、バグ修正(JMP間接の問題など)を含み、組み込み用途や教育用途で現代にも継承されています。
採用例と影響
6502系CPUは1970年代後半から1980年代にかけて、多数の家庭用コンピュータやゲーム機で採用されました。例として:
- Atari 2600(6507を採用)
- Atari XL / Atari 8-bitシリーズ(6502系)
- BBC Micro(6502搭載)
- Commodore 64(6510搭載)
- Nintendo Entertainment System(Ricoh 2A03/2A07採用)
これらの採用により、6502は低コストで高性能なプロセッサとしてホームコンピューティングとゲーム産業の発展を大きく後押ししました。特にゼロページや効率的な命令セットは、当時のメモリ・クロック制約の厳しい環境で有効でした。
現代での位置付けとレガシー
- 教育・レトロ分野:シンプルで学びやすい命令セットのため、組み込みや教育、レトロコンピューティングの分野で根強い人気があります。
- エミュレーションとFPGA:多数のエミュレータやFPGA実装(コア)が存在し、古いゲームやソフトウェアの動作検証・再現に利用されています。
- 現行製品:WDCによる65C02など、改良版は今でも入手可能で、組み込み用途やホビイスト向けプロジェクトで使われています。
技術的な注意点
- 6502のメモリ空間は64KBに制限されるため、大規模なプログラムはメモリバンク切り替えなどの工夫が必要でした(CommodoreやNESではバンク切り替え回路が使われた)。
- 派生チップ間での差異(例:BCDモードの有無、追加命令、電気的特性)に注意しないと、移植時に不具合が発生することがあります。
まとめ
MOS Technology 6502は、低コストと実用的な命令体系によって1970年代〜1980年代のホームコンピュータ・ゲーム機ブームを支えた代表的な8ビットCPUです。多彩な派生や後継(65C02など)を生み、現在でも教育・趣味・組み込み分野でその影響力を残しています。6502の設計思想は、シンプルさと効率を重視する点で今なお学ぶ価値のある例です。
百科事典を検索する