Рыбный день #13: Реальный компьютер

Ерничанье, особенно по отношению к коллегам — быть может, и не самый лучший способ донести до читателя свои мысли, но зато, с другой стороны, хотя бы сам автор имеет шанс повеселить себя в процессе написания материала :). Поэтому, прочитав «Идеальный компьютер-2» авторства безусловно уважаемого мной Ильи Вайцмана (AKA Stranger_NN), я не смог удержаться, и с названием следующего, в некотором роде «юбилейного» (см. номер), «Рыбного дня» определился абсолютно четко. Осталось только понять, про что же должен быть соответствующим образом озаглавленный выпуск этой колонки…



Вы знаете — жаль, просто по-человечески жаль Памелу
Андерсон, которая никогда не сможет сыграть на баяне…
(народное)


Однако определялся я недолго, ибо одна тема, как ни странно, даже пересекающаяся со всевозможными вариациями и размышлениями на тему об «идеале», уже отсидела в моем мозгу нужное время и была почти полностью готова к выходу в свет. Технологии, говорите? Эт хорошо… Технологии, открытия, новые достижения… Словом, «это манящее слово — Hi-Tech». Можно подумать, что их действительно приносят инопланетяне, эти технологии. Можно подумать, что директора крупных компаний — сплошь технические гении, наподобие Эйнштейна, ну или, в крайнем случае, Эдисона. Можно подумать, что все открытия, которые уже сделаны, выстроились стройными шеренгами, торопясь принести пользу человечеству, а те, которые особой пользы не приносят — сгинули во мраке веков, не выдержав здоровой конкуренции с более полезными. Можно подумать… Эх…

Технологии продаж и продажа технологий

Давайте осмотримся вокруг в поисках этих самых технологий и попытаемся понять: что же мы о них знаем? За образец возьмем сферу, близкую всем посетителям нашего сайта — компьютерную. Вот, к примеру, DirectX. Всем более или менее интересующимся 3D-акселераторами и тем, что с ними связано, известно, что есть DirectX 7, есть DirectX 8, а есть DirectX 9. При этом первый уже можно считать практически полностью устаревшим, второй — чем-то вроде нынешнего мейнстрима (хотя профи добавят, что неплохо бы все же не просто DirectX 8, а 8.1), ну а DirectX 9 — это наше будущее, это «очень и очень», как говорят в Одессе, и там все будет красиво и замечательно. Далее… Далее уже немного тяжелее. Кто из вас (честно смотрим на свое отражение в мониторе, пытаясь уловить выражение глаз) знает, чем отличается DirectX 8 от DirectX 7? Всем, кто ровно через одну секунду ответил «он чей-то там поддерживает» — поставить себе один балл. Тем, кто в любом контексте произнес магическое слово «шейдер» — два балла. Тем, кто вспомнил, что в 8.1 поменялись «какие-то версии шейдеров» — можно поставить в зачетку «отл.» и идти отдыхать. Ну а те, кто просто сказал: «Он прогрессивнее и в нем больше возможностей», — не отчаивайтесь — вы обычные, нормальные люди. Как и я сам, к слову.

Но дело не в том, кто сколько знает, а в том, что о «прогрессивности» DirectX 8 по отношению к DirectX 7 знают, пожалуй, почти что все. Равно как и о прогрессивности DirectX 9 по отношению к восьмой версии. И на этом знании и строится такая штука, как «продажа товара под маркой поддержки технологии». Есть, к примеру, видеочип G от компании G-makers и видеочип R от компании R-makers. Один из них (пусть это будет G) показывает хорошую скорость в тестах, имеет очень приличное соотношение цена/производительность, отличное качество картинки, ну и, как говорится, «и т. д. и т. п.». А другой (R) — поддерживает DirectX Z. Пусть на уровне драйверов, а не аппаратно; пусть не полностью, а только некоторые функции; пусть даже, в конце концов, этот самый DirectX Z еще вообще не вышел, и его официальные спецификации никому не известны! Неважно. R — поддерживает DirectX Z, а G — нет. А теперь вопрос: кто будет покупать G, обосновывая свой выбор анализом результатов его производительности, полученных независимыми тестовыми лабораториями, знанием ситуации с поддержкой DX Z в современных играх и прочими объективными причинами? А кто будет покупать R, «обосновывая» свой выбор надписью «DirectX Z compatible» на коробке и «знанием» того, что «DX Z — прогрессивнее и лучше»? И как соотносится количество первых и вторых? Оставлю вам возможность ответить на эти вопросы самостоятельно…

Технологии — это не хорошо и не плохо. По крайней мере, пока за них не взялся маркетинговый отдел :). Однако давайте все же будем честными сами с собой: как правило, мы покупаем не «поддержку новых технологий», а то, что нам про них рассказали. Почему? А потому, что если смотреть на вещи реально, то новая прогрессивная технология будет в 90% случаев просто-напросто совершенно недоступна нашему пониманию. Готов честно и откровенно признаться: я сам — очень посредственно понимаю, что такое шейдеры. За исключением того, что «это как-то связано с программированием» и «та красивая травка в Nature сделана именно посредством шейдеров». А кто-то другой не очень хорошо понимает, что такое PAT, или почему 200-мегагерцовую шину Pentium 4 все называют 800-мегагерцовой. Или почему и 3DNow!, и SSE, и SSE2 называют SIMD, но все они несовместимы между собой. Да, кстати, к слову: а какое количество из вас, уважаемые мои читатели, удосужилось хотя бы просто просмотреть список команд, входящих в набор SIMD-инструкций SSE2 (3DNow!, SSE) и попытаться понять, для чего эти команды могут быть предназначены? А как количество тех, кто это сделал, согласуется с количеством тех, кто берется с жаром обсуждать недостатки и преимущества данных наборов команд и наличие или отсутствие их поддержки в различного рода ПО? Нет, я не настаиваю на том, чтобы вы отвечали на эти вопросы вслух — ответьте на них хотя бы сами себе. И, быть может, вы кое-что вдруг осознаете…

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

«Я тебя поцелую. Потом. Если захочешь…»

Однако довольно с нас пессимизма. Предположим, что DirectX Z действительно намного быстрее и совершеннее своего предшественника DirectX Z-1, по протоколу UltraATA/133 данные передаются на целых 33 МБ/с быстрее, чем по UltraATA/100, AGP 8x вдвое превосходит AGP 4x, а двухканальная DDR400 обеспечивает в два раза более широкую полосу пропускания, чем одноканальная. Все отлично. Вот только одно «но»: «все отлично» — с самой этой технологией. То есть она хороша. Что дальше? Дальше же мы вдруг вспоминаем, что DirectX Z — это всего лишь API, в связке с которым работают драйвера конкретного графического чипа, и этот чип (или, для разнообразия, его драйвера) может быть как изумительно красив, так и безбожно крив и горбат. А с другой стороны в той же связке работают конкретные программы, и в данном случае у нас тоже есть как минимум три варианта: либо они используют новые возможности хорошо, либо они их используют плохо, в результате чего ни «красивше», ни «быстрее» не получается, либо… они не используют их вообще, потому что просто-напросто не подозревают об их существовании. А новому интерфейсу UATA/133 неплохо бы дать в пару поддерживающие такую же скорость передачи данных винчестеры, причем почему-то (странно, да?) хочется, чтобы они выпускались не одной компанией, а несколько большим их количеством. А для того чтобы загрузить работой двухканальную DDR400, нам нужен процессор с соответствующей шиной и частотой — иначе какой в ней смысл? И даже если в принципе все вышеупомянутые программные и аппаратные продукты когда-нибудь появятся, то все равно остается на повестке дня насущный вопрос: а зачем мне все это именно сейчас? С другой стороны, а в чем виноваты разработчики некой конкретной компании, придумавшие новый, современный «сверхзвуковой» интерфейс? В том, что их компания имеет возможность вбухивать миллиарды в свои исследовательские лаборатории, а «смежники» — производители «сопутствующих комплектующих» — этих миллиардов не имеют и тормозят на своих «Запорожцах» наш замечательный и быстрый 600-й «Мерседес»? И что теперь делать — не разрабатывать? Ждать, пока остальные «подтянутся»? Или наплевать на крики о монополизме и тупо делать все самому и исключительно «под себя»? Вопросы, вопросы…

И вот тут мы можем смело вернуться к «технологии продаж» и искусству «продажи технологий». Да, индустрия реально движется вперед. Это ни у кого сомнений не вызывает. Но не следует забывать о том, что одним из неизбежных следствий открытости (по крайней мере, в большей части) нашей с вами любимой «реально-компьютерной» платформы является то, что движется она в указанном выше направлении совершенно неравномерно. Шины современных процессоров от ведущих производителей имеют историю длиной в год-два, максимум три. Шина AGP, на использование которой ориентированы все современные графические чипы — уже лет пять. Интерфейс ATA (или Parallel ATA, как его сейчас иногда называют, чтобы не путать с Serial) — и того больше. Типы памяти меняются как перчатки, а типы процессорных разъемов — гораздо реже. Те же блоки питания, например, после выхода стандарта ATX изменялись чисто косметически — а сколько уже лет тому стандарту? Фактически, развитие технологий в каждой отдельно взятой области компьютерной техники в значительной степени «отвязано» от развития их в другой. А это уже совершенно закономерным образом вызывает другое, гораздо менее приятное явление — наличие в практически любой современной компьютерной системе совершенно дикого, с инженерной точки зрения, «зоопарка» технологий, в котором мамонты соседствуют с реактивными самолетами, и не только соседствуют, но и, продолжая аналогию, вовсю разгуливают по взлетно-посадочной полосе. В связи с чем летать на этих самолетах становится реально опасно. Однако продавать-то эти самолеты надо! И вот нам предлагают не лишенный некоторого извращенного изящества способ сохранить собственное здоровье — не летать. В конце концов, двигатели мощные — можно и по земле неплохо покататься, даже с ветерком. Зато дизайн какой — стремительные обводы, алюминий и пластик, закрылки, элероны… А как только мамонтов с полосы уберут — мы полетим! Обязательно полетим…

В сухом остатке: приобретая устройство, поддерживающее возможности, которые реально пока что никто или почти никто не использует, мы фактически просто «отдаем в кредит» разработчику этого устройства наше к нему доверие. Мы надеемся на то, что он сможет заинтересовать других производителей в использовании данной технологии. Мы надеемся, что это произойдет раньше, чем нам придется заменять данное устройство на более новое. Мы надеемся, что этот производитель вовремя выпустит [соответствующие драйвера | собственный API | SDK для разработчиков | …], в результате чего данная технология окажется реально полезной, и мы сможем получить какую-то отдачу от тех денег, которые заплатили за наличие ее поддержки в купленном устройстве. Нет, я не говорю, что это плохо. Отнюдь. Я просто спрашиваю: скажите, а при чем тут собственно технология? Она может быть любой — и хорошей, и плохой. Это, по сути, не так уж и важно. Плохая технология, которую проталкивает «монстр индустрии», имеет во много раз больше шансов, чем хорошая, которую придумали пять гениальных парней с тысячей долларов в кармане у каждого. Более того: «плохой» она может быть относительно той самой, придуманной гениальными парнями. Но относительно того, что было до нее — очень даже съедобной. И вот тут я задам второй вопрос: а что реально лучше — реализованная и работающая «плохая» технология (тоже дающая прирост, просто не такой большой, как можно было бы в идеале) или безвременно усопшая «замечательная»? И снова призову вас отвечать на него самостоятельно…

Заключение

Итак, что же представляет собой наш современный «реальный компьютер»? С точки зрения рядового, неискушенного в технике пользователя — ужасающий винегрет из различных «технологий» (а скорее — маркетинговых наименований, за которыми иногда стоят реальные технологии), соотносящихся друг с другом в непонятной пропорции и каким-то неведомым нам образом сообща выдающих некий результат… И это, пожалуй, и есть то единственное, что мы реально в состоянии зафиксировать или проанализировать. Но даже то, почему процессор X отрендерил сцену за одно время, а процессор Y — за другое, нам, по большому счету, неизвестно, и никогда мы этого на самом деле не узнаем. Говорите, у X — три блока FPU? Простите, а вы их лично сосчитали? А каждый из 125 млн. транзисторов известного графического чипа — тоже лично, долгими и бессонными ночами, под электронным микроскопом?

Я вот, к примеру, выдвигаю теорию, что FPU у процессора X вообще нет — ни трех, ни двух, ни одного. А присутствует сверхбыстрый беспроводной интерфейс, являющийся запатентованным Страшно Секретным решением компании-производителя, который короткими импульсами в пакетном режиме передает данные на обработку прямиком на один из доступных серверов Высшего Разума. И попробуйте мне докажите, что я не прав! Производитель, например, точно ничего доказывать не станет — просто покрутит пальцем у виска. И совершенно справедливо, между прочим: нечего засорять себе мозги тем, в чем все равно ни черта не смыслишь; так и вправду до желтого дома недалеко. Получил свои результаты тестов — вот на их основе и рассуждай. А что до количества миллионов транзисторов — тут уж тебе, парень, придется нам просто верить. Потому как с альтернативными вариантами выяснения истины у тебя, прямо скажем, напряженка. К чему это я? Да просто давайте-ка не забывать о том, как мало мы на самом деле знаем. И особенно хорошо постараемся об этом помнить, когда бес из-за левого плеча провоцирует нас на какие-то Особенно Глобальные Выводы.

Однако и знания, пусть и неполные — это еще не все. По крайней мере, в этом случае у нас есть хоть какая-то почва для размышлений. Сложнее приходится в тех ситуациях, когда ее нам не в состоянии предоставить даже сами производители и разработчики. Потому как иногда определенные потенциальные «технологические» возможности нашего компьютера на данный момент времени оценить просто невозможно ввиду того, что технология — есть, а ее практическое применение или еще «не подоспело», или существует в виде трех приложений, два из которых относятся к совершенно неинтересной нам области человеческой деятельности, а третье в текущей версии больше «падает», чем работает. Это уже не говоря про то, что, безусловно, громадное влияние на технические и скоростные характеристики наших компьютеров оказывают замечательные образчики «победы плодов человеческого разума над ним самим» в виде разъемов интерфейса X на плате внутри системного блока, в котором нет (и никогда не будет) ни одного устройства с данным интерфейсом, поддержки 5.1-звука в офисном компьютере с двумя китайскими колонками за $15, а также RAID-контроллера с подключенным к нему одним жестким диском, «потому что так вот сложилось».

Впрочем… ничто не мешает нам именно на такой «удивительно удачно сбалансированной» конфигурации писать свои чудесные статьи, в которых шины — коммутируемые, мониторы — умные, процессоры — высокопроизводительные и малопотребляющие, и нет ни одного лишнего винтика. Знали бы только современные технологии, как подло их используют для того, чтобы их же ругать :). И вот тут я опять съеду на свой любимый «стариковский ворчливый тон». Наверное, это действительно признак старости (которая, как известно, иногда приходит вместе с мудростью, но иногда и одна :)), но мне в последнее время уже не хочется ни идеала, ни сокровенного знания об отличиях DirectX 9 от DirectX 8, ни даже посвящения в Страшные Тайны технологии Hyper-Threading или количества блоков FPU. Появилось что-то новое? Замечательно. Функционирует нормально? Судя по внешним признакам — вроде бы да. Уже хорошо. Компьютер после включения загрузился как обычно? И того лучше! А если еще и работает хотя бы с той же скоростью, что и раньше — так вообще прекрасно. Запущу-ка я браузер, да пойду какие-нибудь смешные истории на anekdot.ru почитаю…

P.S. Ты смотри — и браузер запустился! Это ли не чудо?! Замечательный «реальный компьютер»! :)




12 июня 2003 Г.

« » #13

#13:

, — , , , , :). , « -2» (AKA Stranger_NN), , , «» (. ), « » . , …



— , -
, …
()


, , , «», . , ? … , , … , « — Hi-Tech». , , . , — , , , , . , , , , , , — , . … …

: ? , — . , , DirectX. 3D- , , , DirectX 7, DirectX 8, DirectX 9. , — - ( , DirectX 8, 8.1), DirectX 9 — , « », , . … . ( , ) , DirectX 8 DirectX 7? , « - » — . , «» — . , , 8.1 «- » — «.» . , : « », — — , . , .

, , , «» DirectX 8 DirectX 7 , , . DirectX 9 . , « ». , , G G-makers R R-makers. ( G) , /, , , , « . . . .». (R) — DirectX Z. , ; , ; , , DirectX Z , ! . R — DirectX Z, G — . : G, , , DX Z ? R, «» «DirectX Z compatible» «» , «DX Z — »? ? …

— . , :). : , « », , . ? , , 90% - . : — , . , « - » « Nature ». - , PAT, 200- Pentium 4 800-. 3DNow!, SSE, SSE2 SIMD, . , , : , , , SIMD- SSE2 (3DNow!, SSE) , ? , , , ? , , — . , , - …

, , «» , .

« . . …»

. , DirectX Z DirectX Z-1, UltraATA/133 33 / , UltraATA/100, AGP 8x AGP 4x, DDR400 , . . «»: « » — . . ? , DirectX Z — API, , (, , ) , . , : , , «», «» , … , - . UATA/133 , - (, ?) , , . DDR400, — ? - , : ? , , , «» ? , , «» — « » — «» 600- «»? — ? , «»? « »? , …

« » « ». , . . , ( , ) «-» , . -, . AGP, — . ATA ( Parallel ATA, , Serial) — . , — . , , ATX — ? , «» . , — , , «» , , , , , - . . - ! — . , — , . — , , , … — ! …

: , , , « » . , . , , . , [ | API | SDK | …], , - , . , , . . : , ? — , . , , . , « », , , . : «» , . , — . : — «» ( , , ) «»? …

, « »? , — «» ( — , ), - … , , , . , X , Y — , , , , . , X — FPU? , ? 125 . — , , ?

, , , FPU X — , , . , -, . , ! , , — . , : , ; . — . — , , . , , . ? - , . , - - .

, — . , - . , . «» , — , « », , , «», . , , , « » X , ( ) , 5.1- $15, RAID- , « ».

… « » , — , — , — , . , , :). « ». , (, , , :)), , DirectX 9 DirectX 8, Hyper-Threading FPU. - ? . ? — . . ? ! , — . - , - anekdot.ru …

P.S. — ! ?! « »! :)