О будущем 64-битных расширений архитектуры x86

Ключевым событием прошедшего на этой неделе Форума Intel для разработчиков без преувеличений можно назвать официально объявленную Intel поддержку 64-битных расширений в будущих версиях IA32-процессоров для настольных, серверных и мобильных процессоров. Задолго до своего официального появления технология фигурировала под названием Yamhill, затем обзавелась красивым названием Clackamas Technology, однако, специалисты предпочитают оперировать более кратким и емким IA32E (Extended).

Несмотря на то, что основные цели Intel в продвижении IA32E, в целом, уже определены и названы, не до конца понятными и ясными остаются, как минимум, два важных вопроса: когда на самом деле мы увидим новые IA32E процессоры Intel для настольных ПК в магазинах и наших компьютерах; насколько тождественны 64-битные расширения IA32 в версиях Intel и AMD. На самом деле, разумеется, вопросов гораздо больше, но раз уж два лидера процессорной отрасли со своими технологиями IA32E и AMD64 отныне будут лить воду, как минимум, на одну общую мельницу – Windows XP 64-bit Edition, все остальные вопросы, на мой взгляд, уже вторичны, а ответы на них в какой-то степени заложены в ответах на два главных вопроса.

В одном из самых первых наших репортажей с IDF Spring 2004, когда освещалось программное выступление Крейга Барретта, мы сообщили, что 64-битные расширения для процессоров с ядром Prescott будут представлены Intel ближе к концу года (лично у меня есть такое подозрение, что вопросам внедрения Clackamas Technology будет посвящен приличный объем времени на сентябрьском IDF Fall 2004). Какое именно ядро на самом деле первым поддержит IA32E – Prescott или Tejas, на самом деле, в настоящее время неважно, поскольку в любом случае, это будет уже в эпоху сокета LGA775. Другое дело, что IA32E процессоры, которые будут фигурировать на рынке в 2004 году, навряд ли будут иметь отношение к обычным настольным ПК; из заявлений руководства Intel четко прослеживается идея продвижения Clackamas Technology в первую очередь, на рынке серверных решений, с ядром Nocona, в пику и противовес линейке AMD Opteron.

Что касается присутствия IA32E в процессорах для настольных ПК, то на мой взгляд, наиболее четко позиция Intel в этом вопросе была представлена даже не на презентации IDF, а днем позже, во время интервью, которое Вильям Сью (William Siu), вице-президент компании и руководитель подразделения Desktop Platforms Group, дал в прошедшую среду агентству Reuters. Его мнение таково: новая 64-битная технология будет оставаться невостребованной в домашних ПК примерно до 2006 года. Это совсем не означает, что Intel будет ждать с запуском поддержки IA32E до 2006 года. Другое дело, что Intel намерена дождаться того момента, когда совокупность всех компонентов "экосистемы", включая операционную систему и программные приложения, будет готова к поддержке этих расширений.

Вот так звучит основная мысль, выражающая нынешнее отношение Intel к внедрению IA32E в настольные платформы, в устах г-на Сью:

"The question you have to ask yourself is will 64-bit be compelling and relevant three years from now? ... You end up spending more money for a feature you don´t need to use." (Вопрос, который вы должны задать сами себе: является ли поддержка 64-битности обязательной и уместной в ближайшие три года? ... Навряд ли стоит дополнительно оплачивать возможности, которые вы не собираетесь использовать).

Иными словами, реальной нужды в 64-битных расширениях, по мнению руководства Intel не возникнет до тех пор, пока не появится ПО, в полной мере поддерживающей эти возможности, например, Microsoft Windows Longhorn, ожидающейся на рынке в конце 2005 или даже начале 2006 года.

Честно говоря, такая позиция Intel в отношении внедрения возможностей 64-битных расширений хоть и кажется взвешенной и солидной, все же несколько озадачивает. В последнее время новые возможности платформы реализуются вне зависимости от того, действительно ли они востребованы конечным пользователем, примеров можно вспомнить много, но по мне, так настольные системы вполне могли обойтись без некоторых промежуточных форм-факторов процессоров или, например, без драгоценной шины AGP 8X – немного подождав и сразу махнув с AGP 4x на PCI Express. Впрочем, дело совсем не в этом. В нынешней ситуации AMD выставляется со своими 64-битными инструкциями в "настольных" Athlon 64 в несколько "легкомысленном" свете – реализовав AMD64 в кремнии, но не обеспечив технологию должной программной поддержкой, продвижение 64-битности можно назвать чистым маркетингом. С другой стороны, за наличие AMD64 в нынешних чипах, по большому счету, денег особенных и не берется – этакое почти бесплатное приложение к 32-битному чипу, но возможности, предлагаемые 64-битными расширениями, можно "пощупать" уже сейчас, загрузив бету 64-битной Windows или что-нибудь из списка клонов Linux с поддержкой 64-битных расширений. Когда бета Windows XP 64-bit Edition трансформируется в финальный продукт, на рынок явно подтянется некоторое количество коммерческого софта для этой платформы. К тому времени парк настольных машин с поддержкой AMD64 будет насчитывать миллионы, если не десятки миллионов ПК. Опять же, не стоит скидывать со счетов тот факт, что возможность работы следующих поколений под Windows XP 64-bit Edition сыграет не последнюю роль в активизации софтверных фирм, которые теперь явно с большим энтузиазмом возьмутся за портирование своего софта под новую платформу.

Подытоживая вышесказанное, хотелось бы вспомнить времена, когда семейство процессоров Opteron/Athlon 64 еще называлось попросту Hammer и существовало только на бумаге. Именно тогда AMD был провозглашен эволюционный подход к переходу на 64-битные приложения. С тех пор он таковым и оставался, поддерживаясь и продвигаясь компанией в меру финансовых возможностей. То, что идея эволюционного перехода оказалась удачной, теперь ясно всем, и то, что и Intel, и AMD теперь движутся в одном направлении, то, что пользователь, покупая будущую 64-битную версию Windows, по-прежнему не будет заморачиваться вопросом, какой же из IA32+ процессоров установлен у него в ПК – на мой взгляд, великая удача для всей IT-индустрии. [Не знаю, как себя в настоящее время чувствует Билл Гейтс, но думаю, он искренне рад, что почти монопольный контроль за настольными системами вновь остался в его руках, причем, при сохранении единой программной платформы ;- )].

Теперь – несколько слов о второй части вопроса, вынесенного в начало новости: насколько тождественны 64-битные расширения IA32 в версиях Intel и AMD? Опубликованные к настоящему моменту спецификации Intel IA32E, в частности, документ "64-Bit Extension Technology Software Developer’s Guide" позволяет дать более-менее точный ответ на этот вопрос.

Рассмотрим все возможные режимы работы процессора с поддержкой IA32E. При работе с 64-битными приложениями под 64-битной операционной системой потребуется полный 64-битный режим, в то время как "совместимый подрежим" обеспечивает совместимость с 16-/32-битными приложениями на бинарном уровне, то есть, полная тождественность IA-32E c так называемым Long Mode у AMD64.

64-битный режим Режим Размер по умолчанию Ширина GPR ОС Перекомпиляция приложения
Адрес Операнд
IA32E IA-32e 64-бит 64 32 64 64 Требуется
Совм. 32/16 32/16 32 64 Не требуется
Legacy 32/16 32/16 32 32/16 Не требуется
AMD64 Long 64-бит 64 32 64 64 Требуется
Совм. 32/16 32/16 32 64 Не требуется
Legacy 32/16 32/16 32 32/16 Не требуется

За включение поддержки IA-32E отвечает Extended Feature Enable MSR (IA32_EFER), аналогичный контрольному биту EFER у AMD64. При установке контрольного бита LMA = 0, чип работает как обычный x86 процессор (Legacy Mode), в 64-битном IA-32e режиме LMA принимает значение 1. О будущем 64-битных расширений архитектуры x86

Теперь рассмотрим 64-битный режим работы процессора: О будущем 64-битных расширений архитектуры x86

При включении режима Clackamas Technology процессор начинает поддерживать 64-битную адресацию — правда, странично, поскольку физическое адресное пространство ограничено 52 битами. Нынешние процессоры будут адресовать до 48-бит виртуальном адресном пространстве, физическая длина адреса ограничена 40 битами. Всего же, таким образом, процессор может обеспечить адресацию до терабайта памяти. Помимо этого, в 64-режиме процессора добавляются восемь новых 64-битных GPR регистров с префиксом R, а также восемь новых регистров XMM8 — XMM15 с поддержкой SSE, SSE2 и SSE3, плюс, 64-битный указатель RIP — фактически, полная аналогия с AMD64.

Разумеется, если как следует покопаться в документации, можно обнаружить некоторые тонкости реализации 64-битного режима IA32E, которые, при желании, можно рассматривать как возможность ограничить программную совместимость двух платформ в будущем. Разница есть, также не стоит забывать об отсутствии поддержки SSE3 у нынешних чипов платформы AMD64, да и Hyper-Threading им недоступен. Однако, главное, в чем может убедиться каждый – совместимость реализуема без каких-либо особенных усилий. Было бы желание у производителей программного обеспечения.

Заканчивая этот несколько подзатянувшийся материал, хотелось бы отметить, что как бы там дальше не сложилась судьба 64-битных расширений, нас, конечных пользователей, уже можно поздравить хотя бы с тем, что программная платформа для архитектуры x86 и впредь останется единой. А это, согласитесь, уже немало...

20 февраля 2004 в 12:00

Автор:

Все новости за сегодня

Календарь

февраль
Пн
Вт
Ср
Чт
Пт
Сб
Вс
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29