ハードウェアの基礎 その1

「コンピュータの基礎」シリーズに次ぐ ”第2弾” !!

今回からは、ハードウェア編です。。。



 ハードウェア装置の役割を理解する


 ハードウェアには5大装置がある

 ハードウェアは、コンピュータの機械装置のことを言います。ハードウェアは、プログラムなどのソフトウェアと対になる概念です。ハードウェアは、ソフトウェアとして指示された命令の集まりから、順番に命令を取り出し、実行する役割を持っています。
 ハードウェアは、CPUやメモリ、ハードディスクなど、様々な装置から構成されています。ハードウェアは大きく5つに分類することが出来ます。これらは、入力装置記憶装置演算装置制御装置出力装置という名前で呼ばれています。


 入力装置
 入力装置は、ユーザからの入力を受け付ける装置です。キーボードやマウスが入力装置にあたります。

 記憶装置
 記憶装置は、入力されたデータを記憶する装置です。ハードディスクやメモリが記憶装置にあたります。

 演算装置
 演算装置は、記憶装置に保存されたデータを演算する装置です。CPU内部に演算装置が含まれています。

 制御装置
 制御装置は、ハードウェアの各装置を制御する装置です。CPU内部に制御装置が含まれています。

 出力装置
 出力装置は、演算結果のデータをユーザに対して出力する装置です。ディスプレイやプリンタが出力装置にあたります。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 ハードウェアは、こうした各種装置の集まりです。各装置は、バスと呼ばれる信号線を通して、データをやり取りしています。


 演算には様々な装置が必要

 それでは、ハードウェアとソフトウェアは、どのように連携して処理を行うのでしょうか?まず、処理を行う基本装置を見ていきましょう。


 ALU
 CPU内部には、ALUと呼ばれる演算装置が含まれています。ALUは、算術論理演算回路(Arithmetic Logic Unit)の略です。ALUは、加算や減算をはじめとした算術演算、AND演算やOR演算、NOT演算をはじめとした論理演算を実行する回路となっています。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 レジスタ
 CPU内部には、データや命令を一時的に記憶しておく回路があります。これをレジスタと言います。レジスタは、ビットを記憶する記憶装置です。レジスタは使用用途によっていくつかの種類があります。特に、以下のレジスタは重要です。名前を覚えておくと良いでしょう。


● 重要なレジスタ

・プログラムカウンタ
 次の命令を取り出すアドレスを記憶しておくレジスタ。プログラムレジスタ、PCなどとも呼ばれる。

・命令レジスタ
 取り出した命令を一時的に記憶しておくレジスタ。IRなどとも呼ばれる。

・ベースレジスタ
 プログラムの先頭アドレスを保持するためのレジスタ

・指標レジスタ(インデックスレジスタ)
 データを連続的に取り出す際に使われるレジスタ

・アキュムレータ
 演算対象、演算結果を格納するレジスタ

・汎用レジスタ
 目的の定められていないレジスタ。通常は演算結果などを記憶するために使われる。

 命令デコーダ
 命令デコーダは、命令を解読し、実行部へ指示信号を出す回路です。デコード(decode)とは、解読の意味です。命令デコーダはCPU内部に含まれています。

 メモリ
 プログラム・データは、メモリと呼ばれる装置に記憶された後に実行されます。メモリには、プログラム・データを格納する場所を示すアドレスが付けられています。アドレスは、データの格納位置を示すための「住所」のようなものです。番地と呼ぶこともあります。例えば、以下の図では2というデータが0001番地に入っているという事になります。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓




 命令を実行する

 コンピュータは、先ず、プログラムをメモリに読み込みます。そして、メモリに記憶されたCPUによって命令を取り出し、解読、実行することによって処理を行います。例えば次の処理が、命令処理の動作です。

→@命令取り出し→A命令解読→Bオペランド読み出し→C演算実行→

● 命令の実行

@命令取り出し(フェッチ)
 メモリから命令を取り出す。

A命令解読(デコード)
 命令を命令デコーダが解読する。

Bオペランド読み出し
 メモリやレジスタ上の計算対象を取り出す。

C演算実行
 演算を実行する。

 例えば、加算処理をする場合の処理を見てみましょう。


@命令取り出し
 プログラムカウンタに示されたアドレスから、命令を取り出します。命令を取り出すことをフェッチとも言います。取り出した命令は命令レジスタに保存されます。次の命令が取り出せるように、プログラムカウンタを1つ繰り上げます。
 例えば、ここでは、プログラムカウンタで示された0003番地から命令を取り出し、カウンタを1つ繰り上げています。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



A命令解読
 取り出した命令が加算命令であることを命令デコーダが解読(デコード)します。加算器を動作させる信号が送られます。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



Bオペランド読み出し
 データが格納されているアドレスを算出し、データを汎用レジスタなどに取り出します。ここでは0001番地からデータ2を取り出しています。この計算対象となるデータを、オペランドと言います。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



C演算実行
 演算を実行して結果をレジスタに書き戻します。ここでは汎用レジスタのデータを加算しています。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 これで計算が出来ました。さらに続けて、@〜Cの処理を繰り返すことになります。プログラムカウンタには次のアドレスが格納されていますから、メモリ上の命令を順番に実行することになります。
 このように、一般的なコンピュータは、メモリから順番に命令を取り出し、実行するようになっています。このコンピュータは、あらかじめメモリにプログラムを記憶させておくため、プログラム内蔵方式と呼ばれます。現在のコンピュータはプログラム内臓方式が基本となっています。このコンピュータはノイマン型コンピュータとも呼ばれます。


 命令は命令部とアドレス部からなる

尚、ここで取り出した命令は、機械語と呼ばれます。命令デコーダはCPUのために用意された機械語を解読し、実行することが出来ます。
 機械語は、命令部(オペコード)とアドレス部(オペランド)から構成されます。命令部とは、加算や減算、記憶などの命令に対応する部分です。アドレス部とは、データの値そのものか、データが格納されているアドレスに対応する部分です。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓




 アドレス指定方式によってアドレスを計算する

 命令を解読し、オペランドを読み出す前には、オペランドが格納されているメモリ上のアドレスを計算する必要があります。この方式には複数の方法があるので紹介しましょう。

 即値方式
 即値方式は、計算対象となるデータを命令中に直接指定する方式です。この方式では、命令内のデータをそのまま使用します。アドレスの計算は行いません。例えば、下図では命令中の値8を使うわけです。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 直接アドレス指定方式
 直接アドレス指定方式は、データが格納されているアドレスを指定する方式です。例えば、下図では命令中に指定されている1000番地にアクセスしてデータ8を取り出すわけです。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 間接アドレス指定方式
 間接アドレス指定方式は、データのアドレスが格納されている場所のアドレスを、間接的に指定する方法です。例えば、命令中に指定されている1000番地にアクセスします。次に、1000番地の内容として格納されているアドレス1020番地もアクセスします。ここでデータ8を取り出すことが出来ます。つまり、命令中では間接的にアドレスを指定するわけです。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 指標アドレス指定方式
 指標アドレス(インデックスアドレス)指定方式は、命令中にアドレスと指標レジスタ番号を指定する方式です。指標レジスタに記憶されているアドレスを調べ、2つを加算する方法です。
 指標レジスタは、連続するアドレスを取り扱うときに使うレジスタです。0,1,2・・・などというデータが格納されています。命令中のアドレスに加算すれば、命令中のアドレスを変えずに連続するアドレスを指定できます。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 ベースアドレス指定方式
 ベースアドレス指定方式は、命令中に指定されたアドレスとベースレジスタのアドレスを加算する方法です。
 ベースレジスタには、プログラムの先頭アドレスが格納されています。このため、ベースアドレスを指定することで、メモリ上のどこに配置されていても動作するプログラムとすることが出来ます。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



 相対アドレス指定方式
 相対アドレス指定方式は、命令中に指定したアドレスとプログラムカウンタのアドレスを加算する方法です。ベースレジスタを持たない場合に使われることがあります。
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓




※ さて、ここまでの復習です。
  以下の問題を解いて見ましょう!!


◎ 問題−1
主記憶のデータを下図のように参照するアドレス指定方式はどれか?
                 クリックして拡大表示して下さい。
                  ↓  ↓  ↓  ↓  ↓



ア.間接アドレス指定方式    イ.指標アドレス指定方式

ウ.相対アドレス指定方式    エ.直接アドレス指定方式


◎ 問題−2
アドレス指定方式のうち、命令読み出し後のメモリ参照を行わずにデータを取り出すものはどれか?

ア.間接アドレス    イ.指標付きアドレス

ウ.即値オペラド    エ.直接アドレス


◎ 問題−3
命令の構成に関する記述のうち、適切なものはどれか?

ア.オペランドの個数は、その命令で指定する主記憶の番地の個数と
  等しい。

イ.コンピュータの種類によって命令語の長さは異なるが、一つの
  コンピュータでは、命令語の長さは必ず一定である。

ウ.命令語長の長いコンピュータほど、命令の種類も多くなる。

エ.命令は、命令コードとオペランドで構成される。ただし、命令の種類に
  よっては、オペランドがないものもある。


◎ 問題−4
処理装置を構成する要素のうち、分岐命令の実行によって更新されるものはどれか?

ア.インデックスレジスタ    イ.汎用レジスタ

ウ.プログラムレジスタ     エ.命令レジスタ


今回は、ここまで・・・ 1回目からスッゲェ〜長くなってしまった。。。 次回、無くてもいいですか?? ^^;)

BIGLOBEニュースロゴ

ニュースをもっと見る

最近の画像付き記事