
64-разрядные технологии AMD и Intel
Вспомни развитие компьютеров и открытых архитектур в частности. Все началось с того, что Intel разработал принципиально новый кремниевый девайс под диковинным названием “процессор”. И понеслось... 8, 16, 32 разряда. Казалось, что процессоры модернизируются так быстро, что под новые камни не существует отлаженных операционок. Отчасти так случилось и с принципиально новой 64-разрядной технологией.
Кровавый поединок
Естественно, Intel не единственный производитель на компьютерном рынке. Единственным серьезным конкурентом этой компании является AMD. Работники AMD всегда отличались сообразительностью и внедряли в свои девайсы что-нибудь особенное, радующее глаз производителя. Но правда ли, что технология AMD всегда превосходит интеловскую?
Итак, сегодня мы расставим все точки над i и устроим поединок (пока что виртуального характера :)) между двумя суперновинками: Intel Itanium и AMD 64. Эти камешки работают под 64-разрядными платформами, только вот характеристики технологий и самих девайсов известны далеко не всем. Что ж, ознакомимся с ними на виртуальном ринге.
Раунд 1: Технология
У каждого принципиально нового проекта существует своя технология. 64-разрядные процессоры не исключение. Давай рассмотрим, какая технология выполнена лучше и сочетает в себе все удобства для пользователя. Кстати говоря, на технологической основе и строится основная архитектура девайса, поэтому очень важно знать ее принципы.
Intel придерживается стандарта EPIC (Explicitly Parallel Instruction Computing, явный параллелизм на уровне команд). Данная технология оттачивалась специально для крупных серверов и некоторых рабочих станций. Возможности EPIC огромны: во-первых, это высокая скорость выполнения операций с плавающей запятой. Во-вторых, поддержка распараллеливания задач (практически, подобие технологии SMP). И, наконец, благодаря улучшению считывания данных из памяти, скорость обмена информацией резко возрастает.
Вообще, история появления EPIC весьма занятна. Еще в далеком 1994 году Intel и Hewlett Packard подписали договор о создании новой технологии, применяемой для крупных серверов и рабочих станций. Мол, я тебе процессор, а ты мне софт :). Именно поэтому первые кремниевые камни работали только под системами HP. В 1997 году EPIC не был утопическим стандартом, технология была разработана до конца. Intel представил результаты работы по созданию суперархитектуры. В мае 1999 года корпорация начала сбор средств для материализации своих задумок. Фонд составил 250 млн. долларов и назывался Intel 64 Fund. Спустя два года первые камни уже поступили в продажу. О цене я молчу, так как она отличалась от сегодняшней в разы :). Сразу с выпуском первого процессора, в инете было доступно руководство по архитектуре и регистрам Itanium.
AMD избрал иной путь к 64-разрядности. Производители лишь прибавили 32 к уже имеющимся разрядам и получили новую архитектуру x86-64. Что примечательно, новая технология отличается от старой лишь префиксом 64. Хотя, естественно, в новом процессоре был сделан ряд улучшений, в первую очередь ядра процессора. Это позволило получить новый уровень быстродействия как для 32, так и для 64-разрядных систем.
Итоги: AMD переходит на новый уровень без применения новых технологий. Это приводит к полной совместимости как 32, так и 64-разрядных приложений. Intel же стремится показать себя лишь в 64 разрядах. Исходя из того, что последние в наше время еще не обрели особой популярности, я присуждаю победный балл в первом раунде процессору AMD 64. Думаю, это будет справедливым решением :).
Раунд 2: Архитектура
Как я уже сказал, из технологии следует архитектура. В новых камешках были сделаны большие изменения, которые повлекли за собой производительность и совместимость со старыми платформами.
Начнем с AMD. Исходя из того, что технология осталась практически неизменной, архитектура проца не стала революционной. Были добавлены режимы совместимости (о них я расскажу позже) и, конечно же, 64-битные адресные регистры. Они позволяют расширить адресуемое пространство оперативной памяти и избавиться от существующего ограничения в 4 Гб, которое создает ощутимые трудности при построении систем обработки информации. Для ускорения работы с памятью используется технология NUMA, позволяющая работать напрямую с памятью, минуя системную шину и набор микросхем. Такое нововведение было названо HyperTransport и появилось в первом чипсете Golem.
В Intel все намного сложнее. Из-за интенсивного пути развития, компания в корне поменяла архитектуру. Вот что появилось в Itanium:
1. Режимы совместимости со старыми платформами. Без них никак не обойтись: 64-разрядная архитектура еще не прижилась в компьютерном мире.
2. Тщательная обработка ошибок. Теперь Itanium’у сложно ошибиться :), так как против ерроров созданы две независимых технологии. Главной является EMCA, которая позволяет вести контроль и протоколирование всех ошибок, возникающих во время работы процессора. И второстепенная технология ECC, позволяющая предварительно обрабатывать код и вести контроль четности. Надежный процессор привлекает внимание покупателей, особенно на производстве, где цена ошибки – смерть :).
3. Поддержка многопроцессорности. Так как компания Intel ориентировала свой процессор для крупных серверов, то позаботилась и о мультипроцессорности. Камень был снабжен рядом микросхем, которые позволяют вести быстрый обмен с памятью. Теперь для работы с мозгами используются методы чередования, буферизации и деления модулей памяти. При этом камень работает с 64 гигабайтами оперативки с пропускной способностью 4,2 Гб/сек.
Когда я читал про архитектуру IA-64 (аббревиатуру, думаю, расшифруешь сам), я действительно проникся фичами, которые были придуманы Intel’ом. Конечно, AMD боролся за совместимость (как выяснится позднее), но остаться равнодушным к новейшей архитектуре невозможно :). Поэтому присуждаю законную победу процессору Itanium, который сравнял счет во втором раунде.
Раунд 3: Совместимость
Суди сам: производитель создает девайс, отточенный под новую архитектуру. Программист, матерясь и изучая новые мануалы языка, пишет операционки и софт под неизвестно откуда взявшиеся разряды :). Но ни тот ни другой не думают о бедном юзере, для которого переход на новую платформу будет весьма болезненным. В этой ситуации существует два выхода – либо забыть об 32 и 16-разрядности и целиком отдаться 64 битам, либо воспользоваться специальными режимами совместимости, которые были любезно предоставлены производителем. А система совместимости, кстати, сделана на совесть как в Itanium, так и в AMD.
Начнем с первого. Intel пошел логически верным путем и создал ряд регистров для полной совместимости старых приложений. В итоге получаем, что все 64-разрядные инструкции выполняются как обычно, иные же обрабатываются технологией IA-32. Эмуляция есть эмуляция, ни о какой производительности при этом и речи быть не может, поэтому Itanium целиком и полностью ориентирован для 64-разрядных платформ.
В AMD все намного сложнее. Для улучшения производительности со старыми платформами были придуманы специальные режимы. Поговорим о них подробнее.
Архитектура AMD 64 предусматривает два главных режима работы: Long и Legacy. В первом открываются все прелести технологии x86-64. Для полной совместимости над старыми приложениями существует так называемый подрежим совместимости, в котором способны обрабатываться 32/16-разрядные инструкции. В режиме Legacy процессор работает по принципу обычной x86-архитектуры. Козырем такой системы режимов является то, что процессор можно эксплуатировать до выхода стабильных релизов 64-разрядных операционок. Помимо этого существует несколько преимуществ x86-64 над IA-64:
1. Быстродействие в обработке 32-разрядных инструкций. Связано с тем, что после перехода в режим совместимости не происходит никакой эмуляции, процессор обрабатывает данные с большой скоростью. Этого нет в Itanium, поскольку там все инструкции выполняются в 64 разрядах.
2. Полная совместимость с x86-архитектурой. В Itanium подобное реализовано не полностью.
3. Одновременная работа 16/32/64 приложений. Благодаря введению режимов, становится возможным обрабатывать ряд разных инструкций одновременно. Это, опять-таки, сказывается на производительности и улучшает совместимость.
Думаю, что я убедил тебя согласиться с присвоением победного балла AMD 64, у которого с совместимостью не было и не будет никаких проблем. Учитывая, что 64-разрядная архитектура не заменяет старые, быстродействие в иных платформах играет очень большое значение. Итог трех раундов: 2:1 в пользу AMD.
Раунд 4: Применение
Настало время для вопроса: “Зачем все это?” Неужели нельзя обойтись старой 32-разрядной архитектурой и не гнаться за нововведениями?
Intel изначально поставил перед собой задачу – выполнить распараллеливание процессов в одном кремниевом девайсе. Отчасти он своего добился, и Itanium редко когда встретишь на рабочей станции пользователя. Как правило, этот проц юзают на мощных серверах с большими базами данных либо в банковских системах, где нельзя ошибаться (помнишь, я говорил про анализ ошибок?). AMD же ориентировался как нечто среднее между 32 и 64 разрядами. Конечно, он встречается в крупных серверах, но также может использоваться в обычных рабочих станциях, ибо отточен как под x86-64, так и под x86-архитектуру.
Нелишним будет сказать и про операционные системы, которые корректно поддерживають описываемые камни. Это, конечно же, WinXP 64, а также пингвин с поддержкой 64-разрядных девайсов. Хотя, как я уже говорил, AMD совершенно неприхотлив к операционкам и будет работать даже на Win9x :).
Итог как всегда прост. Победный балл получает Intel за принципиально новые сферы применения своего детища Itanium. Счет: 2:2.
Финальный раунд: Цена
И, наконец, самый главный вопрос, волнующий душу любого человека – цена новинок. Разумеется, если за новую технологию будут просить бешеные деньги, то ни к чему хорошему это не приведет. Посмотрим, что мы имеем в нашем случае.
Intel просит за свое изобретение ни много ни мало $1200. Причем раньше девайс стоил в три раза дороже: около $4k. Учитывая, сколько будет стоить материнка под камень, можно сделать вывод – денег на сервер придется потратить немало :).
С AMD все намного проще. Цена на Athlon 64 составляет всего $417. Остальные 64-разрядные камни стоят от $300 до $600, что значительно ниже интеловских цен. Впрочем, так было всегда, цена мешала Интелу захватить компьютерный рынок и избавиться от своего главного конкурента. Хотя их жадность оправдана: производители никогда не искали легких путей, а дарили миру новые технологии. Последние слизывались ушлыми работниками AMD :).
На этой оптимистической ноте, я присуждаю последний в нашем поединке балл процессору AMD. Время объявить финальный счет: 3:2 в пользу x86-64. Примите мои поздравления :).
После боя
Только что на твоих глазах состоялся справедливый поединок двух новых серверных процессоров. Результат его я огласил: победа досталась AMD. В этом ему помог ряд качеств, главными из которых являются все-таки совместимость и цена. Бесспорно, Itanium – отличный процессор с новейшей архитектурой, но из-за ее специфичности камень долго будет не востребован на компьютерном рынке. По крайней мере, пока 64-разрядный софт не станет популярным. Нам же остается только ждать этого времени... ну и, конечно же, появления новых технологий :).
Технология EPIC
Базовые принципы EPIC были разработаны еще в начале 1990-х годов. Проект назывался Impact. Важно понимать, что EPIC всего лишь модель, на основе которой строятся различные архитектуры. Вот основные ее особенности:
1. Поддержка параллелизма. Попросту, процессор на основе EPIC имеет несколько образцов длинных команд, в которых устройствам девайса сопоставляется определенная операция. Без параллелизма командное слово имело бы четко фиксированную ширину. Чтобы процессор опознал формат команды, к ней крепится специальный ярлык (3-5 бит), который и отвечает за спецификацию операции.
2. Спекулятивная загрузка данных. Новый способ работы с памятью позволяет избежать простоев в работе процессора. Методы работы с памятью я уже описывал.
3. Использование регистрового стека для оптимизации некоторых операций.
4. Поддержка циклических инструкций без потерь времени на их выполнение.
Как видишь, на основе EPIC появляется Itanium. Прежде чем Intel взял за основу эту технологию, много других производителей использовали ее основы, что говорит о ее большой пользе.
Внутри x86-64
Давай посмотрим, какие именно изменения сделал AMD при переходе от 32 к 64 разрядам. На самом деле, они аналогичны тем, которые появились в 32-разрядной технологии. Ты сам сможешь догадаться, что именно изменилось в камне, но все же я приведу список новшеств:
1. 64-разрядные адреса, регистры и счетчик команд (RIP). Это основа нового камня, без нее никак не обойтись.
2. Расширение регистров общего назначения и добавление специальных Intel-совместимых SSE-регистров. Указания на дополнительные регистры и размеры операнд теперь вводятся как некоторый префикс команд. Это очень удобно и ускоряет работу с данными.
3. Уменьшение площади ядра. Новые процессоры будут иметь площадь всего 105 мм^2. Если сравнивать с Itanium, то площадь этого камня – 464 мм^2.
Компания AMD выпустила два процессора, основывающихся на технологии x86-64. Это Sledgehammer и Clawhammer. Первая модель заточена под рабочие станции и имеет меньший размер кэша второго уровня. Clawhammer разрабатывался для крупных серверов, поэтому способен работать в связке с 8 процессорами, а также имеет площадь всего 94 мм^2.
Режимные регистры AMD 64
Весьма интересным моментом является организация режимных регистров в процессорах AMD. Для того чтобы перевести процессор в режим Long, требуется взвести управляющий бит LMA (Long Mode Active). При этом игнорируется работа некоторых других регистров. Для выбора подрежима существует бит CS.L. Когда он взведен, процессор работает в обычном расширенном режиме, в противном случае рулит режим совместимости. Такая простая схема дает огромную производительность в решении как 32, так и 64-разрядных задач.
Новшества Intel
Помимо Itanium, компания Интел выпустила еще один 64-разрядный процессор под названием Xeon. Он отличается от своего собрата и, я бы сказал, имеет ряд преимуществ. Xeon больше заточен под пользовательские нужды, поэтому по соотношению производительность/цена у него нет конкурентов :). О применении Itanium я уже писал, поэтому повторяться не буду. Кроме того, в архитектуре Xeon 32-разрядные инструкции выполняются гораздо быстрее, чем в Itanium.
Регистровый стек Itanium
Разработчики Intel весьма хитро подошли к созданию регистрового стека нового процессора. Их нововведения весьма облегчают жизнь программиста. Как известно, процессор имеет 128 регистров, которые делятся на два множества: 0-31 видимых и 96 невидимых, которые заключены в так называемые “регистровые окна”.
Когда выполняется процедура, компилятор решает, сколько выделить места для хранения локальных переменных процедуры. Если нет потребности, они сохраняются в первичных 32 регистрах (остальные остаются невидимыми). Когда из процедуры вызывается вложенная, компилятор сохраняет переменные в регистрах и заносит их в кэш-память, чтобы не потерять данные при возврате. Сохранение выполнено весьма хитро: стек переворачивается, и регистр, который был нулевым, становится 32. Этим и достигается безопасное сохранение данных.
Для работы с массивами была введена удобная автоинкременация индексов, которой не было в 32-разрядных процессорах. Вообще, нововведений было довольно много, часть из них весьма сложна для понимания (без бутылки не разобраться :)) и полезна лишь низкоуровневым программистам. Тебе, как простому юзеру, важно лишь понимать главные принципы IA-64, которые, собственно, я и изложил ;).
WWW
Проникся? Захотел узнать больше о технологии двух кремниевых титанов? Вот тебе несколько ссылок на подробную документацию по технологиям и устройствам процессоров. После их изучения все вопросы по организации девайсов сразу прояснятся.
www.amd.com/ru-ru/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html – руководство для программистов x86-64.
www.software.unn.ac.ru/~ragozin/diff/Itanium.htm - основные сведения о технологии EPIC и архитектуре Itanium.
www.osp.ru/os/1999/09-10/008.htm - введение в IA-64.
www.amd.com/ru-ru/Processors/DevelopWithAMD/0,,30_2252_9044,00.html – документация от разработчиков AMD 64.
www.osp.ru/os/2001/09/008.htm - микроархитектура Itanium.
AMD переходит на новый уровень без применения новых технологий. Это приводит к полной совместимости как 32, так и 64-разрядных приложений.
Работники AMD всегда отличались сообразительностью и внедряли в свои девайсы что-нибудь особенное, радующее глаз производителя.
Еще в далеком 1994 году Intel и Hewlett Packard подписали договор о создании новой технологии, применяемой для крупных серверов и рабочих станций.
Так как компания Intel ориентировала свой процессор для крупных серверов, то позаботилась и о мультипроцессорности.
Благодаря введению режимов, в AMD становится возможным обрабатывать ряд разных инструкций одновременно.
Itanium юзают на мощных серверах с большими базами данных либо в банковских системах, где нельзя ошибаться.
Intel просит за свое изобретение ни много ни мало $1200. Причем раньше девайс стоил в три раза дороже: около $4k.
|