Принцип однородности памяти 6 страница

Кроме обслуживания ПУ (выполнения обмена) в микропроцессорной системе существуют и другие события, которые могут вызвать прерывание процессора. Типы прерываний зависят от конкретной микропроцессорной системы. Прерывания распадаются на два основных класса:

  • внешние;
  • внутренние.

Внешние прерывания. Вызываются асинхронными событиями, которые происходят вне прерываемой программы. Например, прерывания от таймера или подсистемы ввода/вывода.

Внутренние прерывания. Вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями. Например:

  • арифметическое переполнение, попытка деления на 0, переполнение или исчезновение порядка при выполнении операций с плавающей запятой;
  • внутренние прерывания происходят при обращении к защищенным или несуществующим ячейкам памяти, а также к отсутствующему сегменту или странице;
  • прерывания вызывает попытка использовать незадействованный код операции, а также попытка использовать привилегированные команды в пользовательском режиме;
  • внутренние прерывания могут вызываться также сбоями системы, например, ошибкой четности;
  • при выполнении специальных команд.

Прерывание программы не должно оказывать на прерванную программу никакого влияния кроме увеличения времени ее выполнения за счет приостановки на время выполнения подпрограммы обработки прерывания. Для этого после приема запроса на прерывание состояние МП необходимо сохранить. Для того чтобы прерванная программа могла быть продолжена после обслуживания очередного запроса на прерывание с того места, на котором она была приостановлена, состояние процессора должно быть восстановлено. Всякий раз, когда процессор воспринимает запрос на прерывание, он активизирует процедуру обслуживания, передавая ее стартовый адрес в программный счетчик. Чтобы не потерялось старое содержимое программного счетчика, которое является адресом возврата в прерванную программу, оно должно быть автоматически сохранено. Лучше всего для этой цели использовать системный стек, тогда возврат к прерванной программе будет заключаться в передаче управления по адресу, находящемуся на вершине стека. Обычно аппаратными средствами обработки прерывания автоматически сохраняется не только содержимое программного счетчика, но и регистра состояния процессора, а также его программно-доступных регистров.

Таким образом, хотя существует несколько различных способов обработки прерывания, следующая последовательность действий присуща большинству микропроцессорных систем:

  1. фиксируются характеристики произошедшего прерывания (тип прерывания);
  2. сохраняется состояние прерванной программы – состояние процессора;
  3. анализируется тип прерывания и передается управление соответствующей подпрограмме обработки этого прерывания;
  4. обрабатывается прерывание – выполняется соответствующая подпрограмма;
  5. восстанавливается состояние процессора, что приводит к возобновлению выполнения прерванной программы.

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

Существуют две системы прерываний:

  • радиальная система прерываний;
  • векторная система прерываний.

 

 

29. Радиальная система прерываний.

Физический интерфейс простейшей системы прерываний может быть представлен единственной линией запроса на прерывание IRQ (Interrupt ReQuest). Для программиста такая система прерываний представляется в виде отдельной точки входа в процедуру обслуживания.

Формирование запросов на прерывание – запросов ПУ на обслуживание – происходит в контроллерах соответствующих ПУ (рис. 39).

Рисунок 39 – Формирование запроса прерывания в контроллере ПУ

В простейших случаях в качестве сигнала запроса прерывания может использоваться сигнал готовности ПУ, поступающий из контроллера ПУ с выхода соответствующего разряда регистра состояния. Однако такое простое решение обладает существенным недостатком – процессор не имеет возможности управлять прерываниями, т.е. разрешать или запрещать их для отдельных ПУ. В результате организация обмена данными в режиме прерывания с несколькими ПУ существенно усложняется. Поэтому регистр состояния контроллера ПУ дополняют еще одним разрядом – разрешение прерывания. Запись 1 или 0 в этот разряд регистра состояния производится программным путем (прямой вывод) по одной из линий шины данных системной магистрали. Управляющий сигнал запрос прерывания от ПУ формируется с помощью схемы совпадения только при наличии единиц в разрядах готовность ПУ и разрешение прерывания регистра состояния контроллера ПУ.

При необходимости обслуживания нескольких ПУ в такой системе сигналы запросов на прерывание от всех ПУ поступают на один вход процессора, при этом запросы объединяются по схеме «монтажное ИЛИ». В этом случае возникает проблема идентификации ПУ, запросившего обслуживания. Данная проблема решается с помощью специальной процедуры, называемой поллингом. Функция поллинга состоит в последовательном опросе состояния всех ПУ и выявлении готовых к обслуживанию. В данном случае поллинг реализуется программным способом путем анализа разряда готовности регистров состояния контроллеров ПУ. Организация прерываний с программным опросом готовности предполагает наличие в памяти микропроцессорной системы единой подпрограммы обслуживания прерываний от всех ПУ. Обслуживание ПУ с помощью единой подпрограммы обработки прерываний производится следующим образом. После выполнения очередной команды основной программы процессор проверяет наличие запроса на прерывание от ПУ. Если запрос прерывания есть и в процессоре прерывание разрешено, то МП переключается на выполнение подпрограммы обработки прерываний. После сохранения содержимого регистров процессора, используемых в подпрограмме, начинается последовательный опрос регистров состояния контроллеров всех ПУ, работающих в режиме прерывания. Как только подпрограмма обнаружит готовое к обмену ПУ, сразу выполняются действия по его обслуживанию. Завершается подпрограмма обработки прерывания после опроса готовности всех ПУ восстановлением содержимого регистров процессора.

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

Для увеличения числа одновременно обслуживаемых источников прерываний в процессоре вводится несколько линий с фиксированными стартовыми адресами подпрограмм обслуживания. Такие линии называются радиальными, а система прерываний – радиальной системой прерываний. В радиальной системе прерываний проблема идентификации ПУ решается путем выделения каждому ПУ своей линии для передачи запроса на прерывание. В зависимости от того, по какой линии приходит запрос на прерывание, управление передается подпрограмме обслуживания соответствующего ПУ.

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

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

В одноуровневой системе прерываний в каждый момент времени допускается только один подтвержденный запрос, т.е. на обслуживании одновременно находится только один запрос. При этом обработка всех других запросов откладывается до окончания текущего обслуживания. Если несколько устройств одновременно запросили обслуживание, процессор выбирает только одно из них на основании приоритета каждого из запросов. Наиболее практичной и естественной является система прерываний с фиксированными линейно упорядоченными приоритетами. В такой системе все приоритеты строго упорядочены, что обеспечивает однозначный выбор одного из них. Приоритеты запросов могут динамически изменяться по заданному алгоритму (аппаратно или программно), однако в каждый момент времени все приоритеты остаются строго упорядоченными. Широко применяемым алгоритмом изменения приоритетов является циклический. В соответствии с ним после каждого очередного обслуживания запроса происходит циклический сдвиг приоритетов с присвоением минимального приоритета только что обработанному запросу. Такая схема приводит к равномерному распределению внимания процессора между всеми запросами. Она может быть использована при обслуживании группы одинаковых устройств, когда выделение какого либо из них нежелательно или их нельзя однозначно упорядочить по приоритетам.

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

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

 

 

30. Векторная система прерываний.

Повышение эффективности системы прерываний связано с передачей функции идентификации ПУ, запросившего обслуживания, внешним по отношению к процессору средствам. В векторной системе прерываний ПУ, запросившее обслуживание, само идентифицирует себя с помощью вектора прерывания, который принимается МП. В общем случае для передачи вектора прерывания необходима специальная шина. Однако она, как правило, физически совмещается с шиной данных системной магистрали, при этом ввод вектора прерывания осуществляется в специальном цикле магистрали, который называется циклом подтверждения прерывания. Такое совмещение требует включения в шину управления линии подтверждения прерывания INTA, по которой передается сигнал от процессора, разрешающий выдачу вектора прерывания в ответ на запрос прерывания от ПУ. МП, получив вектор прерывания, сразу переключается на выполнение требуемой подпрограммы обработки прерывания. Так же как и радиальная система, векторная система прерываний предполагает наличие для каждого ПУ собственной подпрограммы обработки прерывания. При этом вектор прерывания определяет, какой подпрограмме обработки прерывания процессор должен передать управление.

Вектор прерывания может представлять собой:

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

Существует два подхода к построению векторной системы прерываний, которые различаются используемым методом формирования вектора прерывания. Первый подход использует метод децентрализованного управления – определение запроса с наибольшим приоритетом и формирование вектора прерывания осуществляется непосредственно ПУ. Второй подход использует метод централизованного управления и состоит в передаче функции формирования вектора прерывания специальному устройству – контроллеру прерывания.

При формировании вектора прерывания средствами ПУ логика работы программного поллинга переносится на аппаратные средства – определение наиболее приоритетного запроса осуществляется с помощью аппаратного опроса готовности ПУ. Такой подход называется аппаратным поллингом. Линии запросов от всех ПУ объединяются по схеме «монтажное ИЛИ» и подключаются к общей линии запроса прерывания IRQ процессора (рис. 40).

Рисунок 40 – Формирование вектора прерывания средствами ПУ

Процессор при поступлении в него по линии IRQ запроса прерывания формирует управляющий сигнал подтверждения прерывания INTA, который поступает сначала в контроллер ближайшего к процессору ПУ. Если это ПУ не требовало обслуживания, то его контроллер пропускает сигнал подтверждения прерывания на следующий контроллер, иначе дальнейшее распространение сигнала прекращается и контроллер выдает в шину данных вектор прерывания. Такая схема носит ярко выраженный шлейфовый характер. Одна линия подтверждения прерывания проходит последовательно через контроллеры ПУ и образует последовательную приоритетную структуру, называемую дейзи-цепочкой. Приоритет определяется физическим положением каждого ПУ. Ближайшее к процессору ПУ имеет наибольший приоритет.

Дейзи-цепочка имеет два преимущества. Во-первых, в системной магистрали нужна только одна линия запроса прерывания (одна линия запроса используется и в системе с программным опросом готовности ПУ, однако аппаратный опрос готовности ПУ производится гораздо быстрее). Во-вторых, в систему можно ввести новое ПУ с любым требуемым приоритетом, просто подключая его в нужную физическую позицию. Количество ПУ в системе ограничивается только числом векторов прерываний. Однако дейзи-цепочка медленнее параллельного способа, реализуемого в контроллере прерываний, так как сигнал подтверждения прерывания последовательно распространяется через каждое ПУ. Еще один недостаток шлейфовой структуры – трудность управления приоритетами. ПУ, стоящие в дейзи-цепочке ближе к процессору, обладают более высоким приоритетом, поэтому изменение приоритетов требует изменения последовательности включения ПУ, что во многих случаях затруднительно.

Наиболее эффективно векторная система прерываний реализуется с помощью контроллера прерываний (рис. 41).

Рисунок 41 – Векторная система прерываний на основе контроллера прерываний

Контроллер прерываний (КПР) может рассматриваться как расширение процессора, по этой причине его иногда называют сопроцессором обработки прерываний. На основе КПР формируется многоуровневая приоритетная система векторных прерываний. КПР обеспечивает прием и обработку N запросов на прерывание. Приоритетная логика КПР выбирает из числа поступивших запросов на прерывание запрос с наивысшим приоритетом и сравнивает его с текущим приоритетом запроса, находящегося на обслуживании. При превышении текущего приоритета КПР генерирует сигнал запроса прерывания INT, который поступает в процессор. МП подтверждает прием запроса INT генерацией сигнала подтверждение прерывания INTA, в ответ на который КПР выдает на шину данных системной магистрали соответствующий вектор прерывания. До тех пор, пока некоторый запрос находится в обслуживании, все запросы с равным или меньшим приоритетом игнорируются. В то же время запросы с более высоким приоритетом приводят к генерации сигнала INT, инициируя вложенные прерывания. Для оперативного управления работой контроллера предусматривается возможность его программирования, что позволяет динамически изменять приоритеты запросов, формируемые вектора прерываний и т.п.

 

 

31. Организация прямого доступа к памяти в микропроцессорной системе.

Прямой доступ к памяти (ПДП) является одним из способов обмена данными с ПУ. В этом режиме обмен данными между ПУ и памятью микропроцессорной системы происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а внешнее по отношению к процессору специальное устройство, называемое контроллером ПДП (КПДП). ПДП используется для быстрого ввода/вывода блоков данных и разгрузки процессора от управления операциями ввода/вывода. Обмен блоками данных с помощью программно-управляемого обмена осуществляется относительно медленно, так как на обмен каждым байтом затрачивается несколько команд процессора. ПДП освобождает процессор от управления операциями ввода/вывода, позволяя тем самым

  • осуществлять параллельно во времени выполнение процессором программы и обмен данными между ПУ и памятью;
  • производить этот обмен со скоростью, ограниченной только пропускной способностью памяти или ПУ.

Таким образом, ПДП, разгружая процессор от обслуживания операций ввода/вывода, способствует возрастанию общей производительности микропроцессорной системы.

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

  • реализация обмена в режиме ПДП с захватом цикла;
  • реализация обмена в режиме ПДП с блокировкой процессора.

Режим ПДП с захватом цикла

Существует две разновидности прямого доступа к памяти с захватом цикла. Наиболее простой способ организации ПДП состоит в том, что для обмена используются те циклы процессора, в которых он не обменивается данными с памятью. В такие циклы контроллер ПДП может обмениваться данными с памятью, не мешая работе процессора. Однако возникает необходимость выделения таких циклов, чтобы не произошло временного перекрытия обмена ПДП с операциями обмена, инициируемыми процессором. В некоторых процессорах формируется специальный управляющий сигнал, указывающий циклы, в которых процессор не использует память. Если процессор не формирует такого сигнала, то для выделения свободных циклов необходимо применение в контроллере ПДП специальной схемы, что приводит к его усложнению. Применение этого способа организации ПДП не снижает производительности системы, но при этом обмен в режиме ПДП возможен только в случайные моменты времени одиночными словами.

Наиболее распространенным является ПДП с захватом цикла и принудительным отключением процессора от шин системной магистрали. Для реализации такого режима ПДП системная магистраль дополняется двумя управляющими сигналами – требование прямого доступа к памяти HOLD и предоставление прямого доступа к памяти HLDA.

Управляющий сигнал HOLD формируется контроллером ПДП. Процессор, получив этот сигнал, приостанавливает выполнение текущей команды, не дожидаясь ее завершения, отключается от шин системной магистрали и выдает контроллеру ПДП управляющий сигнал HLDA. С этого момента все шины системной магистрали управляются контроллером ПДП. Контроллер ПДП, используя шины системной магистрали, осуществляет обмен одним словом данных с памятью и затем, сняв сигнал HOLD, возвращает управление системной магистралью процессору. Как только контроллер ПДП будет готов к обмену следующим словом данных, он вновь захватывает цикл процессора и т.д. В промежутках между захватами циклов контроллером ПДП процессор продолжает выполнять команды программы. Тем самым выполнение программы замедляется, но значительно в меньшей степени, чем при обмене в режиме прерывания.

Передача блока данных с использованием ПДП предполагает выполнение определенной последовательности действий (рис. 42):

  • начальная установка (предварительная подготовка) контроллера ПДП;
  • запуск контроллера ПДП;
  • многократное занятие цикла процессора;
  • завершение обмена.

Рисунок 42 – Передача блока данных с использованием ПДП

Программа используется только для начальной установки и пуска обмена через канал ПДП. После этого процессор может выполнять основную программу, которая не связана с обменом. Во время выполнения этой программы каждый раз при поступлении запроса на ПДП контроллер ПДП будет занимать цикл процессора и осуществлять передачу. После окончания обмена для передачи управления программе завершения обмена в режиме ПДП используется прерывание. Затем основная программа может быть продолжена.

Начальная подготовка к обмену в режиме ПДП состоит в выделении ПУ области памяти, используемой при обмене, и указании ее размера, т.е. количества записываемых в память или читаемых из памяти слов информации. Для этого контроллер ПДП имеет в своем составе регистр адреса и счетчик слов. Перед началом обмена с ПУ в режиме ПДП процессор должен выполнить программу загрузки, которая обеспечивает запись в указанные регистры контроллера ПДП начального адреса выделенной ПУ области памяти и ее размера в словах заданной разрядности.

Запуск контроллера ПДП осуществляется командой вывода, по которой ПУ подключается к контроллеру ПДП. После команды пуска контроллера ПДП должна быть команда разрешения прерывания. В дальнейшем ввод блока данных через канал ПДП осуществляется без участия команд программы.

Когда ПУ подготовит слово данных, оно посылается в регистр данных контроллера. При этом каждое слово сопровождается управляющим сигналом ввод данных из ПУ, который обеспечивает запись слова данных в регистр данных контроллера и формирование сигнала требование прямого доступа к памяти HOLD. В ответ процессор формирует сигнал предоставление прямого доступа к памяти HLDA, после чего следующий машинный цикл занимается под обмен. При этом осуществляется одна пересылка слова данных в ячейку памяти по адресу, находящемуся в регистре адреса контроллера. По сигналу HLDA контроллер выставляет на шины адреса и данных системной магистрали содержимое своих регистров адреса и данных соответственно. Формируя управляющий сигнал MEMRW, контроллер ПДП обеспечивает запись слова данных из своего регистра данных в память.

После передачи каждого слова данных из содержимого счетчика слов контроллера вычитается 1, и когда оно становится равным 0, устанавливается запрос на прерывание, который поступает на соответствующий вход процессора. Процессор прерывает выполнение программы и передает управление подпрограмме обработки прерывания для завершения обмена.

Завершение обмена осуществляется путем отключения ПУ от контроллера ПДП командой вывода. По окончании обработки прерывания управление возвращается основной программе.

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

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

Следует отметить, что использование в микропроцессорной системе обмена в режиме ПДП с захватом цикла требует от программиста очень ясного понимания процессов, происходящих в системе при выполнении программы, и четкой синхронизации процесса выполнения программы и ввода/вывода по каналу ПДП.

Режим ПДП с блокировкой процессора

Прямой доступ к памяти с блокировкой процессора отличается от режима ПДП с захватом цикла тем, что управление системной магистралью передается контроллеру ПДП не на время передачи одного слова, а на время обмена блоком данных. Такой режим ПДП необходим в тех случаях, когда время между двумя сигналами требование прямого доступа к памяти HOLD сопоставимо с циклом процессора. В этом случае процессор не успевает выполнить хотя бы одну команду между очередными операциями обмена в режиме ПДП.

В микропроцессорной системе можно использовать несколько ПУ, работающих в режиме ПДП. Предоставление таким ПУ шин системной магистрали для обмена данными производится на приоритетной основе. В этом случае приоритеты ПУ реализуются так же, как и при обмене данными в режиме прерывания. Как правило, для каждого ПУ используется своя пара управляющих сигналов требование прямого доступа к памяти HOLD и предоставление прямого доступа к памяти HLDA и отдельный канал в контроллере ПДП.

 

32. Аккумуляторная архитектура микропроцессоров.

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

Типичная архитектура микропроцессора на базе аккумулятора показана на рис. 47.

Рисунок 47 – Архитектура микропроцессора на базе аккумулятора

Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда загрузки load x. По этой команде информация считывается из ячейки памяти х, выход памяти подключается ко входу аккумулятора и происходит занесение считанных данных в аккумулятор. Запись содержимого аккумулятора в ячейку х осуществляется командой сохранения store х, при выполнении которой выход аккумулятора подключается к шине, после чего информация с шины записывается в память.

Таким образом, один из операндов всегда находится в аккумуляторе. Для выполнения операции в АЛУ производится считывание второго операнда из памяти в регистр данных. Выходы регистра данных и аккумулятора подключаются к соответствующим входам АЛУ. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор. В процессорах аккумуляторного типа возможен следующий способ передачи данных:

(Акк) * (Память) --> Акк;

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

Рисунок 48 – Формат одноадресной команды

Достоинствами аккумуляторной архитектуры можно считать короткие команды и простоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти.