7 лет назад 30 марта 2017 в 22:44 1567

Задумывались ли вы над тем, насколько гениальным изобретением человечества является конструктор? Скольким основополагающим принципам науки и техники он учит, сколько навыков развивает, и все это в ненавязчивой игровой форме?          

Наборы разноцветных пластмассовых деталек вроде Lego, к примеру, всегда были и остаются замечательной забавой для малышей: деревянные кубики и пирамидки взрастили поколения Равшанов и Джамшудов (зачеркнуто) строителей и архитекторов, ну а на бессмертном советском металлическом конструкторе (который с дырочками), по-моему, до сих пор держится половина техники на территории СНГ.

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

Несть числа поклонам, которые стоит отвесить инженерам компании IBM за то, что они впервые применили в своей персоналке IBM PC принцип открытой архитектуры. Согласно ему, методы сопряжения различных устройств с компьютером были стандартизованы и открыты для всех желающих, благодаря чему сторонние фирмы смогли выпускать свои платы расширения для машин Голубого гиганта, а пользователи — менять конфигурацию компа по своему желанию. В конечном итоге фирме это вышло боком, поскольку делать IBM PC-совместимые компьютеры и комплектующие стали все кому не лень, однако три синие буквы уже были навечно вписаны в историю мировой компьютерной индустрии.

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

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

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

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

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

Преданья старины далекой. ISA

В компьютерном мире не так уж много интерфейсов, которые окончательно канули в Лету, особенно будучи очень популярными ранее. Один из таких некогда господствовавших повсеместно реликтов — ISA (Industry Standard Architecture, «стандартная промышленная архитектура»).

 

Появившись в IBM PC XT (extended Technology, «расширенная технология»), к моменту наступления эпохи АТ-машин (Advanced Technology, «усовершенствованная технология») эта шина достигла своего расцвета и, что немаловажно, была строго стандартизирована.

Она играла даже большую роль, чем та, что сейчас выполняет PCI-Express: к ISA можно было подключить все, что душе угодно, начиная от привычных видеокарт, сетевух и им подобных устройств и заканчивая процессорами. Количество выпущенных под этот интерфейс плат расширения не поддается исчислению.

Существуют 8- и 16-битные версии ISA: разъемы первых выглядят как крупные 62-кон- тактные слоты, как правило выкрашенные в черный цвет, а более продвинутые 1б-битные версии могли похвастать наличием 98 проводников, разделенных ключом. Впрочем, некоторые 8-битные платы имели «хвост», залезавший в 16-битную часть, для доступа к большему числу прерываний, да и большинство простых 8-битных карточек не

испытывали проблем с совместимостью, сидя в более продвинутом разъеме. 8-битный ISA-слот обладал 8 каналами для данных, 6 — для прерываний и 20 — для адреса, что позволяло обращаться к огромному по тем временам объему памяти в 1 Мбайт. 16-битная версия, появившаяся после выхода на рынок 286-го процессора с соответствующей разрядностью, имела 8 дополнительных линий данных и 4 адреса, а число доступных прерываний выросло до 11. Сами можете прикинуть, к скольким запоминающим ячейкам это позволяло обратиться.

А вот частота ISA-слота на фоне этих цифр выглядит смехотворной: для 16-битного слота она составляла 8,33 МГц, а для 8-битного так и вовсе 4,77 МГц. Впрочем, машинам того времени вполне хватало пропускной способности, которую мог обеспечить подобный интерфейс. Что интересно, изначально ISA была синхронизирована с процессором (да-да, камни с частотой 8 МГц существовали. Более того, их можно было даже разгонять (смайл)).

В 1988 году была выпущена проапгрейженная 32-битная версия шины, получившая название EISA и облюбовавшая в основном серверные материнки, а в 1993-м, спустя 12 лет после появления исходной версии интерфейса на свет, ему прикрутили поддержку Plug and Play.

Наиболее долгоживущими платами расширения с разъемом ISA оказались звуковухи: многие из них имели весьма приличное даже по современным меркам качество звучания. А быстрее всего из обихода вышли так называемые «мультикарты», открывавшие для материнок без каких-либо дополнительных интегрированных контроллеров доступ к интерфейсам АТА, FDD, COM, LPT и прочим.

AGP

AGP, или Accelerated Graphics Port («ускоренный графический порт»), — популярный и в общем-то практически единственный специальный интерфейс для подключения видеокарт. Разработан он был компанией Intel в 1996 году (реально начал использоваться в 1997-м) с целью подружить с системой быстрые и производительные видюхи, которым уже было тесно в рамках пропускной способности PCI. Вернее, всего одну видюху: AGP никогда не выпускался в виде шины с несколькими разъемами, хоть такая возможность и была предусмотрена в последней ревизии этого интерфейса.

За основу при разработке AGP был взят слот PCI v. 2.1 (32-битный, с частотой 66 МГц). Электрически обратная совместимость с разъемом-предшественником сохранилась (хотя разводка и была существенно изменена), но появились и некоторые нововведения, к примеру очередь запросов, позволявшая не дожидаться окончания текущей передачи перед началом следующей. Также были частично демультиплексированы ранее являвшие собою единое целое шины адреса и данных (в дополнение к стандартной 32-битной мультиплексированной шине (AD) появилась 8-разрядная «боковая» шина адреса (SBA)), и был введен режим DDR (Double Data Rate) для линий данных, обеспечивавший удвоенную скорость за счет передачи информации как по фронту, так и по спаду синхросигнала. Принцип «2х» был реализован уже в первой ревизии AGP, так что видеокарт, поддерживающих исключительно AGP 1х, в природе не существовало.

В скором времени даже удвоенной пропускной способности интерфейса стало не хватать для мощных видюх, и был разработан стандарт AGP 2.0, в котором уже был реализован принцип QDR (четыре передачи за такт).

И, параллельно с этим новшеством, было введено еще одно, доставившее потом немало головной боли железячникам: для обеспечения стабильности и снижения энергопотребления величина сигнальных уровней была уменьшена с 3,3 до 1,5 В. Дабы исключить подключение видеокарт, рассчитанных на одно напряжение, в материнки, предлагающие им «нечто иное», были введены ключи на разъемах. 3,3-вольтовый слот имеет одну поперечную перекладину ближе к коннектору для монитора на видеокарте, а на самой видюхе в том месте, соответственно, прорезь. У разъемов видеокарт под 1,5 В такая же «защита от дурака» расположена ближе к противоположной границе слота.

Также в изобилии были выпущены «универсальные» видеокарты и слоты для их установки (одни с двумя прорезями, вторые без перекладин). Необходимый уровень сигнального напряжения в них определялся автоматически, и все вроде бы должно было быть хорошо. Но по недосмотру инженеров очень многие материнские платы на чипсете i845 были оснащены универсальными слотами, в то время как наборы логики поддерживали только сигнальный уровень 1,5 В! Робкие надежды на то, что рассчитанная на более высокое напряжение карточка просто не запустится, не оправдались: видеокарты не только пытались завестись, но и переваривали 1,5 в 3,3 В и, надо полагать с чувством глубокого удовлетворения, отсылали их назад, на чипсет. Что происходило с несчастным кристаллом от такого «перенапряжения нервов», думаю, описывать излишне.

Проблема не исчезла даже после поспешного оснащения слотов защитными ключами: некоторые видеокарты, заявленные как совместимые с AGP 4х, тем не менее при установке в современную материнку «включали тупаря», то есть напряжение 3,3 В. На определенных видюхах уровень сигнала задавался джампером, который можно было случайно забыть переставить с тем же исходом для материнки.

Мучались айтишники, мучались с несчастным AGP 2.0, а тем временем подошло время и для третьей ревизии интерфейса. В ней частота передачи данных уже в восемь раз превышала опорную «герцовку». Но и здесь не обошлось без чудес: в режиме 8х уровень напряжения снижался аж до 0,8 В. Механически разъемы не менялись, но были добавлены два контакта, отвечавшие за проверку материнки на совместимость с AGP 8х. В случае отсутствия таковой видеокарта либо просто не запускалась, либо, если могла, включала менее интеллектуальный режим работы с большим напряжением сигнала. Проблем, конечно, стало меньше, однако они отнюдь не исчезли и периодически вылезали на свет при спаривании современной видеокарты с не очень свежей (но заявленной как совместимая) материнской платой.

А несущая частота AGP, кстати, нисколько не изменилась за все годы эволюции интерфейса. Она напрямую связана с частотой установленных в системе PCI-слотов, и завышать ее чрезмерно тоже не стоит. Чуть-чуть разогнать шину (до, скажем, 72 МГц) можно — это повышает пропускную способность, на что мощные видеокарты могут отреагировать положительно, но не забывайте и о стабильности работы.

К слову сказать, существовала и несколько видоизмененная версия интерфейса AGP, так называемая AGP Pro. Этот слот обладал обратной совместимостью с «простыми» AGP и был оснащен лишь дополнительными питающими линиями. Впрочем, с появлением разъемов подкормки на печатной плате видеокарты, необходимость в таких ухищрениях отпала, а вот отсутствие держателя хвостовой части могло доставить неудобства, особенно в корпусах типа «китайский тазик», обожающих выдергивать платы из слотов после затягивания винтов.

Последняя плата с этим интересом увидела свет ровно десять лет назад…

 

PCI

Наиболее долгоживущий из распространенных на сегодняшний день интерфейсов для плат расширения — это PCI (Peripheral Component Interconnect значит по-аглицки «взаимное соединение периферийных компонентов»). Он появился в эпоху поздних 486-х (если конкретно, то в 1991 году), а поистине всенародную популярность завоевал во времена первых «Пентиумов». Разработан он был коллективом инженеров из организации Special Interest Group, созданной фирмой Intel. Новая шина вызвала самый настоящий фурор среди производителей плат расширения благодаря своей высокой пропускной способности, возможности корректной одновременной работы множества устройств и поддержке принципа Plug and Play, в те времена еще крайне мало распространенного. Последний сделал интерфейс PCI в изрядной мере самонастраиваемым и избавил пользователя от необходимости вручную конфигурировать прерывания.

Существует несколько версий интерфейса PCI: если провести деление по уровню сигнального напряжения для плат, то можно выделить 5-вольтовые и 3.3-вольтовые PCI, а если по разрядности интерфейса — то 32- и 64-битные слоты. Вторые, как правило, устанавливались в серверных материнках, первые же обычно в 3,3-вольтовом исполнении населяли классические персоналки. В качестве «защиты от дурака» на платах различных типов используются прорези (на слотах, соответственно, выступы); наличие нескольких выпилов на плате свидетельствует о том. что она является универсальной. 64-битные слоты длиннее своих 32-битных сородичей, впрочем, материнки для них не обязаны использовать весь предоставляемый в их распоряжение набор контактов. Прямая и обратная совместимости имеют место, хотя для 64-битной карты работа в 32-битном слоте непременно выльется в потерю производительности.

Шина PCI является синхронной (то есть все операции выполняются по фронту или по спаду тактирующего сигнала), опорная частота для нее — 33.3 МГц. Пропускная способность работающего на этой частоте 32-битного слота (наиболее распространенной модификации, известной как PCI 2.0) равняется 133 Мбайт/с, чего вполне достаточно для нормальной работы сетевых и звуковых карт, TV-тюнеров и иных устройств, перекачивающих относительно небольшие объемы информации в единицу времени. Ревизия PCI за номером 2.1 поднимает частотную планку до отметки 66,6 МГц (а планку пропускной способности — до 533 Мбайт/с при использовании 64-битного слота.

Существовали и еще более продвинутые, нежели PCI 2.1. версии слота, получившие название PCIX (не путать с PCI Express!). Частотный потолок шины в первой ревизии был поднят до 133 МГц, а во второй — и вовсе до казавшихся заоблачными 533 МГц. однако это наложило свои ограничения на число одновременно подключенных к шине плат: при 66 МГц их могло быть четыре, при 100 МГц – две, при 133 МГц — одна (или две, если хотя бы одно устройство не является картой расширения, а распаяно на материнке), а при 266 и 533 МГц — только одна и ни платой больше.

Карты времен первой ревизии PCIX, как правило, изготавливались в стандартном исполнении 3,3 В / 64 бита и обладали обратной совместимостью со всеми 3,3-вольтовыми и универсальными слотами PCI (хоть и работали в них, разумеется, не в полную силу). Пиковая пропускная способность шины PCIX 1.0 составляла 1 Гбайт/с. Ревизия 2.0 помимо двух высоких частот принесла также поддержку ЕСС (Error Correction Code) и подняла потолок пропускной способности аж до 4 Гбайт/с. Уровень сигнального напряжения был снижен до 1,5 В, однако обратная совместимость с картами, использующими напряжение 3.3 В, сохранилась.

Шины адреса и данных в PCI объединены друг с другом для удешевления производства и сокращения габаритов слота и механически представляют собой всего 32 проводника. Что примечательно, 32-битный PCI-слот может использовать 64-битную систему адресации, хотя об этой возможности обычно не вспоминают.

Также уменьшение количества проводников способствовало значительному повышению стабильности работы шины, и дело здесь вот в чем. Любой параллельный интерфейс (а к их числу, как известно, относится и PCI) нуждается в том, чтобы данные со всех его сигнальных линий поступали одновременно, иначе информационная картина на входах будет неполной. Данное обстоятельство накладывает довольно жесткие ограничения на длину и расположение проводников: те не должны иметь разную протяженность, а разводка обязана способствовать уменьшению числа переотражений сигнала на поворотах и в местах контактов. Дорожки на плате должны быть примерно равной длины, но не для того, чтобы электроны вовремя успевали завершить свой марафонский забег (скорости все-таки немного не те), а потому, что от протяженности проводника в значительной мере зависит волновое сопротивление. Ну и, разумеется, чем меньше линий, тем легче обеспечить их синхронную работу. Мелкие погрешности во времени поступления данных исправляются при помощи такого параметра, как латентность: фактически это период, в течение которого «семеро одного ждут». Увеличение латентности может помочь справиться с такой проблемой, как, например, периодическое пропадание звука на аудиокарте.

Интересен метод пересылки данных по шине PCI: они передаются пакетами от инициатора («хозяина» шины) к объекту («подчиненному»). При помощи специального сигнала устройство-инициатор запрашивает разрешение на временное «овладение» шиной, и ее контроллер («арбитр»), в случае если таковое возможно, специализированным сигналом предоставляет ему это право. Затем, когда истекает отведенное таймером время для пересылки данных, управляющий доступ к шине передается уже другому устройству. Начиная с ревизии PCI 2.1 появилась возможность одновременной работы нескольких устройств-«хозяинов». или так называемый конкурентный режим.

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

Но, несмотря на подобные недостатки, шина PCI была наиболее распространенным и востребованным интерфейсом для плат расширения в компьютерах недалекого прошлого. Тогда же эта шина в измененном форм-факторе нашла себе применение и в ноутбуках (mini-PCI, PCMCIA CardBus), и в промышленных компьютерах (РС/104-Plus), и много где еще.

Продолжение следует.

Никто не прокомментировал материал. Есть мысли?