Вы находитесь на странице: 1из 11

Лекция 5

Функциональная организация
фон-неймановской ЭВМ
План
1. Функциональная схема фон-неймановской ЭВМ.
2. Рабочий цикл процессора.

1. Функциональная схема фон-неймановской ЭВМ


Чтобы получить более детальное представление о структуре и функциях
устройств ВМ, обратимся к схеме гипотетической машины с аккумуляторной ар-
хитектурой (рис. 5.1).

Рис. 5.1. Обобщенная функциональная схема фон-неймановской ЭВМ


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

-1-
Курс «Организация ЭВМ и систем»
(лекции)
Устройство управления
Основная функция устройства управления (УУ) – организация автоматиче-
ского выполнения программ и функционирования ВМ как единой системы.
Устройство управления состоит из следующих основных блоков:
- счетчик команд; - регистр данных памяти;
- регистр команд; - дешифратор кода операции;
- указатель стека; - микропрограммный автомат.
- регистр адреса памяти;
Счетчик команд
Согласно принципу программного управления (ППУ) соседние команды про-
граммы располагаются в ячейках памяти со следующими по порядку адресами и
выполняются преимущественно в той же очередности, в какой они размещены в
памяти ВМ. Таким образом, адрес очередной команды может быть получен пу-
тем увеличения адреса ячейки, из которой была считана текущая команда, на
длину выполняемой команды, представленную числом занимаемых ею ячеек.
Счетчик команд (СК) – это двоичный счетчик, в котором хранится и моди-
фицируется адрес очередной команды программы. Он обеспечивает реализацию
ППУ. Перед началом вычислений в СК заносится адрес ячейки основной памяти,
где хранится команда, которая должна быть выполнена первой. В рассматривае-
мой ВМ любая команда занимает одну ячейку, поэтому содержимое СК увели-
чивается на единицу, что обеспечивается подачей сигнала управления +1СК. По
завершении текущей команды адрес следующей команды программы всегда бе-
рется из счетчика команд. Для изменения естественного порядка вычислений
(перехода в иную точку программы) в СК заносят адрес точки перехода.
Хотя термин «счетчик команд» считается общепринятым, его нельзя при-
знать вполне удачным из-за того, что он создает неверное впечатление о задачах
данного узла. По этой причине разработчики ВМ используют иные названия, в
частности, программный счетчик (PC, Program Counter) или указатель ко-
манды (IP, Instruction Pointer). Последнее определение представляется наиболее
удачным, поскольку точнее отражает назначение рассматриваемого узла УУ.
В заключение добавим, что в ряде ВМ счетчик команд реализуется в виде
обычного регистра, а увеличение его содержимого производится внешней схе-
мой (схемой инкремента/декремента).
Регистр команды
Счетчик команд определяет лишь местоположение команды в памяти, но не
содержит информации о том, что это за команда. Чтобы приступить к выполне-
нию команды, ее необходимо извлечь из памяти и разместить в регистре ко-
манды. Только с момента загрузки команды в регистр команд она становится
«видимой» для процессора.
В регистре команды (РК) хранится команда, выполняемая процессором в
данный момент. Этап извлечения команды из памяти и размещения ее в РК носит
название выборки команды. В РК команда хранится в течение всего времени ее
выполнения.

-2-
Курс «Организация ЭВМ и систем»
(лекции)
Как уже отмечалось ранее, любая команда содержит два поля: поле кода опе-
рации и поле адресной части. Учитывая это, регистр команды иногда рассматри-
вают как совокупность двух регистров - регистра кода операции (РКОп) и реги-
стра адреса (РА), в которых хранятся соответствующие составляющие ко-
манды.
Указатель стека
Указатель стека (УС) - это регистр, где хранится адрес вершины стека.
При выполнении операции занесения в стек (push) содержимое УС с помо-
щью сигнала -1УС сначала уменьшается на единицу, после чего используется в
качестве адреса, по которому производится запись. Соответствующая ячейка
становится новой вершиной стека. Считывание из стека (операция рор) происхо-
дит из ячейки, на которую указывает текущий адрес в УС, после чего содержи-
мое указателя стека сигналом +1УС увеличивается на единицу. Таким образом,
вершина стека поднимается, а считанное слово считается удаленным из стека.
Хотя физически считанное слово и осталось в ячейке памяти, при следующей
записи в стек оно будет заменено новой информацией.
Регистр адреса памяти
Регистр адреса памяти (РАП) предназначен для хранения адреса ячейки ос-
новной памяти вплоть до завершения операции (считывание или запись) с этой
ячейкой.
Наличие РАП позволяет компенсировать различия в быстродействии ОП и
прочих устройств машины.
Регистр данных памяти
В регистр данных памяти (РДП) при чтении заносится содержимое ячейки
ОП, а при записи – помещается информация, подлежащая сохранению в ячейке
ОП. Момент считывания и записи в ячейку определяется сигналами ЧтЗУ и
ЗпЗУ соответственно.
Наличие этого регистра позволяет компенсировать разницу в быстродей-
ствии ЗУ и устройств, выступающих в роли источников и потребителей храни-
мой информации.
Дешифратор кода операции
Дешифратор кода операции (ДКОп) преобразует код операции в форму, тре-
буемую, для работы микропрограммного автомата (МПА). Информация после
декодирования определяет последующие действия МПА, а ее вид зависит от ор-
ганизации МПА. В рассматриваемой ВМ - это унитарный код УнитК.
Часто код операции преобразуется в адрес первой команды микропро-
граммы, реализующей указанную в команде операцию.
Микропрограммный автомат
Микропрограммный автомат (МПА) формирует последовательность сигна-
лов управления, в соответствии с которыми производятся все действия, необхо-
димые для выборки из памяти и выполнения команд. Это центральный узел ус-
тройства управления.
Исходной информацией для МПА служат:

-3-
Курс «Организация ЭВМ и систем»
(лекции)
- декодированный код операции;
- состояние признаков (флагов), характеризующих результат предшествую-
щих вычислений;
- внешние запросы на прерывание текущей программы.
Арифметико-логическое устройство
Это устройство предназначено для арифметической и логической обработки
данных и состоит, в общем случае, из следующих блоков:
- операционный блок; - регистр признаков;
- регистры операндов; - аккумулятор.
Операционный блок
Операционный блок (ОПБ) представляет собой ту часть АЛУ, которая, соб-
ственно, и выполняет арифметические и логические операции над поданными на
вход операндами. Выбор конкретной операции из возможного списка операций
для данного ОПБ определяется кодом операции команды. На структуре рис. 5.1
код операции поступает непосредственно из регистра команды. В реальных ма-
шинах КОп зачастую преобразуется в МПА в иную форму и уже из микропро-
граммного автомата поступает в АЛУ. Операционные блоки современных АЛУ
строятся как комбинационные схемы, то есть они не обладают внутренней памя-
тью и до момента сохранения результата операнды должны присутствовать на
входе блока.
Регистры операндов
Регистры РХ и PY обеспечивают сохранение операндов на входе операцион-
ного блока вплоть до получения результата операции и его записи (в данном слу-
чае в аккумулятор).
Регистр признаков
Регистр признаков (РПрз) предназначен для фиксации и хранения признаков
(флагов), характеризующих результат последней выполненной арифметической
или логической операции.
Такие признаки могут информировать о равенстве результата нулю, о знаке
результата, о возникновении переноса из старшего разряда, переполнении раз-
рядной сетки и т. д.
Содержимое РПрз обычно используется устройством управления для реали-
зации условных переходов по результатам операций АЛУ. Под каждый из воз-
можных признаков отводится один разряд РПрз.
Аккумулятор
Аккумулятор (Акк) - это регистр, предназначенный для выполнения множества
функций:
1) в него предварительно загружается один из операндов, участвующих в
арифметической или логической операции;
2) в нем может храниться результат предыдущей операции;
3) в него заносится результат очередной операции;
4) через аккумулятор обычно производятся операции ввода-вывода.

-4-
Курс «Организация ЭВМ и систем»
(лекции)
Основная память
Основная память (ОП) (вне зависимости от типа используемых микросхем)
представляет собой массив запоминающих элементов, организованных в виде
ячеек, способных хранить некую единицу информации, обычно один байт. Каж-
дая ячейка имеет уникальный адрес. Ячейки ОП организованы в виде матрицы,
а выбор ячейки осуществляется путем подачи разрешающих сигналов на соот-
ветствующие строку и столбец этой матрицы. Это обеспечивается дешифрато-
ром адреса памяти.
Он преобразует поступивший из регистра адреса памяти адрес ячейки в раз-
решающие сигналы, подаваемые в горизонтальную и вертикальную линии, на
пересечении которых расположена адресуемая ячейка.
При современной емкости оперативная память реализуется на нескольких
микросхемах запоминающих устройств (ЗУ). В этих условиях процесс обраще-
ния к ячейке состоит из:
- выбора нужной микросхемы (на основании старших разрядов адреса);
- выбора ячейки внутри микросхемы (определяется младшими разрядами
адреса). Первая часть процедуры производится внешними схемами, а вторая —
внутри микросхем ЗУ.
Модуль ввода/вывода
Модуль ввода/вывода (МВВ) обеспечивает подключение к ВМ различных пе-
риферийных устройств (ПУ) и обмен информацией с ними. На рис. 5.1 этот мо-
дуль состоит из:
- множества портов ввода;
- множества портов вывода;
- дешифратора номера порта ввода/вывода (ДВВ).
Структура, приведенного на рис. 5.1 модуля ввода/вывода, обеспечивает
только пояснение логики работы ВМ. В реальных ВМ реализация этого устрой-
ства машины может существенно отличаться от рассматриваемой.
Порты ввода и порты вывода
Порт – это схема, организующая передачу информации из периферийного
устройства ввода в регистр АЛУ (в данном случае – в аккумулятор) (порт ввода)
и наоборот (из аккумулятора на периферийное устройство вывода) (порт вы-
вода). Схема обеспечивает электрическое и логическое сопряжение ВМ с под-
ключенным к нему периферийным устройством.
Дешифратор номера порта ввода/вывода
В модуле ввода/вывода рассматриваемой ВМ предполагается, что каждое ПУ
подключается к своему порту. Каждый порт имеет уникальный номер, который
указывается в адресной части команд ввода/вывода.
Дешифратор номера порта ввода/вывода (ДВВ) обеспечивает преобразова-
ние номера порта в сигнал, разрешающий операцию ввода или вывода на соот-
ветствующем порте. Непосредственно ввод-вывод происходит при поступлении
из МПА сигнала Вв (Выв).

-5-
Курс «Организация ЭВМ и систем»
(лекции)
Процесс функционирования вычислительной машины состоит из последова-
тельности пересылок информации между ее узлами и элементарных действий,
выполняемых в узлах. Понятие узла здесь трактуется весьма широко: от регистра
до АЛУ или основной памяти. Также широко следует понимать и термин «эле-
ментарное действие». Это может быть установка регистра в некоторое состояние
или выполнение операции в АЛУ. Любое элементарное действие производится
при поступлении соответствующего сигнала управления (СУ) из микропро-
граммного автомата устройства управления. Возможная частота формирования
сигналов на выходе автомата определяется синхронизирующими импульсами,
поступающими от генератора тактовых импульсов (ГТИ). Элементарные пе-
ресылки или преобразования информации, выполняемые в течение одного такта
сигналов синхронизации, называются микрооперациями (рис. 5.2). В течение
одного такта могут одновременно выполняться несколько микроопераций. Со-
вокупность сигналов управления, вызывающих микрооперации, выполняемые в
одном такте, называют микрокомандой. Относительно сложные действия, вы-
полняемые вычислительной машиной в процессе ее работы, реализуются как по-
следовательность микроопераций и могут быть заданы последовательностью
микрокоманд, называемой микропрограммой. Реализует микропрограмму, то
есть вырабатывает управляющие сигналы, задаваемые ее микрокомандами, мик-
ропрограммный автомат (МПА).

Микрокоманда 1 Микропрограмма 1
Микрооперация 1
Программа
Микрокоманда 2
Команда 1
Микрооперация 21 Микрооперация 22 … Микрооперация 2k

суммирование приращение счетчика чтение регистра


Команда 2 …

Микрокоманда m
… Микрооперация m
Команда n

Микропрограмма 2

Рис. 5.2. Иерархия команд на аппаратном уровне

2. Рабочий цикл процессора


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

-6-
Курс «Организация ЭВМ и систем»
(лекции)
и выполнения команды, называют рабочим циклом процессора или циклом
команды (рис. 5.3).
Начало
1
да нет
Счет или
ожидание?

Запрос да да Запрос
прерыва- прерыва-
ний? ний?

нет t1
нет Обработка
прерываний
Выборка команды,
формирование адреса
следующей команды 1
в счетчике команд

Анализ кода операций в команде


Команды
Основные Управления Системные Ввода-вывода
Формирование Изменение Формирование
исполнительного состояния номера канала
адреса операндов t2 процессора или ПУ

Выборка
t3 операндов из ЗУ
Условие нет Канал или да
перехода вы- ПУ
Выполнение опе- полняется? свободен?
раций в АЛУ нет
да
t4
Формирование Передача адреса
признаков перехода
результатов в счетчик команд Переход процес-
сора в режим
ожидания
Запись Передача в канал
t5 результатов или ПУ
кода операции
ввода/вывода и
номера ПУ

1
Рис. 5.3. Рабочий цикл процессора

-7-
Курс «Организация ЭВМ и систем»
(лекции)
В общем случае цикл команды включает в себя несколько этапов,
образующих стандартный цикл команды:
- выборку команды;
- формирование адреса следующей команды;
- декодирование команды;
- вычисление адресов операндов;
- выборку операндов;
- исполнение операции;
- запись результата.
В определенных ситуациях возможны еще два этапа:
- косвенная адресация;
- реакция на прерывание.
Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного
цикла команды.
При изучении данного материала следует учитывать, что приводимое
описание имеет целью лишь дать представление о сущности каждого из этапов.
В то же время распределение функций по разным этапам цикла команды и после-
довательность выполнения некоторых из них в реальных ВМ могут отличаться
от излагаемых.
Этап выборки команды
Цикл любой команды начинается с того, что центральный процессор
извлекает команду из памяти, используя адрес, хранящийся в счетчике команд
СК. Двоичный код команды помещается в регистр команды РК и с этого момента
становится «видимым» для процессора.
Система команд во многих ВМ предполагает несколько форматов команд,
длина которых может быть более одной ячейки. Этап выборки команды можно
считать завершенным лишь после того, как в РК будет помещен полный код
команды.
Информация о фактической длине команды содержится в поле длина команды.
Обычно оно располагает в первом слове кода команды, и для выяснения
необходимости продолжения процесса выборки необходимо предварительное
декодирование его содержимого. Такое декодирование может быть произведено
после того, как первое слово кода команды окажется в РК.
Этап формирования адреса следующей команды
Для фон-неймановских машин характерно размещение соседних команд
программы в смежных ячейках памяти. Если извлеченная команда не нарушает
естественного порядка выполнения программы, для вычисления адреса
следующей выполняемой команды достаточно увеличить содержимое счетчика
команд на длину текущей команды, представленную количеством занимаемых
кодом команды ячеек памяти.
Длина команды, а также то, способна ли она изменить естественный порядок
выполнения команд программы, выясняются в ходе ранее упоминавшегося пред-
варительного декодирования. Если извлеченная команда способна изменить по-
следовательность выполнения программы (команда условного или безусловного

-8-
Курс «Организация ЭВМ и систем»
(лекции)
перехода, вызова процедуры и т. п.), процесс формирования адреса следующей
команды переносится на этап исполнения операции. В силу сказанного, в ряде
ВМ рассматриваемый этап цикла команды следует не за выборкой команды, а
находится в конце цикла.
Этап декодирования команды
После выборки команды она должна быть декодирована, для чего ЦП
расшифровывает находящийся в РК код команды. В результате декодирования
выясняются следующие моменты:
- какие последующие действия нужны для выполнения данной команды;
- если команда использует операнды, то откуда они должны быть взяты
(номер регистра или адрес ячейки основной памяти);
- если команда формирует результат, то куда этот результат должен быть
направлен.
Ответы на первый вопрос дает расшифровка кода операции. Полное
выяснение всех аспектов команды требует анализа кода операции, поля способа
адресации и адресной части команды.
По результатам декодирования производится подготовка электронных схем
ВМ к выполнению предписанных командой действий.
Этап вычисления адресов операндов
Этап имеет место, если в процессе декодирования команды выясняется, что
команда использует операнды. Если операнды размещаются в основной памяти,
осуществляется вычисление их исполнительных адресов, с учетом указанного в
команде способа адресации.
Этап выборки операндов
Вычисленные на предыдущем этапе исполнительные адреса используются
для считывания операндов из памяти и занесения в определенные регистры
процессора.
Например, в случае арифметической команды операнд после извлечения из
памяти может быть загружен во входной регистр АЛУ. Однако чаще операнды
предварительно заносятся в специальные вспомогательные регистры процессора
(РОН), а их пересылка на вход АЛУ происходит на этапе исполнения операции.
Этап исполнения операции
На этом этапе реализуется указанная в команде операция. В силу различия
сущности каждой из команд ВМ, содержание этого этапа также сугубо
индивидуально.
Этап записи результата
Этап записи результата присутствует в цикле тех команд, которые
предполагают занесение результата в регистр или ячейку основной памяти.
Этап косвенной адресации
Если способ адресации операндов относится к косвенным, в цикле команды
присутствует этап косвенной адресации.
В этом случае чтобы прочитать или записать операнд, сначала нужно извлечь
из памяти его адрес и только после этого произвести нужное действие (чтение
-9-
Курс «Организация ЭВМ и систем»
(лекции)
или запись операнда). Требуется выполнить два обращения к памяти. Этап
косвенной адресации относится к этапу вычисления адресов операндов.
Этап прерывания
Модули ввода/вывода (и не только они) могут прервать выполнение текущей
программы для внеочередного выполнения другой программы, с последующим
возвратом к прерванной. В случае прерываний, пока протекает операция
ввода/вывода, ЦП способен выподнять другие команды.
В упрощенном виде процедуру прерывания можно описать следующим обра-
зом. Объект, требующий внеочередного обслуживания, выставляет на
соответствующем входе ЦП сигнал запроса прерывания. Перед переходом к
очередному циклу команды процессор проверяет этот вход на наличие запроса.
Обнаружив запрос, ЦП запоминает информацию, необходимую для
продолжения нормальной работы после возврата из прерывания, и переходит к
выполнению программы обработки прерывания (обработчика прерывания). По
завершении обработки прерывания ЦП восстанавливает состояние прерванного
процесса, используя запомненную информацию, и продолжает вычисления.
На рис. 5.4 показаны потоки информации в ходе этапов выборки команды,
косвенной адресации и прерывания.
а) б) в)

РДП РДП РДП

Рис. 5.4. Потоки информации при реализации цикла команды:


а) этап выборки; б) этап косвенной адресации; в) этап прерывания
Содержание цикла команды можно также представить с помощью
диаграммы состояний (рис. 5.5).
На такой диаграмме цикл команды представляется в виде
последовательности состояний. Для каждой конкретной команды некоторые
состояния могут быть нулевыми, а некоторые могут неоднократно повторяться.
Полный цикл команды может включать в себя следующие состояния:
Вычисление адреса команды. Определение исполнительного адреса
команды, которая должна выполняться следующей.
Выборка команды. Чтение команды из ячейки памяти и занесение ее в РК.
Декодирование команды. Анализ команды с целью выяснения типа
подлежащей выполнению операции и операндов.
Вычисление адреса операнда. Определение исполнительного адреса
операнда, если операция предполагает обращение к операнду, хранящемуся в
памяти или же доступному посредством ввода.

-10-
Курс «Организация ЭВМ и систем»
(лекции)
Рис. 5.5. Диаграмма состояний цикла команды
Выборка операнда. Выборка операнда из памяти или его ввод с устройства ввода.
Операция с данными. Выполнение операции, указанной в команде.
Запись операнда. Запись результата в память или вывод на устройство вы-
вода.
Состояния в верхней части диаграммы описывают обмен, между ЦП и
памятью либо между ЦП и модулем ввода/вывода. Состояния в нижней части
обозначают только внутренние операции ЦП.
Вычисление адреса операнда встречается дважды, поскольку команда может
включать в себя чтение, запись или и то и другое, однако действия, выполняемые
в этом состоянии, в обоих случаях одни и те же, поэтому используется один и
тот же идентификатор состояния.
Следует отметить, что диаграмма допускает множественные операнды и
результаты, как того требуют некоторые команды. Кроме того, в ряде ВМ
единственная команда может определять операцию над вектором (одномерным
массивом чисел) или строкой (одномерным массивом символов), что требует
повторяющихся операций выборки и/или записи. Диаграмма отражает также
возможность этапов прерывания и косвенной адресации.

-11-
Курс «Организация ЭВМ и систем»
(лекции)

Оценить