Grzegorz Danilewicz, Wojciech Kabaci´nski, Marek Michalski, Mariusz ˙Zal
Politechnika Pozna´nska
Katedra Sieci Telekomunikacyjnych i Komputerowych ul. Polanka 3, 60-965 Pozna´n, Polska
e-mail:(kabacins, mzal)@et.put.poznan.pl
NIEBLOKOWALNE W SZEROKIM SENSIE WIELOPŁASZCZYZNOWE POLA KOMUTACYJNE ZBUDOWANE Z KOMUTATORÓW d × d ∗
Streszczenie: W Katedrze STiK został niedawno zapropo- nowany nowy algorytm steruj ˛ acy polami komutacyjnymi typu log
2(N, 0, p), które s ˛ a zbudowane z elementów ko- mutacyjnych 2 × 2. Pola typu log
2(N, 0, p) z parzyst ˛ a liczb ˛ a sekcji s ˛ a nieblokowalne w szerokim sensie (WSNB) przy zastosowaniu tego algorytmu i maj ˛ a t˛e sam ˛ a liczb˛e płaszczyzn p jak pola przestrajalne (RNB). W tym artykule rozszerzono działanie algorytmu na pola komutacyjne typu log
d(N, 0, p) zbudowane z komutatorów d × d. Dodatko- wo w artykule udowodniono warunki nieblokowalno´sci w szerokim sensie tego typu pól z parzyst ˛ a liczb ˛ a sekcji. Zo- stało udowodnione, ˙ze liczba płaszczyzn w przypadku pól WSNB jest taka sama jak dla pól przestrajalnych zbudo- wanych z komutatorów d × d.
1. WPROWADZENIE
Pola nieblokowalne w szerokim sensie (WSNB) za- pewniaj ˛ a mo˙zliwo´s´c zestawienia poł ˛ aczenia mi˛edzy do- wolnym wolnym wej´sciem a dowolnym wolnym wyj-
´sciem pola pod warunkiem zastosowania odpowiedniego algorytmu wyboru drogi poł ˛ aczeniowej. Pola WSNB za- proponował Beneš [1]. Wykazał on, ˙ze pewna klasa pól Clos’a jest nieblokowalna w szerokim sensie, jednak˙ze pola te zawieraj ˛ a wi˛ecej punktów komutacyjnych ni˙z ko- mutator kwadratowy o tej samej pojemno´sci i st ˛ ad nie ma- j ˛ a one praktycznego zastosowania. Inn ˛ a, szeroko rozwa˙za- n ˛ a w literaturze, struktur ˛ a pól komutacyjnych dla zastoso- wa´n w bardzo szybkich przeł ˛ acznikach optycznych i elek- tronicznych jest pole typu log
d(N, m, p). Przypadkiem szczególnym tego typu pól jest pole zło˙zone z elementów komutacyjnych 2 × 2 (d = 2). Pole takie nazywane jest w ogólno´sci polem typu log
2(N, 0, p) lub multi-log
2N [2], [3]. W tym artykule rozwa˙zane s ˛ a pola typu log
d(N, 0, p), gdzie liczba dodatkowych sekcji m równa si˛e 0. Niezb˛ed- na liczba płaszczyzn dla pól typu log
2(N, 0, p) nieblo- kowalnych w w ˛ askim sensie (SSNB) i dla pól przestra- jalnych z poł ˛ aczeniami punkt-punkt została podana odpo- wiednio w [2] i [3]. Warunki WSNB tego typu pól dla po- ł ˛ acze´n rozgłoszeniowych były przedstawione w [4]. Wa- runki konieczne WSNB pól typu log
2(N, 0, p) dla poł ˛ a- cze´n typu punkt-punkt i dla wielu algorytmów wyboru drogi poł ˛ aczeniowej były rozwa˙zane w [5].
W tym artykule rozwa˙zana jest ogólna struktura pól typu log
d(N, 0, p). Warunki RNB dla poł ˛ acze´n ty- pu punkt-punkt zostały przedstawione przez Hwang’a w [6]. Z kolei warunki SSNB dla pól typu log
d(N, 0, p)
∗
Praca wykonana w ramach Grantu KBN 3T11D 003 29.
dla poł ˛ acze´n rozsiewczych i f -castowych (to znaczy, dla poł ˛ acze´n gdzie ˙z ˛ ada si˛e maksymalnie f wyj´s´c) uzyska- ne równie˙z przez Hwang’a były prezentowane w [7], [8], [9]. Hwang przedstawił tak˙ze warunki nieblokowalno´sci w szerokim sensie dla poł ˛ acze´n f -castowych i dla pól typu log
d(N, m, p) w [7]. Warunki WSNB dla rozgłoszenio- wych pól log
d(N, 0, p), gdy ma zastosowanie algorytm oparty na koncepcji okien blokowania, podał Danilewicz w [10].
Niedawno Kabaci´nski i Michalski zaproponowali nowy algorytm steruj ˛ acy dla pól typu log
2(N, 0, p) [11].
Wykazali oni, ˙ze przy wykorzystaniu tego algorytmu w pól typu log
2(N, 0, p) z parzyst ˛ a liczb ˛ a sekcji wymagane jest u˙zycie tylu samo płaszczyzn co w polu przestrajal- nym. Gdy liczba płaszczyzn jest nieparzysta pole WSNB wymaga u˙zycia wi˛ekszej liczby płaszczyzn ni˙z RNB, ale znacznie mniej ni˙z w polu nieblokowalnym w w ˛ askim sensie [12]. W tym artykule zaproponowany algorytm zo- stał rozszerzony do ogólnego przypadku, gdy d > 2.
Przedstawiono tak˙ze warunki WSNB, gdy w polu u˙zywa- ny jest rozszerzony algorytm.
Dalsza cz˛e´s´c artykułu została zorganizowana w na- st˛epuj ˛ acy sposób. W rozdziale 2 omówiono architektur˛e rozwa˙zanych pól komutacyjnych oraz u˙zyt ˛ a notacj˛e. W nast˛epnym rozdziale przedstawiono sposób reprezentacji stanu pola. Zdefiniowane zostały odpowiednie macierze oraz wyja´sniono ich znaczenie. W rozdziale 3 zapropono- wano algorytm steruj ˛ acy polami log
d(N, 0, p). W nast˛ep- nym rozdziale podano i udowodniono warunki niebloko- walno´sci WSNB pól log
d(N, 0, p) dla n parzystego. Ar- tykuł ko´ncz ˛ a wnioski.
2. DEFINICJE I U ˙ZYTA NOTACJA A. ARCHITEKTURA POLA KOMUTACYJNEGO
Pole typu log
d(N, 0, p) jest zbudowane z równole- gle poł ˛ aczonych p kopii pola typu log
d(N, 0, 1). Liczba wej´s´c i wyj´s´c pola oznaczana jest przez N , N = d
n. Ka˙z- de pole typu log
d(N, 0, 1) zbudowane jest z komutatorów d × d i nazywane jest płaszczyzn ˛ a. Wej´scia i wyj´scia pola numerowane s ˛ a od 0 do N −1 licz ˛ ac z góry na dół. Komu- tatory w ka˙zdej sekcji numerowane s ˛ a od 0 do N/d − 1 z góry na dół. S ˛ a one zorganizowane w sekcje numero- wane od 1 do n z lewej strony na praw ˛ a. Przykład po- la log
3(27, 0, 1) przedstawiono na rys. 1. Problemem do
2006
Poznańskie Warsztaty Telekomunikacyjne
Poznań 7 - 8 grudnia 2006
0
3 4 5
8 0
4 0
3 4 5
8 0
2 3 5 6 8 9 11 12 14 15 17 18 20 21 23 24 26
1 4 7 10 13 16 19 22 25
0 2 3 5 6 8 9 11 12 14 15 17 18 20 21 23 24 26 1 4 7 10 13 16 19 22 25
1 2 3
Rys. 1. Przykład pola z trzema sekcjami zbudowanego z elementów 3 × 3
rozwi ˛ azania w tym artykule jest minimalna liczba płasz- czyzn, która jest wystarczaj ˛ aca i konieczna dla niebloko- walnej pracy pola typu log
d(N, 0, p).
Struktura pola typu log
d(N, 0, p) mo˙ze by´c formal- nie zdefiniowana. Oznaczmy komutator x w sekcji i, 1 6 i 6 n przez x
i. Dla ka˙zdego i mamy 0 6 x 6 d
n−1− 1.
Ka˙zdy komutator x
i, 2 6 i 6 n, poł ˛ aczony jest z kilkoma komutatorami sekcji poprzedniej i − 1. Oznaczmy przez PS
xi−1izbiór tych komutatorów sekcji i − 1, które s ˛ a poł ˛ a- czone z x
i. Zbiór PS
xi−1ijest zdefiniowany nast˛epuj ˛ aco:
PS
xi−1i= n
y
ai−1: y = j x
id
n−i+1k
× d
n−i+1+ (1)
+ ¡
x
imod d
n−i¢
× d + a, 0 6 a 6 d − 1 ª . Na przykład w polu przedstawionym na rys. 1 ko- mutator 4 w sekcji 2 poł ˛ aczony jest z komutatorami 3, 4 i 5 z sekcji 1 (z (1) mamy y
01= 3
3−2+1¥
4/3
3−2+1¦ + 3 ¡
4 mod 3
3−2¢
+ 0 = 3, y
11= 3
3−2+1¥
4/3
3−2+1¦ + 3 ¡
4 mod 3
3−2¢
+ 1 = 4 i y
12= 3
3−2+1¥
3/3
3−2+1¦ + 3 ¡
3 mod 3
3−2¢
+ 2 = 5), st ˛ ad PS
412= {3, 4, 5}.
W podobny sposób mo˙zna zdefiniowa´c zbiór NS
xi+1i, który zawiera numery tych komutatorów z sekcji nast˛ep- nej i + 1, które s ˛ a poł ˛ aczone z komutatorem x
i, 1 6 i 6 n − 1. Zbiór ten jest definiowany nast˛epuj ˛ aco:
NS
xi+1i= n
y
i+1a: y = j x
id
n−ik
× d
n−i+ + ³j x
id k
mod d
n−i−1´
+ a × d
n−i−1, (2) 0 6 a 6 d − 1} .
Na przykład w polu z rys. 1 komutator 4
2poł ˛ aczony jest z komutatorami 3, 4 i 5 z sekcji 3 (z (2) mamy y
03= 3
3−2¥
4/3
3−2¦ + ¡
b4/3c mod 3
3−2−1¢
+ 0 = 3, y
13= 3
3−2¥
4/3
3−2¦ + ¡
b4/3c mod 3
3−2−1¢
+ 1 = 4, y
23= 3
3−2¥
4/3
3−2¦ + ¡
b4/3c mod 3
3−2−1¢
+ 2 = 5), st ˛ ad NS
432= {3, 4, 5}.
´Scie˙zka poł ˛aczeniowa mi˛edzy wej´sciem s a wyj-
´sciem t składa si˛e z komutatorów x
1= bs/dc, y
n=
bt/dc, komutatorów w sekcjach od 2 do n − 1 oraz od- powiednich ł ˛ aczy mi˛edzysekcyjnych mi˛edzy tymi komu- tatorami. Poł ˛ aczenie b˛edzie oznaczane przez hs, ti. Jed- nak˙ze do poprawnego przedstawienia stanu pola komuta- cyjnego wystarczy zna´c tylko numery komutatorów sekcji skrajnych. St ˛ ad w dalszej cz˛e´sci artykułu b˛edziemy posłu- giwali si˛e tylko numerami komutatorów. Relacja mi˛edzy komutatorami x
1i y
nb˛edzie oznaczana jako (x, y). Dla ka˙zdej relacji (x, y) mo˙zliwe jest wyznaczenie numerów komutatorów r
i, 2 6 i 6 n, sekcji po´srednich, które znaj- duj ˛ a si˛e w ´scie˙zce poł ˛ aczeniowej danej relacji. Numery tych komutatorów mog ˛ a by´c wyznaczone z nast˛epuj ˛ ace- go wzoru:
^
16i6n−1
r
i+1= j r
id
n−ik
× d
n−i+
+ ³j r
id k
mod d
n−i−1´
+ (3)
+ ³j y
d
n−i−1k
mod d ´
× d
n−i−1, gdzie r
1= x.
Na przykład w polu z rys. 1 ma by´c zestawione poł ˛ aczenie h19, 26i. Jest to poł ˛ aczenie w relacji (6, 8).
Z zale˙zno´sci (3) mo˙zna wyznaczy´c numer komutatora w sekcji 2, który bierze udział w tym poł ˛ aczeniu. Dla x = 6 i y = 8 mamy r
2= 9 b6/9c + (b6/3c mod 3) + 3 (b8/3c mod 3) = 8. Poł ˛ aczenie to zaznaczone jest na rys. 1 pogrubion ˛ a lini ˛ a przerywan ˛ a.
Pola typu log
d(N, 0, 1) charakteryzuj ˛ a si˛e tym, ˙ze mi˛edzy ka˙zdym wej´sciem i ka˙zdym wyj´sciem istnieje tyl- ko jedna droga poł ˛ aczeniowa. Je˙zeli dwie ´scie˙zki spoty- kaj ˛ a si˛e w przynajmniej jednym ł ˛ aczu mi˛edzysekcyjnym wtedy jedno z poł ˛ acze´n jest blokowane. St ˛ ad wynika ko- nieczno´s´c budowania pól wielopłaszczyznowych, ponie- wa˙z zablokowane w jednej płaszczy´znie poł ˛ aczenie mo˙z- na wtedy zestawi´c w innej, dost˛epnej dla tego poł ˛ aczenia płaszczy´znie.
B. REPREZENTACJA STANÓW POLA Ka˙zdy komutator pierwszej sekcji ma d wej´s´c a ka˙z- dy komutator ostatniej sekcji ma d wyj´s´c. Jednak w roz- wa˙zaniach stanów pola komutacyjnego nie jest istotne, pomi˛edzy którymi z tych d wej´s´c i wyj´s´c jest zestawiane poł ˛ aczenie. Na przykład poł ˛ aczenia h0, 0i lub hd−1, d−1i jak równie˙z h0, d − 1i i hd − 1, 0i przechodz ˛ a przez ko- mutatory o numerach 0 we wszystkich sekcjach komuta- torów. St ˛ ad, numery elementów komutacyjnych w pierw- szej i ostatniej sekcji s ˛ a wystarczaj ˛ ace do analizy stanów pola komutacyjnego.
Rozwa˙zmy pole log
3(27, 0, p). Poł ˛ aczenie h0, 0i blokuje wszystkie pozostałe poł ˛ aczenia realizowane z ko- mutatora 0
1do komutatorów 0, 1 i 2 w trzeciej sekcji.
Jednocze´snie poł ˛ aczenie h0, 0i blokuje wszystkie inne po- ł ˛ aczenia z komutatorów 1
1i 2
1do komutatora 0 w trzeciej sekcji. Oznacza to, ˙ze poł ˛ aczenie h0, 0i blokuje wszystkie inne poł ˛ aczenia, które mog ˛ a by´c zestawione przez ł ˛ acza mi˛edzysekcyjne wykorzystywane przez to poł ˛ aczenie.
Stan pola komutacyjnego zaznaczany jest w k ma-
cierzach B
k, 1 6 k 6 p. Ka˙zda macierz B
kreprezen-
tuje stan płaszczyzny k pola. Macierz zbudowana jest z N/d wierszy, z których ka˙zdy odpowiada jednemu z ko- mutatorów wej´sciowych oraz z N/d kolumn, gdzie ka˙zda z nich odpowiada jednemu z komutatorów wyj´sciowych.
Macierz B
kmo˙zna zdefiniowa´c nast˛epuj ˛ aco:
B
k=
b
k[x, y] =
t gdy (x, y) jest blokowana w płaszczy´znie k przez t innych relacji, 0 gdy (x, y) nie jest
blokowana w płaszczy´znie k.
(4)
W macierzy B
kzaznaczane s ˛ a poł ˛ aczenia zabloko- wane w płaszczy´znie k. Zapis b
k[x, y] = t, t > 1, ozna- cza, ˙ze relacja (x, y) jest blokowana w płaszczy´znie k przez t innych relacji, a zapis b
k[x, y] = 0 wskazuje na to, ˙ze w tej płaszczy´znie relacja (x, y) nie jest blokowana.
Notacja ta jest podobna do notacji stosowanej w [11] w przypadku pól gdzie dopuszczalne s ˛ a przesłuchy oraz w [13] dla pól gdzie przesłuchy s ˛ a całkowicie zabronione.
Poniewa˙z mi˛edzy ka˙zdym wej´sciem i wyj´sciem pola istnieje tylko jedna droga poł ˛ aczeniowa, to mo˙zliwe jest okre´slenie zbioru poł ˛ acze´n, które s ˛ a zablokowane przez zestawione ju˙z w płaszczy´znie poł ˛ aczenia. Poniewa˙z po- ł ˛ aczenie hs, ti blokuje wszystkie te poł ˛ aczenia, które mo- g ˛ a by´c zestawione przez ł ˛ acza mi˛edzysekcyjne wyko- rzystywane przez poł ˛ aczenie hs, ti, to nale˙zy wyznaczy´c wszystkie takie poł ˛ aczenia. W tym celu zdefiniujmy zbiór wszystkich komutatorów pierwszej sekcji, które s ˛ a osi ˛ a- galne z komutatora w sekcji i. Komutator pierwszej sekcji y
1nazywamy osi ˛ agalnym z komutatora x
ije˙zeli mo˙zli- we jest zestawienie drogi poł ˛ aczeniowej mi˛edzy y
1i x
i. Dla komutatora y
1zbiór osi ˛ agalnych komutatorów pierw- szej sekcji ograniczony jest do tego komutatora. Zbiór osi ˛ agalnych komutatorów pierwszej sekcji dla danego ko- mutatora x
ioznaczany b˛edzie przez I
xi. Dla ka˙zdego x
i, 1 6 i 6 n, mamy:
I
xi= ©
y
1: y = ¡
x
imod d
n−i¢
× d
i−1+ a, 0 6 a 6 d
i−1− 1 ª
. (5)
Zdefiniujmy tak˙ze zbiór osi ˛ agalnych z komutatora sekcji i komutatorów ostatniej sekcji. Komutator ostatniej sekcji y
njest osi ˛ agalny z komutatora x
ije˙zeli mo˙zliwe jest zestawienie drogi poł ˛ aczeniowej mi˛edzy komutatora- mi x
ii y
n. Dla ka˙zdego komutatora ostatniej sekcji y
nzbiór osi ˛ agalnych komutatorów ograniczony jest do tego komutatora. Zbiór osi ˛ agalnych z komutatora x
ikomutato- rów ostatniej sekcji oznaczany jest przez O
xi. Dla ka˙zdego x
i, 1 6 i 6 n, mamy:
O
xi= n
y
n: y = j x
id
n−ik
× d
n−i+ a, 0 6 a 6 d
n−i− 1 ª
(6) Na przykład w polu z rys. 1 zbiór I
61dla ko- mutatora 6
1zawiera tylko jeden element. Z (5) mamy y = (6 mod 9) = 6 i st ˛ ad I
61= {6}. Z kolei zbiór
osi ˛ agalnych komutatorów ostatniej sekcji dla komutato- ra 6
1zawiera wszystkie komutatory sekcji trzeciej (O
61= {0, 1, 2, 3, 4, 5, 6, 7, 8}). Dla komutatora 4
2mamy I
42= {3, 4, 5} i O
42= {3, 4, 5}.
Rozwa˙zmy teraz dowoln ˛ a drog˛e poł ˛ aczeniow ˛ a mi˛e- dzy wej´sciem i wyj´sciem. Na ´scie˙zce tej znajduj ˛ a si˛e ko- mutatory x
ii y
i+1. Oznacza to, ˙ze komutatory te s ˛ a poł ˛ a- czone ł ˛ aczem mi˛edzysekcyjnym, i ˙ze ł ˛ acze to jest u˙zywa- ne do zestawienia poł ˛ aczenia. Ł ˛ acze to jest zablokowane dla wszystkich innych poł ˛ acze´n, które mog ˛ a by´c zestawio- ne mi˛edzy komutatorami x
ii y
i+1. Mo˙zemy zidentyfiko- wa´c wszystkie te poł ˛ aczenia jako wszystkie relacje mi˛e- dzy osi ˛ agalnymi z komutatora x
ikomutatorami pierwszej sekcji a komutatorami ostatniej sekcji osi ˛ agalnymi z ko- mutatora y
i+1.
Na przykład w polu z rys. 1 w relacji (6, 8) wyko- rzystywane jest ł ˛ acze mi˛edzysekcyjne mi˛edzy komutato- rami 6
1i 8
2. Mamy nast˛epuj ˛ ace zbiory osi ˛ agalnych ko- mutatorów: I
61= {6} i O
82= {6, 7, 8}. Oznacza to, ˙ze relacja (6, 8) w polu log
3(27, 0, p) blokuje relacje (6, 6), (6, 7), i (6, 8). Przedstawione tu zablokowane relacje nie wyczerpuj ˛ a wszystkich przypadków poniewa˙z dla skom- pletowania pełnej listy blokowanych relacji nale˙zy roz- wa˙zy´c wszystkie ł ˛ acza mi˛edzysekcyjne wykorzystywane przez poł ˛ aczenie w danej relacji.
W ogólno´sci, poł ˛ aczenie w danej relacji (x, y) blo- kuje inne relacje. Zablokowane relacje tworz ˛ a zbiór Z.
Zbiór Z jest zdefiniowany nast˛epuj ˛ aco:
Z = (
(s, t) : ^
s
s ∈ I
qi,
^
t
t ∈ O
ri+1, 1 6 i 6 n − 1 )
, (7)
gdzie q = q
ii r = r
i+1s ˛ a numerami komutatorów u˙zy- wanych w ´scie˙zce poł ˛ aczeniowej w relacji (x, y) i s ˛ a wy- znaczone z zale˙zno´sci (3).
Na przykład dla relacji (6, 8) i dla i = 1 zbiór za- blokowanych relacji wyznaczony z (7) był ju˙z prezen- towany (zawiera on relacje (6, 6), (6, 7) i (6, 8)). Dla i = 2 (to znaczy, dla ł ˛ acza mi˛edzysekcyjnego mi˛e- dzy 8
2i 8
3) mamy: I
82= {6, 7, 8} i O
83= {8}.
Oznacza to, ˙ze kolejne trzy relacje s ˛ a zablokowane i s ˛ a to relacje (6, 8), (7, 8) i (8, 8). St ˛ ad zbiór Z = {(6, 6) , (6, 7) , (6, 8) , (6, 8) , (7, 8) , (8, 8)}.
Za pomoc ˛ a zale˙zno´sci (7) mo˙zna znale´z´c wszystkie
relacje, które s ˛ a blokowane przez relacj˛e (x, y). Jednak˙ze
w zbiorze Z niektóre relacje powtarzaj ˛ a si˛e. W przedsta-
wionym przykładzie jest to relacja (6, 8), która jest blo-
kowana w obu ł ˛ aczach mi˛edzysekcyjnych. St ˛ ad zbiór Z
nie mo˙ze by´c wykorzystywana do uaktualnienia wpisów
w macierzy B. Zdefiniujmy zatem ograniczony zbiór blo-
kowanych relacji i oznaczmy go przez Z
l. Zbiór Z
lza-
wiera wszystkie zablokowane relacje wyznaczone z za-
le˙zno´sci (7), gdzie ka˙zda relacja wyst˛epuje w tym zbio-
rze tylko jeden raz. W rozwa˙zanym przykładzie zbiór
Z
l= {(6, 6) , (6, 7) , (6, 8) , (7, 8) , (8, 8)}. Zbiór Z
ljest
wykorzystywany do aktualizacji wpisów w macierzy B
k.
Gdy w polu jest zestawiane poł ˛ aczenie w danej relacji
wtedy wpis w macierzy B
kjest zwi˛ekszany o jeden dla
Procedura Update_B(x, y, k)
Dane: x, y, k, connection, B
k/* connection = false w przypadku rozł ˛ aczenia */.
Wynik: uaktualniona macierz B
k. begin
if (connection = true) then z := 1;
else z := −1;
endif;
Z := ®;
for i = 1 to n − 1 do wyznacz q
iz (3);
wyznacz r
i+1z (3);
wyznacz I
qiz (5);
wyznacz O
ri+1z (6);
wyznacz relacje z (7) i dodaj do zbioru Z;
endfor;
ogranicz zbiór Z i utwórz zbiór Z
l; for ka˙zda relacja (s, t) ∈ Z
ldo
b
k[s, t] := b
k[s, t] + z;
endfor;
end.
Rys. 2. Procedura Update_B(x, y, k)
ka˙zdej relacji ze zbioru Z
l. Wpisy w macierzy B
ks ˛ a mo- dyfikowane po ka˙zdym poł ˛ aczeniu lub rozł ˛ aczeniu. Proce- dura Update_B(x, y, k) została przedstawiona na rys. 2.
3. ALGORYTM STERUJ ˛ ACY
Prezentowany algorytm wyboru drogi poł ˛ aczeniowej oparty jest na algorytmie stosowanym w polach komu- tacyjnych log
2(N, 0, p) opisanym w [11]. Ogólna zasa- da działania tego algorytmu polega na zestawianiu no- wego poł ˛ aczenia przez płaszczyzn˛e, w której zablokuje on jak najmniejsz ˛ a liczb˛e innych, kolejnych poł ˛ acze´n. Do wyznaczenia numeru takiej płaszczyzny niezb˛edny jest jeszcze jeden zbiór macierzy. Ka˙zda płaszczyzna k re- prezentowana jest przez jedn ˛ a macierz C
ko wymiarach N/d × N/d. Podobnie jak w macierzy B
knumer wier- sza odpowiada numerowi komutatora sekcji pierwszej na- tomiast numer kolumny – numerowi komutatora sekcji ostatniej. Warto´s´c elementu c
k[x, y] = t oznacza, ˙ze je-
´sli relacja (x, y) jest zestawiana przez płaszczyzn˛e k to spowoduje ona niedost˛epno´s´c tej płaszczyzny dla t mo˙z- liwych przyszłych relacji.
Warto´s´c elementu c
k[x, y] wyznaczana jest na pod- stawie zawarto´sci macierzy B
k. W celu wyznaczenia licz- by relacji, które mog ˛ a by´c zablokowane przez (x, y), ko- nieczne jest okre´slenie liczby niezerowych elementów w okre´slonym obszarze macierzy B
k. Obszar ten mo˙ze by´c wyznaczony z (7). Jednak w naszym algorytmie zosta- nie zaadaptowana metoda prezentowana w pracy [11]. Na rysunku 3 przedstawiono przykładowe zbiory dost˛epnych komutatorów sekcji pierwszej i ostatniej. Pogrubion ˛ a lini ˛ a zaznaczono poł ˛ aczenie h0, 0i (relacja (x, y), gdzie x = 0 i y = 0). Na rysunku 4 przedstawiono obszar blokowany przez relacj˛e (0, 0) odpowiadaj ˛ acy poszczególnym zbio-
rom osi ˛ agalnych komutatorów pierwszej i ostatniej sek- cji. Powi ˛ azanie miedzy zbiorami osi ˛ agalnych komutato- rów sekcji skrajnych a poszczególnymi fragmentami ob- szaru blokowania tak˙ze przedstawiono na rys. 4.
Poł ˛ aczenia mog ˛ a by´c blokowane w ró˙znych sekcjach pola komutacyjnego. Obszary macierzy (zbiory pozycji macierzy) reprezentuj ˛ ace poł ˛ aczenia, które mo˙ze bloko- wa´c dane poł ˛ aczenie nie s ˛ a zbiorami rozdzielnymi. W sek- cji 1, relacja (x, y) blokuje relacje odpowiadaj ˛ ace pozy- cjom macierzy w wierszu x i kolumnach od w
1= y − y mod d
n−2do w
1+ d
n−2− 1. W sekcji 2, relacja (x, y) blokuje relacje opowiadaj ˛ ace pozycjom macierzy w wier- szach od v
2= x−x mod d do v
2+d−1 i kolumnach od w
1= y − y mod d
n−3do w
1+ d
n−2− 1. Nale˙zy jednak zaznaczy´c, ˙ze pozycje macierzy w wierszu x oraz kolum- nach od w
1= y − y mod d
n−3do w
1+ d
n−2− 1 były ju˙z poprzednio uwzgl˛ednione. Dlatego te˙z, w tym kroku pozycje te powinny by´c pomini˛ete. Ogólnie mówi ˛ ac, rela- cje blokowane przez relacj˛e (x, y) w komutatorze sekcji i, 2 6 i 6 n − 1, odpowiadaj ˛ a pozycjom macierzy w wier- szach od v
i= x − x mod d
i−1do v
i+ d
i−1− 1 i kolum- nach od w
i= y − y mod d
n−1−ido w
1+ d
n−1−i− 1.
Oczywi´scie nale˙zy pami˛eta´c, ˙ze pozycje macierzy w wier- szach od v
0i= x − x mod d
i−2do v
i0+ d
i−2− 1 i kolum- nach od w
i= y − y mod d
n−1−ido w
1+ d
n−1−i− 1 były ju˙z uwzgl˛edniane podczas rozwa˙zania sekcji i − 1.
Maksymaln ˛ a liczb˛e pozycji, która mo˙ze by´c blokowana w macierzy B
kprzez jedn ˛ a relacj˛e zestawion ˛ a w płaszczy´z- nie k b˛edziemy oznacza´c przez m. Liczba ta mo˙ze by´c wyliczona z równania:
m = d
n−2+
n−1
X
i=2
(d − 1)d
i−2d
n−2d
i−1=
= d
n−2+ (d − 1)(n − 2)d
n−3. (8) Sposób liczenia pozycji w macierzach, które odpo- wiadaj ˛ a relacjom blokowanym przez relacj˛e (x, y) mo˙ze by´c wykorzystany do wyliczenia warto´sci wszystkich po- zycji C
kna podstawie wpisów w macierzy B
k. Warto´s´c pozycji c
k[x, y] mo˙ze by´c wyznaczona ze wzoru:
c
k[x, y] =
½ m + 1 ⇔ b
k[x, y] > 0
m − q ⇔ b
k[x, y] = 0 , (9) gdzie
q =
W2
X
w=W1
f (b
k[x, w]) +
+ X
ni=2 W4
X
v=W3
W6
X
w=W5
g (b
k[v, w] , v), (10)
f (b
k[s, t]) =
½ 0 ⇔ b
k[s, t] = 0
1 ⇔ b
k[s, t] > 0 , (11)
g(b
k[s, t, ] , l) =
0 ⇔ W
76 l 6 W
8f (b
k[s, t, ]) ⇔ w innych przypadkach
, (12) oraz
W
1= y − y mod d
n−2, (13)
Rys. 3. Przykład zbiorów dost˛epnych komutatorów sekcji pierwszej i ostatniej pola komutacyjnego log
d(N, 0, p)
X
0 0
d
n/2-1
d
n/2-1
X X
X
Rys. 4. Przykład obszarów w macierzy B
kreprezentuj ˛ acej pole komutacyjne z rys. 3 W
2= W
1+ d
n−2− 1, (14) W
3= x − x mod d
i−1, (15) W
4= W
3+ d
i−1− 1, (16) W
5= y − y mod d
n−i−1, (17) W
6= W
5+ d
n−i−1− 1, (18) W
7= x − x mod d
i−2, (19) W
8= W
7+ d
i−2− 1. (20) Macierz C
kpo ka˙zdym zestawieniu lub rozł ˛ acze- niu poł ˛ aczenia musi by´c uaktualniona. Do uaktualnienia mo˙zna wykorzysta´c procedur˛e podobn ˛ a do prezentowanej w [11], jednak wymagane jest wyliczanie warto´sci zmien- nych na podstawie nowych wzorów. Procedura uaktual- nienia tej macierzy została przedstawiona na rys. 5.
Procedura Update_C(x, y, k) Dane: x, y, k, m, B
k, C
k. Wynik: uaktualniona macierz C
k. begin
v := x − x ⊕ d
n−1; w := y − y ⊕ d
n−1;
for x = v to v + d
n−1− 1 do for y = w to w + d
n−1− 1 do
if b
k[x, y] > 0 then c
k[x, y] := m + 1 else
begin calculate q;
c
k[x, y] := m − q;
end;
endif;
endfor;
endfor;
end.
Rys. 5. Procedura Update_C(x, y, k)
Algorytm steruj ˛ acy mo˙ze by´c okre´slony w ten sam sposób jak w pracy [11]. Algorytm został przedstawiony na rys. 6.
4. WARUNKI NIEBLOKOWALNO ´SCI WSNB Wyznaczona teraz zostanie wymagana liczba płasz- czyzn pola log
d(N, 0, p), dla której pole to jest niebloko- walne przy zastosowaniu Algorytmu 1. Rozwa˙zany b˛edzie tylko przypadek n parzystego.
Twierdzenie 1: Pole komutacyjne log
d(N, 0, p), dla n parzystego, gdzie n = log
dN , jest polem nieblo- kowalnym przy zastosowaniu Algorytmu 1, wtedy i tylko wtedy, gdy p > d
n/2.
Dowód. Warunek konieczny jest oczywisty, i wyni-
ka on z minimalnej liczby płaszczyzn wymaganych dla
zestawienia wszystkich poł ˛ acze´n, przechodz ˛ acych przez
ł ˛ acze mi˛edzysekcyjne pomi˛edzy komutatorami sekcji n/2
i n/2 + 1. Ze wzoru (5) mo˙zliwe jest wyznaczenie licz-
by komutatorów sekcji pierwszej dost˛epnych z komuta-
tora sekcji n/2, natomiast na podstawie wzoru (6) okre-
Algorytm 1 Zestawienie poł ˛ aczenia Dane: x, y, m, B, C.
Wyniki: P , uaktualnione macierze B
P, C
P. begin
P := 1;
c := m;
for k = 1 to p do if c
k[x, y] < c then
begin
c := c
k[x, y];
P := k;
end;
endif;
endfor;
Procedura Update_B(x, y, P );
Procedura Update_C(x, y, P );
end.
Rys. 6. Algorytm steruj ˛ acy
´slana jest liczba komutatorów sekcji n dost˛epnych z ko- mutatora sekcji n/2 + 1. W obu przypadkach liczba ele- mentów tych zbiorów zale˙zy od warto´sci a. Mamy za- tem
¯ ¯
¯I
xn/2¯ ¯
¯ = d
n/2−1i
¯ ¯
¯O
x(n/2)+1¯ ¯
¯ = d
n/2−1. Ozna- cza to, ˙ze ł ˛ acze mi˛edzysekcyjne mi˛edzy komutatorami w sekcjach n/2 i n/2 + 1 mo˙ze by´c wykorzystane przez d
n/2−1relacji. Oznacza to równie˙z, ˙ze wymagane jest d · d
n/2−1= d
n/2ró˙znych płaszczyzn, poniewa˙z w ka˙z- dej relacji mo˙zliwe jest zestawienie do d poł ˛ acze´n (ka˙zdy komutator ma d wej´s´c i d wyj´s´c).
Wyka˙zemy teraz, ˙ze stosuj ˛ ac Algorytm 1 w polu log
d(N, 0, p), w którym liczba płaszczyzn jest okre´slo- na przez Twierdzenie 1, zawsze mo˙zliwe jest znalezienie płaszczyzny dla nowego poł ˛ aczenia. Bez utraty ogólno´sci rozwa˙za´n załó˙zmy, ˙ze nowym poł ˛ aczeniem b˛edzie poł ˛ a- czenie h0, 0i. Poł ˛ aczenie to mo˙ze by´c blokowane przez poł ˛ aczenia wychodz ˛ ace z komutatorów pierwszej sekcji numerowanych od 0 do d
n/2− 1 i kierowane do komu- tatorów ostatniej sekcji numerowanych od 0 do d
n/2− 1.
W najbardziej niekorzystnym przypadku do zestawienia tych poł ˛ acze´n konieczne b˛edzie u˙zycie d
n/2− 1 ró˙znych płaszczyzn. Poł ˛ aczenie h0, 0i mo˙ze by´c zestawione przez pozostał ˛ a jedn ˛ a woln ˛ a płaszczyzn˛e.
Rozwa˙zmy teraz przypadek, w którym ˙z ˛ adane jest nowe poł ˛ aczenie w relacji (s, t), 0 6 s 6 d
n/2−1− 1, d
n/2−16 t 6 d
n−2− 1. W tym stanie w polu komu- tacyjnym jest zaj˛etych tylko d
n/2− 2 płaszczyzn przez relacje mog ˛ ace zablokowa´c poł ˛ aczenie h0, 0i, poniewa˙z przy wykorzystaniu Algorytmu 1 relacja (s, t) i jedno z pozostałych poł ˛ acze´n mo˙ze by´c zestawione w tej samej płaszczy´znie. Wraz ze wzrostem liczby relacji podobnych do (s, t), liczba wymaganych płaszczyzn maleje. Przykład takiego przypadku został przedstawiony na rys. 7. Poł ˛ a- czenia mi˛edzy wej´sciami komutatorów sekcji pierwszej numerowanymi od 0 do d
n/2− 1 i wyj´sciami komutato- rów ostatniej sekcji numerowanymi od 0 to d
n/2− 1 (wy- kluczaj ˛ ac poł ˛ aczenie h0, 0i) musz ˛ a by´c zestawione przez d
n/2− 1 ró˙znych płaszczyzn, poniewa˙z ka˙zda ze ´scie˙zek tych poł ˛ acze´n zawiera w sobie ł ˛ acze mi˛edzysekcyjne L1.
Załó˙zmy, ˙ze dwie relacje (s, s) i (t, t) zostan ˛ a rozł ˛ aczo- ne. Po rozł ˛ aczeniu dwie nowe płaszczyzny s ˛ a dost˛epne dla poł ˛ aczenia h0, 0i. Niech nowymi ˙z ˛ adanymi relacjami b˛ed ˛ a (s, t) i (t, s). Relacje te mog ˛ a by´c zestawione w tej samej płaszczy´znie, poniewa˙z zbiory zajmowanych ł ˛ aczy mi˛edzysekcyjnych przez te relacje s ˛ a zbiorami rozł ˛ aczny- mi.
Rozwa˙zmy teraz inny stan pola komutacyjnego. W tym stanie jest d typów relacji, które s ˛ a oznaczane przez (s
r, t
r), 1 6 r 6 d, (r − 1)d
n/2−16 s
r6 (r − 1) · d
n/2−1− 1, (r − 1)d
n/2−16 t
r6 (r − 1) · d
n/2−1− 1.
Relacje te mog ˛ a by´c zestawiane przez d
n/2płaszczyzn.
Płaszczyzny te s ˛ a wymagane przez relacje o indeksach od 2 do d. Relacje (s
1, t
1) zajm ˛ a tylko d
n/2− 1 płasz- czyzn, poniewa˙z poł ˛ aczenie h0, 0i jest nowym, ˙z ˛ adanym poł ˛ aczeniem. Załó˙zmy, ˙ze jedna z relacji (s
1, t
1) i jedna z pozostałych typów relacji (oznaczonych jako (s
0r, t
0r)) zostan ˛ a rozł ˛ aczone. Niech nast˛epnym poł ˛ aczeniem b˛edzie (s
1, t
0r) (lub (s
0r, t
1)). Pomimo tego, ˙ze wszystkie poł ˛ acze- nia zestawione w polu komutacyjnym zajm ˛ a d
n/2płasz- czyzn, nie wi˛ecej ni˙z d
n/2−2(d − 1)
2płaszczyzn b˛edzie niedost˛epne dla poł ˛ aczenia (s
1, t
0r) (lub (s
0r, t
1)). Pozo- staje d
n/2płaszczyzn do zestawienia poł ˛ acze´n tych poł ˛ a- cze´n. Na rysunku 8 zostały przedstawione te typy relacji.
Wszystkie relacja (s
2, t
2) i (s
3, t
3) mog ˛ a by´c zestawio- ne przez d
n/2płaszczyzn, poniewa˙z ´scie˙zki poł ˛ aczeniowe tych relacji zwieraj ˛ a ł ˛ acza mi˛edzysekcyjne odpowiednio L2 lub L3. Załó˙zmy, ˙ze relacje (s
01, t
01) i (s
02, t
02) zostan ˛ a rozł ˛ aczone. Now ˛ a ˙z ˛ adan ˛ a relacj ˛ a jest (s
01, t
02). Relacja ta mo˙ze by´c blokowana przez d
n/2−2(d − 1)
2relacji, które s ˛ a zestawiane przez ł ˛ acza mi˛edzysekcyjne L4 i L5. Pozo- stałe płaszczyzny s ˛ a dost˛epne dla poł ˛ aczenia (s
01, t
02).
W ogólno´sci, relacja (x, y) mo˙ze by´c blokowana przez d
n/2− 1 relacji (s, t), x − x mod d
n/2−16 s 6 x − x mod d
n/2−1+ d
n/2−1− 1, y − y mod d
n/2−16 t 6 y − y mod d
n/2−1+ d
n/2−1− 1, w d
n/2−1− 1 płasz- czyznach. Do zestawienia relacji (x, y) wykorzystana zo- stanie płaszczyzna o numerze d
n/2. Tak wi˛ec, co najwy˙zej d
n/2płaszczyzn b˛edzie zaj˛etych przez te relacje. ¤ Zgodnie z Twierdzeniem 1 liczba płaszczyzn jest ta- ka sama jak dla przestrajalnego pola komutacyjnego pre- zentowanego w [6].
5. WNIOSKI
W artykule przedstawiono algorytm sterowania nie-
blokowalnymi w szerokim sensie wielopłaszczyznowymi
polami typu log
d(N, 0, p). Algorytm ten bazuje na algo-
rytmie prezentowanym w [11]. Do zestawienia nowego
poł ˛ aczenia wybierana jest płaszczyzna, w której zesta-
wienie tego poł ˛ aczenia spowoduje zablokowanie jak naj-
mniejszej liczby nast˛epnych, nowych poł ˛ acze´n. Udowod-
niono równie˙z, ˙ze gdy liczba płaszczyzn pola jest równa
lub wi˛eksza d
n/2i n jest parzyste, przy zastosowaniu Al-
gorytmu 1 zawsze mo˙zliwe jest znalezienie płaszczyzny
dla nowego poł ˛ aczenia. Oznacza to, ˙ze dla tych warun-
ków i dla prezentowanego algorytmu, pole log
d(N, 0, p)
jest nieblokowalne w szerokim sensie. Wymagana liczba
płaszczyzn w polu WSNB jest taka sama jak w polu prze-
strajalnym.
d n
/2 -1 d
/