Реализация команд

Центральный процессор должен преобразовать код команды, полученной им из памяти, в управляющие сигналы, которые осуществят в ЦП определенные действия над данными. Центральный процессор должен определить адреса ячеек памяти и регистров, которые использует команда, сформировать сигналы на функциональных входах АЛУ и скоммутировать шины таким образом, чтобы команда была выполнена правильно. Например, если имеется команда СЛОЖИТЬ СОДЕРЖИМОЕ РЕГИСТРА 1 С СОДЕРЖИМЫМ РЕГИСТРА 2 И РЕЗУЛЬТАТ ПОМЕСТИТЬ В РЕГИСТР 3, то, если ЭВМ построена, как показано на рис. 2.16, а, центральный процессор реализует цикл команд следующим образом:

1) содержимое регистра 1 помещает в регистр временного хранения 1 (рис. 2.16,6). Этот шаг необходим потому, что рабочие регистры и АЛУ связаны общей шиной. Таким образом, ЦП должен запомнить содержимое регистра 1 в регистре временного хранения, который непосредственно связан с АЛУ;

2) помещает содержимое регистра 2 в регистр временного хранения

2 (рис. 2.16,в);

3) выполняет операцию сложения и результат помещает в регистр

3 (рис. 2.16,г).
 

 

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

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

1) передает содержимое счетчика команд в шину адреса памяти с целью выборки очередной команды;

2) увеличивает на 1 содержимое счетчика команд, чтобы быть готовым к выборке последующей команды;

3) выбирает команду с входной шины данных по адресу и помещает ее в регистр команд;

1) дешифрирует код команды и исполняет соответствующую операцию.

Первые три шага в этом цикле одинаковые для любой команды.

Прежде все; о ЦП выполняет требуемую последовательность операций. Так работает ЦП с устройством управления, построенным по принципу жесткой ложки. Однако цикл команды —это последовательность операций. Устройство управления инициирует серию операций, которые, в свою очередь, исполняют команду ЭВМ. Написание последовательности операций, которые выполняют команды ЭВМ, называется микропрограммированием.

Микропро!раммиропание аналогично переводу с французского я^ыка на английский путем перевода сначала с французского на немецкий, а *атем с немецкого на английскгй.

Достигается ли что-либо этим процессом в действительности или это просто усложняет задачу? Ответ: микропрограммирование заменяет аппаратные средства программными и обеспечивает высокую гибкость ценой потери быстродействия. Заметим, что ЭВМ могла бы выполнить команду как последовательность микрокоманд:

Микрокоманда 1:

ЗАНЕСТИ СОДЕРЖИМОЕ СЧЕТЧИКА КОМАНД В АДРЕСНУЮ ШИНУ.

Микрокоманда 2:

УВЕЛИЧИТЬ НА 1 СОДЕРЖИМОЕ СЧЕТЧИКА КОМАНД.

Микрокоманда 3:

ДАННЫЕ С ВХОДНОЙ ШИНЫ ЗАНЕСТИ В РЕГИСТР КОМАНД.

Центральный процессор должен использовать код команды, чтобы найти последовательность микрокоманд, требуемую для ее исполнения. Например, ЭВМ могла бы выполнить команду (см. рис. 2.16) следующим образом:

Микрокоманда 4:

СОДЕРЖИМОЕ РЕГИСТРА 1 ЗАНЕСТИ В РЕГИСТР ВРЕМЕННОГО ХРАНЕНИЯ 1.
 

Микрокоманда 5:

СОДЕРЖИМОЕ РЕГИСТРА 2 ЗАНЕСТИ В РЕГИСТР ВРЕМЕННОГО ХРАНЕНИЯ 2.

Микрокоманда 6: СЛОЖИТЬ.

Микрокоманда 7:

РЕЗУЛЬТАТ ИЗ АЛУ ЗАНЕСТИ В РЕГИСТР 3.

Микрокоманда 8:

ВЕРНУТЬСЯ К МИКРОКОМАНДЕ 1.

Действия, выполненные ЦП под управлением микрокоманды, много проще, чем действия, выполняемые по командам ЭВМ. Кроме того, одни и те же микрокоманды могут быть частью многих различных команд. Например, для команды ВЫЧЕСТЬ потребуется только изменение в микрокоманде 6. Изменяя микропрограммы, можно создать полностью новую систему команд; изменить аппаратную часть ЦП для того, чтобы получить модернизированную ЭВМ, нельзя. Действительно, ЭВМ, которая выполняет команды с помощью микропрограмм, может быть предназначена для того, чтобы оперировать о системой команд другой ЭВМ. Этот процесс называется эмуляцией.

Естественно, микропрограммирование вносит некоторые неудобства. Этот процесс более медленный, чем аппаратное дешифрование кодов команд.

Микрокоманды трудны для написания и проверки, а средства автоматизации микропрограммирования слабо развиты.

Заметим, что нет необходимости устанавливать «родство» между микропрограммированием и микропроцессорами, несмотря на схожесть в названиях. Микропроцессор подобно любому другому управляющему устройству ЭВМ или может быть микропрограммируемым или может иметь неизменяемую систему команд.