CPU


モトローラ製“ドラゴンボール”シリーズ



モトローラ社の開発プロジェクトに、鳥山明原作の某アニメフリークがいたというそれだけの理由でそんな名前が付いてしまった68000系CPUのお話。
RISCに市場を奪われる前、Palmをはじめポケベルやページャにすごい勢いで使われてたアレです。

CPUコアの周りに、7つの周辺チップを内蔵しています。
多分名前の由来はその7っていう数字がアニメと同じということだと思います。
由来って言うか無理矢理こじつけ。
CPUコアは完全にMC68000なので、CISCの円熟期に作られたものです。

そして32bitのレジスタを16本持ってます。
なので、ドラゴンボールは32ビットCPUである、という意見もあるみたいです。(データバスは16bitなので、「レジスタとデータバスのうち短いほうがCPUのビット数」で考えると16bitCPUです。)
ただ設計された時代は「データとアドレスは別のものである」という思想が強かったために、「データレジスタ」と「アドレスレジスタ」に分かれていて、アドレスレジスタに対しては加減算のみ可能で、乗除算は出来ないようになっています。
ちなみに現在では、データとアドレスを分けることはなく、ほとんどのCPUのレジスタはすべて汎用に使えるようになっています。

アドレスレジスタは32bitのうち24bitしか有効ではなく、これによってリニアにアクセスできるメモリ容量が16MBに制限されています。(アドレスバスは23本で、偶数番地の16bitをアクセスするようになっています。8bitアクセス時はMPU内部で上位バイト・下位バイトを判別します。奇数番地に対して16bitと32bitのアクセスをしようとするとアドレスエラーが出ます)

当時でこそ驚異的な容量であった16MBですが、最近はPDAですら足りない感が拒めません。
最近になってARMやSHなどに市場を奪われてしまったのも、このあたりが足かせになったというのが原因として大きいのかもしれません。

ただ、当時としては凄いとしか言いようがないその程洗練された設計思想は、8086系から見ると「うそ!?こんなに素直に組めるの?」と思えるほど素晴らしいものです。
ビッグエンディアンをはじめ、アセンブラのmove命令で移動方向の記述が左から右など、ことごとくx86系とは逆なのがいかにもモトローラで、x86系と行ったり来たりしていると、すぐソースとディスティネーションを間違えてしまうのが困った点ですが。
C言語を強く意識された作りで、アセンブラのニモニックレベルで多次元配列や構造体に含まれた配列、メモリ管理配列のハンドリングなどが、CPUレベルでサポートされています。(RISCなどではコンパイラレベルで実現します)

ドラゴンボール(68000)が普及することに、セガのメガドライブが貢献したというのは有名な話です。
メガドライブはデュアルCPUですが、メインにMC68000を採用しています。
それまでは、MC68000といえば一部のワークステーションやAppleのMacintoshくらいにしか搭載されていませんでした。
メガドライブの発売により、一気に生産数が増え、同時にコストが大幅に引き下げられました。

当時組込用などに安価で出回っていたZ80に変わって、MC68000が組込用に使われ出すほどその価格は下がり、やがてメモリコントローラやIrDAなどのI/Oインタフェース機能が内蔵され、ドラゴンボールが完成します。

ドラゴンボールはその後にバージョンアップされ、ドラゴンボールEZ、ドラゴンボールVZなども発売されています。




[ 戻る ]