- vrstva L2 - MAC adresy
- unicast, multicast, broadcast - jako u L3
- CAM tabulka
- propustnost přepínače
- Kolik portů máme
- rychlost karet
- Buffery
- Switch fabric
- řadič - která karta může přepínat a kam, které přenosy se budou kdy dělat
- maximální propustnost
- Paralelní přenosy
- nejde, když je stejná destinace
- head of line blocking
- blokování na začátku fronty - jeden packet nám zamezí odesílat další packety
- Rozšiřitelnost
- fyzikální omezení - nejsme tak schopni tak rychle zapsat do paměti, …
- Propustnost - bit/s neudává, jak se chová pro danou velikost packetu, často tedy packet/s (pro různé velikosti packetu konkrétní rychlost)
- latence - zpoždění (doba přenosu) ze vstupu na výstup
- přenos pouze z 1 zařízení
- pokud je rychlost sběrnice má být stejný jako součet všech rychlostí na kartách, jinak bude rychlost sběrnice bottleneck
- nativní přenos broadcast, multicast
- rychlé a levné na vyprodukování
- Co se stane, když přidáme porty?
- rychlost portů
- úkol
- 1.6 Gbps a 40 bit sběrnice
- rychlosti karty - 1Gbps -> větší propustnost, ale problém se sběrnicí -> 400 bitů - zvětšit frekvenci
- 256 portů a 32/64bit sběrnice - fyzikální limit
- když 1 karta ovládá sběrnici, všechny si načtou rámec, pak se řeší pro koho je
- centrální paměť
- pevná velikost
- př větším plnění jedné fronty zahazujeme packety, i když máme místo
- flexibilní
- alokace a dealokace front
- buňky pevné velikost
- výhoda: nativní implementace multicast, broadcast
- úkol
- 5 ns, 0.5 ns, 0.125ns
- DRAM 50ns, SDRAM 5 - 10 ns
- velkou propustnost / hodně portů už neuděláme ani
- paralelní přenosy už v architektuře
- nevýhoda: když přestane fungovat 1 pole = celé vyhodit
- jeden packet blokuje celou frontu, protože čeká na port
- rozdělíme vstup na více front -> drahé řešení - virtuální fronty
- VOQ
- problém s párováním (matching)
- bipartitní graf
- Jak najít párování, aby žádné 2 hrany ze vstupních portů neměli 2 stejné výstupní porty
- největší párování - globální maximum, v praxi moc složité
- maximální - přidávám hrany, dokud nemůže přidat další hranu - lokální maximum
- maximální párování pomocí náhodné volby
- soutěžení o výstupní porty
- může přijít více povolení na různé výstupní portu - vstupní port musí 1 vybrat
- optimalizace pomocí více iterací, při první jen zarezervuji, znovu request, co nemají zarezervované, …
- problém s implementaci pseudo-náhodného generátoru - výpočetní režie na každém portu
- při soupeřní o port se používá rotující ukazatele
- ukazatele se po úspěšném přenosu posouvají
- nemusím používat náhodný generátor oproti PIMu
- naivní řešení - replikace - pomalé
- speciální fronta pro multicast
- no fanout splitting - přenos multicastu je v 1 časovém úseku
- fanout-splitting - přenos části multicastu zároveň pri unicastu
- ESLIP - implementace algoritmu
- nemůže být dynamické fronty pro multicast - bylo by jich moc - dynamicky se mění multicastové adresy
- zvětšování počtu portů, aniž by se dramaticky rozšířilo přepínací pole
- vnitřní přepínací obvody
- 3 stupňové
- m počet vnitřních křížových bloků
- n vstupní a výstupní portů
- r počet vstupních křížových přepínačů
-
- stupeň vstupní křížové přepínače
-
- stupeň vnitřní křížové přepínače
- m cest je dán počtem vnitřních bloků
- 24 portů - 4 vstupy -> Clos(x, 4, 6), m se dopočítá
- Closův teorém neblokující sítě
- modifikované řešení (rearrangeably nonblocking)
- $ m \geq n$ -> levnější
- není neblokující
- pokud chceme neblokující řešení - potřeba přeskládání
- rekurzivní přepínací síť
- základem je Clos(2,2,1)
- pro vyhledávání - smyčkový algoritmus
- neblokující výsledek