Главная / Без рубрики / Сумматоры и арифметико‑логические устройства (АЛУ)

Сумматоры и арифметико‑логические устройства (АЛУ)

1. Введение: роль арифметических устройств в цифровой технике

Арифметико‑логические устройства (АЛУ) и сумматоры — ключевые блоки любой вычислительной системы: процессоров, микроконтроллеров, цифровых сигнальных процессоров. Они обеспечивают:

  • выполнение базовых арифметических операций (сложение, вычитание, умножение, деление);
  • логические операции (И, ИЛИ, НЕ, исключающее ИЛИ);
  • битовые сдвиги и проверки условий (знаков, переполнения, нулевого результата).

Области применения:

  • центральные процессоры (CPU);
  • графические процессоры (GPU);
  • микроконтроллеры и встраиваемые системы;
  • цифровые сигнальные процессоры (DSP);
  • аппаратные ускорители (AI, криптография).

2. Сумматоры: основы и классификация

2.1. Что такое сумматор

Сумматор — комбинационная схема, складывающая два n‑разрядных двоичных числа и выдающая:

  • n‑разрядную сумму;
  • бит переноса (Cout) из старшего разряда.

Базовые типы:

  • одноразрядный (полусумматор, полный сумматор);
  • многоразрядный (последовательный, параллельный, с ускоренным переносом).

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

Складывает два одноразрядных числа без учёта входного переноса.

Входы: A, B.
Выходы: S (сумма), Cout (перенос).

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

SCout​=A⊕B,=A⋅B.​

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

ABSCout
0000
0110
1010
1101

2.3. Полный сумматор (Full Adder)

Учитывает входной перенос (Cin).

Входы: A, B, Cin.
Выходы: S, Cout.

Уравнения:

SCout​=A⊕B⊕Cin,=A⋅B+Cin⋅(A⊕B).​

Таблица истинности (фрагмент):

ABCinSCout
00000
00110
11111

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:

  1. Инвертировать все биты B (¬B).
  2. Прибавить 1 → получить −B в дополнительном коде.
  3. Сложить 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‑разрядного АЛУ

  1. Мультиплексоры выбирают операнды и режимы.
  2. Сумматор выполняет сложение/вычитание.
  3. Логический блок реализует И/ИЛИ/исключающее ИЛИ.
  4. Сдвиговый регистр выполняет сдвиги.
  5. Блок формирования флагов анализирует результат.
  6. Выходной мультиплексор выбирает итоговый результат.

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 разряд)

Для каждого разряда:

  1. Сумматор (полный) → сумма и перенос.
  2. Логические элементы (И, ИЛИ, исключающее ИЛИ) → логические результаты.
  3. Мультиплексор 4→1 выбирает операцию по коду OpCode[1:0]:
    • 00A ∧ B;
    • 01A ∨ B;
    • 10A ⊕ B;
    • 11 → сумматор.
  4. Сдвиговые цепи (для многоразрядных операций).

5.2. Формирование флагов

  • Z: Z = ¬(R₀ ∨ R₁ ∨ … ∨ Rₙ₋₁);
  • C: выход переноса старшего разряда сумматора;
  • S: старший бит результата (Rₙ₋₁);
  • V: V = Cₙ₋₁ ⊕ Cₙ₋₂ (переполнение при сложении дополнительного кода).

5.3. Многоразрядное АЛУ

  • каскадирование одноразрядных модулей;
  • ускоренный перенос для арифметических операций;
  • общая логика управления (`

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *