- Принципы фон Неймана (Архитектура фон Неймана)
- Принципы фон Неймана
- Как работает машина фон Неймана
- Принципы построения и работы ЭВМ Джона фон Неймана
- Принципы Джона фон Неймана
- Принцип построения и работы ЭВМ фон Неймана
- Заключение
- Лекция «Функциональная организация фон-неймовской вычислительной машины»
- Порты ввода и порты вывода. Портом называют схему, ответственную за передачу информации из периферий ного устройства ввода в аккумулятор АЛУ (порт ввода) или из аккумулятора на периферийное устройство вывода (порт вывода). Схема обеспечивает электричес кое и логическое сопряжение ВМ с подключенным к нему периферийным устрой ством.
- Дешифратор номера порта ввода/вывода . В модуле ввода/вывода рассматриваемой ВМ предполагается, что каждое ПУ под ключается к своему порту. Каждый порт имеет уникальный номер, который указы вается в адресной части команд ввода/вывода. Дешифратор номера порта ввода/ вывода (ДВВ) обеспечивает преобразование номера порта в сигнал, разрешающий операцию ввода или вывода на соответствующем порте. Непосредственно ввод (вывод) происходит при поступлении из МПА сигнала Вв (Выв).
Принципы фон Неймана (Архитектура фон Неймана)
В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В последствие на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.
По сути, Нейману удалось обобщить научные разработки и открытия многих других ученых и сформулировать на их основе принципиально новое.
Принципы фон Неймана
- Использование двоичной системы счисления в вычислительных машинах. Преимущество перед десятичной системой счисления заключается в том, что устройства можно делать достаточно простыми, арифметические и логические операции в двоичной системе счисления также выполняются достаточно просто.
- Программное управление ЭВМ. Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.
- Память компьютера используется не только для хранения данных, но и программ. При этом и команды программы и данные кодируются в двоичной системе счисления, т.е. их способ записи одинаков. Поэтому в определенных ситуациях над командами можно выполнять те же действия, что и над данными.
- Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы. В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.
- Возможность условного перехода в процессе выполнения программы. Не смотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.
Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.
Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.
Как работает машина фон Неймана
Машина фон Неймана состоит из запоминающего устройства (памяти) — ЗУ, арифметико-логического устройства — АЛУ, устройства управления – УУ, а также устройств ввода и вывода.
Программы и данные вводятся в память из устройства ввода через арифметико-логическое устройство. Все команды программы записываются в соседние ячейки памяти, а данные для обработки могут содержаться в произвольных ячейках. У любой программы последняя команда должна быть командой завершения работы.
Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).
Арифметико-логическое устройство выполняет указанные командами операции над указанными данными.
Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.
УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.
Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление.
Принципы построения и работы ЭВМ Джона фон Неймана
Человек, сформулировавший знаменитые принципы фон Неймана, родился в 1903 г. в Будапеште. Выходец из еврейской семьи, Янош Лайош Нейман, с детства проявлял задатки будущего математика, физика, химика.
В 30-х годах преподавал в Германии под именем Иоганна фон Неймана. Расцветающий нацизм и приглашение от американцев подтолкнули молодого ученого к решению перебраться в США. Там он окончательно стал Джоном.
Работал в Принстоне, в университете и Институте перспективных исследований. Одно время там же работал по близкой тематике Алан Тьюринг. Один из создателей информатики в современном виде. Повлияли ли на Джона работы последнего, достоверно неизвестно.
Участвовал в разработке ядерного оружия. Возможно, что полученное во время работы над проектом радиационное облучение стало причиной ранней смерти ученого. Умер фон Нейман в 1957 г. от рака. Ему было 53 года.
Принципы Джона фон Неймана
Ученый был специалистом широкого профиля, но в историю вошел как создатель новационной архитектуры компьютера. Радикально нового с тех пор не придумали.
Понятие «архитектура» означает необходимую организацию «железа» и программ для оптимального решения задач. При этом учитываются финансовые затраты, область приложения, функционал, комфортность в работе.
Не стоит путать со «структурой». Последняя не столь глобально описывают внутренние связи. Уточняет взаимодействие деталей устройства.
Идея возникла, когда фон Нейман занялся анализом недостатков первой электронной машины ENIAC (1944 г.). Сделанные ранее в Германии образцы были электромеханическими, на реле.
Концепция создания усовершенствованной ЭВМ EDVAC была представлена в 1946 г. Новшество заключалось в следующем:
Утверждается двоичная система счисления как наиболее логичная и простая для реализации в компьютере. В дальнейшем нововведение дало возможность работать не только с цифрами, но и с текстами, графикой, видео / звуком.
Для проведения операций используется программа, включающая выполняемые одна за другой команды. Последняя в последовательности сигнализирует об окончании процесса. В нашем понимании – это программирование.
Программы и данные размещаются в памяти ЭВМ, преобразовываясь в двоичный код (см. п. 1). Производимые над ними операции схожи, соблюдается однородность. Машина самостоятельно корректировала программу сообразно запрошенным операциям.
Ячейкам памяти присваиваются конкретные адреса. Таким образом вводятся переменные.
Команды могут исполняться не только последовательно, но допускается переход с соблюдением условия. Так, например, может запускаться циклическая обработка данных.
Качественным улучшением по сравнению с ЭНИАКом стала легкость загрузки программ. Последние больше не являлись компонентом устройства и без труда менялись.
Принцип построения и работы ЭВМ фон Неймана
Заносимые в память команды (программа) содержат информацию о необходимом действии и адреса требуемых данных. Также вводятся идентификатор ячейки для введения память результата (если нужно).
АЛУ отвечает за исполнение команды. Итог операции отправляется в память или на вывод. ВЗУ сходно с устройством вывода тем, что используется для недолгого хранения параметров. Только содержит информацию в непонятном для оператора формате. Исключительно для машины.
Если кратко, основной функцией АЛУ является поддержка незатейливых действий: арифметических, логических, перемещением данных. Еще анализируется результат. Решения по анализу принимаются УУ.
УУ предназначено для отправки указаний непосредственно отдельным деталям и получения от них подтверждений. Следит за очередностью выполнения команд и за их исполнением вообще.
Заключение
Фон Нейман привнес неоценимые новшества в создание машин электронного класса. Благодаря придуманной им схеме, улучшенный калькулятор (каковым являлся ЭНИАК) превратился со временем в инструмент обработки любой информации. При этом их «железный» состав изменился слабо. Электронные лампы, например, заменили на полупроводники.
УУ и АЛУ скомпоновали в моноблочный центральный процессор. Значительные качественные изменения претерпело ОЗУ. Возрос объем. Гораздо удобней стали аппараты ввода и вывода. Но принципиальных подвижек пока нет.
С другой стороны, заслуги представляются несколько преувеличенными. Основы «принципов» рождались в результате дискуссий с коллегами. Но в опубликованных итогах оказалась одна фамилия. Но безусловна роль фон Неймана как систематизатора. А на титул первооткрывателя он и не претендовал.
Лекция «Функциональная организация фон-неймовской вычислительной машины»
Лекция 11. Функциональная организация фон-неймановской ВМ
Данная лекция посвящена рассмотрению базовых принципов построения и функ ционирования фон-неймановских вычислительных машин.
Функциональная схема фон-неймановской вычислительной машины
Чтобы получить более детальное представление о структуре и функциях устройств ВМ, обратимся к схеме гипотетической машины с аккумуляторной архитектурой (рис. 11.1). Для упрощения изложения приняты следующие характеристики машины:
- Одноадресные команды. Адресная часть команды содержит только один адрес. При выполнении операций с двумя операндами предполагается, что другой операнд находится в специальном регистре АЛУ — аккумуляторе, а результат также остается в аккумуляторе.
- Единство форматов. Длина команд и данных совпадает с разрядностью ячеек памяти, то есть любая команда или операнд занимают только одну ячейку памяти. Таким образом, адрес очередной команды в памяти может быть получен путем прибавления единицы к адресу текущей команды, а для извлечения из памяти любой команды или любого операнда достаточно одного обращения к памяти.
На функциональной схеме (см. рис. 11.1) показаны типовые узлы каждого из основных устройств ВМ, а также сигналы, инициирующие выполнение отдель ных операций по пересылке информации и ее обработке, необходимых для функ ционирования машины.
Устройство управления
Назначение устройства управления (УУ) было определено ранее при рассмотре нии структурной схемы ВМ, где отмечалось, что эта часть ВМ организует автома тическое выполнение программ и функционирование ВМ как единой системы. Теперь остановимся на описании узлов, реализующих целевую функцию УУ.
Рис. 11.1. Принципиальная схема гипотетической фон-неймановской ЭВМ.
Счетчик команд (СК) — неотъемлемый элемент устройства управления любой ВМ, построенной в соответствии с фон-неймановским принципом программного уп равления. Согласно этому принципу соседние команды программы располагают ся в ячейках памяти со следующими по порядку адресами и выполняются преиму щественно в той же очередности, в какой они размещены в памяти ВМ. Таким образом, адрес очередной команды может быть получен путем увеличения адреса ячейки, некоторой была считана текущая команда, на длину выполняемой команды, представленную числом занимаемых ею ячеек. Реализацию такого режима и при зван обеспечивать счетчик команд — двоичный счетчик, в котором хранится и мо дифицируется адрес очередной команды программы. Перед началом вычислений в СК заносится адрес ячейки основной памяти, где хранится команда, которая дол жна быть выполнена первой. В процессе выполнения каждой команды в счетчике формирует ся адрес следующей подлежащей выполнению команды. В рассматриваемой ВМ любая команда занимает одну ячейку, поэтому содержимое СК увеличивается на единицу. По завершении текущей команды адрес следующей команды программы всегда берется из счетчи ка команд. Для изменения естественного порядка вычислений (перехода в иную точку программы) достаточно занести в СК адрес точки перехода.
Хотя термин «счетчик команд» считается общепринятым, его нельзя признать вполне удачным из-за того, что он создает неверное впечатление о задачах данного узла. По этой причине разработчики ВМ используют иные названия, в частности программный счетчик ( PC , Program Counter ) или указатель команды ( IP , Instruction Pointer ). Последнее определение представляется наиболее удачным, поскольку точ нее отражает назначение рассматриваемого узла УУ.
Регистр команды. Счетчик команд определяет лишь местоположение команды в памяти, но не со держит информации о том, что это за команда. Чтобы приступить к выполнению команды, ее необходимо извлечь из памяти и разместить в регистре команды (РК). Этот этап носит название выборки команды. Только с момента загрузки команды в РК она становится «видимой» для процессора. В РК команда хранится в течение всего времени ее выполнения. Любая команда содер жит два поля: поле кода операции и поле адресной части. Учитывая это обстоя тельство, регистр команды иногда рассматривают как совокупность двух регист ров —регистра кода операции (РКОп) и регистра адреса (РА), в которых хранятся соответствующие составляющие команды.
Если команда занимает несколько последовательных ячеек, то код операции всегда находится в том слове команды, которое извлекается из памяти первым. Это позволяет по коду операции определить, требуются ли считывание из памяти и загрузка в РК остальных слов команды. Собственно выполнение команды начи нается только после занесения в РК ее полного кода.
Указатель стека (УС) — это регистр, где хранится адрес вершины стека.
Регистр адреса памяти (РАП) предназначен для хранения адреса ячейки основ ной памяти вплоть до завершения операции (считывание или запись) с этой ячей кой. Наличие РАП позволяет компенсировать различия в быстродействии ОП и прочих устройств машины.
Регистр данных памяти (РДП) призван компенсировать разницу в быстродействии запоминающих устройств и устройств, выступающих в роли источников и потре бителей хранимой информации. В РДП при чтении заносится содержимое ячейки ОП, а при записи — помещается информация, подлежащая сохранению в ячейке ОП. Собственно момент считывания и записи в ячейку определяется сигналами ЧтЗУ и ЗпЗУ соответственно.
Дешифратор кода операции (ДКОп) преобразует код операции в форму, требуе мую для работы микропрограммного автомата (МПА). Информация после деко дирования определяет последующие действия МПА, а ее вид зависит от организа ции МПА.
Микропрограммный автомат (МПА) правомочно считать центральным узлом ус тройства управления. Именно МПА формирует последовательность сигналов уп равления, в соответствии с которыми производятся все действия, необходимые для выборки из памяти и выполнения команд. Исходной информацией для МПА слу жат: декодированный код операции, состояние признаков (флагов), характеризу ющих результат предшествующих вычислений, а также внешние запросы на прерывание текущей программы и переход на программу обслуживания прерывания.
Арифметико-логическое устройство. Это устройство, как следует из его названия, предназначено для арифметической и логической обработки данных. В машине, изображенной на рис. 11.1, оно содер жит следующие узлы.
Операционный блок (ОПБ) представляет собой ту часть АЛУ, которая, собственно, и выполняет арифметические и логические операции над поданными на вход операндами. Выбор конкретной операций из возможного списка операций для дан ного ОПБ определяется кодом операции команды. В нашей ВМ код операции по ступает непосредственно из регистра команды. В реальных машинах КОп зачас тую преобразуется в МПА в иную форму и уже из микропрограммного автомата поступает в АЛУ. Операционные блоки современных АЛУ строятся как комбина ционные схемы, то есть они не обладают внутренней памятью и до момента сохра нения результата операнды должны присутствовать на входе блока.
Регистры операндов РХ и PY обеспечивают сохранение операндов на входе операционного блока вплоть до получения результата операции и его записи (в нашем случае в аккумулятор).
Регистр признаков (РПрз) предназначен для фиксации и хранения признаков (фла гов), характеризующих результат последней выполненной арифметической или логической операции. Такие признаки могут информировать о равенстве результата нулю, о знаке результата, о возникновении переноса из старшего разряда, пе реполнении разрядной сетки и т. д. Содержимое РПрз обычно используется уст ройством управления для реализации условных переходов по результатам операций АЛУ. Под каждый из возможных признаков отводится один разряд РПрз.
Формирование признаков осуществляется блоком формирования состояний регистра признаков, который может входить в состав ОПБ либо реализуется в виде внешней схемы, располагаемой между операционным блоком и РПрз.
Аккумулятор (Акк) — это регистр, на который возлагаются самые разнообразные функции. Так, в него предварительно загружается один из операндов, участвую щих в арифметической или логической операции. В Акк может храниться резуль тат предыдущей команды и в него же заносится результат очередной операции. Через Акк зачастую производятся операции ввода и вывода. Строго говоря, аккумулятор в равной мере можно отнести как к АЛУ, так и к УУ, а в ВМ с регистровой архитектурой его можно рассматривать как один из ре гистров общего назначения.
Основная память. Вне зависимости от типа используемых микросхем основная память (ОП) пред ставляет собой массив запоминающих элементов (ЗЭ), организованных в виде ячеек, способных хранить некую единицу информации, обычно один байт. Каж дая ячейка имеет уникальный адрес. Ячейки ОП организованы в виде матрицы, а выбор ячейки осуществляется путем подачи разрешающих сигналов на соответ ствующие строку и столбец этой матрицы. Это обеспечивается дешифратором адреса памяти, преобразующим поступивший из РАП адрес ячейки в разрешающие сигналы, подаваемые в горизонтальную и вертикальную линии, на пересечении которых расположена адресуемая ячейка
Модуль ввода/вывода. Структура модуля ввода/вывода (МВБ) обеспечивает толь ко пояснение логики работы ВМ. В реальных ВМ реализация этого устройства машины может существенно отличаться от рассматриваемой. Задачей МВВ явля ется обеспечение подключения к ВМ различных периферийных устройств (ПУ) и обмена информацией с ними. В рассматриваемом варианте МВВ состоит из де шифратора номера порта ввода/вывода, множества портов ввода и множества пор тов вывода.
Порты ввода и порты вывода. Портом называют схему, ответственную за передачу информации из периферий ного устройства ввода в аккумулятор АЛУ (порт ввода) или из аккумулятора на периферийное устройство вывода (порт вывода). Схема обеспечивает электричес кое и логическое сопряжение ВМ с подключенным к нему периферийным устрой ством.
Дешифратор номера порта ввода/вывода . В модуле ввода/вывода рассматриваемой ВМ предполагается, что каждое ПУ под ключается к своему порту. Каждый порт имеет уникальный номер, который указы вается в адресной части команд ввода/вывода. Дешифратор номера порта ввода/ вывода (ДВВ) обеспечивает преобразование номера порта в сигнал, разрешающий операцию ввода или вывода на соответствующем порте. Непосредственно ввод (вывод) происходит при поступлении из МПА сигнала Вв (Выв).
Микрооперации и микропрограммы
Для пояснения логики функционирования ВМ ее целесообразно представить в виде совокупности узлов, связанных между собой коммуникационной сетью (рис. 11.2). Процесс функционирования вычислительной машины состоит из последова тельности пересылок информации между ее узлами и элементарных действий, выполняемых в узлах. Понятие узла здесь трактуется весьма широко: от регистра до АЛУ или основной памяти. Также широко следует понимать и термин «элемен тарное действие». Это может быть установка регистра в некоторое состояние или выполнение операции в АЛУ. Любое элементарное действие производится при поступлении соответствующего сигнала управления (СУ) из микропрограммного автомата устройства управления. Возможная частота формирования сигналов на выходе автомата определяется синхронизирующими импульсами,
Рис. 11.2. Вычислительная машина с позиций микроопераций и сигналов управления.
поступающими от генератора тактовых импульсов (ГТИ). Элементарные пересылки или преобра зования информации, выполняемые в течение одного такта сигналов синхрониза ции, называются микрооперациями. В течение одного такта могут одновременно выполняться несколько микроопераций. Совокупность сигналов управления, вы зывающих микрооперации, выполняемые в одном такте, называют микрокоман дой. Относительно сложные действия, осуществляемые вычислительной машиной в процессе ее работы, реализуются, как последовательность микроопераций и мо гут быть заданы последовательностью микрокоманд, называемой микропрограм мой. Реализует микропрограмму, то есть вырабатывает управляющие сигналы, за даваемые ее микрокомандами, микропрограммный автомат (МПА).
Цикл команды
Программа в фон-неймановской ЭВМ реализуется центральным процессором (ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и вы полнения команды, называют циклом команды, В общем случае цикл команды вклю чает в себя несколько составляющих (этапов):
- выборку команды;
- формирование адреса следующей команды;
- декодирование команды;
- вычисление адресов операндов;
- выборку операндов;
- исполнение операции;
- запись результата.
Перечисленные этапы выполнения команды в дальнейшем будем называть стандартным циклом команды. Отметим, что не все из этапов присутствуют при выполнении любой команды (зависит от типа команды), тем не менее, этапы вы борки, декодирования, формирования адреса следующей команды и исполнения имеют место всегда.
В определенных ситуациях возможны еще два этапа:
- косвенная адресация;
- реакция на прерывание.
Стандартный цикл команды
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цик ла команды. При изучении данного материала следует учитывать, что приводимое описание имеет целью лишь дать представление о сущности каждого из этапов. В то же время распределение функций по разным этапам цикла команды и после довательность выполнения некоторых из них в реальных ВМ могут отличаться от излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор извлекает команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоич ный код команды помещается в регистр команды (РК) и с этого момента стано вится «видимым» для процессора.
Приведенная запись охватывает весь этап выборки, если длина команды совпа дает с разрядностью ячейки памяти. В то же время система команд многих ВМ предполагает несколько форматов команд, причем в разных форматах команда может занимать 1, 2 или более ячеек, а этап выборки команды можно считать за вершенным лишь после того, как в РК будет помещен полный код команды. Ин формация о фактической длине команды содержится в полях кода операции и спо соба адресации. Обычно эти поля располагают в первом слове кода команды, и для выяснения необходимости продолжения процесса выборки необходимо предва рительное декодирование их содержимого. Такое декодирование может быть про изведено после того, как первое слово кода команды окажется в РК. В случае мно гословного формата команды процесс выборки продолжается вплоть до занесения в РК всех слов команды.
Этап формирования адреса следующей команды
Для фон-неймановских машин характерно размещение соседних команд програм мы в смежных ячейках памяти. Если извлеченная команда не нарушает естествен ного порядка выполнения программы, для вычисления адреса следующей выпол няемой команды достаточно увеличить содержимое счетчика команд на длину те кущей команды, представленную количеством занимаемых кодом команды ячеек памяти.
Длина команды, а также то , способна ли она изменить естественный порядок выполнения команд программы, выясняются в ходе ранее упоминавшегося пред варительного декодирования. Если извлеченная команда способна изменить по следовательность выполнения программы (команда условного или безусловного перехода, вызова, процедуры и т. п.), процесс формирования адреса следующей команды переносится на этап исполнения операции. В силу сказанного, в ряде ВМ рассматриваемый этап цикла команды следует не за выборкой команды, а нахо дится в конце цикла.
Этап декодирования команды
После выборки команды она должна быть декодирована, для чего ЦП расшифро вывает находящийся в РК код команды. В результате декодирования выясняются следующие моменты:
- находится ли в РК полный код команды или требуется дозагрузка остальных слов команды;
- какие последующие действия нужны для выполнения данной команды;
- если команда использует операнды, то откуда они должны быть взяты (номер регистра или адрес ячейки основной памяти);
- если команда формирует результат, то куда этот результат должен быть направлен.
Ответы на два первых вопроса дает расшифровка кода операции, результатом которой может быть унитарный код, где каждый разряд соответствует одной из команд. На практике вместо унитар ного кода могут встретиться самые разнообразные формы представления резуль татов декодирования, например адрес ячейки специальной управляющей памяти, где хранится первая микрокоманда микропрограммы для реализации указанной в команде операции.
Полное выяснение всех аспектов команды, помимо расшифровки кода опера ции, требует также анализ адресной части команды, включая поле способа адре сации.
По результатам декодирования производится подготовка электронных схем ВМ к выполнению предписанных командой действий.
Этап вычисления адресов операндов
Этап имеет место, если в процессе декодирования команды выясняется, что команда использует операнды. Если операнды размещаются в основной памяти, осуществ ляется вычисление их исполнительных адресов, с учетом указанного в команде способа адресации. Так, в случае индексной адресации для получения исполни тельного адреса производится суммирование содержимого адресной части коман ды и содержимого индексного регистра.
Этап выборки операндов
Вычисленные на предыдущем этапе исполнительные адреса используются для считывания операндов из памяти и занесения в определенные регистры процессора. Например, в случае арифметической команды операнд после извлечения из памя ти может быть загружен во входной регистр АЛУ. Однако чаще операнды предва рительно заносятся в специальные вспомогательные регистры процессора, а их пересылка на вход АЛУ происходит на этапе исполнения операции.
Этап исполнения операции
На этом этапе реализуется указанная в команде операция. В силу различия сущ ности каждой из команд ВМ, содержание этого этапа также сугубо индивидуально. Этапы исполнения некоторых команд будут рассмотрены на примере вы полнения учебной программы для приведенной на рис. 11.1 гипотетической вы числительной машины.
Этап записи результата
Этап записи результата присутствует в цикле тех команд, которые предполагают занесение результата в регистр или ячейку основной памяти. Фактически его можно считать частью этапа исполнения, особенно для тех команд, которые помещают результат сразу в несколько мест.
Описание стандартных циклов команды для гипотетической машины
Для анализа содержания стандартных циклов команды обратимся к гипотетичес кой ВМ (см. рис. 11.1), для которой составим программу сложения двух чисел и вывода суммы на устройство вывода, если эта сумма не равна 0.
Список необходимых команд приведен в табл. 11.1, а сама программа — в табл. 11.2. Предполагается, что команды программы будут размещаться в основной памяти, начиная с адреса 100, а операнды — с адреса 200. Для вывода результата назначим порт с номером 5.
Таблица 11.1. Команды гипотетической вычислительной машины.