Hardware - разное


CИСТЕМА КОМАНД IA- - часть 2


Эти значения предикатных регистров используются затем не только в командах условного перехода, как в обычных микропроцессорах. Почти все команды IA-64 выполнимы "под предикатом", т.е. могут выполняться или нет в зависимости от значения указанного в команде PR-регистра. Это позволяет во многих случаях избежать применения условных переходов, которые, как известно, отрицательно сказываются на производительности микропроцессоров. Вместо этого процессор c архитектурой IA-64, имеющий большое число ресурсов (в частности, регистров и ФИУ), может исполнить обе ветви программы. Рассмотрим простейший Пример 1.

Пример 1.

Фрагмент программы в фортрановском представлении: IF(I.EQ.J) THEN K=K+1 ELSE L=L+1 ENDIF

в ассемблерном: cmp.eq p3,p4=r4,r5;; (p3) add r6=r6,r0,1 (p4) add r7=r7,r0,1

(мы используем, вслед за [1], "фортрановский" синтаксис). Предположим, что значения I, J, K, L уже лежат в r4, r5, r6, r7 cоответственно (так обозначаются регистры GR в ассемблере IA-64). Тогда мы получим следующий фрагмент программы...

Здесь команды сложения add использованы в четырехадресной форме; они помещают в регистр-результат (r6 и r7 соответственно) старое значение этого регистра плюс 1 (формально еще плюс значение в r0, которое равно нулю). Команды add используются с так называемыми квалифицирующими предикатами p3, p4. Если значения I и J совпадают, то получаем значения предикатных регистров (p3) = 1, а (р4) = 0. Тогда первая команда add выполняется, а вторая - нет.

Преимуществом такого подхода состоит в линейности выполняемого участка программы вместо ветвления. Обе команды add могут, кстати, выполниться параллельно. Возможности команд типа условной пересылки cmove в ряде RISC-процессоров, в общем случае значительно меньше, чем предикатный подход. Это преимущество IA-64 становится еще более существенным, если учесть расширенные возможности спекулятивного выполнения команд в IA-64.

Спекулятивное выполнение

Рассмотрим теперь команды доступа в память. Прежде всего, это команды загрузки регистров и записи из них в оперативную память.


Начало  Назад  Вперед



Книжный магазин