Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Архитектура классической ЭВМ. 2.1 Принцип программного управления



2.1 Принцип программного управления

Принцип программного управления впервые был реализован в ЭВМ “Марк-1”. Он заключается в том, что алгоритм вычислений (например, вычисление некоторого выражения) преобразуется в упорядоченную последовательность команд, преобразующих исходные данные (операнды) в результат. Таким образом действия, предписанные алгоритмами, закладываются в команды (например действия по сложению, вычитанию, умножению и делению чисел, логическим операциям над ними и т.д.). Последовательность команд называется программой. Программа управляет ходом вычислительного процесса.

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

Возможная программа его вычисления содержит следующие команды:

1-я команда: умножить операнд a на b;

2-я команда: сохранить результат умножения (a*b)в ОП;

3-я команда: сложитьоперанды a и b ;

4-я команда: умножить результат (a+b) на c;

5-я команда: считать из ОП (a*b);

6-я команда: разделить результат (a*b)на результат (a+b)* c.

Если числа представлены в двоичной системе счисления, и команды также закодированы двоичным кодом, то для реализации программы можно ввести следующую систему команд:

 

КОП 1-й операнд 2-й операнд

 

где КОП-код операции, или закодированные в двоичной системе счисления операции (+,-, /, * и т.д.), выполняемые процессором.

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

Программа вычислений в предложенной системе команд будет следующей:

1-я команда: умножить a0 на b0;

2-я команда: умножить a1 на b1;

3-я команда: сложить результат 1-й команды с результатом 2-й команды;

4-я команда: умножить a2 наb2;

5-я команда: сложить результат 3-й команды с результатом 4-й команды:

6-я команда: умножить a3 наb3;

7-я команда: сложить результат 3-й команды с результатом 4-й команды и т.д.

При использовании предложенной системы команд программа будет состоять из n- команд умножения и n - команд сложения, всего - из 2n-команд. Большое количество команд обусловлено тем, что нет возможности оперативного возврата к некоторым участкам программы, которые могли бы выполняться многократно.

2.2 Принцип хранимой в памяти программы

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

 

КОП Адрес операнда

 

Такой тип команды оказался намного более универсальным и напряду с ранее приведенным он широко используется в современной вычислительной технике.

Программа вычисления выражения: при использовании команд последнего типа намного сокращается.

1-я команда:i=0;

2-я команда: умножение ai*bi=Xi;

3-я команда: сложение Yi+Xi=Yi;

4-я команда: i:=i+1;

5-я команда: i>n?. Если нет, то переход на 2-ю команду;

6-я команда: Конец.

2.3 Обобщенный формат команд

Команды в ЦВМ могут быть одноадресными, двухадресными и трехадресными (в машинах с так называемой естественной адресацией команд).

Одноадресная команда:

КОП А -Адрес операнда

 

 

Двухадресная команда:

КОП А1-Адрес 1-го операнда А2- Адрес 2-го операнда

 

Трехадресная команда:

 

 

КОП А1-Адрес 1-го операнда А2-Адрес 2-го операнда А3-Адрес 3-го операнда

Команда состоит из операционной части- кода операции (КОП) и адресной части. В операционной части указывается тип выполняемой операции в виде двоичного числа. В адресной части указывается адрес ячейки памяти, в которой размещается операнд (одноадресная команда). Если в команде указывается адреса 1-го и 2-го операнда, то такая команда называется двухадресной. В трехадресной машине указывается еще и адрес результата, то есть ячейка ОП, куда помещается результат.

Какая из систем лучше? В современных машинах большого класса могут сочетаться все типы. Приведенные типы команд относятся к так называемым машинам с естественной адресацией, когда команды из программы выбираются последовательно одна за другой. Адресация производится с помощью счетчика команд СчК (PC- Program Count). Однако существовали машины и с принудительной адресацией, в которых очередная команда выбиралась по адресу, указанному в предыдущей команде (такой способ адресации сохранен в настоящее время только в так называемых микропрограммных устройствах управления).

Структура команд такой машины:

 

КОП А1 А2 Ар Аск

 

где Ар- адрес результата;

Аск -адрес следующей команды .

Если операндов два, и еще существует поле адреса результата, то команда становится четырехадресной:

2.4 Способы адресации команд

Процессоры в зависимости от реализации УУ бывает двух видов: с принудительным порядком выполнения команд (принудительной адресацией команд) и с естественным порядком выполнения команд (естественной адресацией команд).

 

2.4.1 Процессоры с принудительным порядком выполнения команд

Структура процессора с принудительной адресацией команд приведена на рисунке 2.4.1.

 
 

Рисунок 2.4.1- Структура процессора с принудительной адресацией

Процесс выполнения команд процессором следующий: в начальный момент в регистр команд (РК) заносится адрес первой выполняемой команды (по сигналу “Сброс” или “Пуск” или каким либо иным способом). По этому адресу считываются команда, которая содержат код операции (КОП), адрес операнда (Аоп), а так же адрес следующей команды (Аск). Поле КОП команды поступает на схему формирования управляющих сигналов (ДшКОП- дешифратор КОП) которая вырабатывает нужную последовательность управляющих сигналов y1...yn, необходимых для выполнения команды в процессоре.

Адрес операнда через РА задает номер ячейки ОП, в которой он хранится. Операнд, считанный из ячейки памяти с заданным адресом, поступает на обработку в АЛУ.

Рассмотрим следующий пример. Положим, что процессор имеет следующую систему команд в машинных кодах (для более краткой записи представим ее в шестнадцатеричной системе счисления):

01H- вызов операнда из ОЗУ в аккумулятор;

02H- запись содержимого А в ОЗУ;

1АH - команда сложения;

00H – остановка выполнения программы.

Пусть необходимо составить программу сложения 2-х чисел, находящихся в ячейках ОЗУ с адресами 0841H и 0842H и записать результат в ячейку 0843H. Программа хранится в ячейках памяти с начальным адресом 1300H. Ширина выборки команд и данных из ОЗУ - 1 байт.

 

№ яч КОП Аоп Аск Комментарий
Вызов 1-го операнда из ОЗУ и переход к считыванию следующей команды из ячейки ОП с номером 1305H.
130А Вызов 2-го операнда, сложение и переход к считыванию следующей команды из ячейки ОП с номером 130АH.
130А 130F Запись результата в ОЗУ и переход к ячейке 130FH.
130F Остановка.

 

Нетрудно подсчитать, что при использовании принудительной адресации команд длина программы составляет 20 байт.

2.4.2 Процессоры с естественной адресацией команд

Структура процессора с естественной адресацией команд

приведена на рисунке 2.4.2.

 
 

 

Рисунок 2.4.2- Структура процессора с естественной адресацией команд

 

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

Предыдущая программа для этого типа процессора будет иметь вид:

 

№ яч. памяти КОП Аоп Комментарий
1300: 08 41 Вызов 1-го операнда из ОЗУ в аккумулятор и переход к считыванию следующей команды из ячейки ОП с номером 1303H.
1303: 08 42 Вызов 2-операнда, сложение его с 1- м операндом и переход к считыванию следующей команды из ячейки ОП с номером 1306H.
1306: 08 43 Запись вычисленного результата в ячейку ОП с адресом 0843H и переход к считыванию следующей команды.
1309: 00 00 Остановка.

 

Нетрудно подсчитать, что длина этой программы составляет 12 байт.

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

2.5 Способы адресации операндов

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

 

2.5.1 Прямая адресация

При прямой адресации адрес операнда указывается в адресной части команды. Поле адреса может быть одно, двух и трехадресным. Длина адресного поля nА должна быть такой, чтобы перекрывать все адресное пространство – nА=log2 M, где M-емкость памяти в байтах.

 
 

Рисунок 2.5.1- Порядок выборки операнда при прямой адресации

 

Формат одноадресной команды следующий:

  КОП Адрес операнда

 

Формат двухадресной команды:

 

  КОП А1 А2
    nA1 nA2

 

Формат трехадресной команды:

  КОП А1 А2 Ap
    nA1 nA2 np

 

где Aр- адрес результата.

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

2.5.2 Косвенная адресация

При косвенной адресации в адресной части команды указывается адрес ячейки памяти (ОЗУ или СОЗУ) в которой находится адрес операнда (косвенная адресация - это адресация адреса).

 


 

Рисунок 2.5.2- Порядок выборки операнда при косвенной адресации: а- при адресации через ОП; б- при адресации через СОЗУ

Такая адресация используется в машинах, имеющих малую разрядность, то есть в мини и микро- ЭВМ. Для адресации операнда требуется как минимум два шинных цикла: 1-й для выборки адреса, второй - для выборки операнда по этому адресу. Часто косвенный адрес хранится во внутренней памяти процессора, состоящей из регистров двойной длины.

2.5.3 Регистровая адресация

Регистровая адресация является укороченной. В поле адреса указываются адреса ячеек сверхоперативной памяти (СОЗУ), число которых невелико. Такой способ адресации позволяет сократить длину команды и увеличить скорость выполнения операции, так как СОЗУ является быстродействующей памятью, выполняемой на быстрых регистрах. Эти регистры являются частью процессора и называются регистрами общего назначения (РОН). Следующий рисунок поясняет порядок выборки операндов при использовании 2- х адресной команды: R1- адрес первого операнда, R2- - адрес второго операнда.

 

 
 

Рисунок 2.5.3- Порядок выборки операндов при регистровой адресации: R1- адрес 1-го операнда, R2- адрес второго операнда

 

 

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

В поле адреса команд находится не адрес, а сам операнд. В этом случае нет необходимости обращаться за операндом в память. Используется для хранения констант.

Непосредственный операнд может иметь любую длину (байт, слово, 2-е слово). Этим определяется длина команды. Формат команды при непосредственной адресации следующий:

КОП Непосредственный операнд

 

2.5.5 Неявная адресация

Неявная (подразумеваемая) адресация. В команде нет явных указаний об адресе операнда, они подразумеваются, но фактически их адреса указаны в КОП команды. Это самая короткая адресация. Используется в микроЭВМ.

 

2.5.6 Относительная адресация

Адрес операнда определяется как сумма содержимого адресного поля команды и некоторого числа, называемого базовым адресом. Для этого в команде предусмотрено поле В для указания адреса базового регистра. Поле команды, в котором находится адрес операнда называют смещением.


Рисунок 2.5.6-Формирование адреса операнда при относительной адресации

Полученный адресEA=[B]+Dназывается эффективным или исполнительным адресом. Прямые скобки при B ([B]) –означают, что первое слагаемое EA берется по адресу В. При выборке некоторого участка данных базовый адрес является неизменным. Адресация ячеек памяти относительно базового адреса осуществляется полем смещения.

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

2.5.7 Индексная (автоинкрементная и автодекрементная ) адресация

При обработке больших массивов данных, выбираемых последовательно друг за другом, нет смысла каждый раз обращаться в память за новым адресом. Для этого достаточно автоматически менять содержимое специального регистра, называемого индексным, чтобы выбирать последовательно размещенные данные. Индексный регистр является косвенным. Его загружают начальным адресом массива (специальной командой). Дальнейшая адресация осуществляется путем автоматического добавления или вычитания единицы или шага адреса из его содержимого.

 

 

Рисунок 2.5.7- Формирование адреса операнда при индексной адресации

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

Часто в команду с индексной адресацией включают признак, определяющий шаг индексации Т (Т=1,2,4 и т.д.), что позволяет осуществлять адресацию массивов через байт, слово, двойное слово и т.д.

В современных процессорах (например в Intel 80386 и выше ) применяют все возможные сочетания из базового адреса, индексного адреса, относительного адреса и шага. Например:

- Индексная адресация с шагом. Содержимое индексного регистра умножается на шаг и суммируется со смещением- EA=[X]×T+D,гдеТ- величина шага;

- Базово- индексная адресация EA=[В]+[X];

- Базово- индексная адресация с шагом EA=[В]+[X]×Т;

- Базово- индексная адресация со смещением EA=[В]+[X]+D:

- Базово- индексная адресация со смещением и шагом EA=[В]+[X]×Т+D.

2.6Контрольные вопросы

Какова структура команды? Какие поля включает команда? Чем определяется длина команды?

В чем заключается естественная адресация команд в ЦВМ?

В чем заключается принудительная адресация команд в ЦВМ?

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

Перечислите достоинства и недостатки принудительной адресации?

Какие существуют способы адресации операндов?

Достоинства неявной и регистровой адресации?

В чем заключается непосредственная адресация?

В чем заключается прямая адресация?

Какие преимущества косвенной адресации?

Каково назначение относительной адресации?

Каково назначение индексной адресации?

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.