Акумулятор (процесор)
Акумуля́тор (регістр процесора) — регістр, в якому зберігаються безпосередні результати виконання арифметичних і логічних команд. Альтернативними методами для збереження результату є використання регістрів загального призначення або оперативної пам'яті.
Мікропроцесор з акумуляторною архітектурою або 1-операндна машина відрізняється тим, що навіть якщо в ньому кілька регістрів, результат більшості операцій зберігається в спеціальному реєстрі, який називається «акумулятор». Це спрощує як реалізацію архітектури, так і скорочує розміри машинного коду. Історично практично всі перші мікропроцесори були акумуляторними машинами, і зараз багато популярних однокристальних мікроконтролери (Motorola 68HC12, PIC, 8051) — це акумуляторні машини.
Сучасні CPU звичайно є 2-х і 3-х операндними машинами — у яких додаткові операнди вказують між якими з регістрів загального призначення здійснюються обчислення.
Процесор може мати кілька акумуляторів: у 8051 є два, основний A і вторинний B, причому другий використовується при операціях множення і ділення.
Концепція праці
Математичні операції часто відбуваються поетапно, використовуючи результати однієї операції як вхідні дані для наступної. Наприклад, ручний розрахунок щотижневого фонду оплати праці працівника може виглядати приблизно так:
- Ввести кількість відпрацьованих годин за табелем часу працівника
- Ввести за таблицею ставку заробітної плати для цього працівника
- Помножити години на ставку заробітної плати, щоб отримати їх основну щотижневу оплату
- Помножити їх основну заробітну плату на фіксований відсоток для врахування податку на прибуток
- Відняти це число від основної заробітної плати, щоб отримати щотижневу заробітну плату після оподаткування
- Помножити цей результат на інший фіксований відсоток, щоб врахувати пенсійні плани
- Відняти це число від основної заробітної плати, щоб отримати їхню щотижневу заробітну плату після всіх відрахувань
Комп'ютерна програма, що виконує одне і те ж завдання, буде дотримуватися тієї ж базової послідовності операцій, хоча знайдені значення будуть зберігатися в пам'яті комп'ютера. У ранніх комп'ютерах дані, швидше за все, зберігалися на перфокарті, а ставка оплати в іншій формі пам'яті, можливо на магнітному барабані. Після завершення множення результат потрібно кудись помістити. На "барабанній машині" це швидше за все, повернеться до барабана. І тоді вже наступна операція повинна зчитати це значення назад, що вносить ще одну значну затримку.
Акумулятори різко покращують продуктивність в таких системах, де результати однієї операції можуть передаватися наступній. У наведеному вище прикладі основна щотижнева заробітна плата обчислюється та розміщується в накопичувачі, який потім може негайно використовуватись для розрахунку податку на прибуток.