SE521697C2 - Anordningar och förfarande för behandling av data i en logisk rörledning - Google Patents

Anordningar och förfarande för behandling av data i en logisk rörledning

Info

Publication number
SE521697C2
SE521697C2 SE0100221A SE0100221A SE521697C2 SE 521697 C2 SE521697 C2 SE 521697C2 SE 0100221 A SE0100221 A SE 0100221A SE 0100221 A SE0100221 A SE 0100221A SE 521697 C2 SE521697 C2 SE 521697C2
Authority
SE
Sweden
Prior art keywords
block
instruction
processing
argument
logic
Prior art date
Application number
SE0100221A
Other languages
English (en)
Other versions
SE0100221D0 (sv
SE0100221L (sv
Inventor
Paer Westlund
Peter Holm
Joachim Roos
Thomas Stroemqvist
Lars-Olof Svensson
Original Assignee
Xelerated Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xelerated Ab filed Critical Xelerated Ab
Priority to SE0100221A priority Critical patent/SE521697C2/sv
Publication of SE0100221D0 publication Critical patent/SE0100221D0/sv
Priority to EP01941347A priority patent/EP1360602B1/en
Priority to CNB018222854A priority patent/CN100492341C/zh
Priority to DE60141713T priority patent/DE60141713D1/de
Priority to US10/470,096 priority patent/US7010673B2/en
Priority to AT01941347T priority patent/ATE463012T1/de
Priority to PCT/SE2001/001134 priority patent/WO2002059767A1/en
Priority to ES01941347T priority patent/ES2339920T3/es
Publication of SE0100221L publication Critical patent/SE0100221L/sv
Publication of SE521697C2 publication Critical patent/SE521697C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Multi Processors (AREA)

Description

20 25 30 521 69"/ 2 långsammare än ASIC (Application Specific Integrated Circuit), eftersom ASIC är särskilt anpassad för ett specifikt ändamål. Eftersom ASIC är optimerad för ett spe- cifikt förutbestämt arbete har den nackdelen att inte vara anpassad för andra ända- mål och saknar därmed flexibiliteten hos mikroprocessorerna för allmänna ändamål.
US-6157955-A Visar en för generella ändamål programmerbar paketbehandlande plattform för att accelerera nätverksinfrastrukturapplikationer_ Accelerering uppnås gcnom tex. uppdelning av åtgärderna vid pakctbchandlingen i ett flertal steg av lo- gisk rörledning och tillhandahållande av särskilda specialiserade klassificeringsmo- torer och en mikroprocessor för allmänna ändamål, kallad policy-processor, för ut- förande av de godtyckli ga handlingarna som önskas av vissa applikationer. Policy- processorn måste dock genomföra den önskade handlingen innan ett utförande av en följande, och efterfrågad handling kan börja.
SAMNLANFATTNING Det är ett allmänt syfte med den föreliggande uppfinningen att tillhandahålla en da- taarkitektur som för särskilda ändamål tillåter snabbare instruktionsutförande än vanligtvis RISC- och CISC-baserade inikroprocessorer och som är mer flexibel än en ASIC avseende programmerbarhet.
Föreliggande uppfinning tillhandahåller därför ett förfarande för behandling med logisk rörledning. Förfarandet innefattar en pluralitet av steg vid behandling med logisk rörledning, och innefattar åtgärdema: - mottagning av ett block i en första logisk enhet i ett behandlingsmedel; - uppslagning, d.v.s. val inom en förhandsdefinierad tabell med värden (uppställ- ning, matris, etc), av en första instruktion motsvarande en första programräkna- re, d.v.s. en variabel som används för att hålla reda på adressen för nästa in- struktion, som är associerad med blocket i en första instruktionstabell innefat- tande åtminstone den första instruktionen; 10 l5 20 25 521 697 3 - utförande av åtminstone en operation associerad med den första instruktionen i den första logiska enheten; - skapande i den första logiska enheten av en andra programräknare, som är asso- cierad med blocket; - mottagning av blocket i en andra logisk enhet i behandlingsmedlet; - uppslagning av en ytterligare instruktion motsvarande den andra programräkna- ren i en andra instruktionstabell innefattande åtminstone den ytterligare instruk- tionen; och - utförande av åtminstone en operation associerad med den ytterligare instruktio- nen i den andra logiska enheten.
Härmed uppnås att varje steg vid behandling med logisk rörledningen av inkom- mande block är associerat med en instruktionstabell, i vilken en instruktion specifi- cerad för en applikation är redigerbar för att specialkonfigurera varje steg för en specifik applikation.
Lämpligen innefattar det åtminstone ena steget vid behandling med logisk rörled- ning åtgärderna: I - mottagande av åtminstone ett argument, d.v.s. en variabel, i den första logiska enheten, där det åtminstone ena argumentet är associerat med blocket; och - utförandet av den åtminstone ena operationen i den logiska enheten genomförs på det åtminstone ena argumentet, blocket eller både det åtminstone ena argu- mentet och blocket.
Härmed uppnås att mer komplexa och olika instruktioner kan programmeras i in- struktionstabellen.
Företrädesvis innefattar förfarandet, före det eller de ovan nämnda steget eller ste- gen, åtgärderna: - mottagande av en sökvektor associerad med blocket i ett klassificeringsmedel; 10 15 20 25 30 521 697 4 - jämförande av sökvektom med data lagrad i ett associativt minne, vilken data innefattar den första programräknaren och det åtminstone ena argumentet; och - sändande av det åtminstone ena argumentet och den första programräknaren till behandlingsmedlet innan något av stegen i pluraliteten av steg vid behandling med logisk rörledning.
Härigenom erhålles en klassificeringsåtgärd före behandlingsåtgärden, där det åt- minstone ena argumentet och den första programräknaren, som kan vara olika för varje typ av block sot.. skickas till klassificeringsmedlet, fastställer en inojlig modi- fiering av blocket i det första steget i behandlingsmedlet. Det associativa minnet, d.v.s. ett minne som tillträdes genom jäinförande av innehållet i den data som är lag- rad i det snarare än genom adressering av förhandsbestämda lägen, är programmer- bart, vilket gör behandlingen med logisk rörledning ännu mer flexibel jämfört med behandling i en ASIC.
Företrädesvis innefattar förfarandet åtgärderna: - skapande av en andra programräknare i ett första steg; och - skapande av en tredje programräknare i ett andra steg.
Härigenom uppnås att villkorliga hopp är möjliga när en möjlig motsvarande vill- korlig hoppinstruktion utförs i det första eller andra steget.
Uppfinningen avser även ett behandlingsmedel för behandling av data i en logisk rörledning. Behandlingsmedlet innefattar ett lagringsmedel och en pluralitet av lo- gisk enheter för utförande av operationer på ett block med data. Lagringsmedlet in- nefattar en pluralitet av instruktionstabeller, var och en innefattande åtminstone en instruktion. En första logisk enhet av pluraliteten av logiska enheter i ett första steg vid behandling med logisk rörledning är anpassad att mottaga blocket och en första instruktion i en första instruktionstabell av pluraliteten av instruktionstabeller och utföra åtminstone en operation associerad med den första instruktionen. En andra logisk enhet av pluraliteten av logiska enheter i ett andra steg vid behandling med logisk rörledning är anpassad att mottaga blocket och en ytterligare instruktion från 10 15 20 25 30 521 6927 5 en andra instruktionstabell av pluraliteten av instruktionstabeller och utföra åtmin- stone en operation associerad med den ytterligare instruktionen.
Lämpligen är åtminstone en av de logiska enheterna anpassad att mottaga åtminsto- ne ett argument associerat med blocket och utföra den respektive åtminstone ena operationen på blocket, det åtminstone ena argumentet eller både blocket och det åtminstone ena argumentet.
Pöreträdesvis innefattar åtminstone en av instruktionstabellerna åtminstone en andra instruktion. Härigenom uppnås möjligheten att använda villkorliga hopp i under be- handling med logisk rörledning.
I en första aspekt av behandlingsinedlet enligt uppfinningen är blocket en PDU (Protocol Data Unit, eller protokolldataenhet), t.ex. en del av ett IP-paket. Härige- nom uppnås att behandlingsmedlen till exempel kan användas i en anordning i ett koinmunikationsnätverk, såsom internet.
I en andra aspekt av behandlingsmedlet innefattar blocket en digital representation av en analog signalsekvens. Härigenom uppnås att behandlingsmedlen kan användas för digital signalbehandling.
Lämpligen innefattar åtminstone en av de logiska enheterna en ALU och medel för att plocka ut en del eller delar av blocket.
Vidare avser uppfinningen en modul för behandling av data i en logisk rörledning.
Modulen innefattar ett klassificeringsmedel för matchning eller identifiering av ett block av data och ett behandlingsmedel för behandling av blocket. Behandlings- medlet innefattar lagringsmedel och åtminstone en logisk enhet för utförande av operationer på blocket, som levereras från klassificeringsmedlet till behandlings- medlet. Klassificeringsmedlet år anpassat att sända en programräknare associerad 10 15 20 25 30 CT! PO __; m? \-.i 6 med blocket till behandlingsmedlet och lagringsinedlet innefattar en instruktionsta- bell innefattande åtminstone en instruktion. Den åtminstone ena logiska enheten i åtminstone ett steg vid behandling med logisk rörledning är anpassad att mottaga blocket och en första instruktion av den åtminstone ena instruktionen och utföra åt- minstone en operation associerad med den första instruktionen.
Lämpligen är klassificeringsmedlet anpassat att sända åtminstone ett argument asso- cierat med blocket till bchandlingsmedlet, och den åtminstone ena logiska enheten i det åtminstone ena steget vid behandling med logisk rörledning år anpassad att mottaga det åtminstone ena argumentet och utföra den åtminstone ena operationen på blocket, det åtminstone ena argumentet, eller både blocket och det åtminstone ena argumentet.
Därtill avser uppfinningen även en integrerad krets, som innefattar åtminstone en modul enligt ovan.
Dessutom avser uppfinningen en kretskortsanordning, t.ex. ett linj ekort anpassat för en router. Kretskortsanordningen innefattar åtminstone en integrerad krets innefat- tande åtminstone en modul enligt ovan.
Vidare avser uppfinningen en dataenhet, såsom en nätverksdataenhet eller en sig- nalbehandlingsdataenhet, innefattande åtminstone en integrerad krets, där den åt- ininstone ena integrerade kretsen innefattar åtminstone en modul enligt ovan.
Uppfinningen avser även ett system för behandling med logisk rörledning, innefat- tande ett klassificeringsinedel för matchning eller identifiering av ett block med data, ett lagringsmedel och ett behandlingsmedel för behandling av blocket. Be- liandlingsniedlet innefattar åtminstone en logisk enhet for utförande av operationer på blocket, som levereras från klassificeringsmedlet till behandlingsinedlet. Klassi- ficeringsmedlet är anpassat att sända en programråknare associerad med blocket till 10 15 20 25 30 521 692' 7 behandlingsniedlet och lagringsmedlet innefattar en instruktionstabell innefattande åtminstone en instruktion. Den åtminstone ena logiska enheten är i åtminstone ett behandlingssteg anpassad att mottaga blocket och en första instruktion av den åt- minstone ena instruktionen och utföra åtminstone en operation associerad med den första instruktionen.
KORT BESKRIVNING AV RITNINGARNA Syftena, fördelama och effekterna liksom särdrag för föreliggande uppfinning kommer lättare att kunna förstås från den följ ande detaljerade beskrivningen av en föredragen utföringsform av uppfinningen, liksoin andra utföringsforiner, när den läses tillsammans med de bifogade ritningama, på vilka: Pig. l visar scheinatiskt en modul för behandling med logisk rörledning av data en- ligt uppfinningen; Pig. 2 illustrerar funktionen för klassificeringsiriedlen enligt uppfinningen; Pig. 3 visar schematiskt en översikt över driftsförfarandet för ett behandlingsmedel enligt uppfinningen; Pig. 4 visar mer i detalj två behandlingssteg i behandlingsmedlet enligt Pig. 3; Pig. 5 visar en schematisk vy av en kretskortsanordning enligt en utföringsfonn av uppfinningen; Pig. 6 visar schematiskt en router enligt uppfinningen; och Pig. 7 visar ett schematiskt blockdiagram av komponenter på ett linj ekort enligt upp- finningen.
DETALJERAD BESKRIVNING AV UTPÖRING SPORMER Medan uppfinningen täcker olika modifikationer och alternativa förfaranden och sy- stein visas föredragna utföringsforiner av uppfinningen på ritningarna och kommer härefter att beskrivas i detalj. Det är underförstått att den detaljerade beskrivningen och ritningarna inte är avsedda att begränsa uppfinningen till de specifika visade ut- 10 15 20 25 30 521 697 8 fonnningarna. Tvärtom är det tänkt att omfånget för uppfinningen enligt patentkra- ven innefattar alla inodifieringar och alternativa konstruktioner därav som faller inom tanken och omfånget för uppfinningen som beskriven i de bifogade patentkra- ven till det fulla omfånget av deras ekvivalenter.
En modul l, som innefattar ett klassificeringsinedel 2 och ett behandlingsmedel 3 för behandling med logisk rörledning enligt uppfinningen visas schematiskt i F ig. 1.
Ett block 4 i form av en PDU, såsom en del av ett lP-paket (lntemet Protocol pack- et, eller intemetprotokollpaket), mottages av klassificeringsinedlet 2. En sökvektor 5 associerad och hämtad från blocket 4 mottages också av klassificeringsmedlet 2.
Blocket 4 skickas vidare av klassificeringsmedlet 2 till behandlingsmedlet 3 utan förändring av blocket 4. Behandlingsmedlet 3 mottager också åtminstone ett argu- ment 6 och en första programräknare 7a från klassificeringsmedlet 2. Därefter kan behandlingsmedlet 3 genomföra olika operationer på blocket 4, beroende på, till ex- empel, typen av block som har klassificerats av klassificeringsmedlet. Behand- lingsmedlet 3 sänder ut det ändrade eller oförändrade blocket 4 från modulen 1. För genomförande av en önskad uppgift kan ett flertal moduler vara seriekopplade till varandra, och således skapa en arkitektur av skiftande klassificeringsmedel 2 och behandlingsmedel 3. För syftet av seriekopplade moduler skapas en andra sökvektor (ej visad) genom behandlingsmedlet, vilken kan sändas till en möjlig andra serie- kopplad modul (ej visad).
Klassificeringsinedlet 2 kommer nu att beskrivas mer i detalj med hänvisning till fig. 2. Här jämförs sökvektom 5 med teckensträngar i åtminstone en kolumn i ett as- sociativt minne 8 (CAM = Content Addressable Memory, eller innehållsadresserbart minne). Associativa minnen är kända för fackmannen och beskrivs därför inte när- mare. Efter jämförelsen sänds den första programräknaren 7a och argumen- tet/argumenten 6 motsvarande sökvektorn 5 från klassificeringsmedlet 2 till be- handlingsinedlet 3. Blocket 4 skickas vidare genom klassificeringsinedlet 2 utan att ändras. Vidareskickningen fördröjs så att blocket sänds till behandlingsmedlet hu- 10 15 20 25 30 521 (Si-W 9 vudsakligen samtidigt som argumentet/argumenten 6 och den första programräkna- ren 7a. Härefier hänvisar beskrivningen bara till ett argument 6, men det är under- förstått att ett flertal argument för varje block skulle kunna sändas, lagrade och redi- gerade i behandlingsmedlet.
Pig. 3 visar schematiskt den grundläggande metoden för drift av behandlingsmedlet 3. Här innefattar behandlingen av datablocken i en logisk rörledning fem behand- lingssteg 9a-9e där varje steg behandlas i en kl ckcykel, naturligtvis kan be- handlingen med logisk rörledning i behandlingsmedlet 3 innefatta ned till bara ett steg eller mycket mer än fem steg. Principerna för logisk rörledning är kända för fackmannen och därför beskrivs bara behandlingen av ett block och dess associera- de argument och programräknare. Före och efter varje steg 9a-9e, lagras in- och ut- data i varsitt register, d.v.s. en liten höghastighetsdatakrets som håller värden för intema operationer. Det övre flödet av de tre skilda parallella flödena visade i fig. 3 genom behandlingsmedlet 3 illustrerar behandlingen av blocket 4. Mittflödet illu- strerar behandlingen av det associerade argumentet 6 och det undre flödet visar mottagandet av en programräknare för varje steg. Såsom kommer att förklaras i det följande kan blocket ändras i varje steg, argumentet kan ändras i varje steg, och en ny programräknare skapas i varje nytt steg.
Pig. 4 visar de första två stegen, 9a och 9b, av de fem stegen visade i fig. 3. Det är underförstått att de andra tre stegen 9c-9e fungerar på samma principiella sätt som de första två stegen, 9a och 9b, och därför har utelämnats. I analogi med fig. 3 visas de tre typerna av flöden beskrivna i samband med fig. 3 även i fig. 4. Blocket 4 mottages och lagras i ett första register l0a. Huvudsakligen samtidigt mottages ar- gumentet och lagras i ett andra register l0b och den första programräknaren 7a mottages och lagras i ett tredje register lOc. I början av ett klocktick mottager en lo- gisk enhet ll blocket 4 och argumentet 6 från det första respektive det andra re- gistret. Den första programräknaren 7a används för att slå upp motsvarande instruk- tion lagrad i en redigerbar första instruktionstabell l2a, som är innefattad i ett lag- 10 l5 20 25 30 521 697 10 ringsmedel inkluderat i behandlingsmedlet 3. Den första instruktionstabellen l2a innefattar åtminstone en första instruktion 13a, men här illustreras aven den första instruktionstabellen l2a med en andra och en tredje instruktion, l3b respektive l3c.
Naturligtvis kan den första instruktionstabellen l2a innefatta ett godtyckligt antal instruktioner. Var och en av instruktionerna l3a-c innefattar redigerbara instruk- tionsfält (ej visade). När en instruktion motsvarande den första programräknaren 7a hittas sänds den första instruktionen till den logiska enheten l 1 för utförande av operationer inotsvarande instruktionen. I fig. 4 inotsvarar den första instruktionen l3a den första programräknaren 7a. Därför skickas den första instruktionen l3a till den logiska enheten ll för utförande av operationerna motsvarande den första in- struktionen l3a. Ett instruktionsfält kan till exempel innefatta en hoppvillkorsin- struktion.
Den logiska enheten ll innefattar medel, d.v.s. en logisk underenhet, för skapande av nya programräknare och medel för utförande av operationerna associerade med en mottagen instruktion. I det första steget i detta exempel är medlet för utförande av operationerna och beräkna villkorliga hopp en ALU (Arithmetic Logic Unit, eller aritmetisk logisk enhet). En ALU är känd för fackmannen och beskrivs därför inte närmare. Exempel på ytterligare eller alternativa medel för utförande av operatio- nerna är medel för att välja ut en del eller delar av blocket, medel för att föra in data i ett block, såsom att lägga till ett nytt sidhuvud till ett paket, och en FPU (Floating Point Unit, eller flytande punktenhet) för att ta hand om flytande punktoperationer.
Efter att den första instruktionen l3a har mottagits av den logiska enheten ll utförs operationerna som är nödvändiga för utförande av den första instruktionen l3a. Som ett exempel kan TOS- (Type Of Service, eller typ av service) fältet i ett IP-paket modifieras. Den logiska enheten ll kan också redigera argumentet 6. Dessutom skapar, baserat på blocket 4, argumentet 6, operationerna utförda på blocket 4 och/eller argumentet 6 och/eller önskade villkorliga hopp, den logiska enheten ll en andra programräknare 7b. Innan klockticket, och därmed det första steget, har tagit slut lagras det förändrade eller det oförändrade blocket 4 i ett fjärde register lOd, det 10 15 20 25 30 521 (ålj/“l/ ll förändrade eller oförändrade argumentet 6 i ett femte register lOe, och den andra programräknaren i ett sjätte register 10f.
Det andra steget 9b under ett följande klocktick fungerar på ett liknande sätt som det första steget 9a. Här mottager en andra logisk enhet 14 det modifierade eller omodi- fierade blocket 4 och argumentet 6 från det fjärde respektive det femte registret. Den andra programräknaren 7b jämförs med instruktioner i en redigerbar andra instruk- tionstabell 12b, som i fig. 4 innefattar tre instruktioner: en fjärde instruktion l3d, en femte instruktion l3e och en sjätte instruktion l3f. Naturligtvis kan instruktionerna 13d-13f vara liknande eller identiska med instruktionema 13a-13c i den första in- struktionstabellen 12a. I fig. 4 motsvarar den sjätte instruktionen l3f den andra pro- gramräknaren 7b. Således mottager den andra logiska enheten den sjätte instruktio- nen l3f och utför operationerna som motsvarar den sjätte instruktionen l3f på det mottagna blocket 4 och/eller argumentet 6 och sänder blocket 4 till ett sjunde regis- ter 10g och argumentet 6 till ett åttonde register lOh. Den andra logiska enheten 14 skapar också en tredje programräknare 7c, som sänds och lagras i ett nionde register , l0i.
Så som är indikerat genom fig. 4 skapas en ny programräknare i varje nytt behand- lingssteg i behandlingsmedlet 3. Om en andra modul seriekopplas till den första modulen lagras ett sista argument för ett första behandlingsmedel i ett register och utgör en sökvektor för ett andra klassificeringsmedel innefattat i den andra modulen.
Pig. 4 indikerar även det faktum att redigerbara instruktionstabeller och olika logis- ka enheter, båda med hänsyn till fysiskt olika logiska enheter och med hänsyn till helt eller delvis olika typer av komponenter innefattade i varje logisk enhet, kan an- vändas i vart och ett av stegen i behandlingsmedlet 3. Alternativt kan, istället för att använda olika logiska enheter för varje steg, några eller alla av stegen dela samma logiska enhet. Användandet av bara en redigerbar instruktionstabell för några eller varje steg i behandlingsmedlet är också inkluderat av uppfinningen. En sådan utfö- ringsform kan dock begränsa behandlingshastigheten. Det måste också nämnas att 10 15 20 25 30 521 61)? 12 en instruktion kan bara instruera utförandet av en operation som inte påverkar var- ken blocket 4 eller argumentet 6. En sådan instruktion skulle kunna anvandas till exempel när ett block bara har identifierats som ett som bara måste transporteras ge- nom ett steg, några steg eller hela behandlingsmedlet.
Man ska vara medveten om att lagringsmedlet som innefattar de redigerbara in- struktionstabellema som används av behandlingsmedlet 3 kan innefattas i behand- lingsrriedlet 3 eller utanför behandlingsrncdlct 3, i ren på modulen 1, eller integrerat i en IC (Integrated Circuit, eller integrerad krets) 15, som också innefattar åtminsto- ne en modul l. En kretskortsanordning 16 illustreras schematiskt i fig. 5. Här inne- fattar kretskortsanordningen 16 en lokal CPU 17, IC:n 15, och en första och en andra gränssnittsanordning, 18a respektive l8b. Ett exempel på en tillämpning for en sådan kretskortsanordning är i datorenheter för brandväggsapplikationer. IC:n 15 innefattar den första seriekopplade modulen 1 och en andra modul 19. Såsom illu- streras genom en dubbelriktad pil 20 kan IC:n 15 kommunicera med den lokala CPU:n via en buss. Ett mer detaljerat exempel på en kommunikation mellan IC:n 15 och den lokala CPU:n 17 beskrivs senare i samband med fig. 7. Genom beskriv- ningen är den lokala CPU:n 17 av en typ känd för fackmannen och beskrivs därför inte närmare. En pil 21 illustrerar block som kommer in till IC:n 15 från den första gränssnittsanordningen 18a. De inkommande blocken behandlas av den seriekopp- lade första och andra modulen, 1 och 9, och sänds sedan tillbaka till den första gränssnittsanordningen 18a. Även om det inte visas kan naturligtvis block som kommer från den andra gränssnittsanordningen l8b naturligtvis behandlas på ett liknande sätt.
Ett exempel på en datorenhet 22 som innefattar moduler enligt uppfinningen kom- mer nu att beskrivas. Detta exempel avser en router, d.v.s. en dator som skickar vi- dare paket från ett LAN (Local Area Network, eller lokalt områdes nätverk) eller WAN (Wide Area Network, eller vidsträckt oinrådes nätverk) till ett annat. Fig. 6 illustrerar schematiskt hur delar av en struktur i routern, där ett flertal linjekort, 10 15 20 25 30 5221 6“}:?',7 13 d.v.s. kretskortsanordningar, vart och ett försett med en sändande/mottagande del för ett särskilt protokoll, är arrangerade. Här visas bara tre linjekort 23 a-23 c, men det kan naturligtvis vara fler eller färre av dem i routern. Varje linj ekort innefattar åtminstone en IC 15, som innefattar åtminstone en modul 1 enligt uppfinningen. Så- som också visas i fig. 5 kan den lokala CPU:n 17 associerad med varje IC 15 place- ras på varje linjekort 23a-23c. För tillämpningar som kräver snabb behandling av mycket data används optiska fibrer för att koppla ihop linjekort 23 a-23c till ett kommunikationsnätverk (cj visat). Varje linjekort 23a-23c innefattar därför en första uppsättning portar, d.v.s. det finns tre uppsättningar av den första uppsättningen portar, som i fig. 6 bara symboliseras av de tre linjerna 24a-24c med två pilhuvuden till vänster om linjekorten 23a-23c. Linjekorten kommunicerar med varandra genom ett växelkonstruktionskort 25, d.v.s. ett kort som innefattar arkitekturen som an- vänds av routern för omdirigering av data som kommer in på en av portarna på kor- tet ut till en annan av dess portar. Således tjänar växelkonstruktionskortet 25 som en växel och en korsning för linjekorten 23a-23c. Varje linjekort 23 a-23c innefattar en andra uppsättning portar, d.v.s. det finns tre uppsättningar av den andra uppsättning- en portar i fig. 6 för kommunikationen med växelkonstruktionskortet. Varje andra uppsättning portar symboliseras av linjer 26a-26c med två pilhuvuden mellan det associerade linj ekortet 23a-23c och växelkonstruktionskortet 25. En anordning 27 används t.ex. för beräkning av routingtabeller, d.v.s. databastabeller i routern som innehåller information om ett aktuellt kommunikationsnätverk. Genom anordningen 27 kan en leverantör av lC:n 15 uppdatera instruktionerna i de redigerbara instruk- tionstabellerna l2a-12b visade ovan. Uppdateringen är dock inte en del av denna uppfinning och därför inte beskriven närmare.
Pig. 7 visar scheinatiskt ett exempel på en kretsarkitektur på ett av linjekorten 23 a- 23 c, som inkluderar ett flertal moduler enligt uppfinningen. Här är den första upp- sättningen portar anslutna till en multiplexor 28. Ett fleital moduler är seriekopplade till multiplexorn 28 och leder till en enhet 29 för operationer såsom kö, schemalägg- ning och formning. Dessa operationer är kända för fackmannen och är inte en del av 10 15 20 25 30 521 6917 14 denna uppfinning. Ytterligare moduler följ er efter enheten 29 innan paketen i en lo- gisk rörledning levereras till en omvänd multiplexor 30 och ut via den andra upp- sättningen portar, som motsvarar den första uppsättningen portar. En återkoppling till multiplexorn 28 kan också göras. Vidare kan paketen skickas vidare från den omvända multiplexom 30 till den lokala CPU:n 17 för behandling. CPU:n kan även sända paket till multiplexorn 28.
Exempel på uppgifter som kan utföras i en av inodulerna i fig. 7 är: - avkodning av olika typer av paket, såsom ATM-celler och Ethernet-paket; - brandväggsverksamhet för att fastställa om ett paket ska skickas vidare till en följande modul eller filtreras ut; - brandväggsverksamhet för att bara skicka vidare särskilda typer av paket från linjekortet; - trafikbestämning, d.v.s. mätning av längden av det inkommande paketet där det finns ett villkor som kan vara att bara en särskild mängd data tillåts skickas vida- re till en särskild adress i kommunikationsnätverket och där all data över en gräns kastas bort; - vidareskickning av paketet till ett annat linjekort som använder routingtabellen; - köprioritetsindikering, t.ex. i fallet där olika paket har olika prioriteter avseende snabb sändning genom kommunikationsnätverket; och - tillägg eller borttagning av ett sidhuvud för ett inkommande paket.
Behandlingsmedlet 3, förfarandet för behandlingsmedlet 3 och modulen l beskrivna ovan är naturligtvis applicerbara på alla typer av dataenheter, förutom routern och dataenheter för brandväggstillämpningar beskrivna ovan, där dataenheterna skulle dra nytta av logisk rörledning. Exempel på sådana dataenheter är nätverksdataenhe- ter, såsom växlar; gateways, d.v.s. dataenheter som utför protokollomvandling mel- lan olika typer av nätverk och tillämpningar; och belastningsbalanserande enheter för webbservrar. 15 Uppfinningen är också applicerbar för dataenheter inblandade i digital Signalbe- handling, d.v.s. analyserandet och/eller rnodifieringen av signaler från källor som ljud, vädersatelliter och jordbävningsinonitorer. Blocket 4 med data mottagen av modulen l kan i detta fall vara en digital representation av en analog signalsekvens.
Områden där digital Signalbehandling används i samband med uppfinningen är tex. biomedicin, ekolod, radar, seismologi, tal- och musikbehandling, bildbehandling och kommunikation.

Claims (18)

10 15 20 25 30 521 6)/ 16 PATENTKRAV
1. Förfarande for behandling med logisk rörledning, innefattande en pluralitet av steg vid behandling med logisk rörledning, kännetecknat av åtgärderna: KU KA) mottagning av ett block (4) i en forsta logisk enhet (1 1) i ett behandlingsmedel (3); uppslagning av en första instruktion (13a) motsvarande en första programräknare 7a) som är associerad med blocket (4) i en forsta instruktionstabell (12a) inne- fattande åtminstone den första instruktionen (13a); utförande av åtminstone en operation associerad med den forsta instruktionen (l3a) i den forsta logiska enheten (1 1); skapande i den första logiska enheten (11) av en andra programräknare (7b), som är associerad med blocket (4); mottagning av blocket (4) i en andra logisk enhet (14) i behandlingsmedlet (3); uppslagning av en ytterligare instruktion (13f) motsvarande den andra program- räknaren (7b) i en andra instruktionstabell (l2b) innefattande åtminstone den yt- terligare instruktionen (13f); och utförande av åtminstone en operation associerad med den ytterligare instruktio- nen (13f) i den andra logiska enheten (14). .
2. Förfarande enligt patentkrav 1, innefattande åtgärden: mottagande av åtminstone ett argument (6) i den forsta logiska enheten (11), där det åtminstone ena argumentet (6) är associerat med blocket (4); och utforandet av den åtminstone ena operationen i den första logiska enheten (11) genomförs på det åtminstone ena argumentet (6), blocket (4) eller både det åt- minstone ena argumentet (6) och blocket (4). .
3. Förfarande enligt patentkrav 2, innefattande åtgärden: mottagande av en sökvektor (5) associerad med blocket (4) i ett klassificerings- medel (2); 10 15 20 25 30 5 2 'I 6 få Éf' 17 - jämförande av sökvektorn (5) med data lagrad i ett associativt minne (8), vilken data innefattar den första programräknaren (7a) och det åtminstone ena argu- mentet (6); och - såndande av det åtminstone ena argumentet (6) och den forsta programräknaren (7a) till behandlingsmedlet (3) innan något av stegen i pluraliteten av steg vid behandling med logisk rörledning. -ß .
4. Förfarandc enligt något av föregående patentkrav, innefattande åtgärden: skapande av en andra programräknare (7b) i ett forsta steg (9a); och skapande av en tredje programräknare (7 c) i ett andra steg (9b).
5. Behandlingsmedel (3) for behandling av data i en logisk rörledning innefattande ett lagringsmedel och en pluralitet av logisk enheter (11, 14) för utförande av opera- tioner på ett block (4) med data, kännetecknat av att lagringsmedlet innefattar en pluralitet av instruktionstabeller (l2a, 12b), var och en innefattande åtminstone en instruktion, att en första logisk enhet (11) av pluraliteten av logiska enheter i ett for- sta steg vid behandling med logisk rörledning (9a) är anpassad att mottaga blocket (4) och en forsta instruktion (13a) i en första instruktionstabell (12a) av pluraliteten av instruktionstabeller och utföra åtminstone en operation associerad med den forsta instruktionen (1321), och att en andra logisk enhet (14) av pluraliteten av logiska en- heter i ett andra steg vid behandling med logisk rörledning (9b) är anpassad att mottaga blocket (4) och en ytterligare instruktion (l3t) från en andra instruktionsta- bell (l2b) av pluraliteten av instruktionstabeller och utföra åtminstone en operation associerad ined den ytterligare instruktionen (1 3f).
6. Behandlingsmedel (3) enligt patentkrav 5, där åtminstone en av de logiska enhe- terna (11) är anpassad att mottaga åtminstone ett argument (6) associerat med block- et (4) och utföra den respektive åtininstone ena operationen på blocket (4), det åt- minstone ena argumentet (6) eller både blocket (4) och det åtminstone ena argu- mentet (6). 10 15 20 25 30 (51 i \. -à fax \_'.3 \\ 18
7. Behandlingsinedel (3) enligt patentkrav 5 eller 6, där åtminstone en av instruk- tionstabellema (l2a) också innefattar åtminstone en andra instruktion (l3b).
8. Behandlingsmedel (3) enligt något av patentkraven 5-7, där blocket (4) är en PDU, t.ex. en del av ett IP-paket.
9. Behandlingsmedel (3) enligt något av patentkraven 5-7, där blocket (4) innefattar en digital representation av en analog signalsekvens.
10. Behandlingsniedel (3) enligt något av patentkraven 5-9, där åtminstone en av de logiska enhetema (1 l) innefattar en ALU.
11. Behandlingsmedel (3) enligt patentkrav 10 där den första logiska enheten (1 1) innefattar medel för att plocka ut en del eller delar av blocket (4).
12. Modul för behandling av data i en logisk rörledning innefattande ett klassifice- ringsmedel (2) för matchning eller identifiering av ett block (4) av data och ett be- handlingsmedel (3) för behandling av blocket (4), varvid behandlingsmedlet (3) in- nefattar lagringsmedel och åtminstone en logisk enhet (l l) för utförande av opera- tioner på blocket (4), som levereras från klassificeringsmedlet (2) till behandlings- medlet (3), kännetecknat av att - klassificeringsinedlet (2) är anpassat att sända en programräknare (7a) associerad med blocket (4) till behandlingsmedlet (3), - lagringsmedlet innefattar en instruktionstabell (l2a) innefattande åtminstone en instruktion, och - den åtminstone ena logiska enheten (l 1) i åtminstone ett steg vid behandling med logisk rörledning är anpassad mottaga blocket (4) och en första instruktion (l3a) av den åtminstone ena instruktionen och utföra åtminstone en operation as- socierad med den första instruktionen (l3a). 10 15 20 25 30
13. Modul (1) enligt patentkrav 12, där: - klassificeringsmedlet (2) är anpassat att sända åtminstone ett argument (6) asso- cierat med blocket (4) till behandlingsmedlet (3), och - den åtminstone ena logiska enheten (1 1) i det åtminstone ena steget vid behand- ling med logisk rörledning är anpassad att mottaga det åtminstone ena argumen- tet (6) och utföra den åtminstone ena operationen på blocket (4), det åtminstone tminstone ena arguinentet (6). FW' ena argumentet (6), eller både blocket (4) och det
14. Integrerad krets (15), kännetecknad av åtminstone en modul (1) enligt pa- tentkrav 12.
15. Kretskortsanordning (16), tex. ett linj ekort (23 a) anpassat för en router, känne- tecknad av åtminstone en integrerad krets (15) innefattande åtminstone en modul (1) enligt patentkrav 12.
16. Dataenhet (22), såsom en nätverksdataenhet eller en signalbehandlingsdataenhet, innefattande åtminstone en integrerad krets (15), kännetecknad av att den åtmin- stone ena integrerade kretsen (15) innefattar åtminstone en modul (1) enligt patent- krav 12.
17. System för behandling med logisk rörledning, innefattande ett klassificerings- medel (2) för matchning eller identifiering av ett block (4) med data, ett lagringsme- del och ett behandlingsmedel (3) för behandling av blocket (4), varvid behand- lingsmedlet (3) innefattar åtminstone en logisk enhet (11) för utförande av operatio- ner på blocket (4), som levereras från klassificeringsinedlet (2) till behandlings- medlet (3), känneteckn at av att - klassificeringsmedlet (2) är anpassat att sända en programräknare (7a) associerad med blocket (4) till behandlingsmedlet (3), 10 20 - lagringsmedlet innefattar en instruktionstabell (l2a) innefattande åtminstone en instruktion, och den åtminstone ena logiska enheten (l l) i åtminstone ett be- handlingssteg är anpassat att mottaga blocket (4) och en första instruktion (l3a) av den åtminstone ena instruktionen och utföra åtminstone en operation associe- rad med den första instruktionen (13a).
18. System för behandling med logisk rörledning enligt patentkrav 17, där klassifi- ceringsmedlet (2) är anpassat att sända åtminstone ett argurnent (6) associerat med blocket (4) till behandlingsmedlet (3) och den åtminstone ena logiska enheten (l 1) i det åtminstone ena behandlingssteget är anpassad att mottaga det åtminstone ena ar- gumentet (6) och utföra den åtminstone ena operationen på blocket (4), det åtmin- stone ena argumentet (6) eller både blocket (4) och det åtminstone ena argumentet (6)-
SE0100221A 2001-01-25 2001-01-25 Anordningar och förfarande för behandling av data i en logisk rörledning SE521697C2 (sv)

Priority Applications (8)

Application Number Priority Date Filing Date Title
SE0100221A SE521697C2 (sv) 2001-01-25 2001-01-25 Anordningar och förfarande för behandling av data i en logisk rörledning
EP01941347A EP1360602B1 (en) 2001-01-25 2001-05-21 Apparatus and method for processing pipelined data
CNB018222854A CN100492341C (zh) 2001-01-25 2001-05-21 用于处理流水线化数据的设备和方法
DE60141713T DE60141713D1 (de) 2001-01-25 2001-05-21 Vorrichtung und verfahren zur verarbeitung von pipeline-daten
US10/470,096 US7010673B2 (en) 2001-01-25 2001-05-21 Apparatus and method for processing pipelined data
AT01941347T ATE463012T1 (de) 2001-01-25 2001-05-21 Vorrichtung und verfahren zur verarbeitung von pipeline-daten
PCT/SE2001/001134 WO2002059767A1 (en) 2001-01-25 2001-05-21 Apparatus and method for processing pipelined data
ES01941347T ES2339920T3 (es) 2001-01-25 2001-05-21 Aparato y metodo para procesar datos encauzados.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0100221A SE521697C2 (sv) 2001-01-25 2001-01-25 Anordningar och förfarande för behandling av data i en logisk rörledning

Publications (3)

Publication Number Publication Date
SE0100221D0 SE0100221D0 (sv) 2001-01-25
SE0100221L SE0100221L (sv) 2002-07-26
SE521697C2 true SE521697C2 (sv) 2003-11-25

Family

ID=20282730

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0100221A SE521697C2 (sv) 2001-01-25 2001-01-25 Anordningar och förfarande för behandling av data i en logisk rörledning

Country Status (8)

Country Link
US (1) US7010673B2 (sv)
EP (1) EP1360602B1 (sv)
CN (1) CN100492341C (sv)
AT (1) ATE463012T1 (sv)
DE (1) DE60141713D1 (sv)
ES (1) ES2339920T3 (sv)
SE (1) SE521697C2 (sv)
WO (1) WO2002059767A1 (sv)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE525183C2 (sv) 2002-04-04 2004-12-21 Xelerated Ab Förfarande och medel för behandling med pipelining av datapaket
US20070070077A1 (en) * 2005-09-26 2007-03-29 Silicon Integrated Systems Corp. Instruction removing mechanism and method using the same
US8179896B2 (en) 2006-11-09 2012-05-15 Justin Mark Sobaje Network processors and pipeline optimization methods
CN102364432B (zh) * 2011-10-25 2013-12-18 中国科学院苏州纳米技术与纳米仿生研究所 使用双程序计数器计算待处理指令地址的系统
CN106325248B (zh) * 2016-09-06 2018-12-07 凌云光技术集团有限责任公司 一种视觉检测流水线调控方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
US5509123A (en) 1994-03-22 1996-04-16 Cabletron Systems, Inc. Distributed autonomous object architectures for network layer routing
US5524258A (en) * 1994-06-29 1996-06-04 General Electric Company Real-time processing of packetized time-sampled signals employing a systolic array
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
US5666487A (en) * 1995-06-28 1997-09-09 Bell Atlantic Network Services, Inc. Network providing signals of different formats to a user by multplexing compressed broadband data with data of a different format into MPEG encoded data stream
JPH09106389A (ja) * 1995-10-12 1997-04-22 Sony Corp 信号処理装置
IT1288076B1 (it) 1996-05-30 1998-09-10 Antonio Esposito Multicalcolatore elettronico numerico parallelo multiprocessore a ridondanza di processori accoppiati
US6252610B1 (en) * 1998-05-29 2001-06-26 Silicon Graphics, Inc. Method and apparatus for efficiently switching state in a graphics pipeline
US6393026B1 (en) * 1998-09-17 2002-05-21 Nortel Networks Limited Data packet processing system and method for a router
KR100352981B1 (ko) * 1999-05-21 2002-09-18 유혁 엠펙-1 데이터 전송 장치 및 그 방법
US6836808B2 (en) * 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing

Also Published As

Publication number Publication date
US20040133673A1 (en) 2004-07-08
ATE463012T1 (de) 2010-04-15
ES2339920T3 (es) 2010-05-27
SE0100221D0 (sv) 2001-01-25
EP1360602B1 (en) 2010-03-31
DE60141713D1 (de) 2010-05-12
SE0100221L (sv) 2002-07-26
CN100492341C (zh) 2009-05-27
CN1494692A (zh) 2004-05-05
US7010673B2 (en) 2006-03-07
EP1360602A1 (en) 2003-11-12
WO2002059767A1 (en) 2002-08-01

Similar Documents

Publication Publication Date Title
CN1794236B (zh) 高效的基于cam在分组有效载荷中进行串搜索的技术
US20190289102A1 (en) Flexible processing of network packets
US8799564B2 (en) Efficiently implementing a plurality of finite state machines
US6631466B1 (en) Parallel string pattern searches in respective ones of array of nanocomputers
US20180191613A1 (en) Packet processing match and action pipeline structure with dependency calculation removing false dependencies
CN1975704B (zh) 可重构处理器或装置
US20040059443A1 (en) Method and apparatus for efficient implementation and evaluation of state machines and programmable finite state automata
US11258726B2 (en) Low latency packet switch architecture
US20060117126A1 (en) Processing unit for efficiently determining a packet's destination in a packet-switched network
US6985964B1 (en) Network processor system including a central processor and at least one peripheral processor
US20080013532A1 (en) Apparatus for hardware-software classification of data packet flows
US7583673B2 (en) Network processor for forwarding packets in an IP network
US20190163442A1 (en) Buffer size optimization in a hierarchical structure
US20120076140A1 (en) Method and Apparatus for Improving Packet Processing Performance Using Multiple Contexts
US11354094B2 (en) Hierarchical sort/merge structure using a request pipe
SE521697C2 (sv) Anordningar och förfarande för behandling av data i en logisk rörledning
US10896022B2 (en) Sorting using pipelined compare units
US6717951B2 (en) Method and apparatus for determining priority of network packets
US20220360488A1 (en) Network switch and abnormity detecting method
CN100499564C (zh) 分组处理引擎
US9875045B2 (en) Regular expression matching with back-references using backtracking
US7373430B2 (en) Cluster accelerator network interface with filter
KR20210004349A (ko) 뉴로모픽 장치 및 그 장치에서 수행되는 가중치 갱신 방법
US6085316A (en) Layered counterflow pipeline processor with anticipatory control
KR102402253B1 (ko) 멀티코어 뉴로모픽 장치 및 그 장치에서 수행되는 글로벌 라우팅 방법