皆さん論理関数という言葉を聞いたことはありますか?
そもそも関数というのは簡単に言ってしまえば、値が与えられたとき結果が一つに決まるものだから論理関数にも何かの入力とそれに対応する出力が存在することになります。
その入力と出力の値は論理の世界では1か0のどちらか一つになります。1か0というのはコンピュータで使われる2進数と同じであり、下の記事で書いた2進数の性質と今回の論理関数を組み合わせることでコンピュータの基礎は出来上がっているといえます。
ということで今回はそんな論理関数の代表例とその応用方法について述べていきたいと思います!!
論理の世界において以下の4つの論理関数は非常に重要です!というかむしろ以下の4つしか覚えるものはありません。ここからはそれぞれの論理関数の具体的な性質と回路をかくときにどのような記号になるか(論理回路)についてもお話ししていきますね。
最初の論理関数は論理和と呼ばれるものです。画像にある通りどちらか一方に0があるときは0となり、すべてが1のときのみ1を出力します。(ここではX,Yともに1である。)論理回路では丸いかまぼこのような形で表現します。
次に紹介する論理関数は論理和(OR)です。これはすべてが0の場合0を出力しそれ以外はすべて1となる論理関数です。論理和と論理積は日本語の”または”と”かつ”と同じような働きをするといえます。論理回路における論理和の形はブーメランのように左側が少しへこんでいるのが特徴です。
否定(NOT)はそのままの意味なのでとても分かりやすいですね。働きとしては入力されたものとは違う値を返します。(1なら0を返し、0なら1を返す)論理回路では三角形の先に小さい丸が付いたおでんのようなマークで表します。また、小さい丸だけでも同じような意味になるため否定(NOT)はほかの論理関数の左側面に小さい丸を付ける等で示すこともあります。日本語で言うところの”~でない”です。
最後は排他的論理和です。こちらは簡単に言ってしまえばX,Y両方の入力が同じなら0を出力し、バラバラな値だったら1を出力する論理関数です。論理回路では論理和(OR)に曲線を加えた形で排他的論理和を示します。
排他的論理和についての細かい説明は別の記事で紹介されていますので興味がある方はぜひ読んでみてください。
さて、4つの代表的な論理関数を学んだわけですが……果たしてこれがどのようにしてパソコンに生かされているのでしょうか?
下の画像について考えてみましょう。NOTが2つあり片方の出力がもう片方の入力に繋がっています。これはインバータループと呼ばれ赤と緑の2つの状態があります。
赤の場合:①の出力が0なら、②の入力は0となり、②の出力は1となる。これより①の入力は1、出力は0でループを作る。
緑の場合:①の出力が1なら、②の入力は1となり、②の出力は0となる。これより①の入力は0、出力は1でループを作る。
どちらの場合も入出力の値は整合性がとられ安定しています。この赤の場合と緑の場合は”0を記憶している状態”と”1を記憶している状態”ととらえることができます。このループはレジスタと呼ばれるコンピュータ内の小容量の記憶装置に活用されています。
しかしこのループだけでは任意の値を入出力することはできないので、本当はインバータループを埋め込んだSRラッチという回路がレジスタ内に組み込まれています。
SRラッチは今までの回路より難しいので詳しくは説明しませんが先ほどのインバータループに無理やり入出力口を作ったものになります。
コンピュータの回路は単純な4つの代表的な論理関数とクロック回路等の特殊な回路との組み合わせでできます。物事を”記憶”するということも論理和(論理積)と否定のみで実現することができるというのは実に面白いことだと思いませんか??もちろんコンピュータは本記事で述べたものよりもはるかに高度なことを行っています。ですが根幹部分にはこのような理論があることは覚えておくと何かの役に立つかもしれませんよ!!
ここまで読んでいただきありがとうございました。
Leave a Comment