УДК 621.395.74
Е. А. Барабанова, Н. С. Мальцева
АЛГОРИТМЫ РАБОТЫ КОММУТАЦИОННЫХ СИСТЕМ С ПАРАЛЛЕЛЬНОЙ НАСТРОЙКОЙ
Введение
При выполнении сложных вычислений с использованием большого числа переменных используются многопроцессорные вычислительные системы (МВС), отличающиеся высокой производительностью. В настоящее время существует большое множество вариантов построения архитектур МВС, но их слабым местом является способ организации связей между процессорами системы. Он влияет на скорость обмена информацией и на производительность всей системы в целом. Похожая проблема существует и в сетях передачи данных (СПД), т. к. от быстродействия коммутаторов зависит пропускная способность сети в целом.
Используя различные алгоритмы настройки коммутационных систем (КС), осуществляющих взаимодействие процессоров в МВС и портов коммутаторов СПД, возможно устранить этот недостаток [1].
Алгоритм идентификации свободных каналов данных
Для установления необходимых соединений входов с выходами пространственной КС необходимо изменить состояния некоторых или всех элементов коммутационного поля. Этот процесс называется настройкой КС или процессом установления соединений.
Важную роль в процессе функционирования КС играет устройство управления. Устройство управления выполняет следующие функции:
— прием, переработка и реализация алгоритма настройки КС;
— поиск, разборка и фиксация соединительного пути;
— контроль неисправностей и их устранение (обход).
В КС с параллельной идентификацией свободных каналов данных роль устройства управления выполняют микроконтроллеры.
Алгоритм идентификации свободных каналов данных реализуется в контроллерах; сведения, представленные в виде массива данных о свободных и занятых ячейках коммутации, хранятся в оперативном запоминающем устройстве контроллеров. Массив данных, содержащий сведения о свободных и занятых ячейках системы, динамически обновляется. Такой массив состоит из множества ячеек. Число ячеек по горизонтали равно числу коммутационных блоков (КБ) выходного каскада Х, число ячеек по вертикали равно числу КБ промежуточного каскада Я. В каждую ячейку массива записан номер КБ входного каскада и номер входа в этот КБ
0 (Ь, р), где Ь - номер КБ входного каскада; р - номер входа в этот КБ.
Массив данных представлен на рис. 1.
1
2
Я
Рис. 1. Массив данных о состоянии коммутационной системы
Х-1
0(1, 2) 0(1, 2) 0(1, Х-1) 0(1, X)
0(2, 1) 0(2, 2) 0(2, Х-1) 0(2, X)
ар, 1)
ар, 2)
ар, X)
2
X
Алгоритм поиска свободных каналов данных представляет собой вычисление номеров входов в коммутационные элементы всех звеньев КС и состоит из нескольких этапов:
1) формируется массив данных, содержащий сведения о состоянии КС. При этом многозвенная система условно считается трёхзвенной, в которой центральные каскады заменены одним звеном. В массиве не существует ячеек с одинаковым значением параметра Ь и разным значением параметра р;
2) массив проверяется на наличие в одной строке элементов с одинаковым значением Ь. Если такой элемент находится, то он переписывается на строку ниже, и так до тех пор, пока не найдётся строка, не содержащая подобный элемент. Таким образом, устраняется возможность блокировки в КС, когда несколько информационных сообщений должны передаваться с одного и того же коммутационного элемента входного звена через один и тот же коммутационный элемент промежуточного звена на выход системы;
3) аналогичные действия проводятся для центрального звена КС. Заполняется массив данных для трёх промежуточных звеньев. При этом по горизонтали откладывается количество КБ выходного каскада (в данном случае это К). По вертикали откладывается число КБ среднего звена К. Входными и выходными данными считаются результаты, полученные при выполнении предыдущего пункта. В итоге вычисляются элементы параллельного идентификатора, определяющего путь через все звенья системы. В случае 7-9 и т. д. звеньев в системе количество анализируемых массивов увеличивается. Количество массивов всегда на 2 меньше, чем общее число звеньев в системе;
4) контроллеры обмениваются информацией об изменениях состояний массивов и передают параллельные идентификаторы в КС.
Разработанный алгоритм представлен на рис. 2.
Рис. 2. Алгоритм параллельной идентификации свободных каналов данных
В результате реализации данного алгоритма в КС подаётся параллельный идентификатор, состоящий из номеров КБ всех каскадов, кроме выходного и номера входа в КБ входного каскада.
Алгоритм параллельного поиска каналов связи
В КС с параллельным поиском свободных каналов связи используется алгоритм настройки, основанный на теоретико-множественной модели.
Для задания алгоритма настройки используется матричный способ задания структуры КС. Алгоритм описывает процесс настройки в трёхкаскадной КС с параллельным поиском каналов связи [2].
Зададим трёхмерную матрицу ЛР, в которую записываются команды коммутации, поступающие на выходы КС. Одно измерение матрицы соответствует номерам выходов КС (и), второе - номерам КБ промежуточного каскада (у), третье - номерам КБ выходного каскада (г). Очевидно, что матрица ЛР моделирует множество МР
В каждую позицию матрицы, соответствующую одному и тому же номеру выхода КС ии расположенную на пересечении строки у = 1,У и столбца ъ = 1, Z, записываются элементы а(у, г) = (х, п), представляющие собой команды коммутации, однозначно определяющие входы, с которым должен быть соединён один из выходов КБ г = 1, Z и т =1, М, где п - идентификатор входа в пределах х-го КБ входного каскада.
Распределение команд коммутации по КБ промежуточного каскада будет сводиться к построению двумерной матрицы команд коммутации ЛК, соответствующей одному из состояний КС (а именно в данный такт настройки).
а11 аи а1г
% аі] аіг
аг1 аг] агг
= Л
к
При этом все элементы матрицы АК будут удовлетворять следующим ограничениям: число записей в каждом столбце не может превышать числа т, т. е. количества выходов в одном КБ
выходного каскада; одинаковые записи не могут более одного раза встречаться в одном столбце.
. *
Введём матрицу АК .
* * *
а 11 а 1 а 1г
* * *
а ц а ] а іг
* * *
а г1 а Г а
гк
Матрица А* отличается от матрицы АК тем, что ее элементы а (у, 2) = (х, п) должны удовлетворять следующему третьему ограничение: в матрице в одной строке не могут существовать два элемента такие, что при х, = х, может быть п Ф п. Это означает, что в этой матрице не допускаются пересечения каналов связи в промежуточном каскаде.
Каждый шаг работы алгоритма будет идентифицироваться параметром 1=1, Ь . Введенные выше матрицы на каждом шаге алгоритма будут обозначаться через АР (/), АК (I) и А*К (/).
Матрицы Ак и А*к моделируют множества £(*) и £**) соответственно.
Обозначим через А*К матрицу, ненулевые элементы которой на шаге I принадлежат также матрице АК , но не принадлежат матрице А*К.
*к
** ** **
а 11 а 1] N *а
** ** **
а ц а і- а N
** ** **
а 1 *а *а
/-V Л о* \ о**
Очевидно, что матрица Лк моделирует множество ^(/)\ ^(/).
*
Начальной информацией для работы алгоритма будет программа коммутации Р, заданная в виде Р = {((пі хі), (ті гі))}, где т =1, М - номер выхода в соответствующем КБ выходного каскада.
Зададим функцию начального распределения команд коммутации по КБ промежуточного каскада следующим образом:
а (у г) = |(піХі), если "Рі Є Р((г = N ) & (у = У (тг ))); (1)
[ 0 в других случаях.
Под X обозначим любую функцию с областью определения на {m: m = i, К/Z } и областью значений на {y:y = 1, Y }. Для определенности примем, что {m} < {y}, а функция X является тождественной, т. е. y = m.
Для определения h выделим в каждой строке y, матрицы Л^^ такие номера столбцов, которые обладают следующим свойством:
3 zs ((Xi = xs) ^ (zs > Zi) & " Zk ((zk < Zi) ^ (Xi Ф Xk))). (2)
Назовем такое значение z минимальным индексом столбца для записей одной строки yi с равными значениями x и обозначим его через min z [yi, x,]. Тогда функцию выделения непере-секающихся связей можно определить следующим образом:
а1 _1(y,, zi), если $zi,z} (at_i(y,, zi) = al_i(y,, z}) = 0); al_i(y;, ziX если $zi,"zj ((ai_i(y;, zi) ф ai_i(y;, zj ))&(хг ф xj));
ai_i(yi, z,), если 3zi,"zj ((ai_i(yi, z,) = ai_i(yi, zj)) & (zj = min z[yi, X])); a**(y,, zt) = \ J * (3)
ai_i(у, , zi), если 3zi,"zj ((ai_i(у, , zi) ф ai_i(у, , zj ))&(ai_i(у, , zj) =
= ai_i(yi ,min z[y,, xs]);
0 в других случаях.
Все элементы Л*(1), не вошедшие по определению hi в матрицу Л*, образуют матрицу Л** .
Определим на AK(i) функцию циклического сдвига ßi следующим образом:
**, ч |ai (y _ i, z), если у = 2, Y;
a, (r. z) = \ i '"Г,' )’ ' ’ (4)
[ ai (Y, z), если y = i.
На основе описанной выше процедуры сформирован алгоритм поиска каналов в трёхкас-
кадной КС, согласно которому процесс параллельного установления соединений происходит совместно с передачей пакетов.
Блок-схема алгоритма параллельного поиска каналов связи на фоне передачи пакетов изображена на рис. 3.
Согласно данному алгоритму необходимо последовательно выполнить следующие действия:
1. Заполнить матрицу АДи).
2. Вычислить значение X* (ai) для всех i =i, V и i = 0. Заполнить ÄK(T), если Лк (i) е 0 , и добавить новые элементы ai(y, z) в ÄK(i), если Лк (i) й 0 . Увеличить i на единицу.
Перейти к пункту 3.
3. Для каждого элемента ai(y, z) вычислить значение hi(ai(y, z)) и заполнить Л’К (i).
Перейти к пункту 4.
4. Построить Л*К*(1). Для этого для каждого значения y, = i, Y и z, =i, Z выполнить следующие действия: если a/_i (y, z) ф0, то сохранить его; если ai(yi, z) ф at (y, z) ф0, то записать
его в позицию (yi, zi) матрицы Лк (i), в оставшиеся позиции записать пустые элементы.
Перейти к пункту 5.
і ** **
5. Вычислить значения р (аі (уі, гі)) на Лк (і).
6. Построить Ак(1), используя ЛК (і) и ЛК* (і).
Для этого для каждого уг =1, У и г^= 1,2 выполнить следующие действия:
- если а* (уі, гі) Ф 0, то переписать его в позицию (у, г) в Ак(і);
* /Г-УС ** /'-УС **
- если аі (уі, гі) = 0, аі (уі, гі) Ф 0, то переписать аг (уі, гі) в позицию (уі, г) матрицы
Ак(і), а в Лк (і) вместо аі (уі, гі) записать 0;
- все другие позиции Ак(і) заполнить пустыми элементами. Перейти к пункту 7.
7. Увеличить і на единицу. Если і не больше У или Л^* (і) Ї 0 то, перейти к пункту 3, иначе перейти к пункту 8.
8. Начать передавать пакеты и перейти к пункту 1.
Начало _________^-----------
Заполнить матрицу АР
П
і = 0
_________у___________
Заполнить(дополнить) матрицу Лк(і)
і = і + 1
*
Построить матриц> А^ (/) Построить матрицу А**{І')
I ‘
Построить Лк(і) на основе Ак (0 и Ак (I)
Рис. 3. Блок-схема алгоритма параллельного поиска каналов связи
На рис. 4 показан процесс обмена информацией между матрицами.
Ы, V,
т
к—
V.
лк (')
I
>*4-
■V
'л-;
1
А
у-
А? (')
А г / / / ( Х4
'/ X /
2 3 V
\ \ \
N Л
(х4 = х5)&(п4 Ф п5)
I
V
I = I + 1
Ак (I)
*
Ак (I)
\
\ N
ч 5
Р'
1 г
5
/ /
Ак(1)
а;(1 )
к ]
\ \ /
2 3 4 / /
5
г
х п
Рис. 4. Информационное взаимодействие матриц
Параллельный поиск каналов связи между двумя выходами КС производится методом последовательного перебора всех возможных каналов связи через промежуточный каскад у, КС до тех пор, пока не будет найден свободный промежуточный путь. Последовательный перебор
*
осуществляется в соответствии с определением функции X . Таким образом, первый выход т1 выходного КБ г, будет подключен к первому КБ промежуточного каскада у1, второй выход т2 - ко второму КБ у2 промежуточного каскада. Последний выход mj будет подключен к соответствующему КБ у}- промежуточного каскада.
Заключение
Основным недостатком многих коммутаторов является низкая производительность. Универсальная КС не справляется с большим объемом специализированных операций по пересылке кадров между процессорами. Для повышения быстродействия КС требуются алгоритмы параллельной настройки, позволяющие в несколько раз повысить скорость обмена информацией между элементами системы. Предложенные алгоритмы, основанные на теоретико-множественной модели построения КС, позволяют производить параллельный поиск и идентификацию свободных каналов связи на фоне передачи информации [3].
СПИСОК ЛИТЕРАТУРЫ
1. Барабанова Е. А., Мальцева Н. С. Коммутационные элементы системы с параллельной обработкой // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. - 2009. -№ 2. - С. 119-126.
2. Пат. на изобретение. 2359313 Российская Федерация, МПК G06F 7/00. Трёхкаскадная коммутационная система / Жила В. В., Барабанова Е. А., Мальцева Н. С (RU). № 2007107780/09; заявл. 01.03.2007; опубл. 20.06.2009, Бюл. № 17.
3. Барабанова Е. А., Мальцева Н. С. Принципы построения коммутационных систем с параллельной настройкой // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. - 2010. - № 2. - С. 122-128.
Статья поступила в редакцию 20.12.2010
THE PARALLEL PROCESSING ALGORITHMS OF SWITCHING SYSTEMS
E. A. Barabanova, N. S. Maltseva
The switching systems with parallel search and parallel identification which can be used in data network multiprocessor systems are considered. An object of the research are parallel processing algorithms of switching systems, based on the set-theoretic model.
Key words: the switching system, a parallel searching, a parallel identification, the algorithm, the switching block, the array, the matrix