1. Введение: роль арифметических устройств в цифровой технике
Арифметико‑логические устройства (АЛУ) и сумматоры — ключевые блоки любой вычислительной системы: процессоров, микроконтроллеров, цифровых сигнальных процессоров. Они обеспечивают:
- выполнение базовых арифметических операций (сложение, вычитание, умножение, деление);
- логические операции (И, ИЛИ, НЕ, исключающее ИЛИ);
- битовые сдвиги и проверки условий (знаков, переполнения, нулевого результата).
Области применения:
- центральные процессоры (CPU);
- графические процессоры (GPU);
- микроконтроллеры и встраиваемые системы;
- цифровые сигнальные процессоры (DSP);
- аппаратные ускорители (AI, криптография).
2. Сумматоры: основы и классификация
2.1. Что такое сумматор
Сумматор — комбинационная схема, складывающая два n‑разрядных двоичных числа и выдающая:
- n‑разрядную сумму;
- бит переноса (
Cout) из старшего разряда.
Базовые типы:
- одноразрядный (полусумматор, полный сумматор);
- многоразрядный (последовательный, параллельный, с ускоренным переносом).
2.2. Полусумматор (Half Adder)
Складывает два одноразрядных числа без учёта входного переноса.
Входы: A, B.
Выходы: S (сумма), Cout (перенос).
Логические уравнения:
SCout=A⊕B,=A⋅B.
Таблица истинности:
| A | B | S | Cout |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
2.3. Полный сумматор (Full Adder)
Учитывает входной перенос (Cin).
Входы: A, B, Cin.
Выходы: S, Cout.
Уравнения:
SCout=A⊕B⊕Cin,=A⋅B+Cin⋅(A⊕B).
Таблица истинности (фрагмент):
| A | B | Cin | S | Cout |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
2.4. Многоразрядные сумматоры
а) Последовательный (с последовательным переносом)
- n полных сумматоров соединены каскадно:
Coutᵢ → Cinᵢ₊₁. - Недостаток: задержка растёт линейно с n (критично для больших разрядностей).
б) Параллельный с ускоренным переносом (Carry‑Lookahead, CLA)
- Вычисляет переносы для всех разрядов одновременно.
- Использует сигналы генерации (
Gᵢ = Aᵢ · Bᵢ) и распространения (Pᵢ = Aᵢ ⊕ Bᵢ). - Уравнение переноса:Ci+1=Gi+Pi⋅Ci.
- Значительно ускоряет сложение (задержка ~log n).
в) Сумматоры с условным переносом, селективные и др.
- Компромисс между сложностью и скоростью.
- Применяются в высокопроизводительных CPU/GPU.
3. Вычитатели и операции сложения/вычитания
3.1. Вычитание через дополнение до двух
Для вычитания A − B используют сложение с дополнением до двух числа B:
- Инвертировать все биты
B(¬B). - Прибавить 1 → получить
−Bв дополнительном коде. - Сложить
A + (−B).
Схема:
- мультиплексор на входах сумматора выбирает
Bили¬B; Cinсумматора устанавливается в 1 при вычитании.
3.2. Универсальный сумматор‑вычитатель
Управляющий сигнал Sub:
Sub = 0→ сложение (A + B);Sub = 1→ вычитание (A − B).
Реализация:
- на каждом разряде — XOR‑элемент:
Bᵢ' = Bᵢ ⊕ Sub; Cin = Sub.
4. Арифметико‑логическое устройство (АЛУ): структура и функции
4.1. Что такое АЛУ
АЛУ — многофункциональный блок, выполняющий:
- арифметические операции (сложение, вычитание, инкремент/декремент, сравнение);
- логические операции (И, ИЛИ, исключающее ИЛИ, НЕ);
- битовые сдвиги (влево/вправо, арифметические/логические);
- операции над полями (извлечение, вставка).
Входные данные: два операнда (A, B), управляющий код операции (OpCode).
Выходные данные: результат (R), флаги состояния.
4.2. Основные флаги состояния
- Z (Zero) — результат равен нулю;
- C (Carry) — перенос из старшего разряда;
- S/N (Sign/Negative) — знак результата;
- V (Overflow) — переполнение (для дополнительного кода);
- P (Parity) — чётность числа единиц.
4.3. Типовая структура 4‑разрядного АЛУ
- Мультиплексоры выбирают операнды и режимы.
- Сумматор выполняет сложение/вычитание.
- Логический блок реализует И/ИЛИ/исключающее ИЛИ.
- Сдвиговый регистр выполняет сдвиги.
- Блок формирования флагов анализирует результат.
- Выходной мультиплексор выбирает итоговый результат.
4.4. Микрооперации (примеры)
R = A + B(сложение);R = A − B(вычитание);R = A ∧ B(логическое И);R = A ∨ B(логическое ИЛИ);R = A ⊕ B(исключающее ИЛИ);R = ¬A(инверсия);R = A << 1(сдвиг влево);R = A >> 1(логический сдвиг вправо);R = A >>> 1(арифметический сдвиг вправо).
5. Реализация АЛУ на логических элементах
5.1. Базовый модуль (1 разряд)
Для каждого разряда:
- Сумматор (полный) → сумма и перенос.
- Логические элементы (И, ИЛИ, исключающее ИЛИ) → логические результаты.
- Мультиплексор 4→1 выбирает операцию по коду
OpCode[1:0]:00→A ∧ B;01→A ∨ B;10→A ⊕ B;11→ сумматор.
- Сдвиговые цепи (для многоразрядных операций).
5.2. Формирование флагов
- Z:
Z = ¬(R₀ ∨ R₁ ∨ … ∨ Rₙ₋₁); - C: выход переноса старшего разряда сумматора;
- S: старший бит результата (
Rₙ₋₁); - V:
V = Cₙ₋₁ ⊕ Cₙ₋₂(переполнение при сложении дополнительного кода).
5.3. Многоразрядное АЛУ
- каскадирование одноразрядных модулей;
- ускоренный перенос для арифметических операций;
- общая логика управления (`



