DK168548B1 - Cachesystem - Google Patents

Cachesystem Download PDF

Info

Publication number
DK168548B1
DK168548B1 DK440585A DK440585A DK168548B1 DK 168548 B1 DK168548 B1 DK 168548B1 DK 440585 A DK440585 A DK 440585A DK 440585 A DK440585 A DK 440585A DK 168548 B1 DK168548 B1 DK 168548B1
Authority
DK
Denmark
Prior art keywords
access
cache
address
signal
subsystem
Prior art date
Application number
DK440585A
Other languages
English (en)
Other versions
DK440585A (da
DK440585D0 (da
Inventor
James W Keeley
Thomas F Joyce
Original Assignee
Honeywell Inf Systems
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 Inf Systems filed Critical Honeywell Inf Systems
Publication of DK440585D0 publication Critical patent/DK440585D0/da
Publication of DK440585A publication Critical patent/DK440585A/da
Application granted granted Critical
Publication of DK168548B1 publication Critical patent/DK168548B1/da

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
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)
  • Circuits Of Receivers In General (AREA)

Description

i DK 168548 B1
Den foreliggende opfindelse angår et cachesystem til tilvejebringelse af samtidig tilgang til en cacheenhed af flere tilgangsenheder, hvor hver af tilgangsenhederne, når de kræver tilgang til cacheenheden, leverer en adresserepræsentation af en hovedlager-5 plads.
Det er kendt, at cache!agre har været meget effektive til forøgelse af ydelsen af små og store enprocessor- og multiprocessorsystemer. I multiprocessorsystemer er cachelagre normalt konfigureret på en af to måder. Den første er en delt cachekonfiguration, hvor et 10 cachelager anvendes for en eller flere hoved!agermoduler. Det er tilgængeligt for alle processorerne i systemet. Den anden konfiguration er et privat cachearrangement, hvor cachelageret er reserveret til en enkelt processor. Disse konfigurationer er beskrevet i en artikel med benævnelsen "Effects of Cache Coherency in Multiproces-15 sors" af Michael Dubois og Fay A. Briggs, IEEE Transactions on Computers, Volume C-31, nr. 11, november 1982.
Endvidere er multiprocessorsystemer blevet konfigureret til at have en fælles styreenhed, som indbefatter et cachelager. USA patentskrifterne nr. 4.378.591 og 4.392.200 viser eksempler på disse 20 systemtyper. I sådanne systemer er behandlingsenhederne forbundet med en fælles bus og indbefatter arbitrationskredsløb til allokering af til rådighed værende buscykler for at få tilgang til cachelageret. Det har vist sig, at der medgår en betydelig tid til at løse tilgangskonflikter blandt processorer. Dette reducerer igen system-25 ydelsen udover at forøge systemets kompleksitet.
I systemet omhandlet i USA patentskrift nr. 4.378.591 er andre kilder for anmodninger og buscykler, såsom et først ind først ud (FIFO) lager endvidere indbefattet i cachesubsystemet. Denne resource skal tilsikres tilgang til cachelageret via den lokale bus på 30 prioritetsbasis. FIFO'en tilsikres en højere prioritet end behandlingsenhederne, så at informationsoverførsler, der sædvanligvis er hovediagerskriveoperationer, vil have forrang. Dvs. at cacheopdate-ringsoperationerne tildeles en højere prioritet end processoranmodningerne, hvilket yderligere nedsætter hastigheden af systemets ar-35 bejde.
Et kendt uniprocessorsystem anvender et lagersystem, der indeholder et cache- og hovedlager implementeret af fuldt segmenterede pipelines. Systemet er en enkelt personlig datamat og kan som sådan kun rumme et enkelt brugersystem. Med hensyn til en omtale af DK 168548 B1 2 systemet kan der henvises til en artikel med benævnelsen "The Memory System of a High-Performance Personal Computer" af Douglas W. Clark, Butler W. Lampson og Kenneth A. Pier, IEEE Transactions on Computers, Volume C-30, nr. 10, oktober 1981.
5 Fra US-A 4.349.871 kendes et multiprocessorsystem med et cache!ager, hvor en pipelineenhed genererer ressourcer for processorerne til anvendelse af cachelageret, hvilke ressourcer anvendes i fast rækkefølge og kan betjene forskellige processorer. Dette kendte system vedrører specielt "pipelining" af ressourcerne i det omhand-10 lede system, d.v.s. bussen og elementerne i den fælles kontrol (Common Control). P-bussen, lagerledelseskredsløbet, adresseoversættelseskredsløbet, cachelageret og cachetræfkontrol kredsløbet bliver således allokeret til en anmodende processor i den rækkefølge, der angives, når en lagerlæseanmodning foretages. En efterføl-15 gende anmodende processor kan allokere de samme ressourcer i den samme rækkefølge, men ikke tidligere end en ressource efter den tidligere processor.
Formålet med den foreliggende opfindelse er at tilvejebringe et højtydende cachesystem, som er i stand til at håndtere fordringer 20 fra flere kilder. Det er yderligere opfindelsens formål at tilvejebringe et system, som muliggør, at uafhængigt arbejdende kilder er fælles om en cacheenhed på et konfliktfrit grundlag.
De ovenfor angivne formål og fordele opnås med et cachesystem ifølge den foreliggende opfindelse, som er ejendommeligt ved: 25 en tidsstyreenhed til synkronisering af tilgang til cacheen- heden af tilgangsenhederne, så at kun en af tilgangsenhederne ad gangen tillades indledende tilgang til cacheenheden, et første trin til at modtage en adresserepræsentation og til at søge i cacheenhedens adresseliste efter en tilsvarende adresse-30 repræsentation, og hvis søgningen er vellykket, til at levere udgangssignaler, som repræsenterer pladsen for tilsvarende data indeholdt i cachelageret, og et andet trin til at modtage udgangssignalerne, og som er indrettet til at reagere derpå for at opnå tilgang til pladsen i 35 cachelageret, som er repræsenteret ved de nævnte udgangssignaler, hvor tidsstyreenheden samtidig tillader en af tilgangsenhederne tilgang til det første trin og en anden af tilgangsenhederne tilgang til det andet trin umiddelbart efter en vellykket søgning i adresselisten.
DK 168548 B1 3
Der er således i henhold til opfindelsen tale om en dobbeltcyklus cache, som tillader to processorer tilgang dertil og på samme tid. Cachelageret tillader en processor at søge i adresselisten samtidig med, at en tidligere søgende processor, som har forårsaget 5 et adresselistetræf, har tilgang til cachelageret for at søge de "fundne" data. Denne form for drift muliggør en to gange forøgelse i ydeevnen af cachelageret ved at undgå ledige elementer deri.
Ved at lade cachelagerstyreapparatet synkronisere operationen af kilderne bliver muligheden for konflikt mellem kilder effektivt 10 elimineret for derved at forøge systemets ydelse. Cachelageret bliver således cyklet kontinuerligt, hvilket tillader konfliktfri operation af pipelinetrinnene af alle kilder.
I den foretrukne udførelsesform er hver centralenhedskilde endvidere programmeret til at fordre brug af mindre end alle tids-15 kanalerne, som er allokeret til den af cacheenheden, dvs. i den foretrukne udførelsesform fordrer hver central processorkil de hver-anden tidskanal, som er allokeret til den. De øvrige tidskanaler bliver således stillet til rådighed for andre kilder. I den foretrukne udførelsesform er en sådan anden kilde en først ind først ud 20 (FIFO) buffer, som håndterer opdaterings- og erstatningsanmodninger. Arrangementet ifølge den foreliggende opfindelse tillader, at disse anmodninger håndteres under de frie tidskanaler ved en hastighed, som forhindrer noget overløb af bufferen.
Mere detaljeret angivet indbefatter den foretrukne udføre!ses-25 form et centralenhedssubsystem med to centralenheder (CPU'er). Hver CPU har en virtuel lagerstyreenhed til at oversætte virtuelle adresser for anmodninger til fysiske adresser. Hver centralenhed er mikroprogramstyret således, at skiftevise mi kroinstruktioner kodes for generering af anmodninger ved hveranden mi kroinstruktions 30 operationscyklus. Synkroniseringsstyrekredsløb, som indgår i cachelageret, genererer signaler til synkronisering af taktkredsløbene i hver centralenhed med forskellige tidsintervaller. Disse intervaller er forskudt et tilstrækkeligt antal tidskanaler for således at tilvejebringe en konfliktfri operation af sådanne subsystemer.
35 De nye særlige træk, som anses for ejendommelige for opfindel sen både med hensyn til dens organisering og arbejdsmåde tillige med yderligere formål og fordele, skal herefter beskrives nærmere under henvisning til tegningen, hvor fig. 1 viser et blokdiagram over et system, som indbefatter 4 DK 168548 Bl apparatet ifølge den foreliggende opfindelse, fig. 2 et blokdiagram over et af de centrale subsystemer i fig. 1 udført i henhold til den foreliggende opfindelse, 5 fig. 3a til 3c mere detaljeret tids- og styrekredsløbene i fig. 2 og fig. 4 et tidsdiagram, som anvendes til at forklare virkemåden af apparatet ifølge den foreliggende opfindelse.
10 På tegningen viser fig. 1 et multiprocessordatabehandlingssy stem 10, som indbefatter et antal subsystemer 14 til 30, der i fællesskab er koblet til en systembus 12. De illustrerede subsystemer indbefatter et antal central subsystemer 14 til 16, et antal lagersubsystemer 20 til 28 og et periferi subsystem 30. Hvert subsystem 15 indbefatter et grænsefladeområde, som tillader enheden eller enhederne i tilknytning dertil at sende eller modtage anmodninger i form af kommandoer, afbrydelser, data eller svar/status til en anden enhed på systembussen 12 på asynkron måde. Dette vil sige, at hvert grænsefladeområde kan antages at indbefatte busgrænsefladel ogik-20 kredsløb, såsom dem der er omhandlet i USA patentskrift nr.3.995.258 med benævnelsen "Data Processing System Having a Data Integrity Technique", opfundet af George J. Barlow.
Organiseringen af hvert af central subsystemerne 14 til 16 er den samme. Fig. 2 viser i blokdiagramform central subsystemet 14, der 25 er organiseret i henhold til den foreliggende opfindelse. Subsystem 14 indbefatter et par centralenheds (CPU) subsystemer 14-2 og 14-4, der er koblet således, at de er fælles om et cachesubsystem 14-6. Cachesubsystemet 14-6 er koblet til systembussen 12 over et først ind først ud (FIFO) subsystem 14-10, der kan betragtes som værende 30 indbefattet i grænsefladeområdet 14-1.
Som det fremgår af fig. 2, er de to CPU subsystemer 14-2 og 14-4 identiske i opbygningen. Dette vil sige, at hvert CPU subsystem indbefatter en 32-bit centralenhed (CPU) (dvs. CPU'er 14-20 14-40) og en virtuel lagerstyreenhed (VMMU) (dvs. VMMU 14-26 og 14-46) til 35 oversættelse af CPU virtuelle adresser til fysiske adresser for præsentation overfor cachesubsystemet 14-6 som en del af lagerforespørgslerne. Hvert CPU subsystem indbefatter også et læsel ager (ROS) og et 16-bit ROS dataudlæseregister (RDR) (dvs. ROS 14-24, 14-44 og RDR 14-25, 14-45).
DK 168548 B1 5
Ved begyndelsen af hver cyklus bliver hver ROS konditioneret til at udlæse et 16-bit mikroinstruktionsord til sit dataudlæsere-gister (RDR), som definerer typen af operation, der skal udføres under cyklen (firmware skridt/box). Taktkredsløbene i hvert CPU 5 subsystem (dvs. kredsløbene 14-22 og 14-42) etablerer basistidsstyringen for dets subsystem styret af cachesubsystemet 14-6 som forklaret heri. Elementerne i hvert CPU subsystem kan opbygges af standardintegrerede kredsløbschips.
Som det fremgår af fig. 2, er cachesubsystemet 14-6 organiseret 10 i en kildeadressegenereringssektion og to separate pipelinetrin hver med sit eget dekode- og styrekreds. Kildeadressegenereringssektionen indbefatter blokke 14-62 og 14-64, som udfører kiIdeadresseselek-terings- og inkrementeringsfunktionerne. Det første pipelinetrin er et adressetrin og indbefatter kredsløbsblokkene 14-66 til 14-76 15 arrangeret som vist. Dette trin udfører funktionerne med hensyn til låsning af den genererede kildeadresse og katalogsøgning og træf sammenligning. Det første pipelinetrin tilvejebringer som udlæsning information i form af et niveaunummer og en søjleadresse. Operationerne af det første pipelinetrin taktstyres af tidsstyresignaler, 20 som frembringes af tids- og styrekredsløbene i blok 14-60.
Informationen fra det første trin bliver umiddelbart overført til det andet pipelinetrin og efterlader det første trin til rådighed for den næste kildeanmodning. Det andet pipelinetrin er et datatrin og indbefatter kredsløbene i blokkene 14-80 til 14-96 25 arrangeret som vist. Dette trin udfører funktionerne med hensyn til at give tilgang til de forlangte data fra bufferlagrene 14-88 og
14-90 eller erstatning/lagring af data med data modtaget fra FIFO
subsystem 14-10. Det andet pipelinetrin tilvejebringer således et 36-bit dataord for overførsel til et af CPU subsystemerne. Igen er 30 operationerne af det andet pipelinetrin taktstyret af tidsstyresignaler, som frembringes af tids- og styrekredsløbene i blok 14-60.
De forskellige blokke i det første og andet pipelinetrin er opbygget af standardintegrerede kredsløb, såsom dem der er beskrevet i "The TTL Data Book, Volume 3", Copyright 1984 fra Texas Instru-35 ments Inc. og i "Advanced Micro Devices Programmable Array Logic Handbook", Copyright 1983 fra Advanced Micro Devices, Inc. Eksempelvis er adresseselektorkredsløbet i blok 14-62 opbygget af to sæt af seks 74AS857 multiplexer chips, der er kaskadekoblet for at vælge en af fire adresser. Swapmultiplexeren i blok 14-92 er opbygget af DK 168548 B1 6 den samme chiptype. Låsene i blokkene 14-68 og 14-72 er opbygget af 74AS843 D-type låschips. Swapmultiplexeren og dataregisterkredsløbene i blok 14-70 er opbygget af et enkelt taktstyret programmerbart arraylogi kelement, såsom part nr. AMPA16R6A fremstillet af Advanced 5 Micro Devices, Inc.
Kataloglagrene 14-74 og 14-76 er opbygget af 8-bit skive cacheadressekomparatorkredsløb med part nr. TMS2150JL fremstillet af Texas Instruments Incorporated. Adresse- og dataregistrene 14-80 til 14-84 og 14-94 og 14-96 er opbygget af 9-bit grænseflade flip-flop 10 med part nr. SN74AS823 fremstillet af Texas Instruments, Inc. Bufferlagrene er opbygget af 4k x 4-bit lagerchips med part nr. IMS1420 fremstillet af INMOS Corporation. Adresseinkrementkreds-løbene i blok 14-64 er opbygget af standard ALU chips betegnet med part nr. 74AS181A og et programmerbart array logikelement med part 15 nr. AmPAL16L8A fremstillet af Advanced Micro Devices, Inc.
Det første og andet niveau af kommandoregister- og dekodekredsløb i blok 14-66 henholdsvis 14-86 anvender taktstyrede programmerbare array logikelementer med part numrene AmPAL16R4A og AmPAL16R6A fremstillet af Advanced Micro Devices, Inc. Disse kreds-20 løb genererer de krævede selektions-, læse- og skrivestyresignaler som angivet i fig. 2 (dvs. signalerne SWAPLT+00, SWAPRT+00, PO LDDT-0L, P1LDDT-0L, POLDDFOR, P1LDDT-0R). Med hensyn til yderligere detaljer kan der henvises til ligningerne i Appendix.
Som det fremgår af fig. 2, er cachesubsystemet 14-6 organiseret 25 i lige og ulige sektioner, som tillader, at to dataord får tilgang samtidigt i afhængighed af enten en lige eller ulige lageradresse.
Med hensyn til yderligere information om denne type af cache-adresseringsarrangement kan der henvises til USA patentskrift nr. 4.378.591, som er overdraget til ansøgeren i den foreliggende 30 ansøgning.
Fig. 2 viser også i blokform FIFO subsystem 14-10, der indbefatter FIFO styre- og taktstyrekredsløbene i blok 14-11, som er koblet til et udskiftningsadresseregister 14-12 og til systembussen 12. FIFO subsystem 14-10 modtager hele den information, som over-35 føres mellem hvilke som helst to subsystemer på systembus 12. Når informationen tjener til opdatering af data i hovedlageret, kodes informationen til at indikere denne opdaterings- eller udskiftningsoperation. FIFO subsystem 14-10 modtager også eventuelle nye data hidrørende fra en lagerfordring, som sendes til systembus 12 af DK 168548 B1 7 cachesubsystem 14-6. Både opdaterings- og nye data lagres som fordringer i et bufferlager, som indgår i subsystem 14-10. FIFO styrekredsløbene dekoder hver fordring og initierer de korrekte operationscykler, som resulterer i, at adressedata og ordrer føres 5 til forskellige dele af cachesubsystem 14-6 som vist i fig. 2. Med henblik på den foreliggende opfindelse kan FIFO subsystemet anses for konventionelt i udformning og have form som FIFO kredsløbene omhandlet i USA patentskrift nr. 4.195.340, der er overdraget til ansøgeren i den foreliggende ansøgning.
10 Den grundlæggende tidsstyring for hvert af subsystemerne i fig.
2 etableres af tids- og styrekredsløbene i blok 14-60. I henhold til den foreliggende opfindelse tillader denne styring den konfliktfrie deling af cachesubsystemet 14-6 mellem CPU subsystemerne 14-2 og 14-4 og FIFO subsystemet 14-10. Kredsløbene i blok 14-60 er vist 15 mere detaljeret i fig. 3a til 3c. Fig. 3a viser adressevælgelo-gikkredsløb i blok 14-600, som genererer styresignaler PT0SEL+00, PT1SEL+00, SLFIAD+00 og SLRPAD+00. Disse signaler genereres i afhængighed af CPU cachefordringssignaler P0RDO2+10 og P1RD02+10 fra CPU subsystemerne 14-2 og 14-6, CPU port optaget signaler PT0BSY-00 20 og PT1BSY-00 fra grænsefladeområdet 14-1, FIFO signaler FIUPDT+00 og FISHBA+00 fra FIFO subsystem 14-10 og adressetidsstyresignaler TM1AD2+00 og TM3AD4+00 fra tidsstyrekredsløbene i blok 14-640. Disse signaler konditionerer adresseselektoren 14-62 til at selektere et af subsystemerne 14-2, 14-4 og 14-10 som en fordringsadressekilde.
25 Som det fremgår af fig. 3a, indbefatter kredsløbene 0G-porte 14-602 til 14-608 og en ELLER-port 14-610. Figuren viser også bitposition 2 i RDR registre 14-25 og 14-45 og en del af FIFO blok 14-11 indbefattende en 0G-port 14-112, som genererer signaler FIUPDT+00 og FISHBA+00.
30 Fig. 3b viser pipelinetaktkredsløbene i blok 14-620. Disse kredsløb definerer de forskellige typer af cache!agercykl er, som kan initiere starten af pipeline'en, som resulterer i genereringen af signalet STPIPE+00. Signalet STPIPE+00 konditionerer et taktstyreregister 14-632, som genererer en forudbestemt følge af signaler i 35 afhængighed af hver fordring.
Mere detaljeret angivet tilvejebringer hver af NAND-porte 14-622 til 14-628 et signal, som indikerer en aktivitetstype, der kræves af et af subsystemerne i fig. 2. Dette vil sige, at signaler POCARD-OO henholdsvis P1CARD-00 indikerer en cachefordring om DK 168548 B1 8 service af CPUO subsystem 14-2 og CPU1 subsystem 14-4, medens signaler FISHBA-10 og FIUPDT-10 indikerer cachefordringer om service af FIFOsubsystem 14-10. Disse fordringer kan summeres som følger: 1. CPUO Læsecvklus 5 En CPUO læsning sker i afhængighed af en cachefordring, som initieres af ROS 14-24 (dvs. signalet P0RD02+10=1) under en første tidskanal/interval (dvs. signalet TIME01+00=1), når CPU port 0 i grænsefladen 14-1 ikke er optaget (dvs. signalet PT0BSY-10=1). Adressen, som leveres af CPUO subsystem 14-2, 10 føres til det første pipelinetrin, og kataloget læses. Når en træffer detekteres, hvilket indikerer, at de forlangte data er lagret i databufferen, bliver bufferen læst, og dataene taktstyres ind i CPUO dataregistret. Når en forbier detekteres, bliver CPUO porten gjort optaget, fordringen sendes til lageret 15 for at hente de krævede data.
2. CPU1 Læsecvklus
En CPU1 læsning forekommer i afhængighed af en cachfordring initieret af ROS 14-44 (dvs. signalet P1RD02+10=1) under en tredie tidskanal/interval (dvs. signalet TIME03+00+1), når CPU 20 port 1 i grænsefladen 14-1 ikke er optaget (dvs. signalet PT1BSY-10=1).
3. Anden Halvbuscvklus
En anden halvbuscyklus forekommer i afhængighed af en første type af cachfordring initieret af FIFO subsystem 14-10 for 25 data, som fordres fra enten hovedlageret eller en I/O anord ning, som returneres på systembussen 12 (dvs. signalet FISHBA= 1) under en første eller tredie tidskanal/interval (dvs. signalet TM10R3+00=1), når FIFO subsystem 14-10 har en fordring lagret (dvs. signalet FIHAVE+10=1). Når FIFO subsystem 30 14-10 leverer data fra en I/O anordning til det første pipeli netrin, overføres de derigennem uden ændring af tilstandene af nogen af lagrene og taktstyres ind i det pågældende CPU dataregister. Data fra hovedlageret indskrives i cachedatabufrene og taktstyres ind i de pågældende CPU dataregistre.
35 4. Laaerskri veopdateri nqscvkl us
En lagerskriveopdateringscyklus forekommer i afhængighed af en anden type af cachefordring initieret af FIFO subsystem 14-10 for erstatning eller opdatering af data, som modtages fra systembus 12 (dvs. signalet FIUPDT+00=1) ved kvittering for DK 168548 B1 9 sådanne data (dvs. signalet F1ACKR+00=1) under en første eller tredie tidskanal/interval (dvs. signalet TM10R3+00=1), når FIFO subsystem 14-10 har en fordring lagret (dvs. signalet FIHAVE+ 10=1). FIFO subsystem 14-10 leverer data til det første 5 pipelinetrin, hvilket resulterer i læsningen af kataloglageret.
Når en træffer detekteres, bliver erstatningsdataene indskrevet i bufferlageret.
Når et hvilket som helst af signalerne P0CARD-00 til F1UPDT-10 gøres lavt til et binært nul, gør en IKKE ELLER-port 14-630 (ækvi-10 valent med en NAND-port) startpipesignalet STPIPE+00 højt til et binært et. Dette konditionerer registret 14-632 til at påbegynde tælling i afhængighed af hvert taktsignal MCL0CK+00. Registret 14-632 er forbundet som en ringtæller, således at registerudgangssignalerne føres tilbage til successive registerindgangstrin direkte 15 eller efter at være inverteret af et inverterkredsløb 14-634 som vist. Registret 14-632 fortsætter med at tælle ved at videreføre impulsen, som lades i det første trin i afhængighed af hver forekomst af taktsignalet MCL0CK+00. Dette frembringer en følge af impulser, som svarer til signalerne ΡΙΡΕ0Α+0Α til PIPEOB-OB. Takt-20 signaler MCL0CK+00 genereres af ikke viste krystalosci11atortidsty-rekredsløb, som indgår i blok 14-60. Taktsignalerne MCL0CK+00 føres også som indgangssignaler til CPU taktkredsløb i blokkene 14-22 og 14-42.
Fig. 3c viser hovedtælleren og synkroniseringsstyrekredsløbene 25 i blok 14-640 og FIFO cyklusvælgelogikkredsløbene i blok 14-660.
Kredsløbene i blok 14-640 genererer i afhængighed af taktsignalet MCLOCK+00 den krævede følge af tidsstyresignaler TIME01+00 til TM10R3+00, som definerer de forskellige tidskanaler/intervaller, under hvilke cachesubsystem 14-6 udfører de krævede operationer for 30 behandling af subsystemcachefordringer.
Hovedtælleren indbefatter et register 14-650 og tilknyttede IKKE OG og ELLER-porte 14-642 henholdsvis 14-644 til 14-648 forbundet som vist. Arrangementet fungerer som en ringtæller, der kontinuerligt inkrementeres eller tælles frem af hvert taktsignal 35 MCLOCK+00. Hovedtælleren fører tidsstyresignaler TIME01+00 og TIME03+00 til synkroniseringsstyrekredsløbene i blok 14-652. Disse kredsløb genererer signalet P0MSYN+00 og signalet P1MSYN+00, der føres til CPUO og 1 taktkredsløbene i blok 14-22 henholdsvis 14-24. Hvert sådant signal synkroniserer operationen af CPU taktkredsløbene DK 168548 B1 10 med cachesubsystemets tids- og styrekredsløb. Mere specifikt bliver synkroniseringssignalet P0MSYN+00 ført til en indgang på TIME02 flip-flop trinnet i et ringtællerregister, som indgår i blok 14-44. Hvert sådant signal tillader, når det optræder, fremtælling af CPU 5 taktkredsløbene med de korrekte tidsintervaller. Signaler POMSYNC+OO og P1MSYNC+00 genereres således, at de forbliver forskudt i forhold til hinanden med to tidskanaler/intervaller (se Appendix).
FIFO cyklusvælgel ogikkredsløbene i blok 14-660 indbefatter et par IKKE ELLER-porte 14-662 og 14-664, et par OG-porte 14-666 og 10 14-668, en NOR-port 14-670, en IKKE OR-port (NAND) 14-672 og et taktstyret D-type register flip-flop trin 14-674, som er forbundet i serie som vist. Disse kredsløb genererer FIFO cyklussignalet CYFIF0+00 og FIFO signalet D0AFIF+00 i tidskanaler/intervaller TIME02 og TIME04, som synkroniserer operationen af FIFO subsystem 15 14-10 med operationen af cachesubsystem 14-6 som forklaret heri.
Beskrivelse af virkemåde
Under henvisning til fig. 1 -3c skal virkemåden af den foretrukne udførelsesform ifølge den foreliggende opfindelse nu beskrives under henvisning til tidsdiagrammet i fig. 4. Det antages, at 20 ringtællerkredsløbene i blokkene 14-620 og 14-640 i fig. 3b og 3c cykler eller opererer (dvs. tæller i afhængighed af taktsignaler MCL0CK+00), og at begge ROS lagre 14-24 og 14-44 er blevet initialiseret til forudbestemte tilstande. Som tidligere nævnt er ROS ordene i hvert ROS lager passende kodet for således at tilvejebringe 25 mønstre af skiftevise ettere og nuller, som definerer cyklerne, som er allokeret CPU subsystemerne 14-2 og 14-4. Denne kodning er vist i fig. 2, hvor bitposition 2 i hvert ROS ord er kodet overensstemmende hermed.
Ved forflanken af signalet TIME01+00 bliver ROS ordet takt-30 styret ind i CPU0 ROS dataregistret 14-25. Kommandofeltet i ROS ordet undersøges (dvs. bit 0 og 1). Når bit 0 og 1 er "10", angiver dette, at cachesubsystem 14-6 skal udføre en systembusfordring, hvor data skrives eller læses fra en anordning, der er forbundet med systembus 12. Antages det, at cachefordri ngen specificerer en 35 hovedlagerlæseoperation, læser cachesubsystem 14-6 cachlageret. På dette tidspunkt bliver ROS databit 2 undersøgt for at fastslå, om CPU0 skal anvende den næste fremkommende cachepipelinecyklus, som svarer til tidsintervallerne T2 og T3 eller ikke. Når bit 2 er et nul, angiver dette, at CPU0 subsystem 14-2 ikke skal anvende den DK 168548 B1 11 næste cachecyklus. Når bit 2 er en et, angiver dette imidlertid, at CPUO subsystem 14-2 skal anvende den næste cachecyklus.
Det antages, at portkredsløbene for CPUO subsystem 14-2 ikke er optaget med at behandle en anden systembusfordring (dvs. signalet 5 PTOBSY-10=1). Som det fremgår af fig. 3b, gør NAND-porten 14-622 signalet P0CARD-00 til et nul, hvilket bringer IKKE ELLER-porten 14-630 til at gøre startpipesignalet STPIPE+00 til et binært et. Som det fremgår af fig. 4, er dette signal gyldigt ved bagkanten af signalet TIME01+00. Dette vil sige, at startpipesignalet STPIPE+00 10 som angivet ved det skraveret markerede område er gyldigt indtil forkanten af signalet betegnet som CPUO cyklus i fig. 4.
Det vil også bemærkes, at medens tidssignalet STPIPE+00 genereres, bringer signalet P0RD02+10 svarende til ROS dataordbit 2 tillige med tidsstyresignalet TM1AD2+00 og port optaget signalet 15 PT0BSY-00 OG-porten 14-602 i fig. 3a til at gøre adressevælgesig-nalet PT0SEL+00 til en et. Dette konditionerer eller konfigurerer adresseselektoren 14-62 til som adressen, der skal føres til ulige og lige låsene 14-68 og 14-72, at vælge 33-bit adressen fra CPUO VMMU 19-26.
20 Startpipesignalet STPIPE+00 føres til ringtælleren 14-623 i fig. 3b og taktstyres til den første bitposition ved forkanten af det andet taktsignal MCL0CK+00. Som det fremgår af fig. 4, resulterer dette i genereringen af signalet ΡΙΡΕ0Α+0Α.
Den første forekomst af startpipesignalet STPIPE+00 definerer 25 en CPUO cyklus. Signalet PIPE0A+00 føres som et taktindgangssignal til de ulige og lige adresselåse 14-68 og 14-72. Det samme signal føres til det første niveauregister og dekodekredsløbene i blok 14-66 og swapmultiplexerdataregistret 14-70. Ved forkanten af signalet PIPE0A+00 bliver låsene 14-68 og 14-72 aktiveret, og ved bag-30 kanten af signalet bliver låsene konditioneret til at lagre cache-fordringsadressen, som genereres af CPUO VMMU 14-26. Dette vil sige, at lige adresselåsene 14-72 lagrer en lige adresseværdi, som tidligere er inkrementeret med en af inkrementkredsløbet 14-64, hvis den oprindelig adresse var ulige. Den ikke inkrementerede ulige adres-35 seværdi er lagret i ulige adresselåsene 14-68.
De ulige og lige adresseindhold af låsene 14-68 og 14-72 føres til de ulige og lige kataloglagre 14-74 og 14-76. Idet det antages, at de krævede data ligger i cache, udlæser kataloglagrene 14-74 og 14-76 niveau- og søjleinformationen, som designerer pladserne i DK 168548 B1 12 respektive bufferlagre 14-88 og 14-90, hvor de krævede data ligger. Dekodekredsløbene i blok 14-66 genererer de pågældende kataloglæses i gnal er, som taktstyres ind i det programmerbare array logikudgangsregister i afhængighed af signalet P1PE0A+0A. Dette afslutter 5 operationerne, som udføres af det første pipelinetrin.
Som det fremgår af fig. 4, lades katalogniveau- og søjleinformationen i det ulige og lige adresseregister 14-80 og 14-84 i det andet pipelinetrin ved forkanten af signalet ΡΙΡΕ0Β+0Α. Dette signal genereres af ringtælleren 14-632 i afhængighed af det tredie takt-10 signal MCL0CK+00. Signalet PIPEOA+OB, som genereres i afhængighed af det andet taktsignal MCLOCK+OO, anvendes ikke.
Samtidig bliver det lige og ulige adresseregister 14-80 og 14-84 taktstyret af signalet ΡΙΡΕ0Β+0Α, andet niveau kommandoregister- og dekodekredsløbene i blok 14-86 dekoder kommandoordet, 15 hvilket reresulterer i genereringen af venstre og højre swapping- signaler SWAPLT+00 og SWAPRT+00, som føres til swapmultiplexeren 14-92. Swappingsignalerne såvel som de andre signaler, der frembringes af kredsløbene i blok 14-86, taktstyres ind i det programmerbare array logikudgangsregister i afhængighed af signalet 20 P1PE0B+0A.
De ulige og lige dataord, som udlæses fra det ulige og lige bufferlager 14-88 og 14-90 overføres over swapmultiplexeren 14-92 som specificeret af signalerne SWAPLT+00 og SWAPRT+00. Kredsløbene i blokken 14-86 genererer også venstre halvord- og højre halvordsig-25 naler P0LDDT-0L og P0LDDT-0R, som tillader, at et enkelt eller dobbelt ord taktstyres ind i CPU0 dataregistret 14-94 i afhængighed af taktsignalet ΡΙΡΕ0Β-0Β. Dataordene bliver derefter overført under mikroprogramstyring til CPU subsystem 14-2.
Som det fremgår af fig. 3b, er signalet ΡΙΡΕ0Β-0Β komplementet 30 af signalet ΡΙΡΕ0Β+0Β i fig. 4, som genereres af ringtælleren 14-632 i afhængighed af det fjerde taktsignal MCLOCK+00. Dette afslutter operationerne af det andet pipelinetrin.
Som det fremgår af fig. 4, udføres en lignende følge af operationer af det første og andet pipelinetrin ved behandling af en 35 cachehovedlagerfordring for CPU1 subsystem 14-4. Dette vil sige, at et andet startpipesignal STPIPE+00 genereres i tiden T3, ved at NAND-porten 14-624 bringer signalet P1CARD-00 på et binært nul. I tidsintervallet T4 når bufferlageradresserne for CPU0 cachefordringen lades i registrene 14-80 og 14-84, bliver de ulige og lige DK 168548 B1 13 cachefordringsadresser fra CPU1 subsystem 14-4 låst ind i de ulige og lige adresselåse 14-68 og 14-72.
I tilfælde af en anden cachetræffer udlæser kataloglagrene 14-74 og 14-76 derefter niveau- og søjleinformationen, som designe-5 rer pladserne i de ulige og lige cachebufferlagre 14-88 og 14-90, hvor de krævede data ligger. I afhængighed af signalet PIPEOB+OA lades denne information i de ulige og lige adresseregistre 14-80 og 14-84. Samtidig genererer kredsløbene i blok 14-86 ved kommandodekodning venstre og højre swappingsignaler SWAPLT+00 og SWAPRT+00 10 såvel som signaler P1LDDT-0L og P1LDDT-0R.
Resultatet er, at dataordene, som udlæses fra de ulige og lige bufferlagre 14-80 og 14-84 og overføres via swapmultiplexeren 14-92, taktstyres ind i CPU1 dataregistret 14-96. Dette afslutter behandlingen af den anden cachefordring.
15 Det antages nu, at FIFO subsystem 14-10 kræver servicering, hvilket resulterer i genereringen af et tredie startpipesignal STPEPE+00. Denne cyklus kan hidrøre fra den ene eller den anden af to typer af fordringer som omtalt ovenfor.
I henhold til den foreliggende opfindelse bliver FIFO subsystem 20 14-10 betjent, når der er et frit pipelinetrin. Et frit pipelinetrin forekommer i tiden TI, når CPU0 ROS databit 2 er et nul, eller i tiden T3, når en CPU1 ROS databit 2 er et nul. Dette tillader, at FIFO subsystem 14-10 betjenes i disse tider. FIFO cykler forekommer således til tiden 2 og tiden 4, når de tilsvarende CPU subsystemer 25 ikke forlanger cachecykler.
I fig. 4 antages det, at CPUO subsystem 14-2 og CPU1 subsystem 14-4 ikke anvender de følgende TI og T3 tidskanal er/cykl er. Når FIFO subsystem 14-10 genererer en cacheskriveopdateringsfordring, er kilden for cachefordringsadressen fra FIFO adressedelen af kommando doen, som leveres af kredsløbene 14-11. Dette vil sige, at adresse-selektoren 14-62 konditioneres eller figureres til at overføre denne adresse til ulige og lige låse 14-68 og 14-72.
Signalet ΡΙΡΕ0Α+0Α taktstyrer informationen ind i låsene, samtidig med at data fra FIFO subsystemkredsløbene 14-11 taktstyres ind d5 i swapregistret i blok 14-70. Programmerings array logikkredsløbene i blok 14-70 konditioneres af signaler fra FIFO subsystemet 14-10 (dvs. adressebit 22) til korrekt at bringe de venstre og højre dataordhalvdele på linie, hvorpå de taktstyres ind i swapregistret ved forkanten af signalet ΡΙΡΕ0Α+0Α.
DK 168548 B1 14
Som det fremgår af fig. 4, lader signalet PIPEOB+OA i tilfælde af en træffer niveau- og søjleinformationen i ulige og lige adresseregistrene 14-80 og 14-84 og designerer pladser i ulige og lige cachebufferlagrene 14-88 og 14-90, hvor dataene, som skal opdateres, 5 ligger. Samtidig bliver opdateringsdataene taktstyret ind i dataregistret 14-82. Derefter bliver opdateringsdataene skrevet i ulige og lige bufferlagrene 14-88 og 14-90 styret af skrivesignaler, der genereres af dekodekredsløbene i blok 14-86. Som det fremgår af fig. 3c, gør kredsløbene i blok 14-660 signalet DOAFIFIOO til et binært 10 et, når signalet P0RD02+10 er et nul i tiden TI (dvs. signalet TIME01+00=1). Som det fremgår af fig. 4, gør signalet D0AFIF+00 signalet CYFIF0+00 til et binært et i afhængighed af taktsignalet MCL0CK+00. Signalet CYFIF0+00 føres til FIFO kredsløbene i blok 14-11 og resulterer i inkrementering af de interne FIFO tæller-15 kredsløb, som fuldfører behandlingen af fordringen lagret i FIFO subsystem 14-10. Dette afslutter også behandlingen af FIFO fordringen af cachesubsystemet 14-6.
Det antages under den næste FIFO cyklus, at FIFO system 14-10 leverer en cacheudskiftningsfordring, som bringer NAND-porten 14-626 20 i fig. 3b til at gøre signalet FIUPDT-10 til et nul. Dette resulterer i genereringen af det fjerde startpipesignal STPIPE+00. I dette tilfælde vil RAR registret 14-12 være blevet ladet, da fordringen indledningsvis blev sendt til systembussen 12 i afhængighed af en CPU cachefordring. Følgelig udføres en lignende følge af operationer 25 af cachesubsystemet 14-6.
Det vil bemærkes, at FIFO cyklerne initieres af signalet D0AF1F+00 til tiden TI henholdsvis tiden T3, når signalet P0RD02+00 eller PT0BSY-10 er et nul, og signalet P1RD02+10 eller PT1BSY-10 er et nul. Dette bringer FIFO cyklerne til at forekomme til tiderne T2 30 og T4. I hvert tilfælde, når begge signaler (dvs. P0RD02+10, ΡΤ0 BSY-10 og P1RD01+10, PT1BSY-10) er ettere, udelukker dette genereringen af enten signalet SLFIF0+0A eller signalet SLFIF0+0B, som udelukker forekomsten af en FIFO cyklus. FIFO cyklerne bliver således udelukket, når CPU subsystemet allokeret tidskanal en/cykl en 35 anvender cyklen.
I værste fald kan der være højst to fordringer stablet i FIFO subsystem 14-10. Der kan således være op til to FIFO cykler, som forekommer i modtakt, når FIFO subsystemet 14-10 er fuldt som vist i fig. 4 som forklaret ovenfor. Arrangementet ifølge den foreliggende DK 168548 B1 15 opfindelse sikrer, at der altid er nok frie pipelinetrin til at betjene FIFO system 14-6 ved den maksimale hastighed, ved hvilken det modtager fordringer fra systembus 12. Dette opnås ved at tillade hvert CPU subsystem at udnytte en cachecyklus for hvert andet 5 mikroinstruktionsord/firmwarekasse. For CPU subsystem 14-2 kan hvert andet mikroinstruktionsord, som udlæses for hver tid TI, specificere en cgchefordring. Det samme gælder for CPU subsystem 14-4 for mikroinstruktionsordet, som udlæses for hver tid T3. På denne måde kan cachesubsystem 14-6 behandle cachefordringer fra et antal kilder 10 uden konflikt.
Det vil forstås, at når cachesubsystem 14-6 detekterer en fejlslagen tilstand i afhængighed af en CPU cachefordring, vil dette resultere i, at grænsefladeområdekredsløbene 14-1 bringer portkredsløbene i en optaget tilstand (dvs. signalet PT0BSY-10 eller 15 PT1BSY-10 gøres til et nul). Dette bliver igen sendt tilbage til CPU subsystemet og bringe r det til at standse sin operation. Da denne operation ikke er afgørende for forståelsen af den foreliggende opfindelse, skal den ikke forklares yderligere.
Af det ovenstående vil det ses, hvorledes den foreliggende op-20 findel se muliggør hurtig behandling af cachefordringer fra flere kilder. Den tillader tidsdeling af et cachesubsystem blandt de forskellige subsystemer i et multiprocessorsystem på et konfliktfrit grundlag. Dette tillader den fortsatte behandling af cachefordringer fra andre kilder, når dataene, som forlanges af én kilde, ikke 25 ligger i cache.
APPENDIX
Ligningerne til generering af signalerne i fig. 2 er givet ved de følgende Boolske udtryk: 30
1. *POLDDT-OL=CPUCYL*CPUNUM*DBWDRD*EVNHIT*ODDHIT
" y— ’ CPU Læsecyklus +CPUCYL»CPUNUM.DBWDRD.CMAD22.CMAD23·EVNHIT, 35 ' — "y" CPU Læsecyklus +CPUCYL*CPUnUm»DBWDRD^CMAD22 »CMAD23«0DDHIT^ CPU Læsecyklus DK 168548 B1 16 +^UCYL-FIAm»FI$H^-RPMREF^
I/O SHBC
+CPUCYL»FIAD17»FISHBA«RPMREF.^
MEM SHBC
2. *POLDDT-OR=^UCYL«CPUNUM»DBWDRD«J[VNHIT«^^HITj 10 ___CPU Læs +CPUCYL»CPUNUM»DBWDRD»CMAD22»EVNHITj CPU Læs +CPUCYL« CPUNUM«DBWDRD«CMAD22«ODDHITj 15 ^ CPU Læs +CPUCYL« FIAD17«FISHBA^RPMREF^
I/O SHBC
20 +CPUCYL« FIAD17« FISHBA«RPMREF.
3. *PlLDDT-OL=samme som 1 undtagen CPUNUM=CPUNUM.
4. *PlLDDT-OR=samme som 2 undtagen CPUNUM=CPUNUM.
25 *Disse signaler taktstyres med signalet PIPEOB+OA.
5. *SWAPLT=CPUCYL«CMAD22J
^ r" CPU Læs 30 +CPUCYj^ISHBA«RWREF»RPAD22^
MEM SHBC
6. *SWAPRT=CPUCYL·DBWDRD·CMAD2 2 _j -r 35 CPU Læs +CPUCYL·DBWDRD·CMAD22 ^ _ CPU Læs +CPUCYL-FISHBA-RPMREF- DK 168548 B1 17 (FIDBWD*RPAD22+FIDBWD·RPAD22)..
\__----
MEM SHBC
7. CPUCYL=P0RD02*TMIAD2+P1RD02.TM3AD4= 5 PT0SEL+00+PT1SEL+00.
8. CPUNUM=PlRD02*TM3AD4=PTlSEL+00.
9. CPUNUM=P0RD02.TMlAD2=PT0SEL+00.
10. P0MSYNCH+00=DATA AVAIL*TIME01+P0RD15*TIME01 hvor DATA AVAIL=P0LDDT-0L* POLDDT-OR.
10 11. P1MSYNCH+00=DATA AVAIL*TIME03+P0RD15-TIME03 hvor DATA AVAIL=P1LDDT-0L*P1LDDT-0R.
*Disse signaler taktstyres med signalet PIPEOB+OA.
15 Beskrivelse af 1ioninastermer 1. DBWDRD = dobbelt ord læsekommando defineret af ROS databit 4 = 1 og ROS databit 5=0 genereret af dekodekredsløbene i blok 14-66, som taktstyres med signalet PIPEOA+OA.
2. CPUNUM = CPU nummer (CPUO eller CPU1) signal genereret af 20 kredsløbene i blok 14-66, som taktstyres med signalet PIPEOA+OA.
3. CPUCYL = CPU cyklussignal genereret af kredsløbene i blok 14-66 i afhængighed af signalerne PTOSEL+OO og PT1SEL+00, og som taktstyres med signalet PIPEOA+OA.
25 4. EVNHIT = træffersignal genereret af lige kataloglager 14-76, som føres til dekodekredsløbene i blok 14-86.
5. CMAD22 = cache!ageradressebit 22 genereret på udgangen af selektor 14-62.
6. CMAD23 = cachelageradressebit 23 genereret på udgangen af 30 selektor 14-62, og som specificerer hvilken halvdel (venstre eller højre) af dataregistret 14-94 eller 14-96, der skal lades med et dataord.
7. FIAD17 = FIFO adressebit 17 fra FIFO subsystem 14-11 definerer, hvilken CPU der skal modtage erstatningsdataene.
35 8. FIDBWD = FIFO dobbeltbred ordkommandobit fra FIFO subsystem 14-11 specificerer, når dataene, som returneres, har to ord.
9. FISHBA = FIFO anden halvdel buscykluskvitteringssignal fra 14-11 specificerer, at FIFO subsystemet kræver en cachecyklus for at behandle data, som modtages fra en I/O anordning eller 18 DK 168548 B1 et lager under en anden halv buscyklus SHBC.
10. ODDHIT = træffersignal genereret af ulige kataloglager 14-74, som føres til dekodekredsløbene i blok 14-86.
11. RPMREF = lagerreferencesignal, som tilvejebringes af RAR 14-12, 5 der tillader, at hvilke som helst undtagelsesbetingelser tages i betragtning.
12. RPAD22 = erstatningsadressebit 22 fra RAR 14-12.
Det vil af fagfolk forstås, at mange ændringer kan udføres på den foretrukne udførelsesform ifølge den foreliggende opfindelse.
10 Eksempelvis kan systemtidsstyringen ændres, idet eksempelvis forskellige tidskanaler kan allokeres til subsystemerne, ligesom kodningen af ROS lagrene 14-24 og 14-44 kan ændres til at anvende forskellige cykler (f.eks. hver tredie, fjerde osv.). Også antallet af bit og cachebredden kan ændres (dvs. behandle enkelte, dobbelte 15 eller firedobbelte ord).
20 25 30 35

Claims (5)

1. Cachesystem til tilvejebringelse af samtidig tilgang til en cacheenhed (14-74,76,88,90) af flere tilgangsenheder (14-2,4), hvor 5 hver af tilgangsenhederne, når de kræver tilgang til cacheenheden, leverer en adresserepræsentation af en hovedlagerplads, kendetegnet ved: en tidsstyreenhea (14-60) til synkronisering af tilgang til cache-10 enheden af tilgangsenhederne, så at kun en af tilgangsenhederne ad gangen tillades indledende tilgang til cacheenheden, et første trin (14-68,70,72) til at modtage en adresserepræsentation og til at søge i cacheenhedens adresseliste (14-74,76) efter en 15 tilsvarende adresserepræsentation, og hvis søgningen er vellykket, til at levere udgangssignaler, som repræsenterer pladsen for tilsvarende data indeholdt i cachelageret (14-88,90), og et andet trin (14-80,82,84,92) til at modtage udgangssignalerne, og 20 som er indrettet til at reagere derpå for at opnå tilgang til pladsen i cachelageret (14-88,90), som er repræsenteret ved de nævnte udgangssignaler, hvor tidsstyreenheden samtidig tillader en af tilgangsenhederne 25 tilgang til det første trin og en anden af tilgangsenhederne tilgang til det andet trin umiddelbart efter en vellykket søgning i adresselisten.
2. Cachesystem ifølge krav 1, kendetegnet ved, at 30 tidsstyreenheden (14-60) synkroniserer tilgangen af hver tilgangsenhed ved at synkronisere deres respektive taktkredsløb (14 -2 2,14-42) for at tillade tilgangsenhederne skiftevise indledende tilgangsintervaller til cacheenheden.
3. Cachesystem ifølge krav 2, kendetegnet ved: en yderligere tilgangsenhed (14-10), hvor i det mindste en af de synkroniserede tilgangsenheder er programmeret til selektivt at frafalde et af sine tilgangsintervaller for at tillade indledende 20 DK 168548 B1 tilgang til cacheenheden af den yderligere tilgangsenhed.
4. Cachesystem ifølge krav 3, kendetegnet ved, at de synkroniserede tilgangsenheder er CPU-subsystemer, og at den yder- 5 ligere tilgangsenhed (14-10) er et FIFO-subsystem til at præsentere yderligere anmodninger om tilgang til cacheenheden.
5. Cachesystem ifølge krav 1, kendetegnet ved en adresseselektor (14-62), der er koblet til hver af tilgangsenhederne 10 for at modtage adresserepræsentationerne, og at tidsstyreenheden (14-60) er koblet til tilgangsenhederne og adresseselektoren for at bringe adresseselektoren til til det første trin at overføre adresserepræsentationen, som leveres af den ene af tilgangsenhederne, som er tilladt tilgang til det første trin af tidsstyreenheden. 15 20 25 30 35
DK440585A 1984-09-27 1985-09-27 Cachesystem DK168548B1 (da)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65547384 1984-09-27
US06/655,473 US4695943A (en) 1984-09-27 1984-09-27 Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization

Publications (3)

Publication Number Publication Date
DK440585D0 DK440585D0 (da) 1985-09-27
DK440585A DK440585A (da) 1986-03-28
DK168548B1 true DK168548B1 (da) 1994-04-18

Family

ID=24629022

Family Applications (1)

Application Number Title Priority Date Filing Date
DK440585A DK168548B1 (da) 1984-09-27 1985-09-27 Cachesystem

Country Status (19)

Country Link
US (1) US4695943A (da)
EP (1) EP0176972B1 (da)
JP (1) JPS61165154A (da)
KR (1) KR910002929B1 (da)
AT (1) ATE91353T1 (da)
AU (1) AU572346B2 (da)
BR (1) BR8504743A (da)
CA (1) CA1237198A (da)
DE (1) DE3587439T2 (da)
DK (1) DK168548B1 (da)
ES (1) ES8703652A1 (da)
FI (1) FI91814C (da)
IL (1) IL76502A (da)
MX (1) MX160347A (da)
MY (1) MY101777A (da)
NO (1) NO173960C (da)
PH (1) PH24161A (da)
PT (1) PT81215B (da)
YU (1) YU45743B (da)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709347A (en) * 1984-12-17 1987-11-24 Honeywell Inc. Method and apparatus for synchronizing the timing subsystems of the physical modules of a local area network
US4941088A (en) * 1985-02-05 1990-07-10 Digital Equipment Corporation Split bus multiprocessing system with data transfer between main memory and caches using interleaving of sub-operations on sub-busses
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4980845A (en) * 1985-08-23 1990-12-25 Snap-On Tools Corporation Digital engine analyzer
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
JP2561261B2 (ja) * 1987-02-18 1996-12-04 株式会社日立製作所 バッファ記憶アクセス方法
US5276853A (en) * 1987-05-18 1994-01-04 Fujitsu Limited Cache system
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
US5148536A (en) * 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5027270A (en) * 1988-10-11 1991-06-25 Mips Computer Systems, Inc. Processor controlled interface with instruction streaming
DE3850881T2 (de) * 1988-10-28 1995-03-09 Ibm Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
US5163142A (en) * 1988-10-28 1992-11-10 Hewlett-Packard Company Efficient cache write technique through deferred tag modification
US5081609A (en) * 1989-01-10 1992-01-14 Bull Hn Information Systems Inc. Multiprocessor controller having time shared control store
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
US5574912A (en) * 1990-05-04 1996-11-12 Digital Equipment Corporation Lattice scheduler method for reducing the impact of covert-channel countermeasures
US5249284A (en) * 1990-06-04 1993-09-28 Ncr Corporation Method and system for maintaining data coherency between main and cache memories
JP2677706B2 (ja) * 1990-10-19 1997-11-17 富士通株式会社 メモリアクセス制御回路
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
US5428810A (en) * 1991-03-15 1995-06-27 Hewlett-Packard Company Allocation of resources of a pipelined processor by clock phase for parallel execution of dependent processes
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
US5724549A (en) * 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
JPH06318174A (ja) * 1992-04-29 1994-11-15 Sun Microsyst Inc キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US5821940A (en) * 1992-08-03 1998-10-13 Ball Corporation Computer graphics vertex index cache system for polygons
US5430857A (en) * 1993-01-04 1995-07-04 Intel Corporation Method and apparatus for translating logical addresses into physical addresses using odd/even translation tables
US5689680A (en) * 1993-07-15 1997-11-18 Unisys Corp. Cache memory system and method for accessing a coincident cache with a bit-sliced architecture
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
JPH07129456A (ja) * 1993-10-28 1995-05-19 Toshiba Corp コンピュータシステム
DE69530720T2 (de) * 1994-03-09 2003-11-27 Sun Microsystems Inc Verzögertes Cachespeicherschreiben eines Speicherungsbefehls
GB2290395B (en) 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times
US5752264A (en) * 1995-03-31 1998-05-12 International Business Machines Corporation Computer architecture incorporating processor clusters and hierarchical cache memories
US5903910A (en) * 1995-11-20 1999-05-11 Advanced Micro Devices, Inc. Method for transferring data between a pair of caches configured to be accessed from different stages of an instruction processing pipeline
US5838631A (en) 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US5819060A (en) * 1996-10-08 1998-10-06 Lsi Logic Corporation Instruction swapping in dual pipeline microprocessor
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US6032226A (en) * 1997-04-14 2000-02-29 International Business Machines Corporation Method and apparatus for layering cache and architectural specific functions to expedite multiple design
US6061762A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Apparatus and method for separately layering cache and architectural specific functions in different operational controllers
US5909694A (en) * 1997-06-12 1999-06-01 International Business Machines Corporation Multiway associative external microprocessor cache
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6532468B2 (en) * 1997-12-25 2003-03-11 Kawasaki Microelectronics, Inc. Binary data search method for selecting from among candidate data, and apparatus therefor
US6115320A (en) 1998-02-23 2000-09-05 Integrated Device Technology, Inc. Separate byte control on fully synchronous pipelined SRAM
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US20020108022A1 (en) * 1999-04-28 2002-08-08 Hong-Yi Hubert Chen System and method for allowing back to back write operations in a processing system utilizing a single port cache
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US7069406B2 (en) 1999-07-02 2006-06-27 Integrated Device Technology, Inc. Double data rate synchronous SRAM with 100% bus utilization
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
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6622217B2 (en) * 2000-06-10 2003-09-16 Hewlett-Packard Development Company, L.P. Cache coherence protocol engine system and method for processing memory transaction in distinct address subsets during interleaved time periods in a multiprocessor system
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
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
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer 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
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
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
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
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
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
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US20060111072A1 (en) * 2002-05-31 2006-05-25 Silicon Laboratories Inc. Wireless communication system and method using clock swapping during image rejection calibration
WO2004025483A1 (en) 2002-09-16 2004-03-25 Commvault Systems, Inc. System and method for optimizing storage operations
US7583946B2 (en) * 2003-09-29 2009-09-01 Silicon Laboratories, Inc. Wireless communication system and method using clock swapping during image rejection calibration
WO2005065084A2 (en) 2003-11-13 2005-07-21 Commvault Systems, Inc. System and method for providing encryption in pipelined storage operations in a storage network
JP5011885B2 (ja) * 2006-08-18 2012-08-29 富士通株式会社 スヌープタグの制御装置
JP4680851B2 (ja) * 2006-08-18 2011-05-11 富士通株式会社 システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
JP4912789B2 (ja) * 2006-08-18 2012-04-11 富士通株式会社 マルチプロセッサシステム,システムボードおよびキャッシュリプレース要求処理方法
US8195890B1 (en) * 2006-08-22 2012-06-05 Sawyer Law Group, P.C. Method for maintaining cache coherence using a distributed directory with event driven updates
US8332590B1 (en) * 2008-06-25 2012-12-11 Marvell Israel (M.I.S.L.) Ltd. Multi-stage command processing pipeline and method for shared cache access
US8407420B2 (en) * 2010-06-23 2013-03-26 International Business Machines Corporation System, apparatus and method utilizing early access to shared cache pipeline for latency reduction
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
KR20170012629A (ko) * 2015-07-21 2017-02-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4195342A (en) * 1977-12-22 1980-03-25 Honeywell Information Systems Inc. Multi-configurable cache store system
US4157587A (en) * 1977-12-22 1979-06-05 Honeywell Information Systems Inc. High speed buffer memory system with word prefetch
US4169284A (en) * 1978-03-07 1979-09-25 International Business Machines Corporation Cache control for concurrent access
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US4493033A (en) * 1980-04-25 1985-01-08 Data General Corporation Dual port cache with interleaved read accesses during alternate half-cycles and simultaneous writing
US4378591A (en) * 1980-12-31 1983-03-29 Honeywell Information Systems Inc. Memory management unit for developing multiple physical addresses in parallel for use in a cache memory
US4439829A (en) * 1981-01-07 1984-03-27 Wang Laboratories, Inc. Data processing machine with improved cache memory management
US4525777A (en) * 1981-08-03 1985-06-25 Honeywell Information Systems Inc. Split-cycle cache system with SCU controlled cache clearing during cache store access period
JPS5848146A (ja) * 1981-09-18 1983-03-22 Toshiba Corp 命令先取り方式
US4494190A (en) * 1982-05-12 1985-01-15 Honeywell Information Systems Inc. FIFO buffer to cache memory

Also Published As

Publication number Publication date
US4695943A (en) 1987-09-22
PT81215A (en) 1985-10-01
EP0176972A2 (en) 1986-04-09
FI853730A0 (fi) 1985-09-27
NO853797L (no) 1986-04-01
KR860002758A (ko) 1986-04-28
DE3587439D1 (de) 1993-08-12
NO173960B (no) 1993-11-15
YU154985A (en) 1988-04-30
AU4769685A (en) 1986-04-10
DK440585A (da) 1986-03-28
ATE91353T1 (de) 1993-07-15
EP0176972A3 (en) 1988-06-08
PT81215B (pt) 1987-08-19
JPH0341857B2 (da) 1991-06-25
NO173960C (no) 1994-02-23
FI91814C (fi) 1994-08-10
MY101777A (en) 1992-01-17
IL76502A (en) 1989-06-30
ES8703652A1 (es) 1987-02-16
BR8504743A (pt) 1986-07-22
DK440585D0 (da) 1985-09-27
ES547324A0 (es) 1987-02-16
MX160347A (es) 1990-02-12
YU45743B (sh) 1992-07-20
DE3587439T2 (de) 1994-01-13
FI853730L (fi) 1986-03-28
EP0176972B1 (en) 1993-07-07
KR910002929B1 (ko) 1991-05-10
PH24161A (en) 1990-03-22
JPS61165154A (ja) 1986-07-25
AU572346B2 (en) 1988-05-05
FI91814B (fi) 1994-04-29
IL76502A0 (en) 1986-01-31
CA1237198A (en) 1988-05-24

Similar Documents

Publication Publication Date Title
DK168548B1 (da) Cachesystem
KR920008430B1 (ko) 처리 판독 메모리 장치
US4785395A (en) Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US5809280A (en) Adaptive ahead FIFO with LRU replacement
US4493026A (en) Set associative sector cache
EP0009938B1 (en) Computing systems having high-speed cache memories
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
US5388247A (en) History buffer control to reduce unnecessary allocations in a memory stream buffer
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US4995041A (en) Write back buffer with error correcting capabilities
US5224215A (en) Message queue processing among cooperative processors having significant speed differences
US5016167A (en) Resource contention deadlock detection and prevention
US6816947B1 (en) System and method for memory arbitration
US5329629A (en) Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access
EP0072179A2 (en) Clearing invalid addresses in cache memory
US6049855A (en) Segmented memory system employing different interleaving scheme for each different memory segment
US5960453A (en) Word selection logic to implement an 80 or 96-bit cache SRAM
US6202133B1 (en) Method of processing memory transactions in a computer system having dual system memories and memory controllers
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
EP0512685A1 (en) Quadrature bus protocol for carrying out transactions in a computer system
JPH07508611A (ja) 統一された環境と分散されたシステム機能とを有する対称的マルチプロセシング・システム
US7000089B2 (en) Address assignment to transaction for serialization
EP0927935A1 (en) Memory structure with groups of memory banks and serializing means

Legal Events

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