DK167416B1 - Netvaerk af multiprocessorsystemer - Google Patents

Netvaerk af multiprocessorsystemer Download PDF

Info

Publication number
DK167416B1
DK167416B1 DK490783A DK490783A DK167416B1 DK 167416 B1 DK167416 B1 DK 167416B1 DK 490783 A DK490783 A DK 490783A DK 490783 A DK490783 A DK 490783A DK 167416 B1 DK167416 B1 DK 167416B1
Authority
DK
Denmark
Prior art keywords
processor
packet
cluster
buffer
network
Prior art date
Application number
DK490783A
Other languages
English (en)
Other versions
DK490783A (da
DK490783D0 (da
Inventor
James Conard Allen
Wendy Bohle Bartlett
Hoke Stephens Johnson
Steven Derek Fisher
Richard Oliver Larson
John Charles Peck
Original Assignee
Tandem Computers Inc
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
Priority claimed from US06/437,399 external-priority patent/US4667287A/en
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of DK490783D0 publication Critical patent/DK490783D0/da
Publication of DK490783A publication Critical patent/DK490783A/da
Application granted granted Critical
Publication of DK167416B1 publication Critical patent/DK167416B1/da

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

DK 167416 B1 i
Opfindelsen har relation til multiprocessor-com-putersystemer, og den angår specielt et netværk af multiprocessorsystemer og den måde, hvorpå processorer i et system kan kommunikere med processorer i et andet 5 system.
Der er mange anvendelser, hvor det er Ønskeligt at koble to eller flere multiprocessorsystemer i et net, eksempelvis når der er behov for kommunikationer mellem systemer, der forvaltes hver for sig. Der er også en 10 praktisk begrænsning i antallet af processorer, der kan være indbefattet i multiprocessorsystemer. Når grænserne for et systems størrelse nås, kan behandlingskapaciteten kun udvides yderligere ved at koble to eller flere multiprocessorsystemer sammen i et netværk.
15 Når man sammenkobler multiprocessorsystemer i et net, er det sædvanligt at anvende én af processorerne i hvert system som kommunikationsled og forvalter af kom-munikationer mellem systemer. Denne specialiserede processor tager sig af alle kommunikationerne mellem proces-20 sorer i netværket.
Medens denne løsning tillader kommunikationer mellem processorer i systemerne, indebærer brugen af én processor som forbindelsesled, over hvilket samtlige kommunikationer skal føres, at der opstår flaskehals-25 effekt, hvorved begrænses den mulige dataoverføringskapacitet. Da man i et hvilket som helst computersystem altid ønsker høj hastighed og høj datamængde, er der be·^ hov for at skabe et multisystemnet, der fungerer hurtigt og effektivt til kommunikation mellem systemer.
30 Opfindelsen har derfor til formål at frembringe et netværk af multiprocessorsystemer, hvor kommunikationen mellem de forskellige systemer foregår på en sådan måde, at ulemperne ved tidligere kendt teknik overvindes, og hvor kommunikationen kan foregå hurtigere 35 end tidligere muligt, uden behov for at anvende en speciel processor til at styre kommunikationen.
2 DK 167416 B1
Et andet formål med opfindelsen er at sikre, at kommunikationen mellem de forskellige multiprocessorer kan finde sted ved hjælp af midler, som tillader flere redundante overføringsveje, for herved at opnå forbed-5 ret pålidelighed.
Opfindelsen angår således et netværk af multiprocessorsystemer, og omfattende flere multiprocessorsystemer, som hvert omfatter mindst én processor tilkoblet en databus, som forbinder processorerne med 10 hinanden i det enkelte multiprocessorsystem, samt flere interfaceenheder, som hver er tilkoblet en af nævnte databusser, idet hver af interfaceenhederne også er forbundet med mindst en anden af interfaceenhederne ved hjælp af mindst én dataforbindelse, således at hver in-15 terfaceenhed er i stand til at være forbundet med alle de andre interfaceenheder i netværket, og hver af interfaceenhederne omfatter styrekredse til styring af overføringen af meddelelsespakker til og fra vedkommende interfaceenhed over en dataforbindelse, som forbin-20 der interfaceenheden med dennes nabo-interfaceenhed, samt over den databus, som vedkommende interfaceenhed er koblet til, samt et bufferlager til midlertidig oplagring af meddelelsespakker, som skal overføres til en hvilken som helst processor i netværket.
25 Med baggrund i denne fra GB-A-2 062 914 kendte teknik er netværket ifølge opfindelsen ejendommeligt ved, at hver af interfaceenhederne befinder sig i et knudepunkt mellem en databus og en dataforbindelse, således at hver interfaceenhed udgør en knudepunkt-inter-30 faceenhed i netværket, at nævnte bufferlager har et antal lagerpladser, som er inddelt i grupper af lagerpladser, idet hver enkelt gruppe svarer til én bestemt af processorerne i netværket, hvilken processor er bestemmelsesprocessoren for alle meddelelsespakker, der 35 er placeret i vedkommende gruppe af lagerpladser, og at nævnte styrekreds også indbefatter midler til at af- 3 DK 167416 B1 gøre, hvornår en gruppe af lagerpladser i bufferlageret i vedkommende knudepunkt-interfaceenhed og svarende til en given bestemmelsesprocessor er fuld, og til at standse overføringen af nævnte meddelelsespakker beregnet 5 til denne bestemmelsesprocessor, så længe nævnte gruppe af lagerpladser er fuld.
I et sådant netværk kan en hvilken som helst processor i et hvilket som helst af systemerne kommunikere med en hvilken som helst anden processor i et hvil-10 ket som helst andet system i netværket. Til hvert multiprocessorsystem eller hver multiprocessorgruppe eller -"klynge" hører et knudepunkt, der forbinder denne klynge med andre knudepunkter, som hører til andre multiprocessorsystemer.
15 Hvert knudepunkt er et interface mellem den lokale interprocessorbus i det multiprocessorsystem, som det hører til, og de dataforbindelser, der kobler systemerne sammen i nettet. Ud over kredse, materiel og programmel til forvaltning og overføring af information indbefatter 20 hvert knudepunkt en række bufferlagerpladser, der hver er tilordnet sin processor i netværket og hver har kapacitet til oplagring af flere informationspakker.
Når en processor i et vilkårligt system i netværket ønsker at sende information til en hvilken som helst an-25 den processor i et hvilket som helst andet system i nettet, skal den føre information fra den udsendende processor over interprocessorbussen og under styring fra knudepunktet til en af det pågældende knudepunkts buffer-lagerpladser, der svarer til bestemmelsesprocessoren.
30 Under styring fra knudepunktet føres informationen så over dataforbindelsen frem til naboknudepunktet i nettet, hvorefter informationen under styring fra sidstnævnte knudepunkt placeres i en af lagerpladserne i bufferlageret, svarende til bestemmelsesprocessoren.
35 Informationen overføres fra knudepunkt til knude punkt på den netop angivne måde, indtil et modtagende 4 DK 167416 B1 knudepunkt finder ud af, at det skal overføre informationen til en af processorerne i sit eget multiprocessorsystem. Under styring fra sidstnævnte knudepunkt føres informationen fra den bufferlagerplads, hvori den blev 5 anbragt, til bestemmelsesprocessoren gennem den lokale interprocessorbus.
Knudepunkterne kan sammenkobles på flere forskellige måder, herunder lineært som en åben kæde, som en stjerne eller som et nav med eger eller i en eller 1 o anden hybridkonfiguration som et redundant koblingsmønster. Hvert multiprocessorsystem kan være tilknyttet mere end ét knudepunkt således, at der fås datavejre-dundans, hvilket gør nettet mindre sårbart over for fejl.
15 For at kunne forvalte datastrømmen gennem nettet kommunikerer knudepunkterne med deres naboknudepunkter, for at give meddelelse om der er bufferlagerplads til rådighed. Der udsendes start- og stopmeddelelser for at sikre, at den til en given bestemmelsesprocessor i et 20 vilkårligt knudepunkt allokerede bufferplads er tilgængelig for oplagring af enhver informationspakke, der skal kunne føres over dette knudepunkt. Pakker, der er bestemt til en given processor, kan nummereres sekventielt, og bufferlagrene har FIFO-konfiguration for at mu-25 liggøre detektering og afhjælpning af fejl.
I henhold til en foretrukken udførelsesform for opfindelsen er nævnte knudepunkt-interfaceenheder tilkoblet hver sin af nævnte databusser og er indbyrdes forbundet ved hjælp af en eller flere ringformede data-30 forbindelser. Hver klynge er forbundet med to klyngemoduler, hvoraf hvert kommunikerer med to hosliggende klyngemoduler gennem to bidirektionale forbindelser, der danner en bidirektional dobbeltring. Enhver processor i enhver klynge kan kommunikere med enhver anden 35 processor i enhver anden klynge, selv om hvert enkelt klyngemodul kun har forbindelse med sine to naboer.
5 DK 167416 B1
Et klyngemodul virker som interfaceknudepunki for at forbinde enhver klynge med seriedataforbindelsen og med interprocessorbussen for det lokale system.
Hvert interfaceknudepunkt indbefatter en række buffer-5 lagerpladser, der hver er tilordnet sin processor i nettet og hver har kapacitet til oplagring af flere informationspakker. Da der i klyngeringen er to retninger, er der et sæt separate buffere, én for hver retning (højre eller venstre). Pakker fra en hvilken som helst 10 processor i nettet sendes successivt i en given retning rundt i ringen via ét klyngemodul ad gangen. Ved hvert klyngemodul placeres pakkerne i den buffer, der hører til den bestemmelsesprocessor,, der skal modtage meddelelsen.
15 Da der er to ringe og to mulige retninger i hver ring, er der således fire mulige veje for kommunikation. Systemet forsøger at sende meddelelserne ad den kortest mulige rute. Hvis der opstår en fejl i den valgte kommunikationsvej , vil systemet sende meddelelsen over en an-20 den rute, der fungerer.
For effektivt af kunne forvalte kommunikationerne mellem processorer, bruger bufferlagerets styrekreds en øvre tærskel og nedre tærskel for bufferkapaciteten, og når tærskelværdierne nås, giver klyngemodulets sty-25 rekreds nabomodulet besked om at standse eller igangsætte fremsendelsen af pakker til den pågældende bestemmelsesprocessor .
En algoritme tjener til udvælgelse af de interpro-cessorpakker, der til enhver tid skal sendes for herved 30 at undgå, at en processor eller en gruppe processorer favoriseres over for andre processorer eller grupper.
Yderligere træk ved opfindelsen skal nu forklares nærmere til brug i forbindelse med et multi-system-multiprocessornet, hvor der anvendes multiproces-35 sorsystemer af den art, der er beskrevet i US patent nr. 4.228.496, selv om det for sagkyndige vil være klart, at 6 DK 167416 B1 den kan finde anvendelse i andre multiprocessorsystem-konfigurationer.
Fig. 1 viser et multiprocessorsystem af den type, der er velegnet til brug i den foreliggende opfindelse, 5 fig. 2 et multiprocessorsystem som vist i fig. 1, men ændret til brug i den foreliggende opfindelse, fig. 3 et ringformet net, hvori der anvendes multiprocessorsystemer som vist i fig. 2, fig. 4 et detaljeret blokdiagram over et klynge-10 modul til nettet ifølge opfindelsen, fig. 5 et eksempel på pakkeformat til brug i den foreliggende opfindelse, fig. 6 et rutediagram for en tomgangssløjfe i en foretrukken udførelsesform for opfindelsen, 15 fig. 7 et rutediagram for lokal-INQ-service-ruti- nen, fig. 8 et rutediagram for lokal-OUTQ-service-ruti- nen, fig. 9 et rutediagram for serie-INQ-service-ruti- 20 nen, fig. 10 et rutediagram for serie-OUTQ-service-ru-tinen, og fig. 11 ΪΡΒ-kontrollerens tilstandsdiagram og transitionstabel.
25 Fig. 1 viser sammenkoblingen mellem processorerne i et multiprocessorsystem, hvor processorerne 10 har forbindelse med hinanden gennem en X bus 12 og en Y bus 14. Hver af nævnte processorbusser 12 og 14 har forbindelse med styrekreds 16, såkaldt interprocessor 30 bus controller (IPB-styrekreds)/ der kan styre datastrømmen og andre operationer i processorerne 10 på den måde, der er beskrevet i US patent nr. 4.228.496.
Som det fremgår af fig. 1, kan hver processor 10 (Po-Pn) kommunikere med de andre gennem bussen 12 el-35 ler bussen 14, der danner redundante forbindelser således, at systemet holdes i drift, hvis der sker en komponentfejl i en del af systemet. Til beskrivelse af den foretrukne udførelsesform antages det, at der i hvert mul- 7 DK 167416 B1 tiprocessorsystem er n = 16 multiprocessorer, men for sagkyndige må det være klart, at systemet ifølge opfindelsen ved mindre ændringer i instruktionsords feltlængde, registerlængde og andre nærliggende ændringer i ma-5 teriellet og/eller programmellet alt efter antallet af processorer vil være i stand til at fungere med et antal processorer større end eller mindre end 16.
Opfindelsen beskrives under henvisning til et multiprocessorsystem af den i fig. 1 viste type, men sag-10 kyndige vil kunne se, at opfindelsen også kan finde anvendelse i multiprocessorsystemer, der ikke har den forbindelsesredundans, som systemet ifølge US patent nr.
4.228.496 udviser. Det skal dog forstås, at et sådant net ikke vil have så mange mulige dataveje.
15 Fig. 2 viser hovedbyggeblokken i et systemnetværk ud formet i overensstemmelse med opfindelsen. Som i fig. 1 omfatter det i fig. 2 viste multiprocessorsystem et antal processorer 10, der kommunikerer med hinanden gennem X- og Y-processorbusser 12 hhv. 14. Til forskel fra 20 systemet i fig. 1 bruger multiprocessorsystemet i fig. 2 dog ingen IPB-kontroller 16 til at danne interface for både X- og Y-interprocessorbusserne 12 og 14. I stedet for har hvert multiprocessorsystem, der anvendes i overensstemmelse med opfindelsen, ved hver af X- og Y-bus-25 serne 12 og 14 interface med nettet gennem X- og Y-klyngemoduler 18 og 20, såkaldte "cluster modules". X-klyngemodulet 18 er koblet til X-bussen, og Y-klynge-modulet 20 til Y-bussen. Dele af X-forbindelse 22 for venstregående seriedata og af X-forbindelse 24 for 30 højregående seriedata ses ved X-klyngemodulet 18,· mens tilsvarende dele af Y-forbindelser 26 og 28 for venstre- og højregående Y-seriedata ses ved klyngemodulet 20. X- og Y-klyngemodulerne 18 og 20 har ens struktur, og de udgør grundelementet for et dobbelt ringnet.
35 Som det klarere fremgår af fig, 4, omfatter X- og Y-klyngemodulerne 18 og 20 hver en IPB-kontroller 30, der direkte danner interface med X- og Y-interprocessor- 8 DK 167416 B1 busserne 12 eller 14. Virkemåden for iPB-styrekredsen 30 i den foreliggende opfindelse er den samme som for den styrekreds, der er beskrevet i US patent nr. 4.228.496, og hvis formål er lokalt at styre kommunikationerne mel-5 lem processorerne i systemet, med undtagelse af følgende tre tilfælde.
I det multiprocessorsystem, der er beskrevet i US patentskrift nr. 4.228.496, anmodes de enkelte processorer 10 sekventielt om at udsende for herved at få kon-10 stateret, om den ene eller den anden har en meddelelse, der skal gives videre til andre processorer 10. Denne kaldesekvens foranstaltes af IPB-styrekredsen, når den modtager et SNDREQ-signal fra interprocessorbussens sty-rebitafsnit, hvilket angiver, at der skal sendes en pak-15 ke fra en processor til en anden.
I den foreliggende opfindelse antages det, at SNDREQ-signalet altid gør sig gældende. Dette indebærer, at systemets processorer vedvarende anmodes om at udsende for herved at få konstateret, om en eller anden pro-20 cessor i det samme system eller i et andet vilkårligt system i nettet har en eller flere pakker at sende. I så henseende vil virkemåden for IPB-styrekredsen 30 og klyngemodulet 18 forklares nærmere under henvisning til fig. 4 og fig. 11.
25 I stedet for den sekventielle udspørgning som i systemet i henhold til US patentskrift nr. 4.228.496 udspørges processorerne fortrinsvis på ikke-sekventiel måde, selv om den sekventielle måde også kunne anvendes i den foreliggende opfindelse.
30 Den tredje forskel ligger i, at IPB-styrekredsen 30 i overensstemmelse med opfindelsen også har mulighed for yderligere at sende og modtage pakker til og fra en ekstern kilde, hvilket skal forklares nærmere senere.
Multisystemnettet ifølge opfindelsen udformes ved 35 sammenkobling af flere systemer af den i fig. 2 viste art, hvorved en hvilken som helst processor i nettet er i stand til at kommunikere med en hvilken som helst anden DK 167416 B1 9 processor i nettet, med en stor datamængde pr.tidsenhed, f.eks. 1 Mbyte/sek., sammenlignet med den normale hastighed på kun 7000 byte/sek. i konventionelle kommunikationsled. En sådan konfiguration vises i fig. 3.
5 Fig. 3 viser et dobbelt tovejs-ringformet net af flere multiprocessorsystemer med processorer 10, der er koblet til X- og Y-interprocessorbusser 12 og 14, som har interface med X- og Y-klyngemoduler 18 og 20. Medens fig. 3 kun viser fire sådanne systemer, der i den fore-10 liggende, foretrukne udførelsesform gennem X-klyngemodu-lerne 18a, 18b, 18c og 18n og Y-klyngemodulerne 20a, 20b, 20c og 20n danner et dobbelt tovejs-ringformet net, kan der være op til fjorten multiprocessorsysterner i en ringstruktur som vist i fig. 3, idet klyngenummer 0 bru-15 ges for at betegne lokale interprocessorbus-overføringer, medens klyngenummer 15 bruges for at betegne klyngemoduler med overvågnings- og styrefunktion. Der kan anvendes et større eller mindre antal multiprocessorsystemer, uden at man herved falder uden for opfindelsens ramme.
2Q På basis af denne beskrivelse vil sagkyndige nemt kunne se, hvor mange multiprocessorsystemer der kan sammenkobles i en konfiguration i overensstemmelse med opfindelsen.
Fig. 3 viser dobbeltringstrukturens ene ring, hvis 25 knudepunkter har forbindelse med X-klyngemodulerne 18., mens den anden rings knudepunkter har forbindelse med Y-klyngemodulerne. X-klyngemodulerne er sammenkoblede gennem seriedataforbindelser, nemlig venstregående X-forbin-delser 22a, 22b, 22c og 22d og højregående X-forbindel— 30 ser 24a, 24b, 24c og 24d, og som her antydet overføres dataene kun den ene vej eller den anden vej gennem forbindelserne 22 hhv. 24. Ligeledes er Y-klyngemodulerne 20 sammenkoblede gennem forbindelser, nemlig venstregående Y-forbindelser 26a, 26b, 26c og 26d og højregående 35 Y-forbindelser 28a, 28b, 28c og 28d. Det kan således ses, at der er fire veje, som informationen kan følge fra et klyngemodul til et andet, f.eks. en hvilken som helst af forbindelserne 22, 24, 26 og 28.
10 DK 167416 B1
Forbindelserne 22, 24, 26 og 28 er fortrinsvis optiske højhastighedsfiberkabler af i og for sig kendt art til datatransmission. Disse kabler har interface med X- og Y-klyngemodulerne 18 og 20 gennem ikke-viste in-5 terfacekredse af i og for sig kendt art. For sagkyndige vil det være klart, at der i stedet for optiske fibre også kan anvendes elektroniske linier, hvis anvendelse forstås uden behov for nærmere beskrivelse.
Da der således er flere materielle veje 10 for kommunikation mellem klynger, opnår man ikke alene en stor systempålidelighed på grund af redundansen i dataveje, men også muligheden for, som det skal forklares nærmere senere, at lade vejene fungere hver for sig eller simultant således, at datamængden kan være op til 15 fire gange den datamængde, der kan opnås med én enkelt ringvej.
Det er logikkredsene i klyngemodulerne 18 og 20, som forvalter og styrer informationsoverføringen gennem ringen, fra en processor 10 i 20 et system til en anden processor 10 i et andet system.
Hvert enkelt X-klyngemodul 18 i et multisystem-net i overensstemmelse med opfindelsen kommunikerer direkte kun med sine to nabo-klyngemoduler. F.eks. kommunikerer det i fig. 3 viste X-klyngemodul 18b kun med 25 sit nærmeste X-klyngemodul 18a til venstre og sit nærmeste X-klyngemodul 18c til højre. Ligeledes kommunikerer Y-klyngemodulet 20b direkte kun med Y-klyngemodulet 20a til venstre og Y-modulet 20c til højre.
Da X- og Y-klyngemodulerne har ens opbygning og 30 fungerer på samme måde, vil man her nøjes med at beskrive virkemåden for nettet under henvisning til X-klynge-modulerne 18, idet det skal forstås, at denne forklaring ligeledes gælder for overføring af pakker i begge retninger gennem ringen af Y-klyngemoduler.
35 Da hvert klyngemodul 18 kun kan kommunikere di rekte med sine to nabo-moduler, er en indviklet overbygning til styring overflødig. Et vilkårligt klyngemodul 18 11 DK 167416 B1 kommunikerer med udsendelse og modtagelse af pakker i tre retninger, nemlig med nabo-modulet til venstre, med nabo-modulet til højre og med processorerne 10 på den lokale processorbus 12.
5 Hvis man, for forenklings skyld, eksempelvis ser på klyngemodulet 18b i fig. 3, vil det forstås, at det kan sende pakker til det venstre klyngemodul 18a gennem forbindelsen 22b, til det højre klyngemodul 18c gennem forbindelsen 24c og til en vilkårlig processor 10 10 på den lokale X-interprocessorbus 12b.
Da en hvilken som helst processor kan kommunikere med en hvilken som helst anden processor, må ethvert knudepunkt være i stand til at klare trafikken til og fra en vilkårlig processor, og der må være midler til 15 effektivt at kunne forvalte denne enorme mængde information, der skal overføres.
I henhold til opfindelsen forvalter klyngemodulet 18b - dette gælder for samtlige klyngemoduler 18 - alle disse pakkeoverføringer gennem et indre bufferlager, der 20 er således indrettet, at der i dette lager for hver processor i hele ringen tilordnes bufferplads med kapacitet for et givet antal pakker. Det halve af denne kapacitet forbeholdes venstregående overføring og det halve højregående overføring. Den plads, der forbeholdes hver pro-25 cessor, opstilles som en FIPO-kø (First-In-HFirst-Out)..
således, at pakkerne til en hvilken som helst given processor afleveres i den samme sekvens som den, de sendes med. Bestemmelsesprocessoren kan anvende et enkelt sekvenscheck for at få konstateret, om den har modtaget 30 alle de udsendte pakker, hvorved gives mulighed for fejldetektering og -korrigering.
I den foreliggende udførelsesform skal bufferlagerpladsen for hver processor i nettet i hver retning i ringen kunne rumme 16 pakker, men for sagkyndige er det 35 klart, at man med passende og nærliggende ændringer i materiellet og programmellet kan få en mindre eller større kapacitet. Dette aspekt af opfindelsen forklares nærmere i det følgende under henvisning til fig. 4.
12 DK 167416 B1
Af fig. 4 fremgår det, at klyngemodulet 18b omfatter fire hovedfunktionsblokke, IPB-styrekreds 30, klyngemodulstyrekreds 32, bufferlager 34 og styrekredsen 36 for dataserieforbindelse.
5 IPB-styrekredsen 30 sørger for lokale pakkeover føringer mellem processorer på X-bussen 12b og for pakkeoverføringer ind og ud af ringen til og fra en hvilken som helst processor på interprocessorbussen 12b.
Klyngemodulstyrekredsen 32 sørger for i tilknyt-10 ning til bufferlageret 34 at forvalte og styre alle pakkeoverføringer ind og ud af det knudepunkt, der indbefatter klyngemodulet 18b. Den styrer også IPB-styre-kredsen 30’s funktion hvad angår overføring af pakker ud over grænsen af de processorer, der befinder sig på in— 15 terprocessorbussen 12b og overføring af pakker ind og ud af knudepunktet gennem forbindelsesstyrekredsen 36, der sørger for den egentlige overføring af pakker mellem knudepunktet og seriedataforbindelserne 22 og 24.
Virkemåden for klyngemodulet 18b kan bedst for-20 stås ved henvisning til dets funktion, når det sender og modtager pakker. Pakker, der skal flyttes fra bufferlageret 34, har to mulige destinationer: en processor på den lokale X-interprocessorbus 12b eller et hosliggende bufferlager 34 i klyngemodulet 18a eller 18c.
25 Serieforbindelsesstyrekredsen 36 træder til, når en pakke skal sendes fra bufferlageret 34 til et hosliggende klyngemodul 18a eller 18c. Det ses, at styrekredsen 36 omfatter en klyngemodul/styrekreds-interface 38 og andre kredse til udsendelse og modtagelse af pak*^ 30 ker.
Nærmere betegnet omfatter styrekredsen 36 OUTQ-buffere 40 og 42 for hhv. venstregående og højregående overføring, parallel/serie-konvertere_ for venstregående hhv. højregående data og CRC-generatorer 44 og 46 35 (Cyclic Redundancy Check) samt venstre- og højre-sendere 48 hhv. 50, venstre- og højremodtagere 58 hhv. 60, venstre- og højre-serie/parallelkonvertere og CRC-kontrol-kredse 62 hhv. 64 og venstre- og højre INQ-buffere 66 13 DK 167416 B1 hhv. 68. Til fejldetektering i de udsendte data tilvejebringer CRC-generatoren et CRC-16 kontrolord, der udsendes som det sidste ord i datarammen. En CRC-kontrolkreds i modtageren kontrollerer, at den modtagne ramme er fejl-5 fri ved at frembringe et CRC-ord over hele rammen, inklusive det udsendte CRC-ord, og ved at kontrollere at det frembragte ord er 0. Denne CRC-kontrolteknik er velkendt.
Da venstre- og højredelene af styrekredsen 36 er ens, kan man nøjes med at se, hvordan den venstre del 10 fungerer, idet højredelen jo fungerer på samme måde.
De pakker, der overføres over seriedataforbindel-serne, er indbefattet i en ramme, der ud over pakken også omfatter to kontrolord og et CRC-ord. Kontrolordene bruges til kontrol af datastrøm, nemlig start- og stop-15 meddelelserne. CRC-ordet udregnes over hele rammen for at sikre detektering af fejl under transmissionen af rammen til modtageren. Der findes en anden type ramme, såkaldt "control-only"-ramme, der i stedet for en datapakke kan indeholde 16 yderligere kontrolord - ialt 18 20 kontrolord plus ét CRC-ord. Disse control-only-rammer kan bruges, når der til enhver tid er behov for at sende mere end to kontrolord til en nabo, når der er behov for at sende kontrolord, dog uden datapakke, og periodisk, når kontrolord skal cirkuleres til ajourføring af hele 25 nettet. I henhold til en foretrukken udførelsesform udsendes en control-only-ramme hvert 10 ms, hvad enten der er behov for det eller ej, for at skabe sikkerhed mod et eventuelt tab af et startkontrolord.
Den venstre OUTQ-buffer kan være en dobbeltbuffer 30 med lagerkapacitet for to informationspakker, der venter på transmission ad den venstre seriedataforbindelse 22.
Når den ene sektion eller begge sektioner i denne buffer er tom, sættes der flag for "ikke fyldt buffer", hvilket aflæses af styrekredsen 32. Når begge sektioner i ven-35 stre OUTQ-buffer 40 er fyldte, sættes der intet flag, og som det skal forklares nærmere senere, overføres de to pakker.
14 DK 167416 B1 Når venstre OUTQ-buffer 40 imidlertid har sat sit "buffer ikke fyldt"-flag, forsøger styrekredsen 32 at få fat i en pakke fra bufferlageret 34 for at fylde den med henblik på overføring gennem forbindelsen 22.
5 Til dette formål bruger styrekredsen 32 den information, der er oplagret i en "ready list" i sit kontrollager 52. Denne ready-liste kan på i og for sig kendt måde være en liste med dobbelt led, hvor hvert element i listen har en referenceadresse til det foregående element og en 10 referenceadresse til det efterfølgende element. En sådan liste fungerer på følgende måde.
Når der er ankommet pakker i klyngemodulet 18b, undersøger styrekredsen 32 det pakkeord, der indeholder identifikation af bestemmelsesklyngenummeret og be-15 stemmelsesprocessornummeret for den pågældende pakke.
Disse numre, kombinerede med en bit, der angiver i hvilken retning pakken bevæger sig i ringen, bruges som en adresse i ready-listen i kontrollageret 52. På denne adresse er der en tabel, der består af en række lager-20 pladser. Tabellen indbefatter en bufferlageradresse, der angiver den ældste (forreste) pakke i FIFO-køen. Buffer-lageradressen for den næste pakke i retningen mod enden af FIFO-køen tilvejebringes ved at addere pakketællertal-let (beskrives senere), modulo 16, til spidsen af køpi-25 len. En anden plads i lageret indeholder det antal pakker (pakketælletal), der er oplagret i bufferlageret 34 og skal til en given klynge og processor. Dette tal in-krementeres af styrekredsen 32, når en pakke placeres i bufferlageret 34.
30 De to andre pladser i tabellen i kontrollageret 52's ready-liste indeholder kontrollageret 52\s adresse på det foregående element og på det næste element i kontrollageret 52.
På en anden plads i kontrollageret 52 findes der 35 en "first item pointer" for adressen på det første element på ready-listen. Det er til denne plads klyngemodul-kontrolleren går, når den ønsker at placere en pakke i venstre OUTQ-buffer 40.
15 DK 167416 B1 På denne plads får den adressen i bufferlageret 34, der indeholder den pakke, der skal sendes (pointer for den forreste ende af køen), og den tager til denne adresse, tager pakken og overfører den til venstre OUTQ-buf-5 fer 40, dekrementerer pakketælletallet, justerer pointer for forenden af køen og indstiller first item pointer*en på den værdi, der findes på næste elements plads. Hvis det dekrementerede pakketælletal er kommet under den laveste tærskelværdi, tilvejebringer klyngemodulstyrekred-10 sen 32 en startmeddelelse, der sendes til det hosliggende, venstre klyngemodul, og den resætter den passende bit i INQ STAT-tabellen. Dette forklares nærmere senere.
Hvis det dekrementerede pakketælletal er nået til nul, fjerner klyngemodulstyrekredsen 32 bestemmelses-15 klyngen og -processoren fra ready-listen, eftersom der ikke længere er noget, der skal udsendes. Herved undgås en unødig "polling" i systemet, dvs. anmodning om at udsende .
Da venstre OUTQ-buffer 40 er en dobbelt buffer, 20 kan klyngemodulstyrekredsen 32 fylde dens ene halvdel med en pakke, medens venstre CRC-generator, parallel/se-riekonverteren 44 og venstre-sender 48 sender den pakke, der er indeholdt i den anden halvdel af venstre OUTQ-buffer 40. En indre ikke-vist sendetaktgiver sør-25 ger for på i og for sig kendt måde at taktstyre venstre CRC-generator, parallel/seriekonverteren 44 og venstresender 48.
Hvis et kontrolord i en indkommende ramme indeholder en stopmeddelelse fra den venstre nabo til klyngemo-30 dulet 18, genkendes dette stopord af klyngemodulstyrekredsen 32, der fra kontrollageret 52 henter den tabel, der hører til bestemmelsesklyngen og -processoren, og sletter den fra ready-listen. Dette foregår på den i og for sig kendte måde at slette elementer fra en dobbelt-35 leddet liste på.
Klyngemodulet 18b er også i stand til at sende en pakke til en hvilken som helst processor på sin egen lokale interprocessorbus 12b.
16 DK 167416 B1 Når en sådan pakke hentes fra bufferlageret 34, genkendes den, og den overføres til IPB-styrekredsen 30 og placeres i OUTQ-buffer 54 på den plads, der er tilknyttet en given processor på den lokale interprocessor-5 bus 12b.
Til OUTQ-buffer 54 er knyttet OUTQ STAT 56, som er et register med én bitposition for hver plads i OUTQ-buffer 54. Når klyngemodul styrekredsen ønsker at sende en pakke til en processor på den lokale bus, skal den 10 først undersøge, om der i OUTQ STAT-registeret er en bit svarende til denne processor. Hvis en sådan bit findes, betyder det, at den tilsvarende OUTQ-buffer er fyldt, og at klyngemodulstyrekredsen må vente, til den foreliggende pakke er blevet overført til den lokale bestemmelses-15 processor, inden den næste pakke kan placeres på denne plads i OUTQ-buffer 54. Hver gang en overføring fra OUTQ-buffer 54 til en lokale bestemmelsesprocesser fin^ der sted, skal den tilsvarende OUTQ STAT bit resettes for at angive, at den er klar til at modtage en anden 20 pakke for overføring til en lokal bestemmelsesprocessor gennem den lokale interprocessorbus 12b.
Pakkerne ankommer til klyngemodulet 18b gennem venstre eller højre modtager 58 hhv. 60 og gennem venstre eller højre CRC-kontrolkredse og serie/parallelkon-25 vertere 62, 64. Ankommende pakker selvstyres i modtagerne 58 eller 60, idet de er opstillede i en kode af typen Manchester eller anden "self clocking"-kode af i og for sig kendt art.
Efter omdannelse til parallel form placeres de an-30. kommende pakker i INQ-buffere 66 og 68. INQ-bufferen 66 kan være en dobbelt buffer, der er således udformet, at den ene del heraf fyldes af CRC-kontrolkreds/serieparal-lelkonverteren 62, medens den anden del tømmes af klyngemodul styrekredsen 32. INQ-bufferen 68 har samme 35 struktur og funktion.
Klyngemodul styrekredsen 32 læser nummeret på bestemmelsesklyngen og -processoren på pakken. Hvis pakken 17 DK 167416 B1 ikke skal overføres til et andet klyngemodul 18, men skal sendes til en processor 10 via den lokale bus, hvilket afgøres ved at sammenligne nummeret på bestemmelsesklyngen på pakken med klyngemodulets nummer, sker 5 der flere ting. Med processornummeret som adresse får man adgang til en lokal IPB-statusliste, der for hver lokal processor indeholder: 1) en adresse i bufferlageret, der peger på den ældste pakke i FIFO-køen og 2) tælletallet for antallet af pakker i køen. Pakken lagres i 10 bufferlageret 32 på den plads, der angives af en adresse i den tabel, der er indeholdt i den lokale IPB-status-liste, og pakketælletallet i tabellen inkrementeres.
Hvis det nye tal kommer op over den øvre tærskelværdi, frembringes der en stopmeddelelse, der skal sendes i den 15 passende retning, og, som det skal forklares nærmere senere, opstilles den passende bit i INQ STAT-tabellen.
Hvis det forudgående pakketælletal var nul, opstilles der et flag, der angiver, at bufferen for den pågældende processor har noget at sende. Dette flag placeres i et 20 ord i kontrollageret 52, der har et 1 bit-flag for hver processor på den lokale interprocessorbus 12b. Dette "local-ready" flagord, der angiver hvilke lokale processorer har pakker, der skal modtages fra klyngemodulet, bruges til sammen med det tidligere beskrevne OUTQ STAT-25 ord at bestemme, hvornår en pakke til en given lokal processor skal sendes fra bufferlager til OUTQ. Hver gang en pakke overføres fra bufferlageret til en OUTQ, dekre-menteres pakketælletallet (for den pågældende lokale pro-- cessor). i den lokale IPB-statusliste. Når tallet når ned 30 til nul, resettes flagbitten for processoren i "local-ready" -flagordet, hvorved angives, at der ikke længere er pakker, der skal sendes til denne lokale processor.
Når tælletallet falder under en nedre tærskelværdi, frembringes der startmeddelelser (som for overføringer på 35 serieforbindelsen).
Hvis den ankommende pakke er bestemt til et andet klyngemodul 18, bruges nummeret på bestemmelsesklyngen og -processoren til at skabe adgang til den passende ta- 18 DK 167416 B1 bel i ready-listen i kontrollageret 52. Pakken placeres på den adresse i bufferlageret 34, der er specificeret i ready-list-tabellen, og pakketælletallet (i tabellen) inkrementeres af klyngemodulstyrekredsen 32. Hvis ikke 5 antallet af pakker i bufferen overskrider den øvre tærskelværdi, frembringer·klyngemodulet 32 en stopmeddelelse, der skal sendes i den retning, hvorfra pakken ankom, og som det skal forklares nærmere senere sætter den den passende bit i INQ STAT-tabellen. Hvis det forudgå-10 ende antal pakker på denne plads i bufferlageret 34 var nul, står den bestemmelsesklynge og -processor, som den ankommende pakke er bestemt til, ikke på ready-listen således, at klyngemodulstyrekredsen 32 indfører den i den dobbeltleddede ready-liste umiddelbart efter den 15 plads, der angives af den pil, der peger mod det første element. Hvis der imidlertid er udsendt en stopmeddelelse fra det klyngemodul, til hvilket pakken derefter skal sendes, foretages denne indføring i ready-listen ikke.
Når der er modtaget en startmeddelelse for en given be-20 stemmelsesprocessor, tages processoren med på ready-listen, såfremt pakketælletallet ikke er nul. På den lokale interprocessorbus 12b frembringes der også pakker, der skal sendes gennem ringen. De behandles først af IPB-styrekredsen 30.
25 Under anmodningscyklen (poll cycle) optræder det første ord i en pakke på interprocessorbussen 12b, og IPB-styrekredsen genkender det som en anmodning om ekstern overføring, hvis nummeret på bestemmelsesklyngen ikke er nul. IPB-styrekredsen bruger nummeret på bestem-3Q melsesklyngen og -processoren som adresse i en INQ STAT-tabel 70 anbragt i IPB-styrekredsen Hvis der er udsendt en stopmeddelelse i relation til den bufferplads, der skal være venteplads for pakken, sættes der en bit på den adresse i INQ STAT-tabellen 70, som pakkens før-35 ste ord peger imod, og når den identificeres, forhindrer denne bit overføringen i at finde sted. Der kan ikke overføres pakker til INQ-buffer 72, medens klyngemodul-styrekredsen 32 adresserer INQ STAT-tabellen 70.
19 DK 167416 B1
Hvis stopbitten for denne pakkes bestemmelse imidlertid ikke er sat op i INQ STAT-tabellen 70, foretager IPB-styrekredsen undersøgelse af flagene i INQ-bufferen 72 for at få konstateret, om den er fuld. Hvis INQ-buf-5 feren 72 er fuld, sker der ingen overføring. Hvis den er tom, overføres pakken til INQ-bufferen 72 i IPB-kontrolleren 30, og der sættes et flag, der angiver, at INQ-bufferen er fuld. Klyngemodulstyrekredsen 32 foretager periodisk undersøgelse af dette flag, og når det 10 er sat, overføres INQ-bufferen 72's indhold til den passende plads i bufferlageret 34, og INQ-buffer-flaget resettes. Derefter opdateres ready-listen som beskrevet, hvad angår pakker, der modtages fra seriedataforbindel-serne 22 eller 24.
15 IPB-styrekredsen 30's funktion styres af den så kaldte tilstandsmaskine 74, som forklaret nærmere under henvisning til fig. 5. Tilstandsmaskinen 74 styrer overføringen af pakker til og fra interprocessorbussen 12.
Den foreliggende opfindelse vil nærmere kunne for-20. stås ved undersøgelse af den måde, hvorpå materiellet og programmellet samvirker til overføring af pakker mellem processorer. Overføringer af data fra en processor til en processor i et andet multiprocessorsystem foranstaltes og forvaltes ved programmelstyring ved hjælp af 25 SEND-ordren.
Den efterfølgende forklaring er baseret på den antagelse, at der sendes en datablok fra en multiprocessor 10 i multiprocessorsystemet a ifølge fig. 3 til en processor i multiprocessorsystemet b.
3Q I SEND-ordren aflæser en processor 10 (fig. 3) en datablok fra sit lager, deler den op i pakker (for pakkeformatet, se fig. 5), kalkulerer pakkernes kontrolsumord og overfører én pakke ad gangen til det ene eller det andet af klyngemodulerne 18a eller 20a. Parametre, som 35 SEND-ordren forsynes med, bestemmer brugen af X-klynge-modulet 18a eller Y-klyngemodulet 20a, den første pakkes sekvensnummer, den retning hvori pakken skal sendes rundt i ringen, identiteten af det modtagende klynge- 20 DK 167416 B1 modul, identiteten af den modtagende processor i multiprocessorsystemet, der er koblet til det modtagende klyngemodul, begyndelsesadressen for datablokken i lager, antallet af databytes i datablokken og den oprindelige 5 "time out"-værdi, der skal ventes, for at den såkaldte "outqueue" 67 i fig. 2 i US patentskrift 4.228.496 bliver tilgængelig.
For en pakke, der er bestemt til en processor i en anden klynge, anbringer SEND-ordren i processoren 10 10 en indikation om i hvilken retning, pakken skal sendes, i det felt, der identificeres som senderklyngefeltet (bit 0-3) i ordet 0 i den i fig. 5 viste pakke. Hvis pakken skal sendes til venstre, placeres der værdien 0 i senderklyngefeltet, medens der i dette felt placeres 15 værdien 1, hvis pakken skal sendes til højre. Denne værdi bruges af klyngemodulet for at bestemme den korrekte retning, hvori pakken skal sendes. Når klyngemodulet har fastsat retningen, omskrives sender-klyngefeltet (bit 0-3) af ordet 0 for pakken med nummeret på senderklyn-20 gen, som klyngemodulet kender.
Den foretrukne retning, hvori en pakke vil overføres til en bestemmelsesprocessor, er bestemt, når systemet er formet. Den foretrukne retning afhænger således tildels af nettets geometri. Det er klart, at hovedfak-25 toren er banelængden, idet pakkerne bør sendes over den korteste vej. Naturligvis mildnes denne faktor af betragtninger vedrørende datamængden, idet den, der skal udforme nettet, vil ønske at undgå eventuelle præstationsnedsættelser ved at fordele trafikken over forskelli-30 ge veje.
I eksempelvis en ringkonfiguration med 2n klyngemoduler vil man vælge en sådan retning, at en hvilken som helst pakke passerer gennem mindre end n klyngemoduler, inden den når frem til sit bestemmelsessted. I en 35 bidirektional ring bør X- og Y-vejene vælges tilfældigt for herved at fordele trafikken ligeligt mellem disse veje.
21 DK 167416 B1
De valgte retninger opstilles i en tabel i hver processor i hvert system, alt efter bestemmelsesklynger.
Når en pakke er klar til at blive sendt til en given klynge, bruger den sendende processor denne tabel for at 5 bestemme den retning, hvori pakken skal sendes. Eventuelt kan man anvende en kompilation af fejlinformation for at ændre vejen i en given retning eller ændre selve retningen, hvis alt for mange fejl tyder på fejlfunktion i datavejen.
10 SEND-ordren afsluttes, når hele blokken er blevet delt op i pakker og udsendt således, at udsendelsen af en blok, set fra programmel-synspunktet, ses som udførelsen af én enkelt ordre, selv om denne ordre kan afbrydes .
15 Modtagelsen af data i en processor i et multipro cessorsystem (b i fig. 3) udføres ikke ved hjælp af en programmelordre, eftersom man ikke kan forudsige ankomsttidspunkterne og kilderne for datapakker. Modtageren skal kunne låse op for (enable), men ikke udløse data-20 modtagelsen.
Processoren accepterer en pakke fra X-klyngemodu-let 18b eller Y-klyngemodulet 20b ved at udføre et busmodtage-mikroprogram (henvisningsbetegnelsen 115 i US PS 4.228.496)., der tager den modtagne datapakke fra 25 indkø-sektionen af interprocessor-styrekredsen 55 i-følge US PS 4.228.496, kontrollerer den korrekte kontrol-sum og det korrekte sekvensnummer og oplagrer dataene i et bufferlager.
Genindsamlingen af de modtagne pakker i blokke ud-30 føres under anvendelse af ordre i en oplagret busmodtagetabel. En sådan ordre svarer til et givet multiprocessorsystem (a i fi'c. 3) og til en given processor (12a i fig.
3) i det pågældende system. Denne busmodtagetabel-ordre omfatter en lageradresse, et tællertalord og et forven-35 tet sekvensnummer.
Efterhånden som de enkelte datapakker modtages, aktiveres busmikroprogrammet. Dette mikroprogram giver adgang til den busmodtagetabel-ordre, der svarer til det 22 DK 167416 B1 udsendende multiprocessorsystem og til den udsendende processor i dette system. Hvis den modtagne pakke har den korrekte kontrolsum, og hvis dens sekvensnummer stemmer overens med det forventede sekvensnummer for den næ-5 ste pakke, der skal modtages, oplagres pakkens dataord i det specificerede område, og der foretages justeringer på områdeadressen, sekvensnummeret og bytetællertallet i husmodtagetabellen som forberedelse til modtagelse af den næste pakke i sekvensen. Hvis tællertallet når til 1CL nulværdien, eller hvis der detekteres fejl, forekommer der programmelinterrupt.
Denne måde at behandle de modtagne pakker på giver mulighed for eliminering af fejl i transmissionsprocessen ved at genudsende hele blokken af data. Alle de pak-15 ker, som er dubletter af de pakker, der måtte være blevet korrekt modtaget under en tidligere transmission, vil blive genkendt som værende ud af sekvens, og de vil derfor ikke optages på lager.
En pålidelig meddelelsestransmission opnås ved 20 hjælp af en protokol mellem processorer i multiprocessorsystemet. Hver transmission, der modtages· uden indikation om fejl, anerkendes positivt ved en efterfølgende transmission fra den modtagende processor til den udsendende processor. Modtagelsen af denne anerkendelse hos 25 den udsendende processor bekræfter for den udsendende, at transmissionen er velmodtaget.
Når en udsendende processor foretager transmission, bestemmer den et tidspunkt på hvilket anerkendelsen bør modtages, alt efter et givet tidsinterval. Hvis der på 30 det givne tidspunkt ikke modtages nogen anerkendelse, foretages der påny transmission, og et nyt tidspunkt fastlægges på basis af det samme tidsinterval. Retransmissioner vil således finde sted gentagne gange, indtil den udsendende processor modtager anerkendelse.
35 Da transmissionerne finder sted gennem det ene el ler det andet af to klyngemoduler (18a og 20a) og i den ene eller den anden retning (venstre eller højre), er 23 DK 167416 B1 der således fire mulige transmissionsveje, der kan bruges til at sende en datablok til en modtagende processor.
Når en sendende processor igangsætter et forsøg på at overføre en datablok til en modtager, vælger den en af 5 de fire veje, alt efter en vis tilstandsinformation, som er tilgængelig for processoren. Denne tilstandsinformation indbefatter en definition af den foretrukne retning (venstre eller højre), hvilken definition indbygges i programmellet, når det etableres, samt det antal fejl, 10 der tidligere forekom i hver vej. Hvis antallet af fejl overskrider en vis tærskelværdi, udelukkes den pågældende vej. Når der udvælges en vej, foretages der forsøg på tilfældig udvælgelse af X- eller Y-bussen for herved at sikre en mere ligelig fordeling af trafikken.
15 Hvis en sendende processor ikke efter udløbet af et givet tidsinterval har modtaget en anerkendelse fra den modtagende processor, vælger den vejen for retransmissionsforsøget i henhold til en i systemintelligensen indbygget regel. Denne regel er noget arbitrær og kan 20 være en vilkårlig algoritme, der tager hensyn til både den samme i det foregående afsnit nævnte tilstandsinformation og identiteten af den under det foregående transmissionsforsøg anvendte vej. Reglen anvendes for at sikre, at de successive transmissionsforsøg skiftes over 25 alle fire veje i en eller anden sekvens eller over de tilgængelige veje, når i det mindste en af dem er lukket på grund af fejl.
I henhold til en foretrukken udførelsesform sendes en datablok i en given retning over en af de to busser.
30 Hvis der ikke fås anerkendelse inden for det givne tidsrum, foretages der et nyt forsøg på transmission. Hvis der ikke fås anerkendelse efter det andet forsøg, sendes datablokken i samme retning over den anden bus. Hvis der ikke fås anerkendelse efter to forsøg, prøver man over 35 busserne i den anden retning på lignende måde. Om nødvendigt gentages dette, med mindre det viser sig, at ingen vej fungerer.
24 DK 167416 B1 I det tilfælde, hvor transmissionen af en datablok lykkes, men det ikke lykkes at overføre anerkendelsen fra modtageren til senderen, vil senderens retransmissionsforsøg fremkalde sekvensfejl hos modtageren, eftersom 5 det allerede lykkedes at sende pakkerne, og busmodtagetabellens sekvensnummer er blevet opdateret. Modtageren, der detekterer sekvensfejlene, sender en yderligere anerkendelsespakke over alle fire veje eller over alle tilgængelige veje, når mindst én af dem er lukket på grund 10 af fejl.
På denne måde kan det lykkes at udsende og anerkende meddelelser, når bare en af de fire veje fra sender til modtager og en af de fire veje fra modtager til sender fungerer.
15 Virkemåden for klyngemodulerne skal nu beskrives nærmere i en foretrukken udførelsesform for styrestruktur, under henvisning til fig. 6-11. Hver klyngemodul-styrekreds 32 styrer funktionen af hvert klyngemodul 18 ved gentagne gange at undersøge indgangskøer, udgangskø-20 er og en ikke-vist intervaltimer. Hver indgangskø betjenes, når den er fyldt, ved overføring af data fra denne kø til bufferlageret 34. Ligeledes betjenes hver udgangskø, når den er tømt, ved overføring af data fra bufferlageret 34 til denne kø. Timerfunktionen aktive·^ 25 res periodisk, når intervaltimeren fremkalder interrupt.
Bufferlageret 34 er delt op i felter af fast længde på 16 pakker hver. Hver mulig bestemmelsesprocessor i ringen tildeles to af disse felter i bufferlageret 34, et felt for hver sin af de to retninger, hvori en 30 pakke kan bevæge sig til en hvilken som helst bestemmelsesprocessor 10. I bufferlageret 34 behandles disse pakker som FIFO-køer således, at pakker sendes ud i den rækkefølge, hvori de modtages. Klyngemodulet forvalter hver enkelt kø (felt) i bufferlageret 34, uafhængigt af 35 tilstanden i en hvilken som helst anden kø. Eksempelvis håndterer et klyngemodul venstregående pakker til en processor helt uafhængigt af enhver højregående pakke til den samme processor.
25 DK 167416 B1
Klyngemodulstyrekredsen 32 forvalter allokeringen og brugen af FIFO-køerne i bufferlageret 34. Til køforvaltning opretholder klyngemodulstyrekredsen 32 i sit kontrollager 52 en tabel med information om hver 5 kø i bufferlageret 34 (køkontroltabel). Hver køkontrol-tabel indeholder en optælling af det i den tilhørende kø værende antal pakker (packet count), en pil for den ældste pakke i køen (head pointer) og en pil for den nyeste pakke i køen (tail pointer). Beliggenheden i bufferlage-10 ret 34 af den kø, der er tilordnet en given bestemmelsesprocessor og en given retning bestemmes af klynge- og processornumrene for denne bestemmelse og retningen. Ligeledes bestemmes beliggenheden af de tilhørende køkon-troltabeller i kontrollageret 52 af klynge- og procesT 15 sornumrene for denne bestemmelse og retningen. For sagkyndige vil det være klart, at den absolutte adresse kun er et spørgsmål om valg.
Når en pakke modtages hos et klyngemodul, finder klyngemodulstyrekredsen 32 den tilhørende kø i buffer-20 lageret 34 og den tilhørende køkontroltabel i kontrollageret 52 ud fra numrene på bestemmelsesklyngen og -processoren og den retning, hvori pakken skal sendes.
Inden pakken placeres i køen, må styrekredsen 32 forøge pakketællertallet med én. Hvis det nye tal overskri-25 der 16, afvises pakken, og køkontroltabellen i lageret 52 ændres ikke. Hvis det nye pakketællertal er mindre end eller lig med 16, foretages der modulo 16 inkremente-ring af tail pointer, og pakken placeres i køen på den plads, som angives af den nye værdi af denne pil (tail 30 pointer), og denne samt pakketællertallet i køkontroltabellen opdateres med de nye værdier.
Når en pakke skal sendes, finder klyngemodulstyrekredsen 32 den tilhørende kø i bufferlageret 34, og den tilhørende køkontroltabel i kontrollageret 52 på 35 basis af numrene for bestemmelsesklyngen og -processoren og den retning, hvori pakken skal sendes. Styrekredsen 32 fjerner så pakken fra den plads i køen, som head 26 DK 167416 B1 pointer peger på, den foretager modulo 16 inkrementering af head pointer, dekrementering af pakketællertallet og opdatering af køkontroltabellen i kontrollageret 52 med de nye værdier.
5 På denne måde kommer hver køkontroltabel til altid at indeholde de korrekte værdier for head pointer, der altid angiver i køen den næste pakke, der skal sendes, for tail pointer, der angiver den sidst ankomne pakke i køen, og pakketællertallet, der løbende angiver hvor 1Q mange pakker, den pågældende kø indeholder.
For klyngemodulstyrekredsen 32 må der være en effektiv måde at udvælge den næste pakke fra bufferlageret 34, der skal sendes. Dette kan som tidligere nævnt opnås ved at opretholde en ready-liste i form af en dob-15 beltleddet liste af køkontroltabeller, som har et pakke-tællertal forskelligt fra nul. Den foretrukne metode går ud på at opretholde yderligere to typer tabeller af information i kontrollageret 52, nemlig "klynge-klar-til-at-sende"-tabeller og "processør-klar-til-at-sende"-ta-2Q beller. Der er to "klynge-klar-til-at-sende"-tabeller, in for hver retning. Beliggenheden af klynge-klart-til-at-sende-tabeller i kontrollageret 52 bestemmes af den retning, hvori pakkerne skal sendes, men for sagkyndige vil det være klart, at den tilordnede absolutte adresse 25 kun er et spørgsmål om valg. Der er to processor-klar-til-at-sende-tabeller for hver mulig klynge, én for hver retning. Beliggenheden af processor-klar-til-at-sende-tabellerne i kontrollageret 52 bestemmes ligeledes af klyngenummeret og den retning, hvori pakkerne skal sen-30 des.
Hver klart-til-at-sende-tabel består af tre parter: en maske for. ventende pakker, en maske for datastrømregulering og en prioritetsmaske. Der er et 1-til-l-for-hold mellem bit i hver maske og nummeret på en given 35 klynge (eller processor 10). Hver bit i ventende pakkermasken angiver, om der i bufferlageret 34 er pakker, der venter på at blive sendt til det klyngenummer (eller 27 DK 167416 B1 nummer for processor 10), der er tilknyttet denne bit.
Hver bit i strømreguleringsmasken angiver reguleringstilstanden (standset eller startet som forklaret nedenfor) for den klynge eller processor 10, der er tilknyt-5 tet denne bit. Det logiske produkt (AND) af en ventende pakkermaske og en strømreguleringsmaske er en klar-til-at-sende-maske, hvori hver bit angiver, om der i bufferlageret' 34 er pakker, der nu kan sendes til den klynge eller processor 10, der er tilknyttet denne bit. Priori-10 tetsmasken bruges til at angive på hvilken bit, klar-til-at-sende-maske-søgningen skal igangsættes. I prioritetsmasken resættes de bit, der er tilknyttet den sidste klynge eller processor 10 for hvilken en pakke blev sendt, og alle de klynger eller processorer, der har la-15 vere nummer, medens de bit, der er tilknyttet alle de andre klynger eller processorer 10 sættes. På denne måde vil det logiske produkt (AND) af klar-til-at-sende-masken og prioritetsmasken danne en maske, hvor det kun er de bit, der hører til klynger eller processorer med 20 højere nummer end den sidste klynge, man har sendt til, som kan "sættes".
Når en pakke placeres i bufferlageret 34, vil den bit, der er tilknyttet pakkens bestemmelsesprocessor, "sættes" i den ventende pakker-maske for processor-klar*· 25 til-at-sende-tabellen, der er tilknyttet pakkens bestemmelsesklynge og retning. Ligeledes vil den bit, der er tilknyttet pakkens bestemmelsesklynge, "sættes" i den-ventende pakker-maske for klynge-klar-til-at-sende-ta-. bellen, der er tilknyttet den retning, hvori pakken skal 30 sendes.
Hvis en pakke fjernes fra bufferlageret 34, og pakketællertallet går til nul, "resættes" den bit, der er tilknyttet pakkens bestemmelsesprocessor, i ventende pakker-masken for den processor-klar-til-at-sende-tabel, 35 der er tilknyttet pakkens bestemmelsesklynge og retning.
Hvis dette fører til en ventende pakker-maske, hvor ingen bit er sat (der er ikke flere ventende pakker, der 28 DK 167416 B1 der skal sendes til denne klynge), resættes den bit, der er tilknyttet pakkens besteiranelsesklynge, i ventende pakker-masken for den klynge-klar-til-at-sende-tabel, der er tilknyttet den retning, hvori pakken sendes. Priori-5 tetsmaskerne i processor- og klynge-klar-til-at-sende-tabel lerne "sættes" også for at angive, til hvilken be-stemmelsesprocessor og -klynge, pakken sendes.
Brugen af klar-til-at-sende-tabellerne kan bedst forklares med et eksempel. For at igangsætte en pakke-10 overføring, henter klyngemodulstyrekredsen 32 klynge-klar-til-at-sende-tabellen for den ønskede retning, fra kontrollageret. Den undersøger sekventielt det logiske produkt af klar-til-at-sende- og prioritetsmaskerne for den første bit, der er sat og angiver en klynge, for 15 hvilken der er pakker, der kan sendes. Hvis der ved undersøgelsen af det logiske produkt af klar-til-at-sende-og prioritetsmaskerne ikke findes nogen klynge, undersøges klar-til-at-sende-masken på lignende måde for at finde en klynge til hvilken, der kan udsendes. Når man så-20 ledes har fundet en klynge, hentes den til denne klynge tilknyttede klar-til-at-sende-tabel fra kontrollageret 52, og den undersøges på lignende måde. Når bestemmelsen og processoren er blevet valgt, lokaliseres den tilhørende FIFO-kø og køkontroltabel, den pakke, der angives af 25 tail pointer'en, fjernes fra køen, og køkontrol- og klar-til-at-sende^tabellerne opdateres som tidligere angivet.
Denne undersøgelsesoperation i to trin er en effektiv rundtløbende prioriteringsoperation, hvor den sidste klynge (og den sidste processor i klyn-30 geni, der udsender, altid gives den laveste prioritet for den næste udsendelse. På denne måde vil man for alle mulige bestemmelsesklynger (og processorer i en klynge) få en rimelig fordeling af seriedataforbindelsernes båndbredde .
35 Den foretrukne måde, hvorpå man i bufferlageret 34 udvælger den næste pakke, der skal sendes, blev valgt for at drage nytte af den effektivitet, hvormed der kan fore 29 DK 167416 B1 tages søgning med den prioritetskoder, som udgør en del af styrekredsen 32, og er i materiel-form (hardware). Sagkyndige kan se, at den tidligere beskrevne ready-liste også kunne bruges.
5 Da pakkerne til en hvilken som helst given bestem melse kan ankomme til et klyngemodul i større'mængde end dem, der forlader dette modul, er der behov for en strømreguleringsprotokol. Der sikres strømregulering ved hjælp af stopmeddelelser, startmeddelelser og INQ STAT-tabel-10 len 70. I tilknytning til FIFO-køerne i bufferlageret 34 er der to konstante værdier, der betegnes stoptærskel og starttærskel. Når en pakke placeres i en kø, sammenlignes det nye pakketællertal med stoptærsklen. Hvis det nye pakketællertal er lig med eller større end stoptærsklen, 15 betragtes køen som fyldt, og der gribes ind for at standse strømmen af pakker til denne kø (dette betegnes bestemmelsesstandsning) . Strømmen af pakker fra den lokale interprocessorbus til køen standses ved, at der i INQ STAT-tabellen 70 sættes den bit, der er tilknyttet be-20 stemmelsesstedet. Strømmen af pakker fra seriedataforbin-delsen til køen standses ved udsendelse af en stopmedde-lelse til det pågældende, hosliggende klyngemodul. Normalt udsendes stopmeddelelserne i kontrolordene i series forbindelsesrammerne, og de omfatter nummeret på den be-r-25 stemmelsesklynge og -processor, der skal sættes i gang.
Start- og stopmeddelelserne sendes ikke umiddelbart ud, idet de opstilles i kø til udsendelse i en speciel to-ord-kø, der er tilknyttet hver enkelt seriedata-forbindelse, og som er indbefattet i den næste ramme, 3Q der udsendes over denne seriedataforbindelse. Er der mere end to kontrolmeddelelser at sende over en seriedataforbindelse, eller er der ingen pakke at sende over denne seriedataforbindelse, udsendes der en control-only-ramme, som er en ramme, hvori pakkedataene er erstattet med en 35 bitkonfiguration, der repræsenterer start/stop-status for samtlige bestemmelsesprocessorer i den pågældende retning. Control-only-rammerne udsendes også periodisk 30 DK 167416 B1 for at opretholde synkroniseringen i strømreguleringen.
Hvis der f.eks. er en startmeddelelse, der går tabt på grund af en transientfejl i seriedataforbindelsen, vil den næste periodiske control-only-ramme igangsætte be-5 stemmelsesstedet.
Da det tager en vis tid at udsende kontrolmeddelelser og at virke ind på det hosliggende klyngemodul, må stoptærsklen vælges mindre end den aktuelle størrelse af FIPO-køerne. For at få den maksimale kø-udnyttelse væl-10 ges starttærsklen også større end nul. I den foretrukne udførelsesform med en FIFO-kø med kapacitet på f.eks. 16 pakker, vil man vælge seks og otte for starttærskel hhv. stoptærskel.
Når en klyngemodulstyrekreds 32 modtager en stop-15 kontrolmeddelelse, resætter den den tilhørende bit i strømreguleringsmasken for den pågældende processor-klar-til-^at-sende-tabel. Hvis den resulterende strømreguleringsmaske kun angiver nuller (hvilket angiver, at samtlige processorer på dette bestemmelsessted er standsede), 20 resættes den tilhørende bit i strømreguleringsmasken for den tilhørende klynge-klar-til-at-sende-tabel. Når en klyngemodul styrekreds 32 modtager en startkontrolmed-delelse, sætter den den tilhørende bit i strømreguleringsmasken for den tilhørende processor-klar-til-at-25 sende-tabel og den tilhørende bit i strømreguleringsmasken for den tilhørende klynge-klar-til-at-sende-tabel.
Når en klyngemodulstyrekreds 32 modtager en control-only-ramme, opdaterer den strømreguleringsmaskerne i samtlige processor- og klynge-klar-til-at-sende-tabeller, 30 der er tilknyttet den retning, hvorfra rammen ankom.
I henhold til en foretrukken udførelsesform er der en mekanisme til at tage sig af "uanbragte" pakker, dvs. pakker, der kører hele vejen rundt i nettet og forbliver uafhentet.
35 Mekanismen for uanbragte pakker fungerer på følgen de måde. Når en pakke tages fra den lokale interproces-sorbus 12, erstattes dens klyngenummer (jf. fig. 5) med et bitfelt, der initialiseres til nul. Hver gang pakken 31 DK 167416 B1 modtages ved en klynge i ringen, aflæses og inkremente-res bitfeltværdien. Hvis den aflæste værdi er lig med eller større end antallet af klynger i nettet, dvs. hvis pakken har været igennem samtlige klynger og stadigvæk 5 er "uafhentet", kasseres den.
Fig. 6-11 viser en foretrukken udførelsesform for operationssekvens for et klyngemodul. Ved systemopstart udføres der en ikke-vist initialiseringsrutine til initialisering af registre, tabeller, processorkontrol- el-10 ler klyngekontrol-strukturer, sletning af flag, osv., på i og for sig velkendt måde. Den sætter INQ STAT-tabellen 70 i IPB-styrekredsen 30 til at acceptere pakker for alle gyldige bestemmelsesadresser.
Der henvises først til fig. 6. Der udføres en tom-15 gangssløjfe 102, der gentagne gange anmoder hver enkelt triggerelement eller -"ressource" i sløjfen om at udsende. Om nødvendigt udføres service for den pågældende del.
Venstre serie INQ check 104 kontrollerer flaget i venstre serie INQ buffer 66 for at se, om den er 20 fyldt, hvilket angiver, at venstre serie INQ skal betje nes. Hvis svaret er JA, udføres venstre serie iNQ-ruti-nen 105, og sløjfen fortsætter.
Højre serie INQ check 106 kontrollerer flaget i højre serie INQ buffer 68 for at se, om den er fyldt, 25 hvilket angiver, at højre serie INQ skal betjenes. Hvis svaret er JA, udføres højre serie INQ-rutinen 107, og sløjfen fortsætter.
Timer runout check 108 undersøger derefter, om - en indre interval-timer har talt ned til nul. Hvis JA, 30 udføres timer runout-servicerutinen 109, som indbefatter udsendelse af "control-only"-rammer i disse intervaller, hvorpå man igen går ind i tomgangssløjfen 102.
Hvis svaret er NEJ, fortsætter sløjfen.
Venstre serie OUTQ check 110 kontrollerer deref-35 ter flaget for venstre serie OUTQ buffer 40. Hvis denne buffer er tom, udføres venstre serie QUTQ-servicerutinen 111, og man går tilbage til tomgangssløjfen 102. Hvis svaret er NEJ, fortsætter sløjfen.
32 DK 167416 B1 Højre serie OUTQ check 112 kontrollerer derefter flaget for højre serie OUTQ buffer 42. Hvis denne buffer er tom, udføres højre serie OUTQ-servicerutinen 113, og man går tilbage til.tomgangssløjfen 102. Hvis svaret 5 er NEJ, fortsætter sløjfen.
Lokal INQ check 114 kontrollerer derefter flaget for lokal INQ-buffer 72. Hvis bufferen er fyldt, udføres lokal INQ-servicerutinen, og man går tilbage til tom-gangssløjfen. Hvis svaret er NEJ, fortsætter sløjfen.
10 Venstre lokal OUTQ check 116 undersøger derefter, om der er venstregående pakker til en given processor, hvis lokale OUTQ buffer 54 er tom. Hvis JA, udføres venstre lokale OUTQ-servicerutinen 117, og man går tilbage til tomgangssløjfen. Hvis svaret er NEJ, fortsætter 15 sløjfen.
Højre lokal OUTQ check 118 undersøger, om der er højregående pakker til en given processor, hvis lokale OUTQ buffer 54 er tom. Hvis JA, udføres højre lokale OUTQ-servicerutinen 119, og man går tilbage til tom-20 gangssløjfen. Hvis svaret er NEJ, fortsætter sløfjen.
Man går tilbage til tomgangssløjfen, hver gang den afsluttes.
Selv om der her kun er beskrevet én enkelt tomgangssløjfe 102, vil der i henhold til en foretrukken 25 udførelsesform udføres flere tomgangssløjfer for at undgå en for voldsom koncentration på tidligere i sløjfen testede serviceanmodninger. Når en "ressource" er blevet betjent, byttes der om mellem de trin, der betjener begge serie-outkøer 111 og 113, inkøen 115 og lokale out-30 køer 117 og 119, frem for at gå tilbage til den oprindelige tomgangssløjfe 102. Man går ind i lignende sløjfer, der udfører den samme service, men i en anden rækkefølge, bortset fra de tre tests 104, 106 og 108, der foretages først. Dette sikrer en dynamisk revision af 35 prioritet af hver service og dermed ens betjening af hver ressource.
Fig. 7 viser et rutediagram for lokal INQ-service-rutine 115.
33 DK 167416 B1
Special-function check 201 undersøger de ankommende pakker for at se, om der er en pakke, der kræver en speciel funktion. Hvis svaret er JA, afsluttes servicerutinen, og special-function-rutinen 202 udføres.
5 Hvis svaret er NEJ, fortsætter servicefunktionen.
Storage-overrun check 203 undersøger derefter den køkontroltabel, der er tilordnet bestemmelsesprocessoren for den ankommende pakke, for at se om der er lageroverløb, dvs. om der er et pakketællertal større end 10 16. Hvis JA, inkrementeres lageroverløb-fejltallet ved trin 204, og servicerutinen afsluttes, eftersom der ikke er mere plads i FIFO-køen i bufferlageret 34. Hvis svaret er NEJ, fortsætter servicerutinen. Eventuelt kan fejltallet bruges til diagnosticering.
15 Derefter flyttes, ved trin 205, pakkerammen fra INQ-bufferen 72 til FIFO-køen i bufferlageret 34, og ved trin 206 føjes pakken til ready-to-send-tabellerne.
Flow-control check 207 undersøger pakketællertal·-let i køkontroltabellen for at se, om det er lig med el-20 ler større end stoptærsklen. Hvis JA, udføres ved trin 208 de ovenfor beskrevne operationer til bestemmelsesstop. Herefter afsluttes INQ servicerutinen.
Fig. 8 viser lokal OUTQ-servicerutine 117 (venstre) og 118 (højre).
25 Ved trin 211 anvendes der en roterende priori tetskoder til udvælgelse af en OUTQ, som er tom og har ventende ("pending") pakker. Selve pakken flyttes så fra FIFO-køen i bufferlageret 34 til den valgte OUTQ, jf. trin 212.
30 På dette punkt kan der anvendes en paritetscheck 213 for at se, om der er paritetsfejl. Hvis der er en fejl, kan et paritetsfejltal (nyttigt til diagnosticering) i kontrollageret 52 inkrementeres ved trin 214. Ellers sættes der en bit i OUTQ STAT-registeret 56, svar 35 rende til bestemmelsesprocessoren, jf. trin 215. Køkontroltabellen for bestemmelsesprocessoren opdateres derefter ved trin 216.
34 DK 167416 B1
Empty-queue check 217 undersøger køkontroltabellen for at se, om der er en tom FIFO-kø. Hvis svaret er JA, opdateres ready-to-send-tabellen for bestemmelsesprocessoren ved trin 218 på den ovenfor beskrevne måde, 5 og lokal-INQ-servicerutinen afsluttes. Hvis svaret er NEJ, fortsætter servicerutinen.
Flow-control check 219 kontrollerer, om pakke-tællertallet er lig med starttærsklen. Hvis svaret er JA, foretages de tidligere beskrevne operationer til bestem-10 melsesstart, og lokal-OUTQ-servicerutinen afsluttes.
Fig. 9 viser serie-INQ-servicerutinen.
Controfc-only check 221 undersøger pakken for at se, om den er en control-only ramme. Hvis svaret er JA, opdateres flowkontrol-maskerne ved trin 223, og serie-IN 15 INQ-servicerutinen afsluttes. Hvis svaret er NEJ, fortsætter servicerutinen.
Derefter undersøger storage-overrun check 226 den køkontroltabel, der er tilordnet bestemmelsesprocessoren for den ankommende pakke for at se, om der er lagerover-20 løb, dvs. om der er et pakketællertal større end 16. Hvis svaret er JA, kan der ved trin 227 eventuelt foretages optælling af storage-overrun-fejl eksempelvis til diagnosticering. Ankommende kontrolord behandles, og serie-INQ-servicerutinen afsluttes. Hvis svaret er NEJ, fort-25 sætter servicerutinen.
Runaway-pakke check 228 undersøger pakken for at kontrollere, om den er gået igennem de 16 knudepunkter.
Hvis svaret er JA, kasseres pakken, og der foretages ved trin 229 en eventuel optælling af fejltal for uanbragt 30 pakke, eksempelvis til diagnosticering. De ankommende kont-rolord behandles, og serie-INQ-servicerutinen afslut tes. Hvis pakken ikke er uanbringelig, fortsætter servicerutinen .
Ved trin 230 flyttes pakkerammen fra serie-INQ-35 bufferen 66 eller 68 til FIFO-køen i bufferlageret 34.
Køkontroltabellen opdateres ved trin 235.
35 DK 167416 B1
Flow-control check 236 undersøger, om der i bufferområdet er flere pakker i kø end stopstærsklen. Hvis svaret er JA, foretages den tidligere beskrevne operation til bestemmelsesstop.
5 Ved trin 238 knyttes pakken til ready-to-send- tabellerne, som tidligere beskrevet.
Ankommende kontrolord behandles ved trin 239, og serie-INQ-servicerutinen afsluttes.
Fig. 10 viser serie-OUTQ-servicerutinen for ven-10 stre eller højre OUTQ.
Resync check 241 undersøger, om der er mere end to kontrolord, der skal udsendes, eller om resync-inter-valtimeren har været igennem tidsintervallet, der hensigtsmæssigt kan være på 10 ms. Hvis den ene eller den 15 anden betingelse er opfyldt, udsendes der en "control-only"-ramme ved trin 242, hvormed serie-OUTQ-servicerutinen afsluttes. Hvis svaret er NEJ, fortsætter rutinen.
Det såkaldte "round-robin priority"-system bruges 20 til ved trin 243 at vælge en klynge og processor. Hvis der hverken er en klynge eller en processor i denne klynge at vælge, foretages der kontrol-ord check 245. Kontrol-ord check 245 undersøger, om der i kontrolordkøen er kontrolord, der skal udsendes. Hvis svaret er JA, 25 sendes kontrol-ordene uden pakke, ved trin 246. Herved afsluttes servicerutinen. Hvis der imidlertid er valgt en klynge og processor, fortsætter servicerutinen.
Den valgte pakke flyttes så fra FIFO-køen i bufferlageret 34 til serie-OUTQ-bufferen 40 eller 42. Der 30 tilføjes kontrolord til kontrolordkøen, og køkontrolta-bellerne opdateres ved trin 247.
Lagerparitet check 248 undersøger, om der er lagerparitetsfejl. Hvis der detekteres en fejl, inkremen-teres der, ved trin 249, et paritetsfejl-tal, der even-35 tuelt kan benyttes til diagnosticering, og ved trin 250 udsendes der to kontrolord uden pakke. Ellers udsendes rammen som sådan ved trin 251.
36 DK 167416 B1
Ved check 252 undersøges, om der er pakker tilbage i FIFO-køen. Hvis der ingen pakke er, opdateres ready-to-send-tabellerne ved trin 245, og serie-OUTQ-servicerutinen afsluttes. Ellers fortsætter rutinen.
5 Flow-control check 254 undersøger, om pakketæl- lertallet er lig med starttærsklen. Hvis svaret er JA, foretages den tidligere beskrevne operation til bestemmelsesstart. Herved afsluttes OUTQ-servicerutinen.
IPB-styrekredsen 30 kontrollerer informations-10 overføringerne mellem par af lokale processorer og mellem lokale processorer og klyngemodulet. Den er tilknyttet IPB-bussen og er direkte forbundet med klyngemodulet.
Der anvendes kontrollinier til at overføre kontrolsignaler mellem IPB-styrekredsen og lokale processorer og 15 mellem IPB-styrekredsen og klyngemodulstyrekredsen.
Dataene fra en lokal processor til en anden overføres på en måde, der minder meget om den i US patent 4.228.496 anvendte. Når en processor vælges til udsendelse af en pakke, placerer den pakkens bestemmelses-20 adresse i IPB'en. Den lokale bestemmelsesprocessor beordres derefter til at modtage en pakke fra IPB'en. Den lokale afsendeprocessor flytter derefter pakken over til den lokale bestemmelsesprocessor via IPB'en.
Data fra en lokal processor til klyngemodulet over-25 føres fra den lokale afsendeprocessor til IPB-styrekredsens INQ-buffer 72. Flaget for fyldt INQ (INQFULL) sættes for at meddele klyngemodulet, at en pakke er klar. Klyngemodulet flytter derefter pakken til bufferlageret 34, og den resætter INQFULL-flaget.
30 Data fra klyngemodulet til en lokal processor over føres først af klyngemodulet fra bufferlageret 34 til den lokale processors tilhørende OUTQ-buffer 54. Det tilhørende flag i OUTQ STAT-registeret 56 sættes for at meddele IPB-styrekredsen, at en pakke er klar. Den 35 lokale bestemmelsesprocessor beordres til at modtage en pakke fra IPB'en. Derefter overfører IPB-styrekredsen pakken til den lokale bestemmelsesprocessor via IPB'en.
37 DK 167416 B1
Der benyttes flow control mellem lokale processorer og klyngemodulet for at forhindre overløb i FIFO-kø-erne i bufferlageret 34. INQ STAT-registeret 70 bruges til at give IPB-styrekredsen besked om, hvilke FIFO-køer 5 kobles ind eller ud. Hver bit i INQ STAT-registeret 70 angiver en bestemmelsesprocessor og -retning i nettet.
Når bitten er sat, afviser IPB-kontrolleren enhver pakke, der har adresse til den pågældende processor og denne retning i nettet.
10 Fig. 11a viser diagrammet over IPB-kontroller-til- stand. Styrelogikken for IPB-styrekredsen udformes som en tilstandsanordning med seks tilstande, der betegnes: STDSEND 300, POLL 302, OQSEND 304, RCVRSEL 306, OQRCVRSIL 308 og SEND2INQ 310. Der defineres fjorten transitioner 15 (T-l til T-14 i fig. 11b), der angiver hvornår en tilstandsændring bør finde sted.
I POLL-tilstanden sker der ingen informationsoverføring. IPB-styrekredsen spørger skiftevis hver enkelt lokal processor efter anmodning om at sende en pakke 20 (signalet SNDACK), og om dens mulighed for at modtage en pakke (signalet RCVACK) . Den undersøger også den lo·^ kale processors tilhørende bit i OUTQ STAT-registeret 56 (signalet OUTQFULL).
Hvis RCVACK og OUTQFULL begge er til stede (dvs.
25 der er en pakke fra klyngemodulet, som den lokale processor kan modtage), udløses transitionen T-10 til OQRCVRSEL-tilstanden. Der igangsættes en overføring fra klyngemodulet. Hvis enten RCVACK eller OUTQFULL mangler (dvs. der er ingen pakke, eller den lokale processor kan 30 ikke modtage den), søger IPB-styrekredsen efter signalet SNDACK.
Hvis SNDACK er til stede (dvs. den lokale processor har en pakke at sende), bekræfter den lokale processor pakkens bestemmelsesadresse på IPB'en. IPB-styrekred-35 sen modtager denne adresse og udløser transitionen T-6 til RCVRSEL-tilstanden. Der udløses en overføring fra den lokale processor. Ellers udløses transitionen T-14, 38 DK 167416 B1 og IPB-styrekredsen fortsætter med at spørge den næste lokale processor.
I OQRCVRSEL-tilstanden er en overføring fra klynge-modulet ved at finde sted. IPB-styrekredsen udvælger den 5 udspurgte lokale processor og ser, om signalet RCVCMD er til stede. Hvis den lokale processor svarer med RCVACK, udløses transitionen T-ll til OQSEND-tilstanden. Ellers udløses transitionen T-9 til POLL-tilstanden.
I OQSEND-tilstanden er en overføring fra et klynge-10 modul til en lokal processor ved at finde sted. Seksten ord af data fra OUTQ-bufferen sendes over bussen og modtages af den lokale processor. IPB-taktgiveren 88 i IPB-styrekredsen 30 frembringer et taktsignal, der gentagne gange udløser transitionen T-4 til udførelse af 15 denne funktion. Når overføringen er bragt til ende, udløses transitionen T-3 til POLL-tilstanden.
I RCVRSEL-tilstanden er en overføring fra den lokale processor ved at finde sted. IPB-styrekredsen undersøger klyngenummeret i den tidligere fastlagte bestemmel-20 sesadresse. Hvis dette nummer er nul, hvilket angiver en lokal overføring, udvælger IPB-styrekredsen den lokale bestemmelsesprocessor og ser, om RCVCMD-signalet er til stede. Hvis der svares RCVRACK, udløses transitionen T-5 til STDSEND; ellers udløses transitionen T-7 til POLL-25 tilstanden.
Hvis klyngenummeret ikke er nul, hvilket angiver netoverføring, kontrollerer IPB-styrekredsen om den er i stand til at modtage pakken til klyngemodulet (signalet INQFULL) samt flow control status for bestemmelses-30 processoren (signalet INQSTAT, det tilhørende flag i INQ STAT-tabellen). Hvis INQFULL og INQSTAT begge mangler (dvs. inputbufferen er ikke fyldt, og der er ikke udsendt nogen stopmeddelelse), udløses transitionen T-12 til SEND2INQ-tilstanden. Hvis enten INQFULL eller INQ-35 STAT er til stede, udløses transitionen T-7 til POLL-tilstanden.

Claims (3)

39 DK 167416 B1 I STDSEND-tilstanden er en overføring fra lokal processor til lokal processor i gang. Seksten ord af data fra den sendende lokale processor sendes over bussen og modtages af den lokale bestemmelsesprocesser. 5 IPB-taktgiveren 88 i IPB-styrekredsen 30 frembringer et taktsignal, der gentagne gange udløser transitionen T-l til udførelse af denne funktion. Når overføringen er bragt til ende, udløses transitionen T-2 til POLL-til-standen. 10. SEND2lNQ-tilstanden er en overføring fra en lo kal processor til klyngemodulet i gang. Seksten ord af data fra den sendende lokale processor sendes over bussen og modtages af INQ-bufferen. IPB-taktgiveren 88 i IPB-styrekredsen 30 udløser gentagne gange transitio-15 nen T-13 til udførelse af denne funktion. Fig. 11b viser en tabel, der angiver de betingelser, der udløser hver enkelt af tilstands-transitionerne T-l til T14. I hvert enkelt tilfælde er det første led i hver ligning den nuværende tilstand. Udtrykket CNT15 be-20 tegner det antal ord i en pakke (jf. fig. 5), som der holdes styr på under udsendelse eller modtagelse af pakker for at sikre systemsynkronisering.
1. Netværk af multiprocessorsystemer, og omfat tende flere multiprocessorsystemer, som hvert omfatter mindst én processor (10) tilkoblet en databus (12, 14), som forbinder processorerne med hinanden i det enkelte multiprocessorsystem, samt flere interfaceenheder (18, 30 20), som hver er tilkoblet en af nævnte databusser (12, 14), idet - hver af interfaceenhederne også er forbundet med mindst en anden af interfaceenhederne ved hjælp af mindst én dataforbindelse (22, 24, 26, 28), således at 35 hver interfaceenhed er i stand til at være forbundet med alle de andte interfaceenheder i netværket, og 40 DK 167416 B1 - hver af interfaceenhederne omfatter: . styrekredse (32, 36, 52) til styring af pver-føringen af meddelelsespakker til og fra vedkommende interfaceenhed over en dataforbindelse (22, 24, 26, 28), 5 som forbinder interfaceenheden med dennes nabo-inter-faceenhed, samt over den databus (12, 14), som vedkommende interfaceenhed er koblet til, samt . et bufferlager (34) til midlertidig oplagring af meddelelsespakker, som skal overføres til en hvilken 10 som helst processor i netværket, kendetegnet ved, - at hver af interfaceenhederne (18, 20) befinder sig i et knudepunkt mellem en databus (12, 14) og en dataforbindelse (22, 24, 26, 28), således at hver 15 interfaceenhed udgør en knudepunkt-interfaceenhed i netværket , - at nævnte bufferlager (34) har et antal lagerpladser, som er inddelt i grupper af lagerpladser, idet hver enkelt gruppe svarer til én bestemt af processorer- 20 ne i netværket, hvilken processor er bestemmelsesprocessoren for alle meddelelsespakker, der er placeret i vedkommende gruppe af lagerpladser, og - at nævnte styrekreds (32, 36, 52) også indbefatter midler til at afgøre, hvornår en gruppe af lager- 25 pladser i bufferlageret (34) i vedkommende knudepunkt-interfaceenhed og svarende til en given bestemmelsesprocessor er fuld, og til at standse overføringen af nævnte meddelelsespakker beregnet til denne bestemmelsesprocessor, så længe nævnte gruppe af lagerpladser er fuld.
2. Netværk af multiprocessorsystemer ifølge krav 1, kendetegnet ved, at nævnte knudepunkt-interf aceenheder (18, 20) er tilkoblet hver sin af nævnte databusser (12, 14) og indbyrdes er forbundet ved hjælp af en eller flere ringformede dataforbindelser (22, 24, 35 26, 28). 41 DK 167416 B1
3. Netværk af multiprocessorsystemer ifølge krav 1 eller 2, kendetegnet ved, at nævnte styrekredse (32, 36, 52) i hver knudepunkt-interfaceenhed (18, 20) også omfatter midler (32) til at afgøre, hvor 5 mange af lagerpladserne er fulde i en gruppe af lagerpladser i bufferlageret (34) i vedkommende knudepunkt-interfaceenhed.
DK490783A 1982-10-28 1983-10-26 Netvaerk af multiprocessorsystemer DK167416B1 (da)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US43739982 1982-10-28
US06/437,399 US4667287A (en) 1982-10-28 1982-10-28 Multiprocessor multisystem communications network
US54218783 1983-10-14
US06/542,187 US4663706A (en) 1982-10-28 1983-10-14 Multiprocessor multisystem communications network

Publications (3)

Publication Number Publication Date
DK490783D0 DK490783D0 (da) 1983-10-26
DK490783A DK490783A (da) 1984-04-29
DK167416B1 true DK167416B1 (da) 1993-10-25

Family

ID=27031305

Family Applications (1)

Application Number Title Priority Date Filing Date
DK490783A DK167416B1 (da) 1982-10-28 1983-10-26 Netvaerk af multiprocessorsystemer

Country Status (13)

Country Link
US (1) US4663706A (da)
EP (1) EP0110569B1 (da)
KR (1) KR880002098B1 (da)
AU (1) AU560977B2 (da)
BR (1) BR8305967A (da)
CA (1) CA1210872A (da)
DE (1) DE3380574D1 (da)
DK (1) DK167416B1 (da)
FI (1) FI80975C (da)
GB (1) GB2133188B (da)
IL (1) IL70074A (da)
MX (1) MX159163A (da)
NO (1) NO167341C (da)

Families Citing this family (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1221464A (en) * 1983-12-26 1987-05-05 Hidehiko Nishida Data processor system having improved data throughput of multiprocessor system
JPH0642237B2 (ja) * 1983-12-28 1994-06-01 株式会社日立製作所 並列処理装置
DE3584489D1 (de) * 1984-08-16 1991-11-28 Sharp Kk Informationsprozessor.
US4816993A (en) * 1984-12-24 1989-03-28 Hitachi, Ltd. Parallel processing computer including interconnected operation units
GB2174519B (en) * 1984-12-26 1988-09-01 Vmei Lenin Nis Multiprocessor system
JP2781550B2 (ja) * 1985-05-10 1998-07-30 株式会社日立製作所 並列処理計算機
FR2583943A1 (fr) * 1985-06-20 1986-12-26 Trouvin Cabinet Sa Reseau de transmission d'information entre materiels informatiques
US5228127A (en) * 1985-06-24 1993-07-13 Fujitsu Limited Clustered multiprocessor system with global controller connected to each cluster memory control unit for directing order from processor to different cluster processors
JPH07104837B2 (ja) * 1987-11-25 1995-11-13 富士通株式会社 プロセッサの制御方法
JPS6258744A (ja) * 1985-09-09 1987-03-14 Fujitsu Ltd ポ−リング方式
US4744023A (en) * 1985-12-16 1988-05-10 American Telephone And Telegraph Company, At&T Information Systems Processor access control arrangement in a multiprocessor system
JPH0740252B2 (ja) * 1986-03-08 1995-05-01 株式会社日立製作所 マルチプロセツサシステム
US4789927A (en) * 1986-04-07 1988-12-06 Silicon Graphics, Inc. Interleaved pipeline parallel processing architecture
US4896261A (en) * 1986-11-24 1990-01-23 Motorola Inc. System for scheduling serial message transmission on a bus which is adoptable for rescheduling prioritized messages using a doubly-linked list
EP0286240B1 (en) * 1987-03-11 1996-06-05 Toyo Communication Equipment Co.,Ltd. Computer system
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
US4845722A (en) * 1987-10-16 1989-07-04 Digital Equipment Corporation Computer interconnect coupler employing crossbar switching
GB8814629D0 (en) * 1987-11-12 1988-07-27 Ibm Direct control facility for multiprocessor network
CA1320003C (en) * 1987-12-22 1993-07-06 Steven J. Frank Interconnection system for multiprocessor structure
KR900701112A (ko) * 1988-02-29 1990-08-17 기따다 데쯔야 직렬제어장치 및 그 제어방법
US5377327A (en) * 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
GB2223867A (en) * 1988-09-09 1990-04-18 Univ City Multiprocessor data processing system
US5337411A (en) * 1988-10-20 1994-08-09 Westinghouse Electric Corporation Multi-processor computer system bus architecture
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
US5125096A (en) * 1988-10-31 1992-06-23 International Business Machines Corporation System for implementing to a packet switch protocol for a multinode data communications network utilizing separate data and control paths
EP0367182A3 (en) * 1988-10-31 1992-07-22 Bts Broadcast Television Systems Gmbh High-speed digital computing system
US4968977A (en) * 1989-02-03 1990-11-06 Digital Equipment Corporation Modular crossbar interconnection metwork for data transactions between system units in a multi-processor system
JP2570847B2 (ja) * 1989-02-08 1997-01-16 日本電気株式会社 データ転送方式
US5168572A (en) * 1989-03-10 1992-12-01 The Boeing Company System for dynamic selection of globally-determined optimal data path
GB2232512A (en) * 1989-05-31 1990-12-12 Plessey Telecomm Processor unit networks
GB8915137D0 (en) * 1989-06-30 1989-08-23 Inmos Ltd Message routing
JP2995752B2 (ja) * 1989-07-21 1999-12-27 日本電気株式会社 バスアーキテクチャ変換回路
US5023891A (en) 1989-07-25 1991-06-11 Sf2 Corporation Method and circuit for decoding a Manchester code signal
US5237659A (en) * 1989-07-27 1993-08-17 Bull S.A. Gateway device for connecting a computer bus to a ring network
US5133078A (en) * 1989-08-11 1992-07-21 International Business Machines Corporation Serial frame processing system in which validation and transfer of a frame's data from input buffer to output buffer proceed concurrently
DE58908974D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
US5381536A (en) * 1989-12-29 1995-01-10 Cray Research, Inc. Method and apparatus for separate mark and wait instructions for processors having multiple memory ports
US5280621A (en) * 1989-12-29 1994-01-18 Zenith Data Systems Corporation Personal computer having dedicated processors for peripheral devices interconnected to the CPU by way of a system control processor
US5208914A (en) * 1989-12-29 1993-05-04 Superconductor Systems Limited Partnership Method and apparatus for non-sequential resource access
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
CA2043505A1 (en) * 1990-06-06 1991-12-07 Steven K. Heller Massively parallel processor including queue-based message delivery system
US5208809A (en) * 1990-06-14 1993-05-04 At&T Bell Laboratories Communication network node
JP2663687B2 (ja) * 1990-07-27 1997-10-15 日本電気株式会社 デュアルリング網におけるatm通信方式
JPH06500655A (ja) * 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
US6453406B1 (en) 1990-10-17 2002-09-17 Compaq Computer Corporation Multiprocessor system with fiber optic bus interconnect for interprocessor communications
GB9027663D0 (en) * 1990-12-20 1991-02-13 Sandoz Ltd Light-stabilizing compositions
GB2251964B (en) * 1991-01-15 1994-09-14 Sony Corp Processor arrays
JP2501965B2 (ja) * 1991-02-12 1996-05-29 パイオニア株式会社 デ―タ転送制御装置
US5276861A (en) * 1991-03-18 1994-01-04 Bull Hn Information Systems Inc. Guaranteed message delivery from a data handling computer to management computer by monitoring the management computer with the data handling computer and other management computer
US5825773A (en) * 1991-03-20 1998-10-20 Hitachi, Ltd. Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
US5317568A (en) * 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
JP2836283B2 (ja) * 1991-04-11 1998-12-14 日本電気株式会社 バッファ管理方式
US5282238A (en) * 1991-04-16 1994-01-25 Silicon Engines, Ltd. Facsimile radio communication system
US6374311B1 (en) 1991-10-01 2002-04-16 Intermec Ip Corp. Communication network having a plurality of bridging nodes which transmit a beacon to terminal nodes in power saving state that it has messages awaiting delivery
US5394436A (en) * 1991-10-01 1995-02-28 Norand Corporation Radio frequency local area network
US7558557B1 (en) * 1991-11-12 2009-07-07 Broadcom Corporation Low-power messaging in a network supporting roaming terminals
US5410654A (en) * 1991-07-22 1995-04-25 International Business Machines Corporation Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals
JP3679813B2 (ja) * 1991-07-22 2005-08-03 株式会社日立製作所 並列計算機
US6084867A (en) * 1991-10-01 2000-07-04 Intermec Ip Corp. Apparatus and method of routing data in a radio frequency local area network
DE69233608T2 (de) * 1991-10-01 2007-03-01 Broadcom Corp., Irvine Lokales Funkfrequenznetzwerk
US6407991B1 (en) * 1993-05-06 2002-06-18 Intermec Ip Corp. Communication network providing wireless and hard-wired dynamic routing
US6400702B1 (en) * 1991-10-01 2002-06-04 Intermec Ip Corp. Radio frequency local area network
JP2883483B2 (ja) * 1991-12-16 1999-04-19 シャープ株式会社 データフロー型情報処理装置
US5390299A (en) * 1991-12-27 1995-02-14 Digital Equipment Corporation System for using three different methods to report buffer memory occupancy information regarding fullness-related and/or packet discard-related information
US5303347A (en) * 1991-12-27 1994-04-12 Digital Equipment Corporation Attribute based multiple data structures in host for network received traffic
FR2686175B1 (fr) * 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
US6101321A (en) * 1992-04-10 2000-08-08 Eastman Kodak Company Method and apparatus for broadcasting data in a ring connected multiprocessor
US5719882A (en) * 1992-04-28 1998-02-17 Hewlett-Packard Company Reliable datagram packet delivery for simple network management protocol (SNMP)
US5758053A (en) * 1992-07-22 1998-05-26 Hitachi, Ltd. Fault handling and recovery for system having plural processors
US5544329A (en) * 1992-07-31 1996-08-06 Grumman Aerospace Corporation Interface system with memory map locations for holding flags indicating a priority for executing instructions held within messages received by the interface
US5434976A (en) * 1992-09-28 1995-07-18 Standard Microsystems Corporation Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
US5561785A (en) * 1992-10-29 1996-10-01 International Business Machines Corporation System for allocating and returning storage and collecting garbage using subpool of available blocks
US6067408A (en) * 1993-05-27 2000-05-23 Advanced Micro Devices, Inc. Full duplex buffer management and apparatus
US5506967A (en) * 1993-06-15 1996-04-09 Unisys Corporation Storage queue with adjustable level thresholds for cache invalidation systems in cache oriented computer architectures
WO1995010805A1 (en) * 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
CA2134061A1 (en) * 1993-10-28 1995-04-29 Aaron William Ogus Frame buffering of network packets
US5546542A (en) * 1993-11-29 1996-08-13 Bell Communications Research, Inc. Method for efficiently determining the direction for routing a set of anticipated demands between selected nodes on a ring communication network
US5560027A (en) * 1993-12-15 1996-09-24 Convex Computer Corporation Scalable parallel processing systems wherein each hypernode has plural processing modules interconnected by crossbar and each processing module has SCI circuitry for forming multi-dimensional network with other hypernodes
JPH07182293A (ja) * 1993-12-22 1995-07-21 Hitachi Ltd 分散型処理システムおよびデータ転送制御方式
JP3290798B2 (ja) * 1994-03-14 2002-06-10 富士通株式会社 並列コンピュータ
US5548791A (en) * 1994-07-25 1996-08-20 International Business Machines Corporation Input/output control system with plural channel paths to I/O devices
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5576945A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Transaction monitor process with pre-arranged modules for a multiprocessor system
US5655138A (en) * 1995-04-11 1997-08-05 Elonex I. P. Holdings Apparatus and method for peripheral device control with integrated data compression
US6532547B1 (en) * 1995-06-16 2003-03-11 Emc Corporation Redundant peripheral device subsystem
US5737531A (en) * 1995-06-27 1998-04-07 International Business Machines Corporation System for synchronizing by transmitting control packet to omit blocks from transmission, and transmitting second control packet when the timing difference exceeds second predetermined threshold
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
WO2002071249A2 (de) * 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
IL116707A (en) * 1996-01-08 2000-01-31 Galileo Technology Ltd Method and apparatus for managing packet memory
US6240065B1 (en) * 1996-01-08 2001-05-29 Galileo Technologies Ltd. Bit clearing mechanism for an empty list
IL116989A (en) 1996-01-31 1999-10-28 Galileo Technology Ltd Switching ethernet controller
IL116988A (en) 1996-01-31 1999-12-31 Galileo Technology Ltd Bus protocol
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE59710317D1 (de) 1996-12-27 2003-07-24 Pact Inf Tech Gmbh VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6341301B1 (en) 1997-01-10 2002-01-22 Lsi Logic Corporation Exclusive multiple queue handling using a common processing algorithm
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US6094696A (en) * 1997-05-07 2000-07-25 Advanced Micro Devices, Inc. Virtual serial data transfer mechanism
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6272546B1 (en) 1998-03-12 2001-08-07 Sony Corporation Method of and apparatus for managing resource allocation and bandwidth overflow in a cooperative, distributed computing environment
JP2000307681A (ja) * 1999-04-16 2000-11-02 Fujitsu Ltd 中継装置およびフレームトレース方法
FR2793628A1 (fr) * 1999-05-11 2000-11-17 Koninkl Philips Electronics Nv Systeme de transmission, recepteur et reseau d'interconnexion
EP1228440B1 (de) 1999-06-10 2017-04-05 PACT XPP Technologies AG Sequenz-partitionierung auf zellstrukturen
US6584535B1 (en) * 2000-01-31 2003-06-24 Cisco Technology, Inc. Configurable serial interconnection
DE50115584D1 (de) 2000-06-13 2010-09-16 Krass Maren Pipeline ct-protokolle und -kommunikation
US6766360B1 (en) * 2000-07-14 2004-07-20 Fujitsu Limited Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture
JP2004517386A (ja) 2000-10-06 2004-06-10 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 方法および装置
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6990555B2 (en) 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
EP2224330B1 (de) 2001-06-20 2012-05-09 Krass, Maren Verfahren und gerät zum partitionieren von grossen rechnerprogrammen
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7512780B1 (en) * 2001-08-31 2009-03-31 Verizon Corporate Services Group, Inc. Packet-parallel high performance cryptography systems and methods
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
EP2043000B1 (de) 2002-02-18 2011-12-21 Richter, Thomas Bussysteme und Rekonfigurationsverfahren
JP2003264596A (ja) * 2002-03-07 2003-09-19 Mitsubishi Electric Corp 通信デバイス、携帯端末、通信方法を実現するためのプログラム
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US20070083730A1 (en) * 2003-06-17 2007-04-12 Martin Vorbach Data processing device and method
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
EP1635518B1 (en) 2003-06-18 2019-07-31 Nippon Telegraph And Telephone Corporation Wireless packet communication method
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7174479B2 (en) * 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
US7240168B2 (en) * 2004-03-10 2007-07-03 Intel Corporation Method and system to order memory operations
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US20080298397A1 (en) * 2007-05-16 2008-12-04 Broadcom Corporation Communication fabric bandwidth management
US7673120B2 (en) * 2007-06-27 2010-03-02 Texas Instruments Incorporated Inter-cluster communication network and heirarchical register files for clustered VLIW processors
US8594110B2 (en) * 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
US8560776B2 (en) * 2008-01-29 2013-10-15 International Business Machines Corporation Method for expediting return of line exclusivity to a given processor in a symmetric multiprocessing data processing system
WO2010011813A1 (en) * 2008-07-23 2010-01-28 Alkermes, Inc. Complex of trospium and pharmaceutical compositions thereof
US20120030448A1 (en) * 2009-03-30 2012-02-02 Nec Corporation Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus
US9954771B1 (en) * 2015-01-30 2018-04-24 Marvell Israel (M.I.S.L) Ltd. Packet distribution with prefetch in a parallel processing network device
US9940270B2 (en) * 2015-08-28 2018-04-10 Nxp Usa, Inc. Multiple request notification network for global ordering in a coherent mesh interconnect

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4384322A (en) * 1978-10-31 1983-05-17 Honeywell Information Systems Inc. Asynchronous multi-communication bus sequence
FR2469751A1 (fr) * 1979-11-07 1981-05-22 Philips Data Syst Processeur d'intercommunication du systeme utilise dans un systeme de traitement de donnees reparti
JPS56109057A (en) * 1980-02-04 1981-08-29 Hitachi Ltd Data communication system
FR2476349A1 (fr) * 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
US4428043A (en) * 1981-08-24 1984-01-24 Burroughs Corporation Data communications network

Also Published As

Publication number Publication date
AU2066383A (en) 1984-05-03
KR880002098B1 (ko) 1988-10-15
MX159163A (es) 1989-04-26
AU560977B2 (en) 1987-04-30
EP0110569A2 (en) 1984-06-13
NO833922L (no) 1984-04-30
IL70074A (en) 1988-03-31
FI80975B (fi) 1990-04-30
GB2133188B (en) 1986-12-10
EP0110569B1 (en) 1989-09-13
KR840006532A (ko) 1984-11-30
CA1210872A (en) 1986-09-02
GB8328893D0 (en) 1983-11-30
DE3380574D1 (en) 1989-10-19
EP0110569A3 (en) 1986-10-15
GB2133188A (en) 1984-07-18
DK490783A (da) 1984-04-29
IL70074A0 (en) 1984-01-31
NO167341B (no) 1991-07-15
BR8305967A (pt) 1984-06-05
FI833922A0 (fi) 1983-10-26
NO167341C (no) 1991-10-23
DK490783D0 (da) 1983-10-26
FI80975C (fi) 1990-08-10
US4663706A (en) 1987-05-05

Similar Documents

Publication Publication Date Title
DK167416B1 (da) Netvaerk af multiprocessorsystemer
US4667287A (en) Multiprocessor multisystem communications network
EP0404337B1 (en) High-speed mesh connected local area network
US6453406B1 (en) Multiprocessor system with fiber optic bus interconnect for interprocessor communications
EP0042447B1 (en) Flow control mechanism for block switching nodes
JP3532037B2 (ja) 並列計算機
US4396983A (en) Distributed data processing system having several local system and communication modules for use in such data processing system
EP0611014B1 (en) A communications device
US4845744A (en) Method of overlaying virtual tree networks onto a message passing parallel processing network
JPH0817385B2 (ja) 高速メッシュ接続式ローカルエリアネットワーク用再構成システム
US5404565A (en) Message tracking in a parallel network employing a status word at each node which reflects a message's progress
US5165024A (en) Information transfer and receiving system with a ring interconnect architecture using voucher and ticket signals
CA2302215A1 (en) Computer
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
JPH03504912A (ja) 通信システム及び通信システムに使用されるスイッチング素子
EP0294890A2 (en) Data processing system
KR101125639B1 (ko) 네트워크를 통하여 통신이 가능한 데이터 처리 유닛을 가지는 데이터 처리 회로
WO2000004664A1 (en) Node transmission allocation in sci switching networks
Hatada et al. A Microprocessor-Based Multi-Loop Network System
BG97683A (en) Multicomputer system
JP3202652B2 (ja) データ転送経路管理方式
Melen et al. Distributed protocols for access arbitration in tree-structured communication channels
van Steen The Hamlet design entry system: on the implementation of synchronous channels
JPH0326138A (ja) Hdlcのマルチリンク手順における高速データ送信方式
JPH09238163A (ja) バッファメモリ管理装置

Legal Events

Date Code Title Description
B1 Patent granted (law 1993)
PBP Patent lapsed