見出し画像

CPUが処理する流れ~さまざまな記憶装置(2024.05.25)

参考書


CPUが処理する流れ

主記憶装置の仕組み

  • 主記憶装置

    • 命令データを格納しておく装置

    • 内部は細かく区分けされていて、各区画にアドレス(番地)が割り振られている

命令とデータ

  • CPUはアドレスを指定して、主記憶装置から命令データを取り出す

  • 主記憶装置に格納されている命令
    プログラムに書かれた複数ある命令のうちの一つ

  • 主記憶装置に格納されているデータ
    計算の対象となるデータや、その計算結果のデータ

  • CPUは主記憶装置から「命令」と「データ」を取り出して計算を行い、計算が完了したらその結果(データ)を主記憶装置に格納する。

  • 命令の構成

    • 命令部とアドレス部で構成される

レジスタ

  • CPUの中にある、命令やデータを一時的に格納する記憶装置

  • 小さな格納庫のようなもの

  • 「格納対象」ごとにいくつかの種類がある

  • 基本情報では、3種類が良く出題される

  • プログラムカウンタプログラムレジスタ
    次のアドレス」を格納するレジスタ

  • 命令レジスタ
    命令」を格納するレジスタ

  • 汎用レジスタ
    データ」を格納するレジスタ

CPUが命令を処理する流れ

  • CPUが主記憶装置からデータを取り出す流れ

  1. コンピュータが起動すると、CPUはプログラムカウンタに格納されている「次の命令のアドレス」を見て、主記憶装置に「命令」を取りに行く

  2. プログラムカウンタは一度参照されると、自動的に番号を加算して、次の「命令」のアドレスを示すように更新される

  3. 主記憶装置から取り出された命令は「命令レジスタ」に格納される。なお、主記憶装置から命令を取り出して命令レジスタに格納することを「フェッチ」という

  4. 命令はCPUの中にある命令デコーダ(命令解読器)という装置で解読される

  5. 解読した結果、命令の内容が「4番地にあるデータを取り出せ」という指示ならば、主記憶装置の4番地にあるデータ「3」を取りに行く

  6. 取り出されたデータは「汎用レジスタ」に格納される

アドレス指定方式

  • 大きく「直接アドレス指定」と「間接アドレス指定」の2種類がある

直接アドレス指定

  • アドレス部に有効アドレスが入っている方式

  • 有効アドレス
    CPUの処理対象となるデータが格納されているアドレス

間接アドレス指定

  • アドレス部の値が主記憶装置上のアドレスを指し、そのアドレスに有効アドレスが入っている方式

  • メリットは、アドレス部に格納できないような「大きなサイズのアドレス」を主記憶装置に保存できること

  • 命令のアドレス部の容量には限りがあるので、あまり大きなサイズのアドレスは保存できない

  • 主記憶装置であれば大きなサイズのアドレスも保存できる

  • デメリットは、主記憶装置へのアクセスが2回必要であるため、処理に時間がかかる

割込み

  • 現在進行中のプログラムを中断して、別のプログラムに切り替えること

  • 割込みの流れ

    1. CPUはプログラムカウンタにあるアドレスを別の別の場所に避難させる

    2. 割込んできた命令のアドレスをプログラムカウンタにセットする

    3. 割込みの命令が完了後、CPUは退避させていたアドレスをプログラムカウンタに復帰させて処理を再開する

  • 目的は、優先度の高い命令があった場合に、CPUが他の命令を実行中であっても優先度の高い命令を先に処理するため

内部割込みと外部割込み

  • 割込みは「内部割込み」と「外部割込み」に分類される

  • 内部割込み
    実行中のプログラムが原因で発生する割込み

  • 外部割込み
    実行中のプログラム以外が原因で発生する割込み

  • 基本情報では、その割込みが内部なのか外部なのかの判断が問われる

内部割込みの種類

  • すべて実行中のプログラム

  • プログラム割込み

    • プログラムの実行中に発生したエラーによって起きる割込み

    • 例1)ゼロ除算
      数値を0で除算するとエラーになる

    • 例2)演算結果のオーバーフロー

    • 例3)未定義命令を実行(プログラム例外)

    • 例4)メモリやデバイスが存在しない領域にアクセス(アドレス例外)

  • スーパーバイザーコール割込み

    • OSの機能を利用するときに起きる割込み

    • 例)プログラムの実行中にデータの入力をユーザーに要求する

  • ページフォールト

    • 仮想記憶管理での、主記憶に存在しないページへのアクセス

外部割込みの種類

  • 原因は実行中のプログラム以外

  • タイマ割込み

    • CPUのタイマによって発生する割込み

    • 例1)インターバルタイマによる指定時間の経過時(ラウンドロビン方式など)

    • 例2)ウォッチドッグタイマによるタイムアウト(永久ループのあるプログラムを停止させるときなど)

  • 入出力割込み

    • 入出力が完了したことによる割込み

    • 例1)入出力処理の終了のお知らせ

    • 例2)処理中の入力装置や出力装置に異常が発生したとき

  • 機械チェック割込み

    • 装置内の検査によって異常を検出したときに起こる割込み

    • 例1)停電などの電源異常による割込み

    • 例2)メモリパリティエラーが発生したことによる割込み

  • コンソール割込み

    • プログラム実行中にオペレータがコンソールから処理要求を出したときに発生する割込み

さまざまな記憶装置

  • データを記憶する装置

  • 例)USBメモリフラッシュメモリ

  • コンピュータに搭載されている記憶装置は大きく次の3つに分類できる

    1. 主記憶装置

    2. 補助記憶装置

    3. キャッシュメモリ

主記憶装置

  • CPUが直接読み書きする記憶装置

  • 主記憶」や「メインメモリ」と呼ばれることもある

  • 役割は命令データを一時的に格納しておくこと

  • 入力された命令は、いったん主記憶装置に保存され、CPUはそこから命令を順次取り出して処理を実行する。

  • 主記憶装置を使用することで、CPUは自身の処理能力を超える量の命令であっても、最終的にはすべて実行できる

  • 特徴は2つ

    • 主記憶装置は補助記憶装置と比べて、データを高速に出し入れできる

    • 主記憶装置に保存されたデータは、コンピュータの電源を切ると消滅する。

補助記憶装置

  • 主記憶装置を補助するための記憶装置

  • 役割は、データを長期的に保存すること

  • OSやアプリケーションソフトウェア、各種データなどが保存されている

  • 主な補助記憶装置

    • HDD(Hard Disk Drive)
      円盤型の磁気ディスク(ハードディスク)を高速回転させてデータを保存する補助記憶装置

    • SSD(Solid State Drive)
      半導体メモリを使った補助記憶装置

キャッシュメモリ

  • CPUと主記憶装置の間にある超高速の記憶装置

  • CPUは、キャッシュメモリを使用して、処理の待ち時間を短縮する

  • CPUと主記憶装置の処理速度の差を埋めるために使われる

  • CPUから主記憶装置へのデータの読み書きはキャッシュメモリを介して行われる

  • 頻繁に使うデータを主記憶装置ではなく、キャッシュメモリに保存することで、CPUは速度の遅い主記憶装置に直接アクセスしなくて済むので処理速度が上がる。

  • キャッシュメモリの種類

    • 内部キャッシュメモリ
      CPUの内部にあるキャッシュメモリのこと

    • 外部キャッシュメモリ
      CPUの外部にあるキャッシュメモリのこと

    • 多段キャッシュ
      内部キャッシュメモリと外部キャッシュメモリがどちらも搭載された構造になっているキャッシュメモリのこと

  • キャッシュメモリは通常「SRAM」と呼ばれる高価な半導体メモリで作られているため、主記憶装置よりも容量が小さい

  • 一般的なPCでは、キャッシュメモリの容量は主記憶装置の1%にも満たないほど

ヒット率

  • 必要なデータがキャッシュメモリ上に配置されている確率のこと

  • ヒット率が高い方が、より高速に処理を実行できるため、CPUの処理効率も高くなる。

実効アクセス時間

  • アクセス時間
    CPUが主記憶装置とデータをやり取りする際にかかる時間のこと

  • キャッシュメモリへのアクセス時間、主記憶装置へのアクセス時間にヒット率を加味して算出するより実態に近いアクセス時間のこと

  • 実効とは、キャッシュメモリを用いたときの実際の効き目という意味

  • 実効アクセス時間の計算
    実効アクセス時間 = キャッシュメモリへのアクセス時間 × ヒット率
                        +
               主記憶装置へのアクセス時間 × (1-ヒット率)

メモリインタリーブ

  • CPUから主記憶装置へのアクセスを高速化するために、主記憶装置内部を複数のバンクと呼ばれる単位に分割し、各バンクに並列にアクセスすること

キャッシュメモリを使ったデータの書き込み方式

  • キャッシュメモリ主記憶装置という2つの書き込み先があるため、どちらに書き込んだ方が効率的なのかを考えなければならない。

  • ライトスルー方式」と「ライトバック方式」の2つの方式がある

  • ちなみに読み込み方式については、キャッシュメモリにデータがなければ、主記憶装置に見つけにいくだけなのでシンプル

ライトスルー方式

  • CPUがキャッシュメモリにデータを書き込む際に、主記憶装置にも同じデータを書き込む方式

ライトバック方式

  • 通常はキャッシュメモリのみにデータを書き込み、不要なデータをキャッシュメモリ上から追い出す際に、その追い出すデータを主記憶装置に書き込む方式

進捗

41 / 97 (42%)


この記事が気に入ったらサポートをしてみませんか?