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


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

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

68010は68451 MMUと組み合わせて使用できました。しかし、メモリアクセスに1クロック かかるという設計上の問題から、この構成は不評でした。Sun MicrosystemsはSun-2ワークステーションで、Convergent TechnologiesはAT&T UNIX PC/3B1で、 それぞれ独自のMMU設計を採用していました。
68010は販売されていた時代においても、68000ほどの人気を得ることはなかった。しかし、68010は68000よりわずかに高速で、仮想記憶をサポートしていたため、 68451 MMUを搭載したシステム( Torch Triple Xなど)やカスタムMMUを搭載したシステム(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など)など、多くの小規模なUnixシステムや、様々な研究用マシンに採用されている。他のほとんどのベンダー( Apple Computerなど)は、 68020が登場する まで68000を使い続けた。
68010は、 Atari System 1用のMarble Madnessをはじめとするいくつかのアーケードビデオゲームに使用されました。AmigaやAtari STコンピュータ、さらにはSega Genesisゲームコンソールの所有者の中には、システムの68000 CPUを68010に交換して、わずかな速度向上を実現した人もいました。[ 7 ] [ 8 ]実際には、同じ周波数で68000と比較して全体的な速度向上は10%未満です。
参考文献
- ^ 「i486、68040 パイプラインを使用してパフォーマンスを高速化する」 InfoWorld : 39、1989年5月8日。
- ^ a b c d e f g MC68010/MC68012 16/32ビット仮想メモリマイクロプロセッサ(PDF) . Motorola Semiconductor. 1985年5月. 2020年3月28日時点のオリジナルよりアーカイブ(PDF) .
- ^ 「Motorola 68010 (MC68010) ファミリー」 . CPU World .
- ^ Avtar, Singh; Triebel, Walter A. (1991). 『16ビットおよび32ビットマイクロプロセッサ:アーキテクチャ、ソフトウェア、およびインタフェース技術』 エングルウッドクリフス、ニュージャージー州: Prentice-Hall . ISBN 978-0138121570。
- ^ 「Plexus P/15-P/20 パンフレット」(PDF) UserManual.wikiPlexus Computers , Inc. 1985年。 2024年5月28日閲覧。
- ^ 「Apollo Computer 技術出版物概要」(PDF) . Apollo Computer. 1987年6月. 2022年10月13日閲覧。
- ^ Floryan, Thad. 「AMIGA (tm) テクニカルノート、AMIGA A1000をMotorola MC68010L8にアップグレードする」 。2023年9月29日時点のオリジナルよりアーカイブ。
- ^ “Genesis 68010 mod” . mode5.net . 2021年4月12日時点のオリジナルよりアーカイブ。