インバーターと同じ考え方で作るNANDゲートやNORゲートの仕組みと、論理ゲートを組み合わせて足し算をする回路、出力を入力に戻して0と1を覚えておく回路、全体の歩調をそろえるクロックを説明する。
NANDゲートと、覚える回路(模式図)
- NANDゲート(入力が両方とも1)並列のpMOSは両方とも切、直列のnMOSは両方とも入。出力は0
- 覚える回路出力を入力に戻すので、0か1の状態が続く
- 入(閉じたスイッチ)・信号の流れ
- 切(開いたスイッチ)
図:左は、CMOSのNANDゲートで、入力が両方とも1のとき。上の並列の二つのpMOSは切(開いたスイッチ)、下の直列の二つのnMOSは入(閉じたスイッチ)になり、出力は接地の側につながって0になる。右は、二つのインバーターを輪のようにつないだ回路。一つ目の出力を二つ目が反対にして一つ目へ戻すので、0か1の状態を保ち続ける。模式図、本サイトで作成入力が二つある論理ゲート
前のページでは、入力を反対にして出力するインバーターを学んだ。論理ゲートには、二つ以上の入力を受け取り、その組み合わせで出力を決めるものもある。代表的なものは、次の四つである。
* AND(論理積):二つの入力が両方とも1のときだけ、1を出す。* OR(論理和):どちらか一方でも1なら、1を出す。* NAND:ANDの反対。両方とも1のときだけ、0を出す。* NOR:ORの反対。どちらか一方でも1なら、0を出す。
入力と出力の組み合わせを、すべて書き出した表を「真理値表」と呼ぶ。たとえばNANDの真理値表は、次のようになる。
| 入力A | 入力B | 出力 || :--- | :--- | :--- || 0 | 0 | 1 || 0 | 1 | 1 || 1 | 0 | 1 || 1 | 1 | 0 |
CMOSでNANDゲートを作る
CMOSの作り方では、ANDやORよりも、NANDやNORのほうが簡単に作れる。インバーターと同じく、出力が反対になる形が、CMOSに合っているからである。
NANDゲートは、pMOSを二つ、nMOSを二つ使う。
上の電源の側には、二つのpMOSを横に並べてつなぐ(並列)。どちらか一方のpMOSが入になれば、出力は電源の側につながる。pMOSは入力が0のとき入になるので、入力のどちらかが0なら、出力は1になる。
下の接地の側には、二つのnMOSを縦に重ねてつなぐ(直列)。二つとも入にならないと、出力は接地の側につながらない。nMOSは入力が1のとき入になるので、入力が両方とも1のときだけ、出力は0になる。
このとき、上の二つのpMOSは両方とも切になっている。インバーターと同じく、電源から接地へ電気が流れ続ける道はできない。NORゲートは、この並べ方を上下で入れ替えて作る。
ANDゲートは、NANDゲートの後ろにインバーターをつないで作る。NANDゲートだけを組み合わせても、ほかの論理ゲートの働きをすべて作れる。
組み合わせて、足し算をする
論理ゲートを組み合わせると、数の計算ができる。基本の例が、二進法の一けたの足し算である。
二進法の一けたどうしの足し算は、0+0、0+1、1+0、1+1の四通りしかない。答えは、それぞれ0、1、1、そして「10」(くり上がりがある)になる。この答えの、そのけたの数とくり上がりを、論理ゲートで作り出せる。
そのけたの数は、二つの入力が違うときだけ1になる。この働きも、NANDゲートなどを組み合わせて作れる。くり上がりは、二つの入力が両方とも1のときだけ1になる。これは、ANDの働きそのものである。こうした回路を、下のけたからのくり上がりも受け取れるように広げ、けたの数だけ並べれば、何けたの数でも足し算ができる。
引き算やかけ算、比べるといった計算も、同じように論理ゲートを組み合わせて作る。プロセッサーの中で計算を受け持つ部分は、こうした回路の大きな集まりである。
出力を入力に戻して、覚える
ここまでの回路は、入力が決まれば出力が決まる。入力が変われば、出力もすぐに変わる。これだけでは、前の結果を覚えておくことができない。
覚えるための工夫は、出力を入力に戻すことである。たとえば、二つのインバーターを、輪のようにつなぐ。一つ目の出力を二つ目の入力に、二つ目の出力を一つ目の入力に戻す。
一つ目の出力が1なら、二つ目はそれを反対にして0を出し、その0を受けた一つ目は、また1を出す。この状態は、外から変えない限り、ずっと続く。反対に、一つ目の出力が0の状態も、同じようにずっと続く。こうして、輪は0か1のどちらかの状態を保ち続ける。つまり、一つの0か1を覚えている。
実際の回路では、外から状態を書き換えられるように、インバーターの代わりにNANDゲートなどを使い、書き込みのための入力を付ける。分野「デバイス」で学んだSRAMのセルも、二つのインバーターを輪にした形に、読み書きのためのトランジスタを加えたものである。
歩調をそろえる:クロック
プロセッサーの中では、計算の回路と、結果を覚える回路が、数多くつながっている。信号が回路を通り抜けるのには、わずかな時間がかかり、その時間は道によって少しずつ違う。
そこで、全体の歩調をそろえるために、一定の間隔で0と1をくり返す信号を配る。これを「クロック」と呼ぶ。覚える回路は、クロックが切り替わる瞬間にだけ、入力の値を取り込んで覚える。計算の回路は、次の切り替わりまでの間に、計算を終えておく。
クロックの間隔を短くするほど、一定の時間にこなせる計算は増える。ただし、間隔のあいだに計算が終わらなければ、正しい結果を取り込めない。また、切り替わりの回数が増えるほど、電力も多く使う。前のページで学んだとおり、CMOSは切り替わるときに電気が大きく流れるからである。
このページのまとめ
二つの入力を持つ論理ゲートには、AND、OR、NAND、NORがある。CMOSでは、NANDゲートを、並列の二つのpMOSと直列の二つのnMOSで作る。論理ゲートを組み合わせると、足し算などの計算ができる。出力を入力に戻した回路は、0か1を覚えておける。クロックは、計算の回路と覚える回路の歩調をそろえる。
- 用語:プロセスノード(微細化):半導体の製造技術の世代を表す呼び方と、回路のパターンを小さくしていく微細化の取り組みを指す用語。
理解度チェック
本文の内容から答えられる問いです。答えを選ぶと、正しいかどうかと解説が出ます。
問1
NANDゲートの出力が0になるのは、どのときか。
答えと解説を見る
答え:3. 入力が両方とも1のとき
NANDはANDの反対で、入力が両方とも1のときだけ0を出す。CMOSでは、直列の二つのnMOSが両方とも入になり、出力が接地の側につながる。
問2
二つのインバーターを輪のようにつないだ回路の働きとして、正しいものはどれか。
答えと解説を見る
答え:2. 0か1のどちらかの状態を保ち続け、覚えておける
一つ目の出力を二つ目で反対にして一つ目に戻すと、その状態がずっと続く。そのため、0か1のどちらかを覚えておける。SRAMのセルも、この形をもとにしている。
問3
「クロック」の役割として、正しいものはどれか。
答えと解説を見る
答え:2. 一定の間隔で切り替わる信号を配り、覚える回路が値を取り込む時をそろえる
信号が回路を通る時間は道によって違う。クロックの切り替わりの瞬間にだけ覚える回路が値を取り込むことで、全体の歩調をそろえる。