NO172267B - Hurtigbuffer samt multiprosesseringssystem - Google Patents

Hurtigbuffer samt multiprosesseringssystem Download PDF

Info

Publication number
NO172267B
NO172267B NO882316A NO882316A NO172267B NO 172267 B NO172267 B NO 172267B NO 882316 A NO882316 A NO 882316A NO 882316 A NO882316 A NO 882316A NO 172267 B NO172267 B NO 172267B
Authority
NO
Norway
Prior art keywords
address
cache
signals
store
storage
Prior art date
Application number
NO882316A
Other languages
English (en)
Other versions
NO882316D0 (no
NO172267C (no
NO882316L (no
Inventor
George J Barlow
James W Keeley
Jr Chester M Nibby
Original Assignee
Honeywell Bull
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 Honeywell Bull filed Critical Honeywell Bull
Publication of NO882316D0 publication Critical patent/NO882316D0/no
Publication of NO882316L publication Critical patent/NO882316L/no
Publication of NO172267B publication Critical patent/NO172267B/no
Publication of NO172267C publication Critical patent/NO172267C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

Foreliggende oppfinnelse angår hurtigbuffer av den art som angitt i innledningen til krav 1 samt multiprosesseringssystem av den art som angitt i innledningen til krav 8.
Den beslektede parallelle patentsøknad med tittel, "Multiprosessor Shared Pipeline Cache Memory" (hurtigtmffer for multiprosessor med delt direkteforbindelse), viser et hurtigbuffer undersystem som har to direkteforbindelsestrinn som kan deles av en flerhet av kilder innbefattende et antall uavhengig drevet sentrale behandlingsenheter. Det første direkteforbindelsestrinnet sørger for et adressekatalogsøk og sammenligningsoperasj on mens det andre direkteforbindelsestrinnet utfører operasjonene med å hente de ønskede data fra hurtigbufferlageret og overføring til fordringskilden. Tids- og kontrollapparater kopler til kildene og allokerer hver behandlingsenhet tidsspalter som forskyver deres drift et direkteforbindelsestrinn. Således vil behandlingsenhetene arbeide uavhengig og konfliktfritt.
Ved deling av en hurtigbuffer eller et hovedlager mellom flere behandlingsenheter, kan det oppstå sekvenser av hendelser eller operasjoner som kan være årsaken til inkoherens. For å unngå dette er en løsning å la behandlingsenhetene dele den tilgjengelige lagerplassen og sørge for en låsemekanisme som forhindrer en behandlingsenhet i å modifisere informasjon som en annen behandlingsenhet har tilgang til. Mens denne løsningen virker godt for hovedlageret, kan den resultere i utstrakt dataerstatning eller ødeleggelse som reduserer hurtigbufferens trefforhold. I tillegg kan denne type arrangement redusere mulighetene for hver behandlingsenhet til å arbeide uavhengig.
For å unngå dette problemet beskriver den beslektede parallelle patentsøknad med tittel, "Å Coherent Cache System Shared by a Pair of Processing Units", (et koherent hurtigbuffersystem som deles av et par behandlingsenheter) et arrangement som tillater fullstendig uavhengig drift av hver behandlingsenhet ved at det allokeres en halvdel av det totale tilgjengelige hurtigbufferlagerområdet ved hjelp av separate kontoerstatningsapparater som er innbefattet i bufferlagertrinnet. Under hver adressekatalogallokeringssyklus som utføres av en behandlingsenhet, blir den allokerte plassen til den andre behandlingsenheten undersøkt for å se om det foreligger en multippelallokering. Adressen til den multiple allokerte lokalisering tilknyttet behandlingsenheten som er gitt den laveste prioriteten blir lagret i et multippelallokeringslager som styrer den tidligste dataerstatning og derved opprettholdes datakoherens mellom uavhengig drevne behandlingsenheter.
Mens arrangementet ovenfor forhindrer datainkoherens mellom uavhengig drevne behandlingsenheter kan inkoherens fremdeles opptre inn i tett koplede behandlingssystemer hvori behandlingen av datahåndteringsenhetene deler et felles hovedlager. For å opprettholde koherens i slike systemer, innbefatter hver behandlingsenhet som har en tilhørende hurtigbuffer en lytteinnretning som overvåker lager-innskrivinger som påføres av andre enheter på en felles systembuss. Dette gjør det mulig for behandlingsenheten å oppdatere innholdet i dens hurtigbuffer for å reflektere endringer i de korresponderende hovedlagerdata som lages av andre enheter for å sikre .hurtigbufferkoherens. Under oppdateringsprosessen kan det noen ganger opptre tilstander som gjør det umulig for en behandlingsenhet å oppdatere hurtigbufferlageret nøyaktig. F.eks. kan data som mottas av lytteinnretningen bli fordreid eller lagerskrivingen påført bussen frembringe et tidsutløp (time out). Den sistnevnte tilstanden kan finne sted dersom systemet innbefatter robusthets- eller pålitelighetsegenskaper, slike som er beskrevet i den parallelle patentsøknaden- til George J. Barlow og James W. Keeley, med tittel "Resilient Bus System", (robuste bussystemer), med serienummer 06/623,264, inngitt 21. juni 1984, og som tilhører innehaveren som er navngitt her.
I tilfellet med fordreide data vil normalt en feiltilstand bli detektert og dataene vil bli forkastet. I de tilfeller hvor de fordreide data ble sendt til hurtigbufferenheten, ville de resulterende treff eller bom som ble generert ikke frembringe pålitelige indikasjoner. F.eks., vil en bom dersom den er feil frembringe multiple allokeringer. En treff, dersom den er feil kunne resultere i oppdateringen av feil behandlingsenhets data. Ved dette punktet vil uansett hvilke forholdsregler som ble tatt, hurtigbufferenhetens innhold bli inkoherent.
Dette gjelder også for lagerskrivning utstedt av hver behandlingsenhet. Dvs. at dersom lagerskrivningen som påtrykkes systembussen av behandlingsenheten frembringer en feil, vil hindring av at innholdet til dens egen bufferenhet blir oppdatert av denne skrivingen forhindre ytterligere ødeleggelse. Dette gir imidlertid også mulighet for en potensiell inkoherens. For å overkomme dette vil en mulig løsning være å sørge for tilleggsfeildetektering og korri-ger ingsmuligheter ut gjennom hele systemet som vil være i stand til å rekonstruere de dårlige eller fordreide dataene. Dette vil imidlertid være svært kostbart og ganske tids-krevende og derved forårsake en vesentlig minsking i hurtigbufferens ytelse. Likevel kan det fremdeles være umulig å sikre koherens under alle forhold spesielt innenfor et system som innbefatter robusthetsegenskaper. Følgelig er det et primært formål med den foreliggende oppfinnelse å tilveiebringe en teknikk og en anordning som er i stand til å opprettholde hurtigbufferkoherens på en høyst pålitelig måte uten at totalytelsen ofres.
Det er et ytterligere formål med foreliggende oppfinnelse å opprettholde koherens innenfor et tett koplet robust databehandlingssystem.
EP-90638 beskriver en bufferminneenhet som under behandling av lagerfordringer kan detektere feil, og hvor hver lagerfordring har første og andre adressedeler. Bufferet inneholder videre et adressekataloglager som igjen omfatter: flere nivåer hvor hvert nivå innbefatter en gruppe lagerlokaliseringer for å lagre et korresponderende antall av de første adressedeler, samt at hver av de ulike grupper av lagerlokaliseringer innen adressekataloglageret er tilgjengelig for ulike andre adressedeler. - Kontrollorgan som genererer et feilsignal for å indikere en feil relatert til den første adressedelen.
Bufferminneenheten i henhold til nevnte publikasjon omfatter også et datalager som har det samme antall nivåer som adressekataloglageret, og som er tilgjengelig for den andre adressedelen.
Foreliggende oppfinnelse har til hensikt å tilveiebringe ovenfornevnte formål og forbedre den bufferlageranordningen som beskrevet i nevnte europeiske patentpublikasjon. Dette tilveiebringes ved hjelp av en hurtigbuffer av den innledningsvis nevnte art hvis karakteristiske trekk fremgår av krav 1 samt ved hjelp av multiprosesseringssystem av den innledningsvis nevnte art hvis karakteristiske trekk fremgår av krav 8. Ytterligere trekk ved oppfinnelsen fremgår av de øvrige uselvstendige kravene.
Hurtigbufferundersystemet til den foretrukne utførelse innbefatter videre et antall programmerbare kontrollkretser. Disse kretser er forbundet slik at de kan motta flere forskjellige typer bussoperasjonssignaler og kommandosignaler til systembussen gjennom lytteinnretningen som definerer typen av operasjoner eller sykluser som blir utført av hurtigbufferundersystemet. Disse signaler blir kombinert på logisk måte for å generere et utgangssignal som indikerer hvorvidt eller ei innholdet i adressekataloglageret skal flyte over når en hvilken som helst av et antall adresse-eller systemfeil er blitt detektert. I visse tilfeller blir utgangssignalet kombinert med et antall signaler som indikerer tilstedeværelsen av en hurtigbuffer-adressefeil som spesifiserer at adressen tilveiebrakt av fordringsinngangs-kilden var upålitelig, eller at det var en adressefeil i adressekatalogen. Den separate behandling av de forskjellige typer adressefeil gjør det mulig at overflyting bare kan finne sted når adressefeilen vil' gjøre hurtigbufferen inkoherent. Dersom den samme forholdsregel normalt ville bli tatt som respons på begge typer adressefeil, kunne et enkelt eller sammensatt feilsignal bli brukt.
Det resulterende signalet blir kombinert med andre signaler som er representative for tilstedeværelsen av andre hendelser eller kommandoer for å generere et tilbakestillingssignal for adressekatalogen. Dette signalet blir påtrykt alle nivåene til flernivåadressekataloglageret slik at innholdet overflyter som påkrevd for å opprettholde langtids hurtigbuf f erkoherens . Dvs. at i systemet i henhold til den foreliggende oppfinnelse blir det forutsatt at hurtigbufferundersystemet opprettholder de samme data over lange tidsperioder i motsetning til å flyte over stadig vekk eller bli utrenset som respons på kommandoer fra de tilknyttede behandlingsenheter .
I den foretrukne utførelse blir overflytingen utført ved at adressekataloginnholdet til alle lagersteder som gjør de løpende adressene ugyldige blir innstilt til NULLER. Overflyting er en skånsom prosess i motsetning til gjen-fylling av hele hurtigbuf feren med nye data. Dette gjør det mulig å omdanne en utålererbar tilstand til en sakte gjeninnlasting av hurtigbufferen (dvs. produksjon av en serie bommer)samtidig som hurtigbufferdriften kan fortsette. Dette eliminerer behovet for forbikopling eller nedgradering av hurtigbufferen og tillater driften å fortsette med vesentlig ytelsesnedgradering til den nødvendige programmerbare gjenvinningsprosedyren kan oppvekkes for å gjenopprette hurtigbufferdriften. I tillegg tilveiebringes pålitelighet eller robusthet ved utføringen av hurtigbufferoperasjoner.
Den foreliggende oppfinnelse gjenkjenner og gjør full nytte av det faktum at adressekatalogen tjener som en ledig del inne i det tett koplede systemet og således kan gjøres midlertidig mindre effektiv for å kunne reagere på visse tilstander på en måte som opprettholder hurtigbufferkoherens eller konsistens.
I den foretrukne utførelse innbefatter systemhendelsene som er valgt til å bringe adressekatalogen til overflyt under enhver hurtigbuffersyklus en systembuss tidsutløpstilstand, en tredje part bussyklus feiltilstand, og en FIFO overflytfeil. Signalene som er representative for andre tilstander som kan resultere i en høy sannsynlighet for å frembringe hurtigbufferkoherens kan tilføyes som inngangssignaler til kontrollkretsene etter behov. De programmerbare logiske rekkekontrollkretsene er programmert for å utfiltrere syklusene og systemhendelsene under hvilke overflyting er nødvendig for å opprettholde koherens. Kretsene muliggjør også slike tillegg.
I visse tilfeller foreligger typer feiltilstander som kan behandles med en høy grad av pålitelighet uten at det er nødvendig å overflyte adressekatalogen. I en slik tilstand er forholdet når de fordrede data som mottas fra hovedlageret av en behandlingsenhet inneholder en ikke-korrigerbar lagerfeil som blir signalert av hovedlageret. Som beskrevet i den beslektede patentsøknaden med tittel, "Read In Process Memory" (prosessleselager), preallokerer hurtigbufferundersystemet et lagersted til adressekatalogen for de fordrede data under startbehandlingen til en lagerlesefordring. Den foretrukne utførelse av den foreliggende oppfinnelse tillater deallokering av en tidligere allokert adressekataloglokalisering når ikke-korrigerbare hovedlagerdata mottas fra systembussen under den andre halvparten av behandlings-syklusen. De ikke-korrigerbare dataene blir overført til fordringsbehandlingsenheten for feilanalyse, men blir ikke lagret i hurtigbufferen. Ved å utføre en deallokeringssyklus, blir hurtigbufferkoherensen sikret. Den samme syklusprosessen med deallokering kan utføres for andre typer lagerresponser.
De nye egenskapene som antas å være karakteristiske for oppfinnelsen både når det gjelder oppbygning og driftsmåte, sammen med ytterligere formål og fordeler vil forstås bedre på bakgrunn av den følgende beskrivelse sett i forbindelse med de vedheftede tegninger. Det må imidlertid klart forstås at hver av tegningene bare er lagt frem som illustrasjon og beskrivelse, og er ikke ment som en definisjon for grensene til den foreliggende oppfinnelse.
Oppfinnelsen er definert i de etterfølgende patentkrav.
Oppfinnelsen skal nå beskrives under henvisning til tegningene hvor
fig. 1 er et blokkskjema over et system som innbefatter apparatet eller anordningen i henhold til den foreliggende oppfinnelse.
Fig. 2 er et blokkskjema over en av de sentrale undersystemene på fig. 1 utformet i henhold til den foreliggende oppfinnelse. Fig. 3 viser mer detaljert kretsene til direkteforbindelsestrinnene på fig. 2. Fig. 4 er et flytdiagram som benyttes for å forklare totalvirkemåten til anordningen i henhold til den foreliggende oppfinnelse. Fig. 5a til 5g illustrerer mer detaljert visse operasjoner vist på fig. 4. Fig. 1 viser et multiprosessor-databehandlingssystem 10 som innbefatter flere undersystemer 13 til 30 som er koplet felles til en systembuss 12. De illustrative undersystemene innbefatter en systemstyremulighet (System Management Facility, SMF) undersystem 13, flere sentrale undersystemer 14 til 16, flere lagerundersystemer 20 til 28 og et perifert eller inn/ut undersystem 30. Hvert lagerundersystem er hårdnet slik at det innbefatter like og ulike lagermoduler som vist på fig. 1. Et eksempel på en slik anordning er beskrevet i US-patent nr. 4 432 055.
Hvert undersystem innbefatter et grensesnittområde som gjør det mulig for enheten eller enhetene som er tilknyttet å sende eller motta fordringer i form av kommandoer, avbrudd, data eller responser/status til en annen enhet på systembussen 12 på en asynkron måte. Dvs. at hvert grensesnittområde kan antas å innbefatte logiske bussgrensesnittkretser slik som beskrevet i US-patent nr. 3 995 258, med tittel "Data Processing System Håving a Data Integrity Technique", oppfunnet av George J. Barlow.
SMF undersystemet 13 som er forbundet med den venstre enden av bussen 12 innbefatter en mikrobehandlingsenhet og flere sentraliserte kilder som det er tilgang til via bussen 12 for kommandoer fra de sentrale undersystemene 14 til 16. SMF-undersystemet 13 kan også utstede kommandoer til en hvilken som helst av de sentrale undersystemene for å assistere med utførelsen av vedlikeholdsfunksjoner. For ytterligere informasjon refereres til den beslektede patentsøknad med tittel, "System Management Apparatus for a Multiprosessor System".
Ordningen av hver av de sentrale undersystemene 14 til 16 er den samme. Figur 2 viser i form av blokkskjema ordningen av det sentrale undersystemet 14. Undersystem 14 innbefatter et par av de sentrale behandlingsenhet(CPU)undersystemene 14-2 og 14-4 koplet slik at de deler et hurtigbufferundersystem 14-6. Eurtigbufferundersystemet 14-6 er koplet til systembussen 12 gjennom et først inn først ut (FIFO) undersystem 14-10 som kan ansees innbefattet i grensesnittområdet 14-1.
Som det fremgår av fig. 2, er begge CPU-undersystemene 14-2 og 14-4 identisk utformet. Dvs. at hvert CPU-undersystem innbefatter en 32-bit sentral behandlingsenhet (CPU) (dvs. CPU-ene 14-20 og 14-40), og en virtuell lagerstyreenhet (VMMU) (dvs. VMMU 14-26 og 14-46) for å oversette CPU virtuelle adresser til fysiske adresser for presentasjon overfor hurtigbufferundersystemet 14-6 som en del av lagerfordringene. Hvert CPU-undersystem innbefatter også et leselager (ROS) og et 16-bit ROS datautgangsregister (RDR)
(dvs. ROS 14-24, 14-44 og RDR 14-25, 14-45).
Ved begynnelsen av hver syklus er hver ROS innstilt slik at det kan lese ut et 16-bit mikroinstruksjonsord inn i sin datautgang (RDR) register som definerer typen operasjon som skal utføres under syklusen (fastvare trinn/blokk). Klokkekretsene i hvert CPU-undersystem (dvs. kretsene 14-22 og 14-42) etablerer den grunnleggende tidsgiving for sitt undersystem under kontroll av hurtigbufferundersystemet 14-6 som forklart her. Elementene til hvert CPU-undersystem kan utformes av standard integrerte kretsbrikker.
Som det fremgår av fig. 2, er hurtigbuf f erundersystemet 14-6 ordnet i en kildeadressegenereringsseksjon og to separate direkteforbindelsestrinn som hver har egne dekode- og kontrollkretser. Kildeadressegenereringsseksjonen innbefatter blokker 14-62 og 14-64 som utfører funksjonene med kilde-adressevalg og inkrementering. Det første direkteforbindelsestrinnet er et adressetrinn og innbefatter adressekatalog-kretser for blokkene 14-66 til 14-76, anordnet som vist. Dette trinnet utfører funksjonene med å låse de genererte kildeadressene, adressekatalogsøk og treffsammenligning. Det første direkteforbindelsestrinnet tilveiebringer som en utgangsinformasjon i form av et nivåtall og en søyleadresse. Operasjonene til det første direkteforbindelsestrinnet blir klokkestyrt av tidssignaler generert av tidsenheten og kontrollkretsene til blokken 14-60.
Informasjonen fra det første trinnet blir umiddelbart sendt videre til det andre direkteforbindelsestrinnet og etterlater det første trinnet tilgjengelig for den neste kildefordrin-gen. Det andre direkteforbindelsestrinnet er et datatrinn og innbefatter databufferen og tilhørende lagerkretser til blokkene 14-80 til 14-96, anordnet som vist. Dette trinnet utfører funksjonene med tilgang til de fordrede data fra bufferlagrene 14-88 og 14-90, eller erstatning/lagring av data med data mottatt fra FIFO-undersystemet 14-10. Det andre direkteforbindelsestrinnet tilveiebringer således et 36-bit dataord for overføring til en av CPU-undersystemene. Igjen blir operasjonene til det andre direkteforbindelsestrinnet klokkestyrt av tidssignaler generert av tids- og kontrollkretsene til blokken 14-60.
De forskjellige blokkene til de første og andre direkteforbindelsestrinnene er utformet på bakgrunn av standard integrerte kretser, såsom beskrevet i "The TTL Data Book, Column 3", copyright 1984, Texas Instruments Inc. og i "Advanced Micro Devices Programmable Array Logic Eandbook", copyright 1983, Advanced Micro Devices, Inc. Adressevelge-kretsen til blokken 14-62 er f.eks. utformet av 74AS1823 trestatusregister, brikkeledning ORed, for å velge en av fire adresser. Vekslemultiplekseren til blokken 14-92 er utformet av den samme type brikke. Låsene til blokkene 14-68 og 14-72 er utformet av 74AS843 D-type låsebrikker. Vekslemultiplekseren og dataregisterkretsene til blokken 14-70 er utformet av et enkelt klokkestyrt programmerbart logisk rekkeelement, såsom delnummer AMPA16R6B, fremstilt av Advanced Micro Devices, Inc.
Adressekatalogminnene 14-74 og 14-76 vist mer detaljert på fig. 3, er utformet av 8-bit hurtigbuffer adressekomparator-kretser som har delenummer TMS2150JL, fremstilt av Texas Instruments Incorporated. Adresse- og dataregistrene 14-80 til 14-84 og 14-94 og 14-96 er utformet av 9-bit grensesnitt flip-flop som har delenummer SN74AS823, fremstilt av Texas Instruments, Inc.
Bufferen og tilknyttede lagerkretser 14-80 og 14-84 som er vist mer detaljert på fig. 3, er også fremstilt av 4K x 4-bit lagerbrikker som har delenummer IMS1421, fremstilt av INMOS Corporation. Adresseinkrementkretsene til blokken 14-64 er fremstilt av standard ALU-brikker benevnt med delenummer 74AS181A, og et programmerbart logisk rekkeelement som har delenummer AmPAL16L8B, fremstilt av Advanced Micro Devices, Inc.
Som beskrevet mer detaljert her, anvender de første og andre nivåene til kommandoregister og dekodekretsene til blokken 14-66 og 14-86 respektivt de logiske klokkestyrte programmerbare rekkeelementene som har delenumrene AmPAL16R4B og AmPAL16R8B, fremstilt av Advanced Micro Devices, Inc. Disse kretsene blir også brukt for å generere den nødvendige seleksjon, lese- og styrekontrollsignaler som indikert på fig. 2 (dvs. signaler SWAPLT+00, SWAPRT+00, P0LDDT-OL, P1LGDDT-0L, P0LDDT-OR, F1LDDT-0R). For ytterligere detaljer refereres til ligningene i vedlegget.
Som det fremgår av fig. 2 er hurtigbuf f erundersystemet 14-6 ordnet i like eller ulike seksjoner som tillater at to dataord kan ha tilgang samtidig som respons for enten en ulik eller lik lageradresse. For ytterligere informasjon om denne type hurtigbufferadressering, refereres til US-patent nr. 4 378 591, som tilhører den samme innehaver som er navngitt her.
Fig. 2 viser også i blokkform FIFO-undersystem 14-10 som innbefatter FIFO-kontroll og klokkekretsene til blokken 14-11 som er koplet til et erstatningsadresseregister 14-12 og til systembussen 12. FIFO-undersystemet 14-10 mottar all informasjon som overføres mellom et hvilket som helst av to undersystemer på systembussen 12. Når informasjonen gjelder oppdatering av data i hovedlageret, blir informasjonen kodet for å indikere slik oppdatering eller erstatningsoperasjon. FIFO-undersystemet 14-10 mottar også nye data som er resultatet av en lagerfordring som blir videresendt til systembussen 12 av hurtigbufferundersystemet 14-6. Både oppdatering og nye data blir lagret som fordringer inne i et bufferlager innbefattet i undersystemet 14-10. Sluttelig lagrer også FIFO-undersystemet 14-10 informasjon overført av andre undersystemer under dårlige bussykluser ved at det utfører en lytte- eller overvåkningsrolle. Dvs. at FIFO-undersystemet 14-10 lagrer slik informasjon for oppdatering av hurtigbufferen når den bestemte bussyklusen under hvilken overføringen har blitt erkjent siden denne skulle ha blitt sendt som en del av en lagerskrivekommando til et av lagerundersystemene. Som forklart her vedlikeholder anordningen i henhold til den foreliggende oppfinnelse hurtigbuf f erkoherens som ikke motstår mottak av slik informasjon.
FIFO-kontrollkretsene dekoder hver fordring og starter de riktige operasjonssykluser som resulterer i at adresse, data og kommandoer blir påtrykt de forskjellige delene til hurtigbuffersubsystemet 14-6 slik det fremgår av figur 2. For formålet til foreliggende oppfinnelse kan FIFO-undersystemet ansees konvensjonelt i utforming og ha form av typen FIF0-kretser beskrevet i US-patent nr. 4.195.340 som tilhører den samme innehaveren som angitt her.
Den grunnleggende tidsgivingen for hvert av undersystemene på fig. 2 er etablert av tids- og kontrollkretsene til blokken 14-60. Slik kontroll tillater konfliktfri deling av hurtigbuf f erundersystemet 14-6 av CPU-undersystemene 14-2 og 14-4 og FIFO-undersystem 14-10. Kretsene til blokken 14-60 er beskrevet mer detaljert i den første beslektede patent-søknaden. Forenklet innbefatter disse kretsene logiske adressevelgerkretser som genererer kontrollsignaler for å innstille adressevelgeren 14-62 til å velge et av undersystemene 14-2, 14-4 og 14-10 som en fordret adressekilde.
Blokken 14-60 innbefatter også direkte forbindelsesklokke-kretser som definerer de forskjellige typene hurtigbuffersykluser som kan initiere starten av direkte forbindelsen som resulterer i genereringen av en forutbestemt sekvens av signaler som respons på hver fordring. Det vil si første og andre signaler som respektivt indikerer en hurtigbufferfordring for CPUO-undersystem 14-2 og CPU1-undersystem 14-4, mens andre signaler indikerer hurtigbufferfordringer for FIFO-undersystem 14-10.
Disse fordringer kan oppsummeres som følger:
1. CPU0 LESESYKLUS
En CPUO-lesing opptrer som respons på en hurtigbufferfordring initiert av ROS 14-24 under en første tidsspalte/intervall når CPU-port 0 i grensesnittet 14-1 ikke er opptatt. Adressen matet av CPUO-undersystemet 14-2 blir videreført til det første direkteforbindelsestrinnet og adresseregisteret blir lest. Når en treff blir detektert, som indikerer at de fordrede data blir lagret i databufferen, blir bufferen lest og dataene blir klokket inn i CPU-dataregisteret. Når bom blir detektert, blir CPU0-porten gjort opptatt, og fordringen blir videresendt til lageret for å hente de fordrede dataene.
2. CPU1 LESESYKLUS
En CPUl-lesing finner sted som respons på en hurtigbufferfordring initiert av ROS 14-44 under en tredje tidsspalte/intervall når CPU-porten 1 i grensesnittet 14-1 ikke er opptatt.
3. ANDRE HALVE BUSSYKLUS
En andre halve bussyklus finner sted som respons på en første type hurtigbufferfordring initiert av FIFO-undersystemet 14-10 for data fordret fra enten hovedlageret eller en I/O-innretning som blir returnert på systembussen 12 under en første eller tredje tidsspalte/intervall når FIFO-undersystemet 14-10 har lagret en fordring. Når FIFO-undersystemet 14-10 viderebefordrer data fra en I/O-innretning til det første direkteforbindelsestrinnet, sendes data gjennom dette systemet uten at tilstandene til noen av lagrene blir endret og dataene blir klokket inn i det riktige CPU-dataregister. Data fra hovedlageret blir skrevet inn i hurtigbufferens databuffere og blir klokket inn i de riktige CPU-data-registere.
4. LAGERSKRIVEOPPDATERINGSSYKLUS
En lagerskriveoppdateringssyklus finner sted som respons på en andre type hurtigbufferfordring initiert av FIFO-undersystemet 14-10 for oppdatering av data som mottas fra systembussen 12, ved erkjennelse av slike data under en første eller tredje tidsspalte/intervall når FIFO-undersystemet 14-10 har lagret en fordring. FIFO-undersystemet 14-10 viderebefordrer data til det første direkteforbindelsestrinnet hvilket resulterer i lesingen av adresseregisterlageret. Når et treff blir detektert, blir oppdateringsdataene skrevet inn i bufferlageret.
5. FIFO- ALLOKERINGSSYKLUS
En FIFO-allokering finner sted som respons på en CPU0 eller CPU1 lesesyklus som resulterer i at en bom blir detektert. CPU-porten blir gjort opptatt og fordringen dersom den blir videresendt sendt videre til lageret for å hente de fordrede data. Ved lagerlesefordring er kjent, blir CPU-lesefordringen lastet inn i FIFO-undersystem-registrene og kontrollkretsene innbefattet i undersystemet initierer en fordring for en FIFO-operasjonssyklus (dvs. tvangssignal CYFIF0=1), og signalene spesifiserer typen fordring og nivånummerinformasjon blir påtrykt som inngangssignaler til kommandoregistrene og dekodekretsene til blokken 14-66. Disse signalene innbefatter FIMREF (lagerreferanse), FIWRIT (lagerlese) og FIDT16-18/19-21 (nivånummer). Signalene FIWRIT initierer en FIFO-allokeringssyklus (dvs. FIÅL0CYC=1).
6. BUSSLÅS- IKKE SYKLUS
En busslås-ikke syklus finner sted som respons på en låslagerlesefordring med et hurtigbuffertreff, som undersøker innstillingen av en låsetilstand for en gitt lagerlokalisering. Dette blir brukt for å synkronisere operasjonene hvor et CPU-undersystem først kan lese innholdet i lagerstedet, så innstille låsen og utføre en påfølgende modifiseringsskriveoperasjon på innholdet. Ved tilgang til slike delte områder i lageret, verifiserer hvert CPU-undersystem at den bestemte lokaliseringen ikke er låst ved å utstede en lagerleselåsfordring til lageret. Lageret genererer respons for å signalisere hvorvidt eller ei lokaliseringen er låst, men utfører ikke den fordrede lesing (dvs. ingen lagersyklus). I tilfellet med en hurtigbufferbom, blir et lås-ikke syklussignal ikke sendt til lageret, og dette resulterer i en andre halvbussyklus når låsetilstanden for lagerlokaliseringen ikke var innstilt på forhånd.
Det er også visse systemhendelser som kan initiere starten av direkteforbindelsen og genereringen av den forutbestemte sekvensen av signaler. Disse systemhendelser som vil bli forklart mer detaljert i det etterfølgende innbefatter tilstedeværelsen av et operasjonstidsutløp for en systembuss, en dårlig tredje del bussyklus og en FIFO-overflyttilstand.
Fig. 3 viser ordningen av de like og ulike adressekatalog- og bufferlager direkteforbindelsestrinnene i henhold til den foreliggende oppfinnelse. Som det sees av fig. 3, er 4K x 16-bit adressekataloglageret 14-74/76 delt i to like rom. De første fire nivåene benevnt 0 til 3 er tilordnet CPUO mens de neste fire nivåene benevnt 4 til 7 er tilordnet CPTJ1.
Adressekataloglageret 14-74/76 genererer som respons på en hurtigbufferadresse åtte bit utgangssignaler (HITO-7) som blir påtrykt treffdekodekretsene til 14-86. I tillegg genererer adressekataloglager komparatorkretsene åtte paritetsfeilsignaler (PEO-7) som også blir påtrykt treffdekodekretsene til blokken 14-86. Tilstandene til disse signalene indikerer dersom en paritetsfeil ble detektert i noen av adressekatalogadressene som det var tilgang til og sammenlignes med de mottatte inngangsadressene som innbefatter det gyldige bit (v) innholdet til registeret 14-68/72.
Eadadresseinformasjon som innbefatter tilstanden til gyldigbitsignalet blir skrevet inn i et bestemt nivå når et korresponderende av skriveklargjørlngssignalene LVWRO til LVWR7 blir tvunget til en binær NULL til kretsene til blokken 14-66. Ved dette tidspunkt kan innholdet til adressekataloglageret 14-74/76 bli tilbakestilt eller slettet til NULLER. Dette finner sted når et signal PXDIRI som er forbundet til alle reset (R) eller tilbakestillingsterminalene blir tvunget til en binær NULL-tilstand. For ytterligere detaljer vises til ligningene i vedlegget.
Treffdekodekretsene til blokken 14-86 innbefatter treffdekodekretsene til blokken 14-860 og de multiple allokeringstreffdekodekretsene til blokken 14-864. I den foretrukne utførelse blir separate PLA-elementer brukt til å danne kretsene til hver av blokkene 14-860 og 14-864. Noen av disse elementene er vist på fig. 3 og vil bli forklart mer detaljert i det etterfølgende. Begge disse kretsene innbefatter prioritetskodekretser som arbeider for å velge det høyere prioritetsnivå når fler enn ett treffutgangssignal er tilstede. Prioriteten er basert på nivånummerverdien ved nivået 0 som den høyeste prioritet og nivå 7 som den laveste prioritet.
Som respons på treffutgangssignalet HITO-7, genererer treffdekodekretsene 14-860 en tre-bit treffnummerkode som korresponderer til signalene HIT#0-2 i tillegg til treffutgangssignalet EIT som brukes til å signalisere tilstede-værelsene av en trefftilstand. I tillegg mottar treffdekodekretsene 14-860 signaler ODAPEA-2 fra paritetssjekkretsene til blokken 14-744. Som respons på adressesignalet fra adressekatalogadresseregisteret 14-68/72, genererer paritets-kretsene fremstilt av 74AS280 kretsbrikker paritetsfeilsignaler ODAPEA-2 som indikerer hvorvidt noen bitgrupper i den innkommende adresse som er mottatt av ulike adresselåser 14-68 fra adressevelgeren 14-62 har dårlig paritet. Det vil forstås at et lignende signalsett vil bli generert for de like adresselåsene 14-72.
Treffdekodekretsene 14-860 kombinerer kildeparitets-adressesignalene (f.eks. ODAPEA-2) og adressekatalog-adressefeilsignalene for å generere hurtigbufferfeilsignalet CACERR. Dette signalet har to funksjoner. For det første blir det brukt for å forbikople hurtigbufferen under den på-følgende andre halvdel av hurtigbufferoperasjonen. For det andre blir det brukt til å hindre eller blokkere treff-signalindikatorne hvilket bringer hurtigbufferundersystemet til å hente de fordrede data fra hovedlageret.
De multiple allokeringstreffdekodekretsene 14-864 vil som respons på nivånummersignalene WRL00-02 som mottas fra FIFO-undersystemet 14-10 og signalene HIT 0-7 arbeide for å generere en to-bit kode som korresponderer med signalene MAM1-2 som indikerer det laveste prioritetsnivået ved hvilket en multippel allokeringstreff fant sted i tillegg til det multiple allokeringslagersignalet MAMV. For ytterligere detaljer vedrørende de ovenfor nevnte signaler blir generert, refereres til ligningene i vedlegget.
Settene av treffutgangssignaler blir påtrykt databufferen og tilknyttede lagerkretser til blokken 14-88/90. Som det sees, innbefatter disse kretser bufferadresseregisteret 14-80/84 og 4K x 16-bit databufferen 14-88/90.
Fig. 3 viser mer detaljert et antall av de forskjellige elementene som utgjør de første og andre nivåkommando- og dekodekretsene til blokkene 14-66 og 14-86. I henhold til foreliggende oppfinnelse kombinerer disse kretsene visse systembuss 12 signaler som mottas via FIFO-undersystemet 14-10 som er representative for forutbestemte tilstander for å klargjøre genereringen av et adressekatalogtilbake-stillingssignal DIRRES, et overflytingssignal FLUSH og et adressekatalogslettesignal DIRCLR. Signalet FLUSH blir kombinert med tidssignal PIPEOB+OB og hurtigbufferfeilsignal CACERR i en NAND-port 14-741 for å frembringe et adressekatalog overflytingssignal DFLUSH. De tre signalene blir kombinert i en AND-port 14-740 for å frembringe et adresse-katalogsignal PXDIRR som blir påtrykt adressekatalogtilbake-stillingsterminalene til hurtigbufferadressekatalog-adressekomparatorkretsene 14-74/76 som sletter eller overflyter innholdet. Også signalet PXDIRR som indikerer at det er utført en overflytingsoperasjon, blir brukt til å innstille tilstanden til en overflytingsbitposisjon til et hurtigbuffersyndromregister 14-750. Som vist lagrer syndromregisteret 14-750 også signaler som er representative for opptredenen av hendelser og feil som forklart her i forbindelse med CPUO-operasjoner. Et lignende registerarrange-ment er også tilveiebrakt for å lagre status vedrørende CPU1-operasjoner.
I tillegg genererer også kretsene til blokken 14-66 et adressekatalogdeallokeringssignal DEALO påtrykt som et inngangssignal på en OR-port 14-742 som mottas som et andre inngangssignal, signalet ACPURD fra registeret 14-68/72 generert av en NAND-port 14-744.
Mer detaljert innbefatter kretsene til blokken 14-66 en D-type flipp-flopp 14-660 som er forbundet for å lagre opptredenen av en bussoperasjonstidsutløpstilstand som respons på et slettebussignal CLRBUS og tidssignal TM10R3. Signalet CLRBUS blir generert ved mottak av et signal fra en av operasjonstidsutløpskretsene som er innbefattet som en del av grensesnittet 14-1. Det vil si, at grensesnittet 14-1 innbefatter en 1.2 millisekunders operasjonstidsutløpskrets for CPUO og CPU1. Når systembussen er i en veltetilstand i en periode på mer enn 1.2 millisekunder, opererer den riktige tidsutløpskretsen, slik at den svinger signalet CLRBUS til en binær EN. Flipp-flopp 14-660 blir tilbakestilt som respons på signalet BUSBST som blir tvunget til en binær NULL. Utgangssignalet 0PTM0T fra flipp-flopp 14-660 blir påtrykt en av inngangene til en NOR-port 14-662.
NOR-porten 14-662 mottar som et andre inngangssignal et signal FIMBER fra FIFO-undersystemet 14-10 som indikerer tilstedeværelsen av en tredje paritetsbussfeiltilstand. I tillegg mottar også NOR-porten 14-662 som et tredje inngangssignal, signalet FIFERR fra undersystemet 14-10 som indikerer en FIFO-overflyttilstand. NOR-porten 14-662 genererer adressekatalogslettesignal DIRCLR som ble lagret i registeret 14-68/72 som respons på tidssignal PIPE0A+0A.
FIFO-undersystemet 14-10 innbefatter overflytdeteksjons-kretser så som en serie av D flipp-flopper som er forbundet for å detektere når FIFO-bufferkretsene er ute av stand til å motta data for en fordring fra systembussen hvilket resulterer i en overflytningstilstand. I tillegg mottar FIFO-undersystemet 14-10 fra responskretsene i grensesnittet 14-1, bussfeilsignaler som indikerer hvorvidt eller ei en fordring påtrykt systembussen 12 av et annet undersystem og som er akseptert av et designert undersystem har god paritet. Enhver slik fordring som er lagret i FIFO-undersystemet 14-10 blir fulgt av signalet FIMBER som blir satt til binær EN for å signalere tilstedeværelsen av feilstanden.
Grensesnittkretsene sørger for korrekt paritet for fordringen som er lagret i FIFO-undersystemet 14-10. Disse kretser danner en del av integritetskretsene som klargjør fordringer slik at de kan prøves om igjen av et undersystem før akseptering. Disse kretsene som ikke er spesielle for den foreliggende oppfinnelse, er beskrevet detaljert i den parallelle patentsøknaden til George J. Barlow og James W. Keeley, med tittel "Resilient Bus System", med serienummer 623.264, inngitt 21. juni 1984, og som tilhører den samme innehaveren som er navngitt her. Siden de forskjellige undersystemene kan innbefatte kretser av denne type for å gjøre systemet på fig. 1 robust overfor bussfeiltilstander, sørger FIFO-undersystemet 14-10 for lagringen av slike fordringer når kriteriet som indikerer en akseptert fordring har blitt tilfredsstilt.
Blokken 14-66 innbefatter også en klokkestyrt adressekatalog-kontrollkrets PLA-elementer 14-664 og 14-666, som hver mottar forskjellige signalsett fra FIFO-undersystemet 14-10. Kretsen 14-664 arbeider for å generere DEALO og et adressekatalog-skrivesignal DIRWRE for å skrive innholdet av gyldighetbit-posisjonene til en adressert adressekataloglokalisering innenfor et valgt nivå som forklart her. Som vist, blir signalet DIRWRE påtrykt en av de klargjørende inngangs-terminalene til en 3 til 8 dekoderkrets 14-670. Som vist blir signalet ACPURD påtrykt en andre klargjøringsinngangsterminal til kretsen 14-670 sammen med skrivepulstidssignalet WRTPLS. Skriveerstatningssignalene WRL00-02 blir dekodet av kretsen 14-670 hvilket resulterer i at et av signalene LVWRO til LVWR7 blir tvunget til en binær NULL og derved spesifisere at adressekatalognivået skal skrives.
Kretsen 14-666 arbeider for å generere CPUO hurtigbuffer-tilbakestillingssignal POCACR. En lignende krets, ikke vist, genererer signalet P1CACR. Disse signalene blir kombinert i en AND-port 14-668 som generere adressekatalogtilbake-stillingssignal DIRRES. Signalene POCACR og P1CACR blir generert som respons på avbruddsskrivekommandoer mottatt fra SMF 13. Kommandoen har en funksjonskode som er lik verdien 9 som indikert med signalene FIAD19 til FIAD22 og er en avbruddsskrivekommando benevnt med signal FOCMEN.
I tillegg innbefatter blokken 14-66 nok et par med klokkestyrte PLA-elementer 14-672 og 14-674. Kretsen 14-672 genereres som respons på signalene fra FIFO-systemet 14-10 som utgangssignaler signalene DIRALC til MSHBCL som blir brukt til å definere de forskjellige typer hurtigbuffersykluser av drift under hvilke en overflytingsoperasjon skal utføres når en hurtigbufferadressefei1 eller feilfunksjon blir detektert. PLA-kretsen 14-674 genererer som respons på de viste signalene signalet CPUCYL som indikerer når hurtigbufferundersystemet 14-6 utfører en CPU-syklus. Dette signalet sammen med signalene DIRALC til MSHBCL blir påtrykt som inngangssignaler til et klokkestyrt PLA-element 14-866 som danner en del av det andre nivået dekoderkretser 14-86. Denne krets genererer som et utgangssignal et overflytingssignal FLUSH som indikerer når overflytingsoperasjonen skal finne sted.
I tillegg illustrerer fig. 3 et alternativt arrangement som innbefatter en ytterligere NAND-port 14-741A som er vist med prikkede linjer. Her genererer treffdekoderkretsene 14-860 som utgangssignaler, signalet CACERR som indikerer en adressekatalogadressefell og signalet CACERRA som indikerer en inngangsadresse (kilde) feil.
I henhold til den foreliggende oppfinnelse er PLA-elementet 14-866 programmert for å tilveiebringe som utgangssignaler første og andre overflytsignaler FLUSH og FLUSHA. Hvert overflytningssignal indikerer når overflyting skal finne sted som funksjon av en adressekatalogadressefeil eller en inngangsadressefeil. Som beskrevet her, kan den separate klassifisering av adressefeil redusere nødvendigheten for å la adressekatalogen overflyte under visse typer hurtigbuffersykluser, hvilket kan resultere i økt ytelse. Ved å anvende PLA-elementer, er hurtigbufferundersystemet 14-6 i stand til å fastslå under hvilke hendelser og tilstander adresse-katalogoverflyting bør finne sted. Som forklart detaljert' her, tillater dette balansering av hurtigbufferkoherens og ytelse uttrykt ved typen handling som velges som respons på forskjellige typer adressefeilfunksjoner eller feil.
Under henvisning til diagrammene på fig. 4, 5a til 5g, skal virkemåten til anordningen i henhold til den foreliggende oppfinnelse vist på fig. 3 nå beskrives. Hurtigbufferundersystemet 14-6 til den foreliggende oppfinnelse behandler fordringer mottatt fra hver av behandlingsenhetene CPUO og CPU1 i tillegg til fordringer fra FIFO-undersystemet 14-10. Som tidligere nevnt, definerer direkteforbindelsesklokke-kretsene som er innbefattet i blokkens 14-60 de forskjellige typene hurtigbufferlagersykluser som kan initiere starten av direkteforbindelsesoperasjonen som resulterer i genereringen av en forutbestemt sekvens av signaler som respons på hver fordring. Som også vist på figur 3 blir signalene FIFERR, FIMBER og 0PTM0T påtrykt som* inngangssignaler på direkte-forbindelsesklokkekretsene for å initiere hurtigbufferdrifts-sykluser for å vedlikeholde hurtigbufferkoherens som beskrevet her.
Med henvisning til figur 4 sees at de forskjellige, typene operasjoner eller sykluser som utføres av hurtigbufferundersystemet 14-6 innbefatter en SMF/MRI avbruddsoperasjon, en CPU lesesyklus, en adressekatalogallokeringssyklus, en lås-ikke-syklus, en oppdateringssyklus, en lagre-I/O-SHBC-syklus, en tredje paritetsbussfeilsyklus, en operasjonell tids-utløpssyklus og en FIFO-overflytfeilsyklus. Med unntak av SMF-avbruddet utfører hurtigbufferundersystemet 14-6 en operasjonssyklus i hvilket tidsrom den søker for tilstedeværelsen av forskjellige typer adressefeilfunksjoner eller feil. Basert på typen hendelse eller typen syklus hvorved adressefeilen opptrådte, velger hurtigbufferundersystemet 14-6 hvilken handling som skal foretas for å komme ut av den detekterte adressefeilfunksjonen på en måte som vedlikeholder koherens og et høyt ytelsesnivå. Handlingene som kan finne sted innbefatter forbikopling av hurtigbufferen for denne bestemte operasjonssyklusen og overflyting av hurtig-bufferadressekatalogen. Overflyting tillater sakte gjeninnlasting av hurtigbufferdatabufferen 14-88/90 med nye data.
Med henvisning til figur 4 skal nå de forskjellige typer sykluser/operasjoner bli beskrevet. Den første operasjonen nevnt som et SMF/MR I-avbrudd blir initiert ved at SMF 13 genererer en kommando på systembussen 12 som har en funksjonskode lik "09". Funksjonskoden blir dekodet av PLA-kretsen 14-666 på figur 3 hvilket resulterer i genereringen av adressekatalogtilbakestillingssignalet DIRRES. Denne sekvensen er vist på fig. 5a. Adressekatalogtilbakestillingssignalet DIRRES blir pulset i en klokkeperiode definert av signal MCLOCK generert av tidskretsene 14-60. Dette tvinger PXDIRR til en binær NULL i det samme intervalltids-intervallet hvilket overflyter innholdet i adressekatalogminnet 14-74/76. Dette blir utført ved å tvinge alle lokaliseringene innenfor hvert nivå på de åtte nivåene til NULL. Samtidig blir signalet PXDIRR brukt til å innstille til en binær enhet en forutbestemt bit-posisjon av syndromregisteret 14-750. Når dette er gjort posisjonerer denne bit signaler som om en hurtigbufferoverflytningsoperasjon har funnet sted. Denne bit-posisjon vil deretter bli tilbakestilt av SMF 13 for å unngå fremtidig forvirring. Denne typen operasjon er innbefattet med det formål å gjøre det komplett i visningen av at hurtigbufferundersystemet 14-6 er i stand til å utføre overflytingsoperasjoner som respons på kommandoer startet av SMF 13 under operasjonene med systemets kvalitetlogiske test (QLT).
Den andre operasjonen som er benevnt som en CPU-lesing blir initiert som respons på en hurtigbufferfordring av enten CPUO eller CPU1 under respektive første eller andre tidsinter-valler. Fordringsadressen til den fordrende CPU blir overført via adressevelgeren 14-62 inn i adressekatalogadresselåsene 14-68/14-72. Adressen blir lastet inn i låsene til det første direkteforbindelsestrinnet som respons på tidssignalet PIPEOA+OA som vist på fig. 3. Som beskrevet ovenfor, bringer signalene som definerer CPU-lesingen direkteforbindel-sesstartkretsene til blokken 14-60 til å generere en sekvens av tidssignaler som innbefatter signalet PIPEOA+OA. De samme signalene bringer også PLA-kretsen 14-674 til å generere signalet CPUCYL som respons på signalet PIPEOA+OA som vist på figur 3. Signalet CPUCYL blir påtrykt PLA-kretsen 14-866 som er programmert til å definere handlingen hvor en adressefeil blir detektert (dvs. signalet CACERR=1).
Med henvisning til fig. 5b vil det sees at i tilfellet hvor ingen adressefeil/feilfunksjon blir detektert, utfører hurtigbufferundersystemet en normal CPU-lesesyklus. Når imidlertid en adressefeil blir detektert, utfører ikke hurtigbufferundersystemet 14-6 en overflytingsoperasjon, men forbikobler hurtigbufferen i denne operasjonssyklusen. Dvs. at treffdekodekretsene 14-860 genererer signalet CACERR som blokkerer treffet ved å forhindre genereringen av laste-datasignaler POLDDT-OL og POLDDT-OR påtrykt CPU dataregisterkretsene slik at dataene spesifisert av CPU-fordringen automatisk vil bli hentet fra hovedlageret som om treffet ikke hadde funnet sted. Signalet CACERR bringer også en forutbestemt bit-posisjon for et register til grensesnittet 14-1 til å bli innstilt til en binær EN-tilstand som indikerer en hurtigbufferforbikopling. Dette bringer data som mottas fra lageret under den andre halve bussyklusen til hare å bli sendt til den fordrende CPU og ikke bli lagret i hurtigbufferen. Signalet CACERR innstiller også en bit-posisjon i syndromregisteret 14-750. Ved starten av den neste bussfordringen, tilbakestiller CPU CACERR syndrom bit-posisjonen for å sikre riktig drift.
Handlingen ovenfor sikrer fremdeles at hurtigbufferen forblir i den samme tilstand og således vedlikeholder hurtigbuf ferkoherens. Det faktum at det ikke var en adressekatalog-feil eller en kildeadressekatalogfeil gjør det resulterende treff upålitelig. Således kunne det være en dobbelt allokering hvilket kunne resultere i en potensiell inkoherens. Dvs. at allokeringen til den samme lokaliseringen kunne ha vært utført på to forskjellige nivåer. Adressekataloglageret 14-74/14-76 blir endret i den utstrekning at dets minst nylig brukte (LRU)-kretser blir oppdatert hvilket har ingen virkning siden i tilfellet med en adressekataloglesefeil, så vil feilen gjenta seg og hurtigbufferundersystemet blir forbikoplet hvilket forhindrer at data som mottas fra lageret blir skrevet inn i hurtigbufferundersystemet 14-6.
Den tredje operasjonen er en adressekatalogallokeringssyklus som blir utført når dataene som er spesifisert av fordringen ikke blir lagret i hurtigbufferdatabufferen 14-88/14-90. Som det fremgår av fig. 5c, blir under denne syklusen lesefordringen fra enten CPUO eller CPU1 presentert for hurtigbuf f erundersystemet 14-6 av FIFO-undersystem 14-10 og hurtigbufferradadressen blir skrevet inn i lokaliseringen designert ved hurtigbuffersøyleadressen på en av nivåene tilordnet CPU-en spesifisert ved et skriveklargjøringssignal fra dekoderkrets 14-670. Deretter vil, når de fordrede dataordene blir returnert under den andre halve bussyklusen, dette resultere i en hurtigbuffer SHBC-syklus under hvilken de mottatte data som er lagret i dataregisteret 14-82 bli skrevet inn i databufferen 14-88/14-90 på nivået spesifisert ved hurtigbuffersøyleadressen og treffnivåsignaler HIT#0-2 bli lastet inn i bufferadresseregisteret 14-80/84.
Ved utførelsen av en adressekatalogallokeringssyklus, sørger arrangementet på fig. 4 som innbefatter NAND-port 14-741A tilleggsfordeler ved at det er i stand til å skille mellom de to forskjellige typer adressefeil (dvs. adressekatalogadressefeil og en inngangsadressefeil). Dette arrangement forutsetter at adressekatalogadressefeilen kan anses "hard"
(dvs. ikke en transienttilstand). Somdet fremgår av fig. 5c, blir under slike forhold, når inngangsadressen ikke er feil/feilaktig, adressekatalogminnet 14-74/76 overfylt. Dvs. at NAND-port 14-741A tvinger signalet DFLUSE til en binær NULL som respons på at signalene CACERRA og FLUSHA blir tvunget til binære ENERE. Overflyting finner sted på måten som er beskrevet ved å tvinge signalet PXDIRR til en binær NULL under intervallet med den løpende hurtigbuffersyklus definert ved tidssignalet PIPE0B+0B opptrykt NAND-port 14-741. Samtidig forhindrer adressekatalogminnet 14-74/76 genereringen av tilfeldige treffutgangssignaler som resultat av ytelsen til den parallelle adressekatalogsyklusen. Signalet PXDIRR bringer også overflyt-bit-posisjonen til syndromregisteret 14-750 til å bli svitsjet til en binær EN-tilstand.
I tilfellet hvor bare en adressekatalogadressefeil blir detektert (dvs. signal CACERR=1) finner imidlertid ingen overflyting sted (dvs. signalet FLUSH forblir en binær NULL) og den normale allokeringssyklusen blir utført. Siden feilen er hard, vil den også bli detektert under de etterfølgende allokeringssykluser. Siden denne type adressefeil ikke vil påvirke hurtigbufferkoherensen dersom den detekteres under en adressekatalogallokeringssyklus, behøver ikke overflyting å bli utført. Således blir ytelsen til hurtigbufferundersystemet 14-6 opprettholdt på et høyt nivå uavhengig av detekteringen av slike adressefeil.
Som det sees av fig. 5c kan, når det er bestemt ved prøving eller lignende at denne typen adressefeil er av transient natur, PLA-kretsen 14-866 bli reprogrammert for å tvinge signalet FLUSH til en binær ENER hvilket forårsaker overflyting ved denne type adressefeil. I dette tilfellet fortsetter operasjonen som tidligere beskrevet.
Det som er beskrevet ovenfor illustrerer at overflyting bare finner sted når en type adressefeil eller feilfunksjon blir detektert som kunne resultere i en udetekterbar dobbelt-allokeringssyklus som gjør hurtigbufferen inkoherent. Ved dette tidspunkt foretas en mer alvorlig handling i form av overflyting for å sikre fremtidig pålitelig drift. I dette tilfellet, under den andre halve bussyklusen, vil adressekatalogminnet ikke generere en trefftilstand og derfor vil dataene ikke bli lagret i hurtigbufferen, men bli sendt til den fordrende CPU.
Den fjerde typen operasjon er en låse-ikke-syklusoperasjon. Fra sekvensen vist på fig. 5d forårsaker detekteringen av en adressefeilfunksjon eller feil en overflyting av adressekatalogminnet 14-74/76 på samme måte som i en adressekatalogallokeringssyklus. Dvs. at PLA-kretsen 14-866 er programmert til å tvinge signalet FLUSH til en binær EN-tilstand hvilket resulterer i at NAND-porten 14-741 tvinger signalet DFLUSH til en binær NULL når signalet CACERR blir tvunget til en binær EN. Igjen finner overflyting sted under det andre trinnintervallet til den arbeidende hurtigbuffer definert av signalet PIPEOB+OB.
I tilfellet ovenfor vil under den første halvdelen av lås-ikke-syklusoperasjonen. når hurtigbufferundersystemet 14-6 detekterer et treff, f ordringsadress-en fremdeles bli sendt til lagerundersystemet 20 for formålet å detektere hvorvidt lagerlokaliseringen er i en låst tilstand. Når lagersystemet 20 indikerer at lokaliseringen ikke er låst, genereres et bekreftelsessignal. Bekreftelsessignalet bringer den samme lokaliseringen til å bli igjen ved å påtrykke hurtigbuf ferundersystemet 14-10 adressen mottatt fra systembussen og som er lagret i FIFO-undersystemet 14-10. Signalet som blir generert når treffet opprinnelig ble detektert er benevnt som en buss-lås-ikke-syklus (FILKNC). Siden CPUO og CPU1 i den foretrukne utførelse ikke har muligheten til å gjenprøve denne typen operasjon når en feil opptrer, er det nødvendig å overflyte adressekatalogen snarere enn å forbikople hurtigbuffersyklusen. Det kan sees at dersom det fantes en slik gjenprøvingsmulighet, så kunne PLA-kretsen 14-866 på enkel måte reprogrammeres for å ta hensyn til dette.
Den femte type operasjon er en oppdateringssyklus. Her presenterer FIFO-undersystemet 14-10 en fordring til hurtigbufferundersystemet 14-10 for å oppdatere data som mottas fra systembussen 12. Når et treff blir detektert, blir oppdateringsdataene skrevet inn i hurtigbufferen. På fig. 5e angir de tykkere heltrukne linjene rundt adressefeiltest-blokken at den samme sekvensen av adressefeiltester som blir utført under adressekatalogallokeringssyklusen også blir utført under denne syklus. Dvs. at dersom en feiladresse eller feil blir detektert, så finner oppdateringsoperasjon ikke sted. Her er det mulig at dette kunne frembringe en dobbeltallokering. Siden det ikke er kjent hvorvidt opp-dateringsadressen eksisterer i hurtigbufferadressekatalog-minnet, blir det nødvendig å overflyte innholdet for å unngå innkoherens. Dvs. at en behandlingsenhet kunne ha skrevet ny informasjon inn i hovedlageret og hurtigbufferundersystemet 14-6 på grunn av adressefellen ikke er i stand til å oppdatere i sitt innhold til å være koherent med denne endringen i hovedlageret.
Følgelig er PLA-kretsen 14-866 programmert til å tvinge signalet FLTJSHA til en binær EN-tilstand som respons på oppdateringssyklussignalet UPDCYL som blir tvunget til en binær EN av PLA-kretsen 14-672. På måten som er tidligere beskrevet, blir signalet DFLUSH tvunget til en binær NULL som respons på at adressefeilsignalet CACERR blir tvunget til en binær EN. Som det fremgår av figur 5e finner overflyting sted i intervallet til den løpende syklus definert av signalet PIPEOB+OB. Når oppdateringssyklusen finner sted mellom en adressekatalogallokeringssyklus og en andre halvbussyklus, vil dataene som returneres under den andre halve bussyklusen ikke bli lagret i hurtigbufferen (dvs. overflyting av adressekatalog - ingen treff frembrakt), men bli sendt til den fordrende CPU.
I dette tilfellet hvor bare en adressekatalogadressefeil blir detektert (dvs.signal CACERR=1) finner imidlertid ingen overflyting sted hvilket resulterer i at en normal oppdateringssyklus blir utført. Siden operasjonen ikke ville påvirke hurtigbufferkoherensen, er det ikke nødvendig å foreta overflyting. Her igjen vil hurtigbufferundersystemet 14-6 arbeide med et høyt ytelsesnivå.
Som det fremgår av figur 4, er de sjette og syvende operasjonene andre halve bussyklusoperasjoner. Her ble en adresse skrevet inn i adressekatalogminnet 14-74/76 uten feil. Under den andre halvdelen av denne operasjonen, blir den samme lokaliseringen adressert for å kunne skrive de fordrede data inn i lokaliseringen som var preallokert. Når en adressefeilfunksjon eller feil blir detektert under denne typen syklus, er hurtigbufferundersystemet 14-6 ute av stand til på korrekt måte å plassere dataene. Således er PLA-kretsen 14-866 programmert til å tvinge signalet FLUSH til en binær EN for å forårsake overflyting ved tilstedeværelsen av en adressefeil (dvs. CACERR=1).
Siden det bare er lagerets andre halve bussykluser som kan påvirke hurtigbufferkoherens, er PLA-kretsen 14-866 programmert til å forårsake overflyting bare under en lager andre halve bussyklus (dvs. signal MSHBCL=1). I/O og SMF andre halve bussykluser forbikopler på effektiv måte hurtigbuf f erundersystemet 14-6. En annen måte å programmere PLA-kretsen 14-866 på er å tilføre lagerreferansesignalet RPMREF som et inngangssignal mens det fjernes som et inngangssignal til PLA-kretsen 14-672. Således tvinger PLA-kretsen 14-672 signalet SHBCYL til binær EN hvilket indikerer en andre halve bussyklus mens PLA-kretsen 14-672 tvinger signalet FLUSE til en binær EN bare når signalet RPMREF er en binær EN som indikerer en lager andre halve bussyklus.
Som det fremgår av fig. 5f, finner overf lyt ingen sted under det andre trinnintervallet til den løpende syklus definert av signalet PIPEOB+OB. Treffdekodekretsene 14-860 genererer signalet CACERR som overskrider treffindikatorkretsene og forhindrer at data blir skrevet inn i databufferen 14-88/90, men blir sendt til den fordrende CPU.
Som det ses av figur 4, korresponderer de neste tre hendelsene eller operasjonene med en tredje delbussfeil, og driftstidsutløp og en FIFO-overflytfeil. Sekvensen av operasjoner for disse hendelsene er vist på fig. 5g. I tilfellet med en tredje delbussfeil, utfører FIFO-undersystemet 14-10 en lytte- eller avsøksoperasjon hvorved en feil blir detektert i dataene, og adresse- eller kommandofeltet til fordringen blir påtrykt systembussen 12 av et annet undersystem. Siden undersystemene har muligheten til å gjenprøve slike fordringer, vil den mottakende enheten normalt ikke reagere og frembringe et systemtidsutløp hvilket gjør det mulig å foreta gjenprøving. Således vil fordringen ikke bli lagret av FIFO-undersystemet 14-10. Dersom imidlertid av noen grunn fordringen blir bekreftet av mottaks-enheten, lagrer FIFO-undersystemet 14-10 fordringen og presenterer fordringen overfor adressekataloglageret 14-74/76. Siden det ikke er noen måte å identifisere denne typen syklus som finner sted på grunn av feilen, utfører hurtigbuf f er systemet 14-6 en overf lyt ingsoperas jon for å kunne vedlikeholde hurtigbufferkoherens. F.eks. kunne informasjonen være en lagerskriving som ville kreve at hurtigbufferundersystemet 14-6 skulle utføre en hurtigbufferoppdatering. Signalet FIMBER blir tvunget til en binær EN for å signalisere en tredje paritetsbussfell. Som det fremgår av figur 3 blir dette signalet brukt til å bringe NOR-porten 14-662 til å tvinge adressekatalogslettesignalet DIRCLR til en binær NULL som i sin tur blir lastet inn i en bit-posisjon til adressekatalogadresseregisteret 14-68/72 som respons på signalet PIPIOA+OA. Dette bringer AND-porten 14-740 til å tvinge signalet PXDIRR til en binær NULL fra starten av adressekatalogsyklusen som korresponderer med fremkanten av signalet PIPEOA+OA til starten av den neste adressekatalogsyklusen ved hvilket tidspunkt bit-posisjonen til registeret 14-68/72 vil være tilbakestilt til en binær NULL. Igjen blir de korresponderende bit-posisjonene til syndromregisteret 14-750 innstilt til binære ENERE av signalene PXDIRR og FIMBER.
Som det fremgår av fig. 5g finner en lignende handling sted i tilfellet med en FIFO-overflytfeil. I dette tilfellet resulterer en bussoperasjonssyklus i tap av informasjon, data eller kommando. Siden den tapte syklusen kunne ha vært en lagerskrivning som krevde at hurtigbufferundersystemet 14-6 skulle utføre en hurtigbufferoppdatering, utfører hurtigbuf ferundersystemet 14-6 igjen den samme handlingen ved å utføre en overflytingsoperasjon. Som det sees av fig. 3, vil signalet FIERR som er representativt for FIFO-overflytfeil, når det blir tvunget til binær EN, bringer NOR-porten 14-662 til å tvinge adressekatalogslettesignalet DIRCLR til en binær NULL. Dette bringer AND-porten 14-740 til å tvinge signalet PXDIRR til en binær NULL som overflyter innholdet i adressekataloglageret 14-74/76 som beskrevet foran.
Den siste hendelsen som frembringer en overflytningsoperasjon er et driftsmessig tidsutløp. Her har hurtigbufferundersystemet 14-6 rettet en lagerlesefordring til lagerundersystemet 14 som ble erkjent, men som ikke ble etterfulgt av en andre halve bussyklus. Mangelen på respons resulterte i et driftsmessig tidsutløp. Siden hurtigbufferundersystemet 14-6 er etterlatt 1 en mellomtilstand, utfører det en overflyt ingsoperasj on ved mottak av signalet CLRBUS som indikerer den driftsmessige tidsutløpstilstanden. Som det sees av figur 3, svitsjer CLRBUS flipp-flopp 14-660 til en binær EN-tilstand. Dette resulterer i at signalet 0PTM0T bringer NOR-porten 14-662 til å tvinge adressekatalogslettesignalet DIRCLR til en binær NULL. Samtidig blir signalet 0PTM0T brukt til å starte en hurtigbuffersyklus som gjør det mulig å få en overflytningsoperasjon til å finne sted på måten som tidligere er beskrevet.
Det ovenstående viser at anordningen i henhold til den foreliggende oppfinnelse er i stand til å reagere på detekteringen av forskjellige typer adressefeil eller systemhendelser for å vedlikeholde hurtigbufferkoherens uten å ofre ytelsen. Ved å kategorisere typen av adressefeil uttrykt ved typen av hurtigbuffersykluser som blir utført, kan det foretas handlinger som vil gi de beste resultatene uttrykt ved koherens og ytelse.
I tillegg til det som er beskrevet ovenfor øker den foretrukne utførelsen robustheten uttrykt med behandlingen av andre halve bussykluser hvorved visse typer feiltilstander blir detektert. Den første av slike tilstander er en ikke-korrigerbar lagerfeil som indikeres v.ed mottaket av en eller begge signalene FIREDL og FIREDR fra FIFO-undersystemet 14-10. Her indikerer lagerundersystemet 20 at de fordrede data inneholder en ikke-korrigerbar feil. Siden lokaliseringen i adressekataloglageret 14-74/76 allerede var preallokert, er det ønskelig å foreta visse handlinger som eliminerer behovet for å lagre feilaktige data i hurtigbufferen under ved-likeholdelse av koherens. Ved anvendelse av innholdet i erstatningsadresseregisteret som korresponderer med adressen til den preallokerte lokalisering, genererer PLA-kretsen 14-464 under den andre halvbussyklusen deallokeringssignalet DEALO og adressekatalogskrivesignalet DIRWRE. Disse signaler bringer OR-porten 14-742 og dekoderkretsen 14-670 til å generere de nødvendige signalene for å ugyldiggjøre den preallokerte lokaliseringen i adressekataloglageret 14-74/76. Dvs. at disse signaler bringer den preallokerte adresse-kataloglagerlokaliseringen til å bli skrevet under en andre halve bussyklus som tjener som en deallokeringssyklus. Således blir dataene ikke lagret i hurtigbufferen, men blir bare videresendt til den fordrede CPU.
Den samme typen deallokeringsoperasjon blir utført under den andre halve bussyklusen hvor en busslåsebit blir innstilt (dvs. signal FIL0CK=1). Dette betyr at lokaliseringen som var preallokert ikke eksisterer som del av lagerundersystemet, men snarere har del av et annet system som systemet er koplet til (f.eks. fjernlager). Siden denne lokalisering ikke kan spores, arbeider PLA-kretsen 14-664 på den samme måte for å ugyldiggjøre lokaliseringen (deallokere den) under den andre halve bussyklusen. Igjen forblir tilstanden til hurtigbuf f erundersystemet 14-6 upåvirket mens dataene blir sendt til den fordrede CPU.
Arrangementet ovenfor tilveiebringer økt robusthet idet det er i stand til å deallokere en gitt adressekataloglokalisering som en funksjon av visse typer tilstander.
Det vil være åpenbart for fagkyndige på området at forskjellige endringer kan foretas i den foretrukne utførelsen av den foreliggende oppfinnelse uten at læren forlates. F.eks. kan forskjellige typer programmerbare kretser, lagerkretser, etc. bli brukt. Slike programmerbare kretser kan også bli brukt for å generere andre signaler som resulterer i overflyting (f.eks. systemhendelser).
VEDLEGG
Ligningene for å generere signalene på figurene 2 og 3 er gitt ved de følgende boolske uttrykk:
Forklaring av ligningsuttrykk
1. DBWDRD - dobbelt ord lesekommando definert av ROS data-bit 4 = 1 og ROS data-bit 5 = 0 generert av dekodekretsene til blokk 14-66 som er klokkestyrt med signalet PIPEOA+OA. 2. CPUNUM - CPU nummer (CPUO eller CPU1) signalet generert av kretsene til blokken 14-66og blir klokkestyrt med signalet PIPEOA+OA. 3. CPUCYL - CPU syklussignalet generert avkretsene til blokken 14.66 og som er klokkestyrt med signalet
PIPEOA+OA.
4. EVNHIT = HIT eller treffsignalet generert ay treffdekodekretsene 14-680 tilknyttet likeadresse-kataloglageret 14-76. 5. CMAD22 = hurtigbufferlageradressebiten 22 generert ved utgangen av velgeren 14-62. 6. CMAD23 = hurtigbufferlageradressebiten 23, generert ved utgangen av velgeren 14-62, og som spesifiserer hvilken halvdel (venstre eller høyre) av dataregisteret 14-94 eller 14-96 som skal bli lastet med et dataord. 7. FIÅD17 = FIFO-adressebiten 17 fra FIFO-undersystemet 14-10 som definerer hvilken CPU som skal motta erstatningsdataene. 8. FIDBWD = FIFO dobbeltbreddeordkommandobiten fra FIFO-undersystemet 14-11 som spesifiserer når dataene som returneres har to ord. 9. FISHBA = FIFO andre halve bussyklusbekreftelses-signalet fra 14-11 som spesifiserer at FIFO-undersystemet fordrer en hurtigbuffersyklus for å behandle data som mottas fra en I/O-innretning eller lager under en andre halve bussyklus SHBC. 10. ODDHIT = treffsignalet generert av treffdekodekretsene 14-680 tilknyttet ulike adressekataloglageret 14-74. 11. RPMREF = lagerreferansesignalet tilveiebrakt av RAR 14-12 som tillater å ta hensyn til enhver forventet tilstand. 12. RPAD22 = erstatningsadressebiten 22 fra RAR 14-12. 13. FIDT16-18/19-21 = like/ulike databiter som definerer hurtigbuffernivået tilveiebrakt av FIFO-undersystemet 14-10. 14. CYFIFO = et syklussignal generert av FIFO-syklus-bølgelogikkretsene til blokken 14-60 under et fritt direkteforbindelsestrinn. 15. FISHBC = det andre halve bussyklussignalet fra FIFO-undersystemet 14-10. 16. WRTPLS = skrivepulssignaler generert av kretsene til blokken 14-60 som opptrer midtveis mellom enten klokkesignalene PIPEOA+OA og PIPEOA+OB eller klokkesignalene PIPEOB+OA og PIPEOB+OB. 17. FIMREF = busslagerreferansesignalet BSMREF fra FIFO-undersystemet 14-10. 18. FIWRIT = busslagerskrivesignalet BSWRIT fra FIFO-undersystemet 14-10.
19. TM1AD2 = tidsspalte allokert til CPUO.
20. PTOBSY = signalet fra grensesnittområdet 14-1 som indikerer at CPTJO ikke er opptatt. 21. P0RD02 = tilstanden til bitposisjonen 2 til ROS14-24 som indikerer at CPUO har fordret en operasjonssyklus. 22. FILKNC = lås-ikke-syklussignalet BSLKNC fra FIFO-undersystemet 14-10 for å signalisere lageret når det skal utføre en lagersyklus som følger testingen/- tilbakestillingen av en låsetilstand. 23. FIAD21 = FIFO-adressebit 21 fra FIFO-undersystemet 14-10 for å signalisere når hurtigbufferundersystemet skal forbikoples. 24. FIAD22 = FIFO-adressebiten 22 fra FIFO-undersystemet 14-10 for å signalisere hvorvidt SHBC-adressen er lik eller ulik. 25. FIREAD = lesesignal avledet fra BSWRIT mottatt fra FIFO-undersystemet 14-10. 26. FIRESQ = redningssignal BSRESQ fra FIFO-undersystemet 14-10 for å indikere når et dobbeltord er tilgjengelig til å bli sendt som respons på fordringen. 27. FIREDL = rødt venstresignal BSREDL fra FIFO-undersystemet 14-10 som indikerer en ikke-korrigerbar feil i det venstre ordet av et dobbeltord. 28. FIREDR = rødt høyresignal BSREDR fra FIFO-undersystemet 14-10 som indikerer en ikke-korrigerbar feil i det høyre ordet av et dobbeltord. . 29. FILOCK = låsesignalet BSREDR fra FIFO-undersystemet 14-10 som indikerer når en lagerlåsesyklusoperasjon skal utføres.

Claims (10)

1. Robust hurtigbuffer (14-6) for å opprettholde koherens under opptredenen av forskjellige typer feil som blir detektert under behandlingen av lagerfordringer idet hver fordring har første og andre adressedeler, hvor nevnte hurtigbuffer omfatter: et inngangsregister (14-68/72) som mottar nevnte hver fordring; et adressekataloglager (14-66, 68, 70, 72, 74, 76) som innbefatter: flere nivåer hvor hvert nivå. (NIVÅ 0-7) innbefatter en gruppe lagerlokaliseringer for å lagre et korresponderende antall av første adressedeler av nevnte lagerfordringer, og hver av nevnte forskjellige grupper av lokaliseringer innen nevnte adressekataloglager er tilgjengelig for forskjellige av nevnte andre adressedeler; og innretning (14-74, 76) for å generere et første antall feilsignaler (PEO-7) for å indikere detekteringen av en første type adressefeil; et datalager (14-88/90) som har det samme antall nivåer av nevnte grupper av lokaliseringer som nevnte adressekataloglager, og nevnte grupper av lokaliseringer innenfor nevnte datalager er tilgjengelige for nevnte andre adressedeler; karakterisert ved en adressekontrollinnretning- (14-746) koplet til nevnte inngangsregister (14-68/72) og nevnte adressekontrollinnretning arbeider for å generere en andre flerhet av adressefeilsignaler for å indikere detekteringen av en andre type adressefeil; en kontrollkretsinnretning (14-672, 14-866) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74,-76) og som mottar signaler som indikerer de forskjellige typer hurtigbuffersykluser som kan utføres av nevnte hurtigbuffer (14-6) som respons på nevnte fordringer, og nevnte kontrollkretsinnretning (14-672, 14-866) som respons på nevnte signaler genererer et utgangssignal som indikerer hvilke overflytningssykluser av nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) som skal finne sted som en funksjon av nevnte første og andre adressefeilsignaler for å vedlikeholde hurtigbufferkoherens som resulterer i fortsatt hurtigbufferdrift, mens nevnte datalager sakte blir gjenoppfylt under en rekke av normale hurtigbufferoperasjons-sykluser.
2. Hurtigbuffer i henhold til krav 1, karakterisert ved at nevnte lager videre innbefatter treffdekodekrets (14-860) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) og til nevnte adressekontrollinnretning (14-746) for å motta nevnte treff, første og andre adressefeilsignaler, og nevnte treffdekodekrets (14-860) kombinerer nevnte første og andre adressesignaler for å generere i det minste et sammensatt hurtigbufferfeilsignal for å forbikople en påfølgende hurtigbuf feroperasjonssyklus initiert som respons på nevnte lagerfordring.
3. Hurtigbuffer i henhold til krav 1, karakterisert ved at nevnte lager videre innbefatter adressekatalogsletteinnretning (14-662, 14-68, -72) for å motta og lagre signaler som representerer flere forskjellige hendelser som kunne finne sted under driften av nevnte hurtigbuffer; og logiske utgangsinnretninger (14-740) koplet til hver av nevnte nivåer til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76), til nevnte kontrollkretsinnretning (14-672, 14-866) og til nevnte adressekatalogsletteinnretning (14-662, 14-68, -72), og nevnte logiske utgangsinnretninger (14-740) som respons på enten et signal fra nevnte adressekatalogsletteinnretning (14-662, 14-68, -72) eller nevnte utgangssignal fra nevnte kontrollkretsinnretning (14-672, 14-866) overflyter nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) ved samtidig å tilbakestille nevnte lager-lokal i sering innenfor hver av nevnte nivåer og derved ugyldiggjøre nevnte første adressedeler.
4. Hurtigbuffer i henhold til krav .3, karakterisert ved at nevnte flerhet av hendelser innbefatter et driftsmessig tidsutløp, ved en FIFO-overflytsyklus og en tredje paritetsbussfeil.
5. Hurtigbuffer i henhold til krav 1, karakterisert ved at nevnte kontrollkretsinnretning (14-672, 14-866), innbefatter: første (14-672) og andre (14-866) klokkestyrte, programmerbare, logiske rekke (PLA) kretser, og nevnte første PLA-krets (14-672) er forbundet for å motta nevnte signaler som representerer nevnte forskjellige typer hurtigbuffersykluser, og nevnte første PLA (14-672) genererer flere signaler for å indikere typen av hurtigbuffersyklus som ble utført av nevnte hurtigbuffer; og nevnte andre PLA-krets (14-866) er koplet til nevnte første PLA-krets (14-672), og nevnte andre PLA-krets (14-866) genererer nevnte utgangssignaler for å indikere hvorvidt eller ikke nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) skal overflytes ved opptreden av nevnte første og andre adressefeilsignaler for å kunne vedlikeholde hurtigbuf ferkoherens .
6. Hurtigbuffer i henhold til krav 5, karakterisert ved at nevnte forskjellige typer sykluser innbefatter en CPU-lesesyklus, en adressekatalogallokeringssyklus, en låse-ikke-syklus, en oppdateringssyklus og en lager andre halve bussyklus.
7. Hurtigbuffer i henhold til krav 1, karakterisert ved at nevnte lager videre innbefatter: deallokeringskretsinnretning (14-742) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76); og kontrollkretsinnretning (14-672, 14-866) koplet til nevnte deallokeringskretsinnretning (114-742) og for å motta signaler som indikerer forskjellige typer av andre buss-driftsykluser og tilstedeværelsen av forskjellige typer feiltilstander, og nevnte kontrollkretsinnretning (14-672, 14-866) ved detektering av tilstedeværelsen av visse typer av nevnte feiltilstander under forutbestemte typer av andre bussykluser bringer nevnte deallokeringskretsinnretning (14-742) til å tilbakestille til en ugyldig tilstand en av nevnte adressekataloglagerlokaliseringer under utførelsen av nevnte andre halve bussyklus som ble preallokert som del av startbehandlingen av nevnte lagerfordring for å kunne vedlikeholde nevnte hurtigbufferkoherent.
8. Multiprosesseringssystem, innbefattende flere behandlingsundersystemer (14, 16) og et hovedlager (20, 28, 30) koplet sammen til et asynkront system, og hvert behandlingsunder-system innbefatter en hurtigbuffer (14-6, 16-6) for til-veiebringelse av høyhastighetstilgang av et antall behandlingsenheter til koherent hovedlagerdata som respons på lagerfordringer sendt på nevnte systembuss av nevnte behandlingssystemer, og hver lagerfordring inneholder første og andre adressedeler til en hurtigbufferadresse generert av en av nevnte behandlingsundersystemer, og nevnte hurtigbuffer omfatter: et inngangsregister (14-68, -72) for å motta nevnte hver fordring; et første trinn som innbefatter: et adressekataloglager (14-66, -68, -70, -72, -74,-76) anordnet som flere nivåer som inneholder grupper av lagerlokaliseringer og hver lokalisering for lagring av nevnte første adressedel av lagerlesefordring generert av en av nevnte antall behandlingsenheter tilknyttet denne og hver forskjellige gruppe av lokaliseringer innen nevnte adresse-kataloglagernivåer er definert av forskjellige av nevnte adressedeler, og nevnte adressekataloglager innbefatter innretning for å generere en flerhet av treffsignaler (HIT 0-7) for å indikere tilstedeværelsen av enhver sann sammen-ligning mellom nevnte lagrede første adressedeler av nevnte første del av nevnte fordring og en første flerhet av feilsignaler (PE 0-7) for å indikere detekteringen av en første type adressefeil; og et andre hurtigbuffertrinn som innbefatter: et datalager (14-88, -90) anordnet med samme antall nivåer av nevnte grupper av lokaliseringer som i nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) og hver forskjellig gruppe av lokaliseringer innenfor nevnte datalagernivåer er definert av en forskjellig av nevnte andre adressedeler; karakterisert ved en adressekontrollinnretning (14-746) koplet til nevnte inngangsregister (14-68, -72), og nevnte adressekontrollinnretning (14-746) arbeider for å generere en andre flerhet av adressefeilsignaler for å indikere detekteringen av en andre type adressefeil; og første kontrollkretsinnretning (14-672) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) og for å motta signaler som indikerer de forskjellige typer hurtigbuffersykluser som kan utføres av nevnte hurtigbuffer som respons på nevnte fordringer; og . andre kretsinnretning (14-866) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) og til nevnte første kretsinnretning (14-672), og nevnte andre kretsinnretning (14-866) som respons på signaler fra nevnte første kretsinnretning (14-672) for å generere et antall utgangssignaler som indikerer hvilken av syklusene som overflyter nevnte adressekataloglager (14-66, -68, -70, -72, -74, 76) som skal finne sted som en funksjon av nevnte første og andre adressefeilsignaler under driften av nevnte andre trinn for vedlikehold av hurtigbufferkoherens som resulterer i fortsatt hurtigbufferdrift, mens nevnte datalager sakte blir gjenoppfylt under en rekke av normale sykluser hvor det er fravær av nevnte treffsignaler.
9. Multiprosesseringssystem i henhold til krav 8, karakterisert ved at nevnte andre trinn videre innbefatter treffdekodekretsinnretning (14-860) koplet til nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) og til nevnte adressekontrollinnretning (14-746) for å motta nevnte treff, første og andre adressefeilsignaler, og nevnte treffdekodekretsinnretning (14-860) kombinerer nevnte første og andre adressesignaler for å generere i det minste et sammensatt hurtigbufferfeilsignal for forbikopling av en påfølgende hurtigbufferoperasjonssyklus initiert som respons på nevnte lagerfordring.
10. Multiprosesseringssystem i henhold til krav 8, karakterisert ved at nevnte første trinn videre innbefatter adressekatalogsletteinnretning (14-662, 14-68,-72) for å motta og lagre signaler som er representative for en flerhet av forskjellige systemhendelser som kunne finne sted under driften av nevnte hurtigbuffer; og logiske utgangsinnretninger (14-746) koplet til hvert av nevnte nivåer til nevnte adressekataloglager (14-66, -68,-70, -72, -74, -76), til nevnte kontrollkretsinnretning (14-746) og til nevnte adressekatalogsletteinnretning (14-662), 14-68, -72), og nevnte logiske utgangsinnretning (14-746) som respons på enten et signal fra nevnte adressekatalogsletteinnretning (14-662, 14-68, -72) eller nevnte utgangssignal fra nevnte andre kretsinnretning (14-866) overflyter nevnte adressekataloglager (14-66, -68, -70, -72, -74, -76) ved samtidig å tilbakestille nevnte lagerlokaliseringer innenfor hver av nevnte nivåer og derved ugyldiggjøre nevnte første adressedeler.
NO882316A 1987-05-28 1988-05-26 Hurtigbuffer samt multiprosesseringssystem NO172267C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/055,577 US4833601A (en) 1987-05-28 1987-05-28 Cache resiliency in processing a variety of address faults

Publications (4)

Publication Number Publication Date
NO882316D0 NO882316D0 (no) 1988-05-26
NO882316L NO882316L (no) 1988-11-29
NO172267B true NO172267B (no) 1993-03-15
NO172267C NO172267C (no) 1993-06-23

Family

ID=21998780

Family Applications (1)

Application Number Title Priority Date Filing Date
NO882316A NO172267C (no) 1987-05-28 1988-05-26 Hurtigbuffer samt multiprosesseringssystem

Country Status (13)

Country Link
US (1) US4833601A (no)
EP (1) EP0300166B1 (no)
JP (1) JPS644847A (no)
KR (1) KR920007276B1 (no)
CN (1) CN1012855B (no)
AU (1) AU608848B2 (no)
CA (1) CA1311303C (no)
DE (1) DE3854368T2 (no)
DK (1) DK288488A (no)
ES (1) ES2076149T3 (no)
FI (1) FI882455A (no)
NO (1) NO172267C (no)
YU (1) YU103388A (no)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123103A (en) * 1986-10-17 1992-06-16 Hitachi, Ltd. Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5018063A (en) * 1988-12-05 1991-05-21 International Business Machines Corporation Method for reducing cross-interrogate delays in a multiprocessor system
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
US6038641A (en) * 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
US5095428A (en) * 1989-01-04 1992-03-10 Compaq Computer Corporation Cache flush request circuit flushes the cache if input/output space write operation and circuit board response are occurring concurrently
US5060136A (en) * 1989-01-06 1991-10-22 International Business Machines Corp. Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first
US4967414A (en) * 1989-01-06 1990-10-30 International Business Machines Corp. LRU error detection using the collection of read and written LRU bits
US5097532A (en) * 1989-03-03 1992-03-17 Compaq Computer Corporation Circuit for enabling a cache using a flush input to circumvent a late noncachable address input
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
US5241681A (en) * 1989-11-03 1993-08-31 Compaq Computer Corporation Computer system having an internal cach microprocessor slowdown circuit providing an external address signal
US5012408A (en) * 1990-03-15 1991-04-30 Digital Equipment Corporation Memory array addressing system for computer systems with multiple memory arrays
US5249284A (en) * 1990-06-04 1993-09-28 Ncr Corporation Method and system for maintaining data coherency between main and cache memories
EP0468831B1 (en) * 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
US5339322A (en) * 1991-03-29 1994-08-16 Sgs-Thomson Microelectronics, Inc. Cache tag parity detect circuit
US5371872A (en) * 1991-10-28 1994-12-06 International Business Machines Corporation Method and apparatus for controlling operation of a cache memory during an interrupt
US5331673A (en) * 1992-03-30 1994-07-19 International Business Machines Corporation Integrity of data objects used to maintain state information for shared data at a local complex
US5821940A (en) * 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
US5355471A (en) * 1992-08-14 1994-10-11 Pyramid Technology Corporation Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
DE69421379T2 (de) * 1994-03-31 2000-05-11 St Microelectronics Inc Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher
GB2302190B (en) * 1994-05-09 1999-01-06 Secr Defence Data cache
US5898856A (en) * 1995-09-15 1999-04-27 Intel Corporation Method and apparatus for automatically detecting a selected cache type
US5893149A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Flushing of cache memory in a computer system
US6532468B2 (en) * 1997-12-25 2003-03-11 Kawasaki Microelectronics, Inc. Binary data search method for selecting from among candidate data, and apparatus therefor
US6405322B1 (en) * 1999-04-13 2002-06-11 Hewlett-Packard Company System and method for recovery from address errors
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6622267B1 (en) * 1999-12-08 2003-09-16 Intel Corporation Method and apparatus for detecting multi-hit errors in cache
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US6898679B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus for reordering memory requests for page coherency
US6901532B2 (en) * 2002-03-28 2005-05-31 Honeywell International Inc. System and method for recovering from radiation induced memory errors
US10866854B2 (en) 2015-12-29 2020-12-15 Arteris, Inc. System and method for reducing ECC overhead and memory access bandwidth
US10877839B2 (en) * 2017-09-22 2020-12-29 Arteris, Inc. Recovery of a coherent system in the presence of an uncorrectable error

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3820078A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Multi-level storage system having a buffer store with variable mapping modes
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
JPS5355917A (en) * 1976-10-29 1978-05-20 Nec Corp Buffer memory unit
US4084236A (en) * 1977-02-18 1978-04-11 Honeywell Information Systems Inc. Error detection and correction capability for a memory system
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US4464717A (en) * 1982-03-31 1984-08-07 Honeywell Information Systems Inc. Multilevel cache system with graceful degradation capability
US4562536A (en) * 1983-06-30 1985-12-31 Honeywell Information Systems Inc. Directory test error mode control apparatus
US4667288A (en) * 1983-06-30 1987-05-19 Honeywell Information Systems Inc. Enable/disable control checking apparatus
JPS60235262A (ja) * 1984-05-09 1985-11-21 Nec Corp バツフアメモリ障害制御装置
US4695943A (en) * 1984-09-27 1987-09-22 Honeywell Information Systems Inc. Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus

Also Published As

Publication number Publication date
DK288488A (da) 1988-11-29
CA1311303C (en) 1992-12-08
JPS644847A (en) 1989-01-10
YU103388A (en) 1990-12-31
DE3854368T2 (de) 1996-05-09
DK288488D0 (da) 1988-05-26
ES2076149T3 (es) 1995-11-01
EP0300166A2 (en) 1989-01-25
US4833601A (en) 1989-05-23
NO882316D0 (no) 1988-05-26
KR920007276B1 (ko) 1992-08-29
JPH0583935B2 (no) 1993-11-30
EP0300166B1 (en) 1995-08-30
CN1031142A (zh) 1989-02-15
NO172267C (no) 1993-06-23
EP0300166A3 (en) 1991-01-09
FI882455A0 (fi) 1988-05-25
AU608848B2 (en) 1991-04-18
CN1012855B (zh) 1991-06-12
KR880014474A (ko) 1988-12-24
FI882455A (fi) 1988-11-29
NO882316L (no) 1988-11-29
DE3854368D1 (de) 1995-10-05
AU1641788A (en) 1988-12-01

Similar Documents

Publication Publication Date Title
NO172267B (no) Hurtigbuffer samt multiprosesseringssystem
US4768148A (en) Read in process memory apparatus
US4995041A (en) Write back buffer with error correcting capabilities
DK168548B1 (da) Cachesystem
US12001282B2 (en) Write control for read-modify-write operations in cache memory
US4527238A (en) Cache with independent addressable data and directory arrays
US6401223B1 (en) Programmable system for invalidating pending requests within a data processing system
US5590379A (en) Method and apparatus for cache memory access with separate fetch and store queues
US6480975B1 (en) ECC mechanism for set associative cache array
US4551799A (en) Verification of real page numbers of stack stored prefetched instructions from instruction cache
US5500950A (en) Data processor with speculative data transfer and address-free retry
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US5875201A (en) Second level cache having instruction cache parity error control
US5355471A (en) Multiprocessor cache coherency tester that exercises the coherency logic exhaustively and also detects errors in a processor using an automatic CPU sort
US4791642A (en) Buffer error retry
EP0706128A1 (en) Fast comparison method and apparatus for errors corrected cache tags
JPH0239254A (ja) データ処理システム及びそのキヤツシユ記憶システム
US4831622A (en) Apparatus for forcing a reload from main memory upon cache memory error
US5553258A (en) Method and apparatus for forming an exchange address for a system with different size caches
KR100297914B1 (ko) 스누핑장치를위한다중캐쉬디렉토리
US6434665B1 (en) Cache memory store buffer
US4799222A (en) Address transform method and apparatus for transferring addresses
US7577890B2 (en) Systems and methods for mitigating latency associated with error detection and correction
US5898867A (en) Hierarchical memory system for microcode and means for correcting errors in the microcode
JPH0574101B2 (no)