واحد محاسبه و منطق

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
فارسیрусский

واحد محاسبه و منطق (Arithmetic & Logic Unit) به اختصار (ALU)، مداری دیجیتالی است که عملیات حساب و منطق را انجام می‌دهد. یک قطعه اساسی از واحد پردازش مرکزی در کامپیوتر است. و حتی ساده‌ترین میکروپردازنده‌ها نیز دارای یک واحد محاسبه و منطق برای کارهایی از قبیل نگهداری زمان هستند. پردازنده‌های موجود درپردازشگر(CPU)های مدرن و و پردازنده‌های گرافیکی(GPU) داری واحد محاسبه و منطق قدرتمند ودر عین حال پیچیده‌ای هستند. ممکن است هر قطعه دارای بیش از یک واحد محاسبه و منطق باشد. جان فون نویمن که یک ریاضی دان بود مفهوم ALU را در سال 1945، هنگامی که در حال نوشتن گزارش برای کامپیوتر جدید خود به نام EDVAC بود، مطرح کرد.

منابع[ویرایش]

Комбинационная логическая схема 4-битного АЛУ, реализованная в 24-х выводной микросхеме ТТЛ, модель 74181, впервые разработанная и ранее изготавливаемая фирмой Texas Instruments. Выполняет сложение, вычитание, все элементарные логические функции и битовые сдвиги над двумя 4-х битовыми операндами. Не содержит в своем составе регистров.

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

История

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

Организация и принципы действия

Обобщённая блок-схема арифметико-логического устройства (АЛУ). Стрелками указаны входные и выходные слова. Флаги — признаки (например, результата сравнения операндов) выполнения предыдущей операции (вход) и результата выполнения текущей операции (выход). В одноместных операциях таких, например, как инверсия битов слова или битовый сдвиг второй операнд (B) не участвует в операции. Слово команды указывает необходимую операцию.
  • Одноразрядное двоичное бинарное (двухоперандное) АЛУ с бинарным (двухразрядным) выходом может выполнять до двоичных бинарных (двухоперандных) функций (операций) с бинарным (двухразрядным) выходом.

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

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

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

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

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

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

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

Пример работы АЛУ на операции сложения

Функциональная схема АЛУ

Функционально АЛУ состоит из двух регистров (Регистр1, Регистр 2), схемы управления и сумматора[1]. Арифметическая операция выполняется по тактам:

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

Пример работы АЛУ на операции вычитания

  • Значения операнда 1, участвующего в арифметической операции по кодовой шине данных поступает в Регистр 1
  • Значения операнда 2, участвующего в арифметической операции по кодовой шине данных поступает в Регистр 2
  • По кодовой шине инструкций, поступает инструкция на выполнение операции вычитания в схему управления
  • Схема управления преобразовывает положительное число в отрицательное (в формате дополнительного кода до двух)
  • Результат преобразования операнда поступает в сумматор
  • Сумматор складывает два числа
  • Результат сложения поступает в Регистр 1
  • Результат операции АЛУ поступает в результирующий блок.

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

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

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

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

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

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

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

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

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

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

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

См. также

Примечания

  1. Н.В. Макаровой. Информатика: Учебник. — М.: Финансы и статистика, 2006. — 768 с. ISBN-978-5-279-02202-1

Литература

  • Каган Б. Электронные вычислительные машины и системы. - 3-е изд., перераб. и доп. — Энергоатомиздат, 1991. — ISBN 5-283-01531-9.
  • Угрюмов Е. П. Цифровая схемотехника. Учеб. пособие для вузов. Изд.2. — БХВ-Петербург, 2004.
  • Самофалов К. Г., Романкевич А. М., Валуйский В. Н., Каневский Ю. С., Пиневич М. М. Прикладная теория цифровых автоматов. — К: Вища школа, 1987. — С. 375.
  • Ершов А. П., Монахов В. М., Бешенков С. А. и др. Ч.1 // Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений. В 2-х ч. — М.: Просвещение, 1985. — С. 96.
  • Ершов А. П., Монахов В. М., Кузнецов А. А. и др. Ч.2 // Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений. В 2-х ч. — М.: Просвещение, 1986. — С. 143.

Ссылки