Операционные устройства (АЛУ)

В разделе "Представление информации в ЭВМ" было показано, что различные арифметические операции над числами (представленными, кроме, того в различной кодировке) требуют существенно различных последовательностей микроопераций. Кроме того, очевидно, что чем многофункциональнее электронное устройство, тем сложнее его структура (больше элементов) и тем медленнее оно работает. С другой стороны, функции такого сложного устройства может выполнить набор более простых и быстродействующих устройств, однако аппаратурные затраты и цена будут выше.

В общем случае операции, выполняемые в АЛУ, можно разделить на следующие группы:

- операции двоичной арифметики для ЧФЗ;

- операции двоичной (шестнадцатеричной) арифметики для ЧПЗ;

- операции десятичной арифметики;

- логические операции;

- операции индексной арифметики (при модификации адресов команд);

- операции специальной арифметики:нормализация чисел, арифметический сдвиг (сдвигаются только цифровые разряды без знакового), логический сдвиг (сдвигаются все разряды) и т.д..

ЭВМ общего назначения обычно реализуют операции приведенных выше групп, но делают это по-разному, в зависимости от типа АЛУ, используемого в процессоре.

АЛУ подразделяется на блочные и многофункциональные.

В блочных АЛУ (рис. 3.3) перечисленные группы операций выполняются в отдельных электронных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции. Кроме того, специализированный блок всегда выполняет операции быстрее, чем универсальный перенастраиваемый блок.

 

Блочные АЛУ характерны для больших ЭВМ, где главным является максимальное быстродействие, а не аппаратные затраты и стоимость. Простейшие сопроцессоры в микроЭВМ, выполняющие операции с ЧПЗ, также можно рассматривать как специализированные блоки, поэтому АЛУ микроЭВМ с сопроцессорами можно иногда рассматривать как блочные.

В многофункциональных АЛУ перечисленные группы операций выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы. Такие АЛУ характерны для мини- и микроЭВМ, построенных на простых процессорах.

Существуют и другие структуры АЛУ (смешанные), находящиеся где-то между блочными и многофункциональными.

Следует иметь в виду, что часто ЭВМ, построенные на базе простейших микропроцессоров, имеют АЛУ, позволяющие выполнять только операции двоичной арифметики над ЧФЗ и некоторые логические операции. В этом случае остальные группы операций выполняются специальными подпрограммами, что сильно понижает скорость их выполнения.

Рассмотрим несколько подробнее структуру АЛУ простейшего процессора и определим минимально необходимый набор входящих в него устройств. Из изложенного выше следует, что в состав такого АЛУ должно входить устройство, выполняющее операции двоичного суммирования (сумматор). Кроме того, для хранения операндов и результата необходимо иметь, по крайней мере, три буферных регистра (регистры временного хранения). Однако в простейшем случае результат операции можно записывать в один из регистров временного хранения на место одного из операндов. Этот регистр принято называть аккумулятором, а процессор в целом – процессором аккумуляторного типа. Аккумулятор должен обязательно иметь двунаправленную связь с внутренней шиной данных процессора. (В более сложных АЛУ результат операции может быть записан по желанию программиста в любой из специально выделенных для этой цели регистр). Для выполнения арифметико-логических операций необходимо устройство, выполняющее сдвиги двоичных чисел (сдвигатель). И, наконец, необходим регистр, в котором хранятся некоторые признаки результата выполненной операции, необходимые для функционирования УУ (регистр признаков).

Структурная схема АЛУ простейшего микропроцессора аккумуляторного типа изображена на рис. 3.4.

Уже отмечалось, что АЛУ в целом и двоичный сумматор имеют одно обозначение. В соответствии со сделанными ранее замечаниями регистр временного хранения и аккумулятор можно считать вспомогательными узлами АЛУ.