メインCPUとサブCPU

デュアルCPU構成UPDATE△

FMシリーズ最大の特徴が、CPUが2つ載っていると言うことです。特に8ビットシリーズは、メイン、サブ共に同じCPUを搭載しています(正確には、動作クロックが異なったりしますが)。とは言え、現在のマルチプロセッサ構成とは明らかに異なる思想で、役割分担がはっきりしています。この発想は、富士通がメインフレームを意識してパソコンを作ったと言われています。というのは、メインCPUとサブCPUの関係が、ホストと端末というように役割分担されているからです。

メインCPUとサブCPUを分けることによって、 と言う利点がある一方で、 という大きな欠点を背負い込んでしまいました。
デュアルCPU構成は、CPUにパワーが無かったFM-8の頃は他機種(PC-8001、8801等)に比べて有利な点だったのですが、アプリケーション(特に速度が要求されるゲーム)を作成する立場からは扱いが面倒だったようです。
どういうことかと言うと、そもそも8ビットCPUのメモリ空間は64KBなわけで、CPUが一つの場合、64KBをBASIC-ROM、RAM(メインメモリ)、VRAMで取り合うわけですから、FM-8の解像度(640×200)で8色の表示を行おうとすると、どうしてもメモリ空間が足りなくなるのです。で、解決策としては、
と言ったことが考えられるわけです。大方の機種がバンク切り替えで解決していたのですが、FM-8はデュアルCPUで解決したわけです。
描画機能をサブCPUに持たせることでメモリ空間を確保することは出来たのですが、メインCPUからVRAMを直接たたけなくなったのでした。
ちなみに、FM-16βもサブCPUを搭載していますが、メインCPUがサブCPUを止めて、直接キーボードや画面を制御することが可能だったはずです。

メインCPU△

メインCPUは"メイン"という名のとおり、あらゆる処理を行います。64KByteのメモリ空間の半分(FM-7/8等の場合)はユーザ領域に解放されていて、残り半分にBASICと各種I/Oがマッピングされています。ただし、画面関係とキーボード関係はここに含まれません。
F-BASICのROMがマッピングされている空間には、RAMもマッピング(裏RAMと呼ばれていた)されていて切り替えて使うことが可能でした。FM-8はディップスイッチで切り替えるようになっていましたが、FM-7からはソフトウェアでも切り替えることが可能だったので、RAMディスクとしてつかったりしたものです。(FM-8の場合、(FM-7と互換性はありませんが)改造して裏RAMを使えるようにして、RAMディスクとして使いました。)

サブCPU△

サブCPUは、画面出力とキーボード入力を担当しています。そのため、64KByteのメモリ空間のうちRGB各16KByteづつ、合計48KByteはVRAM(VideoRAM)の領域で、残りがサブシステムのROMと共有RAMの領域になっています。サブCPUはメインCPUと協調して動作する仕組みがあり、そのコマンドをメイン側から共有メモリに書き込みサブシステムをコントロールします。
サブシステムは、メインシステムに従属している格好ですが、メインシステムと同時に動作することが可能なので、別々の処理を行わせることが当然可能です。例えば、サブシステムで描画させながら、メインシステムで計算をしているなどと言うことが出来たわけです。
そういえば、サブシステムだけを使ったゲームを作った人もいました。

共有メモリ(共有RAM)△

共有メモリは、メインCPUとサブCPUの両方からアクセス可能なメモリで、128Byte用意されています。サブCPUに対して仕事をさせたいときは、この領域を使用して行う訳ですが、おまじないみたいな物とは言え面倒であることは間違いなかったようです。
YAMAUCHIコマンドと言ってサブシステムを自由自在に使うための隠し命令があって、これを使用するとサブシステムを自由自在にコントロールできるので、高速処理をする場合にはこれを用いることが常識になっていました。

欠点NEW△

このような構成を行ったために、640×200という当時としては高解像度が出せた上に、1ドット単位で8色の表示を実現できたのですが、いいことばかりではありませんでした。むしろ、大きな欠点としてFM-77AV系まで残ってしまったのです。というのは、メインCPUから直接VRAMのアクセスが出来ない上に、サブCPU上ではVRAM以外の領域が極端に少なく、メインとサブの共有領域が128byteしかなかったので、ビットマップの描画が高速に出来ず、アクションゲームでは大きなハンディとなってしまったのです。もっともアクションゲームに適さなかったのはこれだけではないのですが・・・
このため、FM-7系にはアクションゲームよりグラフィックを駆使したエッ*系のゲームが多かったと記憶しています。

戻る