
- •Топологии вычислительных систем
- •Метрики сетевых соединений
- •Функции маршрутизации данных
- •Перестановка
- •Тасование
- •Баттерфляй
- •Реверсирование битов
- •Сеть illiac IV
- •Циклический сдвиг
- •Статические топологии
- •Линейная топология
- •Кольцевые топологии
- •Звездообразная топология
- •Древовидные топологии
- •Решетчатые топологии
- •Полносвязная топология
- •Топология гиперкуба
- •Топология k-ичного n-куба
- •Динамические топологии
- •Блокирующие и неблокирующие многоуровневые сети
- •Шинная топология
- •Топология полносвязной коммутационной матрицы («кроссбар»)
- •Коммутирующие элементы сетей с динамической топологией
- •Топология «Баньян»
- •Топология «Омега»
- •Топология «Дельта»
- •Топология Бенеша
- •Топология Клоша
- •Топология двоичной n-кубической сети с косвенными связями
- •Топология базовой линии
- •О блокируемости «баньян»-сети.
- •Сортирующая Батчер-сеть.
- •Контрольные вопросы
Функции маршрутизации данных
Кардинальным вопросом при выборе топологии CMC является способ маршрутизации данных, то есть правило выбора очередного узла, которому пересылается сообщение. Основой маршрутизации служат адреса узлов. Каждому узлу в сети присваивается уникальный адрес. Исходя из этих адресов, а точнее, их двоичных представлений, производится соединение узлов в статических топологиях или их коммутация в топологиях динамических, В сущности, принятая система соответствия между двоичными кодами адресов смежных узлов – функция маршрутизации данных – и определяет сетевую топологию. Последнюю можно описать как набор функций маршрутизации, задающий порядок выбора промежуточных узлов на пути от узла-источника к узлу-получателю. В некоторых топологиях используется единая для всей CMC функция маршрутизации, в других — многоступенчатых — при переходе от одной ступени к другой может применяться иная функция маршрутизации.
Функция маршрутизации данных задает правило вычисления возможного адреса одного из смежных узлов по адресу второго узла. Сводится это к описанию алгоритма манипуляции битами адреса-источника для определения адреса-получателя. Ниже приводится формальное описание основных функций маршрутизации данных, применяемых в известных топологиях CMC, без анализа их достоинств и недостатков. Последнее, по мере надобности, будет сделано при рассмотрении конкретных топологий CMC. Для всех функций предполагается, что размерность сети равна N, а разрядность адреса — m, где m=log2N. Биты адреса обозначены как bi.
Перестановка
Функция кубической перестановки (cube permutation) или обменной перестановки (exchange permutation) отвечает следующему соотношению:
Работающим примером для данной функции маршрутизации может служить топология гиперкуба (рис. 12.2).
Рис. 12.2. Пример топологии с функцией кубической перестановки (трехмерный гиперкуб)
Тасование
Функция тасования (shuffle) может быть реализована в одном из четырех вариантов: идеальное тасование (perfect shuffle), обратное тасования (unshuffle), которое также иногда называют инверсным совершенным тасованием (inverse perfect shuffle), субтасование по i-му биту (ith sub-shuffle), супертасование по i-му биту (ith super-shuffle), а также суб- и супер-базисная линия по i-му биту (ith sub-baseline & ith super-baseline). Ниже приведены формальные описания каждого из перечисленных вариантов, а на рис. 12.3 – примеры соответствующих им топологий.
идеальное тасование: S(bm, bm-1, …, b1) = (bm-1, bm-2, …, b1, bm)
Из приведенной формулы видно, что два узла с адресами i и j имеют между собой непосредственную связь при условии, что двоичный код j получен из двоичного кода i циклическим сдвигом влево. Идеальное тасование — наиболее распространенный среди рассматриваемых вариантов функции тасования.
обратное тасование: U(bm, bm-1, …, b1) = (b1, bm, …, b2) – аналогично идеальному тасованию, но циклический сдвиг – вправо.
субтасование по i-ому биту: Si(bm, bm-1, …, b1) = (bm, bm-1, …,bi+1, bi-1, …, b1, bi) – здесь циклический сдвиг влево, но в нем участвуют только младшие i-битов. (1<im)
супертасование по i-ому биту: Si(bm, bm-1, …, b1) = (bm-i, bm, …,b m-i+1, bm-i-1, …, b1) – здесь тоже циклический сдвиг влево, но в нем участвуют только старшие i-битов. (1<im)
Рис. 12.3. Примеры функций с тасованием для m=3: а – идеальное тасование; б – обратное тасования; в – субтасование по второму биту; г – супертасование по второму биту
Примечание. Термин тасование соответствует понятию тасования колоды карточек, на которых последовательно записаны номера узлов. Идеальное тасование эквивалентно разделению колоды на две половинки и далее, объединению половинок так, чтобы в объединенной колоде карты чередовались из разных полу-колод. Обратное тасование выполняет обратное действие – все карточки с нечетными номерами объединяются в первую половину, а с четными номерами составляют вторую половину итоговой колоды. Субтасование выделяет из колоды кучки и тасует карты внутри каждой независимой кучки. Супертасование выделяет из колоды кучки и меняет местами одну кучку с другой, не меняя порядок внутри кучек.
суббазисная линия по i-ому биту: Li(bm, bm-1, …, b1) = (bm, bm-1, …,bi+1, bi-1, …, b1, bi) – здесь циклический сдвиг вправо, но в нем участвуют только младшие i-битов. (1<im)
супербазисная линия по i-ому биту: Li(bm, bm-1, …, b1) = (bm-i, bm, …,b m-i+1, bm-i-1, …, b1) – здесь тоже циклический сдвиг вправо, но в нем участвуют только старшие i-битов. (1<im)
Отметим, что из соображений симметрии следует свойство Sm=Sm и Lm=Lm.