Многоразрядный сумматор
Многоразря́дный сумма́тор — комбинационное логическое устройство, предназначенное для сложения многоразрядных двоичных чисел. Он строится на основе последовательного соединения одноразрядных полных сумматоров, что позволяет обрабатывать числа большей разрядности[1].
Многоразрядные сумматоры лежат в основе выполнения арифметических операций в вычислительной технике, а их оптимизация напрямую влияет на производительность компьютеров.
Общие сведения
| Многоразрядный сумматор | |
|---|---|
| Область использования | кибернетика |
Принцип работы
Сложение выполняется поразрядно, начиная с младших разрядов. При суммировании используется правило переноса в старший разряд. Для каждого разряда используется отдельный полный сумматор, который учитывает[1]:
- два одноразрядных числа (слагаемых);
- перенос из предыдущего (младшего) разряда.
На выходе каждого полного сумматора формируются:
- сумма для текущего разряда;
- перенос в следующий (старший) разряд.
Многоразрядные сумматоры позволяют складывать числа, содержащие несколько битов. Они строятся на основе нескольких одноразрядных полных сумматоров[2].
Полные сумматоры — тринарные (трёхоперандные) сумматоры по модулю с разрядом переноса, характеризующиеся наличием трёх входов, на которые подаются одноимённые разряды двух складываемых чисел и перенос из предыдущего (более младшего) разряда, и двух выходов: на одном реализуется арифметическая сумма по модулю в данном разряде, а на другом — перенос в следующий (более старший разряд).
Классификация
По способу организации переноса многоразрядные сумматоры делятся на основные типы[3]:
- С последовательным переносом (англ. Ripple-carry adder) — перенос формируется по цепочке: от младшего разряда к старшему. Время сложения зависит от количества разрядов, так как сигнал переноса последовательно проходит через все разряды.
- С параллельным переносом — все разряды входных кодов суммируются одновременно.
- С ускоренным групповым переносом (англ. Carry-lookahead adder, CLA-adders) — перенос вычисляется заранее для группы разрядов, что ускоряет процесс сложения. Существуют также параллельно-префиксные сумматоры (например, Sklansky adder, Kogge-Stone adder).
Схема многоразрядного сумматора
Многоразрядный сумматор строится на основе последовательного соединения полных сумматоров для сложения чисел большей разрядности[4]; он представляет собой каскад одноразрядных полных сумматоров. Входы каждого сумматора — соответствующие разряды слагаемых и перенос из предыдущего разряда. Выходы — сумма для текущего разряда и перенос в следующий разряд[5].
Параллельный сумматор выполняет сложение всех разрядов одновременно, что ускоряет вычисления.
Последовательный сумматор обрабатывает разряды поочерёдно, экономя аппаратные ресурсы.
Графическая схема четырёхбитного параллельного сумматора[2]:
A3 B3 C3 ───►[ FA ]───► C_out,
A2 B2 C2 ───►[ FA ]───► C3,
A1 B1 C1 ───►[ FA ]───► C2,
A0 B0 C0 ───►[ FA ]───► C1,
где FA — полный одноразрядный сумматор.
Для реализации сумматоров используются базовые логические элементы[2]:
- И (AND) — для вычисления переноса.
- ИЛИ (OR) — для объединения условий переноса.
- Исключающее ИЛИ (XOR) — для вычисления суммы.
Формулы для полного сумматора[4]:
- S=A⊕B⊕Cin (сумма);
- Cout=(A∧B)∨(Cin∧(A⊕B)) (перенос в следующий разряд),
где A и B — слагаемые, Cin — перенос из предыдущего разряда.
Преимущества
- Универсальность — работают с двоичными числами любой заданной разрядности (4, 8, 16, 32 бита и т. д.); применимы в разных классах устройств: от микроконтроллеров до суперкомпьютеров.
- Высокая скорость вычислений — сумматоры с ускоренным переносом (CLA) существенно быстрее схем с последовательным переносом. Параллельно-префиксные схемы (Kogge‑Stone, Sklansky) минимизируют задержку сигнала.
- Регулярность структуры — однотипные блоки (одноразрядные сумматоры) легко масштабируются; упрощает проектирование и верификацию схем.
- Интеграция в АЛУ — являются базовым блоком арифметико‑логического устройства процессора; поддерживают не только сложение, но и вычитание (через дополнительный код), сравнение, инкремент/декремент.
- Технологичность производства — стандартные логические элементы (И, ИЛИ, исключающее ИЛИ) хорошо оптимизированы в современных КМОП‑технологиях; легко встраиваются в СБИС и ПЛИС.
- Предсказуемость задержек — для сумматоров с ускоренным переносом время выполнения операции фиксировано и не зависит от разрядности (в рамках заданной архитектуры).
- Поддержка конвейеризации — могут быть разбиты на этапы для конвейерной обработки, что повышает пропускную способность.
Недостатки
- Рост задержки при последовательном переносе — в сумматорах типа ripple‑carry сигнал переноса распространяется каскадно: время сложения линейно растёт с разрядностью; для 32‑битных чисел задержка может стать критичной в высокопроизводительных системах.
- Сложность схем с ускоренным переносом — CLA и параллельно‑префиксные сумматоры требуют больше логических элементов и межсоединений; увеличивается площадь на кристалле и энергопотребление.
- Ограниченная масштабируемость — при очень больших разрядностях (например, 1024 бита) даже CLA‑схемы становятся громоздкими; возрастают паразитные ёмкости и задержки на длинных линиях переноса.
- Повышенное энергопотребление — большое число переключающихся элементов (особенно в CLA) приводит к росту динамической мощности; проблема актуальна для мобильных и IoT‑устройств.
- Чувствительность к технологическим вариациям — в наноразмерных технологиях (≤10 нм) разброс параметров транзисторов сильнее влияет на задержку переноса; требуется дополнительная буферизация и оптимизация цепей переноса.
- Сложность тестирования —проверка всех комбинаций входных данных для n‑разрядного сумматора требует 22n тестов; на практике используют псевдослучайные тесты и формальную верификацию.
- Ограниченная гибкость — жёсткая архитектура под заданную разрядность; для переменной разрядности нужны дополнительные мультиплексоры и управляющие схемы.
- Стоимость проектирования — оптимизация сумматоров для конкретных технологических норм и требований по задержке/мощности требует значительных усилий; особенно для высокопроизводительных CLA и параллельно‑префиксных схем.
Применение
Многоразрядные сумматоры обеспечивают базовую арифметическую операцию для подавляющего большинства цифровых систем. Их применение охватывает:
- вычислительную технику (от микроконтроллеров до суперкомпьютеров);
- телекоммуникации и сети;
- цифровую обработку сигналов;
- системы управления и автоматизации;
- специализированные вычислители (криптография, ИИ, научные расчёты);
- потребительскую электронику и IoT.
Выбор типа сумматора (с последовательным/ускоренным переносом, параллельный/последовательный) зависит от требований к скорости, энергопотреблению, площади кристалла и разрядности обрабатываемых чисел[1].
- АЛУ (арифметико‑логическое устройство) процессора. Сумматор — основной блок, выполняющий сложение, вычитание (через дополнительный код), инкремент/декремент.
- Микроконтроллеры и микропроцессоры. Обработка данных в реальном времени: управление периферией, расчёты датчиков, обработка сигналов.
- Цифровые сигнальные процессоры (DSP). Быстрое сложение в алгоритмах фильтрации, преобразования Фурье, сжатия данных.
- Графические процессоры (GPU). Параллельные вычисления: обработка вершин, пикселей, матричные операции.
- Суперкомпьютеры и серверы. Высокопроизводительные вычисления (HPC), криптография, моделирование.
- Фильтрация сигналов (FIR, IIR‑фильтры): суммирование произведений коэффициентов и отсчётов.
- Модуляция/демодуляция. Расчёты в модуляторах и демодуляторах (QAM, OFDM).
- Сжатие аудио/видео. Алгоритмы типа MPEG, H.264, где требуется быстрое суммирование больших массивов данных.
- Контрольные суммы и CRC. Вычисление контрольных сумм для обнаружения ошибок в пакетах данных.
- Шифрование и аутентификация. Алгоритмы AES, RSA, SHA, где используются многоразрядные сложения для обработки блоков данных.
- Коммутаторы и маршрутизаторы. Расчёт метрик маршрутизации, обработка заголовков пакетов.
- ПЛК (программируемые логические контроллеры). Расчёты управляющих воздействий, обработка аналоговых сигналов.
- Робототехника. Кинематические и динамические расчёты, обработка данных сенсоров.
- Промышленная автоматика. Управление двигателями, регулирование температуры, давления и других параметров.
- Контроллеры жёстких дисков и SSD. Коррекция ошибок (ECC), вычисление адресов.
- Оперативные запоминающие устройства (ОЗУ). Адресация строк и столбцов, управление буферами.
- Флэш‑память. Управление износом, расчёт контрольных сумм.
- Криптографические ускорители. Многоразрядное сложение в модулярной арифметике (RSA, ECC).
- Нейронные сети и ИИ‑ускорители. Суммирование взвешенных входов в нейронах, матричные умножения.
- Вычислители для научных расчётов. Обработка больших чисел в физике, химии, биоинформатике.
- Системы позиционирования (GPS/ГЛОНАСС). Расчёт псевдодальности, коррекция времени.
- Смартфоны и планшеты. Обработка изображений, видео, аудио, шифрование данных.
- Умные часы и IoT‑устройства. Энергоэффективные вычисления с ограниченной разрядностью.
- Мультимедиа‑плееры. Декодирование аудио/видео, синхронизация потоков.
- Генераторы тестовых паттернов. Формирование последовательностей для проверки цифровых схем.
- Логические анализаторы. Обработка и отображение данных в реальном времени.
- Внутрисхемное тестирование (ICT). Контроль правильности работы цифровых узлов.
Примечания
Литература
- Назаров С. П., Чернов Н. И. Логический синтез многоразрядных сумматоров на основе линейной алгебры // Известия Южного федерального университета. Технические науки. — 2007. — № 1.
- Якунин Алексей Николаевич, Аунг Мьо Сан. Исследование и модификация многоразрядного параллельно-префиксного сумматора // Известия высших учебных заведений. Электроника. — 2019. — № 2.
- Якунин Алексей Николаевич, Аунг Мьо Сан, Хан Мьо Хтун. Повышение эффективности работы многоразрядного двоичного параллельно-префиксного сумматора // Известия высших учебных заведений. Электроника. — 2020. — № 2.
- Шубин Владимир Владимирович. Схемотехника КМОП полных сумматоров // Вестник СибГУТИ. — 2016. — № 2 (34).