SlideShare a Scribd company logo
1 of 21
Download to read offline
東北大学 工学部 機械知能・航空工学科
2016年度 5セメスター・クラスC3 D1 D2 D3
計算機工学
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
12. 順序回路の設計と応用
(教科書5章)
2鏡 慎吾 (東北大学): 計算機工学 2016 (12)
順序回路の設計
• 組合せ論理回路の設計法の分類
• 構造や規則性に着目した手設計(先人の知恵を使う)
• 入力・出力の関係に基づく自動合成(カルノー図など)
• 順序回路の設計法の分類
• 構造や規則性に着目した手設計(前回の各例)
• 入力・出力・状態の関係に基づく自動合成(今回)
3鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (12)
有限状態機械
• 取り得る状態の数が有限であるようなシステム
• すべての状態を列挙して,どんな入力のときにどの状態からど
の状態に遷移するのか,そのとき何が出力されるのかを考え
尽くすことができる
• 設計手順
• 入力・出力・状態の関係を状態遷移図で表す
• 入力・出力・状態に2進符号を割り当てる
• 状態遷移表・出力表を作成する
• 論理回路に置き換える(必要ならば簡単化する)
5鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 自動販売機
• 100円硬貨だけを受け付ける
• 投入金額が300円に達すると品物が出てくる
• 投入済金額を返却するボタンがある(硬貨投入と同時には押せない)
入力: { なし, 100円硬貨, 返却ボタン}
出力: { なし, 品物, 投入金額返却 }
状態: { 0円投入済,100円投入済, 200円投入済 }
6鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 状態遷移図
0円
投入済
100円
投入済
200円
投入済
100円 / なし 100円 / なし
0円 / なし0円 / なし 0円 / なし
ボタン / なし
ボタン / 返却
ボタン / 返却
100円 / 品物
• 状態を円(ノード)で表す
状態名を記入する
• 状態遷移を矢印(アーク)で表す
入力 / 出力 を付記する
7鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例1: 回路図
DQ
DQ
y2y1 Y1 Y2
x2x1
z2
z1
11鏡 慎吾 (東北大学): 計算機工学 2016 (12)
復習: MIPSの構造
メモリ
32ビットALU
32x32ビット
レジスタ
PC
命令デコーダ
アドレス(32ビット)
データ(8, 16, 32ビット)
次PC計算
制御回路
mux
mux
演算選択
レ
ジ
ス
タ
選
択
12鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例2: 定義
演算命令と分岐命令だけの簡略版MIPSの制御回路を設計する
入力: 命令デコードの結果生成される is_branch 信号
(分岐命令なら1,演算命令なら0)
出力: イネーブル信号 PCen, GPRen
状態:
• IF (Instruction Fetch): 命令読出し,後続命令アドレス計算
• ID (Instruction Decode): 命令デコード,レジスタ読出,分岐判定
• EX (EXecution): 演算実行,レジスタ書き込み
14鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (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鏡 慎吾 (東北大学): 計算機工学 2016 (12)
例題 (おまけ)
ある人が狼,羊,牧草とともに旅をしていたところ,川にさしかかった.小さな舟
を漕いで渡るしかない.舟には,漕ぎ手である人のほか,狼,羊,牧草のいず
れか高々1つしか乗せるスペースがない.ただし,人がいないと狼は羊を食べ
てしまい,また羊は牧草を食べてしまう.人,狼,羊,牧草すべて無事に川を渡
るにはどうすればよいか.
(1) こちらの岸と向こう岸に存在し得る人,狼,羊,牧草の組合せを列挙せよ.
これが有限状態機械の状態となる.(渡っている途中の状況は,状態とし
なくてよい.理由を考えよ)
(2) 状態遷移図を作成せよ.ただし入力,出力を考える必要はない.状態に2
進符号を割り当てる必要もない.(ある状態からはどの状態に遷移し得る
かのみを考慮する)
(3) 状態遷移図をもとに,最短で向こう岸に渡るための手順を示せ.答えは一
つとは限らない.(ヒント: 初期状態から順に,あるいは最終状態から逆に
たどるとよい.あるいは状態遷移図を整理しながら考えてもよい)
18鏡 慎吾 (東北大学): 計算機工学 2016 (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
最短経路は二つ
19鏡 慎吾 (東北大学): 計算機工学 2016 (12)
参考
• 今回学んだ Mealy 型の有限状態機械のほかに,出力が状
態にだけ依存する(入力に直接依存しない) Moore 型の有
限状態機械がある.
• Moore 型も Mealy 型も表現能力は同じである.ただし,
Moore 型は入力が出力に反映されるのに1時刻以上か
かる.
• 入力が出力に直接影響するのが好ましくない場合は
Moore 型で設計する必要がある.
• 今回は,状態遷移図から安直に回路を生成した,実際は
• より状態数の少ない有限状態機械で表せるかも知れない
• 符号の割り当て方によって,回路がもっと簡単になるかも
知れない
などといったことも考える必要がある.
20鏡 慎吾 (東北大学): 計算機工学 2016 (12)
練習問題
論理値の系列(例えば 0100110101...) を入力として受け取って,
「0011」という系列が現れたとき初めて1を出力し,それ以外では0
を出力する順序回路を設計せよ.
入力を x,状態を y1y2 (次時刻の状態を Y1Y2),出力を z とする.
00 01 10 11
21鏡 慎吾 (東北大学): 計算機工学 2016 (12)
解答例
Y2
Y1

More Related Content

What's hot (20)

kagami_comput2016_07
kagami_comput2016_07kagami_comput2016_07
kagami_comput2016_07
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708
 
kagami_comput2015_11
kagami_comput2015_11kagami_comput2015_11
kagami_comput2015_11
 
kagami_comput2016_06
kagami_comput2016_06kagami_comput2016_06
kagami_comput2016_06
 
kagami_comput2016_02
kagami_comput2016_02kagami_comput2016_02
kagami_comput2016_02
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
 
kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6
 
kagami_comput2016_05
kagami_comput2016_05kagami_comput2016_05
kagami_comput2016_05
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 
kagamicomput201704
kagamicomput201704kagamicomput201704
kagamicomput201704
 
kagami_comput2016_03
kagami_comput2016_03kagami_comput2016_03
kagami_comput2016_03
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13
 
積分要素の応答性(MATLAB)
積分要素の応答性(MATLAB)積分要素の応答性(MATLAB)
積分要素の応答性(MATLAB)
 
積分要素の過渡応答性(MATLAB)
積分要素の過渡応答性(MATLAB)積分要素の過渡応答性(MATLAB)
積分要素の過渡応答性(MATLAB)
 

Viewers also liked

kagami_comput2015_12
kagami_comput2015_12kagami_comput2015_12
kagami_comput2015_12
swkagami
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13
swkagami
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
swkagami
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
swkagami
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4
swkagami
 
Spanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_psSpanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_ps
Natura
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7
swkagami
 

Viewers also liked (18)

kagami_comput2015_12
kagami_comput2015_12kagami_comput2015_12
kagami_comput2015_12
 
kagami_comput2016_04
kagami_comput2016_04kagami_comput2016_04
kagami_comput2016_04
 
kagami_comput2016_01
kagami_comput2016_01kagami_comput2016_01
kagami_comput2016_01
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
 
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 基礎文法のまとめ
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
La vida
La vidaLa vida
La vida
 
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
A Visys é especialista em soluções para sua Empresa! Você quer fazer a difere...
 
CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎
 
Spanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_psSpanish_AdSenseOnlineOverview_121103_ps
Spanish_AdSenseOnlineOverview_121103_ps
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7
 
CMSI計算科学技術特論A (2015) 第2回 MPIの基礎
CMSI計算科学技術特論A (2015) 第2回 MPIの基礎CMSI計算科学技術特論A (2015) 第2回 MPIの基礎
CMSI計算科学技術特論A (2015) 第2回 MPIの基礎
 

Similar to kagami_comput2016_12

Similar to kagami_comput2016_12 (10)

kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明
 
有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明有機ソフトクリスタルの弾性・光応答機構の解明
有機ソフトクリスタルの弾性・光応答機構の解明
 
論理回路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)
 
20200605 oki lecture4
20200605 oki lecture420200605 oki lecture4
20200605 oki lecture4
 
20141130 for upload
20141130 for upload20141130 for upload
20141130 for upload
 
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
CMSI計算科学技術特論A (2015) 第14回 量子化学計算の大規模化1
 
20200605 oki lecture3
20200605 oki lecture320200605 oki lecture3
20200605 oki lecture3
 

More from swkagami (16)

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
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
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705
 
kagamicomput201703
kagamicomput201703kagamicomput201703
kagamicomput201703
 
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
 
kagamicomput201701
kagamicomput201701kagamicomput201701
kagamicomput201701
 

Recently uploaded

Recently uploaded (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

kagami_comput2016_12

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