Архивы: по дате | по разделам | по авторам

Компьютер это сеть

Архив
автор : Влад Вул   23.01.2002

Все знают, что в 1981 году фирма IBM выпустила на рынок свой персональный компьютер - IBM PC, тем самым положив начало новому витку компьютерной революции. Но мало кто помнит, что в марте того же года появилась еще одна, не менее важная новинка. Фирма 3Сom представила миру первую Ethernet-карту.

The Network Is The Computer.
Sun Microsystems

Anyone can build a fast processor.
The trick is to build a fast system.
Seymour Cray


Все знают, что в 1981 году фирма IBM выпустила на рынок свой персональный компьютер - IBM PC, тем самым положив начало новому витку компьютерной революции. Но мало кто помнит, что в марте того же года появилась еще одна, не менее важная новинка. Фирма 3Сom представила миру первую Ethernet-карту. Этим двум технологиям было суждено изменить мир.
У них больше общего, чем может показаться на первый взгляд. Обе имели открытые спецификации, что позволило независимым производителям немедленно начать производство клонов. И в основе обеих технологий лежала шина. Два этих фактора предопределили сходную судьбу PC и Ethernet, вызвали их расцвет и эволюцию, которая продолжается по сей день.

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

В сети Ethernet нет ни процессора, ни прерываний, но там тоже есть шина. В первой версии Ethernet это был коаксиальный кабель, к которому адаптеры сети подключались специальными отростками через разъем DB-15 (его еще можно увидеть на старых сетевых картах). Поскольку все адаптеры подключены к шине параллельно, в любой момент времени может работать на передачу только один из них. Если же передавать данные одновременно, они перепутаются и будут потеряны. Это явление называется коллизией (столкновением). Никаких особых способов для предотвращения таких ситуаций не существует, и если в сети передается много информации разными машинами, коллизии происходят то и дело. Это здорово снижает эффективность и пропускную способность сети, которая и так невелика из-за того, что передача данных ведется только по очереди. Раздельный способ использования общей шины называется «множественный доступ с контролем несущей и разрешением коллизий», английская аббревиатура CSMA/CD. Он часто применяется в радиосетях.

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

Я свою превышу скорость…

Как в шину компьютера IBM PС, так и в сеть Ethernet обычно вставлялись платы разных производителей. Ведь спецификации были открытыми - это было ключевым фактором, обеспечивавшим успех на рынке. Благодаря конкуренции производителей снижались цены и внедрялись инновации. Производителю видеокарты или сетевого адаптера нетрудно выпустить на рынок новую, улучшенную версию своего изделия. Но шину, которая соединяет их вместе, изменить очень трудно - ведь в новую шину старые устройства уже не воткнешь, а новых на рынке не появится, пока шина для них не получит широкого распространения. Замкнутый круг. Но иногда из него есть выход. Так 8-битная шина ISA, которой были оборудованы первые IBM PC, получила дополнительную секцию и стала 16-битной. Это было блестящее решение, позволявшее по-прежнему использовать старые карты. Впоследствии такую же тактику применили для шины VLbus: ее разъем расширял шину ISA-16 уже до 32 бит. Шина VLbus была малоудачной - логически она подключалась к выводам процессора 486 и умерла вместе с ним. Еще хитрее была шина EISA: с виду совсем как ISA, она имела двойное дно, в глубине разъема скрывался дополнительный ряд контактов. Таким образом, чтобы повысить пропускную способность шины, нужно увеличить ее разрядность - то есть число проводов, по которым передается информация. Однако это удорожает микросхемы обвязки, которые должны соответствовать разрядности шины.

Другой способ - уменьшение количества устройств в домене коллизий. Меньше народу - больше кислороду. Домен коллизий - это та область сети, та шина, в которой только одно устройство может передавать информацию. Если разделить сеть на несколько подсетей, в каждой из них станет свободнее - конкурирующих за доступ к шине устройств станет меньше. Но эти небольшие куски сети придется объединить специальными устройствами - мостами. Когда-то мосты были двухпортовыми и могли объединять только две сети. Ethernet-мост пропускает информационный пакет из одной сети в другую, основываясь на адресе назначения пакета. В архитектуре PC AT на процессоре i286 тоже появились две сети, соединенные мостом: шина ISA, работающая на низкой частоте, и высокоскоростная системная шина, на которой присутствовали всего два устройства - процессор и память. Помимо увеличения скорости, фрагментация позволяет с меньшими проблемами совершенствовать архитектуру. Изменения могут быть локализованы и не будут влиять на те части компьютера, которые находятся «за мостом». Надо лишь позаботиться о том, чтобы мост производил необходимое согласование. Так, 386-й компьютер имел ту же самую шину ISA, что и 286-й, и все платы расширения (звук, видео, диски и т. п.) прекрасно работали и с тем и с другим. Но вот системная шина в 386-м стала революционной! Она была 32-разрядной и по адресам, и по данным и к тому же имела фантастическую частоту 40 МГц. Процессор i386 работал на частоте системной шины, а вот следующий, i486, вызвал новый виток сепаратизма: появилось умножение частоты процессора. Теперь шина компонентов ISA работала на той скорости, к которой привыкла, системная шина - на высокой частоте (33 МГц), а процессор (то есть его внутренняя шина) - на еще более высокой, в несколько раз превышающей частоту системной шины (например, i486DX3/100 МГц).

Это третий способ повышения пропускной способности шины - увеличение ее тактовой частоты.

Наличие активных (полупроводниковых) и реактивных (паразитных емкостей) компонентов определяет предельную частоту для данной конфигурации проводников. Если частота превышена, переходные процессы при переключениях транзисторов не успевают завершиться за один такт, и это вызывает сбой, 1 и 0 перестают четко различаться по уровню. Кроме того, есть чисто теоретический предел повышения частоты шины, связанный с ее физическими размерами. Например, если шина PCI работает на частоте 66 Мгц, то за один такт электромагнитный импульс пройдет 3*108/66*106 = 4,5 м. А если процессор работает на частоте 2 ГГц, длина его тактовой волны всего 15 см! Столько проходит луч света в вакууме за один такт. Неудивительно, что повышение частоты дается с таким трудом.

То же ограничение есть и в Ethernet-сетях. Даже при наличии усилителей и повторителей домен коллизий не должен превышать 2,5 км, а для 100 Мбит/с Fast Ethernet - всего 210 м. Иначе не удастся вовремя распознать коллизию, и сетевые карты не смогут согласовать очередность передачи. Поэтому чем быстрее шина, тем меньше должен быть ее размер. Это диктует необходимость сегментации и фрагментации локальных сетей и компьютерных шин. Подобно крупной локальной сети, которая состоит из множества сегментов, работающих зачастую на разной скорости, современный компьютер обзавелся целым зоопарком разноскоростных и разновозрастных шин. В такой архитектуре огромную важность приобретают мосты между ними. Современные чипсеты имеют два центра межсоединения шин, их по традиции называют северным и южным мостами. Северный мост, более быстрый, соединяет процессор с оперативной и кэш-памятью, а южный мост отвечает за шины расширения PCI и ISA и интегрированные в материнскую плату устройства - контроллеры дисков, разного рода внешние порты и пр.

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

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

Изменения в топологии произошли на физическом и электрическом уровнях, но на логическом все осталось по-прежнему: сигнал, исходящий от любой сетевой карты, наводняет всю сеть, и только один участник может передавать в каждый момент времени. Шина стала похожа на осьминога, но осталась шиной. Так продолжалось до тех пор, пока фирма Kalpana не выпустила на рынок первый Ethernet-коммутатор.

Удачи на дорогах

Коммутатор - это многопортовый мост, разбивающий сеть на сегменты по числу портов. Он передает входящий сетевой пакет только в тот порт, к которому подключен адресат пакета. Достигается это следующим образом. В любом входящем пакете коммутатор смотрит на исходящий адрес и строит таблицу соответствия: компьютеры с такими-то адресами подключены к такому-то порту. Здесь речь идет о 6-байтных Ethernet-адресах, они же MAC-адреса. Обычно их записывают примерно так: F6:32:0A:С2:95:4D.

Если к порту коммутатора подключен всего один компьютер, то коллизии становятся невозможны, ведь в кабеле на витой паре для передачи и приема пакетов используются разные пары проводов. Это позволяет переключить сетевую карту и порт коммутатора в полнодуплексный режим, и достигнуть одновременной передачи 100 Мбит/с в одном и в другом направлении, то есть всего 200 Мбит/с. Обычно так подключают серверы, к которым идет основной поток обращений. Кроме того, производители сетевого оборудования разработали технологию транкового (многоствольного) подключения. Если вставить в сервер две сетевые карты и соединить их двумя кабелями с двумя портами коммутатора, причем переключить их в полнодуплексный режим, мы получим скорость 400 Мбит/с. Так же можно объединить два коммутатора. Таким образом, на направлениях, требующих бескомпромиссно высокой производительности, выделяется сверхскоростной сегмент, напоминающий системную шину компьютера с частотой 133 МГц. В то же время те сегменты локальной сети, которые не требуют высокой скорости подключения, могут включаться в коммутатор через хаб на скорости 10 Мбит/с, а к хабу может быть подключена совсем уж древняя коаксиальная сеть. Это напоминает южный мост компьютерных чипсетов, который обслуживает низкоскоростные компоненты и всякое старье вроде флоппи-контроллера.

Еще один пример дробления шин - AGP. Он напоминает шину VLbus, которая использовалась для ускорения графики в 486-х компьютерах. Но если VLbus включался прямо в системную шину вместе с памятью и процессором, то AGP является особой магистралью, работающей на своей частоте - 66 МГц. В северный мост современных чипсетов обычно включены процессор, память, AGP-видео и южный мост, то есть всего четыре магистрали. Это уже делает его не мостом, а развязкой, и было бы лучше назвать его коммутатором, однако в новых чипсетах от Intel мосты почему-то называются хабами. Начиная с i810, корпорация Intel продвигает так называемую Accelerated Hub Architecture. На самом деле это окончательный переход от хабов к коммутаторам. Ни один высокоскоростной компонент компьютера больше не конкурирует с другим за доступ к общей шине. Все они подключены к центральному коммутатору выделенными магистралями. Значит ли это, что шина как таковая исчезла из сердца компьютера? Нет, шина исчезнуть не может принципиально. Шина - это просто «места общего пользования» для информации. Как нет квартиры без коридора, дома без подъезда, города без перекрестков, так нет и обмена информацией без шины. Ведь и на дорогах развязка «лист клевера» не уничтожает толкотню перекрестка - она лишь размазывает перекресток на четыре разгонные полосы, где в час пик машинам приходится стоять «в буфере», ожидая просвета, чтобы влиться в движение в нужном направлении.

Кстати, информационные перекрестки имеют преимущество над автомобильными. Машины пересекают перекресток, обычно снижая скорость. А компьютерные перекрестки - шины - могут иметь скорость выше, чем подводящие к ним магистрали, и тогда никаких задержек не возникнет.

В технологии коммутации, будь она на материнской плате или в локальной сети, шина не исчезает, она стягивается, дробится, увеличивается ее частоту и/или разрядность. Обычно коммутаторы устроены подобно матрице, как дорожная сеть Нью-Йорка: «на север с юга идут авеню, на запад с востока - стриты». Если вы въехали в город по авеню, то обязательно попадете на пересечение с нужной вам стрит. Если все перекрестки снабдить развязками или проезжать их с втрое большей скоростью, вы без всякой задержки попадете с любого въезда в город (будем считать ими авеню) на любой выезд - стрит. Матрица квадратная, по числу портов коммутатора, так как каждый порт имеет и въезд и выезд. В компьютерных коммутаторах портов не много, а требования к скорости высокие. В сетевых же коммутаторах Ethernet количество портов велико (минимум 8), и в реальности часто шины не дробят так мелко (их было бы слишком много - 64! А это дорого), а используют, например, иерархию шин, так что пакетам приходится преодолеть несколько перекрестков, прежде чем попасть на нужный выход. Самое главное - не устраивать один большой перекресток-шину, где пересекаются все улицы города, ибо там не избежать пробок и столкновений (коллизий). Так была построена деревня под названием IBM PC XT с ее сонной 8-битной Main Street, но современные компьютерные мегаполисы с их сумасшедшим трафиком должны иметь четко продуманную архитектуру магистралей.

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

Самое узкое место в этом случае - доступ к памяти, так как всем процессорам она постоянно нужна, а пользоваться ею может только один. Одним из решений становится разделение памяти на несколько банков и подключение каждого из них к коммутатору чипсета по отдельной магистрали. Особенно тут полезен RAMBUS, разрядность его шины может быть увеличена путем добавления каналов (это напоминает многоствольное подключение Ethernet, которое я описывал выше). Однако портов существующих высокоскоростных микросхем не хватает, чтобы подключить все процессоры напрямую, поэтому их группируют в шины по четыре. Так устроена мультипроцессорная архитектура Profusion. Хотя процессоры Xeon имеют огромные кэши, что позволяет им долго не толкаться в общем коридоре коммунальной шины, само по себе это становится проблемой. Набрав в кэш пачку данных из оперативной памяти и уединившись в своем гнезде, чтобы их обработать, процессор, конечно, не замечает, что его собрат с другой шины изменил эти же данные в оперативной памяти, и, таким образом, содержимое кэша превратилось в тухлятину. Проблема когерентности кэша - настоящее проклятье многопроцессорных архитектур, поэтому такой интерес вызывает разработка двух процессоров на одном кристалле, с общим кэшем первого уровня.

SCSI

В заключение расскажу еще об одних сетях внутри компьютера, которые, впрочем, частенько вывешиваются за его пределы. Это шины для подключения периферии. Долгожитель среди них - SCSI. Она особенно похожа на «большую» сеть тем, что каждое из восьми устройств, которые к ней можно подключить, должно иметь свой уникальный адрес. А еще свободные концы шины должны быть заглушены терминаторами, как когда-то Ethernet. Большинство SCSI-адаптеров имеют разъемы для подключения шины как внутри компьютера, так и снаружи. Обычно внутри компьютера по SCSI-шине подключаются дисководы (включая CD-ROM), а снаружи - сканер. Но не только. В те времена, когда не существовало дешевой и стандартной локальной сети со скоростью передачи выше 16 Мбит/с, SCSI-шину иногда использовали для соединения двух компьютеров, обеспечивая скорость до 80 Мбайт/с за медные деньги. SCSI-шина может иметь длину до шести метров. Чем не локальная сеть! А некоторые фирмы предлагают преобразователи, позволяющие пробросить SCSI-протокол по оптике на расстояние до километра. Были также попытки построить Linux-кластеры, соединенные по SCSI-шине, однако гигабитный Ethernet вытеснил такие экзотические решения.

Теперь сама SCSI может быть вытеснена новой шиной USB, особенно ее второй, скоростной версией. SCSI-сканеров больше не делают - все перешли на USB. Если разъемы USB окажутся не только снаружи, но и внутри компьютера, они смогут взять на себя подключение и других компонентов, в том числе, например, дисковод CD-ROM. USB - это локальная сеть на столе, протянувшаяся из недр вашей машины.

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

[i42746]

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.