• Nie Znaleziono Wyników

PLANOWANIE PRZEPŁYWU PAKIETÓW W POLACH CLOSA TYPU MSM Z WYKORZYSTANIEM STAŁYCH SCHEMATÓW POŁĄCZEŃ

N/A
N/A
Protected

Academic year: 2021

Share "PLANOWANIE PRZEPŁYWU PAKIETÓW W POLACH CLOSA TYPU MSM Z WYKORZYSTANIEM STAŁYCH SCHEMATÓW POŁĄCZEŃ"

Copied!
6
0
0

Pełen tekst

(1)

Janusz Kleban

janusz.kleban@et.put.poznan.pl Sławomir Węclewski

sweclewski@omnitel.pl

Wydział Elektroniki i Telekomunikacji Politechnika Poznańska

PLANOWANIE PRZEPŁYWU PAKIETÓW W POLACH CLOSA TYPU MSM Z WYKORZYSTANIEM STAŁYCH SCHEMATÓW POŁĄCZEŃ

Streszczenie: W pracy przedstawiono algorytmy planowania przepływu pakietów w trzysekcyjnym polu Closa MSM bazujące na stałych schematach połączeń. Zaproponowano nowy algorytm SD-BLM pozwalający na osiągnięcie lepszych wyników dla ruchu nierównomiernego, w szczególności dla transdiagonalnego. Na bazie eksperymentów symulacyjnych porównano średnie opóźnienie komórek oraz długości kolejek VOQ przy zastosowaniu algorytmów proponowanych w literaturze oraz algorytmów SD i SD-BLM.

1. WSTĘP

Rozwój Internetu w kierunku sieci multimedialnej świadczącej różnego rodzaju usługi zależy w dużej mierze od możliwości zbudowania pakietowych węzłów komutacyjnych o bardzo dużej pojemności. Pojedyncze porty nowoczesnych routerów już obecnie powinny obsługiwać ruch na poziomie 622 Mb/s, 2,5 Gb/s, czy nawet 10 Gb/s [1]. Tak dużych przepustowości węzłów nie można osiągnąć przy wykorzystaniu stosowanych obecnie w routerach rozwiązań technologicznych, stąd bardzo intensywnie poszukuje się nowych, skalowalnych architektur. Obecnie operatorzy sieciowi zainteresowani są głównie routerami/przełącznikami o przepustowości 120-640 Gb/s, ale przewiduje się, że węzły o większej pojemności będą potrzebne już wkrótce. Umiarkowane zainteresowanie węzłami terabitowymi spowodowane jest głównie wolniejszym niż przypuszczano rozwojem usług wymagających dużych szybkości transmisji np. wideo na żądanie. Ze względu na ograniczenia technologiczne konstruowanie węzłów sieciowych o przepustowościach sięgających Tb/s lub Pb/s jest ogromnym wyzwaniem. Węzły sieciowe o większych pojemnościach buduje się aktualnie na zasadzie tworzenia klastrów routerów o mniejszych pojemnościach. Rozwiązanie to jest jednak drogie i nie zapewnia żądanej skalowalności.

Większość proponowanych obecnie rozwiązań, dla pakietowych systemów komutacyjnych o bardzo dużych przepływnościach, wykorzystuje do przesłania przez pole komutacyjne pakiety o stałej długości zwane komórkami. Oznacza to, że pakiety o zmiennej długości napływające do węzła sieciowego (np. pakiety IP) są dzielone na segmenty o stałej długości, które następnie są pakowane do komórek i przesyłane przez pole komutacyjne do portów wyjściowych. Pakiety opuszczają węzeł komutacyjny po procesie

desegmentacji, podczas którego odzyskują pierwotną wielkość [2].

Jednym z bardzo istotnych elementów architektury pola komutacyjnego routera są bufory wykorzystywane do rozwiązywania konfliktów wynikających z kierowania pakietów do tych samych wyjść. Bufory mogą być umieszczone po stronie wejściowej, wyjściowej lub wewnątrz pola komutacyjnego [3]. W zależności od umiejscowienia wyróżniamy pola komutacyjne z buforowaniem: wejściowym IQ (ang. Input Queued), wyjściowym OQ (ang. Output Queued), mieszanym wejściowo-wyjściowym CIOQ (ang. Combined Input and Output Queued), mieszanym wejściowo-wewnętrznym CICQ (ang. Combined Input and Crosspoint Queued).

Szeroko dyskutowane w literaturze rozwiązanie z buforowaniem wejściowym zakłada wykorzystanie tzw. wirtualnych kolejek wyjściowych VOQ (ang. Virtual Output Queuing) [4], [5]. W tym przypadku bufor wejściowy w każdym porcie wejściowym jest dzielony na k równoległych kolejek, z których każda przechowuje pakiety kierowane do danego wyjścia pola komutacyjnego. Pakiety przybywające na wejście są buforowane w odpowiedniej kolejce wyjściowej i oczekują na przesłanie przez pole komutacyjne. W tym rozwiązaniu prędkość pamięci pozostaje porównywalna z szybkością linii, ale istnieje potrzeba zastosowania dobrego algorytmu planowania przepływu pakietów przez pole komutacyjne, zapewniającego osiągnięcie dużej przepływności i małego opóźnienia. Wydajność przełącznika może być zwiększona, gdy szybkość pracy pola komutacyjnego jest większa od szybkości łączy wejściowych i wyjściowych, ale w tym przypadku również wymagane są pamięci o krótkim czasie zapisu i odczytu. Różne algorytmy planowania przepływu pakietów były rozpatrywane w literaturze, większość z nich zapewnia uzyskanie 100% przepustowości dla ruchu równomiernego [2, 6-10].

W implementacji pakietowych systemów komutacyjnych o dużej przepływności coraz częściej zakłada się możliwość wykorzystania wielosekcyjnych pól komutacyjnych Closa. Pola tego typu są bardzo ciekawym rozwiązaniem ze względu na możliwość łatwej rozbudowy i zwiększania pojemności. Wyróżnia się pola Closa z buforowaniem w pierwszej i trzeciej sekcji - MSM (ang. Memory-Space-Memory) i bez buforowania - SSS (ang. Space-Space-Space).

2006

Poznańskie Warsztaty Telekomunikacyjne Poznań 7 - 8 grudnia 2006

(2)

Dalsza część artykułu dotyczy trzysekcyjnego pola Closa typu MSM. W rozdziale 2. przedstawiono budowę pola tego typu oraz stosowane oznaczenia. W rozdziale 3. omówiono algorytmy planowania przepływu pakietów wykorzystywane w trzysekcyjnym polu Closa, a w szczególności algorytmy SD i SD-BLM. Rozdział 4. zawiera charakterystykę eksperymentów symulacyjnych, otrzymane wyniki badań i ich dyskusję. Wnioski końcowe zamieszczono w rozdziale 6.

2. POLE CLOSA TYPU MSM

Pole Closa jest strukturą dobrze znaną i szeroko opisaną w literaturze [11]. Na rys. 1 przedstawiono pole Closa z kolejkami VOQ.

Przyjęto następujące oznaczenia:

• IM(i) - (i+1). komutator pierwszej sekcji (wejściowy), 0 ≤ i ≤ k-1;

• CM(r) - (r+1). komutator drugiej sekcji, 0 ≤ r ≤ m-1; • OM(j) - (j+1). komutator trzeciej sekcji (wyjściowy),

0 ≤ j ≤ k-1;

• n -liczba we/wy w każdym IM/OM; • k – liczba komutatorów IM/OM; • m -liczba komutatorów CM;

• IP(i,h) - (h+1). port wejściowy w IM(i),

0 ≤ h ≤ n-1;

• OP(j,l) - (l+1). port wyjściowy w OM(j),

0 ≤ l ≤ n-1;

• VOQ(i,j,h) - wirtualna kolejka wyjściowa w IM(i), przechowuje komórki przeznaczone dla OP(j,h); • LI(i,r) - wyjście komutatora IM(i), połączone z

komutatorem CM(r);

• LC(r,j) - wyjście komutatora CM(r), połączone z komutatorem OM(j). VOQ(0,0,0) VOQ(0,k-1,n-1) IP (0,0) IP (0,n-1) IM (0) VOQ(i,0,0) VOQ(i,k-1,n-1) IP (i,0) IP (i,n-1) IM (i) VOQ(k-1,0,0) VOQ(k-1,k-1,n-1) IP (k-1,0) IP (k-1,n-1) IM (k-1) CM (0) OM (0) CM (r) OM (j) CM (m-1) OM (k-1) LI (i, r) LC (r, j) OP (0,0) OP (0,n-1) OP (j,0) OP (j,n-1) OP (k-1,0) OP (k-1,n-1)

Rys. 1. Pole Closa typu MSM

Pierwsza sekcja składa się z k komutatorów wejściowych (IM), z których każdy ma n portów wejściowych i m wyjściowych. Druga sekcja składa się z

m, pozbawionych buforów, komutatorów (CM), z

których każdy ma k portów wejściowych i k wyjściowych. Trzecia sekcja składa się z k komutatorów wyjściowych (OM), z których każdy ma m portów wejściowych i n wyjściowych.

Każdy IM(i) zawiera n*k kolejek VOQ, których zadaniem jest eliminacja efektu HOL (ang. Head-of Line blocking). Kolejka VOQ jest oznaczana jako VOQ(i,j,h).

Każda kolejka VOQ(i,j,h) przechowuje komórki pochodzące z wejść komutatora IM(i), przeznaczone dla portów wyjściowych OP(j,h). W pojedynczej szczelinie czasowej, VOQ może otrzymywać maksymalnie n komórek z n portów wejściowych. Każdy IM(i) ma m portów wyjściowych LI(i,r) i jest połączony z każdym k-wyjściowym komutatorem CM(r). Porty wyjściowe komutatorów CM(r) oznaczane są jako LC(r,j) i są podłączone do jednego z k komutatorów OM(j).

OM(j) ma n portów wyjściowych, każdy jest oznaczony jako OP(j,h) i posiada bufor. W pojedynczej szczelinie czasowej, bufor może otrzymać maksymalnie

m komórek, ale tylko jedną z nich może przekazać do

portu wyjściowego. Bufory te działają na zasadzie First-In-First-Out (FIFO). Przyjmujemy założenie, że bufory te mają nieskończoną długość.

3. ALGORTMY PLANOWANIA PRZEPŁYWU PAKIETÓW W POLU CLOSA MSM

Ze względu na zjawisko blokady zewnętrznej i wewnętrznej przesłanie komórki przez pakietowe pole komutacyjne musi być poprzedzone decyzjami, które komórki z poszczególnych wejść będą w danej szczelinie czasowej przesłane do żądanych wyjść. W praktyce stosuje się układy planowania zwane także arbitrami, których zadaniem jest rozstrzyganie sporów o dostęp do żądanych wyjść. Stosowane są różne metody arbitrażu decydujące o akceptacji bądź odrzuceniu żądania przesłania komórki z wejścia na wyjście pola komutacyjnego. Można wyróżnić trzy podstawowe metody wykorzystywane w arbitrażu: wybór przypadkowy (ang. Random Selection), wybór zgodnie z zasadą FIFO (and. First In First Out) oraz round-robin (quasi-przypadkowy) – jest to najczęściej stosowany algorytm polegający na rozpoczęciu poszukiwania komórki do przesłania od kolejki o numerze o 1 większym w stosunku do numeru kolejki, która otrzymała akceptację w poprzedniej szczelinie czasowej.

W procesie wyboru komórki, która będzie transmitowana przez pole komutacyjne z danego wejścia do żądanego wyjścia przesyłane są następujące sygnały: • Żądanie (ang. Request) – sygnał żądania połączenia

wysyłany z buforów wejściowych do arbitrów powiązanych z wyjściami.

• Potwierdzenie (ang. Grant) – sygnał potwierdzający możliwość zrealizowania żądania.

• Akceptacja (ang. Accept) – sygnał ostatecznej akceptacji, po którym dochodzi do transmisji komórki.

Proces podejmowania decyzji o tym, która komórka z wejścia zostanie przesłana do wyjścia składa się co najmniej z trzech etapów, w których przesyłane są sygnały żądania, potwierdzenia oraz akceptacji.

Przykładowe algorytmy planowania przepływu pakietów w polach jednosekcyjnych to [2]: PIM (ang. Parallel Iterative Matching), iRRM (ang. Iterative Robin Matching), iSLIP (ang. Iterative Round-Robin with SLIP) oraz DRRM (ang. Dual Round-Round-Robin Matching). Przykładowe algorytmy wykorzystywane w trzysekcyjnych polach Closa to [7], [8]: RD (ang. Random Dispatching), CRRD (ang. Concurrent Round – Robin Dispatching), CMSD (ang. Concurrent Master –

(3)

Slave Round – Robin Dispatching). Algorytm CMSD jest ulepszoną wersją algorytmu CRRD, dlatego wyniki uzyskiwane dla tego algorytmu są w rozdz. 4 wykorzystane do porównania z wynikami otrzymanymi za pomocą nowych algorytmów.

Implementacje pól komutacyjnych w obecnie produkowanych węzłach komutacyjnych bazują na technologii SERDES. Jedna szczelina czasowa w polu z portami 10 Gb/s trwa ok. 50 ns. W tak krótkim czasie bardzo trudno zrealizować arbitraż oparty na przesyłaniu sygnałów żądanie-potwierdzenie-akceptacja, które muszą być parokrotnie przesłane przez złącza szeregowe zrealizowane zgodnie z technologią SERDES. Istnieje zatem potrzeba poszukiwania algorytmów, które minimalizowałyby liczbę interakcji między poszczególnymi elementami pola komutacyjnego. Kryterium to spełniają algorytmy oparte na stałych schematach połączeń. Do grupy tej należą: SD (ang. Static Desynchronization) i MMSD (ang. Maximal Matching Static Desynchronization) [10]. Statyczną desynchronizację wskaźników wykorzystano w algorytmach: SSRR (ang. Single Static Round-Robin), DSRR (ang. Double Static Round-Robin) and SRRD (ang. Static Round-Robin Dispatching) zaproponowa-nych w [8]. Dla porównania w rozdziale 4. zamieszczono wyniki uzyskane dla algorytmu SRRD. Algorytmy należące do tej grupy nie minimalizują liczby interakcji między poszczególnymi elementami pola komutacyjnego, lecz wymuszają cykliczną realizację określonych schematów połączeń w każdym komutatorze wejściowym.

Algorytm SD

W algorytmie SD (ang. Static Dispatching), dzięki stałemu schematowi połączeń w środkowej sekcji pola oraz odpowiedniemu dopasowaniu wyjść LI(i,r) z kolejkami VOQ, możliwe jest uniknięcie konfliktu komórek przy jednoczesnej eliminacji potrzeby arbitrażu. Stały schemat połączeń w komutatorach środkowej sekcji pola Closa typu MSM umożliwia utworzenie drogi połączeniowej między dowolnym komutatorem IM(i) a dowolnym komutatorem OM(j), przy czym między parą komutatorów zewnętrznych istnieje wyłącznie jedna droga. Oznacza to, że każdy z komutatorów IM może przesłać komórkę do każdego z komutatorów OM, lecz poszczególne wyjścia LI przesyłają komórki do innego komutatora OM. W związku z powyższym, istnieje możliwość wyeliminowania drugiej sekcji pola i połączenie wyjść komutatorów IM bezpośrednio z wejściami komutatorów OM, co będzie przedmiotem dalszych badań. Schemat stałych połączeń w komutatorach drugiej sekcji (CM) dla przykładowego pola C(3,3,3) przedstawiono na rys. 2.

Zgodne z architekturą trzysekcyjnego pola Closa, każde wyjście LI(i,r), jest połączone z innym komutatorem centralnym i wyczytuje komórki z ściśle określonych kolejek VOQ przechowujących komórki do wyjść danego modułu wyjściowego OM. Wyjście LI(i,r) może więc wysyłać komórki do komutatora OM(j), gdzie j=(i+r) mod k. Kolejki, które posiadają komórki do

danego OM(j) będziemy nazywali skojarzonymi z wyjściem LI(i,r).

CM(0) CM(1) CM(2)

Rys. 2. Stały schemat połączeń w komutatorach środkowej sekcji w polu C(3,3,3)

Kroki algorytmu SD:

Krok 1: Każde wyjście LI(i,r) przeszukuje skojarzone z nim kolejki VOQ i wybiera pierwszą napotkaną, niepustą kolejkę.

Krok 2: Z kolejki wybranej w kroku 1 w następnej szczelinie czasowej jest przesyłana najstarsza komórka.

Krok 3: Jeśli w kroku 1 nie znaleziono komórki, która może być przesłana przez dane wyjście LI (i,r), to w następnej szczelinie czasowej pozostaje ono nieobsadzone.

Algorytm SD-BLM

Autorzy proponują algorytm SD-BLM (ang. Static Dispatching with Buffers Load Monitoring) jako rozwinięcie algorytmu SD. Jego cechą charakterystyczną jest możliwość rozładowania najbardziej obciążonych buforów. Rzeczywisty rozkład ruchu w węźle pakietowym jest daleki od równomiernego, z tego względu część kolejek VOQ wypełnia się szybciej od innych. Przykładem ruchu nierównomiernego, jest ruch transdiagonalny, w którym połowa komórek kierowana jest do komutatora wyjściowego o takim samym numerze jak komutator wejściowy, a druga połowa komórek jest równomiernie rozsyłana do reszty wyjść. Możliwość rozładowania najbardziej obciążonych buforów powoduje, że komórki zajmujące dalsze miejsca w kolejkach zostaną szybko przesunięte do przodu, co obniża średnią wartość opóźnienia komórek w polu komutacyjnym.

W celu realizacji algorytmu SD-BLM konieczne jest wprowadzenie liczników OMCC(i,j) (ang. OM’s Cells Counter) zliczających komórki przechowywane w wirtualnych kolejkach wyjściowych VOQ(i,j,h) w modułach IM(i) i kierowanych do danego OM(j). Licznik, który osiągnął wartość większą lub równą n, wysyła sygnał „przeciążonego bufora” do arbitra centralnego. Arbiter centralny posiada bitową macierz obciążenia buforów, w której zapisuje czy dana para komutator wejściowy – komutator wyjściowy posiada co najmniej n komórek do przesłania. Wiersze tej macierzy określają numer komutatora IM(i), kolumny natomiast numer komutatora OM(j). Elementy macierzy przyjmują wartość 0 lub 1, przy czym wartość 1 wskazuje, że jest co najmniej n komórek do przesłania między IM(i) oraz OM(j). Na rys. 3 przedstawiono przykładową macierz obciążenia buforów, po otrzymaniu sygnałów od liczników OMCC. Przedstawiona na rysunku sytuacja może wystąpić w ruchu transdiagonalnym. W tym przypadku arbiter wymusza takie zestawienie połączeń

(4)

w polu, aby komórki z IM(1) były przesyłane do OM(1), z IM(2) do OM(2) itd. Faza rozładowania buforów jest realizowana tylko wówczas, gdy każdy IM(i) ma do przesłania co najmniej n komórek do OM(i). Jeśli wypełnienie buforów nie osiągnęło wartości n stosowany jest algorytm SD.

          1 0 0 0 1 0 0 0 1

Rys. 3. Macierz obciążenia buforów, pole C(3,3,3)

Etapy algorytmu SD-BLM:

Etap1: Aktualizacja liczników OMCC oraz wysłanie sygnałów do arbitra centralnego

Krok1: Po zapamiętaniu nowych komórek, dokonaj aktualizacji liczników OMCC(i,j) w każdym module wejściowym.

Krok2: Jeśli wartość licznika OMCC(i,j) jest równa lub większa od n, wyślij sygnał do arbitra centralnego.

Krok3: Po otrzymaniu sygnałów od liczników OMCC arbiter centralny sprawdza, czy na przekątnej macierzy obciążenia buforów występują jedynki. Jeśli jedynki nie występują, to przejdź do kroku 4, jeśli występują to przejdź do Etapu 2.

Krok4: Realizuj przesyłanie komórek zgodnie z algorytmem SD. Przejdź do kroku 1.

Etap2: Dopasowanie modułów IM-OM przez arbitra centralnego

Krok1: W każdym komutatorze IM(i), wybierz dokładnie n komórek spośród n kolejek

przechowujących komórki do wyjść komutatora OM(i) wskazanego przez arbitra.

Krok3: W następnej szczelinie czasowej prześlij z komutatora IM(i) n komórek do komutatora OM(i). Przejdź do Etapu 1.

4. EKSPERYMENTY SYMULACYJNE

W celu przeprowadzenia badań symulacyjnych zaprezentowanych algorytmów planowania pakietów w polach Closa z buforowaniem w pierwszej i trzeciej sekcji, powstał program komputerowy ClosNetSimulla. Umożliwia on symulowanie działania pola Closa dla dowolnego algorytmu oraz zadanego obciążenia.

Środowisko symulacyjne ClosNetSimulla można podzielić na trzy zasadnicze elementy. Pierwszym z nich jest program będący właściwym symulatorem, który pozwala na przeprowadzanie eksperymentów symulacyjnych, definiowanie rodzaju pola, wybór algorytmu i określenie przebiegu symulacji (obciążenie, liczba powtórzeń, długość serii, itp.). Drugim elementem jest biblioteka Network, która zawiera wszystkie niezbędne elementy do budowy pól Closa oraz algorytmów sterujących, takie jak: klasy komutatora, arbitrów, buforów, itp. Trzecim elementem są właściwe algorytmy dołączone w postaci biblioteki Algorithms.

Eksperymenty symulacyjne wykonano dla wartości obciążenia z przedziału od 0,05 do 1 z krokiem równym 0,05. Czas poprzedzający symulację wynosił 15000 cykli (szczelin czasowych), natomiast czas obserwacji w jednej serii obejmował 35000 cykli. Badane było opóźnienie pakietów rozumiane, jako czas potrzebny do dokonania wyboru kolejki i przesłania komórki z wejścia na wyjście komutatora sekcji pierwszej pola Closa. Inne mierzone wartości to średnia i maksymalna długość kolejek VOQ. Opóźnienie wprowadzane przez bufory wyjściowe w sekcji trzeciej nie było brane pod uwagę.

Symulacji poddano algorytmy CMSD, SRRD, SD oraz SD-BLM w polu Closa C(8,8,8). Pomiary przeprowadzono dla ruchu równomiernego, paczkowego (długość paczki równa 10) oraz dla ruchu transdiagonalnego. W przypadku algorytmu CMSD przeprowadzono osobno symulacje dla jednej i czterech iteracji wewnątrz modułu IM (oznaczonych jako iIM), jednak ze względu na przejrzystość wykresów podano jedynie wyniki dla czterech iteracji, ponieważ są one zawsze lepsze od wyników dla jednej iteracji. Większa liczba iteracji nie powodowała widocznej poprawy jakości działania algorytmu. Wyniki eksperymentów symulacyjnych przedstawiono na rys. 4-10, ze względu na małe wartości pominięto 95% przedziały ufności.

Ruch równomierny

W eksperymentach symulacyjnych ruch równomierny był generowany zgodnie z rozkładem Bernoulliego. Wszystkie symulowane algorytmy osiągnęły 100% przepustowość (rys. 4). Na podkreślenie zasługuje fakt uzyskania przez prosty algorytm SD dobrych wyników, w porównaniu z algorytmami opartymi na skomplikowanym arbitrażu. Dla algorytmu SD-BLM mierzone wartości praktycznie pokrywały się z wynikami uzyskanymi dla algorytmu SD. Wynika to z tego, że arbiter centralny bardzo rzadko i to jedynie w przypadku obciążenia bliskiego 1 potrafił dopasować odpowiednie moduły IM-OM. Można stwierdzić, że przez zdecydowaną większość czasu, algorytm SD-BLM pracował jak SD. Pomimo czterech iteracji w algorytmie CMSD dla obciążenia powyżej 0,7, średnie opóźnienie komórek rosło znacznie szybciej niż w przypadku proponowanych w artykule algorytmów SD i SD-BLM. Zgodnie z przewidywaniami, średnia długość kolejek VOQ była największa dla algorytmów SRRD oraz CMSD (rys.5). Wynika to z prostego faktu, że im mniejsze średnie opóźnienie komórek tym szybciej opuszczają one kolejki VOQ i trafiają do buforów wyjściowych. Widoczne jest zatem pogorszenie wartości średniej długości kolejek VOQ dla algorytmu CMSD w stosunku do SD i SD-BLM dla obciążenia powyżej 0,75. Algorytm SSRD osiągnął najsłabsze rezultaty w zakresie średniego opóźnienia komórek, tak więc średnia długość kolejek VOQ w przypadku tego algorytmu odstaje od pozostałych algorytmów dla każdej wartości obciążenia wejściowego. Podobną tendencję można zauważyć obserwując wykres przedstawiający maksymalną liczbę komórek w kolejkach VOQ (rys. 6).

(5)

1 10 100 1000 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Ś re dn ie op ó źnie nie k om ó re k [s z c z el in y cz as o w e] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 4. Średnie opóźnienie komórek (ruch równomierny)

0,00001 0,0001 0,001 0,01 0,1 1 10 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Ś re dnia d ługo ść VOQ [ li c z b a ko m ó rek ] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 5. Średnia długość VOQ (ruch równomierny)

1 10 100 1000 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 M a ksy mal n a d ługo ść VOQ [l ic z b a ko re k] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 6. Maksymalna długość VOQ (ruch równomierny)

Ruch paczkowy

Dla ruchu paczkowego przyjęto długość paczki równą 10. Średnie opóźnienie komórek w przypadku wszystkich algorytmów pogorszyło się, lecz tendencje są zbliżone do zaobserwowanych w przypadku ruchu równomiernego. Uzyskane wyniki obejmujące średnie opóźnienie komórek, średnią długość VOQ i maksymalną długość VOQ przedstawiono na rys. 7-9.

1 10 100 1000 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Ś re dn ie op ó źnie nie k om ó re k [s z c z el in y cz as o w e] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 7. Średnie opóźnienie komórek (ruch paczkowy, b=10)

0,001 0,01 0,1 1 10 100 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Ś re dnia d ługo ść VOQ [ li c z b a ko m ó rek ] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 8. Średnia długość VOQ (ruch paczkowy, b=10)

1 10 100 1000 10000 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 M a ksy mal n a d ługo ść VOQ [l ic z b a ko re k] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 9. Maksymalna długość VOQ (ruch paczkowy, b=10)

Ruch nierównomierny

Jako przykład ruchu nierównomiernego w eksperymentach symulacyjnych wykorzystano ruch transdiagonalny, który jest ruchem bardzo trudnym z punktu widzenia planowania przepływu pakietów. W tym przypadku następuje koncentracja ruchu między komutatorami pierwszej i trzeciej sekcji o tych samych numerach. Prawdopodobieństwo skierowania pakietu z komutatora IM(i) do danego komutatora OM(j) można opisać następująco:    − = = wypadku przeciwnym w N j i dla pij ) 1 ( 2 / 2 / , ρ ρ

(6)

Eksperymenty symulacyjne pokazały, że algorytmy: SD, CMSD oraz SRRD nie osiągnęły 100% przepustowości (rys. 10), gdy rozkład ruchu jest transdiagonalny. Powyżej określonego obciążenia średnie opóźnienie komórek dla tych algorytmów przekracza 1000 szczelin czasowych. Na rys. 10 nie przedstawiono większego opóźnienia niż wspomniana wartość, gdyż uznano, że stosowanie tych algorytmów w rzeczywistym sprzęcie nie ma sensu.

Ze względu na to, że w algorytmie SD, w ciągu jednej szczeliny czasowej, z jednego komutatora IM można wysłać co najwyżej jedną komórkę do jednego z komutatorów wyjściowych, nie nadaje się on do planowania przepływu pakietów, gdy rozkład ruchu ma charakter diagonalny. Dla obciążenia na poziomie 0,25 średnie opóźnienie komórek wyniosło powyżej 1000 szczelin czasowych. Powoduje to konieczność umieszczenia bardzo dużych buforów w węźle pakietowym i skutkuje nieakceptowalnymi opóźnieniami w transmisji. Średnie opóźnienie komórek dla algorytmu SD-BLM, dla obciążenia powyżej 0,3 waha się w okolicach 50 szczelin czasowych, co wskazuje na dużą rolę wprowadzonego mechanizmu rozładowania buforów. Wraz z wzrostem obciążenia, do wejść napływa coraz więcej komórek, z drugiej strony arbiter centralny coraz częściej podejmuje decyzję o rozładowaniu VOQ poprzez narzucenie określonego schematu połączeń pozwalających na przesłanie komórek pomiędzy IM(i) oraz OM(i). W przypadku algorytmu CMSD, osiąga on małe średnie opóźnienie poniżej obciążenia o wartości 0,65. Dla wyższych obciążeń, średnie opóźnienie dla tego algorytmu przekracza 1000 szczelin czasowych, mimo czterokrotnej iteracji. Algorytm SRRD osiągnął średnie opóźnienie komórek porównywalne do algorytmu SD, choć jego złożoność implementacyjna jest zdecydowanie większa. 1 10 100 1000 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Ś re dn ie op ó źnie nie k om ó re k [s z c z el in y cz as o w e] SRRD CMSD iIM=4 SD SD-BLM Obciążenie

Rys. 10. Średnie opóźnienie komórek (ruch transdiagonalny)

5. UWAGI KOŃCOWE

W niniejszej pracy zaprezentowano dwa algorytmy oparte na stałych schematach połączeń. Są one dużo prostsze w implementacji sprzętowej niż algorytmy oparte na skomplikowanym arbitrażu, natomiast uzyskiwane wyniki są porównywalne lub lepsze od wyników uzyskiwanych za pomocą zaawansowanych

algorytmów. Eliminują one również konieczność przesyłania sygnałów żądanie-potwierdzenie-akceptacja, co znacznie upraszcza podejmowanie decyzji odnośnie komórek, które mają być przesłane z wejść do wyjść pola komutacyjnego. Zaproponowany w pracy algorytm SD-BLM może być adoptowany do ruchów o różnym rozkładzie. W artykule przedstawiono jego zastosowanie dla ruchu o rozkładzie transdiagonalnym. W przypadku innych rozkładów ruchu arbiter centralny będzie reagował na inny układ jedynek w macierzy obciążeń. Dalszych badań wymaga konkretna implementacja sprzętowa zaproponowanych algorytmów oraz sygnalizowana w rozdz. 3 możliwość uproszczenia struktury pola komutacyjnego.

SPIS LITERATURY

[1] F. M. Chiussi, A. Francini: “Scalable Electronic Packet Switches”, IEEE Journal of Selected Areas

in Communications, vol. 21, no. 4, 2003.

[2] H. J. Chao, C. H. Lam, and E. Oki: Broadband

Packet Switching Technologies: A Practical Guide to ATM Switches and IP Routers, Willey, New

York, 2001.

[3] K. Yoshigoe and K.J. Christensen: “An evolution to crossbar switches with virtual ouptut queuing and buffered cross points'”, IEEE Network, vol. 17, no. 5, pp. 48-56, 2003.

[4] Y. Tamir and G. Frazier: “High performance multi-queue buffers for VLSI communications switches”, in Proc. Computer Architecture, pp., 343-354. [5] T. Anderson, et al.: “High-speed switch scheduling

for local-area networks”, ACM Trans. on

Computer Systems, vol. 11, no. 4, pp. 319-352,

1993.

[6] E. Oki, R. Rojas-Cessa, and H. J. Chao: “A pipeline-based approach for maximal-sized matching scheduling in input-buffered switches”,

IEEE Communications Letters, vol. 5, no. 6, pp.

263-265, 2001.

[7] E. Oki, Z. Jing, R. Rojas-Cessa, and H. J. Chao: “Concurrent Round-Robin-Based Dispatching Schemes for Clos-Network Switches”, IEEE/ACM

Trans. on Networking, vol. 10, no.6, pp. 830-844,

2002.

[8] K. Pun, M. Hamdi: “Dispatching schemes for Clos-network switches” Computer Networks no. 44, pp.667-679, 2004.

[9] J. Kleban, A. Wieczorek: "CRRD-OG: A Packet Dispatching Algorithm with Open Grants for Three-Stage Buffered Clos-Network Switches",

IEEE High Performance Switching and Routing 2006, Poznań, June 07-09, 2006, pp.315-320.

[10] J. Kleban, H. Santos: "Packet Dispatching Algorithms with Static Desynchronization for Three-Stage Buffered Clos-Network Switches",

4th Polish-German Teletrafic Symposium PGTS 2006, Wrocław, September 21-22, 2006, pp.

187-194.

[11] C. Clos: “A Study of Non-Blocking Switching Networks”, Bell Sys. Tech. Jour., pp. 406-424, March 1953.

Cytaty

Powiązane dokumenty

Mierzono parametry przepływu takie, jak: profi l prędkości w dwóch prostopadłych przekrojach, inten- sywność turbulencji, odchylenie strugi od osi komory, temperaturę

Zaprezentowano badania symulacyjne odpowiedzi dynamicznego modelu anemometru skrzydełkowego na zmieniającą się wartość mierzonej prędkości wynikającą bezpośrednio z

Za wybór komórek do przesłania z wejść do wyjść oraz za rozwiązywanie konfliktów w dostępie do zasobów wewnętrznych pola jest odpowiedzialny algorytm

Praca przedstawia program napisany w języku C++, w którym zaimplementowano procedury do obliczania pola magnetycznego generowanego przez linię napowietrzną oraz

W artykule zaprezentowano implementację algorytmu multiplikacji częstotliwości pojedynczego sygnału czujnika położenia wału w celu umożliwienia sterowania silnikiem

Na rysunku 2 porównano czasy obliczeń dla zadania lokalizacji 1÷5 łączników w dopuszczalnych 176 punktach sieci dystrybucyjnej z zastosowaniem metody

Podobnie obiekty z grupy kontrolnej możemy porównać przed i po zabiegu za pomocą testu dla par. Dowiemy się czy była zmienność w każdej z

• Języki wysokiego poziomu: ADA, Pascal, Fortran, C++, Lisp, B, SmallTalk, Java. "Podstawy informatyki", Tadeusz Wilusz