計算機システムⅡ 論理回路と記憶,計算:レジスタ...

23
計算機システムⅡ 論理回路と記憶,計算:レジスタとALU 和田俊和

Transcript of 計算機システムⅡ 論理回路と記憶,計算:レジスタ...

Page 1: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

計算機システムⅡ  論理回路と記憶,計算:レジスタとALU  

和田俊和

Page 2: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

講義計画 1.  コンピュータの歴史1 2.  コンピュータの歴史2  3.  コンピュータの歴史3  4.  論理回路と記憶,計算:レジスタとALU(←本日) 5.  主記憶装置とALU,レジスタの制御 6.  命令セットアーキテクチャ 7.  演習問題 8.  パイプライン処理 9.  メモリ階層:キャッシュと仮想記憶 10.  命令レベル並列処理 11.  命令実行順序の変更 12.  入出力と周辺装置:DMA,割り込み処理 13.  演習問題 14.  現代的な計算機アーキテクチャの解説と試験 •  教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータアー

キテクチャ,コロナ社 •  最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.

Page 3: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

計算機アーキテクチャ

Page 4: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.1 ディジタルな表現

Page 5: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.1.1値の表現:アナログとディジタル

•  アナログ表現では電圧の値そのものを「値」と見なす.  

•  ディジタル表現は,電圧が閾値Vthを超えているか否かで0と1の表現をする.

Page 6: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.1.2ディジタルな表現(パラレル) •  複数の電線があれば,

多数桁の二進数による数値表現ができる.  

Page 7: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.1.3  負の数

•  (例)156      =1001  1100        (8bit表現)  •  1の補数  =0110  0011   (8bit表現)  •   上記の和  1111  1111      (8bit表現)  •  +1  する 10000  0000      (8bitなので1は無視)  •  1の補数に最初から+1しておけば,足すだ

けで,上の結果になる.  •  X+Y=0 となるYは,Xの何か?  Y  =  −X

Page 8: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.1.4実数 •  固定小数点による表現   整数の表現と同じであるが,何桁目に小数点    があるのかを事前に約束しておく.  •  浮動小数点による表現(問題点もある)  

 負号  指数部      仮数部  

   

Page 9: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2 計算する

Page 10: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.1 計算とは何か(簡単な説明)

•  1つ以上のデータから新たなデータを作ること  – 2進数の場合,1つ以上の2進数から新たな2進数を

作ること  

•  これは論理関数として定義可能  •  論理関数は組み合わせ(論理)回路で計算可能  

1.  任意の論理回路は数種類の基本素子によって構成可能  2.  組み合わせ論理回路は,一定の手順で簡単化可能

Page 11: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

基本素子

Page 12: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.2  1ビットの加算

半加算機           全加算機

X  Y S  C

0  0 0  0

0  1 1  0

1  0 1  0

1  1 0  1

X  Y  C S  C

0  0  0 0  0

0  1  0 1  0

1  0  0 1  0

1  1  0 0  1

0  0  1 1  0

0  1  1 0  1

1  0  1 0  1

1  1  1 1  1

Page 13: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.3  nビット加算器

•  全加算器を左図のようにn個組み合わせると,n桁の加算が行える.  

•  キャリーの伝搬が最も時間のかかる部分であり,これを高速化した「キャリールックアヘッドアダー」が実際に用いられる.

Page 14: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

キャリールックアヘッドアダー

•  X1  ←  A0  AND  B0  •  X2  ←  (A1  AND  B1)  OR  (A0  AND  B0  AND  A1)  OR  (A0  AND  B0  AND  B1)  •  X3  ←  (A2  AND  B2)  OR  (A1  AND  B1  AND  A2)  OR  (A1  AND  B1  AND  B2)  

OR  (A0  AND  B0  AND  A1  AND  A2)  OR  (A0  AND  B0  AND  A1  AND  B2)  OR  (A0  AND  B0  AND  B1  AND  A2)  OR  (A0  AND  B0  AND  B1  AND  B2)    

Page 15: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.4  減算の実現

•  2の補数を計算する際に,キャリーを利用する.

•  XORは片方に1を入れると,もう一方の入力を反転する.

Page 16: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.4 ALU

•  ALU:  ArithmeEc  Logic  Unit  (算術論理ユニット)  •  制御信号によって計算の内容が変わる.

Page 17: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.2.4 ALU(74181)

•  PDP11など,昔の計算機のCPUは,このチップを用いて作られていた.

Page 18: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.3 計算のサイクル

Page 19: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.3.1 フリップフロップ(エッジトリガ型)

Page 20: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.3.2  レジスタ

•  レジスタ(置数器)  

右側が実際のもの.  入力にラッチがあり,出力側にバッファが,そして各素子にclearがある.

Page 21: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

1.3.3  レジスタとALUの結合

•  制御信号群で,入力となるレジスタと,演算内容,出力先レジスタを選び,計算を行う.

Page 22: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内

計算機アーキテクチャ

Page 23: 計算機システムⅡ 論理回路と記憶,計算:レジスタ …vrl.sys.wakayama-u.ac.jp/CS2/file/CS2-4.pdf1.3.3 レジスタとALUの結合 • 制御信号群で,入力となるレジスタと,演算内