Дорогие читатели! Имеем честь
представить нашего нового автора – Виктора
Картунова – давнего и доброго друга
редакции, человека с непредвзятым
аналитическим взглядом на рынок
компьютерного «железа». Уверены, что вам
придется по вкусу самобытный стиль автора и
дотошный профессионализм его статей.
Как известно, вопрос «AMD или Intel» в какой-то
мере перестал быть техническим и
превратился в религиозный. Фанатики того
или иного решения уже давно не обращают
внимания на тесты (в самом деле, легко найти
показательные примеры как в одну, так и в
другую сторону). Собственно, причина этому
одна – прошли те времена, когда архитектура
на рынке х86 была одна – в данный момент и
одна, и другая фирма все дальше удаляются
друг от друга в своих разработках. С одной
стороны – это хорошо, ибо позволяет
получить более разнообразные (и более
подходящие для конкретных задач)
архитектуры. С другой – дезориентирует
покупателей, которым все чаще приходится
либо «верить на слово» продавцам, либо
тратить большое количество времени на
самостоятельную работу с информацией… Не
говоря уже о том, что теперь нет
однозначного ответа на вопрос всех времен и
народов: «Кто же быстрее?». Все почему-то
зависит от выбора задач для тестирования…
Нет, такая ситуация никого не устраивает.
Поэтому было бы неплохо разработать сугубо
теоретический «идеальный процессор».
Давайте попытаемся представить себе, каким
он должен быть…
Для начала оговоримся – вряд ли имеет
смысл увеличивать производительность
процессора, не трогая всех остальных частей.
Поэтому есть прямой смысл попробовать
подумать обо всех важных компонентах
компьютера. Таким образом, вопрос об «идеальном
процессоре» плавно трансформируется в
вопрос об «идеальном компьютере». Однако,
по порядку. Итак, любой компьютер состоит из
нескольких подсистем, влияющих на
производительность. Среди важнейших –
производительность ядра, подсистемы ввода-вывода,
памяти. Давайте по очереди их и
рассматривать.
Подсистемы ввода-вывода
Тут надо будет припомнить, какие варианты
есть у нас. Их не так много – PCI (например, в
модификации PCI-X), HyperTransport и 3GIO. Собственно,
это и все – поскольку других шин в
ближайшем будущем вроде не предвидится. Что
можно сказать по каждому из них?
PCI-X хороша своей обратной совместимостью (хотя
и ограниченной) с PCI. Это сильно упрощает
жизнь разработчикам устройств. Однако есть
другая сторона такой совместимости и
относительно высокой скорости – малое
количество поддерживаемых одновременно
устройств. К тому же, при увеличении
количества плат расширения падает скорость.
Еще одна потенциальная проблема связана с
тем, что расти в будущем этой шине некуда.
Следующая шина – 3GIO (расшифровывается как
third generation input/output – третье поколение систем
ввода-вывода). В общем, про нее рано пока
говорить, поскольку в железе она, в отличие
от двух других конкурентов, не воплощена.
Ключевые особенности – сравнительно малое
число контактов и высокая эффективность
передачи информации по ним. Шина по сути
последовательная. Intel (один из активных
участников консорциума, работающего над
новой шиной) называет цифры порядка 10 Гбит/секунду
для первого поколения этой архитектуры.
HyperTransport. Ранее известна как LDT – lighting data
transport (в смысле транспорт со скоростью света).
На сегодняшний момент реально воплощенная
в «железе», хорошо масштабируемая (от 800 МБ/сек
до 6.4 ГБ/сек) шина. Разработана AMD. Ее
преимущества очевидны – достаточная для
шины первого поколения скорость (в
ближайшем будущем пропускной способности
6.4 ГБ/сек будет достаточно), небольшие
задержки, сравнительно простая реализация
в «железе», относительно небольшое (хотя и
большее, нежели в 3GIO) количество контактов.
Шина представляет из себя двунаправленную
(800 МБ/сек – 400 в одну и 400 в другую сторону)
магистраль точка-точка.
Фактически, выбор остается между пунктами
2 и 3, поскольку связывать себе руки
устаревшей шиной PCI (пусть и в самой быстрой
модификации) не имеет смысла. А из этих двух
«вживую» есть только одна – таким образом,
и выбора, собственно, не остается. На
сегодняшний день стоит выбрать HyperTransport, тем
более, что явных недостатков у него не видно…
Важный вопрос – куда именно присоединять
эту шину. Можно традиционно – к северному
мосту чипсета, а можно присоединить к
процессору, благо, HyperTransport нуждается в
относительно небольшом количестве
контактов. При этом скорость обработки
информации возрастет, поскольку информация
будет попадать именно туда, где она
обрабатывается.
Еще одно соображение состоит в том, чтобы,
по возможности, сделать несколько
независимых шин – например, для периферии (в
частности, контроллера PCI) одна, а для AGP –
другая… Зачем им «сидеть» на одной шине,
когда запросы этих компонент кардинально
отличаются?
Если же мы попутно подумываем о
многопроцессорных машинах, то нам просто
необходима еще одна (как минимум) шина для
организации связи между процессорами –
либо напрямую, либо через
специализированный коммутатор. В таком
случае есть реальная возможность устроить
на х86 действительно многопроцессорный (8
процессоров и более) сервер, в отличие от
текущей ситуации (когда для 4-х процессоров
используется общая (одна на всех) шина
пропускной способностью 800 МБ/сек).
Однако три контроллера HyperTransport потребуют
уже ощутимого количества контактов –
насколько нам известно, один контроллер в
самом скоростном варианте (6.4 ГБ/сек)
требует 144 контакта. Правда, нам отнюдь не
нужны все шины такой пропускной
способности – для PCI32/33MHz и «южного» моста
достаточно 800 МБ/сек, а вот для AGP наверняка
будет достаточно (даже с запасом) 3.2 ГБ/сек.
Для связи же процессоров друг с другом (либо
с коммутатором) возьмем самый быстрый
вариант.
Если подытожить, то мы пришли к выводу, что
наш «идеальный процессор» должен содержать
как минимум три шины HyperTransport для того, чтобы
подсистема ввода/вывода не отставала от
процессора (хотя рано или поздно это все
равно произойдет).
Подсистема памяти
Подсистема памяти на сегодняшний день –
самая благодатная почва для спекуляций и
предположений. Всем участникам этих
спекуляций ясно только одно – обычной SDRAM
уже недостаточно для современных
процессоров, как к этому ни относись. На
сегодняшний момент сосуществуют несколько
технологий памяти – SDRAM, DDR SDRAM, DR DRAM (Rambus).
Однако вопрос о том, какой тип памяти
выживет в ближайшем будущем, можно считать
решенным – выпуском набора микросхем 845D Intel
однозначно проголосовала за DDR SDRAM. Хотя, в
свете сегодняшних цен – еще неизвестно, кто
выиграет… Собственно, если оценивать
теоретически, то есть несколько
характеристик, от которых зависит
производительность памяти. Это:
- теоретическая пропускная способность. В
настоящий момент для SDRAM это 1064 МБ/сек. Для DDR
SDRAM это 2100 МБ/сек (для 266(133) МГц памяти) или 2700
МБ/сек (для 333(166) МГц памяти). Для DR DRAM это 1600
МБ/сек для памяти типа РС800 (один 16-битный 400
МГц канал).
- задержки (latency). Достаточно сложная тема
– естественно, идеальная память должна
выдавать данные с минимальными задержками.
Однако для разных типов памяти эти задержки
разные… Минимальны они для SDRAM, чуть больше
для DDR SDRAM, а самые большие задержки у DR DRAM (имеются
ввиду задержки произвольного доступа). Это
один из фактов, объясняющих, почему,
невзирая на максимальную скорость передачи
информации, двухканальная Rambus с пропускной
способностью 3.2 ГБ/сек (2 канала по 1.6 ГБ/сек
каждый) мало отличается по результатам
скорости в реальных приложениях от DDR SDRAM (на
том же Pentium 4), при том, что пропускная
способность у последней в полтора раза
меньше.
- эффективность использования. Другими
словами, это показатель того, какую часть
теоретической пропускной способности мы
сумеем задействовать в «жизни». Например,
для SDRAM максимальная эффективность
составляет порядка 60%, для DDR SDRAM – порядка
75%, а для Rambus порядка 85%. Все цифры приведены
в пике последовательной пакетной передачи.
Другими словами, трудно рассчитывать на SDRAM
больше, чем на 600 МБ/сек. Для DDR SDRAM эта цифра
порядка 1700 МБ/сек, для Rambus – порядка 2700 МБ/сек
(для 2-х каналов).
Однако, как уже было написано, наиболее
перспективной (частично по техническим, а
частично по финансовым соображениям) на
сегодня и завтра признана технология DDR
SDRAM.
Таким образом, наш «идеальный компьютер»
использует именно этот тип памяти.
Однако, надо подумать, что возможно
сделать для улучшения ситуации – ведь не
секрет, что многие приложения (например,
видеокодирование или научные расчеты)
сильно зависят от скорости памяти (кроме
всего прочего). Вариантов несколько –
например, сделать несколько каналов памяти.
Скажем, два. Однако это сильно подымет
сложность создания и стоимость материнской
платы, на которой придется разводить 128-битную
шину памяти к чипсету, а затем еще думать,
как эти данные доставить к процессору. Ведь
первый контроллер HyperTransport у нас занят PCI и
прочими устройствами, второй – шиной AGP.
Третий мы планировали оставить для
межпроцессорных соединений… Мда… Лепить
на процессор четвертый? Перебор получается…
Соединить чипсет с третьим? Не очень
хорошее решение – даже в лучшем случае в
каждом направлении HyperTransport прокачает
только 3.2 ГБ/сек, а у нас четыре. Надо что-то
побыстрее, чтобы доставить данные из памяти
в чипсет, а из чипс… СТОП! А зачем нам данные
в чипсете? Они ведь нам в процессоре нужны…
К тому же, мы все периферию именно с
процессором соединили… А если память
присоединить к процессору?! Забавно
получается…
В процессоре нужен контроллер памяти –
это его усложняет, к тому же, контактов
побольше надо – это минус. Есть и плюсы –
теперь контроллер памяти сможет работать с
максимально возможной скоростью и
минимальными задержками, поскольку
работает на скорости процессора. К тому же,
теперь скорость работы с памятью будет
зависеть (частично) от скорости процессора (и,
естественно, от частоты работы самой памяти),
а не от чипсетов третьих фирм, создающих то
более, то менее удачные продукты.
И еще следствие – с ростом частоты
процессора скорость работы с памятью
должна расти, хоть и не пропорционально
скорости. Естественно, рано или поздно она
выйдет на насыщение, но пока современные
процессоры 4.2 ГБ/сек «переварить» не
успевают. Еще плюс – теперь память будет «поближе»
к процессору, это позволит поднять частоту
ее работы (например, до 166 МГц). А это дает уже
5.4 ГБ/сек (теоретических), что уже вполне
красиво. Еще следствие: теперь понятие FSB
(front side bus) попросту теряет смысл, ибо больше
нет общей шины, соединяющей процессор и
чипсет с памятью. Каждое периферийное
устройство присоединено либо к шине PCI, либо
к HyperTransport. Собственно, и чипсет как таковой
не нужен – нужны несколько гораздо более
простых мостов. Интересно…
Подытожим: в процессе конструирования «идеального
процессора» наиболее предпочтительным
местом для контроллера памяти оказался
главный потребитель данных – сам процессор.
Только это гарантирует своевременную
доставку данных без дополнительных
задержек.
Ядро процессора
И, наконец, перейдем к наиболее спорной
части – ядру процессора. По части доставки
данных у нас все в порядке - все узкие места
современных компьютеров мы расширили.
Осталось выбрать «идеальное» ядро, которое
сможет эти данные переварить. Попробуем
сформулировать необходимые свойства этого
ядра:
- Оно должно быть достаточно
универсальным и показывать хорошие
скоростные характеристики с программами
любого типа. То есть, и целочисленная
часть, и х87 должны быть достаточно
быстрыми, чтобы выводить это ядро в
лидеры среди соперников.
- Оно должно содержать все наиболее
распространенные расширения х86, включая
те, которые могут понадобиться в
ближайшем времени.
- По возможности, это ядро должно иметь
относительно небольшие размеры, чтобы
стоимость его производства была невелика.
- Естественно, крайне желательно, чтобы
данное устройство не нуждалось в
специфических средствах для охлаждения,
и было достаточно прочным, дабы не иметь
механических проблем при установке. (Камень
в огород AMD).
- Желательно, чтобы наше ядро имело
хорошие перспективы развития, в том числе
по частоте.
Собственно, давайте попробуем выбрать
отвечающее нашим требованиям ядро.
Вариантов не так уж много – это Pentium III Tualatin,
Pentium 4 Northwood, Athlon XP. Именно эти процессоры
имеют максимальное быстродействие. И
именно из них попробуем выбрать самого
достойного представителя.
По поводу Pentium III Tualatin соображения
следующие:
- В целочисленной части – достаточно
производителен. В основном заслуга
принадлежит сравнительно большому кэшу и
высокой скорости работы с ним, тогда как
по вычислительной мощности уступает Athlon
XP.
- Поддерживает только SSE. Не поддерживает
SSE2, 3Dnow!, Enhanced 3DNow. По этому пункту
проигрывает остальным конкурентам.
- Здесь все вполне нормально – хотя
точный размер кристалла нам не попадался,
он находится в районе 100 мм2.
- Все в порядке – термодатчик не позволит
повредить процессор перегревом. Для
прочности ядро защищено металлической
пластиной.
- Немаловажный момент – мало иметь
хороший процессор. Важно еще вовремя «кормить»
его данными. В этой части ничего
замечательного данный процессор не
демонстрирует.
Известно, что Intel прекращает
использование этого ядра на рынке (по
необходимости оставляя его только на
серверах и рынке Low-end). Таким образом, особых
перспектив нет.
Следующий кандидат – Pentium 4 Northwood.
Рассмотрим его поподробнее:
- С производительностью ситуация
странная – из-за определенных
особенностей ядра (очень длинный
конвейер) в одних программах показывает
очень высокие, в других – очень низкие
результаты, иногда проигрывая
предыдущему поколению, имеющего гораздо
более низкую частоту. Ситуация несколько
сглаживается большим (и самым быстрым на
сегодня) кэшем, но в целом – результаты
очень неровные. На сегодняшний день для
максимальной производительности
нуждается в перекомпиляции программ. В х87
– попросту аутсайдер. Единственное
преимущество заключается в наборе команд
SSE2, при использовании которых становится
лидером (программы при этом требуют
перекомпиляции и оптимизации) в скорости
FPU.
- Поддерживает только SSE и SSE2. Не
поддерживает 3DNow!, Enhanced 3DNow.
- Даже при использовании 0.13 микронной
технологии ядро великовато – 145 мм2.
Это довольно много для современных
процессоров.
- Лучшая на современном рынке технология
термоконтроля - в данном вопросе
абсолютный лидер среди конкурентов. Для
прочности ядро защищено металлической
пластиной.
- Скорость процессорной шины максимальна
на сегодняшний момент – 3.2 ГБ/сек.
С этим процессором все в порядке –
компания Intel демонстрировала данный
процессор на частоте 3 ГГц, и, судя по всему,
потолок этой архитектуры еще выше.
И, наконец, последний соискатель – Athlon XP.
Рассмотрим и его:
- В большинстве случаев лидер по
производительности. Этому способствуют
как самый производительный FPU, так и три
целочисленных конвейера, неустанно
перемалывающих данные. В отдельных
случаях проигрывает конкурентам, в
основном из-за менее скоростного кэша
второго уровня, к тому же, обладает
меньшим его количеством.
- Поддерживаются все наборы расширений,
кроме SSE2.
- По технологии 0.18 микрон имеет размер 129
мм2. При переходе на 0.13 микрон площадь
уменьшится ориентировочно до 84 мм2.
- Термодатчик для использования требует
специального дизайна материнских плат.
Прочность ядра неудовлетворительна.
- Находится посередине по пропускной
способности шины – 2.1 ГБ/сек. На
сегодняшний момент неплохо, однако, при
возможности стоит расширить.
Перспективы недостаточно ясны, но, судя
по всему, до 2.5 ГГц ядро (по 0.13 микрон)
доживет. Способны помешать этому в основном
трудности технологического или
финансового плана.
Однако… Ни одно из имеющихся решений на
рынке не удовлетворяет всем пунктам наших
требований. Что делать? Не снижать же
требования! Ну что ж, припомним, что это
всего лишь мечты – и попытаемся собрать из
кусочков «идеальный» процессор. Итак, за
основу имеет смысл взять Athlon XP – у него
максимальная (в большинстве случаев)
скорость на единицу частоты. Только
проделаем над ним несколько операций, а
именно:
- Для того, чтобы увеличить скорость
процессора в целочисленных операциях,
увеличим объем кэша второго уровня, его
скорость (каким-либо аналогом Advanced Transfer
Cache – например, расширим шину кэша до 256
бит и уменьшим задержки). Кроме этого,
необходимо добавить поддержку полезного
во многих областях SSE2 – это позволит
перейти со временем от «доставшегося в
наследство» слегка уродливого х87 к RISC-оподобному
FPU, основанному на SSE2 командах.
Сопроцессор можно не трогать, тем более,
что особого выигрыша от переделки
ожидать не стоит.
- Перерабатываем упаковку процессора и
его термоконтроль таким образом, чтобы
приблизиться к лидеру в этом вопросе –
Pentium 4.
- Возможно, придется внести косметические
изменения в конвейер (однако, не удлиняя
его сверх меры), чтобы процессор имел
запас роста по тактовой частоте.
- Надо бы расширить шину ввода/вывода
данных – помешать это не может, а помочь
– способно.
Уфф! Наконец-то! Мы сформулировали для
себя требования к идеальному процессору, и
теперь можем оглянуться. У нас есть быстрая
и перспективная система ввода/вывода, есть
быстрая память с минимальными задержками и
есть великолепный быстрый процессор.
Перечислим подряд все ключевые пункты:
- процессор с увеличенным и ускоренным
кэшем, а также поддержкой SSE2;
- интегрированные в процессор
контроллеры HyperTransport;
- память со встроенным в процессор
контроллером;
- возможность построения
многопроцессорной системы, с числом
процессоров 4 и более.
Ну что ж, сформулированное самим себе
задание благополучно выполнено. Свои мечты
мы сформулировали. Но перечитывая их, не
получается избавиться от чувства deja vu – где-то
что-то очень похожее уже встречалось…
Точно! Hammer!!! Возможно, они рассуждали
похожим образом?! Что ж, великолепный повод
перемыть косточки потенциальному хиту от
AMD. Только теперь мы будем глядеть на него не
только восхищенным, но и критическим
взглядом, попутно оценивая – а насколько он
удовлетворяет требованиям к идеальному
процессору?
|
Виктор Картунов
(продолжение следует) |
Необходимый комментарий от автора к
первой и второй части статьи:
Не хотелось бы, чтобы автора отнесли к
фанатам AMD – напротив, автор консервативен,
уныл, и практически не поддается уговорам
купить что-то новое. :-) Тем более он не
склонен к фанатизму в каком бы то ни было
виде. Просто хотелось бы отойти от
тривиального спора «кто сильнее – слон или
кит» и оглянуться – а что изменилось на
компьютерном горизонте?
|