Программирование на JAVA

Выполнение команды Load X(R1),R2, предназначенной для загрузки данных из памяти, занимает пять тактов (рис. 9.5). Подобную команду

Load (R1),R2

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

Load (X(R1)),R2

может быть выполнена так, как показано на рис. 9.6, а, если считать, что смеще­ние индекса, Х, задано в слове команды. После вычисления адреса на такте 3 про­цессору нужно дважды обратиться к памяти — прочитать слово по адресу X+[R1] на такте 4, а также слово по адресу [X+[R1]] на такте 5. Если содержимое регист­ра R2 является исходным операндом следующей команды, выполнение команды будет задержано на три такта. Эту цифру можно сократить до двух за счет про­движения операнда.

Для выполнения такой же операции загрузки с использованием только про­стейших адресных режимов потребуется несколько команд. На компьютере, где допускается использование трех операндов, это могут быть такие команды:


<< назад вперед >>