Transcript Document

コンピュータアーキテクチャI #9
順序回路とフリップフロップ
平成27年6月12日
教科書p.103~p.112,p.129~p.147
本日の講義内容



組合せ論理回路と順序回路の違い
順序回路の抽象化と状態遷移機械
フリップフロップの原理と各種フリップフロップ
組み合わせ回路と順序回路

入力が決まれば,出力が一意に決定
– 組み合わせ回路
– 過去の入力(履歴)や回路の内部状態と出力は無関係

入力だけでは,出力が決まらない
– 順序回路
– 過去の入力(履歴)や,回路の内部状態により,同じ入力で
も出力が異なる回路
順序回路の抽象化

順序回路を設計する前に
– 仕様をきっちり決めないと回路設計は行うことができない

順序回路の仕様を決定するために
– どのような入力を受け付けるのか?
– 内部状態(記憶)はどう変化するのか?
– その結果,何が出力となるのか?
「順序機械」なる概念を用いて表現する
順序機械の数学的表現






入力:𝐼 (入力の集合)
出力:𝑂(出力の集合)
状態:𝑄(状態の集合)
状態遷移関数:𝛿 = 𝑆 × 𝐼 → 𝑆
出力関数:𝜆 = 𝑆 × 𝐼 → 𝑂
順序機械𝑀:𝑀(𝐼, 𝑂, 𝑆, 𝛿, 𝜆)
状態機械の例:自販機1



100円のジュースを販売する機械
ある時刻に50円硬貨か100円硬貨のどちらか
一つを受け付ける
合計100円以上投入された時点でジュースとお
つりを出す
入力(𝐼2 , 𝐼1 , 𝐼0 )
• 𝐼0 :入力なし
• 𝐼1 :50円投入
• 𝐼2 :100円投入
出力(𝑂2 , 𝑂1 , 𝑂0 )
• 𝑂0 :何も出さない
• 𝑂1 :ジュースのみ出す
• 𝑂2 :ジュースとおつりを出す
状態機械の例:自販機2



100円のジュースを販売する機械
ある時刻に50円硬貨か100円硬貨のどちらか
一つを受け付ける
合計100円以上投入された時点でジュースとお
つりを出す
内部状態(𝑆1 , 𝑆0 )
• 𝑆0 :お金が投入されていない
• 𝑆1 :50円が投入されている
𝑆0 を初期状態とする
自販機𝑴の数学的表現




𝐼 = 𝑥1 𝑥0 : 00 𝐼0 , 01 𝐼1 , 10(𝐼2 )
𝑂 = 𝑧1 𝑧0 : 00 𝑂0 , 01 𝑂1 , 11(𝑂2 )
𝑆 = 0 𝑆0 , 1(𝑆1 )
𝛿:
𝛿 𝑆0 , 𝐼0 = 𝑆0 , 𝛿 𝑆0 , 𝐼1 = 𝑆1 , 𝛿 𝑆0 , 𝐼2 = 𝑆0
𝛿 𝑆1 , 𝐼0 = 𝑆1 , 𝛿 𝑆1 , 𝐼1 = 𝑆0 , 𝛿 𝑆1 , 𝐼2 = 𝑆0

λ:
𝜆 𝑆0 , 𝐼0 = 𝑂0 , 𝜆 𝑆0 , 𝐼1 = 𝑂0 , 𝜆 𝑆0 , 𝐼2 = 𝑂1
𝜆 𝑆1 , 𝐼0 = 𝑂0 , 𝜆 𝑆1 , 𝐼1 = 𝑂1 , 𝜆 𝑆1 , 𝐼2 = 𝑂2
状態遷移表による表現

状態遷移表とは
– 現在の内部状態𝑄が,入力によりどう変化するかを
全て列挙した表
自動販売機を表現する状態遷移表
𝑰
𝐼0
𝐼1
𝐼2
𝑸𝒕
𝑆0
𝑆0
𝑆0
𝑸𝒕+𝟏
𝑆𝑜
𝑆1
𝑆0
𝒁
𝑂0
𝑂0
𝑂1
𝑰
𝐼0
𝐼1
𝐼2
𝑸𝒕
𝑆1
𝑆1
𝑆1
𝑸𝒕+𝟏
𝑆1
𝑆0
𝑆0
𝒁
𝑂0
𝑂1
𝑂2
状態遷移図による表現

数式ではよく分からない
– 各種状態がどのように移り変わるかを図で表現する
– 状態:ノード
– 状態間の遷移:ノード間を結ぶ矢印

状態遷移を引き起こす入力/出力をラベル付けする
𝐼1 /𝑂0
𝐼0 /𝑂0
𝐼2 /𝑂1
𝑆0
𝑆1
𝐼1 /𝑂1
𝐼2 /𝑂2
𝐼0 /𝑂0
有限状態機械

順序機械の内部状態は過去の履歴に依存
– どれくらい昔のことまで関係するのか

有限状態機械
– 無限の履歴があっても,それらの現在および将来への
出力の影響の与え方が有限個しかない場合
– すなわち,内部状態が有限個の場合

詳しくは「オートマトン」等の講義で扱われる
抽象化した順序回路

順序回路=組合せ論理回路+記憶回路
𝑥0
𝑥1
𝑧0
𝑧1
組合せ論理回路
𝑥𝑛
𝑦0
𝑦1
𝑦𝑘
記憶
回路
𝑧𝑚
フリップフロップの原理

過去の状態を記憶する
– 出力から入力へのフィードバックがある
– 出力とは過去の状態そのものだから
初期状態:Q1=1,Q2=0
a=1
a=0
Q1=0
状態変化を
発生できる
b=0
Q2=1
フリップフロップの種類

SRフリップフロップ
– セット信号,リセット信号で内部状態を変化させる

JKフリップフロップ
– SRフリップフロップのバリエーション

Tフリップフロップ
– トリガ(T)信号のみで内部状態を変化させる

Dフリップフロップ
– 応用方程式がそのまま入力として利用可能
SRフリップフロップ
–
–
–
–
入力はSとRの2つ
出力はQとQの否定の2つ
S=1,R=0→Q=1,S=0,R=1→Q=0,S=0,R=0→Q=Q
S=R=1の入力が禁止されている
𝑆
𝑄
𝑅
𝑄
と,まとめてしまう
SR-FFの状態遷移{表,図}
SR-FFの状態遷移表
𝑆
𝑅
𝑄 𝑡+1
0
0
𝑄𝑡
0
1
0
1
0
1
1
1
-
S,R
1,0
0,0
0
0,1
0,0
1
0,1
1,0
クロックとFF

FFの動作には,わずかな時間ずれが存在
– 各FFがバラバラに動くと,最後の出力が不安定になる
– 特定のタイミングでFFを一斉に動作させる
– クロックと呼ばれる基準パルスを入れる

クロックとFFの動作
– クロックが1のときのみ,入力を許す
– クロックと入力のANDを取り,結果が1のときのみ入力
させればよい
タイミングチャートでみる
同期式SR-FF
CLK
𝑆
𝑅
𝑄𝑡
𝑡
𝑄

𝑡
𝑡+1
𝑡+2
𝑡+3
CLKが1になる時のS,Rの値により,出力が決定さ
れる
– (𝑡 + 2)と(𝑡 + 3)の間で𝑅 = 1となっても,(𝑡 + 3)で𝑅 = 0
となっているので,出力は変化なし
JKフリップフロップ


基本的動作はSRフリップフロップと同じ
2つの入力が同時に「1」になることを許す
– 状態は現在の状態から「反転」する
JK-FFの状態表と状態遷移図


𝐽
𝑆→𝐽
𝑅→𝐾
𝐾
𝑄𝑡
𝑄
𝑡
JK-FFの状態遷移表
𝐽𝑡
𝐾𝑡
𝑄 𝑡+1
0
0
𝑄𝑡
0
1
0
1
0
1
1
1
𝑄
𝑡
1,0
0,0
0,0
1,1
0
0,1
Ex) Jt,Kt
1
1,1
1,0
0,1
トリガ・フリップフロップ

Trigger-Flip-Flop
– 入力に1が入力される度に状態が反転する
T-FFの状態遷移表
𝑇𝑡
𝑄𝑡
𝑄 𝑡+1
0
0
0
0
1
1
1
0
1
1
1
0
状態遷移図
Ex)𝑇 𝑡
1
0
0
0
1
1
SRT-フリップフロップ

T-FFはTが1になるたび状態変化する
– 最初の状態はどうなっているのか?
– 不明...

T-FFに初期状態を設定する
–
–
–
–
–
セット端子,リセット端子を追加する
T=0,S=1,R=0のとき,Q=1
T=0,S=0,R=1のとき,Q=0
T=1,S=0,R=0のとき,Qは反転
一般には,T,S,Rのうち2つ以上が同時に1になってはいけ
ない
D-フリップフロップ


CLK=0のとき,現状維持
CLK=1のとき,内部状態=入力
– 次の入力が来るまで内部状態維持
– すなわち,1ビットのメモリとなる
CLK
D
Q
今週のまとめと来週の予定

今週のまとめ
– 順序回路の考え方と状態遷移機械
– フリップフロップの原理

来週の予定
– 簡単な順序回路の設計