あと、MMUを併用してもMC68000単独では仮想記憶を使えません。相応の外部回路が必要となります。あ、たまにMC68000にはバグが有って仮想記憶が使えないのをMC68010で修正したなんて書いてあるものを読みますが、それは誤りです。MC68000には仮想記憶の機能がないので使えなかったのを、MC68010では仮想記憶サポートを追加しただけです。8080Aに乗算命令がないのが8080Aのバグだと主張するようなバカらしい意見ですね。バグ説は。
それでMC68010とMC68451を組み合わせることも可能で、一応は仮想記憶を使いこなすことができますが、人がパーソナルコンピュータ的に使用するためのOSを実装するにはセグメント式のMMUは使いにくいので、そういう用途に使われた例はほとんどないでしょう。たとえば、128
KByteのメインメモリと20 MByteのハードディスクドライブを備えた何かの制御装置で、各タスクがせいぜい30
KByteのメモリを消費するけれど制御プログラム全体では1 MByteになってしまってメインメモリに同時に格納することができない。ただし同時には3個のタスクがメインメモリに存在すれば、パフォーマンスはそんなに落ちないなんて場合に役立ちます。プログラムオーバーレイの技術を使えば仮想記憶なしでも動作させられそうですが、細かいオーバーレイの設計をせずに一応は動くプログラムが作れるという意味では、そういう仮想記憶をサポートするモニタ下でプログラムを開発する方が楽になります。こういった組み込み用途では、各タスクの使用するメモリの上限がプログラム作成時に厳密に決まっていることが多いためセグメント方式のメモリ管理に適合しやすいわけで、仮想記憶サポートがCPUにあれば、実行時にタスク単位でメモリの内容を入れ替えることができます。
Return to IC Collection