Jump to content

Аккумулятор (вычислительный)

(Перенаправлено с аккумуляторной машины )
Механический калькулятор Walther WSR-16. Ряд цифровых колес в каретке (спереди) представляет собой аккумулятор.

В компьютера центральном процессоре (ЦП) аккумулятор представляет собой регистр промежуточные результаты арифметико-логического устройства , в котором хранятся .

Без регистра, такого как аккумулятор, было бы необходимо записывать результат каждого вычисления (сложение, умножение, сдвиг и т. д.) в кэш или основную память , возможно, только для того, чтобы его можно было снова прочитать для использования в следующей операции.

Доступ к памяти происходит медленнее, чем доступ к регистру, такому как аккумулятор, поскольку технология, используемая для большой основной памяти, медленнее (но дешевле), чем технология, используемая для регистра. Ранние электронные компьютерные системы часто делили на две группы: с аккумуляторами и без них.

Современные компьютерные системы часто имеют несколько регистров общего назначения, которые могут работать как аккумуляторы, и этот термин уже не так распространен, как раньше. Однако для упрощения конструкции в ряде процессоров специального назначения по-прежнему используется один аккумулятор.

Основная концепция [ править ]

Математические операции часто выполняются поэтапно, используя результаты одной операции в качестве входных данных для следующей. Например, расчет еженедельной заработной платы работника вручную может выглядеть примерно так:

  1. посмотреть количество отработанных часов в табеле учета рабочего времени сотрудника
  2. найдите ставку заработной платы для этого сотрудника из таблицы
  3. умножьте часы на ставку заработной платы, чтобы получить базовую еженедельную зарплату
  4. умножьте их базовую зарплату на фиксированный процент для учета подоходного налога
  5. вычтите это число из их основной зарплаты, чтобы получить еженедельную зарплату после уплаты налогов.
  6. умножьте этот результат на другой фиксированный процент, чтобы учесть пенсионные планы.
  7. вычтите это число из их основной зарплаты, чтобы получить еженедельную зарплату после всех вычетов.

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

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

Машины аккумуляторные [ править ]

Машина с аккумулятором , также называемая машиной с 1 операндом , или ЦП с архитектурой на основе аккумулятора , представляет собой разновидность ЦП, в котором, хотя она может иметь несколько регистров, ЦП в основном хранит результаты вычислений в одном специальном регистре, обычно называемом «аккумулятор». Почти все рано [ нужны разъяснения ] компьютеры представляли собой аккумуляторные машины, и только высокопроизводительные « суперкомпьютеры » имели несколько регистров. Затем, когда мэйнфреймы уступили место микрокомпьютерам , аккумуляторные архитектуры снова стали популярны, MOS 6502 ярким примером которых стал . Многие 8-битные микроконтроллеры , которые по-прежнему популярны по состоянию на 2014 год. , такие как PICmicro и 8051 , являются машинами с аккумулятором.

Современные процессоры обычно представляют собой машины с 2 или 3 операндами. Дополнительные операнды указывают, какой из многих регистров общего назначения (также называемых «аккумуляторами общего назначения») [1] ) используются в качестве источника и назначения для вычислений. Эти процессоры не считаются «аккумуляторными машинами».

Характеристика, которая отличает один регистр от аккумулятора в компьютерной архитектуре, заключается в том, что аккумулятор (если бы он был в архитектуре) использовался бы в качестве неявного операнда для арифметических инструкций . Например, процессор может иметь такую ​​инструкцию: ADD memaddress который добавляет значение, считанное из ячейки памяти memaddress, к значению в аккумуляторе, помещая результат обратно в аккумулятор. Аккумулятор не идентифицируется в инструкции по номеру регистра; он неявно заложен в инструкции, и никакой другой регистр не может быть указан в инструкции. Некоторые архитектуры используют определенный регистр в качестве аккумулятора в некоторых инструкциях, но другие инструкции используют номера регистров для явной спецификации операндов.

История компьютерного аккумулятора [ править ]

Любую систему, которая использует одну «память» для хранения результатов нескольких операций, можно считать аккумулятором. Дж. Преспер Эккерт называет даже самые ранние арифмометры Готфрида Лейбница и Блеза Паскаля системами, основанными на аккумуляторах. [2] Перси Ладгейт был первым, кто придумал множитель-аккумулятор (MAC) в своей аналитической машине 1909 года. [3]

Историческое соглашение отводит регистр «аккумулятору», «арифметическому органу», который буквально накапливает свое число во время последовательности арифметических операций:

«Первая часть нашего арифметического органа... должна быть параллельным органом хранения, который может принимать число и добавлять его к уже находящемуся в нем, который также способен очищать его содержимое и который может хранить то, что оно содержит. Мы будем такой орган называют аккумулятором. В принципе, он вполне условен в прошлых и нынешних вычислительных машинах самых разных типов, например настольных умножителях, стандартных счетчиках IBM, более современных релейных машинах, ENIAC» (Goldstine and von Neumann, 1946; p. .98 в Белле и Ньюэлле, 1971).

Вот, например, лишь некоторые из инструкций (с некоторой современной интерпретацией):

  • Очистить аккумулятор и добавить число из ячейки памяти X.
  • Очистить аккумулятор и вычесть число из ячейки памяти X.
  • Добавить число, скопированное из ячейки памяти X, в содержимое аккумулятора.
  • Вычесть число, скопированное из ячейки памяти X, из содержимого аккумулятора.
  • Очистить аккумулятор и перенести содержимое регистра в аккумулятор.

Не существует никаких соглашений относительно названий операций от регистра к аккумулятору и от аккумулятора к регистрам. Традиция (например, Дональда Кнута (1973) гипотетический компьютер MIX ), например, использует две инструкции, называемые загрузкой аккумулятора из регистра/памяти (например, «LDA r») и сохранением аккумулятора в регистр/память (например, «STA r»). Модель Кнута содержит и множество других инструкций.

базе аккумуляторов на Известные компьютеры

Передняя панель компьютера IBM 701 с индикаторами аккумулятора и других регистров.

Конфигурация ENIAC 1945 года имела 20 аккумуляторов, которые могли работать параллельно. [4] : 46  Каждый мог хранить восьмизначное число и прибавлять к нему (или вычитать из него) полученное число. [4] : 33  Большинство ранних двоичных «научных» компьютеров IBM, начиная с лампового IBM 701 в 1952 году, использовали один 36-битный аккумулятор вместе с отдельным регистром множителя/частного для обработки операций с более длинными результатами. IBM 650 , десятичная машина, имела один 10-разрядный распределитель и два десятиразрядных аккумулятора; IBM 7070 , более поздняя транзисторная десятичная машина, имела три аккумулятора. IBM System/360 и Digital Equipment Corporation от PDP-6 имели 16 регистров общего назначения, хотя PDP-6 и его преемник PDP-10 называли их аккумуляторами.

PDP 12-битный -8 был одним из первых миникомпьютеров, в которых использовались аккумуляторы, и послужил источником вдохновения для многих более поздних машин. [5] У PDP-8 был только один аккумулятор. У HP 2100 и Data General Nova было 2 и 4 аккумулятора. Nova была создана, когда это продолжение PDP-8 было отклонено в пользу того, что впоследствии стало PDP-11 . Nova предоставила четыре аккумулятора, AC0-AC3, хотя AC2 и AC3 также можно было использовать для предоставления адресов смещения, что имело тенденцию к более широкому использованию регистров. PDP-11 имел 8 регистров общего назначения, аналогично System/360 и PDP-10; большинство более поздних машин CISC и RISC имели несколько регистров общего назначения.

Ранние 4-битные и 8-битные микропроцессоры, такие как 4004 , 8008 и многие другие, обычно имели одиночные аккумуляторы. Микроконтроллер 8051 имеет два аккумулятора: первичный аккумулятор и вторичный аккумулятор, причем второй используется инструкциями только при умножении (MUL AB) или делении (DIV AB); первый разделяет 16-битный результат между двумя 8-битными аккумуляторами, тогда как второй сохраняет частное в первичном аккумуляторе A, а остаток во вторичном аккумуляторе B. Являясь прямым потомком 8008, 8080 и 8086 Современные вездесущие процессоры Intel x86 по-прежнему используют первичный аккумулятор EAX и вторичный аккумулятор EDX для умножения и деления больших чисел. Например, MUL ECX умножит 32-битные регистры ECX и EAX и разделит 64-битный результат между EAX и EDX. Однако MUL и DIV являются особыми случаями; другие арифметико-логические инструкции (ADD, SUB, CMP, AND, OR, XOR, TEST) могут указывать любой из восьми регистров EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI в качестве аккумулятора (т.е. левый операнд и место назначения). Это также поддерживается для умножения, если верхняя половина результата не требуется. Таким образом, x86 представляет собой довольно общую архитектуру регистров, несмотря на то, что она основана на модели аккумулятора. [6] 64-битное расширение x86, x86-64 , было дополнительно обобщено до 16 вместо 8 общих регистров.

Ссылки [ править ]

  1. ^ «Обзор HC16» . Freescale.com. Архивировано из оригинала 28 сентября 2007 года . Проверено 22 сентября 2008 г.
  2. ^ Дж. Преспер Эккерт, «Обзор систем цифровой компьютерной памяти», IEEE Annals of the History of Computing, 1988, стр. 15-28.
  3. ^ «Возможность создания аналитической машины Ладгейта» .
  4. Перейти обратно: Перейти обратно: а б Хей, Томас; Пристли, Марк; Ропефир, Криспин (2016). ENIAC в действии: создание и переделка современного компьютера . МТИ Пресс. ISBN  9780262334419 .
  5. ^ Руководство по программируемому процессору данных-1 (PDF) , Мейнард, Массачусетс : Digital Equipment Corporation , 1961, стр. 7: Блок-схема системы PDP-1, заархивировано (PDF) из оригинала 9 октября 2022 г. , получено 3 июля 2014 г.
  6. ^ Ирвин, Кип Р. (2007). Язык ассемблера для компьютеров на базе Intel (5-е изд.). Пирсон Прентис Холл. стр. 633, 622. ISBN.  978-0-13-238310-3 .
  • Голдстайн, Герман Х. и фон Нейман, Джон, «Планирование и кодирование задач для электронного вычислительного прибора», член палаты представителей 1947 г., Институт перспективных исследований , Принстон. Перепечатано на стр. 92–119 в книгах Белл, К. Гордон и Ньюэлл, Аллен (1971), Компьютерные структуры: материалы для чтения и примеры , McGraw-Hill Book Company, Нью-Йорк. ISBN   0-07-004357-4 }. Настоящая сокровищница подробных описаний старинных машин с фотографиями.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fc83b5674f4f1c5ab98280f17dec6a40__1707160440
URL1:https://arc.ask3.ru/arc/aa/fc/40/fc83b5674f4f1c5ab98280f17dec6a40.html
Заголовок, (Title) документа по адресу, URL1:
Accumulator (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)