
Арифметико-логическое устройство предназначено для выполнения арифметических и логических операций над данными различного формата. В зависимости от характера выполняемых операций и формата данных различают следующие типы операций в АЛУ:
арифметические операции над целыми числами с ФТ (операции целочисленной арифметики);
арифметические операции над числами с ПТ;
арифметические операции над двоично-десятичными числами (операции десятичной арифметики);
логические операции.
В зависимости от набора операций и особенностей реализации алгоритмов их выполнения организация АЛУ может быть различной.
По характеру использования аппаратных средств различают многофункциональные и блочные АЛУ. В многофункциональных АЛУ все операции выполняются с использованием в основном одних и тех же аппаратных средств, которые настраиваются на заданный тип операции. Блочные АЛУ включают в себя отдельные блоки для операций различного типа. Эти блоки могут работать параллельно, что повышает быстродействие АЛУ, однако требует больших затрат на оборудование.
Арифметико-логическое устройство можно рассматривать как композицию двух основных частей: операционного блока (ОБ) и блока управления (рис. 4.1).
Операционный блок выполняет преобразование данных, определяемое кодом операции. Блок управления организует работу операционного блока, формируя необходимые управляющие сигналы. На ОБ поступают операнды, а на его выходе формируется результат операции. В ходе выполнения операции ОБ выдает признаки (условия), характеризующие промежуточные и окончательные результаты. К таким признакам относятся, например, знаки операндов, равенство результата нулю, значение цифры множителя при умножении, знак остатка при делении и т. д. В зависимости от кода операции и значений признаков БУ выдает последовательность управляющих сигналов. После окончания операции он выдает сигнал готовности к выполнению следующей операции.
Операционный блок состоит из регистров и комбинационных схем. В зависимости от организации связей между регистрами и комбинационными схемами различают АЛУ с жесткой и магистральной структурами. В АЛУ с «жесткой» структурой комбинационные схемы закреплены за определенными регистрами (рис. 4.2). Между регистрами и комбинационными схемами существуют постоянные связи. Каждый регистр с закрепленными комбинационными схемами выполняет определенные микрооперации.
В состав ОБ АЛУ входят три регистра с закрепленными логическими схемами:
регистр первого слагаемого РСл1 со схемой ПРСл1;
регистр второго слагаемого РСл2 со схемой ПРСл2;
регистр суммы РСм со схемой комбинационного сумматора См.
Логическая схема ПРСл1 обеспечивает передачу результата из РСм в регистр РСл1:
в прямом коде РСл1:= РСм (по сигналу П2РСл1);
со сдвигом влево на один разряд РСл1:= РСм(л*0)(по сигналу Z^Cm);
со сдвигом вправо на два разряда РСл1:= R2(s*s*PCm) (по сигналу R2VCm).
При сдвиге влево в освободившийся младший регистра РСл1 заносится «0». При сдвиге вправо в старшие разряды регистра заносится сигнал с левого входа сдвигателя, а содержимое младших разрядов регистра сумматора выдается на правый выход сдвигателя.
Логическая схема ПРСл2 обеспечивает передачу второго слагаемого на левый вход сумматора:
в прямом коде ЛСм:= РСл2 (по сигналу 5[РСл2);
в инверсном коде ЛСм:= РСл2 (по сигналу ^-.РОгё);
со сдвигом влево на один разряд ЛСм:= Z,!(PQt2*0) (по сигналу Х,РСл2).
Комбинационный сумматор выполняет суммирование (арифметическое или по модулю 2) операндов, поступивших на его входы (левый ЛСм и правый ПСм). Результат суммирования заносится в регистр сумматора РСм: РСм:=ЛСм + ПСм (по сигналу П2РСм) или РСм:=ЛСм 0 ПСм (по сигналу П2Ж2РСм).
В АЛУ с магистральной структурой (рис. 4.3) все регистры объединены в блок регистров общего назначения (РОН), а все комбинационные схемы составляют ОБ АЛУ. Обмен данными между регистрами и ОБ выполняется по магистралям, к которым может быть подключен любой из регистров или ОБ.
Выходы каждого из регистров через мультиплексоры А и В могут быть подключены к входам А и В ОБ по магистралям А и В. Выбор подключаемых регистров производится по адресам а и Ь, которые поступают из устройства управления на адресные входы мультиплексоров. Операционный блок настраивается на выполнение заданной операции одним из сигналов управления Yt (/ = 1,
т), который поступает из устройства управления. Результат операции по магистрали С поступает на демультиплексор DMXvi записывается в регистр блока РОН по адресу с.
В зависимости от числа магистралей различают трех-, двух- и одномагистральные АЛУ. Структура трехмагистрального АЛУ (рис. 4.4, а) позволяет выполнить за один такт чтение операндов из РОН, их суммирование в ОБ и запись суммы в РОН (рис. 4.4, б). Однако три магистрали занимают значительную часть кристалла микропроцессора.
Двухмагистральное АЛУ (рис. 4.5, а) содержит буферный регистр (БР) и требует для сложения двух машинных тактов. В первом такте по магистрали В из РОН в БР считывается операнд В. Во втором такте операнд А по той же магистрали считывается из РОН, операнды А и В суммируются в ОБ и результат С по магистрали А записывается в РОН (рис. 4.5, б).
Одномагистральное АЛУ использует два буферных регистра (рис. 4.6, а). В таком АЛУ сложение выполняется за три такта. В первом такте осуществляется чтение операнда А из РОН в БРЬ во втором — операнда В из РОН в БР2, а в третьем суммируются операнды; результат записывается в один из регистров блока РОН (рис. 4.6, б).
Структура ОБ зависит от набора выполняемых операций и типа АЛУ (рис. 4.7). Основу ОБ составляет многофункциональньгй сумматор, который может выполнять микрооперации сложения (с учебтом входящего переноса Сш), сложение по модулю 2 {Ml), логическое умножение И, а также логическое сложение ИЛИ:
Сл: См:= СмЛ + СмП + C1N;
Ml: См:= СмЛ в СмП;
И: См:= СмЛ л СмП;
ИЛИ: См:= СмЛ v СмП.
Формирователи
Д,ФК]: СмЛ:= 0; ДФК2: СмП:= 0; ВХА: СмЛ:= А; ВХВ: СмП:= В; Вх-А: СмЛ:= -А; Вх ->В: СмП:= -,В.
Сдвигатель позволяет выдавать результат из сумматора без сдвига, а также со сдвигом вправо или влево на один разряд: Пх: С:= См;
Rx: С:= Ri(SL * См); SR:= См(и); Lx: С:= Lx(Cm * SL:= См(0).
При сдвиге вправо на старший разряд магистрали С выдается сигнал с левого входа сдвигателя (SL) и на правый выход сдвига-теля выдается содержимое младшего разряда сумматора. При сдвиге влево на младший разряд магистрали С выдается сигнал с правого входа сдвигателя (SR) и на левый выход сдвигателя содержимое старшего разряда сумматора.
Формирователь признаков результата (флагов) определяет значения признаков, которые используются для выполнения условных переходов. Такими признаками могут быть равенство результата нулю, знак результата, переполнение разрядной сетки и т.д.