БЛОК 16-РАЗРЯДНОЙ АРИФМЕТИКИ УНИВЕРСАЛЬНОГО МИКРОКОНТРОЛЛЕРА

Полезная модель представляет собой блок, который может быть использован в составе 8-разрядных или 16-разрядных микроконтроллеров, предназначенный для выполнения арифметических и логических операций над 16-разрядными и 32-разрядными операндами. Особенностью полезной модели является настраиваемое время выполнения команд, выбираемое индивидуально для каждого микроконтроллера, в состав которого входит полезная модель. Желаемый технический результат достигается за счет того, что в составе полезной модели находится схема задания времени выполнения, а все логические и арифметические операции выполняются за один такт.Этот один такт может быть равен нескольким тактам микроконтроллера. Количество тактов выбирается так, чтобы не ограничивалась максимальная частота функционирования всего устройства, в состав которого входит полезная модель.
Известны блоки 16-разрядной арифметики, входящие в состав 8-разрядных микроконтроллеров зарубежных производителей [1]. Особенностью этих блоков является выполнение арифметических и логических команд под управлением соответствующей микропрограммы, обеспечивающей необходимую настройку узлов в каждом такте. Эта микропрограмма выполняется за заданное количество тактов, не зависящее от параметров устройства, в состав которого она входит. Каждая выполняемая операция представляется в виде последовательности более простых преобразований, каждое из которых длится один такт. Так умножение 16-разрядной величины на 16-разрядную представляется в виде шестнадцати последовательностей сложений и сдвигов, деление 32-разрядной величины на 16-разрядную - последовательностью тридцати двух вычитаний и сдвигов, сдвиг на тридцать два разряда - последовательностью тридцати двух сдвигов по одному разряду и т.д [2]. В таблице показано время выполнения арифметических операций блоком 16-разрядной арифметики микроконтроллера XC886/888CLM.
Таблица
Операция
Разрядность результата
Разрядность остатка
Количество периодов тактового сигнала
Знаковое деление 32 бит/16 бит
32 бита
16 бит
33
Знаковое деление 16 бит/16 бит
16 бит
16 бит
17
Знаковое умножение 16 бит на 16 бит
32 бита
-
16
Беззнаковое деление32 бит/16 бит
32 бита
16 бит
32
Беззнакове деление 16 бит/16 бит
16 бит
16 бит
16
Беззнаковое умножение 16 бит на 16 бит
32 бита
-
16
32 битная нормализация
-
-
Количество сдвигов+1 (максимально 32)
32 битный сдвиг влево/вправо
-
-
Количество сдвигов+1 (максимально 32)
Недостатком использования такого подхода является жесткая привязка к количеству периодов тактового сигнала, что не позволяет настроить время выполнения арифметических и логических операций, воспользовавшись особенностями конкретных устройств, в состав которых входят такие блоки. При этом для разработчика программного обеспечения применение таких блоков осложняется необходимостью создания специальной программы - обработчика прерывания по окончанию вычисления или программного поллинга флага готовности.
Полезная модель может быть использована в составе 8-разрядных или 16-разрядных микроконтроллеров и выполняет арифметические и логические операции над 16-разрядными или 32-разрядными операндами за меньшее количество времени. Технический результат достигается тем, что каждой операции, выполняемой блоком, соответствует своя комбинационная схема, реализующая соответствующую функцию за один такт, который может равняться нескольким периодам тактового сигнала устройства, в состав которого может входить полезная модель. Количество периодов выбирается индивидуально исходя из выражения:
N≥tпм/tмк мах (1), где
N - целое число периодов тактового сигнала;
tпм - длительность выполнения самой долгой операции в полезной модели, не;
tмк мах - максимальное время распространения нетактовых сигналов в остальной части устройства, в состав которого входит полезная модель.
Таким образом, длительность цикла в периодах тактовых сигналов выбирается из учета того, что она не должна ограничивать максимальную частоту функционирования микроконтроллера, в состав которого входит полезная модель. Это позволяет организовывать блоки, в которых все арифметические и логические операции занимают три или даже два периода внутреннего тактового сигнала. Это делает возможным опрос регистров результата командой, следующей за командой, разрешающей вычисление. Задание длительности выполнения операции происходит посредством схемы, содержащий компаратор и счетчик или сдвиговой регистр. Пока значение счетчика не совпадет с заданным значением (или сдвиговой регистр не осуществит сдвиг заданное количество раз), блок комбинационных схем осуществляет арифметические или логические преобразования.
На фиг. представлена структура полезной модели.
Полезная модель состоит из следующих составных частей:
1. Управляющий регистр, содержащий код выполняемой операции и бит запуска вычислений.
2. Схема задания времени выполнения арифметических или логических операций (сдвиговый регистр или счетчик).
3. Регистры операндов, которые содержат исходные данные для вычислений. В зависимости от операции могут быть использованы различные комбинации этих регистров для определения операндов.
4. Схема коммутации регистров операндов.
5. Регистры результатов операций.
6. Схема коммутации регистров результата.
7. Блок комбинационных схем, реализующих арифметические или логические операции за один такт.
8. Схема записи и чтения регистров.
Полезная модель может применяться для выполнения следующих типов операций:
1. Беззнаковое умножение двух 16-разрядных величин с получением 32-разрядного результата.
2. Беззнаковое деление 16-разрядного операнда на 16-разрядный, с получением 16-разрядного результата деления и 16-разрядного остатка.
3. Беззнаковое деление 32-разрядного операнда на 16-разрядный, с получением 32-разрядного результата деления и 16-разрядного остатка.
4. Логический сдвиг 32-разрядного операнда.
5. Умножение двух 16-разрядных величин со знаком с получением 32-разрядного результата.
6. Деление 16-разрядного операнда со знаком на 16-разрядный со знаком, с получением 16-разрядного результата деления и 16-разрядного остатка.
7. Деление 32-разрядного операнда со знаком на 16-разрядный со знаком, с получением 32-разрядного результата деления и 16-разрядного остатка.
8. Арифметический сдвиг 32-разрядного операнда.
9. Нормализация 32-разрядного операнда.
Данные операндов, записанные в регистры операндов попадают на схему коммутации регистров операндов, которая в соответствии данными управляющего регистра, подает их на одну из схем, реализующих арифметическую или логическую функцию. Результат выполнения соответствующей функции попадает на схему коммутации регистров результата, которая в соответствии с данными управляющего регистра, заносит значения в регистры результата. Схема записи и чтения регистров обеспечивает прием и выдачу данных на шину, соединяющую полезную модель с окружением. Схема задания времени выполнения обеспечивает необходимую длительность операции, в соответствии с выражением (1), так, чтобы не происходило ограничение максимальной частоты работы устройства, в состав которого входит полезная модель.
Литература:
1. XC886/88CLM 8-bit Single Chip Microcontroller. User's manual. V1.3 2010-02.
2. Спиридонов В.В. Проектирование структур АЛУ: Учебное пособие. - СПб.: СЗПИ, 1992. - 72 с.