Flit (datornätverk)

I datornätverk är en flit ( flödeskontrollenhet eller flödeskontrollsiffra ) en atomdel på länknivå som bildar ett nätverkspaket eller -ström . Den första fliten, kallad header flit, innehåller information om detta pakets rutt (nämligen destinationsadressen) och ställer in routingbeteendet för alla efterföljande flits som är associerade med paketet. Header-flit följs av noll eller fler body-flits, som innehåller den faktiska nyttolasten av data. Den sista fliten, kallad tail flit, utför en del bokföring för att stänga kopplingen mellan de två noderna .

En virtuell anslutning har det tillstånd som behövs för att koordinera hanteringen av paketens flits. Som ett minimum identifierar detta tillstånd utgångsporten för den aktuella noden för nästa hopp på rutten och tillståndet för den virtuella anslutningen (tomgång, väntar på resurser eller aktiv). Den virtuella anslutningen kan också inkludera pekare till paketets flits som är buffrade på den aktuella noden och antalet tillgängliga flitbuffertar på nästa nod.

Sammankopplingsnätverk: Grunderna

Det växande behovet av prestanda från datorsystem drev branschen in på arenan med flera kärnor och många kärnor . I den här installationen är exekveringen av en kärna (ett program) uppdelad på flera processorer och beräkningen sker parallellt, vilket säkerställer prestanda med avseende på exekveringstiden. Detta innebär dock att processorerna nu måste kunna kommunicera med varandra och utbyta data och styrsignaler sömlöst. Ett enkelt tillvägagångssätt är den bussbaserade sammankopplingen , en grupp ledningar som förbinder alla processorer. Detta tillvägagångssätt är dock inte skalbart eftersom antalet processorer i systemet ökar. Därför är ett skalbart högpresterande sammankopplingsnätverk kärnan i parallell datorarkitektur .

Grundläggande nätverk Terminologier och bakgrund

Definitioner av ett sammankopplingsnätverk

Den formella definitionen av ett sammanlänkningsnät

"Ett sammankopplingsnätverk I representeras av en starkt ansluten riktad multigraf, I = G(N,C) . Uppsättningen av hörn av multigrafen N inkluderar uppsättningen av bearbetningselementnoder P och uppsättningen av routernoder RT . Uppsättningen av bågar C representerar uppsättningen enkelriktade kanaler (eventuellt virtuella) som kopplar antingen bearbetningselementen till routrarna eller routrarna till varandra".

Den primära förväntningen på ett sammankopplingsnätverk är att ha så låg latens som möjligt, det vill säga att tiden det tar att överföra ett meddelande från en nod till en annan ska vara minimal, samtidigt som ett stort antal sådana transaktioner kan ske samtidigt. Som med alla andra tekniska designavvägningar måste sammankopplingsnätverket uppnå dessa egenskaper samtidigt som kostnaden för genomförandet hålls så låg som möjligt. Efter att ha diskuterat vad som förväntas av ett nätverk, låt oss titta på några designpunkter som kan justeras för att få den nödvändiga prestandan.

De grundläggande byggstenarna i ett sammankopplingsnätverk är dess topologi , routingalgoritm , växlingsstrategi och flödeskontrollmekanismen.

Topologi : Detta hänvisar till den allmänna infrastrukturen för sammankopplingsnätverket; mönstret i vilket flera processorer är anslutna. Detta mönster kan antingen vara regelbundet eller oregelbundet, även om många flerkärniga arkitekturer idag använder mycket regelbundna sammankopplingsnätverk.

Routningsalgoritm : Detta bestämmer vilken väg meddelandet måste ta för att säkerställa leverans till destinationsnoden. Valet av väg baseras på flera mätvärden såsom latens, säkerhet och antal involverade noder etc. Det finns många olika routingalgoritmer, som ger olika garantier och erbjuder olika prestandaavvägningar.

Växlingsstrategi : Routningsalgoritmen bestämmer bara vägen som ett meddelande måste ta för att nå sin destinationsnod. Den faktiska genomgången av meddelandet inom nätverket är växlingsstrategins ansvar. Det finns i grunden två typer av omkopplingsstrategier, ett kretskopplat nätverk är ett nätverk där en väg är reserverad och blockerad från andra meddelanden, tills meddelandet levereras till dess destinationsnod. Ett känt exempel på kretskopplat nätverk är telefontjänsterna, som upprättar en krets genom många switchar för ett samtal. Det alternativa tillvägagångssättet är det paketkopplade nätverket där meddelanden delas upp i mindre kompakta enheter som kallas paket . Varje paket innehåller en del av data förutom ett sekvensnummer. Detta innebär att varje paket nu kan överföras individuellt och monteras på destinationen baserat på sekvensnumret.

Flödeskontroll : Observera att vi tidigare har fastställt att flera meddelanden kan flöda genom sammankopplingsnätverket vid varje given tidpunkt. Det är flödeskontrollmekanismens ansvar som implementeras på routernivå att bestämma vilket meddelande som ska flöda och vilket meddelande som hålls tillbaka.

Egenskaper och mått för ett nätverk

Varje nätverk har en bredd w , och en överföringshastighet f , som bestämmer bandbredden för ett nätverk som b = w*f . Mängden data som överförs i en enda cykel kallas en fysisk enhet eller phit . Som kan observeras är bredden på ett nätverk också lika med pitstorleken. Därför kan nätverkets bandbredd också definieras i termer av phit/sek. Varje meddelande som ska överföras kan delas upp i mindre bitar av enheter med fast längd som kallas paket . Paket kan i sin tur delas upp i meddelandeflödeskontrollenheter eller flits .

Behovet av flits

Det är viktigt att notera att flits representerar logiska enheter av information, medan pits representerar den fysiska domänen, det vill säga pits representerar antalet bitar som kan överföras parallellt i en enda cykel. Tänk på Cray T3D. Den har ett sammankopplingsnätverk som använder meddelandeflödeskontroll på flitnivå där varje flit består av åtta 16-bitars pits. Det betyder att dess flitstorlek är 128bitar och phitstorlek är 16bitar. Tänk också på IBM SP2-switchen. Den använder också meddelandeflödeskontrollen för flitnivå, men dess flitstorlek är lika med dess phit-storlek, som är inställd på 8 bitar.

Bestämning av flätbredd

Observera att meddelandestorleken är den dominerande avgörande faktorn (bland många andra) för att bestämma flitbredderna. Baserat på meddelandestorleken finns det två motstridiga designval:

  • Att hålla storleken på varje paket liten, i vilket fall antalet paket kommer att öka, vilket ökar det totala antalet transaktioner, samtidigt som storleken på varje enskild transaktion minskar.
  • Att hålla storleken på varje paket stor, i vilket fall antalet paket kommer att minska, vilket minskar det totala antalet transaktioner, samtidigt som storleken på varje enskild transaktion ökar.

Baserat på storleken på paketen måste bredden på den fysiska länken mellan två routrar bestämmas. Det betyder att om paketstorleken är stor måste länkbredden också hållas stor, men en större länkbredd innebär mer yta och högre effektförlust. I allmänhet hålls länkbredderna till ett minimum. Länkbredden (som också bestämmer spånbredden) är nu faktorer som bestämmer fletsbredden.

Vid denna tidpunkt är det viktigt att notera att även om överföringar mellan routern nödvändigtvis är konstruerade i termer av pit, så handlar omkopplingsteknikerna i termer av flits. För mer information om de olika kopplingsteknikerna, se Wormhole switching och Cut-through switching . Eftersom majoriteten av växlingsteknikerna fungerar på flits, har de också en stor inverkan när det gäller att bestämma flitsbredden. Andra avgörande faktorer inkluderar tillförlitlighet, prestanda och implementeringskomplexitet.

Exempel

Ett exempel på hur flits fungerar i ett nätverk

Betrakta ett exempel på hur paket sänds i termer av flits. I det här fallet har vi ett paket som sänder mellan A och B i figuren. Paketöverföringsprocessen sker i följande steg.

  • Paketet kommer att delas upp i flits W, X, Y och Z.
  • Sändningsbufferten i A kommer att ladda den första flit Z och skicka den till B.
  • Efter att B tagit emot Z, kommer B att flytta ut fliten ur bufferten.
  • Sändningsbufferten i A kommer sedan att ladda nästa flit Y och skicka den till B.
  • Fortsätt att utföra ovanstående åtgärder tills alla flits har överförts till B.
  • B kommer sedan att sätta ihop alla flitsar för att få hela paketet.

Sammanfattning

En flit (flödeskontrollenheter/siffror) är en enhetsmängd data när meddelandet sänds på länknivå. Fliten kan accepteras eller avvisas på mottagarsidan baserat på flödeskontrollprotokollet och storleken på mottagarbufferten. Mekanismen för flödeskontroll på länknivå gör att mottagaren kan skicka en kontinuerlig signalström för att kontrollera om den ska fortsätta att skicka flits eller sluta skicka flits. När ett paket sänds över en länk måste paketet delas upp i flera flits innan sändningen börjar.

Se även