Логические основы ЭВМ, элементы и узлы

1. От полупроводников к логическим уровням

Физическая природа нуля и единицы

• В кристалле процессора нет чисел — есть уровни электрического напряжения.

• Лог. «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 г. — Клод Шеннон применяет булеву алгебру к электрическим релейным схемам, заложив фундамент цифровой схемотехники.

2. Базовые логические операции

Конъюнкция (И / AND)

Логическое умножение:
$Y = A \cdot B$

Выход равен 1 только тогда, когда $A=1$ И $B=1$.

Аналог: последовательное включение ключей.

Дизъюнкция (ИЛИ / OR)

Логическое сложение:
$Y = A + B$

Выход равен 1, если $A=1$ ИЛИ $B=1$ (хотя бы один вход активен).

Аналог: параллельное включение ключей.

Инверсия (НЕ / NOT)

Логическое отрицание:
$Y = \overline{A}$

Превращает 0 в 1, а 1 в 0. Простейший вентиль — CMOS-инвертор из 2 транзисторов.

Сложение по модулю 2: Исключающее ИЛИ (XOR, $\oplus$)

$Y = A \oplus B = \overline{A}B + A\overline{B}$. Единица на выходе формируется тогда и только тогда, когда сигналы на входах различны ($0 \oplus 1 = 1$, но $1 \oplus 1 = 0$). Основа сумматоров АЛУ!

3. Законы алгебры логики и правила де Моргана

Ключевые законы преобразования

• Идемпотентность: $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}$$

Инженерное правило: разрывая черту отрицания, меняем знак операции на противоположный!

4. Функционально полные базисы (И-НЕ, ИЛИ-НЕ)

Что такое функциональная полнота?

Набор вентилей полон, если на его основе можно построить абсолютно любую цифровую микросхему без привлечения других элементов.

Базис Шеффера (И-НЕ / NAND)

• НЕ: $\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 у обычного И).

Базис Пирса (ИЛИ-НЕ / NOR)

• НЕ: $\overline{A} = \overline{A + A}$

• ИЛИ: $A + B = \overline{\overline{A + B}}$

• И: $A \cdot B = \overline{\overline{A} + \overline{B}}$

Широко применяется в высокоскоростных матрицах ПЗУ и Flash-памяти типа NOR.

5. Архитектурные классы узлов: комбинационные и последовательностные

Комбинационные схемы

• Выходные сигналы зависят только от текущих входов в данный момент времени.

• Нет памяти и обратных связей.

• Примеры: сумматоры, мультиплексоры, дешифраторы, компараторы, АЛУ.

Последовательностные схемы

• Выходные сигналы зависят как от текущих входов, так и от предыстории (состояния памяти).

• Содержат контуры обратной связи.

• Примеры: триггеры, регистры процессора, счетчики, статическая память SRAM.

Принцип конвейера процессора

Комбинационная логика выполняет мгновенные математические преобразования данных между ступенями, а последовательностные триггеры фиксируют результаты по тактовому сигналу $CLK$.

6. Полусумматор (Half Adder)

Простейший комбинационный узел, складывающий два одноразрядных двоичных числа $A$ и $B$.

Таблица истинности

$A$$B$Сумма $S$Перенос $C$
0000
0110
1010
1101

Логические уравнения

• Младший бит суммы:
$S = A \oplus B$ (вентиль XOR)

• Бит переноса в старший разряд:
$C = A \cdot B$ (вентиль И)

Ограничение: полусумматор не умеет принимать перенос от младшего разряда!

7. Полный одноразрядный сумматор (Full Adder)

Основа АЛУ. Имеет 3 входа: слагаемые $A, B$ и входной перенос $C_{in}$. Выходы: сумма $S$ и перенос $C_{out}$.

Уравнения полного сумматора

• Сумма: $S = A \oplus B \oplus C_{in}$

• Перенос: $C_{out} = A B + C_{in}(A \oplus B)$

Синтезируется каскадом из двух полусумматоров и одного элемента ИЛИ.

Проблема Ripple Carry (сквозного переноса)

В 64-битном сумматоре перенос должен последовательно пробежать через все 64 разряда!

Задержка: $t_{total} \approx 64 \times 2\tau = 128\tau$.

Решение: блоки ускоренного переноса Carry-Lookahead Adder (CLA).

8. Мультиплексоры (MUX) и Дешифраторы (DC)

Мультиплексор (MUX 4:1)

• Цифровой коммутатор: передает на выход $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)!

Дешифратор (Decoder 2:4)

• Преобразует двоичный $k$-битный код в унитарный сигнал активации «1 из $2^k$».

• Применение: декодирование команд микропроцессора (Opcode) и выбор микросхем памяти (Chip Select).

9. Принцип запоминания: обратная связь и RS-триггер

Память возникает, когда выход логического вентиля соединяется с его собственным входом.

Асинхронный RS-триггер на ИЛИ-НЕ

• Вход $S$ (Set) — установка $Q = 1$.

• Вход $R$ (Reset) — сброс $Q = 0$.

• При $R=0, S=0$ — режим хранения предыдущего бита.

Запрещенное состояние ($R=1, S=1$)

• Нарушается принцип взаимной инверсии выходов ($Q = \overline{Q} = 0$).

• При одновременном снятии сигналов схема входит в режим гонки фронтов с недетерминированным исходом!

10. Синхронный D-триггер (Data Flip-Flop)

Принцип работы D-триггера

• Один информационный вход $D$ и вход тактирования $CLK$.

• Исключает любые запрещенные комбинации: состояние $Q(t+1)$ всегда равно $D$ в момент тактового импульса.

• Является базовой ячейкой регистровых файлов CPU и статической памяти SRAM.

Двухступенчатая схема Master-Slave

• Состоит из ведущей (Master) и ведомой (Slave) защелок, управляемых противофазным тактом.

• Данные фиксируются строго по переднему фронту $\uparrow$, исключая сквозное прохождение сигналов через регистр.

11. Физика тактирования: Setup/Hold Time и метастабильность

Временные интервалы синхронизации

• $t_{setup}$ (Setup Time): время ДО фронта такта, в течение которого данные $D$ обязаны быть стабильны.

• $t_{hold}$ (Hold Time): время ПОСЛЕ фронта такта, в течение которого данные $D$ нельзя менять.

Опасность метастабильности

• При нарушении окна $[t_{setup}, t_{hold}]$ триггер зависает на уровне напряжения $V_{DD}/2$.

• Защита: двухкаскадные триггерные синхронизаторы для внешних асинхронных шин.

12. Логические узлы в тракте данных современного CPU

АЛУ (ALU)

Сетка 64-битных параллельных сумматоров, матричных умножителей и логических блоков XOR/AND/OR.

Регистровый файл

Массивы многопортовых D-триггеров (SRAM cells), обеспечивающие чтение операндов за доли наносекунды.

Декодер инструкций

Каскады дешифраторов, превращающие двоичный байт машинной команды в управляющие сигналы тракта.

Масштаб интеграции

Современные процессоры (на техпроцессах 3 нм и 5 нм) содержат до 50–90 миллиардов транзисторов, функционирующих на тактовых частотах свыше 5 ГГц!

13. Типовые инженерные ошибки и заблуждения
  • «Логические схемы срабатывают мгновенно»: Каждый вентиль обладает физической емкостью затвора и задержкой переключения $\tau_{pd}$ (10–50 пс). Сумма задержек формирует критический путь (Critical Path), ограничивающий тактовую частоту CPU.
  • «Путаница XOR и OR»: $1 \oplus 1 = 0$! Ошибочная замена XOR на OR полностью ломает двоичное суммирование.
  • «Неправильное раскрытие законов де Моргана»: $\overline{A \cdot B} \neq \overline{A} \cdot \overline{B}$. Отрицание произведения обязано переходить в сумму отрицаний!
  • «Игнорирование метастабильности при приеме внешних сигналов»: Подача асинхронного сигнала прямо на ядро процессора без синхронизатора гарантированно приводит к спонтанным зависаниям системы.
14. Резюме: от логических вентилей к коду
XKCD: Compiling
Мем: «Compiling» (xkcd #303) — Классический комикс о реальной утилизации вычислительных мощностей разработчиками.
Автор: Рэндалл Манро (Randall Munroe), проект xkcd.com (#303).
Лицензия: Creative Commons Attribution-NonCommercial 2.5 Generic (CC BY-NC 2.5).
Атрибуция: Изображение встроено автономно в формате Data URI (data:image/jpeg;base64) без сторонних сетевых запросов.
Слайд 1 из 15