プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

先カンブリア紀とプロセッサ


yasuhoはCPUが大好きです。限られた空間に多くの命令とレジスタ・アドレッシングモードを配置するのはパズルのようで、命令セットを見るだけで楽しめます。時々意味もなく俺CPUをデザインしたりもします(笑)


世の中には様々なCPUがあります。今回はそんなCPU達から私の好きなものを選んでみました。数が中途半端ですが、これはyasuhoの経験が少ないためですので、どうかご勘弁を。^^;

好きなCPUランキング9


1. DEC VAX architecture


yasuhoが知るCPUで最も美しいアーキテクチャ。完全な直交性の命令セット。使ったことはないけれど、今でも憧れのCPU. UNIXと共に初めてページングを学んだことも印象深い。アーキテクチャマニュアルは持っていたけど、会社に寄付しちゃった。やっぱり持っておけばよかったかな。


2. Motorola MC68000 series


実際に使ったことのあるCPU(おっと、MPUだっけ!?)では一番好きかな。VAXライクなほぼ直行性のある命令セットは、プログラマ好みのプロセッサだと思う。当時アンチIntel派だったことも大きいかな。何せPC-8001の次に買ったパソコンがX68000だったぐらい(笑)


3. Zilog Z80


どちらかというとシンプルな8080の方が洗練されている感じがあるんだけど、やはり初めてアセンブラにふれたCPUとして、これをはずすわけにはいかないね。ハンドアセンブルしまくった経験から、今でもある程度の命令コードが分かる。この世代の人には多いはず。


4. ARM ARM architecture


現在使っているCPUでは一番好き。RISCCISCのいいとこ取りのようなCPUで、後発らしく洗練されている。ほとんどの命令で条件実行ができるところがユニーク。多くの組み込みデバイスに採用されているが、ハードウェアのシンプルさからGBAで使うARM7TDMIが一番好みかも。


5. MIPS R3000


RISCの始祖であり、あらゆる意味で衝撃的だったプロセッサ。遅延分岐とパイプラインを意識した命令セットから、アセンブラで書いても機械語が1:1にならない。固定長の命令。ハードウェアTLBのみなので、ページテーブルをソフトウェアで実現しなくてはならないなど、何もかも当時は新鮮だった。


6. Motorola MC6809


究極の8ビットと言われたプロセッサ。使ったことはなかったけど、8ビットながら豊富なアドレッシングモードは使う気にさせる魅力があった。OS-9 6809(MacのOSじゃないよ)はこのプロセッサだからこそ実現出来たのだと思う。メジャーにはなれなかったけどね。


7. Renesas H8 series


CISCなんだけど、好感の持てるアーキテクチャである。一度は扱ってみたいなあ。


8. Microchip Technology PIC


できることは限られるけど、いろいろなアイデアいっぱいのプロセッサ。要はシンプルで美しいデザインが好きなんだな、yasuhoは。


9. Intel 80x86 architecture


はっきり言って、このプロセッサは好きではない。その理由は、あの忌まわしいセグメントなどプログラマにやさしくないデザインもあるんだけど、最初に読んだ解説本の印象が悪かったことが大きい。その本は8086の短所を認めないばかりか、さも理にかなった設計であるかのように自慢していたことが許せなかった。


今思えば8086は8ビットからの移植を考慮した、いわばつなぎのプロセッサであったのだと思う。そう考えるとあのアーキテクチャとなった理由が見えてくる。設計者もこれほど長く使われるとは想像していなかったに違いない。

おじさんの昔話ですよ


マイコン創世の時代は、多種多様な生物が現れた先カンブリア紀にたとえられることがあります。当時はCPUもソフトウェアもマイコンによって全く違っていました。当然互換性などというものもなく、ソフトウェアは特定のマイコンで動かすのが当たり前の時代。


そんな時代にマイコンを選ぶ上で大きなウェイトを占めていたのがCPUです。高性能のCPU=高性能マイコンな見方もあったぐらいで、当時のマニアにとって重要な要素でした。それほどリッチではないハードウェアを生かすにはアセンブラがほぼ必須でしたからね。


こないだのPC-6601ビデオではありませんが、ハードもソフトも貧弱ということは逆に言えば個人でそのマイコンの性能を全て引き出すことも不可能ではないわけで、制限がむしろ「何でもできるさ」という気にさせていたような気がします。

どのCPUも愛しい


そんなわけでyasuhoはCPUについてはかなり好みがあったわけですが、長年いろいろなハードやソフトに触れていくうち、だんだん考えが変わってきました。「どうでもよくなった」というと言葉は悪いですが、なんかどのプロセッサも好きになってきたんですね。


CPUのアーキテクチャというのは、設計者の思想そのものという気がします。そのデザインには何かしら理由があり、考え抜いた後が伺えるのですね。ここまで書いてきて何ですが、順番とかどうでもよかったりして(笑)


今やアセンブラどころかプログラムも仮想マシン上での実行がメジャーになりつつある時代。CPUも多くの種類はなく、ほぼ寡占状態。でもコンピュータはこの単純な命令を繰り返し実行している計算機であることを思い出して欲しいな。先カンブリア紀の種族は絶えてしまったかもしれないけれど、そのDNAは確かに今でも受け継がれていることが分かると思うから。


あなたはどんなCPUが好きですか?