MC68020
出典: フリー百科事典『ウィキペディア(Wikipedia)』
MC68020(えむしーろくまんはっせんにじゅう) はモトローラが開発したマイクロプロセッサである。 68000、68010の後継であり、その系統は後に68030に受け継がれた。
MC68020はアドレスバスもデータバスもCPU内外含めて完全に32ビット化されている。 低価格版のMC68EC020は24ビットアドレスバスであった。
MC68020はMC68010に比較して以下の点で進化している。
- 演算論理ユニットALUを32ビット化
- 外部データバスを32ビット化
- 外部アドレスバスを32ビット化
- 新たな命令とアドレッシングモードを追加
- 3ステージのパイプラインを導入
- プリフェッチの強化
MC68000 で存在した、ワード(16bit)/ロングワード(32bit)データの配置制限も取り除かれた。 また、世界で初めて 256バイトの命令キャッシュが内蔵され、命令の高速化に貢献した。
MC68020 には、新たにコプロセッサインターフェースが搭載された。これにより、最大8個のコプロセッサを接続できる。コプロセッサとの接続は非同期バスで行われるため、メインプロセッサと同じ周波数のコプロセッサでなくても動作した。コプロセッサとしては、メモリ管理ユニット(MMU)MC68841/MC68851 や浮動少数点数演算装置 (FPU)MC68881/MC68882 が用意された。
新しい命令は以下のようなものがあった。
- スーパーバイザモードについてのいくつかの改善と拡張
- マルチプロセッシングシステムのソフトウェア制御のためのいくつかの命令(68060では削除された)
- 高級言語サポートのためのいくつかの命令(あまり使われず、以降の68kプロセッサでは削除された)
- 32ビット整数同士の掛け算/割り算
- ビットフィールド操作
新しいアドレッシングモードとしては新たな間接モードが既存のモードに追加され、インデックスの使い方が柔軟になった。 あまり触れられることはないが、これらの新しいアドレッシングモードによって68020はページプリンティングに最適となり、90年代初頭の多くのレーザープリンタが68EC020コアを使用した。
命令バッファ(命令キャッシュ)は256バイトで、1エントリ4バイトの64エントリがダイレクトマップで配置された。 小さなキャッシュではあるが、アプリケーションの性能向上に大変効果があった。
リアルタイムオペレーティングシステムを考慮し、従来のユーザーモード/スーパーバイザモード夫々のスタックポインタに加えて、割り込み用スタックポインタが追加された。割り込みの受け入れとその処理を分離できるようになり、従来のように割り込み処理中に処理を完結させる必要性が軽減された。
パイプラインを備える事でより高いクロック周波数と命令の実行速度が向上した。なお、1111ラインエミュレータにおいて、メモリを参照するオペコードを実行した場合、メモリーへの投機実行が行われる。この為、1111ラインエミュレータにシステムコールを配置したOS(例えばシャープ/ハドソン Human68k)では予期せぬメモリアクセスによってバスエラーが発生するという問題が生じた。この問題は1010ラインエミュレータでは発生しない。