NO167341B - Nettverk av multiprosessor-systemer. - Google Patents

Nettverk av multiprosessor-systemer. Download PDF

Info

Publication number
NO167341B
NO167341B NO833922A NO833922A NO167341B NO 167341 B NO167341 B NO 167341B NO 833922 A NO833922 A NO 833922A NO 833922 A NO833922 A NO 833922A NO 167341 B NO167341 B NO 167341B
Authority
NO
Norway
Prior art keywords
processor
packet
group
data
network
Prior art date
Application number
NO833922A
Other languages
English (en)
Other versions
NO833922L (no
NO167341C (no
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 NO833922L publication Critical patent/NO833922L/no
Publication of NO167341B publication Critical patent/NO167341B/no
Publication of NO167341C publication Critical patent/NO167341C/no

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

Foreliggende oppfinnelse angår multiprosessor-systemer for datamaskiner. Nærmere bestemt gjelder oppfinnelsen nettverk av flere multiprosessor-systemer samt måten hvorpå prosessorer i et av systemene er forbundet med og kommuniserer med prosessorer i et annet system.
Sammenkobling av to eller flere multiprosessor-systemer i et nettverk er ønskelig i mange anvendelser, f.eks. slike hvor det er behov for kommunikasjon mellom separat styrte systemer. Det er dessuten en praktisk grense for det antall prosessorer som kan inngå i ett og samme multiprosessor-system. Når et systems størrelsesgrenser er nådd, er derfor den eneste måte å ytterligere øke databehandlingskapasiteten på, å koble to eller flere multiprosessor-systemer sammen i et nettverk.
Ved sammenkobling av multiproessor-systemer i nettverk er det vanlig å utnytte en av prossorene i hvert system som kommunikasjonsledd og styreenhet for kommunikasjonen mellom systemene. Disse spesielle prosessorer håndterer således all kommunikasjon mellom prosessorene i vedkommende nettverk.
Skjønt dette opplegg tillater kommunikasjon mellom prosessorene i et system og prosessorene i et annet, skaper anvendelse av en eneste prosessor som kommunikasjonsledd, og som all kommunikasjon mellom prosessorene kanaliseres gjennom, en flaskehals som bidrar til å begrense den datamengde som i et gitt tidsrom kan behandles. Da høy overføringshastighet og høy databehandlingstakt alltid er ønskelige parametere i ethvert datamaskinsystem, er det åpenbart behov for et nettverk av flere systemer, som virker slik at kommunikasjonen mellom systemene gjennomføres på en rask og effektiv måte.
Det er derfor et formål for foreliggende oppfinnelse å frembringe et nettverk av multiprosessor-systemer hvor kommunikasjonen mellom de forskjellige systemer foregår på en sådan måte at ulempene ved tidligere kjent teknikk overvinnes, og hvor kommunikasjonen kan foregå hurtigere enn det som tidligere har vært mulig, uten behov for å utnytte en spesiell prosessor for å styre kommunikasjonen.
Det er et ytterligere formål for oppfinnelsen at kommunikasjonen mellom de forskjellige multiprosessorer utføres ved hjelp av midler som tillater flere redundante overf©ringsveier for derved å oppnå forbedret pålitelighet.
Foreliggende oppfinnelse gjelder således et nettverk av multiprosessor-systemer og som omfatter flere multiprosessor-systemer som hvert enkelt omfatter minst en prosessor tilkoblet en databuss som forbinder prosessorene innbyrdes i det enkelte multiprosessor-system, samt flere grensesnittenheter som hver er tilkoblet en av nevnte databusser, idet: - hver av grensesnittenhetene også er forbundet med minst en annen av grensesnittenhetene ved hjelp av minst en datakjede, således at hver grensesnittenhet har egenskapen av å være forbundet med alle de andre grensesnittenhetene i
nettverket, og
- hver av grensesnittenhetene omfatter:
. styreorganer for styring av overføringen av meldingspakker til og fra vedkommende grensesnittenhet over den datakjede som forbinder grensesnittenheten med dens nabogrensesnittenhet, samt over den databuss som vedkommende grensesnittenhet er tilkoblet, samt . en bufferhukommelse for midlertidig lagring av meldingspakker som skal overføres til en hvilken som helst prosessorer i nettverket.
På denne bakgrunn av kjent teknikk fra GB-patentsøknad nr.
2 062 914, har da nettverket av multiprosessor-systemer i henhold til foreliggende oppfinnelse som særtrekk at: - hver av grensesnittenhetene befinner seg i et knutepunkt mellom en databuss og en datakjede, slik at hver grensesnittenhet utgjør en knutepunkt-grensesnittenhet i nettverket, - nevnte bufferhukommelse har et antall lagersteder som er inndelt i grupper av lagersteder, idet hver enkelt gruppe tilsvarer en bestemt av prosessorene i nettverket, og som er bestemmelsesprosessoren for alle meldingspakker anbragt
i vedkommende gruppe av lagersteder, og
- nevnte styreorganer også omfatter utstyr for å avgjøre når en gruppe av lagersteder i bufferhukommelsen i vedkommende knutepunkt-grensesnittenhet, og som tilsvarer en bestemt bestemmelsesprosessor, er full, og for å stanse overføringen av nevnte meldingspakker beregnet for denne bestemmelsesprosessor så lenge nevnte gruppe av lagersteder er full.
I et sådant nettverk av flere systemer kan en hvilken som helst prosessor i et hvilket som helst av systemene kommunisere med enhver annen prosessor i et hvert annet system i nettverket. Hvert multiprosessor-system, eller hver multiprosessorgruppe, har et tilordnet knutepunktutstyr, og gjennom dette knutepunktutstyr er systemet forbundet over datakjeder med andre knutepunktenheter som er tilordnet andre multiprosessor-systemer.
Utstyret i hvert knutepunkt grenser således til en felles databuss for multiprosessorene i det system som vedkommende knutepunktutstyr er tilordnet samt til de datakjeder som forbinder systemene innbyrdes i nettverket. Ved siden av å inneholde datakretser, maskinvare og programvare for å styre og dirigere informasjonsoverføringen, inneholder utstyret i hvert knutepunkt en rekke grupper av lagersteder i en bufferhukommelse, idet hver gruppe er tilordnet en bestemt prosessor i nettverket samt har kapasitet til å lagre flere pakker med informasjon.
Når som helst en prosessor i et hvilket som helst system i nettverket ønsker å sende informasjon til en annen prosessor i et annet system i nettverket, overføres informasjonen fra avsenderprosessoren over prosessorbussen under styring fra et knutepunktutstyr tilordnet vedkommende avsenderprosessors system, til den gruppe av lagersteder i dette knutepunkt-utstyrs bufferhukommelse som tilsvarer bestemmelsesprosessoren. Under styring fra vedkommende knutepunktutstyr overføres deretter informasjonen gjennom datakjeden til det knutepunktutstyr som ligger nærmest i nettverket, og som så anbringer informasjonen i den gruppe av lagersteder i sin bufferhukommelse som tilsvarer bestemmelsesprosessoren.
Informasjonen overføres over påfølgende knutepunkter på den nettopp beskrevne måte inntil den av utstyret i et mottagende knutepunktet gjenkjennes å være bestemt for en prosessor i det multiprosessor-system som er tilordnet dette mottagende knutepunktutstyr. Informasjonen overføres så over en lokal prosessorbuss i vedkommende system under styring fra sist-nevnte knutepunktutstyr, fra den gruppe av lagersteder i bufferhukommelsen hvor informasjonen ble anbragt, til bestemmelsesprosessoren .
Knutepunktene kan være sammenkoblet på en av flere måter, blant annet lineært i et åpent kjedearrangement, et stjerne-eller hjulekearrangement, eller eventuelt en hybrid kombina-sjon, som f.eks. i et redundant koblingsmønster. Hvert multiprosessor-system er fortrinnsvis tilordnet mer enn ett knutepunkt, for derved å gi muligheter for redundante overføringsveier således at nettverket får større feiltoleranse.
For å styre informasjonsflyten gjennom nettverket kommuniserer utstyret i hvert knutepunkt med utstyret i sine nærliggende naboknutepunkter for å angi tilgjengeligheten av bufferlagringsplass. Sending av start/stopp-meldinger sikrer at den bufferlagringsplass som er tilordnet en bestemt bestemmelsesprosessor i et hvilket som helst gitt knutepunktutstyr, er tilgjengelig for lagring av eventuelle meldingspakker som er klar for overføring til vedkommende knutepunkt. Meldingspakker som er bestemt for en gitt prosessor kan nummereres i rekkefølge og bufferne styres på FIFU-måte (først inn, først ut) for å tillate feilpåvisning og gjenvinning.
I en foretrukket utførelse av foreliggende oppfinnelse er enhetene i knutepunktene innbyrdes forbundet ved hjelp av ringformede datakjeder, idet hver enhet ved hjelp av en lokal databuss også er tilknyttet en gruppe multiprosessorer, som i seg selv utgjør et multiprosessor-system. Hver multiprosessorgruppe er forbundet med to gruppemoduler, som hver i sin tur er forbundet med to ytterligere nærliggende nabogruppe-moduler ved hjelp av to dobbeltrettede nabokjeder, som således danner en dobbel toveis-ring.
En gruppemodul gjør tjeneste som et grensesnitt-knutepunkt ved å forbinde hver multiprosessorgruppe med de seriekoblede datakjeder samt med vedkommende interne databuss mellom prosessorene i det lokale system. Da det er to overføringsret-ninger rundt gruppemodulringen, er det anordnet et separat sett av buffere i gruppemoduleno for hver retning (hhv. høyre og venstre) rundt ringen. Meldingspakker for en hvilken som helst prosessor i nettverket sendes rundt ringen i en gitt retning og i rekkefølge over én gruppemodul av gangen.
Da det foreligger to ringer og to mulige overføringsret-ninger rundt hver ring, er det således opprettet fire mulige overføringsveier. Systemet vil forsøke å sende sine meldinger ' over den kortest mulige overføringsrute. Hvis det foreligger en feil i den kommunikasjonsvei som er valgt, vil systemet sende sin melding over en alternativ, fungerende rute.
For effektivt å styre kommunikasjonen mellom prosessorene, utnytter styrekretsene for bufferhukommelsene øvre og nedre terskler i bufferkapasitet, og når disse terskelgrenser nås bringes en gruppemoduls regulatorkrets til å gi beskjed til sine naboenheter om henholdsvis å opphøre og å sette igang utsendelse av pakker til vedkommende spesielle bestemmelsessted.
En algoritme er oppstilt for å velge hvilke meldingspakker som til enhver tid skal sendes mellom prosessorene for å unngå favorisering av en prosessor eller prosessorgruppe fremfor andre.
Ytterligere trekk ved den foreliggende oppfinnelse vil fremgå av den etterfølgende detaljerte beskrivelse av et foretrukket utførelseseksempel på oppfinnelsen, som her beskrives i forbindelse med datamaskinutstyr som omfatter flere multiprosessor-systemer av den type som er angitt i US-patentskrift nr. 4 228 496, som således inngår som referanse i denne beskrivelse, skjønt det vil være åpenbart for fagfolk på området at oppfinnelsen også uten videre er anvendbar for multiprosessor-systemer med annerledes utforming.
På de vedføyde tegninger viser:
Fig. 1 et multiprosessor-system av en art som egner seg for
anvendelse i et nettverk i henhold til oppfinnelsen, fig. 2 et multiprosessorsystem som vist i fig. 1, men modi-fisert i henhold til foreliggende oppfinnelse,
fig. 3 multiprosessor-systemer som vist i fig. 2, satt inn
i ringformede nettverk i henhold til oppfinnelsen, fig. 4 et detaljert blokkskjema over en gruppemodul i
henhold til foreliggende oppfinnelse,
fig. 5 et diagram av et meldingspakkeformat som kan anvendes
ved foreliggende oppfinnelse,
fig. 6 et flytdiagram av tomgangsrutinen for en foretrukket
utførelse av foreliggende oppfinnelse,
fig. 7 et flytdiagram av den lokale INQ-servicerutine,
fig. 8 et flytdiagram av den lokale OUTQ-servicerutine,
fig. 9 et flytdiagram av den sekvensielle INQ-servicerutine, fig. 10 et flytdiagram av den sekvensielle OUTQ-servicerutine, og
fig. 11 tilstandsdiagrammet og overgangstabellen for en
gruppemodulregulator.
Fig. 1 viser prosessorene 10, samt kommunikasjonsleddene mellom dem, i et multiprosessor-system hvor hver av prosessorene er forbundet med en felles X-databuss 12 og en felles Y-databuss 14. Disse prosessorbusser 12 og 14 er forbundet med hver sin prosessorbuss-regulator 16 (IPB-regulator - Interprocessor Bus Controller) som styrer dataflyten og andre funksjoner i prosessorene 10 på den måte som er angitt i US-patentskrift nr. 4 228 496 som er nevnt ovenfor.
Som det fremgår av fig. 1 kan hver prosessor 10 (PQ - Pn) kommunisere innbyrdes over felles databusser 12 eller 14, som danner redundante overf©ringsveier for å tillate systemet å være i drift selv ved komponentsvikt i en del av systemet. Når det gjelder beskrivelsen av det foretrukne utførelses-eksempel, vil antall prosessorer i hvert enkelt multiprosessor-system være 16 (n = 16), men fagfolk på området vil erkjenne at det med mindre modifikasjoner av instruksjonsord-feltlengde og registerlengde, samt andre åpenbare maskinvare-/programvare-forandringer for tilpasning til andre prosessor-antall, kan systemet i henhold til foreliggende oppfinnelse uten videre arbeide med et antall prosessorer som er større eller mindre enn 16. Det er under henvisning til et multiprosessor-system av den art som er angitt i fig. 1 at foreliggende oppfinnelse vil bli forklart, skjønt fagfolk på området vil erkjenne at oppfinnelsen like godt kan bringes til anvendelse ved multiprosessor-systemer som ikke har flere redundante overføringsveier slik som det angitte system i US-påtentskrift nr. 4 228 496. Det vil imidlertid forstås at et sådant nettverk ikke vil ha like mange mulige dataover-føringsveier.
Det henvises nå til fig. 2 som viser den grunnleggende bygge-kloss for et systemnettverk oppbygd i samsvar med foreliggende oppfinnelse. Som i fig. 1 omfatter multiprosessor-systemet i fig. 2 et antall prosessorer 10 som står i forbindelse med henholdsvis en felles X-databuss 12 og en felles Y-databuss 14. Til forskjell fra systemet i fig. 1 benytter imidlertid multiprosessor-systemet i fig. 2 ikke en IPB-regulator 16 som grensesnitt, hverken for X-databussen 12 eller Y-databussen 14. Hvert multiprosessor-system som anvendes i henhold til foreliggende oppfinnelse benytter i stedet henholdsvis en X-gruppemodul 18 og en Y-gruppemodul 20 som grensesnitt til overføringsnettet, idet X-gruppemodulen 18 er forbundet med X-databussen 12 og Y-gruppemodulen 20 er forbundet med Y-databussen 14. Segmenter av en sekvensiell X-datakjede 22 til venstre samt av en sekvensiell X-datakjede 24 til høyre er vist å utgå fra X-gruppemodulen 18, mens lignende segmenter for sekvensielle Y-datakjeder 26 og 28 til henholdsvis venstre og høyre kan sees å utgå fra Y-gruppemodulen 20. X- og Y-gruppemodulene 18, 20 er av samme utførelse og danner grunn-laget for et dobbelt ringnett.
Som det fremgår klarere i fig. 4, inneholder såvel X-gruppemodulen 18 som Y-gruppemodulen 20 en prosessorbuss-regulator (IPB-regulator) 30 med direkte grensesnitt til X-databussen 12 eller Y-databussen 14 mellom prosessorene. Arbeidsfunksjonen for IPB-regulatoren 30 i forbindelse med foreliggende oppfinnelse, er den samme som angitt i US-patentskrift nr. 4 228 496 for den prosessorbuss-regulator som der er omtalt og som har som formål å regulere den lokale kommunikasjon over databussforbindelsen mellom prosessorene, bortsett fra de følgende tre forhold.
I det multiprosessor-system som er angitt i nevnte US-patent-skrif t nr. 4 228 496 blir de enkelte prosessorer 10 utspurt i rekkefølge for å fastslå om noen av dem har en meldning som skal sendes til andre prosessorer 10. Denne sekvensielle ut-spørring innledes av IPB-regulatoren når et signal med beteg-nelsen SNDREQ mottas av IPB-regulatoren i styrebit-avsnittet fra prosessorenes felles databuss, og som angir at en prosessor har en meldingspakke å sende til en annen prosessor.
I henhold til foreliggende oppfinnelse antas imidlertid SNDREQ-signalet alltid å foreligge. Følgene av dette er at systemprosessorene kontinuerlig utspørres for å fastslå om noen av dem har en eller flere meldingspakker å sende til en annen prosessor i samme system eller i et hvilket som helst annet system i nettverket. Arbeidsfunksjonen med hensyn til dette trekk ved IPB-regulatoren 30 og gruppemodulen 18 vil bli nærmere omtalt i forbindelse med fig. 4 og fig. 11.
I tillegg utspørres prosessorene fortrinnsvis ikke sekvensielt i motsetning til den sekvensielle utspørring som benyttes i det system som er angitt i US-patentskrift nr. 4 228 496, skjønt et sekvensielt utspørringsopplegg også ville fungere i forbindelse med foreliggende oppfinnelse.
En tredje forskjell er den ytterligere evne IPB-regulatoren i henhold til foreliggende oppfinnelse har til å sende og motta meldingspakker fra ytre kilder, hvilket vil bli nærmere beskrevet i det følgende.
Multisystem-nettverket i henhold til foreliggende oppfinnelse er sammensatt av flere systemer av den art som er angitt i fig. 2 samt sammenkoblet til å danne et nettverk hvor en hvilken som helst prosessor i nettverket er i stand til å kommunisere med enhver annen prosessor i nettverket med høy informasjonsoverføringstakt, slik som f.eks. 1 megabyte pr. sekund, sammenlignet med den typiske overføringstakt på bare 7.000 bytes pr. sekund over vanlige kommunikasjonskjeder. Et sådant sammenstilt nettverk er vist i fig. 3.
Det henvises nå til fig. 3, hvor det er vist et dobbelt toveis ringformet nettverk av flere multiprosessor-systemer, som hver omfatter prosessorer 10 innbyrdes forbundet med X-og Y-databusser 12, 14 som hver er tilsluttet henholdsvis en X-gruppemodul 18 og en Y-gruppemodul 20. Skjønt bare fire sådanne systemer er vist i fig. 3 og sammenkoblet til et dobbelt toveis ringnett over X-gruppemodulene 18a, 18b, 18c og 18n samt over Y-gruppemodulene 20a, 20b, 20c og 20n, kan det i den nå foretrukne utførelse være opp til 14 multiprosessor-systemer oppstilt i et ringmønster av samme utfør-else som angitt i fig. 3, da gruppenummer 0 er reservert for å angi lokal dataoverføring over en intern databuss og gruppenummer 15 er reservert for overvåkning og styring av gruppemodulene. Et større eller mindre antall multiprosessor-systemer kan anvendes uten at rammen for foreliggende oppfinnelse overskrides. Fagfolk på området vil.ut fra denne utredning lett forstå hvorledes et større eller mindre antall multiprosessor-systemer kan sammenstilles i henhold til foreliggende oppfinnelse.
I fig. 3 er den ene ring i dobbeltringmønsteret vist med knutepunkter i X-gruppemodulene 18, mens den annen ring er vist med knutepunkter i Y-gruppemodulene 20. X-gruppemodulene er sammenkoblet i serie ved hjelp av datakjeder, nemlig X-kjedene 22a, 22b, 22c og 22d til venstre og X-kjedene 22a, 22b, 22c og 22d til høyre. Som antydet ved sin benevning, overfører hver av datakjedene 22 og 24 data bare i en retning. På lignende måte er Y-gruppemodulene 20 også sammenkoblet over datakjeder, nemlig Y-kjedene 26a, 26b, 26c og 26d mot venstre og Y-datakjedene 28a, 28b, 28c og 28d mot høyre. Det foreligger således fire overf©ringsveier som kan anvendes for overføring av informasjon fra en gruppemodul til en annen, nemlig langs en hvilken som helst av datakjedene 22, 24, 26 og 28.
Datakjedene 22, 24, 26 og 28 utgjøres fortrinnsvis av optiske fiberkabler beregnet for høy overføringshastighet, slik det er kjent innen datatransmisjonsanvendelser. Sådanne kabler forbindes med gruppemodulene 18 og 20 ved hjelp av vanlige fiberoptiske grensesnitt (ikke vist). Fagfolk på området vil forstå at datakjedene 22, 24, 26 og 28 også kan være elek-triske ledere i stedet for fiberoptiske kabler, og vil også forstå hvorledes hver av disse kjeder anvendes uten behov for ytterligere beskrivelse her.
Siden flere konkrete overf©ringsveier kan anvendes for kommunikasjon mellom gruppemodulene, vil det ikke bare være mulig å oppnå et mer pålitelig system på grunn av de opprettede redundante dataoverf©ringsveier, men også at disse overf©ringsveier kan arbeide innbyrdes uavhengig, slik det vil bli nærmere vist, samt anvendes samtidig og således gi opptil fire ganger den dataoverf©ringskapasitet som kan oppnås med bare en eneste ringbane.
Styring og regulering av den informasjon som formidles mellom systemene over ringnettet, dvs. fra en prosessor 10 i et av systemene til en annen prosessor 10 i et annet system, ut-føres av de logiske kretser i gruppemodulene 18 og 20.
Hver X-gruppemodul 18 i et multisystem-nettverk sammensatt i henhold til foreliggende oppfinnelse, kommuniserer direkte bare med sine to nærmeste nabo-gruppemoduler. X-gruppemodulen 18b som er vist i fig. 3, kommuniserer f.eks. bare med X-gruppemodulen 18a umiddelbart til venstre samt med X-gruppemodulen 18c umiddelbart til høyre. På lignende måte kommuniserer Y-gruppemodulen 20b direkte.bare med Y-gruppe modulene 20a og 20b, henholdsvis umiddelbart til venstre og høyre.
Da X- og Y-gruppemodulene er av samme utførelse og virker på samme måte, vil arbeidsfunksjonen for det foreliggende nettverk bare bli forklart under henvisning til X-gruppemodulene 18, idet det vil forstås at denne forklaring i like høy grad gjelder overføring av meldingspakker i begge retninger rundt ringen av X-gruppemoduler.
Da hver gruppemodul 18 bare kan kommunisere direkte med sine to nærmeste nabomoduler, vil et overkomplisert regulerings-system være unødvendig. En hvilken som helst gruppemodul 18 kan kommunisere ved å sende ut og motta meldingspakker i tre retninger, nemlig i retning av sin nabo til venstre, i retning av sin nabo til høyre, samt i retning av prosessoren 10 på den lokale interne prosessorbuss 12 som vedkommende gruppemodul er tilsluttet.
Som et eksempel og for enkelthets skyld henvises det til at gruppemodulen 18b i fig. 3 kan sende meldingspakker til gruppemodulen 18a over den seriekoblede X-datakjede 22b til
venstre, til gruppemodulen 18c over den seriekoblede X-datakjede 24c til høyre, samt til en hvilken som helst prosessor 10 som er tilkoblet modulens egen lokale X-prosessorbuss 12b.
Da enhver prosessor kan kommunisere med hvilken som helst annen prosessor, må utstyret i hvert knutepunkt være i stand til å håndtere trafikk som utsendes fra og er bestemt for en hvilken som helst prosessor, og utstyr må være anordnet for å effektivt regulere disse enorme muligheter for informasjons-overføring.
I henhold til foreliggende oppfinnelse styrer gruppemodulen 18b, som eksempel på arbeidsfunksjonen for alle gruppemoduler 18, alle sådanne meldingspakkeoverføringer ved hjelp av en intern lokal bufferhukommelse. Denne bufferhukommelse er anordnet slik at hver prosessor i hele det ringformede nettverk har et visst tilordnet lagringsområde i bufferhukommelsen, og med lagringskapasitet for et fast antall meldingspakker. Halvparten av denne lagringskapasitet er tilordnet dataover-føringer i retning mot venstre, mens den annen halvpart er tilordnet dataoverføringer i retning mot høyre.
Den lagringsplass som er tilordnet hver prosessor er anordnet som en FIFU-kø, således at meldingspakker bestemt for en gitt prosessor avleveres i samme rekkefølge som de sendes. En eneste sekvensprøve kan anvendes av bestemmelsesprosessoren for å fastlegge om den har mottatt alle meldingspakker som er avsendt til den, hvorved det oppnås feilpåvisning og gjenvinning .
I den foretrukne utførelse vil bufferhukommelsesområdet for hver prosessor i nettverket og i hver retning rundt nettverkringen kunne inneholde 16 meldingspakker, skjønt det vil lett forstås av fagfolk på området at mindre eller større lagringskapasitet kan oppnås ved passende og åpenbare forandrin-ger av maskinvare og programvare. Dette trekk ved oppfinnelsen og den følgende beskrivelse vil lett kunne forstås under henvisning til fig. 4.
Av fig. 4 fremgår det at gruppemodulen 18b kan bestå av fire hovedfunksjonsblokker, nemlig en IPB-regulator 30, en gruppemodulregulator 32, en bufferhukommelse 34 og en sekvensiell datakjederegulator 36.
IPB-regulatoren 30 håndterer all lokal meldingspakkeover-føring mellom prosessorer som er tilkoblet den interne X-prosessorbuss 12b (lokale overføringer), samt pakkeover-føringer inn i og ut av ringen til og fra en hvilken som helst prosessor tilknyttet den interne prosessorbuss 12b. Gruppemodul-regulatoren 32 styrer og regulerer all pakkeover-føring inn i og ut av knutepunktutstyret som omfatter gruppemodulen 18b og bufferhukommelsen 34. Den styrer også arbeidsfunksjonen for IPB-regulatoren 30 med hensyn til overføring av meldingspakker utenfor området av prosessorer tilkoblet den interne prosessorbuss 12b, samt overføring av meldingspakker inn i og ut av knutepunktet over den sekvensielle datakjederegulator 36, som sørger for den faktiske overføring av meldingspakker mellom vedkommende knutepunkt og de seriekoblede datakjeder 22 og 24.
Arbeidsfunksjonen for gruppemodulen 28b kan best forstås under henvisning til dens virkemåte ved utsending og mottagelse av meldingspakker.
Når pakkene skal tas ut av bufferhukommelsen 34, kan de ha to mulige bestemmelsesteder, nemlig enten en prosessor tilknyttet den lokale X-prosessorbuss 12b eller en bufferhukommelse 34 i en av nabogruppemodulene 18a eller 18c.
Når en meldingspakke skal sendes fra bufferhukommelsen 34 til en nabogruppemodul 18a eller 18c, trer den sekvensielle data-kj ederegulator 36 i virksomhet. Denne datakjederegulator 36 omfatter et grensesnitt 38 til gruppemodulregulatoren såvel som annen maskinvare for utsendelse og mottagelse av pakker.
Nærmere bestemt omfatter datakjederegulatoren 36 venstre og høyre OUTQ-buffer 40 og 42, venstre og høyre parallell/serie-omformer og CRC-generatorer (for syklisk redundans-kontroll) 44 og 46, samt venstre og høyre sender 48 og 50, venstre og høyre mottager 58 og 60, venstre og høyre serie/parallell-omformer og CRC-kontrollør 62 og 64, samt venstre og høyre INQ-buffer 66 og 68. CRC-generatoren frembringer et CRC-16 kontrollord for feilpåvisningsformål i forbindelse med de overførte data. Dette kontrollord overføres som det siste ord i datarammen. En CRC-kontrollør ved mottageren kontrollerer at den mottatte dataramme er feilfri ved å anslå et CRC-ord tvers over hele datarammen (innbefattet det utsendte CRC-ord) samt derpå å undrsøke om det anslåtte ord er 0. Sådan CRC-kontrollteknikk er velkjent i dette fagområde.
Da høyre og venstre deler av den sekvensielle datakjederegulator 36 er like, vil bare den venstre del bli omtalt, idet den høyre del har nøyaktig samme arbeidsfunksjon.
Meldingspakker som overføres over de sekvensielle datakjeder er innhyllet i en ramme. I tillegg til vedkommende meldingspakke omfatter hver sådan ramme to styreord og et CRC-ord. Styreordene anvendes for dataflyt-styring, særlig for å starte og stoppe meldinger. CRC-ordet anslås over hele datarammen for å muliggjøre påvisning av feil ved overføringen av datarammen til mottageren. Det foreligger også en annen rammetype, nemlig en såkalt ren styrings-ramme, som i stedet for en datapakke kan inneholde 16 ytterligere styreord (totalt 18 styreord og 1 CRC-ord). Sådanne rammer for rene styringsformål kan anvendes når flere enn to styreord på et gitt tidspunkt må sendes til en naboenhet, når det er behov for å sende ut styreord uten at det foreligger datapakker som skal sendes, eller periodisk når styreord sirkuleres for opp-datering av nettverket som helhet. I en foretrukket utførelse sendes en ramme utelukkende for styringsformål hvert 10. millisekund, enten det er behov for en sådan ramme eller ikke, for å sikre mot mulig tap av et start-styrende ord.
Den venstre OUTQ-buffer kan være en dobbeltbuffer med kapasitet til å lagre to meldingspakker som venter på overføring over venstre sekvensdatakjede 22. Når den ene eller begge av bufferens lagringsseksjoner er tom, bekreftes dette ved et flagg som angir at bufferen ikke er full og som leses av gruppemodulregulatoren 32. Når begge lagringsseksjoner i den venstre OUTQ-buffer 40 er fulle, anvises ikke dette flagg og de meldingspakker som bufferen inneholder sendes ut, slik som det vil bli nærmere forklart senere.
Når imidlertid venstre OUTQ-buffer 40 har anvist sitt flagg om at bufferen ikke er full, vil gruppemodulregulatoren 32 forsøke å hente en meldingspakke fra bufferhukommelsen 34
for å fylle bufferen 40 for overføring til venstre sekvensdatakjede 22. For dette formål benytter grupperegulatoren 32 informasjon fra en "klar-liste" som er lagret i dens styrehukommelse 52. Denne klar-liste kan være en dobbelt kjedet liste, slik det vil være velkjent innenfor dette fagområde,
og hvor hver post på listen har en referanseadresse til den foregående post og til den påfølgende post på listen, idet listen fungerer som beskrevet nedenfor.
Når en meldingspakke har nådd frem til gruppemodulen 18b, undersøker gruppemodulregulatoren 32 det ord i pakken som inneholder identifisering av bestemmelsesgruppens nummer og bestemmelsesprosessorens nummer, som er påført pakken. Sammen med et bit som angir bevegelsesretningen for pakken rundt nettverkringen, anvendes så disse nummer som adresse i klar-listen i styrehukommelsen 52. På denne adresse befinner det seg en tabell over en rekke hukommelseslagersteder. Et sted i tabellen er det en bufferhukommelse-adresse som utpeker den eldste meldingspakke i FIFU-køen. Den bufferhukommelse-adresse som peker ut den bakre ende av FIFU-køen, hvor den neste meldingspakke skal anbringes, utledes ved å addere pakketellerverdien (vil bli forklart), modulo 16, til forenden av køpekeren. Et annet sted i tabellen inneholder en fortegnelse over antallet meldingspakker (pakketellerverdien) som er lagret i bufferhukommelsen 34 og som er bestemt for vedkommende bestemmelsesgruppe og -prosessor. Denne tellerverdi trinnforskyves av gruppemodulregulatoren 32 når en pakke anbringes i bufferhukommelsen 34.
De øvrige to stedene i klar-listens tabell som lagres i styrehukommelsen 52, inneholder adressen i styrehukommelsen 52 for den forutgående post og den nærmest påfølgende post i styrehukommelsens klar-liste.
Et annet lagringssted i styrehukommelsen 52 har en "første post"-peker som henviser til adressen for den første post på klar-listen. Det er til dette lagringssted gruppemodulregulatoren henvender seg når den ønsker å anbringe en meldingspakke i venstre OUTQ-buffer 40.
Det er fra dette lagringssted regulatoren henter ut adressen i bufferhukommelsen 34 til den meldingspakke som skal sendes (forenden av køpekeren), henvender seg til denne adresse og tar ut vedkommende meldingspakke og overfører denne ti.i venstre OUTQ-buffer 40, for deretter å nedtelle pakketellerverdien, innstille forenden av køpekeren, samt innstille første-post-punktet til den verdi som finnes i neste posts lagringssted. Hvis den nedtelte pakketellerverdi har passert den nedre terskelverdi, frembringer gruppemodulregulatoren 32 en start-melding som sendes til dens venstre nabogruppemodul og tilbakestiller vedkommende bit i en INQ/STAT-tabell, slik det vil bli nærmere beskrevet nedenfor. Hvis den nedtelte pakketellerverdi har nådd null, fjerner gruppemodulregulatoren 32 den utpekte gruppe og prosessor fra klarlisten, da den ikke har noe å sende og systemet vil unngå unødvendig avspørring.
Da venstre OUTQ-buffer 40 er en dobbeltbuffer, kan gruppemodulregulatoren 2 fylle halvparten av bufferen med en meldingspakke, mens venstre CRC-generator og parallell/- serieomformer 44 samt venstre sender 48 sender ut den pakke som inneholdes i den annen halvdel av venstre OUTQ-buffer 40. Venstre CRC-generator og parallell/serieomformer 44 samt venstre sender 48 klokkestyres av en intern overføringsklokke (ikke vist) på vanlig måte.
Hvis et styreord i en innkommende ramme inneholder en stopp-melding fra den nærmeste naboenhet til venstre for gruppemodulen 18, gjenkjennes dette stoppord av gruppemodulregulatoren 32, som derved henter ut den tabell som er tilordnet vedkommende bestemmelsegruppe og -prosessor fra styrehukommelsen, samt fjerner denne effektivt fra klar-listen. Dette oppnås på en måte som er en velkjent teknikk for å fjerne poster fra en dobbelt kjedet liste.
Gruppemodulen 18b er også i stand til å overføre en pakke til en hvilken som helst prosessor som er tilknyttet dens egen lokale prosessorbuss 12b.
Når en sådan meldingspakke tas ut fra bufferhukommelsen 34, erkjennes dette, og pakken overføres til IPB-regulatoren 30 samt anbringes i det lagringssted i OUTQ-bufferen 54 som er tilordnet vedkommende prosessor tilknyttet den lokale prosessorbuss 12b. For hver prosessor tilknyttet den lokale prosessorbuss 12b, har hvert OUTQ-bufferlagringssted lagringskapasitet for en enkelt meldingspakke.
Et OUTQ/STAT-register 56, som er et register med en bitposi-sjon for hvert lagersted i OUTQ-bufferen 54, er tilordnet OUTQ-bufferen 54. Når gruppemodulregulatoren ønsker å overføre en pakke til en prosessor tilknyttet den lokale databuss, undersøker den først innholdet i det OUTQ/STAT-register som er tilordnet vedkommende prosessor. Hvis den tilsvarende bit er innstilt, betyr dette at den tilhørende OUTQ-buffer er full og at gruppemodulregulatoren må vente til dens foreliggende meldingspakke er blitt overført til den lokale bestemmelsesprosessor, før neste pakke kan anbringes i vedkommende lagersted i OUTQ-bufferen 54. Hver gang en overføring fra OUTQ-bufferen 54 til en lokal bestemmelsesprosessor finner sted, tilbakestilles dens tilsvarende OUTQ/STAT-bit for å signalisere beredskap til å motta en annen meldingspakke for overføring til en lokal bestemmelsesprosessor over den interne lokale prosessorbuss 12b.
Meldingspakkene ankommer til gruppemodulen 18b over høyre og venstre mottager 58 og 60, samt gjennom venstre og høyre CRC kontrollerende serie/parallell-omformere 62 og 64. Ankommende pakker selvklokkes gjennom mottagerne 58 eller 60, idet de er kodet i et format av Manchester-type eller en annen selvklok-kende kode som er kjent innen fagområdet.
Så snart de er omformet til parallellform, anbringes de inn-komne pakker i INQ-buffere 66 og 68. INQ-bufferen 66 kan være en dobbeltbuffer utført på sådan måte at den ene del av bufferen kan fylles av CRC-kontrollørens serie/parallell-omformer 62 mens den annen del tømmes av gruppemodulregulatoren 32. INQ-bufferne 66 og 68 er av samme utførelse og har lik arbeidsfunksjon.
Gruppemodulregulatoren 32 avleser bestemmelsesgruppens og
-prosessorens nummer fra den innkommende meldingspakke. Hvis denne pakke ikke er bestemt for å passere gjennom en annen gruppemodul 18, men er adressert til en prosessor 10 tilknyttet vedkommende lokale interne prosessorbuss, hvilket vil fremgå ved å sammenligne bestemmelsesgruppens nummer i pakken med gruppenummeret for vedkommende gruppemodul, vil forskjellige hendelser finne sted. En lokal IPB-statusliste oppsøkes ved anvendelse av prosessornummeret som adresse. Den lokale IPB-statusliste inneholder for hver prosessor: 1) adressen i bufferhukommelsen som peker ut den eldste meldingspakke i FIFU-køen, og
2) tellerverdien for antall pakker i køen.
En meldingspakke lagres i bufferhukommelsen 34 på det lagersted som er spesifisert ved en adresse i den tabell som utledes fra den lokale IPB-statusliste, og pakketellerverdien i tabellen økes i trinn. Hvis den nye tellerverdi har passert den øvre terskel, frembringes en stopp-melding for å sendes i vedkommende retning, og tilsvarende bit i INQ/STAT-tabellen innstilles slik det vil bli beskrevet senere. Hvis den tidligere pakketellerverdi var null, anvises et flagg som angir at bufferen for vedkommende prosessor har noe å sende ut. Dette flagg befinner seg i et ord i styrehukommelsen 52, som har et 1-bits flagg for hver prosessor tilknyttet den lokale interne prosessorbuss 12b. Dette "lokalt klar"-flaggord som angir hvilken lokal prosessor som har pakker å motta fra gruppemodulen, anvendes i sammenheng med OUTQ/STAT-ordet
(tidligere beskrevet) for å fastlegge når en pakke skal overføres fra bufferhukommelsen til OUT-køen for en bestemt lokal prosessor. Hver gang en pakke overføres fra bufferhukommelsen til en OUT-kø, nedtelles pakketellerverdien (for vedkommende lokale prosessor) i den lokale IPB-statusliste. Når pakketellerverdien når null, tilbakestilles det anviste flaggbit for vedkommende prosessor i flaggordet for lokal beredskap, hvilket angir at det ikke lenger foreligger noen pakker å sende til denne lokale prosessor. Når tellerverdien faller under en nedre terskelverdi, frembringes dessuten en start-melding (på tilsvarende måte som ved overføringer over sekvenskjeden).
Hvis den innkommende pakke er bestemt for en annen gruppe-modul 18, anvendes numrene for bestemmelsesgruppe og -prosessor som adresse for tilgang til vedkommende tabell i klar-listen i styrehukommelsen 52. Meldingspakken anbringes i den adresse i bufferhukommelsen 34 som er spesifisert i klar-liste-tabellen, og pakketellerverdien (i tabellen) trinnforskyves av gruppemodulregulatoren 32. Hvis antall pakker i bufferen nå overskrider den øvre terskel, frembringer gruppemodulen 32 en stoppmelding for å sendes i den retning som meldingspakken kom fra, og innstiller den tilsvarende bit i INQ/STAT-tabellen, slik det vil bli beskrevet nedenfor. Hvis det tidligere antall lagrede pakker på vedkommende lagersted i bufferhukommelsen 34 var null, vil den bestemmelsesgruppe og -prosessor som den innkommende meldingspakke er bestemt for, ikke være på klar-listen, og gruppemodulregulatoren 32 vil da føre den inn i den dobbelt kjedede klar-liste umiddelbart etter det lagersted som er spesifisert av den peker som angir første post. Hvis imidlertid en stopp-melding er utsendt fra den gruppemodul som pakken deretter skal sendes til, vil denne post ikke bli innført i klar-listen.
Når en start-melding er mottatt for en bestemt bestemmelsesprosessor, vil vedkommende prosessor bli satt opp på klar-listen, forutsatt at pakketellerverdien ikke er null.
Det frembringes også meldingspakker på den lokale interne prosessorbuss 12b for overføring over nettverksringen. Disse håndteres først av IPB-regulatoren 30.
Under utspørringssyklusen opptrer det første ord i en pakke på den interne prosessorbuss 12b og IPB-regulatoren gjenkjen-ner dette ord som en anmodning om en ekstern overføring, så sant nummeret for bestemmelsesgruppen ikke er null. Nummeret for bestemmelsesgruppen og -prosessoren anvendes av IPB-regulatoren som adresse inn i en INQ/STAT-tabell 7 0 som befinner seg i IPB-regulatoren. Hvis en stopp-melding er utsendt med hensyn til det bufferlagersted som er det tilsiktede hvile-sted for meldingspakken, vil et bit bli innstilt ved vedkommende adresse i INQ/STAT-tabellen 70 som er utpekt av det første ord i pakken og vil, ved erkjennelse på dette tidspunkt, hindre at en overføring finner sted. Ingen overføring av meldingspakker til INQ-bufferen 7 2 kan finne sted mens gruppemodulregulatoren 32 adresserer INQ/STAT-tabellen 70.
Hvis imidlertid en stoppbit for denne pakkes bestemmelsessted ikke er blitt innstilt i INQ/STAT-tabellen 70, vil IPB-regulatoren se etter om INQ-bufferen 72 er full, ved å undersøke dens flagg. Hvis INQ-bufferen 72 er full, vil ingen overføring finne sted. Hvis den derimot er tom, vil vedkommende meldingspakke bli overført til INQ-bufferen 12 i IPB-regulatoren 30, og INQ-bufferens flagganvisning om fylt buffer innstilles. Dette flagg undersøkes periodisk av gruppemodul-regulatoren 32, og hvis det er funnet innstilt, overføres innholdet i INQ-bufferen 7 2 til vedkommende lagersted i bufferhukommelsen 34 mens INQ-bufferflagget tilbakestilles. Klar-listen oppdateres så slik som beskrevet i forbindelse med pakker som mottas fra sekvensdatakjedene 22 eller 24. Arbeidsfunksjonen for IPB-regulatoren 30 er under styring fra en tilstandsmaskin 74 som vil bli nærmere beskrevet under henvisning til fig. 11. Tilstandsmaskinen 74 dirigerer pakke-overføringen til og fra den interne prosessorbuss 12.
Forståelsen av foreliggende oppfinnelse kan lettes ved å betrakte den måte hvorpå maskinvare og programvare sam-arbeider for overføring av data mellom prosessorene. Data-overføring fra en første prosessor til en annen prosessor i et annet multiprosessor-system innledes og utføres under programvarestyring ved hjelp av en SEND-instruksjon.
Den følgende forklaring antar at en datablokk skal sendes fra en prosessor 10 i multiprosessor-systemet (a) i fig. 3 til en prosescor i multiprosessor-systemet (b).
I henhold til SEND-instruksjonen leser en prosessor 10 i fig. 3 ut en datablokk fra sin hukommelse, bryter denne opp i pakker (se fig. 5 angående pakkeformat), beregner pakkenes kontrollsum-ord, og overfører vedkommende datablokk med en pakke av gangen enten til gruppe-modul 18a eller til gruppe-modul 20a. Parametere .som inngår i SEND-instruksjonen spesi-fiserer anvendelse av X-gruppemodulen 18a eller Y-gruppemodulen 20a, startpakkens sekvensnummer, den retning hvori pakken skal sendes rundt nettverksringen, identiteten av den mottagende gruppemodul, identiteten av den mottagende prosessor innenfor det multiprosessor-system som er tilknyttet den mottagende gruppemodul, startadressen for datablokken i hukommelsen, antall bytes i datablokken, samt den angitte verdi for utløpet av den tid som skal avventes for at ut-gangskøen 67 i fig. 2 i US-patentskrift nr. 4 228 496 skal bli tilgjengelig.
For en pakke som er bestemt for en prosessor i en annen gruppe, anbringer SEND-instruksjonen i prosessoren 10 en anvisning om den retning hvori pakken skal sendes, inn i det felt som er spesifiert som sendergruppe-felt (bit 0 - 3) i ord 0 i en pakke, som vist i fig. 5. Hvis pakken skal sendes til høyre anbringes en verdi 0 i sendergruppefeltet. Hvis imidlertid pakken skal sendes til høyre anbringes verdien 1 i feltet. Denne verdi anvendes så av gruppemodulen til å fastlegge korrekt senderetning for pakken. Når senderetningen først er fastlagt av gruppemodulen, innskrives sendergruppefeltet (bit 0 - 3) i ord 0 i pakken på nytt med det sender-gruppenummer som er kjent av gruppemodulen.
Den foretrukne overføringsretning for en meldingspakke til en bestemmelsesprosessor fastlegges når systemet settes opp. Den foretrukne retning vil således delvis være avhengig av nettverkets geometri. Den vesentlige bestemmende faktor vil åpenbart være veilengden, da det er å foretrekke at pakkene sendes langs den korteste overføringsvei. Denne faktor modi-fiseres naturligvis av trafikkvolum-betraktninger, da kon-struktøren gjerne vil unngå potensielle forsinkelser ved å avbalansere trafikkflyten mellom de forskjellige overf©ringsveier. I et ringmønster med 2 x n gruppemoduler vil f. eks konstruktøren ønske å velge en overføringsretning som inne-bærer at en hvilken som helst meldingspakke vil passere gjennom færre enn n gruppemoduler før den når frem til sitt bestemmelsested. I en toveis ring bør X-banen eller Y-banen velges slumpvis for avbalansering av trafikken mellom de to overføringsbaner.
Disse valgte overføringsretninger er anbragt i en tabell i prosessorene i det enkelte system, i samsvar med vedkommende bestemmelsesgrupper. Når en meldingspakke er klar for å sendes til en bestemt gruppe, anvender avsenderprosessoren denne tabell for å angi pakkens overføringsretning. En regis-trering av informasjon om feil kan anvendes for eventuelt å forandre den valgte bane i en gitt retning, eller selve retningen hvis for mange feil angir en sviktende overførings-funksjon for vedkommende bane.
SEND-instruksjonen avsluttes etter at hele datablokken er blitt brutt opp i meldingspakker og sendt ut. Programvare-messig synes således en datablokk-utsendelse å bestå i utfør-else av en enkelt instruksjon, skjønt denne instruksjon kan avbrytes. En prosessors mottagelse av data i et multiprosessor-system ((b) i fig. 3) utføres ikke ved hjelp av en <p>rograminstruksjon, da ankomsttider og kilder for datapakker ikke kan forutsees. Mottagelse av data må tillates, men kan ikke igangsettes av mottageren.
Prosessoren mottar en datapakke fra X-gruppemodulen 18b eller Y-gruppemodulen 20b ved å utføre et mikroprogram for mottag-ning fra en databuss (henvisningstall 115 i US-patentskrift nr. 4 228 496), og som tar ut den mottatte datapakke fra kø-seksjonen av den interne prosessorstyring 55 i henhold til US-patentskrift nr. 4 228 496, verifiserer korrekt kontrollsum og sekvensnummer, samt lagrer dataene i en hukommelses-buffer.
De mottatte datapakker sammenstilles på nytt i datablokker ved å anvende oppføringer i databussens mottagningstabell i hukommelsen. Hver sådan tabelloppføring tilsvarer et bestemt multiprosessor-system ((a) i fig. 3) samt en bestemt prosessor ((12a) i fig. 3) i vedkommende system, og inneholder en hukommelsesadresse, et tellerord og et forventet sekvensnummer .
Etter hvert som de forskjellige datapakker mottas, aktiveres databussens mikroprogram. Dette mikroprogram får tilgang til den post i databussens mottagertabell som tilsvarer det av-sendende multiprosessor-system samt vedkommende prosessor i dette system. Hvis den mottatte pakke inneholder korrekt kontrollsum og hvis dens sekvensnummer stemmer overens med det forventede sekvensnummer for den neste pakke som skal mottas, lagres pakkens dataord i det spesifiserte område og tilpas-ninger gjøres med hensyn til områdeadresse, sekvensnummer og datagruppetellerverdi i databussens mottagertabell for derved å forberede mottagelse av den påfølgende pakke i sekvensen. Hvis tellerverdien har nådd 0 eller en feil er påvist, frembringes et programavbrudd.
Denne fremgangsmåte for behandling av de mottatte meldingspakker gjer det mulig å overvinne feil i overføringsprosessen ved gjentatt overføring av hele den angjeldende datablokk. Alle meldingspakker som er duplikater av de pakker som kan ha blitt korrekt mottatt under en tidligere overføring vil, fordi de er ute av rekkefølge, bli gjenkjent og derved ikke bli anbragt i hukommelsen.
Pålitelig meldingsoverføring oppnås ved hjelp av en innlagt protokoll for kommunikasjonen mellom prosessorene i multi-prosessorsystemet. Hver overføring som mottas uten feilanvis-ning bekreftes positivt av en påfølgende overføring fra mottagerprosessoren. Avsenderprosessorens mottagelse av denne kvittering fra mottagerprosessoren bekrefter overfor avsenderprosessor at overføringen faktisk er mottatt.
Når en avsenderprosessor først sender ut en dataoverføring, bestemmer den et tidspunkt hvorved kvittering bør bli mottatt på grunnlag av et spesifisert tidsintervall. Hvis ingen kvittering er mottatt ved det fastlagte tidspunkt, vil en gjentatt overføring finne sted cg et nytt tidspunkt vil bli fastlagt på grunnlag av samme spesifiserte tidsintervall. Gjentatt overføring vil således finne sted inntil avsenderprosessoren har mottatt en positiv kvittering.
Da dataoverføringene kan finne sted gjennom en hvilken som helst av to mulige gruppemoduler (18a og 20a), samt i den ene eller annen av to retninger (venstre eller høyre), vil det være fire mulige overf©ringsveier som kan anvendes ved sending av en datablokk til en mottagerprosessor. Når en avsenderprosessor innleder sitt fors©k på å overf©re en datablokk til en mottager, vil den, i' samsvar med en viss tilgjengelig tilstandsinformasjon, velge en av de fire veier. Denne tilstandsinformasjon omfatter definisjon av en foretrukket retning (venstre eller h©yre) som er bygget inn i
programvaren når denne skapes, samt antall feil som tidligere har opptrådt ved overforing over den enkelte vei. Hvis antall
■feil overskrider en viss terskel, betraktes vedkommende over-
føringsvei som utkoblet, og den anvendes ikke lenger. Ved valg av overf©ringsvei gjøres forsøk på å velge X- eller Y-prosessorbuss på slump, med det formål å oppnå en jevnere trafikkfordeling.
Når avsenderprosessoren ikke har. mottatt en bekreftelse fra mottagerprosessoren innen utløpet av en viss tid, velger avsenderprosessoren overføringsvei for gjentatt dataoverføring i samsvar med et regelverk innebygget i systemintelligensen. Dette regelverk er noe tilfeldig og kan utgjøres av en hvilken som helst algoritme som effektivt tar i betraktning både den tilstandsinformasjon som det tidligere er henvist til, samt også identiteten av den overføringsvei som ble anvendt for det tidligere overføringsforsøk. Dette regelverk anvendes for å sikre at påfølgende overføringsforsøk vil veksle mellom alle fire overf©ringsveier i rekkefølge, eller mellom alle tilgjengelige overf©ringsveier når en eller flere veier er koblet ut på grunn av forekommende feil.
I den foretrukne utførelse sendes en datablokk over en av to databusser i en gitt retning. Hvis ingen bekreftelse mottas ved det fastlagte tidspunkt, forsøkes en ny dataoverføring. Hvis det heller ikke mottas bekreftelse for dette andre forsøk, sendes datablokken over den andre databuss i samme retning. Etter ytterligere to tilfeller uten bekreftet mottagelse, proves databussene i den annen retning på lignende måte. Om n©dvendig gjentas denne prosess, hvis det da ikke er klart at ingen overføringsvei fungerer.
I det tilfelle overføringen av en datablokk faller heldig ut, men kvitteringen fra mottageren ikke når tilbake til avsenderen, vil de gjentatte overføringsforsok som innledes av avsenderen frembringe sekvensfeil i mottageren, da vedkommende meldingspakke allerede er korrekt mottatt og sekvensnummeret i databussens mottagertabell allerede er blitt oppdatert. Når mottageren oppdager en sekvensfeil, vil den sende ut en ytterligere kvitteringsmelding over alle fire overf©ringsveier, eller over alle tilgjengelige veier når en eller flere overf©ringsveier er koblet ut på grunn av feil. Meldinger kan således med hell overføres og bekreftes så sant minst en. av de fire overf ©ringsveier fra avsenderen til mottageren, samt minst en av de fire overføringsveier fra mottageren til avsenderen er i funksjon.
Gruppemodulenes virkemåte vil nå bli nærmere beskrevet ved hjelp av en foretrukket styrestruktur og under henvisning til fig. 6 - 11. Den enkelte gruppemodulregulator 32 dirigerer driften av sin gruppemodul 18 ved gjentatt ganger å undersøke inngangs- og utgangskoene, samt en tidsintervall-regulator (ikke vist). Hver inngangsk© betjenes når den er blitt full, ved at data overfores fra vedkommende kø til bufferhukommelsen 34. På lignende måte betjenes hver ut-gangskø når den er tom, ved at data overføres fra bufferhukommelsen 34 til det tilordnede utgangskøområde. Betjening av tidsregulatoren utføres periodisk når intervallregulatoren utløser et avbrudd.
Bufferhukommelsen 34 er oppdelt i faste lengdeavsnitt på 16 pakker hver. Hver mulig bestemmelsesprosessor i nettverksringen er tilordnet to av disse avsnitt i bufferhukommelsen 34, nemlig et avsnitt for hver av de to retninger hvori en datapakke kan overføres til en hvilken som helst bestemmelsesprosessor 10. Disse avsnitt i bufferhukommelsen 34 behandles som FlFU-køer slik at pakkene sendes i samme rekke-følge som de mottas. En kø (et avsnitt) i bufferhukommelsen 34 dirigeres av gruppemodulen uavhengig av tilstanden i hver av de øvrige køer. En gruppemodul håndterer f.eks. pakker som går til en prosessor i venstre retning fullstendig uavhengig av eventuelle pakker som går til samme prosessor i høyre retning.
Gruppemodulregulatoren 32 styrer tilordningen og anvendelsen av FIFU-køene i bufferhukommelsen 34. For å styre køene opp-rettholder gruppemodulregulatoren 32 en informasjonstabell (en køstyrende tabell) i sin styrehukommelse 52 for hver kø i bufferhukommelsen 34. Hver sådan køstyrende tabell inneholder en tellerverdi for det antall pakker som til enhver tid befinner seg i den tilordnede kø (pakketellerverdi), en henvisning til den eldste pakke i køen (køstart-peker) og en henvisning til den nyeste pakke i køen (køslutt-peker). Plasseringen av køen i bufferhukommelsen 34 med tilordning til en spesiell bestemmelsesprosessor samt overføringsret-ning, fastlegges av gruppenummer og prosessornummer for vedkommende bestemmelsessted og overføringsretning. På lignende måte er plasseringen av de tilordnede køstyrende tabeller i styrehukommelsen 52 fastlagt av gruppenummer og prosessornummer for vedkommende bestemmelsessted og overføringsret-ning. Fagfolk på området vil forstå at den absolutte adresse utelukkende er et valgspørsmål.
Når en gruppemodul mottar en pakke, finner gruppemodulregulatoren 32 frem til den tilsvarende kø i bufferhukommelsen 34 samt den tilsvarende køstyrende tabell i styrehukommelsen 52 på grunnlag av numrene for bestemmelsesgruppe og -prosessor, samt senderetningen for vedkommende meldingspakke. Før meldingspakken anbringes i køen sørger gruppemodulregulatoren 32 for at pakketellerverdien økes med ett trinn. Hvis den nye pakketellerverdi overskrider 16, avvises meldingspakken og den køstyrende tabell i styrehukommelsen 5 2 blir ikke for-andret. Hvis imidlertid den nye pakketellerverdi er mindre eller lik 16, trinnforskyves køslutt-pekeren, modulo 16, og pakken anbringes i køen på det sted som utpekes av den nye verdi av køslutt-pekeren, idet køslutt-pekeren samt pakketellerverdien oppdateres i den køstyrende tabell med de nye verdier.
Når en meldingspakke skal sendes, finner gruppemodulregulatoren 32 frem til den tilsvarende kø i bufferhukommelsen 34 samt den tilordnede køstyrende tabell i styrehukommelsen 52
på grunnlag av numrene for bestemmelsesgruppe og -prosessor, samt pakkens senderetning. Gruppemodulregulatoren 32 fjerner da pakken fra det sted i køen som utpekes av køstart-pekeren, øker køstart-pekeren, modulo 16, nedskriver pakketeller-
verdien og oppdaterer den køstyrende tabell i styrehukommelsen med de nye verdier.
Innholdet i hver køstyrende tabell inneholder således alltid korrekte verdier for køstart-pekeren (som peker ut den neste pakke som skal sendes i vedkommende kø), køslutt-pekeren (som peker ut den siste pakke som er anbragt i køen), samt pakketellerverdien (som angir hvor mange pakker som til enhver tid befinner seg i køen).
Gruppemodulregulatoren 32 må ha en effektiv metode for å velge den neste pakke i bufferhukommelsen 34, som skal sendes. Dette kan oppnås ved å opprettholde en klar-liste som tidligere beskrevet, i form av en dobbelt kjedet liste over de køstyrende tabeller som har en pakketellerverdi forskjellig fra 0. Den foretrukne fremgangsmåte er å opprettholde to ytterligere typer av informasjonstabeller i styrehukommelsen 52, nemlig tabeller over henholdsvis grupper og prosessorer som er klare for sending. Det foreligger to tabeller over grupper som er klare for sending, nemlig en for hver retning. Plasseringen av disse tabeller i styrehukommelsen 52 er fastlagt på grunnlag av senderetningen for pakkene, skjønt fagfolk på området vil forstå at den tilordnede absolutt adresse bare er et valgspørsmål. Det foreligger også to tabeller over sendeklare prosessorer i hver mulig gruppe, nemlig en for hver retning. Plasseringen i styrehukommelsen av sådanne tabeller over sendeklare prosessorer er likeledes fastlagt av vedkommende gruppenummer samt senderetningen for pakkene.
Hver "klar for sending"-tabell er sammensatt av tre deler, nemlig en pakkeventende maske, en dataflyt-styrende maske og en prioritetsmaske. Det er et 1-til-l-forhold mellom bits i hver maske og et bestemt gruppe- eller prosessornummer. Hver bit i den pakkeventende maske angir om det i bufferhukommelsen 34 foreligger pakker som venter på å bli sendt til vedkommende gruppe- eller prosessornummer som er tilordnet vedkommende bit. Hver bit i den dataflyt-styrende maske angir dataflyt-tilstanden (stoppet eller startet, som forklart nedenfor) for vedkommende gruppe eller prosessor tilordnet nevnte bit. Det logiske produkt (OG) av en pakkeventende maske og en dataflyt-styrende maske er en sendingsklar maske hvor hver bit i denne maske angir om det forekommer pakker i bufferhukommelsen 34 som til enhver tid kan sendes til vedkommende gruppe eller prosessor tilordnet denne bit. I prioritetsmasken tilbakestilles de bits som er tilordnet den siste gruppe eller prosessor 10 som en pakke er sendt til, samt alle grupper eller prosessorer med lavere nummer, mens bits tilordnet alle øvrige grupper eller prosessorer innstilles. Det logiske produkt (OG) av den sendingsklare maske og prioritetsmasken danner således en maske hvor bare de bits som er tilordnet grupper eller prosessorer med nummer høyere enn den siste gruppe eller prosessor det er sendt til, kan innstilles.
Når en pakke er anbragt i bufferhukommelsen 34, vil den bit som er tilordnet pakkens bestemmelsesprosessor bli innstilt i den pakkeventende maske i tabellen over prosessorer som er klare for sending, og som er tilordnet pakkens bestemmelsesgruppe og retning. På lignende måte innstilles den bit som er tilordnet pakkens bestemmelsesgruppe i den pakkeventende maske i tabellen over grupper klare for sending, og som er tilordnet den retning som pakken skal sendes i.
Når en pakke er fjernet fra bufferhukommelsen 34, og pakketellerverdien for vedkommende kø går til 0, tilbakestilles
den bit som er tilordnet pakkens bestemmelsesprosessor i den pakkeventende maske i tabellen over sendeklare prosessorer og som er tilordnet pakkens bestemmelsesgruppe og retning. Hvis denne prosess fører til en pakkeventende maske uten noen innstilt bit (ingen flere pakker venter på å bli sendt til denne gruppe), vil den bit som er tilordnet pakkens bestemmelsesgruppe bli tilbakestilt i den pakkeventende maske i tabellen over grupper klare for sending, og som er tilordnet den retning som pakken skal sendes i. Prioritetsmaskene i tabellene for sendeklare prosessorer og grupper innstilles også for å
angi til hvilken bestemmelsesprosessor og -gruppe pakken sendes.
Anvendelse av tabeller for sendeklar tilstand kan best for-klares ved et eksempel. For å innlede en pakkeoverføring får gruppemodulregulatoren 2 tabellen over grupper som er klare for sending i vedkommende retning, fra styrehukommelsen. Den søker så det logiske produkt av den sendingsklare maske og prioritetsmasken i rekkefølge for den første bit som er innstilt for å angi en gruppe som meldingspakker skal sendes til. Hvis ingen sådan gruppe kan finnes ved å søke det logiske produkt av den sendingsklare maske og prioritetsmasken, undersøkes den sendingsklare maske på lignende måte for å finne en gruppe å sende til. Når en gruppe er valgt, utledes tabellen over sendeklare prosessorer i vedkommende gruppe, fra styrehukommelsen 52 og undersøkes på lignende måte. Når bestemmelsessted og prosessor er blitt valgt, stedsbestemmes den tilordnede FIFU-kø samt køstyrende tabell, den pakke som pekes ut av køslutt-pekeren fjernes fra køen, og den køstyrende tabell og tabellen for sendeklarhet oppdateres som tidligere beskrevet.
Denne søkeprosess i to trinn danner et effektivt rundtløpende prioritetsskjerna hvor den gruppe, samt den prosessor i denne gruppe, som det sist ble sendt til, alltid gis den laveste prioritet for neste sending. Alle mulige bestemmelsesgrupper samt prosessorer innenfor en sådan gruppe, gis således en rimelig sjanse til å dele den tilgjengelige sekvensielle datakjede-båndbredde.
Den foretrukne fremgangsmåte for å velge ut neste pakke i bufferhukommelsen 34 for sending,- ble valgt for å dra fordel av den effektive søkekapasitet til prioritetsomkoderen som utgjør en del av gruppemodulreguiatorens 32 maskinvare. Fagfolk på området vil forstå at den tidligere beskrevne klar-liste også vil kunne fungere.
Da meldingspakker for et hvilket som helst gitt bestemmelsessted kan nå frem til en gruppemodul i høyere; takt enn de for-later vedkommende gruppemodul, er det påkrevet med en flyt-styrende protokoll. Flytstyringen oppnås ved å anvende stopp-og startmeldinger, samt INQ/STAT-tabellen 70. To konstante verdier, betegnet som henholdsvis stopp- og start-terskel, er tilordnet FIFU-køene i bufferhukommelsen 34. Når en pakke er anbragt i en kø, sammenlignes den nye pakketellerverdi med stoppterskelen. Hvis den nye pakketellerverdi er lik eller større enn stoppterskelen, ansees køen å være full og det treffes tiltak for å stoppe tilstrømningen av pakker til vedkommende kø (betegnes som stopp av bestemmelsesstedet). Strømmen av pakker inn i køen fra den lokale interne prosessorbuss stoppes ved å innstille den bit i INQ/STAT-tabellen 70 som er tilordnet bestemmelsesstedet. Strømmen av pakker inn i køen fra den sekvensielle datakjede stoppes ved å sende en stopp-melding til vedkommende nabogruppemodul. Stopp-meldinger sendes vanligvis i styreordet i de sekvensielle datakjeders rammer og inneholder gruppe- og prosessornummer for det bestemmelsessted som skal stoppes.
Når en pakke fjernes fra en FIFU-kø i bufferhukommelsen 34, sammenlignes den nye pakketellerverdi med start-terskelen. Hvis den nye pakketellerverdi er lik startterskelen og bestemmelsesstedet tidligere er blitt stoppet, treffes tiltak til å innlede strømmen av pakker inn i køen (betegnes som start av bestemmelsesstedet).
Tilstrømningen av pakker til køen fra den lokale indre prosessorbuss innledes ved tilbakestilling av den bit i INQ/STAT-tabellen 7 0 som er tilordnet vedkommende bestemmelsessted. Strømmen av meldingspakker inn i køen fra den sekvensielle datakjede innledes ved å sende en start-melding til vedkommende nabogruppemodul. Start-meldinger sendes normalt i styreordet i de sekvensielle datakjeders rammer og inneholder gruppe- og prosessornummer for det bestemmelsessted som skal innledes.
Start- og stopp-meldinger sendes ikke umiddelbart, men stil-les i kø for utsending, i en spesiell kø på to ord tilordnet hver sekvensiell datakjede og«som inngår i den neste ramme som sendes over vedkommende datakjede. Hvis det foreligger mer enn to styremeldinger for sending på en sekvensiell datakjede eller det ikke er noen pakker som venter på å bli sendt over vedkommende sekvensielle datakjede, sendes en dataramme som bare inneholder styredata. En sådan styredataramme er en ramme hvor pakkedata er erstattet med et bit-kart som repre-senterer start/stoppstatus for alle bestemmelsesprosessorer i den retning som er av interesse. Rammer med utelukkende styredata sendes også med periodiske mellomrom for å opprettholde flytstyringens synkronisering. Hvis således en start-melding går tapt på grunn av en forbigående feil i den sekvensielle datakjede, vil vedkommende bestemmelsessted komme først i den påfølgende periodiske styredataramme.
Da styremeldingenes overføring og påvirkning av vedkommende nabogruppemodul tar en viss tid, må stoppterskelen velges
lavere enn den faktiske størrelse av FIFU-køene. For å gjøre køutnyttelsen størst mulig velges også startterskelen større enn 0. I den foretrukne utførelse hvor FIFU-køen har en kapasitet på 16 pakker, er f.eks. 6 og 8 valgt som henholdsvis start- og stoppterskel.
Når en gruppemodulregulator 32 mottar en stoppmelding, tilbakestiller den den tilsvarende bit i den dataflyt-styrende maske i den tilordnede tabell over prosessorer som er klare for sending. Hvis den resulterende flytstyremaske bare ut-gjøres av nuller (hvilket angir at alle prosessorer i vedkommende bestemmelsessted er stoppet), vil den tilordnede bit i den dataflyt-styrende maske i den tilordnede tabell over grupper klare for sending, bli tilbakestilt. Når en gruppemodulregulator 32 mottar en start-styremelding, innstilles den tilordnede bit i den dataflyt-styrende maske av den tilordnede tabell over prosessorer klare for sending, samt den tilordnede bit i den dataf lyt-styrende maske i den tilordnede tabell over grupper klare for sending. Når en gruppemodulregulator 32 mottar en ramme med bare styredata, oppdaterer den flytstyremaskene i alle tabeller over grupper og prosessorer som er klare for sending i den retning hvorfra vedkommende ramme kom inn.
I en foretrukket utførelse er det en mekanisme for å håndtere "bortløpte" pakker. En "bortløpt" pakke er en som har gått hele veien rundt nettverket uten å bli gjort krav på.
Mekanismen for bortløpte pakker arbeider på følgende måte. Når en datapakke tas ut fra den lokale interne prosessorbuss 12 erstattes dens bestemmelsesgruppenummer (se fig. 5) med et bit-felt som innledningsvis er innstilt til 0. Hver gang pakken mottas i en gruppemodul i ringen, avleses denne bit-feltverdi og økes med ett trinn. Hvis den avleste verdi er lik eller overskrider antall grupper i nettet, hvilket vil si at vedkommende pakke har besøkt alle gruppemoduler og frem-deles ikke er gjort krav på av noen gruppe, vil pakken bli kassert.
Det henvises til fig. 6-11 hver en for nærværende foretrukket sekvensdrift for gruppemodulene er angitt. Ved start av systemet utføres en innledningsrutine (ikke vist) som igang-setter registre og tabeller, fjerner alle flagg og starter opp alt prosessor- og gruppestyringsutstyr på en måte som er velkjent på fagområdet. Denne innledningsrutine innstiller INQ/STAT-tabellen 70 i IPB-regulatoren 30 til å motta pakker for alle gyldige bestemmelsesadresser.
Det henvises først til fig. 6 som viser en tomgangssløyfe, hvis begynnelse er angitt ved henvisningstallet 102, og som gjentatte ganger foretar utspørring av hver triggergjenstand eller ressurs etter tur innenfor sløyfen. Den servicerutine som gjelder vedkommende ressurs utføres så, om nødvendig.
Den venstre sekvensielle INQ-kontrollør 104 utprøver flagget i venstre sekvensielle INQ-buffer 66 for å undersøke om det er fullt og angi at det er behov for servicerutinen for den venstre sekvensielle INQ-buffer. Hvis så er tilfelle utføres servicerutinen 105 for den venstre sekvensielle INQ-buffer, og sløyfen fortsettes.
Den høyre sekvensielle INQ-kontrollør 106 utprøver så flagget i den høyre sekvensielle INQ-buffer 68 for å undersøke om det er fullt og angi at det er behov for servicerutinen for den høyre sekvensielle INQ-buffer. Hvis så er tilfelle utføres servicerutinen 107 for den høyre sekvensielle INQ-buffer, hvorpå sløyfen fortsettes. Tidsregulator-kontrolløren 108 utfører så prøver for å undersøke om en intern tidsinter-vallenhet har telt ned til 0. Hvis dette er tilfellet utføres servicerutinen 109 for tidsregulatoren, som går ut på at det sendes ut rammer med bare styredata, og funksjonsstyringen går da tilbake til tomgangssløyfens begynnelse 102. Hvis ingen nedtelling foreligger, fortsettes sløyfen.
Den høyre sekvensielle OUTQ-kontrollør 112 utfører så prøver for å se om den høyre sekvensielle OUTQ-buffer 42 er tom, vea å undersøke bufferens flagg. Hvis dette er tilfelle utføres servicerutinen 113 for den høyre sekvensielle OUTQ-buffer, og funksjonsstyringen går da atter tilbake til tomgangs-sløyf ens begynnelse 102. Hvis denne servicerutine ikke er nødvendig, fortsettes sløyfen.
Den lokale INQ-kontrollør 114 utfører så prøver for å se om den lokale INQ-buffer 72 er full, ved å undersøke bufferens flagg. Hvis dette er tilfelle utføres den lokale INQ-servicerutine 115, hvorpå funksjonsstyringen går tilbake til tom-gangssløyf ens begynnelse 102. Hvis ingen servicerutine er påkrevet, fortsettes sløyfen.
Den venstre lokale OUTQ-kontrollør 116 undersøker så om det foreligger pakker i venstreretningen for en bestemt prosessor hvis lokale OUTQ-buffer er tom. Hvis dette er tilfelle ut-føres servicerutinen 117 for den venstre lokale OUTQ-buffer, og funksjonsstyringen går da atter tilbake til tomgangssløy-fens begynnelse 102. Hvis servicerutinen ikke er nødvendig, fortsettes sløyfen.
Den høyre lokale OUTQ-kontrollør 118 undersøker om det foreligger pakker i høyreretningen for en bestemt prosessor hvis lokale OUTQ-buffer 54 er tom. Hvis dette er tilfelle utføres servicerutinen 119 for den høyre lokale OUTQ-buffer, hvorpå funksjonsstyringen atter går tilbake til tomgangssløyfens begynnelse 102. Hvis ingen servicerutine er påkrevet, fortsettes sløyfen.
Tomgangssløyfen innledes på nytt hver gang den avsluttes.
Skjønt bare en tomgangssløyfe (fig. 6) er beskrevet, gjennom-løpes i en nå foretrukket utførelse flere tomgangssløyfer for å hinde for sterk konsentrasjon på servicerutinekrav som er utprøvet tidligere i sløyfen. I stedet for å gå tilbake til den opprinnelige tomgangssløyfes begynnelse 102 såsnart en ressurs har vært gjenstand for en servicerutine, ombyttes rekkefølgen for de trinn som utfører servicerutiner på begge de to sekvensielle utgående køer 111 og 113, den inngående kø 115 samt de lokale utgående køer 117 og 119. Lignende sløyfer gjennomløpes, idet de utfører samme service-funksjoner, men i forskjellig rekkefølge, bortsett fra de tre første prøver
104, 106 og 108 som alltid utføres først. Dette har den virk-ning at prioriteten for hver servicerutine revideres dyna-misk, for derved å sikre hver ressurs samme oppmerksomhet.
Det henvises nå til fig. 7, hvor det er vist et flytskjema for den lokale INQ-servicerutine 115.
Den spesielle funksjonskontroll 201 undersøker de innkommende pakker for å undersøke om en pakke krever en spesiell behand-lingsfunksjon. Hvis dette er tilfelle avsluttes servicerutinen og spesialfunksjonsrutinen 202 utføres. Hvis det angitte tilfelle ikke foreligger, fortsetter servicerutinen. Overløpskontrollen 103 for lagrede data undersøker så den køstyretabell som er tilordnet bestemmelsesprosessoren for den innkommende pakke for å undersøke om et lageroverløp foreligger, hvilket vil si en pakketellerverdi større enn 16. Hvis dette er tilfelle inkrementeres feiltellerverdien for lageroverløp i trinn 204, og servicerutinen avsluttes fordi det ikke er tilgjengelig plass i FIFU-køen i bufferhukommelsen 34. Hvis det angitte tilfellle ikke foreligger, fortsetter servicerutinen. Den nevnte feilopptelling kan eventuelt anvendes for diagnoseformål.
Pakkerammen overføres så fra INQ-bufferen 72 til FIFU-køen i bufferhukommelsen 34 i trinn 205, og denne pakke legges til i
tabellene for sendeberedskap i trinn 206.
Flytstyringskontrollen 207 undersøker pakketellerverdien i køstyretabellen for å undersøke om den er lik eller større enn stopp-terskelen. Hvis dette er tilfelle treffes tidligere beskrevne tiltak i trinn 208 for å stoppe overføring til bestemmelsesstedet.
Deretter avsluttes INQ-servicerutinen.
Det henvises nå til fig. 8, hvor servicerutinen for den
lokale OUTQ-buffer 117 (venstre) eller 119 (høyre) er angitt.
Den roterende prioritetsomkoder anvendes for å velge en OUTQ-buffer som er tom og har håndtert pakker i trinn 211. Vedkom-mende pakke forflyttes da i trinn 212 fra FIFU-køen i bufferhukommelsen 34 til den valgte OUTQ-buffer.
Ved dette tidspunkt kan en paritetskontroll 213 anvendes for utprøvning av en eventuell paritetsfeil. Hvis en sådan feil foreligger, kan en eventuell paritetsfeil-tellerverdi (anvendbar for diagnoseformål) i styrehukommelsen 5 2 inkrementeres i trinn 214, hvis ikke innstilles en bit i det OUTQ/-STAT-register 56 som tilsvarer bestemmelsesprosessoren, i trinn 215. Køstyretabellen for bestemmelsesprosessoren oppdateres så i trinn 216.
FIFU-køkontrollen 217 undersøker køstyretabellen for å finne ut om det foreligger en tom FIFU-kø. Hvis dette er tilfelle oppdateres sendeberedskaps-tabellen for bestemmelsesprosessoren slik som tidligere beskrevet, og den lokale INQ-servicerutine avsluttes, hvis ikke fortsetter servicerutinen.
Flytstyringskontrollen 219 utfører prøver for å undersøke om pakketellerverdien er lik start-terskelen. Hvis dette er tilfelle treffes tidligere omtalte tiltak i trinn 220 for å innlede bestemmelsesprosessen, cg den lokale OUTQ-servicerutine avsluttes.
Det henvises nå til fig. 9, hvor den sekvensielle INQ-servicerutine er vist.
Styredatakontrollen 221 undersøker pakken for å fastslå om den er en ramme med bare styredata. Hvis dette er tilfelle oppdateres dataflytstyringsmaskene i trinn 223, og den sekvensielle INQ-servicerutine avsluttes. I motsatt fall fortsetter servicerutinen.
Overløpskontrollen 226 for lagrede data undersøker derpå den køstyretabell som er- tilordnet bestemmelsesprosessoren for den innkommende pakke, for derved å se om det forligger et eventuelt lageroverløp, hvilket tilsvarer en pakketellerverdi større enn 16. Hvis et overløp foreligger, kan eventuelt en tellerverdi for overløpsfeil og som er anvendbar for diagnoseformål inkrementeres i trinn 227, hvorpå innkommende styreord databehandles og den sekvensielle INQ-servicerutine avsluttes. I motsatt tilfelle fortsetter servicerutinen.
Kontrollen 228 for bortløpne pakker undersøker vedkommende pakke for å fastslå om pakken har besøkt sitt 16. knutepunkt. Hvis dette pr tilfelle, avvises pakken og en eventuell feil-telling for bortløpet pakke, og som er anvendbar for diag-nosef ormål, kan inkrementeres i trinn 229, hvorpå innkommende styreord databehandles og den sekvensielle INQ-servicerutine avsluttes. Hvis vedkommende pakke ikke er en bortløpt pakke, fortsetter servicerutinen.
I trinn 230 forflyttes pakkerammen fra den sekvensielle INQ-buffer 66 eller 68 inn i FIFU-køen i bufferhukommelsen 34.
Køstyretabellen oppdateres i trinn 235.
Flytstyrekontrollen 236 undersøker om det foreligger flere pakker i kø i bufferområdet enn stopp-terskelen tillater. Hvis dette er tilfelle innledes det tidligere beskrevne tiltak for å stoppe overføringen til bestemmelsesstedet.
Den pakke som er kjedet til senc".eberedskapstabellene oppdateres som tidligere beskrevet, i trinn 238.
Innkommende styreord behandles i trinn 2 39 og den sekvensielle INQ-servicerutine avsluttes.
Det henvises nå til fig. 10, hvor den sekvensielle OUTQ-servicerutine for enten høyre eller venstre OUTQ-buffer er angitt. Kontrollen 241 for resynkronisering undersøker om det foreligger mer enn to styreord som skal utsendes, eller om tidsintervallregulatoren for resynkronisering har løpt ut. I en foretrukket utførelse er dette intervall 10 milli-sekunder. Hvis en av disse betingelser er oppfylt, utsendes en dataramme med bare styreord i trinn 242, og den sekvensielle OUTQ-servicerutine er slutt. I motsatt fall fortsetter rutinen.
I trinn 24 3 anvendes det rundtløpende prioritetsskjema for å velge en gruppe og en prosessor. Hvis det enten ikke er noen gruppe å velge eller noen prosessor å velge ut innenfor vedkommende gruppe, aktiveres styreordkontrollen 245. Styreordkontrollen 245 undersøker om det i styreordkøen foreligger styreord som skal sendes ut. Hvis dette er tilfelle sendes det i trinn 246 ut to styreord uten noen meldingspakke. Servicerutinen er da over. Hvis imidlertid en gruppe og en prosessor velges, fortsetter servicerutinen.
Den valgte pakke forflyttes da fra FIFU-køen i bufferhukommelsen 34 til den sekvensielle OUTQ-buffer 40 eller 42. Styreord legges til fra styreordkøen. De køstyrende tabeller oppdateres så i trinn 247.
Kontrollen 248 for hukommelsesparitet undersøker om en pari-tetsf eil foreligger i bufferhukommelsen. Hvis en sådan feil påvises, kan en eventuell tellerverdi for hukommelsespari-tetsfeil, og som er anvendbar for diagnoseformål, inkrementeres i trinn 249, og to styreord sendes ut uten meldingspakke i trinn 250, ellers sendes rammen ut fra trinn 251.
FIFU-køkontrollen 252 undersøker om det finnes gjenværende pakker i FIFU-køen. Hvis det ikke er noen pakker i køen, oppdateres sendeberedskaps-tabellene i trinn 253 og den sekvensielle OUTQ-servicerutine avsluttes. I øvrige tilfeller fortsetter rutinen.
Flytstyringskontrollen 254 undersøker om pakketellerverdien er lik start-terskelen. Hvis dette er tilfelle treffes de tidligere beskrevne tiltak i trinn 255 for start av overføring til et bestemmelsessted.
Den sekvensielle OUTQ-servicerutine er da over.
IPB-regulatoren 30 styrer informasjonsoverføringen mellom par av lokale prosessorer og mellom lokale prosessorer og vedkommende gruppemodul. Den er forbundet med IPB-databussen og er direkte tilsluttet gruppemodulen. Styrelinjer anvendes for å overføre styresignaler mellom IPB-regulatoren og de lokale prosessorer, samt mellom IPB-regualtoren og gruppe-modulregualtoren.
Data fra en lokal prosessor til en annen overføres ved en fremgangsmåte som er meget lik den som er angitt i US-patent-skrif t nr. 4 228 496. Når en prosessor er valgt ut til å overføre en pakke, anbringer den pakkens bestemmelsesadresse i IPB-regulatoren. Den lokale bestemmelsesprosessor beordres da fra IPB-regulatoren til å motta en pakke. Den lokale kildeprosessor overfører så pakken over IPB-databussen til den lokale bestemmelsesprosessor.
Data fra en lokal prosessor til den tilhørende gruppemodul overføres fra den lokale kildeprosessor til IPB-regulatorens INQ-buffer 72. INQFULL-flagget innstilles og angir derved overfor gruppemodulen at en pakke er klar. Gruppemodulen overfører så pakken til bufferhukommelsen 34 og tilbakestiller INQFULL-flagget.
Data fra en gruppemodul til en lokal prosessor overføres først av gruppemodulen fra bufferhukommelsen 34 til den lokale prosessors tilordnede OUTQ-buffer 54. Det tilordnede flagg i OUTQ/STAT-registeret 56 innstilles og angir derved for IPB-regulatoren at en pakke er klar. Den lokale bestemmelsesprosessor beordres til å motta en pakke fra IPB-regulatoren som så overfører pakken over IPB-databussen til den lokale bestemmelsesprosessor.
Flytstyringen mellom de lokale prosessorer og den tilhørende gruppemodul anvendes for å hindre overstrømning av FIFU-køene i bufferhukommelsen 34. INQ/STAT-registeret 70 anvendes for å gi signal til IPB-regulatoren om hvilke FIFU-køer som er koblet inn eller ut. Hver bit i INQ/STAT-registeret 7 0 angir en bestemmelsesprosessor og en overføringsretning i nettet. Når denne bit er innstilt, avviser IPB-regulatoren alle pakker som er adressert til denne prosessor med den angitte overføringsretning.
Det henvises nå til fig. Ila, hvor tilstandsdiagrammet for IPB-regulatoren er angitt.
i
Styrelogikken for IPB-regulatoren er utført som en tilstandsmaskin med 6 tilstander. Disse tilstander kalles STDSEND 300, POLL 302, OQSEND 304, RCVRSEL 306, OQRCVRSEL 308 og SEND2INQ 310. Fjorten overganger (T-l til og med T-14 vist i fig. 11b) er fastlagt og angir når en tilstandsforandring skal finne sted.
I POLL-tilstanden finner ingen informasjonsoverføring sted, IPB-regulatoren utspørr hver lokalprosessor etter tur om behov for å sende en pakke (signalet SNDACK) samt om dens beredskap til å motta en pakke (signalet RCVACK). Den under-søker også den lokale prosessors tilordnede bit i OUTQ/STAT-registeret 56 (signalet OUTQFULL).
Hvis RCVACK og OUTQFULL begge bekreftes (hvilket vil si at det foreligger en pakke fra gruppemodulen som den lokale prosessor kan motta), utløses overgangen T-10 til tilstanden OQRCVRSEL. En overføring fra gruppemodulen innledes. Hvis enten RCVACK eller OUTQFULL benektes (hvilket vil si at det ikke foreligger noen pakke eller at den lokale prosessor ikke kan motta pakken), undersøker IPB-regulatoren om signalet SNDACK foreligger.
Hvis SNDACK bekreftes (hvilket vil si at den lokale prosessor har en pakke å sende), vil den lokale prosessor bekrefte pakkens bestemmelsesadresse overfor IPB-regulatoren som mottar denne adresse og utløser T-6 til tilstanden RCVRSEL. En overføring fra den lokale prosessor innledes. Hvis SNDACK ikke bekreftes, utløses overgangen T-14 og IPB-regulatcren fortsetter med sin utspørring til den neste lokale prosessor.
I tilstanden OQRCVRSEL er en overføring fra gruppemodulen iferd med å finne sted. IPB-regulatoren velger den utspurte lokalprosessor og bekrefter med RCVCMD. Hvis den lokale prosessor svarer med RCVACK utløses overgangen T-ll til tilstanden OQSEND, i motsatt fall utløses overgangen T-9 til tilstanden POLL.
I tilstanden OQSEND er en overføring fra gruppemodulen til den lokale prosessor igang. 16 dataord fra OUTQ-bufferen sikres overfort til databussen og mottas av den lokale prosessor. IPB-klokken 88 som befinner seg i IPB-regulatoren 30, frembringer et klokkesignal som gjentatte ganger utløser overgangen T-4 for å utføre denne funksjon. Når overføringen er fullført, utløses overgangen T-3 til tilstanden POLL.
I tilstanden RCVRSEL er en overføring fra den lokale prosessor iferd med å finne sted. IPB-regulatoren undersøker gruppenummeret i den tidligere fastlagte bestemmelsesadresse.
Hvis denne er lik 0, hvilket angir en lokal overføring, vil IPB-regulatoren velge den lokale bestemmelsesprosessor og
angi RCVCMD. Ved et svar med RCVACK utløses overgangen T-5
til STDSEND, og i motsatt fall utløses overgangen T-7 til POLL-tilstanden.
Hvis gruppenummeret ikke er lik 0, hvilket angir en overføring over nettet, vil IPB-regulatoren undersøke om den er i stand til å motta pakken for gruppemodulen (signalet INQFULL) samt flytkontrollstatus for bestemmelsesprosessoren (signalet INQSTAT, det tilordnede flagg i INQ/STAT-tabellen). Hvis både INQFULL og INQSTAT er negative (hvilket vil si at inngangs-bufferen ikke er fullt og ingen stopp-melding er sendt ut), utløses overgangen T-12 til tilstanden SEND2INQ, hvis derimot enten INQFUL eller INQSTAT foreligger, utløses overgangen T-7 til POLL-tilstanden.
I tilstanden STDSEND er en overføring fra en første til en annen lokal prosessor igang. 16 dataord fra den lokale avsenderprosessor sikres overført til databussen og mottas av den lokale bestemmelsesprosessor. IP3-klokken 88, som befinner seg i IPB-regulatoren 30, frembringer et klokkesignal som gjentatte ganger utløser overgangen T-l for å utføre denne funksjon. Når overføringen er fullført, utløses overgangen T-8 til tilstanden POLL.
Fig. llb er en tabell som viser de tilstander som utløser hver av de foreskjellige tilstandsoverganger T-l til og med T-14. I hvert tilfelle er det første ledd i den logiske ligning den foreliggende tilstand. Leddet CNT-15 henviser til antall ord i en pakke (se fig. 5) som følges opp under overføring og mottagelse av pakker for å holde systemet i synkro-nisme.
Skjønt oppfinnelsen er blitt forklart under henvisning til
en foretrukket utførelse, vil fagfolk på området erkjenne ut fra denne redegjørelse, at andre utførelser av foreliggende oppfinnelse lett kan oppstilles uten å avvike fra oppfinnelsen eller å gå ut over oppfinnelsens ramme.

Claims (3)

1. Nettverk av multiprosessor-systemer og som omfatter flere multiprosessor-systemer som hvert enkelt omfatter minst en prosessor (10) tilkoblet en databuss (12,14) som forbinder prosessorene innbyrdes i det enkelte multiprosessor-system, samt flere grensesnittenheter (18,20) som hver er tilkoblet en av nevnte databusser (12,14), idet: - hver av grensesnittenhetene også er forbundet med minst en annen av grensesnittenhetene ved hjelp av minst en datakjede (22,24,26,28), således at hver grensesnittenhet har egenskapen av å være forbundet med alle de andre grensesnittenhetene i nettverket, og - hver av grensesnittenhetene omfatter: . styreorganer (32,36,52) for styring av overføringen av meldingspakker til og fra vedkommende grensesnittenhet over den datakjede (22,24,26,28) som forbinder grensesnittenheten med dens nabogrensesnittenhet, samt over den databuss (12,14) som vedkommende grensesnittenhet er tilkoblet, samt . en bufferhukommelse (34) for midlertidig lagring av meldingspakker som skal overføres til en hvilken som helst prosessorer (10) i nettverket, karakterisert ved at: - hver av grensesnittenhetene (18,20) befinner seg i et knutepunkt mellom en databuss (12,14) og en datakjede (22,24,26,28), slik at hver grensesnittenhet utgjør en knutepunkt-grensesnittenhet i nettverket, - nevnte bufferhukommelse (34) har et antall lagersteder som er inndelt i grupper av lagersteder, idet hver enkelt gruppe tilsvarer en bestemt av prosessorene i nettverket, og som er bestemmelsesprosessoren for alle meldingspakker anbragt i vedkommende gruppe av lagersteder, og - nevnte styreorganer (32,36,52) også omfatter utstyr for å avgjøre når en gruppe av lagersteder i bufferhukommelsen (34) i vedkommende knutepunkt-grensesnittenhet, og som tilsvarer en bestemt bestemmelsesprosessor (10), er full, og for å stanse overføringen av nevnte meldingspakker beregnet for denne bestemmelsesprosessor så lenge nevnte gruppe av lagersteder er full.
2. Nettverk av multiprosessor-systemer ifølge krav 1, karakterisert ved at nevnte knutepunkt-grensesnittenheter (18,20) er tilkoblet hver sin av nevnte databusser (12,14) samt er innbyrdes forbundet ved hjelp av-en eller flere ringformede datakjeder (22,24,26,28).
3. Nettverk av multiprosessor-systemer ifølge krav 1 eller 2, karakterisert ved at nevnte styreorganer (32,26,52) i hver knutepunkt-grensesnittenhet (18,20) også omfatter utstyr (32) for å avgjøre-hvor mange av lagerstedene som er fulle i en gruppe av lagersteder i bufferhukommelsen (34) i vedkommende knutepunkt-grensesnittenhet.
NO833922A 1982-10-28 1983-10-27 Nettverk av multiprosessor-systemer. NO167341C (no)

Applications Claiming Priority (2)

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

Publications (3)

Publication Number Publication Date
NO833922L NO833922L (no) 1984-04-30
NO167341B true NO167341B (no) 1991-07-15
NO167341C NO167341C (no) 1991-10-23

Family

ID=27031305

Family Applications (1)

Application Number Title Priority Date Filing Date
NO833922A NO167341C (no) 1982-10-28 1983-10-27 Nettverk av multiprosessor-systemer.

Country Status (13)

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

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
DK167416B1 (da) 1993-10-25
IL70074A0 (en) 1984-01-31
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
NO167341B (no) Nettverk av multiprosessor-systemer.
US4667287A (en) Multiprocessor multisystem communications network
EP0391583B1 (en) Dual-path computer interconnect system with four-ported packet memory control
JP2566681B2 (ja) 多重プロセッシング・システム
US7668923B2 (en) Master-slave adapter
US7574629B2 (en) Method and device for switching between agents
US20050091383A1 (en) Efficient zero copy transfer of messages between nodes in a data processing system
US20050078559A1 (en) Global recovery for time of day synchronization
JP5148707B2 (ja) 待ち行列形成方法
JPH0319745B2 (no)
JPH05501041A (ja) 高速パケットスイッチング装置および方法
JPH086854A (ja) アウトボードファイルキャッシュ外部処理コンプレックス
WO2012010497A1 (en) Register access in distributed virtual bridge environment
US5293377A (en) Network control information without reserved bandwidth
CN104731733A (zh) 用于跨数据处理系统的接口的频率确定的系统和方法
US20050080869A1 (en) Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer
JPH07183898A (ja) Atm交換技術における不整順序のセル流に対して所定の順序を回復する方法
US20050080920A1 (en) Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
CN104731757A (zh) 用于基于已删除命令确定命令速率的系统和方法
WO1992006435A1 (en) Message control system in a data communication system
JP3641834B2 (ja) 並列プロセッサシステムおよびそれに適したパケット廃棄方法
US20080107116A1 (en) Large scale multi-processor system with a link-level interconnect providing in-order packet delivery
JP4655733B2 (ja) リング型二重化ネットワークにおける受信方法及び装置
CN115643205A (zh) 数据生产和消费主体的通信控制单元、及相关装置和方法
JPH0318380B2 (no)