ММКЦТ «Академия TOP»Дисциплина: ОП.02 Архитектура аппаратных средств
Теоретический конспект: Логические основы ЭВМ, элементы и узлы
Раздел 3 программы курса (§2.2 с.8). Булева алгебра, функционально полные базисы, схемотехника логических вентилей, комбинационные схемы (сумматоры, мультиплексоры, дешифраторы) и последовательностные узлы (триггеры памяти).
1. Физическая природа цифровой логики и основы булевой алгебры
Любая современная цифровая вычислительная система (от копеечного микроконтроллера до 128-ядерного серверного процессора) на фундаментальном аппаратном уровне представляет собой совокупность миллиардов микроскопических полупроводниковых ключей — полевых транзисторов структуры металл-оксид-полупроводник (MOSFET).
В цифровой электронике абстрактные математические понятия «логический 0» (False) и «логическая 1» (True) физически материализуются в виде строго определенных диапазонов электрического напряжения относительно общей шины «земли» (GND, 0 Вольт):
Логический 0 (Low / Низкий уровень): потенциал, близкий к 0 В (например, в стандартах CMOS 3.3 В диапазон составляет от $0.0\text{ В}$ до $0.8\text{ В}$).
Логическая 1 (High / Высокий уровень): потенциал, близкий к напряжению питания микросхемы $V_{DD}$ (в CMOS 3.3 В диапазон составляет от $2.0\text{ В}$ до $3.3\text{ В}$).
Принцип помехоустойчивости: Промежуточная зона напряжений (от $0.8\text{ В}$ до $2.0\text{ В}$) является запрещенной. Цифровой логический вентиль никогда не должен длительно находиться в этом диапазоне, что обеспечивает исключительную устойчивость микропроцессоров к электромагнитным шумам и перекрестным помехам.
Аксиомы и ключевые законы алгебры логики (Булевой алгебры)
Фундаментом математического синтеза цифровых схем служит булева алгебра, предложенная Джорджем Булем в 1854 году и примененная к релейно-электронным схемам Клодом Шенноном в 1938 году:
Коммутативность: $A \cdot B = B \cdot A$; $A + B = B + A$
Ассоциативность: $(A \cdot B) \cdot C = A \cdot (B \cdot C)$; $(A + B) + C = A + (B + C)$
Дистрибутивность: $A \cdot (B + C) = (A \cdot B) + (A \cdot C)$; $A + (B \cdot C) = (A + B) \cdot (A + C)$
Законы идемпотентности: $A \cdot A = A$; $A + A = A$
Закон противоречия и исключенного третьего: $A \cdot \overline{A} = 0$; $A + \overline{A} = 1$
Закон двойного отрицания: $\overline{\overline{A}} = A$
Законы де Моргана (правило инверсии базиса): $$\overline{A \cdot B} = \overline{A} + \overline{B}$$
$$\overline{A + B} = \overline{A} \cdot \overline{B}$$
Закон склеивания (основа карт Карно): $A \cdot B + A \cdot \overline{B} = A$
2. Базовые логические вентили и функционально полные базисы
Логический вентиль (Gate) — это физическое электронное устройство, реализующее элементарную булеву операцию над одним или несколькими входными логическими сигналами. В мировой практике используются два стандарта условных графических обозначений (УГО): отечественный ГОСТ 2.743-91 (прямоугольные блоки с символами &, 1, =1) и международный IEEE / ANSI 91-1984 (фигурные пиктограммы).
1. Конъюнкция: Логический элемент И (AND)
Обозначение ГОСТ: $Y = A \cdot B$ (лог. умножение)
2. Дизъюнкция: Логический элемент ИЛИ (OR)
Обозначение ГОСТ: $Y = A + B$ (лог. сложение)
3. Инверсия: Логический элемент НЕ (NOT)
Обозначение ГОСТ: $Y = \overline{A}$ (инвертор)
4. Сложение по модулю 2: Элемент XOR
Обозначение ГОСТ: $Y = A \oplus B = \overline{A}B + A\overline{B}$
Сводная таблица истинности базовых элементов
Вход $A$
Вход $B$
НЕ ($\overline{A}$)
И ($A \cdot B$)
ИЛИ ($A + B$)
И-НЕ ($\overline{A \cdot B}$)
ИЛИ-НЕ ($\overline{A + B}$)
XOR ($A \oplus B$)
XNOR ($\overline{A \oplus B}$)
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
Функциональная полнота базисов Шеффера (И-НЕ) и Пирса (ИЛИ-НЕ):
Набор логических элементов называется функционально полным, если с его помощью можно реализовать абсолютно любую сколь угодно сложную логическую функцию. Элемент И-НЕ (штрих Шеффера) образует базис из одной-единственной операции:
Дизъюнкция: $A + B = \overline{\overline{A} \cdot \overline{B}}$ (по закону де Моргана).
Именно поэтому кремниевые микропроцессоры на 80–90% синтезируются именно из транзисторных вентилей И-НЕ/ИЛИ-НЕ как наиболее компактных по площади кремния.
3. Комбинационные логические узлы вычислительных машин
Комбинационными называют логические схемы, значения выходных сигналов которых в любой момент времени однозначно определяются исключительно текущими значениями входных сигналов и не зависят от предыстории работы схемы (в них отсутствуют контуры памяти и защелкивания).
3.1. Полусумматор (Half Adder)
Полусумматор — это простейший комбинационный узел, выполняющий сложение двух одноразрядных двоичных чисел $A$ и $B$. Он формирует младший разряд суммы $S$ и выходной бит переноса в старший разряд $C$ (Carry Out).
Схемотехническая структура полусумматора (Half Adder)
Рис 1. Полусумматор (Half Adder): вычисление бита суммы на элементе XOR и переноса на элементе И
3.2. Полный сумматор (Full Adder)
Чтобы построить арифметико-логическое устройство (АЛУ) любой разрядности (8, 32 или 64 бита), полусумматора недостаточно, так как он не умеет принимать перенос $C_{in}$, пришедший от предыдущего разряда. Полный сумматор (Full Adder) имеет три входа ($A$, $B$, $C_{in}$) и два выхода ($S$, $C_{out}$):
Уравнение суммы: $S = A \oplus B \oplus C_{in}$
Уравнение переноса: $C_{out} = A \cdot B + C_{in} \cdot (A \oplus B) = A \cdot B + B \cdot C_{in} + A \cdot C_{in}$
Полный сумматор собирается каскадно из двух полусумматоров и одного элемента ИЛИ для объединения частичных переносов.
3.3. Мультиплексор (MUX) и Дешифратор (DC)
Мультиплексор (Multiplexer, MUX): электронный переключатель, передающий цифровой сигнал с одного из нескольких информационных входов $D_0..D_{N-1}$ на единственный общий выход $Y$ под управлением адресного кода $A_0..A_{k-1}$ ($N = 2^k$). Находит широчайшее применение в коммутации внутренних процессорных шин и трактах операндов АЛУ.
Дешифратор (Decoder, DC): логический узел, преобразующий двоичный $k$-разрядный код адреса в унитарный сигнал возбуждения («1 из $2^k$»). Используется при декодировании инструкций в конвейере CPU и селекции адресных строк (Word Lines) в матрицах оперативной памяти SRAM/DRAM.
4. Последовательностные схемы: триггеры, регистры и основы памяти
Вычислительная машина принципиально не может состоять только из комбинационной логики: процессору необходимо сохранять промежуточные результаты вычислений, фиксировать код текущей инструкции и хранить флаги состояния. Узлы, обладающие памятью, называются последовательностными (автоматами с памятью). Свойство запоминания достигается введением положительной обратной связи, когда выход логического вентиля соединяется с его собственным входом.
4.1. Асинхронный RS-триггер
Простейший бистабильный элемент памяти — RS-триггер (Reset / Set), собранный на двух перекрестно замкнутых вентилях ИЛИ-НЕ (или И-НЕ):
Схема RS-триггера на элементах ИЛИ-НЕ
Рис 2. Базовая ячейка RS-триггера с перекрестной обратной связью
Вход $S$ (Set)
Вход $R$ (Reset)
Состояние выхода $Q(t+1)$
Описание режима
0
0
$Q(t)$
Режим хранения: состояние памяти сохраняется неограниченно долго.
0
1
0
Режим сброса (Reset): выход $Q$ сбрасывается в 0.
1
0
1
Режим установки (Set): выход $Q$ устанавливается в 1.
1
1
Запрещенное состояние
Неопределенность: оба выхода становятся 0; при снятии сигналов — гонка фронтов.
4.2. Синхронный D-триггер и параметры синхронизации
Чтобы исключить запрещенные комбинации и синхронизировать запись данных с тактовым генератором процессора, применяют D-триггер (Data-latch / Delay Flip-Flop). Его выход $Q$ в точности принимает логическое значение информационного входа $D$ исключительно в момент прихода активного перепада тактового импульса $CLK$ ($\uparrow$).
Критические физические параметры D-триггера:
Время предустановки ($t_{setup}$): время до фронта такта, в течение которого входные данные $D$ должны оставаться абсолютно стабильными.
Время удержания ($t_{hold}$): время после фронта такта, в течение которого входные данные $D$ запрещено изменять.
Метастабильность: если сигнал $D$ изменился в окне $[t_{setup}, t_{hold}]$, внутренний контур триггера зависает на неопределенном уровне напряжения ($V_{DD}/2$) на непредсказуемое время, вызывая катастрофический системный сбой процессора. Для синхронизации асинхронных сигналов применяют двухкаскадные триггерные синхронизаторы.
5. Контрольные вопросы и задачи для самопроверки
Вопрос 1: Чему равно выражение $(A + \overline{B}) \cdot (A + B)$?
Ответ: Раскрывая скобки или применяя второй закон дистрибутивности: $(A + \overline{B}) \cdot (A + B) = A + (\overline{B} \cdot B) = A + 0 = A$. Либо по закону склеивания конъюнктов.
Вопрос 2: В чем ключевое схемотехническое отличие полусумматора от полного сумматора?
Ответ: Полусумматор имеет 2 входа ($A, B$) и не способен принимать сигнал переноса от предыдущего разряда. Полный сумматор имеет 3 входа ($A, B, C_{in}$) и полноценно каскадируется в многоразрядные АЛУ.
Вопрос 3: Почему комбинация входов $R=1, S=1$ запрещена для RS-триггера на элементах ИЛИ-НЕ?
Ответ: При $R=1, S=1$ нарушается базовое правило взаимной инверсии выходов: оба выхода $Q$ и $\overline{Q}$ принудительно становятся равными 0. При одновременном снятии управляющих импульсов ($1 \to 0$) из-за технологического разброса задержек вентилей триггер свалится в случайное состояние (эффект гонки сигналов).
Вопрос 4: Как мультиплексор 4:1 может заменить произвольную комбинационную схему трех переменных?
Ответ: Две переменные подаются на адресные входы $A_1, A_0$, а третья переменная (либо ее инверсия, либо константы 0/1) подключается к информационным входам $D_0..D_3$ в соответствии с таблицей истинности целевой функции (концепция LUT в микросхемах ПЛИС/FPGA).