こんにちは、まさとです。
CPUってのがわかんないんですけど、、
CPUはコンピュータの脳と言われるくらい
大切なのでしっかり勉強しましょう!
コンピュータの概要については以下の記事で解説しています!
上記記事を一読してから本記事を読み進めるとCPUに対する全体像を掴めるかなと思いますのでぜひ!
CPUって何でできてる?
CPUを構成する中身を見ていきましょう
えー!単体でCPUってものが
あるんだと思ってた
役割の違うものが集まって
CPUと呼ばれるんですよ
命令を実行するにはまず補助記憶装置(HDD)からプログラムを主記憶装置(メモリ)に渡してあげる必要があります。
その後にCPUが命令を主記憶装置に取りに来るといった流れで命令を取り出します。
CPUが命令を実行するために取り出した情報はレジスタと呼ばれる
CPU内部の記憶装置に保持します。
※レジスタとはごく小さな容量のものですが、
その代わりに読み書き速度はすごく早いものです。
プログラムカウンタ | 次に 実行するべき命令が入っているアドレスを記憶するレジスタ |
命令レジスタ | 取り出した命令を一時的に記憶するためのレジスタ |
インデックスレジスタ | アドレス修飾に用いるためのレジスタで、 連続したデータの取り出しに使うための増分値を保持する |
ベースレジスタ | アドレス修飾に用いるためのレジスタで、 プログラムの先頭アドレスを保持する |
アキュームレータ | 演算の対象となる数や、演算結果を記憶するレジスタ |
汎用レジスタ | 特に機能を制限していないレジスタ。 一時的な値の保持や、アキュムレータなどの代用に使ったりする |
ALUというのは処理をするためのメチャクチャ早い計算機のようなものです。
CPUのお仕事とは
CPUを構成する中見がわかったので
次は何をしているかを見ていきましょう!
CPUは基本的に以下の動きをします。
- フェッチ(メモリから命令を取り出す)
- デコード(データを解読)
- オペランド読み出し(データをメモリから取り出す)
- 命令実行(実行し結果を格納)
この四つの動きを繰り返すことでコンピュータは動いています 。
フェッチとは
上記の図が示すように
まずはプログラムカウンタの番号を見てメモリの番地を探しにいきます。
番地が見つかったらその中の命令を取り出し、
命令レジスタに書き込みます。
最後にプログラムカウンタの値を一つ追加して(ここでは0004→0005にする)
フェッチは終了です。
デコード(解読)
フェッチで命令レジスタに入った命令は上図のように中身が分かれています。
命令部:実行させたい命令の種類を示すコード番号が入っている。
オペランド部:処理対象となるデータを収めたメモリアドレスなどが入っている。
命令部の中身を命令デコーダに渡し、
命令デコーダがコード番号をもとに
どんな処理かを解読します。
例えば演算処理だったら、「加算処理が来たよ」と
ALUに伝えるまでがデコードと言います。
オペランド読み出し
命令レジスタは命令部とオペランド部に分かれていましたね。
命令部は一つ前のデコードで処理したので次はオペランド部を処理します。
オペランド部には処理の対象となるデータの番地が格納されており
対象番地を確認してメモリにデータを取りに行きます。
メモリのデータを汎用レジスタに記憶させオペランド読み出しは終了です。
命令実行
あとは汎用レジスタに入っているデータをデコードで伝えられた処理をすれば終わりです。
最後に
いかがだったでしょうか。
今回の内容をまとめます。
- CPUって何でできてる??
- CPUのお仕事とは
お疲れ様でした。
CPUってすごくいろんなことを
やってくれてるんだね
CPUはそれを高速でやるから
尊敬すべき存在ですよ笑
今回はCPUについて
解説してきました。
CPUは何で構成されているか。
CPUのお仕事は何か。
この二つがすぐに答えれるようになってくださいね!
以上、まさとでした!!