ハードウェア基礎 2002年度版テキスト




6.フリップフロップ

フリップフロップはNANDゲートを数個組み合わせると出来上がる論理回路素子である。 しかしフリップフロップの機能は論理ゲートのレパートリーの火筒に収まるものではない。 フリップフロップは他の多くの論理ゲート類とは次元が異なる素子である。 1年生の「コンピュータアーキテクチャ」では、フリップフロップありき、で話を進めた が、ここでは簡単にその回路内容を見る。


6.1.次元の違い ――― 時間間隔(クロック)の概念

論理ゲートは入力に信号が入ってくると、一定の論理機構(AND,OR,NOT) に従って出力信号を即時に出す信号伝達素子である。そこでは入力と出力の間に 積極的に時間遅れをさしはさむ動作は何ら無い。これに対してフリップフロップは (特に同期式フリップフロップは)入力と出力との間に一定の時間間隔を経過せしめる 関係がある。これを上手く使うと記憶動作にも繋がる。この点が論理ゲートとは次元が 違う点である。同期式フリップフロップが発明されたお陰でコンピュータが実現したと 言っても過言ではない。


6.2.双安定回路

フリップフロップが誕生する前にまず双安定回路が生まれた(6.1図参照) この回路は2つの自立的な安定状態を持つ。

Q1=”1” / Q2=”0” という状態(=状態”1”)
Q2=”0” / Q2=”0” という状態(=状態”0”)


以上の2つの状態を取る。(他の組み合わせEx.Q1=1/Q2=2はない。) この回路は電源をONにした時の重力によってどちらかの状態になり、あとは その状態を続けるだけである。従ってこのままでは実用にはならない。



図6.1 双安定回路


6.3.SR(or RS)フリップフロップ(非同期;クロックはまだ無い)

双安定回路を外部から状態”1”にしたり、状態”0”にしたり自由に制御できる ようにしたのが6.2図に示すSRフリップフロップである。入力信号のSとRに ”1”または”0”を咥えた時、Q1、Q2がどうなるかを以下の表に示す。



図6.2 SRフリップフロップ

Q1 Q2 備考
”1”状態へセット
”0”状態へリセット
前の状態記憶続行
Q1=1、Q2=2は強制不安定状態で記憶続行はしない。

表6.1 SRフリップフロップ動作表


6.4.クロック

SRフリップフロップ(FF)はS入力、R入力によりQ1,Q2の状態をセット/リセット できるようになったが、まだクロックは導入されていない。だから多くのFFを相互に接続 する回路では、FFから次のFFへの信号伝達が将棋倒し式あるいは雪崩式に進行する。 それでは単なるゲート接続の場合の信号の伝播と変わらない。
FFが真に実用になるのは、クロックが導入されてから、換言すれば早期式FFが出現 してからである。クロックが導入された結果、FFの動作にきちんとした時間のけじめが つくようになった。クロック(=クロックパルス)は水晶発振器から取り出された正確な 周忌で繰り返す矩形波パルスである。矩形破の電圧は5v/0vである。



図6.3 クロックパルス

クロックパルスはCPU内のほとんど全てのFFに対して供給され、それらのFFは クロックに歩調を合わせて動作する。FPUは総合的には複雑な動作を行うが、細かく 細分化してみるとごく単純な動作をいくつも繋いでやっているにすぎない。単純なひとくぎり の動作を1区間のクロックパルスの期間ごとに行う。現在のパソコンのクロックは1000MHz 程度になっているので、1区間が100ns程度である。


6.5.同期式SRFF

6.4図に同期式SRFFをしめす。入力部分にクロックを加えたことによってこのFFの 動作は次のようになる。

・FFへの入力信号S,R,が効力をもつのはクロック”1”(=5v)の 時だけとなる。
・逆にいうとクロックが”0”の期間はFFは何ら動作しない(S,R,が変化 しても知らぬ顔をしている)


このFFの動作に大きな意味が生じるのは、クロックパルスがCPU内のほぼ全てのFF に対して、共通に供給されるからである。その結果、FFはクロックパルスのタクトの 元に一斉に歩調をあわせて動くことになる。同期式という名称は歩調を合わせるという 意味である。



図6.4 同期式SRFF

6.6.JKFF

SRFFはS入力、R入力、両方に”1”が入りクロックが入ると、 Q,_ともに”1”に強制される。 これは、「どちらか片方しか”1”にならない」とのFFの原則に反する。 ただしS入力、R入力、両方が”0”に戻れば、Q,_ はいずれか片方が”1”になり正常に戻る。どちらが”1”になるかは偶然によって決まる。 これではFFとして使い難いので、SRFFでは両方に”1”入力を与えるケースは 禁止せざるを得ない。
JKFFは6.5図のように回路の一部を変更してこの制約を取り除いた。すなわち、JKFFでは 入力信号J,K両方に”1”が入ることを許し、その時のQ,_ の動作は6.2表に示すようになる。




図6.5 JKFFの回路

n+1 _n+1
n _n
_n+1 n
図6.4 同期式SRFF


6.7.マスタースレーブJKFF(真の実用的FF)

マスタースレーブJKFFは、マスター用に1個のJKFF,スレーブ用に もう1個のJKFFとして使用し、信号伝播の動作の安定化を図ったもので ある。6.6図に示すようにマスターには普通のクロックパルスを、スレーブには 反転したクロックパルスを与える所がミソである。



図6.6 マスタースレーブJKFF

このように2個組み合わせるとスレーブFFから出る最終出力は必ず正常クロックの 立下りエッジよりも後ろで出現することが保証される。単に1個のFFだと出力が クロックの途中で出現する可能性がある(早すぎる)
信号伝播の安定化を別の手段で行ったものにエッジトリガーFFがある。どちらでも良いが統一 使用する必要がある。)