Накопичувальний регістр
Накопичувальний регістр[1], Акумуля́тор (англ. accumulator) — регістр, в якому зберігаються безпосередні результати виконання арифметичних і логічних команд. Альтернативними методами для збереження результату є використання регістрів загального призначення або оперативної пам'яті.
Мікропроцесор з акумуляторною архітектурою або 1-операндна машина відрізняється тим, що навіть якщо в ньому кілька регістрів, результат більшості операцій зберігається в спеціальному реєстрі, який називається «акумулятор». Це спрощує як реалізацію архітектури, так і скорочує розміри машинного коду. Історично практично всі перші мікропроцесори були акумуляторними машинами, і зараз багато популярних однокристальних мікроконтролерів (Motorola 68HC12[en], PIC, 8051) — це акумуляторні машини.
Сучасні CPU звичайно є 2-х і 3-х операндними машинами — у яких додаткові операнди вказують між якими з регістрів загального призначення здійснюються обчислення. Проте деякі регістри все одно історично іменуються акумуляторами. В архітектурах x86 акумуляторами різного розміру є регістри AH, AL, AX, EAX, RAX[2].
Процесор може мати кілька акумуляторів: у 8051 є два, основний A і вторинний B, причому другий використовується при операціях множення і ділення.
Принцип роботи
ред.Математичні операції часто відбуваються поетапно, використовуючи результати однієї операції як вхідні дані для наступної. Наприклад, ручний розрахунок щотижневого фонду оплати праці працівника може виглядати приблизно так:
- Ввести кількість відпрацьованих годин за табелем часу працівника
- Ввести за таблицею ставку заробітної плати для цього працівника
- Помножити години на ставку заробітної плати, щоб отримати їх основну щотижневу оплату
- Помножити їх основну заробітну плату на фіксований відсоток для врахування податку на прибуток
- Відняти це число від основної заробітної плати, щоб отримати щотижневу заробітну плату після оподаткування
- Помножити цей результат на інший фіксований відсоток, щоб врахувати пенсійні плани
- Відняти це число від основної заробітної плати, щоб отримати їхню щотижневу заробітну плату після всіх відрахувань
Комп'ютерна програма, що виконує одне і те ж завдання, буде дотримуватися тієї ж базової послідовності операцій, хоча знайдені значення будуть зберігатися в пам'яті комп'ютера. У ранніх комп'ютерах дані, швидше за все, зберігалися на перфокарті, а ставка оплати в іншій формі пам'яті, можливо на магнітному барабані. Після завершення множення результат потрібно кудись помістити. На «барабанній машині» це швидше за все, повернеться до барабана. І тоді вже наступна операція повинна зчитати це значення назад, що вносить ще одну значну затримку.
Акумулятори різко покращують продуктивність в таких системах, де результати однієї операції можуть передаватися наступній. У наведеному вище прикладі основна щотижнева заробітна плата обчислюється та розміщується в накопичувачі, який потім може негайно використовуватись для розрахунку податку на прибуток.
Зноски
ред.- ↑ Є. Мейнарович; М. Кратко (2010). Англійсько-український словник з математики та інформатики. e2u.org.ua. Процитовано 30 грудня 2023.
- ↑ EAX x86 Register: Meaning and History. keleshev.com. Процитовано 30 грудня 2023.