NO312610B1 - Datamaskin-system - Google Patents

Datamaskin-system Download PDF

Info

Publication number
NO312610B1
NO312610B1 NO19950780A NO950780A NO312610B1 NO 312610 B1 NO312610 B1 NO 312610B1 NO 19950780 A NO19950780 A NO 19950780A NO 950780 A NO950780 A NO 950780A NO 312610 B1 NO312610 B1 NO 312610B1
Authority
NO
Norway
Prior art keywords
bus
transaction
communication
agent
computer system
Prior art date
Application number
NO19950780A
Other languages
English (en)
Other versions
NO950780D0 (no
NO950780L (no
Inventor
Nitin V Sarangdhar
Wen-Han Wang
Michael W Rhodehamel
James M Brayton
Amit Merchant
Matthew A Fisch
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of NO950780D0 publication Critical patent/NO950780D0/no
Publication of NO950780L publication Critical patent/NO950780L/no
Publication of NO312610B1 publication Critical patent/NO312610B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Multi Processors (AREA)

Description

Den foreliggende oppfinnelsen vedrører fagfeltet datamaskin-systemer. Mer spesielt vedrører denne oppfinnelsen å opprettholde cache-koherens og prosessor-konsistens i et datamaskin-system under kommunikasjons-transaksjoner.
Et typisk tidligere kjent datamaskin-system med flere prosessorer er realisert ved en mengde prosessorer koplet for kommunikasjon over en buss. Et slik datamaskin-system med flere prosessorer omfatter typisk ett eller flere inn/ut delsystemer og minne-delsystemer koplet til bussen. Hver prosessor, hvert inn/ut-delsystem, og hvert minnedelsystem koplet til bussen fungerer vanligvis som en bussagent på bussen. Bussagentene koplet til en buss kan henvises til som en bussklynge.
En bussklynge kan koples til en eller flere andre bussklynger gjennom systemforbindelsesbusser eller kommunikasjonsnettverk. Vanligvis muliggjør nodegrensesnitt-delsystemer koplet som bussagenter til bussene kommunikasjon mellom bussklyngene.
Prosessorene i hver bussklynge av et slikt system inneholder vanligvis interne data-cacher som reflekterer datalagringen tilveiebrakt av minnesubsystemet i bussklyngene. Slike prosessorer vedlikeholder vanligvis interne cache-data i henhold til en mengde forhåndsdefinerte cache-datatilstander. Slike cache-datatilstander indikerer typisk hvor vidt en intern cache-linje er gyldig, modifisert eller delt med andre bussagenter i systemet.
Vanligvis implementerer hver bussagent som har en intern cache en cache-kontroller som overvåker bussen for kommunikasjonstransaksjoner som påvirker cache-tilstanden i interne cache-data. Slik overvåking kalles vanligvis "snusing" ("snooping") av bussen. Bussagentene som snuser på bussen benytter snuse-resultatene til å oppdatere de interne cache-datatilstandene. Bussagenter som kringkaster snuse-status for en cache-linje over bussen sier å ha "snuseeierskap av cache-linjen.
De forhåndsbestemte cache-tilstandene muliggjør prosessorkonsistens i hele systemet ved å informere hver prosessor som har en intern data-cache hvorvidt tilgang til en intern cache-linje krever koordinering med andre bussagenter i systemet. For eksempel utsteder en prosessor som ønsker å skrive til en intern cache-linje som har en felles cache-tilstand vanligvis en leseeierskap eller ugyldiggjør transaksjon til de andre bussagentene før den skriver internt til cache-linjen. Les eierskap eller ugyldiggjør transaksjon muliggjør oppdatering av cache-linjen for den utstedende bussagenten, ugyldiggjør cache-tilstanden for cache-linjen i de andre bussagentene og får den andre bussagentene til å overgi snuseeierskap for cache-linjen.
I tillegg utsettes enkelte kommunikasjons-transaksjoner i et slikt system for relativt høy busslatens. For eksempel har en kommunikasjons-transaksjon utstedt av en bussagent i en bussklynge som krever tilgang til en annen bussklynge vanligvis en relativt høy busslatens. Typisk inntreffer relativ høy busslatens når nodegrensesnittenes bussagenter buffrer og videresender kommunikasjons-transaksjonen mellom de angjeldende bussklynger.
Slike busstransaksjoner med høy latens hindrer kommunikasjon i systemet, fordi andre kommunikasjons-transaksjoner vanligvis forsinkes inntil transaksjonene med høy latens fullføres. De påfølgende kommunikasjons-transaksjonene forsinkes vanligvis fordi snuseresultatene fra buss-transaks j onene med høy latens kan være nødvendig for å vedlikeholde prosessor-konsistens gjennom påfølgende kommunikasjons-transaksjoner. For eksempel kan snuseeierskap for en cache-linje eller cache-tilstanden på en cache-linje endres i løpet av transaksjonen med høy buss-latens. Uheldigvis reduserer forsinkelsene forårsaket av kommunikasjons-transaksjoner med høy buss-latens systemets totale kommunikasjons-kapasitet .
Et formål med den foreliggende oppfinnelsen er å tilveie-bringe et system som forhindrer buss-transaksjoner med høy latens i å senke kommunikasjons-kapasiteten.
Ett annet formål med den foreliggende oppfinnelsen er å hindre busstransaksjoner med høy latens i å forsinke kommuni- kasjonen ved å utsette fullførelsen av kommunikasjons-transaksjonene på bussen med høy latens samtidig som cache-koherens opprettholdes på hele systemet.
Ett annet formål med den foreliggende oppfinnelsen er å opprettholde cache-koherens i hele systemet gjennom utsatte (forsinkede) kommunikasjons-transaksjoner i et system som har multiple bussklynger.
Et annet formål med den foreliggende oppfinnelsen er å opprettholde prosessorkonsistens gjennom utsatte (forsinkede) kommunikasjons-transaksjoner i et system som har flere prosessorer og flere bussklynger.
Ett ytterligere formål med den foreliggende oppfinnelsen er å implementere bussagenter som følger en gitt mengde overgangsregler for cache-tilstanden, for å opprettholde system ved cache-koherens gjennom utsatte kommunikasjons-transaks j oner.
Et annet formål med den foreliggende oppfinnelsen er å implementere bussagenter som overgir snuseierskap i løpet av utsatte transaksjoner ifølge en mengde snuseierskap-regler for å opprettholde systemvid cache-koherens og prosessor-konsistens .
Disse og andre formål med oppfinnelsen tilveiebringes i et første aspekt av oppfinnelsen av et datamaskin-system slik som definert i det vedføyde patentkrav 1. Systemet omfatter en spørrende bussagent og en adressert bussagent koplet til en buss. Den spørrende bussagenten utsteder en kommunikasjons-transaks jon over bussen. Den adresserte bussagenten registrer kommunikasjons-transaksjonen og utsetter kommunikasjons-transaks jonen hvis kommunikasjons-transaksjonen krever en busslatens større enn en forhåndsbestemt busslatens. Den utsatte transaksjonen blir senere fullført utenfor tur i løpet av en utsatt (forsinket) svartransaksjon på bussen. En annen bussagent koplet til bussen kan overstyre utsettelsen av kommunikasjons-transaksjonen, og fullføre kommunikasjons-transaks jonen i tur.
Overføring av snuseierskap for en cache-linje spesifisert av den utsatte kommunikasjons-transaksjonen forsinkes inntil den utsatte kommunikasjons-transaksjonen fullføres. Den interne cache-tilstandsovergangen for den spørrende bussagenten blir også forsinket inntil den utsatte kommunikasjons-transaksjonen fullføres. Den spørrende bussagenten og den adresserte bussagenten følger spesielle overgangsregler for cache-tilstand mellom den utsatte transaksjonen og den utsatte svar-transaksjonen som avslutter den utsatte transaksjonen.
I et andre aspekt av foreliggende oppfinnelse er det tilveiebrakt en fremgangsmåte for kommunikasjon i et datamaskinsystem, og fremgangsmåten defineres i det vedføyde patentkrav 27. I et tredje aspekt av oppfinnelsen er det tilveiebrakt et datamaskin-system slik som definert i det vedføyde patentkrav 34.
Andre formål, trekk og fordeler ved den foreliggende oppfinnelsen vil gå frem av de vedføyde tegningene, og fra den detaljerte beskrivelsen nedenfor.
Den foreliggende oppfinnelsen er vist ved hjelp av eksempler og begrenses ikke i figurene i de vedføyde tegningene, hvor like referanser indikerer tilsvarende elementer og hvor: Fig. 1 viser et datamaskin-system som omfatter et par bussklynger; Fig. 2 er et tidsinnstillingsdiagram som viser et par kommunikasjons-transaksjoner over en buss, og viser en mengde bussfaser; Fig. 3 viser en prosessor for en utførelsesform som omfatter en intern data-cache, en minnetilgangs-krets, og transaksjonskøer for å spore utsatte transaksj oner; Fig. 4 viser en nodegrensesnittkrets for en utførelsesform som omfatter transaksjonskøer for å spore utsatte transaksjoner, og for å videreformidle utsatte transaksjoner mellom bussklynger; Fig. 5 viser en lesetransaksjon på en buss som mottar en utsatt respons, og viser en tilhørende utsatt svartransaksjon; Fig. 6 viser oppfanging av snuseierskap av et minnedelsystem etter indikasjon på en forsinket respons på en ugyldiggjør linje-forespørsel fra en prosessor; Fig. 7A - 7B viser et flytdiagram som illustrerer håndteringen av en kommunikasjons-transaksjon av nodegrensesnittkretsen; Fig. 8 er et flytdiagram som viser en lesetransaksjon fra en spørrende bussagent; Fig. 9 er et flytdiagram som viser en skrivetransaksjon eller en ugyldiggjørings-transaksjon fra en spørren-de bussagent; Fig. 10 oppsummerer cache-tilstandsovergangene for en spørrende bussagent som utsteder en lesetransaksjon; Fig. 11 oppsummerer cache-tilstandsovergangene for en spørrende bussagent som utsteder en ugyldiggjørings-transaksjon for å ugyldiggjøre en cache-linje; Fig. 12 viser cache-tilstandsovergangene for en spørrende bussagent som utsteder en les for eierskap-transaksjon; Fig. 13 oppsummerer cache-tilstandsovergangene for en spørrende bussagent som utsteder en
gj ennomskrivings-1ransaksj on.
Figur 1 viser et datamaskin-system som omfatter en bussklynge 10 og en bussklynge 12. I en utførelsesform kommuniserer bussklyngene 10 og 12 over en systemforbindelses-buss 140. I en annen utførelsesform muliggjøres kommunikasjon mellom bussklyngene 10 og 12 av et lokalnett (ikke vist).
Bussklyngen 10 omfatter en mengde prosessorer 20-23, en nodegrensesnitt-krets 24, en inn/ut-krets 25, og minnedel-systemet 26. Prosessorene 20-23, nodegrensesnitt-kretsen 24, inn/ut-kretsen 25 og minnedel-systemet 26 er koplet for å fungere som bussagenter på en buss 30. Selv om to klynger 10 og 12, og fire prosessorer 20-23 er vist for illustrasjons-formål, kan andre antall benyttes i henhold til systemet i den foreliggende oppfinnelse.
Bussklyngen 12 omfatter en mengde prosessorer 50-59, en nodegrensesnittkrets 53, en inn/ut-krets 54, og et minnedel system 55. Prosessorene 50-52, nodegrensesnittkretsen 53, inn/ut-kretsen 54 og minnesubsystemet 55 fungerer som bussagenter på en buss 60.
Nodegrensesnitt-kretsene 24 og 53 er forbindelses- eller brokretser mellom bussklynger, som muliggjør kommunikasjon mellom bussklyngene 10 og 12 over systemforbindelsesbussen140. Nodegrensesnittkretsen 24 er en bussagent på bussen 30. Nodegrensesnittkretsen 24 reagerer på kommunikasjons-transaks joner på bussen 3 0 som er rettet til en bussagent koplet til bussen 60. Nodegrensesnittkretsen 24 får da nodegrensesnittkrets 53 til å generere en tilhørende kommunikasjons-transaksjon over bussen 60 for å aksessere bussagenten som var målet.
Nodegrensesnitt-kretsene 24 og 23 (der skulle det vært 53) implementerer interne transaksjonskøer for å buffre transaksjons-informasjon, og for å formidle kommunikasjons-transaksjoner mellom bussene 30 og 60.
Figur 2 er et tidsinnstillings-diagram som viser et par kommunikasjons-transaksjoner A og B over bussen 30. En kommunikasjons-transaksjon over bussen 30 omfatter en mengde bussfaser. I en utførelsesform kan bussfåsene til bussen 30 omfatte en meklingsfase, en forespørselsfase, en feilfase, en snusfase, en responsfase og en datafase.
Bussfasen til bussen 30 omfatter en forhåndsbestemt mengde signaler som overfører informasjon fra denne bussfasen. Disse kommunikasjons-transaksjoner over bussen 3 0 benytter en delmengde av bussfåsene. Dataoverførings-bussfasen og responsfåsene kan overlappe andre bussfaser.
En bussagent som styrer bussen 3 0 og innleder en kommunikasjons-transaksjon sies å eie bussen 30. EN bussagent som innleder en kommunikasjons-transaksjon over bussen 3 0 kalles den spørrende bussagenten for denne transaksjonen. EN bussagent som adresseres i løpet av forespørselsfasen av en kommunikasjons-transaksjon over bussen 30 kalles den adresserte bussagenten eller den svarende bussagenten for denne transaksj onen.
En bussagent må eie bussen 30 før den innleder en kommunikasjons-transaksjon. En kommunikasjons-transaksjon begynner med en meklingsfase hvor en bussagent som ønsker å be om kommunikasjons-transaksjonen søker eierskap av bussen 30.
I løpet av meklingsfasen blir den spørrende bussagenten eieren av bussen 30. Meklingsfasen for kommunikasjons-transaksjon A begynner i løpet av tiden Tl, og meklingsfasen for kommunikasjons-transaksjonen B begynner i løpet av tiden T4.
Etter en bussagent har oppnådd eierskap av bussen 30, går kommunikasjons-transaksjonen inn i forespørselsfasen. Forespørselsfasen for kommunikasjons-transaksjonen A begynner i løpet av tiden T3, og forespørselsfasen for kommunikasjons-transaksjonen B begynner i løpet av tiden T6. I løpet av forespørselsfasen overfører eieren av bussen 3 0 som spørrende bussagent en kommunikasjons-forespørsel, og plasserer informasjon på bussen 30. I en utførelsesform omfatter forespørsels-fasen på bussen 30 to perioder av buss 30's klokke (BCLK).
I den første perioden av forespørselsfasen plasserer den spørrende bussagenten et adressevarslings- (ADS) signal (ikke vist) på bussen 30, og overfører en spørrende adresse og annen spørreinformasjon på bussen 30. Spørreadressen og spørreinformasjonen gjør det mulig for bussagentene koplet til bussen 30 å utføre snuseoperasjoner og minnetilgangs-operasjoner. I den andre perioden av spørrefasen bekrefter den spørrende bussagenten de passende aktiveringssignalene, og overfører en forsinket identifikator sammen med annen transaksjonsinformasjon på bussen 30. Den forsinkede identifikatoren benyttes av den passende svarende bussagenten når det er nødvendig å utsette responsen til kommunikasjons-transaks j onen.
Forespørselsfasen følges av feilfasen i en kommunikasjons-transaks jon. Feilfasen til kommunikasjons-transaksjon A begynner i løpet av tid T6, og feilfasen for kommunikasjons-transaksjonen B begynner i løpet av tiden T9. I feilfasen signaliserer bussagentene koplet til bussen 3 0 feil så som paritetsfeil som trigges av kommunikasjonsforespørselen utstedt i løpet av forespørselsfasen.
Snusfasen etterfølger feilfasen hvis kommunikasjonsfasen ikke kanselleres av en feilindikasjon i løpet av feilfasen.Snusfasen for kommunikasjons-transaksjonen A begynner i løpet av tid T7, og snusfasen for kommunikasjons-transaksjon B begynner i løpet av tid T10.
I løpet av snusfasen til en kommunikasjons-transaksjon, indikerer bussagentene koplet til bussen 30 snusresultater som svarer til forespørselsadressen overført i løpet av forespørselsfasen til kommunikasjons-transaksjonen.Snusresultatene indikerer om en tilhørende forespørselsadresse viser til en gyldig eller modifisert (skitten) cache-linje i en intern cache i en bussagent koplet til bussen 30. Snusresultatene indikerer også om transaksjonen vil fullføres i den rekkefølgen den kom inn, og om transaksjonen kan bli utsatt for mulig fullføring utenom rekkefølgen.
Responsfasen etterfølger snusfasen hvis kommunikasjons-transaksjonen ikke kanselleres av en feilindikasjon i løpet av feilfasen. responsfasen for kommunikasjons-transaksjonen A begynner i løpet av tid T13, og responsfasen for kommunikasjons-transaksjonen B begynner i løpet av tid T16.
I løpet av responsfasen indikerer den svarende bussagenten for kommunikasjons-transaksjonen om kommunikasjons-transaksjonen ble vellykket, forsinket, forsøkt på nytt eller mislyktes. I løpet av responsfasen indikerer den svarende bussagenten også om kommunikasjons-transaksjonen omfatter en datafase. I en utførelsesform omfatter de vanlige indikasjo-nene fra den svarende agenten i løpet av responsfasen en normal dataindikasjon, en implisitt tilbakeskrivings-indikasjon, en indikasjon på ingen data, en indikasjon på alvorlige feil, en indikasjon på utsatt transaksjon og en indikasjon på nytt forsøk.
Kommunikasjons-transaksjonen er komplett etter responsfasen hvis kommunikasjons-transaksjonen ikke har en datafase. Ellers sammenfaller datafasen med responsfasen, og kan strekke seg utover responsfasen. Datafasen for kommunikasjons-transaksjon A begynner i løpet av tid T13, og datafasen for kommunikasjons-transaksjon B begynner i løpet av tid T16.
For eksempel inntreffer datafasen for den spørrende bussagenten ved overføring av skrivedata over bussen 30 i løpet av en skrivetransaksjon. Datafasen inntreffer også for den spørrende bussagenten ved motta av leste data fra den svarende bussagenten i løpet av en lesetransaksjon.
En kommunikasjons-transaksjon behøver ikke omfatte alle bussfåsene nevnt over, og bussfåsene behøver ikke inntreffe i den rekkefølgen de har nevnt over. For eksempel overlapper responsfasen begynnelsen av datafasen ved lesetransaksjoner. Responsfasen trigger datafasen for skrive-transaksjoner. Kommunikasjonstransaksjoner som ikke blir kansellert i løpet av feilfasen har svar, feil, snus og responsfåsene. Datafasen inntreffer kun hvis kommunikasjons-transaksjonen krever dataoverføring. Når datafasen inntreffer kan dette indikeres av en bussagent i løpet av spørrefasen, responsfasen eller snusfasen.
Meklingen om eierskap av bussen 3 0 kan være eksplisitt mekling i løpet av meklingsfasen eller implisitt mekling. Meklingsfasen inntreffer kun hvis en bussagent som krever eierskap av bussen 30 for den neste kommunikasjons-transaksjonen ikke allerede har eierskapet.
Arkitekturen til buss 30 muliggjør innrettede (pipeline) kommunikasjons-transaksjoner hvor de forskjellige bussfasene til de innrettede transaksjonene overlapper. I en utførelses-form er bussen 3 0 konfigurert for å støtte inntil åtte utestående kommunikasjons-transaksjoner samtidig. I en modus kan hver prosessor 20-23 utstede inntil fire utestående kommunikasjons-transaksjoner på bussen 30. De innrettede kommunikasjons-transaksjonene mottar responser og data over bussen 3 0 i samme rekkefølge som kommunikasjons-transaksjoner blir innledet på bussen 30.
Hver bussagent koplet til bussen 30 vedlikeholder internt en mengde busstransaksjons-køer som vedlikeholder transaksjons -informasjon for å spore kommunikasjons-transaksjonene. Transaksjons-informasjonen omfatter antall utestående transaksjoner, en identifikator for den neste transaksjonen som skal snuses, en identifikator for den neste transaksjonen som skal motta et svar, og et flagg som indikerer transaksjonene utstedt av denne bussagenten.
Hver bussagent koplet til bussen 30 logger busstransaksjons-informasjonen for alle transaksjoner i en intern kø kalt rekkefølgekøen (IOQ).
Alle bussagenter koplet til bussen 3 0 vedlikeholder identisk rekkefølgekøstatus for å spore kommunikasjons-transaksjonen utstedt på bussen 30. Hver kommunikasjons-transaks jon inkludert utsatte transaksjoner utstedt på bussen30legges inn i rekkefølgekøen til hver bussagent koplet til bussen 30. For hver bussagent er kommunikasjons-transaksjonen ved toppen av rekkefølgekøen den neste transaksjonen som skal inngi svar og datafåsene.
En spørrende bussagent som innleder en kommunikasjons-transaksjon indikerer om kommunikasjons-transaksjonen tillates utsatt ved å utstede et signal (DEN#) for tillatelse til utsettelse i løpet av spørrefasen til kommunikasjons-transaksjonen. Et utsatt svar til kommunikasjons-transaksjonen tillates ikke hvis signalet for tillatelse til utsettelse er inaktivt i løpet av spørrefasen til transaksjonen. Bussagenten med lav toleranse for transaksjonslatens kan utstede kommunikasjons-transaksjoner med signalet for tillatelse til utsettelse inaktivt for å sikre at transaksjonen fullføres innen et begrenset latenskrav.
I snusfasen til en kommunikasjons-transaksjon indikerer bussagentene koplet til bussen 30 om kommunikasjons-transaksjonen blir fullført i rekkefølge, eller om transaksjonen vil bli utsatt og fullført utenom rekkefølge. En svarende bussagent indikerer at kommunikasjons-transaksjonen vil bli utsatt ved å utstede et signal for utsettelse (UTSETT#) i løpet av kommunikasjons-transaksjonens snusfase.
Parallelt indikerer en snusende bussagent at kommunikasjons-transaksjonen vil bli fullført i rekkefølge ved å utstede et signal for modifisert treff (det aktive lave HITM#, heretter HITM) i løpet av snusfasen til kommunikasjons-transaksjonen. En snusende bussagent utsteder HITM-signalet i løpet av snusfasen hvis bussagenten inneholder dataene spesifisert av den etterspurte adressen til kommunikasjons-transaksjonen i en intern data-cache i en modifisert cache-tilstand.
Fullførelsen av en kommunikasjons-transaksjon i rekke-følge på bussen 30 indikeres av et inaktivt UTSETT-signal eller et aktivt HITM-signal i løpet av snusfasen til kommunikasjons-transaksjonen, etterfulgt av normal fullførelse eller implisitt tilbakeskrivings-indikasjon i løpet av responsfasen til transaksjonen. EN snusende bussagent som inneholder data i en modifisert cache-tilstand er i stand til å fullføre kommunikasjons-transaksjonen i rekkefølge selv om den adresserte bussagenten kan utstede UTSETT-signalet i løpet av snusfasen. Som konsekvens av dette overstyrer indikasjonen på et modifisert treff UTSETT-signalet i løpet av snusfasen, slik at det gir fullføring av kommunikasjon-transaksjonen i rekkefølge.
Spørrende bussagenter koplet til bussen 3 0 som er bygget uten kretser for å utføre forsinkede eller utsatte svar benytter signalet om tillatelse til utsettelse for å forhindre utsatte svar. En kommunikasjons-transaksjon utstedt med signalet om tillatelse til utsettelse inaktiv kan fullføres i rekkefølge eller forsøkt på nytt, men ikke utsettes.
En svarende bussagent koplet til bussen 30 indikerer et nytt forsøk på en kommunikasjons-transaksjon i løpet av responsfasen til kommunikasjons-transaksjonen. Tilstanden ved nytt forsøk indikeres av et aktivt UTSETT-signal og et inaktivt HITM-signal i løpet av snusfasen til kommunikasjons-transaksjonen, etterfulgt av en indikasjon på et nytt forsøk i løpet av responsfasen til kommunikasjons-transaksjonen.
Spørrende bussagenter koplet til bussen 30 som er bygget med kretser for å utføre utsatte svar kan tillate utsatte svar med signalet for tillatelse til utsettelse. En kommunikasjons-transaksjon utstedt med signalet for tillatelse til utsettelse aktivt kan fullføres i rekkefølge, forsøkt på nytt, eller utsettes. En utsatt kommunikasjons-transaksjon indikeres med et aktivt UTSETT-signal og et inaktivt HITM-signal i løpet av snusfasen til kommunikasjons-transaksjonen, etterfulgt av en utsatt svarindikasjon i løpet av responsfase til kommunikasjons-transaksjonen.
Hver bussagent koplet til bussen 30 fjerner en kommunikasjons-transaksjon fra rekkefølgekøen hvis et utsatt svar eller et svar om nytt forsøk indikeres for kommunikasjons-transaksjonen. En spørrende bussagent som mottar svar om nytt forsøk gjentatte ganger, innleder transaksjonen inntil et utsatt svar er indikert, eller inntil fullførelse i rekkefølge er indikert.
En bussagent som indikerer et utsatt svar i løpet av en kommunikasjons-transaksjon låser den forsinkede identifikatoren utstedt i løpet av spørrefasen til kommunikasjons-transaksjonen. Bussagenten som indikerer den utsatte responsen kalles den utsettende bussagenten. En utsettende bussagent fullfører deretter en busstransaksjon med nødvendig latens. Når transaksjonen er fullført innleder den utsettende bussagenten en tilhørende utsatt svartransaksjon over bussen 3 0 for å fullføre den opprinnelige transaksjonen. Den utsettende bussagenten overfører den låste, utsatte identifikatoren for den utsatte transaksjonen som spørreadresse i løpet av spørrefasen til den utsatte svartransaksjonen.
Den utsettende bussagenten genererer den tilhørende utsatte svartransaksjonen for å overføre fullførelses-status for den utsatte transaksjonen. Den utsettende bussagenten overfører den utsatte identifikatoren over adresselinjene til bussen 3 0 i løpet av spørrefasen til det utsatte svaret.
En utsatt svar-transaksjon på bussen 30 behøver ikke å omfatte en datafase. I dette tilfellet bekrefter den utsettende bussagenten en ingen-datarespons i løpet av responsfasen til den utsatte svartransaksjonen for å indikere ingen data. For eksempel utsteder prosessoren 20 ugyldiggjørings-transaksjoner over bussen 30 i løpet av "les for eierskap" av cache-linje operasjoner. Hvis en ugyldiggjørings-transaksjon mottar en utsatt respons, innleder den utsettende bussagenten deretter en utsatt svartransaksjon, og bekrefter en ingen datarespons i løpet av responsfasen til den utsatte svar- transaksjonen. Ingen datarespons indikerer at den utsatte svartransaksjonen ikke har en datafase.
En utsettende bussagent bekrefter en datarespons (normale data eller implisitt tilbakeskriving) i løpet av responsfasen til en utsatt svartransaksjon for å indikere at den utsatte svartransaksjonen omfatter en datafase. Den spørrende bussagenten som forårsaket det utsatte svaret innser at data blir returnert i løpet av den utsatte svartransaksjonen. Den spørrende bussagenten som forårsaket det utsatte svaret mottar data over bussen 30, og oppdaterer om nødvendig den interne cachen og cache-datatUstanden.
Cache-datatUstanden for en utsatt les linje transaksjon på bussen 30 indikeres av et HIT-signal (det aktive lave HIT#, heretter HIT) etter fullførelse av det utsatte svaret for les linje-transaksjonen. En utsettende bussagent som genererer et utsatt svar for en utsatt ugyldiggjør minne-transaksjon på bussen 30 som finner en modifisert cache-linje på bussen 30 bekrefter HITM-signalet i løpet av snusfasen til det utsatte svaret på bussen 30. Modifisert HIT-signalet på bussen 30 tillater retur av de uventede cache-data fra bussklyngen 12 i løpet av det utsatt svaret på bussen 30. I tillegg indikerer snusfasen på bussen 30 endringer i lengden av returnerte data.
Bussagenter benytter den utsatte responsmekanismen hvis en operasjon spurt etter av en kommunikasjons-transaksjon har en vesentlig latens. Den utsatte responsmekanismen benyttes av ikke-blokkerende bussbrokretser på bussen 3 0 for å garantere fremoverrettet fremdrift i kommunikasjons-transaksjoner over en slik bussbro.
Bussagenter koplet til bussen 3 0 har spesielle prosessor-ordning og snusansvar i løpet av en utsatt kommunikasjons-transaksjon. UTSETT-signalet er en tidlig indikasjon til den spørrende bussagenten at transaksjonen kan utsettes og at fullføring av transaksjonen i rekkefølge ikke er garantert. Den tidlige utsatt respons-indikasjonen får den spørrende bussagenten til å stoppe utstedelse av påfølgende transaksjoner som er avhengig av rekkefølgen, inntil den utsatte transaksjonen er fullført tilfredsstillende.
Et aktivt HITM-signal i løpet av snusfasen overstyrer et aktivt UTSETT-signal. HITM-signalet indikerer at en bussagent koplet til bussen 30, og som har en intern data-cache, tar ansvaret for fullføring av kommunikasjons-transaksjonen i rekkefølge med en implisitt tilbakeskriving.
Hvis HITM-signalet er inaktivt i løpet av snusfasen til en kommunikasjons-transaksjon på bussen 30 utsatt av UTSETT-signal, så er den adresserte bussagenten ansvarlig for å generere en respons til den utsatte transaksjonen. Den adresserte bussagenten tar også snusansvar for cache-linjen adressert av den utsatte transaksjonen. Den adresserte bussagenten snuser cache-linjen til den utsatte transaksjonen gjennom påfølgende kommunikasjon-transaksjoner på bussen 30 som blir rettet mot samme adresse. Den spørrende bussagenten for den utsatte transaksjonen behøver ikke å ta snusansvar for cache-linjen inntil den utsatte transaksjonen er fullført med en utsatt svartransaksjon på bussen 30.
Hvis HITM-signalet er inaktivt, og UTSETT-signalet er bekreftet i løpet av snusfasen til kommunikasjons-transaksjonen, vil den adresserte bussagenten enten kansellere transaksjonen med en nytt forsøk-respons i løpet av responsfasen eller utstede en utsatt respons i løpet av responsfasen.
Hver svarende bussagent som støtter den utsatte responsmekanismen vedlikeholder et internt buffer for utsatte svar-transaks joner . En bussagent tilordner et element for hver utsatte transaksjon i det utsatte svarbufferet, og lagrer den utsatte identifikatoren for den utsatte transaksjon i utsatt svarbufferet.
En bussagent som utsetter en transaksjon ber om eierskap av bussen 30 etter den har utført den passende operasjonen som er påkrevd for å fullføre transaksjonen. Bussagenten utsteder en utsatt svartransaksjon over bussen 30 ved å bruke den utsatte identifikatoren som adresse i løpet av spørrefasen til den utsatte svartransaksjonen. Bussagenten tar også tilbake frie elementer id et interne utsatt svar bufferet.
Hver bussagent vedlikeholder internt en utestående transaksjonskø for utsatte identifikatorer. I løpet av en utsatt svartransaksjon, sammenlikner den spørrende bussagenten de utsatte svaradressene overført i løpet av spørrefasen med alle utsatte identifikatorer lagret i den utestående
transaksjonskøen. Hvis den utsatte svaradressen svarer til et element i den utestående transaksjonskøen, vil den spørrende bussagenten fjerne den tilhørende utsatte transaksjonen fra utestående transaksjonskøen, og fullføre den utsatte operasjonen.
Figur 3 viser prosessoren 20 i en utførelsesform.
Prosessoren 20 omfatter en intern data-cache 102, en minne-adresseringskrets 104, en instruksjonshente-linje (pipeline) 106, en ute-av-tur fordelingskrets 108 og en utførelseskrets 110. Prosessoren 20 omfatter videre en rekkefølgekøkrets 100, en snuskøkrets 12, og en utestående transaksjonskøkrets 114.
Hentelinjen 106 for instruksjoner henter en instruksjons-støm fra minndelsystemet 26 ifølge en sekvensiell program-orden. Instruksjonshentelinjen 106 overfører instruksjons-strømmen til ute-av-rekkefølge fordelingskretsen 108. Ute-av-rekkefølge fordelingskretsen 108 fordeler instruksjonene i instruksjonsstrømmen til den utførende kretsen 110 avhengig av tilgjengeligheten av kildedata for instruksjonene og utføringsressurser i utføringskretsen 110 i stedet for i den sekvensielle programrekkefølgen.
Ute-av-rekkefølge fordelingskretsen 108 fordeler minnetilgangs-instruksjoner inkludert last- og lagre-instruksjoner til minnetilgangskretsen 104. Minnetilgangskretsen 104 utfører minnetilgangsinstruksjonen ved å aksessere den interne data-cachen 102. Minneaksess-kretsen 104 legger kommunikasjons-transaksjoner inn i den utestående transaksjonskø-kretsen 114. Hvert element i den utestående transaksjonskø-kretsen 114 svarer til en kommunikasjons-transaksjon utstedt av prosessoren 20 over bussen 30. Hvert element i den utestående transaksjonskø-kretsen 114 indikerer om den tilhørende kommunikasjons-transaksjonen er utsatt, og indikerer den endelig cache-tilstanden for cache-linjen i samsvar med fullføringen av kommunikasjons-transaksjonen. I-rekkefølgekøkretsen 100 logger busstransaksjons-informasjon for bussen 30. Hvert element i i-rekkefølgekø-kretsen 100 svarer til en transaksjon på bussen 30. Hvert element i i-rekkefølgekøkretsen 100 inkluderer status til UTSETT og HITM-signalene for de tilhørende transaksjonene. Den utestående transaksjonskøkretsen 114 for informasjon for å bestemme den endelige cache-tilstanden for kommunikasjons-transaksjoner fra i-rekkefølgekøkretsen 100.
Snuskøkretsen 112 leser status av UTSETT og HITM-signalene fra i-rekkefølgekøkretsen 112. Snuskøkretsen 112 bestemmer snuseierskap-overføringer for hvert element i i-rekkefølgekøkretsen 100. Snuskøkretsen 112 bestemmer om en transaksjon krever at prosessoren 20 tar snuseierskap for en cache-linje, eller utsetter snuseierskap for cache-linjen, eller henter tilbake snuseierskap i løpet av en utsatt transaksjon.
Minnetilgangskretsen 104 og den utestående transaksjonskøkretsen 114 vedlikeholder cache-tilstandene for cache-linjene i den interne cachen 102. Cache-tilstandene for den interne data-cachen 102 omfatter en modifisert tilstand, en eksklusiv tilstand, en delt tilstand, og en ugyldig tilstand. En cache-linje i ugyldig tilstand er ikke en variabel i den interne data-cachen 102.
En cache-linje i den modifiserte tilstanden er lagret i modifisert form i den interne data-cachen 102. En modifisert cache-linje i den interne data-cachen er ikke til stede i minnedelsystemet 26 eller i en gyldig tilstand i noen av de interne data-cachene til prosessorene 21-23 eller i inn/ut-delsystemet 25. Tilsvarende er en modifisert oppfinnelse-linje i den interne data-cachen 102 ikke lagret i minnedel-systemet 55 eller i noen av de interne data-cachene til prosessorene 50-52 eller inn/ut delsystemet 54.
En cache-linje i den eksklusive tilstanden er lagret i den interne data-cachen 102. Cache-linjen i den eksklusive tilstanden er også til stede i enten minnedelsystemet 26 eller i minnedel-systemet 55.
En cache-linje i den delte tilstanden er lagret i den interne data-cachen 102. Den delte cache-linjen kan også være lagret i en intern data-cache i en hvilken som helst av prosessorene 21-23 eller 50-52, og er til stede i enten minnedelsystemet 26 eller minnedelsystemet 55.
Figur 4 viser nodegrensesnitt-kretsen 24 i en utførelses-form. Nodegrensesnitt-kretsen 24 omfatter en i-rekkefølge køkrets 70, en innkommende køkrets 74, og en utgående køkrets 76. Nodegrensesnittkretsen 24 omfatter videre en konflikt-detektorkrets 72, en cache-sammenhengstyrer 78 og en grensesnittkrets mot eksternt utstyrt. I-rekkefølgekøkretsen 70 logger kommunikasjons-transaksjonsinformasjon for bussen 30. Hver element i i-rekkefølgekøkretsen 70 svarer til en transaksjon på bussen 30. I-rekkefølgekøkretsen 70 overfører kommunikasjons-transaksjoner som krever tilgang til bussklynge 12 til den innkommende køkretsen 74. I-rekkefølgekøkretsen 70 oppretter utsatte svartransaksjons-elementer i den utestående køkretsen 76 for kommunikasjons-transaksjoner som krever tilgang til bussklyngen 12 og følgelig en senere utsatt svartransaksjon.
Grensesnittkretsen 80 mot omverdenen aksesserer kommunikasjons-transaksjoner fra den innkommende køkretsen 74 og utfører den påkrevde aksess til bussklyngen 12 over system-sammenkoplingsbussen 140. Grensesnittkretsen 80 mot omverdenen samler returnerende cache-linjedata og snusstatus fra bussklyngen 12 og skriver cache-linjedata og snusstatus til de passende utsatt svartransaksjons-elementene i den utgående køkretsen 76. Den utgående køkretsen 76 utsteder de samlede utsatte svartransaksjonene over bussen 30. Grensesnittkretsen 80 mot omverdenen fjerner fullførte transaksjoner mot omverdenen fra den innkommende køkretsen 74.
Konfliktdetektor-kretsen 72 aksesserer den innkommende køkretsen 74 og i-rekkefølgekøkretsen 70. Konfliktdetektor-kretsen 72 bestemmer om en transaksjon logget i i-rekkefølge-køkretsen 70 er bestemt for den samme cache-linjen som en ekstern transaksjon logget i den innkommende køkretsen 74. Konfliktdetektorkretsen 72 legger inn et ugyldiggjør linje- element for en tilbake ugyldiggjørings-transaksjon i den utgående køkretsen 76 hvis en kolliderende aksess utenfra til en cache-linje detekteres. Tilbakeugyldiggjørings-transaksjonen blir senere utstedt over bussen 3 0 for å forsøke den kolliderende aksessen på nytt.
Figur 5 viser en lesetransaksjon på bussen 3 0 som mottar en utsatt respons, etterfulgt av en utsatt svartransaksjon for lesetransaksjonen. Klokkeperiodene T21 til T36 til klokken på bussen 30 er vist. Prosessoren 20 genererer lesetransaksjonen som den spørrende bussagenten for lesetransaksjonen.
Nodegrensesnittkretsen 24 utsetter lesetransaksjonen som den adresserte bussagenten for lesetransaksjonen.
I løpet av tidsintervallet T21 setter prosessor 20 adressevarsel (ADS#) signalet og plasserer en spørregruppe {FORESPØRSEL} på bussen 30 for å indikere en les linje forespørsel i løpet av spørrefasen til lesetransaksjonen. Snusfasen til lesetransaksjonen starter i tidsintervallet T25. I løpet av snusfasen finner nodegrensesnittkretsen 24 at lesetransaksjonen ikke kan fullføres i rekkefølge, fordi den spesifiserte cache-linjen for lesetransaksjonen må hentes fra bussklynge 12. Følgelig plasserer nodegrensesnittkretsen 24 utsettelses (UTSETT#) signalet på bussen 30. HITM-signalet (HITM#) er inaktivt i tidsintervallet T26.
I tidsintervallet T27 indikerer nodegrensesnittkretsen 24 en utsatt respons ved å plassere den passende kodingen på RS[2:0]# linjene til bussen 30. Nodegrensesnitt-kretsen 24 oppretter et utsatt svartransaksjons-element i den utgående køkretsen 76, og lagrer den utsatte identifikatoren for lesetransaksjonen i det nylig opprettede elementet. Interval-let mellom tidspunktene T28 og T29 omfatter en eller flere perioder av bussen 30's klokke (CLK), hvor grensesnittkretsen 80 mot omverdenen i nodegrensesnittkretsen 24 innhenter de data som kreves av den utsatte lesetransaksjonen fra bussklyngen 12 .
I tidsintervallet T29 genererer nodegrensesnitt-kretsen 24 en utsatt svartransaksjon over bussen 3 0 med den utsatte identifikatoren for lesetransaksjonen som adressen til den utsatte svartransaksjonen. I tidsintervallet T33 plasserer nodegrensesnittkretsen 24 treff (HIT)#-signalet på bussen 30 for å indikere at den endelige cache-tilstanden til den returnerte cache-linjen skal være delt i samsvar med snus-statusen returnert fra bussklyngen 12.
I tidsintervallet T33 plukker snuskøkretsen til prosessor 20 også opp snusansvaret på cache-linjen spesifisert av den utsatte lesetransaksjonen. I tidsintervallet T35 indikerer prosessor 20 en normal fullføringsrespons, og inndeler datafasen til den utsatte svartransaksjonen.
I tidsintervallet T30 ser prosessoren 20 den utsatte svartransaksjonen på bussen 30. Prosessoren 20 finner den utsatte identifikatoren for den utsatte svartransaksjonen som en av de utsatte identifikatorene lagret i den interne utestående transaksjonskøkretsen 114.
I tidsintervallet T34 ser prosessoren 20 den endelige tilstanden til den returnerte cache-linjen indikert av treff eller HITM-signalet på busse 30, og oppdaterer den endelige cache-tilstanden for den utsatte lesetransaksjonen i den utestående transaksjonskretsen 114. I tidsintervallet 36 ser prosessoren 20 den utsatte svartransaksjonens responsfase, og fjerner den utsatte lesetransaksjonen fra den utestående transaksjonskøkretsen 114 og fra i-rekkefølgekøkretsen 100.
Nodegrensesnittkretsen 24 innhenter snuseierskap for en les cache-linje innen klyngen med buss 30 etter å ha satt UTSETT-signalet i løpet av snusfasen til en lesetransaksjon til denne cache-linjen. Nodegrensesnittkretsen 24 kan indikere en nytt forsøk respons eller en utsatt respons til en påfølgende aksess innen buss 30's klynge til denne cache-linjen, som detektert av konflikdetektorkretsen 72. Nodegrensesnittkretsen 24 utsteder deretter den utsatte svar-transaksjonen til prosessor 20. Nodegrensesnittkretsen 24 ugyldiggjør tilbake cache-linjen fra prosessorens 2 0 interne cache før den returnerer et utsatt svar til den spørrende bussagenten for den påfølgende transaksjonen om nødvendig.
Nodegrensesnittkretsen 24 innleder også en ugyldiggjør linjetransaksjon hvis en forespørsel fra en bussagent koplet til bussen 60 mottas før det utsatte svaret til den utsatte lesetransaksjonen er fullført. Nodegrensesnittkretsen 24 innleder ugyldiggjør linjetransaksjonen for å sortere den innkommende transaksjonen fra bussen 60 foran den utgående transaksjonen fra bussen 30. I sin rolle som klyngestyrer benytter nodegrensesnittkretsen 24 ren slik mekanisme for å eliminere en konkurransetilstand mellom kolliderende tilganger til en cache-linje fra bussklyngene 10 og 12.
Figur 6 viser innhenting av snuseierskap av minnedel-systemet 26 etter det har indikert en forsinket respons til en første ugyldiggjør linjeforespørsel fra prosessoren 20. Minnedelsystemet 26 er den adresserte bussagenten for den første ugyldiggjør linjetransaksjonen fra prosessoren 20. I fravær av den utsatte responsen, vil snuseierskap for den adresserte cache-linjen umiddelbart bli overført til prosessoren 20.
I tidsintervallet T41 plasserer prosessoren 20 som en spørrende bussagent adressevarslings-signalet (ADS#) og overfører en spørre {FORESPØRSEL} gruppe over bussen 3 0 for å utstede den første ugyldiggjør linjeforespørselen. I tidsintervallet T44 plasserer prosessoren 22 som en spørrende bussagent adressevarslings-signalet, og overfører en spørre-gruppe over bussen 30 for å utstede den andre ugyldiggjør linjeforespørselen rettet mot den samme cache-linjen som den første ugyldiggjør linjeforespørselen.
Minndelsystemet 26 plasserer UTSETT-signalet (UTSETT#) i løpet av snusfasen, og indikerer en utsatt respons i løpet av responsfasen til den første ugyldiggjør linjeforespørselen for å utsette responsen til prosessoren 20. Minnedelsystemet 26 ser også den andre ugyldiggjør linjeforespørselen og finner at den etterspurte adressen for den andre ugyldiggjør linje-forespørselen spesifiserer kretslinjen til den utsatte første ugyldiggjør linjeforespørselen. Minnedelsystemet 26 plasserer UTSETT-signalet i løpet av snusfasen, og indikerer en nytt forsøk respons i løpet av responsfasen til den andre ugyldiggjør linjeforespørselen fra prosessoren 22. Alle påfølgende forsøk fra prosessoren 22 på å utstede den andre ugyldiggjør linjeforespørselen på nytt forårsaker en nytt forsøk respons fra minnedelsystemet 26.
I løpet av tidsintervallet T46 ser prosessoren 20 at UTSETT-signalet er aktivt, og finner at den første ugyldiggjør linjeforespørselen ikke er garantert fullførelse i rekkefølge. Prosessoren 20 aksepterer ikke eierskap for cache-linjen til den første ugyldiggjør linjeforespørselen og passerer derfor ikke de modifiserte treff (HITM#) signalet i tidsintervallet T48, som er snusfasen til den andre ugyldiggjør linje-forespørselen .
I tidsintervallet T49, ser prosessoren 22 UTSETT-signalet aktivt, og finner at den andre ugyldiggjør linjeforespørselen ikke er garantert fullførelse i rekkefølge. Prosessoren 22 vedlikeholder en ugyldig cache-tilstand for den etterspurte cache-linjen.
Tidsintervallet mellom tidspunktene T51 og T52 omfatter en eller flere perioder av klokken til buss 30, hvor minnedelsystemet 26 innhenter cache-1injedataene krevd av den utsatte første ugyldiggjør linjetransaksjonen. I tidsintervallet T53 innleder minnedelsystemet en utsatt svar-transaksjon. I tidsintervallet T54 utsteder prosessor 22 den andre ugyldiggjør linjetransaksjonen på nytt. Prosessoren 20 tar snuseierskap av den returnerte cache-linjen i tidsintervallet T57. Deretter ser prosessoren 20 den andre ugyldiggjør linjetransaksjonen, og fullfører transaksjonen.
Figur 7A-7B er et flytkart som illustrerer håndteringen av en kommunikasjonstransaksjon av nodegrensesnitt-kretsen 24. Ved blokk 200 innleder en spørrende bussagent en kommunikasjons-transaksjon over bussen 30.
Ved beslutningsblokk 202 bestemmer nodegrensesnitt-kretsen 24 om forespørselen er spesifisert av kommunikasjons-transaksjonen kan tilfredsstilles innen bussklyngen 10. Hvis forespørselen kan fullføres innen bussklyngen 10, fortsetter kontrollen til blokk 204. Ved blokk 204 fullfører nodegrensesnittkretsen 24 den etterspurte kommunikasjons-transaksjonen i rekkefølge, d.v.s. ved ikke å utsette kommunikasjons-transaksjonen.
Hvis nodegrensesnittkretsen 24 finner at forespørselen ikke kan tilfredsstilles innen bussklynge 10 ved beslutningsblokk 202, flyttes kontroll til beslutningsblokk 206. Ved beslutningsblokk 206 bestemmer konfliktdetektorkretsen 72 om det venter en utsatt transaksjon som kolliderer med kommunikasjons-transaksjonen. En ventende utsatt transaksjon kolliderer med kommunikasjons-transaksjonen hvis den ventende utsatte transaksjonen og kommunikasjons-transaksjonen er rettet mot de samme cache-linjedata. Hvis en ventende utsatt transaksjon ikke kolliderer med kommunikasjons-transaksjonen fortsetter kontrollen til blokk 208.
Ved blokk 208 utsetter nodegrensesnittkretsen 24 kommunikasjons-transaksjonen ved å plassere UTSETT-signalet i løpet av snusfasen til kommunikasjons-transaksjonen, og deretter plassere en utsatt respons i løpet av responsfasen til kommunikasjons-transaksjonen. Nodegrensesnittet 24 oppretter også et utsatt svartransaksjons-element i den utgående løen 76. Ved blokk 210 fullfører deretter grensesnittkretsen 80 mot omverdenen kommunikasjons-transaksjonen ved å aksessere bussklyngen 12. Ved blokk 210 mottar grensesnittkretsen mot omverdenen en ny cache-tilstand for cache-linjen spesifisert av kommunikasjons-transaksjonen fra bussklynge 12, og plasserer den nye cache-tilstanden og om nødvendig cache-linjedata i det tilhørende utsatte svar-transaks jons-elementet i den utgående køen 76.
Deretter innleder nodegrensesnittkretsen 24 ved blokk 212 den tilhørende utsatte svartransaksjonen fra den utgående køen 76 på bussen 30. Ved beslutningsblokk 214 bestemmer nodegrensesnittkretsen 24 om kommunikasjons-transaksjonen krever et nytt forsøk. Transaksjonen krever et nytt forsøk hvis den ikke lykkes tilfredsstillende mot bussklyngen 12. Hvis kommunikasjons-transaksjonen krever et nytt forsøk ved beslutningsblokk 214, fortsetter styringen til blokk 216.
Ved blokk 216 plasserer nodegrensesnittkretsen 24 UTSETT-signalet i løpet av snusfasen til den utsatte svar-transaks jonen. Deretter ved blokk 218dropper nodegrensesnitt-kretsen snuseierskap for cache-linjen spesifisert av kommunikasjons-transaksjonen, og ved blokk 219 indikerer nodegrensesnittkretsen 24 et nytt forsøk på kommunikasjons-transaksjonen. Snuseierskap overtas av den opprinnelige spørrende bussagenten for kommunikasjons-transaksjonen.
Hvis transaksjonen ikke krever nytt forsøk ved beslutningsblokk 214, så overføres kontroll til beslutningsblokk 220. Ved beslutningsblokk 220 bestemmer nodegrensesnittkretsen 24 om cache-linjen spesifisert av kommunikasjons-transaksjonen er delt med en bussagent koplet til bussklyngen 12. Hvis cache-linjen er delt, overføres kontroll til blokk 222.
Ved bokk 222 passerer nodegrensesnittkretsen 24 HIT-signalet eller HITM-signalet i løpet av snusfasen til den utsatte svartransaksjonen i samsvar med snusresultatene for kommunikasjons-transaksjonen fra bussklyngen 12. Hvis cache-linjen ikke er delt ved beslutningsblokk 220, overføres kontroll til blokk 224. Ved blokk 224 plasserer nodegrensesnittkretsen 24 ikke HIT eller HITM-signalet i løpet av snusfasen til den utsatte svartransaksjonen. I begge tilfeller overfører nodegrensesnittkretsen ved blokk 226 snuseierskap for cache-linjen til kommunikasjons-transaksjonen til den spørrende bussagenten.
Hvis en ventende utsatt transaksjon kolliderer med kommunikasjons-transaksjonen ved beslutningsblokk 206 overføres kontroll til beslutningsblokk 228. Ved beslutningsblokk 228 bestemmer nodegrensesnittkretsen 24 om flere utsatte transaksjoner er tillatt. Hvis flere utsatte transaksjoner ikke er tillatt, overføres kontroll til blokk 230. Ved blokk 23 0 indikerer nodegrensesnittkretsen 24 et nytt forsøk for kommunikasjons-transaksjonen. Den spørrende bussagenten forsøker senere kommunikasjons-transaksjonen på ny, og gir dermed tid til å fullføre den ventende utsatte transaksjonen.
Hvis flere utsatte transaksjoner er tillatt ved beslutningsblokk 228, så overføres kontroll til blokk 232. Ved blokk 232 utsetter nodegrensesnittkretsen 23 kommunikasjons-transaksjonen ved å plassere UTSETT-signalet i løpet av snusfasen, og indikerer en utsatt respons i løpet av responsfasen til kommunikasjons-transaksjonen.
Deretter blir ved blokk 234 den første ventende utsatte transaksjonen fullført i samsvar med sekvensen av blokker 210-226 .
Deretter bestemmer cache-koherensstyreren 78 ved beslutningsblokk 236 om et kolliderende snuseierskap eksisterer mellom den første utsatte transaksjonen fullført ved blokk 234 og kommunikasjons-transaksjonen utsatt ved bokk 232 (den andre utsatte transaksjonen). En snuseierskap-konflikt eksisterer hvis de første og andre utsatte transaksjonene er rettet mot den samme cache-linjen. Hvis kolliderende snuseierskap ikke finnes ved beslutningsblokk 236 overføres kontroll til blokk 238. Ved blokk 238 fullfører grensesnittkretsen 24 kommunikasjons-transaksjonen utsatt ved blokk 232 i samsvar med blokkene 210-226.
Hvis en konflikt mellom snuseierskap finnes ved beslutningsblokk 236, overføres kontroll til 240. Ved blokk240 innleder nodegrensesnittkretsen 24 en ugyldiggjør linjekommunikasjons-transaksjon på bussen 3 0 til den spørrende bussagenten for den kolliderende utsatte transaksjonen fullført ved blokk 234. Ugyldiggjørings-forespørselen er en ugyldiggjøring tilbake for den første utsatte transaksjonen som ugyldiggjør cache-linjen med kolliderende snuseierskap. Deretter fullfører nodegrensesnittkretsen 24 ved blokk 2422 kommunikasjons-transaksjonen utsatt ved bokk 232 i samsvar med blokkene 210-226.
Figur 8 er et flytkart som viser en leseforespørsel fra en spørrende bussagent-. Ved blokk 3 00 innleder den spørrende bussagenten en lesetransaksjon på bussen 30.
I løpet av snusfasen til lesetransaksjonen ved beslutningsblokk 302, ser den spørrende bussagenten tilstanden til UTSETT og HITM-signalene på bussen 30. Hvis UTSETT-signalet er satt og HITM-signalet ikke er satt ved beslutningsblokk 302 overføres kontrollen til blokk 306. Ellers overføres kontrollen til blokk 304. Ved blokk 304 utfører den spørrende bussagenten normale cache- tilstandsoverganger fordi lesetransaksjonen fullføres i rekkefølge.
Ved blokk 3 06 tar den spørrende bussagenten ikke snuseierskap for cache-linjen spesifisert av lese-transaks jonen. Ved beslutningsblokk 308 sjekker den spørrende bussagenten om det finnes en utsatt respons i løpet av responsfasen for lesetransaksjonen. Hvis en utsatt respons ikke indikeres ved beslutningsblokk 3 08 overføres kontrollen til blokk 310. Ved blokk 310 forsøker den spørrende bussagenten lesetransaksjonen på ny hvis den adresserte bussagenten indikerte nytt forsøk i løpet av responsfasen til lesetransaksj onen.
Hvis en utsatt respons indikeres ved beslutningsblokk 308 overføres kontrollen til blokk 312. Ved blokk 312 venter den spørrende bussagenten på en utsatt svartransaksjon på bussen 30. Deretter, ved beslutningsblokk 314, ser den spørrende bussagenten UTSETT-signalet i løpet av snusfasen til den utsatte svartransaksjonen. Hvis UTSETT-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen overføres kontrollen til blokk 316. Ved blokk 316 vedlikeholder den spørrende bussagenten cache-linjen til lesetransaksjonen i den ugyldige tilstanden. Deretter, ved blokk 318, forsøker den spørrende bussagenten på ny lesetransaksjonen ved å innlede lesetransaksjonen en gang til over bussen 30.
Hvis UTSETT-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen ved beslutningsblokk 314 overføres kontrollen til beslutningsblokk 320. Hvis HIT-signalet eller HITM-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen ved beslutningsblokk 320, overføres kontrollen til blokk 324. Ved blokk 324 tar den spørrende bussagenten eierskap av cache-linjen spesifisert i lesetransaksjonen i den delte cache-tilstanden.
Hvis HIT eller HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen ved beslutningsblokk 320 så overføres kontrollen til blokk 322. Ved blokk 322 tar den spørrende agenten eierskap av cache-linjen spesifisert i lesetransaksjonen i den eksklusive cache-tilstanden.
Figur 9 er et flytdiagram som viser en skrivetransaksjon eller en ugyldiggjørings-transaksjon fra en spørrende bussagent over bussen 30. Ved blokk 400 innleder den spørrende bussagenten en skrive- eller ugyldiggjørings-transaksjon over bussen 30.
I løpet av snusfasen til skrive- eller ugyldiggjørings-transaksjonen ved beslutningsblokk 402, ser den spørrende bussagenten tilstanden til UTSETT og HITM-signalene på bussen 30. Hvis UTSETT-signalet er satt og HITM-signalet ikke er satt ved beslutningsblokk 402, overføres kontrollen til blokk406. Ellers overføres kontrollen til blokk 404. Ved blokk 4 04 utfører den spørrende bussagenten normale cache-tilstandsoverganger fordi skrive- eller ugyldiggjørings-transaksjonen fullføres i rekkefølge.
Ved blokk 406 tar den spørrende bussagenten ikke snuseierskap for cache-linjen spesifisert av skrive- eller ugyldiggjørings-transaksjonen. Ved beslutningsblokk 408 ser den spørrende bussagenten etter en utsatt respons i løpet av responsfasen for skrive- eller ugyldiggjørings-transaksjonen. Hvis en utsatt respons ikke indikeres ved beslutningsblokk 408 overføres kontrollen til blokk 410. Ved blokk 410 forsøker den spørrende bussagenten skrive- eller ugyldiggjørings-transaksjonen på ny hvis den adresserte bussagenten indikerte nytt forsøk i løpet av responsfasen for skrive- eller ugyldiggjørings-transaksjonen.
Hvis en utsatt respons indikeres ved beslutningsblokk 408 overføres kontrollen til blokk 412. Ved blokk 412 venter den spørrende bussagenten på en utsatt svartransaksjon på bussen 30.
Hvis UTSETT-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen ved beslutningsblokk 414, så overføres kontrollen til blokk 416. Ved blokk 416 utfører den spørrende bussagenten ingen cache-tilstandsendringer for cache-linjen spesifisert av skrive- eller ugyldiggjørings-transaksjonen. Deretter, ved blokk 418, forsøker den spørrende bussagenten skrive- eller ugyldiggjørings-transaksjonen på ny over bussen 30.
Hvis UTSETT-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen ved beslutningsblokk 414 overføres kontrollen til beslutningsblokk 420. Ved beslutningsblokk 420 bestemmer den spørrende bussagenten om HITM-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen. Hvis HITM-signalet ikke er satt ved beslutningsblokk 420, overføres kontrollen til blokk 422. Ved blokk 422 endrer den spørrende bussagenten cache-tilstanden for cache-linjen til skrive- eller ugyldiggjørings-transaksjonen til den eksklusive tilstanden eller den modifiserte tilstanden som indikert av snusresultatene.
Hvis HITM-signalet er satt i løpet av snusfasen ved beslutningsblokk 420, overføres kontrollen til blokk 424. Ved blokk 424 leser den spørrende bussagenten den returnerte cache-linjen i løpet av datafasen til den utsatte svar-transaks jonen . Deretter, ved blokk 426, fletter den spørrende bussagenten den returnerte cache-linjen med interne data, og skriver tilbake den flettede cache-linjen til den interne cachen til den spørrende bussagenten.
Figur 10 oppsummerer cache-tilstandsovergangene for en spørrende bussagent på bussen 30 i løpet av en lese-transaks jon. Den opprinnelige cache-tilstanden og den endelige cache-tilstanden til den interne cachen til den spørrende bussagenten vises for lesetransaksjoner og for de ulike tilfellene av snusresultater i løpet av den utsatte svartransaksjonen.
Den spørrende bussagenten innleder lesetransaksjonen med den opprinnelige cache-tilstanden og den ugyldige tilstanden. Hvis UTSETT-signalet er satt, og HITM-signalet ikke er satt i løpet av snusresponsfasen til lesetransaksjonen, vedlikeholder den spørrende bussagenten en intern ugyldig cache-tilstand for cache-linjen og lesetransaksjonen blir utsatt. Snuseierskap for cache-linjen av den spørrende bussagenten blir også utsatt.
Hvis UTSETT-signalet ikke er satt og HIT-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen, endres cache-tilstanden i den spørrende bussagenten til den delte cache-tilstanden for cache-linjen til lesetransaksjonen. Hvis UTSETT-signalet ikke er satt og HITM-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen går den spørrende bussagenten også over til den delte cache-tilstanden.
Hvis UTSETT-signalet ikke er satt og HIT-signalet ikke er satt og HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen går den spørrende bussagenten over til den eksklusive cache-tilstanden for cache-linjen til lesetransaksjonen. Hvis UTSETT-signalet er satt og HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen forblir den spørrende bussagenten i den ugyldige cache-tilstanden, og lesetransaksjonen krever et nytt forsøk.
Figur 11 oppsummerer cache-tilstandsovergangene for en spørrende bussagent som utsteder en ugyldiggjørings-transaksjon over bussen 30 for å ugyldiggjøre en cache-linje. De opprinnelige og endelige cache-tilstandene for den interne cachen til den spørrende bussagenten er vist for ugyldiggjørings-transaksjonen og for de ulike tilfellene av snusresultater i løpet av den utsatte svartransaksjonen, og for en mulig tilbakeugyldiggjørings-transaksjon.
Hvis UTSETT-signalet er satt og HITM-signalet ikke er satt i løpet av snusresponsfasen til ugyldiggjørings-transaksjonen forblir den spørrende bussagenten i den delte cache-tilstanden for cache-linjen til ugyldiggjørings-transaksjonen og snuseierskap for cache-linjen blir utsatt.
Den spørrende bussagenten går over fra den delte tilstanden til den modifiserte tilstanden for cache-linjen til ugyldiggjørings-transaksjonen hvis UTSETT-signalet ikke settes, og HITM-signalet ikke settes i løpet av snusfasen til den utsatte svartransaksjonen. Den spørrende bussagenten forblir i den delte cache-tilstanden hvis UTSETT-signalet er att og HITM-signalet ikke er satt i løpet av snusresponsfasen for den utsatte svartransaksjonen, og ugyldiggjørings-transaksjonen krever et nytt forsøk.
En tilbakeugyldiggjørings-transaksjon kan inntreffe før den utsatte svartransaksjonen. Den spørrende bussagenten går fra den delte tilstanden til den ugyldige cache-tilstanden for cache-linjen til ugyldiggjørings-transaksjonen hvis UTSETT-signalet ikke er satt og HITM-signalet ikke er satt i løpet av snusresponsfasen til den tilbakevirkende ugyldiggjørings-transaksj onen.
Etter den tilbakevirkende ugyldiggjørings-transaksjonen går den spørrende bussagenten over fra den ugyldige cache-tilstanden til den modifiserte cache-tilstanden hvis UTSETT-signalet ikke er satt og HITM-signalet er satt i løpet av snusfasen til den utsatte svartransaksjonen. De modifiserte data returneres over bussen 30.
Etter de tilbakevirkende ugyldiggjørings-transaksjonen forblir den spørrende bussagenten i den ugyldige cache-tilstanden hvis UTSETT-signalet er satt og HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svar-transaks jonen. Den spørrende bussagenten innleder deretter på ny ugyldiggjør linjetransaksjonen som en les for eierskap transaksjon på bussen 30.
Figur 12 oppsummerer cache-tilstandsovergangene for en spørrende bussagent som utsteder en les for eierskap transaksjon over bussen 30. Den opprinnelige cache-tilstanden og den endelige cache-tilstanden for den interne cachen til den spørrende bussagenten er vist for les for eierskap-transaksjonen, og for de ulike tilfellene av snusresultater i løpet av den utsatte svartransaksjonen.
Den spørrende bussagenten forblir i den ugyldige cache-tilstanden hvis UTSETT-signalet er satt og HITM-signalet ikke er att i løpet av snusfasen til les for eierskap-transaksjonen. Snuseierskap av den spørrende bussagenten til cache-linjen til les for eierskap-transaksjonen utsettes.
Den spørrende bussagenten forblir i den ugyldige cache-tilstanden hvis UTSETT-signalet er satt og HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svar- transaksjonen. Den spørrende bussagenten innleder deretter les for eierskap-transaksjonen på ny.
Den spørrende bussagenten går fra den ugyldige cache-tilstanden til den modifiserte cache-tilstanden for cache-linjen til les for eierskap-transaksjonen hvis UTSETT-signalet ikke er satt og HIT-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen. Tilsvarende går den spørrende bussagenten over til den modifiserte tilstanden hvis UTSETT-signalet ikke er satt, og HITM-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen. Den spørrende bussagenten går over fra den ugyldige tilstanden til den modifiserte tilstanden for cache-linjen til les for eierskap-transaksjonen hvis HITM-signalet settes i løpet av snusfasen til den utsatte svartransaksjonen.
Figur 13 oppsummerer de interne cache-tilstandsovergangene for en spørrende bussagent som utsteder en skriv gjennom transaksjon over buss 30. De opprinnelige og endelige krysstilstandene for den interne cachen til den spørrende bussagenten er vist for skriv gjennom transaksjonen og for de ulike tilfellene av snusresultater i løpet av den utsatte svartransaksjonen og for en ulik tilbakevirkende ugyldiggj ørings-transaksj on.
Den spørrende bussagenten forblir i den delte cache-tilstanden og skriv gjennom-transaksjonen utsettes hvis UTSETT-signalet er satt og HITM-signalet ikke er satt i løpet av snusfasen til skriv gjennom-transaksjonen. Deretter fører en tilbakevirkende ugyldiggjørings-transaksjon for cache-linjen til at den spørrende bussagenten går over fra den delte cache-tilstanden til den ugyldige cache-tilstanden uavhengig av snusresultatene i løpet av snusfasen til den tilbakevirkende ugyldiggj ørings-transaksj onen.
Den spørrende bussagenten forblir i den delte cache-tilstanden hvis UTSETT-signalet settes og HITM-signalet ikke settes i løpet av snusfasen til den utsatte svartransaksjonen, og skriv igjennom-transaksjonen blir deretter forsøkt på ny. Den spørrende bussagenten går fra den delte cache-tilstanden til den eksklusive cache-tilstanden hvis UTSETT-signalet ikke er satt og HIT-signalet ikke er satt i løpet av snusfasen til den utsatte svartransaksjonen.
Den spørrende bussagenten går fra den delte cache-tilstanden eller den ugyldige cache-tilstanden til den eksklusive cache-tilstanden hvis HITM-signalet settes i løpet av snusfasen til den utsatte svartransaksjonen. Den spørrende bussagenten får nye cache-linjedata fra den utsatte svar-transaks j onen.
I den foregående beskrivelsen er oppfinnelsen beskrevet med referanse til spesifikke eksempler eller utførelsesformer. Det er imidlertid klart at ulike modifikasjoner og endringer kan gjøres uten å fravike den bredere ide og omfang av oppfinnelsen, slik dette er definert i de vedføyde kravene. Beskrivelsen og tegningene skal følgelig betraktes som beskrivende snarere enn begrensende.

Claims (38)

1. Et datamaskin-system, karakterisert vedat det omfatter: en spørrende bussagent koplet til en buss, hvilken bussagent har kretser for å innlede en kommunikasjons-transaksjon på en buss; en adressert bussagent koplet til bussen, hvilken adressert bussagent har kretser som ser kommunikasjons-transaksjoner på bussen, og overfører en utsettelses-indikasjon over bussen som indikerer at en utsatt svartransaksjon på bussen er nødvendig for å fullføre kommunikasjons-transaksjonen; og en snusende bussagent koplet til bussen, hvilken snusende bussagent har kretser som ser kommunikasjons-transaksjonen på bussen, og overstyrer utsettelsesindikasjonen og fullfører kommunikasjons-transaksjonen uten den utsatte svartransaksjonen dersom den snusende bussagent er istand til å fullføre kommunikasjons-transaksjonen slik den er bestemt av den snusende bussagenten som utfører en snuseoperasjon.
2. Datamaskin-system ifølge krav 1,karakterisert vedat den adresserte bussagenten overfører utsettelses-indikasjonen over bussen hvis kommunikasjons-transaksjonen krever en busslatens større enn en forhåndsbestemt busslatens.
3. Datamaskin-system ifølge krav 1,karakterisert vedat den spørrende bussagenten, den adresserte bussagenten og bussen omfatter en første bussklynge og hvor den adresserte bussagenten er en sammenkoplingsagent for bussklynger som muliggjør kommunikasjon mellom den første bussklyngen og en andre bussklynge i datamaskin-systemet.
4. Datamaskin-system ifølge krav 3,karakterisert vedat den adresserte bussagenten overfører utsettelsesindikasjonen over bussen hvis kommunikasjons-transaksjonen krever at den adresserte bussagenten får tilgang til den andre bussklyngen.
5. Datamaskin-system ifølge krav 4,karakterisert vedat den adresserte bussagenten omfatter kretser for å innlede den utsatte svartransaksjonen på bussen for å fullføre kommunikasjons-transaksj onen.
6. Datamaskin-system ifølge krav 5,karakterisert vedat kommunikasjons-transaksjonen spesifiserer en cache-linjetilgang, og hvor den adresserte bussagenten overfører utsettelsesindikasjonen over bussen ved å sette et utsettelses-signal på bussen i løpet av en snusfase for kommunikasjons-transaksjonen, under hvilken snusfase en snuseoperasjon utføres på bussen.
7. Datamaskin-system ifølge krav 6,karakterisert vedat den adresserte bussagenten tar snuseierskap for cache-linjetilgangen etter at den har overført utsettelsesindikasjonen over bussen.
8. Datamaskin-system ifølge krav 7,karakterisert vedat den adresserte bussagenten omfatter kretser for å utføre cache-linjetilgang til den andre bussklyngen, og for å motta en mengde snuse-resultater fra utførelsen av snuseoperasjonen for cache-linjetilgangen fra den andre bussklyngen.
9. Datamaskin-system ifølge krav 8,karakterisert vedat den adresserte bussagenten innleder den utsatte svartransaksjonen på bussen, og indikerer snuseresultatene for cache-linjetilgangen på bussen i løpet av en snusefase for den utsatte svar-transaks j onen .
10. Datamaskin-system ifølge krav 9,karakterisert vedat den adresserte bussagenten lar snuseierskap for cache-linjetilgangen falle etter fullføring av den utsatte svartransaksjonen på bussen.
11. Datamaskin-system ifølge krav 8,karakterisert vedat den adresserte bussagenten ser en påfølgende kommunikasjons-transaksjon på bussen som spesifiserer en neste cache-linjetilgang mens den utsatte svartransaksjonen for fullføring av kommunikasjons-transaksjonen venter.
12. Datamaskin-system ifølge krav 11,karakterisert vedat den adresserte bussagenten omfatter kretser for å overføre en indikasjon på nytt forsøk over bussen som indikerer at den påfølgende kommunikasjons-transaksjonen krever et senere forsøk.
13. Datamaskinsystem ifølge krav 11,karakterisert vedat den adresserte bussagenten utfører cache-linjetilgangen til den andre bussklyngen og mottar snuseresultatene for cache-linjetilgangen fra den andre bussklyngen, så innleder den utsatte svartransaksjonen på bussen og indikerer snuseresultatene for cachelinjetil-gangen på bussen i løpet av en snusefase for den utsatte svartransaksjonen i løpet av hvilken en snuseoperasjon utføres på bussen, og deretter dropper snuseierskap for cache-linjetilgangen etter fullføring av den utsatte svartransaksjonen på bussen.
14. Datamaskin-system ifølge krav 13,karakterisert vedat den adresserte bussagenten omfatter kretser for å bestemme om cache- linjetilgangen og den neste cache-linjetilgangen skaper en konflikt mellom snuseierskap.
15. Datamaskin-system ifølge krav 14,karakterisert vedat den adresserte bussagenten innleder en ugyldiggjørings-forespørsel over bussen for å ugyldiggjøre snuseresultatene for cache-linjetilgangen hvis konflikt mellom snuseierskap oppdages.
16. Datamaskin-system ifølge krav 7,karakterisert vedat den snusende bussagenten overstyrer utsettelsesindikasjonen ved å sette et treffsignal (hit signal) på bussen i løpet av snusefasen for kommunikasjons-transaksjonen.
17. Datamaskin-system ifølge krav 1,karakterisert vedat den spørrende bussagenten inneholder et cache-minne, og at kommunikasjons-transaksjonen omfatter en cache-tilgangstransaksjon rettet mot en cache-linje.
18. Datamaskin-system ifølge krav 17,karakterisert vedat utsettelses-indikas jonen får den spørrende bussagenten til å avvise snuseierskap for cache-linjen i løpet av cache-tilgangstransaksjonen hvis en snusende bussagent koplet til bussen ikke overstyrer utsettelsesindikasjonen.
19. Datamaskinsystem ifølge krav 18,karakterisert vedat den spørrende bussagenten vedlikeholder cache-linjen i en ugyldig cache-tilstand hvis den adresserte bussagenten overfører utsettelses-indikasjonen over bussen i løpet av den utsatte svartransaksj onen.
20. Datamaskin-system ifølge krav 18,karakterisert vedat cache-tilgangstransaksjonen omfatter en lesetransaksjon rettet mot cache-linj en.
21. Datamaskin-system ifølge krav 20,karakterisert vedat den spørrende bussagenten antar at cache-linjen er i en delt cache-tilstand hvis den adresserte bussagenten overfører et cache-treffsignal over bussen i løpet av en snusefase for den utsatte svar-transaks jonen, i løpet av hvilken en snuseoperasjon blir utført på bussen.
22. Datamaskin-system ifølge krav 20,karakterisert vedat den spørrende bussagenten antar cache-linjen i en eksklusiv cache-tilstand hvis den adresserte bussagenten ikke overfører et cache-treffsignal over bussen i løpet av en snusefase for den utsatte svartransaksjonen.
23. Datamaskin-system ifølge krav 18,karakterisert vedat cache-tilgangs-transaks jonen omfatter en skrive- eller ugyldiggjørelseslinje-transaksjon rettet mot cache-linjen.
24. Datamaskin-system ifølge krav 23,karakterisert vedat den spørrende bussagenten leser cache-linjen i løpet av en datafase for den utsatte svartransaksjonen hvis den adresserte bussagenten overfører et cache-treffsignal over bussen i løpet av en snusefase for den utsatte svartransaksjonen, i løpet av hvilken en snuseoperasjon blir utført på bussen.
25. Datamaskin-system ifølge krav 23,karakterisert vedat den spørrende bussagenten antar cache-linjen i en eksklusiv eller modifisert cache-tilstand hvis den adresserte bussagenten ikke overfører et cache-treffsignal over bussen i løpet av en snusefase for den utsatte svartransaksjonen, i løpet av hvilken en snuse-operas jon blir utført på bussen.
26. Fremgangsmåte for kommunikasjon i et datamaskin-system,karakterisert vedat den omfatter de følgende trinn: en kommunikasjons-transaksjon over en buss innledes, hvilken kommunikasjons-transaksjon spesifiserer en cache-linje; en adressert buss-agent overvåker kommunikasjons-transaksjonen på bussen, og overfører en utsettelsesindikasjon over bussen for å indikere at fullførelse av kommunikasjons-transaksjonen blir utsatt; og en snusende bussagent overvåker kommunikasjonstransak-sjonen på bussen, overstyrer utsettelsesindikasjonen, og fullfører kommunikasjons-transaksjonen uten en utsatt svar-transaksjon dersom den snusende bussagenten er i stand til å fullføre kommunikasjons-transaksjonen slik som bestemt av den snusende bussagenten som utfører en snuseoperasjon.
27. Fremgangsmåte for kommunikasjon ifølge krav 26,karakterisert vedat utsettelsesindikasjonen overføres over bussen hvis kommunikasjons-transaksjonen krever en busslatens større enn en forhåndsbestemt busslatens.
28. Fremgangsmåte for kommunikasjon ifølge krav 26,karakterisert vedat den videre omfatter det trinn å innlede en utsatt svartransaksjon over bussen for å fullføre kommunikasjons-transaksjonen.
29. Fremgangsmåte for kommunikasjon ifølge krav 26,karakterisert vedat den videre omfatter de trinn å innlede en utsatt svartransaksjon på bussen, og indikere et resultat generelt ved å utføre en snuseoperasjon for cache-linjen på bussen i løpet av den utsatte svartransaksjonen.
30. Fremgangsmåte for kommunikasjon ifølge krav 26,karakterisert vedat den videre omfatter de trinn å overvåke en påfølgende kommunikasjons-transaksjon på bussen som spesifiserer en neste cache-linje mens en utsatt svartransaksjon for fullføring av kommunikasjons-transaksjonen venter.
31. Fremgangsmåte for kommunikasjon ifølge krav 30,karakterisert vedat den videre omfatter det trinn å overføre en indikasjon på nytt forsøk over bussen for å indikere at den påfølgende kommunikasjons-transaksjonen krever et nytt forsøk senere.
32. Et datamaskin-system , karakterisert vedat det omfatter; en spørrende bussagent koplet til en buss, hvilken spørrende bussagent omfatter en første i-rekkefølge transaksjonskø og kretser for å innlede en kommunikasjons-transaksjon på en buss og for å logge kommunikasjons-transaksjonen i den første i-rekkefølge transaksjonskøen; en adressert bussagent koplet til bussen, hvilken adresserte bussagent har en andre i-rekkefølge transaksjonskø, og kretser for å overvåke kommunikasjons-transaksjonen på bussen og for å logge kommunikasjons-transaksjonen i den andre i-rekkefølge transaksjonskøen, hvilken adresserte bussagent har kretser for å overføre en utsettelsesindikasjon over bussen hvis kommunikasjons-transaksjonen krever en busslatens større enn en forhåndsbestemt busslatens; og en snusende bussagent koplet til bussen, hvilken snusende bussagent har kretser som overvåker kommunikasjonstransak-sjonen på bussen, og overstyrer utsettelsesindikasjonen og fullfører kommunikasjons-transaksjonen uten den utsatte svartransaksjonen dersom den snusende bussagenten er i stand til å fullføre kommunikasjons-transaksjonen slik som bestemt av den snusende bussagenten som utfører en snuseoperasjon.
33. Datamaskin-system ifølge krav 32,karakterisert vedat den adresserte bussagenten omfatter kretser for å innlede en utsatt svar-transaksjon på bussen for å fullføre kommunikasjons-transaksjonen .
34. Datamaskin-system ifølge krav 33,karakterisert vedat den adresserte bussagenten innleder den utsatte svartransaksjonen på bussen for å fullføre kommunikasjons-transaksjonen, og fjerner kommunikasjons-transaksjonen fra den andre i-rekkefølge transaksjonskøen.
35. Datamaskin-system ifølge krav 34,karakterisert vedat den spørrende bussagenten ser den forsinkede svartransaksjonen på bussen, og deretter fjerner kommunikasjons-transaksjonen fra den første i-rekkefølge transaksjons-køen.
36. Datamaskin-system ifølge krav 32,karakterisert vedat den spørrende bussagenten inneholder en cache, og at kommunikasjons-transaksjonen spesifiserer en cache-linjetilgang.
37. Datamaskin-system ifølge krav 36,karakterisert vedat den adresserte bussagenten inneholder brokretser for å overføre cache-linjetilgangen til en fjerntliggende bussklynge.
38. Datamaskin-system ifølge krav 37,karakterisert vedat den adresserte bussagenten overfører utsettelsesindikasjonen over bussen hvis cache-linjetilgangen krever at den adresserte bussagenten aksesserer den fjerntliggende bussklyngen.
NO19950780A 1994-03-01 1995-02-28 Datamaskin-system NO312610B1 (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/205,023 US5682516A (en) 1994-03-01 1994-03-01 Computer system that maintains system wide cache coherency during deferred communication transactions

Publications (3)

Publication Number Publication Date
NO950780D0 NO950780D0 (no) 1995-02-28
NO950780L NO950780L (no) 1995-09-04
NO312610B1 true NO312610B1 (no) 2002-06-03

Family

ID=22760475

Family Applications (1)

Application Number Title Priority Date Filing Date
NO19950780A NO312610B1 (no) 1994-03-01 1995-02-28 Datamaskin-system

Country Status (5)

Country Link
US (1) US5682516A (no)
GB (1) GB2287161B (no)
IT (1) IT1275254B (no)
NO (1) NO312610B1 (no)
SG (1) SG47655A1 (no)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778438A (en) * 1995-12-06 1998-07-07 Intel Corporation Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
US5963721A (en) * 1995-12-29 1999-10-05 Texas Instruments Incorporated Microprocessor system with capability for asynchronous bus transactions
EP0832459B1 (en) * 1996-03-15 2005-06-29 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5923857A (en) * 1996-09-06 1999-07-13 Intel Corporation Method and apparatus for ordering writeback data transfers on a bus
US5764932A (en) * 1996-12-23 1998-06-09 Intel Corporation Method and apparatus for implementing a dual processing protocol between processors
US5961621A (en) * 1997-03-28 1999-10-05 Intel Corporation Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
US6633945B1 (en) 1997-12-07 2003-10-14 Conexant Systems, Inc. Fully connected cache coherent multiprocessing systems
US6418537B1 (en) 1997-12-07 2002-07-09 Conexant Systems, Inc. Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6292705B1 (en) 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6516442B1 (en) 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6292906B1 (en) * 1997-12-17 2001-09-18 Intel Corporation Method and apparatus for detecting and compensating for certain snoop errors in a system with multiple agents having cache memories
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6073198A (en) * 1998-03-31 2000-06-06 Micron Electronics, Inc. System for peer-to-peer mastering over a computer bus
US6223238B1 (en) 1998-03-31 2001-04-24 Micron Electronics, Inc. Method of peer-to-peer mastering over a computer bus
US6112283A (en) * 1998-08-06 2000-08-29 Intel Corporation Out-of-order snooping for multiprocessor computer systems
JP3676934B2 (ja) * 1998-12-15 2005-07-27 株式会社日立製作所 プロセッサおよびマルチプロセッサシステム
US7555603B1 (en) * 1998-12-16 2009-06-30 Intel Corporation Transaction manager and cache for processing agent
US6469988B1 (en) 1999-07-08 2002-10-22 Conexant Systems, Inc. Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals
US6487621B1 (en) 1999-08-17 2002-11-26 Compaq Information Technologies Group, L.P. Architecture, system and method for ensuring an ordered transaction on at least one of a plurality of multi-processor buses that experience a hit-to-modified snoop cycle
US6557048B1 (en) * 1999-11-01 2003-04-29 Advanced Micro Devices, Inc. Computer system implementing a system and method for ordering input/output (IO) memory operations within a coherent portion thereof
US6636914B1 (en) * 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6848003B1 (en) * 1999-11-09 2005-01-25 International Business Machines Corporation Multi-node data processing system and communication protocol that route write data utilizing a destination ID obtained from a combined response
US6721813B2 (en) * 2001-01-30 2004-04-13 Advanced Micro Devices, Inc. Computer system implementing a system and method for tracking the progress of posted write transactions
US7127562B2 (en) * 2003-06-11 2006-10-24 International Business Machines Corporation Ensuring orderly forward progress in granting snoop castout requests
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7392353B2 (en) * 2004-12-03 2008-06-24 International Business Machines Corporation Prioritization of out-of-order data transfers on shared data bus
US8949545B2 (en) * 2008-12-04 2015-02-03 Freescale Semiconductor, Inc. Memory interface device and methods thereof
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US9405707B2 (en) 2011-12-20 2016-08-02 Intel Corporation Secure replay protected storage
US9411748B2 (en) 2011-12-20 2016-08-09 Intel Corporation Secure replay protected storage
US8793442B2 (en) * 2012-02-08 2014-07-29 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US10922265B2 (en) * 2017-06-27 2021-02-16 Intel Corporation Techniques to control remote memory access in a compute environment
US10970215B1 (en) 2019-12-03 2021-04-06 International Business Machines Corporation Cache snooping mode extending coherence protection for certain requests

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US5265235A (en) * 1990-11-30 1993-11-23 Xerox Corporation Consistency protocols for shared memory multiprocessors
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
GB2268859B (en) * 1992-07-16 1995-09-20 Northern Telecom Ltd Network system

Also Published As

Publication number Publication date
NO950780D0 (no) 1995-02-28
IT1275254B (it) 1997-07-31
GB2287161B (en) 1998-02-25
GB9500334D0 (en) 1995-03-01
NO950780L (no) 1995-09-04
ITMI950388A0 (it) 1995-03-01
SG47655A1 (en) 1998-04-17
ITMI950388A1 (it) 1996-09-01
GB2287161A (en) 1995-09-06
US5682516A (en) 1997-10-28

Similar Documents

Publication Publication Date Title
NO312610B1 (no) Datamaskin-system
US8756377B2 (en) Area and power efficient data coherency maintenance
US6012120A (en) Method and apparatus for providing DMA transfers between devices coupled to different host bus bridges
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US6128711A (en) Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US6374329B1 (en) High-availability super server
US6021456A (en) Method for communicating interrupt data structure in a multi-processor computer system
US6636906B1 (en) Apparatus and method for ensuring forward progress in coherent I/O systems
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US6189078B1 (en) System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency
JP3884990B2 (ja) マルチプロセッサ装置
EP1215584A2 (en) Highly pipelined bus architecture
US6192452B1 (en) Method and system for avoiding data loss due to cancelled transactions within a non-uniform memory access system
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
JPH08249231A (ja) マルチプロセッサ・システムにおける古いデータの処理システム及び方法
JP2000250882A (ja) 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム
US5987544A (en) System interface protocol with optional module cache
JPH11328026A (ja) ホバ―リング(h)及びリ―セント(r)状態を有するキャッシュ・コヒ―レンシ・プロトコル
US7797495B1 (en) Distributed directory cache
US9015424B2 (en) Write transaction management within a memory interconnect
US20080301376A1 (en) Method, Apparatus, and System Supporting Improved DMA Writes
US10394636B2 (en) Techniques for managing a hang condition in a data processing system with shared memory

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees