きっかけ
日常的に業務を行う中で、”ラッチ”や”ラッチ回路”という言葉を目にする機会がよくあります。論理回路に関する用語で、大事な機構なんだろうな、と思っていたのですが私が普段頼りにしている「「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典」、通称「わわわIT」さんでも掲載がなかったため、同じように気になった人に向けてわかりやすく記載できればと思い、記事を書くことに決めました。(「わわわIT」さんは、様々なIT用語をわかりやすく解説してくださっている素晴らしいサイトです。私もよくお世話になっています。皆さんもぜひご利用ください。)
結論:ラッチ回路とは?
スイッチを一度押すとオンになった状態を維持し続け、リセットボタンを押すとオフにできる回路のこと。
「フリップフロップ回路」とも言う。
解説
もともと、”ラッチ”とは、扉や門につけられた閂(かんぬき)のような建具のことを指すようです。
一度通せばドアが開かない状態が持続する閂のように、一度スイッチを押せば、手を放しても通電状態が持続する回路、ということでしょうか。
論理回路で表すと、以下のような図になります。
R、Sそれぞれに対する入力と、出力は以下の通りです。
S | R | Q |
---|---|---|
0 | 0 | 現在の出力を保持 |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 禁止、未定義(回路による) |
ラッチのしくみ
ラッチ回路は、2つのNORゲートを組み合わせて構成されています。NORゲートは、入力が両方0の場合のみ、1を出力するゲートです。A,Bそれぞれの入力パターンと出力パターンは以下の通りです。
A | B | 出力 |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
①スイッチを押す前
まだ回路が起動する前の状態です。
②スイッチをオンにする(Sに1を入力)
Sに1を入力すると、回路が起動します。Sに1が入力された瞬間、下側のゲートが0を出力し、それが上側のゲートの入力にも伝わり、上側のゲートは1を出力します。上側のゲートの出力1が再び下側のゲートに伝わりますが、下側のゲートは変わらず出力は0です。
③手を放す
手を放し、Sからの入力を0にしても、上側ゲートからの入力1は生きており、Qは1を出力し続けます。また下側のゲートも、0、1の入力により変わらず0を出力し続けます。
④スイッチをオフにする(Rに1を入力)
今度はオフスイッチ(R)からの入力を1にすると、上側ゲートの出力が0になります。下側ゲートは、入力が0、0となり1を出力します。下側ゲートの出力が上側に伝わっても、入力は1,1のため出力は0のままです。
⑤手を放す
③と同様、手を放しても、下側ゲートからの入力1は生きており、Q–は1を出力し続けます。また上側のゲートも、0、1の入力により変わらず0を出力し続けます。
このようにして、ラッチ回路は一度入力した内容を自己保持する能力がある回路になります。
たしかに、昨今の計算機では、計算した結果などを一時的に保存しておかなければならないため、必須と言える回路ですね。
今回解説した回路は、RS-フリップフロップ回路という物にあたるようです。
「フリップフロップ回路」で調べてもらえば、より深く学ぶことができます。
まとめと感想
ということで、ラッチ回路とは、
スイッチを一度押すとオンになった状態を維持し続け、リセットボタンを押すとオフにできる回路のこと。
でした。
フリップフロップ回路という名前のほうが一般的なようですね。
私自身、現在は社内ITをやっていますが、大学の専攻はコンピューターサイエンスではなかったため、論理回路などの知識は高校の情報レベルで止まっていました。今回、純粋な好奇心で調べてみましたが、計算機を構成する要素として非常に重要な論理回路を学ぶことができました。”ラッチする”みたいな言葉が出てきたら、スイッチをオンにして、そのままの状態を維持したり、一時的なデータを保持する、みたいな意味合いなのでしょうね。自分で計算機を作ることはない(いや、チャンスがあれば作ってみたい・・・!)ですが、動作の仕組みを知ることは、機械の深い理解につながります。
ラッチ回路で検索しても、わかりやすい解説がなかったので、同じように感じた方がこちらから学んでもらえたら、とても嬉しいです。
参考サイト
・ラッチ回路 – Wikipedia
・youtube – 【論理回路】フリップフロップの動作原理
コメント