| 一般情報 | |
|---|---|
| 発売開始 | 1982 |
| デザイン: | モトローラ |
| パフォーマンス | |
| 最大CPUクロックレート | 8MHz ~ 16.67MHz |
| データ幅 | 16ビット |
| アドレス幅 | MC68010: 24ビットMC68012: 31ビット |
| 物理的仕様 | |
| トランジスタ |
|
| パッケージ | |
| 建築と分類 | |
| 命令 セット | モトローラ68000シリーズ |
| 歴史 | |
| 前任者 | モトローラ68000 |
| 後継 | モトローラ68020 |


Motorola MC68010とMotorola MC68012は、 Motorola 68000の後継として1982年にリリースされた、Motorola製の16/32ビットマイクロプロセッサです。[ 3 ] 68010と68012は、仮想化機能を追加し、ループを最適化し、68000のいくつかの小さな欠陥を修正しました。MC68010のバリアントは前機種とピン互換性がありましたが、MC68012は84ピンPGAバージョンで、直接アクセス可能なメモリ空間が2 GiBに拡張されています。[ 2 ] [ 4 ]
68010 と 68012 は、ユーザー モードの MOVE from SR 命令がユーザー モードのトラップとなる点を除いて、68000 と完全にユーザー モード互換性があります。そのため、この命令を使用するユーザー モード コードをサポートするには、スーパーバイザ モードのトラップ ハンドラでこの命令をシミュレートし、この命令の後にユーザー モード コードを継続する必要があります。これは、68010 と 68012 がPopek と Goldberg の仮想化要件、特に新しい OS がゲストとして実行され、それを認識しないようにするために行われました。[ 2 ] : §1.3.2ユーザー モードの MOVE from SR がトラップとなることによるペナルティを補償するために、新しい非特権の MOVE from CCR 命令が追加されました。
68010と68012はバス障害から回復し、障害が発生した命令の実行を継続できるため、仮想メモリを実装できます。これは、例外スタックフレームが異なることを意味します。
32ビットのベクトルベースレジスタ(VBR)には、例外ベクタテーブルのベースアドレスが格納されます。68000のベクタテーブルは常にアドレス0をベースとしていました。
「ループモード」は、「ループ可能な」命令と DBcc (条件によるデクリメント/分岐) のみで構成されるループを高速化します。例としては、MOVE と DBRA が挙げられます。2 つの命令からなるミニループオペコードはプリフェッチされ、6 バイトの命令キャッシュに保持されます。ループの期間中、データオペランドに対してのみ、後続のメモリ読み書きサイクルが必要となります。[ 2 ] : §7.1.3ループ中の命令オペコードのフェッチが不要になった結果、平均 50% のパフォーマンス向上を実現しました。

MC68012のバリアントは、メモリ空間が2GiBに拡張されたことに加えて 、仮想メモリを備えたマルチプロセッサシステムの設計を支援するために、進行中の分割不可能な読み出し・変更・書き込みサイクルを示す読み出し・変更・書き込みサイクル(RMC)ピンも追加されました。
68012のメモリ空間の拡張は、アドレスの最上位バイトを使用してデータを格納するプログラムに問題を引き起こしました。これは、24ビットのアドレスバスしか持たないプロセッサ(68000および68010)では有効だったプログラミング手法でした。同様の問題は68020にも影響を与えました。

68010は68451 MMUと組み合わせて使用することも可能でしたが、1クロック分のメモリアクセスペナルティなど、設計上の問題からこの構成は普及しませんでした。サン・マイクロシステムズがSun-2ワークステーションに、コンバージェント・テクノロジーズがAT&T UNIX PC/3B1に、それぞれ独自のMMU設計を採用したベンダーもありました。
68010 は、販売されていた期間において 68000 ほど人気を博すことはありませんでした。しかし、68010 は 68000 よりわずかに高速で、仮想メモリをサポートしていたため、68451 MMU を搭載した小型Unixシステム (例えばTorch Triple Xなど) や、カスタム MMU を搭載した小型 Unix システム (Sun-2 ワークステーション、AT&T UNIX PC/3B1、Convergent Technologies MiniFrame、Plexus P/15 および P/20 [ 5 ] 、 NCR Tower XP、Apollo ComputerのDN300 および DN320 [ 6 ]、HP 9000 Model 310など) のほか、さまざまな研究用マシンで使用されています。他のほとんどのベンダー ( Apple Computerなど) は、 68020が導入されるまで 68000 を使い続けました。
68010は、Atari System 1用のMarble Madness(1984年)などのアーケードゲームで使用されました。AmigaやAtari STコンピュータ、Sega Genesisゲームコンソールの所有者の中には、システムの68000 CPUを68010に交換して、わずかな速度向上を得た人もいました。[ 7 ] [ 8 ]実際には、同じ周波数の68000と比較して、全体的な速度向上は10%未満です。