Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Topologii_vyichislitelnyih_sistem_.doc
Скачиваний:
5
Добавлен:
28.06.2024
Размер:
1.58 Mб
Скачать

Функции маршрутизации данных

Кардинальным вопросом при выборе топологии 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.