PC初心者でも1から学ぼう

エンジニアの基礎知識を徹底解説

未分類

【エンジニア基礎】CPUって何に使われているの?初心者の疑問を解決

情報処理試験でもそうですが、

コンピュータの基礎を勉強すると

CPUやらメモリやらが出てきますね。

大体の場合は、CPUとメモリは、

構造がどうのとか言うお話をされます。

正直私はそれを聞いてじゃあ実際にどう使われてんのソレと

思うことが多くありました。

そこで今回はCPUが何に使われているのか

見ていきたいと思います。

CPUは演算装置だけど実際はどのように使われているのか

基本的なお話ですが、CPUとは何かを最初にお話しします。

CPUは、簡単に言うとICです。

CPUは以下の4つから構成されています。

  • レジスタ
  • 制御装置
  • 演算装置
  • クロック

レジスタは、プログラムの命令やデータを格納する場所です。(メモリのような場所)

レジスタは、1CPU内に100個位あることもあります。

制御装置は、メモリ上の命令やデータをレジスタに読み出して、

コンピュータ全体を制御する役割があります。

演算装置は、メモリからレジスタに読み出したデータを演算する役割があります。

クロックは、CPUが動作するタイミングとなるクロック信号を発生させる役割があります。

CPUは、演算装置と呼ばれていますね。

これは、CPUが、プログラムの内容を解釈して処理する装置であることを指します。

さてここで、プログラムがが実行されるまでの流れを見ていきましょう。

  1. プログラム言語を記述
  2. プログラムをコンパイル(マシン語に変換)
  3. プログラム起動時に、実行ファイルのコピーがメモリ上に作成
  4. CPUがプログラムの内容を解釈・実行

この1~4の流れは、プログラムが動作するうえで重要な知識となるのでイメージしておいてください。

ここでメモリについても確認しましょう。

メモリは、プログラムの命令やデータを格納しています。

そして、メモリ内には、1バイト(=8ビット)ずつにアドレス(番地)があります。
(【エンジニアの基礎】2進数を徹底解説!!コンピュータの基礎を理解する
(【エンジニア基礎】知っておきたいコンピュータの基礎知識

CPUはこのアドレスを指定してメイン・メモリに格納されている

命令やデータを取得し、演算を行います。

プログラムが実行される流れ

CPUやメモリがどうのように使われているかは少しわかってきたでしょうか。

ここからは、プログラムが実行する際にCPUやメモリの関連性を少々見てみていきましょう。

まず、プログラムが動き出すと、CPU内のクロック信号に合わせて、

制御装置がメモリから命令やデータを読み出します。

その命令を解釈・実行することで、演算装置がデータを演算し、

制御装置がコンピュータを動かします。

これがプログラムが実行される実際の流れとなります。

CPUはレジスタの集合体

CPUは、「レジスタ」、「制御装置」、「演算装置」、「クロック」から構成されるのは

分かったと思います。

ただ、実際にプログラムを書いたりしている中で意識するのは、

「レジスタ」だけです。(今のプログラム言語ではレジスタすらも意識はしませんが・・・)

レジスタは、「命令」か「データ」を格納する場所です。

実は、データには、以下の2種類があります。

  • 演算に使われる値
  • メモリのアドレスを表す値

値の種類によって、それを格納するレジスタの種類が異なります。

演算に使う値は「アキュムレータ」に格納し、

メモリのアドレスを表す値は、「ベース・レジスタ」や

「インデックス・レジスタ」に格納します。

つまり、CPUには様々なレジスタが存在するのです。

代表的なレジスタには、

プログラム・カウンタ、アキュムレータ、フラグ・レジスタ、

命令レジスタ、スタック・レジスタ等があります。

プログラムの流れを決めるプログラム・カウンタ

CPUの仕組みを知ったことで、

次に、どのようにCPUが使われていくのか見ていきましょう。

これには、プログラムが処理される仕組みを見てみるとわかりやすいです。

まずプログラムの起動が指示されると、

ハード・ディスクに保存されているプログラムをメモリにコピーします。

メモリには、命令やデータを格納する場所を示すアドレスが割り振られています。

プログラム・カウンタは、CPUが1つの命令を実行すると自動的に1ずつ増加します。

このプログラム・カウンタを参照して、CPUの制御装置はメモリから命令を読み出して実行していきます。

すなわち、プログラム・カウンタが、プログラムの流れを決めているのです

条件分岐と繰り返しにはフラグ・レジスタ

プログラムの流れには、「順次進行」「条件分岐」「繰り返し」の3種類があります。

順次進行とは、アドレスの値の順に命令を実行することです。

条件分岐とは、条件に応じて任意のアドレスの命令を実行することです。例えばif文です。

繰り返しとは、同じアドレスの命令を何度か繰り返し実行することです。例えばwhile文です。

条件分岐や繰り返しで使われるジャンプ命令は、直前に行われた演算の結果を参照して、ジャンプするかを判断します。

ここでフラグ・レジスタが使われます。

フラグ・レジスタは、直前に実行した演算の結果として、

アキュムレータの値が正、ゼロ、負のいずれになったかを記憶する役割を持つものです。

まとめ

いかがでしたでしょうか。

CPUがどのように使われるか理解できるようになりましたか。

今のシステムエンジニアはほとんどがブラックボックスとなっている部分が多く

CPUやメモリがどのように動いているかを知る必要がないかもしれません。

しかし、実際にコンピュータがどう動くかを意識できることで、

少し上の段階に上がれるのではないでしょうか。

-未分類

Copyright© エンジニアの基礎知識を徹底解説 , 2019 All Rights Reserved Powered by AFFINGER5.