Спираль технологий

Многие специалисты по истории цивилизаций и писатели-фантасты придерживаются мнения, что человечеству свойственно развитие по спирали, а отнюдь не та прямая, которую нам рисуют особо оптимистичные сторонники прогресса. Т.е., фактически, большинство событий повторяются раз за разом, но, разумеется, каждый раз на чуть более высоком уровне, что при большом удалении и производит впечатление поступательного движения вперед. Некоторые кабинетные горе-теоретики, не учитывающие этого фактора умудряются из сходства событий даже целую альтернативную картину мира построить (противоречащую экспериментальным данным, конечно, но какой же уважающий себя фантазер от науки будет на такую мелочь, как факты, внимание обращать?), но речь сейчас совсем не о них. Более интересным является то, что, хотя компьютерная цивилизация с исторической точки зрения находится даже не в детском возрасте, а вообще на стадии зачатия, в ней уже тоже можно вычленить подобные циклические ситуации. Причем, как и в случае «большой» истории человечества, некоторым свойственно забывать о том, что происходят они не в первый раз. Соответственно, и рассматриваются каждый раз либо как уникальный и доселе невиданный рывок вперед на пути прогресса, либо как мировой заговор маркетологов (сионистов, коммунистов, масонов, инопланетян — кому что проще). Проходит некоторое количество времени, страсти забываются, и развитие вычислительной техники начинает казаться линейным. До следующей встряски, разумеется. Но сами эти встряски (прямое следствие освобождения пережатой внешними обстоятельствами пружины, движущей прогресс) настолько похожи друг на друга в главном, что можно и альтернативную «новую хронологию» в обиход пустить, легко доказав, что никаких полувека истории вычислительной техники не было, а первые компьютеры каких-то лет 10-15 назад появились.

Не верите? Хорошо. Сыграем в интересную игру — я назову три события из компьютерной истории, причем даже не из всей, а из небольшой ее части — истории развития персональных компьютеров (уж, казалось бы, за такой срок все забыть невозможно), причем именно в той последовательности, в которой они происходили (и даже повторялись они также — тройками), а вы, не заглядывая в продолжение статьи, попытаетесь угадать — о чем идет речь. Готовы? Начнем.

  1. Развитие и усложнение компьютерной техники привело к тому, что на компьютеры начали возлагать все больше работы. Соответственно, требовалось еще большее усложнение — появление новых устройств обработки и передачи информации, модернизация уже существующих. В узкое место превратилась системная шина, верой и правдой служившая уже несколько лет. В то же время для основной массы компьютеров проблема все еще не была чересчур острой, да и не всем устройствам требовалась более высокая пропускная способность, нежели обеспечивала «старушка». Соответственно, требовалось нечто более быстрое и функциональное, но совместимое со старым оборудованием. А цена большого значения не имела — нужно немногим, зато очень нужно, так что за ценой бы никто не постоял. И решение проблемы было найдено, что надолго (но не навсегда) загнало ситуацию под контроль.
  2. Однако время шло, и с проблемами пропускной способности системной шины начали сталкиваться массовые компьютеры. Решение же, полученное на первом этапе, по причине высокой цены, не подходило никак. К тому же и скорость его была недостаточной. Основные проблемы возникали в области обработки графики, что привело производителей к решению о создании специализированного графического интерфейса. Ввиду специализации, скоростного и, одновременно, дешевого. Причем и совместимость старых и новых систем долгое время сохранялась: необязательно было торопиться осваивать новую шину в спешном порядке — некоторое время сохранялась и совместимость со старым оборудованием.
  3. Однако со временем количество адаптеров расширения, нуждающихся в высокоскоростном интерфейсе, значительно увеличилось. Впрочем, и технологии со времен реализации пункта №1 шагнули далеко вперед, так что появилась возможность создания одновременно скоростной, дешевой и универсальной шины, превосходящей по всем параметрам предыдущие половинчатые решения. Одно только плохо — с полной потерей совместимости с ними. Ну с низкоскоростной-то периферией проблем никаких — некоторое количество «любезных сердцу» ее разъемов можно было временно сохранить, на рынке дорогих систем и «решение №1» могло пожить параллельно с новинкой (там цена не так и критична), а вот на рынке массовых систем вместе держать №2 и №3 смысла не имело. Убрать одним махом все морально устаревшее? Сразу обиженные вопли пользователей раздаются (как, впрочем, и по поводу недостаточно широкой поддержки низкоскоростной периферии или ее полного прекращения), причем нередко вполне обоснованные — зачем менять шило на мыло, да еще и за свои деньги? Из положения вышли внедрением на первом этапе некоторого количества гибридных универсальных систем — и волки сыты, и овцы целы, и пастуху вечная память :) А начиная с определенного этапа (когда массовый спрос на универсальность исчезнет как класс) — только новинки, благо оно дешевле обходится. Вот и решен вопрос с переходом.

Так вот, сколько событий описано выше? Три? А может шесть? Или больше? Попробуем разобраться.

Внедрение EISA (шаг №1)

Шина AT-bus, позднее ставшая индустриальным стандартом под именем ISA, на момент создания была крайне удобным, производительным, да и вообще — адекватным существующим задачам решением. Работала она синхронно с тогдашними процессорами и имела ту же ширину, что и их внешняя шина данных, что существенным образом упрощало работу конструкторов. С учетом вышесказанного, и производительность ее была как раз такой, как требовалось - больше процессор все равно «переварить» не способен. Сложные схемы арбитража и конфигурирования устройств? Не нужны они простым компьютерам тех времен, поскольку решаемые на них задачи были просты как три копейки, так что и сложного дополнительного оборудования не требовали.

Однако время шло, персональные компьютеры развивались, так что вдруг оказалось, что простенькая архитектура PC-совместимых машин пригодна не только для примитивных однопользовательских персоналок. Особенно заметно это стало после появления процессоров семейства i386, которые по вычислительной мощности легко обогнали процессоры вчерашних миниЭВМ и вышли на уровень некоторых мэйнфреймов (причем даже тогда продолжавших еще эксплуатироваться). Возник соблазн расширить сферу применения «писишек» в сторону чего-то большего, нежели простые настольные пишущие машинки, но вот имеющаяся системная шина этому бы однозначно начала мешать, так и оставшись на уровне 1984 года. И пропускная способность низкая, и объем доступной устанавливаемым на нее устройствам памяти, и примитивная схема организации работы этих самых устройств, мешающая росту сложности системы (да и в ограниченных даже рамках часто вызывающая проблемы). Словом, нужно было что-то делать.

Свой метод радикального решения проблемы «шинного тупика» предложил главный игрок и создатель данного рынка — компания IBM. Но слишком уж радикальным был метод: фирма хотела убить двух зайцев — и технологические проблемы решить, и клонмейкеров распоясавшихся наказать, вернув себе контроль за оказавшимся столь перспективным сегментом рынка. В результате новенькие PS/2 оказались лишь програмно-совместимыми с «классическими» PC, да еще и со всех сторон защищенными от копирования кучей патентов, что, в конечном итоге, сгубило и их, и саму IBM (на данном сегменте рынка).

А произошло так поскольку прочие крупные производители, которых, по понятным причинам, более устраивало продолжение развития открытой архитектуры, сумели придумать свой способ выхода из кризиса. Им стало расширение ISA под названием EISA. Данная шина не обладала таким запасом модернизируемости, как микроканальная архитектура IBM PS/2 и работала в «родном режиме» на 20% медленнее (32 Мбайт/с против 40 Мбайт/с) однако поддерживала практически все те же необходимые архитектурные расширения (типа арбитража или улучшенного механизма прерываний) и, главное, сохраняла совместимость с устаревшей ISA. Нельзя сказать, что последняя далась «малой кровью» (в частности, проигрыш в пиковой пропускной способности возник из-за необходимости сохранить частоту синхронизации 8 МГц — такую же, как у ISA), зато это позволяло при необходимости использовать старые адаптеры расширения. В противоположность этому, верные IBM клиенты вынуждены были при модернизации парка вычислительной техники менять абсолютно все (даже старые дискеты выкидывать, хоть это к нашей сегодняшней теме отношения и не имеет :)).

Однако обе шины имели один огромный недостаток — их реализация была очень дорогой даже по меркам того беспечального времени, когда 10000 долларов (старых полновесных, надо заметить, а не сегодняшних, в несколько раз обесценившихся) считались вполне нормальной ценой компьютера среднего уровня. Да и не требовались высокая скорость шины большинству пользователей. Не стояло просто перед ними таких задач, чтобы это стало критичным. В результате чего EISA плотно прописалась в сегменте серверов и высокопроизводительных рабочих станций. А большая часть рынка приходилась на все ту же древнюю ISA. Даже IBM наступила на горло собственной песне и начала активный выпуск... клонов IBM PC (такое «самоклонирование», скорее всего, стоит считать началом конца прародителя и былого локомотива индустрии, и превращение этой самой безликой индустрии в саморегулирующуюся систему, о чем мы как-нибудь позднее поговорим подробно).

Появление VESA (шаг №2)

Впрочем, прогресс вычислительной техники на этом совсем не остановился. На очереди было повсеместное внедрение графических операционных систем, что резко увеличило требования к пропускной способности шины, к которой подключался видеоадаптер (если в текстовом режиме полный экран «весил» всего четыре килобайта, то при 16 цветах и разрешении 640 х 480 он тянул уже на 150 килобайт, а ведь это самый младший видеорежим из более-менее пригодных для Windows или OS/2). Для перекачки таких объемов данных фактически непригодными оказывались даже так и не подешевевшие до пристойного уровня «серверные» шины, а ведь необходимо было решение, доступное для самого банального десктопа.

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

Таковым стала VLB (VESA Local Bus; впрочем, ее очень часто называли и просто первым словом — названием ассоциации-стандартизатора). Концепция шины оставалась почти столь же простой, как у внутрифирменных стандартов локальных шин, однако важным преимуществом перед последними было наличие единой спецификации, что быстро привело к началу активного использования VLB как производителями чипсетов, так и разработчиками видеокарт. Являясь расширением шины процессора, шина сказывалась и на его работе, что привело к ограничению на количество подключаемых к ней устройств. Фактически первая версия спецификации гарантировало работу пары карт расширения на частотах до 33 МГц (шина работала на внешней частоте процессора), одной на частоте 40 МГц и одного распаянного на центральной плате адаптера на частоте 50 МГц (именно распаянного — работоспособность даже одного слота расширения в последнем случае не гарантировалась). Позднее ограничения были несколько ослаблены, но до возможностей «настоящих» системных шин VESA было далеко. Зато простота конструкции обеспечила крайне низкую цену, и, стало быть, массовость решения. Да и такую пропускную способность, пусть и небольшому числу потребителей, на тот момент больше никто обеспечить не мог. А много устройств к шине подключать и не требовалось: видеокарта да дисковый контроллер — вот основные и единственные потребители скоростных шин в тогдашних массовых компьютерах. В общем, задачам того времени шина отвечала полностью, ее реализация в актуальных компьютерах на базе процессоров семейства i486 и их аналогов была простой и дешевой — ничего удивительного, что вскоре на каждой материнской плате «поселилась» пара-тройка слотов VESA. Причем ввиду особенностей конструкции (слот был получен из ISA путем добавления рядом дополнительного короткого соединителя в стиле разъема микроканала, который и отвечал за новые возможности, оставляя старой шестнадцатиразрядной части вопросы питания, взаимодействие с контроллером прерываний и т.п.) их наличие ни в коей мере не сказывалось на количестве слотов системной шины, что было весьма удобным.

В общем, эпоха «486-х» закончилась под знаком VLB/VESA. Именно в рамках этой шины произошло развитие и окончательное формирование (позднейшие времена ничего существенного уже не добавили) такого класса оборудования, как ускорители двумерной графики (Windows-акселераторы, как их первое время чаще всего называли). А вот дальнейшие перспективы шины выглядели уже не столь безоблачными.

Переход с VESA на PCI (шаг №3)

Чуть позднее начала расцвета VESA компания Intel предложила более качественное решение, а именно шину PCI. По сути своей она была уже не локальной шиной узкого назначения, а вполне могла претендовать на роль универсальной системной шины, полностью заменяя все предыдущие разработки. И, заодно, VESA — пропускная способность та же (плюс возможность ее дальнейшего роста), ограничений меньше, слоты и карты расширения компактнее (значит реализация дешевле)... В общем, VLB спасала лишь ее более простая реализация в доминирующих тогда компьютерах на базе процессоров i486 и их аналогов. И немудрено — под них шина и разрабатывалась. Потому и после появления столь серьезного конкурента чувствовала себя хорошо, на чем и некоторая временная фора сказалась. На рынке уже была масса чипсетов с поддержкой именно VESA, масса карт расширения, все это успело подешеветь — не самая лучшая ситуация для старта только-только начинающей жить PCI.

Однако жесткая ориентация на 486 сыграла с VLB дурную шутку после появления процессора Pentium. Тут уже сложность реализации обеих шин оказалась как минимум одинаковой. Вот только PCI изначально готовили к мультиплатформенности, а к VESA это пришлось «прикручивать», что отняло драгоценное время. Драгоценным оно стало потому, что Intel сама активно ломилась на рынок чипсетов. И уже имела преимущества, поскольку чипсеты надо было делать для собственных процессоров, так что многие их особенности была возможность учесть еще до начала выпуска, а не после, что вынуждены были делать конкуренты. В общем, в таких условиях на новом рынке чипсеты с поддержкой VESA не могли занять заметного места. И не заняли. И даже на уже давно окученном, но пока вполне живом рынке 486 спрос начал активно смещаться в сторону систем с поддержкой PCI, благо такие на нем присутствовали. Покупая новый компьютер, вполне логичным было ориентироваться именно на новую шину — для последующей защиты инвестиций. Тем более что никаких явных преимуществ перед PCI у VESA не было, так зачем и кому она такая нужна? :)

А нужна она была тем, кто уже купил соответствующие платы расширения и не желал платить за них заново при модернизации или смене компьютера. Вообще говоря, данный сегмент рынка всегда был не таким уж большим... но весьма шумным :) В среде компьютерных энтузиастов идея замены «шила на мыло», да еще и за свои деньги ни малейшего энтузиазма не вызвала. Однако индустрии уже было чем их успокоить — на рынке появились чипсеты с одновременной поддержкой обеих шин. Правда, только под процессоры 486-й линейки, однако стараниями конкурентов Intel на процессорном фронте к тому моменту производительность старших процессоров под данный сокет превысила производительность младших моделей Pentium. Обычно слот VESA на комбинированных платах был всего один, но этого хватало — из массовых устройств требовалось сохранить лишь видеокарту. Контроллер IDE уже перекочевал в южный мост чипсета к тому моменту, а владельцы экзотических VESA-адаптеров либо продолжали добивать технику до полного морального устаревания, либо раскошеливались на тотальный апгрейд, благо в их случае он весьма часто был вполне оправданным. Позднее же поддержку VESA удалось упразднить окончательно практически безболезненно.

Выше я сказал про наличие на комбинированных платах «обеих шин». На самом деле, их там было все три — две как раз разводились на массовых платах. Дело в том, что старушка ISA на тот момент умирать совершенно не собиралась. На рынке и на руках пользователей присутствовало огромное количество устройств в таком исполнении. Более того — новые модели продолжали разрабатываться. Просто более скоростная PCI со всеми своими остальными новыми возможностями вместе требовалась далеко не во всех сферах применения, так что оставался смысл продолжать использовать более простую (следовательно, более дешевую с точки зрения реализации) шину. ISA даже немного модифицировали, упростив конфигурирование устройств (первое время, правда, ничего, кроме лишних проблем Plug'n'Play ISA чаще всего не вызывала, однако в скором времени «детские болезни» общими стараниями удалось вылечить).

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

Появление PCI- X (шаг... опять почти №1)

Со временем PCI, как уже сказано, начала активнейшим образом использоваться и в сегменте серверов и высокопроизводительных рабочих станций. Более того — ее возможностей для ряда приложений перестало хватать, что немудрено. Все-таки пропускная способность «классической» PCI составляла лишь 132 Мбайт/с. Да — уже именно всего, причем на все устройства. А среди последних могло найтись уже не одно, а пара-тройка, нуждающихся хотя бы в сотне, но уже на каждого. Впрочем, в этот раз производители к данной ситуации подготовиться сумели, изначально заложив в шину возможности модернизации. Недостаточно ширины в 32 бита на частоте 33 МГц? Нет вопросов — используйте 64 бита, 66 МГц или и то, и другое сразу, что увеличивало пропускную способность в четыре раза (до полугигабайта в секунду). Причем первое время сохраняя совместимость и со старыми платами расширения. Позднее, правда, от полной совместимости пришлось отказываться — когда перестало хватать и 66 МГц, потребовалось дальнейшее повышение тактовой частоты (благо ширину шины так просто уже увеличить было просто невозможно), однако особых проблем сие не вызвало. Все-таки не так много устройств нуждалось в высокой пропускной способности, так что нормальным стало наличие и слотов PCI-X, и PCI. Причем физически разделенных, что стало на этом сегменте «правилом хорошего тона». В принципе, в некоторых случаях хватило бы и двух независимых шин PCI, но этот вариант ограничивал самые производительные адаптеры, не давая существенного выигрыша по цене. Очень удобно получилось: сегмент PCI-X для высокопроизводительных адаптеров и сегмент PCI для необходимых пользователю низкоскоростных, причем никто из них никому не мешает.

Почему я написал, что это «почти №1»? Недаром во вступлении упоминал, что события повторяются, но каждый раз на немного другом уровне ;) Основным отличием PCI-X от EISA являлись не детали реализации и не какие-либо иные особенности, а просто разное изначальное позиционирование. EISA рассматривалась как универсальное решение, замена устаревшей ISA «для всех». Пусть и не сразу, но со временем — точно. Поэтому о ней писала массовая компьютерная пресса, рассуждали энтузиасты и т.п. В конечном итоге шина прижилась лишь в сегменте высокопроизводительных систем, но тут уж именно «так вышло». А вот PCI-X в качестве массового решения никто не рассматривал! По мнению разработчиков того времени PCI должно было хватить всему мэйнстриму, причем всерьез и надолго, причем именно в самом простом исполнении — 32 бит, 33 МГц. PCI-X — только для серверов и рабочих станций. В результате и сейчас не всякий энтузиаст вообще знает о ее существовании, иногда обзывая данной аббревиатурой совсем другую шину, до которой мы доберемся чуть позднее. Чего уж говорить об «обычных пользователях», которые такие слоты и на картинке-то не видели. Но если копнуть чуть глубже, то сходства между переходом от ISA к EISA и от PCI к PCI-X видны просто невооруженным глазом. Предпосылки одинаковые, пути реализации сходные, общий итог работ тоже похож. Поэтому проводить между этими двумя событиями параллели можно легко и непринужденно.

Accelerated Graphics Port (AGP) (шаг похожий на №2)

Вернемся к нашим баранам, то есть компьютерам :) Что делать с серверами было понятно, однако оказалось, что и в мейнстриме с прогрессом техническим не все так уж гладко, как казалось изначально. «Камнем преткновения» опять оказалась графика, только на этот раз не плоская, а объемная. Внедрение третьего измерения в очередной раз повысило требования к объему видеопамяти и скорости работы с ней. Сотни килобайт на один экран изображения, пугавшие пользователей и заставлявшие инженеров хвататься за голову лет за 5-6 до этого, сменились мегабайтами и десятками мегабайт для хранения текстур. Память, кстати, еще и денег стоила. А использовать видеопамять только для видео при таких ее объемах было уже накладно — долгое время 3D-акселераторы использовались в массовом сегменте исключительно для игр. Но даже покупатель игрового компьютера не использовал его в данном назначении 100% времени никогда, чего уж говорить об «универсальных» домашних «писишках». Конечно, пользователям предложили достаточно сочную «морковку» в виде перехода к трехмерному рабочему столу, но первое время лишь в виде деклараций. На деле до Aqua оставалось еще несколько лет, а Aero вообще отложился на целое десятилетие — в конечном итоге только сейчас данный интерфейс начал худо-бедно внедряться на компьютеры, хотя сменилось уже несколько поколений 3D-акселераторов. Так что имеющимися ресурсами желательно было распоряжаться наиболее рациональным образом. В данном случае — задействовать основную память. Пусть не всегда, пусть не как основную для текстур, но все же. Иначе бы и прогресса не получилось в тех же играх: выбранное в конечном счете решение позволяло пусть не очень быстро, но все же работать им и на самых простых видеокартах (лишь бы сам видеочип более-менее «тянул»), а иначе бы вышло жестоко: либо видеокарту раз в полгода меняй, либо с одним и тем же уровнем графики по нескольку лет топчись.

Одна только проблема — мало уже становилось PCI для данных задач. Все-таки всего 132 Мбайт/с, причем на все устройства, а не только «лично» видеокарте. Внедрять PCI64, а затем и PCI-X в массовый сегмент? Дюже дорого. А как можно сделать дешевле? Предположим, что у нас есть только одно устройство с повышенными требованиями к пропускной способности. Выполняется? Еще как — на тот момент вовсю еще ISA использовалась, поскольку многим устройствам PCI было слишком много. Отведем ему отдельную шину PCI, только модернизируем. Поскольку устройство одно, точно можно (недорого) в качестве базовой использовать частоту в 66 МГц. Уже неплохо: всем остальным 132 Мбайт/с и пусть делят, а видеоадаптеру свои 264 Мбайт/с в личное пользование. Раз это у нас видеоадаптер и ничто иное (об этом договоримся заранее), можно учитывать специфику его работы, дабы еще как-то повысить ПС. Хотя бы в одном направлении — выборка текстур из ОЗУ нам важна, а вот запись может быть и не слишком быстрой: реже требуется, основную работу можно и в локальной памяти проводить. Где, заодно, и наиболее активно используемые текстуры хранить. Плюс концепция DDR (а потом и QDR) уже «доросла» до возможности практического применения — этим мы тоже займемся.

В общем, точно так же, как некогда видеокарты «переехали» на VESA, точно также они мигрировали и на AGP. Тоже не сразу — никто не мешал и «устаревшие» PCI-решения продолжать использовать, особенно если новые возможности не требовались. Да и вообще рынок PCI-видео разом «не схлопнулся»: старые компьютеры на ходу оставались, их тоже хотелось как-то апгрейдить. Но, в конечном итоге, стали видеокарты с PCI-интерфейсом редкостью, равно как и, в свое время, ISA-адаптеры. Это сходства шагов «2.0» и «2.1». Были и отличия. К планированию подошли более разумно, конкурента сильного никто не предложил — в результате VESA «скончалась» еще на этапе попыток внедрения спецификаций 2.0, а AGP пережила три версии, развиваясь несколько лет. В общем, то, о чем уже говорилось — новый уровень. Но в первом приближении — очередной виток. «Не хватает» шины серверу или рабочей станции — модернизируем имеющуюся, невзирая на расходы и т.п.: на этом сегменте цена важна, но не является определяющей. «Не хватает» мэйнстриму — придумываем, что бы такого недорогого добавить, дабы все были довольны :) Со временем улучшаем то, что добавили. В момент внедрения AGP разницы в производительности между видеокартами с этим интерфейсом и PCI-аналогами просто не было, а потом она появилась и даже стала весьма заметной. Причем не только в процентах — как уже было установлено где-то во времена активного использования видеокарт на базе чипов, подобных Radeon 9600, на их PCI-воплощении многие игры уже просто были неспособны работать. Даже при достаточно неплохом количестве локальной памяти.

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

От PCI и AGP к PCI Express (PCI-E) (шаг №3 в новом исполнении)

Признаться честно, обдумывать данную статью я начал еще два с половиной года назад — именно когда сначала робкое внедрение PCI-E стало объективной реальностью, с которой уже приходилось считаться. Внедрение и внедрение — можно подумать, что в первый раз. Однако сколько было по этому поводу копий сломано — даже удивительно. Поразмыслив, я решил, что есть для всех споров, возмущений, относительно здравой критики и просто обиженных воплей вполне рациональное объяснение. Во-первых, действительно для многих в первый — перехода с VESA на PCI многие просто не застали. В конце-концов, идея «компьютера за 1000 долларов» свое развитие получила уже во времена господства PCI и ее вариаций. А до этого прослойка пользователей ПК, да еще и купивших их «за свои кровные» и самостоятельно поддерживающих в актуальном состоянии, была куда более тонкой. И высказаться им особо негде было — бум Интернет случился тоже позднее смерти VESA. Оффлайновые же издания читались, но вот писать туда письма... Кстати — писали. Точно знаю, поскольку тогда уже работал. И статьи о злобных производителях, зачем-то заставляющих платить деньги за никому непонятные замены работающего оборудования на точно такое же, писать пытались и иногда присылали. Впрочем, журналы тогда тоже, в основном, несколько не на «домашних энтузиастов» были рассчитаны, так что подобные «крики души» не печатали. Человеческая память вообще достаточно короткая, а уж то, чего не знал, забыть совсем элементарно ;)

Более-менее активно высказать свое непонимание процессов, происходящих в индустрии, массовому пользователю дали во времена отмирания ISA. И он их высказал. Причем теми же словами, что сейчас жалуется на постепенный отказ от PCI ;) Аргументация та же, поскольку и проблемы те же. Как несколько лет назад на руках была масса работающих устройств с шиной ISA, на рынке — недостаток многих типов комплектующих с шиной PCI, а на продающихся материнских платах все меньше слотов первого типа и все больше второго, так и теперь — замените только в предложении ISA на PCI, а PCI на PCI-E. Причем ситуация даже еще чуть хуже, чем раньше. В те времена первые робкие попытки начать борьбу с ISA начались только через года так три-четыре после появления PCI, сейчас же излишний энтузиазм производителей материнских плат привел к тому, что модели всего с парой слотов PCI начали появляться буквально сразу. Да еще хорошо, если оба слота можно использовать: в беспечальные времена внедрения PCI человека, высказавшего мысль о том, что система охлаждения на одной из вполне бытовых дочерних плат может занять соседний с платой слот, скорее всего, отправили бы на принудительное лечение, а ныне все к такому привыкли (если же потребление и тепловыделение топовых чипов будет развиваться и дальше такими темпами, и к трехслотовым картам привыкнем). Производители же плат расширения к светлому будущему пока не рвутся, предпочитая в основном концентрировать свои усилия на все более дефицитной PCI. Все это очень сильно бьет по популярности PCI-E. Переход на PCI был более мягким, VESA тоже являлась относительно универсальной шиной, большинство тогдашних пользователей компьютера пользу от новой шины (пусть в перспективе) понять могли. А как нынешний переход выглядит для простого геймера Васи Пупкина? Совсем не как прогресс в области шинных интерфейсов, а как замена одного слота для видеокарт (AGP) на другой (PCI-E 16x). Причем без каких-либо видимых Васей дивидендов, типа производительности или функциональности (только-только сейчас хоть что-то начало образовываться в этом направлении). Если это не заговор производителей, заставляющих Васю тратить деньги на бессмысленный апгрейд, то что же? ;)

Значит нужна возможность сделать переход более мягким. Каким образом? Да все тем же — разработка и выпуск универсальных чипсетов и плат на их основе. Некогда под универсальностью понималась одновременная поддержка VESA, PCI и ISA, сегодня же нам (некоторым из нас, по крайней мере) нужны тоже три типа слотов, только уже PCI-E 16x, AGP и PCI. Правда более высокая сложность современных шинных протоколов привела к тому, что чипсет с полной их поддержкой на рынке появился всего один, да и то — большой погоды решение от ALi/ULi не сделало. Однако когда стоит задача просто немного сэкономить, «полноценность» реализации отходит на второй план, так что и более простые решения оказались вполне востребованными. В частности, предложенный VIA чипсет для процессоров Intel — взяли предыдущую разработку с нормальной реализацией слота AGP и добавили к ней четыре линии PCI-E. Да, четыре не шестнадцать, однако при достаточном количестве локальной памяти не так уж это и страшно. В конце концов, как показали наши тесты, для видеокарты с 256 или, тем более, 512 мегабайтами ОЗУ даже разница между 16х и 1х заметна, но не смертельна. Впрочем, этот, так сказать, решение с прицелом назад — для тех, у кого есть очень хорошая AGP-карта и никакой потребности ее срочно менять. Был и компромисс, рассчитанный на перспективу. Ведь, фактически, AGP является надстройкой над PCI. Весьма существенной надстройкой, но даже если очень многие дополнения убрать, многие карты все равно будут работать. Пусть не оптимальным образом, но будут. Вот и появлялись в свое время платы на чипсетах i915 и nForce4 с полноценным слотом PCI-E 16 x и урезанным AGP, сооруженным вместо одного из слотов PCI. Да, не все видеокарты в таком варианте вообще работоспособны, да, многие, формально работая, проигрывают случаю с «полноценным» AGP процентов по 30 производительности, однако в качестве временного решения на все это можно пойти.

Производители видеочипов тоже о переходном периоде озаботились. Впрочем, результатами их деятельности простой владелец компьютера может воспользоваться только косвенно, однако в наше время иное мало кому из этих самых владельцев способно пригодиться. Зато производителям видеокарт подспорье. Благодаря разработке в свое время переходных мостов, они до сих пор продолжают выпускать карты для AGP, хотя соответствующих видеочипов вроде как не существует. А карты есть. Вплоть до самых-самых современных с точки зрения технологий.

В общем, проблема с видеокартами вполне решаема. Ну а с остальным ее особо и нет, поскольку обычную PCI пока никто никуда не убирает. Словом, все то же самое, что и при переходе с VESA на PCI. Даже чуть лучше. И непонятно – чего шуметь-то было? Производители процессоров умудрятся каждый год новый сокет для процессоров сделать, причем некоторый из них еще и название и внешний вид последнего не меняет (что уже прямой обман, поскольку работает по-разному и полной совместимости лишено) и к ним претензий меньше. Но стоит раз в десять лет сделать что-нибудь радикальное с шинами (поскольку это банально необходимо), причем постаравшись обеспечить все максимально безболезненным для пользователя способом, и начинается. Громко и долго. И редко по делу. Иногда даже мысли возникают, что надо как раз все каждый год и менять — вскоре все привыкнут, утихнут и забудут вообще о такой ереси, как апгрейд по частям (благо про него и сейчас-то при возможности процесса 90% пользователей никогда не задумывается, а при невозможности все через пару лет забудут) :)

Вперед и в бок, а там...

Выше я уже упомянул, что 20 лет назад пути основателя рынка РС и прочих его участников несколько разошлись. Компьютерная индустрия (тогда еще представлявшая собой не некое тысячеглавое чудище, и совокупность вполне отличимых друг от друга фирм) возжелала сделать новую шину совместимой со старой. На этом пути у нее многое получилось, но главного, как мы уже увидели выше, не вышло — EISA так и не стала универсальным стандартом. Не стала им и MCA, несмотря на все усилия IBM и развязанную «войну шин». Почему?

Первая причина, которая сразу приходит на ум — лицензионные ограничения. Ведь IBM попыталась решить сразу две проблемы — и с технической стороны вопрос с шинами решить, и клонмейкеров поприжать. Именно поэтому запатентовано было все, что можно, а разрешения на выпуск совместимой продукции практически никому не выдавались. Кончилось все это для IBM весьма плачевно, да иначе и быть не могло — еще ни разу подобные игры с патентами никому с рук не сходили. При этом интересно наблюдать, как все новые и новые производители наступают на те же грабли. Десятилетием позже и Intel сподобилась сделать подобную глупость, и лоб себе таки раскровянила капитально... но об этом мы поговорим чуть позднее. Пока же вернемся к МСА.

Были ли патентные проблемы единственными или шина была обречена на поражение изначально? Для ответа на этот вопрос посмотрим внимательнее на то, что же такое МСА и во что она могла вырасти.

Итак, изначально была предложена шина с шириной до 32-х бит и частотой синхронизации 10 МГц. Немалое количество компьютеров в те времена еще использовали процессоры типа 80286 и i386 SX (да и позднее на базе его стараниями селекционеров IBM и Cyrix было сделано немало интересного, типа 386SLC, 486SLC, 486SLC2, 486SLC3 — последний оказался первым процессором с утроением тактовой частоты, заметно опередившим по времени выхода интеловский iDX4) с 16-и разрядной внешней шиной, но и в этом случае MCA имела преимущества перед старушкой ISA — реально достижимые почти 20 Мбайт/с против очень виртуальных 16 Мбайт/с (на практике много меньше). В «полноценном» же режиме пропускная способность шины составляла 40 Мбайт/с, т.е. больше, чем у EISA. Но и это не было пределом. Буквально сразу после начала выпуска компьютеров с микроканальной архитектурой, IBM заявила о наличии в ней скрытых возможностей. Дело в том, что реализация MCA позволяла двум устройствам обмениваться и на больших скоростях, если к этому они имели склонность :) Развитый арбитраж позволял передавать статус главного арбитра шины от устройства к устройству, а дальше — полная красота: пока все остальные «отдыхают» один-другой стандартный такт шины, пара устройств обмениваются друг с другом данными, синхронизируясь на частоте не 10, а 20 или, даже 40 МГц. Простой подсчет показывает, что в данном случае пропускная способность шины составит уже 80 или даже рекордные 160 Мбайт/с — больше, чем у PCI. Да, сложно последнее было реализовать, но ведь и сколько лет прошло между разработкой МСА и PCI. Да и 64-х разрядное расширение микроканала было вполне возможным, так что в особых случаях для особо производительных систем планку можно было бы поднять и до 320 Мбайт/с, что больше, чем у AGP 1x.

Разумеется, в прошлом была оставлена практика жесткого конфигурирования плат расширения микропереключателями — полного Plug’n’Play тогда реализовать еще было нельзя, но отконфигурировать все софтом можно. А еще платы по-определению были весьма компактными. Слоты, соответственно, тоже. Что вполне могло бы позволить уменьшить размер материнских плат, а также корпусов типовых компьютеров. Самой IBM это было с успехом реализовано. Замечу — более чем за 15 лет до появления концепции SFC PC (баребонов) и т.п.! В общем, как раз эти самые лет 15 в случае перехода на МСА ничего нового в плане внутренних шин в РС можно было бы не придумывать. Не было бы никаких EISA, VESA, PCI... PCI-X и AGP бы тоже, скорее всего, не было. Была бы только МСА, а потом все дружно перешли на что-нибудь типа PCI Express (но называлась бы она, наверняка, по-другому).

Сохраняй к 1987 году IBM полный контроль над сегментом рынка РС, скорее всего, так бы и вышло. Однако компания его как раз и пыталась вернуть. А тот, кто бегает за двумя зайцами, чаще всего ложится спать голодным :) Для того, чтобы пойти по пути, предложенному IBM, всем требовалось всего ничего — выкинуть все старые платы расширения. Все. Да еще и новые делать было бы затруднительно — патенты. Создать гибридные системы с MCA и ISA технически было бы можно, но сама IBM такого делать не собиралась, а остальные не могли — патенты. В результате красивая технически шина, на много лет опередившая свое время, так и осталась чем-то типа технического же казуса. А IBM из «локомотива индустрии» превратилась в один из ее вагончиков, начав самоклонирование, а потом и вовсе продала подразделение персональных компьютеров.

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

Заглядываем за горизонт

Собственно, основная мысль понятна — ничто не ново в подлунном мире, но и ничего не повторяется в точности также. Так что развитие есть. Возможно, не самым оптимальным путем идет прогресс, но все же идет. И наивно было бы ожидать, что он когда-либо остановится.

Произойти последнее может только в случае совпадения трех самих по себе маловероятных обстоятельств: инженеры не смогут придумывать что-нибудь новое, не найдется никого, кому не устраивало бы старое и маркетологи придумают новый стабильный способ зарабатывания денег на рынке, отличный от регулярных продаж такого же, но с перламутровыми пуговицами. Другими словами, если пуговицы станут невозможными и ненужными. Мир, в котором такое произойдет, будет интересен и любопытен. Впрочем, в той же степени, что и сегодняшний, только чуть по-другому ;)

Пока же конца прогрессу в его сегодняшнем исполнении не видать (куда более вероятна тотальная смерть современной цивилизации ввиду энергетического перепроизводства и переход того, что от человечества останется, на новый виток уже «большой» общеисторической спирали). В PCI-E заложено не меньше, чем в свое время в PCI. Еще толком не начала использоваться версия 1.0, а на очереди уже 2.0... и работа над спецификациями 3.0. Потом окажется, что концепции исчерпали себя. И вообще — переход от параллельной к последовательно-параллельной-шине был ересью и надо было делать чисто последовательную. Или что-нибудь еще — в любом случае, разработчикам найдется, чем заняться.

Впрочем, есть еще один вариант смерти сегодняшнего воплощения прогресса в компьютерной индустрии — если компьютер окончательно станет бытовом прибором. Энтузиасты потихоньку вымрут, а остальные просто не будут знать, что там и как сделано. И никто и никогда кроме специально-обученных граждан в него не полезет. И модернизация компьютера будет происходить так же, как сейчас модернизация телевизора — при помощи покупки нового. Причем без попыток переставить в него особо удачный блок дистанционного управления из старого :) Вот тогда да — будет совсем все по-другому. Правда не факт, что такой вариант при всех своих очевидных плюсах выгоднее для производителей, чем сегодняшний, а уж в этом случае даже с робкими попытками перехода на этот путь они расправятся. Ко всему прочему упорядочивание ситуации с внутренними шинами не решит вопрос с шинами внешними, а там ситуация ничуть не лучше. В общем, на наш век работы разъяснять, что там к чему, хватит ;)




4 октября 2007 Г.

- , , , . .., , , , , , . -, ( , , , , ?), . , , , , . , «» , , . , , (, , , — ). , , . , . ( , ) , « » , , , - 10-15 .

? . — , , — (, , ), , ( — ), , , — . ? .

  1. , . , — , . , . , , «». , , . — , , . , ( ) .
  2. , . , , , . . , . , , , . : — .
  3. , , . , 1 , , , . — . - — « » , « 1» ( ), 2 3 . ? (, , ), — , ? — , , :) ( ) — , . .

, ? ? ? ? .

EISA ( 1)

AT-bus, ISA, , , — . , , . , , - «» . ? , , .

, , , PC- . i386, ( ). «» - , , , 1984 . , , , ( ). , - .

« » — IBM. : — , , . PS/2 - «» PC, , , , , IBM ( ).

, , , , . ISA EISA. , IBM PS/2 « » 20% (32 / 40 /) ( ) , , ISA. , « » ( , - 8 — , ISA), . , IBM ( , :)).

— , 10000 ( , , , ) . . , . EISA . ISA. IBM ... IBM PC ( «», , , , - ).

VESA ( 2)

, . , , ( «» , 16 640 480 150 , - Windows OS/2). «» , , .

— , . , . , , « » — .

VLB (VESA Local Bus; , — -). , , , VLB , . , , . 33 ( ), 40 50 ( — ). , «» VESA . , , , . , , . : — . , , i486 — , «» - VESA. ( ISA , , , ..) , .

, «486-» VLB/VESA. ( ) , (Windows-, ). .

VESA PCI ( 3)

VESA Intel , PCI. , , . , , VESA — ( ), , ( )... , VLB i486 . — . , . VESA, , — - PCI.

486 VLB Pentium. . PCI , VESA «», . , Intel . , , , , . , VESA . . , 486 PCI, . , — . PCI VESA , ? :)

, . , ... :) « », . — . , 486- , Intel Pentium. VESA , — . IDE , VESA- , , . VESA .

« ». , — . , ISA . . — . PCI , (, ) . ISA , ( , , , Plug'n'Play ISA , « » ).

, PCI , VESA « ». EISA. , , — , — EISA. , PCI, .

PCI- X (... 1)

PCI, , . — , . - «» PCI 132 /. — , . , -, , . , , . 32 33 ? — 64 , 66 , , ( ). . , , — 66 , ( ), . - , PCI-X, PCI. , « ». , PCI, , . : PCI-X PCI , .

, « 1»? , , ;) PCI-X EISA - , . EISA , ISA « ». , — . , .. , « ». PCI-X ! PCI , , — 32 , 33 . PCI-X — . , , . « », - . , ISA EISA PCI PCI-X . , , . .

Accelerated Graphics Port (AGP) ( 2)

, :) , , , . « » , , . . , 5-6 , . , , . — 3D- . 100% , «» «». , «» , . Aqua , Aero — - , 3D-. . — . , , . : , ( - «»), : , .

— PCI . - 132 /, , «» . PCI64, PCI-X ? . ? , . ? — ISA , PCI . PCI, . , () 66 . : 132 / , 264 / . ( ), , - . — , : , . , , . DDR ( QDR) «» — .

, , «» VESA, AGP. — «» PCI- , . PCI- « »: , - . , , PCI- , , , ISA-. «2.0» «2.1». . , — VESA «» 2.0, AGP , . , , — . — . « » — , ..: , . « » — , , :) , . AGP PCI- , . — - , Radeon 9600, PCI- . .

, — - . — . ( , ).

PCI AGP PCI Express (PCI-E) ( 3 )

, — PCI-E , . — , . — . , , , , . -, — VESA PCI . -, « 1000 » PCI . , « » , . — VESA. , ... — . , . , - , . , , , « » , « » . , , , ;)

- , , ISA. . , PCI ;) , . ISA, — PCI, , — ISA PCI, PCI PCI-E. , . ISA - PCI, , PCI . , : PCI , , , , , ( , ). , PCI. PCI-E. PCI , VESA , ( ) . ? , (AGP) (PCI-E 16x). - , (- - ). , , ? ;)

. ? — . VESA, PCI ISA, ( , ) , PCI-E 16x, AGP PCI. , , — ALi/ULi . , «» , . , VIA Intel — AGP PCI-E. , , . , , 256 , , 512 16 1 , . , , , — , AGP- . , . , , AGP PCI. , , . , . i915 nForce4 PCI-E 16 x AGP, PCI. , , , , , «» AGP 30 , .

. , , . . , AGP, . . - .

, . , PCI . , , VESA PCI. . - ? , ( , - ) . - ( ), , . . . , — , , ( - 90% , ) :)

, ...

, 20 . ( , ) . , , , — EISA . MCA, IBM « ». ?

, — . IBM — , . , , . IBM , — . , . Intel , ... . .

? , .

, 32- 10 . 80286 i386 SX ( IBM Cyrix , 386SLC, 486SLC, 486SLC2, 486SLC3 — , iDX4) 16- , MCA ISA — 20 / 16 / ( ). «» 40 /, .. , EISA. . , IBM . , MCA , :) , — : «» - , , 10, 20 , 40 . , 80 160 / — , PCI. , , PCI. 64- , 320 /, , AGP 1x.

, — PlugnPlay , . - . , , . , . IBM . — 15 SFC PC () ..! , 15 . EISA, VESA, PCI... PCI-X AGP , , . , - PCI Express ( , , -).

1987 IBM , , . . , , :) , , IBM, — . . — . MCA ISA , IBM , — . , , - . IBM « » , , .

? ... , , , ( ). , , - , , , , , . , , . , « » , ( ) - , . , — : « » :) , - .

, — , . . , , . , - .

: - , , , , . , . , , . , , , - ;)

( , , «» ). PCI-E , PCI. 1.0, 2.0... 3.0. , . — -- . - — , , .

, — . , , . - . , — . :) — -. , , , . , . , , , ;)