Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 3_Структура компьютера Алгоритмы.doc
Скачиваний:
37
Добавлен:
20.03.2015
Размер:
589.82 Кб
Скачать

3.2. Основные концепции функционирования

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

1) Add R0,LOCA

Эта команда складывает операнд, хранящийся в памяти по адресу LOCA, с операндом, хранящимся в регистре R0 процессора, и помещает результат в этот же регистр. Исходное содержимое памяти по адресу LOCA не меняется, а содер­жимое регистра R0 перезаписывается. Данная команда выполняется в несколько этапов. Сначала она пересылается из памяти в процессор. Затем операнд коман­ды считывается из памяти по адресу LOCA и складывается с содержимым регист­ра R0, после чего результирующая сумма записывается в регистр R0.

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

1) Load R3,LOCA для Intel Architecture (IA-32): mov bx,loca

Add R0,R3 add ax,bx

Первая из этих команд копирует содержимое памяти по адресу LOCA в ре­гистр процессора R1, а вторая команда складывает содержимое регистров R1 и R0 и помещает сумму в регистр R0. Обратите внимание, что в результате выполне­ния двух команд исходное содержимое обоих регистров уничтожается, а содер­жимое памяти по адресу LOCA сохраняется.

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

На рис. 3.2 показано, как соединяются между собой память и процессор. Кро­ме того, рисунок иллюстрирует несколько важных особенностей функционирова­ния процессора, о которых мы с вами еще не говорили. На нем не показана реаль­ная схема соединений этих компонентов, поскольку пока мы обсуждаем только их функциональные характеристики. Более детально соединение компонентов описывается в разделе 8 при рассмотрении конструкции процессора.

Кроме АЛУ и управляющих схем процессор содержит множество регистров, предназначенных для разных целей. В регистре команды (Instruction Register, IR) содержится код выполняемой в данный момент команды. Ее результат доступен управляющим схемам, которые генерируют сигналы для управления различными элементами, участвующими в выполнении команды. Еще один специализирован­ный регистр, называемый счетчиком команд (Program Counter, PC), служит для контроля за ходом выполнения программы. В нем содержится адрес следующей команды, подлежащей выборке и выполнению. Пока выполняется очередная ко­манда, содержимое регистра PC обновляется — в него записывается адрес следую­щей команды. Говорят, что регистр PC указывает на команду, которая должна быть выбрана из памяти. Кроме регистров IR и PC на рис. 3.2 показано n регистров общего назначения, от R0 до R„-i. Для чего они нужны, объясняется в главе 2.

Наконец, еще два регистра обеспечивают взаимодействие с памятью. Это ре­гистр адреса (Memory Address Register, MAR) и регистр данных (Memory Data Register, MDR). В регистре MAR содержится адрес, по которому производится обращение к памяти, а в регистре MDR — данные, которые должны быть записа­ны в память или прочитаны из таковой по этому адресу.

Рассмотрим типичный процесс выполнения программы компьютером. Про­грамма располагается в памяти, куда обычно попадает через входное устройство. Ее выполнение начинается с записи в регистр PC адреса первой команды. Содер­жимое этого регистра пересылается в регистр MAR, а в память направляется управляющий сигнал Read. Когда истекает время, необходимое для доступа к па­мяти, адресуемое слово (в данном случае — первая команда программы) считыва­ется из памяти и загружается в регистр MDR. Затем содержимое регистра MDR пересылается в регистр IR. Команда готова к декодированию и выполнению.

Если команда требует, чтобы АЛУ выполнило определенную операцию, для нее необходимо получить операнды. Операнд, располагающийся в памяти (он может находиться и в регистре общего назначения), нужно сначала из таковой извлечь, переслав его адрес в регистр MAR и инициализировав цикл Read. После пересыл­ки из памяти в регистр MDR операнд будет направлен в АЛУ. Аналогичным обра­зом туда же будут переданы и остальные необходимые команде операнды, после чего АЛУ сможет выполнить требуемую операцию. Если результат должен быть сохранен в памяти, он будет записан в регистр MDR. Затем адрес, по которому его нужно записать в память, будет помещен в регистр MAR, после чего будет иниции­рован цикл Write. В какой-то момент в ходе выполнения текущей инструкции со­держимое регистра PC увеличивается, и он начинает указывать на следующую подлежащую выполнению инструкцию. Другими словами, как только завершится выполнение текущей инструкции, можно будет приступать к выборке следующей.

Рис. 3.2. Соединения между процессором и памятью

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

Если возникает необходимость срочно обслужить некоторое устройство (на­пример, когда устройство мониторинга в автоматизированном промышленном процессе обнаружит опасную ситуацию), нормальное выполнение программы может быть прервано. Для того чтобы немедленно отреагировать на эту ситуа­цию, компьютер должен прервать выполнение текущей программы. С этой целью устройство генерирует сигнал прерывания. Прерывание (interrupt) — это запрос, поступающий от устройства ввода-вывода, с требованием предоставить ему про­цессорное время. Для обслуживания этого устройства процессор выполняет соот­ветствующую программу обработки прерывания. А поскольку ее выполнение мо­жет изменить внутреннее состояние процессора, перед обслуживанием прерыва­ния нужно сохранить его состояние в памяти. Обычно в ходе этой операции сохраняется содержимое регистра PC, регистров общего назначения и некоторая управляющая информация. По завершении работы программы обработки преры­вания состояние процессора восстанавливается и прерванная программа продол­жает свою работу. Процессор со всеми его элементами (рис. 3.2) обычно реализует­ся в виде одной микросхемы, на которой располагается как минимум одно устрой­ство кэш-памяти. Такие чипы называются VLSI (VLSI — аббревиатура от Very Large Scale Integration, что переводится как очень крупномасштабная интеграция).