MC68010
MC68010(エムシー ロクハチゼロイチゼロ)はモトローラが1980年代初頭に開発した16/32ビットのマイクロプロセッサである。
概要
MC68000 とほぼ同じであるが、仮想記憶と仮想マシンが実現できる機能が追加された。主に、次のような点で異なる。
- ブレークポイントに関する命令を追加
- レジスタ制御に関する命令の追加(ユーザモードではSRではなくCCRを使用)
- 割り込みや例外ときに全てのプロセッサ状態を退避できるようになった。これにより68000では不可能だった仮想記憶を実現できるようになった(詳述すると、68010ではバスエラーを処理できるようになった)。
他にも68010は「ループモード」と称する機能を持ち、2命令だけを保持する小さな命令キャッシュを持っていて、小さなループを高速化することができた。しかし、全体としての性能向上は68000に比較して10%以内(1.1倍)であり、68000とピン互換性があっても置き換えるほどの違いではなかった。なお、モトローラが68000および68010のマニュアルで公表している演算能力は、68000で0.8MIPSとされ、68010では1MIPSとされている。
68010は68000に対して100%ソフトウェア互換ではない。最も問題となる違いは例外時のスタックフレームである。
利用
68010はセグメント方式の(MMU) 68451と合わせて使うことが出来たが、設計上の問題があり、この構成の場合、メモリアクセスに1クロックサイクル余分に時間がかかるため人気がなかった。このため、サン・マイクロシステムズなどのベンダーは自前でMMUを設計した。
68010は68000に追加した部分がコストに見合わないと判断されたため一般にはあまり使われなかった。ほとんどのベンダーはMMU機能を次のMC68020まで待った。しかしながら68000から若干速度が向上しているため、いくつかのUNIXワークステーションや研究用マシンで使われている。
68010はハッカーにとって便利な機能を備えている。ベクターベースレジスタ(VBR)を使うと例外ベクタを0番地から任意のアドレスに移すことが出来る。デバッガプログラムを使うと、割り込みを捕まえたときにVBRを書き換えることができた。