MCL(54)

インデックスに戻る

前のMCLへ  次のMCLへ

▼ My Computer Life (54)

54. X68030

 ようやく1993年になって、X68kシリーズに新しいCPUのマシンが発売された。X68030である。
 初代X68000が発売されたのが1987年だから、なんと6年もの間同一CPUのマシンを出していた事になる。途中、XVIシリーズでクロックが10MHz→16MHzに変化したものの、それ以外は性能に変化がなかった。この時期に6年も同一アーキテクチャのマシンで頑張っていたというのはかなり異例である。
 87年当時で言えば、MPU68000の10MHzというのは、それほど悪くない選択ではある。しかしその後もCPUの進化は続き、X68kはすっかり取り残されてしまった。モトローラのCPUで言っても、完全に32ビットバス化した68020が登場し、その後6803068040と進化していった。ライバルであるインテルも当然、i386i486と新しいCPUを次々に出して行った(次回このへんの話を書く)。当然PCもそれらのチップを乗せるわけで、日本でもPC-9801を中心に80286などにシフトしていったし、同じモトローラのチップを載せているアップルのMacintoshでもすでに68040が主流になりつつあった。X68kは相対的にどんどん非力になっていった。

 そういう中での68030の導入である。
 何年も守ってきたアーキテクチャに対する初の大きな変更という事で評価は出来るが、なぜこの時期に68030だったのだろう、という疑問は残る。すでに部分的互換性が失われるのは確実なので、ならば68040だったのではないか、と今でも思う。
 68シリーズは、68020で32ビット化し、またプログラムキャッシュも搭載した。その後継である68030では、更にデータキャッシュもついている。動作周波数の耐性なども上がっているようだが、全体としては68020とそれほど差がない。
 これが68040になると、処理能力が大幅に上がる。キャッシュがプログラム、データとも大幅に増えたのと、いわゆるハードワイヤードロジック化により一命令あたりの処理クロック数が抑えられ、パワーが上がっている。実際、Macintoshなどでは040搭載機では一ランク上の能力を実現していたようだ。
 考えれば考えるほど、やっぱり68040を搭載しなかったのが悔やまれる。
 ちなみに、X68030に載っているチップは廉価版で、MMUというメモリ管理ユニットが使えなくなっている。これは、UNIX風の仮想記憶をハード的にサポートするためのシステムだ。UNIXのようなOSをもたないX68030には必要なかったため、廉価版の方の68EC030が採用されたようだ(しかし後に、有志の手によってUNIXが移植された時に問題になり、MMUの載っている68030に換装する手法なども開発された)。

 X68030は、25MHzのクロックで動く。今までのXVIの16MHzから考えると大幅な向上だ。ただし、グラフィックや音楽などの機能面は一切変更がない。またハード的な互換性を保つため、一部のハードウェア、特にグラフィック周りは従来と同様の速度のものが採用されている。従って、VRAMへの読み書きをすると旧X68000と同じだけの時間がかかってしまう。グラフィカルなアプリの多いX68kシリーズにおいてはもったいない話であった。
 また、68030ではアドレッシングが24ビットから32ビットに拡張され、使えるメモリの上限が16MBから4GBに向上しているが、これも互換性の為かその増えた8ビットを使う事はなく、相変わらず本体には12MBまでのメモリしか増設できなかった(4MBは必ずVRAMのアドレッシングに振り替えられるため、16MBいっぱいまで積む事はできない)。

 このように、純粋な処理速度以外はX68000に近い構成のため、ソフトウェア的な互換性は高かった。
 しかし、完全ではない。CPU及びOSの一部の命令が変更されている事、そしてキャッシュ搭載によって自己書き換え時の動作が同じでなくなったというのが互換性を阻害している。
 自己書き換えというのは、メモリ上で動いているプログラムが、自分自身(つまりプログラム)を書き換えてしまうという事だ。と言っても、Prologなどのようなかっこいい自己参照・反映を想像するとがっかりする。単に、プログラムカウンタから10バイト先を3から5に書き換えろ、という荒っぽい技だ。
 この手法は、68000のようなCPUにとって最強の高速化手段になりうる。今まで変数において間接的にしか参照できなかった部分を直接参照に置き換える事により、ループなどでメモリアクセスを減らす事ができる。そしてプログラムも小さくなる。
 ただし、プログラムキャッシュを持つCPUではこの方式は致命的である。この手のCPUでは、プログラムは実行中に書き換わらない事を前提にしている。メインメモリからキャッシュへと移した後、データキャッシュであればメインメモリ側の変更を感知してミラーリングするが、プログラムキャッシュはそういう事をしない。メインメモリのプログラムが書き換わっても、キャッシュ内のプログラムを実行し続ける。従って、自己書き換えをしているプログラムの動作は、68000と68030では変わってしまう。
 これがね、また結構あるんだよ。自己書き換えを使ってるソフトが。そういうのが全滅してしまった。

 後は直接互換性の問題ではないが、高速化のためにループ展開(100回ループを組みたい時に、ループ内容をプログラム上で100個並べるという荒業。ループ回数の判定やジャンプがなくなり高速化する)していると、キャッシュの意味がなくなり、かえって遅くなったりする。また、DMAを使った転送も、場合によってはCPUで転送した方が速かったりもする。このへんもX68000との違いである。

 このように、6年目にして始めての大幅な仕様変更であったものの、互換性を取るために機能の拡張はほとんど行わず、結局のところクロックアップしただけという程度の違いでしかなかった。
 と、ちょっと否定的に書いたが、私はもうX68kはこの形で完成していると考えていたので、これで構わないと考えていた。ただVRAM等のアクセスが従来と変わらないのとかはちょっと不満であったし、そろそろスプライトの使える正方ピクセルのモードを正式に導入して欲しいとも考えていた(X68kシリーズは、スプライトの使える一般的な画面モードが512x512や256x256のため、一つ一つのピクセルが正方形ではなかった)。
 Oh!Xなどの雑誌では、どちらかと言うとX68030という機械そのものより、同時に開発されたSX-WINDOW3.0の方に注目が集まっていた。3.0になると機能的にもだいぶ充実してきたし、シャーペンという独自のエディタが好評で、従来よりも良い環境になっていた。SX-WINDOW3.0自体は別に従来のX68kシリーズでも普通に使う事ができたが、さすがに処理の重たいウィンドウOSなので、ここでX68030を選択する意義は十分にあった。
 私自身はもちろん、買い換える予定は無かった。そうだね、金銭的な余裕もなかったけど、不思議なくらい「最終的にこれを買おう」と思うような意欲が湧かなかった。X68k系の最上位機種だから、欲しがっても当然なはずだけど、あまり熱心に求めた記憶がない。この時期は色々他のPCにも目が行っていて、030を積んだマシンというもの自体に興味を持てなかったのかも知れない。
 実際、X68030は、X68kシリーズそのものの起爆剤とはならなかった。シャープとしては、これを機にX68kの人気を盛り上げようとしたのかも知れない。しかし実際には、本当にマニア向けのマシンという位置付けにしかなっていない。恐らくだが、X68030はすでに旧X68kを持っているユーザの一部が、より早いX68kを求めて購入しただけではなかっただろうか。それではマーケットは縮小せざるを得ない。

 このように、世間的な流れで言えば、この最強のX68kマシンの誕生によって逆説的にX68kシリーズにとどめを刺す結果となってしまったが、私自身がX68kをよりコアに使っていくのはまさにこの時期からであった。そのへんの話は以降のMCLをお楽しみに。


前のMCLへ  次のMCLへ

戻る

TOM 2006