DK170677B1 - Databehandlingssystemer med forsinket skrivning i et cacheadatalager - Google Patents

Databehandlingssystemer med forsinket skrivning i et cacheadatalager Download PDF

Info

Publication number
DK170677B1
DK170677B1 DK189689A DK189689A DK170677B1 DK 170677 B1 DK170677 B1 DK 170677B1 DK 189689 A DK189689 A DK 189689A DK 189689 A DK189689 A DK 189689A DK 170677 B1 DK170677 B1 DK 170677B1
Authority
DK
Denmark
Prior art keywords
cache
data store
bus
data
signals
Prior art date
Application number
DK189689A
Other languages
English (en)
Other versions
DK189689A (da
DK189689D0 (da
Inventor
Ralph Murray Begun
Patrick Maurice Bland
Mark Edward Dean
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of DK189689D0 publication Critical patent/DK189689D0/da
Publication of DK189689A publication Critical patent/DK189689A/da
Application granted granted Critical
Publication of DK170677B1 publication Critical patent/DK170677B1/da

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)
  • Saccharide Compounds (AREA)

Description

i DK 170677 B1
Den foreliggende opfindelse angår databehandlingsanlæg med forsinket skrivning i et hurtiglager, et såkaldt cachedatalager, for tilvejebringelse af en forbedring til forøgelse af tilpasningen til langsomme datalagerkomponenter, 5 hvor ønskede data ikke findes i cachedatalageret, uden påvirkning af ventetilstandsparametrene.
Baggrundsinformation hvad angår 8386, de karakteristiske egenskaber og anvendelsen i mikrodatamatsystemer med ca-chedatalager delsystemer er forklaret i "Introduction to 10 the 80386", april 1986 og "80386 Hardware Reference Manual (1986)". De karakteristiske egenskaber og anvendelsen for 82385 er forklaret i publikationen "82385 High Perfomance 32-Bit Cache Controller", 1987. Dette skrift omtaler, at i tilfælde af manglende læsning vil data, som returnerer fra 15 hoveddatalageret, blive overført til mikroprocessoren og samtidigt blive indskrevet i cachedatalageret (se side 13, venstre spalte, linie 18-20). Alle tre publikationer er frembragt ved Intel Corporation.
I mikrodatamatsystemer, som i andre datamatsystemer, 20 er operationshastigheden et væsentligt kriterium, som i de fleste tilfælde skal afvej es mod omkostningerne ved anlægget. Mange træk, som først blev tilvejebragt til forøgelse af operationshastigheden i store datamater (mainframe computers) og minidatamater, har nu fundet vej ind i mikrodatamatanlæg-25 gene. Dette gælder også cachedatalager delsystemer. Anvendelsen af cachedatalager delsystemer foranlediger en datamat-opbygning med flere busser. Mere detaljeret forbinder, i en mikroprocessor med et cachedatalager delsystem, en første bus, som for nemheds skyld benævnes en CPU lokal bus, mikro-30 processoren (f.eks. en 80386), et cachestyreanlæg (som kan indbefatte et 82385 cachestyreorgan) og et datalager med direkte tilgang, som virker som cachedatalager. CPU lokalbussen kan være forbundet over et bufferlager med et andet bussystem, for nemheds skyld benævnt en systembus. Andre 35 komponenter kan være forbundet med systembussen (enten direkte eller indirekte) så som hoveddatalager, indlæsnings-og 2 DK 170677 B1 udlæsningsudstyr, et læselager, osv.
Hovedårsagen til at anvende et cachedelsystem er ønsket om at øge hastigheden af datalageroperationer ved at sætte processoren i stand til at læse fra cacheda tal ager 5 delsystemet i den udstrækning, den ønskede information er lageret heri. Cachedatalager delsystemet har sædvanligvis en fordel i større hastighed, sammenlignet med hoveddatalage-ret. I den udstrækning, at datalagerets tilgange kan begrænses til cachedelsystemet, behøver processoren ikke at kræve 10 tilgang til systembussen. Herved frigøres systembussen i væsentlig grad til anvendelse i andre operationer, f.eks. indlæsnings- og udlæsningsoperationer, DMA, osv. Dette er en anden fordel i et mikrodatamatanlæg med et cachedatalager delsystem.
15 For at kunne opretholde den ønskede rækkefølge af forskellige operationer som skal udføres, er operationen opdelt i tidsenheder, som benævnes takttilstande. I et mikrodatamatanlæg, hvori f.eks. anvendes en 80386 processor og et 82385 cachestyreorgan vil de hurtigste datalageropera-20 tioner kræve 2 taktcykler, hver på 2 takttilstande. Andre operationer, som kræver mere end 2 taktcykler, omtales som havende et antal ventetilstande, hvilket antal er lig med forskellen mellem antallet af de til operationen krævede taktcykler, og de minimale 2 taktcykler (hvilket 2 taktcykler 25 også siges at have nul ventetilstande).
Efter som forøgelse af operationernes hastighed er et væsentligt kriterium, er det en fordel at sikre i videst mulige omfang, at operationerne kan udøves som operationer uden ventetilstande i modsætning til operationer med én eller 30 to ventetilstande osv.
Operationer med tilgange til cachelager er en art operationer, som er tilvejebragt med nul ventetilstande.
Skønt det er ønskeligt, at så mange datalagertilgange, som muligt, behandles ved cache deleanlægget, er det natur-35 ligvis nødvendigt tid efter anden at tilvejebringe tilgang til hoveddatalageret. Et princip, som bringes i anvendelse 3 DK 170677 B1 ved driften af et cache delanlæg, er, at i tilfælde af en læseoperation, hvor den ønskede information ikke findes i cachedelanlægget, indskrives informationen, når den er læst fra hoveddatalageret, umiddelbart i cachedelanlægget. Ved 5 at anvende dette princip, vil den læste information herefter være til rådighed i cachedelanlægget (undtagen hvis den er overført) således, at efterfølgende tilgange til den samme information ikke behøver at finde sted i hoveddatalageret.
I tilfælde af en læseoperation, hvor den ønskede information 10 ikke findes i cachedelanlægget, kræves der således to operationer, (1) tilvejebringelse af tilgang til hoveddatalageret til læsning af den ønskede information, for at gøre den tilgængelig for processoren, og (2) skrivning i cachedelanlægget af den information, som netop er læst fra hoveddatala-15 geret.
En karakteristisk egenskab ved 82385 er, at den information, hvortil skal tilvejebringes tilgang fra hoveddatalageret, idet den ikke findes i cachedelanlægget, nødvendigvis genskrives i cachedelanlægget før det tidspunkt, hvor den 20 gøres tilgængelig for processoren. Chipfabrikanter imødekommer denne betingelse og foreslår ét ud af to alternativer, enten udpegning af et tilstrækkelig hurtigt hoveddatalager, således at der kan tilvejebringes tilgang til data og disse data kan gøres tilgængelige for 82385 inden for det tidsrum, 25 som er nødvendigt til en fast ventetidsoperation, eller man kan forøge længden af cyklus fra, hvad der normalt kræves, ved at tilføje yderligere ventetilstande efter behov. Imidlertid er ingen af disse alternativer praktiske, idet det første alternativ pålægger forøgede omkostninger, eftersom 30 de hurtigere datalagre, som kræves for at opfylde de tidsmæssige specifikationer for 82385, nødvendigvis er mere kostbare, og det andet alternativ medfører forsinkelser ved en hvilken som helst læseoperation, hvor informationen ikke findes i cachedelanlægget, idet der dér indføres en eller 35 flere ventetilstande.
Det er et formål med den foreliggende opfindelse, at 4 DK 170677 B1 fjerne nødvendigheden for dette valg ved forbedring af systemtilpasningen til langsommere datalagerkomponenter, uden påvirkning af ventetilstandsparametre ved læseopera-tioner, hvor informationen ikke findes i cachedelanlægget.
5 Ifølge opfindelsen er der tilvejebragt et databehand lingsanlæg med en processor, et cachedatalager, en grænseflade mellem cachedatalageret og hoveddatalageret og et cachestyreorgan, som er udformet til frembringelse af særlige styresignaler for ønskede aktiviteter i forhold til cache-10 datalageret, heri indbefattet signaler (såkaldte enablesig-naler), som tillader skrivning i cachedatalageret, og signaler som angår grænsefladen til cachedatalageret for tilvejebringelse af datatilgang, således som krævet af processoren, hvilket system er karakteristisk ved logiske kredsløb 15 indskudt mellem cachestyreorganet og cachedatalageret, hvilke kredsløb modtager styresignaler fra cachestyreorganet angående såvel cachedatalageret som cachegrænsefladen, heri indbefattet enablesignaler for skrivning i cachedatalageret, således at enablesignaler for skrivning i cachedatalageret 20 forsinkes ved tilstedeværelse af modtagne sammensætninger af styresignaler, som angiver manglende ønskede data i cachedatalageret, idet forsinkelsen repræsenterer forskellen mellem tidskravene for datalageret ved cachestyreorganet og mikroprocessoren.
25 En eksempelvis udførelsesform af opfindelsen forklares i det følgende nærmere under henvisning til tegningen, på hvilken: fig. 1 er en samlet 3-dimensional afbildning af et typisk mikrodatamatanlæg, hvori den foreliggende opfindelse 30 anvendes, fig. 2 er et detaljeret blokdiagram over størstedelen af de komponenter, som indgår i et typisk mikrodatamatanlæg, hvori den foreliggende opfindelse anvendes, f.
fig. 3 er et detaljeret blokdiagram over et cachesty-35 reorgan, et datalager med direkte tilgang, et logisk kredsløb og bufferlagre, som indgår i den foreliggende opfindelse, 5 DK 170677 B1 fig. 4 er et tidsdiagram, som anskueliggør de forskellige tidskrav i cachestyreorganet og mikroprocessoren, fig. 5A-5C anskueliggør den ved opfindelsen tilvejebragte operation i tilknytning til indskrivningen i cachela-5 geret af information, som kun fandtes i hoveddatalageret, samt indskrivning i cachelageret, som ikke skyldes, at informationen kun fandtes i hoveddatalageret.
I fig. 1 er vist et typisk mikrodatamatanlæg, hvori den foreliggende opfindelse kan anvendes. Som vist indbefat-10 ter mikrodatamatanlægget 10 et antal komponenter, som er indbyrdes forbundne. Mere detaljeret er systemenheden 30 forbundet med og driver en monitor 20 (såsom et kendt videofremvisningsapparat) . Systemenheden 30 er også forbundet med indlæsnings indretninger, så som et tastatur 40 og en 15 mus 50. En udlæsningsindretning, så som en printer 60, kan også være forbundet med systemenheden 30. Endelig kan systemenheden indbefatte et eller flere diskdrev, så som diskdrevet 70. Som nedenfor forklaret påvirkes systemenheden 30 af indlæsningsindretninger, så som tastaturet 40 og musen 50, og 20 indlæsnings/udlæsningsindretninger så som diskdrevet 70, for tilvejebringelse af signaler til at drive udlæsningsindretningerne så som monitoren 20 og printeren 60. Naturligvis er det kendt af fagmanden indenfor området, at andre kendte komponenter kan blive forbundne med systemenheden 30 til 25 samvirke hermed. Ifølge den foreliggende opfindelse indbefatter mikrodatamatanlægget 10 (hvilket vil blive beskrevet mere detaljeret) et cachedatalager delanlæg, således at der er tilvejebragt CPU lokalbus, som tilvejebringer forbindelse mellem en processor, et cachestyreorgan og et cachedatalager, 30 hvilken CPU lokalbus over et bufferlager er forbundet med en systembus. Systembussen tilvejebringer forbindelse mellem og samvirker med indlæsnings/udlæsningsindretningerne, såsom tastaturet 40, musen 50, diskdrevet 70, monitoren 20 og printeren 60. Yderligere kan systemenheden 30 ifølge den 35 foreliggende opfindelse også indbefatte en tredie bus, som er tilvejebragt som en Micro Channel (TM) bus for tilveje- 6 DK 170677 B1 bringelse af forbindelse mellem systembussen og andre (valgfrie) indlæsnings/udlæsningsindretninger, datalagre osv.
Fig. 2 er et højniveaus blokdiagram, som anskueliggør de forskellige komponenter i et typisk mikrodatamatanlæg 5 som er tilvejebragt ved den foreliggende opfindelse. En CPU lokalbus 230 (som indbefatter data-, adresse- og styrekomponenter) er tilvejebragt for at forbinde en mikroprossesor 225 (så som en 80386), et cachestyreanlæg 260 (som kan indbefatte et 82385 cachestyreorgan), og et cachedatalager 10 255, med direkte tilgang. Tillige er et bufferlager 240 forbundet med CPU lokalbussen 230. Bufferlageret 240 er igen forbundet med systembussen 250, som også indbefatter adresse-, data- og styrekomponenter. Systembussen 250 forløber mellem bufferlageret 240 og et yderligere bufferlager 15 253.
Systembussen 250 er tillige forbundet med et busstyrings- og tidselement 265 og et DMA styreorgan 325. En ud-pegningsovervågningsbus 340 forbinder busstyrings- og tidselementet 265 og et centralt udpegningselement 335. Datala-20 geret 350 er tillige forbundet med systembussen 250. Datalageret 350 indbefatter et datalagerstyreelement 351, en adres-semultiplexer 352 og et databufferlager 353. Disse elementer er indbyrdes forbundne med datalagerelementer 361-364, som vist i fig. 2.
25 Et yderligere bufferlager 267 er indskudt mellem sy stembussen 250 og en planbus 270. Planbussen 270 indbefatter adresse-, data-, og styrekomponenter. Forbundne langs planbussen 270 er et antal indlæsnings/udlæsningstilpas-ningsled og andre komponenter, så som fremvisningstilspas-30 ningsorganet 275 (som anvendes til at drive monitoren 20), en taktgenerator 280, yderligere datalagre 285 med direkte tilgang, RS 232 tilpasningsled 290 (som anvendes ved serielle indlæsnings/udlæsningsoperationer), et printertilpasningsled 295 (som kan anvendes til at drive printeren 60), et tidsor-35 gan 300, et diskettetilpasningsled 305 (som samvirker med diskdrevet 70), et afbrydelses styreorgan 310 og et læselager 7 DK 170677 B1 315. Bufferlageret 253 tilvejebringer en grænseflade mellem systembussen 250 og en valgfri funktionsbus, så som MC MicroChannel (TM) bus 320, som repræsenteres ved Micro-Channel (TM) tilslutninger. Indretninger så som et datalager 331 5 kan være forbundet med bussen 320.
Selvom data for indskrivning i cachelageret kan udledes fra datalageret 350, kan sådanne data også afledes fra andre datalagre, så som et datalager, som er forbundet på Micro-Channel (TM) bussen.
10 I et kendt 80386/82385 mikrodatamatanlæg skal brugeren udpege det ene af to ikke attraktive alternativer i forbindelse med datalageroperationer, og især i forbindelse med operationer, som følger efter en situation, hvor informationen ikke kunne aflæses i cachelageret.
15 I et sådant anlæg placerer mikroprosessoren 225 under en læsecyklus en adresse på adressekomponenten i CPU lokal bus 230. Cachestyreanlægget 260 er indrettet til at kunne påvirkes af adressen, og styreanlægget afgør hvorvidt den ønskede information er placeret i cachedatalageret 255.
20 Hvis informationen findes i cachedatalageret 255, adresseres cachedatalageret 255, der placerer data på datakomponenten på CPU lokal bussen, hvor data er tilgængelige for mikropros-sesoren 225. I det tilfælde, at den ønskede information ikke findes i cachedatalageret 255, bringer cachestyrean-25 lægget 260 bufferen 240 i en sådan tilstand, at adressen kan overføres fra CPU lokalbus 230 til systembus 250. Når den ønskede adresse når systembussen 250, er den til rådighed for datalageret 350, og efter en tidsperiode, som kræves ud fra datalageret 350's karakteristiske egenskaber, optræder 30 de adresserede data på datakomponenten på systembus 250. Data overføres gennem bufferen 240, hvor data er tilgængelige både for cachedatalageret 255 og for mikroprossesoren 225. Informationen vil blive anvendt i cachedatalageret 255 til indskrivning heri, således at i det tilfælde, at den samme 35 information kræves er det ikke nødvendigt at udøve en yderligere tilgang til datalageret 350. Tilsvarende operationer 8 DK 170677 B1 kan indtræde med datalageret på planbussen 270 eller på den valgfri funktionsbus. I tilslutning til anvendelse af den valfrie operationsbus overføres adresseinformationen gennem » bufferlageret 253 til datalageret på den valgfri funktions-5 bus. Data fra et sådant datalager føres tilbage gennem bufferlageret 253 og systembussen 250 til CPU lokalbussen 230 * over bufferlageret 240.
Som tidligere nævnt kræver de karakteristiske egenskaber ved 82385 imidlertid, at den information, som er 10 tilvejebragt i tilknytning til, at informationen ikke var indskrevet i cachedatalageret, skal være til rådighed på CPU lokalbussen til indskrivning i cachedatalageret 255, før informationen kræves ved processoren 225. Med andre ord de tidsmæssige krav, som stilles til datalageret 350 eller 15 andre datalagre ved 82385, er strengere, end de tidskrav, som stilles ved 80386.
Fabrikanten af 82385 foreslår således, at brugeren enten kan: 20 1) udpege datalagerelementer (så som elementer 361-364) i hoveddatalageret 350 eller andre datalagre således, at anlægget er hurtig nok til at opfylde tidskravene fra 82385 med en angivet ventetilstand, eller 2) sikre, at de to operationer, som tilvejebringes, når 25 information ikke kan læses i cachelageret, indtager en yderligere ventetilstand.
Som beskrevet senere fjerner den foreliggende opfindelse disse krav til udpegning af en ud af to uønskede alternativer, ved i virkligheden at fjerne de strenge tidskrav, 30 som dikteres af cachestyreanlægget 260, således at de tidskrav, som stilles til hoveddatalageret 350 eller andre datalagre ikke er strengere, end de tidskrav, som stilles ved mikrodatamaten 225.
For at kunne udøve den foreliggende opfindelse er der 35 til cachestyreanlægget 260 føjet flere logiske elementer ud over 82385-chippen, som anskueliggjort i fig. 3.
9 DK 170677 B1
Fig. 3 viser i blokdiagramform de enkelte komponenter i cachestyreanlægget 260 og i cachedatalageret 255. Nærmere forklaret er cachedatalageret 255 forbundet med datakomponenten i CPU lokalbussen 230 og over holdeorganet 255L med 5 adressekomponenten i CPU lokalbussen 230.
Cachestyreanlægget 260 indbefatter 82385 cachestyre-organet samt det logiske element 261. Fig. 3 viser de udgangssignaler fra 82385, som er af betydning for cache skriveoperationerne. Disse indbefatter aktivering af cacheholde-10 organ (CALEN), og cacheskriveaktiveringssignalerne indbefatter CWEA (for bank A) og CWEB (for bank b) og chipudpegnings-signalerne CS0, CS1, CS2 og CS3.
Som vist i fig. 3 modtager det logiske element 261 som indgangssignaler CWEA og CWEB sammen med 2 taktsignaler, CLK 15 og CLK2 (det første har nøjagtigt den halve frekvens af det sidste) og BUSRD (hvilket angiver en systembuslæseoperation). BUSRD bliver aktiv for operationer, som finder sted på systembussen 250. Enhver læsning af datalagre (bortset fra cachelageret) finder sted (i det mindste delvis) på system-20 bussen 250.
Det logiske element 261 påvirkes af indgangssignalerne og frembringer under egnede omstændigheder DCWEA (Delayed Cache Write Enable A), eller DCWEB (Delayed Cache Write Enable B) . Mere detaljeret betyder det, at i tilfælde af, 25 at CWEA er aktiv og BUSRD er aktiv (hvilket ufravigeligt angiver, at den ønskede information ikke kan læses i cachedatalageret) , vil på det egnede tidspunkt DCWEA blive frembragt. På tilsvarende vis vil på det egnede tidspunkt, ved tilstedeværelsen af et aktivt CWEB og et aktivt BUSRD, blive 30 frembragt et DCWEB.
Det logiske element 261 udsender DCWEA og DCWEB, idet hver af dem udgør et indgangssignal til de tilknyttede logiske porte 263A eller 263B. Hver af disse porte modtager også et tilsvarende indgangssignal fra den tilknyttede udgang 35 på 82385, dvs. port 263A modtager sit andet indgangssignal fra CWEA og på tilsvarende vis modtager 263B sit andet ind- 10 DK 170677 B1 gangssignal tilvejebragt ved CWEB.
Ud over de logiske porte 263A og 263B indbefatter cachestyreanlægget 260 yderligere et bufferlager 262 til Λ forsinkelse af udsendelse af aktiveringssignaler (chip select 5 signaler), idet bufferlageret indbefatter bufferelementerne 262a-262e, et element for hver af signalerne CALEN, CSO, CS1, CS2 og CS3. Som vist i fig. 3 er hvert element i bufferlageret 262 en logisk port, som til stadighed er delvis aktiveret (derved at den ene indgang er bundet til det egnede 10 potentiale). Det andet indgangssignal til bufferelementerne kommer fra de tilsvarende udgange på 82385. Udgangssignalet fra bufferelementet 262a virker som indgangssignal til styreindgangen på holdeorganet 255L. Udgangssignalet fra bufferelementerne 262b-262e virker direkte som indgangssignaler 15 til cachedatalageret 255 som CS0-CS3.
Før forklaringen på driften af komponenterne i fig.
3 henvises der til fig. 4 til anskueliggørelse af en egnet tidsfordeling.
Fig. 4 viser tre tidsdiagrammer. Hvert af diagrammerne 20 begynder på det tidspunkt, hvor en systembus operation indtræder, dvs. når BUSRD bliver aktiv. Den linie, som er benævnt 80386, viser, at til tiden MT1, som ligger efter begyndelsen af en læseoperation, hvor informationen ikke er placeret i cachedatalageret, er de fra datalageret udsendte 25 data gyldige. Tiden MT1 er den tids tolerance, som pålægges datalageret ud fra krav fra 80386.
På den linie i fig. 4, som er benævnt 82385, er det ved 82385 krævede tidsrum anskueliggjort. Det betyder, at 82385 frembringer CWEA og CWEB således, at gyldige data må 30 være tilgængelige fra datalageret til tiden MT2, dvs. på et tidspunkt, før de gyldige data er krævede ved 80386. Fig. 4 viser således de strengere tidskrav (MT2) fra 82385 sammenlignet med de mindre stramme tidskrav (MT1) fra 80386.
r
Fig. 4 viser også virkningen af de logiske element 35 261. Udgangssignalerne DCWEA og/eller DCWEB fra det logiske element 261 følger de mindre strenge tidskrav fra 80386.
11 DK 170677 B1 DCWEA og/eller DCWEB bliver forsinket med den i fig. 4 viste "forsinkelse" i forhold til CWEA og CWEB. Ved denne forsinkelse er således de mindre strenge tidskrav fra 80386 de eneste tidskrav, som pålægges hoveddatamaten 350 i til-5 slutning til udlæsning af information, som ikke findes i cachedatalageret. Herved er der tilvejebragt mulighed for, at der kan anvendes mindre kostbare datakomponenter i forhold til de komponenter, som ville være krævet til 82385 for at kunne færdiggøre en udlæsning af information, som ikke findes 10 i cachedatalageret, inden for et givet antal ventet ilstande.
Ved de indre komponenter i det logiske element 261 anvendes følgende logiske ligninger:
/DCWEA: = /BUSRD & /CLK & /CWEA /DCWEB: - /BUSRD & /CLK & /CWEB
15 hvor operatoren er et logisk OG, og operatoren "/" repræsenterer negationen, medens de andre signalelementer bortset fra BUSRD allerede er blevet defineret.
Fig. 5A-5C anvendes i tilknytning til forklaring af driften af de fig. 3 viste elementer. Især viser 5A et typisk 20 CWE signal. Signalet har to overgange, en første nedadgående overgang og en anden opadgående overgang. Cachedatalageret 255 er indrettet til at udøve en skrivehændelse ved den opadgående overgang af CWE, således som vist i fig. 5A.
Fig. 5B viser typisk CWE, DCWE og udgangssignalet 25 fra porten (enten 263A eller 263B) i tilknytning til en tilstand med udlæsning af information, som ikke findes i cachedatalageret. Som vist på den første linie frembringes CWE signalet ved 82385. I en tilstand, hvor informationen ikke kan udlæses fra cachedatalageret, frembringes det logi-30 ske element 261 DCWE forsinket i forhold til CWE med en egnet forsinkelse. Den tredie linie i fig. 5B (benævnt GATE) vise udgangssignalet fra den pågældende port (263A eller 263B). Udgangssignalet fra porten 263 er tilvejebragt med en nedadgående overgang, som frembringes som følge af den 35 nedadgående overgang i CWE. Når CWE signalet foretager en opadgående overgang, forbliver udgangssignalet fra porten 12 DK 170677 B1 logisk lavt, på grund af det lave indgangssignal fra DCWE.
Det er kun, når DCWE går opad, at udgangssignalet fra porten også går logisk højt, således at tidsfastsættelsen af skrive- r hændelsen bevirkes ved den opadgående overgang DCWE. Som 5 vist i den tredie linie i fig. 5B forsinkes skrivehændelsen t ved den forsinkelsesstørrelse som pålægges ved det logiske element 261, sammenlignet med den opadgående overgang i CWE.
Fig. 5C viser driften under en skrivning i cachelage-10 ret, som ikke skyldes, at information kun kunne aflæses i hoveddatalageret. Den første linie i fig. 5C (benævnt CWE) viser CWE signalet, således som dette frembringes ved 82385.
Efter som fig. 5C anskueliggør en indskrivning i cachelage-ret, som ikke skyldes, at informationen kun kunne tilveje-15 bringes fra hoveddatalageret, viser DCWE ikke nogen overgang overhovedet (BUSRD forbliver inaktiv). Som følge heraf er udgangssignalet fra porten (263A eller 263B) synkront med CWE, således at skrivehændelsen overhovedet ikke forsinkes.
I en udførelsesform af opfindelsen, som aktuelt er 20 blevet opbygget, er varigheden af forsinkelsen i størrelsesorden 25 nanosekunder.
De logiske ligninger, hvortil er henvist tidligere, gengives umiddelbart herefter. I disse ligninger har symbolerne følgende betydning: 25
Symbol Definition / Negation := Registreret udtryk, lig med = kombinatorisk udtryk, lig med
30 & logisk OG
+ logisk ELLER
• 13 DK 170677 B1
Logiske ligninger /BUSRD:=BUSRD & BUSCYC385 & /BADS & /(BW/R) & CLK (1)
+ BUSRD & /PIPECYCLE385 & /(BW/R) & CLK 5 + /BUSRD & BREADY
+ /BUSRD & /MISSI + /BUSRD & /CLK
/BUSCYC385:=BUSCYC385 & /BADS & CLK (2)
+ BUSCYC385 & /PIPECYC385 & CLK 10 + BUSCYC385 & /BT2 & CLK
+ /BUSCYC385 & BREADY + /BUSCYC385 & /CLK
/PIPECYC385:=PIPECYC385 & /BADS & /BUSCYC385 & CLK & (3)
/BREADY
15 + PIPECYC385 & /MISSI & BT2 & /BUSCYC385 & CLK &
/BREADY
+ /PIPECYC385 & /CLK
/MISSI:=MISS1 & BUSCYC385 & CPUNA & /BADS & /(BW/R) & (4)
20 CLK & NCA
+ MISSI & /BUSCYC385 & /BADS & /(BW/R) & CLK & NCA &
/BREADY
+ /MISSI & /CLK + /MISSI & BREADY 25 /CPUNA:=/MISSl & CLK & CPUNA & /NACACHE (5)
+ /MISSI & CLK & CPUNA & /BREADY & /BUSCYC385 + /CPUNA & /CLK + /CPUNA & /MISSI & CLK + /CPUNA & CLK & BREADY 30 + /CPUNA & BUSCHYC385 & NACACHE & CLK
/BT2:=BUSCYC385 & PIPECYC385 & /BADS & CLK & BT2 (6) + BUSCYC385 & /PIPECYC385 & BADS & CLK & NACACHE & BT2 35 + MISSI & /BUSCYC385 & /BADS & /BW/R) & CLK & NCA &
/BREADY
14 DK 170677 B1 + /MISSI & /BREADY & /BUSCYC385 & CLK + /BT2 & BREADY & NACACHE + /CLK & /BT2 5 I de foranførte logiske ligninger er følgende signaler beskrevet eller henvist til i de tidligere Intel publikationer:
BADS
10 BREADY
(BW/R) aktuelt henvist til som BW/R, idet parentesen anvendes til angivelse af, at det samlede udtryk er ét signal.
CLK
15 BADS angiver i aktivt tilstand en gældende adresse på systembus 250. BREADY er et klarmeldingssignal fra systembussen 250 til CPU lokalbussen 230. BW/R definerer skrivning eller læsning i systembus 250. CLK er et processor taktsignal, 20 som er i fase med processoren 225.
Ligningerner (1)-(6) definerer: BT2 BUSCYC385 BUSRD 25 CPUNA MISSI PIPECYC385 udtrykt ved de definerede signaler, signalerne forklarede 30 eller henvist til i de nævnte Intel publikationer og NCA og NACACHE. BT2 afspejler tilstanden på systembussen 250. Den ved BT2 udtrykte tilstand er en tilstand, som er defineret i de tidligere omtalte Intel publikationer.
BUSCYC385 afspejler også tilstanden i systembussen 35 250. Det er logisk højt for bustilstandende BTI, BT1, BT1P
og det logisk lavt for bustilstandene BT2, BT2P og BT2I
15 DK 170677 B1 (disse bustilstande er anført i de citerede Intel publikationer) .
/BUSRD er aktiv under læsninger, som optræder på systembus 250.
5 CPUNA er et signal til 80386, hvorved muliggøres "pipelined" operationer, dvs. operationer med indhentning af flere instruktioner fra arbejdslageret, end processoren er i gang med at behandle.
MISSI defineres som aktivt den første cyklus i en 10 dobbelt cyklus til behandling af 64 bit udlæste data til indretninger, hvis data kan placeres i et cachelager.
PIPECYC385 er aktiv under BT1P (som er en bustilstand, hvortil er henvist i de nævnte Intel publikationer).
NCA er et signal, som er tilvejebragt ved dekodning 15 af adressekomponenten på CPU lokalbus 230, hvilket signal, når det er aktivt, afspejler en tilgang til data, som ikke kan placeres i et cachelager. Om data kan placeres i et cachelager eller ikke afgøres ved en afmærkningskomponent (A31 til A17) og programmerbar information definerer hvilke 20 afmærkninger, om (overhovedet nogen), som refererer til data, som kan placeres i et cachelager, i modsætning til adresser, som ikke hører hjemme i cachelageret.
NACACHE er et signal svarende til signalet BNA. BNA er et systemfrembragtsignal, hvorved anmodes om næste adres-25 se fra CPU lokalbus 230, og der henvises hertil i de tidligere nævnte Intel publikationer. NACACHE afviger kun fra BNA derved, at BNA er tilvejebragt til et 32K cachelager, medens NACACHE er tilvejebragt til et 64K cachelager. Sålænge cachelageret er 32K, som omtalt i Intel publikationer, kan 30 det her omtalte NACACHE signal erstattes af signalet BNA. I en virkelig opbygget udførelsesform blev det logiske element 261 tilvejebragt som en programmerbar matrixopbygning med logiske elementer (programmable logic array). Det skulle være åbenbart, at andre og yderligere logiske indretninger 35 kan anvendes ved udøvelsen af en tilsvarende funktion.

Claims (8)

16 DK 170677 B1
1. Databehandlingsanlæg med en processor (225), et cachedatalager (255), en grænseflade (240) mellem cachedata- 5 lageret og hoveddatalageret, og et cachestyreorgan (260), som er udformet til frembringelse af særlige styresignaler for ønskede aktiviteter i forhold til cachedatalageret (255), heri indbefattet signaler (CWEA, CWEB) (såkaldte enablesig-naler), som tillader skrivning i cachedatalageret, og sig-10 naler som angår grænsefladen til cachedatalageret (240) for tilvejebringelse af datatilgang, således som krævet af processoren (225), kendetegnet ved logiske kredsløb (261, 262, 263), som er indskudt mellem cachestyreorganet (260) og cachedatalageret (255), hvilke kredsløb modtager 15 styresignaler fra cachestyreorganet (260) angående såvel cachedatalageret som cachegrænsefladen, heri indbefattet enablesignaler for skrivning i cachedatalageret, således at enablesignaler for skrivning i cachedatalageret forsinkes ved tilstedeværelse af modtagne sammensætninger af styre-20 signaler, som angiver manglende ønskede data i cachedatalageret, idet forsinkelsen repræsenterer forskellen mellem tidskravene (MT2, MT^) for datalageret ved cachestyreorganet (260) og mikroprocessoren (225).
2. Anlæg ifølge krav 1, kendetegnet ved, 25 at cachedatalageret (255) er et flerchip datalager, og de logiske kredsløb (261, 262, 263) også overfører chipaktiveringssignaler (CS0, CS1, CS2, CS3) fra cachestyreorganet (260) til cachedatalageret (255), og yderligere indbefatter et bufferlagerorgan (262) til forsinket overføring af chip-30 aktiveringssignaler, hvilket bufferlagerorgan har en indgang for hver af chipaktiveringssignalerne og en udgang for hver af chipaktiveringssignalerne, og hvor udgangene på buffer-lagerorganet (262) er forbundet med chipaktiveringsterminaler på cachedatalageret (255).
3. Anlæg ifølge krav 2, kendetegnet ved, at bufferlagerorganet yderligere indbefatter en indgang 17 DK 170677 B1 (262a) for et cachefastholdelsesaktiverinssignal (CALEN) fra cachestyreorganet (260) og en udgang forbundet med en adressefastholdelsekreds (255L) i cachedatalageret (255).
4. Anlæg ifølge krav 1-3, kendetegnet 5 ved, at processoren (225), cachedatalageret (255), cachestyreorganet (260) og grænsefladen (240) indbyrdes er forbundet ved en lokal bus (230), og at grænsefladen (240) er forbundet med en systembus (250), hvormed hoveddatalageret (350) er forbundet, og at cachestyreorganet (260) indbefatter 10 et første organ, som kan påvirkes af en registreret tilstand, hvor ønskede data ikke er til stede i cachedatalageret, til overføring af adresseinformation fra lokalbussen (230) til systembussen (250) til adressering af hoveddatalageret (350), og et andet organ, som kan påvirkes af data på systembussen 15 (250), som er tilvejebragt fra hoveddatalageret (350) til overføring af data til lokalbussen (230) styret af et buslæsestyres ignal, således at skrivning i cachedatalageret kan finde sted, når det forsinkede cacheskriveenablesignal (DCWEA, DCWEB) tillader dette.
5. Anlæg ifølge krav 4, kendetegnet ved, at systembussen (250) er forbundet med en valgfri funktionsbus (320), idet en datalagerindretning (331) er forbundet med den valgfri funktionsbus således, at datalagerindretningen kan adresseres, og således tilgængeliggjorte data kan 25 sendes tilbage til lokalbussen (230) over systembussen (250).
6. Anlæg ifølge krav 4 eller 5, kendetegnet ved, at den styres ignal sammensætning, som kan påvirke de logiske kredse (261, 262, 263) til frembringelse af det forsinkede cacheskriveenablesignal, er en sammensætning af 30 et cacheskriveenablesignal (CWEA, CWEB) og et buslæsesignal (BUSRD).
7. Anlæg ifølge krav 1-6, kendetegnet ved, at cachedatalageret (255) indbefatter en første og en anden datalagerbank og tilsvarende en første og en anden 35 skriveenableindgang (WEA, WEB), at cachestyreorganet (260) har en første cacheskriveenableudgang (CWEA), som svarer DK 170677 B1 IS til den første datalagerbank, og en anden cacheskriveenable-udgang (CWEB), som svarer til den anden datalagerbank, og at forsinkelseslogikkredsløbene separat kan påvirkes af den første eller den anden cacheskriveenableudgang på cache-5 styreorganet til frembringelse af et første eller et andet forsinket cacheskriveenablesignal på den tilsvarende første eller anden skriveenableindgang (WEA, WEB).
8. Anlæg ifølge krav 7, kendetegnet ved, at logikkredsløbene indbefatter en port (263a), som er for-10 bundet med den første skriveenableindgang (WEA), og som kan påvirkes af en første cacheskriveenableudgang (CWEA) fra cachestyreorganet (260), og af et samtidigt forekommende forsinket cacheskriveenablesignal (DCWEA) til overføring af den første bank til aktiv tilstand, og en tilsvarende anden 15 port (263b), som kan påvirkes af en anden cacheskriveenableudgang (CWEB) fra cachestyreorganet (260) og det samtidige forsinkede cacheskriveenablesignal (DCWEB) for således at bringe den anden bank i aktiv tilstand via den anden enable-indgang (WEB). 5
DK189689A 1988-05-26 1989-04-19 Databehandlingssystemer med forsinket skrivning i et cacheadatalager DK170677B1 (da)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19889088 1988-05-26
US07/198,890 US5175826A (en) 1988-05-26 1988-05-26 Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385

Publications (3)

Publication Number Publication Date
DK189689D0 DK189689D0 (da) 1989-04-19
DK189689A DK189689A (da) 1989-11-27
DK170677B1 true DK170677B1 (da) 1995-11-27

Family

ID=22735299

Family Applications (1)

Application Number Title Priority Date Filing Date
DK189689A DK170677B1 (da) 1988-05-26 1989-04-19 Databehandlingssystemer med forsinket skrivning i et cacheadatalager

Country Status (25)

Country Link
US (1) US5175826A (da)
EP (1) EP0343989B1 (da)
JP (1) JP2755330B2 (da)
KR (1) KR930001584B1 (da)
CN (1) CN1019151B (da)
AT (1) ATE128566T1 (da)
AU (1) AU615542B2 (da)
BE (1) BE1002653A4 (da)
BR (1) BR8902383A (da)
CA (1) CA1314103C (da)
CO (1) CO4520299A1 (da)
DE (2) DE3911721A1 (da)
DK (1) DK170677B1 (da)
ES (1) ES2078237T3 (da)
FI (1) FI96244C (da)
FR (1) FR2632092A1 (da)
GB (2) GB8904920D0 (da)
HK (1) HK11592A (da)
IT (1) IT1230208B (da)
MX (1) MX170835B (da)
MY (1) MY106968A (da)
NL (1) NL8901327A (da)
NO (1) NO175837C (da)
SE (1) SE8901308L (da)
SG (1) SG110991G (da)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586302A (en) * 1991-06-06 1996-12-17 International Business Machines Corporation Personal computer system having storage controller with memory write control
US5361368A (en) * 1991-09-05 1994-11-01 International Business Machines Corporation Cross interrogate synchronization mechanism including logic means and delay register
US5802548A (en) * 1991-10-25 1998-09-01 Chips And Technologies, Inc. Software programmable edge delay for SRAM write enable signals on dual purpose cache controllers
US5333276A (en) * 1991-12-27 1994-07-26 Intel Corporation Method and apparatus for priority selection of commands
US5309568A (en) * 1992-03-16 1994-05-03 Opti, Inc. Local bus design
US5426739A (en) * 1992-03-16 1995-06-20 Opti, Inc. Local bus - I/O Bus Computer Architecture
US5471585A (en) * 1992-09-17 1995-11-28 International Business Machines Corp. Personal computer system with input/output controller having serial/parallel ports and a feedback line indicating readiness of the ports
US6487626B2 (en) 1992-09-29 2002-11-26 Intel Corporaiton Method and apparatus of bus interface for a processor
US5898894A (en) * 1992-09-29 1999-04-27 Intel Corporation CPU reads data from slow bus if I/O devices connected to fast bus do not acknowledge to a read request after a predetermined time interval
US5613153A (en) * 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5890216A (en) * 1995-04-21 1999-03-30 International Business Machines Corporation Apparatus and method for decreasing the access time to non-cacheable address space in a computer system
US6397295B1 (en) 1999-01-04 2002-05-28 Emc Corporation Cache mechanism for shared resources in a multibus data processing system
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
JP2005221731A (ja) * 2004-02-05 2005-08-18 Konica Minolta Photo Imaging Inc 撮像装置
US8996833B2 (en) * 2013-03-11 2015-03-31 Intel Corporation Multi latency configurable cache

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4190885A (en) * 1977-12-22 1980-02-26 Honeywell Information Systems Inc. Out of store indicator for a cache store in test mode
US4171538A (en) * 1978-01-23 1979-10-16 Rockwell International Corporation Elastic store slip circuit apparatus for preventing read and write operations interference
US4189770A (en) * 1978-03-16 1980-02-19 International Business Machines Corporation Cache bypass control for operand fetches
JPS58169958A (ja) * 1982-03-31 1983-10-06 Fujitsu Ltd Misスタテイツク・ランダムアクセスメモリ
US4494190A (en) * 1982-05-12 1985-01-15 Honeywell Information Systems Inc. FIFO buffer to cache memory
US4513372A (en) * 1982-11-15 1985-04-23 Data General Corporation Universal memory
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
JPH0795395B2 (ja) * 1984-02-13 1995-10-11 株式会社日立製作所 半導体集積回路
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
US4623990A (en) * 1984-10-31 1986-11-18 Advanced Micro Devices, Inc. Dual-port read/write RAM with single array
DE3688400T2 (de) * 1985-02-01 1993-08-26 Nippon Electric Co Cachespeicherschaltung geeignet zur verarbeitung einer leseanforderung waehrend der uebertragung eines datenblocks.
US4630239A (en) * 1985-07-01 1986-12-16 Motorola, Inc. Chip select speed-up circuit for a memory
JPS6261135A (ja) * 1985-09-11 1987-03-17 Nec Corp キヤツシユメモリ
JPS62194563A (ja) * 1986-02-21 1987-08-27 Hitachi Ltd バツフア記憶装置
US4710903A (en) * 1986-03-31 1987-12-01 Wang Laboratories, Inc. Pseudo-static memory subsystem
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access

Also Published As

Publication number Publication date
BR8902383A (pt) 1990-01-16
NO891583L (no) 1989-11-27
NO175837C (no) 1994-12-14
JPH0271344A (ja) 1990-03-09
KR890017619A (ko) 1989-12-16
ATE128566T1 (de) 1995-10-15
IT8920649A0 (it) 1989-05-25
GB8912019D0 (en) 1989-07-12
DK189689A (da) 1989-11-27
AU615542B2 (en) 1991-10-03
MY106968A (en) 1995-08-30
DK189689D0 (da) 1989-04-19
MX170835B (es) 1993-09-20
CN1040104A (zh) 1990-02-28
FI891788A7 (fi) 1989-11-27
BE1002653A4 (fr) 1991-04-23
CO4520299A1 (es) 1997-10-15
NO175837B (no) 1994-09-05
GB2219111B (en) 1991-05-29
EP0343989A3 (en) 1991-03-13
SG110991G (en) 1992-02-14
FI96244B (fi) 1996-02-15
FI96244C (fi) 1996-05-27
CA1314103C (en) 1993-03-02
DE68924368T2 (de) 1996-05-02
NO891583D0 (no) 1989-04-18
EP0343989A2 (en) 1989-11-29
IT1230208B (it) 1991-10-18
SE8901308L (sv) 1989-11-27
DE68924368D1 (de) 1995-11-02
FI891788A0 (fi) 1989-04-14
DE3911721A1 (de) 1989-11-30
GB2219111A (en) 1989-11-29
GB8904920D0 (en) 1989-04-12
AU3409689A (en) 1989-11-30
ES2078237T3 (es) 1995-12-16
KR930001584B1 (ko) 1993-03-05
US5175826A (en) 1992-12-29
DE3911721C2 (da) 1990-05-31
SE8901308D0 (sv) 1989-04-11
EP0343989B1 (en) 1995-09-27
NL8901327A (nl) 1989-12-18
CN1019151B (zh) 1992-11-18
FR2632092A1 (fr) 1989-12-01
JP2755330B2 (ja) 1998-05-20
HK11592A (en) 1992-02-21

Similar Documents

Publication Publication Date Title
DK170677B1 (da) Databehandlingssystemer med forsinket skrivning i et cacheadatalager
US4439829A (en) Data processing machine with improved cache memory management
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
US5148536A (en) Pipeline having an integral cache which processes cache misses and loads data in parallel
DK169492B1 (da) Databehandlingsapparat med selektiv forud indhentning af instruktioner og fremgangsmåde til drift afet sådant databehandlingsapparat
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5854638A (en) Unified memory architecture with parallel access by host and video controller
US5802576A (en) Speculative cache snoop during DMA line update
EP0468786A2 (en) Processor which performs memory access in parallel with cache access and method employed thereby
JP2000029780A (ja) メモリ・ペ―ジ管理
US20020199079A1 (en) Method to prefetch data from system memory using a bus interface unit
US5353416A (en) CPU lock logic for corrected operation with a posted write array
KR950000549B1 (ko) 데이타 처리 시스템에서의 오퍼랜드 이용도를 증가시키는 장치 및 방법
US5829010A (en) Apparatus and method to efficiently abort and restart a primary memory access
US5737756A (en) Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
JPH07121437A (ja) コンピュータシステム
CA1175581A (en) Data processing machine with improved cache memory management
EP0488566A2 (en) Method and apparatus for fast page mode selection
US5809534A (en) Performing a write cycle to memory in a multi-processor system
US5838946A (en) Method and apparatus for accomplishing processor read of selected information through a cache memory
US6904500B2 (en) Cache controller
JPH06324940A (ja) メモリ制御方法および装置
EP0304587A2 (en) Interruptible cache loading
KR100259943B1 (ko) 고속 마이크로 프로세서와 백플레인 접속장치 및 방법