フリップフロップとは
フリップフロップは、1
ビットの
情報を保持することができる基本的な
論理回路です。
コンピュータの
主[[記憶装置]]、
キャッシュメモリ、
CPU内のレジスタなど、様々な場所で利用されています。
概要
フリップフロップは、組み合わせ回路に
フィードバックを導入することで、
情報の保持を実現する順序回路として機能します。これは、組み合わせ回路の遅延という特性を逆手に取り、
フィードバックループを構成することで実現されています。その構造は、自己保持回路にも似ており、電源が供給されている間だけ
情報を保持する揮発性の性質を持ちます。フリップフロップを構成要素とするRAMをSRAM(Static RAM)と呼びます。
フリップフロップはラッチの一種とみなされることもありますが、その分類にはいくつかの考え方があります。エッジトリガータイプをフリップフロップ、セット・リセットやトランスペアレントタイプをラッチとする場合や、エッジトリガータイプを同期式フリップフロップ、それ以外を非同期式フリップフロップとする場合などがあります。
フリップフロップという名前は、
シーソーが左右に傾く様子や、
ビーチサンダルを履いたときの音を
擬音で表した英語「flip-flop」に由来します。これは、回路の状態が反転する様子を表しています。
フリップフロップの利点と欠点
フリップフロップは、
論理回路で構成され、データの
記憶機能を持つため、
コンピュータの
記憶装置であるSRAMの基本要素として広く利用されます。DRAMと比較すると、コンデンサの自然放電によるデータ消失を防ぐためのリフレッシュ動作が不要で、シンプルかつ高速なアクセスが可能です。
一方で、1
ビットあたりのトランジスタ数や配線が複雑になるため、
ビットあたりのコストが高くなるという欠点があります。このため、高速性が求められる領域ではSRAMが、大容量が求められる領域ではDRAMが主に利用されています。具体的には、
CPUのレジスタや
キャッシュメモリなど、高速性が求められる場所にはフリップフロップベースのSRAMが採用され、一般的なメモリにはDRAMが用いられます。
フリップフロップの種類
フリップフロップには、その構造と機能によっていくつかの種類があります。代表的なものとして、RS型(SR型)、JK型、D型、T型があります。
RS型 (SR型):セット(Set)とリセット(Reset)の2つの入力を持つフリップフロップです。入力に応じて出力をセットまたはリセットします。ただし、両方の入力が同時にアクティブになると、出力が不定になるという問題があります。
JK型:RS型を改良したもので、両方の入力が同時にアクティブになった場合でも、出力が反転するように設計されています。そのため、RS型よりも柔軟な制御が可能です。JK型フリップフロップの名称の由来は不明であり、様々な説があるようです。
D型:データ(Data)入力を持ち、クロック信号のエッジで入力された値を保持します。データの遅延や保持に使用されます。D型フリップフロップは、データ入力をクロック信号のエッジで出力に転送する役割を担います。データの保持や遅延、シフトレジスタの構築に利用されます。
T型:トグル(Toggle)フリップフロップとも呼ばれます。入力が変化するたびに出力が反転します。カウンタ回路などに使用されます。T型フリップフロップは、入力信号が変化するたびに出力状態が反転する動作をします。これは、2進数のカウンタや周波数分割回路を構成するのに役立ちます。
各フリップフロップの回路と真理値表
各フリップフロップの回路構成と真理値表を以下に示します。
RS型フリップフロップ
入力:R(リセット)、S(セット)
出力:Q
| S | R | Q(t+1) | 状態 |
|-|-|--|---|
| 0 | 0 | Q(t) | 保持 |
| 0 | 1 | 0 | リセット |
| 1 | 0 | 1 | セット |
| 1 | 1 | 禁止 | 不定 |
JK型フリップフロップ
入力:J, K, クロック
出力:Q
| J | K | クロック | Q(t+1) | 状態 |
|
-|-|
--|--|
---|
| 0 | 0 | ↑ | Q(t) | 保持 |
| 0 | 1 | ↑ | 0 | リセット |
| 1 | 0 | ↑ | 1 | セット |
| 1 | 1 | ↑ | !Q(t) | 反転 |
D型フリップフロップ
入力:D(データ)、クロック
出力:Q
| D | クロック | Q(t+1) | 状態 |
|-|--|--|-|
| 0 | ↑ | 0 | リセット |
| 1 | ↑ | 1 | セット |
T型フリップフロップ
入力:T
出力:Q
| T | クロック | Q(t+1) | 状態 |
|
-|--|
--|----|
| 0 | ↑ | Q(t) | 保持 |
| 1 | ↑ | !Q(t) | 反転 |
プリセットとクリア
フリップフロップには、プリセットとクリアという機能があります。プリセットは、電源投入時などにフリップフロップの出力状態を特定の値に設定するために使用されます。クリアも同様に、出力状態を特定の値にリセットするために使用されます。これらの機能は、機器の初期化や動作制御において重要な役割を果たします。
フリップフロップと標準ロジックIC
フリップフロップは、標準ロジックICとして提供されています。1つのICに複数のフリップフロップが含まれていることが多く、様々な回路設計に使用されています。
関連項目
論理回路
順序回路
ブール論理
負論理 - 正論理
Static Random Access Memory (SRAM)
Dynamic [[Random Access Memory]] (DRAM)
CPU
カウンタ (電子回路)
レジスタ (コンピュータ)
キャッシュメモリ
主[[記憶装置]]
キャッシュ ([[コンピュータシステム)]]#
記憶階層 (Memory Hierarchy)
継電器
シーケンス制御
マルチバイブレータ
双安定性