基本情報技術者〜CPU[1]〜



f:id:potato_head0809:20210116010233p:plain




こんにちは!ポテトヘッド(@potato_head0809)です!



今回から基本情報技術者について触れていきたいと思います!



まずは、CPUについて始めていきましょう。



CPUとは...?



CPUはご存知でしょうか。聞いたことはあるかもしれません。



中央処理装置とも言われる部品で、コンピュータの中枢として動いています。



CPUには「制御装置」と「演算装置」があり、その名の通り



各装置を制御したり、演算を行ったりします。



しかし、CPUというものは指示がないと動きません。



そこで、プログラムという指示の書かれたものが必要になります。



それを1つ1つ実行するのがCPUの仕事になります。



コンピュータの5大装置



コンピュータは大きく分けて、5つの装置から構成されています。



それは、

制御装置、演算装置、記憶装置、入力装置、出力装置です。



f:id:potato_head0809:20200707090213p:plain




コンピュータは「プログラム」が「ハードウェア」に対して命令することで動きます。



その命令を理解し、演算や処理を行うのが先程話しました「CPU」の役割です。



しかし、CPUのみではなく、その他にも様々な装置が必要になるのです。



例えば、「検索したい」と思ったとき、入力する装置がなくては何も出来ません。



それを手助けしてくれるのが上記の5つの装置となるわけです。



ここで簡単に5大装置の役割について触れておきます。



なお、ここでは記憶装置を「主記憶装置」と「補助記憶装置」に分けて説明します。



「制御装置(CPU)」



プログラムの命令を解釈し、コンピュータ全体の動作を制御する。



   

「演算装置(CPU)」

   

四則演算の計算や、データの演算処理を行う。

   

算術論理演算装置(ALU)ともいう。



   

「主記憶装置(記憶装置)」

   

動作する為に必要なデータを一時的に記憶する装置。

   

代表的な例として、メモリが挙げられ、電源を切ると内容は消える。



   

「補助記憶装置(記憶装置)」

   

プログラムやデータを長期間記憶する装置。

   

主記憶装置と違い、電源を切っても内容は保持される。

   

例としてはハードディスク、CD-ROMなどが挙げられる。



   

「入力装置」

   

コンピュータにデータを入力するための装置。

   

キーボード、マウス、スキャナなどが挙げられる。



   

「出力装置」

   

コンピュータのデータを出力する装置。

   

ディスプレイ、プリンタなどが挙げられる。



データの流れ



これまでに挙げた装置間の制御やデータの流れは以下のように行われています。



f:id:potato_head0809:20200707092754p:plain



黒色が制御を表し、赤色がデータの流れを表しています。



命令は必ず制御装置を通して行われ、



データの流れは主記憶装置を経由して他の装置にデータが渡ります。



余談ですが、CPUと各装置を結ぶ回線を「バス」と言います。





「入力をメモリ(主記憶装置)に読み込んで、出力する」



「補助記憶装置にあるプログラムを主記憶装置に移し、CPUがプログラムを取り出す」



といったような具合ですね。



完璧に分からなくても、大体のイメージは掴めたでしょうか。



ノイマン型コンピュータ...?



現在、利用されているコンピュータのほとんどがノイマン型コンピュータです。



と言われてもなんのことか分かりませんよね。笑



先程のデータの流れは覚えていますでしょうか。



それの一部分を詳しく説明すると、以下のようになります。



f:id:potato_head0809:20200707093954p:plain




プログラムは普段は補助記憶装置にあります。



それを実行する際、主記憶装置に移し、その移したものをCPUが1つ1つ取り出して実行していきます。



ここで、新しく出てきた「プログラム内蔵方式」と「逐次制御方式」について説明します。



   

「プログラム内蔵方式」

   

実行時には、プログラムをあらかじめ主記憶装置に読み込んでおくというもの。

   

別名「プログラム記憶方式」という。



   

「逐次制御方式」

   

命令を1つずつ取り出して順番に実行していくもの。



そして、ノイマン型コンピュータとは何か。



それは、これら特徴を持つコンピュータのことを指します。



コンピュータに処理をさせる為のプログラムは、通常、補助記憶装置にありますよね?



例えば、ハードディスクなどに...。



しかし、CPUが直接やり取りするのは、主記憶装置です。



その為、プログラムを実行させるためには、あらかじめプログラムを主記憶装置に移さなくてはいけません。



そもそも、補助記憶装置は主記憶装置より読み書きの速度がかなり遅いものです。



なので、主記憶装置を経由しないと、CPUがいくら優秀だろうと関係なくなってしまいます。



その為、主記憶装置のメモリ上にあらかじめプログラムをロードしているのです。



CPUとメモリは親友であるべきなのです!



主記憶装置はどのように記憶しているのか。



主記憶装置にはプログラムの他にも様々なデータが記憶されています。



例えば、写真、ファイルなどなど...。



「様々なデータを記憶している」ということは、



明確に指示を出さないと、欲しいものが取り出せません。



では、どうしたら良いのでしょうか。



その指定方法によって他のものと一致しないもの、



「番号」ですね!



中身は見えないが、その番号をみることで中身がわかるもの。



コインロッカーなどをイメージして頂ければ、いいでしょうか。



主記憶装置も似たようなものです。



一定の区画ごとに番号が割り当てられており、



その番号を指定することで、任意の場所を読み書きできます。



この番号のことを「アドレス」といいます。



f:id:potato_head0809:20200707100324p:plain




上記のような感じですね!



このようにして、何を読み書きするべきなのかを判断しています。



最後に。



どうだったでしょうか。



このブログを読んでみて、「これ勉強しなくてもいいんじゃないか。」と



感じたかもしれません。



しかし、このような仕組みを知っているのと知らないのとでは



大きな差があると感じています。



プログラミングの勉強をしていて、本当にそう思いました。



それ以上に、今後就職する会社に「この資格を取らなくてはいけない」という



ことがある前に勉強しておきたい気持ちの方が強いですが...。笑



次回も今回と似たような話をしていきます。



ぜひ一緒に頑張っていきましょう!



最後までご覧頂きありがとうございました。