• В кристалле процессора нет чисел — есть уровни электрического напряжения.
• Лог. «0» (Low): потенциал, близкий к общему проводу ($0.0 .. 0.8\text{ В}$ в CMOS 3.3V).
• Лог. «1» (High): потенциал напряжения питания ($2.0 .. 3.3\text{ В}$).
• Диапазон $0.8 .. 2.0\text{ В}$ — запрещенная зона, защищающая от электромагнитных наводок.
• Вентили построены на парах p-MOS и n-MOS транзисторов, исключающих сквозной ток в статике.
1854 г. — Джордж Буль создает математическую логику. 1938 г. — Клод Шеннон применяет булеву алгебру к электрическим релейным схемам, заложив фундамент цифровой схемотехники.
Логическое умножение:
$Y = A \cdot B$
Выход равен 1 только тогда, когда $A=1$ И $B=1$.
Аналог: последовательное включение ключей.
Логическое сложение:
$Y = A + B$
Выход равен 1, если $A=1$ ИЛИ $B=1$ (хотя бы один вход активен).
Аналог: параллельное включение ключей.
Логическое отрицание:
$Y = \overline{A}$
Превращает 0 в 1, а 1 в 0. Простейший вентиль — CMOS-инвертор из 2 транзисторов.
$Y = A \oplus B = \overline{A}B + A\overline{B}$. Единица на выходе формируется тогда и только тогда, когда сигналы на входах различны ($0 \oplus 1 = 1$, но $1 \oplus 1 = 0$). Основа сумматоров АЛУ!
• Идемпотентность: $A \cdot A = A$, $A + A = A$
• Операции с константами: $A \cdot 0 = 0$, $A + 1 = 1$
• Исключенное третье: $A + \overline{A} = 1$, $A \cdot \overline{A} = 0$
• Склеивание: $A B + A \overline{B} = A$ (основа карт Карно)
1. Отрицание конъюнкции:
$$\overline{A \cdot B} = \overline{A} + \overline{B}$$
2. Отрицание дизъюнкции:
$$\overline{A + B} = \overline{A} \cdot \overline{B}$$
Инженерное правило: разрывая черту отрицания, меняем знак операции на противоположный!
Набор вентилей полон, если на его основе можно построить абсолютно любую цифровую микросхему без привлечения других элементов.
• НЕ: $\overline{A} = \overline{A \cdot A}$
• И: $A \cdot B = \overline{\overline{A \cdot B}}$
• ИЛИ: $A + B = \overline{\overline{A} \cdot \overline{B}}$
Почему NAND? В технологии CMOS вентиль И-НЕ требует всего 4 транзистора (против 6 у обычного И).
• НЕ: $\overline{A} = \overline{A + A}$
• ИЛИ: $A + B = \overline{\overline{A + B}}$
• И: $A \cdot B = \overline{\overline{A} + \overline{B}}$
Широко применяется в высокоскоростных матрицах ПЗУ и Flash-памяти типа NOR.
• Выходные сигналы зависят только от текущих входов в данный момент времени.
• Нет памяти и обратных связей.
• Примеры: сумматоры, мультиплексоры, дешифраторы, компараторы, АЛУ.
• Выходные сигналы зависят как от текущих входов, так и от предыстории (состояния памяти).
• Содержат контуры обратной связи.
• Примеры: триггеры, регистры процессора, счетчики, статическая память SRAM.
Комбинационная логика выполняет мгновенные математические преобразования данных между ступенями, а последовательностные триггеры фиксируют результаты по тактовому сигналу $CLK$.
Простейший комбинационный узел, складывающий два одноразрядных двоичных числа $A$ и $B$.
| $A$ | $B$ | Сумма $S$ | Перенос $C$ |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
• Младший бит суммы:
$S = A \oplus B$ (вентиль XOR)
• Бит переноса в старший разряд:
$C = A \cdot B$ (вентиль И)
Ограничение: полусумматор не умеет принимать перенос от младшего разряда!
Основа АЛУ. Имеет 3 входа: слагаемые $A, B$ и входной перенос $C_{in}$. Выходы: сумма $S$ и перенос $C_{out}$.
• Сумма: $S = A \oplus B \oplus C_{in}$
• Перенос: $C_{out} = A B + C_{in}(A \oplus B)$
Синтезируется каскадом из двух полусумматоров и одного элемента ИЛИ.
В 64-битном сумматоре перенос должен последовательно пробежать через все 64 разряда!
Задержка: $t_{total} \approx 64 \times 2\tau = 128\tau$.
Решение: блоки ускоренного переноса Carry-Lookahead Adder (CLA).
• Цифровой коммутатор: передает на выход $Y$ один из 4 входов ($D_0..D_3$) по адресу $A_1 A_0$.
• Уравнение:
$Y = \overline{A_1}\overline{A_0}D_0 + \overline{A_1}A_0 D_1 + A_1\overline{A_0}D_2 + A_1 A_0 D_3$
• Служит универсальным генератором функций (LUT в FPGA)!
• Преобразует двоичный $k$-битный код в унитарный сигнал активации «1 из $2^k$».
• Применение: декодирование команд микропроцессора (Opcode) и выбор микросхем памяти (Chip Select).
Память возникает, когда выход логического вентиля соединяется с его собственным входом.
• Вход $S$ (Set) — установка $Q = 1$.
• Вход $R$ (Reset) — сброс $Q = 0$.
• При $R=0, S=0$ — режим хранения предыдущего бита.
• Нарушается принцип взаимной инверсии выходов ($Q = \overline{Q} = 0$).
• При одновременном снятии сигналов схема входит в режим гонки фронтов с недетерминированным исходом!
• Один информационный вход $D$ и вход тактирования $CLK$.
• Исключает любые запрещенные комбинации: состояние $Q(t+1)$ всегда равно $D$ в момент тактового импульса.
• Является базовой ячейкой регистровых файлов CPU и статической памяти SRAM.
• Состоит из ведущей (Master) и ведомой (Slave) защелок, управляемых противофазным тактом.
• Данные фиксируются строго по переднему фронту $\uparrow$, исключая сквозное прохождение сигналов через регистр.
• $t_{setup}$ (Setup Time): время ДО фронта такта, в течение которого данные $D$ обязаны быть стабильны.
• $t_{hold}$ (Hold Time): время ПОСЛЕ фронта такта, в течение которого данные $D$ нельзя менять.
• При нарушении окна $[t_{setup}, t_{hold}]$ триггер зависает на уровне напряжения $V_{DD}/2$.
• Защита: двухкаскадные триггерные синхронизаторы для внешних асинхронных шин.
Сетка 64-битных параллельных сумматоров, матричных умножителей и логических блоков XOR/AND/OR.
Массивы многопортовых D-триггеров (SRAM cells), обеспечивающие чтение операндов за доли наносекунды.
Каскады дешифраторов, превращающие двоичный байт машинной команды в управляющие сигналы тракта.
Современные процессоры (на техпроцессах 3 нм и 5 нм) содержат до 50–90 миллиардов транзисторов, функционирующих на тактовых частотах свыше 5 ГГц!