Арифметико-логічний пристрій

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Арифметико-логічний пристрій (АЛП) (англ. Arithmetic Logic Unit, ALU) — блок процесора, що служить для виконання арифметичних та логічних перетворень над даними, що іменуються операндами. Цей пристрій є фундаментальною частиною будь-якого обчислювача, навіть найпростіші мікроконтролери мають його в складі свого ядра. Центральний процесор та відеопроцесор можуть мати кілька АЛП, що відрізняються своїм функціональним призначенням або типом оброблюваних даних.

Історія[ред.ред. код]

Символ АЛП, де A та B — операнди, R — результат, F — код операції та D — статусні біти

Концепція АЛП була запропонована математиком Джоном фон Нейманом в 1945 році. В той час він працював над новим комп'ютером — EDVAC (англ. Electronic Discrete Variable Computer). В його публікації була досить докладно розглянута структура обчислювальної системи, в якій знайшлося місце для арифметичного пристрою[1]. Фон Нейман зазначав, що наявність цього компонента є гарантією того, що комп'ютер здатний виконувати базові математичні операції, серед яких додавання, віднімання, множення та ділення.

Дослідження АЛП залишається важливою частиною комп'ютерної науки, що підпадають під арифметичні і логічні структури в системі класифікації ACM.

Класифікація[ред.ред. код]

Умовне графічне позначення мікросхеми К155ИП3

Арифметико-логічні пристрої можуть класифікуватися за багатьма ознаками, наприклад розглянемо наступну класифікацію:[2]

За структурою[ред.ред. код]

  • з розподіленою логікою (з закріпленими мікроопераціями);
  • з зосередженою логікою (з загальними мікроопераціями).

В першому випадку, апаратура для реалізації обчислень закріплена за регістрами та розділена між ними, тобто кожен з них використовує власну логіку для виконання операцій. У пристроях другого типу вся апаратура об'єднана в АЛП, а всі регістри — в регістровому файлі.

АЛП другого типу також можна класифікувати.

За типом запису даних[ред.ред. код]

  • послідовні;
  • паралельні;
  • послідовно-паралельні.

В основу цієї класифікації покладено особливості роботи цифрового регістра.

За архітектурними особливостями[ред.ред. код]

  • з двоспрямованою шиною та одноадресним регістровим файлом;
  • з односпрямованою шиною та одноадресним регістровим файлом;
  • з односпрямованою шиною та двоадресним регістровим файлом.

Використання двоадресного блоку регістрів чи шини дозволяє збільшити швидкодію, адже запис та читання даних може проводитися одночасно.

За формою подання даних[ред.ред. код]

В деяких ЕОМ передбачається спеціальний режим цілих чисел, за якого кома фіксується за останнім розрядом.

За основою системи числення операндів[ред.ред. код]

Окрім наведених, можливі й варіанти АЛП, що працюють в системах числення з основою 2k, де k — додатне ціле число.

Залежно від часу виконання операцій[ред.ред. код]

  • синхронного типу;
  • асинхронного типу;
  • комбінованого типу.

На виконання всіх обчислень в синхронних АЛП відводиться один і той самий час. Проте в асинхронних, витрачається скільки тактів, скільки потрібно, а наступна операція почне виконуватись лише після сигналу про завершення поточної. Комбіновані були створення з метою поєднати простоту та швидкодію і поділяють всі операції на дві групи — одно- та багатотактні. Операції першої групи виконуються за синхронним принципом, а другої — асинхронним.

Залежно від реалізації мікроалгоритму[ред.ред. код]

  • зі схемним керуванням;
  • з мікропрограмним керуванням.

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

Структура[ред.ред. код]

Кожен АЛП може бути представлений як композиція пристрою управління, що керує та операційним пристроєм, що безпосередньо виконує операції. Інколи окремо виділяють блок контролю, що слідкує за правильністю виконання операцій[3]. Якщо пристрій має зосереджену логіку, то до цих компонент додаються ще й регістри.

Пристрій управління[ред.ред. код]

Якщо АЛП має схемне керування, то його пристрій управління реалізується у вигляді цифрового автомату, що створює відповідні управляючі сигнали залежно від операції. Інакше, пристрій управління реалізується у вигляді комбінаційної схеми разом з постійним запам'ятовуючим пристроєм, що зберігає мікроалгоритм виконання кожної операції. В сучасних АЛП можуть використовуватися обидва підходи[3].

Операційний пристрій[ред.ред. код]

Операційний пристрій, зазвичай, складається з суматора та логічної схеми, що формує признаки результатів операцій, наприклад значення вихідного переносу, нульового результату та інші, що потім об'єднуються в регістрі стану[3].

Регістри[ред.ред. код]

Як вже зазначалось, всередині АЛП можуть знаходитися регістри для операндів, результату і стану[3]. Інколи до них додають спеціалізовані індексні та регістри для збереження проміжних обчислень. Деякі з них, наприклад акумулятор, можуть бути доступними програмісту.

Набір операцій[ред.ред. код]

Однією з найважливіших характеристик будь-якого АЛП є набір операцій, що може виконуватися. Він має бути функціонально повним для того, щоб запрограмувати алгоритм, проте з метою підвищення швидкодії та спрощення програмування, вказаний набір має значну надлишковість[2]. Кількість операцій може значно коливатися, наприклад від кількох десятків до кількох сотень, проте зазвичай це число є степінню двійки.

До найбільш поширених відносять наступні операції[3]:

Система команд типового представника АЛП — мікросхеми 74181[4]:

Входи Функція
S3S2S1S0 M = 0 (арифметична) M = 1 (логічна)
0000 F = A - 1 + C_0 F = \bar{A}
0001 F = A \land B - 1 + C_0 F = \bar{A} \lor \bar{B}
0010 F = A \land \bar{B} - 1 + C_0 F = \bar{A} \lor B
0011 F = 1111 + C_0 F = 1111
0100 F = A + (A \lor \bar{B}) + C_0 F = \bar{A} \land \bar{B}
0101 F = A \land B + (A \lor \bar{B}) + C_0 F = \bar{B}
0110 F = A - B - 1 + C_0 F = A \oplus \bar{B}
0111 F = A \lor \bar{B} + C_0 F = A \lor \bar{B}
1000 F = A + (A \lor B) + C_0 F = \bar{A} \land B
1001 F = A + B + C_0 F = A \oplus B
1010 F = A \land \bar{B} + (A \lor B) + C_0 F = B
1011 F = A \lor B + C_0 F = A \lor B
1100 F = A + A + C_0 F = 0000
1101 F = A \land B + A + C_0 F = A \land \bar{B}
1110 F = A \land \bar{B} + A + C_0 F = A \land B
1111 F = A + C_0 F = A
Структура мікросхеми 74181

Реалізація[ред.ред. код]

Розрядність пристрою сильно впливає на розрядність процесора, зазвичай вони збігаються. Проте через конструктивні особливості (кількість ніжок мікросхеми), АЛП, що випускаються в складі серій цифрових мікросхем, оперують чотирьохрозрядними даними. Для того, щоб подолати це обмеження, застосовують прискорений груповий перенос (англ. group-carry lookahead)[4]. Таким чином можна сконструювати пристрій будь-якої розрядності.

В таблиці нижче наведено основні серійні цифрові мікросхеми АЛП радянського та американського виробництва[5].

Радянська Американська Виробник Особливості
100ИП181, 500ИП181 MC10181 Motorola
561ИП3 MC14581 4 розряди
564ИП3 MC14581A
1500ИП156 MC100156
1500ИП181 MC100181
1526ИП3 MC14581
133ИП3 SN54181 Texas Instruments
134ИП3 SN54L181
155ИП3 SN74181
530ИП3 SN54S181
531ИП3 SN74S181
533ИП3 SN54LS181
555ИП3 SN74LS181
1530ИП14 SN74AS881
1533ИП3 SN74ALS181
531ИК2 SN74S381 з множенням
1804ВС1 Am2901 AMD секція
1804ВС2 Am2903 удосконалена секція
1838ВС1 Am29501 8 розрядів
581ИК1 CP1611 Western Digital 26 регістрів
1531ИП3 74F181 National Semiconductor 4 розряди
536ИК1
536ИК9
588ВС2 16 розрядів
1505ИП3
1815ИА1 спеціалізована
1824ВС21 спеціалізована на 16 розрядів
1832ИА1 для конвеєрної обробки сигналів

Примітки[ред.ред. код]

  1. Burks, A. W., Goldstine, H. H., von Neumann, J. Preliminary discussion of the logical design of an electronic computing instrument, 1945
  2. а б Жабін В. І., Жуков В. А., Клименко І. А., Стіренко С. Г. Арифметичні та управляючі пристрої цифрових ЕОМ: Навчальний посібник. — К.: ВЕК+, 208. — 176 с. — ISBN 966-7140-11-3
  3. а б в г д Бабич Н. П., Жуков И. А. Компьютерная схемотехника. Методы построения и проектирования: Учебное пособие. — К.: «МК-Пресс», 2004. — 576 с., илл. — ISBN 966-96415-2-7. (рос.)
  4. а б John F. Wakerly Digital Design: Principles and Practices. — 4th Edition, 2005. — ISBN 0-13-186389-4 (англ.)
  5. Збірник мікросхем в книзі формату Microsoft Excel (рос.)

Див. також[ред.ред. код]

Література[ред.ред. код]

  • Лехин С. Н. Схемотехника ЭВМ. — Спб.: БХВ-Петербург, 2010. — 672 с.: ил. — ISBN 978-5-9775-0353-2. (рос.)
  • Процюк Р. О., Корнейчук В. И., Кузьменко П. В., Тарасенко В. П. Компьютерная схемотехника (краткий курс). — К.: «Корнійчук», 2006. — 433 с. — ISBN 966-7599-38-8. (рос.)