Именно этот вопрос стоял перед компьютерной индустрией в середине 90-х. Мы все прекрасно помним, что жизнь порой решает дальнейшее развитие индустрии с оборотами в миллиарды и миллиарды долларов с такой удивительной небрежностью, что остается только диву даваться. Но иногда ее цинизм доходит до такого, что она откидывает такие шутки, что - хоть стой, хоть падай. Яркий пример - это то, как в середине мая 1995 "физически" столкнулись оба подхода, противопоставляемые здесь.
Скромный, неизвестный никому startup из Кремниевой Долины, nVidia, совместно со своим куда более именитым партнером, европейским полупроводниковым гигантом SGS-Thomson, объявил некий прорыв - чип NV1, представляющий из себя революционную по тем временам попытку совместить в одном решении ускорение 2D и 3D графики, проигрывания видео, а также - аппаратное ускорение звука. Через шесть лет NV1 превратился в nForce, стоит отдать должное настойчивости компании, но сейчас речь идет все же несколько о других вещах. В общем, с одной стороны - есть желание переложить обработку потоков мультимедиа на узкоспециализированные DSP, а с другой?
С другой, одновременно с этим объявлением, на очередной конференции DSP Expo, компания, известная куда больше, чем Nvidia и SGS-Thomson, вместе взятые, объявила об очередном шаге в направлении продвижения архитектуры Native Signal Processing (NSP) - выпуске Native audio developers' kit. Анонсируя этот комплект, тогдашний директор Intel Architecture Development Lab, Craig Kinnie, даже приводил соответствующие показатели производительности, снятые на Pentium 100 системе под управлением Windows 3.1. Программное микширование восьми звуковых стерео потоков с сэмплированием 22 КГц/с отнимало у процессора 9 процентов производительности, функционирование простенького кодека для сжатия речи, DigiTalk, отнимало 16 процентов, а более совершенного TrueSpeech, написанного с упором на вычисления с плавающей точкой - и вовсе треть всей процессорной мощности. И это при том - что сами по себе продемонстрированные на конференции аудио-приложения ничего выдающегося из себя не представляли.
Итак, приложения под Windows 3.1 процессоры Intel исполняли весьма шустро, на Windows 95 их тоже вполне хватало и, как вы видим, Intel начал искать новые способы загрузить свои процессоры работой. Напомним, что на дворе стоял 1995 год, расцвет, а уж тем более, закат 3dfx, был еще далеко в будущем, фиаско NV1 было также впереди, из звуковых карт на тот момент на PC рынке самым совершенным был Sound Blaster AWE 64 Gold - карта, где аппаратно микшировались лишь 32 голоса, а еще 32… Да-да, программно, тем самым центральным процессора. 3D графика считалась практически исключительно центральным процессором, а звук, как мы видим, недалеко от нее ушел, сам подталкивая Intel в нужном направлении.
Грех было этим не воспользоваться, тем более, что потенциальная угроза, кстати, была весьма и весьма очевидной - достаточно сказать, что DSP процессоры на тот момент уже имели чистую вычислительную мощность, превосходящую процессоры Intel, да Intel и сам это отлично знал - ведь он сам сделал свой первый DSP, контроллер 2920/2921, еще в 1981 году! Затем было недолгое сотрудничество с Texas Instruments в конце 80-х… В общем, о том, что такое DSP, и об угрозе, которую они собой несут, Intel рассказывать было не обязательно. Маленький интересный факт: в том же 1995 году, DSP чип MVP от Motorola стоил $232 примерно за 1000 MIPS, тогда как Pentium'овская сотня с лишним стоила $400. Такие цены надо было чем-то оправдывать в глазах покупателей.
И Intel родил идею NSP - реализацию функций множества специализированных DSP одним универсальным чипом - центральным процессором, благо, часть задач по обработке мультимедиа уже выполнялась именно им. Так почему бы не перенести на него весь спектр этих задач, тем более, что уже было очевидно, что будущее - за мультимедиа, и кто сможет реализовать обработку этих задач - NSP (читай, CPU), или же DSP - тот и победит. Как сказал Kinnie, "Проблема в структуре индустрии открытого PC. Слишком много полагающихся на DSP функций конкурируют между собой за одни и те же уровни прерываний и адреса DMA". Что может быть благороднее идеи упорядочить все это хозяйство? (Кстати, здесь лишь доля шутки, поскольку в этом моменте Kinnie был чертовски прав). Так, на Comdex Spring'95 и была объявлена архитектура NSP, требовавшая для нормального исполнения приложений минимальную конфигурацию в виде Pentium 75 и полнодуплексного аудиокодека.
Начальные условия были весьма тяжелыми для Intel. Еще бы, учитывая, что многие DSP тех времен имели сравнимую с Pentium и даже большую производительность при обработке мультимедиа-потоков, но стоили при этом десяток-другой долларов. Что стало фундаментом NSP? Попытка предоставить разработчикам мультимедиа-приложений полноценный интерфейс для обращения с процессором, как с DSP. Вот в этом то и крылся зародыш грядущей катастрофы.
Представленные в конце апреля 1995 вторая версия Intel'овского API 3D графики 3DR, звукового API - уже упоминавшийся в начале Native audio developers' kit и были теми посредниками, причем, весьма совершенными на тот момент. К примеру, 3DR Version 2 вдобавок к функциям представленного годом ранее 3DR первой версии, добавлял следующие возможности:
- General Lighting Model and Materials Palette;
- Matrix Operations and Camera Model;
- Texture processing toolkit;
- User interface toolkit;
- Comprehensive Geometric Math Library optimized for the Pentium processor;
- Support for rational quadratic patches (RQP);
- Support for Microsoft's Visual Basic.
Но даже заискивание перед Microsoft не помогло - идею NSP она убила на корню, не потерпев функционирования под своими операционными системами чужих API, просто-напросто, например, запретив сторонним производителям программного обеспечения использовать IA-SPOX (попытка привнести в Windows вытесняющую мультизадачность реального времени, хотя бы только для мультимедиа-потоков, расположив эти функции на системном уровне Windows - Ring 0).
Вместо этого… вместо этого Microsoft сосредоточилась на создании эффективных драйверов для звуковых карт, прямо перейдя на сторону противника и начав активно продвигать свой "голосовой" API - T(telephony)API. В то же время создавался и DirectX, чье повзросление окончательно и убило NSP: достаточно сказать, что в середине 1995 года производители тех же звуковых чипов разрабатывали драйвера как под NSP, так и под DirectX, поскольку просто не знали, какая из технологий станет лидером. Общим мнением было то, что к концу 1995 года Microsoft добавит поддержку NSP в DirectX.
Но… Microsoft не потерпела посягательств на свою епархию, а создатели графических и звуковых чипов, пользовавшиеся явным расположением Microsoft, смогли обеспечить рядового пользователя заметно лучшим сервисом за куда меньшие деньги.
Вспомним, приход того же Voodoo, когда его владельцы, сидящие на Pentium 120 чувствовали явное превосходство перед владельцами систем на Pentium 200, за меньшие деньги имея куда лучшее качество графики в играх. Все эти годы Intel проигрывал эту гонку - производители тех же графических чипов неуклонно теснили его позиции, отнимая у центрального процессора все больше и больше работы. Яркий пример - взятие ими на себя с 1999 года функций T&L, ранее считавшихся явной прерогативой процессора.
Да и вообще, Intel явно в очередной раз поторопился - он обещал, что сможет обеспечить одновременную обработку процессором звука, видео, коммуникаций, но не сегодня - на сегодняшних процессорах программно имело смысл реализовывать только что-то одно: какой смысл в многопользовательской игре, если работа софт-модема насмерть "сажает" скорость софт-графики, а табличный синтез 64 голосов отнимает 64 процента производительности процессора? А если вы играете один, но в это время на софт-модем попытается прийти факс, который тот не сможет принять по причине загрузки процессора? Производители специализированных карт на программируемых DSP предложили куда более доступный подход.
Intel не отвернулся от идеи NSP - компания вообще очень редко забывает про свои идеи (и, как правило, по прошествии лет оказывается права), так что она продолжила потихоньку пробивать идеи NSP и вот, в 1996 году выходит набор инструкций MMX, в 1999 - SSE, а в 2001 - SSE2. И каждый из них позволяет выполнять процессору DSP-подобные операции все с меньшей и меньшей загрузкой.
А стоило Intel отбросить свои поползновения в области API, как Microsoft тут же сменила гнев на милость. У компаний вновь общие интересы, и, пожалуйста, - DirectX становится долгожданным потенциальным трамплином для NSP. Вспомним структуру DirectX - игра будет исполнена в любом случае, просто, в случае отсутствия тех или иных аппаратных возможностей у PC, которые она требует, их отработку возьмет на себя hardware-emulation layer (HEL) DirectX. Отработку - естественно, за счет мощности центрального процессора.
Что самое интересное, свои плоды по мере роста производительности процессоров и ввода новых наборов мультимедийных инструкций постепенный подход приносит. Да, не повезло с аудио и видео, но зато удалось закрепиться в третьей из первоначально заявленных областей. Модем, полагающийся при своей работе не на DSP, а на центральный процессор, становится сегодня нормой на PC, а на горизонте уже виднеется целая стая софт-DSL модемов. Мало кого заставишь сегодня купить и карту для декодирования MPEG-2 - хватает возможностей процессора. Про аппаратное декодирование MPEG-4 и вовсе никто не вспоминает - мощность новых процессоров такова, что в рынке таких решений для PC необходимости просто не возникло. Звук? Не вопрос - полагающийся на процессор AC'97 уже давно стал нормой: чтобы убедиться в этом, можно даже не заглядывать на любую материнскую плату.
Графика... О, здесь разговор особый, и весьма интересный. Дело в том, что T&L стадии графического конвейера у процессора отобрали совершенно заслуженно. Даже MMX Pentium здесь мало что давал, поскольку этот набор инструкций оперирует с целочисленными данными, так что даже встраивание его поддержки в DirectX помогло Intel мало. Но прошло несколько лет, процессоры Intel приобрели мощный набор инструкций для операций с плавающей точкой, SSE2, их частота в ближайшее время заметно вырастет, а задачи, способные нагрузить эти процессоры, несколько запаздывают с появлением. И вот, Intel вновь заговаривает про обсчитываемую процессором графику, демонстрируя ролики, вполне способные потягаться по качеству графики с самыми продвинутыми игровыми движками, полностью обсчитываемые на Pentium 4, и вслух говорит о намерении отобрать T&L у графических чипов обратно. И ведь это вполне может у него получиться. Так значит, NSP жив? Значит - жив.