Definition:Logical Gate
論理ゲートとは、デジタル回路において、1つ以上の入力信号を受け取り、それらの値(通常は「1」と「0」で表される)に対して特定の論理規則(論理演算)を適用し、その結果を出力信号として生成する基本的な回路である。
論理ゲートの歴史は、デジタルコンピュータそのものの歴史よりも古く、その源流は19世紀の数理論理学にまでさかのぼることができる。現代の論理ゲートは、電気信号を用いてAND、OR、NOTなどの論理演算を実行する回路であるが、その基礎となったのは「命題の真偽を形式的な規則によって扱う」という考え方である。
19世紀半ば、英国の数学者ジョージ・ブールは、論理学を代数的に表現する方法を体系化した。1854年に出版された「思考の法則の研究」において、命題の真偽を代数的な値として扱い、論理的な結合を計算として表現したのである。この体系は後にブール代数と呼ばれるようになり、現代のデジタル論理回路を数学的に記述するための基礎となった。
ブール代数が成立した当初、それが電子式コンピュータのために考案されたわけではない。論理学の数学的体系と電気回路が結び付くのは、その後のことである。19世紀末から20世紀初頭にかけて、電話交換機などでリレーを利用した回路が発達すると、電気回路によって二値的な論理を実現することが可能になった。
ここで重要なのが、リレーを単なる電気的なスイッチとしてではなく、論理演算を実行する素子として利用できるという発想である。リレーが導通している状態と遮断されている状態を、それぞれ「1」と「0」に対応させれば、複数のリレーを組み合わせて論理演算を実現できる。例えば、二つのスイッチを直列に接続すれば、両方が導通している場合にだけ電流が流れるため、AND演算に相当する回路となる。
ブール代数とスイッチング回路の対応を体系的に示した人物としては、クロード・シャノンが世界的に最も知られている。1937年、シャノンはマサチューセッツ工科大学の修士論文「A Symbolic Analysis of Relay and Switching Circuits」において、ブール代数をリレー回路やスイッチング回路の解析・設計に適用する方法を示し、この論文は翌1938年にアメリカ電気学会報(Transactions of the American Institute of Electrical Engineers)に発表された。スイッチの開閉状態を二値変数として表し、直列接続を論理積、並列接続を論理和、反転を論理否定として扱うことで、複雑なスイッチング回路をブール代数によって記述できるようになったのである。
ただし、同様の着想に到達していたのはシャノンだけではない。日本電気の技術者であった中嶋章は、シャノンに先立つ1935年、リレー接点回路の構成理論に関する論文(榛澤正男との共著による1936年の論文を含む)を発表し、ブール代数を知らないままに、それと等価な理論を独自に構築してリレー回路の設計に応用していた。中嶋は1939年から1940年にかけて渡米した際にシャノンと面会しており、シャノン自身も1949年の論文で中嶋の1938年の英文論文を引用している。また、ソ連の論理学者ヴィクター・シェスタコフも、1935年にブール代数がリレー回路の理論として解釈できることを独立に見出していた。すなわち、ブール代数とスイッチング回路を結びつける発想は、1930年代半ばに日本・ソ連・米国でほぼ同時期かつ独立に到達された成果であり、シャノンの業績はその中でも特に体系的で影響力の大きいものであったと位置づけられる。
これによって、「このような論理を実現したい」という要求をまずブール代数による論理式として記述し、その論理式を実現する電気回路を設計するという方法が成立した。現代の論理回路設計における「論理式→論理回路」という考え方の重要な原型である。
20世紀前半になると、リレーより高速に動作する電子素子として真空管がコンピュータに利用されるようになった。リレーは機械的な接点を持つため、スイッチング速度に限界があり、接点の摩耗などの問題も存在した。これに対して真空管は電子の流れを制御することでスイッチング機能を実現できるため、より高速な論理回路を構成することができた。
第二次世界大戦期には、電子式計算機の開発が急速に進展した。ENIACなどの初期の電子式コンピュータでは大量の真空管が使用され、加算、比較、記憶などの処理が電子回路によって実行された。ここで使用された回路も、本質的には二値論理を電気的な状態として実現するものであり、現在の論理ゲートにつながるものである。
1947年にベル研究所でトランジスタが発明されると、論理回路の歴史は大きく変化した。トランジスタは真空管と同様に電気信号を制御できる一方、はるかに小型で、消費電力が少なく、機械的な部品も持たないため、電子回路の小型化と高信頼性化に適していた。
トランジスタをスイッチとして動作させることで、NOT、AND、ORなどの論理機能を実現できるようになった。さらに複数のトランジスタを組み合わせれば、より複雑な論理回路を構成できる。したがって、現代的な意味での論理ゲートは、トランジスタ技術の発展によって実用的な電子回路として確立していったといえる。
初期のトランジスタ論理回路では、トランジスタと抵抗などを組み合わせて論理機能を実現していた。代表的な方式の一つがRTL(Resistor-Transistor Logic)である。その後、ダイオードとトランジスタを組み合わせたDTL(Diode-Transistor Logic)が登場し、さらにTTL(Transistor-Transistor Logic)が広く利用されるようになった。
特にTTLは1960年代以降、コンピュータや産業用電子機器などで広く利用された。代表的な論理ICとして7400シリーズがあり、NANDゲートなどの基本論理ゲートを標準化されたICとして利用できるようになった。このような標準ロジックICの普及によって、設計者は個々のトランジスタ回路を毎回設計する必要がなくなり、論理ゲートを部品として組み合わせて複雑なデジタル回路を構築できるようになった。
その後、論理回路の主流として重要性を増したのがCMOS(Complementary Metal-Oxide-Semiconductor)技術である。CMOSでは、n型MOSFETとp型MOSFETを相補的に組み合わせることで論理回路を構成する。
CMOS論理ゲートの大きな特徴は、定常状態における消費電力が非常に小さいことである。回路の状態が切り替わる際には電力を消費するが、状態が安定している間は理想的にはほとんど電流が流れない。この特性は、集積回路上に膨大な数の論理ゲートを配置するうえで極めて重要であった。
CMOS技術と半導体製造技術の進歩によって、論理ゲートは個別のIC部品から、数千、数百万、さらに数十億個規模のトランジスタを含む集積回路の内部へと移行していった。今日のCPU、GPU、メモリコントローラ、ネットワークプロセッサなどは、膨大な数のトランジスタによって構成されており、その最下層には論理ゲートに相当する論理機能が存在している。
論理ゲートを理解するためには、AND、OR、NOTという基本的な論理演算を押さえることが重要である。ANDゲートは、すべての入力が1の場合にだけ出力が1となるゲートである。2入力の場合、論理式は $Y=A\land B$ と表現できる。
ORゲートは、少なくとも一つの入力が1であれば出力が1となるゲートである。2入力の場合は $Y=A\lor B$ と表現できる。NOTゲートは入力の値を反転させるものであり、0を1に、1を0に変換する。したがって $Y=\lnot A$ と表現できる。
これらを組み合わせることで、非常に複雑な論理を構成できる。例えば、条件判定、加算、比較、データ選択、命令のデコードなど、コンピュータ内部で行われるさまざまな処理は、最終的には多数の論理演算の組み合わせとして実現できる。
論理ゲートにはAND、OR、NOT以外にもNAND、NOR、XOR、XNORなどがある。その中でもNANDとNORは特に重要である。NANDはANDの出力を反転したものであり、NORはORの出力を反転したものである。
NANDとNORには、単独で任意のブール論理を構成できるという性質がある。このような論理ゲートを万能ゲートと呼ぶ。例えばNANDゲートだけを複数組み合わせることによって、NOT、AND、ORを含む任意の論理回路を構成できる。この性質は、論理回路を統一的な基本部品から構成するうえで重要である。
XOR、すなわち排他的論理和もデジタル回路では非常に重要である。2入力のXORゲートは、二つの入力が異なる場合に1を出力し、同じ場合には0を出力する。したがって、 $Y=A\oplus B$ と表現できる。
XORは二進数の加算と深く関係している。2つの1ビットを加算したとき、下位ビットの値はXORで求めることができる。一方、桁上がりはANDで求められる。この二つの論理を組み合わせれば半加算器を構成でき、さらに桁上がり入力を加えれば全加算器を構成できる。つまり、単純な論理ゲートの組み合わせから、CPUなどに必要な算術演算回路を構築できるのである。
論理ゲート単体は非常に単純な機能しか持たないが、それらを組み合わせることで「組合せ回路」と呼ばれるより高度な回路を構成できる。加算器、減算器、マルチプレクサ、デコーダ、エンコーダ、比較器などがその代表例である。
組合せ回路では、基本的に現在の入力値によって現在の出力値が決まる。これに対して、過去の状態を保持する機能を組み込むと、記憶を持つ回路を構成できる。ラッチやフリップフロップはその代表例であり、レジスタやカウンタなどの基礎となる。
さらに多数の論理ゲートを組み合わせることで、算術論理演算装置(ALU)、レジスタ、制御回路などを構成できる。これらを組み合わせたものがCPUの基本構造となる。したがって、CPUを理解する際には、トランジスタから論理ゲート、論理ゲートから論理回路、論理回路からプロセッサという階層を考えると理解しやすい。
ただし、現代のCPUを「論理ゲートを一つずつ組み合わせたもの」と単純化するのは適切ではない。実際の設計では、ハードウェア記述言語、論理合成、配置配線、標準セルライブラリなどを利用して、極めて大規模な回路を設計する。論理ゲートという概念は、こうした巨大な回路を論理的に理解・設計するための抽象化として機能しているのである。
現在の論理ゲートは、かつてのように「一つのゲート=一つのIC」という形で扱われるとは限らない。半導体の微細化によって、複数のトランジスタからなる論理ゲートをさらに多数集積し、それらを巨大な回路として一つのチップ上に形成することが一般的である。
その結果、論理ゲートはユーザーが直接目にする電子部品というより、半導体回路を構成する論理的な基本単位という性格を強めている。CPUやGPUのような複雑なプロセッサであっても、論理設計の階層を下っていけば、AND、OR、NOT、NAND、NOR、XORなどの論理機能、さらにその物理的実装であるトランジスタへと分解して考えることができる。
論理ゲートの歴史は、数学的な論理体系、電気的なスイッチ、リレー、真空管、トランジスタ、集積回路、そして現代の超大規模集積回路へと続く歴史である。その本質は、抽象的な「真」と「偽」あるいは「1」と「0」という論理的概念を、物理的な回路の状態として実現することにある。
ブール代数によって論理を数学的に記述できるようになり、中嶋章やシェスタコフ、そしてシャノンによってその論理とスイッチング回路との対応がほぼ同時期に体系化され、トランジスタと集積回路によってそれを極めて小さな物理空間に大量に実装できるようになった。この流れによって、単純な二値論理を実行する論理ゲートが、最終的には現代のコンピュータ、スマートフォン、通信機器、GPU、人工知能向けアクセラレータなどを支える基本的な構成要素となったのである。
したがって、論理ゲートは単なるANDやORを実行する小さな回路ではない。それは「論理を物理的な情報処理へ変換するための最も基本的な抽象化」であり、現代のデジタルコンピューティングを理解するうえで、トランジスタとCPUの間をつなぐ重要な概念である。
Mathematics is the language with which God has written the universe.