Студентам > Курсовые > Новые технологии в организации PC
Новые технологии в организации PCСтраница: 5/6
9
октября 1997 года фирма Intel объявила, что
· производство Merced, первого представителя нового семейства
64-разрядных микропроцессоров, начнется в 1999 году по 0.18-микронному
технологическому процессу фирмы Intel, который также создается;
· процессор предназначен для рабочих станций и серверов;
· Merced сможет выполнять программы для 32-разрядных процессоров
Intel;
· Intel обладает средой разработки программного обеспечения,
полностью совместимого с IA-64, и "ключевые" независимые продавцы
программного обеспечения уже используют эту среду для разработки операционных
систем и приложений уровня предприятия;
14 октября 1997 года, на Микропроцессорном Форуме в
Сан-Хосе, Калифорния, фирмы Intel и HP впервые публично описали основы IA-64.
Совместно выступили John Crawford, Intel Fellow and Director
of Microprocessor Architecture и Jerry Huck, Hewllet-Packard`s
Manager and Lead Architect. Запись их речей можно найти на Web-сервере
Intel, а демонстрировавшиеся слайды - на Web-сервере HP. Фирма Intel дополнила
это выступление заявлениями для прессы .
В тот же день на Микропроцессорном Форуме выступал Joel
Birnbaum, Director of Hewlett-Packard Laboratories,
Senior Vice President of Research and Development. Он вкратце рассказал
о работах HP над процессорными архитектурами с 1980-х до альянса с Intel в
1994. По его словам, отправной точкой для альянса с Intel послужил проект,
называемый сначала Wide-Word, а затем Super-Parallel Processor Architecture
(SP-PA). Этот проект был выполнен в HP Labs под руководством Bill Worley,
который одновременно возглавлял работы над PA-RISC. Согласно Joel Birnbaum, в проекте
Wide-Word были проведены эксперименты со статическим параллелизмом и загрузкой
по предположению, разработана "обобщенная предикация", механизмы,
позволяющие масштабировать количество функциональных устройств и их
"скорость". Также он объяснил, зачем фирме HP понадобилось заключать
альянс с Intel, но это объяснение слишком обширно, чтобы приводить его здесь.
29 мая 1998 года фирма Intel сообщила о переносе на год
выпуска процессора Merced. Было объявлено, что серийное производство начнется в
середине 2000 года. А опытное - в 1999 году. В официальном сообщении нет
никаких сведений ни об архитектуре Merced, ни о технологии его производства.
С 12 по 15 октября 1998 года проходил очередной
Микропроцессорный Форум. От Intel выступал Stephen Smith с темой "IA-64
Processors: Features and Futures". Он сообщил несколько новых
технических деталей, рассказал о перспективах семейства IA-64.
EPIC, IA-64, Merced
Концепция EPIC, согласно Intel и HP, обладает достоинствами
VLIW, но не обладает ee недостатками.
John
Crawford перечислил следующие особенности EPIC:
· Большое количество регистров.
· Масштабируемость архитектуры до большого количества
функциональных устройств. Это свойство представители фирм Intel и HP называют
"наследственно масштабируемый набор команд" (inherently scaleable
instruction set)
· Явный параллелизм в машинном коде. Поиск зависимостей между
командами производит не процессор, а компилятор.
· Предикация (Predication). Команды из разных ветвей услового
ветвления снабжаются предикатными полями (полями условий) и запускаются
параллельно.
· Загрузка по предположению (Speculative loading). Данные из
медленной основной памяти загружаются заранее.
Ниже
эти особенности EPIC объяснены подробнее.
Представители Intel и HP назывют EPIC концепцией следующего
поколения и противопоставляют ее CISC и RISC. По мнению Intel, традиционные
архитектуры имеют фундаментальные свойства, ограничивающие производительность.
Производители RISC процессоров не разделяют подобного пессимизма. Кстати, в
1980-х, когда возникла концепция RISC, прозвучало много заявлений, что
концепция CISC устарела, имеет фундаментальные свойства, ограничивающие
производительность. Но процессоры, причисляемые к CISC (например, семейство x86
фирмы Intel), широко используются до сих пор, их производительность растет.
Дело в том, что все эти аббревиатуры - CISC, RISC, VLIW
обозначают только идеализированные концепции. Реальные микропроцессоры трудно
классифицировать. Современные микропроцессоры, причисляемые к RISC, сильно
отличаются от первых процессоров RISC архитектуры. То же относится и к CISC.
Просто в наиболее совершенных процессорах заложено множество удачных идей вне
зависимости от их принадлежности к какой-либо концепции.
Регистры IA-64:
· 128 64-разрядных регистров общего назначения (целочисленных)
· 128 80-разрядных регистров вещественной арифметики.
· 64 1-pазpядных пpедикатных pегистpов.
Напомним, что наличие большого числа регистров названо John
Crawford в числе основных черт EPIC. Действительно, 128 - много по сравнению с
8 регистрами общего назначения семейства x86. Но, например, MIPS R10000
содержит 64 целых и 64 вещественных 64-разрядных регистров.
Формат команды IA-64:
· идентификатор команды,
· три 7-разрядных поля операндов - 1 приемник и 2 источника
(операндами могут быть только регистры, а их - 128=2^7)
· особые поля для вещественной и целой арифметики
· 6-разрядное предикатное поле (64=2^6)
Команды IA-64 упаковываются (группируются) компилятором в
"связку" длиною в 128 pазpядов. Связка содеpжит 3 команды и шаблон, в
котоpом будут указаны зависимости между командами (можно ли с командой к1
запустить параллельно к2, или же к2 должна выполниться только после к1) , а
также между другими связками (можно ли с командой к3 из связки с1 запустить
параллельно команду к4 из связки с2).
Перечислим все варианты составления связки из 3-х
команд:
i1
|| i2 || i3 - все команды исполняются
паpаллельно
i1
& i2 || i3 - сначала i1, затем исполняются
паpаллельно i2 и i3
i1
|| i2 & i3 - паpаллельно исполняются i1
и i2, после них - i3
i1
& i2 & i3 - последовательно исполняются i1, i2,
i3
Одна такая связка, состоящая из трех команд, соответствует
набору из трех функциональных устройств процессора. Процессоры IA-64 могут
содержать разное количество таких блоков, оставаясь при этом совместимыми по
коду. Ведь благодаря тому, что в шаблоне указана зависимость и между связками,
процессору с N одинаковыми блоками из трех функциональных устройства будет
соответствовать командное слово из N*3 команд ( N связок ). Таким образом
должна обеспечиваться масштабируемость IA-64. Несомненно, это красивая
концепция. К сожалению, IA-64 присущи и некоторые недостатки.
· Tom R. Halfhill в статье журнала BYTE предполагает что без
перекомпиляции код с одного процессора семейства IA-64 не будет эффективно исполняться
на другом.
· Уже упомянутый Jerry Huck отметил, что в IA-64 можно произвольно
(блоками по 3) увеличивать количество функциональных устройств, но при этом
число регистров должно оставаться неизменным.
· Также Jerry Huck предупредил, что размер кода для IA-64 будет
больше, чем для RISC процессоров, потому что на 3 команды IA-64 приходится 128
bit, а длина RISC команды обычно равна 32 bit, то есть, в 128 битах содержатся
4 команды RISC.
Вдобавок произошла путаница. На прошедшем во второй
половине февраля 1998 года Форуме Разработчиков Intel ведущий инженер Carole
Dulong сказала, что в такой архитектуре, как Merced, пропорция целочисленых,
вещественных, специализированных устройств и устройств чтения/записи будет
определяться сочетанием соответствующих команд в предполагаемом машинном коде.
Тогда как на Микропроцессорном Форуме представители фирм Intel и HP объясняли,
что процессоры семейства IA-64 будут содержать N одинаковых блоков по три
функциональных устройства. Причем, можно предположить, что такой блок должен
состоять из целочисленного устройства, устройства вещественной арифметики и
устройства чтения/записи. Данные высказывания противоречат друг другу.
Кстати, EPIC удивительно напоминает архитектру VelociTI
семейства сигнальных процессоров TMS320C6x фирмы Texas Instruments. Примером
может служить TMS320C6201. В этом процессоре довольно много регистров - 32
регистра общего назначения. 8 функциональных устройств - это много даже по
меркам современных процессоров общего назначения. Команды TMS320C6201
упаковываются во VLIW-слова, состоящие из 8 команд и шаблона. В шаблоне указаны
зависимости между командами - явный параллелизм. За такт может исполниться до 8
команд. Все команды снабжены полем условия - предикация.
Помимо
семейства IA-64 идут разработки еще нескольких универсальных процессоров с
VLIW-подобной архитектурой.
Например, в России группой
Эльбрус с 1992 года разрабатывается микропроцессор E2k (Эльбрус-2000). Научный
руководитель группы Эльбрус член-корреспондент РАН Б.А. Бабаян утверждает, что
отечественный E2k будет в два раза производительнее, чем McKinley
(последователь Merced). По оценкам полученным на логической модели,
производительность E2k составит 135 SPECint95 и 350 SPECfp95.
Еще
примеры:
· В 1995 году была образована фирма Transmeta Ее руководителем
является Dave Ditzel, который ранее, будучи сотрудником Sun, взаимодействовал с
коллективом Эльбрус и имел доступ к информации по разрабатываемому E2k.
· Исследования VLIW
в исследовательском центре IBM имени T.J. Watson начались в 1986.
Кроме
этого, сейчас появляется все больше сигнальных и "медийных"
процессоров с архитектурой VLIW.
Предикация
Предикация - способ обработки условных ветвлений. Суть
этого способа - компилятор указывает, что обе ветви выполняются на процессоре
параллельно. Ведь EPIC процессоры должны иметь много функциональных устройств.
Опишем
предикацию более подробно.
Если в исходной программе встречается условное ветвление
(по статистике - через каждые 6 команд), то команды из разных ветвей помечаются
разными предикатными регистрами (команды имеют для этого предикатные поля),
далее они выполняются совместно, но их результаты не записываются, пока
значения предикатных регистров неопределены. Когда, наконец, вычисляется
условие ветвления, предикатный регистр, соответствующий "правильной"
ветви, устанавливается в 1, а другой - в 0. Перед записью результатов
процессор будет проверять предикатное поле и записывать результаты только тех
команд, предикатное поле которых содержит предикатный регистр, установленный в
1.
Техника, подобная предикации, используется в RISC процессорах
архитектуры ARM от Advanced RISC Machines Ltd.
(Cambridge, UK) начиная с первых ARM в 1980-х. Кстати, фирма Intel обладает
лицензией фирмы Advanced RISC Machines на производство, продажу и модификацию
микропроцессоров семейства StrongARM (разработан фирмой DEC, также обладавшей
лицензией на ARM). В уже упомянутых сигнальных процессорах серии TMS320 все
команды снабжены полем условия. Также и некоторые команды HP PA-RISC снабжены
полем условия. В IBM POWER3 могут выполняться по предположению команды из обеих
ветвей.
Описывая предикацию, представители Intel и HP ссылаются на
исследовательскую работу A
Comparison of Full and Partial Predicated Execution Support for ILP Processors,
выполненную Scott A. Mahlke, Richard E. Hank, James E. McCormick, David I.
August, и Wen-mei W. Hwu из исследовательской группы IMPACT университет штата Иллинойс. Работа опубликована
в трудах 22-го Международного Симпозиума по Вычислительной Архитектуре,
прошедшего в 1995 году. В настоящее время некоторые из авторов трудятся в
лабораториях HP. В этой работе изучалось применение предикации на
гипотетическом процессоре, содержащем 8 функциональных устройств. Было
показано, что предикацию можно применить (в среднем) к половине условных
ветвлений в программе.
К
сожалению, Intel и HP не объяснили, как в процессорах семейства IA-64 будет
обрабатываться оставшаяся половина условных ветвлений.
Современные же процессоры кроме предикации используют
предсказание и исполнение по предположению. Кстати, RISC процессоры довольно
часто правильно предсказывают ветвь - в 95% случаев.
Загрузка по предположению
Этот механизм предназначен снизить простои процессора,
связанные с ожиданием выполнения команд загрузки из относительно медленной
основной памяти.
Компилятор перемещает команды загрузки данных из памяти
так, чтобы они выполнились как можно раньше. Следовательно, когда данные из
памяти понадобятся какой-либо команде, процессор не будет простаивать.
Перемещенные таким образом команды называются командами загрузки по
предположению и помечаются особым образом. А непосредственно перед командой,
использующей загружаемые по предположению данные, компилятор вставит команду
проверки предположения. Если при выполнении загрузки по предположению возникнет
исключительная ситуация, процессор сгенерирует исключение только когда встретит
команду проверки предположения. Если, например, команда загрузки выносится из
ветвления, а ветвь, из которой она вынесена, не запускается, возникшая
исключительная ситуация проигнорируется.
Обычно для борьбы с зависимостью от медленной памяти в
процессорах применяются кэши 2-х, 3-х уровней. Например HP PA-8500 содержит кэш
1-го уровня емкостью в 1.5 Mb.
Но, вдобавок к этому, например в процессорах Sun UltraSPARC
(SPARC version 9), IBM POWER3 и HP PA-8xxx есть команды, указывающие
процессору, что именно (данные и команды) загрузить в кэш 1-го уровня - это
сильно напоминает загрузку по предположению.
Оценки
производительности
Согласно заявлениям
фирмы Intel, Merced достигнет наибольшей производительности в отрасли.
Более точных оценок официально объявлено не было. Но затем фирма Intel
анонсировала 32-разрядный Foster. Оказывается, он будет равен Merced в
производительности на вещественных операциях. И даже последователь Merced,
McKinley, будет медленнее, чем Foster в 32-разрядной целочисленной арифметике.
Таким образом, фирма Intel сама себя опровергла. Merced не будет чемпионом по
производительности.
Аналитики
из MicroDesign Resources полагают,
что производильность Merced с частотой 800 MHz на наборе команд IA-64 не
превысит 45 SPECint95 и 70 SPECfp95, а на наборе команд x86 будет
соответствовать Pentium с частотой 500 MHz. Производительность Pentium II на
450 MHz равна 17.2 SPECint95 и 12.9 SPECfp95. Получается, что при исполнении на
Merced x86-кода производительность ухудшится в 3-5 раз.
Уже сейчас Compaq/DEC Alpha 21264 на частоте 500 MHz выдает
27.7 SPECint95 и 58.7 SPECfp95. На Alpha можно исполнять x86-код с помощью
бинарного транслятора FX!32. Производительность при этом уменьшается в среднем
в 3 раза.
Кстати,
в 1997 году фиpма Intel закупила у DEC ряд лицензий, используемых в DEC Alpha.
Intel была вынуждена сделать это, чтобы избежать судебного наказания за
использование технологических решений DEC Alpha в своих продуктах. Веpоятно,
ноу-хау DEC Alpha оказали существенное влияние и на будущий Merced.
|