コンピュータアーキテクチャ---コンピュータの構造
『コンピュータアーキテクチャ』とは
- コンピュータの構成
- ハードウェア
「入力」「演算」「出力」を行う装置 - ソフトウェア
プログラム(「命令」と「データ」の集合体) ⇒実際に手で触れることができない
- ハードウェア
- コンピュータアーキテクチャ
architecture … 建築(学); 構造
コンピュータ、特にハードウェアの基本設計。論理的な構造。振舞いの決まりごと。
「入力」「演算」「出力」「記憶」「制御」の5大装置が関わりあって構成されています。
コンピュータの5大装置
- 入力装置
処理してもらいたいデータや、そのための命令(プログラム)を受ける装置。
例: キーボード・マウス
- 演算装置
受けたデータを、受けた命令の手順に沿って処理する装置。
例: CPU
- 出力装置
演算装置の処理結果を、人間が確認できる形で出力する装置。
例: ディスプレイ・プリンタ
- 記憶装置
- 主記憶装置(内部記憶装置)
入力装置が受けたデータ・命令や、出力装置に渡す処理結果などを一時保存する装置。
例: メモリ - 補助記憶装置(外部記憶装置)
データやファイルを長期的に保存する装置。
例: HDD(ハードディスクドライブ)・CD-ROM
- 主記憶装置(内部記憶装置)
- 制御装置
「入力装置」「演算装置」「出力装置」「記憶装置」を制御する装置。
例: CPU
コンピュータと2進数
- 2進数
2ごとに桁上がりする数え方。(⇔ 10進数は10ごとに桁上がり)
たった2つの状態(0 / 1)の組み合わせで、多くの情報を表現できます。
コンピュータ内では、すべての情報が2進数で扱われています。
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | … |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2進数 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 | … |
- なぜコンピュータは2進数を使うのか
回路が単純化され、制御しやすくなるからです。
また、0と1しか扱わないので、ハードウェアの信頼性を高めることができます。- 10進数の九九は、10(0〜9)×10(0〜9)=100通り
- 2進数の九九なら、2(0,1)×2(0,1)=4通り
- 情報単位
- bit(ビット)
コンピュータで扱われる情報の最小単位。
2進数の1桁分に相当します。すなわち、1bitが持っている情報は、0 / 1 のどちらかということになります。
なお、メモリやディスクにおいて、bit単位での読み書きをすることはできません。 - byte(バイト)
コンピュータで扱われる情報の基本単位。
2進数の8桁分に相当します。
データの読み書き等はbyte単位で処理されます。
- bit(ビット)
アナログとデジタル
- コンピュータの数量値表現
- アナログ
時間の変化にともなう、連続的・比例的な表現。(曲線グラフのイメージ)
なめらかに増減し、直感的に数量値を表現できます。
例: アナログ時計 - デジタル
時間の変化に関わらない、離散的・数字的な表現。(棒グラフのイメージ)
OFF / ON (0 / 1)のいずれかの状態なので、明確な数量値を表現できます。
例: デジタル時計
- アナログ
- コンピュータが扱うのはデジタルデータ
デジタルデータは 0 / 1 で表現することができるので、コンピュータで扱うのに適しています。
アナログデータは 0 / 1 だけで表現することができないため、コンピュータで扱うことはできません。
- デジタルデータの利点
- 保存が簡単
- コピーが簡単
- 劣化しない
基本論理回路
- コンピュータの演算の種類
- 算術演算【 + / − / × / ÷ 】
- 論理演算【 NOT / AND / OR /(XOR)】
- 論理回路
基本論理回路は、「NOT回路」「AND回路」「OR回路」の3種類です。
A(,B)に 0 / 1 のいずれかを与えて入力すると、出力Xの値は次のように評価されます。
0を偽、1を真とみなした真偽演算と捉えて下さい。
-
- NOT回路
A | X(NOT A) |
---|---|
0 | 1 |
1 | 0 |
-
- AND回路
A | B | X(A AND B) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
-
- OR回路
A | B | X(A OR B) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
CPUの命令実行サイクル
主なレジスタの種類 | 役割(格納される値) |
---|---|
アキュームレータ | 演算を行うデータ |
フラグ・レジスタ | 演算処理後のCPUの状態 |
プログラム・カウンタ | 次に実行する命令のメモリアドレス |
ベース・レジスタ | データ用のメモリ領域の先頭アドレス |
インデックス・レジスタ | ベース・レジスタからの相対アドレス |
凡用レジスタ | 任意のデータ |
インストラクション・レジスタ | 命令そのもの |
- プログラム実行ファイルの正体
- プログラム実行の流れ
- プログラム起動
OSがプログラムをメモリにコピーします。
メモリには、プログラムの構成要素である命令(演算手順)とデータ(演算対象)が格納されます。
命令・データの間で形式的な違いはなく、ともにメモリのどこへでも格納することができます。 - フェッチ(命令の読み出し)
メモリ内の命令を読み込みます。 - デコード(命令の解釈)
メモリから読み込んだ命令を解釈します。 - 命令の実行(データの読み出し ⇒ 演算の実行)
命令で指定されているデータを読み出し、命令を実行します。
命令実行中のデータは、レジスタが記憶・保持します。 - 次の命令へ
条件分岐や繰り返しの指定がない限り、次の番号のメモリ内容がフェッチされます。