ikemonn's blog

技術ネタをちょこちょこと

はじめて読む486 2章

486の位置づけ

  • CPUはCISCRISCに分類される
    • 486はCISCに属する86系
    • 8080というインテル製の8ビットCPUを源流としている

86系CPUの発展

8086

  • 16ビットCPU
  • 8ビットCPUである8080からの移行を容易にすることを主眼に作られた
    • セグメント方式やレジスタの種類になごりが見受けられる
    • 以降の86系は良くも悪くも8086の特徴を受け継いでいる

8088

  • 8086と同一アーキテクチャで、外部データバスを8ビットにしたもの
  • 性能は8086よりも低いが製造コストを下げられた

8087

  • 数値演算専用のチップで8086と協調して動作するように設計されている
  • 8086に数値演算機能を追加するかのような働きを持つのでコプロセッサー(CoProcessor)とも呼ばれる
  • 浮動小数点演算命令も実行できるようになった

80186

  • 8086に割り込みコントローラなどの各種コントローラ機能を加えたもの
    • 様々な電子制御装置に内蔵しやすくなった
  • 命令が若干追加されたくらいで8086との性能の差はほとんどない

286

  • 各命令の実行速度が高速化された
  • プロテクトモードが導入された

386

  • 86系初の32ビットCPU
  • セグメントの最大サイズが4Gバイト
  • 仮想8086モードとページング機能の追加

486のアーキテクチャ

特徴

  • セグメント機構
  • ページング機構
  • キャッシュメモリ
  • 浮動小数点演算機構
  • 32ビットバス

  • ソフトウェアの面から見ると386との違いは殆どない

キャッシュメモリ

  • 486の高性能の秘密
  • メモリとCPUの演算処理部との中間に置く高速メモリのこと
  • 必要になった理由
    • クロック速度の高速化によるCPUのウェイトを少なくするため
  • 仕組み
    • 一旦アクセスしたデータをキャッシュメモリにコピーしておき、次回以降はそれを使う
    • しばらく再利用されなかったデータは新たなものと入れ替えられる
    • 486はキャッシュと本来のメモリに同時に書き込む「ライトスルー方式」をとっている

486DX/ODP

  • クロックダブラーという技術を用いて高速化した486
    • CPU内部のクロック速度だけを高速にする
    • CPU以外の回路素子は通常のものを使用できる
    • CPUの演算処理は高速になる
    • CPUがメモリなどにアクセスするときは結局ウェイトがかかるが、キャッシュにヒットすれば外部メモリに待たされずに高速で処理される

486の操り方

  • 基本機能
    • マシン語命令をメモリから読み出し、それを解釈し実行する
  • システム管理機能
    • OSのメモリ管理や保護機能を実現するために用意されている

486のレジスタ

486の32ビットアーキテクチャ

  • データバスの32ビット化が大きい

    • アドレスバス
    • I/Oアドレスバス
    • データバス
  • レジスタも32ビットに拡張された

参考