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

Принципы построения современных ЭВМ

Архитектура фон Неймана


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

Их работа основывается на трех базовых принципах,


предложенных Джоном фон Нейманом — принцип
программного управления, принцип, принцип
однородности памяти и принцип адресности памяти.
Архитектура фон Неймана
Принцип программного управления.
Согласно данному принципу, программа состоит из
набора команд, которые выполняются процессором
автоматически друг за другом в заданной последовательности.
Выборка программы из памяти осуществляется с
помощью специального регистра процессора— счетчика
команд. В этом регистре адрес хранящейся в нем очередной
команды последовательно увеличивается на ее длину.
Команды программы расположены в памяти друг за
другом, поэтому организуется выборка цепочки команд из
последовательно расположенных ячеек памяти. При переходе
не к следующей, а к какой-либо другой команде,
используются команды условного или безусловного
переходов, которые заносят в счетчик команд адрес ячейки
памяти, содержащей следующую команду. Выборка команд из
памяти прекращается после достижения и выполнения
команды "стоп". Таким образом, процессор исполняет
программу автоматически, без вмешательства человека.
Архитектура фон Неймана
Принцип однородности памяти.

Программы и данные хранятся в одной и той же


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

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

Cчетчик команд (PC) PC всегда указывает


Ячейка 0 на следующую
Ячейка 1 выполняемую
Ячейка 2 команду
Ячейка 3 Происходит чтение или запись в ячейку
в зависимости от команды.
…………...
После этого счетчик передвигается на
следующую команду
Ячейка N
Архитектура фон Неймана

Упрощенная схема вычислительной машины фон Неймана

Обработка информации на ЭВМ сводится к логическим и


арифметическим операциям над двоичными числами.
Архитектура фон Неймана

Операции сложения и сдвига двоичных чисел являются


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

Помимо арифметических, компьютер должен выполнять такие


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

Часть процессора, в которой выполняются эти операции,


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

Упрощенная схема одноразрядного АЛУ


Архитектура фон Неймана

Данное устройство осуществляет реализацию


следующих опера-ций:
3 логические — конъюнкцию A * B, дизъюнкцию A+B,
инверсию ~B;
Одну арифметическую A + B
Тип (код) выполняемой операции задается комбинацией
сигналов F0 и F1. Искомая комбинация обрабатывается
декодером (дешифратором). После декодирования по
соответствующим линиям сигналы поступают или в
логическое устройство (логические операции) или в
сумматор. Логическое устройство выполняет операции
конъюнкцию A * B, дизъюнкцию A+B, инверсию ~B;
Архитектура фон Неймана

АЛУ позволяет получить значения 0 (A=0, и B=0) задавая


инверсию входных сигналов ENA и ENB (сигналы
разрешения A, B), а также получить инверсию ~A. Если
ENA= 1, ENB=1, ~A= 1, то A и B поступают в логическое
устройство без изменений.
В сумматоре вычисляется арифметическая сумма A+B, и
формируется перенос. Выходной результат передается через
схему ИЛИ.
В принципе, в состав процессора могут входить несколько
АЛУ для реализации операций с целочисленными данными
(командами) и выполнения операций над данными с
плавающей точкой.
Архитектура фон Неймана

Функциональная схема устройства управления


Архитектура фон Неймана

Устройство управления (УУ) служит для автоматического


выполнения заданной программы или координации работы
всех устройств ЭВМ. Все устройства управления имеют
общую структуру, поскольку все они выполняют одни и те же
основные функции.
Реализация "внутренних" операций, связанных с выборкой
очередной команды, хранением команды в течение цикла,
преобразованием ее адресной части, выделяется в отдельный
блок, обычно называемый блоком управления командами
(БУК). Преобразование операционной части команды
осуществляется с помощью второго основного блока
устройства управления— блока микрокоманд (БМК). В
структуру УУ может входить блок прерываний.
Архитектура фон Неймана

Блок микрокоманд служит для преобразования


операционной части команды и формирования всех,
необходимых для выполнения заданной операции, наборов
управляющих сигналов.
В блоке управления командами формируется адрес
очередной команды, хранится код исполняемой команды и
осуществляется преобразование адресных частей команд,
включая действия по образованию исполнительных адресов,
по которым осуществляется непосредственная выборка
операндов.
Аппаратура и цепи передачи информации БУК
обеспечивают также изменение естественной
последовательности команд. Это необходимо при выполнении
команд условной или безусловной передачи управления и
других.
Архитектура фон Неймана
В состав блоков управления командами включаются
регистры, счетчики, сумматоры, и другие логические
элементы.
Блоки прерываний представляют собой аппаратную часть
общих систем прерываний, обеспечивающих в компьютерах
прерывание выполнения текущих программ и переход к
выполнению других программ.
Прерывания нужны также для разделения машинного
времени между различными рабочими программами и для
быстрого реагирования на ситуации, связанные с
выполнением текущих программ и состояниями устройств
компьютера. К таким ситуациям относятся: переполнение
разрядной сетки, нарушение защиты оперативной памяти,
выявление неисправности какого-либо устройства, наличие
ошибки в операционной части команды и т. п.
Архитектура фон Неймана

Системы команд и методы адресации

Несмотря на большое число разновидностей ЭВМ, на самом


низком ("машинном") уровне они имеют много общего. Система
команд любой ЭВМ обязательно содержит следующие группы
команд обработки информации:
• Команды передачи данных
Команды этой группы позволяют копировать информацию из
одного места в другое.
• Арифметические операции
К основным арифметическим действиям обычно относятся
сложение и вычитание сводимое к сложению а также умножение
, ,

и деление которые сводятся к сложению и сдвигу


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

Операционная часть команды имеется всегда Код


.

операции можно представить себе как некоторый условный


номер в списке сис темы команд
- .
Архитектура фон Неймана
Под форматом команды понимают совокупность размера всех
полей и их расположения в команде.
Упрощенный вид команды

Команды могут быть одно-, двух- и трехадресные, в


зависимости от количества возможных операндов Первые
.

ЭВМ имели наиболее простую и наглядную трехадресную


систему команд содержащую кроме кода операции три адреса
, .

Первый адрес A1 указывает на первый операнд второй A2 на


, —

второй операнд а третий A3, задает адрес размеще ния


, -

результата выполненной команды.


Архитектура фон Неймана

Предположим, что требуется вычислить значение


квадратного трехчлена y = ax2 + bx + c . Для простоты будем
y, x, a, b, c - считать адресами соответствующих ячеек
памяти. Код операции сложения обозначим символом "+",
операции пересылки — "→", операцию умножения — "*",
сумматор символом "Σ":
Архитектура фон Неймана

Если для операции требовалось меньшее количество адресов,


то лишние просто не использовались. Например, в операции
переписи указывались лишь ячейки источника и приемника
информации A1 и A3, а содержимое A2 не имело никакого
значения. Трехадресная команда легко расшифровывалась и
была удобна в использовании при программировании, но с
ростом объемов ОЗУ ее длина становилась слишком большой
Например для 32 разрядного компьютера и линейной
адресации памяти для для записи только адресной части
команды нужно 3 * 32 = 96 бит
Кроме того использова ние ячеек памяти которая имеет
, - ,

гораздо меньшее быстродействие чем процессор существенно


, ,

замедляет работу всей вычислительной системы.


Архитектура фон Неймана

Поэтому появились двухадресные машины, длина команды в


которых сокращалась за счет исключения адреса записи
результата.

В подобных ЭВМ результат операции оставался в


специальном регистре (сумматоре или аккумуляторе Σ) и
мог быть использован в последующих вычислениях. В
некоторых машинах результат записывался вместо одного из
операндов.
Архитектура фон Неймана
Архитектура фон Неймана
Дальнейшее упрощение команды привело к созданию
одноадресных машин .

Пусть надо сложить числа, хранящиеся в адресах ОЗУ


A1 и A2, а сумму поместить в А3. Для решения этой задачи
одноадресной машине потребуется выполнить три
команды:
1. извлечь содержимое ячейки A1 в сумматор;
2. сложить сумматор с числом из A2;
3. записать результат из сумматора в А3.
Может показаться, что одноадресной машине для решения
задачи потребуется втрое больше команд, чем
трехадресной. На самом же деле это справедливо далеко не
всегда
Архитектура фон Неймана
Архитектура фон Неймана

Из рассмотренных примеров видно, что при вычислении выражения, требуется 5


трехадресных команды и всего 9 одноадресных. Таким образом, одноадресная машина в
чем-то даже эффективнее, так как она не производит ненужной записи в память
промежуточных результатов.
Возможна реализация безадресной (нуль-адресной) машины, использующей
особый способ организации памяти — стек. Теперь такие компьютеры не выпускаются.
Однако безадресная система команд лежит в основе некоторых виртуальных машин Java,
.NET и Post Script.
Команды, имеющие трехадресный формат, используются в высокопроизводительных
вычислительных системах, например, построенных на базе POWER PC.
Архитектура фон Неймана

Непосредственная адресация - вместо адреса операнда в


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

Абсолютная (прямая) адресация. В команде указан


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

При косвенной адресации количество ячеек с адресами


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

Регистровая Косвенно регистровая

Коп Регистр процессора Коп Регистр - указатель

Операнд Адрес памяти

Операнд
• Регистровая относительная. Адрес операнда определяется
как сумма содержимого регистра и некоторой константы ,
называемой смещением. Как правило данном случае в качестве
указателя выступает смещение, а в регистре содержится целое
число, меняющееся при вычисле-ниях.
Архитектура фон Неймана
Регистровая относительная

Коп Регистр Смещение

Адрес + Данное

Базово индексная

Коп Базовый регистр Индексный регистр

Базовый адрес +

Данное
Архитектура фон Неймана


Базово индексная адресация. Адрес операнда
вычисляется как сумма чисел, содержащихся в базовом и
индексном регистрах процессора.

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

Коп Базовый Индексный Смещение


регистр регистр
Базовый + Данное
адрес

Индекс
Архитектура фон Неймана
Алгоритм выполнения команды вызова подпрограмм.
Call Адресация к месту в памяти, где расположена
(КОП) подпрограмма

………..
mov ax, bx ap1
Счетчик команд (PC, IP)
Программа call SUB ap2
Во время выполнения
add ah, al ap3 ap1
Вызов подпрограммы сall. При этом в стеке
…………... ap2 сохраняется этот адрес,
ap3 а затем заносится адрес
mov bp, sp as0 as0 начала подпрограммы
outportb al, 0x300 as1 as1
Подрограмма
SUB ……………... …….
return ax as_last as_last При возврате в PC
Возврат из ap3 Заносится сохраненное
…………... в стеке значение адреса
подпрограммы
продолжения основной
программы

Вам также может понравиться