ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.01.2021

Просмотров: 106

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Оператор if:


if (Rl == R2) R3 = R4 + R5;

else R6 = R4 - R5;


код на ассемблере:

CMP R1, R2

BNE L1

MOV R3, R4

ADD R3, R5

BR L2

L1: MOV R6, R4

SUB R6, R5

L2:


выполнение с предикацией:


CMPEQ R1, R2, P4

<Р4> ADD R3, R4, R5

<Р5> SUB R6, R4, R5


В архитектуре IA-64 изложенная идея доведена до логического завершения: здесь с предикат­ными регистрами связаны команды сравнения, арифметические, а также некоторые другие команды. Команды с предикацией могут свободно помещаться в конвейер без простаиваний. Каждая ко­манда действительно выполняется, а в самом конце конвейера, когда нужно сохранять результат в выходном регистре, производится проверка предикатного регистра. Результаты записываются в выходной регистр только при его истинности.


5.4.3. Спекулятивная загрузка


Еще ряд особенностей IA-64 присутствует в использовании спекулятивной загрузки. Если команда LOAD спекулятивна и оказывается ложной (зря выполнена), то вместо выдачи исключе­ния (exception), она сообщает, что ее выходной регистр недействителен. Компилятор по возможности должен перемещать команды LOAD в более ранние позиции относи­тельно других команд, использующих результаты загрузки. Он также встав­ляет команду CHECK в том месте, где требуется использовать значение определенного регистра. Если это значение уже есть, команда CHECK работает как NOP, и выполне­ние программы сразу продолжается дальше. Если значения в регистре еще нет, следующая команда простаивает.

Таким образом, выполнение лишних команд, а также и перемещения команд, при неудачах не приводят к катастрофе.


5.4.4. Резюме


При первоначальной оценке перспектив процессоров типа Merced прогнозировалось, что они действительно бу­дут чрезвычайно мощными. Однако здесь можно было высказать несколько предостере­жений. Во-первых, такая продвинутая машина никогда не создавалась раньше. История показывает, что грандиозные планы часто не удается осуществить по самым разным причинам.

Во-вторых, для IA-64 требуется разработка сложных компиляторов, которые могут быть и дорогостоящими. Кроме того, проведенные исследования о параллельном программировании оказались не вполне успешными. Если программа допускает некоторый параллелизм, но компилятор не может его извлечь, то пучки команд в архитектуре IA-64 оказываются короткими, и большого увеличения производительности не происходит.

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

В-четвертых, многие будут судить об архитектуре IA-64 по тому, как на ней будут работать старые 16-битные и 32-битные программы, которые не будут использовать новые особенности процессоров IA-64.

Наконец, производители (включая Intel) могут выпускать альтернатив­ные варианты, которые будут давать высокую производительность, используя при этом более привычные RISC-архитектуры, возможно, с большим количеством условных команд. Более высокоскоростные версии Pentium также могут составить серьез­ную конкуренцию IA-64. Вероятно, пройдет много лет, прежде чем IA-64 будет доминировать на компьютерном рынке подобно архитектуре IA-32.



5.4.5. Историческая справка (http://ru.wikipedia.org/wiki/Itanium)


HP и Intel начали сотрудничество в области микропроцессоров в 1989 году. HP требовался процессор следующего поколения для замены удачных серий рабочих станций и серверов, построенных на базе процессоров HP с разработанной ею архитектурой PA-RISC, и компания хотела воспользоваться достижениями и опытом Intel в разработке и производстве микрочипов.

Новый процессор должен был использовать набор инструкций с явным параллелизмом (EPIC), в котором компилятор должен выстраивать инструкции для параллельного исполнения. Были добавлены возможности для совместимости с приложениями разработанными как для Intel x86, так и для PA-RISC. Ожидалось, что разрабатываемый процессор будет доминировать на рынке серверов, рабочих станций и возможно даже настольных ПК, вытеснив вездесущую архитектуру x86. Предполагалось, что конкуренты Intel, в первую очередь AMD, не смогут повторить новую архитектуру.

Первое поколение процессоров, имеющее кодовое имя Merced, было выпущено в 2001 году. Рыночная судьба Merced оказалась менее успешной, чем предполагалась. Основными причинами этому были проблемы с производительностью и малое количество оптимизированного программного обеспечения. Несмотря на то, что процессор мог исполнять инструкции x86, производительность такого решения была значительно ниже в сравнении с x86-системами от Intel и AMD. Дополнительным важным фактором стал коллапс рынка доткомов и соответствующее ему падение продаж серверов.

В дальнейшем Intel и HP продолжили разработку архитектуры, результатом чего стало появление в 2003 году процессоров второго поколения Madison и в 2006 значительно доработанного двухъядерного McKinley. Начиная с McKinley процессоры Itanium стали показывать конкурентноспособные производительность и тепловыделение. С проникновением на рынок постепенно улучшилась поддержка архитектуры и ПО для неё, что отразилось в значительном росте продаж начиная с 2004-2005 годов.

Первый двухъядерный Itanium (кодовое имя Montecito) был выпущен Intel в июле 2006 года. Intel и её партнёры обещают увеличение производительности процессора в 2 раза, в то же время снижение энергопотребления приблизительно на 20 % по сравнению с одноядерным предшественником. Судя по первым опубликованным тестам производительности похоже, что в основном эти заявления подтверждаются. Официальный план выпуска процессоров Intel включает двухъядерные процессоры следующего поколения, произведенные по 65-нм технологическому процессу (Montecito произведен по 90-нм технологии) и два будущих четырёхъядерных процессора. Стоит заметить, что один или более из этих процессоров будут произведены с использованием 45-нм технологического процесса.


Смотрите также файлы