6502

公開:2011-11-27 19:35
更新:2020-02-15 04:36
カテゴリ:日記,ゲーム,コンピュータの歴史

私が6502というCPUに触れたのはファミコンがきっかけである。私はゲーム会社で1987年ぐらいから約3年はたらいていたのだけれど、その時にファミコンのデータ保存方法について相談を受けて初めて触ることになった。正確にいうとファミコンのCPUは6502ではなく6502互換CPUなのだけれど、その簡素な命令体系に驚かされたのを覚えている。その時は「こんな簡素な命令でゲームを作らねばならないとはファミコンのプログラマは大変だな」と思った。なぜかというと私はゲームセンター用のゲームを作っていたのでCPUは6809や68000という恵まれた環境だったからだ。68000なんかはホントに何でもできて(乗算や除算命令もある!)、私が知っているCISC CPUでは最も美しい命令体系を持つのではないかと思っている。当然インテルのCPUはあまり好きではなかった。今は嫌いじゃないけれどお世辞にも美しいとは言えない。

6502はほんとに簡素である。なにせレジスタがPCを除いてすべて8ビットである。しかもレジスタは6個しか無い。レジスタ間の演算もない。スタックへのPushもAレジスタしかできない。6502は68XX系である。なのでレジスタが少ない・レジスタ間演算が少ないのはわかるが、ちょっと少なすぎるのではないかと思う。素人目にはかなり制約の多そうなCPUに思うのだが、そんなことは6502のプロフェッショナルにはささいなことなのだろう。しかしそれと引換に高速動作と低コストを手にした。その特徴はゲーム機にマッチし、そして一時代を築くことになる。

1980年代の前半は8ビットパソコン全盛の時代で日本ではZ80・6809の2つのCPUがほぼ独占していた。アメリカではほぼアップル・コモドールであると考えられるので6502の一人勝ちではなかったかと思う。

スティーブ・ジョブズはアップルIIの成功で足がかりをつかんだわけだけれど、6502というCPUがなかったらその成功もなかったのではないかと思う。クセはあるけれどこの安価で高速なCPUがジョブズのインスピレーションを掻き立てたかもしれない。

6502は特別そうだったけれど、当時の8ビットCPUの命令はどれも簡素でわかりやすかった。ややこしい技術(マルチコア・ハイパースレッディング・分岐予測・パイプラインなどなど)はなくして当時の延長線上で単にレジスタやアドレス空間を64ビットに拡張したものにするとわかりやすくてそこそこ速いCPUが作れるのではないかなと思ったりするがどうだろうか。昔のテクニックも生かせるしね。