har föreslagits som en lösning på problemet med global sammanlänkning i djup submikron VLSI Systems-on-Chip (SoC). Nätverk på Chip (NoC) kan hantera och innehålla stora fysiska problem som synkronisering, buller, felkorrigering och hastighetsoptimering. NoC kan också förbättra designproduktiviteten genom att stödja modularitet och återanvändning av komplexa kärnor, vilket möjliggör en högre grad av abstraktion i arkitektonisk modellering av framtida system [4], [5]. VLSI-designers måste dock säkerställas att fördelarna med NoC inte äventyrar systemets prestanda och kostnad [8], [10]. Prestandaproblem är förknippade med latens och genomströmning. Kostnadsbekymmer är främst chip-område och strömavledning. I detta dokument presenteras en designprocess och en nätverksarkitektur som uppfyller tjänstekvalitetskrav (prestanda) till en mätbar VLSI-kostnad som är gynnsamt jämfört med alternativa metoder för sammankoppling på chip. Traditionellt har global kommunikation på chip tagits upp genom gemensamma bussstrukturer och ad hoc-kopplingar. Icke-skalbarhet av dessa strategier diskuterades i [1], [6], [9]. Moderna on-chip-bussar har dock utvecklats till flerskikts- och segmenterade strukturer som stöder delade transaktioner, sprängningsöverföringar och parallelldrift [12] [13] [14]. Från flera aspekter kan de betraktas som nätverk men ändå, de ger inte effektiv rumslig återanvändning av resurser och inte utnyttja paket eller maskhål switching i samband med distribuerad routing och trängsel / flöde kontroll. De är därför ineffektiva och kräver centraliserade skiljedomsmekanismer. Fördelar med rumsligt återanvända paket / maskhål bytte nätverk analyserades i jämförelse med bussar av flera författare [1], [3], [5], [8], [9]. En hybridstrategi som stöder både NoC- och on-chip-bussar har föreslagits i [10]. Utbytta nät och tekniker för deras utformning har utvecklats för datornät och för multiprocessorsystem [15] [16] [17] [18] [19] [20] [21]. En unik uppsättning resursbegränsningar och designöverväganden finns dock för en on-chip-miljö. Som beskrivs i [1], [9], minne och datorresurser är relativt dyrare på chip, medan relativt fler kablar finns tillgängliga. Behovet av att kombinera flera typer av tjänster, såsom "bästa ansträngning" och "garanterat genomflöde" noterades av [1], [8]. Under [9] föreslogs stöd för flera accessparadigm som begäran-svar (för kompatibilitet med bussbaserade tillvägagångssätt) och anslutningsorienterade tjänster för utökad funktionalitet. En mesh nätverk topologi föreslogs i [4] Till skillnad från datornätverk som är byggda för pågående expansion, framtida tillväxt och standarder kompatibilitet, kan on-chip nätverk utformas och anpassas för en a-prioriterad känd uppsättning datorresurser, med tanke på pre-karakteriserade trafikmönster bland dem. Dessa innebär att olika komponenter i nätverksarkitekturen, inklusive adressering av fält och QoS-klassificering, kan ändras mellan olika implementationer. Dessutom kan placering av dataresurserna göras samtidigt med nätverkets utformning. Dynamiska ändringar av länkar (länkuppgraderingar eller fel) förväntas inte on-chip. Dessutom kan mycket tillförlitlig länkdrift antas, åtminstone i de tidiga generationerna av NoCs. Baserat på ovanstående överväganden, med tanke på kostnadskänsligheten och behovet av att stödja olika tjänster och access paradigm, föreslår vi en QNoC-arkitektur och en process för dess design, med hjälp av följande egenskaper: Modulerna är sammankopplade med ett nätverk av multi-port switchar anslutna till varandra genom länkar som består av parallella punkt-till-punkt-linjer. Det fysiska skiktet är optimerat för att ta hand om djup-submikron frågor såsom fördröjning och repeater optimering, synkronisering, buller immunitet etc. Nätet tillämpar en mesh topologi och använder maskhålspaket vidarebefordring med Hop-by-hop kreditbaserad backpressureflowcontrol (för förlustfri buffertdrift och minimala buffertkrav). Paketen vidarebefordras med hjälp av en statisk kortaste väg, X-Y koordinater-baserad routing (för minimal routing tabell operationer, dödläge undvikande och ingen omordning vid slutpunkter). Förpackningar kan tillhöra olika tjänsteklasser och paket av olika klasser vidarebefordras på ett interleaded sätt enligt QoS-definitionerna (packets prioriteringar). Som en typisk riktlinje klassificerar vi systemtrafik i fyra vanliga serviceklasser: Signalering (ersättning av intermodulstyrsignaler); Realtid (representerar fördröjningsbegränsade bitströmmar); R/W (modellering av kort dataåtkomst) och Block-Transfer (utförande av stora datasprängningar och DMA-operationer). Vi modellerar trafikbeteendet för varje klass och definierar tjänstekvalitetskraven för varje klass i form av genomströmning, end-to-end fördröjning och relativ prioritet. Till skillnad från andra maskhålsroutsystem registreras dessa krav vid alla omkopplare och olika paketspedition interleaveds enligt QoS-reglerna. Ett högprioriterat signalpaket förhindrar till exempel överföring av ett långt Block-Transfer-paket. I likhet med [4] använder vi oss av en designprocess, som utgår från en allmän topologi och går vidare till ett skräddarsytt nätverk. Utformningen av nätverket är anpassad och länkar bandbredd fördelas efter deras relativa belastning så att det totala utnyttjandet av länkar i nätverket balanseras. Under anpassning är onödiga resurser (länkar, routrar och buffertar) trimmade där det är möjligt, vilket resulterar i en lågkostnadsanpassad layout för den specifika SoC. Trafiksimuleringar används i kostnadsoptimeringsstegen för att säkerställa att QoS är nöjd. Vi introducerar också en enkel metod för att utvärdera kostnaderna för det resulterande nätets område och kraft. Areakostnaden baseras på den totala trådlängden och mängden paketbyteslogik (buffer, tabeller etc.).), som uppskattas av flip-flop räkningen. Kraftkostnaden baseras på en sammanräkning av den trafik som passerar varje trådlängd och tas emot genom inmatningssteg. Det är lätt att inse att för en given trafik metriska och nätverk topologi, kommer strömförbrukningen att minskas genom att använda kortaste vägen routing och genom eliminering av paketförluster inom switchar. På så sätt resulterar vår designprocess i QNoC som uppfyller fördefinierade QoS-krav från nätverkssynpunkt och tar hänsyn till VLSI-kostnader genom att minimera area och effekt för den resulterande QNoC. Resten av detta dokument är organiserat enligt följande: Avsnitt II presenterar nätverksarkitekturen, Avsnitt III beskriver nätverksdesignprocessen, Avsnitt IV diskuterar enkla konstruktionsexempel och Avsnitt V ger simuleringsresultat för nätverksexemplen tillsammans med observationer och slutsatser. Vår QoS nätverk arkitektur bygger på en rutnät topologi och maskhål paket routing, följande [1], [6], [7]. Maskhålsrutning [1], [22] minskar latens- och buffertkraven i routrarna. Kretskoppling [7] undviks i vår arkitektur på grund av den höga kostnaden för att upprätta och hantera kretsanslutningar. På samma sätt undviks lagrings- och framåtdragningsmetoder [7], eftersom de kan medföra höga buffertkrav och följaktligen en hög straffnivå i routerns kiselområde. Nätverket är förlustfritt, och länkar antas vara tillförlitliga så att inga vidaresändningar krävs 1. Packets korsar nätverket längs den kortaste rutten, vilket minimerar strömavledning och maximerar nätverksresursutnyttjandet. Arkitekturen har fungerat som en plattform för att utveckla QNoC-designprocessen och kostnadsmåtten (avsnitt III), och har modellerats och simulerats enligt beskrivningen i avsnitt IV. I detta avsnitt beskriver vi QNoC topologi, servicenivåer, länkkommunikation, router design och gränssnitt till systemmodulerna i chipet. Nätverk på chip består av routrar som är sammankopplade genom punkt-till-punkt-länkar. Topologin kan variera beroende på systembehov och modulstorlek och placering. Fettträd [6], vikt torus [1] och regelbunden maskstorlek [4], [7] topologier har föreslagits för nr C (figur 1 ). Vi föreslår en oregelbunden mesh topologi som en bäst match för den typiskt oregelbundna plana och rektangulära strukturen av gemensamma SoC planlösningar. Varje systemmodul är ansluten till en router (figur 1c ) via ett standardgränssnitt, där bandbredden anpassas till modulens kommunikationsbehov. Bandbredden för varje interrouterlänk justeras på liknande sätt för att rymma 1 Eftersom högre bullersårbarhet förväntas i framtida tekniker, kan enkla felkorrigeringsmetoder användas i fysiska, data-länk eller ännu högre nivåer. NoC kan innehålla sådana fel och effektivt isolera dem från resten av SoC. Dessa tekniker ligger utanför ramen för detta dokument. 3 förväntad trafik och uppfylla QoS krav på den specifika länken. Link och interface bandbredd är justerbar genom att ändra antingen antalet trådar eller datafrekvensen. Dessutom kan en modul anslutas till nätverket genom mer än ett gränssnitt. Routing utförs över fasta kortaste vägar, med en symmetrisk X-Y disciplin där varje paket dirigeras först i en "X" riktning och sedan längs vinkelrät dimension eller vice versa 2. Detta system leder till ett enkelt och kostnadseffektivt införande av routern. Nätverkstrafiken fördelas alltså icke-uniformt över mesh-länkarna, men varje länks bandbredd anpassas till dess förväntade belastning, vilket ger ett ungefär lika stort utnyttjande av länkarna över chippet.  Huvudsyftet med ett nät för sammankoppling på chip är att tillgodose alla kommunikationsbehov hos heterogena moduler inom chipet. En QNoC bör ersätta inte bara delade bussar utan även andra typer av särskilda intermodulära ledningar och gränssnitt. Vi identifierar fyra olika typer av kommunikationskrav och definierar lämpliga servicenivåer (SL) för att stödja dem: Signalering, realtid, Läs/Skriv och Block-Transfer. Två tjänsteklasser föreslogs tidigare i detta sammanhang [7]: bästa ansträngning och garanterad genomströmning. Signalering omfattar brådskande meddelanden och mycket korta paket som ges högsta prioritet i nätverket för att säkerställa kortaste latens. Denna servicenivå är lämplig för att avbryta och styra signaler och minskar behovet av att tillägna speciella, enanvända ledningar för dem. Real-Time servicenivå garanterar bandbredd och latens till realtidsapplikationer, såsom strömmade ljud och video bearbetning. Denna tjänst (som alla andra) är paketbaserad (och använder inte virtuella kretsar); en viss maximal bandbredd kan tilldelas varje realtidslänk och den bör inte överskridas. Detta uppnås antingen genom utformningen av varje modul eller genom verkställighetskretsar i nätverket. Servicenivån Read/Write (RD/WR) ger busssemantik och är därför utformad för att stödja korta minnes- och registeråtkomster. Block-Transfer servicenivå används för överföringar av långa meddelanden och stora datablock, såsom cache refill och DMA-överföringar. En prioritetsrankning fastställs bland de fyra servicenivåerna, där Signalering ges högsta prioritet och Block-Transfer lägsta. Nedan beskriver vi en förebyggande kommunikationsplanering där data från ett paket med högre prioritet alltid överförs före en lägre servicenivå (en round-robin används inom varje servicenivå). Tjänstenivåerna genomförs alltså helt enkelt med hjälp av en prioriterad mekanism. Ytterligare servicenivåer kan fastställas om så önskas, så länge en prioritetsrankning följs. Till exempel kan RD/WR-tjänstnivån delas upp i normala och brådskande RD/WR-undernivåer. Packets har routinginformation, kommando och nyttolast. Figur 2 visar det grundläggande paketformatet. Fältet Tra (Target Routing Address) innehåller den adress som krävs för routing. Kommandofältet identifierar nyttolasten och anger typ av åtgärd. Resten är en godtycklig nyttolast, inklusive driftsspecifik kontrollinformation såsom avsändarens identifiering.  Routers ansluter till upp till fem länkar ( Figur 3 ), avsedd för plan sammanlänkning till fyra mesh grannar och till en chip modul. Routern vidarebefordrar paket från inmatningsportar till utgångsportar. Data tas emot i flisor. Varje inkommande flit lagras först i en ingångsbuffert. På den första flit av ett paket, routern bestämmer till vilken utgång port paketet är avsedd. Routern schemalägger sedan överföringen för varje flit på lämplig utgångsport. Det finns separata buffertar för var och en av de fyra servicenivåerna ("direkt buffertkartläggning"). Relativt små buffertar fördelas till varje servicenivå, som endast kan lagra några få flisor (detta är en kvantifierbar konstruktionsparameter). Den routing algoritmen åberopas när den första flit av ett paket tas emot. Algoritmen använder en enkel routingfunktion. Till exempel är relativ routing anställd för X-Y routing. Routing information per varje servicenivå per ingångsport lagras i den nuvarande Routing Tabellen (CRT; Figur 5 ), tills svansen flit av paketet tas emot, bearbetas och levereras. När en flit vidarebefordras från en input till en utgående port, blir en buffert tillgänglig och en buffertkredit skickas tillbaka till den tidigare routern på separata ut-of-band ledningar (Tabell2). Varje utgångsport för en router är ansluten till en ingångsport för nästa router via en kommunikationslänk. Utdataporten upprätthåller antalet tillgängliga flit slots per varje servicenivå i bufferten för nästa ingångsport. Dessa nummer lagras i tabellen Nästa Buffertstat (NBS) (figur 5). Numret minskas vid överföring av en flirt och ökas vid mottagandet av en buffertkredit från nästa router. När ett utrymme är tillgängligt schemalägger utmatningsporten överföring av flisor som buffras vid ingångsportarna och väntar på överföring via utmatningsporten, som beskrivs nedan. Vi beskriver ett enkelt handslag gränssnitt till var och en av länkarna. Andra gränssnitt, såsom asynkrona, är också möjliga. Samma gränssnitt används oavsett om länken ansluter till en chipmodul eller till en annan router. Utgångsporten överför en flit på den stigande kanten av länkklockan (identifiera flit med en icke-idle typ, tabell 1 ), och ingångsporten tar en ny flit på den fallande kanten. Klockan kan ersättas av en giltig signal, som växlar endast när en flit behöver överföras, lindra behovet av en "idle" flit typ. Tabeller 1.2 Vi vänder oss nu till mekaniken för flit överföring inne i routern. Fläckarna buffras vid inmatningsportarna och väntar på överföring från de sex utgångsportarna. Flit routing (nämligen, till vilken utgångsport varje flit är riktad) löses vid ankomsten av den första flit av ett paket och utgång port nummer lagras i CRT för väntande flit per varje ingångsport och per varje servicenivå. Varje utgående port scheman överföring av flits enligt tillgången på buffertar i nästa router, prioritet (nämligen servicenivå) av de väntande flits, och paketbaserade runda-robin beställning av ingångsportar väntar överföring av paket inom samma servicenivå. Antalet tillgängliga flitspår i buffertarna vid nästa routrar lagras i NBS-tabellerna för varje servicenivå vid varje utgående port. Tjänstenivå prioriteringar rankas med Signaling har högsta prioritet, Real-Time är andra, RD/WR tredje och Block-Transfer rankas senast. Det nuvarande läget för schemaläggning av round-robin lagras i tabellen för närvarande Serviced Input Port (CSIP) för varje servicenivå vid varje utgående port (figur 5). Detta nummer är avancerat när överföringen av ett komplett paket är klar eller om det inte finns något att överföra från en viss ingångsport och servicenivå. Denna schemaläggning disciplin innebär att en viss flit överförs på en utgångsport så länge det finns buffertutrymme tillgängligt på nästa router och det finns inget paket med en högre prioritet väntar för den specifika utdataporten. När ett paket med högre prioritet dyker upp på en av inmatningsportarna förebådas överföring av det aktuella paketet och paketet med högre prioritet kommer igenom. Överföringen av paketet med lägre prioritet återupptas först efter det att alla paket med högre prioritet har levererats. I exemplet i figur 6 förebådas ett realtidspaket av ett signalpaket. Nätverket är utformat med begränsade trafikkrav i de högre servicenivåerna, för att undvika svält av RD/WR och Block-Transfer kommunikation.  Crossbar Inmatningsportar Nätverksgränssnittet ansluter moduler till nätverket. Den kartlägger en mängd olika transaktioner på de fyra strukturerade QNoC-tjänstnivåerna. Till exempel döljer det paketet byta tecken på nätverket när en modul behöver komma åt en annan med buss och konventionella läsa / skriva semantik. Detta avsnitt har presenterat QNoC-arkitekturen: Enkla och effektiva routrar är sammankopplade med korta punkt-till-punkt-länkar och ordnade som en oregelbunden mesh. Kommunikationen är organiserad i fyra servicenivåer; en förebyggande prioritering schemaläggning är etablerad i routern bland nivåerna, medan paketbaserade round-robin schemaläggning används inom varje nivå. Arkitekturen är buffert effektiv på grund av maskhål routing och effekt effektiv på grund av förlustfri och kortaste väg kommunikationsmekanism. Nätverksresurserna justeras för att passa ett visst trafikmönster, enligt beskrivningen i följande avsnitt. I detta avsnitt presenterar vi en designprocess för att bygga en billig QNoC. I traditionella kommunikationsnät ges topologin och länkkapaciteten, och routing- och trängselkontrollprocesserna balanserar a-prioriterade okända trafikbelastningar. QNoC design process har mer grad av frihet eftersom topologin för nätverket, nätverksresurser och protokoll kan ändras och justeras av nätverksdesignern för en viss SoC med särskilda krav. Designa ansträngning skiftar till att anpassa nätet till givna trafikflöden och QoS krav och optimera det för låga kostnader i fråga om område och kraft. Blockdiagrammet i figur 7 sammanfattar QNoC-designflödet. För det första definieras och antas de funktionella systemmodulerna anslutas av en idealisk sammanlänkningsinfrastruktur med obegränsad bandbredd och programmerbar fördröjning. Sedan, inter-modul trafik kännetecknas. Denna karakterisering utförs genom att analysera de sammankopplade modulerna och deras trafikspecifikation. För att verifiera antagandena eller som ett alternativt sätt för karakterisering mäts och delas intermodultrafiken upp i trafikklasser med hjälp av en operativ simulering på hög nivå. På samma sätt härleds QoS-kraven för varje trafikklass genom att observera den faktiska prestandan och genom simulering utvärdera effekten av förseningar och genomströmning. Karaktäriserings- och kravderivationsfasen bör ta hänsyn till att QNoC-kostnaden kommer att öka om säkerhetsmarginalerna är överdrivna. När trafikmönster är specificerade placeras moduler för att minimera systemets rumsliga trafiktäthet. Endast efter det att systemmodulens placering och intermodulära kommunikationskrav har fastställts kan QNoC konstrueras. QNoC-arkitekturen är färdig och arkitektoniska parametrar ställs in enligt antalet moduler, deras 8 rumsliga placering och de QoS-servicenivåer som ska stödjas. Den ursprungliga topologin är inställd på ett mesh rutnät och den trafik som krävs kartläggs på mesh rutnätet enligt routing algoritmen, såsom X-Y routing. Eftersom delar av rutnätet inte utnyttjas fullt ut, kan vissa hörn och länkar elimineras som visas i figur 1.c. När routing algoritmen väljs, kommunikationsvägar mellan alla par av moduler kan bestämmas och länk bandbredd optimering kan utföras. Genomsnittlig trafikbelastning vid varje länk kan beräknas eftersom routing är fast och trafikmönster är kända i förväg. Länk bandbredd kan tilldelas proportionellt till den beräknade belastningen på denna länk genom att variera antalet trådar i en länk eller dess frekvens. På så sätt kalibrerar konstruktören systemets resurser så att det genomsnittliga utnyttjandet av alla länkar i nätverket är ungefär lika. Vid denna punkt ger den genomsnittliga belastningsberäkningen endast relativa länkbandbredder. För att slutföra konstruktionen kan QNoC simuleras och analyseras mer exakt av en nätverkssimulator. Den faktiska bandbredden kan sedan tilldelas länkarna enligt QoS-kraven och de stödjande simuleringsresultaten. Ytterligare optimeringar kan utföras: Bufferter och routrar kan trimmas där det är möjligt samtidigt som den nödvändiga QoS upprätthålls. Hela designprocessen kan itereras om hårdvarukostnaden för den resulterande QNoC är för hög, eller om andra QNoC-arkitekturer behöver undersökas. Det är viktigt att exakt beräkna kostnaden för QNoC, eftersom det direkt påverkar kostnaden för hela systemet. Genom att ha ett bra mått på kostnad kan systemarkitekten jämföra olika lösningar som ger samma prestanda och väljer den mest kostnadseffektiva. Vi använder area- och effektkostnadsfunktioner, vilket är vanligt för VLSI-system, genom att jämföra arkitekturer med samma prestanda (i form av fördröjning och genomströmning) och kvantifiera deras area- och effektbehov. Kostnaden för QNoC-arkitekturen består av två huvudfaktorer: kostnaden för routrar och modulgränssnitt (logisk kostnad) och kostnaden för ledningar för de länkar som förbinder dem. Vi antar att logiken och länkarna är utformade på ett effektivt sätt så att kraft förbrukas endast när information flödar genom dessa komponenter (endast när logiska övergångar sker). För att spara ström, paket korsar nätverket över den kortaste vägen. Dessutom behövs inga vidaresändningar av information eftersom överföringen via en länk antas vara tillförlitlig 3 och flödeskontroll i hop-by-hop (mottryck) förhindrar att något paket förloras eller tappas. Dessa fakta resulterar i en effekteffektiv nätverksarkitektur. Trådkostnad: Eftersom avståndet mellan två intilliggande trådar är fast, är det område som upptas av länktrådar på ett chip proportionellt mot den totala trådlängden: trådarna står i proportion till trådlängden och därmed är trådlängden en god uppskattning av effekten som försvinner på ledningarna. Dynamisk effektavledning i kopplingskretsar är: där: L C -last kapacitans, dd V -försörjningsspänning och p f -switching frekvens. Bytesfrekvens för varje länk är länkfrekvens multiplicerad med länkutnyttjandet. C L -är den totala lastkapaciteten, bestående av trådkapacitet (C-tråd) och grindkapacitet för transistorn som drivs av den tråden (C-porten). Vi antar att C porten kan försummas och den dominerande faktorn är C-tråd, som är direkt proportionell mot längden på tråden: där: 0 P -konstant koefficient, U -utilization av länkarna, f i -frekvensen av länken i. Därför kan den totala trådlängden vara en lämplig kostnadsmått vid jämförelse mellan både el- och områdeskostnader för alternativa sammanlänkningsarkitekturer. Logikkostnad: Logikkostnaden består av kostnaderna för routrarna och kostnaderna för nätgränssnitten för systemmodulerna. I alla sammanlänkningsarkitekturer, en buss eller ett nätverk måste ett gränssnittslogik implementeras. Det ligger utanför tillämpningsområdet för detta dokument att utvärdera de exakta gränssnittsmekanismer som behöver utvecklas. Det är dock tydligt att varje modulgränssnitt i en delad mediaanslutning (som en buss) måste ta emot högre hastighetssprängningar av information jämfört med en ändrad arkitektur och därmed öka kostnaden. Kostnaden för router påverkas av flera parametrar: antal portar (#Port), antal servicenivåer (#SL), flit storlek (FlitSize), buffert storlek för varje servicenivå (BufSize). En bra uppskattning av areakostnaden för routern är flip-flop räkna. I allmänhet kostnaden för en router är mycket arkitektur specifik. Vi ger en uppskattning för kostnaden för routern i arkitekturen 3 Eller gjorts tillförlitlig med hjälp av felkorrigering 9 som presenterades i Avsnitt II.4. Antalet flip-flops i router domineras av flip-flops som används för att lagra data och kontrollinformation: Total logisk kostnad för QNoC är summan av kostnaderna för alla routers i nätverket: IV. DESIGN EXEMPLES Som ett enkelt exempel på QNoC design för en given SoC, låt oss överväga en rad av 16 kommunicerande enheter arrangerade i en 4X4 mesh. Varje enhet är ansluten till QNoC via en router som är en del av nätverket (se figur 8). Routningsmekanismen är en symmetrisk X-Y routing när destinationen x-koordinaten är större än källan x-koordinaten; annars är det Y-X routing. På så sätt korsar trafiken mellan varje par noder i båda riktningarna nätverket på samma ruttväg. Vi antar att länkar fungerar på en frekvens av 1 GHz, vilket är ett rimligt antagande för korta länkar på nuvarande teknik. Vi allokerar den slutliga länkens bandbredd genom att lägga till eller trimma kablar från den. Vi definierar flit storlek för att vara 16 bitar, och använda minimala buffert krav -bufferare som kan lagra två flits vid varje ingångsport (så små Signalering eller Real-Time paket inte kommer att sträckas bortom ett enda steg och skapa överdriven blockering). Förseningen av paket i nätverket består av fördröjning av länkarna och köande förseningar i nätverket. Vi försummar förseningen av routrars logik, vilket bara bör tillföra några få cykler till den totala förseningen. Under designprocessen tilldelar vi trafikegenskaper till de kommunicerande enheterna och simulerar QNoC-beteendet. OPNET [23] valdes som en simuleringsram för att utföra denna uppgift. OPNET tillhandahåller ett bekvämt verktyg för hierarkisk modellering av ett nätverk, inklusive processer (statsmaskiner), topologi beskrivning och simulering av olika trafikscenarier. QNoC-arkitekturen som beskrivs i avsnitt II modellerades fullt ut i OPNET-miljön och simulerades för två scenarier enligt följande: Varje enhet kommunicerar enhetligt med alla andra enheter i systemet. Varje enhet innehåller fyra trafikkällor som motsvarar fyra klasser av systemtrafik: Signalering, realtid, RD/WR och Block-Transfer. Varje källa skapar paket med specifik distribution av paketstorlek och paket inter-arrival tid. Representativa trafikkällor för varje servicenivå och dess tolkning sammanfattas i tabell 3. Enligt detta riktmärke får vi genomsnittlig trafikbelastning från varje modul i systemet på ca 5.76Gbps, eller en total belastning på 92.16Gbps för hela 16-modulen SoC. Detta är bara ett representativt exempel, i våra simuleringar kontrollerade vi också fall med högre och lägre trafikbelastningar för att få fram olika kommunikationsscenarier.  10 SL Slumpmässig mål stor block transaktion varje ~12.5 s. 2 000 12 500 2,56Gbps 50 μsec (flera gånger paketöverföring fördröjning på 32 bit, 50 MHz buss) Enhetlig trafikfördelning är orealistisk. Mer realistisk trafik uppvisar en icke-uniform kommunikationsmönster med högre trafiklokalitet. Enligt den föreslagna designprocessen för nätet (avsnitt III) placeras dessutom systemmoduler med beaktande av deras intermodultrafik för att minimera systemets rumsliga trafiktäthet. I vårt icke-uniforma riktmärke är nättopologin och trafikbelastningen hos källorna samma som i det enhetliga trafikfallet (avsnitt IV.1, men sannolikheten för att en modul kommer att skicka ett paket till en av sina angränsande grannar är dubbelt så stor som sannolikheten att skicka paketet till någon annan modul i nätverket. För att analysera resultaten av våra riktmärken definierar vi QoS krav när det gäller genomströmning och paket end-to-end (ETE) fördröjning för varje klass av tjänst 4. ETE-fördröjning definieras som summan av kötiden vid källan och restiden genom nätverket som 99 % av paketen upplever. Den slutliga QNoC-konfigurationen måste uppfylla de krav som normalt definieras av systemarkitekten. I vårt exempel har vi valt att den maximala ETE-fördröjningen för ett Signalpaket ska vara högst 20-30ns, för Real-Time-paket kräver vi att ETE-fördröjning är storleksordningen 125 s, eftersom vår Real-Time är röstanslutning och det inte ska vara mer än flera ramar av en 8KHz klocka, och för RD/WR-paket vi tillåter ETE-fördröjning ~100 nanosekunder. För att få QoS krav för Block-Transfer paket anser vi en alternativ lösning av en typisk systembuss som passerar chipet och kopplar samman alla moduler på chipet, bussbredden är 32 bitar och den fungerar på 50MHz så att dess totala bandbredd är 1,6 Gbit/s. Bara sändningstid för ett Block-Transfer paket (32000 bitar) på en sådan buss varar 20 s. Därför tillåter vi ETE fördröjning av ett Block-Transfer paket i QNoC att inte vara mer än flera gånger sin sändningstid på en typisk systembuss, se tabell 3. V. OBSERVATIONER OCH SLUTSATSER Vi använde den konstruktionsprocess som beskrivs i avsnitt IV och tillämpade en enhetlig trafikbelastning. Modulerna placerades i full maska. Relativ trafikbelastning på alla länkar i maskan visas i figur 9. Rad- och kolumnkoordinater representerar x-y-index för nätverkets routrar, till exempel punkt (0,0) motsvarar router_00 vid figur 8, och bar kolumner mellan dem representerar interrouter länkar relativ belastning. Exempelvis har länkarna (0,0)i (1,0) och (2,0)i (3,0) den minsta belastningen i systemet, betecknad med 1 enhet. Andra länkbelastningar mäts i förhållande till belastningen på dessa två länkar. Den högsta relativa belastningen i maskan finns på länk (1,3) i (2,3) och når 9,3. Denna lastfördelning kommer från trafikfördelning och modulplatser (som är symmetriska i vårt fall) och från X-Y-koordinater routing, som beskrivs i avsnitt IV. 4 Förseningar och fördröjningar i tur och ordning utgör också QoS-krav och kan vara värda framtida studier. Därefter fördelades länkbandbredden enligt de nyckeltal som visas i figur 9. Denna fördelning ledde till ett balanserat utnyttjande av nätförbindelserna. Vi tillämpade den enhetliga trafikbelastningen som beskrivs i tabell 3 (92.16 Gbps) och simulerade flera totala fördelningsnivåer för nätverksbandbredd. ETE-fördröjningen mättes vid varje destinationsmodul enligt pakettjänstnivå. ETE-fördröjning mättes i klockcykler av länken (eftersom vi antar att länkar fungerar på 1 GHz, varje cykel representerar en fördröjning av en nanosekund). Den totala bandbreddstilldelningen och erhållna resultat sammanfattas i tabell 4 I de två första fallen (figur 10 och 11) är nätverket underutnyttjat och ger bättre prestanda än vad som krävs. Genom att minska bandbredden (och därmed minska kostnaden) får vi ett nätverk som fungerar på 30,4 % utnyttjande (Figur 12 ). Det kan ses att den här nätverkskonfigurationen levererar den QoS som krävs. Specifikt kom 99,9% av signalpaketen med en fördröjning på mindre än 20ns (efter behov), 99,9% av realtidspaketen kom med en fördröjning på mindre än 250ns (överkommet, vi behövde bara mindre än 125 s), 99% av RD/WR-paketen kom med en fördröjning på mindre än 80ns (efter behov) och 99,9% av Block-Transfer-paketen kom med en fördröjning på mindre än 50 s. Det är 2,5 gånger överföringstiden för detta paket på en förmodad systembuss. Om vi försöker minska kostnaden ytterligare, kommer nätverket inte att kunna uppfylla våra QoS-krav som visas i figur 13, där kraven för fördröjning av Signalering och Block-Transfer paket inte uppfylls. För att uppskatta kostnaden för QNoC-system använder vi de kostnadsmått som beskrivs i avsnitt III. Total trådlängd av länkarna med tanke på data och styrtrådar är ~4m. Kostnaden för routers beräknas genom flip-flop räkna vilket resulterar i ~10K flip-flops. Strömavledning beräknas med hjälp av ekvation (3) En annan viktig fråga är nätverksbeteende när det gäller fördröjning som funktion av trafikbelastning. Vi valde en fast nätverkskonfiguration och bandbreddstilldelning och tillämpade olika trafikbelastningar genom att minska och utöka paket interarrivaltid för varje servicenivå. Figur 14 visar den genomsnittliga ETE-fördröjningen för paket på varje servicenivå som en funktion av trafikbelastningen i nätet. Man kan konstatera att medan trafikbelastningen ökar, ökar ETE-fördröjningen av Block-Transfer- och RD/WR-paket exponentiellt, men fördröjningen av försenad trafik (Real-Time and Signaling) förblir nästan konstant. Eftersom nätresurserna hålls konstant, ökar nätutnyttjandet när högre trafikbelastning tillämpas (från 16 % till 42 % i figuren).  Resultat för icke-uniform trafik visas i figur 15. Det kan noteras att förhållandet mellan länkarnas laster är mindre än i det enhetliga scenariot (maximal kopplingsbelastningsgrad är 7.25, jämfört med 9.3 i likform) och den totala trafikfördelningen är mer balanserad på grund av den högre lokaliseringen i nättrafiken. Återigen tillämpade vi den icke-uniforma trafikbelastningen som beskrivs i avsnitt IV.2 (92.16 Gbps) och simulerade flera totala fördelningsnivåer för nätverksbandbredd. ETE-fördröjningen mättes vid varje destinationsmodul enligt pakettjänstnivå. Den totala bandbreddstilldelningen och erhållna resultat sammanfattas i tabell 5 Det kan ses att nätverket underutnyttjades i de två första fallen (8,2 % och 16,5 %). Således minskade vi nätkapaciteten ytterligare, och det kan ses att det nät som fungerar vid 33,5% utnyttjande (Figur 18 ) levererade den nödvändiga QoS. I synnerhet kom 99,9 % av signalpaketen med ETE-fördröjning på mindre än 20ns (efter behov), 99,9 % av realtidspaketen kom med ETE-fördröjning på mindre än 270ns, 99,9 % av RD/WR-paketen kom med ETE-fördröjning på mindre än 150ns och 99 % av BlockTransfer-paketen kom med ETE-fördröjning på mindre än 45 s. Det är 2,3 gånger överföringstiden för samma paket på en systembuss. Om vi försöker minska kostnaden ytterligare, kommer nätverket inte att kunna uppfylla våra QoS krav, till exempel för Signalering och Block-Transfer paket (se figur 19). Det faktum att nättrafiken i det icke-uniforma scenariot är mer lokal gör det möjligt att tillhandahålla den nödvändiga QoS med mindre nätresurser jämfört med det enhetliga scenariot. Den totala trådlängden för länkarna med hänsyn till data och kontrolltrådar i detta fall är i själva verket ca 3,5m, jämfört med 4m i det enhetliga scenariot. Detta är en 13% minskning av kabelkostnaden för länkarna. Strömavledning beräknas med hjälp av ekvation (3) I detta avsnitt jämför vi kostnaden för QNoC arkitektur i termer av område och kraft med kostnaden för alternativa sammanlänkningslösningar som ger samma QoS: En delad buss och dedikerad punkt-till-punkt (PTP) länkar. Vi antar att en 12×12 mm chip bestående av sexton moduler. En delad buss i det enhetliga exemplet med trafikbelastning skulle behöva leverera en total trafikbelastning på 92,16 Gbps. Låt oss också anta att denna buss fungerar på 50 MHz och att den kommer att leverera den nödvändiga QoS under utnyttjande av 50% (ett mycket optimistiskt antagande för de givna QoS-kraven). För att vara konkurrenskraftig med QNoC prestanda, en sådan buss skulle kräva minst 3700 ledningar. Bussen måste ansluta till alla moduler på chipet, och som ett resultat dess längd skulle vara ~25mm. I praktiken är delade systembussar multiplexade och det finns faktiskt två enkelriktade bussar. Även om vi bortser från den betydande kostnaden för multiplexing logik, får vi en total trådlängd på ~180m för en sådan dubbelriktad buss, jämfört med 4m av QNoC. Strömavledning på en sådan buss beräknas med hjälp av ekvation (3) Vi antar att varje modul är ansluten till alla andra moduler med dedikerade ledningar. Vi utgår vidare från att länkar från punkt till punkt fungerar på 100 MHz. För att tillhandahålla den prestanda som krävs (flera gånger överföringstiden för Block-Transfer-paket på en systembuss) bör PTP-länken bestå av ~6 trådar (fem datatrådar och en styrtråd) och fungera med 80 % användning. Total längd av ledningar som kopplar samman alla 16 moduler på chip är ~11,4m. Strömavledning är:, 0 0 0.9 ptp uniform P P. Jämförelsen av de alternativa sammankoppling arkitekturer för den enhetliga trafik exempel sammanfattas i Figur 21. Det bör noteras att kostnaden för QNoC är flera gånger lägre än kostnaden för buss, både när det gäller strömavtagning och trådlängd. PTP-området är också högre än QNoC-området. Teoretiskt sett, en PTP-anslutning bör förbruka samma effekt som QNoC, eftersom samma trafik överförs längs samma Manhattan avstånd och ingen ström slösas på sysslolösa länkar. På grund av mindre omkostnader för styrledningar är dock effektförlusten för punkt-till-punkt-lösningen något lägre än i QNoC. För det icke-uniforma exemplet förblir kostnaden för bussen densamma, eftersom varje transaktion i bussen sprids över hela chipet och den inte kan dra nytta av en högre trafiklokalitet. Kostnaden för QNoC är reducerad (13% minskning i vårt exempel) eftersom den drar direkt nytta av trafikens lokalisering eftersom mindre trafik måste flyttas längre sträckor. PTP-sammanlänkning kommer också att gynnas av trafikens lokalisering, men kostnaden är fortfarande högre.
En tredje metod, som presenteras i REF, är att tillhandahålla mjuk-QoS genom att skilja mellan flera tjänsteklasser.
QNoC: QoS architecture and design process for network on chip
{'venue': 'JOURNAL OF SYSTEMS ARCHITECTURE', 'journal': None, 'mag_field_of_study': ['Computer Science']}