Логічні Шарніри та Булева Алгебра: Від Транзисторів до ЦП
Транзистор - це напівзмінник, що керується напругою: увімкнено (≈3.3 В) або вимкнено (≈0 В). Це природно відображається в 1 та 0. Бінарність також є найбільш стійкою до шуму — проєктування з десяти стабільних рівнів напруги вимагало б значно більшої точності, ніж два. Логічний Шарнір приймає один або два бінарних вхідних значення і видає одне бінарне вихідне значення відповідно до таблиці істинності. AND (A·B) дорівнює 1 тільки якщо обидва входи рівні 1, як дві перемикачі послідовно. OR (A+B) дорівнює 1, якщо хоча б один вхід дорівнює 1, як перемикачі паралельно. NOT (Ā) просто інвертує біт. XOR (A⊕B) дорівнює 1, коли входи відрізняються - шарнір, який робить додавання та виявлення помилок можливими.
NAND, NOR та закони Де Моргана
Додавання етапу NOT до AND або OR дає NAND і NOR. Закони Августа Де Моргана пов'язують їх: NOT(A·B) = Ā+B̄, і NOT(A+B) = Ā·B̄ — заперечення AND є тим самим, що й OR перевірених на негатив інпутів, і навпаки. Через цю подвійність NAND само по собі (або NOR само по собі) функціонально повний: кожна булева функція, включаючи XOR, може бути побудована лише з NAND-гейтів. У кремнії CMOS 2-вхідний NAND потребує лише 4 транзисторів порівняно з 6 для AND, тому справжні мікросхеми синтезуються майже повністю на основі логіки NAND.
Побудова додателя
Половина додавача додає два біти: Сума = A⊕B, Перенос = A·B — але він не приймає перенос. Повний додавач приймає три вхідні дані (A, B, Cᵢₙ) і будується з двох половинок додавачів плюс OR-шлюз, що дає Суму та Вихідний перенос. З’єднайте 64 повних додавача у ланцюг з перенесенням, і ви зможете додати два 64-бітові цілі числа — хоча сума 63-го біта не вирішується доки перенос не протікає через усі попередні 63 етапи. Реальні ЦП використовують додавіть з провідним перенесенням, які обчислюють кожен перенос паралельно, завершуючи додавання 64-бітових чисел приблизно за 5 затримок воріт замість 64.
Half adder: Sum = A ⊕ B Carry = A · B Full adder: Sum = (A⊕B) ⊕ Cin Cout = A·B + Cin·(A⊕B) NAND is universal: NOT A = NAND(A, A) A AND B = NAND(NAND(A,B), NAND(A,B)) A OR B = NAND(NAND(A,A), NAND(B,B))
Логічний модуль та ключі в кремнії
Арифметико-логічний модуль (ALU) приймає два операнди та вибірник операції, потім маршрутизує їх через мережу правильних ключів для додавання, бітової логіки, зсувів і порівнянь – вибірник керує мультиплексором, який каналізує операнди до відповідного блоку. Фізично кожен ключ є комплементарною парою мереж PMOS та NMOS. Apple M4 чіп (2024) вміщує приблизно 28 мільярдів транзисторів у процесі 3 нм – кожен з них дотримується тих самих таблиць істинності на цій сторінці. Клод Шеннон довів у своїй дисертації-магістерській 1937 року, у віці 21 року, що будь-яку булеву функцію можна побудувати з перемикаючих схем; 87 років інженерії пізніше ця алгебра не змінилася жодним аксиомом.
Часті запитання
Чому NAND називають універсальним гейтом?
NAND (і NOR) функціонально повні: будь-яку булеву функцію – НЕ, І, АБО, XOR – можна побудувати лише з гейтів NAND. У CMOS NAND також є найдешевший гейт для виготовлення (4 транзистори проти 6 для AND), тому справжні мікросхеми майже повністю синтезуються на основі логіки NAND.
Яка різниця між півсуматором і повним суматором?
Півсуматор приймає два біти A та B і видає Суму = A XOR B та Перенос = A AND B, але не може приймати вхідний перенос. Повний суматор приймає три входи (A, B та Вхідний перенос) і будується з двох півсуматорів плюс гейт АБО, тому його можна ланцюжити: 64 повних суматори в ланцюзі «ripple-carry» додають два 64-бітні цілі числа.
Що саме кажуть закони Де Моргана?
NOT(A AND B) дорівнює (NOT A) АБО (NOT B), і NOT(A OR B) дорівнює (NOT A) І (NOT B). Простими словами, відкидання AND еквівалентне OR-інгу відкинутих входів, а відкидання OR еквівалентне AND-інгу відкинутих входів – це причина, чому гейти NAND/NOR самостійно достатні для побудови будь-якого ланцюга.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію the simulation