SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
東北大学 工学部 機械知能・航空工学科
2015年度 5セメスター・クラスD
計算機工学
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
12. 順序回路の設計と応用
(教科書5章)
2鏡 慎吾 (東北大学): 計算機工学 2015 (12)
順序回路の設計
• 組合せ論理回路の設計法の分類
• 構造や規則性に着目した手設計(先人の知恵を使う)
• 入力・出力の関係に基づく自動合成(カルノー図など)
• 順序回路の設計法の分類
• 構造や規則性に着目した手設計(前回の各例)
• 入力・出力・状態の関係に基づく自動合成(今回)
3鏡 慎吾 (東北大学): 計算機工学 2015 (12)
同期式順序回路の入力・出力・状態の関係
x1
x2
xn
y1
y2
ym
q1
q2
qp
組合せ回路
yj(t) = gj(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t))
j = 1, 2, …, m
qi(t+1) = fi(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t))
i = 1, 2, …, p
p ビットレジスタ
q1qp q1
next qp
nextq2 q2
next
fi: 状態遷移関数
gi: 出力関数
4鏡 慎吾 (東北大学): 計算機工学 2015 (12)
有限状態機械
• 取り得る状態の数が有限であるようなシステム
• すべての状態を列挙して,どんな入力のときにどの状態からど
の状態に遷移するのか,そのとき何が出力されるのかを考え
尽くすことができる
• 設計手順
• 入力・出力・状態の関係を状態遷移図で表す
• 入力・出力・状態に2進符号を割り当てる
• 状態遷移表・出力表を作成する
• 論理回路に置き換える(必要ならば簡単化する)
5鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例1: 自動販売機
• 100円硬貨だけを受け付ける
• 投入金額が300円に達すると品物が出てくる
• 投入済金額を返却するボタンがある(硬貨投入と同時には押せない)
入力: { なし, 100円硬貨, 返却ボタン}
出力: { なし, 品物, 投入金額返却 }
状態: { 0円投入済,100円投入済, 200円投入済 }
6鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例1: 状態遷移図
0円
投入済
100円
投入済
200円
投入済
100円 / なし 100円 / なし
0円 / なし0円 / なし 0円 / なし
ボタン / なし
ボタン / 返却
ボタン / 返却
100円 / 品物
• 状態を円(ノード)で表す
状態名を記入する
• 状態遷移を矢印(アーク)で表す
入力 / 出力 を付記する
7鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例: 状態・入力・出力の符号化
入力: { なし, 100円硬貨, 返却ボタン }
00 01 11 = x1 x2
出力: { なし, 品物, 投入金額返却 }
00 01 11 = z1 z2
状態: { 0円投入済,100円投入済, 200円投入済 }
00 01 11 = y1 y2
00 01 11
01 / 00 01 / 00
00 / 0000 / 00 00 / 00
11 / 00
11 / 11
11 / 11
01 / 01
8鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例1: 状態遷移表・出力表
y1 y2 x1 x2 Y1 Y2 z1 z2
0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 * * * *
0 0 1 1 0 0 0 0
0 1 0 0 0 1 0 0
0 1 0 1 1 1 0 0
0 1 1 0 * * * *
0 1 1 1 0 0 1 1
1 0 0 0 * * * *
1 0 0 1 * * * *
1 0 1 0 * * * *
1 0 1 1 * * * *
1 1 0 0 1 1 0 0
1 1 0 1 0 0 0 1
1 1 1 0 * * * *
1 1 1 1 0 0 1 1
入力×状態
→ 状態遷移先
の表を状態遷移表,
入力×状態
→ 出力
の表を出力表と呼ぶ.
両方合わせて状態
遷移表と呼ぶことも
多い.
次時刻の状態
9鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例1: カルノー図による簡単化
Y1 x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 1 0 *
11 1 0 0 *
10 * * * *
Y2
x1 x2
00 01 11 10
y1y2 00 0 1 0 *
01 1 1 0 *
11 1 0 0 *
10 * * * *
z1
x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 0 1 *
11 0 0 1 *
10 * * * *
z2
x1 x2
00 01 11 10
y1y2 00 0 0 0 *
01 0 0 1 *
11 0 1 1 *
10 * * * *
10鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例1: 回路図
DQ
DQ
y2y1 Y1 Y2
x2x1
z2
z1
11鏡 慎吾 (東北大学): 計算機工学 2015 (12)
復習: MIPSの構造
メモリ
32ビットALU
32x32ビット
レジスタ
PC
命令デコーダ
アドレス(32ビット)
データ(8, 16, 32ビット)
次PC計算
制御回路
mux
mux
演算選択
レ
ジ
ス
タ
選
択
12鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例2: 簡易版MIPSの制御回路(付録E章)
ALU
PC
命令
デコーダ
制御回路
汎用
レジスタ
w_en
rs
rt
rw
s
t
w
+4
命令メモリ
addr
inst
en
GPRenPCen
IF ID EX
op
nPC
offset
分岐先計算
分岐
判定
0
1
is_branch
13鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例2: 定義
演算命令と分岐命令だけの簡略版MIPSの制御回路を設計する
入力: 命令デコードの結果生成される is_branch 信号
(分岐命令なら1,演算命令なら0)
出力: イネーブル信号 PCen, GPRen
状態:
• IF (Instruction Fetch): 命令読出し,後続命令アドレス計算
• ID (Instruction Decode): 命令デコード,レジスタ読出,分岐判定
• EX (EXecution): 演算実行,レジスタ書き込み
14鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例2: 状態遷移図
IF ID EX
is_branch = *
/ (PCen, GPRen)
= (0, 0)
is_branch = 1
/ (PCen, GPRen) = (1, 0)
is_branch = *
/ (PCen, GPRen) = (1, 1)
is_branch = 0
/ (PCen, GPRen)
= (0, 0)
「入力 = *」は,入力が1の場合も0の場合も出力・遷移先状態が同じことを表
すとする
15鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例2: 状態遷移表・出力表
Q1 Q0 is_branch Q1' Q0' PCen GPRen
0 0 0 0 1 0 0
0 0 1 0 1 0 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
1 0 0 0 0 1 1
1 0 1 0 0 1 1
1 1 0 * * * *
1 1 1 * * * *
符号割り当て:
IF: Q1Q0 = 00
ID: Q1Q0 = 01
EX: Q1Q0 = 10
16鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例2: カルノー図による簡単化
Q1' Q1 Q0
00 01 11 10
is_branch 0 0 1 * 0
1 0 0 * 0
Q0' Q1 Q0
00 01 11 10
is_branch 0 1 0 * 0
1 1 0 * 0
PCen Q1 Q0
00 01 11 10
is_branch 0 0 0 * 1
1 0 1 * 1
GPRen Q1 Q0
00 01 11 10
is_branch 0 0 0 * 1
1 0 0 * 1
17鏡 慎吾 (東北大学): 計算機工学 2015 (12)
練習問題
論理値の系列(例えば 0100110101...) を入力として受け取って,
「0011」という系列が現れたとき初めて1を出力し,それ以外では0
を出力する順序回路を設計せよ.
入力を x,状態を y1y2 (次時刻の状態を Y1Y2),出力を z とする.
00 01 10 11
18鏡 慎吾 (東北大学): 計算機工学 2015 (12)
解答例
Y2
Y1
19鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例題 (おまけ)
ある人が狼,羊,牧草とともに旅をしていたところ,川にさしかかった.小さな舟
を漕いで渡るしかない.舟には,漕ぎ手である人のほか,狼,羊,牧草のいず
れか高々1つしか乗せるスペースがない.ただし,人がいないと狼は羊を食べ
てしまい,また羊は牧草を食べてしまう.人,狼,羊,牧草すべて無事に川を渡
るにはどうすればよいか.
(1) こちらの岸と向こう岸に存在し得る人,狼,羊,牧草の組合せを列挙せよ.
これが有限状態機械の状態となる.(渡っている途中の状況は,状態とし
なくてよい.理由を考えよ)
(2) 状態遷移図を作成せよ.ただし入力,出力を考える必要はない.状態に2
進符号を割り当てる必要もない.(ある状態からはどの状態に遷移し得る
かのみを考慮する)
(3) 状態遷移図をもとに,最短で向こう岸に渡るための手順を示せ.答えは一
つとは限らない.(ヒント: 初期状態から順に,あるいは最終状態から逆に
たどるとよい.あるいは状態遷移図を整理しながら考えてもよい)
20鏡 慎吾 (東北大学): 計算機工学 2015 (12)
例題(おまけ) 解答例
状態 こちら岸 向こう岸
A 人狼羊草 – φ
(B 狼羊草 - 人)
C 人羊草 - 狼
D 人狼草 - 羊
E 人狼羊 - 草
(F 羊草 - 人狼)
G 狼草 - 人羊
(H 狼羊 - 人草)
(I 人草 - 狼羊)
J 人羊 - 狼草
(K 人狼 - 羊草)
(L 人 - 狼羊草)
M 狼 - 人羊草
N 羊 - 人狼草
O 草 - 人狼羊
P φ - 人狼羊草
A
G
J
N
P
D
M O
E C
最短経路は二つ
21鏡 慎吾 (東北大学): 計算機工学 2015 (12)
参考
• 今回学んだ Mealy 型の有限状態機械のほかに,出力が状
態にだけ依存する(入力に直接依存しない) Moore 型の有
限状態機械がある.
• Moore 型も Mealy 型も表現能力は同じである.ただし,
Moore 型は入力が出力に反映されるのに1時刻以上か
かる.
• 入力が出力に直接影響するのが好ましくない場合は
Moore 型で設計する必要がある.
• 今回は,状態遷移図から安直に回路を生成した,実際は
• より状態数の少ない有限状態機械で表せるかも知れない
• 符号の割り当て方によって,回路がもっと簡単になるかも
知れない
などといったことも考える必要がある.

Contenu connexe

En vedette

kagami_comput2016_01
kagami_comput2016_01kagami_comput2016_01
kagami_comput2016_01swkagami
 
kagami_comput2016_02
kagami_comput2016_02kagami_comput2016_02
kagami_comput2016_02swkagami
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14swkagami
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13swkagami
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14swkagami
 
kagami_comput2015_10
kagami_comput2015_10kagami_comput2015_10
kagami_comput2015_10swkagami
 
kagami_comput2015_11
kagami_comput2015_11kagami_comput2015_11
kagami_comput2015_11swkagami
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9swkagami
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12swkagami
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13swkagami
 
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06swkagami
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08swkagami
 
kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07swkagami
 
kagami_comput2016_05
kagami_comput2016_05kagami_comput2016_05
kagami_comput2016_05swkagami
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!yoshikawa_t
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4Shingo Inoue
 
フレッシュマンセミナー20060614
フレッシュマンセミナー20060614フレッシュマンセミナー20060614
フレッシュマンセミナー20060614Takeo Kunishima
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4swkagami
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめYossy Taka
 
kagami_comput2016_11
kagami_comput2016_11kagami_comput2016_11
kagami_comput2016_11swkagami
 

En vedette (20)

kagami_comput2016_01
kagami_comput2016_01kagami_comput2016_01
kagami_comput2016_01
 
kagami_comput2016_02
kagami_comput2016_02kagami_comput2016_02
kagami_comput2016_02
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
 
kagami_comput2015_10
kagami_comput2015_10kagami_comput2015_10
kagami_comput2015_10
 
kagami_comput2015_11
kagami_comput2015_11kagami_comput2015_11
kagami_comput2015_11
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13
 
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08
 
kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07
 
kagami_comput2016_05
kagami_comput2016_05kagami_comput2016_05
kagami_comput2016_05
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
フレッシュマンセミナー20060614
フレッシュマンセミナー20060614フレッシュマンセミナー20060614
フレッシュマンセミナー20060614
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめ
 
kagami_comput2016_11
kagami_comput2016_11kagami_comput2016_11
kagami_comput2016_11
 

Similaire à kagami_comput2015_12

kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811swkagami
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8swkagami
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明Michio Katouda
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明Michio Katouda
 
[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組み[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組みYuto Takei
 
Dynamic Zoning Based On Situational Activity in ICS (Japanese)
Dynamic Zoning Based On Situational Activity in ICS (Japanese)Dynamic Zoning Based On Situational Activity in ICS (Japanese)
Dynamic Zoning Based On Situational Activity in ICS (Japanese)Digital Bond
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元Shogo Muramatsu
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較y-uti
 

Similaire à kagami_comput2015_12 (12)

kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明
 
[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組み[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組み
 
論理回路2017 no.6
論理回路2017 no.6論理回路2017 no.6
論理回路2017 no.6
 
Dynamic Zoning Based On Situational Activity in ICS (Japanese)
Dynamic Zoning Based On Situational Activity in ICS (Japanese)Dynamic Zoning Based On Situational Activity in ICS (Japanese)
Dynamic Zoning Based On Situational Activity in ICS (Japanese)
 
Etnet2015.slide
Etnet2015.slideEtnet2015.slide
Etnet2015.slide
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
 
Pv2030
Pv2030Pv2030
Pv2030
 
LAハッカソンB
LAハッカソンBLAハッカソンB
LAハッカソンB
 

Plus de swkagami

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814swkagami
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813swkagami
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809swkagami
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808swkagami
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807swkagami
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806swkagami
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805swkagami
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804swkagami
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803swkagami
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802swkagami
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801swkagami
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713swkagami
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710swkagami
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709swkagami
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708swkagami
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707swkagami
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706swkagami
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705swkagami
 
kagamicomput201704
kagamicomput201704kagamicomput201704
kagamicomput201704swkagami
 

Plus de swkagami (20)

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705
 
kagamicomput201704
kagamicomput201704kagamicomput201704
kagamicomput201704
 

kagami_comput2015_12

  • 1. 東北大学 工学部 機械知能・航空工学科 2015年度 5セメスター・クラスD 計算機工学 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 12. 順序回路の設計と応用 (教科書5章)
  • 2. 2鏡 慎吾 (東北大学): 計算機工学 2015 (12) 順序回路の設計 • 組合せ論理回路の設計法の分類 • 構造や規則性に着目した手設計(先人の知恵を使う) • 入力・出力の関係に基づく自動合成(カルノー図など) • 順序回路の設計法の分類 • 構造や規則性に着目した手設計(前回の各例) • 入力・出力・状態の関係に基づく自動合成(今回)
  • 3. 3鏡 慎吾 (東北大学): 計算機工学 2015 (12) 同期式順序回路の入力・出力・状態の関係 x1 x2 xn y1 y2 ym q1 q2 qp 組合せ回路 yj(t) = gj(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t)) j = 1, 2, …, m qi(t+1) = fi(q1(t), q2(t), …, qp(t), x1(t), x2(t), …, xn(t)) i = 1, 2, …, p p ビットレジスタ q1qp q1 next qp nextq2 q2 next fi: 状態遷移関数 gi: 出力関数
  • 4. 4鏡 慎吾 (東北大学): 計算機工学 2015 (12) 有限状態機械 • 取り得る状態の数が有限であるようなシステム • すべての状態を列挙して,どんな入力のときにどの状態からど の状態に遷移するのか,そのとき何が出力されるのかを考え 尽くすことができる • 設計手順 • 入力・出力・状態の関係を状態遷移図で表す • 入力・出力・状態に2進符号を割り当てる • 状態遷移表・出力表を作成する • 論理回路に置き換える(必要ならば簡単化する)
  • 5. 5鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例1: 自動販売機 • 100円硬貨だけを受け付ける • 投入金額が300円に達すると品物が出てくる • 投入済金額を返却するボタンがある(硬貨投入と同時には押せない) 入力: { なし, 100円硬貨, 返却ボタン} 出力: { なし, 品物, 投入金額返却 } 状態: { 0円投入済,100円投入済, 200円投入済 }
  • 6. 6鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例1: 状態遷移図 0円 投入済 100円 投入済 200円 投入済 100円 / なし 100円 / なし 0円 / なし0円 / なし 0円 / なし ボタン / なし ボタン / 返却 ボタン / 返却 100円 / 品物 • 状態を円(ノード)で表す 状態名を記入する • 状態遷移を矢印(アーク)で表す 入力 / 出力 を付記する
  • 7. 7鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例: 状態・入力・出力の符号化 入力: { なし, 100円硬貨, 返却ボタン } 00 01 11 = x1 x2 出力: { なし, 品物, 投入金額返却 } 00 01 11 = z1 z2 状態: { 0円投入済,100円投入済, 200円投入済 } 00 01 11 = y1 y2 00 01 11 01 / 00 01 / 00 00 / 0000 / 00 00 / 00 11 / 00 11 / 11 11 / 11 01 / 01
  • 8. 8鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例1: 状態遷移表・出力表 y1 y2 x1 x2 Y1 Y2 z1 z2 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 * * * * 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 1 0 * * * * 0 1 1 1 0 0 1 1 1 0 0 0 * * * * 1 0 0 1 * * * * 1 0 1 0 * * * * 1 0 1 1 * * * * 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 * * * * 1 1 1 1 0 0 1 1 入力×状態 → 状態遷移先 の表を状態遷移表, 入力×状態 → 出力 の表を出力表と呼ぶ. 両方合わせて状態 遷移表と呼ぶことも 多い. 次時刻の状態
  • 9. 9鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例1: カルノー図による簡単化 Y1 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 1 0 * 11 1 0 0 * 10 * * * * Y2 x1 x2 00 01 11 10 y1y2 00 0 1 0 * 01 1 1 0 * 11 1 0 0 * 10 * * * * z1 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 0 1 * 11 0 0 1 * 10 * * * * z2 x1 x2 00 01 11 10 y1y2 00 0 0 0 * 01 0 0 1 * 11 0 1 1 * 10 * * * *
  • 10. 10鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例1: 回路図 DQ DQ y2y1 Y1 Y2 x2x1 z2 z1
  • 11. 11鏡 慎吾 (東北大学): 計算機工学 2015 (12) 復習: MIPSの構造 メモリ 32ビットALU 32x32ビット レジスタ PC 命令デコーダ アドレス(32ビット) データ(8, 16, 32ビット) 次PC計算 制御回路 mux mux 演算選択 レ ジ ス タ 選 択
  • 12. 12鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例2: 簡易版MIPSの制御回路(付録E章) ALU PC 命令 デコーダ 制御回路 汎用 レジスタ w_en rs rt rw s t w +4 命令メモリ addr inst en GPRenPCen IF ID EX op nPC offset 分岐先計算 分岐 判定 0 1 is_branch
  • 13. 13鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例2: 定義 演算命令と分岐命令だけの簡略版MIPSの制御回路を設計する 入力: 命令デコードの結果生成される is_branch 信号 (分岐命令なら1,演算命令なら0) 出力: イネーブル信号 PCen, GPRen 状態: • IF (Instruction Fetch): 命令読出し,後続命令アドレス計算 • ID (Instruction Decode): 命令デコード,レジスタ読出,分岐判定 • EX (EXecution): 演算実行,レジスタ書き込み
  • 14. 14鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例2: 状態遷移図 IF ID EX is_branch = * / (PCen, GPRen) = (0, 0) is_branch = 1 / (PCen, GPRen) = (1, 0) is_branch = * / (PCen, GPRen) = (1, 1) is_branch = 0 / (PCen, GPRen) = (0, 0) 「入力 = *」は,入力が1の場合も0の場合も出力・遷移先状態が同じことを表 すとする
  • 15. 15鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例2: 状態遷移表・出力表 Q1 Q0 is_branch Q1' Q0' PCen GPRen 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 * * * * 1 1 1 * * * * 符号割り当て: IF: Q1Q0 = 00 ID: Q1Q0 = 01 EX: Q1Q0 = 10
  • 16. 16鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例2: カルノー図による簡単化 Q1' Q1 Q0 00 01 11 10 is_branch 0 0 1 * 0 1 0 0 * 0 Q0' Q1 Q0 00 01 11 10 is_branch 0 1 0 * 0 1 1 0 * 0 PCen Q1 Q0 00 01 11 10 is_branch 0 0 0 * 1 1 0 1 * 1 GPRen Q1 Q0 00 01 11 10 is_branch 0 0 0 * 1 1 0 0 * 1
  • 17. 17鏡 慎吾 (東北大学): 計算機工学 2015 (12) 練習問題 論理値の系列(例えば 0100110101...) を入力として受け取って, 「0011」という系列が現れたとき初めて1を出力し,それ以外では0 を出力する順序回路を設計せよ. 入力を x,状態を y1y2 (次時刻の状態を Y1Y2),出力を z とする. 00 01 10 11
  • 18. 18鏡 慎吾 (東北大学): 計算機工学 2015 (12) 解答例 Y2 Y1
  • 19. 19鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例題 (おまけ) ある人が狼,羊,牧草とともに旅をしていたところ,川にさしかかった.小さな舟 を漕いで渡るしかない.舟には,漕ぎ手である人のほか,狼,羊,牧草のいず れか高々1つしか乗せるスペースがない.ただし,人がいないと狼は羊を食べ てしまい,また羊は牧草を食べてしまう.人,狼,羊,牧草すべて無事に川を渡 るにはどうすればよいか. (1) こちらの岸と向こう岸に存在し得る人,狼,羊,牧草の組合せを列挙せよ. これが有限状態機械の状態となる.(渡っている途中の状況は,状態とし なくてよい.理由を考えよ) (2) 状態遷移図を作成せよ.ただし入力,出力を考える必要はない.状態に2 進符号を割り当てる必要もない.(ある状態からはどの状態に遷移し得る かのみを考慮する) (3) 状態遷移図をもとに,最短で向こう岸に渡るための手順を示せ.答えは一 つとは限らない.(ヒント: 初期状態から順に,あるいは最終状態から逆に たどるとよい.あるいは状態遷移図を整理しながら考えてもよい)
  • 20. 20鏡 慎吾 (東北大学): 計算機工学 2015 (12) 例題(おまけ) 解答例 状態 こちら岸 向こう岸 A 人狼羊草 – φ (B 狼羊草 - 人) C 人羊草 - 狼 D 人狼草 - 羊 E 人狼羊 - 草 (F 羊草 - 人狼) G 狼草 - 人羊 (H 狼羊 - 人草) (I 人草 - 狼羊) J 人羊 - 狼草 (K 人狼 - 羊草) (L 人 - 狼羊草) M 狼 - 人羊草 N 羊 - 人狼草 O 草 - 人狼羊 P φ - 人狼羊草 A G J N P D M O E C 最短経路は二つ
  • 21. 21鏡 慎吾 (東北大学): 計算機工学 2015 (12) 参考 • 今回学んだ Mealy 型の有限状態機械のほかに,出力が状 態にだけ依存する(入力に直接依存しない) Moore 型の有 限状態機械がある. • Moore 型も Mealy 型も表現能力は同じである.ただし, Moore 型は入力が出力に反映されるのに1時刻以上か かる. • 入力が出力に直接影響するのが好ましくない場合は Moore 型で設計する必要がある. • 今回は,状態遷移図から安直に回路を生成した,実際は • より状態数の少ない有限状態機械で表せるかも知れない • 符号の割り当て方によって,回路がもっと簡単になるかも 知れない などといったことも考える必要がある.