NORロジック_GATEを理解する方法

📅
🕑 1 分で読む

さて、NORとは基本的にブール論理における概念です。実際には、デジタル回路の非常に基本的な構成要素であるNORゲートに依存しています。NORゲートとNANDゲートが「機能的に完全」と呼ばれるのは、少し奇妙ですが興味深いことです。つまり、これらを使って何でも作れるということです。これらはデジタル論理のレゴブロックのようなものです。どちらも2つ以上の入力を受け取り、0か1の2つの出力を生成します。これは、電子工学の世界では基本的に偽か真かを表します。通常、これらは低電圧レベルと高電圧レベルとして表現されます。

通常、NORゲートでは、すべての入力が0でない限り出力は0になります。つまり、0と1を混ぜて入力した場合、どこかに1があれば出力は0になります。すべての入力が0になったときだけ、出力は1に切り替わります。このルールは、入力が3つ、4つ、あるいはそれ以上になっても変わりません。ええ、このロジックはどんなに複雑になっても当てはまります。チップによっては3入力NORゲートも存在します。

ほとんどの人はNORゲートを単なる電子部品と考えているかもしれませんが、実際のメモリモジュールの作成においては、NORゲートの用途はやや限定的です。NORゲートは、特にマイクロコントローラやファームウェアチップにおいて、一部のメモリタイプの基盤となっています。NORゲートはデータの書き込み(ビットの消去または変更)が遅いため、SSDや高性能ドライブの大容量データストレージには適していません。しかし、組み込みシステムやBIOSチップなど、読み取り速度と低消費電力が重要となる用途では真価を発揮します。ちなみに、NORゲートメモリは直接コードを実行できるため、ファームウェアをRAMにコピーする必要がなく、特定のアプリケーションでは大きなメリットとなります。

さて、ちょっとマニアックな話に移りましょう。理論上、NORは1880年にチャールズ・ピアースによって初めて記述されたブール関数です。NORゲートだけで、AND、OR、NOTなど、実に様々な機能を実現できます。だからこそ、NORゲートは「機能的に完全」と呼ばれています。例えば、ANDゲートは3つのNORゲートを特定の構成で組み合わせることで作成できます。理由はよく分かりませんが、理解してしまえばなんとなく納得できます。覚えておいてください。重要なのは、これらのゲートをチップ上でも理論上でも配線することで、実際に必要なロジックを模倣することです。

NORゲートの使用

実用技術において、NORはコストと速度の問題から、大容量メモリモジュールの構築にはあまり使用されません。NANDフラッシュがストレージの主流となっているのには理由があります。それは、NANDフラッシュの方が高速で、安価で、高密度であるということです。しかし、NORにはいくつかの利点があります。高速な読み取り時間と個々のビットへの直接アクセスです。さらに、消費電力が少なく、軍用グレードのガジェットや極限環境といった厳しい環境でも高い耐性を発揮します。直接アドレス指定が可能なため、NORフラッシュに保存されたコードは直接実行可能であり、これは組み込みシステムやブートファームウェアにとって非常に大きなメリットとなります。

ただし、書き込み処理は少し複雑です。ビットを1から0に反転させるのは高速(ビットレベルの書き込み)ですが、0から1に戻すにはブロック消去が必要です。これは時間がかかり、一度にチャンク単位で消去されます。そのため、書き込みが多いシナリオではパフォーマンスがあまり良くなく、NORは書き込みが多いアプリケーションには適していません。それでも、書き込みが少ない環境では、NORは非常に便利です。

結論:NORフラッシュはニッチな用途であり、主にファームウェア、BIOS、マイクロコントローラーなどで使用されています。これらの用途では、コードは頻繁に更新されませんが、瞬時に確実に動作する必要があります。そのアーキテクチャにより、特定の用途ではニッチながらも価値のあるコンポーネントとなっています。

理論上のNOR

数学的には、NORはブール論理、つまりORの逆論理に根ざしています。この概念はチャー​​ルズ・ピアースの時代から存在し、NORを「機能的に完全」なものにしています。後に発見されたNANDとは異なり、NORは理論的には他の論理演算処理をすべて実行でき、組み合わせを変えるだけで済みます。そのため、設計者は最小限の論理回路や効率的な論理回路を作成しようとする場合、NORを好む傾向があります。

NOR図と真理値表

名前の通り、NOT-ORゲートです。実際、NORゲートは全ての入力がLowの時のみHighを出力します。基本的にORゲートの逆です。真理値表はシンプルです。いずれかの入力が1の時は出力が0で、全ての入力が0の時のみ1を出力します。簡単ですが、その意味は大きく、NORゲートだけで他の論理関数を構築できるのです。

例えばANDゲートは、3つのNORゲートを特定の方法で配線することで構成できます。これは、ANDゲートやORゲートとは異なり、NORゲートを組み合わせることで他の論理ゲートを構成できるためです。つまり、NORゲートはいわば汎用的な構成要素と言えるでしょう。実際の回路で常にこのように使われているわけではありませんが、それでも…すごいと思いませんか?

まとめ

結局のところ、NORゲートは、機能的完全性という優れた特性を持つ基本的な論理ゲートに過ぎません。シンプルでありながら強力で、論理の世界におけるあらゆるものを実現できます。ストレージの主役ではありませんが、NORゲートは特定のマイクロコントローラーアプリケーションやファームウェアストレージにとって不可欠です。あまり深く考えすぎないでください。基本的なものですが、その仕組みを理解することで、多くのデジタルエレクトロニクスを理解するのに役立ちます。