コンピュータアーキテクチャ---コンピュータの構造

『コンピュータアーキテクチャ』とは

  • コンピュータの構成
    • ハードウェア
      「入力」「演算」「出力」を行う装置
    • ソフトウェア
      プログラム(「命令」と「データ」の集合体) ⇒実際に手で触れることができない
  • コンピュータアーキテクチャ
    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単位で処理されます。

アナログとデジタル

  • コンピュータの数量値表現
    • アナログ
      時間の変化にともなう、連続的・比例的な表現。(曲線グラフのイメージ)
      なめらかに増減し、直感的に数量値を表現できます。
      例: アナログ時計
    • デジタル
      時間の変化に関わらない、離散的・数字的な表現。(棒グラフのイメージ)
      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の中身
    • レジスタ
      命令・データを格納する領域。一種のメモリのようなもの。
      レジスタには種類があり、それぞれ役割が異なります。
主なレジスタの種類 役割(格納される値)
アキュームレータ 演算を行うデータ
フラグ・レジスタ 演算処理後のCPUの状態
プログラム・カウンタ 次に実行する命令のメモリアドレス
ベース・レジスタ データ用のメモリ領域の先頭アドレス
インデックス・レジスタ ベース・レジスタからの相対アドレス
凡用レジスタ 任意のデータ
インストラクション・レジスタ 命令そのもの
    • 制御装置
      メモリ上の命令・データをレジスタに読み出し、命令の実行結果に応じてコンピュータ全体を制御する装置。
    • 演算装置
      レジスタに読み出されたデータを演算する装置。
    • クロック
      コンピュータが動作するタイミングとなる信号(=クロック信号)を発生させるもの。
  • プログラム実行ファイルの正体
    • マシン語
      プログラムが直接解釈・実行できる電気信号となったプログラムのこと。
      人間は、人間の言葉に近い高水準言語を使ってプログラムを書きますが、コンピュータには高水準言語を解釈できません。
      これをコンピュータで実行するために、プログラムをマシン語へ変換(=コンパイル)する必要があります。
      マシン語命令は、主に以下の4種類にまとめられます。
      • データ転送命令::メモリ・レジスタ・周辺装置の間でのデータの読み書き
      • 演算命令::算術演算・論理演算・比較演算・シフト演算
      • ジャンプ命令::条件分岐・繰り返し・無条件ジャンプ
      • コール/リターン命令::関数呼び出し
  • プログラム実行の流れ
  1. プログラム起動
    OSがプログラムをメモリにコピーします。
    メモリには、プログラムの構成要素である命令(演算手順)とデータ(演算対象)が格納されます。
    命令・データの間で形式的な違いはなく、ともにメモリのどこへでも格納することができます。
  2. フェッチ(命令の読み出し)
    メモリ内の命令を読み込みます。
  3. デコード(命令の解釈)
    メモリから読み込んだ命令を解釈します。
  4. 命令の実行(データの読み出し ⇒ 演算の実行)
    命令で指定されているデータを読み出し、命令を実行します。
    命令実行中のデータは、レジスタが記憶・保持します。
  5. 次の命令へ
    条件分岐や繰り返しの指定がない限り、次の番号のメモリ内容がフェッチされます。
【参考書籍】