АЛУ – одна из основных функциональных частей процессора, осуществляющая непосредственное преобразование информации.
Все операции, выполняемые в АЛУ, можно разделить на следующие группы:
¨ операции двоичной арифметики для чисел с фиксированной точкой;
¨ операции двоичной (шестнадцатеричной) арифметики для чисел с плавающей точкой;
¨ операции десятичной арифметики над числами, представленными в двоично-десятичном коде;
¨ операции адресной арифметики (при модификации адресов команд);
¨ операции специальной арифметики (нормализация, сдвиг);
¨ логические операции;
¨ операции над алфавитно-цифровыми полями.
Для выполнения перечисленных операций в АЛУ включают следующие функциональные узлы:
¨ сумматор (для выполнения суммирования и других действий над кодами операндов);
¨ регистры (для хранения кодов операндов на время выполнения действия над ними);
¨ сдвигатели (для сдвига кода на один или несколько разрядов вправо или влево);
¨ преобразователи (для преобразования прямого кода числа в обратный или дополнительный);
¨ комбинационные схемы (для реализации логических операций, мультиплексирования данных, управляемой передачи информации, формирования признаков результата).
Регистры и в некоторых случаях сумматоры имеют цепи управления приемом, выдачей и сбросом кодов операндов. Логические операции, операции сдвига и преобразования кодов могут выполняться не только специальными устройствами, но и с помощью дополнительных связей регистров и сумматора.
Структура алу
Обобщенная структурная схема АЛУ (рис. 7.1) включает:
- блок регистров для приема и размещения операндов и результатов;
- операционный блок, в котором осуществляется преобразование операндов в соответствии с реализуемыми алгоритмами;
- схемы контроля, обеспечивающие непрерывный оперативный контроль и диагностирование ошибок;
- блок управления (БУ), в котором после приема кода операции (КОП) из центрального устройства управления формируются управляющие сигналы (УС), координирующие взаимодействие всех узлов АЛУ между собой и с другими блоками процессора.
Блок регистров связан с РОН центрального процессора и кэш-памятью данных.
Иногда АЛУ не содержит своего БР, в этом случае операционный блок непосредственно работает с регистрами общего назначения процессора. Для оперативного управления выполнением операции в ОБ на разных этапах анализируется преобразуемая информация и формируются сигналы признаков (флаги), которые используются в БУ для выработки и посылки в процессор сигнала признака результата (ПРез).
Для оценки АЛУ используются следующие характеристики: множество выполняемых операций, разрядность, время выполнения операций, надежностные и энергетические характеристики.
Рис. 7.1. Обобщенная структурная схема АЛУ.
Сумматоры
Сумматоры АЛУ делятся:
¨ по типу использования для суммирования базовых элементов (комбинационные и накапливающие);
¨ по способу осуществления операции суммирования (последовательные и параллельные).
Сумматоры последовательного действия выполняются, как правило, на комбинационных элементах; на сегодняшний день устройства такого типа почти не применяются. В АЛУ современных ЭВМ средней и высокой производительности применяются сумматоры параллельного действия, выполняемые на накапливающих или комбинационных элементах.
Рис. 7.2. Сумматор параллельного действия (на накапливающих элементах).
В качестве накапливающих элементов могут служить обычные T-триггеры. Перед суммированием триггеры сумматора устанавливаются в нулевое состояние сигналом сброс. Затем на счетные входы триггеров подается первое слагаемое и запоминается. В следующем такте на входы триггеров подается второе слагаемое.
Триггеры тех разрядов, в которых второе слагаемое равно 1, меняют свое состояние на противоположное. В тех разрядах, в которых триггеры перешли из единичного состояния в нулевое, возникают сигналы переносов, последовательно передаваемые в старшие разряды сумматора. Арифметические операции сумматора выполняются с учетом знаков операндов.
Классификация АЛУ
По способу представления чисел:
¨ для чисел с фиксированной точкой;
¨ для чисел с плавающей точкой;
¨ для десятичных чисел.
По способу действия над операндами:
¨ последовательные;
В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.
¨ параллельные.
В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. Такие АЛУ, как правило, используют конвейерный метод обработки, при котором совмещаются во времени фазы выполнения операции для различных разрядов операндов.
По выполняемым функциям АЛУ подразделяются на:
¨ многофункциональные;
В многофункциональных АЛУ все возможные операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы.
¨ функциональные (блочные).
В блочном АЛУ операции над числами с фиксированной и плавающей точкой, десятичными и алфавитно-цифровыми полями, операции умножения выполняются в отдельных блоках. Такой подход позволяет увеличить скорость работы АЛУ за счет использования быстродействующих блоков, а также за счет организации параллельной работы этих блоков. Однако в этом случае значительно увеличиваются затраты на оборудование.
По структурной организации АЛУ подразделяются на устройства, имеющие:
¨ регистровую структуру с непосредственными связями и закрепленной логикой;
¨ магистральную структуру с сосредоточенной памятью и логикой.
В АЛУ с регистровой структурой за каждым из регистров закреплена своя логическая схема, используемая для выполнения микрооперации (см. рис. 7.3).
Пример:
С регистром Рг1 непосредственно связан преобразователь кода ПК1. С регистром Рг3 объединен КСМ по схеме накапливания сумматора, а с КСМ, в свою очередь, связаны ПК2 и комбинационная схема КС для мультиплексирования входных данных. На регистре Рг3 выполняются микрооперации сдвига вправо или влево и сброс. Регистр Рг4 выполняет микрооперации сдвига и непосредственно связан с ПК3. Таким образом, в АЛУ с такой структурой функции хранения и преобразования информации выполняются одним и тем же операционным блоком.
Рис. 7.3. Регистровая структура с закрепленной логикой
В АЛУ с магистральной структурой регистры выделены в отдельный блок, а схемы для преобразования информации выделены также в отдельный операционный блок (ОБ), который связан с блоками регистров по входам и выходам (см. рис. 7.4). Блок регистров (БР) осуществляет функции приема, хранения и выдачи операндов и результатов, а ОБ выполняет весь набор микроопераций над словами, хранимыми в блоке регистров. В АЛУ с такой структурой блок регистров может быть реализован или как СОЗУ, или как совокупность отдельных регистров с индивидуальными схемами управления. Структура же ОБ имеет следующие модификации:
¨ последовательное соединение операционных узлов;
¨ параллельное соединение операционных узлов.
Пример АЛУ с магистральной структурой с последовательным соединением узлов ОБ.
В этом АЛУ преобразователь кода ПК, комбинационный сумматор КСМ и сдвигатель СДВ соединены последовательно, причем ПК и КСМ по входам связаны с выходными шинами блока регистров, а выход СДВ – с входной шиной блока регистров. Такая организация операционного блока дает возможность выполнять с высокой скоростью последовательности микроопераций, обеспечивающие выполнение одного слова.
Рис. 7.4. Магистральная структура с последовательным соединением операционных узлов
В случае же параллельного соединения операционных блоков АЛУ все операционные блоки: СМ, СДВ, КС, ПК параллельно соединяются с входными и выходными шинами блока регистров, что позволяет выполнять несколько микроопераций параллельно. Выглядит это так, как показано на рис. 7.5.
Рис. 7.5. Магистральная структура с параллельным соединением операционных узлов