ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5268
Скачиваний: 8
Глава 3
Функциональная
организация
фон-неймановской ВМ
Данная глава посвящена рассмотрению базовых принципов построения и функ-
ционирования фон-неймановских вычислительных
схема фон-неймановской
вычислительной машины
Чтобы получить более детальное представление о структуре и функциях уст-
ройств ВМ, обратимся к схеме гипотетической машины с аккумуляторной ар-
хитектурой
3.1). Для упрощения изложения приняты следующие харак-
теристики машины:
•
Одноадресные команды.
Адресная часть команды содержит только один ад-
При выполнении операций с двумя операндами предполагается, что
операнд находится в специальном регистре АЛУ — аккумуляторе, а резуль-
тат также остается в аккумуляторе.
•
Единство форматов.
Длина команд и данных совпадает с разрядностью ячеек
памяти, то есть любая команда или операнд занимают только одну ячейку па-
мяти. Таким образом, адрес очередной команды в памяти может быть получен
путем прибавления единицы к адресу текущей команды, а для извлечения
памяти любой команды или любого операнда достаточно одного обращения к
памяти.
На функциональной схеме (см. рис. 3.1) показаны типовые узлы каждого
основных устройств ВМ, а также сигналы, инициирующие выполнение отдель-
ных операций по пересылке информации и ее обработке, необходимых для функ-
ционирования машины.
схема фон-неймановской вычислительной машины
Устройство управления
Назначение устройства управления
было определено ранее при рассмотре-
нии структурной схемы ВМ, где отмечалось, что эта часть ВМ организует автома-
тическое выполнение программ и функционирование ВМ как единой системы.
Теперь остановимся на описании узлов, реализующих целевую функцию УУ.
устройство (АЛУ)
Устройство управления (УУ)
Рис.
Функциональная схема гипотетической фон-неймановской ЭВМ
Счетчик команд
Счетчик команд
(СК) — неотъемлемый элемент устройства управления любой ВМ,
построенной в соответствии с фон-неймановским принципом программного уп-
равления. Согласно этому принципу соседние команды программы
ся в ячейках памяти со следующими по порядку адресами и выполняются преиму-
щественно в той же очередности, в какой они размещены в памяти ВМ. Таким
образом, адрес очередной команды может быть получен путем увеличения адреса
ячейки, из которой была считана текущая команда, на длину выполняемой команды,
представленную числом занимаемых ею ячеек. Реализацию такого режима и при-
1 2 8 Глава 3. Функциональная организация фон-неймановской ВМ
зван обеспечивать счетчик команд — двоичный счетчик, в котором хранится и мо-
дифицируется адрес очередной команды программы. Перед началом вычислений
в СК заносится адрес ячейки основной памяти, где хранится команда, которая дол-
жна быть выполнена первой. В процессе выполнения каждой команды путем уве-
личения содержимого СК на длину выполняемой команды в счетчике формирует-
ся адрес следующей подлежащей выполнению команды. В рассматриваемой ВМ
любая команда занимает одну ячейку, поэтому содержимое СК
на
единицу, что обеспечивается подачей сигнала управления +1СК. По завершении
текущей команды адрес следующей команды программы всегда берется из счетчи-
ка команд. Для изменения естественного
(перехода в иную
точку программы) достаточно занести в СК адрес точки перехода.
Хотя термин
команд» считается общепринятым, его нельзя признать
вполне удачным из-за того, что он создает неверное впечатление о задачах данного
узла. По этой причине разработчики
используют иные названия, в частности
программный счетчик
(PC, Program Counter) или
указатель команды
(IP, Instruction
Pointer). Последнее определение представляется наиболее удачным, поскольку точ-
нее отражает назначение рассматриваемого узла УУ.
В заключение добавим, что в ряде ВМ счетчик команд реализуется в виде обыч-
ного регистра, а увеличение его содержимого производится внешней схемой (схе-
мой инкремента/декремента).
Регистр команды
Счетчик команд определяет лишь местоположение команды в памяти,
не
держит информации о том, что это за команда. Чтобы приступить к выполнению
команды, ее необходимо извлечь из памяти и
регистре команды
(РК).
Этот этап носит название
выборки команды.
Только с момента загрузки команды
в
она становится «видимой» для процессора. В РК команда хранится в течение
всего времени ее выполнения. Как уже отмечалось ранее, любая команда содер-
жит два поля: поле кода операции и поле адресной части. Учитывая это обстоя-
тельство, регистр команды иногда рассматривают как совокупность двух регист-
ров
кода операции
(РКОп)
адреса
(РА), в которых хранятся
соответствующие составляющие команды.
Если команда занимает несколько последовательных ячеек, то код операции
всегда находится в том слове команды, которое извлекается из памяти первым.
Это позволяет по коду операции определить, требуются ли считывание из памяти
и загрузка в РК остальных слов команды. Собственно выполнение команды начи-
нается только после занесения в РК ее полного кода.
Указатель стека
Указатель стека
(УС) — это регистр, где хранится адрес вершины стека. В реаль-
ных вычислительных машинах стек реализуется в виде участка основной памяти,
обычно расположенного в области наибольших адресов. Заполнение стека проис-
ходит в сторону
адресов, при этом вершина стека — это ячейка, куда
была произведена последняя по времени запись. Для хранения адреса такой ячей-
ки и предназначен УС. При выполнении операции
push
(занесение в стек) содер-
Функциональная схема фон-неймановской вычислительной машины
жимое УС с помощью сигнала -1УС сначала уменьшается на единицу, после чего
используется в качестве адреса, по которому производится запись. Соответствую-
щая ячейка становится новой вершиной стека. Считывание из стека
pop)
происходит из ячейки, на которую указывает текущий адрес в УС, после чего со-
держимое указателя стека сигналом +1УС увеличивается на единицу. Таким обра-
зом, вершина стека опускается, а считанное слово считается удаленным из стека.
Хотя физически считанное слово и осталось в ячейке памяти, при следующей за-
писи в стек оно будет заменено новой информацией.
Регистр адреса памяти
Регистр адреса памяти
(РАП) предназначен для хранения адреса ячейки основ-
ной памяти вплоть до завершения операции (считывание или запись) с этой ячей-
кой. Наличие РАП позволяет компенсировать различия в быстродействии
и прочих устройств машины.
Регистр данных памяти
Регистр данных памяти
(РДП) призван компенсировать разницу в быстродействии
запоминающих устройств и устройств, выступающих в роли источников и потре-
бителей хранимой информации. В РДП при чтении заносится содержимое ячейки
ОП, а при записи — помещается информация, подлежащая сохранению в ячейке
ОП. Собственно момент считывания и записи в ячейку определяется сигналами
ЧтЗУ и ЗпЗУ соответственно. .
Дешифратор кода операции
Дешифратор кода операции
преобразует
операции в форму, требуе-
мую для работы микропрограммного автомата (МПА). Информация после деко-
дирования определяет последующие действия МПА, ее вид зависит от организа-
ции МПА. В рассматриваемой ВМ это унитарный код УнитК. Часто код операции
преобразуется в адрес первой команды микропрограммы, реализующей указанную
в команде операцию. С этих позиций ДКОп правильнее было бы назвать не де-
шифратором, а преобразователем кодов.
автомат
Микропрограммный автомат
(МПА) правомочно считать
узлом ус-
тройства управления. Именно МПА формирует последовательность сигналов уп-
равления, в соответствии с которыми производятся все действия, необходимые для
выборки из памяти и выполнения команд. Исходной информацией для МПА слу-
жат: декодированный код операции, состояние признаков (флагов), характеризу-
ющих результат предшествующих вычислений, а также внешние запросы на пре-
рывание текущей программы и переход на программу обслуживания прерывания.
Арифметико-логическое устройство
Это устройство, как следует из его названия, предназначено для арифметической
и логической обработки данных. В машине, изображенной на рис. 3.1, оно содер-
жит следующие узлы.
5
470
Глава 3. Функциональная организация фон-неймановской ВМ
Операционный блок
Операционный блок
(ОПБ) представляет собой ту часть АЛУ, которая, собствен-
но, и выполняет арифметические и логические операции над поданными на вход
операндами. Выбор конкретйой операции из возможного списка операций для дан-
ного ОПБ определяется кодом операции команды. В нашей ВМ код операции по-
ступает непосредственно из регистра команды. В реальных машинах КОп зачас-
тую преобразуется в МПА в иную форму и уже из микропрограммного автомата
поступает в АЛУ. Операционные блоки современных АЛУ строятся как комбина-
ционные схемы, то есть они не обладают внутренней памятью и до момента сохра-
нения результата операнды должны присутствовать на входе блока.
Регистры операндов
Регистры РХ и PY обеспечивают сохранение операндов на входе операционного
блока вплоть до получения результата операции и его записи (в нашем случае
в аккумулятор).
Регистр признаков
Регистр признаков
(РПрз) предназначен для фиксации и хранения признаков (фла-
гов), характеризующих результат последней выполненной арифметической или
логической операции. Такие признаки могут информировать о равенстве резуль-
тата нулю, о знаке результата, о возникновении переноса из старшего разряда, пе-
реполнении разрядной сетки и т. д. Содержимое РПрз обычно используется уст-
ройством управления для реализации условных переходов по результатам операций
АЛУ. Под каждый из
признаков отводится один разряд РПрз.
Формирование признаков осуществляется блоком формирования состояний
регистра признаков, который может входить в состав ОПБ либо реализуется в виде
внешней схемы, располагаемой между операционным блоком и РПрз.
Аккумулятор
Аккумулятор
(Акк) — это регистр, на который возлагаются самые разнообразные
функции. Так, в него предварительно загружается один из операндов, участвую-
щих в арифметической или логической операции. В Акк может храниться резуль-
тат предыдущей команды и в него же заносится результат очередной операции.
Через Акк зачастую производятся
ввода и вывода.
Строго говоря, аккумулятор в равной мере можно отнести как к АЛУ, так и к
У, а в ВМ с регистровой архитектурой его можно рассматривать как один из
гистров общего назначения.
Основная память
Вне зависимости от типа используемых микросхем основная память (ОП) пред-
ставляет собой массив запоминающих элементов (ЗЭ), организованных в
ячеек, способных хранить некую единицу информации, обычно один байт. Каж-
дая ячейка имеет уникальный адрес. Ячейки ОП организованы в виде матрицы,
а выбор ячейки осуществляется путем подачи разрешающих сигналов на соответ-
ствующие строку и столбец этой матрицы. Это обеспечивается дешифратором