Ода пессимизму

Предисловие 1: пессимист — это хорошо информированный оптимист.
© народная мудрость

Предисловие 2: «Рассчитывайте не на достоинства людей, а на их недостатки. В худшем случае они Вас приятно удивят…»
© кто-то из классиков

Вступление

Как-то так сложилось, что от новых технических решений человек всегда втайне ждет какого-то чуда. И не столь важно, что конкретно и насколько изменилось — всегда хочется лучшего. Это хорошая черта — она помогает жить. И, что еще важнее, эта черта помогает жить огромному числу компаний, которые полем своей деятельности избрали высокотехнологический бизнес. Это та черта, которая каждый раз позволяет продать новое оборудование — несмотря на то, что старое еще вполне нормально функционирует и, вообще говоря, вполне достаточно для решения текущих задач. Ну что ж — не будем вздыхать по этому поводу. Давайте просто попробуем на секундочку оправдать гордое звание Homo Sapiens и заранее предсказать хотя бы часть проблем, которые могут возникнуть при создании рекламируемых и широко обсуждаемых сейчас устройств.

Здесь надо оговорить один важный момент — компьютерная область, как никакая другая (кроме, разве что, масс-медиа), «растит» своего покупателя заранее. Для этого есть целый пласт предварительных обзоров, конференций, всевозможных обсуждений… Ярчайшим примером в этой области является компания NVIDIA, маркетологи которой не раз ставили рекорды продажи одного и того же продукта под разными названиями. Опять же, умение «разогреть» публику перед выходом очередного чуда конструкторской мысли, «дарящего нам фотореалистичную графику» — не просто «на высоте», а достигло прямо таки немыслимых вершин. Сомневающимся напомним историю с «видеокартой, которая изменила мир».

Методика борьбы. Революционный манифест

В свою очередь нам, покупателям, необходимо выработать в себе «угрюмый» и критический взгляд на вещи — дабы противостоять отточенному профессионализму маркетинг-менеджеров всех без исключения фирм — производителей компьютерной техники. Для этого воспользуемся рядом приемов:

1. Попытаемся найти технические недостатки в любой предложенной инновации — в идеале, каждая инновация должна принести нам один или несколько поводов поворчать.

2. Изо всех сил будем стремиться найти технические, финансовые и прочие недостатки, могущие помешать распространению предложенной инновации.

3. Позиция беспроигрышна еще и тем, что при отсутствии явных недостатков позднее всегда могут появиться скрытые.

4. И, наконец, в самом худшем случае, поворчав на «скорость технического прогресса, начисто отрицающую возможность планомерно проверить предложенное» — с удовольствием воспользуемся новыми решениями, проверенными жизнью и нами.

Таким образом, речь идет о создании некоего клуба «технических ворчунов», которые своей задачей ставят «проверку на прочность» новых решений. Собственно, в конференции iXBT.com давно уже сложился контингент, негласно выполняющий подобную задачу — настало время выходить из подполья :-). А чтобы не быть голословными, попробуем выделить несколько новых, но широко обсуждаемых решений. Причем сузим себе задачу — с нашей точки зрения, реально существующие сегодня решения не так интересны. Ведь все их недостатки «на слуху» — таким образом, особо обсуждать нечего — с ними надо либо мириться и учитывать, либо искать другое решение. Гораздо интереснее, на наш взгляд, обсуждать некие идеи, еще в железе не воплощенные. Например, на процессорном рынке, с нашей точки зрения, есть несколько технологий, которые «достойны» изрядной порции ворчания:

1. Технология Hyper Threading от Intel — это технология, которая «всего за 5% увеличение» общего числа транзисторов (в процессоре) обещает поднять производительность на величину порядка 30%.

2. Это Hammer — еще более обширная тема для спора по поводу новой (для х86 рынка) архитектуры систем, обещающая не просто рост производительности, но и смену парадигмы построения высокопроизводительных систем. Ну что ж, тем хуже для нее — к этой идее мы будем придираться особо тщательно.

3. Как вариант предыдущей темы, хорошо с ней пересекающийся — Itanium и IA64. Что это — росток новой архитектуры или дорогостоящий тупик?

Неплохо было бы «поворчать» на ряд других тем (перечислим их без упоминания разделов):

1. ATA133 и Big Drive в придачу

2. Serial ATA, 3GIO, Serial SCSI — и все остальные «последовательные» шины, ставшие очень модными в последнее время.

3. Трехмерный звук — его кто-нибудь вообще хоть раз слышал?

4. DR DRAM, DDR SDRAM, QBM SDRAM (необходимая оговорка — QBM представляет собой не более чем техническое решение, не привязанное к конкретному типу памяти), DDRII — какой мыльный пузырь следующий?

5. DVD-RW, DVD RW, DVD+RW, DVD-R — гимн жадности и отсутствию здравого смысла (в данном случае автор имеет ввиду появление большого числа стандартов, что связано с различными финансовыми интересами сторонников того или иного стандарта).

Однако есть сомнения, что в одном материале удастся охватить все — посему поставим себе более реальную задачу и поворчим над 2-мя или 3-мя идеями. А затем, по мере сил и здоровья (если его не убавят сторонники вышеозначенных идей :-) ), попробуем перейти к остальным, тем более, что повод всегда найдется.

Часть первая: Несокрушимая и Легендарная

Как верно догадался дотошный читатель, речь пойдет о гордой Intel, не всегда понимаемой миром. Собственно, на подобное высказывание автора побудила одна простая мысль — это насколько велик был кредит доверия к этой фирме, если ряд ошибок, которые любую другую фирму свели бы в могилу, Intel заставил «слегка понервничать». Да, заработали меньше денег, чем могли бы — но особых потерь нет. Кроме одной — люди осознали, что есть и другие производители процессоров. Ну да ладно — оставим эту тему сторонникам той или иной фирмы. Затронули мы ее потому, что именно сложная (с точки зрения психологии) ситуация, в которой оказался Intel, и заставила пойти на ряд заявлений, смысл которых (с нашей точки зрения) сводится сугубо к маркетинговым измышлениям. В качестве примера припомним новую технологию от Intel — Hyper Treading Technology. Давайте приглядимся тщательнее.

Итак, путем одновременного исполнения нескольких нитей у программы планируется повысить производительность процессора. Причем стоить (в транзисторах) это будет немного — порядка 5% от общего числа. А вот «дивидендов» должно принести до 30% (впрочем, это теоретическая оценка, к тому же, принадлежащая Intel). Ну что же, выглядит привлекательно. Теперь вспомним наши «принципы» — и задумаемся: а что из этого следует? Где мышеловка? Что-то пока слишком хорошо.… Присматриваемся дальше. Операционная система видит процессор как два — забавно, но логично. Надо же как-то планировать нагрузку. Еще непонятный момент — а что будет, если обе нити претендуют на одни и те же вычислительные блоки? А кстати, зачем все это понадобилось? Вот ведь какой основной вопрос? Что, сейчас что-то в процессоре плохо? Ведь, судя по тестам SPEC_int 2000 SPEC_fp 2000, Pentium 4 абсолютный лидер! Неужели что-то не так?

Начнем с последнего — по нашему мнению, это проще. Зачем понадобилось вводить некую технологию с таким мудреным названием? А виновата в этом сравнительно низкая (на мегагерц) удельная производительность процессора. В этом параметре флагман от Intel умудрился вчистую проиграть прошлому (да и позапрошлому) поколению собственных процессоров, не говоря уже о конкуренте с его так не вовремя возникшим Athlon. Таким образом, по частоте-то Pentium 4 — лидер. А вот по скорости — вопрос сложный. И сложный он потому, что и высокая частота, и сравнительно низкая производительность на мегагерц — следствия одной и той же архитектурной особенности этого процессора — сверхдлинного конвейера. Той самой NetBurst, будь она неладна. При любом неправильно предсказанном переходе процессор вынужден останавливаться, очищать конвейер, заново загружать данные — и только потом их обрабатывать. При этих условиях для увеличения скорости остается только сделать так, чтобы ошибался он как можно реже, а данные лежали как можно ближе (то есть, в кэше). В самом деле, прикинем, сколько тактов придется заплатить за неправильно предсказанный переход в случае Pentium III и Pentium 4.

Автор отдает себе отчет, что следующие абзацы с рассчетами ОЧЕНЬ спорны. Автор просит воспринимать их как расчеты для худшего случая — ибо в этой статье мы рассматриваем прежде всего именно таковые

Pentium III:

  1. Конвейер длиной 11 стадий.
  2. Скорость — пусть будет 1000 МГц
  3. Точность предсказания перехода — порядка 90% (зависит от приложения)

Что получаем? Приблизительно каждый десятый такт Pentium III ошибается, что приводит к потере приблизительно 11 тактов (в лучшем случае, когда данные не надо подгружать из оперативки). Итого, КПД процессора Pentium III порядка 45%. Приблизительно 10 тактов он работает — и где-то 11 отдыхает. Да уж…. А что Pentium 4?

Смотрим:

  1. Конвейер 20 стадий (при этом из-за асинхронности блока префетча конвейер может простаивать до 10 тактов дополнительно; кроме этого, очень неясен момент с количеством ступеней конвейера — на всех документах, на которых есть NetBurst — есть 20 ступеней, но нет ни блока дешифрации и выборки, ни блока вывода, хотя очевидно, что в процессоре они есть).
  2. Скорость — порядка 2 ГГц
  3. Точность предсказания переходов — порядка 95% (сильно зависит от приложения, на некоторых падает до 60%)

Тогда подсчитываем — где-то 19 тактов Pentium 4 работает на полную мощность, а вот потом приблизительно 20 — 30 тактов (опять же, в лучшем случае) простаивает. 39%-49%…. В среднем — 44%. Вот уж «кардинальное улучшение». Ау, Intel, это и есть шедевр конструкторской мысли? Точно?

На самом деле, автор слегка сгустил краски — все-таки, большую часть времени процессоры работают (в том числе потому, что порядка 40% переходов в программах обычно занимают безусловные переходы, на которых нет нужды использовать такой алгоритм обработки). Добиваются этого путем оптимизации алгоритмов в программах (дабы уменьшить количество переходов и «подсказать» наиболее вероятное их направление), увеличения кэшей (что снижает задержки на получение данных из оперативной памяти) и других приемов (например, наличие MIS, Microcode Instruction Sequencer — некое подобие ПЗУ, содержащее набор заранее запрограммированных последовательностей обычных операций). Однако подобный пример хорошо демонстрирует главное — исполнительные устройства в современных процессорах практически всегда недогружены. Поэтому и возникла идея их нагрузить. Только вот тот ли выбран способ? Давайте задумаемся вот над чем — а есть ли какой-либо процессор, в котором реализовано что-то подобное Hyper Threading? Поиск говорит, что есть: это PowerPC RS64 IV (подробности по этому адресу). Самое забавное, что по своей идеологии этот процессор — полная противоположность Pentium 4. У него много исполнительных устройств, большие кэши, сравнительно небольшая частота и короткий конвейер. А выигрыш от применения этой технологии IBM видит в повышении эффективности использования процессорной шины и увеличении количества одновременно работающих исполнительных устройств. Забавно…

Однако и это не все вопросы, которые возникают, глядя на эту технологию — например, понятно, что регистры у каждой нити будут свои, а вот кэш, исполнительные устройства, контроллер шины — общие для всех нитей/задач (это, собственно, понятно — иначе сложность схемотехники процессора сильно возрастает). Но как следить за 2-мя разными приложениями? Что «напредсказывает» блок предсказания переходов (BPU) в случае двух разных приложений? Значит, его надо научить отличать разные нити/задачи друг от друга. А дескрипторы и защита? Может, тогда работать в рамках одного приложения? Но тогда надо перекомпилировать приложения, чтобы в них было несколько нитей. ОПЯТЬ?! Остатки волос на голове тихонько приподымаются и приветливо машут корнями…. (интересно, а компилятор от Intel знает про новую технологию? лучше не задаваться этим вопросом). Кстати, а есть ли толк от этой технологии на уже оптимизированном (например, под SSE2) приложении? А что будет в ситуации, когда одна из задач — реального времени? Еще непонятнее, что именно станет с кешем инструкций и модулем предсказания переходов, если работают РАЗНЫЕ нити. Тогда история переходов покажет нечто невообразимое (смесь истории переходов для разных нитей) — что автоматически снизит точность предсказания. К чему это приведет — мы знаем.

В конце концов, не будем перегибать палку — как бы то ни было, а определенный прирост от этой технологии должен быть. Другое дело, что ожидать от нее 30% было бы опрометчиво — скорее всего эта цифра составит 10% — 15% (что совсем нелишне для Pentium 4 в том виде, в каком он сейчас находится на рынке). Неплохо было бы подытожить — самое главное преимущество данной технологии (при надлежащей ее реализации) состоит в возможности более полно нагрузить существующие исполнительные устройства. Этой же задаче посвящена идеология оптимизации (перекомпиляции), которую на текущий момент активно пропагандирует Intel.

Таким образом, автору кажется, что смысл в подобной технологии есть, но только при условии, что процессоры с поддержкой оной будут стоить ненамного дороже (или столько же). Так как для ее эксплуатации понадобится оптимизация программного обеспечения, необходимо тщательно взвесить — стоит ли овчинка выделки. На этом перейдем ко второй части.

Часть вторая: С молотком в нанотехнологии

Ну что ж — пополнив запас сарказма и яда в организме, перейдем к новому детищу AMD — Hammer. Слабонервных просим выйти — мало не покажется. Ибо при взгляде на предполагаемые спецификации «яд» начинает выделяться сразу. Но обо всем по порядку. Для этого припомним ключевые особенности самого процессора:

  1. Интегрированный контроллер памяти (шириной до 128 бит)
  2. Три (!) интегрированных контроллера HyperTransport.
  3. Удлиненный до 12 стадий конвейер с увеличенным размером TLB и улучшенным блоком предсказания переходов.
  4. Переработан и увеличен кэш (гм, интересно, как именно он переработан).
  5. х86-64 (!!!). Но об этом — позже.

Теперь припомним, что принципиально системы на Hammer включают в себя новую идею построения многопроцессорных систем. Ого! Поводов для пристального интереса становится все больше… Но давайте вначале обсудим вариант с одним процессором — а остальное на сладкое.

Итак, по порядку:

1. Контроллер памяти внутри процессора. Вроде «ура». Осторожненькое такое «ура»… Потому что в процессор надо будет как-то завести хотя бы 144 шины с данными из этой памяти (по минимуму). Ну ладно, 144 контакта вроде не очень много — но поклонники идеи, что Hammer можно будет поставить в Socket A, могут с такой идеей попрощаться. Хе-хе. Интересней другое — а если внутри чипа памяти короткое замыкание? Что тогда? 2.5В на процессор? И как он к этому отнесется? Так, как обычно относится продукция AMD к нарушению правил эксплуатации? Ну-ну. А, чуть не забыл… . AMD долго расписывала, что вырастет скорость памяти. А за счет чего, собственно? Ну, ладно, согласимся, что может уменьшиться латентность памяти. Хорошо, это увеличит эффективную скорость. А если вспомнить про более широкую шину… Неужели права? Стоп. А помехи? Шина памяти стала 128 бит, скорость увеличили до 166 МГц, а у нас идиллия. Э, нет уж, так не пойдет. Crosstalk (перекрестные помехи или взаимное влияние соседних сигнальных линий) еще никто не отменял — наводки там должны быть неслабые. Так что из-за большего количества помех возможно снижение устойчивости работы, что недопустимо. Я уж не говорю про историю о том, что, дескать, с ростом скорости процессора будет расти скорость памяти. Это еще почему?! У нас ведь скорость памяти лимитирована той самой 128-битной 133 МГц (166 МГц в лучшем случае) шиной памяти. Ну, присоединили ее не к чипсету, а к процессору — шина памяти от этого быстрее не стала. Не верю! © Станиславский.

2. О, хвала вам, многомудрые разработчики этого процессора! Велика и неисповедима находчивость ваша! Ибо как догадаться, что максимальное количество свободного места есть как раз в процессоре — потому что именно в него «запихнули» три (!) контроллера Hyper Transport. Видимо, некий «закон сродства транзисторов». И в самом деле, какие пустяки! Всего по 144 вывода каждый — зато у нашего процессора их надо уже как минимум 576 — три по 144 используют контроллеры, а еще как минимум 144 — память. Но нас это не пугает (в конце концов, до Socket 603 еще далеко :-) ! Важно еще одно соображение — процессор теперь участвует в пересылке любых данных, даже тех, которые предназначались не ему. Вот те раз! Похожее решение применялось в 286-х. Очередной виток спирали прогресса? Тогда автор знает следующий виток. Где-нибудь в 2005-ом году AMD торжественно объявит новый вариант Hammer, в котором, наконец, процессор освобождается от пересылки данных. Что и говорить, вариант спорный…. Ну да ладно — просто эти три контроллера внутри процессора еще соединить надо — и большой вопрос, что это будет за соединение. Хотя автор надеется на «победу разума над сальпасареллой» — будем все же ожидать, что основным методом совместной работы периферии с памятью станет DMA.

3. Ну что же, рано или поздно удлинения конвейера следовало ожидать. Обычные способы наращивания частоты AMD почти исчерпала. Отсюда и введение рейтинга, и скорые планы по внедрению SOI + 0.13 технологии (спустя всего полгода после чистой 0.13). Но, видимо, даже это не очень помогло — и в Hammer, который будет защищать цвета AMD еще пару лет, пришлось удлинить конвейер, дабы без проблем наращивать скорость чипа. Если перейти к цифрам, то конвейер составляет 12 тактов вместо 10. Теоретически это должно немного снижать производительность. Чтобы этого не произошло, AMD «выкручивает руки» блоку предсказания переходов. Дескать, разбегаться процессор будет чуть дольше, но зато вначале подумает, куда бежать. Гм… Автор наивно полагал, что все спортсмены вначале думают, а потом бегут. Однако, в этой области автор не считает себя специалистом. Что тут сказать? Блок предсказания переходов уже наверняка стал самым сложным блоком процессора, а алгоритмы предсказаний — самая охраняемая тайна фирм-производителей процессоров. И важность этого блока все время растет. Это не очень хорошо — но пока альтернативы нет. Вернее, есть — в IA64 можно указать предпочтительные направления. Может, AMD стоило ввести что-то подобное?

4. На сегодняшний день все обозреватели сходятся в том, что самый быстрый кэш второго уровня сейчас — в решениях от Intel. А посему решение AMD улучшить и увеличить кэш можно только приветствовать. С чем тут спорить? Однако, важно, как и насколько его увеличивать. Например, у сегодняшнего решения от AMD, Athlon, кэш связан с ядром 64-битовой шиной, тогда как у Intel — 256 бит. Опять же, Latency L2 cache у Athlon — от 11 тактов до 19, тогда как у конкурента — от 7 до 11 тактов. Именно эта черта (гораздо лучшая работа с кэшем) часто «вывозит» процессоры от Intel во всевозможных сравнительных тестированиях. Автору трудно понять причину, почему эта ситуация до сих пор не исправлена — возможно, здесь виновата как раз «эксклюзивность» кэша Athlon. Так что улучшение работы с кэшем назрело уже сейчас — и тем более оно необходимо в Hammer. Так что для нормальной работы нужно расширить шину (хотя бы до 256 бит, а, учитывая поддержку х86-64, лучше до 512 бит), уменьшить задержки и увеличить объем. Хорошо звучит — да только задержки тем больше, чем больше объем кэша. Именно поэтому обещания сделать кэш и большим, и быстрым, автору непонятны.

5. И, наконец, на сладкое: х86-64. Встречайте! Поколения программистов мечтали избавиться от «криворукой» системы команд х86… Intel создал IA64, Торвальд даже для этого Crusoe изобрел :-) (вообще-то автор в курсе, что Crusoe изобрел Д. Дитцел) — а AMD одним махом все эти мечты перечеркнула. В принципе, расчет верен — на естественную лень разработчиков. Так что с точки зрения бизнеса это правильно — да и выхода особого нет. Лицензию на IA64 Intel не даст — это очевидно. Оставаться на чистом х86 — проиграть в маркетинговом смысле, ибо конкуренты не преминут воспользоваться этим и разрекламируют «абсолютно необходимые каждой хозяйке дома 64 бита». Однако если удастся всем потихоньку «привить» х86-64 (а причин сомневаться, к сожалению, почти нет) — о новом наборе команд остается только мечтать. А жаль — такой был шанс…. Перейдем к набору — а что в нем нужного? Ну, естественно, расширено адресное пространство — это очевидно. Только вот почему-то, невзирая на 64 «новых» бита, шина адреса у Hammer — 40 бит, а шина «виртуального адреса» — только 48 бит. Эй! А где 64? Куда обвалились 16 бит? Это у первого поколения Hammer такое ограничение — или у всех? Что, позже вспомним времена Emm386? Далее — увеличился размер кода — хе-хе. Правда, AMD обещает, что увеличится он не более, чем на 10%, а в отдельных случаях даже уменьшится — но автор в это поверит только тогда, когда увидит. Ладно, жизнь рассудит, насколько это хорошая идея.

Но все это меркнет пред уймой вопросов, которые рождаются при взгляде на многопроцессорные системы. Однако «строем, господа гусары, строем».

  1. Двухпроцессорные системы
  2. 4-х процессорные системы
  3. 8-ми процессорные системы

А теперь подробнее.

Двухпроцессорные машины

Что же настораживает? А прежде всего настораживает маленькая пропускная способность межпроцессорной шины. В самом деле — поскольку процессоров два, то памяти у каждого — половина системной. Чтобы система без потерь в скорости выполняла программы в любой области памяти — необходима пропускная способность шины между процессорами как минимум вдвое больше пропускной способности памяти (для того, чтобы каждый процессор мог работать в памяти второго процессора). Однако, такого запаса у нас нет — шина памяти у каждого процессора в состоянии прокачать до 5,4 ГБ/сек, а HyperTransport пропускает только 6,4 ГБ/сек, что отнюдь не равно необходимым нам 11,4 ГБ/сек. Это только половина требуемой скорости, к тому же, при пересылках больших массивов данных из одной области памяти в другую — эффективная скорость будет не более 3,2 ГБ/сек (читатель, несомненно, помнит, что пропускная способность шины HyperTransport в каждую сторону равна половине общей скорости).

Еще надо не забыть про периферию — она ведь может оказаться «прицепленной» не к тому процессору, которому нужны данные из AGP или PCI устройства. Тогда надо прибавить еще требования периферии… Грустно. Почти 14 ГБ/сек. Вот такой пропускной способностью должна на самом деле обладать система из двух Hammer, чтобы быть сбалансированной по пропускным способностям всех шин. Правда, ситуацию несколько сглаживают кэши второго уровня у каждого процессора — однако кардинально проблему это не решает. Необходимо соединить процессоры между собой хотя бы двумя шинами HyperTransport. Только тогда мы достигнем относительного паритета — 12,8 ГБ/сек при требуемых 14 ГБ/сек. Да уж.

Четырехпроцессорные машины

Здесь все еще печальнее — потому что пропускной способности стало не хватать еще больше. Легкий плюс — теперь запросы от одного процессора к другому могут идти двумя разными путями. Это немного снижает риск перегрузки межпроцессорных шин. Правда, схема арбитража стала очень запутанной — чего-то AMD здесь недоговаривает. Подождем, однако.

А самое интересное начинается, когда мы вспоминаем про то, что общая память системы поделена между четырьмя процессорами. Таким образом, учитывая, что от каждого процессора любому другому может передаваться не более 6,4 ГБ/сек (учтем, что эта цифра для случая, когда данные передаются по обоим шинам HyperTransport) — получим среднюю скорость передачи данных около 1,6 ГБ/сек в случае нагруженной системы. Вот те раз! Скорость РС1600…. Да, шаг «вперед». Одна надежда, что пересылок будет немного. Ой…. А ведь данные с вероятностью 0,75 будут находиться у других процессоров (если не принимать специальные меры). А, значит, такие пересылки будут весьма частыми. Странная ситуация — вроде все быстро и красиво, но на поверку далеко не так много, как обещали…. Может ли нам что-то помочь? В принципе, если предположить, что каждый процессор свою память использует, как кэш третьего уровня, можно предположить, что это слегка решает задачу «локальности» данных. Однако становится очень нелегкой ситуация с обеспечением когерентности данных. К тому же, если кэш традиционной организации — то часть памяти пропадает. ЧТО?! Слышен грохот, нецензурная брань и стоны боли…. Та-а-ак. А если кэш будет эксклюзивным? Тогда объем памяти сохраняется, с когерентностью попроще — ибо нет нескольких копий данных. Но зато выплывает следующий вопрос — а как именно будет реализована эксклюзивность кэша? Кто за ней будет следить?

Хочется задать еще один вопрос — а почему нельзя было сделать коммутатор? Это решило бы кучу проблем, а заодно сделало бы решение еще более масштабируемым. Что заставило их выбрать этот мазохизм? Неужели стоимость? У 4-х процессорных систем обычно это не самый определяющий фактор. Непонятно….

Восьмипроцессорные системы

Ой, мамочки! Все то, о чем мы ворчали в предыдущих пунктах — становится еще более ярко выраженным. Единственная поправка связана с тем, что теперь на процессор в среднем приходится 1,2 ГБ/сек пропускной способности памяти — под нагрузкой, конечно. Да только кому нужна восьмипроцессорная машина, если нагрузки нет? Конечно, с таким количеством процессоров ранее х86 просто не было (вернее, на процессорах от Intel можно сделать хоть 16-процессорный кластер — но это не настоящий SMP) — но это не повод предлагать настолько несбалансированное решение.

Можно резюмировать, что коммутатор становится единственным разумным решением в такой ситуации. Можно, конечно, применить экстенсивный путь развития — поднять скорость HyperTransport. Но поднять ее ощутимо — довольно тяжело на сегодня. К тому же, фактически, подобная конструкция должна сравнительно мало (или вообще не) масштабироваться с ростом частоты процессора — ибо узкое место в разделяемых (опять?!) шинах.

Подведем промежуточный итог — многопроцессорная архитектура имеет много неясностей и узких мест. Хотя, естественно, сильно превосходит текущее решение. Да и было бы странно, если бы следующий продукт был хуже предыдущего. Однако для разрешения оставшихся неясностей, необходимо дождаться реального продукта.

Ну что же — различные «неприятные» вопросы мы обсудили. Однако есть еще один, издавна (со времен К7) болезненный для AMD. Вы угадали — я про нагрев. Автор не верит, что весь этот «гимн инженерному гению» не будет греться. Скорее всего — будет. И, скорее всего — сильно. И, что самое печальное — спасение утопающих почти наверняка дело рук самих утопающих… В самом деле, припомним — мы добавили три (!) контроллера HyperTransport, которые греются гораздо больше других частей (кроме, разве что, FPU). Мы добавили кэш, который греется меньше, но зато лучше «упакован» на кристалле процессора в силу регулярности своей структуры. Слава богу, по последним сведениям, хоть Heat Spreader добавили — можно будет не бояться раздавить процессор. Про «мелочи» вроде контроллера памяти автор вообще не вспоминает — хотя тепло выделяется и там. Таким образом, потенциальный покупатель Hammer должен об этом подозревать. Скорее всего, из этого следует, что часть возможностей Hammer, предназначенного для обычных десктопов, обрежут — чтобы удешевить, упростить, и уменьшить нагрев. А в полном варианте этот процессор воплотится в старших (и многопроцессорных) моделях (некто ClawHammer). Собственно, даже это было бы неплохо — но автор, как «пессимист со стажем», предпочитает ждать худшего. А худшим вариантом для AMD было бы, пожалуй, затянуть с выпуском нового процессора. Пока у Intel не было отлаженной 0,13 микронной технологии — можно было не особо спешить. Однако теперь конкурент может наращивать частоту процессора легко и безболезненно — чего не скажешь о текущем флагмане AMD. А большинство людей все-таки [пока?] выбирают «мегагерцы», к тому же подкрепленные известнейшим именем Intel — хоть AMD и ведет разъяснительную политику в отношении QuantiSpeed. Как известно, эта доктрина призвана объяснить, почему мегагерцы от AMD не равны мегагерцам от Intel. Кстати, даже приучив всех (не без ворчания со стороны потребителей :-) ) к данной доктрине, AMD достаточно рискованно с ней обращается. К примеру, можно припомнить последний процессор AMD для ноутбуков — AthlonXP 1500+. Если десктоп — модель использует шину 133 (266) МГц, то модель для ноутбуков — 100 (200) МГц. Таким образом, производительность этих моделей не равны — как это следовало бы из рейтинга. Отсюда ясно, что вопрос более-менее своевременного выпуска Hammer — (в очередной раз) вопрос выживания. Хотя в данном вопросе автор будет только рад ошибиться.

Вместо эпилога

На этой слегка печальной ноте позвольте автору остановиться и перевести дух. Будем все же надеяться, что все эти трудности, над которыми автор распинался предыдущие восемь страниц — преодолимы.

Кстати, автор не забыл обещаний «поворчать» над IA64 и другими перечисленными технологиями — просто это произойдет в следующей части, которую автор планирует закончить немного позже.

P.S. Автор выражает огромную благодарность следующим людям за терпение, понимание, и здоровую :-) долю придирчивости:

  • Максиму Леню aka C.A.R.C.A.S.S
  • Илье Вайцману aka Stranger_NN




22 февраля 2002 Г.

, , Hyper-Threading Hammer

1: .
©

2: « , . …»
© -

- , - . , — . — . , , , . , — , , , . — . Homo Sapiens , .

— , (, , -), «» . , , … NVIDIA, . , «» , « » — « », . «, ».

.

, , «» — - — . :

1. — , .

2. , , .

3. , .

4. , , , « , » — , .

, « », « » . , iXBT.com , — :-). , , . — , . « » — , — , . , , , . , , , , «» :

1. Hyper Threading Intel — , « 5% » ( ) 30%.

2. Hammer — ( 86 ) , , . , — .

3. , — Itanium IA64. — ?

«» ( ):

1. ATA133 Big Drive

2. Serial ATA, 3GIO, Serial SCSI — «» , .

3. — - ?

4. DR DRAM, DDR SDRAM, QBM SDRAM ( — QBM , ), DDRII — ?

5. DVD-RW, DVD RW, DVD+RW, DVD-R — ( , ).

, — 2- 3- . , ( :-) ), , , .

:

, Intel, . , — , , , Intel « ». , , — . — , . — . , ( ) , Intel, , ( ) . Intel — Hyper Treading Technology. .

, . ( ) — 5% . «» 30% (, , , Intel). , . «» — : ? ? - .… . — , . - . — , ? , ? ? , - ? , SPEC_int 2000 SPEC_fp 2000, Pentium 4 ! - ?

— , . ? ( ) . Intel ( ) , Athlon. , - Pentium 4 — . — . , , — — . NetBurst, . , , — . , , ( , ). , , Pentium III Pentium 4.

, . —

Pentium III:

  1. 11 .
  2. — 1000
  3. — 90% ( )

? Pentium III , 11 ( , ). , Pentium III 45%. 10 — - 11 . …. Pentium 4?

:

  1. 20 ( - 10 ; , — , NetBurst — 20 , , , , ).
  2. — 2
  3. — 95% ( , 60%)

— - 19 Pentium 4 , 20 — 30 ( , ) . 39%-49%…. — 44%. « ». , Intel, ? ?

, — -, ( , 40% , ). ( «» ), ( ) (, MIS, Microcode Instruction Sequencer — , ). — . . ? — - , - Hyper Threading? , : PowerPC RS64 IV ( ). , — Pentium 4. , , . IBM . …

, , — , , , , , — / (, , — ). 2- ? «» (BPU) ? , / . ? , ? , . ?! …. (, Intel ? ). , (, SSE2) ? , — ? , , . ( ) — . — .

, — , . , 30% — 10% — 15% ( Pentium 4 , ). — ( ) . (), Intel.

, , , , ( ). , — . .

:

— , AMD — Hammer. — . «» . . :

  1. ( 128 )
  2. (!) HyperTransport.
  3. 12 TLB .
  4. (, , ).
  5. 86-64 (!!!). — .

, Hammer . ! … — .

, :

1. . «». «»… - 144 ( ). , 144 — , Hammer Socket A, . -. — ? ? 2.5 ? ? , AMD ? -. , … . AMD , . , ? , , , . , . … ? . ? 128 , 166 , . , , . Crosstalk ( ) — . - , . , , , . ?! 128- 133 (166 ) . , , — . ! © .

2. , , ! ! , — «» (!) Hyper Transport. , « ». , ! 144 — 576 — 144 , 144 — . ( , Socket 603 :-) ! — , , . ! 286-. ? . - 2005- AMD Hammer, , , . , …. — — , . « » — , DMA.

3. , . AMD . , SOI + 0.13 ( 0.13). , , — Hammer, AMD , , . , 12 10. . , AMD « » . , , , . … , , . , . ? , — - . . — . , — IA64 . , AMD - ?

4. , — Intel. AMD . ? , , . , AMD, Athlon, 64- , Intel — 256 . , Latency L2 cache Athlon — 11 19, — 7 11 . ( ) «» Intel . , — , «» Athlon. — Hammer. ( 256 , , 86-64, 512 ), . — , . , , .

5. , , : 86-64. ! «» 86… Intel IA64, Crusoe :-) (- , Crusoe . ) — AMD . , — . — . IA64 Intel — . 86 — , « 64 ». «» 86-64 ( , , ) — . — …. — ? , , — . -, 64 «» , Hammer — 40 , « » — 48 . ! 64? 16 ? Hammer — ? , Emm386? — — -. , AMD , , 10%, — , . , , .

, . «, , ».

  1. 4-
  2. 8-

.

? . — , — . — ( , ). , — 5,4 /, HyperTransport 6,4 /, 11,4 /. , , — 3,2 / (, , , HyperTransport ).

— «» , AGP PCI . … . 14 /. Hammer, . , — . HyperTransport. — 12,8 / 14 /. .

— . — . . , — - AMD . , .

, , . , , 6,4 / (, , HyperTransport) — 1,6 / . ! 1600…. , «». , . …. 0,75 ( ). , , . — , , …. - ? , , , , , «» . . , — . ?! , …. --. ? , — . — ? ?

— ? , . ? ? 4- . ….

, ! , — . , 1,2 / — , . , ? , 86 (, Intel 16- — SMP) — .

, . , , — HyperTransport. — . , , ( ) — (?!) .

— . , , . , . , .

— «» . , ( 7) AMD. — . , « » . — . , — . , — … , — (!) HyperTransport, (, , FPU). , , «» . , , Heat Spreader — . «» — . , Hammer . , , Hammer, , — , , . ( ) ( ClawHammer). , — , « », . AMD , , . Intel 0,13 — . — AMD. - [?] «», Intel — AMD QuantiSpeed. , , AMD Intel. , ( :-) ) , AMD . , AMD — AthlonXP 1500+. — 133 (266) , — 100 (200) . , — . , - Hammer — ( ) . .

. , , — .

, «» IA64 — , .

P.S. , , :-) :

  • aka C.A.R.C.A.S.S
  • aka Stranger_NN