Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Неоторые особенности архитектуры процессоров Intel и AMD



Athlon

«Новая история» AMD, несмотря на то, что компания основана в 1969 году, начинается для многих на 30 лет позже: в 1999. Именно тогда был выпущен первый процессор AMD Athlon, перевернувший все ранее существовавшие представления о том, какой может быть альтернатива на рынке x86-платформ.

Основным преимуществом нового CPU стала его «всеядность». Благодаря сравнительно короткому конвейеру и ориентации на исполнение максимального количества инструкций за такт, Athlon (для простоты мы будем подразумевать под ним как K7, так и K8, если модификация не указана конкретно) может исполнять с высокой скоростью достаточно «грязный» код. Это в первую очередь означает, что старые программы, слыхом не слыхавшие ни про какую процессорно-ориентированную оптимизацию, не приходится переделывать, чтобы достигнуть приемлемой производительности. Однако на самом деле все еще глубже: речь, строго говоря, идет не только о старом ПО. Любой программист знает, что даже в какой-нибудь 10-й версии серьезного, долгоживущего пакета, зачастую можно отыскать фрагменты, написанные еще для версии 1.0. Этот код работает, из него уже выковыряли все ошибки — так зачем же его модифицировать? Правда, писался он еще во времена каких-нибудь 486-х или Pentium MMX… Так вот: процессоры AMD нормально и быстро работают с подобными программами, избавляя их разработчиков от лишней головной боли.

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

Однако и не все, потому что проблема «нелинейного кода» порождается часто не только программистами или спецификой задач, но иногда еще и компиляторами. Хороший оптимизирующий компилятор написать очень сложно — а обычный может иногда «на ровном месте» такого нагородить, что самое элементарное действие в языке высокого уровня, будучи преобразованным в ассемблерный код, при взгляде на этот самый код вызывает искреннее изумление: «Это же надо так загнуть! Нарочно не придумал бы…».

Не стоит забывать и о том, что выпуск Athlon стал серьезным рыночным явлением. Впервые за много лет появился мощный, быстрый и современный x86-совместимый CPU, разработанный не Intel. Подчеркнем: не только производимый другой компанией, но ей же и разработанный! Более того: родилась целая альтернативная платформа т.к. в отличие от предыдущих процессоров AMD, Athlon работал с другими чипсетами, и устанавливался в другой сокет (поначалу физически совместимый с разъемом для процессоров Intel, но потом AMD ушла и от этого). В результате разработчики системной логики получили большую свободу: ранее они были вынуждены обслуживать одного производителя CPU, и он мог если не напрямую диктовать им свои условия, то, по крайней мере, выбирать стратегию развития платформы в целом. С появлением Athlon ситуация изменилась, и сразу стал виден положительный эффект: несмотря на то, что Intel прохладно относилась к памяти стандарта DDR, предпочитая продвигать RDRAM, DDR успешно вышла на рынок и закрепилась на нем — исключительно благодаря наличию альтернативы. К слову, косвенно правоту AMD в данном вопросе признала впоследствии и сама Intel — сейчас DDR-память является стандартом де-факто для обеих платформ. Кроме того, ценовая конкуренция привела к существенному снижению цен на процессоры с высоким быстродействием, и, кстати, к увеличению темпов роста этого самого быстродействия. Желающие могут сравнить темпы выхода новых CPU, к примеру, в период с 1995 по 1999 год — и наблюдаемые сейчас.

Однако AMD не остановилась на достигнутом: на смену Athlon XP (ядро K7) пришло новое ядро — K8 (процессоры Athlon 64 и Opteron). Что интересно — общий вектор на «осовременивание x86» т.е. создание процессоров одновременно прогрессивных в техническом плане и хорошо работающих со старыми приложениями, проявился в K8 еще сильнее. С одной стороны, Athlon 64, и, особенно, Opteron, содержат все признаки CPU для больших, серьезных систем: встроенный контроллер памяти, 64-битная адресация, до трех независимых высокоскоростных шин (Hyper Transport), с помощью которых процессоры могут соединяться не только с чипсетом, но и между собой, образуя некое подобие вычислительной системы с NUMA-архитектурой. С другой стороны — они полностью совместимы с классическим набором команд IA32, ориентированы в том числе на десктопное применение, и вполне доступны по цене (особенно нижние модели). Фактически, в лице ядра K8 мы наблюдаем «маленькое инженерное чудо» — архитектуру одновременно достаточно мощную и высокопроизводительную для того, чтобы создавать на ее основе многопроцессорные системы, серверы, и даже суперкомпьютеры — и, с другой стороны — вполне способную конкурировать по цене с обычными десктопными решениями. К слову, и в этом случае мы видим косвенное подтверждение правильности выбранного AMD пути развития основным конкурентом: 64-битные расширения EM64T, поддержку которых Intel собирается ввести в серверные варианты своих чипов (а потом, быть может, и в десктопные), фактически представляют собой вариацию на тему x86-64 (ныне AMD64) — набора команд, разработанного в AMD.

Подведем итоги: процессоры AMD (Athlon, Athlon XP, Athlon 64, Opteron) — пример чрезвычайно удачного «омолаживания» x86. Не мудрствуя лукаво, и не создавая лишних проблем разработчикам, AMD смогла сделать вполне современные CPU, обладающие всей необходимой для сегодняшнего дня функциональностью, и в то же время превосходно обратно совместимые со старым ПО.

Короткий конвейер, и большое количество инструкций, исполняемых за такт: превосходный КПД «в пересчете на мегагерц»;

Мощный и быстрый блок вычислений с плавающей точкой (FPU), позволяющий не использовать дополнительные наборы команд без серьезного ущерба для производительности;
Разумное использование внешних разработок и сотрудничества с другими компаниями: шина EV6 от DEC, технический процесс «кремний на изоляторе» (SOI) от Motorola/IBM, чипсеты для платформы от трех ведущих чипмейкеров (VIA, SiS, NVIDIA);

Продвижение новых технологий: DDR-память, прогрессивная шина Hyper Transport;
Расширение x86-архитектуры до 64 бит, придающее ей дополнительный «запас прочности» и позволяющее продолжать использовать хорошо отлаженное, привычное ПО на системах с большими объемами памяти;

Оригинальное (и до сих пор ни разу не применявшееся в x86-процессорах) решение о интеграции контроллера памяти в CPU, позволяющее существенно снизить задержки при обращении к ОЗУ и упростить чипсет;

Платформа Socket A стала рекордсменом среди x86-платформ по времени жизни на рынке: процессоры для нее выпускаются и реально доступны без малого пять лет.

Intel

На самом деле, кто что ни говорил, Pentium 4 — процессор очень интересный. Интересно в нем то, что блоки, традиционно являющиеся основными — собственно вычислительные — достаточно просты. В общем-то, он очень простой — иначе не смог бы работать на таких частотах. Суть архитектуры NetBurst (с точки зрения автора — он не вхож в команду разработчиков, поэтому вынужден ограничиваться более-менее правдоподобными предположениями) состоит в том, чтобы организовать своего рода «компьютер внутри компьютера». Фактически, очень большая часть процессора Pentium 4 — это довольно сложный комплекс совместно работающих узлов, призванный обеспечить должный темп поступления команд x86 — на декодер, и внутренних команд ядра — на простые, но высокочастотные исполнительные блоки. Да простят мне эту крамолу, но собственно x86-код для Pentium 4 — не более чем «какая-то там внешняя архитектура команд», и (еще более смелое предположение) сменить x86 на что-то еще именно в данном случае не так уж и трудно.

Если посмотреть на блок-схему Pentium 4, можно заметить, что блоков, работающих с x86-инструкциями там наблюдается всего пять — внешняя процессорная шина (BIU), кэш второго уровня, внутренняя шина декодера/префетчера, и собственно декодер и префетчер. Кто-то может сказать, что у AMD все примерно так же… но есть один существенный момент: декодер у K7/K8 включен в состав конвейера, поэтому инструкция, даже если она уже содержится в L1-кэше команд, декодируется при исполнении каждый раз заново. В случае же с архитектурой NetBurst, она декодируется только один раз т.к. L1-кэш содержит уже не x86-инструкции, а внутренние команды ядра. А вот все остальное что видно на схеме, за исключением собственно ALU/FPU — не имеет никакого отношения ни к x86-коду, ни к исполнению команд. Это один большой «улучшайзер», призванный обеспечить непрерывный поток инструкций. Если временно отвлечься от процессорной тематики, и перевести взгляд на современные компьютерные системы в целом, то можно заметить, что идеологии Pentium 4 и Athlon очень напоминают два постоянно соперничающих подхода к организации шинных интерфейсов: Athlon — типичная «параллельная шина», Pentium 4 — последовательная. Я отнюдь не стремлюсь делать какие-то далекоидущие выводы из этой весьма смелой аналогии, однако само по себе сопоставление довольно забавное... особенно учитывая текущую моду на последовательные интефейсы :).

Уж не знаю, удалось ли мне подвести вас к тому, чтобы смысл вышенаписанного проявился самостоятельно, поэтому озвучу основную мысль: NetBurst — это первая в своем роде процессорная архитектура, в которой основное внимание уделяется не исполнению кода, а наиболее быстрому его поступлению на исполняющие блоки. Высокое же быстродействие самих блоков достигается сравнительно просто — за счет частоты.

Хорошо это или плохо? Давайте не будем увлекаться примитивными ответами, а попытаемся понять, при каких условиях это может быть хорошо, и, наоборот, при каких условиях данная схема продуктивно работать не может. Впрочем, как раз ответ на этот вопрос и так известен: хорошо на Pentium 4 работают те программы, которые писались с учетом особенностей его функционирования. Тогда зададимся другим вопросом, более глобальным: а почему Intel решила сделать свою самую новую архитектуру именно такой? Ведь не дураки же в IAG (Intel Architecture Group) сидят, в конце концов! (Те, кто считают, что «Pentium 4 сделан по заказу маркетологов», могут дальше не читать — автор не занимается случаями клинического идиотизма).

И вот тут очень важно понять основную разницу между подходом к разработке ядра NetBurst в Intel, и ядра K7 (легшего потом в основу K8) в AMD. Начнем с того, что Pentium 4 начал проектироваться в те времена, когда лидирующее положение Intel было очевидно абсолютно для всех, и AMD никто всерьез не воспринимал. В данной ситуации приоритеты производителя предсказуемым образом меняются: его интересует не только разработка новой прогрессивной архитектуры, но и в немалой степени обеспечение минимизации затрат и получения максимальной прибыли. Проще говоря: «мы и так впереди — поэтому давайте подумаем, как бы нам каждый миллион превратить в два» :). Также на тот момент Intel была абсолютным лидером в технологическом плане: много заводов, прогрессивный техпроцесс, отлаженное производство. Не воспользоваться этим было просто глупо. И Intel воспользовалась — спроектировав процессор, рассчитанный на быстрый рост частоты. Не маркетологи на этом скорее всего настояли, а инженеры и технологи! Любой инженер вам скажет, что если задачу можно решить несколькими способами, но один из них уже обеспечен существующей базой — то выбирается, как правило, именно он. Так проще и дешевле. Расчет был прост и красив: делаем архитектуру, заточенную под то, в чем мы сейчас далеко впереди остальных. Мы технологически способны получить на 0,18-микронном процессе чип, работающий на частоте 2 GHz, а AMD, скорее всего, еще долго не сможет — так пусть будет 2 GHz!

Таким образом, Pentium 4 был процессором, рассчитанным не только на то, чтобы быть быстрым — но и на то, чтобы при минимальных затратах получить с него максимальную прибыль. Маркетологам, кстати, наоборот, туго пришлось — когда выяснилось, что соперничать тогдашнему Pentium 4 Willamette придется отнюдь не со слабеньким K6 или его чуть модифицированной версией, а с достаточно быстрым и мощным Athlon.

Однако наивно было бы полагать, что Intel положила все яйца в одну корзину, сделав Pentium 4 исключительно «прибыльным» процессором, рассчитанным на заведомое отсутствие достойных соперников. Если присмотреться внимательно к продукции этой компании, становится очень хорошо видно, что у ее процессоров (да и прочих железяк) всегда есть второе дно, а иногда и третье, и четвертое. В случае с NetBurst второе дно — это изначальная ориентированность на оптимизированное программное обеспечение. Ни для кого не секрет, что в идеальных условиях (использование расширенных наборов команд SSE и SSE2, «гладкий», не содержащий большого количества труднопредсказуемых переходов код) Pentium 4 всегда оказывается быстрее конкурентов. Собственно, основной парадокс данного процессора состоит в том, что де-факто он иногда работает медленно, но практически всегда существует возможность переписать код программы таким образом, чтобы Pentium 4 стал быстрее всех. Подчеркну — не за счет того, что другие процессоры на этом коде начнут «тормозить» — а за счет того, что Pentium 4 ускорится. Таким образом, NetBurst в некотором смысле предвосхитила кризис производительности, о котором мы поговорим позже, в заключительной части. Программу, исполняемую на процессоре с этой архитектурой почти всегда можно существенно ускорить за счет дополнительной оптимизации. Разумеется, в том случае, если производитель ПО захочет этим заниматься — но тут опять-таки техническое решение очень сильно переплетается с маркетинговым расчетом: Intel, по всей видимости, была уверена, что производителей ПО она уж как-нибудь уговорит. К слову, не ошиблась: на данный момент программ, оптимизированных под Pentium 4, более чем достаточно.

Но есть у NetBurst и третье дно: ориентация на быструю память. Тут все более чем прозрачно: мы уже выяснили ранее, что единственной серьезной угрозой для производительности процессора, основанного на данной архитектуре, является медленное поступление команд на исполняющие блоки. Разумеется, «улучшайзер», этого допускать не должен, но идеал, как известно, недостижим — иногда система предсказаний переходов и префетчер не срабатывают, и CPU на некоторое время впадает в ступор и начинает вычищать конвейер. В этой ситуации работа будет возобновлена тем быстрее, чем быстрее порция «правильных» данных и/или кода будет считана из памяти по процессорной шине. А теперь вспомним, что шина Pentium 4 по скорости очень долго была самой быстрой из всех x86 CPU — только относительно недавно двухканальный контроллер AMD Athlon 64 / Opteron смог догнать конкурента по скорости работы с памятью (и, к слову, немалой кровью — ради этого AMD пришлось встроить контроллер в процессор). Таким образом, с шиной у нас все в порядке — она изначально быстрее чем у конкурента, дело за памятью. Что эта ситуация означает на практике? Да в первую очередь то, что Pentium 4 от использования более скоростного ОЗУ всегда будет выигрывать сильнее, чем его конкуренты. Ему оно, грубо говоря, «нужнее».

Разумеется, нельзя не упомянуть про еще одну технологию, которая появилась вместе с архитектурой NetBurst и является вполне логичным развитием заложенных в ней идей — Hyper-Threading. Фактически, это еще один вариант «улучшайзера», только на более высоком уровне. Помните, мы говорили о том, что в случае промаха механизма предсказания ветвлений и/или префетчера, процессор на некоторое время впадает в ступор? Как можно с этим бороться, если предсказатель и префетчер улучшить на данный момент не представляется возможным? Правильно: нужно дать процессору еще какой-то код — тогда, вполне возможно, он окажется более «удобным», и на время разборок с первой последовательностью команд можно будет заняться выполнением второй. Фактически, Hyper-Threading — это первый намек на CMP (Chip-level Multiprocessing, многопроцессорность на уровне чипа). На самом деле, грань между CMP и Hyper-Threading еще тоньше, чем кажется — чисто теоретически, любые два устройства могут быть представлены одним, работающим с удвоенной скоростью и обрабатывающим соответствующие данные (буферы, очереди, регистры, команды, etc) попеременно. Вопрос лишь в том, что сделать проще и дешевле — два устройства, работающих с «одинарной» скоростью, или одно, работающее с удвоенной. Можно предположить, что если Intel займется CMP-процессорами — то отнюдь не везде она выберет первый вариант…

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

Разумное использование ресурсов при разработке: ориентация на сильные стороны компании-производителя;
Блестящий пример создания принципиально новой архитектуры CPU практически «с нуля», и исключительно силами собственного исследовательского отдела;

Неожиданный и оригинальный, но потенциально весьма перспективный подход к решению проблемы роста быстродействия — смещение основного акцента со скорости исполнения на скорость поступления команд;

Учет основных тенденций развития компьютерного железа в целом: увеличения скорости передачи данных, ориентации на потоковые вычисления и мультимедиа;

Богатые возможности оптимизации, дающие реальный эффект — существенное увеличение скорости работы программ;

Зачатки «многопроцессорности на чипе» (CMP) — еще одна современная тенденция, предвосхищенная в технологии Hyper-Threading;

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

Intel vs. AMD

Автор надеется, что болельщики Intel, не очень сильно попортили себе нервы, читая «Athlon для правоверных», а сторонники AMD не слишком часто плевались от «Катехизиса истинного NetBurst’овца». По идее, и те и другие, дойдя до «Катехизиса…», должны были в голос рассмеяться. Во всяком случае, так было задумано :). Старый журналистский прием: сначала стать на одну позицию — а потом резко переметнуться на другую. Однако сделано это было не только ради смеха. Вот ведь какая штука: действительно, и в первом разделе статьи, и во втором, сказана правда. Именно так все и есть — с точки зрения производителей. Просто AMD сделала ставку на один вариант развития событий, а Intel — на другой. Подход AMD можно назвать более осторожным и традиционным, подход Intel — новаторским, но в то же время рискованным. Однако в любом случае, видно, что обе компании имели свои резоны, и вполне объективные. Реалии сегодняшнего дня (и Pentium 4, и Athlon XP/64 производятся, продаются, и имеют своих сторонников) свидетельствуют, что никто, по сути, не ошибся — нашлось применение, как одной архитектуре, так и другой. И что дальше? А ничего… Имеем две интересные концептуальные разработки, одна из которых хороша для одних задач и при одних условиях, а другая — для других задач и при других условиях. Мы же не ездим все на автомобилях одной марки — не так ли? И даже в случае если стоят они одинаково, все равно кто-то предпочтет Мерседес, а кто-то — BMW, кто-то ВАЗ, а кто-то — «Волгу». Наверное, это свидетельствует о том, что идеальный автомобиль создать невозможно. Какая свежая мысль, однако… но почему же тогда мы ждем от процессоров то, чего давно перестали ждать от других устройств?

Как ни странно, одним из самых заметных последствий появления альтернативной Intel x86-архитектуры стала активизация и форсированное развитие «бенчмаркинга», соответствующих средств массовой информации, и тестовых лабораторий. Процессоры стало сравнивать действительно сложно — причем с течением времени все сложнее и сложнее. С одной стороны, развитие компьютерных СМИ — положительная тенденция: пользователи получили возможность больше узнать о продуктах, которые они покупают. С другой — прогрессирующая сложность процедуры измерения производительности безотносительно оценки способности основного адресата тестовых материалов (а им является рядовой читатель) воспринимать постоянно увеличивающийся поток информации — путь потенциально опасный, потому что приводит к появлению еще одной разновидности искусства ради искусства. Владимир Рыбников еще два года назад писал об этой проблеме. К сожалению, решения она по-прежнему не имеет т.к. «вскормленные бенчмарками» покупатели упорно продолжают считать любой компьютер универсальным устройством, предназначенным «для всего». Разумеется, в этом случае та же встроенная графика действительно воспринимается как ужас (потому что есть Radeon 9800, и он в 10 раз быстрее!), а процессор, который в два раза медленнее другого — как «полный отстой», причем, безотносительно того, в каком компьютере он установлен, и для чего этот компьютер используется.

Так кто все-таки победил? Те, кто внимательно читал статью, точку зрения автора наверное уже поняли: никто, ибо вопрос не имеет смысла. Однако попытаться сформулировать нечто вроде корректного ответа на этот некорректный вопрос — можно. Получится примерно так: «AMD — безусловно, выиграла, Intel — не проиграла». Вот такая забавная казуистика :). Зато она очень точно описывает ситуацию. Действительно: вряд ли Intel рассчитывала, что она все время сможет занимать пьедестал почета целиком, с первого места по третье. Это было бы чересчур наивно. Появление сильного конкурента с хорошим, быстрым процессором, способным соперничать с твоими собственными разработками… предположу, что за те десять с лишним лет, что прошли с момента выпуска первого клона, Intel уже устала играть со всем миром в UFO: Enemy Unknown, и смотрела на AMD Athlon даже с некоторым облегчением :). И, разумеется, архитектурно конкурент оказался именно таким, каким он должен был быть — демонстрирующим хорошие результаты там, где архитектуре от Intel было «неуютно». Не могло быть по-другому! Задумайтесь вот над чем: при ином раскладе Athlon не мог «прозвучать». Клон никогда не будет лучше первоисточника, поэтому единственное, что можно противопоставить интересному, мощному и оригинальному продукту — это столь же интересный, мощный и оригинальный продукт — но не слишком сильно с ним пересекающийся по потребительским свойствам. Что и произошло. Не сделала бы этого AMD — нашелся бы кто-то еще. Свято место долго пустым не бывает. Даже странно, к слову, — столько времени понадобилось, чтобы его кто-то, наконец, занял…

Нынешняя ситуация больше всего напоминает патовую: что один разработчик, что другой, кажется, выжали из своих процессоров (и, в более широком смысле — архитектурных концепций) уже все, что только можно. Заметьте — ни от Intel ничего хоть сколько-нибудь конкретного не слышно про то, каким будет преемник Pentium 4, ни загадочное ядро K9 от AMD (и это при всем известной любви данной компании оповещать прессу о своих планах!) так и не обросло подробностями. Пока мы наблюдаем только рост частот, причем достаточно вялый. Надежда на 90-нанометровый техпроцесс, как и всякая уважающая себя надежда, умирает последней, но все-таки умирает: да, это хороший способ удешевить чип или засунуть туда еще больше транзисторов — но эффекты уменьшения теповыделения и роста по частоте намного «смазаннее». Это уже видно по Prescott, и нет причин надеяться на то, что у AMD получится намного лучше. То есть может быть и лучше, но не настолько, чтобы эффект был аналогичным переходу со 180 нм на 130.

Впрочем, да простят мне читатели безапелляционность и «голый субъективизм», но, даже не зная технических характеристик и времени выхода новых продуктов, в главном я уже не сомневаюсь: статус-кво, скорее всего, сохранится и дальше. AMD честно отвоевала свое второе место на рынке, Intel смогла сохранить первое. Для того, чтобы ситуация коренным образом поменялась, AMD необходимо выпустить процессор, существенно превосходящий продукцию конкурента — потому что у конкурента намного больше денег, заводов, и славы, а у AMD — всего лишь быстрый CPU. Пусть он даже будет чуть-чуть быстрее в общем зачете — неважно. Intel производит x86 CPU с 1978 г. Первый оригинальный процессор (не клон), который смог стать вровень с продукцией этого производителя, был выпущен через 22 года. Честь и хвала AMD за это, но людей, которые знают и покупают процессоры Intel, сегодня больше — и совершенно очевидно, почему это так. А «чуть-чуть» — это не то преимущество, ради которого человек, всю жизнь пользовавшийся продукцией одной компании, перейдет на продукцию другой. Если есть какие-то сомнения в данной схеме — попробуйте создать компанию по производству газировки (очень вкусной и качественной!) — и обойти по объемам продаж Coca-Cola :).

Кстати о Coca-Cola: любой грамотный бизнесмен знает, что большие продажи «делают» не покупатели, а продавцы. Именно их и нужно в первую очередь заинтересовать в своем товаре, если хочешь, чтобы он стал массовым. Упор на цену и популярность в потребительской среде — удел агрессивных новичков, не более. А у продавца резоны свои: торговать выгоднее тем, что дороже. AMD, к слову, уже поняла это, и категорически открещивается от репутации «недорогой альтернативы». С рыночной точки зрения это свидетельствует об обретении компанией определенного статуса — иначе ей не стала бы мешать репутация поставщика дешевых решений. Но с точки зрения покупателя это означает, что разрыв в ценах между процессорами Intel и AMD будет сокращаться, причем тем сильнее, чем лучше у AMD будут идти дела. Ау, фанаты…

Еще одна причина того, почему рассуждения некоторых особенно горячих поклонников о «скорой смене лидера», вызывают у меня всегда истерический смех, и вовсе проста: эти господа просто-напросто не представляют себе, что такое процессорный рынок, и каковы его объемы. Точной цифры именно для x86 у меня сейчас под рукой нет, но «микропроцессоров вообще» Intel производит порядка 150 миллионов (!!!) штук в год, для чего имеет 11 фабрик (x86-процессоры делаются, если мне память не изменяет, на шести из них). AMD на сегодняшний день имеет одну фабрику, на которой одновременно производятся Athlon XP, Athlon 64 и Opteron, и еще одну, находящуюся в стадии строительства. Пардон за черный юмор, но если завтра Intel перестанет поставлять на рынок Pentium 4 и Celeron, то большая часть покупателей просто останется без компьютеров — в том числе и многие поклонники AMD :).

С другой стороны, не вызывает внутреннего протеста предположение о том, что если AMD по-прежнему будет выпускать в достаточном количестве CPU, примерно аналогичные по быстродействию Intel’овским (плюс-минус 5-10% на самом деле не играют существенной роли) — то, вполне возможно, ее доля на рынке со временем несколько увеличится. До определенного предела, разумеется. Чисто субъективно (т.е. основываясь скорее на интуиции, чем на точных подсчетах), я бы назвал в качестве представимого максимума цифру в 20-25% т.е. 1/5 — 1/4 рынка. Правда, даже она может стать реальностью исключительно в том случае, если Intel совершит все мелкие ошибки, какие только можно, а AMD, наоборот — не совершит ни одной (в возможность совершения крупных ошибок с обеих сторон — честно говоря, не верится).

Что касается меряния пи... (простите — «мегафлопсами») в секторе топовых процессоров, то этот процесс, наверное, продолжится — но какое, простите, он имеет отношение к позиции на рынке?! Это ведь своего рода спорт, а в футболе, как мы недавно могли убедиться, даже Греция может стать первой в Европе (хотя сколько той Греции — московская область и то больше...). Правда, в настоящий момент отношение Intel и AMD к данной разновидности производственной гимнастики сильно отличается: в случае с AMD оно «агрессивно-соревновательное», у Intel — скорее «спокойно-созерцательное» — но со временем, я уверен, оно станет абсолютно одинаковым у обоих конкурентов. Договорятся, в конце концов…

Тенденции и прогнозы

Здесь автор считает нужным напомнить, что выводы в финальном разделе данного материала (что, в общем-то, естественно) базируются на выводах и предположениях, сделанных автором в предыдущих частях этого же материала. Было бы несколько нелогично опровергать собственные рассуждения, не так ли? С другой стороны, это означает, что если вам не показалось разумным и правильным все изложенное выше — то заключительный раздел вряд ли понравится вам больше :).

Мегагерцы уж не те…

Легко заметить, что тенденция «даешь повышение производительности в N раз каждые X лет» в последнее время дает ощутимые сбои. Интеллектуалам и эстетам, любящим к месту и не к месту поминать что-то краем уха слышанное о «законе Мура» (который на самом деле никакой не закон, но это уже совсем другая тема…) напомню, что в данном случае речь идет не об усложнении устройств, а о росте их производительности. Насовать в чип кучу транзисторов и увеличить скорость исполнения данным чипом реальных программ — это, как говорят в Одессе «две большие разницы». Нет также никаких предпосылок к тому, чтобы тенденция к замедлению роста производительности процессоров изменилась. Во всяком случае, автору таковые предпосылки неизвестны.

Однако свято место пусто не бывает, а количество критичного к быстродействию CPU программного обеспечения меньше никак не становится. Поэтому вполне логично будет предположить, что место «королей скорости» не останется незанятым. Кто же его займет? Скорее всего — программисты. Разумеется, в сотрудничестве с разработчиками CPU, только в несколько другом ключе — поменяются местами командный состав с рядовым. Ранее подход к увеличению быстродействия был прост и дубов: у нас есть некий абстрактный код (какой угодно) — нам нужно его как можно быстрее исполнить. В общем-то, классический метод «против лома нет приема». Лом работать перестал… Поэтому на первый план выйдет «встречная оптимизация»: с одной стороны — оптимизация программ под процессоры, с другой — оптимизация процессоров под программы. Мыльные оперы из серии «MMX — 3DNow! — SSE — SSE2 — SSE3» (и, как ни странно, сюда же можно зачислить x86-64) очень хорошо демонстрируют основную тенденцию: программисты постоянно пребывают в состоянии неудовлетворенности возможностями CPU.

Можно, конечно, сказать, что программисты вообще постоянно чем-то недовольны :), но наличие в истории сегодняшней x86-архитектуры целых шести (!) попыток как-то компенсировать доставшееся нам в наследство от i386 «щасте», свидетельствует о том, что шутки шутками, а проблема реально существует. К слову: очень хорошим доказательством ее наличия служит появление SSE3. Мы здесь не будем обсуждать его востребованность, влияние на скорость, и прочее. Интересно другое: если внимательно присмотреться, то становится понятно, что это явно заказной набор инструкций. Не высоколобые разработчики ядра собрались и решили, что чего-то не хватает, и подарили миру очередной Универсальный Расширенный Набор Инструкций Для Всего На Свете, отнюдь нет! В SSE3 четко виден программистский заказ: «Сделайте так, чтобы нам было удобно делать то-то и то-то». Можно предположить, что работа в этом направлении будет вестись и дальше, и именно в вышеописанном ключе. В общем-то, программистским заказом можно попытаться (а почему бы и нет?) объяснить и появление x86-64: все-таки с 32-битной адресацией, пусть даже и расширенной «извращенным методом» (PAE) работать с большими объемами памяти не очень удобно. По крайней мере, большинство случаев повышенного оптимизма по поводу 64-битной адресации в x86 и большего количества регистров автор наблюдал именно у программистов. Подытоживая: можно сделать предположение, что времена, когда разработчики CPU по отношению к программистской братии занимали позицию «ешьте, что дают» — заканчиваются.

С другой стороны мы наблюдаем классические «грабли», на которые в свое время уже успешно наступил автопром: создав замечательные, мощные и быстрые автомобили, производители с изумлением обнаружили, что на них, оказывается, мало где можно с теоретически доступными им скоростями ездить — потому что ездят автомобили по дорогам, а не летают по воздуху. Если поглощение мегабайтов кода и данных сравнить с поглощением километров трасс, то дороги, по которым ездят процессоры — это программы. И их нужно оптимизировать, ровнять — иначе так и будем по старинке ездить в гастрономы на вседорожниках с приводом на все восемь колес и двигателями мощностью под 200 лошадиных сил. Фактически, сейчас мы живем в эпоху заката «наращивания мощности двигателей». Да, еще некоторое время вялотекущая гонка за гигагерцами и терафлопами пиковой производительности продолжится, но былого оптимизма победные реляции из серии «теперь еще на 200 MHz больше!» уже не вызывают, тем более что выливается это в очередные жалкие 2-3% прироста в реальных задачах. Разумеется, писать плохо оптимизированные программы намного проще, чем хорошо оптимизированные, поэтому для того чтобы программисты любезно согласились писать программы хорошие, нужен некий «внешний посыл». Им и станет замедление роста пиковой, «тупой» производительности процессоров. Таким образом, взяв на себя ответственность диктовать условия (ну или «высказывать пожелания», если кому-то больше нравится мягкая формулировка) разработчикам железа, программисты, в свою очередь, возьмут на себя обязанность возможности этого железа использовать по максимуму.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.