Введение

Неблокирующий минимальный коммутатор – это устройство, способное соединять N входов с N выходами в любой комбинации. Наиболее известное применение таких коммутаторов – в телефонных станциях. Термин "неблокирующий" означает, что при отсутствии дефектов он всегда может установить соединение. Термин "минимальный" означает, что он содержит наименьшее возможное количество компонентов, а следовательно, и минимальные затраты. Исторически, в телефонных коммутаторах соединения между абонентами осуществлялись с помощью больших и дорогих блоков электромеханических реле – коммутаторов Строугера. Основное математическое свойство коммутаторов Строугера заключается в том, что для каждого входа коммутатора существует ровно один выход. Значительная часть математической теории коммутационных схем направлена на использование этого свойства для сокращения общего числа коммутаторов, необходимых для соединения комбинации входов с комбинацией выходов. В 1940-х и 1950-х годах инженеры Bell Labs начали серию углубленных математических исследований, посвященных методам уменьшения размера и стоимости "коммутационного поля", необходимого для реализации телефонной станции. Один из первых успешных математических анализов был проведен Чарльзом Клосом (ʃaʁl klo), а коммутационное поле, построенное из меньших коммутаторов, называется сетью Клоса.

Переключатель

Перекрестный коммутатор обладает свойством соединения N входов с N выходами в любой комбинации «один к одному», что позволяет соединить любого вызывающего абонента с любым свободным принимающим абонентом. Это свойство получило техническое название «неблокируемость». Благодаря неблокируемости, коммутатор всегда мог завершить вызов (свободному принимающему абоненту), что обеспечивало максимальную доступность услуги. Однако, перекрестный коммутатор реализует это за счет использования N² (N в квадрате) простых однополюсных однобросковых переключателей (SPST). Для больших N (а практические требования к телефонным коммутаторам подразумевают большие значения N) такой рост числа переключателей был слишком дорогим. Кроме того, большие перекрестные коммутаторы имели физические ограничения. Сам коммутатор требовал слишком много места, а металлические шины, содержащие контакты переключателей, становились настолько длинными, что прогибались и становились ненадежными. Инженеры также заметили, что в любой момент времени каждая шина перекрестного коммутатора осуществляла только одно соединение. Остальные контакты на этих двух шинах оставались неиспользованными. Это указывало на то, что большая часть коммутационной матрицы перекрестного коммутатора использовалась неэффективно. Очевидным способом эмуляции перекрестного коммутатора было найти способ построить его из более мелких перекрестных коммутаторов. Если перекрестный коммутатор можно эмулировать некоторой структурой из более мелких перекрестных коммутаторов, то эти более мелкие коммутаторы, в свою очередь, также можно эмулировать еще более мелкими. Это позволило бы сделать коммутационную матрицу очень эффективной и, возможно, даже создавать ее из стандартизированных компонентов. Такая структура называется сетью Клоса.

Скрыватели с трехслойным соединением

Следующим подходом было разделить перекрестную коммутационную матрицу на три уровня меньших перекрестных коммутационных матриц. Будут "входной уровень", "средний уровень" и "выходной уровень". Меньшие коммутационные матрицы менее громоздки, более надежны и, как правило, проще в изготовлении, а следовательно, и дешевле. Телефонная система должна устанавливать соединение "один к одному". Интуитивно это кажется, что количество входов и выходов всегда может быть одинаковым в каждой подматрице, но интуиция не доказывает, что это возможно, и не указывает, как это сделать. Предположим, мы хотим создать перекрестную коммутационную матрицу 16x16. Проект может включать 4 подматрицы на входной стороне, каждая с 4 входами, что в сумме дает 16 входов. Кроме того, на выходной стороне мы также можем использовать 4 выходные подматрицы, каждая с 4 выходами, что в сумме дает 16 выходов. Желательно, чтобы конструкция использовала как можно меньше проводов, поскольку провода стоят денег. Минимальное количество проводов, которые могут соединить две подматрицы, – это один провод. Таким образом, каждая входная подматрица будет иметь один провод к каждой средней подматрице. Кроме того, каждая средняя подматрица будет иметь один провод к каждой выходной подматрице. Вопрос в том, сколько средних подматриц необходимо и, следовательно, сколько проводов в общей сложности должно соединять входной уровень со средним уровнем. Поскольку телефонные коммутаторы симметричны (звонящий и вызываемый абонент взаимозаменяемы), та же логика применима к выходному уровню, а средние подматрицы будут "квадратными", имея одинаковое количество входов и выходов. Количество средних подматриц зависит от алгоритма, используемого для распределения соединений между ними. Основной алгоритм управления трехслойной коммутационной матрицей заключается в поиске средней подматрицы, которая имеет неиспользованные провода к необходимым входным и выходным коммутационным матрицам. Как только подходящая средняя подматрица найдена, подключение к правильным входам и выходам во входных и выходных коммутационных матрицах становится тривиальным. Теоретически, в данном примере достаточно всего четырех центральных коммутационных матриц, каждая с ровно одним соединением с каждой входной коммутационной матрицей и одним соединением с каждой выходной коммутационной матрицей. Это называется "минимальной коммутационной матрицей", и управление ею было главной целью исследований Bell Labs. Однако небольшая работа с карандашом и бумагой покажет, что легко привести такую минимальную коммутационную матрицу в состояние, когда ни одна средняя подматрица не имеет соединения как с необходимой входной, так и с необходимой выходной коммутационной матрицей. Для частичной блокировки коммутационной матрицы достаточно всего четырех вызовов. Если входная коммутационная матрица наполовину заполнена, она имеет соединения через две средние коммутационные матрицы. Если выходная коммутационная матрица также наполовину заполнена соединениями из двух других средних коммутационных матриц, то не остается ни одной средней коммутационной матрицы, которая могла бы обеспечить путь между этим входом и выходом. По этой причине считалось, что для "просто связанной неблокирующей коммутационной матрицы" 16x16 с четырьмя входными и четырьмя выходными подматрицами требуется 7 средних коммутационных матриц; в худшем случае почти заполненная входная подматрица будет использовать три средние коммутационные матрицы, почти заполненная выходная подматрица будет использовать три другие, а седьмая гарантированно будет свободна для последнего соединения. По этой причине иногда такое расположение коммутационной матрицы называют "2n-1 коммутационной матрицей", где n – количество входных портов входных подматриц. Пример намеренно мал, и в таком небольшом примере реорганизация не позволяет существенно сэкономить коммутационные матрицы. Перекрестная коммутационная матрица 16x16 имеет 256 контактов, в то время как минимальная коммутационная матрица 16x16 имеет 4x4x4x3 = 192 контакта. По мере увеличения чисел экономия возрастает. Например, для телефонной станции на 10 000 линий потребуется 100 миллионов контактов для реализации полной перекрестной коммутационной матрицы. Но три уровня из 100 подматриц 100x100 потребуют всего 300 подматриц с 10 000 контактов или 3 миллиона контактов. Эти подматрицы, в свою очередь, могут быть изготовлены из 3x10 перекрестных коммутационных матриц 10x10, в общей сложности 3000 контактов, что составляет 900 000 для всей станции; это гораздо меньше, чем 100 миллионов.

Практические реализации коммутаторов

Как только алгоритм был обнаружен, инженеры и менеджеры Bell System начали его обсуждать. Через несколько лет инженеры Bell приступили к разработке электромеханических коммутаторов, которыми можно было управлять с его помощью. В то время компьютеры использовали вакуумные лампы и были недостаточно надежны для управления телефонной системой (коммутаторы телефонной системы критически важны для безопасности, и они рассчитаны на незапланированный отказ примерно раз в тридцать лет). Компьютеры на реле были слишком медленными для реализации алгоритма. Однако вся система могла быть спроектирована таким образом, чтобы при достижении необходимой надежности компьютеры могли быть установлены на существующие коммутационные системы. Создать отказоустойчивые композитные коммутаторы несложно. При отказе подкоммутатора вызывающие абоненты просто перезванивают. Таким образом, при каждом новом соединении программное обеспечение пытается использовать следующее свободное соединение в каждом подкоммутаторе, а не повторно использовать только что освободившееся. Новое соединение с большей вероятностью будет успешным, поскольку использует другую схему. Следовательно, в загруженном коммутаторе, если на конкретной PCB нет активных соединений, она является отличным кандидатом для тестирования. Существует известный алгоритм для тестирования или изъятия из эксплуатации конкретной печатной платы. По мере уменьшения количества соединений, проходящих через подкоммутатор платы, программное обеспечение направляет больше тестовых сигналов через этот подкоммутатор на измерительное устройство и считывает результаты измерений. Это не прерывает текущие вызовы, которые продолжают работать. В случае неудачи теста программное обеспечение определяет точную неисправную плату, считывая информацию об отказе с нескольких внешних коммутаторов. Затем оно помечает свободные цепи в неисправной схеме как занятые. По мере завершения вызовов, использующих неисправные схемы, эти цепи также помечаются как занятые. Через некоторое время, когда через неисправные схемы не проходит ни одного вызова, компьютер загорает индикатор на плате, требующей замены, и техник может ее заменить. Вскоре после замены следующий тест проходит успешно, соединения с восстановленным подкоммутатором помечаются как "свободные", и коммутатор возвращается к нормальной работе. Диагностика ранних электронных коммутаторов Bell фактически зажигала зеленый индикатор на каждой исправной печатной плате и красный индикатор на каждой неисправной. Печатные схемы были разработаны таким образом, чтобы их можно было извлекать и заменять, не отключая весь коммутатор. В конечном итоге был создан Bell 1ESS. Управлением осуществлялся процессор, известный как Центральный контроллер (CC) – двойной компьютер с архитектурой Гарварда, работающий в такт и использующий надежную диодно-транзисторную логику. В процессоре 1ESS два компьютера выполняли каждый шаг, взаимно контролируя друг друга. В случае расхождения они проводили самодиагностику, и правильно работающий компьютер брал на себя управление коммутатором, в то время как другой отключался и запрашивал ремонт. В 2012 году коммутатор 1ESS все еще использовался в ограниченном масштабе и демонстрировал подтвержденную надежность менее одного часа незапланированного простоя за тридцать лет эксплуатации, что подтверждало правильность его конструкции. Первоначально он был установлен на магистральных линиях связи в крупных городах – наиболее загруженных участках каждой телефонной станции. В первый День матери, когда крупные города использовали этот коммутатор, система Bell установила рекорд общей пропускной способности сети как по количеству завершенных вызовов, так и по количеству вызовов в секунду на коммутатор. Это привело к рекордному доходу на один канал связи.