Как развивается рынок высоких технологий

Не так давно упоминание о 64-разрядных процессорах могло ассоциироваться только с самыми высокоуровневыми системами. Достоинства этих процессоров проявлялись лишь в специализированных проектах, что было обусловлено чрезмерной стоимостью и ограничениями программного обеспечения. Способность 64-разрядных систем использовать преимущества адресации памяти объемом более 4 Гбайт (предел для 32-разрядных машин) делала такие системы оптимальными платформами для ресурсоемких приложений, работающих с базами данных и графикой. Для подобной работы необходим доступ к огромному объему памяти и возможность интенсивного обмена данными.

Однако ничто не меняется так быстро, как мир технологий. Сейчас, с появлением новых 64-разрядных процессоров от компаний AMD и Intel и с выпуском новых 64-разрядных версий Windows и быстрым внедрением 64-разрядной архитектуры передовыми производителями персональных компьютеров, такими как Dell, HP и IBM, появилась реальная возможность уже в этом году задействовать 64-разрядные системы в качестве серверов или даже настольных систем. Чтобы получить представление о том, как такие высокопроизводительные системы могут изменить работу на предприятии, давайте рассмотрим различия между сегодняшними представителями семейства 64-разрядных процессоров и изучим их основные особенности.

Itanium2 от Intel

Выпущенный в мае 2001 года процессор Itanium компании Intel стал первым 64-разрядным процессором для персонального компьютера с момента неудачи продукта производства Digital Equipment Corporation (DEC), 64-разрядной версии Alpha. Microsoft поддерживала разработку процессора Itanium с самого начала. Более подробная информация о поддержке системой Windows данного процессора приведена во врезке «64-разрядные Windows — одна и еще одна». Вторая версия процессора — Itanium2 — доказала свою высокую масштабируемость, показывая на различных тестах стабильно высокое значение TPC-C. На данный момент она занимает пятое место в десятке лучших по значению TPC-C моделей, указанных в приложении к тестам для SAP Sales and Distribution (SD) Users.

С точки зрения архитектуры процессор Itanium (модель Intel IA-64) радикально отличается от 32-разрядных моделей x86. Модель x86 использует архитектуру команд CISC, в которой процессор сконструирован для обработки серий сложных команд за каждый такт. Способность обрабатывать составные команды делает процессор более эффективным, но в то же время усложняет строение процессора, так как он должен разумно прогнозировать и оптимизировать исполняемый код. Модель IA-64 использует иной набор команд, эффективность которого обусловлена новой компьютерной технологией. Itanium является процессором, использующим технологию длинного командного слова VLIW (Very Long Instruction Word): он читает командные строки или слова, состоящие из соединенных вместе составных команд. Некоторые специализированные однозадачные процессоры используют архитектуру VLIW, но Itanium — первое применение данной технологии в универсальном микропроцессоре.

По архитектуре Itanium больше похож на процессор RISC, нежели на x86. Однако существует одно заметное различие между процессором Itanium и технологией, которую используют современные процессоры RISC: применение технологий параллельной обработки. Параллельная обработка — это задача, с которой большинство систем RISC справляются плохо. Itanium может обрабатывать одновременно до шести инструкций за такт. Компания Intel назвала подобную технологию обработки Explicitly Parallel Instruction Computing (EPIC). Способность выполнять составные параллельные команды за один цикл делает традиционные измерения производительности, основанные исключительно на тактовой частоте, неприменимыми к процессору Itanium.

Технология EPIC устраняет необходимость выполнять сложные нестандартные обработки, как это было в случае с архитектурой x86. Вместо этого компилятор (а не процессор!) выполняет работу по параллелизации схемы машинных команд. Компилятор создает команды, которые выполняет процессор, и в случае с процессором Itanium должен определять зависимости каждой команды так же, как команды, обрабатываемые параллельно. Теоретически компилятор знает о коде больше, чем процессор, и может давать более точные прогнозы относительно путей ветвления кода. Подобная организация позволяет сделать процессор более эффективным и ликвидирует потребность во встроенном планировщике задач. Однако успех систем, построенных на данной технологии, напрямую зависит от способности компилятора оптимизировать код для параллельной обработки.

Уход от архитектуры x86 ликвидирует недостатки вычислений с плавающей точкой, чем давно грешили представители семейства x86 (они всегда сильно уступали процессорам RISC по способности проводить вычисления с плавающей точкой). Этот переход также формирует плацдарм для будущих улучшений. Однако возникает одна проблема: совместимость с 32-разрядным программным обеспечением. Для запуска 32-разрядных приложений в Itanium предусмотрен режим эмуляции процессора x86, созданный для обеспечения совместимости с набором команд x86. Этот режим позволяет существующим 32-разрядным бинарным программам работать на системах IA-64 Itanium, без необходимости вносить изменения в код приложений. К сожалению, как и в случае со старой 64-разрядной платформой DEC Alpha, режим эмуляции процессора Itanium имеет значительные потери в производительности, из-за чего 32-разрядные приложения в этом режиме работают крайне медленно. Подобная альтернатива ясно показывает, что Itanium был разработан для рынка высокоуровневых серверов, на котором совместимость с существующим на настольных компьютерах программным обеспечением не является основным фактором. На рис. 1 представлен обзор совместимости процессора Itanium и 32-разрядных приложений. Упор сделан на отображении слоев программного обеспечения, которые процессор использует для поддержки 32-разрядного кода. Для поддержки непосредственно 64-разрядных приложений процессор Itanium использует 64-разрядные драйверы устройств, общих с системой Windows Server 2003, для компьютеров на основе 64-разрядного процессора. Однако применение 32-разрядных приложений требует добавления 32-разрядного программного слоя, который непосредственно преобразует 32-разрядные команды CISC в 64-разрядные команды RISC.

Рисунок 1. Схема обработки приложений процессорами Itanium

В таблице дается обзор основных технических спецификаций процессора Itanium2 в сравнении с набором сегодняшних 64-разрядных процессоров x86. Современные системы Itanium2 имеют максимальную тактовую частоту 1,5 ГГц, но эти цифры не должны вводить нас в заблуждение. Архитектура EPIC позволяет системе выдавать производительность куда выше, чем у систем х86 с частотой 1,5 ГГц. Использование объемных кэшей также положительно сказывается на производительности процессора. Последние модели Itanium2 могут использовать до 6 Мбайт процессорной кэш-памяти третьего уровня. Будущие модели Itanium2 будут многоядерными. В них два процессорных ядра будут соединены в единую связку. Выход многоядерной модели Itanium2 ожидается в 2005 году.

Еще нужно иметь в виду, что процессор Itanium2 предназначен для использования в требующих высокой производительности компьютерных проектах. Система Itanium2 разрабатывается для широкомасштабных применений: проектов, нуждающихся в консолидации серверов, приложений класса OLAP и Business Intelligence и требовательных к процессору графических станций, использующих 64-разрядные приложения. Тесты явно демонстрируют успех в работе с ресурсоемкими задачами. Однако Itanium2 не предназначена для работы с 32-разрядными приложениями. Хотя система может запускать 32-разрядные приложения, важные 32-разрядные приложения лучше запускать либо под 32-разрядными системами, либо с помощью новейших процессоров семейства x86-64, о которых будет рассказано ниже.

Opteron и Athlon 64 от AMD

Компания AMD выбрала совсем другой курс развития в области 64-разрядных технологий. В отличие от проекта Itanium, в котором был осуществлен переход от набора команд x86 к новой архитектуре IA-64, архитектура AMD x86-64 — логическое усовершенствование архитектуры x86-32, которую использует подавляющее большинство современных 32-разрядных систем. Компания окрестила эту новую 64-разрядную архитектуру AMD64, но на данный момент она в основном известна как x86-64 или x64. Чтобы обновить архитектуру x86 до 64-разрядной, AMD переработала существующую архитектуру x86, расширив все общие регистры до 64 разрядов и добавив новые общие регистры, таким образом увеличив их количество до 16.

Первым процессором AMD на основе архитектуры x64 стал Opteron, выпущенный компанией в апреле 2003 года. Некоторые версии системы Linux мгновенно обеспечили поддержку нового 64-разрядного процессора, однако в Microsoft с этим шагом не торопились. Более подробную информацию о поддержке системой Windows платформы AMD x86-64 вы найдете во врезке «64-разрядные Windows — одна и еще одна». Opteron ориентирован на серверы с поддержкой SMP (Symmetrical Multiprocessing). За выпуском процессора Opteron последовал выход процессора Athlon 64, предназначенного для настольных компьютеров. Athlon 64 использует ту же архитектуру AMD64, что и Opteron, но при этом не позволяет создавать несколько конфигураций процессора.

Как и 32-разрядная архитектура x86 (но в отличие от процессора Itanium), процессор AMD?s x64 построен на технологии CISC, которая подразумевает, что процессор сам осуществляет оптимизацию кода и предсказание ветвлений. AMD исправляет недостатки x86, связанные с вычислениями с плавающей точкой, путем введения новых команд и 16 новых регистров для вычислений с плавающей точкой. Пожалуй, главное отличие между платформами AMD64 и Intel IA-64 заключается в подходе к совместимости с 32-разрядными приложениями. Платформы AMD64 могут обеспечивать совместную работу 32-разрядных и 64-разрядных приложений со 100-процентной эффективностью. Кроме того, благодаря более широкой адресации, предоставляемой архитектурой AMD64, 32-разрядные приложения лучше работают под системами AMD64, чем под 32-разрядными системами x86-32.

Архитектура AMD64 дает полную совместимость с 32-разрядными приложениями и обеспечивает выполнение 64-разрядных операций благодаря поддержке двух рабочих режимов: Long mode и Legacy mode. Оба режима предоставляют бинарную совместимость с существующими 16-разрядными и 32-разрядными приложениями. Режим Long mode создан для работы 64-разрядных операционных систем, таких как обещанная Microsoft система Windows 2003 for 64-Bit Extended Systems. Long mode поддерживает только 64-разрядные операционные системы. Процессор, работающий в режиме Long mode, использует 64-разрядные адреса и 64-разрядную модель памяти. Чтобы получить преимущества от 64-разрядного процессора, создатель приложений должен перекомпилировать программы с помощью 64-разрядного компилятора. Любые 32-разрядные приложения, запущенные в режиме Long mode, могут обращаться только к первым 32 разрядам доступных регистров.

Режим Legacy mode может обеспечивать работу 32-разрядных или 64-разрядных операционных систем. Legacy mode позволяет существующим 16-разрядным (DOS) и 32-разрядным (Windows) операционным системам работать с 64-разрядным процессором без изменений. Работая в режиме Legacy mode, 32-разрядные приложения функционируют в точности так, как и в случае с 32-разрядным процессором, продолжая использовать 32-разрядные адреса и регистры. Legacy mode предоставляет полную бинарную совместимость с существующими 32-разрядными приложениями. Эта способность работать и с 64-разрядными, и с 32-разрядными приложениями показывает, что мощь платформы AMD64 от условий работы не зависит. Хотя данный процессор и уступает процессору Itanium в масштабируемости, платформа AMD64 предоставляет основные преимущества 64-разрядных машин, без ущемления возможностей 32-разрядных программ. Обзор совместимости платформы AMD64 с приложениями приведен на рис. 2. На этом рисунке видно, что процессор AMD64 может использовать как 32-разрядные драйверы, операционные системы и приложения, так и 64-разрядные. Левая часть рисунка иллюстрирует строение современных 32-разрядных систем. Правая часть напоминает схему для Itanium, но с одним важным отличием: так как процессор создан по технологии x86 CISC, в нем отсутствует режим эмуляции, необходимый для работы 32-разрядных приложений. Эти приложения функционируют с полной скоростью. Основной приоритет в архитектуре x64 получила совместимость, а не оптимальная производительность.

Рисунок 2. Схема обработки приложений процессорами AMD64

Хотя платформа AMD64 является расширением архитектуры x86, система разрабатывались с самого начала эры 64-разрядных компьютеров. Основные спецификации процессоров AMD Opteron и Athlon 64 представлены в таблице. Одной из наиболее важных особенностей платформы AMD64 является использование технологии, которую компания AMD назвала Direct Connection Architecture. В ней память, устройства ввода/вывода и сопроцессор напрямую связаны с процессором для обеспечения максимальной скорости передачи данных. Эти соединения обеспечиваются новой шиной AMD HyperTransport, архитектура которой изображена на рис. 3. Нужно иметь в виду, что HyperTransport соединяется с процессором напрямую, предоставляя быстрый доступ ко всем каналам PCI, системам ввода/вывода и периферийным соединениям. Новая шина обеспечивает полосу пропускания шириной до 6,4 Гбит/с на каждое соединение.

Еще стоит отметить, что процессор AMD Opteron является конкурентом семейству продуктов Intel Xeon и показывает производительность, сравнимую с лучшими из процессоров Xeon, но с добавлением возможности легкого перехода на настоящую 64-разрядную платформу. Хотя Opteron — сугубо серверный процессор, Athlon 64 является конкурентом процессора Pentium на рынке настольных компьютеров. Тем, кого интересуют высокопроизводительные настольные системы, рекомендуем обратить внимание на системы на базе Athlon 64. Процессоры Althon 64 доступны и в настольных, и в мобильных системах, а по цене сравнимы с лучшими 32-разрядными процессорами. На данный момент это оптимальный выбор для вдохновенных «геймеров», жаждущих систем с максимальной производительностью.

Xeon и Pentium с поддержкой технологии EM64T от Intel

Скромно отпраздновав выход новейшего 64-разрядного процессора Xeon в июле 2004 года, Intel в скором времени выпустила 64-разрядную версию процессора Pentium 4. Компания Intel, непоколебимый сторонник Itanium, не была так уж уверена в целесообразности следования инициативе AMD в работе над расширенной архитектурой x86. И последний пресс-релиз о 64-разрядном процессоре Pentium пришел от IBM как часть описания плана выпуска новой линейки 64-разрядных систем. Хотя Intel с неохотой вступает на рынок систем x64, многосторонность платформы x64 и низкие цены, особенно по сравнению с процессором Itanium, заставили компанию поддержать технологию x64.

По примеру платформы AMD64, новый процессор Intel Xeon использует архитектуру x86-64, а его уровень инструкций сравним с процессорами AMD Opteron и Althon 64. Intel назвала свою новую 64-разрядную технологию Extended Memory 64 Technology (EM64T). Система Windows 2003 for 64-Bit Extended Systems будет поддерживать технологию Intel EM64T, как и технологию AMD64.

Как и 32-разрядная x86-платформа и платформа AMD64, процессоры Intel EM64T основаны на технологии CISC и предлагают полную бинарную совместимость с 32-разрядными приложениями. Также, по аналогии с AMD64, платформа EM64T предоставляет режим Long mode для работы непосредственно 64-разрядных операционных систем и режим Legacy mode для 32-разрядных операционных систем. Возможности этих режимов такие же, как и у продуктов компании AMD. Однако существуют определенные различия между системами, использующими архитектуру EM64T и платформой AMD64. Новый 64-разрядный процессор Xeon имеет некоторые особенности, отличающие его от продуктов линии AMD. Новые процессоры могут динамически регулировать использование мощности процессора с помощью технологии, названной Demand Based Switching with Enhanced Intel SpeedStep Technology. И Xeon, и новый Pentium 4 также предоставляют поддержку гиперкон- вейерной обработки HyperThreading. По существу, HyperThreading дает системе возможность рассматривать один процессор как два, позволяя выполнять больше операций одновременно и увеличивая тем самым производительность. Не путайте технологию HyperThreading с новой шиной HyperTransport, используемой процессорами линии AMD. Системы Intel EM64T не используют эту высокопроизводительную шину. Вдобавок, в новом семействе Xeon разработчики Intel установили новые микросхемы E7520 и E7320, а системы Pentium 4 EM64T задействуют новую микросхему 925X Express, которая поддерживает режимы расширенной памяти и PCI Express.

Спецификации процессора Intel EM64T представлены в таблице. Новые микросхемы Xeon сейчас работают с тактовой частотой 3,6 ГГц и 2,8 ГГц. Они разработаны в ходе нового 0,9-микронного процесса производства, благодаря чему потребляют меньше мощности и, следовательно, меньше нагреваются. Отметим, что Intel EM64T использует меньшие разделы адресации, что ограничивает общую способность адресации памяти.

Рисунок 3. Схема соединений шины AMD HyperTransport

Новый процессор Intel Xeon EM64T, ориентированный на серверы и напрямую конкурирующий с AMD Opteron, является самым быстрым и наиболее функциональным из всего семейства процессоров Xeon. Этот процессор подойдет компаниям, использующим в качестве стандарта процессоры Intel. Однако ему не хватает высокопроизводительной архитектуры Direct Connection Architecture, используемой процессором Opteron, и превосходной системы HyperTransport, что ограничивает производительность Xeon как настоящего 64-разрядного процессора, но, как и Opteron, он поддерживает исполнение как 32-разрядных, так и 64-разрядных приложений на полной скорости. Компания Intel рекламирует микросхему Pentium EM64T как высокопроизводительный процессор для серверов и рабочих станций, но на данный момент этот процессор еще не появился на рынке настольных компьютеров. Однако дадим ему немного времени — наверняка этот продукт станет конкурентом процессора Athlon 64.

Время для 64-х разрядов?

На прошедшей в этом году конференции WinHEC (Windows Hardware Engineering Conference) в Сиэтле Билл Гейтс с уверенностью заявил, что к концу 2005 года все серверные процессоры x86, проданные компанией AMD, и большинство процессоров производства Intel будут 64-разрядными. Хотя перевод огромной пользовательской базы систем x86-32 потребует времени, руководители Microsoft убеждены, что платформа x86-64 — ведущая компьютерная платформа будущего. Гибкость платформы x64, а также способность работать с 32-разрядными приложениями наравне с 64-разрядными, совмещенная с поддержкой 64-разрядной версии Windows, — все это скоро появится на каждом настольном компьютере. Платформы x64 нацелены на рынок настольных компьютеров, но не стоит думать, что Intel или Microsoft отказались от процессора Itanium. Высокая производительность системы Itanium позволяет ей конкурировать с системами UNIX на базе технологии RISC и мэйнфреймами. Itanium обеспечивает максимальную производительность и масштабируемость, и появление платформ x64 ничего не изменит.


64-разрядные Windows — «одна и еще одна»

Одним из важнейших условий повышения интереса к новым 64-разрядным процессорам является всеобъемлющая поддержка этой платформы компанией Microsoft.

Microsoft поддерживала Itanium с момента выпуска и недавно расширила ее для включения платформы x64. Две 64-разрядные операционные системы различаются очень сильно, поэтому я приведу лишь краткий обзор различий между ними.

Windows Server 2003 for 64-Bit Itanium-based Systems. Microsoft поддерживала 64-разрядные системы Itanium с момента их выпуска в 2000 году. Windows XP 64-Bit Edition и Windows Server 2003 for 64-Bit Itanium-based Systems являются полностью 64-разрядными системами, которые исполняют 64-разрядные приложения, скомпилированные для процессора Itanium. Версия Windows для Itanium может также исполнять 32-разрядные приложения для x86. Однако она делает это в режиме эмуляции, что приводит к потере производительности 32-разрядных приложений.

Поскольку Windows 2003 for 64-Bit Itanium-based Systems использует другой набор инструкций и двоичный формат, портирование 32-разрядного кода на эту операционную систему не означает только перекомпиляцию. В результате Windows 2003 for 64-Bit Itanium-based Systems не может считаться полностью совместимой по функциям с 32-разрядными версиями Windows. Основные функции в Windows XP 64-Bit присутствуют, но некоторые дополнительные, такие как просмотр DVD, запись компакт-дисков, Windows Media Player (WMP), NetMeeting и поддержка факсов, — отсутствуют. Также отсутствует поддержка 16-разрядной подсистемы, подсистем OS/2 и POSIX, функций быстрого переключения Fast User Switching, служб Remote Assistance, Windows Messenger, Windows Installer и Windows Product Activation.

Хотя некоторых вспомогательных компонентов Windows здесь и нет, производительность и возможности масштабирования платформы Itanium2 и Windows 2003 for 64-Bit Itanium-based Systems общепризнаны. Несколько раз Itanium2, работающий на 64-разрядной Windows с 64-разрядной версией Microsoft SQL Server занимал первую строчку в тестах TPC-C. И хотя недавно его сместил процессор Power5 от IBM, работающий на AIX, Itanium и 64-разрядная Windows все еще занимают пять мест в десятке результатов TPC-C для некластеризованных систем.

Windows Server 2003 for 64-Bit Extended Systems. Хотя Microsoft медлила с поддержкой платформы x86-64, в начале 2004 года — почти через год после выпуска AMD первых 64-разрядных Opteron — она выпустила Windows Server 2003 for 64-Bit Extended Systems. В отличие от Windows 2003 for 64-Bit Itanium-based Systems, система Windows 2003 for 64-Bit Extended Systems полностью совместима по функциям с 32-разрядной версией Windows 2003. Полная совместимость по бинарным кодам и наборам 64-разрядных инструкций делают портирование кода на платформу x64 куда более легким, чем портирование для Itanium. В настоящее время Windows 2003 for 64-Bit Extended Systems существует в версии Customer Preview, а выпуск версии Release To Manufacturing (RTM) ожидается в первой половине 2005 года. Версия операционной системы, предоставляемая в рамках программы Windows 2003 for 64-Bit Extended Systems Customer Preview Program (CPP), функционирует как на 64-разрядных процессорах AMD Opteron и Athlon, так и на 64-разрядных процессорах Intel EM64T Xeon, но не работает на системах Intel Itanium. Пока еще возможности масштабирования платформы x64 предстоит исследовать. Но ее сильными сторонами является гибкость и способность запускать вместе 32- и 64-разрядные приложения без потерь в производительности.

Одной важной возможностью Windows 2003 for 64-Bit Extended Systems, которая работает только на системах x64, является новая функция Data Execution Prevention (DEP). Чтобы положить конец ситуациям с переполнением буфера, ядро Windows было перекомпилировано с использованием флага No Execute (NX), который поддерживают процессоры x64. Флаг NX принуждает операционную систему помечать область памяти как исполняемую или неисполняемую, не давая таким образом шпионским программам или вирусам типа MSBlaster использовать переполнение буфера и запускать себя из области памяти, помеченной как неисполняемая. Хотя Windows 2003 for 64-Bit Extended Systems есть реальная 64-разрядная система, ей недостает истинно 64-разрядных драйверов устройств. Microsoft побуждает производителей аппаратного обеспечения ускорить разработку драйверов, но придется еще немного подождать, прежде чем мы получим достаточное количество таких драйверов для новой 64-разрядной операционной системы.


Cтарший технический редактор Windows IT Pro и президент компании TECA. С ним можно связаться по адресу: mikeo@teca.com