ざっくりCPUについて
前にも少しとりあげたのですがより詳細にCPUについてまとめてみます。
前回の記事→ https://note.com/shimo_study_log/n/n587255f9fb24
CPU(Central Processing Unit)
CPUを少しでも理解できるとPC選びがもっと楽しくなります
CPUはコンピュータの頭脳と表現され、プロセッサとも呼ばれています。
主な仕事としては、命令を取り出し(フェッチ)、解読し(デコード)、実行し(エクセキュート)、実行結果を出力する事です。
CPUの性能を理解する上で重要なのがクロック周波数とバス幅になります。
クロック周波数とは
クロック周波数は単位は「Hz(ヘルツ)」で表されます。
コンピュータの動作基準として一定の間隔で電圧が「低」「高」を繰り返します。
クロック周波数が多くジグザグした方が高速であるという事。
1GHz = 1秒間に10^(9)回の信号生成
2GHz = 1秒間に2 × 10^(9)回の信号生成
つまり、クロック周波数が高ければ動きが高速で低ければ遅いという事。
CPU内部のクロック周波数(内部クロック)とCPUとメモリとか周辺回路を結ぶ伝送路のクロック周波数(外部クロック)も存在する。
バス
CPU、メモリなどで互いがデータを送受信する伝送路の事。
バス(伝送路)が一度に送信できるビット数(0,1にやつ)をバス幅といいます。
バス幅が広く、クロック周波数(外部クロック)が大きいほど高速にデータを送受信することができます。
バスは3つのバスにより構成されています。
・アドレスバス
CPUがアクセスしたいデータのアドレスをメモリに伝えるためのバス。
・データバス
CPUがメモリとデータをやり取りするためのバス。データバスのバス幅が広いほど、一度に多くデータを送受信可能とする。
・コントロールバス(制御バス)
CPUと周辺機器などの間に、タイミング調整などの信号をやり取りするためのバス。
CPUの動作原理~レジスタ~
CPUの動作原理を学習する上で登場してくるのがレジスタです。
・レジスタとは
CPU内の記憶装置。メモリのようにいろんなデータを一時的に記憶させられます。
CPUのデータへのアクセススピードはメモリよりも遥かにレジスタの方が早い。しかし、メモリよりもレジスタの方が記憶領域が小さい。
コンピュータの動作(プログラム)はどのように行われるのか?
→コンピュータのプログラムは命令とデータにより構成されている。
命令実行サイクル
コンピュータが1つ命令を実行するときの流れについて
①命令の取り出し
命令アドレスレジスタ(プログラムカウンタ)に、これから実行する命令が格納されているメモリ(主記憶)のアドレスが保持されています。
アドレスを元にCPUがメインメモリから命令を取り出します。
CPUがメインメモリから命令を取り出した、実行する命令を命令レジスタに格納します。
※命令について補足
プログラミング言語で記述された命令は最終的に「1」「0」の機械語に変換されます。そして機械語を解読し実行することでプログラムが動作します。
機械語は命令部とアドレス部(オペランド部)で構成されます。
命令部は演算子的なもの、アドレス部は数値と変数的なもの
②命令の解読
取り出された命令の命令部をデコーダ(解読器)で解読し演算装置へ指示を出す。
③実効アドレス計算
命令レジスタに格納されたアドレス部(オペランド部)の値はアドレスレジスタに送られ、処理対象データが格納されている実効アドレスを計算します。
④オペランドの取り出し
実効アドレス計算によって割り出されたデータを取り出して演算装置へ送る。
⑤命令の実行
演算装置で演算を実行
⑥演算結果の格納
演算結果をメインメモリへ出力し格納
主記憶装置とレジスタのまとめ
・主記憶装置(メインメモリ)
CPUとは独立している。データとプログラムを格納する。
・レジスタ
CPU内部に存在(構成)している。演算対象や演算結果を格納する。主記憶装置のアドレスを格納するレジスタもある。