コンピュータの最小構成要素と動作の原理

こんにちわ。

今回はコンピュータ(主にパソコン)の最小構成要素と動作原理について紹介します。

動作原理っていうと、とても難しく感じますができるだけ簡略化して説明できればいいなと思っています。

さて、まず最小構成要素ですが、突きつめると、「CPU」と「メモリ」があればいいと言っていいかもしれません。

ただ、パソコンはプログラム無しでは動きません。

ただの箱になりますけれどね。

スポンサーリンク
スポンサーリンク




まずはメモリの役割

メモリの役割ですが、プログラムやデータを保存しておく場所です。

さて、その保存の仕方ですが、これが意外と庶民臭いです。(笑)

要はどの住所(アドレス)に誰(プログラムやデータ)が住んでるよ方式で記憶しています。

たとえば、こんな感じです。

0001番地  「1」

0002番地  「2」

0003番地  「0001番地のデータを箱(レジスタA)に入れろ」

0004番地  「0002番地のデータを箱(レジスタB)に入れろ」

0005番地  「レジスタAとBを足してレジスターAに入れろ」

0006番地  「レジスタAのデータを0007番地に入れろ」

0007番地  「(空)」

これですと、0003番地~0006番地までのアドレスにはプログラム(命令)が格納されていて、それ以外の番地はデータが入っているということになります。

こういった一連のプログラムやデータがメモリの中にあるアドレスに格納されています。

※上記のアドレスへのデータやプログラムの入れ方は、ほんとは、もっと複雑です。

説明用なので簡略化して書いています。

アドレスバスとデータバス

じゃ、こういったデータをどうやってCPUに渡すかですが、簡単に言うと

「アドレスを指定してやって、そのアドレスのデータを読んだり書いたりする」

という単純な動作でやってあげます。

メモリもそうですが、CPUもその他の回路もたくさんの配線でつながっています。

その中でアドレスという情報をやり取りする配線を「アドレスバス」、データ(やプログラム)という情報をやり取りする配線を「データバス」と言います。

あとは、もうちょっと色々な配線があって、メモリの場合は「読む/書く」といった信号を与えてやる配線があります。

こんなイメージですね。

たとえば前の住所の例で行きますと、データバス上に「0002番地」を表す信号を流した状態で「読む」という信号を与えてやると、データバス上に「2」という信号が出されます。

逆に、データバス上に「0002番地」を表す信号を流した状態でデータバス上に「3」という信号を与えたうえで「書く」という信号を与えてやると、メモリの0002番地のデータが「3」で置き換えられるという寸法です。

CPUは読んで、処理して、書き込む

では、CPUはどういう動きをするかというと、メモリの内容を番地で指定して内部に取り込み、それがプログラム(命令)かデータかを見分けて処理をするわけです。

なお、CPUは単純な処理しかできないようになっていますので、あまりに複雑な動作を一度にすることができません。

そのため、内部に処理をするための箱というかデータ置場を持っています。

それを「レジスタ」と言います。

という訳で、CPUに先ほどの例(住所の説明のやつ)の処理をやらせると次のような動きをします。

  1. 最初に人が、CPUに対して0003番地から順番に0006番地までの命令をやりなさいと教えてあげます。
  2. CPUはアドレスバスに0003を出して、メモリの命令を読み込みます。
  3. CPUはその命令通り、今度はアドレスバスに0001を出して、データバスにあらわれた「1」を読み取って、自分のレジスタAという箱に格納します。
  4. これで1つの処理が終わったので、0004番地の命令を読みに行きます。
  5. 0004番地の命令から、次にアドレスバスに0002を出して、データバスにあらわれた「2」を読み取って、自分のレジスタBという箱に格納します。
  6. これでまた1つの処理が終わったので、0005番地の命令を読みにいきます。
  7. そこには、レジスタAとレジスタBのデータを足して、レジスタAに入れろとなっていますので計算をして、レジスタAに「3」を一度格納します。
  8. これで1つの処理が終わったので、最後の0006番地の命令を読みにいきます。
  9. そこには、0007番地にレジスタAの値を入れろという命令がありますので、アドレスバスに0007を出して、データバスにレジスタAの値をだし、メモリに「書く」信号をだします。

はい、これで終了。

どうでしょうか?

結構面倒くさい処理をしていると思いませんか。

ですが、人間には絶対にできないような高速でこういった処理を順番に行って、たくさんのデータを処理しているんです。

CPUが理解できる命令とは

ここに出てくるようなCPUが理解して処理できる命令を機械語といいます。

機械語の命令は、それ自体意味を持たない2進数で表されており、普通の人間には とても記憶できるようなものじゃありません。

そのため、人間が見やすく読みやすく憶えやすい表記法があって、その命令群を「 ニーモニック(mnemonic)」と言います。

たとえば、Z80という8ビットCPUの場合はこんなニーモニック命令があります。

転送(LD)

交換(EX)

スタック操作(PUSH、POP)

加算(ADD)

減算(SUB)

論理演算(AND、OR...)などなど

ややこしい話になるので、こんな感じで単純な命令の集まりというのだけわかっていただければいいと思います。

パソコンの中で行われている基本的な動きって、実はこんな感じなんですよね。

最後までおつきあい、ありがとうございました。

スポンサーリンク
スポンサーリンク




スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連コンテンツとスポンサーリンク

関連コンテンツとスポンサーリンク