🌍

基本情報技術者試験 vol.2

2024/12/18に公開

前回の投稿では、コンピューターが動作する上で欠かせない5大装置について解説しました。
今回は、コンピューターの中でどのように動作してデータを処理しているのか解説していきます。

CPUとメモリの関係

CPUとメモリについて少し復習します。

  • CPU・・・データの演算処理やプログラムの命令を解釈してコンピューター全体の動作を制御する
  • メモリ・・・コンピューターで処理を実行するために必要なプログラムやデータを記憶する

CPUはメモリに記憶されているプログラムやデータを取り出して命令を実行します。
では、具体的にどのように取り出して命令を実行しているのでしょうか。


レジスタ

CPUにはメモリから取り出した命令を実行するために、レジスタと呼ばれる記憶装置が備わっています。この時、「いやいや、必要なプログラムやデータを記憶する役割を担うのはメモリじゃないの?」と思われる方もいるかもしれません。しかし、処理が行われるのはCPU内部であって、メモリではありません。そのため、CPUにはメモリから取り出した命令を記憶するための装置が必要になるのです。

名称 役割
命令レジスタ 実行する命令を一時的に記憶する
プログラムカウンタ 次に実行すべき命令を記憶する
汎用レジスタ 命令の実行に必要なデータを記憶する

名称 役割
1.命令の取り出し(フェッチ) プログラムカウンタと命令レジスタに命令を取り出す
2.命令の解読 命令レジスタの内容を命令デコーダで解読する
3~4.対象データ取り出し 命令レジスタに必要なデータを汎用レジスタに取り出す
5.命令実行 汎用レジスタと演算装置を用いて命令を実行する


以上がCPUの命令の実行手順になります。制御装置でメモリから取り出した命令を記憶及び解読して、演算装置でその命令を一つ一つ実行していくんだなと思っていただければ大丈夫です。
次に、命令の実行に必要な対象データの参照方式について詳しく説明していきます。


機械語のアドレス指定記憶装置

  1. 即値アドレス指定方式
    オペランド部に対象データそのものが入っているため、メモリの参照を行いません

  2. 直接アドレス指定方式
    オペランド部に記載しているメモリのアドレスが直接使用できます

  3. 間接アドレス指定方式
    オペランド部に記載しているメモリのアドレスが、対象データのアドレスを示します

  4. インデックスアドレス指定方式
    オペランド部の値とインデックスレジスタの値を加算して、対象データのアドレスを示します
    ※インデックスレジスタ・・・連続したデータ(配列等)の取り出しに必要な増分値を記憶する

  5. ベースアドレス指定方式
    オペランド部の値とベースレジスタの値を加算して、対象データのアドレスを示します
    ※ベースレジスタ・・・プログラムをメモリにロードした際の先頭アドレスを記憶する

  6. 相対アドレス指定方式
    オペランド部の値とプログラムカウンタの値を加算して、対象データのアドレスを示します

プログラムによっては、データが連続して配置されている場合や、特定の位置にある場合など、アクセスのパターンが異なります。そのため、対象データの参照方法は、コンピュータの処理効率、柔軟性、プログラムの可読性や最適化などを向上させるために多様であることで、さまざまなデータアクセスのパターンに対応でき、特定のアプリケーションや処理内容に最適な方法を選べるようになります。


以上がコンピュータ内での動作についての説明です。私たちが仕事や日常で使用するソフトウェアは、5大装置を介してCPUとメモリが連携することで動作しています。しかし、ソフトウェアと5大装置だけでは、コンピュータは完全には動作しません。5大装置とソフトウェアを仲立ちする存在が必要になるのです。それが、私たちが普段耳にする「OS(オペレーティングシステム)」です。
次回は、このOSについて説明していきます。

<参考資料>
・アドレス指定方式とは | 分かりやすく図解で解説
https://medium-company.com/アドレス指定方式/#google_vignette
・CPUの命令実行手順とレジスタ【基本情報技術者になろう!】
https://www.hiro877.com/entry/_InstructionExecutionProcedure
・CPUの命令実行の流れを理解しよう!(プログラムカウンタ、レジスタ、ALUなど)
https://itmanabi.com/cpu-order/
・キタミ式イラストIT塾 基本情報技術者 令和06年 (情報処理技術者試験)
 著:きたみりゅうじ

Discussion