C言語

【簡単】C言語を始めるなら知っておきたいコンピューターの仕組み・五大装置とは…?

トビタカ
トビタカ
本記事ではプログラミングに欠かせない基礎知識である『コンピュータの仕組み』の概要を解説しています。

コンピュータとは一体どんな仕組みなのでしょうか…?

 

プログラミングを始めたんだけど挫折しそう…

 

最近プログラミングの勉強を始めたそこの『あなた』

プログラミングって結構難しいですよね。

でも、もしかしたらプログラミングを難しく感じる原因は『コンピュータの仕組みを理解していないから』かもしれないんです。

とび助
とび助
コンピュータの仕組みって、そんなに重要なんですか…?
トビタカ
トビタカ
はい!仕組みを知らずにプログラムを作るのは、外国人向けの資料を日本語で作っているようなものです!

 

本記事では『コンピュータの仕組みの概要』について解説していきます。

コンピュータの大まかな仕組みを知れば、プログラミングの理解しづらい部分がだいぶ減るので、ぜひ参考にしてみてください。

トビタカ
トビタカ
プログラミングの学習スピードが上がると思いますよ!
とび助
とび助
はやく教えて下さい!

本記事ではプログラミング初心者向けにコンピュータの概要をご説明しています。

コンピュータの詳細な説明を知りたい場合は、専門書や論文などでご確認ください。

 

コンピュータの正体とは…?

突然ですが質問です。

コンピュータって一体なんでしょうか…?

とび助
とび助
人間を超える『すごい機械』じゃないですか…?!
トビタカ
トビタカ
やっぱりそう思いますよね!

 

コンピュータはスマホやパソコンだけでなく、電子レンジなどの身近な家電にも使われいています。

だから、コンピュータはたくさんの機能がありそうですよね。

でも、実はコンピュータって、そんなすごい機械じゃないんです。

とび助
とび助
じゃあコンピュータって一体何なんですか?
トビタカ
トビタカ
コンピュータの正体はただの電子計算機なんです!

 

信じられないかもしれませんが、コンピュータの正体は電気を使って計算をする『電子計算機』です。

そのため、コンピュータは基本的に計算しかできません。

しかし、『計算スピードが恐ろしく早い』という最大の特徴を活かすことで、たくさんの機能を実現しているのです。

トビタカ
トビタカ
性能にもよりますが、1秒で1億個以上の式を計算することができます。
とび助
とび助
すごいスピードっすね!

コンピュータの計算機能

コンピュータは圧倒的な計算スピードを持っています。

そのため、人間には難しい次のような計算をすることが可能です。

計算機能の一例
  1. 式を組み合わせることができる
  2. 昔の計算結果を転用できる
  3. 計算結果によって、計算式や計算方法を変更することができる

 

まず、コンピュータはたくさんの計算式を組み合わせることができます。

例えば次のような問題をご覧ください。

 

2次連立方程式と4次連立方程式

 

問題①は中学校で習った連立方程式です。

『上の式のY』に『下の式』を代入すれば解くことができます。

きっと、『X=3、Y=14』が答えであることを導き出せるでしょう。

一方、右の問題②はどうでしょうか。

とび助
とび助
見るだけで吐き気がします…
トビタカ
トビタカ
解きたくないですよね〜

 

この問題も時間をかけて計算すれば『X=1、Y=-1、Z=3、W=-2』という答えがでるのですが、諦めてしまう人もいると思います。

ですが、コンピュータであれば一瞬で解けるんです。

コンピュータは正確かつ高速な計算が可能なので、たくさんの式を組合せても数秒で計算できるのです。

トビタカ
トビタカ
100個でも1000個でも計算できるんです!

 

また、このような計算を行う際にコンピュータは計算の途中結果を保存しています。

そのため、『計算の途中結果』を『他の計算』に使うことができるのです。

さきほどの問題①の連立方程式であれば、先に求めたX=3を他の計算に使えるイメージになります。

とび助
とび助
結果を保存しながら、複雑な式を解いているんですね。
トビタカ
トビタカ
その認識でOKです!

 

他にも計算結果によって計算式や計算方法を変えることもできます。

例えば次の図をご覧ください。

消費税のフローチャート

こちらは、『スーパーで買った商品の税込み価格を算出する処理』になります。

2021年の間では『酒以外の食料品は消費税が2%減税される』ので、購入した商品に応じた税込み金額を計算する必要があるのです。

 

計算の流れとしては最初に商品のバーコードをスキャンして、金額と商品情報を読み取ります。

そして、その情報から『お酒以外の食料品』かどうかを判断するのです。

お酒以外の食料品なら『価格×1.08』、それ以外であれば『価格×1.1』で税込み金額を算出するような仕組みになっています。

この例のように、コンピュータは計算結果や入力した数値によって、使用する計算式を変更することができるのです。

とび助
とび助
自動で判断してくれるなんて便利ですね~
トビタカ
トビタカ
この機能をうまく使えば計算の自動化ができるんです。

 

また、他にも『公式では解けない問題』だって解くことができます。

コンピュータは計算式に適当な数値を当てはめて、最適な答えを導くことができるのです。

先程の問題②であれば、X,Y,Z,Wに適当に数字を当てはめて、ドンピシャの答えを見つけるイメージですね。

この方法だと人間では答えにたどり着かないことも多いのですが、コンピュータは桁違いの計算スピードを持っています。

そのため、非効率に見えるこの方法を使っても、時間をあまりかけずに最適な答えを導くことができるのです。

 

このようなスゴ技を組み合わせて、たくさんの機能を実現しているのがコンピュータになります。

とび助
とび助
コンピュータって凄い計算機だったんですね!
トビタカ
トビタカ
はい!すごいヤツなんです!

コンピュータの仕組み

続いてはコンピュータがどのように計算しているのかを知るために、コンピュータの仕組みを知っておきましょう。

コンピュータはざっくり2つの部品で構成されています。

コンピュータのザックリ構成
  1. CPU
  2. メモリ

 

コンピュータを構成する1つ目の部品はCPU(Central Processing Unit)です。

日本語に訳すと『中央演算処理装置』という意味になります。

演算とかかれている通り、主に計算をおこなう部品になるのです。

CPUはプログラムを読み込んで、ひとつひとつの式をすごいスピードで計算しているイメージでいいでしょう。

とび助
とび助
CPUで計算しているんですね!
トビタカ
トビタカ
はい!実はCPUにはもう1つ重要な機能があるのですが、それは後で説明しますね!

 

2つ目の部品はメモリです。

メモリは名前の通り計算結果を記憶しておく場所になります。

プログラムでは計算の途中結果を再利用することがたくさんあります。

そのため、たくさんの計算結果を保存できる場所が必要なのです。

とび助
とび助
メモリに計算結果を保存していたんですね~
トビタカ
トビタカ
はい!メモリから計算結果を読み出すこともできますよ。

ちなみにCPUの中にも計算結果を保存できるレジスタという部品があります。

しかし、容量がとても少なく、計算結果をあまり保存できないので、別途メモリが必要になるのです。

コンピュータの五大装置

とび助
とび助
あれ?コンピュータが計算しかできないなら、パソコンの機能ってどうやって実現しているんですか?
トビタカ
トビタカ
いい質問です!パソコンの仕組みを詳しく説明しますね!

コンピュータが計算しかできないなら、どうやってパソコンが成り立っているのか気になってきますよね…?

実はパソコンって『コンピュータの5大装置』といわれるもので成り立っています。

コンピュータの五大装置

 

五大装置とは『演算装置・記録装置・入力装置・出力装置・制御装置』のことです。

演算装置と記録装置は先ほどご説明した通りです。

演算装置のCPUで計算をおこない、計算結果を記録装置のメモリに保存していきます。

 

入力装置と出力装置もイメージしやすいでしょう。

入力装置はマウス・マイク・キーボードなど、出力装置はディスプレイやスピーカーなどが該当します。

入力装置は計算に必要な情報を入力する役割を持っており、出力装置は計算結果を人間に伝える役割を持つ装置なのです。

トビタカ
トビタカ
ここまではイメージが付きやすいと思います。
とび助
とび助
今のところ大丈夫です!

 

そして、残ったのが『制御装置』です。

ピンとこないかもしれませんが、制御装置はコンピュータに接続されている全ての機器をコントロールする役割を担当しています。

コントロールと言ってもあくまで同期させることが目的なのです。

トビタカ
トビタカ
具体例で説明します。

 

例えば、パソコンの電卓機能で『1+2=』という計算をする場合を考えてみましょう。

まず、CPUと同期されているキーボードで『1+2=』という文字をタイピングします。

すると入力装置が『1』『+』『2』『=』というデータを生み出すのです。

このデータを制御装置によって記録装置のメモリに受け渡しています。

 

そして、データの受け渡しが終わったら、制御装置がCPUの演算機能を発動させます。

制御装置がメモリからCPUに受け渡すデータを使いながら計算して、3という計算結果がでてくるのです。

そして、制御装置によって『3』という計算結果をメモリに受け渡して保存します。

その保存したデータを出力装置に受け渡すことで、ディスプレイに『3』が表示されるのです。

とび助
とび助
装置を同期させてデータを受け渡しているようなイメージなんですね。
トビタカ
トビタカ
はい!そういう役割なんです。

 

このように、接続している機器を同期させて、データの受け渡しを行うのが制御装置になります。

で、この制御装置はどの部品が担当しているのかというと、次の論文が言うようにCPUなんですね。

制御装置と演算装置は中央処理演算装置(CPU)と呼ばれる。

引用:教材のリアルタイム編集機能を持つ同期・非同期融合型遠隔教育支援システムとその実験評価

 

「CPUは計算しかできないって言ったじゃないか!」と思われたかもしれませんが、CPUの制御機能は計算に必要なデータを移動させているだけです。

なので、CPUのメイン機能は演算であり、制御機能は計算を成り立たせるための補助機能なのです。

とび助
とび助
だから「基本的に計算しかできない」って言っていたんですね…?
トビタカ
トビタカ
はい。誤解されないように気をつけました。

コンピュータの仕組みからわかるプログラミングの特徴

コンピュータの仕組みが分かって気になるのは、『コンピュータの仕組みとプログラミングにどのような関係があるか』ですよね?

実は、コンピュータは計算しかできないということに着目すると、プログラミングには次の特徴があると考えることができます。

プログラミングの特徴
  1. プログラムには型がある
  2. 保存場所の指示が必要
  3. データ容量に関する指示が必要

 

最初にわかることはプログラムには型があるということです。

コンピュータは計算を行うので、やってほしい計算があるなら『その計算を実現する計算式』をコンピュータにわたす必要があります。

そして、この計算式がプログラムに当たるのです。

 

数学にも公式があるように、プログラムの計算にも公式に近いものがあります。

つまり、プログラムも決まった型(式)で作り上げる必要があると言えるのです。

トビタカ
トビタカ
つまり、「なぜこの書き方をするんだろう」という疑問は無意味ってことですね。
とび助
とび助
なるほど!決まった式を書く必要があるからですね!

 

2つ目はメモリに関する指示が必要なところです。

先ほどご説明した通り、CPUはたくさんの計算結果をメモリに保存します。

そうなると「あれ?どこにしまったっけ?」という状態になってしまうのです。

 

このような事態を防ぐためには、計算結果の保存場所を決めておく必要があります。

C言語では、保存場所を明確にして置くために、変数の定義やポインタなどの機能が搭載されているのです。

 

他にも、計算結果のデータ容量も指示する必要があります。

円周率の『3』と『3.14159265359』では数字の桁数が異なるので、データの容量が変わってくるからです。

4桁しか入らないメモリに12桁の数字は入らないので、エラーになってしまうんですよ。

このような状態にならないためにも、データの容量の指定に値する『データの型式』も指示する必要があるのです。

とび助
とび助
だから、プログラムの変数定義とかって必要なんですね。
トビタカ
トビタカ
はい!メモリやデータサイズに関する情報も指示が必要なんです!

おわりに

以上がコンピュータの仕組みになります。

たくさんの機能を持っていそうなコンピュータが計算しかできないということに、驚かれたのではないでしょうか?

でも、計算に特化しているということで、プログラミングの理解しにくい部分も少しは理解できるようになると思います。

プログラミングでつまづいたときに、「なにが計算に使われるのか」という観点でわからない部分を考えると、ヒントが見えてくることが多いのです。

トビタカ
トビタカ
だから、コンピュータの仕組みはプログラミングの理解に役立つんです!
とび助
とび助
私もわからないかった部分が分かってきました!勉強がんばります!

 

 

 

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA