Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Лекция 3.doc
Скачиваний:
79
Добавлен:
09.06.2015
Размер:
1.26 Mб
Скачать

Принцип работы машины фон Неймана

Машина фон Неймана состоит из запоминающего устройства (памяти) - ЗУ, арифметико-логического устройства - АЛУ, устройства управления - УУ, а также устройств ввода и вывода.

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

Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ),

Арифметико-логическое устройство выполняет указанные командами операции над указанными данными,

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

УУ управляет всеми частями компьютера и переключает их для выполнения всё новых и новых операций. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд», УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды, Операцию выполняет АЛУ или аппаратные средства компьютера.

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

4. Типовая структура машинной команды

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

Длина команды, количество, размер, положение, назначение и способ кодировки ее полей называется форматом команды.

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

 

Рис. 3. Формат команды

Поле «тип адресации» определяет способ адресации операнда. Биты полей «тип адресации» и «адреса операндов» в совокупности определяют ячейки памяти, в которых хранятся операнды.

В современных ЭВМ выделяют следующие форматы команд: трехадресный, двухадресный, одноадресный и безадресный. Эти форматы показаны на рис. 3, в котором приняты следующие обозначения: КОП – код операции,  – адрес операнда/результата.

 

Рис. 4. Форматы команд ЭВМ: 

а – трехадресный; б – двухадресный; в – одноадресный; г – безадресный

Команды трехадресного формата занимают много места в памяти, но при этом не все поля адресов используются в командах эффективно.

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

Поэтому трехадресные команды в системах команд реальных ЭВМ встречаются редко. Чаще используются двухадресные команды (рис. 4, б), в этом случае в двухместных операциях результат помещается на место одного из операндов.

Выполнение команд по программе, хранимой в ЭВМ. Программа представляет собой последовательность команд, хранимых в памяти компьютера. Команды ЭВМ (в машине Фон-Неймана) располагаются в ячейках программной памяти подряд, одна за другой. Рассмотрим одну из команд, записанную на машинном языке: 0001.0000001010. В переводе на обычный язык это значит: «сложить число из ячейки № 10 оперативной памяти с числом, стоящим в сумматоре».

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

Идет в ЭВМ такт за тактом. В одном такте команда из оперативной памяти подается в управляющее устройство. Она фиксируется в регистре команд. В следующем такте управляющее устройство реализует эту команду. А счетчик считает одну выполненную команду за другой.

Вот в счетчике команд появилось число 0001, и открывается ячейка № 4 оперативной памяти. Содержащаяся там команда поступает в регистр команд. Выбор команды закончен.

Она теперь находится в регистре. Содержание ее означает: «число в ячейке № 10 сложить с числом, стоящим в сумматоре». Это изображается уже известным нам кодом – 0001.0000001010.

Оперативная часть команды 0001, стоящая в регистре, пошлет сигнал «сложить» в арифметическое устройство. Адресная часть 0000001010 откроет выходы из ячейки № 10, и число из нее поступит в сумматор». Оно сложится с числом, которое там уже находилось.

Такт выполнения команды закончен. В счетчике команд появится цифра 0010–2,если обозначить в десятичной системе.

В следующем такте в регистр поступит команда из второй ячейки. Снова такт – выполнение этой команды. Так управляющее устройство такт за тактом выполнит все команды, произведет весь цикл вычисления.

Соседние файлы в папке Информатика