講義用スライド(前半)

コンピュータ工学 I
Rev. 2014.10.17
1
カリキュラム体系
ソフトウェア
ハードウェア
コンピュータリテラシ
1年春学期
1年秋学期
コンピュータ実習
コンピュータ工学 I
2年春学期
プログラミング基礎
コンピュータ工学 II
2年秋学期
ディジタル回路 I
数値計算
ディジタル回路 II
3年春学期
画像工学
3年秋学期
コンピュータ
ネットワーク
2
コンピュータ工学 I の内容
学習の目標
CPUの構造と働きを理解する。
① 数と文字の表現法
② 論理回路の設計
③ CPUの構成要素と働き
④ CPUの動作のしくみ
3
アナログ信号
ディジタル信号
連続的な値
離散的な値
(整数値)
‣ 情報量が多い。
‣ 直感的に分かりや
すい。
‣ ノイズに弱い。
‣ ノイズに強い。
‣ 信号処理がしやす
い。
コンピュータ
4
コンピュータ(ディジタル回路)
電気の2状態
ON
OFF
1
0
1001011101001
0011011111100
2進数
2進数に変換
数値データ
5309 2.735
12
­324 2.1 10
数値化
音声データ
画像データ
文章データ
5
コンピュータにおける整数の表現
① 2進数
② p進数→10進数の基数変換
③ 10進数→p進数の基数変換
④ 16進数
6
基数変換
10進数
人間
入力
1
出力 基数変換
コンピュータ
2進数
演算・制御・記憶
7
p進数→10進数の基数変換
p進数 dn dn-1… d2 d1d0
n
n-1
2
N(10)=dn×p +dn-1×p +…+d2×p +d1×p+d0
n-1
n-2
N(10)=p×(dn×p +dn-1×p +…+d2×p+d1)+d0
pで割ったときの商
pで割ったときの余り
8
演算の基本
① 2進数の加算
② 2進数の乗算
③ 負の数の表現
④ 2進数の減算
9
負の数
OFF ON
コンピュータが使えるのは0, 1のみ
マイナス記号は存在しない
コンピュータにおける負の数の表現方法
① 符号絶対値法
② 1の補数
③ 2の補数
10
良いコンピュータを作るには?
高速化・小型化・低コスト化
無駄を部分を可能な限り省く。
11
加減算回路の構成
A
A
B
B
加算回路
A
B
減算回路
12
加減算回路の構成(2の補数を利用)
A
A
B
B
bit反転回路
加算回路
­B
+1
減算回路が要らない
小型化・低コスト化
13
P=0のとき
A3A2A1A0
+ B3B2B1B0
C3S3 S2 S1 S0
P=1のとき
A3A2A1A0
− B3B2B1B0
S3 S2 S1 S0
bit反転
+1
加算回路
14
コンピュータにおける小数の表現
① 2進数小数 → 10進数小数の変換
② 10進数小数 → 2進数小数の変換
③ 固定小数点数
④ 浮動小数点数
15
小数(実数)
OFF ON
コンピュータが使えるのは0, 1のみ
小数点記号は存在しない
コンピュータにおける小数の表現方法
① 固定小数点数
② 浮動小数点数
16
C言語の変数型
整数型(固定小数点数)
型名
ビット数
表現できる値の範囲
char
8
­128∼127
short
16
­32768∼32767
long
int
32
­2147483648∼2147483647
実数型(浮動小数点数)
型名
ビット数 仮数のビット数
指数の範囲
float
32
23
2の­126∼127乗
double
64
52
2の­1022∼1023乗
17
整数(固定小数点数)同士の計算
0011101
+ 0000110
0100011
そのまま加減算ができる。
計算処理が単純 ▶︎ 計算が速い
18
実数(浮動小数点数)同士の計算
5
2
1.1101
3
+ 1.1000 2
5
2
1.1101
5
+ 0.0110 2
5
10.0011 2
指数を同じにして
6
1.0001
2
から計算する。
計算処理が複雑 ▶︎ 計算が遅い
19
固定小数点数
浮動小数点数
表現できる数値の
範囲が狭い
表現できる数値の
範囲が広い
計算が速い
計算が遅い
20
誤差問題
① 丸め誤差
② 情報落ち
③ 桁落ち
21
コンピュータにおける文字の表現
① ASCIIコード
② JISコード
③ UNICODE
22
ASCIIコード
23
16bit JISコード
16bit
8bit
東京City
456C 357E 43 69 74 6F(16)
El 5~ C i t y
文字化け
24
16bit JISコード
16bit
8bit
東京City
456C 357E 43 69 74 6F(16)
1B2442
1B284A
16bitコード開始 8bitコード開始
制御コード
を埋め込む
25
16bit シフトJISコード
16bit
8bit
東京City
938C 8B9E 43 69 74 6F(16)
未
定
義
未
定
義
C i t y
26
課題1
•教科書29ページ 演習問題
•これまでの講義についての感想を書く。 どのような内容でも良い。
• 提出日時:10月11日(土) 講義開始前
• 大学専用のレポート用紙(A4)に書くこと。
• ホッチキスまたは糊で綴じること。
• 学生番号、氏名、講義名、提出日を書くこと。
• 計算の途中過程を書くこと。
27
演算回路の設計手順
① 回路化したい計算式
② 論理式
d=a+b
S = A+B
C = A・B
③ 論理回路
④ ディジタル回路
※ 回路の一部
28
論理演算(ブール代数)
0と1しか使わない演算
2進数との相性が良い。
0
1
変換ルール
(論理積)
0
29
論理演算(ブール代数)
0と1しか使わない演算
2進数との相性が良い。
1
1
変換ルール
(論理積)
1
30
論理回路
① 論理演算(ブール代数)の基礎
② ブール代数の定理
③ 論理式の簡単化
31
論理回路の作成手順
① 真理値表の作成
② 論理式の組み立て
③ 論理式の簡単化
④ 論理回路への書き換え
32
デコーダ
2入力4出力デコーダ
D0
D1
A0
入力
A1
符号化された
データ
D2
復号
出力
D3
元のデータ
33
マルチプレクサ
2入力1出力マルチプレクサ(イメージ図)
A
入力
S
Z 出力
B
S=0 のとき Z=A
S=1 のとき Z=B
34
カルノー図を用いた簡単化
加法標準形
真理値表
簡単化していない
論理式
ブール代数の公理
カルノー図
簡単化した
論理式
35
論理式の簡単化
真理値表
カルノー図
簡単化していない
論理式
簡単化した
論理式
36
課題2
•教科書52ページ 演習問題 1, 2, 3, 5, 6
•これまでの講義についての感想を書く。 • 提出日時:11月10日(月) 講義開始前
• 大学専用のレポート用紙(A4)に書くこと。
• ホッチキスまたは糊で綴じること。
• 学生番号、氏名、講義名、提出日を書くこと。
• 計算の途中過程を書くこと。
• 中間試験:11月17日(月)
37
順序回路
① RSフリップフロップ
② JKフリップフロップ
③ Dフリップフロップ
④ Tフリップフロップ
⑤ フリップフロップの応用
38
フリップフロップのしくみ
Reset
0
Set
0
A
B
A NOR B
0
0
1
1
0
1
0
1
1
0
0
0
0
Q
1
39
フリップフロップのしくみ
Reset
0
Set
1
A
B
A NOR B
0
0
1
1
0
1
0
1
1
0
0
0
1
Q
0
40
フリップフロップのしくみ
Reset
0
Set
0
A
B
A NOR B
0
0
1
1
0
1
0
1
1
0
0
0
1
Q
0
41
フリップフロップのしくみ
Reset
1
Set
0
A
B
A NOR B
0
0
1
1
0
1
0
1
1
0
0
0
0
Q
1
42
フリップフロップのしくみ
Reset
0
Set
0
A
B
A NOR B
0
0
1
1
0
1
0
1
1
0
0
0
0
Q
1
43
CPUの中の記憶装置
① レジスタ
② シフトレジスタ
③ カウンタ
④ 基本記憶素子
44