MC68010について
MC68010は
モトローラが
1980年代の初めに登場させた16/32ビット
マイクロプロセッサです。このプロセッサは、先代の
MC68000と非常に似ていますが、事前に設計された
仮想記憶機能や仮想マシンを実現するための新しい機能が追加されています。
機能の概要
MC68010は、いくつかの重要な改善点を持っています。まず、ブレークポイントを操作するための命令が追加され、デバッガの使用がより便利になりました。また、レジスタ制御に関する命令も改良され、ユーザーモードにおいてはSR(ステータスレジスタ)ではなくCCR(条件コードレジスタ)が使用されるように設計されています。
さらに、68010では、割り込みや例外が発生した際に、プロセッサの状態をすべて退避できるようになりました。これは68000では難しかったことですが、この新機能によって
仮想記憶を実現できるようになりました。具体的には、68010は
バスエラーを効率的に処理できるため、より複雑なアプリケーションを運用できる基盤を提供します。
ループモードと性能
MC68010には「ループモード」とも呼ばれる機能が備わっています。これは、2つの命令を保持する小さな命令キャッシュを持ち、小さなコードのループを高速に実行できるようにするものです。ただし、全体の性能向上は68000と比較しても10%程度(1.1倍)に留まり、ハードウェアのピン互換性があったため交換可能であったものの、要求される性能には至りませんでした。性能に関しては、68000の演算能力が0.8
MIPSとされ、この68010では1
MIPSとなっています。
ソフトウェア互換性と利用法
MC68010は、68000と100%のソフトウェア互換性を持っているわけではありません。特に注目すべきは、例外が発生した際のスタックフレームの違いです。このため、開発者はコーディング時に注意が必要です。
68010は、セグメント方式の
メモリ管理ユニット(MMU)である68451と組み合わせて使用することができますが、設計上の理由から、この構成ではメモリアクセスに追加のクロックサイクルが必要となり、実際には見劣りする結果に繋がりました。これにより、
サン・マイクロシステムズなどの他のベンダーは、自社でMMUを開発することを選ぶことが多かったのです。
68010は、その追加機能がコストに見合わないと直感的に理解されたため、市場での広がりはあまりありませんでした。ほとんどのベンダーは、次世代の
MC68020モデルが登場するまで順次機能拡張されることを期待したのです。しかし、68010でも68000と比較してわずかに速度向上が見られたため、いくつかの
UNIXワークステーションや実験用マシンで使われることはありました。
さらに、68010は
ハッカーや開発者にとって便利な機能を提供します。ベクターベースレジスタ(VBR)を用いることで、例外ハンドラのベクタを特定のアドレスから任意の場所へと移動させることができます。また、デバッガーを利用することで、発生した割り込みを捕捉し、VBRを書き換えることが可能で、その柔軟性は開発現場において重宝されました。