Transcript 論理回路基礎
論理回路基礎
11. 論理回路からコンピュータへ
五島 正裕
論理回路基礎
今日の内容
論理回路 と コンピュータ
プロセッサの例
試験問題
論理回路基礎
論理回路 と コンピュータ
論理回路基礎
論理回路からコンピュータへ
コンピュータ = 巨大な順序回路
原理的には,学習した「順序回路の構成法」に従って設計できる
実際には,不可能
コンピュータの状態数:
主記憶 1GB = 8Gb : 28,000,000,000 ≈ 210
HD 80GB = 640Gb : …
状態遷移図?,状態遷移表?
10
≈ 1030
論理回路基礎
構造化
構造化
演算器
メモリ
制御
命令 (instruction)
演算器に対する指示
どのデータに対して,どんな演算を施すか
プログラム : 命令列
論理回路基礎
構造化
構造化
演算器
メモリ
制御
機能ブロックに分けられる
機能ブロック間のインタフェースの決定
個々の機能ブロックの設計
学習した「順序回路の構成法」
論理回路基礎
von Neumann 型コンピュータ
ノイマン型 (von Neumann-type) コンピュータ
プログラム格納(内蔵)方式 (stored-program)
逐次実行方式(プログラム・カウンタ)
主記憶に格納されたプログラムの命令を,
遂次 取り出して実行.
「プログラム 内蔵 方式」
普通こっちだが,よい訳ではないので…
フォン・ノイマン・ボトルネック(死語)
「データに加えて,命令も主記憶から取り出すので…」
論理回路基礎
プログラム格納 (stored-program) 方式
プログラムを主記憶に格納
プログラム自体が,操作(演算)の対象に
プログラムを自ら書き換え可能
実行時書き換え:重要ではない
実行前書き換え:重要!
⇒ 真にプログラマブルなコンピュータ
もし,プログラム内蔵方式でなかったら:
プログラムを自ら操作することはできない
ロード等のために別の何か(オペレータ?)が必要に…
OS はあり得ない
論理回路基礎
簡単なプロセッサの例
論理回路基礎
プロセッサ
命令セット・アーキテクチャ (Instruction-Set Architecture : ISA)
プログラムに対するインタフェース
どんな命令があり,どういう動作をするか を定めた仕様
プロセッサは機能ブロックにわけられる
機能ブロック間のインタフェースの決定
個々の機能ブロックの設計
論理回路基礎
命令の種類
数え方にもよるが,数十種くらい.
ロード/ストア
演算命令
算術論理演算 (ALU : Arithmetic Logic Unit)
シフト
浮動小数点演算
制御命令
分岐 (branch) 命令
:PC 相対
ジャンプ命令
:絶対
その他
システム・コール
コプロセッサ制御
論理回路基礎
命令フォーマット
op
31
Rs
25
op
31
20
Rs
25
op
31
Rt
Rd
15
Rt
20
func
10
0
immediate
15
0
jump_target
25
op : op code
0
Rs : source reg #
Rt : target reg #
Rd : destination reg #
論理回路基礎
演算命令
算術論理演算 (ALU, Arithmetic Logic Unit) 命令
r[Rd] = r[Rs] + r[Rt]
r[Rt] = r[Rs] + immediate
シフト命令
r[Rd] = r[Rs] << shamt
op
31
Rs
25
op
31
Rt
20
Rs
25
Rd
15
Rt
20
shamt func
10
0
immediate
15
0
論理回路基礎
ロード/ストア命令
ロード命令
r[Rt] = *(r[Rs] + immediate)
ストア命令
*(r[Rs] + immediate) = r[Rt]
op
31
Rs
25
Rt
20
immediate
15
0
論理回路基礎
制御命令
(条件)分岐命令
if (cond) PC = PC + immediate
cond:
R[Rs] == 0, R[Rs] > 0, …
R[Rs] == R[Rt]
op
31
Rs
25
Rt
20
immediate
15
0
論理回路基礎
制御命令
ジャンプ命令
PC = PC + jump_target
ジャンプ命令(レジスタ間接)
PC = r[Rs]
op
31
Rs
25
op
31
Rt
20
immediate
15
0
jump_target
25
0
論理回路基礎
命令の実行フェーズ
1.
IF
命令フェッチ
2.
ID
命令デコード/レジスタ読み出し
3.
EX
実行
4.
MEM
メモリ・アクセス
5.
WB
レジスタ書き戻し (Write-Back)
名称は歴史的(esp. ID)
100
IF
PC
IR
0
200
ID
Rs
Rt
Reg
File
EX
MEM
WB
DR
MDR
MA MD
100
104
12 8
add 23 1
208
1000
ld
Main Memory
論理回路基礎
実行例
100
ld
r2 = *(r1 + 8)
104
add
r3 = r2 + 1
100
104
IF
PC
IR
ld
0
200
ID
12 8
Rs
Rt
Reg
File
EX
MEM
WB
DR
MDR
MA MD
100
104
12 8
add 23 1
208
1000
ld
Main Memory
104
IF
PC
IR
ld
0
200
ID
12 8
Rs
Rt
Reg
File
200
WB
DR
12 8
add 23 1
208
1000
ld
8
EX
MEM
100
104
MDR
MA MD
Main Memory
104
IF
PC
IR
ld
0
200
ID
12 8
Rs
Rt
Reg
File
200
100
104
12 8
add 23 1
208
1000
ld
8
EX
208
MEM
WB
DR
MDR
MA MD
Main Memory
104
IF
PC
IR
ld
0
200
ID
12 8
Rs
Rt
Reg
File
200
100
104
12 8
add 23 1
208
1000
ld
8
EX
208
MEM
DR
MDR
1000
WB
MA MD
Main Memory
104
IF
PC
IR
ld
ID
0
200
1000
Reg
File
200
12 8
Rs
Rt
100
104
12 8
add 23 1
208
1000
ld
8
EX
208
MEM
DR
MDR
1000
WB
MA MD
Main Memory
104
108
IF
PC
IR
add 23
ID
0
200
1000
Reg
File
1
Rs
Rt
EX
MEM
WB
DR
MDR
MA MD
100
104
12 8
add 23 1
208
1000
ld
Main Memory
108
IF
PC
IR
add 23
ID
0
200
1000
Reg
File
1000
1
Rs
Rt
WB
DR
12 8
add 23 1
208
1000
ld
0
EX
MEM
100
104
MDR
MA MD
Main Memory
108
IF
PC
IR
add 23
ID
0
200
1000
Reg
File
1000
1
Rs
Rt
100
104
12 8
add 23 1
208
1000
ld
1
EX
1001
MEM
WB
DR
MDR
MA MD
Main Memory
108
IF
PC
IR
add 23
ID
0
200
1000
Reg
File
1000
1
Rs
Rt
100
104
12 8
add 23 1
208
1000
ld
1
EX
1001
MEM
DR
MDR
1001
WB
MA MD
Main Memory
108
IF
PC
IR
add 23
ID
0
200
1000
1001
Reg
File
1000
1
Rs
Rt
100
104
12 8
add 23 1
208
1000
ld
1
EX
1001
MEM
DR
MDR
1000
WB
MA MD
Main Memory
論理回路基礎
今日のまとめ
論理回路基礎
今日のまとめ
論理回路 と コンピュータ
学習した「順序回路の構成法」に従って設計できない
構造化
演算器
メモリ
制御
ノイマン型コンピュータ:プログラム内蔵方式
プロセッサの例
論理回路基礎
今後の予定
3/ 2
試験 (9:00~10:30)
来年度前期
「コンピュータ・ハードウェア」 by 坂井先生
論理回路基礎
試験問題
論理回路基礎
問題 1
用語説明(10点 × 3問)
5 (?) 問中,3問以上を選択して回答せよ
例えば:
データ・セレクタ
桁上げ先見回路
SRAM と DRAM
プログラム内蔵方式
etc
論理回路基礎
問題 2
順序回路の設計 (70点)
1. 順序回路の仕様を示す
2. 簡単化する(簡単化後の状態数は,3 か 4)
3. 出力関数,次状態関数を求める
4. それらを簡単化する
5. 回路図を描く
論理回路基礎
問題 3
電気回路,電子回路を用いない論理回路の,完全(完備)集合を示せ.
機械式,流体式など
実現可能性,性能,コストなどは問わない
加点 <= 30点
回答例が少ないものほど高得点