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

Add       #X,R1,R2

Load      (R2),R2

Load (R2),R2

Команда сложения выполняет операцию R2 ← Х + [Rl], а команды загрузки выби­рают из памяти сначала адрес, а затем операнд. Этой последовательности команд требуется то же количество тактов, что и первой команде загрузки (рис. 9.6, 6).

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


а


б

Рис. 9.6. Эквивалентные операции с использованием режимов адресации:


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