Особенности архитектуры
По мнению представителей Intel, архитектура процессора Itanium - это самая значительная разработка со времени презентации 386-го процессора в 1985 г. Первые образцы 64-разрядного процессора Intel представляют собой картридж размером примерно 10х6 см, который включает в себя кэш-память третьего уровня емкостью 2 либо 4 Мбайт и радиатор. Картридж монтируется в разъем типа Slot и имеет 418 выводов. Процессор имеет трехуровневую иерархию сверхоперативной памяти. Если кэш-память первого и второго уровней интегрирована на кристалле процессора, то микросхемы кэш-памяти третьего уровня расположены на самой плате картриджа. На реализацию процессора с соблюдением проектных норм 0,18 мкм потребовалось около 320 млн. транзисторов, из которых только 25 млн. пришлось на реализацию самого ядра, а остальные - на кэш-память. Самый большой модуль процессора - это блок вычислений с плавающей запятой, он занимает около 10% площади кристалла. Производительность Itanium составляет до 6,4 млрд. операций с плавающей запятой в секунду. Благодаря архитектуре EPIC и 15 исполнительным устройствам процессор может выполнять до 20 операций одновременно. При этом он может непосредственно адресовать до 16 Тбайт памяти при пропускной способности до 2,1 Гбайт/с. В процессоре реализована поддержка всех расширений Intel (технологий MMX, SIMD и симметричной мультипроцессорной обработки), за исключением SSE2.
Архитектура IA-64. |
Одна из самых интересных деталей в плане размещения узлов процессора - это система синхронизации работы узлов. Одновременная передача тактовых импульсов при большой площади процессора представляет сложную задачу для разработчиков, поскольку задержки в распространении импульсов тактового генератора могут вызывать рассинхронизацию узлов. Для этой цели по всей площади кристалла разместили большое число точек распространения тактовых импульсов.
Архитектура Itanium включает такие уникальные средства повышения надежности, как система расширенного самоконтроля EMCA (Enhanced Machine Check Architecture), обеспечивающая обнаружение, коррекцию и протоколирование ошибок, а также поддержку обработки кода ECC (Error Correcting Code) и контроля четности.
Для двух- и четырехпроцессорных систем Intel выпустила специальный набор микросхем Intel 460GX, которые могут включаться каскадно, увеличивая число одновременно используемых процессоров. Поскольку конфигурация таких систем изначально предусматривает объемы оперативной памяти в несколько гигабайт, то в системах Itanium применяются сравнительно недорогие микросхемы памяти типа SDRAM. При этом для увеличения производительности, по словам представителей Intel, используются такие методы, как буферирование, чередование и деление памяти на несколько банков. Набор микросхем реально поддерживает работу с 64 Гбайт памяти при максимальной пропускной способности 4,2 Гбайт/с, хотя 64-разрядная адресация памяти теоретически позволяет обращаться к гораздо большему количеству адресов.
Процессоры Itanium будут работать на тактовой частоте 800 или 733 МГц, а их стоимость в зависимости от объема кэш-памяти составит от 1177 до 4227 долл.
Архитектура IA-64. |
Современные тенденции развития микропроцессоров связаны с выполнением большего числа команд за один такт. Разработчики IA-64 полагают, что добиваться более высокого уровня суперскалярности (распараллеливания) в процессоре можно, только если отказаться от обычных последовательных кодов и ввести параллелизм прямо на уровень системы команд. В этом случае задача распараллеливания ложится не на аппаратуру процессора, а на компилятор. Как уже отмечалось, в основе IA-64 лежит технология EPIC, главная идея которой - введение явного параллелизма. Преимущества такого подхода понятны. В схемотехнических решениях процессоров исчезает сложная логика, отвечающая за внеочередное суперскалярное выполнение команд, и можно отвести больше места на кристалле под кэш-память, файл регистров и исполнительные устройства. Однако, с другой стороны, возникает необходимость разрабатывать сложные и эффективно распараллеливающие компиляторы.
Несомненно, что между технологиями EPIC и VLIW (Very Long Instruction Word) много общего. VLIW обычно рассматривают как статическую суперскалярную архитектуру. Имеется в виду, что распараллеливание кода происходит на этапе компиляции, а не динамически во время исполнения. Иными словами, в машинном коде VLIW присутствует явный параллелизм. В свою очередь, к основным особенностям EPIC относят:
Основная особенность EPIC та же, что и у VLIW, - распараллеливанием потока команд занимается компилятор, а не процессор. Достоинства данного подхода заключаются в том, что упрощается архитектура процессора, причем он не тратит время на анализ потока команд. Кроме того, в отличие от процессора компилятор способен проводить анализ по всей программе, а не по сравнительно небольшому ее участку. Поскольку практически любая программа должна запускаться многократно, выгоднее распараллелить ее один раз (при компиляции), а не каждый раз, когда она исполняется на процессоре.
В архитектуре Itanium насчитывается по 128 64-разрядных целочисленных регистров общего назначения и 80-разрядных регистров вещественной арифметики, а также 64 одноpазpядных пpедикатных pегистpа. Все они доступны для программирования; кроме того, имеется множество недоступных внутренних служебных регистров, используемых самим процессором. 64 одноразрядных регистра используются для организации логики предсказания ветвления и выполнения команд в порядке, отличном от последовательного.
Для достижения явного параллелизма в формат команд IA-64 введены дополнительные разряды маски, которые явно указывают на зависимости между командами. До сих пор задача определения таких зависимостей полностью ложилась на аппаратуру процессора. Здесь же вводится понятие групп команд. Все они независимы, и их следует выдавать на выполнение в разные исполнительные устройства. Разряды маски указывают на зависимости не только внутри нескольких команд, но и между группами команд. По три команды IA-64 объединяются в так называемую связку, имеющую емкость 128 разрядов. Связка содержит три команды и шаблон, в котором указано, какие есть зависимости между командами (например, можно ли с первой командой запустить параллельно вторую или же она должна выполниться только после первой и т.п.).
В современных процессорах активно используются методики предсказания ветвлений и спекулятивного выполнения. Однако в существующих на сегодня моделях очень много времени уходит на вычисление ветвей программы, которые впоследствии не используются. Другое дело Itanium. Если в исходной программе встречается условное ветвление, то команды из разных ветвей помечаются разными предикатными регистрами (команды имеют для этого предикатные поля); далее они выполняются совместно, но их результаты не записываются, пока значения предикатных регистров не определены. Когда, наконец, вычисляется условие ветвления, предикатный регистр, соответствующий правильной ветви, устанавливается в 1, а другой - в 0. Перед записью результатов процессор проверяет предикатное поле и записывает результаты только тех команд, предикатное поле которых содержит предикатный разряд, установленный в единицу.
Еще одна особенность архитектуры Itanium - предсказание и исполнение по предположению. Этот механизм должен снизить простои процессора, связанные с ожиданием выполнения команд загрузки из относительно медленной основной памяти. Компилятор перемещает команды загрузки данных из памяти так, чтобы они выполнились как можно раньше. Следовательно, когда данные из памяти понадобятся какой-либо команде, процессор не будет простаивать. Перемещенные таким образом инструкции называются командами загрузки по предположению и помечаются особым образом. А непосредственно перед командой, использующей загружаемые по предположению данные, компилятор вставит команду проверки предположения. Если при выполнении загрузки по предположению возникнет исключительная ситуация, процессор сгенерирует исключение только тогда, когда встретит команду проверки предположения. Если, например, команда загрузки выносится из ветвления, а ветвь, из которой она вынесена, не запускается, то возникшая исключительная ситуация игнорируется.
С выходом Itanium сравнение процессоров по частоте практически теряет смысл. Теперь придется применять новые методики, учитывающие не только количество реально выполненных за один такт инструкций, но и качество анализа компилятором исполняемой программы, поскольку результирующая производительность будет сильно зависеть от этого (процессор ведь может работать с огромной скоростью, вычисляя ненужные ветви программы).
Расширение x86
По заявлению разработчиков, Itanium полностью совместим с современными 32-разрядными приложениями. Однако вряд ли эти программы будут работать на 64-разрядном кристалле быстрее. Более того, как полагают некоторые специалисты, возможно, придется привыкать и к более медленным темпам. Зато новые, специализированные приложения оставят всех позади. Например, уже на этапе опытного производства кристаллов архитектура процессора Itanium продемонстрировала высокое быстродействие алгоритмов защиты информации, интенсивно использующих вычислительные мощности.