понедельник, 7 декабря 2009 г.

ALU: Арифметическо-логическое устройство

Схема 4-битного АЛУ 74181
Схема одноразрядного бинарного (двухоперандного) троичного трёхбитного одноединичного полуАЛУ
Схема одноразрядного трёхбитного бинарного (двухоперандного) АЛУ в троичном трёхбитном одноединичном коде

Арифмети́ческо-логи́ческое устро́йство (АЛУ) (англ. arithmetic and logic unit, ALU) — блок процессора, который служит для выполнения логических, в том числе и арифметических, преобразований над словами, называемыми в этом случае операндами.

Одноразрядное двоичное бинарное (двухоперандное) АЛУ с бинарным (двухразрядным) выходом может выполнять до 2^{(2^2)*2}=2^8=256 двоичных бинарных (двухоперандных) функций (операций) с бинарным (двухразрядным) выходом.
Одноразрядное троичное бинарное (двухоперандное) АЛУ с унарным (одноразрядным) выходом (полуАЛУ) может выполнять до 3^{(3^2)}=3^9=19 683 троичных бинарных (двухоперандных) функций (операций) с унарным (одноразрядным) выходом.[1]
Одноразрядное троичное бинарное (двухоперандное) АЛУ с бинарным (двухразрядным) выходом может выполнять до 3^{(3^2)*2}=3^{18}=387 420 489 троичных бинарных (двухоперандных) функций (операций) с бинарным (двухразрядным) выходом.[2]

Арифметическо-логическое устройство в зависимости от выполнения функций можно разделить на две части:

1) микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);
2) операционное устройство (АЛУ), в котором реализуется заданная последовательность микрокоманд (команд).

Структура АЛУ и его связь с другими блоками компьютера показаны на рисунке 2.

В состав арифметическо-логического устройства включается регистры Рг1 - Рг7, которые служат для обработки информации, поступающей из оперативной или пассивной памяти N1, N2, ...NS и логические схемы, которые используются для обработки слов по микрокомандам, поступающим из устройства управления. Различают два вида микрокоманд: внешние - такие микрокоманды, которые поступают в АЛУ от внешних источников и вызывают в нём преобразование информации (на рисунке 2 это микрокоманды А1,А2,...,Аn) и внутренние - те, которые генерируются в АЛУ и оказывают влияние на микропрограммное устройство, изменяя таким образом нормальный порядок следования команд.

р1, p2,..., рm на рисунке 2 - это и есть микрокоманды. А результаты вычислений из АЛУ передаются в ОЗУ по кодовым шинам записи у1, у2, ..., уs.

Функции регистров, входящих в арифметическо-логическое устройство:

- Рг1 - сумматор (или сумматоры) - главный регистр АЛУ, в котором образуется результат вычислений;
- Рг2,Рг3 - регистры операндов (слагаемого/сомножителя/делителя/делимого и др.) в зависимости от выполняемой операции;
- Рг4 - регистр адреса (или адресные регистры), предназначенные для запоминания (бывает что формирования) адреса операндов результата;
- Рг6 - k индексных регистров, содержимое которых используется для формирования адресов;
- Рг7 - l вспомогательных регистров, которые по желанию программиста могут быть аккумуляторами, индексными регистрами или использоваться для запоминания промежуточных результатов.

Часть операционных регистров могут быть адресованы в команде для выполнения операций с их содержимым и их называют программно-доступными. К таким регистрам относятся: сумматор, индексные регистры и некоторые вспомогательные регистры. Остальные регистры нельзя адресовать в программе, т.е. они являются программно-недоступными.

Операционные устройства можно классифицировать по виду обрабатываемой информации, по способу её обработки и по логической структуре. Более подробная классификация указана на рис.3.


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

[1] [2]

Содержание


История

Разработчик компьютера ENIAC, Джон фон Нейман, был первым создателем АЛУ. В 1945 году он опубликовал первые научные работы по новому компьютеру, названному EDVAC (Electronic Discrete Variable Computer). Годом позже он работал со своими коллегами над разработкой компьютера для Принстонского института новейших исследований (IAS). Архитектура этого компьютера позже стала прототипом архитектур большинства последующих компьютеров. В своих работах фон Нейман указывал устройства, которые, как он считал, должны присутствовать в компьютерах. Среди этих устройств присутствовало и АЛУ. Фон Нейман отмечал, что АЛУ необходимо для компьютера, поскольку оно гарантирует, что компьютер будет способен выполнять базовые математические операции включая сложение, вычитание, умножение и деление.

Операции в АЛУ

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

  • операции двоичной арифметики для чисел с фиксированной точкой;
  • операции двоичной (или шестнадцатеричной) арифметики для чисел с плавающей точкой;
  • операции десятичной арифметики;
  • операции индексной арифметики (при модификации адресов команд);
  • операции специальной арифметики;
  • операции над логическими кодами (логические операции);
  • операции над алфавитно-цифровыми полями.

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

Классификация АЛУ:

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

По способу представления чисел различают АЛУ:

  1. для чисел с фиксированной точкой;
  2. для чисел с плавающей точкой;
  3. для десятичных чисел.

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

По своим функциям АЛУ является операционным блоком, выполняющим микрооперации, обеспечивающие приём из других устройств (например, памяти) операндов, их преобразование и выдачу результатов преобразования в другие устройства. Арифметическо-логическое устройство управляется управляющим блоком, генерирующим управляющие сигналы, инициирующие выполнение в АЛУ определённых микроопераций. Генерируемая управляющим блоком последовательность сигналов определяется кодом операции команды и оповещающими сигналами.

Литература

  • Борис Каган (1991). Электронные вычислительные машины и системы. - 3-е изд., перераб. и доп.. Энергоатомиздат. ISBN 5-283-01531-9.


См. также

Ссылки

  1. http://trinary.ru/discussions/109 Троичное одноразрядное трёхбитное бинарное полуАЛУ (арифметикологическое устройство)
  2. http://trinary.ru/discussions/110 Троичное одноразрядное трёхбитное бинарное АЛУ

Комментариев нет: