見出し画像

65816 - APPLE II GSやスーファミにも使われた6502の後継CPU

ここしばらくCPUの紹介をサボっているのですが、そろそろシンプルなCPUの時代は終わり、説明するにも仮想アドレスであるとか、キャッシュがどうのこうの、バスや入出力であるとか外部プロセッサとの接続なんていう内容が出てくるので、ちょっと脱線をして前提となる話なんかを書き始めています。

とはいえキリが無いので、今回はAPPLE II GSで採用された6502の互換性を維持しつつ16ビットに進化した65816を取り上げます。

APPLE II シリーズは、IIeまでは6502を変えること無く頑張ってきたのですが、IIcで機能的には変わらないもののより消費電力の少ないCMOSタイプへと変更しただけでした。その後、必要なメモリも増え続け、バンク切り替えなどではやりくりが大変になってきたのと「Macintoshのような」プログラムを用意するには、やはり16ビットを扱えるCPUが必要でした。そこで

II GS では、互換モードを持つ16ビットCPUである65816を開発し、これを採用することになりました。

65816 (コンピュータ)

このCPUはリセットされた時点では6502互換モードで動き、モードを切り替えることで拡張機能が動作するようになります。6502には未定義な命令コードが多数あったのですが、ここに新しい命令を加えレジスタなども16ビットが扱えるようになります。メモリ空間は24ビットに拡張されましたが、連続した空間として扱うのではなく、上位8ビットはデータおよびコードのバンク切り替えレジスタを持っており、これを入れ替えながら使うようになっています。なかなかトリッキーな作りですがモードを行ったり来たりするコストは低いようで、互換モードで使われる頻度が高いことを考えると現実的な設計だったのでしょう。

W65C816S

https://www.westerndesigncenter.com/wdc/documentation/w65c816s.pdf

GS以外の用途では、高速な6502互換CPUとしてのみ使われたケースも多いようです(ピンコンパチ版もある)。今まで1MHzで動作していたものが最大で14MHzまで使えるようになったのですから、置き換える価値はあります。6502および、そのカスタマイズ版はパソコンだけではなくゲームコンソールやアーケードゲームにも広く使われていたので、それなりの需要はあったようです。

そしてご存知のようにファミコンは独自カスタマイズされた6502を採用していましたから、その後継機種であるスーパーファミコンには、やはりこの65816のカスタマイズ版を採用しました。スーファミではカセットなどの形状が異なるので直接的な互換性は維持されなかったもののコードとしては使い回せる部分も多かったと思われるので、特に初期の頃は有益だったのではと思われます。今見かける互換機が両方に対応しているのも、そもそものCPUに互換性があるからなんでしょうね。

スーパーファミコン

しかしスーファミって、本体のCPUが力不足だからといいて、カセットの方にCPUを載せて処理能力を上げるなんて言うことをしていたんですね。まあAPPLEIIだって拡張スロットにCPUを載せることもありましたから、同じだろというのかもしれませんが。

スーパーファミコンの特殊チップ

ヘッダ画像は以下のものを組み合わせて作成しました。

https://commons.wikimedia.org/wiki/File:Nintendo-Super-Famicom-Set-FL.png
Evan-Amos - 投稿者自身による著作物, パブリック・ドメイン, https://commons.wikimedia.org/w/index.php?curid=16640102による

https://commons.wikimedia.org/wiki/File:W65C816S8PG-14_lg.jpg
コンピュータが読み取れる情報は提供されていませんが、Anthony.king@westerndesigncenter.com~commonswikiだと推定されます(著作権の主張に基づく) - コンピュータが読み取れる情報は提供されていませんが、投稿者自身による著作物だと推定されます(著作権の主張に基づく), パブリック・ドメイン, https://commons.wikimedia.org/w/index.php?curid=560658による

#CPU #8ビット #16ビット #6502 #65816 #APPLE2 #スーパーファミコン

いいなと思ったら応援しよう!