Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


“ехнологи€ IA-64




 

ƒальнейшим развитием идеи VLIW стала нова€ архитектура IA-64 Ч совместна€ разработка фирм Intel и Hewlett-Packard (IA - это аббревиатура от Intel Architecture). ¬ IA-64 реализован новый подход, известный как вычислени€ с €вным параллелизмом команд (EPIC, Explicitly Parallel Instruction Computing) и €вл€ющийс€ усовершенствованным вариантом технологии VLIW. ѕервым представителем данной стратегии стал микропроцессор Itanium компании Intel.  орпораци€ Hewlett-Packard также реализует данный подход в своих разработках.

–азработчики процессоров стрем€тс€ создавать чипы, содержащие как можно больше функциональных узлов - что позвол€ет обрабатывать больше команд параллельно - но одновременно приходитс€ существенно усложн€ть управл€ющие цепи дл€ распределени€ потока команд по обрабатывающим узлам. Ќа данный момент лучшие процессоры не могут выполн€ть более четырЄх команд одновременно, при этом управл€юща€ логика занимает слишком много места на кристалле.

 

 

ќтличи€ архитектуры IA-64 от x86

 

¬ то же врем€, последовательна€ структура кода программ и больша€ частота ветвлений делают задачу распределени€ потока команд крайне сложной. —овременные процессоры содержат огромное количество управл€ющих элементов дл€ того, чтобы минимизировать потери производительности, св€занные с ветвлени€ми, и извлечь как можно больше "скрытого параллелизма" из кода программ. ќни измен€ют пор€док команд во врем€ исполнени€ программы, пытаютс€ предсказать, куда необходимо будет перейти в результате очередного ветвлени€, и выполн€ют команды до вычислени€ условий ветвлени€. ≈сли путь ветвлени€ предсказан неверно, процессор должен сбросить полученные результаты, очистить конвейеры и загрузить нужные команды, что требует достаточно большого числа тактов. “аким образом, процессор, теоретически выполн€ющий четыре команды за такт, на деле выполн€ет менее двух.

ѕроблему ещЄ осложн€ет тот факт, что микросхемы пам€ти не успевают за тактовой частотой процессоров.  огда Intel разработала архитектуру х86, процессор мог извлекать данные из пам€ти с такой же скоростью, с какой он их обрабатывал. —егодн€ процессор тратит сотни тактов на ожидание загрузки данных из пам€ти, даже несмотр€ на наличие большой и быстрой кэш-пам€ти.

 оманды в формате IA-64 упакованы по три в 128-битный пакет дл€ быстрейшей обработки. ќбычно это называют "LIW encoding". (–усский аналог подобрать сложно. Ќаиболее адекватно, на мой взгл€д, перевести как "кодирование в длинные слова команд".) ќднако компани€ Intel избегает такого названи€, за€вл€€, что с ним св€заны "негативные ассоциации" (negative connotation). ѕо той же причине Intel не любит называть сами команды RISC-подобными (RISC-like), даже несмотр€ на то, что они имеют фиксированную длину и предположительно оптимизированы дл€ исполнени€ за один такт в €дре, не нуждающемс€ в микрокоде. Intel предпочитает называть свою новую LIW-технологию Explicitly Parallel Instruction Computing или EPIC (¬ычислени€ с явной ѕараллельностью »нструкций, где "€вной" означае €вно указанной при трансл€ции). ¬ любом случае формат команд IA-64 не имеет ничего общего с х86.  оманды х86 могут иметь длину от 8 до 108 бит, и процессор должен последовательно декодировать каждую команду после определени€ еЄ границ.

  •  аждый 128-битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компил€тором, который указывает процессору, какие из команд могут выполн€тьс€ параллельно. “еперь процессору не нужно будет анализировать поток команд в процессе выполнени€ дл€ вы€влени€ "скрытого параллелизма". ¬место этого наличие параллелизма определ€ет компил€тор и помещает информацию в код программы.  ажда€ команда (как дл€ целочисленных вычислений, так и дл€ вычислений с плавающей точкой) содержит три 7-битных пол€ регистра общего назначени€ (–ќЌ). »з этого следует, что процессоры архитектуры IA-64 содержат 128 целочисленных –ќЌ и 128 регистров дл€ вычислений с плавающей точкой. ¬се они доступны программисту и €вл€ютс€ регистрами с произвольным доступом (programmer-visible random-access registers). ѕо сравнению с процессорами х86, у которых всего восемь целочисленных –ќЌ и стек глубины 8 дл€ вычислений с плавающей точкой, IA-64 намного "шире" и, соответственно, будет намного реже простаивать из-за "нехватки регистров".
  •  омпил€торы дл€ IA-64 будут использовать технологию "отмеченных команд" (predication) дл€ устранени€ потерь производительности из-за неправильно предсказанных переходов и необходимости пропуска участков кода после ветвлений.  огда процессор встречает "отмеченное" ветвление в процессе выполнени€ программы, он начинает одновременно выполн€ть все ветви. ѕосле того, как будет определена "истинна€" ветвь, процессор сохран€ет необходимые результаты и сбрасывает остальные.
  •  омпил€торы дл€ IA-64 будут также просматривать исходный код с целью поиска команд, использующих данные из пам€ти. Ќайд€ такую команду, они будут добавл€ть пару команд - команду предварительной загрузки (speculative loading) и проверки загрузки (speculative check). ¬о врем€ выполнени€ программы перва€ из команд загружает данные в пам€ть до того, как они понадоб€тс€ программе. ¬тора€ команда провер€ет, успешно ли произошла загрузка, перед тем, как разрешить программе использовать эти данные. ѕредварительна€ загрузка позвол€ет уменьшить потери производительности из-за задержек при доступе к пам€ти, а также повысить параллелизм.

 

 

‘ормат инструкций IA-64

 

ѕоле каждой из трех команд в св€зке, в свою очередь, состоит из п€ти полей:

  • 13-разр€дного пол€ кода операции;
  • 6-разр€дного пол€ предикатов, хран€щего номер одного из 64 регистров предиката;
  • 7-разр€дного пол€ первого операнда (первого источника), где указываетс€ номер регистра общего назначени€ или регистра с плавающей зап€той, в котором содержитс€ первый операнд;
  • 7-разр€дного пол€ второго операнда (второго источника), где указываетс€ номер регистра общего назначени€ или регистра с плавающей зап€той, в котором содержитс€ второй операнд;
  • 7-разр€дного пол€ результата (приемника), где указываетс€ номер регистра общего назначени€ или регистра с плавающей зап€той, куда должен быть занесен результат выполнени€ команды.

—ледует по€снить роль подпол€ предикатов. ѕредикаци€ - это способ обработки условных ветвлений. —уть в том, что еще компил€тор указывает, что обе ветви выполн€ютс€ на процессоре параллельно, ведь EPIC-процессоры должны иметь много функциональных блоков.

≈сли в исходной программе встречаетс€ условное ветвление (по статистике Ч через каждые шесть команд), то команды из разных ветвей помечаютс€ разными регистрами предиката (команды имеют дл€ этого соответствующие пол€), далее они выполн€ютс€ совместно, но их результаты не записываютс€, пока значени€ регистров предиката (–ѕ) не определены.  огда, наконец, вычисл€етс€ условие ветвлени€, –ѕ, соответствующий Ђправильнойї ветви, устанавливаетс€ в 1, а другой - в 0. ѕеред записью результатов процессор провер€ет поле предиката и записывает результаты только тех команд, поле предиката которых указывает на –ѕ с единичным значением.

ѕредикаты формируютс€ как результат сравнени€ значений, хран€щихс€ в двух регистрах. –езультат сравнени€ (Ђ»стинаї или ЂЋожьї) заноситс€ в один из –ѕ, но одновременно с этим во второй –ѕ записываетс€ инверсное значение полученного результата. “акой механизм позвол€ет процессору более эффективно выполн€ть конструкции типа I F - T H E N-E L S E.

Ћогика выдачи команд на исполнение сложнее, чем в традиционных процессорах типа VLIW, но намного проще, чем у суперскал€рных процессоров с неупор€доченной выдачей.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 442 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ћогика может привести ¬ас от пункта ј к пункту Ѕ, а воображение Ч куда угодно © јльберт Ёйнштейн
==> читать все изречени€...

1284 - | 1268 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.012 с.