5.3.2.    Вычислительные блоки (АЛУ, МАС, регистр сдвига)

Процессор (см. рис. 5.2) содержит три независимых вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель с накоплением (МАС) и уст

ройство сдвига. Вычислительные блоки способны обрабатывать 16-разрядные данные и могут поддерживать вычисления с повышенной точностью. Арифметико-логическое устройство обладает флагом переноса CI, который позволяет поддерживать 32-разрядные арифметические действия.

Арифметико-логическое устройство обеспечивает стандартный набор арифметических и логических функций: сложение, вычитание, смену арифметического знака, инкремент, декремент, получение абсолютного значения, логическое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсию. Также поддерживаются примитивы деления.

Умножитель с накоплением способен выполнить за один машинный цикл операцию умножения, умножения-сложения или умножения-вычитания. Он также содержит 40-разрядный аккумулятор, который обеспечивает дополнительные 8 разрядов для накопления результата без потери информации; данное решение допускает возникновение 256-ти переполнений, прежде чем произойдет потеря данных. Специальные команды обеспечивают поддержку блочной плавающей точки, при которой одна экспонента приписывается некоторому набору данных.

Для ускорения обработки прерываний в МАС также может использоваться набор вспомогательных регистров. Если после окончания процедуры обработки сигнала установлен флаг MV, это означает, что регистр результата содержит слово, длина которого больше 32 разрядов. В этом случае значение, содержащееся в регистре, может быть заменено максимально или минимально возможной величиной, представимой в пределах 32-хразрядной сетки в формате 1.32, в зависимости от природы переполнения.

Устройство сдвига производит операции логического и арифметического сдвига, нормализации и денормализации, а также вычисления блочной экспоненты. Устройство может быть использовано для эффективного управления численными форматами, в том числе представление чисел в формате с плавающей точкой с повышенной точностью.

Вычислительные блоки располагаются параллельно, а не последовательно, так что результат работы любого блока может использоваться как исходное данное для другого блока в следующем машинном цикле. Для обеспечения такой возможности используется шина промежуточных результатов (R).