ロクハチゼロニゼロ)は、1984年にモトローラが開発した32ビットマイクロプロセッサ。68000、68010の後継であり、その系統は後に68030に受け継がれた。低価格版の68EC020もある。外部リンク解説[編集]MC68020従来の同系統のプロセッサはデータバス16ビットでアドレスバス23ビットだったのに対して、68020はアドレスバスもデータバスもプロセッサ内外含めて完全に32ビット化されていた。新たなパッケージング技法により、従来のDIPに対してサイズを大きくすることなく多くのピンを出力できるようになっている。68EC020はアドレスバスを24ビットにしてコストを低減させている。68020は12MHzから33MHzの速度の製品が出荷された。68010からの改良点[編集]68020は、演算論理ユニットALUと外部データバスと外部アドレスバスの32ビット化、新たな命令とアドレッシングモードの追加、プリフェッチの強化など、68010に様々な改良を施している。3ステージのパイプラインを導入。それによってより高いクロック周波数が実現でき、命令の実行速度が向上した。68010には「ループモード」があり小さなループを小さな命令キャッシュの保持して高速化することができたが、あまり効果はなかった。68020ではそれを普通の256バイトの命令キャッシュに置き換え、68kシリーズで初めてキャッシュメモリを内蔵することとなった。68000と68010では、ワード(16ビット)とロングワード(32ビット)がワード境界(アドレスが偶数の位置)にあるときのみ、ワードまたはロングワードとしてアクセスできるという制限があった。68020ではこのデータ配置制限も取り除かれた。整列されていないロングワードへのアクセスは、整列されたロングワードへのアクセスよりも遅い。リアルタイムオペレーティングシステムを考慮し、従来のユーザーモード/スーパーバイザモードそれぞれのスタックポインタに加えて、割り込み用スタックポインタが追加された。割り込みの受け入れとその処理を分離できるようになり、従来のように割り込み処理中に処理を完結させる必要性が軽減された。新たにコプロセッサインターフェースが搭載された。これにより、最大8個のコプロセッサを接続できる。メインCPUは「Fライン命令」(オペコードの先頭4ビットが全て1の命令)を認識すると、特別なバスサイクルでコプロセッサとやり取りし、その命令をコプロセッサに実行させる。MMUはCPU1つに対して1つだけ接続可能。FPUは原理的には複数個接続可能だが、通常は1つだけ接続した。コプロセッサとの接続は非同期バスで行われるため、メインプロセッサと同じ周波数のコプロセッサでなくても動作した。マルチプロセッシング機能[編集]マルチプロセッシングは、RMCピン[1]で外部にリード・モディファイ・ライト(英語版)サイクル実行中であることを示す信号を供給することで実装されている。他のプロセッサはその間メモリアクセスを控える[1]。ソフトウェアサポートとしては、TAS命令、CAS命令、CAS2命令などがある。マルチプロセッサシステムでは、CPU間でコプロセッサを共有できない。コプロセッサからの復帰、バスエラーやアドレスエラー例外からの復帰に関わる問題を防ぐため、一般にマルチプロセッサシステム内の全CPUが同一モデルでなければならず、全FPUも同一モデルでなければならない。命令セット[編集]新たな命令としては、スーパーバイザモードについてのいくつかの改善と拡張、マルチプロセッシングシステムのソフトウェア制御のためのいくつかの命令(68060では削除された)、高級言語サポートのためのいくつかの命令(あまり使われず、以降の68kプロセッサでは削除された)、32ビット整数同士の掛け算(結果は64ビット)、64ビット数値を32ビット数値で割る割り算(結果は32ビットの商と余り)、ビットフィールド操作命令がある。いう命令が非特権モードで実行可能だったためPopekとGoldbergの仮想化要件を満たしていなかった。68010以降、これが特権保護されるようになり、仮想化ソフトウェアをサポートしやすくなった。F(1111)ラインエミュレータにおいて、メモリを参照するオペコードを実行した場合、メモリーへの投機実行が行われる。Human68kのVer.2.0以前)では予期せぬメモリアクセスによってバスエラーが発生するという問題が生じた。この問題はA(1010)ラインエミュレータでは発生しない。アドレッシングモード[編集]新しいアドレッシングモードとしては新たな間接モードが既存のモードに追加され、インデックスの使い方が柔軟になった。触れられることはないが、これらの新しいアドレッシングモードによって68020はページプリンティングに最適となり、90年代初頭の多くのレーザープリンターが68EC020コアを使用した。68020の命令バッファ(命令キャッシュ)は256バイトで、1エントリ4バイトの64エントリがダイレクトマップで配置された。小さなキャッシュではあるが、アプリケーションの性能向上に大変効果があった。それによってバストラフィックが低減され、特にDMAを多用するシステムに有利となった。いったパーソナルコンピュータだけでなく、サン・マイクロシステムズのSun-3ワークステーション、ヒューレット・パッカードのネットワークアナライザーなどにも使われた。アーケードゲームとしてはナムコSYSTEM22、SYSTEM22SUPERへの使用が確認されている。フランスのTGVでは、線路を通して列車に送られる信号のデコードにこのプロセッサを使用していた。タイフーンの操縦制御システムでも使われている。モトローラが発売したマイクロプロセッサである。68020の低価格版であり、アドレスバスを24ビットに縮小してあるため、最大16MBのメモリしかアクセスできない。68EC0020を採用していた。もこのプロセッサを使用している。