OCENA WYBRANYCH ALGORYTMÓW PLANOWANIA PRZEPŁYWU PAKIETÓW W TRZYSEKCYJNYM POLU CLOSA



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

BADANIE STABILNOŚCI ALGORYTMU STEROWANIA POLEM CLOSA TYPU MSM

BADANIE ALGORYTMÓW STEROWANIA PAKIETOWYMI POLAMI KOMUTACYJNYMI

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Uproszczenie mechanizmów przekazywania pakietów w ruterach

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Szeregowanie pakietów

GMPLS based control plane for Optical Burst Switching Network

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

ZiMSK. VLAN, trunk, intervlan-routing 1

Komutacja ATM i IP. Dr inż. Robert Wójcik. na podstawie wykładu Prof. dr hab. inż. Andrzeja Jajszczyka

Wprowadzenie do programowania

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

Wybrane mechanizmy gwarantowania jakości usług w sieciach IP. Dariusz Chaładyniak, Maciej Podsiadły * Warszawska Wyższa Szkoła Informatyki

Elementy Modelowania Matematycznego

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Colloquium 1, Grupa A

Dr Michał Tanaś(

Ćwiczenie 1. Badanie struktury pola komutacyjnego centrali S12

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

Redukcja kosztów połączeń telekomunikacyjnych przy wykorzystaniu central ISDN PABX

Architektura komputerów

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Wykład IV. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

Co w sieci siedzi. Warstwa 2 - konfiguracja sieci VLAN. Routing między sieciami VLAN.

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

LABORATORIUM SYSTEMY I SIECI TELEKOMUNIKACYJNE CZĘŚĆ 2 MODELOWANIE SIECI Z WYKORZYSTANIEM SYMULATORA NCTUNS

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Programowanie współbieżne Wykład 2. Iwona Kochańska

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Sieci Komputerowe 2 / Ćwiczenia 2

Zarządzanie procesorem

5. Algorytm genetyczny przykład zastosowania

Wykład 3: Internet i routing globalny. A. Kisiel, Internet i routing globalny

Zaawansowana konfiguracja przełącznika TP-Link TL-SG3224

Planowanie przydziału procesora

Sieci WAN. Mgr Joanna Baran

Sterowanie ruchem w sieciach szkieletowych

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Algorytmy sztucznej inteligencji

w sieciach szerokopasmowych CATV i ISP - Model OSI

Model OSI. mgr inż. Krzysztof Szałajko

Warstwy i funkcje modelu ISO/OSI

ARCHITEKTURA USŁUG ZRÓŻNICOWANYCH

Przetwarzanie równoległe

Kształtowanie ruch w sieciach Linux

Planowanie przydziału procesora

Na powyższym obrazku widać, że wszystkie 24 porty przełącznika znajdują się w tej samej sieci VLAN, a mianowicie VLAN 1.

Mosty przełączniki. zasady pracy pętle mostowe STP. Domeny kolizyjne, a rozgłoszeniowe

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Sposoby klastrowania aplikacji webowych w oparciu o rozwiązania OpenSource. Piotr Klimek. piko@piko.homelinux.net

Lista propozycji tematów prac dyplomowych

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Numer ćwiczenia: 2. Laboratorium z przedmiotu: PODSTAWY TELEKOMUTACJI

Rozproszony system zbierania danych.

Urządzenia sieciowe. Tutorial 1 Topologie sieci. Definicja sieci i rodzaje topologii

Planowanie przydziału procesora

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA CZĘŚĆ I

Architektura komputerów

Programowanie w językach asemblera i C

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

JAK PRAWIDŁOWO SPRAWOZDAWAĆ ZASIĘGI SIECI

dr inż. Jarosław Forenc

Aplikacja Sieciowa wątki po stronie klienta

Rodzaje, budowa i funkcje urządzeń sieciowych

Metody optymalizacji soft-procesorów NIOS

Architektura komputerów

Lekcja 5. Funkcje handlemessage() i initialize(), konstruktor i destruktor

PORADNIKI. Routery i Sieci

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

TELEFONIA INTERNETOWA

Programowanie w VB Proste algorytmy sortowania

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Lekcja 1. Środowisko OMNeT++

(12) OPIS PATENTOWY (19) PL (11) (13) B1 PL B1 H04M 11/00 H04L 12/16 G06F 13/00 RZECZPOSPOLITA POLSKA. (21) Numer zgłoszenia:

Architektura komputerów

Łukasz Januszkiewicz Technika antenowa

R o g e r A c c e s s C o n t r o l S y s t e m 5

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Problematyka sieci miejscowej LIN

Przesyłania danych przez protokół TCP/IP

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Modelowanie w projektowaniu maszyn i procesów cz.5

Konfiguracja parametrów pozycjonowania GPS /5

Pola komutacyjne pusty

Kod produktu: MP-W7100A-RS232

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Sieci zorientowane na przepływy FAN

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

Wykład 3. Interfejsy CAN, USB

POLA log 2 (N, 0, p) NIEBLOKOWALNE W SZEROKIM SENSIE Z ZEROWYMI PRZENIKAMI

Elementy modelowania matematycznego

Urządzenia sieciowe. Część 1: Repeater, Hub, Switch. mgr inż. Krzysztof Szałajko

Dwa lub więcej komputerów połączonych ze sobą z określonymi zasadami komunikacji (protokołem komunikacyjnym).

Badania możliwości wprowadzenia nowej struktury wewnętrznej dla kart NetFPGA

Konfiguracja WDS na module SCALANCE W Wstęp

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Transkrypt:

Janusz Kleban janusz.kleban@et.put.poznan.pl Instytut Elektroniki i Telekomunikacji Politechnika Poznańska Adrian Wieczorek adrian@wieczorek.net.pl PAYBACK Sp. z o.o. 2005 Poznańskie Warsztaty Telekomunikacyjne Poznań 8-9 grudnia 2005 OCENA WYBRANYCH ALGORYTMÓW PLANOWANIA PRZEPŁYWU PAKIETÓW W TRZYSEKCYJNYM POLU CLOSA Streszczenie: W pracy omówiono problemy planowania przepływu pakietów w polach komutacyjnych. Szczegółowo przedstawiono kolejne kroki wybranych algorytmów planowania dla trzysekcyjnego pola Closa: RD, CRRD i CMSD oraz zaproponowano nowy algorytm CRRD-OG. Na bazie eksperymentów symulacyjnych porównano średnie opóźnienie pakietów przy zastosowaniu wspomnianych algorytmów. 1. WSTĘP Rozwój usług internetowych prowadzi do gwałtownego wzrostu liczby pakietów przesyłanych w ogólnoświatowej sieci telekomunikacyjnej. Sytuacja taka rodzi z kolei konieczność konstruowania węzłów sieciowych o dużej przepływności. Zwiększająca się przepustowość szkieletowych sieci IP implikuje konieczność zbudowania routerów/przełączników, które pracowałyby z szybkością łącza. W związku z tym 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. Większość proponowanych obecnie rozwiązań w zakresie 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 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ść [1]. 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 [2]. W zależności od umiejscowienia wyróżniamy pola komutacyjne z buforowaniem: wyjściowym OQ (ang. Output Queued), wejściowym IQ (ang. Input 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). 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 komutatora wyjściowego. 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 jednorodnego [1, 4-9]. W implementacji pakietowych systemów komutacyjnych o dużej przepływności można zaobserwować obecnie dwa kierunki rozwoju. Pierwszy z nich zakłada wykorzystywanie jednosekcyjnych pól komutacyjnych zbudowanych np. z komutatorów matrycowych (ang. crossbar). W tym przypadku liczba wejść i wyjść jest limitowana przez liczbę nóżek układu scalonego, co powoduje, że rozwiązanie to nie jest skalowalne. Drugi kierunek zakłada możliwość wykorzystania wielosekcyjnych pól komutacyjnych np. pola Closa. Pole komutacyjne Closa jest bardzo ciekawym rozwiązaniem ze względu na możliwość łatwej rozbudowy i zwiększania pojemności. Wyróżnia się pola Closa z buforowaniem i bez buforowania. Dalsza część artykułu dotyczy pola Closa z buforami w pierwszej i trzeciej sekcji oraz wybranych, iteracyjnych algorytmów planowania przepływu pakietów, które znajdują zastosowanie w tego typu polach. 2. POLE CLOSA Z BUFORAMI W PIERWSZEJ I TRZECIEJ SEKCJI Pole Closa jest strukturą dobrze znaną i szeroko opisaną w literaturze [8-10]. Na rys. 1 przedstawiono pole Closa z kolejkami VOQ. Praca wykonana w ramach Grantu KBN, umowa nr 1591/T11/2005/29. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 1/7

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) - wirtualna kolejka wyjściowa w IM(i), przechowuje komórki przeznaczone dla OM(j); L I (i, r) - wyjście komutatora IM(i), połączone z komutatorem CM(r); L C (r, j) - wyjście komutatora CM(r), połączone z komutatorem OM(j). Rys. 1. Pole Closa z buforowaniem w pierwszej i trzeciej sekcji 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. 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 porów wyjściowych OP(j,h). W pojedynczej szczelinie czasowej, VOQ może otrzymywać maksymalnie n komórek z n portów wejściowych oraz przesyłać tylko jedną z nich do komutatora CM. Każdy IM(i) ma m portów wyjściowych L I (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 L C (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 maja nieskończoną długość. 3. ALGORTMY PLANOWANIA PRZEPŁYWU PAKIETÓW W dalszych rozważaniach wzięto pod uwagę trzy algorytmy planowania przepływu pakietów: RD, CRRD, CMSD [8, 9] oraz zaproponowano kolejny algorytm CRRD-OG. Algorytm RD Algorytm RD (Random Dispatching) można podzielić na dwa etapy. W pierwszym etapie zostaje wybranych maksymalnie m kolejek VOQ, które są przydzielane poszczególnym wyjściom L I (i,r) komutatora IM. Następnie każde z wyjść wysyła do odpowiedniego komutatora CM żądanie. Powiązania między kolejkami VOQ, a portami wyjściowymi komutatora IM wykonywane są wewnątrz komutatora. Liczba kolejek VOQ jest tak wybierana, aby zawsze to było min(d new, m), gdzie d new jest liczbą niepustych kolejek VOQ. W drugim etapie każda kolejka VOQ, skojarzona z portem wyjściowym komutatora IM, wysyła żądanie do CM. Komutatory CM odpowiadają, za pomocą arbitrażu, na wybrane żądania komutatorom IM, co kończy procedurę wyboru pakietów do przesłania. Etapy algorytmu RD Etap 1: Tworzenie powiązań wewnątrz IM Krok 1: W każdej szczelinie czasowej, niepuste kolejki VOQ wysyłają żądania do wyjść L I (i,r). Krok 2: IM(i) wybiera maksymalnie m spośród n*k żądań wysłanych przez kolejki VOQ. Na przykład taką selekcję można wykonać za pomocą arbitrażu round-robin. Następnie, IM(i) wybiera maksymalnie m kolejek, które potencjalnie będą mogły przesłać komórki do przypadkowo wybranych komutatorów CM. Etap 2: Tworzenie powiązań pomiędzy IM a CM Krok 1: Wyjście L I (i,r) wysyła żądanie do odpowiedniego komutatora CM(r). Każdy komutator CM(r) ma k wyjść L C (r,j) i każde z nich prowadzi do komutatora trzeciej sekcji OM(j). Arbiter, który powiązany jest z L C (r,j) wybiera jedno żądanie spośród k żądań. Do tego arbitrażu używany jest algorytm wyboru przypadkowego. CM(r) wysyła maksymalnie k potwierdzeń (od każdego skojarzonego wyjścia L C (r,j)) do odpowiednich komutatorów IM. Krok 2: Jeśli kolejka VOQ w komutatorze IM otrzyma potwierdzenie od CM, przesyła wybraną komórkę w następnej szczelinie czasowej. W przeciwnym wypadku, kolejka VOQ będzie kandydatem w kroku drugim pierwszego etapu, w następnej szczelinie czasowej. Maksymalna przepustowość, jaka może być uzyskana przy wykorzystaniu algorytmu RD jest równa 63%, przy założeniu, że k dąży do nieskończoności. Aby osiągnąć 100% przepustowości stosunek m/n musi wynieść 1.582, czyli komutatorów w środkowej sekcji PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 2/7

musi być więcej niż komutatorów w sekcjach zewnętrznych. Algorytm CRRD Aby zwiększyć przepustowość komutatorów stosujących algorytm RD, należałoby zwiększyć liczbę komutatorów środkowej sekcji. Jest to bardzo niekorzystny efekt, gdyż wraz z przepustowością rośnie wielkość i cena urządzenia. Algorytm CRRD (Concurrent Round Robin Dispatching) niweluje ten niekorzystny efekt wprowadzając arbitraż round robin. Dla lepszej desynchronizacji wskaźników zmieniamy ułożenie kolejek VOQ(i,j,h) wewnątrz IM(i). W każdej sekcji wejściowej grupujemy bufory w następujący sposób: VOQ(i,0,0), VOQ(i,1,0), VOQ(i,2,0),..., VOQ(i,k-1,0) VOQ(i,0,1), VOQ(i,1,1), VOQ(i,2,1),..., VOQ(i,k-1,1)... VOQ(i,0,n-1), VOQ(i,1,n-1), VOQ(i,2,n-1),..., VOQ(i,k-1,n-1) Poszczególne kolejki VOQ(i,j,h) możemy obecnie oznaczać jako VOQ(i,v), gdzie v=hk + j i 0 v nk-1. Na rys. 2, 3 i 4 przedstawiono przykładowe działanie algorytmu CRRD. Dla ustalenia połączeń pomiędzy VOQ(i,j,h), a wyjściami L I (i,r), CRRD używa iteracyjnego wyboru połączeń wewnątrz IM(i). W IM(i) znajduje się m wyjściowych układów arbitrów i n*k układów arbitrów VOQ. Wyjściowy układ arbitra powiązany jest z L(i,r) i ma swój własny wskaźnik P L (i,r). Układ arbitra VOQ powiązany z VOQ(i,v) ma również swój własny wskaźnik P V (i,v). Natomiast w CM(r) jest k wyjściowych układów arbitrów mających swoje własne wskaźniki P C (r,j). Do arbitrażu wszystkie wymienione układy arbitrów używają algorytmu round robin. Na algorytm CRRD składają się dwa etapy. W pierwszym etapie, w celu przydzielenia kolejki VOQ do wyjścia komutatora IM, algorytm CRRD wykorzystuje iteracyjne powiązania, tworzone przez układy arbitrów. Tak jak w algorytmie RD, przydzielenie kolejki VOQ do wyjścia L(i,r) odbywa się wewnątrz komutatora wejściowego. W drugim etapie każda kolejka VOQ, która jest skojarzona z wyjściem IM wysyła żądanie do komutatora CM. Następnie komutatory CM przesyłają sygnał akceptacji do komutatorów IM, aby zakończyć ustalanie skojarzenia pomiędzy IM a CM. Etapy algorytmu CRRD Etap 1: Tworzenie powiązań wewnątrz IM: Pierwsza iteracja Krok 1: Każda niepusta kolejka VOQ wysyła żądanie do każdego wyjściowego arbitra. Krok 2: Każdy wyjściowy arbiter wybiera jedną niepustą kolejkę VOQ używając do tego celu algorytmu arbitrażu round robin, na podstawie pozycji wskaźnika P L (i,r). Następnie przesłane są potwierdzenia do wybranych kolejek VOQ. Krok 3: Arbiter VOQ wysyła akceptację do jednego ze wszystkich wyjść, od których otrzymał potwierdzenie. Wybiera je stosując algorytm round robin, na podstawie wskaźnika P V (i,v). Wskaźniki P L (i,r) i P V (i,v) są przesuwane o jedną pozycje od ostatnio wybranej, dopiero wtedy, kiedy dojdzie do połączenia, a żądanie jest potwierdzone przez komutator sekcji środkowej w etapie drugim. i-ta iteracja (i>1) Krok 1: Każda niewybrana w pierwszej iteracji kolejka VOQ przesyła następne żądanie do wszystkich arbitrów wyjściowych. Krok 2 i 3: Dla stworzenia powiązań pomiędzy niewybranymi, niepustymi kolejkami VOQ i wyjściami IM stosowana jest taka sama procedura, jak w pierwszej iteracji. Etap 2: Tworzenie skojarzenia pomiędzy IM a CM. Krok 1: Po zakończeniu pierwszego etapu, wyjście L I (i,r) wysyła żądanie do CM(r). Wtedy każdy układ arbitra wyjściowego, powiązany z OM(j) wybiera jedno żądanie na podstawie pozycji wskaźnika P C (r,j) i przesyła potwierdzenie do wyjścia L I (i,r) należącego do IM(i). Wskaźnik P C (r,j) jest przesuwany o jedną pozycję od ostatnio wybranej pod warunkiem, że komutator środkowy prześle potwierdzenie do komutatora wejściowego. Krok 2: Jeśli dany komutator IM otrzymał potwierdzenie od komutatora CM, przesyła odpowiednią komórkę z określonej kolejki VOQ w następnej szczelinie czasowej. Żądanie, które nie było potwierdzone przez CM, będzie brane pod uwagę w kolejnej iteracji, ponieważ jego wskaźniki nie były aktualizowane. Na rys. 2, 3 i 4 przedstawiono przykład tworzenia powiązań w trzysekcyjnym polu Closa o parametrach n=m=k=3. W przykładzie zaprezentowano etap pierwszy algorytmu CRRD. Krok 1: Niepuste kolejki VOQ(i,0), VOQ(i,3), VOQ(i,4) i VOQ(i,6), wysyłają żądanie do wszystkich wyjściowych arbitrów (rys. 2). Rys. 2. Niepuste kolejki VOQ wysyłają żądania do wszystkich wyjść Krok 2: Wyjściowe układy arbitrów, powiązanych z L I (i,0), L I (i,1) i L I (i,2) wybierają, zgodnie z aktualnym położeniem odpowiadających im wskaźników P L (i,r), następujące wirtualne kolejki wejściowe: VOQ(i,0), VOQ(i,0) oraz VOQ(i,3) (rys. 3). Rys. 3. Wybór VOQ na podstawie wskaźnika P L (i,r) PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 3/7

Krok 3: Kolejka VOQ(i,0) otrzymuje dwa potwierdzenia od obu arbitrów wyjść L I (i,0) i L I (i,1), ale akceptuje tylko potwierdzenie pochodzące od układu arbitra L I (i,0), gdyż na niego wskazywał wskaźnik układu arbitra VOQ(i,0). VOQ(i,3) otrzymuje jedno potwierdzenie od arbitra wyjściowego L I (i,2), które następnie akceptuje (rys. 4). W pierwszej iteracji wyjście L I (i,1) nie może być powiązane z którąkolwiek z niepustych kolejek VOQ. Nastąpi to dopiero w drugiej szczelinie czasowej. Rys. 4. Akceptacja potwierdzeń Algorytm CRRD w doskonały sposób radzi sobie z konfliktami powstałymi w komutatorach CM, zapobiegając nadmiernemu rozrostowi sekcji środkowej. Osiągnięto to dzięki desynchronizacji wskaźników P C (r,j), P L (i,r) oraz P V (i,v) wynikającej z faktu aktualizowania tylko tych wskaźników, które w drugim etapie otrzymały sygnał potwierdzenia od komutatora środkowej sekcji. Dzięki temu ich wskazania są różne. Algorytm CMSD Algorytm CMSD (Concurrent Master Slave Round Robin Dispatching) niweluje problem z ograniczoną przepustowością, jaki występuje w algorytmie RD, wykorzystującym zwykły arbitraż round-robin. Należy go uznać za ulepszoną wersję algorytmu CRRD. Na algorytm CMSD składają się dwa etapy. Różnica pomiędzy algorytmem CMSD a CRRD wynika ze sposobu dokonywania skojarzeń wewnątrz komutatora IM w pierwszym etapie. W celu przedstawienia działania algorytmu CRRD grupę kolejek VOQ składającą się z n wirtualnych kolejek VOQ(i,j,h) będziemy oznaczali jako G(i,j). W module IM(i) znajduje się m nadrzędnych wyjściowych układów arbitrów, m*k podrzędnych wyjściowych układów arbitrów oraz n*k układów arbitrów VOQ. Do arbitrażu wszystkie wymienione układy arbitrów używają algorytmu round robin. Każdy nadrzędny wyjściowy układ arbitra, skojarzony z L I (i,r) jest oznaczony jako ML(i,r) i posiada swój własny wskaźnik P ML (i,r). Każdy podrzędny wyjściowy układ arbitra, skojarzony z L I (i,r) oraz z G(i,j) jest oznaczony jako SL(i,j,r) i również ma swój własny wskaźnik P SL (i,j,r). Układ arbitra, skojarzony z kolejką VOQ(i,j,h) ma swój własny wskaźnik P V (i,j,h). Etapy algorytmu CMSD: Etap 1: Tworzenie powiązań wewnątrz IM. pierwsza iteracja: Krok 1: Aby przydzielić odpowiednią kolejkę VOQ do odpowiedniego wyjścia w module IM wysyłane są dwa żądania. Pierwsze żądanie jest wysyłane z niepustej kolejki VOQ(i,j,h) do każdego arbitra SL(i,j,r) wewnątrz grupy G(i,j). Drugie żądanie jest wysyłane przez grupę G(i,j) do każdego arbitra ML(i,r). Krok 2: Każdy arbiter ML(i,r) wybiera jedno żądanie spośród k żądań grup VOQ stosując algorytm round - robin z uwzględnieniem pozycji wskaźnika P ML (i,r) i wysyła potwierdzenie do SL(i,j,r), należącego do wybranej grupy G(i,j). Arbiter SL(i,j,r) otrzymawszy potwierdzenie od nadrzędnego arbitra wybiera, za pomocą arbitrażu round robin oraz pozycji wskaźnika P SL (i,j,r) jedną kolejkę VOQ i przesyła do niej potwierdzenie. Krok 3: Następnie arbiter VOQ wybiera spośród otrzymanych potwierdzeń jedno i (za pomocą algorytmu round robin i pozycji wskaźnika P V (i,j,h)) przesyła akceptację do wyjściowego podrzędnego i nadrzędnego arbitra. i-ta iteracja (i>1) Krok 1: Każda niewybrana kolejka VOQ w pierwszej iteracji wysyła żądanie do wszystkich podrzędnych arbitrów wyjściowych. Następnie grupa G(i,j), w której znajdują się nieprzydzielone i niepuste kolejki VOQ, wysyła żądanie do wszystkich niepowiązanych nadrzędnych wyjściowych układów arbitrów. Krok 2 i 3: Dla stworzenia połączeń pomiędzy niewybranymi i niepustymi kolejkami VOQ i wyjściami IM stosowana jest taka sama procedura jak w pierwszej iteracji. Etap 2: Tworzenie skojarzenia pomiędzy IM a CM zgodnie z algorytmem CRRD. Na rys. 5, 6 i 7 przedstawiono przykład tworzenia powiązań w trzysekcyjnym polu Closa o parametrach n=m=k=3. W przykładzie zaprezentowano etap pierwszy algorytmu CMSD. Kok 1: Niepuste kolejki VOQ(i,0,0), VOQ(i,0,1) i VOQ(i,1,2) wysyłają żądania do należących do grupy G(i,j) podrzędnych arbitrów. Następnie G(i,0) i G(i,1) wysyłają żądania do wszystkich nadrzędnych układów arbitrów wyjściowych (rys. 5). Rys. 5. Wysyłanie żądań PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 4/7

Krok 2: Układy arbitrów ML(i,0), ML(i,1) i ML(i,2) (zgodnie z położeniem ich wskaźników) wybierają odpowiednio grupy G(i,0), G(i,0) oraz G(i,1). Układy arbitrów SL(i,0,0), SL(i,0,1) oraz SL(i,1,2), należące do wybranej grupy VOQ, wybierają odpowiednio VOQ(i,0,0), VOQ(i,0,0) i VOQ(i,1,2) (rys. 6). Rys. 6. Wysyłanie potwierdzeń Krok 3: Kolejka VOQ(i,0,0) otrzymuje dwa potwierdzenia, pierwsze od arbitra SL(i,0,0), drugie od arbitra SL(i,0,1). Kontrolując położenie wskaźnika arbitra VOQ, spośród dwóch otrzymanych potwierdzeń wybiera jedno, wysłane przez arbitra SL(i,0,0). VOQ(i,1,2) otrzymuje tylko jedno potwierdzenie, wysłane przez SL(i,1,2), które następnie akceptuje (rys. 7). W pierwszej iteracji wyjście L I (i,1) nie może być powiązane z jakąkolwiek z niepustych kolejek VOQ. Nastąpi to dopiero w drugiej iteracji. Rys. 7.Akceptacja potwierdzeń Algorytm CRRD-OG Algorytm CRRD-OG (Concurrent Master Slave Round Robin Dispatching with Open Grants) jest proponowaną modyfikacją algorytmu CRRD, w której wprowadzono mechanizm tzw. otwartych grantów wysyłanych przez komutatory sekcji środkowej. Otwarte granty powstają w komutatorach CM i są przesyłane do komutatorów wejściowych IM. Zgodnie z przyjętym założeniem, wysłanie otwartego grantu nie powoduje przesunięcia wskaźników arbitrów, zarówno w modułach CM, jak i IM. Analogicznie jak w przypadku algorytmu CRRD, na algorytm CRRD-OG składają się dwa etapy. Algorytm ten wykorzystuje również iteracyjne powiązania, tworzone przez układy arbitrów. Różnica polega na wprowadzeniu dodatkowego rodzaju grantów, które pojawiają się w etapie drugim podczas tworzenia powiązań między IM a CM. Etapy algorytmu CRRD-OG: Etap 1: Tworzenie powiązań wewnątrz IM. pierwsza iteracja: Kroki 1-3: Zgodnie z algorytmem CRRD. i-ta iteracja (i>1): Kroki 1-3: Zgodnie z algorytmem CRRD. Etap 2: Tworzenie skojarzenia pomiędzy IM a CM. Krok 1: Zgodnie z algorytmem CRRD. Krok 2: Jeżeli istnieją żądania, które w kroku pierwszym nie zostały wybrane przez arbitra, a jednocześnie pozostały nieprzydzielone wyjścia L C (r,j), każde z tych wyjść L C (r,j) wybiera jedno z pozostałych żądań i przesyła otwarty grant do wyjścia L I (i,r) należącego do IM(i). Wskaźnik P C (r,j) w takim przypadku nie jest przesuwany. Wysyłany otwarty grant zawiera numer wyjścia j, który jest jednocześnie informacją dla IM(i) jakie porty wyjściowe są osiągalne przez dane wyjście L I (i,r). Krok 3: zwykłe potwierdzenia: Zgodnie z algorytmem CRRD - etap drugi krok 2. potwierdzenia z otwartym grantem: Jeżeli dany komutator IM otrzymał potwierdzenie z otwartym grantem od portu L C (r,j) w komutatorze CM(r), przeszukuje kolejki VOQ o numerach zgodnych z numerami portów wyjściowych osiągalnych przez wyjście L C (r,j) w CM(r). Pierwsza w kolejności znaleziona komórka zostaje wybrana i będzie przesłana w następnej szczelinie czasowej. Wskaźniki P L (i,r) i P V (i,v) nie są w takim przypadku zmieniane. Na rys. 8 i 9 przedstawiono przykład tworzenia powiązań pomiędzy IM a CM w trzysekcyjnym polu Closa, dla którego n=m=k=3. W przykładzie zaprezentowano etap drugi algorytmu CRRD-OG. Krok 1: Do modułu CM(0) trafiają żądania ze wszystkich trzech modułów wejściowych IM, dla komórek kierowanych do wyjść: 1, 2, 5. Żądania kierowane są do odpowiednich arbitrów, tym samym arbiter powiązany z portem L C (0,0) ma do wyboru dwa żądania, powiązany z portem L C (0,1) jedno żądanie, natomiast do arbitra L C (0,2) nie trafia żadne żądanie (Rys. 8 a). L C (0,0) wybiera żądanie przychodzące z modułu IM(0), zgodnie z pozycją swojego wewnętrznego wskaźnika. Do portu L C (0,1) kierowane jest tylko jedno żądnie pochodzące z modułu IM(2), więc automatycznie zostaje ono wybrane. Potwierdzenia zostają wysłane do modułów IM(0) oraz IM(2), wskaźniki powiązane z L C (0,0) i L C (0,1) zwiększają wartość o jeden (Rys. 8 b). Krok 2: Żądanie pochodzące z modułu IM(1) nie otrzymało zezwolenia, jednocześnie wyjście L C (0,2) pozostało wolne. Otwarty grant, zawierający numer wyjścia 2, zostaje wysłany do IM(1). Wskaźnik powiązany z L C (0,2) nie jest aktualizowany (Rys. 8 b). Krok 3: Powiązania pomiędzy modułem IM(0) a CM(0) oraz IM(2) a CM(0) zostały utworzone, wskaźniki są przesuwane do następnej pozycji. Komórki przeznaczonedo portów wyjściowych 1 i 5 zostaną wysłane w następnej szczelinie czasowej. Moduł IM(1) otrzymał otwarty grant od wyjścia 2 (rys. 9) w module CM(0) co oznacza, że może wysłać komórkę kierowaną na jedno z wyjść 6, 7 lub 8. Zostaje wybrana komórka znajdująca się w kolejce VOQ(1,8), która będzie wysłana w następnej szczelinie. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 5/7

a) b) Rys. 8 Tworzenie powiązań pomiędzy IM a CM, etap drugi algorytmu CRRD-OG przykład. a) Krok 1, do modułu CM(0) trafiają żądania ze wszystkich modułów IM. b) Wybrane żądania otrzymują potwierdzenia, wyjście L C (0,2) wysyła otwarty grant do modułu IM(1) Rys. 9 Etap 2, krok 3 algorytmu CRRD. Moduł IM(1) otrzymuje otwarty grant od wyjścia nr 2 w module CM(0). Komórka czekająca w kolejce VOQ(1,8) zostaje wybrana. 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 ClosSim. Umożliwia on symulowanie działania pola Closa dla dowolnego algorytmu oraz zadanego obciążenia. Środowisko symulacyjne ClosSim 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 ClosNetwork, 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łączane do symulatora w postaci osobnych bibliotek DLL. Eksperymenty symulacyjne wykonano dla wartości obciążenia z przedziału od 10 do 100%, z krokiem równym 5%. Czas poprzedzający symulację wynosił 10000 cykli (szczelin czasowych), natomiast czas właściwej symulacji w jednej serii obejmował 40000 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. Opóźnienie wprowadzane przez bufory wyjściowe w sekcji trzeciej nie było brane pod uwagę. Symulacji poddano algorytmy RD, CRRD oraz CRRD-OG, natomiast wyniki dla algorytmu CMSD podano na podstawie [8]. Pomiary dotyczyły średniego opóźnienia komórek w polu Closa o wymiarach 64 x 64, gdzie n=m=k=8, dla ruchu równomiernego. W przypadku algorytmu CRRD i CRRD-OG przeprowadzono osobno symulacje dla jednej i czterech iteracji wewnątrz modułu IM (oznaczonych jako iim). Większa liczba iteracji nie przyniosła widocznej poprawy wyników. Wyniki eksperymentów symulacyjnych przedstawiono na rys. 10, ze względu na małe wartości pominięto 95% przedziały ufności. Na podstawie otrzymanych wyników można zaobserwować, że algorytm RD nie osiąga 100% przepustowości w przeciwieństwie do pozostałych algorytmów, które dzięki efektowi desynchronizacji osiągają 100% przepustowość już dla jednej iteracji. W przypadku algorytmu CRRD-OG, przy jednej iteracji, poprawa wydajności wynikająca z wysyłania dodatkowych otwartych grantów przez moduły CM nie jest tak znacząca, jak w przypadku zastosowania czterech iteracji. Dzieje się tak, ponieważ przy mniejszej liczbie iteracji wyjścia modułów IM wysyłają mniej żądań, a co za tym idzie, otrzymują mniej potwierdzeń z modułów CM (aby w proponowanym algorytmie CRRD-OG otwarty grant mógł powstać, najpierw musi pojawić się żądanie wysłane z modułu IM). 5. UWAGI KOŃCOWE W niniejszej pracy rozważono możliwość poprawy wydajności iteracyjnych algorytmów planowania przepływu pakietów w trzysekcyjnym polu Closa z buforowaniem w pierwszej i trzeciej sekcji poprzez wprowadzenie tzw. otwartych grantów wysyłanych przez komutatory sekcji środkowej. Proponowany PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 6/7

mechanizm zbadano implementując go w algorytmie CRRD. Powstały w ten sposób algorytm oznaczono jako CRRD-OG. Mechanizm otwartych grantów poprawia działanie algorytmu iteracyjnego. Może on być zastosowany zarówno w algorytmie CRRD, jak i CMSD, jednakże wykazano, że wydajność algorytmu CRRD z mechanizmem otwartych grantów poprawia jego parametry bardziej skutecznie niż algorytm CMSD, który w zasadzie należy uznać za ulepszoną wersję algorytmu CRRD. Innymi słowy, implementacja mechanizmu otwartych grantów w modułach sekcji środkowej CM pola Closa może być alternatywą dla zastosowanej w algorytmie CMSD rozbudowy modułów wejściowych IM o kolejny stopień arbitrażu. Mechanizm otwartych grantów sam w sobie nie powoduje efektu desynchronizacji występującego w przedstawionych algorytmach iteracyjnych, a jedynie go wspomaga. Z uwagi na powyższy fakt, mechanizmu otwartych grantów nie ma sensu stosować w algorytmie RD, w którym taki efekt w ogóle nie występuje i tym samym algorytm ten nie osiąga 100% przepustowości. Zaprezentowane w pracy wyniki są wynikami wstępnymi, a sam mechanizm otwartych grantów wymaga dalszych badań dotyczących współpracy z innymi algorytmami oraz możliwości jego wykorzystania dla ruchu niejednorodnego. Osobnym problemem jest implementacja zaproponowanych rozwiązań w rzeczywistych układach. Średnie opóźnienie pakietu (szczeliny czasowe) 1000 100 10 1 RD CRRD iim=1 CRRD iim=4 CRRD-OG iim=1 CRRD-OG iim=4 CMSD iim=4 0 0,2 0,4 0,6 0,8 1 Obciążenie Rys. 10. Średnie opóźnienie pakietów przy wykorzystaniu algorytmów: RD, CRRD, CMSD i CRRD-OG. SPIS LITERATURY [1] 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. [2] 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. [3] Y. Tamir and G. Frazier: High performance multiqueue buffers for VLSI communications switches, in Proc. Computer Architecture, pp., 343-354. [4] 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. [5] N. McKeown, A. Mekkittikul, V. Anantharam, and J. Walrand: Achieving 100% throughput in inputqueued switches, IEEE Trans. on Communic., vol. 47, no. 8, pp. 1260-1267, 1999. [6] H. J. Chao: Saturn: A terabit packet switch using dual round-robin, IEEE Communications Mag., vol. 38, no. 12, pp. 78-84, 2002. [7] 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. [8] 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. [9] K. Pun, M. Hamdi: Dispatching schemes for Clos-network switches Computer Networks no. 44, pp.667-679, 2004. [10] C. Clos: A Study of Non-Blocking Switching Networks, Bell Sys. Tech. Jour., pp. 406-424, March 1953. PWT 2005 - POZNAŃ 8-9 GRUDNIA 2005 7/7