2018-12-04 23:14 — asano
カテゴリー:
MC68020で外部バスがデータ・アドレスともに32ビットとなってメモリは当初計画のフルスペックの4GBとなりました。とはいえ登場した頃はまだ4GBのメモリを必要とする応用など無かったのでアドレスデコードが面倒くさいだけと思った人も多いでしょう。
ここまできてもメモリ管理ユニット(MMU)は内蔵されていません。メモリ空間の拡張のためにもMMUを必要とした80286などと異なり、必要性がそれほど無かったからかもしれません。
それでも仮想記憶には必要なので外付けとして用意されました。一つはMC68000,MC68010用のMC68451を拡張したらしいMC68461ですが、残念ながら詳しい資料が見当たりません。もう一つはMC68851、こちらは一部のパソコンなどにオプションで搭載できましたからそれなりに知られていました。いずれも論理メモリ空間・物理メモリ空間はともに4GBです。
命令フェッチのみですが256バイトのキャッシュも内蔵されました。
Dynamic Bus Sizing機能が搭載されたのもMC68020からです。パフォーマンスを引き出すためには32ビット幅でメモリを接続しますが、ブートROMなどを32ビットで用意するのは大変です。そこでアクセス時にメモリは自分が8ビット幅なのか16ビットなのか32ビットなのかMPUに伝えることでバス幅の異なるメモリを混在させることができるようになりました。
また奇数アドレスへのワード(16ビット)アクセスも可能になりました。ただし命令のフェッチと例外ベクタの読み込みはワード境界に整合している必要があるのでアドレスエラーがなくなるわけではありません。
MC68030になるとMC68851相当(一部機能は削除されています)のMMUが内蔵されました。そのため一時はUNIXワークステーションの標準プロセッサとして使われるようになりました。メモリ空間は4GBのまま変化ありません。
命令キャッシュも命令用のほかにデータ用にも256バイト追加されています。このキャッシュを速やかに埋めるためのバスサイクルも新設されています。
MC68040ではキャッシュ容量が命令・データともに4kBに増加していますが、メモリ空間は4GBのままです。Dynamic Bus Sizingは残念ながら廃止(外付けのMC68150 Dynamic Bus Sizerを用意)されてしまいました。
MC68060はMC68040とピンコンパチで、キャッシュ容量が命令・データともに8kBに増加しています。
1994年のこのMC68060を最後にMC68000系の進化は停止(組み込み向けなどの改良は行われていますが)しました。メモリ空間もMC68020で32ビットのアドレス空間がフル実装された後の拡張はありません。
4GBを超える物理メモリ空間を持つPentium Proの登場はその翌年でした。
MC68000系は当初想定されていた範囲を超える要求が出てくる前に終焉を迎え「美しい姿のまま逝けた」のかもしれません。
コメントを追加