64 бита: расставим точки над большим «I»
Евгений Патий
🕛 24.08.2007, 11:06
Широкие массы пользователей убеждены, что 64-битные вычисления появились совсем недавно, буквально три-четыре года назад. Такую точку зрения можно и нужно оспаривать, однако ее нетрудно понять: именно в это время началось мощное наступление мейнстрим-архитектуры x86, "подросшей" до 64 разрядов.Но «32» и «64» - это не абстрактные цифры, характеризующие аппаратную платформу. Если бы это было так, то переходов от 16 бит к 32 и от 32 бит к 64 никто бы и не заметил. Вероятно, нынешнее поколение компьютерщиков слабо помнит (или же вообще не застало) эпохальную миграцию с 16 бит на 32. Если сравнить этот период с нынешним «вялотекущим» перемещением на 64-битные платформы, то ситуация отличается коренным образом, и прежде чем затронуть основную тему статьи, необходимо ответить на вопрос: зачем это нужно тогда и сейчас?
Более десяти лет назад стало очевидно, что 16-разрядные вычисления исчерпали себя и дальнейший прогресс невозможен - только придумывание и использование различных «костылей». На момент миграции массовых вычислений с 16 бит на 32 преимущества повышения разрядности были совершенно прозрачны: скажем, арифметико-логический блок полноценного 32-битового процессора мог напрямую выполнять основные арифметические операции с так называемыми длинными целыми числами, которые стали полностью помещаться в один 32-битовый регистр. Прежде это реализовывалось только программными процедурами, и в большинстве случаев прирост производительности оказался весьма значительным. Можно привести целый список примеров, однако примем за отправную точку факт, что 32 бита сулили и удобство для программиста, и повышение производительности, и адресацию больших объемов памяти, и, в конце концов, не давали застопорить прогресс.
В то же время рынок программного обеспечения стало буквально лихорадить. Разработчики настоящих 32-разрядных систем, например Microsoft с Windows NT и IBM с OS/2, начали негласное состязание - кто совершит переход более быстро, безболезненно, не ущемив при этом интересы пользователей. Еще свежи в памяти казусы, когда прекрасная 16-разрядная программа напрочь отказывалась работать в истинном 32-битном окружении, что вызывало естественное раздражение пользователей. Так или иначе, переход худо-бедно завершился благодаря в том числе и мощным рыночным рычагам: многие производители отказались от темного 16-разрядного наследия, полностью перейдя на 32-битные средства разработки.
Как мы помним, операционные системы Windows 95/98/Me вполне уживались с 16-битными программами, однако всем уже было ясно, что это тупиковая ветвь и будущее массовых ОС от Microsoft - за 32-разрядной архитектурой Windows NT. Хотя есть мнение, что и в Windows NT, и даже в Windows XP еще присутствуют фрагменты 16-битного кода, упрятанные за семью замками.
Сегодня 32 разряда являются стандартом де-факто, и необходимо признать, что возможности этой архитектуры далеко не исчерпаны. По крайней мере, с точки зрения популярных платформ. Тем не менее идеи 64-битности давно и упорно несутся в массы, не находя должного для производителей отклика по единственной причине: пока это не критично. Можно долго и горячо рассуждать об огромных адресных пространствах, об ускорении ввода/вывода и неслыханных возможностях в сфере мультимедиа и научных вычислений, но пользователи относятся к таким призывам прагматично. Тем более, что с точки зрения программного обеспечения ситуация в точности повторяется - если говорить об операционных системах Microsoft. Программы 16-битные не поддерживаются вовсе (что вполне понятно), а для 32-битных имеется собственная «песочница», за пределы которой они выбраться не могут. Кроме того, возникают проблемы с драйверами аппаратуры и различными программными эмуляторами аппаратуры, не всегда сохраняется ожидаемая стабильность работы и т. д.
Ситуация выглядит несколько иначе, если абстрагироваться от понятий «массовая платформа и ее применение», и просто обратить внимание на число 64. Нужны ли 64 бита как таковые? Безусловно, нужны. Производительные рабочие станции, серверы, кластеры - есть много сегментов, где 64 бита сулят ощутимые выгоды. А с реализацией сегодня дела обстоят вполне благополучно: на рынке есть платформы, выросшие из x86 (AMD64 и E64MT), есть RISC-платформы, являющиеся 64-битными еще с незапамятных времен, и есть стоящий особняком 64-разрядный Intel Itanium 2 (или IA64). Последняя платформа весьма интересна со многих точек зрения.
Старт процессорного семейства Itanium оказался не впечатляющим - стопроцентный блин комом. Хотя с архитектурной точки зрения Itanium был неплох, подвела экосистема: процессор способен реализовать все свои возможности только при работе с оптимизированным программным обеспечением, а здесь Intel ничего не смогла поделать, даже несмотря на свой авторитет и финансовые возможности. Ситуация напоминала современный высокотехнологичный автомобиль, который предлагается заправить сырой неочищенной нефтью. Компания сделала попытку проникнуть в элитный клуб, где места давным-давно закреплены за RISC-платформами и чужаков не очень-то ждут.
Itanium 2 является преемником 64-разрядного Itanium, который имел хорошую производительность, но не завоевал должной популярности у производителей серверов и рабочих станций, несмотря на отсутствие ограничений, присущих архитектуре x86. Отчасти это было вызвано тем, что процессору Itanium компания Intel отводила роль в первую очередь «стартовой площадки», эдакого тренажера для отладки 64-разрядной архитектуры и схемотехники (кстати, новая микроархитектура Itanium 2 носит название EPIC). Именно с этой задачей Itanium справился, подготовив почву для более сбалансированных и производительных чипов. Разумеется, это мнение Intel. Intel хватило смелости не похоронить начинание, и свет все-таки увидел 64-битный процессор Itanium 2, хотя и с существенными оговорками. 10 октября 2002 года Техасский окружной суд принял решение о том, что в 64-разрядных процессорах Intel незаконным образом использованы технологии параллельного вычисления команд, запатентованные компанией Intergraph. По решению суда Intel должна возместить компании убытки в размере $150 млн, а далее у Intel есть три пути: приобрести лицензию за дополнительные $100 млн, подать апелляцию и, в случае проигрыша, заплатить еще $100 млн или разрабатывать новые процессоры, используя иные технологии, если таковые найдутся.
К счастью, для Intel все обошлось, и процессор Itanium 2 (кодовое имя McKinley) вышел на рынок. А в конце января 2006 года корпорация Intel сообщила о том, что развитие серверной архитектуры Itanium 2 получило дополнительный стимул в виде инвестиций ($10 млрд) от крупнейших производителей серверных систем, предлагающих свои продукты на базе Itanium. В число инвесторов вошли Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI и Unisys - участники альянса Itanium Solutions Alliance (ISA). Решение о выделении столь крупной суммы средств было принято на первом заседании руководителей компаний- участников ISA. Отрадно, что на поприще оптимизации программного обеспечения для IA64 имеются значительные сдвиги в лучшую сторону, речь идет о нескольких тысячах приложений. Это позволяет говорить о значительном упрочнении позиций Itanium 2 в тех сферах, где данная архитектура может в полной мере проявить свои преимущества. Традиционно это высокопроизводительные высоконагруженные серверы и профессиональные рабочие станции, что обусловлено схемотехническими решениями, нашедшими применение в Itanium 2.
Микроархитектура EPIC, на основе которой построен Itanium 2 (McKinley), позволяет достичь высокого уровня параллелизма при выполнении вычислительных задач, в некоторых случаях этот показатель даже выше, чем у процессоров с микроархитектурой RISC. Следствием высокой степени параллелизма вычислений является более высокая производительность системы в целом, но при условии применения оптимизированного ПО. Это объясняется следующим:
параллельным исполнением максимального числа инструкций;
наличием нескольких исполнительных блоков и параллельных каналов;
исполнением двух пакетов за каждый процессорный цикл;
элементами VLIW (Very Large Instruction Word - «cверхбольшое командное слово»).
Кроме того, в состав схемотехники Itanium 2 входят 128 основных регистров, а также 128 регистров для операций с плавающей запятой. Специальными являются 64 предикативных регистра и 8 регистров ветвления. В управлении памятью архитектуры EPIC реализованы следующие особенности:
64-разрядная адресация;
предположительное исполнение;
иерархическое использование памяти.
Эти факторы обеспечивают эффективность исполнения операций при высоких нагрузках, а также поддержку больших наборов данных, что находит применение при работе с большими базами данных и в научных расчетах. Наиболее грозными конкурентами платформы Intel являются системы на базе серверных процессоров Sun SPARC и IBM POWER, на долю которых приходится, соответственно, 58% и 33% продаж вычислительных систем. Не исключено, что именно в связи со сложившейся расстановкой сил лидеры мирового рынка корпоративных систем высшего уровня приняли решение о незамедлительной денежной инъекции в дальнейшее продвижение платформы Intel Itanium 2. Для иллюстрации приведем мировую статистику III квартала 2005 года (данные Gartner): продано 7845 серверов на базе Itanium, 62 776 решений с Sun UltraSPARC, 31 648 серверов с IBM POWER, и 9147 на базе HP PA-RISC.
Дело в том что RISC-архитектуры SPARC и POWER имеют в качестве почвы под ногами богатый опыт разработчиков - электронщиков, программистов, математиков, - а также развитую инфраструктуру и, что немаловажно, огромную базу пользователей решений на основе этих архитектур. Изменить этот расклад с нуля представляется маловероятным, тем более что и Sun, и IBM тоже не сидят сложа руки. Сейчас сложно представить, что после долгих лет исследований и разработок эти компании могут иметь серьезные проблемы с масштабированием систем или с оптимизацией своего же программного обеспечения (ОС Solaris у Sun, ОС AIX у IBM). Кроме того, и Sun, и IBM, и Intel всячески выказывают свою благосклонность к Linux, обеспечивая поддержку сообщества разработчиков и принимая непосредственное участие в разработке ядра Linux и в других Linux- и Open Source-проектах. Intel имеет прямой резон поддерживать Linux, хотя бы потому, что эта операционная система не имеет проблем ни с глубокой оптимизацией кода, в том числе и для IA64, ни с масштабируемостью, ни с прикладным и системным программным обеспечением.
Именно Intel Itanium 2 с IBM POWER5+ и конкурируют сегодня на рынке высокопроизводительных Unix-серверов (если не принимать во внимание рынок систем х86-64). Sun Microsystems с процессорами UltraSPARC T1 (Niagara) пошла в сторону многоядерности и многопоточности с небольшой производительностью процессорных ядер. Достаточно непросто складываются отношения Intel с партнерами, в частности, с Hewlett-Packard. С одной стороны, HP помогала разрабатывать Itanium (о сотрудничестве в этой области было объявлено еще в 1994 году) и собиралась его использовать во всех своих корпоративных платформах, а с другой, выпустила серверы на базе процессоров с архитектурой AMD64 и EM64T (эти процессоры работают с 64-битными приложениями, однако поддерживают и 32-битное ПО без падения производительности). Еще на этапе анонса Itanium 2 многие компании сообщили о своем нежелании использовать данный чип в своих решениях: за неделю до выпуска Itanium 2 руководство Dell заявило, что в системах их производства микропроцессор применяться не будет. Несколько ранее подобное сообщение поступило от IBM, отказавшейся поддержать новую микросхему в очередной версии своей операционной системы AIX.
Каков же козырь Intel при таком, казалось бы, нерадужном стечении обстоятельств? Компания обладает значительными ресурсами для разработки и выпуска компонентов инфраструктуры, а кроме того, наличие множества собственных фабрик позволяет Intel удешевить производство Itanium 2, что, в конечном итоге, отражается в довольно выгодном рыночном предложении: дешевое (на фоне прочих) и производительное 64-разрядное решение. Об этом косвенно могут свидетельствовать два суперкомпьютера на основе этого процессора, попавшие в список Top 500: Tera-10 (8704 Itanium 2 с частотой 1,6 ГГц) и Columbia (10160 Itanium 2 с частотой 1,5 ГГц).
Как же выглядит Itanium 2 сегодня? Это двухъядерный 64-разрядный процессор с аппаратной поддержкой технологии виртуализации, изготовленный с использованием техпроцесса 90 нм. Модельный ряд Itanium 2 состоит из шести процессоров, работающих на тактовой частоте от 1,40 до 1,60 ГГц (частота системной шины 400/533 МГц). Процессоры оснащены кэш-памятью внушительного объема (от 6 до 24 Мбайт) и рассеивают скромное количество тепла, 75-104 Вт. Четыре модели из шести попрежнему поддерживают технологию HyperThreading, к которой Intel заметно охладела в прочих продуктовых линейках. Помимо прочего, Itanium 2 оснащен механизмом минимизации ошибок кэш-памяти (Intel Cache Safe Technology).
За время своего присутствия на рынке Itanium 2 приобрел вес. Примечательно, что все подающие надежды разработки Intel так или иначе оказываются реализованными в Itanium 2 - и многоядерность, и Hyper-Threading, и концепция энергоэффективной производительности. В то же время, за последний год линейка Itanium 2 поредела - в начале 2006-го компания объявила о снятии с производства восьми моделей. В список попали версии с тактовыми частотами 1, 1,1, 1,3, 1,4 ГГц (с 1,5, 3 и 4 Мбайт L3-кэша), 1,5 и 1,6 ГГц. Но пока говорить о панике среди партнеров и клиентов преждевременно: заказы на чипы принимались до конца июня 2006 года, а полное прекращение отгрузок этих процессоров планируется в январе 2009-го.
Вряд ли Intel решила бросить эксперименты с истинной 64-разрядностью, скорее всего, планируется качественный прорыв на следующий уровень. Пока сведений о грядущих Itanium 2 немного, однако ожидается, что процессоры увидят свет на рубеже 2007 и 2008 годов, а кодовое имя нового процессора - Tukwilla. Он будет иметь не менее четырех ядер, уменьшенные задержки памяти и другие усовершенствования. Среди них можно отметить, например, «ключи защиты», в том числе для безопасного разделения данных между операционной системой и приложениями. Также предполагается выпуск двухъядерной версии Tukwilla и бюджетный вариант этого процессора с кодовым именем Dimona. Хотя это сведения непроверенные, и до конца года мы еще можем услышать о других планах Intel.
На российском и постсоветском рынках дела у Itanium 2 идут неплохо. В числе наиболее крупных организаций, выбравших решения на Itanium 2, - «Росгидромет», «Вимм-БилльДанн», «МегаФон», Альфа-Банк, «АвтоВАЗ». При этом, как и следовало ожидать, наиболее широко Itanium 2 применяется в решении околонаучных и инженерных задач. К примеру, серверы на базе Itanium 2 активно использует Институт вычислительной математики Российской академии наук (ИВМ РАН). Другой пример, где использование систем на базе Itanium 2 стало обычным явлением, - биллинговые системы операторов мобильной связи, а также энергетических и транспортных компаний. Свежий пример из этой области - компания «ПетерСтар», запустившая в эксплуатацию серверные системы на базе Itanium 2.
Весьма показательна иллюстрация «инженерной» работы серверов на базе Intel Itanium 2, обеспеченной компанией «К-Системс» для завода «Электросила» (Санкт-Петербург). Здесь новая четырехпроцессорная система на базе Itanium 2 1,3 ГГц используется для высокопроизводительных вычислений: прочностных, тепловых, электрических и магнитных расчетов электрических машин. Хотелось бы верить, что позиции Itanium 2 крепки. По крайней мере, сегодня к этому есть все предпосылки. Однако, как сложится ситуация в борьбе с новинками от основных конкурентов (IBM POWER6 и Sun UltraSPARC T2), предугадать нельзя. Скорее всего, нынешняя расстановка сил скорректируется несущественно.