矢沢 久雄 グレープシティ アドバイザリースタッフ
AND回路,OR回路,XOR回路,NOT回路の用途は,入力された情報(0または1)を論理演算して結果(0または1)を出力することだけではありません。コンピュータの中を流れる電気信号(0または1のデジタル情報)を制御することにも利用されます。電気信号を制御するとは,電気信号を通すかどうかを決定することです。このような用途があることから,AND回路,OR回路,XOR回路,NOT回路のことを,それぞれANDゲート,ORゲート,XORゲート,NOTゲートと呼ぶことがあります。ゲート(gate)とは,「門」という意味です。今回は,ゲートを電気信号が通れるかどうかを制御する方法を紹介します。回路図の中でMIL記号だけを示し,使用するICの全体図を省略する場合があることをご了承ください。回路図では,そうすることが一般的だからです。
●AND回路をANDゲートだと解釈する
表1は,AND回路(AND演算)の真理値表です。AND回路の機能は「2つの入力がどちらも1なら出力が1となり,それ以外は出力が0になる」というものです。このような解釈でAND回路を見ると,AND演算のためのものであるとしか考えられません。ところが,前回簡単に述べたように,AND回路は電気信号を制御するゲートにもなり得るのです。
表1●AND演算の真理値表
入力X | 入力Y | 出力X NAND Y |
1(真) | 1(真) | 1(真) |
1(真) | 0(偽) | 0(偽) |
0(偽) | 1(真) | 0(偽) |
0(偽) | 0(偽) | 0(偽) |
図1●AND回路をANDゲートと考える |
表2●ANDゲートの機能
入力X | 入力Y | 出力 |
1(真) | 1(真)または0(偽) | 1(真)または0(偽)←通り抜けられる |
0(偽) | 1(真)または0(偽) | 常に0(偽)←通り抜けられない |
●ORゲート,XORゲート,NOTゲートの機能
図2●OR回路をORゲートと考える |
表3●ORゲートの機能
入力X | 入力Y | 出力 |
1(真) | 1(真)または0(偽) | 常に1(真)←0が通り抜けられない |
0(偽) | 1(真)または0(偽) | 1(真)または0(偽)←0が通り抜けられる |
図3●XOR回路をXORゲートと考える |
表4●XORゲートの機能
入力X | 入力Y | 出力 |
1(真) | 1(真)または 0(偽) | 0(偽)または 1(真)←反転する |
0(偽) | 1(真)または 0(偽) | 1(真)または 0(偽)←素通りする |
NOT回路は,無条件で入力を反転させるゲートです。これは,説明するまでもないでしょう。ただし,論理演算として0が1になり1が0になると考えるのでなく,NOTゲートによって入力信号が無条件で反転すると考えることがポイントです。
図4●ICが出力した電気信号を一方のICだけに入力したい場合は? |
図5●4個のスリー・ステート・バス・バッファを内蔵した74426の内部 |
図6●ICを回路から電気的に切り離す |
図7●コンピュータを構成するICはバスで相互に接続されている |
●スリー・ステート・バス・バッファ
複雑な回路では,1つの信号線に複数のICのピンが接続される場合があります。例えば図4[拡大表示]では,IC1の出力ピンがIC2とIC3の入力ピンに接続されています。IC1が出力した電気信号をIC2だけに入力したい場合はどうしたらよいでしょう?このような場合は「スリー・ステート・バス・バッファ(3 state bus buffer)」と呼ばれるICを使います。74シリーズの中には「スリー・ステート・バス・バッファ」がいくつかあります。例えば74426は,スリー・ステート・バス・バッファを4個内蔵したICです。出力側に白丸のない三角形のMIL記号がスリー・ステート・バス・バッファを表しています(図5[拡大表示])。
三角形の図記号の入力側から出力側に電気信号が素通り(入力1なら出力1,入力0なら出力0)するわけですが,それは三角の横から出た制御信号が1のときだけです。これはANDゲートの機能に似ています。ただし大きな違いが1つあります。それは,スリー・ステート・バス・バッファの制御信号が0のときは,入力にかかわらず出力がハイ・インピーダンス(high impedance)となることです。ハイ・インピーダンスとは,電気を受け付けない状態のことです。つまり制御信号が0なら,ICが回路から電気的に切り離された状態になるのです。
先ほどの図4の場合,IC3の入力ピンの前にスリー・ステート・バス・バッファを入れて,ハイ・インピーダンス状態にすれば,IC3は電気信号を受け付けなくなり,IC1が出力した電気信号はIC2だけに入力されます(図6[拡大表示])。
コンピュータの中には,「バス(bus)」と呼ばれる信号線のセットがあります。バスは,コンピュータの頭脳となるプロセサの持つアドレス信号線,データ信号線,制御信号線を引き出したものです。他の様々なICのピンは,用途に応じてバスに接続されています。つまり同じバスという信号線のセットに複数のICのピンが接続されているのです(図7[拡大表示])。このような配線状態であっても,電気信号が混線することなく,目的のICに送られるのは,スリー・ステート・バス・バッファが使われているからです。高機能なLSIは,その内部にスリー・ステート・バス・バッファの機能を備えているのが一般的です。
皆さんは「単純な論理演算やゲートの機能を持ったICだけで高度なコンピュータの機能が実現できるのだろうか?」と疑問に思われていることでしょう。大丈夫なのです。基本的なICを組み合せると,コンピュータに必要とされる様々な機能を実現できます。本当です。次回は,その証拠として,基本的なICだけで“記憶”を実現する方法を紹介します。お楽しみに!