計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理 担当:三浦康之
計算機の歴史0
計算機の歴史1 1. 第一世代 真空管の世代 ENIAC ペンシルバニア大 2. 第二世代 半導体の登場 IBM 7090 7094 1. 第一世代 真空管の世代 ENIAC ペンシルバニア大 → プログラムは配線で EDSAC EDVAC → プログラム内蔵方式 → 機械語→高水準言語へと発展 2. 第二世代 半導体の登場 IBM 7090 7094 バッチ処理、OSの登場
計算機の歴史2 3. 第三世代 集積回路の世代 IBM システム/360 → 汎用機 4. 第四世代 VLSIの時代 3. 第三世代 集積回路の世代 IBM システム/360 → 汎用機 パイプライン、ミニコンピュータ、マルチプロセシング、仮想記憶 LINUXの登場 4. 第四世代 VLSIの時代 マイクロプロセッサ i4004 → i8008、i8086へと進化 → 現在のPentiumの源流 モトローラ 68000 RISC対CISC ワークステーションの登場 並列処理マシン CM-1 PC/WSクラスタ
コンピュータの基本構成 命令・データ 中央演算装置(CPU) の流れ 制御の流れ 制御装置 演算装置 入出力装置 主記憶装置 ここは、コンピュータ全体の構成図。 本当はここに、画面や音声、外部接続機器などの入出力装置がついている。 が、今はあくまでもコンピュータを、計算をするための装置として考えるのでこういう構成になる。 この講義では、あくまでもコンピュータを計算するための装置として扱っているが、世の中に普通に出回っているパソコンはそういう感じのする装置ではないので、この辺りの所で聞く人が戸惑うことになるかも知れない。 この辺は注意する必要がある。 プログラム可能 制御装置で、プログラムをコントロール、演算装置を制御 条件分岐 同じく制御装置 データを保存できる 主記憶装置で メモリにプログラム内蔵 主記憶装置 ここで重要なのは、中央演算装置、CPUである。以降、CPUの機能について説明する。 ○ 中央演算装置(CPU) ○ 主記憶装置 コンピュータの中枢部分。 プログラムやデータを格納する プログラムを実行し、各装置の制御や、 ○ 入出力装置 データの計算を行なう。 プログラムやデータの入出力を行う
中央処理装置(CPU)の構成 データバス + プログラム … アドレスバス データ ○ 制御装置 ○ データバス 主記憶装置 制御装置 演算装置 データバス レジスタ + オペレーション コード オペランド プログラム カウンタ 命令 レジスタ ALU プログラム 命令 デコーダ … ここからは、直前に説明したコンピュータの構成のうち、CPUについてくわしく見てゆく。 CPUは、主記憶装置(メモリ)から命令とかデータを取り込んで処理したり、処理した結果を主記憶装置に書き込んだりといった処理をするので、ここでは主記憶装置とあわせて図示して、その動作を見てゆく。 (ここで、各部の役割を詳しく説明する。) アドレスバス データ ○ 制御装置 ○ データバス 命令に従って各装置を制御する。 主記憶装置とCPU間のデータをやりとりする ○ 演算装置 ○ アドレスバス 演算を実行する。 主記憶装置を読み書きするアドレスを送る
中央処理装置(CPU)の構成 制御装置各部の役割 命令レジスタ 読み出された命令を一時格納する 主記憶装置 制御装置 演算装置 データバス レジスタ + オペレーション コード オペランド プログラム カウンタ 命令 レジスタ ALU 命令 デコーダ … ここからは、直前に説明したコンピュータの構成のうち、CPUについてくわしく見てゆく。 CPUは、主記憶装置(メモリ)から命令とかデータを取り込んで処理したり、処理した結果を主記憶装置に書き込んだりといった処理をするので、ここでは主記憶装置とあわせて図示して、その動作を見てゆく。 (ここで、各部の役割を詳しく説明する。) アドレスバス 制御装置各部の役割 命令レジスタ 読み出された命令を一時格納する 命令デコーダ 命令を解読し、制御信号やアドレスを発生する プログラムカウンタ 命令が格納されているアドレスを示す
中央処理装置(CPU)の構成 演算装置各部の役割 算術論理演算装置(ALU) 四則演算・論理演算・比較演算などを行う 主記憶装置 制御装置 演算装置 データバス レジスタ + オペレーション コード オペランド プログラム カウンタ 命令 レジスタ ALU 命令 デコーダ … ここからは、直前に説明したコンピュータの構成のうち、CPUについてくわしく見てゆく。 CPUは、主記憶装置(メモリ)から命令とかデータを取り込んで処理したり、処理した結果を主記憶装置に書き込んだりといった処理をするので、ここでは主記憶装置とあわせて図示して、その動作を見てゆく。 (ここで、各部の役割を詳しく説明する。) アドレスバス 演算装置各部の役割 算術論理演算装置(ALU) 四則演算・論理演算・比較演算などを行う レジスタ 演算などに必要なデータを一時格納する
命令の実行 プログラム例 命令 データ 処理前 処理後 メモリ 格納番地 命令長 命令 処理内容 1 0~2 3 LD REG, (100) データ 処理前 処理後 メモリ 格納番地 命令長 命令 処理内容 1 0~2 3 LD REG, (100) メモリの100番地のデータをレジスタREGに転送せよ 2 INC REG REGのデータを+1せよ 4~6 LD (101), REG REGのデータをメモリの101番地に転送せよ メモリ 格納番地 データ 1 100 50 メモリ格納番地 データ 1 100 50 2 101 51
命令の実行 命令1の読み込み ② ① + 0→3 … 中央処理装置(CPU) 主記憶装置 制御装置 演算装置 LD REG (100) 1 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 + オペレーション コード オペランド REG, (100) プログラム カウンタ 命令 レジスタ LD 0→3 ALU 命令 デコーダ … ①
命令1の解読・実行 ④ ③ + 50 3 … 主記憶装置 中央処理装置(CPU) 制御装置 演算装置 LD REG (100) 1 2 3 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 + 50 オペレーション コード オペランド REG, (100) プログラム カウンタ 命令 レジスタ LD 3 ALU 命令 デコーダ … ③
命令2の読み込み ② ① + 50 3→4 … 主記憶装置 中央処理装置(CPU) 制御装置 演算装置 LD REG (100) 1 2 3 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 + 50 オペレーション コード オペランド プログラム カウンタ 命令 レジスタ INC REG 3→4 ALU 命令 デコーダ … ①
命令2の解読・実行 ③ ④ + 51 4 … 主記憶装置 中央処理装置(CPU) 制御装置 演算装置 LD REG (100) 1 2 3 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 + 51 オペレーション コード オペランド ③ プログラム カウンタ ④ 命令 レジスタ INC REG 4 ALU 命令 デコーダ …
命令3の読み込み ② ① + 51 4→7 … 主記憶装置 中央処理装置(CPU) 制御装置 演算装置 LD REG (100) 1 2 3 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 + 51 オペレーション コード オペランド (101), REG プログラム カウンタ 命令 レジスタ LD 4→7 ALU 命令 デコーダ … ①
命令3の解読・実行 ④ ③ + 51 7 … 主記憶装置 中央処理装置(CPU) 制御装置 演算装置 LD REG (100) 1 2 3 レジスタ LD REG (100) 1 2 3 INC 4 (101) 5 6 … 100 50 101 51 + 51 オペレーション コード オペランド (101), REG プログラム カウンタ 命令 レジスタ LD 7 ALU 命令 デコーダ … ③