Системы Команд
Известны одно-, двух- и трехадресные машины (системы команд). Очевидна связь таких параметров ЦУ, как длина адресного пространства, адресность, разрядность. Увеличение разрядности позволяет увеличить адресность команды и длину адреса (т.е. объем памяти, доступной данной команде). Увеличение адресности, в свою очередь, приводит к повышению быстродействия обработки (за счет снижения числа требуемых команд).
В трехадресной машине, например, сложение двух чисел требует одной команды (извлечь число по А1, число по А2, сложить и записать результат по А3). В двухадресной необходимы две команды (первая - извлечь число по А1 и поместить в РЧ (или сумматор) , вторая - извлечь число по А1, сложить с содержимым РЧ и результат записать по А2). Легко видеть, что одноадресная машина потребует три команды. Поэтому неудивительно, что основная тенденция в развитии ЦУ ЭВМ состоит в увеличении разрядности.
· Типовая структура трехадресной команды:
|
а2 и аЗ — адреса ячеек (регистров), где расположены, соответственно, первое и второе числа, участвующие в операции, a1 — адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
· Типовая структура двухадресной команды:
|
a1 - это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции; а2 - обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
· Типовая структура одноадресной команды:
|
где a1 в зависимости от модификации команды может обозначать либо адрес ячейки (регистра), в которой хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число - результат операции.
· Безадресная командасодержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины.
Наибольшее применение в нашли двухадресные команды.
Пример трехадресной команды, записанной на языке символического кодирования:
СЛ 1003 5102 0103
Эту команду следует расшифровать так: сложить число, записанное в ячейке 0103 памяти, с числом, записанным в ячейке 5102, а затем результат (то есть сумму) поместить в ячейку 0103.
Таким образом, программирование в машинных адресах требует знания системы команд конкретной ЭВМ и их адресности. При этом реализация даже довольно несложных вычислений требует разложения их на простые операции, что значительно увеличивает общий объем программы и затрудняет ее чтение и отладку.
В качестве примера рассмотрим последовательность реализации вычисления по формуле y = (a+b)2 - c/d.
План последовательности машинных операций, выполнение которой приведет к нужному результату, в данном случае следующий:
r1 = a+ b; - операция сложения
r2 = r1*r1; - операция умножения
r3 = c/d; - операция деления
y = r2 – r3; - операция вычитания
Стоп. - завершение обработки
Здесь количество переменных, необходимых для хранения промежуточных результатов, связано с адресностью системы команд и с тем, разрешено или нет в процессе вычислений изменять значения исходных данных.
Во время решения задачи программа и операнды (числа, над которыми производится операции) находятся в оперативной памяти (ОЗУ). Быстродействие ОЗУ соизмеримо с быстродействием АЛУ. В процессе решения задачи АЛУ постоянно взаимодействует с ОЗУ, передавая в ОЗУ промежуточные и конечные результаты и получая из ОЗУ операнды действия всех частей ЭВМ при решении задачи осуществляется под воздействием управляющих сигналов, вырабатываемых устройством управления в соответствии с программой, записанной в ОЗУ.
ПЗУ предназначено для хранения стандартных программ, таких как sin и cos, констант , е.
Существует еще сверх ОЗУ (СОЗУ), которое обладает малым объемом и высоким быстродействием. СОЗУ применяется для кратковременного хранения операндов и промежуточных результатов.
Назад к разделу "Структура абстрактного центрального устройства ЭВМ"