edubun
日本語

論理ゲート

Intel初のマイクロプロセッサー、1971年の4004には2,300個のトランジスタがありました。それらはゲートとしてつながれていて、プロセッサーはゲートだけでできています。

背景1854年、数学者ジョージ・ブールは『思考の法則の研究』(An Investigation of the Laws of Thought)を出版しました。命題が真か偽のどちらかで、それを「かつ」「または」「でない」で結ぶ代数です。何十年ものあいだ、それは論理学者の話題でした。1938年、当時MITの学生だったクロード・シャノンが修士論文をもとにした論文を発表し、リレーとスイッチの回路がまさにその代数に従うことを示しました。直列のスイッチはANDのように、並列のスイッチはORのようにはたらきます。これで設計者は、回路を作る前に紙の上で考え、簡単にできるようになりました。1947年12月、ベル研究所のジョン・バーディーンとウォルター・ブラッテンが最初の点接触型トランジスタを作りました。この小さな電子スイッチが、のちにコンピューターのリレーや真空管に取って代わります。

机の上で作るシャノンの2つの回路

シャノンの2つの回路は、電池と電球とスイッチ2個で作れます。スイッチを一列に並べると、1つ目と2つ目の両方が閉じているときだけ電球がつきます。横に並べると、どちらか一方が閉じていれば電球がつきます。これらの回路はもう判断をしています。論理ゲートは同じ種類の小さな回路で、手で動かすスイッチの代わりにトランジスタで作られています。1つか2つの入力ビットを受け取り、決まった規則で1つの出力ビットを出します。

6つのゲートと、それを定める表

ANDは、一列に並べたスイッチのように、両方の入力が1のときだけ1を出します。ORは、横に並べたスイッチのように、少なくとも1つの入力が1なら1を出します。NOTは入力が1つだけで、それを反転させます。0は1に、1は0になります。XORは「排他的論理和(exclusive or)」の略で、2つの入力がちがうときに1を出します。NANDとNORは、ANDとORの最後にNOTをつけたもので、出力がちょうど逆になります。真理値表は、入力のすべての組み合わせとそれぞれの出力を並べた表です。入力が2つなら4行、3つなら8行、n個なら2のn乗行になります。

読み込み中

ドラッグで回転、スクロールまたはピンチで拡大・縮小。

AかBをタップして(またはボタンを使って)、出力の電球と、真理値表で強調される行を見てみましょう。メニューから別のゲートを選びましょう。最後の選択肢「半加算器」はXORとANDを組み合わせたもので、次の単元で足し算に使います。
ABANDORXORNANDNOR
0000011
0101110
1001110
1111000

警報機、等しいかどうかの判定、パスワードの確認

ゲートを組み合わせると、どんな大きさの規則でも作れます。防犯ベルを考えましょう。システムが作動中で、かつ(ドアが開いている、または窓が開いている)ときに鳴るべきです。これはORゲート1つがANDゲート1つにつながったものです。2つのビットが等しいかを調べるには、XORのあとにNOTを置きます。XORはビットがちがうときにちょうど1を出すからです。それを8つ並べて、出力をANDでまとめれば、回路は2つのバイト全体が一致するかを教えてくれます。「パスワードは正しいか」から「タイマーは0になったか」まで、プログラムが行うあらゆる比較は、最後にはこのような回路になります。

チップメーカーがNANDだけでやっていける理由

NANDには便利な性質があります。ほかのすべてのゲートを、NANDゲートだけで作れるのです。NANDの2つの入力をつなぐとNOTになります。1と1のNANDは0、0と0のNANDは1だからです。そのNOTを別のNANDのあとに置けば、ANDに戻ります。もう少し加えればORとXORもできます。チップメーカーにとってこれはありがたいことで、よく検証された1つの形を膨大な数だけ並べればよいのです。実際のチップでは、ゲート1つはトランジスタ数個です。4004には2,300個あり、Intelは2010年の第2世代Coreプロセッサーについて11.6億個としています。39年でおよそ500,000倍です。

よくある間違い
  • 「ORは、どちらか一方だけで両方ではないという意味だ」 日常の「または」はそういう意味のことがよくあります。「紅茶またはコーヒー?」はたいてい一つ選ぶという意味です。論理学ではその規則はXORです。ORは両方の入力が1のときも1を出します。
  • 「入力3つの真理値表は6行だ」 3 × 2は数え方がまちがっています。入力が1つ増えるたびに行は2倍になります。それまでの行が、新しい入力が0のときと1のときに1回ずつ出てくるからです。2³ = 8です。入力が4つならもう16行必要です。
  • 「NANDとNORは新しい種類のスイッチだ」 NANDはANDの最後にNOTをつけたもの、NORはORの最後にNOTをつけたものです。中で新しいことは何も起きていません。NANDが特別なのは、それだけでほかのすべてのゲートを作れる点です。
先生からひとことまず話を読み、ゲートの記号を見せる前に、たとえ絵だけでも2つのスイッチ回路を作りましょう。直列と並列の配線を見た学習者は、ANDとORを自然に受け入れます。困るのはORとXORの組で、日常の「または」はふつうXORの意味だからです。「紅茶またはコーヒー?」と聞いてから、「両方と言ったら?」と聞いてみましょう。真理値表を書くときは、00、01、10、11の行の順を守らせましょう。これは前の単元の2進数の数え方そのもので、行の書きもらしを防ぎます。NAND 1つでNOTを作るのは、最後にちょうどよい5分間のパズルです。
  1. 入力が1と0のANDの出力は?
  2. 入力が1と0のORの出力は?
  3. 入力が1と1のXORの出力は?
  4. 入力が1と1のNANDの出力は?
  5. 入力が0と0のNORの出力は?
  6. 入力3つのゲートの真理値表は何行ですか?
  7. 電球と直列につないだ2つのスイッチは、どのゲートのようにはたらきますか?
    • AND
    • OR
    • XOR
    • NOT
  8. NANDゲートの2つの入力をつなぎます。どのゲートになりますか?
    • NOT
    • AND
    • OR
    • XOR
  9. 1971年のIntel 4004には、トランジスタがいくつありましたか?
  10. シャノンの1938年の論文は何を示しましたか?
    • スイッチ回路は、真と偽を扱うブールの代数に従う
    • トランジスタはリレーより速い
    • 2進数は1938年に発明された
    • コンピューターには10進数の数字が必要だ
ポイント
  • ゲートは決まった規則で、入力ビットを1つの出力ビットに変える。
  • AND:両方が1。OR:少なくとも1つが1。NOT:反転。XOR:入力がちがう。
  • NANDとNORはANDとORの出力を反転したもの。NANDだけですべてのゲートを作れる。
  • 入力がn個の真理値表は2ⁿ行。
このコースの出典 (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

確認日: 2026-10-17