В глубокой древности люди придумали первую модульную систему - кирпичную кладку. Стандартные размеры кирпичей позволяли плотно присоединять их друг к другу в различных комбинациях, создавая стены, карнизы и даже перекрытия. В XVIII веке литовские мастера использовали всего с десяток разновидностей кирпичей, чтобы построить в Вильнюсе костел св. Анны, о котором Наполеон сказал, что если бы он мог поставить зто чудо изящества себе на ладонь, то перенес бы костел в Париж! В машинной технике модульные структуры воплотились сначала в железных дорогах. В более сложных модулях XIX века - вагонах и паровозах - пришлось стандартизировать несколько разнородных характеристик: габариты модулей, ширину рельсовой колеи, стрелки, размеры сцепок, а в дальнейшем - воздушные и електрические межвагонные соединители. Стандартизация, не препятствуя постройке модулей самого разнообразного назначения, позволяет удобно компоновать комплексные поезда, бегущие по магистралям железнодорожной сети. Железная дорога явилась первой открытой (расширяемой) магистрально-модульной системой.
Первые открытые модульные системы
Вскоре проявились и неприятные черты модульной системы, прежде всего живучесть стандарта, если даже он устарел. Когда в 1825 году английский парламент не позволил Джорджу Стефенсону сделать железнодорожную колею шире колеи конных дилижансов, никто не предвидел, что через 150 лет современные рослые люди будут корчиться на коротких полках в купе комфортабельных вагонов. Хорошо бы сегодня сделать вагоны хотя бы на полметра шире, но такие вагоны не пройдут через давно существующие мосты и туннели. Даже небольшое различие в стандартах вызывает крупные потери: когда строили железную дорогу Санкт-Петербург - Москва, выбрали ширину колеи ровно 5 футов или 1520 мм - всего на 85 мм шире европейской колеи, и вот уже более 100 лет при переезде в Западную Европу и обратно приходится менять колесные тележки, поднимая вагоны на домкратах. Изменить устоявшиеся стандарты модулей практически невозможно, они будут жить вечно вместе со своими недостатками. Казалось бы, понимание этого обстоятельства должно было побудить нова торов-разработчиков модульных систем вдумчиво смотреть в будущее, однако и в нашем веке конструкторам не хватает фантазии, чтобы в полной мере провидеть будущую жизнь своих модульных созданий.
В начале XX века модульные формы оказались удобными для электротехнических устройств. В 1922 году инженеры компании Bell Systems для размещения реле и других деталей телефонных станций сконструировали ящики с передней панелью шириной 19 дюймов (482,6 мм), которая оказалась наиболее подходящей для решения их конкретной задачи. Высоту панели можно было наращивать с шагом 1 3/4 дюйма (44,45 мм, или в точности русский вершок!). Через отверстия по сторонам передней панели блоки-модули винтами прикрепляли к двум вертикальным брускам. Такая стойка оказалась очень удобной и для компоновки разнообразной электронной аппаратуры - сначала ламповой, а затем и транзисторной. Габаритные и присоединительные размеры блоков в начале 40-х годов стали международным стандартом де-факто, но лишь в 1969 году были официально закреплены в публикации # 297 Международной электротехнической комиссии. Нужно сказать, что МЭК, признавая только метрическую систему мер, с неодобрением относился к стандартизации размеров с дробными частями миллиметра, этим была обусловлена тридцатилетияя задержка решения. Победила все же международная экономика.
Принятие этого стандарта в СССР не обошлось без казуса. Учитывая, что 19-дюймовые блоки уже в 40-х годах применялись во всем мире, автор этой статьи в 1961 году предложил принять в качестве ГОСТа распространившийся стандарт де-факто, но российские чиновники-стандартизаторы упорно возражали на том основании, что блоки имеют дюймовые размеры, а в СССР принята метрическая система мер. Не понимали чиновники, что выражение "дюймовые размеры" абсурдно, ибо физические размеры существуют независимо от единиц измерения и могут быть выражены в любых мерах - дюймах, миллиметрах или, хотя бы, в вершках. Во Франции и Германии размеры исчислили в миллиметрах, и производства не испытывали затруднений, выпуская аппаратуру в международном стандарте.
В СССР дело тянулось до 1977 года, когда возник международный скандал. Госстандарт пытался заставить страны СЭВ принять для создаваемых миниЭВМ систему размеров с шагом 20 мм. Страны СЭВ, учитывая требования западного рынка, не пошли на подрыв своей экономики и коллективно потребовали от Правительства СССР принять международный стандарт МЭК297(1969) на конструктивы блоков мини-ЭВМ. Пришлось принять стандарт СЭВ-834-77, соответствующий международному МЭК-297. Промедление привело к отставанию приборостроения СССР от мирового уровня, следствием явились задержки в научных исследованиях и ухудшение технологического контроля на производствах.
История с КАМАКом и "Вектором"
В 60-х годах развитие вычислительной техники привело к необходимости стандартизировать не только размеры модулей, но и каналы связи между ними. Это было сделано к 1969 году, когда опубликовали европейский стандарт EUR-6100 на модульную систему КАМАК, разработанную ядерными электронщиками ведущих европейских институтов для оснащения сложных экспериментов, например, на ускорителях атомных частиц. Одно из прочтений слова САМАС - Computer Applications for Measurements And Control - применение компьютеров для измерений и управления.
В электронной системе модулем является печатная плата с узкой передней панелью и плоским многоконтактным разъемом на противоположной стороне платы. Модули вставляют в каркас с направляющими, в которых скользит плата. Задняя стенка каркаса выполнена также в виде платы с ответными частями разъемов, которые соединены печатными или навесными проводниками, образующими электрические линии магистрали для передачи кодированной информации. По специально назначенным проводникам в модули подается электрическое питание.
Все присоединительные размеры модулей и каркасов строго стандартизованы: габариты и толщина печатных плат модулей, ширина канавок в направляющих и расстояние между ними, расположение контактов и другие размеры. Определены длительности и амплитуды электрических сигналов, а также напряжения питания модулей. Впервые в международной практике были стандартизованы не только размеры, но и логический протокол -- правила передачи информации по линиям магистрали.
В дорогостоящей магистрали КАМАК линии были использованы весьма нерационально: 24 линии для чтения, 5 для передачи команд и только 4 линии были определены для передач всего-навсего 16-ти адресов в модуле. Все линии начинались в крейт-контроллере - крайнем правом модуле, который служил для связи магистрали каркаса-крейта с внешним мини-компьютером, работающим в ином логическом протоколе (crate по-английски означает плоский ящик с отделениями, например, ящик стекольщика). Налево в магистраль контроллер передавал для 24-х модулей информацию, выработанную компьютером, а направо шла из модулей необработанная, но уже закодированная информация, отображающая величины, измеренные датчиками в эксперименте. Двунаправленность интерфейсного контроллера была отображена в эмблеме системы КАМАК в виде двуликого бога Януса.
Слово интерфейс (interface - между лицами) применялось первоначально для обозначения совокупности аналоговых связей между выводами на лицевых панелях приборов. Зти связи служат для передачи электрических сигналов, величина которых плавно отображает измеряемую первичную физическую величину, например, для передачи напряжения, пропорционального давлению в котле, контролируемому датчиком. В системе КАМАК все аналоговые сигналы также передаются по проводам и кабелям, соединяющим передние панели модулей. В дальнейшем понятие интерфейс перешло на блоки перекодирования информации, передаваемой между устройствами с различными логическими протоколами.
Через три-четыре года после публикации стандарта десятки фирм в разных странах выпускали модули КАМАК более трехсот типов как для экспериментов, так и для контроля и управления технологическими процессами на производствах. В Советском Союзе ядерные электронщики сразу же оценили новую систему, и уже в 1970 году ведущие лаборатории - Объединенный институт ядерных исследований, Ленинградский и Новосибирский институты ядерной физики - начали разработку модулей в стандарте КАМАК для своих нужд. Однако руководство промышленного Союзного НИИ приборостроения, ответственного за обеспечение страны аппаратурой для регистрации ядерных излучений, решило выпускать модульную аппаратуру "Вектор" с логическим протоколом КАМАК, но в модулях собственной конструкции в "миллиметровых размерах". Несоответствие размеров модулей международным стандартам МЭК-297 и EUR-6100 привело к тому, что "Вектор" не выдержал конкуренции с системой КАМАК и более ста типов разработанных модулей были практически не востребованы. История с "Вектором" не только затянула стандартизацию системы КАМАК в СССР (соответствующий ГОСТ 26.201-80 был принят лишь в 1980 году в чрезвычайно искаженном виде), но и воспрепятствовала промышленному выпуску аппаратуры КАМАК, которую делали лишь институты своими малыми силами, а в основном покупали в Польше и Венгрии.
Подобно железнодорожным системам, электронные модульные системы также долговременны. Если модули достаточно широко распространились и их количество превзошло некоторый критический, то даже морально устаревшую аппаратуру оказывается выгодным эксплуатировать. Большой парк накопившихся разнообразных модулей позволяет в течение нескольких дней, а то и часов, скомпоновать систему с новыми характеристиками. Системе КАМАК уже 25 лет, но она все еще используется как с персональными ЭВМ, так и с микропроцессорами, встроенными непосредственно в контроллер.
Микропроцессоры в модулях
Создатели системы КАМАК в конце 60-х годов сами начали применять только что появившиеся интегральные микросхемы, однако у них не хватило смелости предположить, что в 1972 году в электронике начнется революция - появится микропроцессор. Неудобства магистрали КАМАК заставили электронщиков искать решения, позволяющие эффективно использовать качественно новую интегральную схему. Введение микропроцессоров в модули превращало их в микрокомпьютеры, а крейты в многопроцессорные системы, которые нуждаются в емкой памяти с большим количеством адресов. 16 адресов в модуле КАМАК оказались совершенно недостаточными, поэтому ведущие электронные фирмы Motorola и Intel к середине 70-х годов создали модульные системы третьего поколения Versabus и Multibus, магистрали которых содержали 16, а затем и 20 адресных линий, что обеспечивало емкость системы примерно 1 млн. адресов.
Потребовались и новые функции в логическом протоколе. Некоторые из процессорных модулей выполняли самые важные задачи в системе, а другие включались в работу реже, поэтому пришлось устанавливать приоритеты модулей на право занятия магистрали, а также разрешать конфликтные ситуации, когда два или больше модулей одновременно пытаются занять магистраль. Для этого потребовались дополнительные линии. Чтобы ограничить общее количество линий, стали использовать одни и те же линии для передачи как адресов, так и данных: сначала передавали адрес (несколько битов которого являются адресом модуля), а затем линии переключали на регистр данных. Эти новшества заложили основы магистрально-модульных многопроцессорных информационно-измерительно-управляющих систем - МММИИУС.
Неудачная ПРОСЭМ
Учитывая большое значение МММИИУС для науки, промышленности и вооружений, спецслужбы США постарались подорвать развитие МММИИУС в Советском Союзе, организовав крупную научно-техническую диверсию против нашей страны. В журнале Naval Engineers Journal, том 86, N 5 на стр. 79-91 в октябре 1974 года был опубликован доклад, якобы всерьез представленный на годичной конференции Общества военно-морских инженеров США. В докладе "Программа разработки стандартных конструкций аппаратуры для военно-морского флота США" описаны весьма неудобные КОНСТРУКЦИИ модулей и блоков, но никак не упомянут логический протокол передачи кодированной информации. Было всячески подчеркнуто, что изложены лишь результаты НАЧАЛА работ, что создание системы конструктивов будет широко развернуто в дальнейшем. В судостроительной и радиопромышленности СССР "клюнули" на провокацию и развернули "ПРОграмму Системы Электронных Модулей" - ПРОСЭМ, но лишь в части конструктивов, не стандартизуя сразу же и логический протокол, который получился слабым и различным в разных конструкторских бюро.
Между тем, именно в тот же период к 1974 году были разработаны упомянутые системы Versabus и Multibus, а фирма Digital Equipment создала для миникомпьютеров магистрально-модульную систему Q-bus, в которой все было стандартизовано. Этот стандарт пришлось, в конце концов, принимать и нам в виде ГОСТ 26765.51-86 "Интерфейс магистральный параллельный МПИ системы электронных модулей", но принят ГОСТ был лишь в 1986 году!
Поиски 80-х годов
Для завоевания мирового рынка Motorola быстро перевела свою систему на европейские конструктивы, назвав ее Versabus Module Europe bus, сокращенно VME, а Intel в европейских же конструктивах выпустил новую систему Multibus-II, использовав новшества, реализованные в системе Fastbus, созданной ядерными электронщиками США к 1982 году. Во всех трех системах слова адреса и данных увеличены до 32-х разрядов, что обеспечило емкость общей памяти системы в 4 миллиарда адресов. VME первой вышла на международный рынок, а более совершенная система Multibus-II опоздала и не получила должного распространения, хотя эту аппаратуру начали выпускать более 100 фирм. Аппаратуру VME и ее улучшенные модификации выпускают более трехсот фирм в разных странах, несмотря на архаичность базовой структуры системы. В России собирают модули VME, но на иностранных комплектующих и в небольших объемах.
В персональных компьютерах тоже есть магистраль, обслуживающая процессор, платы памяти и устройства ввода-вывода информации. В компьютере PS/2 фирмы IBM к магистрали "Microchannel" могут быть присоединены до восьми 16-разрядных процессорных модулей или до четырех 32-разрядных модулей. Архитектура "Microchannel" специализирована на структуру микропроцессоров Intel.
В стандарте Fastbus была определена локальная информациойная сеть произвольной конфигурации, работающая в логическом протоколе, впервые едином для модулей, крейтов и сети. Скорость передачи информации через магистраль доведена до рекордного на те времена значения 80 Мбайт/сек, для этого длительность фронтов импульсов пришлось уменьшить до 10 нс - в 10 раз короче, чем в системе КАМАК. Создавали систему Fastbus люди академического склада, они не позаботились разработать подстандарт на дешевую подсистему - более медленную и с меньшим числом разрядов, поэтому Fastbus применяется, главным образом, в самых сложных физических экспериментах. На основе международных стандартов Fastbus в России выпущены ГОСТ 34.340-91 и ГОСТ 34.341-93 под научной редакцией автора этой статьи. В первый стандарт добавлено приложение, определяющее малые крейты и модули. Второй ГОСТ содержит алгоритмы для программирования аппаратурных систем Фастбас. В России система Фастбас, увы, безнадежно опоздала.
Развитие МАГИСТРАЛЬНО-модульных систем завершает разработка с пышным названием Futurebus ("магистраль будущего") по стандарту США 1991 года. В этой системе сделано одно принципиальное добавление, учитывающее особенность многопроцессорных компьютеров. В таких системах каждый микропроцессор имеет в своем распоряжении вспомогательную кэш-память (слово cache в английском языке означает "небольшой склад чего-либо, удобный для частого использования"). Во время выполнения параллельных ветвей программы у одного из процессоров появляется промежуточный результат, необходимый другим процессорам для дальнейшей работы. Этот результат нужно быстро передать в кэш-памяти нуждающихся процессоров. Процедура таких передач как раз и предусмотрена в стандарте Futurebus.
Отказ от магистрали - РСИ
Прогресс технологии микроэлектроники привел к тому, что в наше время размеры элементов в микросхеме (транзисторов, резисторов, конденсаторов) удалось уменьшить до 0.6-0.8 мкм, а число элементов в одном кристалле увеличить до нескольких миллионов. Например, микропроцессор Pentium содержит 3 млн. транзисторов, имеет собственную встроенную кэш-память и работает с частотой до 100 МГц. Если несколько таких процессоров присоединены к одной магистрали общего пользования, то их работа становится неэффективной: процессор, быстро подготовивший промежуточный результат, занимает магистраль для передачи данных другому процессору, а остальные процессоры вынуждены простаивать в течение относительно медленной передачи. Магистраль, бывшая в 70-80-х годах верхом достижений, в концу 80-х годов стала узким местом, нужно было искать новое решение.
Специалисты, создававшие Fastbus и Futurebus+, в 1988 году объединились под руководством доктора Д.Б.Густавсона для создания системы, способной решить новые задачи. Была начата разработка стандарта, известного сейчас как ANSI/IEEE Std 1596-1992 Scalable Coherent Interface - SCI, в русском переводе - Расширяемый Связный Интерфейс, РСИ. Деятельность многонациональной рабочей группы из 96-ти специалистов поддержали университеты и фирмы разных стран - всего 54 организации. Не реже, чем раз в квартал участники разработки собирались для обсуждения промежуточных результатов и определения дальнейших шагов.
Принцип магистрали общего пользования был отклонен в начале исследований. Решили, что в новой системе процессорные узлы следует соединять индивидуальными связями, причем информация должна передаваться по каналам связи только в одном направлении. Узел получает информацию из входного канала в дешифратор адреса. Если сообщение адресовано данному узлу, оно через дешифратор поступает во входную промежуточную память FIFO с очередью типа "первым вошло и первым вышло" и далее проходит на прикладные схемы узла для обработки, например, микропроцессорами и транспьютерами. Если сообщение адресовано иному узлу, оно через проходную FIFO и переключатель передается в выходной канал к следующему узлу. Если ранее уже началась выдача обработанной информации из выходной FIFO, передача проходящей информации задерживается до окончания выдачи. Можно заметить, что узлы РСИ действуют подобно железнодорожному узлу: если со станции выходит поезд и выходной путь занят, то приходящий поезд направляют на запасной путь для отстоя, если же состав адресован именно этому узлу, то его вагоны сортируют и подают на разгрузочные пути.
Последний из цепочки узлов РСИ соединяется с первым узлом - образуется колечко из нескольких узлов и связей. Наименьшее колечко состоит из двух узлов. Кольцеобразная структура позволяет любому узлу получать подтверждение в приеме своего сообщения. Для этого адресованный узел сразу же после приема сообщения вырабатывает эхо-сообщение и передает его в выходной канал, чтобы оно прошло по колечку к узлу, выдавшему первичное сообщение. Предусмотрены специальные узлы-агенты, имеющие выходы на боковые каналы, для соединения с другими колечками иными устройствами, выполняемыми в других стандартах. При помощи интерфейсных агентов конкретная система может быть расширена добавлением новых колечек с образованием сети произвольной конфигурации. РСИ является открытой системой, все составляющие которой работают в едином логическом протоколе и не требуют чуждых интерфейсов.
Слово "связный" в названии системы означает, что в стандарте предусмотрены логические средства для образования связной группы кэш-памятей, получающих идентичную обновленную информацию. Связность устанавливается программно при помощи кодовуказателей адресов тех узлов, кэши которых должны войти в связную группу. Затем процессор, создавший новую информацию, быстро выполняет ее запись в основную память и в группу кэшей.
Живой человеческий язык оказался недостаточно строгим для точного описания сложных логических связей и алгоритмов их использования в работе узла. Полный логический протокол описан в стандарте не только на английском языке, но и на языке программирования Си в прилагаемой к стандарту дискете. Последнее позволяет моделировать на компьютерах поведение вариантов аппаратурных систем в процессе их разработки. Описание на английском языке служит для учебных целей и интуитивного постижения "духа" системы. Логическую сложность современной многопроцессорной модульной системы может характеризовать объем описания логического протокола - в стандарте РСИ это 200 страниц со 184 рисунками. Конструктивы и электрические характеристики описаны всего лишь на 38 страницах с 26 рисунками. К настоящему времени логический протокол материально воплощен в сверхбольших интегральных схемах, выпускаемых несколькими фирмами в США и Норвегии.
Система РСИ модульная, но не магистральная. Поскольку магистраль общего пользования в ней не потребовалась, из аббревиатуры МММИИУС исчезла одна буква М. Физический облик ММИИУС в стандарте РСИ может быть очень разнообразным: от персональной рабочей станции до суперкомпьютера, содержащего тысячи микропроцессоров и транспьютеров, от одиночного персонального компьютера в комнате до информационной сети протяженностью десятки километров, объединяющей множество компьютеров и измерительно-управляющих устройств. Для компановки аппаратурных систем в стандарте определены каналы связи двух типов. Для передачи сообщений между модулями в стандартизованном каркасе служат 18 параллельных печатных линий на задней плате. Передачи между обособленными узлами выполняются последовательными кодами - по коаксиальному кабелю на расстоянии десятков метров или по оптоволоконному кабелю на километры и более. Скорости передач рекордные: при параллельной передаче 1 Гбайт/сек на частоте 250МГц, при последовательной - 1 Гбит/сек.
Объем полного адреса 64 разряда, причем наиболее значимые 16 разрядов выражают адрес узла в целом, поэтому в аппаратурной системе максимальное число узлов может быть равно 216 = 65536. Остальные 48 адресных разрядов определяют допустимое число адресов в каждом узле - около 280 триллионов. Если в каждом адресе хранить стандартное 64-разрядное слово данных, то максимальный объем информации в узле составит 1,8 триллиона авторских листов по 40000 знаков или 3,8 миллиарда книг "Советского энциклопедического словаря". На практике полный объем памяти не используют, но запас нужен для удобства программирования. Стандартом предусмотрены и малые дешевые системы с 32-разрядным адресом. В 1995 году РСИ станет международным стандартом.
Перевод базового стандарта на русский язык выполнен при участии и под редакцией автора этой статьи в Российском Федеральном ядерном центре - ВНИИ технической физики в г. Снежинске (бывший Челябинск-70). В дополнение к базовому стандарту в США подготовлены подстандарты, рекомендующие оптимальные конфигурации аппаратурных систем, нацеленных на усиление какого-либо параметра: при тысячах микропроцессоров, при низковольтных сигналах и маломощном питании, для передач больших потоков данных, для систем реального времени. В последнем, например, случае задают: объем информации, вводимой в систему, объем ее обработки и время, допускаемое для обработки и выдачи результатов. Определяют: минимальное число процессоров и наилучшую структуру системы, выполняющей поставленную задачу.
В XXI век
Создатели РСИ отчаянно спешили, чтобы завершить разработку базового стандарта до того, как менее совершенная аппаратура Futurebus+ наберет "критическую массу" и ее начнут эксплуатировать много пользователей. Система Futurebus+ опоздала: в начале 1994 года в США образована Ассоциация пользователей, разработчиков и производителей аппаратуры РСИ. Проявилось понимание того, что РСИ обеспечит выполнение не только самых сложных расчетов в науке и высоких технологиях, но позволит экономно и логически относительно просто реализовать надежные информационные сети, в частности, сети в самообучающихся системах искусственного интеллекта. Оптимизация аппаратуры РСИ в реальном времени позволяет создать безэкипажный танк, самолет и корабль, способные действовать самостоятельно. РСИ принят в качестве базовой системы в военно-воздушных силах США и в военно-морских флотах США, Канады.
Благодаря агентам-мостам, аппаратура РСИ будет соединена со старыми магистрально-модульными системами и уже существующими сетями. Мост на ВМЕ уже создан, а в ближайшие годы система Расширяемый Связный Интерфейс станет мостом в XXI век - век информатики, основанной на модульных открытых информационных сетях.