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

Содержимое страницы заменено на «thumb|400px * [[Категория:Технологии процессоров]…»
( Содержимое страницы заменено на «thumb|400px * [[Категория:Технологии процессоров]…»)
[[Файл:74181aluschematic.png|thumb|400px]]
[[Файл:74181aluschematic.png|thumb|400px|Комбинационная логическая схема 4-битного АЛУ, реализованная в 24-х выводной [[Микросхема|микросхеме]] [[ТТЛ]], модель 74181, впервые разработанная и ранее изготавливаемая фирмой [[Texas Instruments]]. Выполняет сложение, вычитание, все элементарные [[логические функции]] и битовые сдвиги над двумя 4-х битовыми операндами. Не содержит в своем составе регистров.]]
* [[Категория:Технологии процессоров]]
'''Арифме́тико-логи́ческое устро́йство''' (АЛУ) ({{lang-en|arithmetic and logic unit, ALU}}) — блок [[центральный процессор|процессора]], который под управлением '''''устройства управления''''' (УУ) служит для выполнения арифметических и логических преобразований (начиная от [[Элементарная операция|элементарных]]) над данными, называемыми в этом случае [[операнд]]ами. Разрядность операндов обычно называют размером или длиной [[Машинное слово|машинного слова]].
 
== История ==
Разработчик компьютера [[ЭНИАК|ENIAC]], [[Нейман, Джон фон|Джон фон Нейман]], был первым создателем АЛУ. В [[1945 год]]у он опубликовал первые научные работы по новому [[компьютер]]у, названному {{lang-en|Electronic Discrete Variable Automatic Computer}} ([[EDVAC]]). Годом позже он работал со своими коллегами над разработкой [[IAS-машина|компьютера]] в [[Институт перспективных исследований|Принстонском институте перспективных исследований]] (IAS). [[Архитектура фон Неймана|Архитектура этого компьютера]] позже стала прототипом архитектур большинства последующих компьютеров. В своих работах фон Нейман указывал устройства, которые, как он считал, должны присутствовать в компьютерах. Среди этих устройств присутствовало и АЛУ. Фон Нейман отмечал, что АЛУ необходимо для компьютера, поскольку оно гарантирует, что компьютер будет способен выполнять базовые математические операции, включая сложение, вычитание, умножение и деление.
 
== Организация и принципы действия ==
[[Файл:ALU block-ru.svg|thumb|400px|Обобщённая блок-схема арифметико-логического устройства (АЛУ). Стрелками указаны входные и выходные слова. Флаги — признаки (например, результата сравнения операндов) выполнения предыдущей операции (вход) и результата выполнения текущей операции (выход). В одноместных операциях таких, например, как инверсия битов слова или битовый сдвиг второй операнд (B) не участвует в операции. Слово команды указывает необходимую операцию.]]
* Одноразрядное двоичное бинарное (двухоперандное) АЛУ с бинарным (двухразрядным) выходом может выполнять до <math>2^{(2^2)*2}=2^8=256</math> двоичных бинарных (двухоперандных) функций (операций) с бинарным (двухразрядным) выходом.
 
Арифметико-логическое устройство в зависимости от выполнения функций можно разделить на две части:
 
# микропрограммное устройство (устройство управления), задающее последовательность микрокоманд (команд);
# операционное устройство, в котором реализуется заданная последовательность микрокоманд (команд).
 
<!-- '''Структура АЛУ и его связь с другими блоками компьютера показаны на рисунке 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 вспомогательных регистров, которые по желанию программиста могут быть аккумуляторами, индексными регистрами или использоваться для запоминания промежуточных результатов.
 
Часть операционных регистров могут быть адресованы в команде для выполнения операций с их содержимым, и их называют программно-доступными. К таким регистрам относятся: сумматор, индексные регистры и некоторые вспомогательные регистры. Остальные регистры нельзя адресовать в программе, то есть они являются программно-недоступными.
 
Операционные устройства можно классифицировать по виду обрабатываемой информации, по способу её обработки и по логической структуре.
 
Такая сложная логическая структура АЛУ может характеризоваться количеством отличающихся друг от друга микроопераций, которые необходимы для выполнения всего комплекса задач, поставленных перед арифметико-логическим устройством. На входе каждого регистра собраны соответствующие логические схемы, обеспечивающие такие связи между регистрами, что позволяет реализовать заданные микрооперации. Выполнение операций над словами сводится к выполнению определённых микроопераций, которые сводятся, в свою очередь, … управляют передачей слов в АЛУ и действиями по преобразованию слов. Порядок выполнения микрокоманд определяется алгоритмом выполнения операций. То есть связи между регистрами АЛУ и их функциями зависят в основном от принятой методики выполнения логических операций, в том числе арифметических или специальной арифметики.
 
== Операции в АЛУ ==
Все выполняемые в АЛУ операции являются логическими операциями (функциями), которые можно разделить на следующие группы:
 
* операции двоичной арифметики для чисел с фиксированной точкой;
* операции двоичной (или шестнадцатеричной) арифметики для чисел с плавающей точкой;
* операции десятичной арифметики;
* операции индексной арифметики (при модификации адресов команд);
* операции специальной арифметики;
* операции над логическими кодами (логические операции);
* операции над алфавитно-цифровыми полями.
 
Современные [[ЭВМ]] общего назначения обычно реализуют операции всех приведённых выше групп, а малые и [[Микрокомпьютер|микроЭВМ]], [[микропроцессор]]ы и специализированные [[ЭВМ]] часто не имеют аппаратуры арифметики чисел с плавающей точкой, десятичной арифметики и операций над алфавитно-цифровыми полями. В этом случае эти операции выполняются специальными подпрограммами.
 
К арифметическим операциям относятся [[сложение]], [[вычитание]], вычитание модулей («короткие операции») и [[умножение]] и [[деление (математика)|деление]] («длинные операции»). Группу логических операций составляют операции [[дизъюнкция]] (логическое ИЛИ) и [[конъюнкция]] (логическое И) над многоразрядными двоичными словами, сравнение кодов на равенство. Специальные арифметические операции включают в себя нормализацию, [[арифметический сдвиг]] (сдвигаются только цифровые разряды, знаковый разряд остаётся на месте), [[логический сдвиг]] (знаковый разряд сдвигается вместе с цифровыми разрядами). Обширна группа операций редактирования алфавитно-цифровой информации.
Каждая операция в АЛУ является [[Булева функция|логической функцией]] или последовательностью логических функций описываемых [[двоичная логика|двоичной логикой]] для двоичных ЭВМ, [[троичная логика|троичной логикой]] для [[троичная ЭВМ|троичных ЭВМ]], четверичной логикой для четверичных ЭВМ, десятичной логикой для десятичных ЭВМ и т. д.
 
== Классификация АЛУ ==
По способу действия над операндами АЛУ делятся на последовательные и параллельные. В последовательных АЛУ операнды представляются в последовательном коде, а операции производятся последовательно во времени над их отдельными разрядами. В параллельных АЛУ операнды представляются параллельным кодом и операции совершаются параллельно во времени над всеми разрядами операндов.
 
По способу представления чисел различают АЛУ:
 
# для чисел с фиксированной точкой;
# для чисел с плавающей точкой;
# для [[Десятичная система счисления|десятичных чисел]].
 
По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные. В блочном АЛУ операции над числами с фиксированной и плавающей точкой, десятичными числами и алфавитно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции, но значительно возрастают затраты оборудования. В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы.
 
По своим функциям АЛУ является операционным блоком, выполняющим микрооперации, обеспечивающие приём из других устройств (например, памяти) операндов, их преобразование и выдачу результатов преобразования в другие устройства. Арифметико-логическое устройство управляется управляющим блоком, генерирующим управляющие сигналы, инициирующие выполнение в АЛУ определённых микроопераций. Генерируемая управляющим блоком последовательность сигналов определяется кодом операции команды и оповещающими сигналами.
 
== См. также ==
* [[Математический сопроцессор]]
 
== Примечания ==
{{примечания}}
 
== Литература ==
* {{книга
| автор = Каган Б.
| часть =
| заглавие = Электронные вычислительные машины и системы. - 3-е изд., перераб. и доп
| оригинал =
| ссылка =
| место =
| издательство = Энергоатомиздат
| год = 1991
| страницы =
| isbn = 5-283-01531-9}}
* {{книга
| автор = Угрюмов Е. П.
| часть =
| заглавие = Цифровая схемотехника. Учеб. пособие для вузов. Изд.2
| оригинал =
| ссылка =
| место =
| издательство = БХВ-Петербург
| год = 2004
| страницы =
| isbn = }}
* {{книга
| автор = Самофалов К. Г., Романкевич А. М., Валуйский В. Н., Каневский Ю. С., Пиневич М. М.
| часть =
| заглавие = Прикладная теория цифровых автоматов
| оригинал =
| ссылка =
| место = К
| издательство = Вища школа
| год = 1987
| страницы = 375
| isbn = }}
* {{книга
| автор = Ершов А. П., Монахов В. М., Бешенков С. А. и др.
| часть = Ч.1
| заглавие = Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений. В 2-х ч
| оригинал =
| ссылка =
| место = М.
| издательство = Просвещение
| год = 1985
| страницы = 96
| isbn = }}
* {{книга
| автор = Ершов А. П., Монахов В. М., Кузнецов А. А. и др.
| часть = Ч.2
| заглавие = Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. заведений. В 2-х ч
| оригинал =
| ссылка =
| место = М.
| издательство = Просвещение
| год = 1986
| страницы = 143
| isbn = }}
 
== Ссылки ==
* {{cite web
| last =
| first =
| authorlink = Дулепова Ю. А.,Ершова Н. Ю., Приходченко Р. В.
| coautors =
| datepublished =
| url = http://dfe3300.karelia.ru/koi/posob/log_basis/alu.html
| title = IX Арифметико-логическое устройство
| format =
| work = Логические основы ЭВМ. Пособие к курсам "Радиоэлектроника" и "Микропроцессорные средства"
| publisher = Республика Карелия, г. Петрозаводск, ПетрГУ. [http://dfe.karelia.ru/index.php Кафедра информационно-измерительных систем и физической электроники]
| accessdate = 2010-09-18
| lang = ru
| deadlink = 404
| archiveurl = http://web.archive.org/20040603145524/dfe3300.karelia.ru/koi/posob/log_basis/alu.html
| archivedate= 2004-06-03
}}
* [http://testlabs.kz/processors/25-golaya-proizvoditelnost-issleduem-effektivnost-alu-i-fpu.html Исследование эффективности ALU и FPU процессоров разных поколений] от TestLabs.kz
 
{{Чистить}}
{{rq|refless}}
 
{{Технологии CPU}}
[[Категория:Технологии процессоров]]
[[Категория:Обработка команд]]
Анонимный участник