DK165529B - Apparat til at forhindre tilgang til en faelles ressource - Google Patents

Apparat til at forhindre tilgang til en faelles ressource Download PDF

Info

Publication number
DK165529B
DK165529B DK323084A DK323084A DK165529B DK 165529 B DK165529 B DK 165529B DK 323084 A DK323084 A DK 323084A DK 323084 A DK323084 A DK 323084A DK 165529 B DK165529 B DK 165529B
Authority
DK
Denmark
Prior art keywords
signal
bus
storage
unit
flip
Prior art date
Application number
DK323084A
Other languages
English (en)
Other versions
DK165529C (da
DK323084A (da
DK323084D0 (da
Inventor
Daniel A Boudreau
James M Sandini
Edward R Salas
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 DK323084D0 publication Critical patent/DK323084D0/da
Publication of DK323084A publication Critical patent/DK323084A/da
Publication of DK165529B publication Critical patent/DK165529B/da
Application granted granted Critical
Publication of DK165529C publication Critical patent/DK165529C/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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)
  • Lock And Its Accessories (AREA)
  • Arc Welding Control (AREA)
  • Numerical Control (AREA)

Description

i
DK 165529 B
Den foreliggende opfindelse' angår generelt databehandlingsanlæg, og navnlig et låseapparat, som sørger for, at en bruger blandt en mulig flerhed af brugere af en fælles ressource gives eksklusiv brug af den fælles ressource i det tidsrum, hvor den fælles res-5 source er låst.
I et system med flere apparater, som er koblet til en fælles ressource, skal der findes et ordnet system, hvormed et af brugerapparaterne kan opnå eksklusiv brug af den fælles ressource for visse typer af operationer. Under dette tidsrum med eksklusiv brug 10 af et af apparaterne, som udfører en operation, der kræver eksklusivitet, ønsker et andet apparat at udføre en operation, der også kræver eksklusiv brug af den fælles ressource. Dette problem bliver mere kompliceret, når sådanne apparater f.eks. indbefatter et eller flere databehandlingsapparater, en eller flere lagerenheder og for-15 skellige typer af ydre enheder, såsom magnetbåndslagerenheder, pladelagerenheder, kortiæseudstyr og lignende.
Der kendes forskellige fremgangsmåder og apparater til at sammenkoble et sådant system. Disse kendte systemer strækker sig fra dem, der har fælles databusveje, til dem, der har specielle veje 20 mellem forskellige apparater. Sådanne systemer kan også indbefatte en kapacitet for enten synkron eller asynkron drift i kombination med bustypen. Nogle sådanne systemer kræver uafhængigt af den måde, hvorpå disse systemer er forbundet eller drives, at databehandlingsapparatet styrer en hvilken som helst sådan dataoverførsel på 25 bussen, selv om overførslen f.eks. kan være mellem andre apparater end databehandlingsapparatet.
En sådan strukturplan er vist i USA patentskrift nr. 4.000.485 med benævnelsen "Data Processing System Providing Locked Operation of Shared Resources", Dette patentskrift beskriver et databehand-30 lingsanlæg, hvor den fælles ressource er hovedlageret, som er forbundet med en fælles bus, over hvilken alle overførsler til og fra apparatkontrolenheder og centralenheden sker. Hvis centralenheden i dette system ønsker at udføre en læse-modificere-skriveoperation på indholdet i pladsen i hovedlageret, låser databehandlingsanlægget 35 først hovedlageret, som indeholder pladsen, der skal læses og opdateres, så at den flerhed af fælles buscykler, som er påkrævet til først at læse en lagerplads og derefter skrive den tilbage, kan udføres uafbrudt, uden at en anden centralenhed eller apparatkontrol-enhed er i stand til at udføre en anden låseoperation, før den
DK 165529B
2 første låseoperation er blevet fuldført. Selv om den fælles bus i dette system er en asynkron bus (et hvilket som helst apparat, som ønsker at foretage en overførsel over den fælles bus, kan asynkront kræve brug af bussen på et hvilket som helst tidspunkt, hvis bussen 5 ikke allerede er i brug), er der en prioritetsløser, således at låsemekanismen i tilslutning til den fælles ressource ikke behøver at kunne behandle det tilfælde, hvor den fælles ressource låses af en første forespørger, og en anden låseforespørgsel foretages asynkront fra en anden forespørger, som ønsker at udføre en låse-10 operation på den fælles ressource.
Med udviklingen af dobbeltportlagre er det blevet muligt, at flere brugere kan foretage samtidige forespørgsler for at udføre en låseoperation på den fælles ressource. Hvis f.eks. én port er forbundet med den fælles bus, som forbinder apparatkontrol enheder med 15 hovedlageret, og den anden port er forbundet med centralenheden, er det muligt, at en apparatkontrol enhed kan forsøge at udføre en låseoperation på hovedlageret, samtidig med at det centrale behandlingsapparat ønsker at udføre en låseoperation. Det, der behøves, er derfor en låsemekanisme for en fælles ressource, hvor konkurrerende 20 asynkrone forespørgsler fra flere forespørgere om at låse eller ophæve låsning af den fælles ressource kan håndteres.
Formålet med den foreliggende opfindelse er at tilvejebringe en forbedret låsemekanisme for fælles ressourcer, hvor flere asynkrone forespørgsler om låsning af en fælles ressource kan løses. Det er 25 yderligere opfindelsens formål at tilvejebringe en lavprislåsemekanisme for fælles ressourcer.
Opfindelsen angår således et apparat af den i krav Vs indledning angivne art, hvilket apparat er ejendommeligt ved det i samme kravs kendetegnende del angivne.
30 En forståelse af ovenstående formål og fordele ved opfindelsen vil fås under henvisning til den følgende beskrivelse i forbindelse med tegningen.
De ovenstående formål med opfindelsen opnås ved tilvejebringelse af et låseapparat i et databehandlingsanlæg omfattende et 35 antal enheder, som er sammenkoblet ved hjælp af en fælles bus for at overføre information mellem hvilke som helst to af flerheden af enheder. Flerheden af enheder indbefatter mindst en første enhed af en første type og andre enheder af en anden type, hvor den første enhed er en ressource, som kan deles med mindst den anden enhed og en
DK 165529B
3 yderligere anden enhed, og hvor den anden enhed og en yderligere anden enhed arbejder asynkront med hensyn til hinanden, og begge er i stand til at foretage forespørgsler om uafbrudt brug af den første enhed. Låseapparatet omfatter et første lagerorgan til lagring af et 5 låsesignal fra den anden enhed eller en hvilken som helst yderligere anden enhed blandt flerheden af enheder, hvilket låsesignal indikerer, at den anden eller yderligere anden enhed, som afgiver låsesignalet, ønsker uafbrudt tilgang til den første enhed. Et andet lagerorgan findes for lagring af en indikation af, at den første 10 (yderligere) enhed ønsker uafbrudt tilgang til den første enhed. Der findes et tredie lagerorgan, som lagrer indikationen af det andet lagerorgan på det tidspunkt, hvor den anden enhed præsenterer låsesignalet. Der findes yderligere låselogik, som er ansvarlig for indikationen af det første lagerorgan og det tredie lagerorgan til 15 frembringelse af en positiv kvittering til den anden enhed om, når den anden enhed anmoder om uafbrudt tilgang til den fælles (første) enhed, at hverken det første lagerorgan eller det tredie lagerorgan indikerer, at uafbrudt tilgang til den fælles ressource er blevet forlangt. Den samme logik frembringer også et negativt svar til den 20 anden enhed, hvis, når den anden enhed præsenterer låsesignalet, enten det første lagerorgan eller det tredie lagerorgan indikerer, at uafbrudt tilgang til den fælles ressource er blevet forlangt. Der findes også logik til at lagre status af låsesignalet i det første lagerorgan, når som helst en positiv kvittering frembringes til en 25 hvilken som helst af flerheden af enheder på den fælles bus. Yderligere logik forefindes, som reagerer på et låse-opsignal, således at det første lagerorgan vil blive ti 1bagestillet, hvis en positiv kvittering frembringes af den første enhed i afhængighed af et låse-opsignal, som præsenteres af en hvilken som helst blandt 30 flerheden af andre enheder på den fælles bus. Der findes endvidere logik, som forhindrer den tredie enhed i at opnå tilgang til den første enhed, hvis det første lagerorgan indikerer, at en enhed blandt flerheden af enheder ønsker uafbrudt tilgang til den fælles (første) enhed. Yderligere organer forefindes til til bagesti Π i ng af 35 det andet lagerorgan, når den anden enhed har afsluttet operationen, som kræver uafbrudt tilgang til den fælles enhed.
Den måde, hvorpå apparatet ifølge den foreliggende opfindelse er opbygget, og dets virkemåde, vil fremgå af den følgende detaljerede beskrivelse under henvisning til tegningen, hvor ens
DK 165529 B
4 henvisningstal betegner ens elementer i de forskellige figurer. På tegningen viser: fig. 1 et generelt blokdiagram over ét databehandlingsanlæg, som indeholder låselogikken ifølge den foreliggende 5 opfindelse, fig. 2-6 formatet af forskellig information-, som overføres over den fælles bus i databehandlingsanlægget i fig.
1, fig. 7 et tidsdiagram over funktionen af bussen i databe-10 handlingsanlægget i fig. 1, fig. 8 et logikdiagram over låselogikken ifølge den foreliggende opfindelse, fig. 9 et tidsdiagram over en eksempelvis funktion af låselogikken i fig. 8 og 15 fig. 10 et blokdiagram over mi krooperationerne, som udføres af centralenheden i databehandlingsanlægget i fig. 1 ved udførelse af en låselageroperation med anvendelse af låselogikken i fig. 8.
20 Databehandl inasanlæa indeholdende låseloaikken
Fig. 1 viser den foretrukne udførelsesform for et databehandlingsanlæg, som omfatter en centralenhed/!ager-plade 100, lagermodul 1 101, lagermodul 2 102, en første ind/ud- kontrolenhed 103 med et 25 tilknyttet ind/ud- apparat 105 og en anden ind/ud- kontrolenhed 104 med et tilknyttet ind/ud-apparat 106 og en fælles bus 107. I fig. 1 er de tyndere linier, som forbinder de forskellige komponenter, styrelinier, og de tykkere linier, som forbinder komponenterne, er data/adresse-linier.
30 Centralenhed/!ager-pladen 100 er en enkelt trykt kredsløbspla de, som er forbundet med den fælles bus 107. Centralenhed/1agerpladen 100 indeholder både centralenhedslogikken 108 og lagerkontrolenhedslogikken 109. Der er ikke noget hovedlager indeholdt i centralenhed/1ager-pladen 100. Hovedlageret til at indeholde data-35 og programmel instruktioner er tilvejebragt ved at forbinde et eller flere lagermoduler, såsom lagermodul 1 101 og lagermodul 2 102, med centralenhed/1ager-pladen 100. Alle anmodninger om tilgang til hovedlageret indeholdt i lagermodul 1 og lag'ermodul 2, som kan være fra enten centralenheden eller en ind/ud-kontrol enhed, går via
DK 165529B
5 lagerkontrolenhedslogikken 109. Lagerkontrolenhedslogikken 109 har dofabel tport. Den ene port er forbundet med den fælles bus 107, så at lageranmodninger og dataoverførsler kan ske ved hjælp af enten ind/ud-kontrolenheden 103 eller ind/ud-kontrolenheden 104 over den 5 fælles bus 107. Anmodninger om lager fra centralenhedslogikken 108 for data- eller programmel instruktioner finder normalt sted direkte mellem centralenhedslogikken 108 via den anden port i lagerkontrolenhedslogikken 109 uden at gå via den fælles bus 107.
I den foretrukne udførelsesform kan hvert lagermodul 101 og 102 10 indeholde f.eks. 256K (1K * 1024) ord af hovedlager. I den foretrukne udførelsesform indeholder hvert lagerord 16 databit, der også kan adresseres som to 8-bit bytes. I den foretrukne udførelsesform består lagereret af MOS hal vi ederchips, hvor hver plads i lageret rent faktisk indeholder 22 informationsbit. Seksten af 15 bittene anvendes til de 16 bit databit i ordet, og 6 bit anvendes til fejldetektering og -korrektion (EDAC). Hvert lagermodul er en separat fysisk trykt kredsløbsplade, som indeholder 88 MOS lagerchips med 64K bit hver. Lagerkontrolenhedslogikken 109 består af en låselogik 110, en prioritetsløser 111 og en genopfriskningslogik 20 112. Endvidere indeholder lagerkontrolenhedslogikken 109 tidssty rings-,fejldetekterings- og korrektionslogik og chipadresseringslogik, som ikke er vist i fig. 1.
Låselogikken 110 er tilvejebragt for at låse hovedlageret under kommando af enten centralenheden eller en ind/ud-kontrolenhed imod, 25 at en anden låseoperation udføres af enten en ind/ud-kontrolenhed eller centralenheden, indtil hovedlageret er låst op. Prioritetsløserlogikken 111 er tilvejebragt for at opløse konkurrerende anmodninger om tilgang til hovedlageret. Prioritet skal opløses mellem hovedlagertilgangsanmodninger hidrørende: fra centralenheden 108, 30 fra en i nd/ud-kontrol enhed 103 eller 104 via den fælles bus 107 eller fra genopfriskningslogikken 112.
Prioritetsløserlogikken 111 er således udformet, at der hver gang hovedlageret bliver tilgængeligt, sker en opløsningscyklus, som undersøger alle tre mulige kilder for tilgangsanmodninger og vil 35 tildele hovedlageret først til en anmodning fra genopfriskningslogikken 112. Hvis der ikke findes nogen opfriskningsanmodning, vil den tildele hovedlageret til en anmodning fra den fælles bus 107, som hidrørte fra en ind/ud-kontrolenhed. Hvis der hverken findes en genopfriskningsanmod eller en busanmodning, vil den tildele
DK 165529 B
6 hovedlageret til centralenheden 108, hvis den foretager en anmodning. Virkemåden af prioritetsløserlogikken 111 er beskrevet mere detaljeret i USA patent 4600992 med benævnelsen "Priority Resolver With Lowest Priority Level Having Shortest Logic Path", hvortil der 5 henvises. Genopfriskningslogikken 112 er tilvejebragt for periodisk at udføre en genopfriskning af dataene, som er lagret i de flygtige MOS lagerchips i lagermodul 1 101 og lagermodul 2 102.
Busanmodninas- oa svarcvkler 10
Den fælles bus 107 i systemet i den foretrukne udførelsesform tilvejebringer en kommunikationsvej mellem to enheder i systemet.
Den fælles bus 107 er asynkron i udførelse, hvilket tillader enheder med forskellige hastigheder, som er forbundet med bussen, at arbejde 15 effektivt i det samme system. Udformningen af bussen ifølge den foreliggende opfindelse tillader kommunikationer indbefattende lageroverførsler, afbrydelser, data-,status- og kommandooverførsler.
For yderligere beskrivelse af bussen og grænsefladelogikken i et sådant system henvises der til USA patentskrift nr. 3.993.981 20 udstedt den 23. november 1976 og USA patentskrift nr. 4.236.203 udstedt den 25. november 1980.
Den fælles bus 107 tillader hvilke som helst to enheder at kommunikere med hinanden på et givet tidspunkt via fælles signalveje. Enhver enhed, som ønsker at kommunikere, anmoder om en buscyk-25 lus. Når denne buscyklus bliver tildelt, bliver denne enhed masteren og kan adressere en hvilken som helst anden enhed i systemet som slaven. Nogle typer af busudveksling kræver en svarcyklus (f.eks. en enkelt fetch lagerlæsning). I tilfælde hvor en svarcyklus kræves, antager anmoderen masterrollen, indikerer at et svar er krævet og 30 identificerer sig selv med slaven. Når den krævede information bliver tilgængelig (afhængigt af slavesvartid), antager slaven derpå masterrollen og initierer en overførsel til den anmodende enhed.
Dette afslutter den enkelte fetchudveksling, som har taget to buscykler i dette tilfælde. Mellemliggende tid på bussen mellem disse 35 to cykler (anmodningscyklen og svarcyklen) kan anvendes til anden systemtrafik, der ikke involverer disse to enheder.
Bussiqnaler
En master kan adressere en hvilken som helst anden enhed på
DK 165529B
7 bussen som en slave. Den gør dette ved at placere slaveadressen på adresseledningerne. Der kan f.eks. være 24 adresseledninger, som kan have den ene eller den anden af to fortolkninger afhængigt af tilstanden af en ledsagende styreledning kaldet lagerreferencesig-5 nalet (BSMREF-). Hvis lagerreferencesignalet er et binært NUL, gælder formatet i fig. 2 for adresseledningerne, hvor den fireogtyvende ledning er den mindst betydende bit. Det skal bemærkes, at som anvendt i den foreliggende beskrivelse anvendes udtrykkene binært NUL og binært ET henholdsvis til at betegne den lave og høje ti 1 -10 stand af elektriske signaler. Hvis lagerreferencesignalet er et binært ET, gælder formatet for disse 24 bit som vist i fig. 3. Når lageret adresseres, tillader bussen i virkeligheden, at op til 2 i 24 potens bytes adresseres direkte i lageret. Når enheder overfører kontrolinformation, data eller afbrydelser, adresserer de hveranden 15 med kanalnummer. Kanalnummeret tillader op til 2 i 10 kanaler at blive adresseret af bussen. Sammen med kanal nummeret overføres en 6 bit funktionskode, som specificerer, hvilken af op til 2 i 6'te mulige funktioner denne overførsel indebærer.
Når en master kræver en svarcyklus fra slaven, indikerer den 20 dette overfor slaven ved én tilstand (læseordre) af en styreledning betegnet MSWRIT- (den anden tilstand af denne kræver ikke et svar, dvs. en skriveordre). I dette tilfælde tilvejebringer masteren sin egen identitet overfor slaven ved hjælp af et kanalnummer. Dataledningerne i modsætning til busadresseledningerne er kodet i overens-25 stemmel se med formatet i fig. 4 for at indikere masterens identitet, når et svar kræves fra slaven. Svarcyklen føres til anmoderen ved en ikke-lagerreferenceoverførsel. Styreledningen angivet som en anden halv buscyklys (BSSHBC-) aktiveres for at angive, at dette er den forventede cyklus (sammenlignet med en ikke krævet overførsel fra en 30 anden enhed). Når en master kræver en dobbelt hent fra en slave, angiver den dette overfor slaven ved én tilstand af en styreledning betegnet BSDBPL- (hvis anden tilstand ikke kræver en dobbelt hent, dvs. en enkelt hent). Når slaven svarer på masterens anmodning, anvendes én tilstand af den samme styreledning (BSDBPL-) til at 35 indikere overfor den anmodende enhed, at denne svarcyklus er den første svarcyklus af to svarcykler (hvor den anden tilstand angiver, at dette er den sidste svarcyklus af en dobbelt hentoperation).
Et fordelt "tie-breaking" net tilvejebringer funktionen at tildele buscykler og løse samtidige anmodninger om brug af bussen.
DK 165529 B
8
For størstedelens vedkommende tildeles prioritet på grundlag af fysisk position på bussen, idet den højeste prioritet gives til den første enhed på bussen. Logikken til udførelse af tie-breaking funktionen er fordelt blandt alle enheder, der er forbundet med 5 bussen og er fuldstændigt beskrevet i USA patentskrift nr. 4.030.075, og en forbedring deraf er beskrevet i USA patentskrift nr. 4.096.569 til begge, hvilke der henvises. I et typisk system tildeles lageret den højeste prioritet, og det centrale behandlingsapparat tildeles den laveste prioritet, idet de andre enheder 10 placeres på grundlag af deres funktionskrav. I den foretrukne udførelsesform for systemet, som er vist i fig. 1, er både centralenhedslogikken og lagerkontrolenheden på én trykt kredsløbsplade, som er anbragt ved enden af den fælles bus med høj prioritet, og prioritetslogikken er blevet forbedret for at tillade, at central-15 enheden tildeles den laveste prioritet som beskrevet i USA patent 4559595 med benævnelsen "Distributed Priority Network Logic for Allowing a Low Priority Unit to Reside in a High Priority Position", til hvilket der henvises.
Under henvisning til fig. 1 indeholder et typisk system ifølge 20 den foreliggende opfindelse således en fieri ini et fælles bus 107, som er sammenkoblet med en centralenhed, et lager og et eller flere ind/ ud-apparater og kontrolenheder. Lagerkontrolenheden 109 har således den højeste prioritet, og centralenhedslogikken 108 har den laveste prioritet, idet ind/ud-kontrol enhederne 103 og 104 har 25 mellemliggende prioriteter. Endvidere indbefatter enhver af disse enheder adresselogik til genkendelse af sit kanal nummer eller sin lageradresse. Adresselogikken for en typisk grundlæggende apparatkontrolenhed er også omhandlet i USA patentskrift nr. 4.030.075.
Et kanal nummer vil findes for hvert endepunkt i et bestemt sy-30 stem med undtagelse af behandlingselementer af lagertypen, som er identificeret ved lageradressen. Et kanal nummer er tildelt for hvert sådant apparat. Fuld duplexapparater såvel som halv duplexapparater anvender to kanal numre. Apparater med kun udlæsning eller kun indlæsning anvender kun et kanalnummer hvert. Kanalnumre kan let 35 varieres, og følgelig kan en eller flere hexadecimale drejeomskiftere (tommelfingerhjulsomskifter) anvendes, for hver sådan enhed, der er forbundet med bussen for at angive eller indstille enhedens adresse. Når et system er udformet, kan kanal nummeret således tildeles for den bestemte enhed, der er forbundet med
DK 165529B
9 bussen, som det er passende for det pågældende system. Enheder med flere indgangs-/udgangs-(ind/ud) porte vil i almindelighed kræve en blok af efter hinanden følgende kanal numre. Som eksempel kan en enhed med fire porte anvende drejeomskiftere for at tildele de 5 øverste 7 bit af et kanal nummer, og den kan anvende de 3 bit med lavere orden til at bestemme portnummeret og til at skelne indgangsporte fra udgangsporte. Kanalnummeret for slaveenheden vil optræde på adressebussen for alle ikke-1ageroverførsler som vist i fig. 3. Hver enhed sammenligner dette nummer med sit eget internt 10 lagrede nummer (internt lagret ved hjælp af drejeomskifterne). Enheden, som får en sammenligning, er pr. definition slaven og skal svare på denne cyklus. I almindelighed vil to punkter i et enkelt system ikke blive tildelt det samme kanal nummer. Som vist i fig. 3 kan en specifik bus- eller ind/ud-funktion udføres som angivet ved 15 bit 18 til 23 af busadresseledningerne for i kke-1 ageroverførsler. Funktionskoder kan angive udgangs-eller indgangsoperationer. Alle ulige funktionskoder betegner udgangsoverførsler (skrive), medens alle lige funktionskoder betegner indgangsoverførselsanmodninger (læse). Eksempelvis kan en funktionskode 00 (basis 16) anvendes til 20 at angive en enkelt hent lagerlæsning, og en funktionskode 20 (basis 16) kan anvendes til at angive en dobbelt hentlæseoperation. Det centrale behandlingsapparat undersøger den mindst betydende bit 23 af 6 bit funktionskodefeltet for en indgangs/ udgangs-ordre og anvender en busledning til at angive retningen.
25 Der er forskellige udgangs- og indgangsfunktioner. En af ud gangsfunktionerne er en ordre, hvormed en datamængde, f.eks. 16 bit, lades i kanalen fra bussen. Betydningerne af de individuelle databit er komponentspecifikke, men datamængden antages at betyde dataene, der skal lagres, sendes, overføres osv. afhængigt af den specifikke 30 komponent funktionalitet. En anden sådan udgangsfunktion er en ordre, hvormed f.eks. en 24 bit mængde'lades i et kanal adresseregister (ikke vist i figurerne). Adressen er en 1 agerbyteadresse og henviser til startpladsen i lageret, hvor kanalen vil begynde indlæsning eller udlæsning af data. Forskellige andre udgangsfunktioner 35 indbefatter en udlæsningsområdekommando, som bestemmer størrelsen af lagerbufferen, der er tildelt kanalen for en specifik overførsel, en udlæsningsstyrekommando, som ved hjælp af sine individuelle bit forårsager specifikke svar, udlæsningsopgavefunktioner, såsom skrivekommandoer, udgangskonfiguration, som er en kommando til
DK 165529 B
10 indikering af funktioner, såsom terminalhastighed, kortlæsemåde osv. og udlæsningsafbrydestyring, som er en kommando, der lader f.eks. et 16 bit ord i kanalen med formatet som vist i fig. 5. De første 10 bit indikerer det centrale behandlingsapparats kanalnummer, og bit 5 10 til 15 indikerer afbrydeniveauet. Efter afbrydelse returneres det centrale behandlingsapparats kanal nummer til adressebussen, medens afbrydeniveauet returneres til databussen. Indgangsfunktionerne indbefatter tilsvarende funktioner som udgangsfunktionerne med undtagelse af, at indgangsdataene i dette tilfælde overføres fra 10 apparatet til det centrale behandlingsapparat via bussen.
Som tidligere diskuteret tildeles et separat apparatidentifi-kationsnummer til hver forskellig apparattype, som er forbundet med bussen. Dette nummer præsenteres på bussen som svar på indgangsfunktionskommandoen med betegnelsen indgangsapparatidentifikation.
15 Dette nummer placeres på databussen i formatet vist i fig. 6. For nemheds skyld er nummeret opdelt i 13 bit, som identificerer apparatet (bit 0 til 12), og 3 bit, som identificerer en vis funktionalitet af apparatet (bit 13 til 15) efter behov.
20 Bustidsstvrina
Fig. 7 viser bustidsstyrediagrammet og skal forklares mere specifikt i det følgende. I almindelighed foregår tidsstyringen som følger. Tidsstyringen gælder for alle overførsler fra en masterenhed til en slaveenhed, der er forbundet med bussen. Hastigheden, hvormed 25 overførslen kan ske, er afhængig af systemets udformning, dvs. jo flere enheder der er forbundet med bussen, og jo længere bussen er, desto længere tager det at kommunikere på bussen på grund af udbredelsesforsinkelser. På den anden side aftager svartiden, når der er en mindre mængde af enheder på bussen. Bustidsstyringen er følgelig 30 sandt asynkron i sin art. En master, som ønsker en buscyklus, foretager en busanmodning. Signalet BSREQT- er fælles for alle enheder på bussen, og hvis det er et binært NUL, angiver det, at mindst én enhed anmoder om en buscyklus. Når en buscyklus er tildelt, bliver signalet BSDCNN- et binært NUL, hvilket angiver, at en 35 tie-breaking funktion er afsluttet, og at en specifik master nu har kontrol over bussen. På det tidspunkt, hvor signalet BSDCNN-bliver et binært NUL, tilfører masteren informationen, der skal overføres til bussen. Hver enhed på bussen frembringer en intern strobe (BSDCND-) ud fra signalet BSDCNN-. Stroben (BSDCND-) forsinkes
DK 165529B
11 f.eks. ca. 60 ns fra modtagelsen af den binære NULtilstand af BSDCNN- signalet. Når forsinkelsen er afsluttet i slaven, vil der være blevet taget fornødent hensyn til busudbredelsestidsvariationerne, og hver slaveenhed vil have været i stand til at genkende sin 5 adresse {lageradresse eller kanalnummer). Den adresserede slave kan nu udføre et af disse svar enten et godkendelses-(ACK), et ikke-godkendelses-(NAK) eller et vente (WAIT) signal eller mere specifikt et BSACKR-, et BSNAKR- eller et BSWAIT- signal. Svaret sendes ud på bussen og tjener som et signal til masteren om, at slaven har 10 anerkendt den krævede aktion. Styreledningerne returnerer derpå til den binære ET-tiIstand i rækkefølgen som vist i fig. 7. Bus handshake er således fuldt asynkron, og hver overgang vil kun ske, når den forudgående overgang er blevet modtaget. Individuelle enheder kan derfor tage forskellige tidslængder mellem stroben og ACK osv., 15 idet overgangen afhænger af deres interne funktional itet. En bustidsspærrefunktion eksisterer for at forhindre uforklarlige blokeringer (hang-ups), som kunne forekomme, hvis ingen enhed på bussen svarer på en anmodning.
Information, som overføres over bussen, kan f.eks. indbefatte 20 50 signaler eller bit, der kan opdeles som følger: 24 adressebit, 16 databit, 5 kontrolbit og 5 integritetsbit. Disse forskellige signaler vil blive omtalt nærmere nedenfor.
Busprioritet 25 Den fælles busanmodnings tie-breakingfunktion er at løse sam tidige anmodninger fra forskellige enheder om service og tildeling af buscykler på grundlag af et positionsprioritetssystem. Som angivet foran har lageret den højeste prioritet, og det centrale behandlingsapparat har den laveste prioritet, selv om de begge 30 fysisk befinder sig ved den ene ende af den fælles bus 107. Andre enheder indtager positioner langs bussen og har prioritet, som vokser i forhold til deres nærhed af lagerenden af bussen. Prioritetslogikken er indbefattet i hver af enhederne, der direkte er forbundet med bussen for at udføre tie-breakingfunktionen. Hver 35 sådan enheds prioritetsnetværk indbefatter en tildelings flip-flop.
På et hvilket som helst tidspunkt kan kun én specifik tildelings flip-flop sættes, og denne enhed er pr. definition masteren for den specifikke buscyklus. En hvilken som helst enhed kan på et hvilket som helst tidspunkt bestemme, at den behøver en buscyklus og sætter
DK 165529 B
12 sin bruger flip-flop. På et hvilket som helst tidspunkt kan mange bruger flip-flop derfor være sat, idet de hver repræsenterer en fremtidig buscyklus. Endvidere indeholder hver enhed på bussen en anmodnings flip-flop. Når alle enheder betragtes sammen, kan anmod-5 nings flip-flop'ene betragtes som et anmodningsregister. Det er udgangssignalerne fra dette register, som forsyner tie-breakingnettet, der tjener til kun at sætte én tildelings flip-flop, uanset hvor mange anmodninger, der foreligger. Hvis der mere specifikt angivet ikke var nogen ventende brugere, ville ingen anmodnings 10 flip-flop være sat. Den første bruger flip-flop, der sættes, ville bevirke, at dens anmodnings flip-flop sættes. Dette ville igen efter en kort forsinkelse som beskrevet nedenfor hindre andre apparater i at sætte deres anmodnings flip-flop. Det der sker er således, at der tages et snap-shot af alle bruger flip-flop for det givne tidsrum 15 (forsinkelsesperioden). Resultatet er, at et antal anmodnings flip-flop kan sættes under denne forsinkelsesperiode afhængigt af deres ankomst. For at tillade at anmodnings flip-flop'enes udgangssignaler bliver stabiliseret, indbefatter hver enhed en sådan forsinkelse for at sikre, at denne stabilisering er sket. En bestemt 20 tildelings flip-flop bliver sat, hvis enheden hørende dertil har haft sin anmodnings flip-flop sat, og forsinkelsestiden er udløbet, og ingen enhed med højere prioritet ønsker buscyklen. Et strobe-signal bliver derefter frembragt efter en anden forsinkelsesperiode, og endelig bliver tildelings flip-flop'en slettet (tilbagestillet), 25 når masteren modtager et ACK, NAK eller WAIT signal fra slaveenheden.
Som angivet ovenfor er der tre mulige slavesvar ACK, WAIT eller NAK signalet. Endvidere er der en fjerde tilstand, i hvilken der ikke er noget svar i det hele taget. I det tilfælde, hvor ingen 30 enhed på bussen anerkender overførslen som adresseret tilstand, vil der ikke fremkomme noget svar. En tidsspærrefunktion vil derpå finde sted, og et NAK signal vil frembringes for derved at slette bussen.
ET ACK signal vil blive frembragt, hvis slaven er i stand til at akceptere busoverførslen fra masteren og ønsker at gøre dette. WAIT 35 svaret frembringes af slaven, hvis slaven midlertidigt er optaget og ikke kan akceptere en overførsel på dette tidspunkt. Efter modtagelse af WAIT signalet vil masteren prøve cyklen igen ved den næste buscyklus, som er tildelt den, og fortsætte med at gøre dette, indtil det er vellykket. Nogle af de tilstande, som forårsager et
DK 165529 B
13 WAIT svar fra en slave, når det centrale behandlingsapparat er masteren, er: hvis kontrolenheden venter på et svar fra lager, eller hvis kontrolenheden endnu ikke har behandlet den tidligere ind-gangs/udgangskommando, eller når der er tale om den foreliggende 5 opfindelse, når kontrolenheden er masteren og forsøger at låse lageret, og lageret allerede er låst af en anden kontrolenhed eller det centrale behandlingsapparat. NAK signalet, som frembringes af slaven, betyder, at den ikke kan akceptere en overførsel på dette tidspunkt. Efter modtagelse af et NAK signal vil en masterenhed ikke 10 umiddelbart prøve igen, men vil foretage en bestemt handling afhæn-gigt af mastertypen.
Som generelt angivet ovenfor er der grundlæggende tidsstyresignaler på bussen, som udfører hand-shaking funktionen. Disse fem signaler som angivet ovenfor er busanmodningssignal (BSREQT-), som i 15 tilfælde af et binært NUL indikerer, at en eller flere enheder på bussen har anmodet om buscyklen. Datacyklus nusignalet (BSDCNN-), som i tilfælde af et binært NUL indikerer, at en bestemt master udfører en busoverførsel og har placeret information på bussen for anvendelse af en bestemt slave; ACK signalet (BSACKR-), som er et 20 signal, der frembringes af slaven til masteren og indikerer, at slaven akcepterer denne overførsel ved at gøre dette signal til et binært NUL; NAK signalet (BSNAKR-), som er et signal frembragt af slaven til masteren og angiver overfor masteren, når det er et binært NUL, at slaven afslår denne overførsel, og WAIT signalet 25 (BSWAIT-), som er et signal frembragt af slaven til masteren, og som angiver, når det er et binært NUL, at slaven udsætter afgørelsen om overførslen.
Foruden og som angivet foran kan der være så mange som 50 informationssignaler, der overføres som informationsindholdet i hver 30 buscyklus. Disse signaler er gyldige for anvendelse af slaven på forflanken af strobesignalet BSDCND- i fig. 7. Hele den foregående diskussion er angivet som eksempel, og det vil forstås, at antallet af bit kan ændres ved forskellige funktioner. Der kan således være tilvejebragt 16 ledninger eller bit for dataene. Der findes 24 35 ledninger for adressen. Der er tilvejebragt én bit for lagerrefe-rencesignalet (BSMREF-), som i tilfælde af et binært NUL indikerer, at adresseledningerne indeholder en lageradresse. Når lagerreferen-cesignalet er et binært ET, indikerer det, at adresseledningerne indeholder en kanaladresse og en funktionskode som angivet i fig. 3.
DK 165529 B
14
Der findes også et byte-signal (BSBYTE-), som indikerer, når det er et binært NUL, at den løbende overførsel er en byte overførsel og ikke en ordoverførsel, idet et ord typisk omfatter to bytes. Der er også et skrivesignal (BSWRIT-), som indikerer, når det er et binært 5 ET, at slaven anmodes om at levere information til masteren. En separat busoverførsel vil tilvejebringe denne information. Der er yderligere tilvejebragt en anden halv buscyklus (BSSHBC-), som anvendes af masteren til at indikere overfor slaven, at dette er den information, der tidligere er anmodet om. Fra det tidspunkt, hvor et 10 par enheder på bussen har startet en læseoperation som angivet ved et signal (BSWRIT-), indtil den anden cyklus forekommer og afslutter overførslen af dataene, der er udlæst fra lageret (angivet ved BSSHBC-), kan begge enheder være optaget til alle andre enheder på bussen.
15
Busi åse!aoeroperation
Foruden forskellige fejl- og paritetssignaler findes der også et låsesignal blandt de 50 informationssignaler på bussen. Låsesignalet (BSLOCK-) anvendes til at forårsage, at der sker en låseope-20 ration. En lagerlåseoperation er en fTerperioders busoverførsel, hvorved en enhed kan læse eller skrive et ord eller flerordsområde i lageret, uden at nogen anden enhed på bussen eller som forklaret nedenfor centralenheden er i stand til at bryde ind i operationen med en anden låseoperation. Dette letter anvendelsen af lagerpladser 25 som flag til at kommunikere mellem asynkront behandlende enheder i systemet. Virkningen af låseoperationen er at udvide en optaget tilstand udover varigheden af lagercyklen for visse operationstyper.
Andre enheder på bussen, som forsøger at initiere låsesignaler, før den sidste cyklus er afsluttet, vil modtage et NAK svar. Lageret vil 30 imidlertid stadig svare på andre (ikke-låste) lageranmodninger.
Et eksempel på låseoperationen er læse-modificere-skrivecyklen, hvis tre buscykler er som følger. Under den første buscyklus (tid A til F i fig. 9) indeholder adressebussen lageradressen, databussen indeholder kanalnummeret for oprindelsesenheden, signalet BSWRIT- er 35 et binært NUL, som angiver, at et svar kræves, signalet BSL0CK- er et binært NUL, som angiver, at dette er en låst operation, og endvidere er BSMREF- signalet et binært ET. Under den anden buscyklus i læse-modificer-skriveoperationen (tiden G til K i fig. 9) indeholder adressebussen kanal nummeret for oprindelsesenheden,
DK 165529 B
15 databussen indeholder lagerdataene, BSSHBC- signalet er et binært NUL, som betegner et læsesvar, og BSMREF- signalet er et binært ET.
Under den tredie buscyklus (tiden L til Pi fig. 9) indeholder adressebussen lageradressen, databussen indeholder lagerdataene, 5 BSLOCK- signalet er et binært NUL, som angiver fuldførelsen af læse-modificer-skriveoperationen, og BSMREF- signalet er et binært NUL, og BSSHBC- signalet er et binært NUL. Endvidere er BSWRIT-signalet et binært ET. Det skal bemærkes, at den ovenstående forklaring er generel, og de individuelle signaler er eventuelt kun i 10 den beskrevne tilstand i en del af buscyklen som vist i fig. 9. Som i alle andre operationer kan den mellemliggende tid på bussen mellem de tre buscykler af læse-modificer-skriveoperationen anvendes af andre enheder, som ikke er involveret i overførslen. Desuden kan centralenheden have tilgang til lageret, så længe den ikke forsøger 15 en lager!åseoperation.
Foruden de andre styresignaler kan der på bussen også være tilvejebragt bussiette-(BSMCLR-) signalet, som normalt er et binært ET, og som bliver et binært NUL, når en mastersletteoperation udføres, såsom under en opstartsekvens af systemet.
20
Busori ori tetsnettidsstvri na
Tidsstyrediagrammet i fig. 7 skal nu forklares mere specifikt i detaljer med hensyn til adresselogikkredsløbet for lageret og den centrale behandlingsenhed.
25 Under henvisning til tidsstyrediagrammet i fig. 7 er der i hver buscyklus tre identificerbare dele, nærmere angivet perioden (7-A til 7-C), i hvilken det anmodende apparat med den højeste prioritet vinder bussen, perioden (7-C til 7-E), i hvilken masterenheden kalder en slaveenhed, og perioden (7-E til 7-G), i hvilken slaven sva-30 rer. Når bussen venter, er busanmodningssignalet (BSREQT-) et binært ET. Busanmodningssignalets i negativ retning gående flanke på tidspunktet 7-A starter en prioritetsnetcyklus. Der tillades en asynkronforsinkelse i systemet for prioritetsnettet at stabiliseres (til tidspunktet 7-B) og til valg af en masterbruger af bussen. Det 35 næste signal på bussen er BSDCNN- eller datacyklus nusignalet.
BSDCNN- signalets overgang til et binært NUL til tidspunktet 7-C betyder, at anvendelse af bussen er blevet tildelt en masterenhed.
Den anden fase af busoperation derefter betyder, at masteren er blevet valgt og nu frit kan overføre information på data-,adresse-og
DK 165529 B
16 styreledningerne i den fælles bus 107 til slaveenheden, som masteren således udpeger.
Slaveenheden forbereder at initiere den tredie fase af busoperationen, som begynder ved den i negativ retning gående flanke af 5 strobesignalet BSDCND-. Strobesignalet forsinkes f.eks. 60 ns fra den i negativ retning gående flanke af BSDCNN- signalet af en forsinkelseslinie 824 i fig. 8 i busprioritetsløsningslogikken. Efter forekomsten af den i negativ retning gående flanke af BSDCND-signalet til tidspunktet 7-D kan slaveenheden nu teste for at se, om 10 dette er dens adresse, og om den kaldes for at starte det beslutningstagende behandlingsapparat for det svar, der skal frembringes.
Dette vil typisk forårsage, at et kvitteringssignal (BSACKR-) frembringes af slaveenheden, eller i de utypiske tilfælde kan der som beskrevet frembringes et BSNAKR- eller BSWAIT- signal eller slet 15 ikke noget svar i det hele taget (i tilfælde af en ikke-eksisterende slave). Den i negativ retning gående flanke af kvitteringssignalet til tidspunktet 7-E, når det modtages af masterenheden, bringer masterens BSDCNN-signal til at gå mod binært ET til tidspunktet 7-F. Strobesignalet returnerer til binær ET-tiIstanden til tidspunktet 20 7-G, som er en forsinkelse tilvejebragt af forsinkelseslinien 824 i fig. 8 fra tidspunktet 7-F. I den tredie fase af busoperationen bliver dataene og adressen på bussen således lagret af slaveenheden, og buscyklen vil begynde at afbryde. Afslutningen af cyklen, dvs. når BSDCNN- går mod binært ET, tillader dynamisk en anden priori -25 tetsnetløsning.
Et busanmodningssignal kan på dette tidspunkt frembringes, og hvis det ikke modtages, betyder dette, at bussen vil returnere til tomgangstilstanden, og følgelig vil BSREQT- signalet gå mod den binære ET-tilstand. Hvis busanmodningssignalet forefindes på dette 30 tidspunkt, dvs. et binært NUL som vist, vil det starte den asynkrone prioritetsnetvælgeproces, efter hvilken en anden i negativ retning gående flanke af BSDCNN- signalet vil aktiveres som vist ved de punkterede linier til tidspunkterne 7-1 og 7-J. Det skal bemærkes, at denne prioritetsnetløsning ikke behøver at vente eller trigges af 35 den i positiv retning gående flanke af kvitteringssignalet til tidspunktet 7-H, men i virkeligheden kan trigges til et tidspunkt 7-F, som følger umiddelbart efter bussens overgang til en tomgangs-tilstand, hvis en enhed derefter ønsker en buscyklus. Selv om prioritetsnetløsningen kan trigges til tidspunktet 7-F af den i positiv
DK 165529 B
17 retning gående flanke af BSDCNN- signalet, skal den anden i negativ retning gående flanke af BSDCNN- signalet i afhængighed af sætningen af en tildelings flip-flop afvente den i positiv retning gående flanke af kvitteringssignalet til tidspunktet 7-H. Den i negativ 5 retning gående flanke af BSDCNN- signalet til tidspunktet 7-1 illustrerer det tilfælde, hvor prioritetsnetløsningen trigges til tidspunktet 7-F, og løsningen forekommer før tidspunktet 7-H. Den i negativ retning gående flanke af BSDCNN- signalet til tidspunktet 7-J illustrerer det tilfælde, hvor kvitteringssignalet slettes før 10 løsningen af prioritetsnettet. Den i negativ retning gående flanke af BSDCNN-signalet til tidspunktet 7-L illustrerer det tilfælde, hvor der ikke er nogen busanmodning til tidspunktet 7-F, og prioritetsnetløsningen trigges af et senere busanmodningssignal BSREQT-til tidspunktet 7-K. Denne proces gentages på en asynkron måde.
15
Laaerlæseoperation
En lagerlæseoperation skal nu forklares ved hjælp af et eksempel. I eksemplet vil en ind/ud-kontrol enhed foretage en læseanmod-ning om lager, og de to buscykler hørende til anmodningen og svaret 20 vil blive undersøgt. Under den første buscyklus er ind/ud-kontrol-enheden masteren, og lageret er slaven. Under denne første cyklus søger ind/ud-kontrolenheden at få bussen ved anvendelse af sin prioritetsnetlogik, og lagerkontrolenheden svarer. Under den anden buscyklus, hvor lagerkontrol enheden er masteren, og det centrale 25 behandlingsapparat er slaven, masteren og ind/ud-kontrol enheden er slaven, søger lageret at få bussen ved anvendelse af sin prioritetsnetlogik, og ind/ud-kontrol enheden svarer ved anvendelse af busgrænsefladelogik. Lagerkontrolenhedens optaget signal tilvejebringes for at indikere, at et af lagermodulerne, som er forbundet 30 med lagerkontrolenheden rent faktisk er optaget. Hvis et lagermodul er optaget, vil et WAIT signal blive frembragt i afhængighed af, at en master-(anmodende)enhed foretager en lageranmodning. Kvitteringssignalet (ACK) vil blive frembragt, når lagerkontrolenheden ikke er optaget. Det skal igen bemærkes, at WAIT signalet betyder, 35 at der vil være en meget kort forsinkelse, da lageret stadig er optaget.
Låselaaeroperation
Den anden tilstand, som indikerer hvilket af ACK, NAK eller
DK 165529B
18 WAIT signalerne, der skal frembringes, er låsesignalet, der som angivet foran omfatter en flerperiodes busoverførsel, hvorved et apparat kan få tilgang til en bestemt lagerplads, uden at nogen anden låseenhed er i stand til at bryde ind i operationen. Virknin-5 gen af denne låseoperation er at forlænge optaget tilstanden af lagerkontrolenheden udover fuldførelsen af en enkelt cyklus for visse arter af operationer. Apparater på den fælles bus 107, som forsøger at initiere en låseoperation, før den sidste cyklus af følgen er afsluttet, vil modtage et NAK signal. Lageret vil imid-10 lertid stadig reagere på en lageranmodning, som det straks skal forklares. Det skal bemærkes, at den mellemliggende tid mellem disse buscykler kan anvendes af andre enheder, som ikke er involveret i overførslen. En låseoperation anvendes primært, når det er ønskeligt, at to eller flere enheder eller apparater deles om den samme 15 ressource, som f.eks. lager. Låseoperationen, der kan indbefatte et hvilket som helst antal buscykler og lagercykler, bliver låst op af den pågældende enhed eller det pågældende apparat, som har haft kontrol over den fælles ressource. Medens den fælles ressource er låst, vil andre enheder, som ønsker at få tilgang til den fælles 20 ressource, blive låst ude, hvis sådanne andre enheder på bussen præsenterer 1 åsestyresignal et, eller hvis centralenheden forsøger at udføre en låseoperation. Hvis en låseoperation ikke forsøges, er det muligt for centralenheden eller sådanne andre enheder at få tilgang til den fælles ressource, som f.eks. at behandle en hastende anmod-25 ning eller procedure. Før en hvilken som helst enhed, som præsenterer låsesignalet får tilgang til den fælles ressource, bliver den fælles ressource testet for at se, om den er involveret i en låseoperation, og derefter hvis ressource ikke er involveret i en låseoperation, kan der fås tilgang til ressourcen for enheden, som 30 forsøger låseoperationen.
Det kan således ses, at låseoperationen for deling af en ressource er en, der er effektiv mellem de enheder, som afgiver de rigtige styringer, dvs. 1 åsestyresignal et, og f.eks. kan anvendes ved deling af en del af et lager, hvori en tabel af information kan 35 lagres. Hvis en af enhederne endvidere ønsker at ændre information i den fælles ressource, kan andre enheder låses ude, så at de ikke får tilgang til kun delvis ændret information, men derimod kun tillades tilgang, efter at alle disse ændringer er blevet udført. En læse-modificer-skriveoperation kan blive involveret i et sådant tilfælde.
DK 165529B
19
Det skal bemærkes, at BSSHBC- signalet for en låseoperation udført over den fælles bus 107, som det vil ses, anvendes på en noget anden måde, end det hidtil er blevet forklaret. Under en buslåseoperation afgives BSSHBC- signalet af den enhed, som søger at 5 dele en ressource både for at få tilgang til den fælles ressource ved hjælp af en test- og låseprocedure og for at låse den fælles ressource op, når den har fuldført sin låseoperation.
Låseloaik 10 Fremgangsmåden, ved hvilken låselogikken 110 i lagerkontrol enheden 109 anvendes til at udføre en udelelig lageroperation på vejene af en ind/ud-kontrolenhed eller centralenheden, skal nu forklares under henvisning til logikblokdiagrammet i fig. 8 og tidsstyrediagrammet i fig. 9. Da lagerkontrolenheden 109 har dobbelt 15 port, idet den giver lagertilgang fra en ind/ud-kontrolenhed via den fælles bus 107 eller fra centralenhedslogikken 108, skal låselogikken 110 sørge for synkroniseringen af låseanmodninger, som kan frembringes asynkront af enten en ind/ud-kontrolenhed eller centralenhedslogikken. Denne synkronisering af de asynkrone låse- og 20 låse-op-operationer foregår som beskrevet nedenfor.
Fig. 8 viser et logisk blokdiagram over låselogikken 110 i lagerkontrolenhedslogikken 109. I fig. 8 repræsenterer de små cirkler på indgangene eller udgangene af de logiske elementer inverterende indgange og udgange. I fig. 8 består låselogikken 110 af låst af 25 centralenhed flip-flop 801, låst af bus flip-flop 820, synkroniserings flip-flop 802 og andre flip-flop invertere, OG-NAND-og NOR-porte. Flip-flop'ene 801 og 820 er J-K negativ flanketriggede flip-flop med forindstilling og sletning af typen SN74S112 fremstillet af Texas Instruments Inc., Dallas, Texas og beskrevet i de-30 res bog, The TTL Data Book for Design Engineers, Second Edition, copyright 1976, hvortil der henvises. Synkroniserings flip-flop'en 802 er en D-type positiv flanketrigget flip-flop med forindstilling og sletning af typen 74F74 fremstillet af Fairchild Camera and Instrument Corporation, Mountainview, Californien og beskrevet i 35 deres bog Fast Fairchild Advanced Schottky TTL, copyright 1980, hvortil der henvises.
Indledningsvis før en lager!åseoperation begynder, er låst af centralenhed flip-flop'en 801, låst af bus flip-flop'en 820 og synkroniserings flip-flop'en 802 i deres tilbagestillede tilstand,
DK 165529B
20 således at udgangssignalet på deres Q-udgang er et binært NUL, og udgangssignalet på deres Q udgang er et binært ET. Signalet CPLKME+ på Q-udgangen på flip-flop'en 801 og signalet L0CKDD+ på Q-udgangen på flip-flop'en 820 er således binære NULLER, og signalet LOCKDD-på 5 Q udgangen på flip-flop'en 820 og signalet LOCKED- på Q udgangen på flip-flop'en 802 er binære ETTERE. Flip-flop'erne 801,820 og 802 er indledningsvis sat i tilbagestillingstilstanden af et busmaster-slettesignal BSMCLR-, som er et indgangssignal til tilbagestillings (R) indgangen på hver af disse flip-flop, og som går over til et 10 binært NUL i et kort tidsrum, når systemet initialiseres, så at logik i enheder, der er forbundet med den fælles bus 107, slettes til en initialiseret tilstand.
Låselaoereksemoel 15 Låselogikken 110 i fig. 8 skal nu forklares under henvisning til tidsstyrediagrammet i fig. 9, der illustrerer et tilfælde, hvor en ind/ud-kontrol enhed ønsker at foretage en låseoperation på en plads i en af lagermodulerne. I dette eksempel vist i fig. 9 bestemmer centralenheden, efter at ind/ud-kontrolenheden har initieret 20 lager låst operationen, at den ønsker at udføre en låseoperation på lageret og initierer også en låseoperation. Eksemplet i fig. 9 viser, at ind/ud-kontrolenhedsi åseoperationen er afsluttet, før centralenhedslåseoperationen tillades at finde sted. Under centralenhedslåseoperationen forsøger ind/ud at initiere en anden lagerlå-25 seoperation. Fig. 9 viser, at ind/ud lager!åseoperationen begynder til tidspunktet A og slutter på tidspunktet 0, i hvilket tidsrum en lagerlæsning udføres fra tiden A til tiden J, dataene modificeres af i nd/ud-kontrol enheden fra tiden J til L, og de modificerede data indskrives i lageret fra tiden L til 0. Efter buslagerlåseoperatio-30 nen på vegne af en ind/ud-kontrolenhed afslutter centralenheden sin lagerlåseoperation, som begynder til tidspunktet AA, og under hvilken centralenheden har lageret låst fra tiden C til X, og som består i at centralenheden udfører en lagerlæsning fra tiden BB til CC, centralenheden modificerer dataene fra tiden CC til DD, og 35 centralenheden skriver de modificerede data i lageret fra tiden DD til EE. Under centralenhedens lagerlåseoperation har en ind/ud-kontrolenhed forsøgt at udføre en lagerlåseoperation fra tiden R til U, hvilket resulterer i et NAK svar.
I fig. 9 til tiden A har en ind/ud-kontrolenhed, såsom ind/ud-
DK 165529B
21 kontrolenheden 103 i fig. 1, bestemt, at den ønsker at udføre en læse-modificer-skriveoperation på en plads i lageret. Dette kræver, at en lagerlåseoperation udføres og til tiden A anmoder i nd/ud-kontrol enheden om brug af den fælles bus 107 ved at bringe 5 busanmodningssignalet BSREQT- til at gå over fra den binære ET tilstand til den binære NUL tilstand. Når busanmodningssignalet BSREQT- går over til binære NUL tilstand, starter den en busprioritetsløsningscyklus og prioritetslogik i hver enhederne knyttet til den fælles bus 107, fortsætter derpå med at bestemme hvilken af alle 10 de mulige anmodende enheder, der har den højeste prioritet, og hvis ind/ ud-kontrolenheden er den højeste prioritet, vil den blive tildelt bussen, da masterenheden og ind/ud-kontrol enhedens prioritetslogik vil bringe datacyklus nusignalet BSDCNN- på bussen til at gå over fra ET tilstanden til den binære NUL tilstand på tidspunktet 15 B. Samtidig vil ind/ud-kontrolenhedslogikken 103 som masterenheden lægge på busadresselinierne adressen for den plads, som skal læses, og vil også sætte buslåsesignalet BSL0CK- til den binære NUL tilstand og efterlade den anden halve buscyklus signalet BSHHBC- i den binære ET tilstand og således signalere til lageret som slaveenhe-20 den, at en låseoperation skal udføres. Til tidspunktet B i fig. 9 ses det således, at signalet BSHHBC- er et binært ET på den ene indgang af 0G-porten 818 i fig. 8, og signalet BSLOCK+ er et binært ET på den anden indgang af 0G-porten 818, hvilket bevirker, at udgangssignalet derfra, signalet L0CKER+ bliver et binært ET på J 25 indgangen af låst af bus flip-flop'en 820. Signalet BSL0CK+ afgives af inverteren 821, som inverterer indgangssignalet BSL0CK+ fra den fælles bus 107. Buslåsesignalet BSL0CK+, der bliver et binært ET på tidspunktet B i fig. 9, er også det ene indgangssignal til 0G-porten 819. Det andet indgangssignal til 0G-porten 819 er den anden halve 30 buscyklussignalet BSSHBC+, som er det inverterede udgangssignal fra inverteren 822, hvis indgangssignal er signalet BSSHBC- fra den fælles bus 107. På tidspunktet B forbliver signalet BSSHBC+ et binært NUL og deaktiverer således udgangen på 0G-porten 819, hvilket bringer signalet UNLOCK* til at være et binært NUL på K indgangen på 35 låst af bus flip-flop'en 820. På tidspunktet B skifter datacyklus nu signalet BSDCNN- på bussen fra den binære ET tilstand til den binære NUL tilstand og bringer udgangssignalet BSDCNN+ på inverteren 823 til at ændres fra den binære NUL tilstand til den binære ET tilstand og på taktindgangen (C) på synkroniserings flip-flop'en 802 for
DK 165529 B
22 derved at taktstyre signalet CPLKME+ på dens dataindgang (D). Da signalet CPLKME+ er et binært NUL på tidspunktet B, forbliver synkroniserings flip-flop'en 820 i den til bagesti Ilede tilstand og bringer dens Q udgangssignal, signalet LOCKED- til at forblive et 5 binært ET og fortsætter således med partielt at aktivere NAND-porten 804.
Når en ind/ud-kontrol enhed forsøger at låse lageret, er udgangssignalet fra OG-porten 818, signalet L0CKER+, som det fremgå nærmere nedenfor, således et binært ET, og udgangssignalet fra 10 OG-porten 819, signalet UNL0CK+, er et binært NUL i afhængighed af, at ind/ud-kontrolenheden sætter signalet BSLOCK- i den binære NUL tilstand og holder signalet BSSHBC- i den binære ET tilstand, som det sker til tidspunkterne B og S i fig. 9 ved begyndelsen af en ind/ud-lagerlåseoperation. Udgangssignalet fra OG-porten 818 er et 15 binært NUL, og udgangssignalet fra OG-porten 819 er et binært ET, når en ind/ud-kontrolenhed forsøger at låse lageret op, hvilket sker ved, at ind/ud-kontrolenheden sætter signalet BSLOCK- i den binære NUL tilstand og sætter det andet halve buscyklussignal BSSHBC- i den binære ET tilstand, således som det sker til tidspunktet M i fig. 9.
20 Til tidspunktet B i fig. 9 er låse- og låse-op signalerne således tilvejebragt på henholdsvis J og K indgangene på låst af bus flip-flop'en 820. Tilvejebringelse af disse indgangssignaler på J og K indgangene på flip-flop'en 820 har ingen virkning, før flip-flop'en 820 taktstyres af taktsignalet MEACKR-, der går over til den binære 25 NUL tilstand, hvilket sker senere til tidspunktet D. Indtil tidspunktet D forbliver låst af bus flip-flop'en 820 i den tilbage-stillede tilstand, således at dens Q udgangssignal LOCKDD- forbliver i den binære ET tilstand på den anden indgang på NANDporten 804. Med begge indgangssignaler på NANDporten 804 i den binære ET tilstand 30 vil dens udgangssignal, signalet L0CKED+, forblive i den binære NUL tilstand, indtil det ene af dens indgangssignaler bliver et binært NUL.
Signalet L0CKED+ er et af indgangssignalerne til OG-porten 805 og til NAND-porten 807. Det andet indgangssignal til OG-porten 805 35 og NAND-porten 107 er signalet L0CKER+ udgangssignalet fra OG-porten 818. Udgangssignalet fra NAND-porten 804, signalet L0CKED+, vil være et binært ET, hvis lageret allerede er låst af enten centralenheden eller bussen, og et binært NUL, hvis lageret ikke er låst af enten centralenheden eller bussen.-
DK 165529B
23
Signalet LOCKED+, som er et binært NUL på den ene indgang af OG-porten 805 og en indgang på NAND-porten 807, vil deaktivere disse porte og bringe deres udgangssignaler, signalet MENAKR+, til at blive et binært NUL og signalet MENAKR- til at blive et binært ET.
5 Signalet MENAKR+ er det ene indgangssignal til NOR-porten 806, og signalet MENAKR- er det ene indgangssignal til NOR-porten 808. De andre indgangssignaler til NOR-portene 806 og 808 er signalerne MESAME-, MODPAR-, PARER8+ og PARERO+. For at udgangssignalet på NOR-porten 806 eller NOR-porten 808 skal være et binært ET, skal 10 hver af deres fem indgangssignaler være binære NULLER. Signalet MESAME+ er et binært NUL, når adressen for lagerpladsen, der skal læses eller skrives, er indenfor adresserummet i lagerkontrolenheden 109 (dvs. adresselagerpladsen skal falde indenfor lagermodulet 1 101 eller lagermodulet 2 102, og det adresserede modul skal være fysisk 15 tilstede i systemet). Hvis adressen, som præsenteres på den fælles bus 107 til tidspunktet B af ind/ud-kontrol enheden 103 som master derfor falder indenfor et lagermodul, som forefindes, vil signalet MESAME- være et binært NUL. Signalet MODPAR- er et modulært adresseparitetssignal, som indikerer, om pariteten på de øverste otte bit 20 adresseledninger i den fælles bus stemmer overens med paritetsledningen på den fælles bus og vil, hvis dette er tilfældet, være et binært NUL. Paritetsfejlsignaler PARER0+ og PARER8+ er dataparitetsfejl indikatorer for henholdsvis lavordens 8 bit- og højordens 8 bit dataledningerne og vil være binære NULLER, hvis der ingen 25 paritetsfejl forekommer. I de normale tilfælde, når en ind/ud-kontrolenhed adresserer en plads i lageret, vil signaler MESAME-, MODPAR-, PARER8+ og PARER0+ derfor alle være binære NULLER, og udgangssignalerne på NOR-portene 806 og 808 vil være bestemt alene af indgangssignalerne henholdsvis MENAKR+ og MENAKR-. I dette 30 tilfælde vil signalet MENAKR+ på tidspunktet B være et binært NUL, hvilket bringer udgangssignalet på NOR-porten 806, signalet MECYLE+ til at være et binært NUL, og signalet MENAKR- vil være et binært ET og bringe udgangssignalet på NOR-porten 808, signalet MENAKR+ til at være et binært NUL. Flip-flop'ene 809 og 810 af D-type taktstyres af 35 strobesignalet BSDCND+ på deres taktindgange (C), som overgår fra den binære NUL tilstand til den binære ET tilstand. Strobesignalet BSDCND+ udledes ved at forsinke signalet BSDCNN+ ca. 60 ns af forsinkelsesledningen 824, som er en del af lagerkontrolenhedens busprioritetsløsningslogik. Signalet BSDCND-vist i fig. 7
DK 165529B
24 tilvejebringes ved at invertere signalet BSDCND+ ved hjælp af inverteren 826. Taktstyringen af det binære ET signal MECYLE+ på D indgangen på flip-flop'en 809 vil resultere i sætning af flip-flop'en 809, hvilket bringer dens Q udgangssignal, signalet MECYLL+ 5 til at blive et binært ET og dets Q -udgangssignal, signalet MECYLL-til at blive et binært NUL. Samtidig når signalet BSDCND+ går over fra den binære NUL tilstand til den binære ET tilstand, vil flip-flop'en 810 blive taktstyret, og det binære NUL af signalet MENAKR+ på dens D indgang vil resultere i, at flip-flop' en 810 forbliver i 10 den til bagesti Ilede tilstand, hvilket vil bringe dens Q udgangssignal, signalet MENAKK-, til at forblive i den binære ET tilstand. Taktstyringen af flip-flop'ene 809 og 810 finder sted til tidspunktet D, når signalet BSDCND+ går over fra den binære NUL tilstand til den binære ET tilstand. Udgangssignalerne fra flip-flop'en 809, 15 signalet MECYLL+ og MECYLL-, anvendes til at bestemme, om en positiv kvittering (ACK) eller et ventesvar (WAIT) vil frembringes af lageret som slaveenhed på anmodningen fra masterenheden via bussen. Udgangssignalet på flipflop'en 810, signalet MENAKK-, anvendes til at bestemme, om et negativt svar (NAK) frembringes til den anmodende 20 enhed.
På tidspunktet D, efter at flip-flop'en 809 er sat, vil signalet MECYLL+ blive et binært ET og partielt aktivere NAND-porten 811.
Også til tidspunktet D vil signalet MECYLL- være et binært NUL på den ene indgang på NOR-porten 812, og dens udgangssignal MYWAIT+ vil 25 derfor være bestemt af dens anden indgangssignal WAITER-. Signalet WAITER- er udgangssignal fra lager optaget flip-flop'en 803, som anvendes til at indikere, om lageret aktuelt er optaget eller ikke. Signalet WAITER- er også det andet indgangssignal til NAND-porten 811. Hvis lager optaget flip-flop'en 803 derfor til tidspunktet D 30 ikke er sat, hvilket indikerer, at lageret ikke på dette tidspunkt er optaget, vil signalet WAITER- være et binært ET på dens Q udgang og partielt aktivere NAND-porten 811 og bringe dens udgangssignal, signalet MEACKR-, til at være et binært NUL, når signalet MECYLL+ bliver et binært ET til tidspunktet D. Signalet MEACKR- inverteres 35 af inverteren 814 for at frembringe signalet MYACKR+, som igen inverteres af inverteren 815 for at frembringe signalet BSACKR-, som er det positive buskvitteringssignal, som bliver et binært NUL til tidspunktet D i fig. 9. Det skal bemærkes, at for simpelheds skyld er udbredelsesforsinkelserne i forbindelse med elementerne i fig. 8
DK 165529 B
25 udeladt i tidsdiagrammet i fig. 9 i mange tilfælde. Eksempelvis er overgangen af signalet BSDCNN- til et binært NUL til tidspunktet D vist som øjeblikkelig, hvilket resulterer i, at signalet BSACKR-bliver et binært NUL i fig. 9 og ignorerer udbredelsesforsinkelserne 5 af elementerne 823, 809, 811, 814 og 815. Idet signalet WAITER- er et binært ET på den ene indgang af NOR-porten 812, vil overgangen af signalet MECYLL- fra den binære ET tilstand til den binære NUL tilstand til tidspunktet D ikke gøre nogen forskel i udgangssignalet fra NOR-porten 812, således at signalet MYWAIT+ vil forblive et bi-10 nært NUL, og busventesignalet BSWAIT-, som er udgangssignalet fra inverteren 816, vil forblive et binært ET.
Det kan således ses, at hvis en i nd/ud-kontrol enhed til tidspunktet D i fig. 9 forsøger at låse lageret, og lageret ikke tidligere er blevet låst af enten en ind/ud-kontrolenhed eller cen-15 tralenheden, og lageret ikke er optaget, vil den positive kvittering (ASK) blive frembragt af slaveenhedens låselogik 110 og sendt til ind/ud-kontrolenheden som masterenheden via den fælles bus 107 til tidspunktet D. Der vendes nu tilbage til flip-flop'en 810, og når det binære NUL af signalet MENAKR+ til tidspunktet D taktstyres ind 20 i flip-flop'en 810, vil denne forblive tilbagestillet, og dens Q udgangssignal, signalet MENAKK-, vil forblive et binært ET og bringe udgangssignalet på inverteren 813, signalet MYNAKR+, til at forblive et binært NUL, hvilket signal igen inverteres af inverteren 817 for at frembringe bussignalet BSNAKR-, som vil forblive et binært ET og 25 derved indikere, at et negativt svar (NAK) ikke frembringes til den anmodende ind/ud-kontrolenhed, som udfører en låseoperation.
Overgangen af signalet MEACKR- fra den binære ET tilstand til den binære NUL tilstand til tidspunktet D på taktindgangen (C) af låst af bus flip-flop'en 820 taktstyrer det binære ET af signalet 30 L0CKER+ på J indgangen og sætter derved flip-flop'en 820, hvilket bringer signalet L0CKDD+ til at blive et binært ET og signalet LOCKDD- til at blive et binært NUL. Låst af bus flip-flop'en 820 bliver således taktstyret, hver gang en anmodende enhed knyttet til den fælles bus 107 modtager en positiv kvittering (ACK) fra lager-35 kontrolenheden 109. Overgangen af signalet LOCKDD- fra den binære ET tilstand til den binære NUL tilstand til tidspunktet D vil bringe udgangssignalet fra NANDporten 804, signalet L0CKED+, til at blive et binært ET på tidspunktet F.
Til tidspunktet D, når lagerkontrolenheden har bestemt, at
DK 165529 B
26 lageranmodningen fra ind/ud-kontrol enheden vil blive givet en positiv kvittering, låses lagerkontrol enheden i lageradressen ind i busporten af dobbeltportlageret og låser endvidere tilstanden af busledningen, som indikerer, om lagerlæse- eller skriveoperationen 5 skal udføres og foretager en anmodning af prioritetsløserlogikken 111 om en lagercyklus, der skal udføres på vegne af en enhed, der er forbundet med bussen. Til tidspunktet E, efter at masterenheden, der i dette eksempel er i nd/ud-kontrol enheden 103, har modtaget ACK fra lagerkontrol-enheden 109, fjerner ind/ud-kontrolenheden buslåse- og 10 datacyklus nusignalerne BSL0CK- og BSDCNN- og returnerer dem fra den binære NUL tilstand til den binære ET tilstand, og endvidere fjerner ind/udkontrolenheden lageradressen og læse- eller skrivelagerindikeringssignalerne. Overgangen af datacyklus nusignalet BSDCNN- fra den binære NUL tilstand til den binære ET tilstand 15 til tidspunktet E bevirker derefter, at ind/ud-kontrolenheden tilbagestiller busanmodningssignalet, således at signalet BSREQT-går over fra den binære NUL tilstand til den binære ET tilstand på tidspunktet E. På tidspunktet F bliver begge flip-flop 809 og 810 ti 1 bagesti 11 et af signalet BSDCNB+, der bliver et binært NUL på 20 deres tilbagestillingsindgange (R). Signalet BSDCNB+ er udgangssignalet fra ELLER-porten 825, der har indgangssignalerne BSDCND+ og BSDCNN+. Til bagesti 11 ingen af flip-flop'ene 809 og 810 ved enden af lagerbuscyklen resulterer i, at ACK-,WAIT- eller NAK signalerne, hvilket af dem der var aktivt, bliver tilbagestillet og returnerer 25 til den binære ET tilstand ligesom signalet BSACKR- til tidspunktet F, fig. 9. Til tidspunktet F, fjerner slaveenheden således sit positive, vente- eller negative svarsignal fra bussen, som forberedelse for den næste buscyklus.
Senere til tidspunktet G, når de udbedte data er blevet læst 30 fra lageret, foretager lagerkontrolenheden 109 en anmodning om anvendelse af bussen til tidspunktet G ved at bringe busanmodningssignalet BSREQT- til at gå over fra den binære ET tilstand til den binære NUL tilstand. Efter at prioritetsløsningen er blevet bestemt, går signalet BSDCNN- over fra den binære ET tilstand til den binære 35 NUL tilstand til tidspunktet H, og under antagelse af at lageret har fået tilgang til bussen, placerer lageret som masterenheden på busdataledningerne dataordet, som er læst fra lageret. Det bevirker også på dette tidspunkt, at den anden halve buscyklus, signalet BSSHBC-, går over fra den binære ET tilstand til den binære NUL
DK 165529 B
n tilstand og derved indikerer overfor slaveenheden, at dette er en svarcyklus på den tidligere læste anmodning. Når ind/ud-kontrolenheden som slave genkender sin kontrolenhedsadresse på den fælles bus 107, svarer den ved at frembringe en positiv 5 kvittering og ændrer signalet BSACKR- fra den binære ET tilstand til den binære NUL tilstand på tidspunktet I.
Modtagelsen af ACK af lageret bringer lagerkontrolenhedens prioritetsnetlogik til at bringe datacyklus nusignalet BSDCNN- til at gå over fra den binære NUL tilstand til den binære ET tilstand på 10 tidspunktet J og bevirker også, at lageret fjerner det andet halve buscyklussignal BSSHBC-, således at det returnerer fra den binære NUL tilstand til den binære ET tilstand på tidspunktet J. Modtagelsen af den positive kvittering og ændringen af datacyklus nusignalet fra den binære NUL tilstand til den binære ET tilstand bringer bus-15 anmodningssignalet fra lagerkontrolenheden, signalet BSREQT-, til at gå over fra den binære NUL tilstand til den binære ET tilstand på tidspunktet J. På tidspunktet K efter forsinkelse af datacyklus nusignalet BSDDNN- i dets prioritetsnetlogik tilbagestiller ind/ud-kontrolenheden, som havde svaret med en kvittering som en slaveen-20 hed, buskvitteringssignalet BSACKR- fra den binære NUL tilstand til den binære ET tilstand på tidspunktet K.
På dette tidspunkt i låseoperationseksemplet er ind/ud-1ageranmodningen blevet afsluttet, idet ind/ud-kontrolenheden fra tiden A til F var masteren, og lageret svarede som slaven og tog lager-25 adressen fra bussen, og fra tiden G til K blev lageret masteren og svarede på ind/ud-kontrolenheden som slave og tilvejebragte dataordet udlæst fra lageret. Mellem tiden E og G kunne andre enheder på den fælles bus 107 anmode om og modtage adgang til bussen og kunne også modtage adgang til lagerkontrolenheden, hvis de ikke forsøger 30 at foretage en låseoperation. Også i dette tidsrum kunne centralenheden, hvis den ikke havde anmodet om en låseoperation på tidspunktet C, have tilgang til lageret, når dette ikke blev anvendt i afhængighed af busanmodninger, som har en højere prioritet bestemt af priori tetsi øsel ogi kken 111. Fra tiden J til L udførte ind/ 35 ud-kontrolenheden operationer for at modificere dataene udlæst fra lageret. Til tidspunktet L ønskede ind/ud-kontrolenheden at indskrive igen i lageret de modificerede data og anmoder om brug af bussen ved at sætte busanmodningsledningen BSREQT- fra den binære ET tilstand til den binære NUL tilstand. Efter at ind/ud-kontrolenheden
DK 165529B
28 opnår tilgang til bussen som master, bringer den datacyklus nusignalet BSDCNN- til at gå over fra den binære ET tilstand til den binære NUL tilstand på tidspunktet M og lægger endvidere adressen for pladsen i lageret, der skal skrives, ind på busadresselednin-5 gerne og dataene i lageret, der skal skrives ind på denne plads på busdataledningerne. På tidspunktet M indikerer ind/ud-kontrol enheden også, at dette er afslutningen af låseoperationen, og for at gøre dette låser den lageret op ved at bringe signalet BSLOCK- til at gå over fra den binære ET tilstand til den binære NUL tilstand og ved 10 at bringe den anden halve buscyklusledning BSSHBC- til at gå over fra den binære ET tilstand til den binære NUL tilstand for derved at indikere, at denne operation er en låse-op operation i modsætning til låseoperationen, som foregik på tidspunktet B, under hvilken signalet BSSHBC- blev holdt på den binære ET tilstand.
15 Idet der nu henvises til låselogikken 110 vist i fig. 8, vil det ses, at til tidspunktet M under lagerskrivebuscyklen, hvor en ind/ ud-kontrol enhed som masterenhed har indikeret, at lageret skal låses op ved at sætte signalet BSLOCK- og signalet BSSHBC- i den binære NUL tilstand, vil udgangssignalet fra OG-porten 818, signalet 20 L0CKER+, være et binært NUL, hvilket indikerer, at dette ikke er en låseoperation, og udgangssignalet fra OG-porten 819, signalet UNL0CK+, vil være et binært ET, hvilket indikerer, at dette er en låse-op operation. Til tidspunktet H forbliver låst af bus flip-flop'en 820 i den satte tilstand, hvilket bevirker, at dens Q 25 udgangssignal, signalet LOCKDD-, forbliver i den binære NUL til stand. Det binære NUL af signalet LOCKDD- spærrer NAND-porten 804, hvilket bevirker, at dens udgangssignal, signalet LOCKED+ bliver et binært ET for derved at indikere, at lageret for øjeblikket er låst.
Det binære ET af signalet L0CKED+ aktiverer partielt OG-porten 805 30 og NAND-porten 807. Begge disse porte er imidlertid deaktiveret af det binære NUL af signalet L0CKER+ og gør således udgangssignalet fra NAND-porten 805, signalet MENAKR+, til et binært NUL og udgangssignalet fra NAND-porten 807, signalet MENAKR-, til et binært ET. Det antages, at de andre fire signaler, som er indgangssignaler 35 til NOR-portene 806 og 808, er i den binære NUL tilstand, hvilket indikerer, at lageradressen på bussen er til en lagerplads styret af lagerkontrolenheden, og at der ikke er nogen adresseparitets- eller dataparitetsfejl, og udgangssignalet fra NOR-porten 806, signalet MECYLE+, vil da være et binært ET, og udgangssignalet fra NOR-porten 29 808, signalet MENAKR+, vil være et binært NUL, fordi dens indgangssignal MENAKR- er et binært ET. Efter at signalet BSDCNN+ er blevet forsinket af forsinkelsesledningen 824 og bevirker, at taktsignalet BSDCND+ går over fra den binære NUL til den binære ET tilstand og 5 taktstyrer flip-flop'ene 809 og 810, vil flip-flop'en 809 derefter være sat og bevirke, at dens Q udgangssignal MECYLL+ bliver et binært ET, og flip-flop'en 810 vil forblive tilbagestillet og bringe sit 0 signal MEANKK- til at forblive et binært ET.
Idet det antages, at lageret nu er til rådighed, således at 10 udgangssignalet fra lager optaget flip-flop'en 803, signalet WAITER-, er et binært ET, vil NAND-porten 811 være fuldt aktiveret og bringe sit udgangssignal MEACKR- til at blive et binært ET, som igen bliver inverteret af invertere 814 og 815 og bringer buskvitteringssignalet BSACKR- til at blive et binært NUL til tidspunktet N 15 i fig. 9. Til tidspunktet N i fig. 9 vil busventesignalet og bus NAK signalet BSWAIT- og BSNAKR- forblive i den binære ET tilstand. Når signalet MEACKR- går over fra den binære ET - til den binære NUL tilstand til tidspunktet N, vil det taktstyre låst af bus flip- flop'en 820, som vil have et binært NUL på sin 0 indgang og et 20 binært ET på sin K indgang, hvilket således resulterer i tilbagestillingen af flip-flop'en 820, som vil bringe sit Q udgangssignal L0CKDD+ til at gå over fra den binære ET- til den binære NUL tilstand.
Som tidligere omtalt vil modtagelsen af kvitteringssignalet af 25 slaveenheden, som er ind/ud-kontrolenheden i dette tilfælde, bringe ind/ud-kontrol enheden til at fjerne buslåsningen og den anden halve buscyklus og skriveadressen og dataene fra den fælles bus 107 til tidspunktet O og derved bringe signalerne BSDCNN-, BSLOCK- og BSSHBC- til at gå over fra den binære NUL til den binære ET til -30 stand. Modtagelse af ASK og overgangen af datacyklus nusignalet BSDCNN- vil også resultere i, at ind/ud-kontrol enheden frigiver busanmodningsledningen, således at signalet BSREQT- går over fra den binære NUL tilstand til den binære ET tilstand til tidspunktet 0. Efter forsinkelse af signalet BSDCNN+ i prioritetsløsningslogik-35 forsinkelsesledningen 824 i lagerkontrolenheden går udgangssignalet fra ELLER-porten 825, signalet BSDCNB+, på tilbagestillingsindgangene (R) på flip-flop'ene 809 og 810 gå over fra den binære ET tilstand til den binære NUL tilstand og således til bagesti Ile begge flip-flop og bringe buskvitteringssignalet BSACKR- til at gå over
DK 165529 B
30 fra den binære ET tilstand til den binære NUL tilstand til tidspunktet P.
Returneringen af kvitteringssignalet BSACKR- til tidspunktet P til den binære ET tilstand afslutter ind/ud-lagerskrivecyklen og 5 afslutter den samlede læse-modificer-skrivecyklus, i hvilken lageret indledningsvis blev låst ved starten af læsecyklen til tidspunktet D, da låst af bus flip-flop'en 820 blev sat, og ender ved enden af skrivecyklen til tidspunktet N, hvor låst af bus flip-flop'en 820 blev tilbagesti11 et.
10 Hver gang låselogikken frembringer et ACK til en masterenhed, som anmoder om brug af bussen, bliver låst af bus flip-flop'en 820, som det vil fremgå af den ovenstående forklaring af låselogikken 110 i fig. 8, taktstyret af signalet MEACKR-, som går over fra den binære ET tilstand til den binære NUL tilstand, såsom til tidspunk-15 terne D, I og N i fig. 9. Til tidspunktet D blev låst af bus flip-flop'en 820 sat, og til tidspunktet N blev den tilbagestillet. Til tidspunktet I resulterede taktstyringen af flip-flop'en 820 ikke i nogen ændring af tilstanden af flip-flop'en, fordi J og K indgangene var i den binære NUL tilstand, fordi 0G-portene 818 og 819 var 20 deaktiveret af den binære NUL tilstand af låsesignalet BSL0CK+.
Det skal bemærkes, at flip-flop'ene 809 og 810 kun frembringer et ACK, WAIT eller NAK signal på bussen, når masterenheden har adresseret en plads i lageret, og det vil ikke frembringes, når en masterenhed adresserer en anden ind/ud-kontrolenhed eller en plads, 25 som ikke er i lageret styret af lagerkontrolenheden 109. Dette sker, selv om signalet BSDCND+ taktstyrer flip-flop'ene 809 og 810 under hver buscyklus. Med mindre adresseledningerne på den fælles bus 107 indikerer en lagerplads i lageret, vil signalet MESAME-, som er indgangssignal til begge NOR-porte 806 og 808, imidlertid være i den 30 binære ET tilstand og derved bringe deres udgangssignaler, signalerne henholdsvis MECYLE+ og MENAKR+, der er indgangssignaler til dataindgangene (D) på flip-flop'ene, til at være i den binære NUL tilstand og derved resultere i, at flip-flop'ene 809 og 810 altid til bagesti11 es, når de taktstyres af signalet BSDCND+. Denne tilba-35 gestilling resulterer igen ikke i nogen tilstandsændring af deres Q-og Q udgangssignaler, som igen vil resultere i, at ingen bus ACK, WAIT eller NAK signal ændres til den binære NUL tilstand.
Foruden at anvendes til at frembringe et ACK svar bliver signalet MEACKR-, som afgives af NAND-porten 811, også anvendt som en
DK 165529 B
31 ind/ud-lageranmodning til prioritetsløserlogikken 111, således at den hver gang lageret giver en positiv kvittering (ACK) på en lageranmodning, der kommer fra den fælles bus 107, foretager en anmodning om lageret gennem prioritetsløserlogikken 111.
5 J-K flip-flop'ene bliver sat ved taktstyring af et binært ET
til J indgangen og bliver tilbagestillet ved taktstyring af et binært ET til K indgangen. Taktstyringen af låst af bus flip-flop'en 820 hver gang lagerkontrolenheden som en slaveenhed på bussen svarer derfor med et ACK til masterenheden, der anmoder om, at en lager-10 plads skrives eller udlæses. Låst af bus flip-flop'en 820 vil kun ændre tilstand, hvis den låses, eller hvis den låses op som angivet af kombinationen af BSL0CK- og BSSHBC- signalerne, således som det sker til tidspunktet B og tidspunktet M i fig. 9 og ikke sker til tidspunktet H i fig. 9, fordi signalet BSL0CK- er et binært ET.
15 Før omtale af fremgangsmåden, ved hvilken lageret låses af centralenheden, skal det bemærkes, at en normal (dvs. ikke-låse) lagerlæse- eller skriveoperation kan finde sted på vegne af en ind/ ud-kontrolenhed, der er forbundet med den fælles bus 107 i den tid, hvor lageret er låst, dvs. det eneste der blokeres i den tid, hvor 20 lageret er låst, er en anden låst læse- eller skriveoperation, hvad enten den er fra centralenheden eller bussen. Hvis f.eks. en ind/ud-kontrol enhed har anmodet om en lagerlæsning, vil følgen vist i fig. 9 begyndende til tidspunktet A og til tidspunktet J finde sted med undtagelse af, at masterenheden ikke vil bringe buslåse-25 signalet BSLOCK- til at gå til den binære NUL tilstand til tidspunktet B, og derfor vil signalet L0CKER+ på J indgangen på flipflop'en 820 være et binært NUL, og det vil også være et binært NUL på indgangen af OG-porten 805, som vil bringe dennes udgangssignal, signalet MENAKR+, til at være et binært NUL, hvilket vil resultere 30 i, at udgangssignalet fra NOR-porten 806, signalet MECYLE+, bliver et binært ET. Når det binære ET af signalet MECYLE+ taktstyres ind i flip-flop'en 809 af overgangen af signalet BSDCND+ til den binære ET tilstand, vil NAND-porten 811 være fuldt aktiveret under antagelse af, at signalet WAITER- er et binært ET og resulterer i et ACK fra 35 lageret som slaveenheden til ind/ud-kontrol enheden som masterenheden. Denne kvittering af masterenheden vil resultere i taktstyring af låst af bus flip-flop'en 802, men da et binært NUL optræder på både J og K indgangene på denne, vil tilstanden af flip-flop'en 820 ikke ændres, og dens tidligere ikke-låste tilstand
DK 165529 B
32 vil forblive uændret.
Central enheds!åse!aaeroperation
Den del af låselogikken 110, som tillader centralenheden at 5 udføre en lagerlåseoperation, skal nu forklares under henvisning til fig. 8, 9 og 10. Når centralenheden ønsker at læse eller skrive i lageret, hvad enten det sker under en ikke-låst eller en låst operation, kommunikerer centralenheden ikke med lageret via den fælles bus 107, men anvender i stedet den anden port i lagerkontrolenheden 10 109. Centralenheden foretager derfor ikke anmodninger om brug af den fælles bus 107 ved ændring af tilstanden af busanmodningsledningen BSREQT-, og centralenheden anvender heller ikke nogen af tidsstyresignalerne eller låsesignalerne, såsom datacyklus nusignalet BSDCNN- eller låsesignalet BSLOCK- eller det andet halve bus-15 cyklussignal BSSHBC-. Endvidere ser centralenheden ikke på ACK-, WAIT- eller NAK signalledningerne for at se, om lageret som en slaveenhed har akcepteret kommandoen fra masterenheden, der ønsker at få tilgang til lageret.
Dette master-slaveenhedsforhold eksisterer ikke mellem cen-20 tralenheden og lageret, fordi centralenheden kommunikerer direkte med lageret gennem sin egen port. Centralenheden låser lageret, når det ønsker at udføre en låst operation ved at sætte låst af centralenheds flip-flop'en 801, der som beskrevet ovenfor er en J-K flip-flop. I den foretrukne udførelsesform er centralenheden et 25 mi kroprogrammeret system, og i løbet af den tid, hvor det udfører en programmel instruktion, der kræver en lagerlåseoperation, såsom når centralenheden udfører en dekrement instruktion, som kræver, at: lagerpladsen læses ind i et centralenhedsregister, værdien én subtraheres fra indholdet i registret, og derpå skrives register-30 indholdet igen i lageret. Centralenheden sætter flip-flop'en 801 ved at udføre en mi krooperation, som bringer signalet SETLCK- på sætteindgangen (S) på flip-flop'en 801 til at gå over fra den binære ET tilstand til den binære NUL tilstand. Sætningen af flip-flop'en 801 bevirker, at dens Q udgangssignal, signalet CPLKME+ går over fra den 35 binære NUL tilstand til den binære ET tilstand. Et eksempel på dette er vist til tidspunktet C i fig. 9, der er sket lidt efter, at lageret allerede er blevet låst af en lageranmodning, som optrådte fra bussen på tidspunktet B. På grund af den asynkrone funktion af udførelsen af centralenhedens mi krooperationer med hensyn til
DK 165529B
33 buscykler på den fælles bus 107 kan der, som det vil fremgå senere, forekomme en kapløbstilstand mellem bussen, som forsøger at låse lageret, samtidig med at centralenheden forsøger at låse lageret.
Før beskrivelsen af det eventuelle kapløb mellem centralenheden og 5 bussen om at låse lageret skal metoden, hvorved centralenheden låser lageret, beskrives.
Som angivet ovenfor bliver låst af centralenheds flip-flop'en 801 initialiseret til tilbagestillingstilstanden af busmastersiettesignalet BSMCLR-, når centralenheden initialiseres 10 ligesom synkroniserings flip-flop'en 802 og låst af bus flip-flop'en 820. Under udførelsen af programmellet ved hjælp af centralenheden, når en programmel instruktion kræver, at en låseoperation udføres på et lager, fordi centralenheden ønsker at læse en plads, modificere indholdet og skrive det tilbage uden at afbrydes, foretager mikro-15 instruktionerne, som udfører programmel instruktionen, derefter en sætte!åseoperation ved frembringelse af et signal SETLCK- til den binære NUL tilstand på sætteindgangen (S) på flip-flop'en 801. Denne låsel agermi krooperation er angivet i fig. 10 som blok 1001. Det skal bemærkes, at sætningen af låst af centralenhed flip-flop'en 801 20 finder sted ensidigt ved hjælp af centralenheden, uden at denne undersøger status af låst af bus flip-flop'en 820 for at bestemme, om lageret allerede er blevet låst af bussen. Endvidere behøver centralenheden ikke at bestemme, om lageret allerede er blevet låst af centralenheden ved undersøgelse af status af låst at centralenhed 25 flip-flop'en 801, fordi centralenheden implicit ved, at mikroin- struktionsfølgen, som låser og derefter låser lageret op, Ikke kan afbrydes, således at hvis lageret tidligere var blevet låst af en centralenhedsmi krooperation, ville den være blevet fulgt af en låse-op mikrooperation, og hvis centralenheden derfor nu er i stand 30 til at låse lageret, må status af låst af centralenhed flip-flop'en 801 være således, at den er i en til bagest i 11 et tilstand, og at lageret i øjeblikket ikke er låst af centralenheden.
Synkroniserings flip-flop'en 802 er nødvendig på grund af den asynkrone beskaffenhed af bussignalerne med hensyn til udførelsen af 35 centralenhedsmikroinstruktionerne. Ved taktstyring af udgangssignalet fra låst af centralenhed flip-flop'en 801 signalet CPLKME+ ind på dataindgangen (D) på flip-flop'en 802 ved anvendelse af busdatacyklus nusignalet BSDCNN+, der fås ved invertering af bussignalet BSDCNN- ved hjælp af inverteren 823, bliver Q udgangssignalet fra
DK 165529 B
34 flip-flop'en 802, signalet LOCKED-, stabiliseret og sikrer derved, at signalerne på dataindgangene (D) på flip-flop'ene 809 og 810 vil være i en stabil tilstand, når de taktstyres ca. 60 ns senere af signaler BSDCND+, der går over til den binære ET tilstand. Synkro-5 niserings flip-flop'en 802 sikrer derfor, at hvis centralenheden låser lageret før forekomsten af datacyklus nus'ignalet BSDCNN- på bussen, der går mod den binære NUL tilstand, vil låst af centralenhed signalet være synligt og stabiliseret, således at det vil påvirke status af MECYLE+ og MENAKR+ signalerne på indgangene af 10 flip-flop' ene 809 og 810 og resultere i NAK signal ved en anmodning fra bussen om at udføre en lagerlåseoperation. Hvis centralenheden imidlertid ikke sætter låst af centralenhed flip-flop'en 801 før forekomsten af datacyklus nusignalet på bussen, vil synkroniserings flip-flop'en 802 forblive i den til bagesti Ilede tilstand, og ind-15 gangssignalerne til flip-flop'ene 809 og 810 vil ikke blive påvirket før den næste buscyklus. Ved taktstyring af flip-flop'ene 809 og 810 60 ns efter taktstyring af synkroniserings flip-flop'en 802 tilvejebringes der tilstrækkelig tid til at sikre, at Q udgangssignalet fra flip-flop'en 802 har nået en stabil tilstand, hvilket kan tage 20 fra 20 til 30 ns, og at dette udgangssignal har haft tilstrækkelig tid til at udbrede sig gennem NAND-porten 804 og porten 805, NOR-porten 806, eller gennem NAND-porten 804, NAND-porten 807 og NOR-porten 808 før taktstyringen af flip-flop'ene 809 og 810. Når centralenheden har sat låst af centralenhed flip-flop'en 801, og 25 dens udgangssignal er blevet taktstyret ind i synkroniserings flip-flop'en 802 ved forekomsten af datacyklus nusignalet på bussen, vil den binære NUL tilstand af signalet LOCKED- bevirke, at udgangssignalet på NANDporten 804 bliver et binært ET og forbliver i denne tilstand, indtil det tidspunkt hvor både synkroniserings 30 flip-flop'en 802 og låst af bus flip-flop'en 820 tilbagestilles. Udgangssignalet fra NAND-porten 804, signalet L0CKED+, når det er et binært ET, indikerer således, at lageret er blevet låst af enten centralenheden eller bussen eller begge.
Anvendelsen af L0CKED+ signalet af resten af låselogikken 110 35 er den samme som forklaret ovenfor med hensyn til låsning af lageret fra bussen. Låsning af lageret ved hjælp af centralenheden resulterer ikke i frembringelse af et ACK-, WAIT- eller et NAK svar til centralenheden, fordi disse signaler kun frembringes i afhængighed af, at en masterenhed anmoder om brug af lageret over den
DK 165529 B
35 fælles bus 107. Ingen buscyklus er involveret i centralenhedens brug af lageret, hvorfor låsningen af lageret ved hjælp af centralenheden ikke vil resultere i frembringelse af et svar fra lageret som slave til masterenheden, hvorimod et svar frembringes, når lageret låses 5 af bussen, fordi låsningen af bussen finder sted som en del af en buscyklus. Sætningen af låst af centralenhed flip-flop'en 801 sker derfor som forberedelse for en efterfølgende buslagercyklus, så at et hvilket som helst ind/ud-apparat, der virker som en master ved forsøg på at udføre en låst operation på lageret via bussen, vil 10 modtage det korrekte svar, uanset om lageret var låst af et ind/ud-apparat på bussen eller af centralenheden.
Som forklaret ovenfor bliver låst af centralenhed flip-flop7en 801 sat af centralenhedeen, som udfører en mi krooperation, der bringer signalet SETLCK- til at blive et binært NUL. Centralenheden 15 udfører denne sættelåsemi krooperation, når den udfører en låseoperation, som kræver en læsning-modificering-skrivning af en lagerplads. Under hver lagertilgang for enten læsning eller skrivning, og uanset om tilgangen udføres på vegne af centralenheden eller et ind/ud-apparat, der er forbundet med den fælles bus, bliver 20 tidsstyresignalet MCASCP- et binært NUL, når søjleadressen præsenteres for hal vi ederchipsene, der udgør hovedlageret. Under hver lagertilgang vil låst af centralenhed flip-flop'en 801 derfor blive taktstyret ved, at signalet MCASCP- bliver et binært NUL på taktindgangen (C). Under en lagerskrivning, der udføres på vegne af 25 centralenheden og ikke på vegne af en ind/ud-kontrolenhed på den fælles bus, er signalet MMWRIT+ et binært ET på det tidspunkt, hvor søjleadressesignalet MCASCP- bliver et binært NUL. Ved indføring af centralenhedslagerskrivesignalet MMWRIT+ i K indgangen på flip-flop'en 801 vil låst af centralenhed flip-flop7 en blive tilbage-30 stillet, hver gang en lagerskrivning udføres på vegne af centralenheden. Det kan derfor ses, at låst af centralenhed flip-flop7en 801 sættes ved udførelsen af en central enhedsmi kroinstruktion som forberedelse til udførelse af en læse-modificer-skriveoperation, og flip-flop'en bliver betingelsesløst tilbagestillet, når en lager-35 skrivning sker på vegne af centralenheden. Denne simplifikation af låselogikken 110 er mulig, fordi det er implicit, at den eneste gang hvor centralenheden låser lageret er som forberedelse til at udføre en læse-modificer-skriveoperation, og logikken kan derfor betingelsesløst tilbagestille låst af centralenhed flip-flop7en ved enden af
DK 165529 B
36 enhver centralenhedsskriveoperation, fordi det vil være den sidste handling i læse-modificer-skrivesekvensen, som kunne have forlangt, at lageret låses.
Lager optaget flip-flop'en 803 blev tidligere beskrevet med 5 hensyn til sit udgangssignal WAITER-. Når lager optaget flip-flop'en 803 er sat, vil dens Q udgangssignal, signalet WAITER-, være et binært NUL for at indikere, at buslagerporten på lageret med dob-beltport er optaget og udfører en lageroperation på vegne af et apparat, der er forbundet med den fælles bus 107. Sætningen af lager 10 optaget flip-flop'en 803 forhindrer således, at en efterfølgende lageranmodning fra bussen bliver positivt anerkendt, indtil den løbende lageranmodning er afsluttet. Som det fremgår af den ovenstående beskrivelse, vil det binære NUL af signalet WAITER-, når lager optaget flip-flop'en 803 er sat, deaktivere NAND-porten 811 og 15 forhindre, at et ACK svar frembringes til masterenheden, som anmoder om tilgang til lageret, og vil i stedet resultere i aktivering af NOR-porten 812, hvilket vil resultere i, at et WAIT signal frembringes af lageret i afhængighed af en anmodning fra en ind/ud-kontrol enhed om tilgang til lageret.
20 Når systemet initialiseres, bliver signalet MEMRDY- sat i den binære NUL tilstand, og derved sættes flip-flop'en 803, og den holdes sat, indtil det tidspunkt hvor systemet er blevet startet op, og lageret er oppe i hastighed og er blevet slettet. Derefter returnerer signalet MEMRDY+ til et binært ET, og lager optaget flip-flop'en 25 803 vil blive sat under en buscyklus, hvis data (D) signalet MEBUSY+ er et binært ET, når datacyklus nusignalet BSDCNN+ bliver et binært ET på taktindgangen (C). Signalet MEBUSY+ hidrører fra akkumuleringen af en samling af lagersignaler hørende til busporten på dob-beltportlageret, hvis resultat er, at signalet MEBUSY+ vil være i 30 den binære ET tilstand, når busporten på dobbeltportlageret er involveret i en lageroperation og ikke frit kan akceptere en lageranmodning fra den fælles bus 107. Når lageret har fuldført lageroperationen på vegne af et apparat, der er forbundet med den fælles bus 107, returnerer signalet MEBUSY+ til den binære NUL tilstand, og 35 næste gang lagerbus flip-flop'en 803 taktstyres af busdatacyklus nusignalet, BSDCNN+, vil lager optaget flip-flop'en 803 blive tilbagestillet. Denne tilbagestilling sker tidligt nok i buscyklussen, således at lager optaget flip-flop'en 803 vil blive tilbagestillet før frembringelsen af ACK- eller WAIT- signalet i en
DK 165529 B
37 buscyklus, hvor en anmodning om lager fra en ind/ud-kontrol enhed finder sted.
Den ovenstående forklaring har vist, hvorledes bussen kan låse lageret ved at sætte låst af bus flip-flop'en 820, og hvorledes 5 centralenheden kan låse lageret ved at sætte låst af centralenhed flip-flop'en 801. Metoden, ved hvilken låst af bus flip-flop'en 820 tilbagestilles, er blevet forklaret, ligesom metoden, ved hvilken låst af centralenhed flip-flop'en 801 betingelsesløst tilbagestilles, når som helst en lagerskriveoperation er udført på vegne af 10 centralenheden. Det er også blevet forklaret, hvorledes en efterfølgende låseoperation fra bussen gives en negativ kvittering (NAK), hvis et forsøg gøres på at udføre en låseoperation i den tid, hvor lageret allerede er låst af enten centralenheden eller bussen. Metoden, ved hvilken centralenheden bestemmer, om lageret er blevet 15 låst af bussen, når centralenheden forsøger at udføre en låst operation, skal nu forklares.
Da centralenheden ikke ser ACK-, WAIT- eller NAK signalerne, som kun frembringes, når lageret svarer på en lageranmodning hidrørende fra bussen, ser centralenheden direkte på udgangene af låst 20 af bus flip-flop'en 820 ved at undersøge Q udgangssignalet L0CKDD+.
Det som centralenheden gør, at principielt betingelsesløst at sætte låst af centralenhed flip-flop'en 801 via en firmware mi krooperation baseret derpå ved en anden firmware mi krooperation på status af låst af bus flip-flop'en 820 og gennemløber en løkke, indtil lageret ikke 25 er låst af bussen. Centralenheden udfører derpå sin læse-modi- ficer-skriveoperation med lagerskrivningen ved, at centralenheden ti 1bagestiller låst af centralenhed flip-flop'en 801. Denne følge er vist i fig. 10, som viser fire blokke, hvor hver blok svarer til en enkelt mi krooperation af centralenhedens firmware. Disse fire blokke 30 1001 til 1004 repræsenterer mi krooperationer, der kan være en del af en programmel instruktion, som udfører en lagerlåseoperation som forklaret tidligere, f.eks. en nedtællingsordoperation, hvor et ord læses fra lageret, ordet nedtælles med én, og den nedtalte værdi skrives tilbage i lageret.
35 I blokken 1001 sætter centralenhedens firmware betingelsesløst låst af centralenhed flip-flop'en 801. Denne mi krooperation kan følges umiddelbart af mi krooperationen repræsenteret ved blokken 1002, eller der kan være mellemliggende mi krooperationer som vist ved den afbrudte linie, som forløber fra blokken 1001 til blokken
DK 165529 B
38 1002. I blokken 1002 udføres en mi krooperation, som læser indholdet i lagerpladsen, der skal udføres operation på, og i den samme mi krooperation foretages en test for at se, om låst af bus flip-flop'en 820 er sat. Hvis signalet L0CKDD+ er et binært ET, hvilket 5 indikerer, at lageret er blevet låst af bussen, forgrener mi krooperationen sig tilbage til begyndelsen, således at blokken 1002 vil blive udført igen, og pladsen vil igen blive læst fra lageret og låst af bus flip-flop'en 820 indtestet. Dette løkkegennemløb i blokken 1002 vil fortsætte, indtil det tidspunkt hvor låst af bus 10 flip-flop'en 820 tilbagestilles, på hvilket tidspunkt mi krooperationen 1002 ikke vil forgrene sig tilbage, og mi krooperationen i blokken 1003 vil blive udført. Blokken 1003 kan i virkeligheden være flere mi krooperationer, som beregner den nye værdi af ordet, som blev læst fra lageret, så at en opdateret værdi derefter kan ind-15 skrives i lageret. Igen kan der være mellemliggende mi krooperationer mellem blokkene 1002 og 1003 og mellem blokkene 1003 og 1004 som angivet ved den afbrudte linie. I blokken 1004 skrives den opdaterede værdi i lageret, og da hver lagerskriveoperation betingelsesløst tilbagestiller låst af centralenhed flip-flop'en 801, er 20 lageret låst op af centralenheden. I den tid, hvor centralenheden har låst lageret i blokken 1001, indtil det er blevet låst op i blokken 1004, vil ethvert forsøg af en enhed på den fælles bus 107 på at låse lageret op resultere i, at et NAK frembringes af låselogikken 110, når lageret svarer som slaveenhed på 25 ind/ud-kontrolenheden, der foretog anmodningen som en masterenhed således som tidligere forklaret.
Idet fig. 9 igen betragtes, kan det ses, at centralenheden udfører en central enhedsiagerlåseoperation begyndende til tidspunktet AA og sluttende til tidspunktet EE. Fra tidspunktet AA til 30 tidspunktet BB udfører centralenheden 1agerlåseoperationen i blok 1001 i fig. 10, hvilket til tidspunktet C resulterer i sætningen af låst af centralenheden flip-flop'en 801, som bringer dennes Q udgangssignal, signalet CPLKME+ til at blive et binært ET. Fra tidspunktet BB til tidspunktet CC er centralenhedens firmware 35 engageret i en løkke, hvori centralenhedens firmware læser lageret, når dette bliver til rådighed for centralenheden som bestemt af prioritetsløserlogikken 111 og tester samtidig låst af bus flip-flop'en 820 og fortsætter med at udføre blokken 1002 igen, indtil det tidspunkt under den sidste udførelse af blokken, hvor den
DK 165529 B
39 finder, at signalet LOCKDD+ er vendt tilbage til den binære NUL tilstand til tidspunktet N. Fra tidspunktet CC til tidspunktet DD udfører centralenheden mi kroinstruktionerne mellem blokkene 1002 og 1004 indbefattende blokken 1003, der modificerer dataene, der skal 5 skrives i lageret. I tiden DD til tiden EE udfører centralenheden blokken 1004 og skriver dataene tilbage i lageret. Skrivningen af dataene i lageret ved hjælp af centralenheden resulterer i tilbagestillingen af låst af centralenhed flip-flop'en 801, som bringer signalet CPLMKE+ til at gå over fra den binære ET tilstand til den 10 binære NUL tilstand til tidspunktet X. Efter tidspunktet X vil eventuelle efterfølgende anmodninger om brug af bussen, såsom til tidspunktet Y i fig. 9, resultere i, at datacyklus nusignalet BSDCNN- går over fra den binære ET tilstand til den binære NUL tilstand, såsom til tidspunktet Z, der igen vil resultere i tilba-15 gestil1 ingen af synkroniserings flip-flop' en 802, som vil bringe udgangssignalet fra NAND-porten 804, signalet L0CKED+, til at gå over fra den binære ET tilstand til den binære NUL tilstand, såsom til tidspunktet Z.
I fig. 9 er der også vist et forsøg af en ind/ud-kontrolenhed 20 på at udføre en låst lageroperation i den tid, hvor kun centralenheden har lageret låst. Til tidspunktet R foretager ind/ud-kontrol enheden som en masterenhed således en anmodning om bussen, hvilket bringer datacyklus nusignalet BSDCNN- til at gå over fra den binære ET tilstand til den binære NUL tilstand og resultere 25 i, at ind/ud-kontrol enheden lægger lageradressen, der skal læses, på bussen og bringer den også til at sætte det låste signal BSL0CK- i den binære NUL tilstand til tidspunktet S for at angive, at en låst operation ønskes. Da bussen på dette tidspunkt er låst af centralenheden som indikeret ved, at udgangssignalet fra NAND-porten 804, 30 signalet LOCKED+, er i den binære ET tilstand, vil udgangssignalet fra NAND-porten 807, signalet MENAKR- være et binært NUL og bringe udgangssignalet på NOR-porten 808 til at være et binært ET, hvilket vil resultere i sætningen af flip-flop'en 810 til tidspunktet T, som igen vil resultere i frembringelsen af et NAK på bussen og bringe 35 signalet BSNAKR- til at gå over fra den binære ET tilstand til den binære NUL tilstand til tidspunktet T. Når den negative kvittering modtages fra lageret som slaveenhed af ind/ud-kontrolenheden som masterenhed til tidspunktet U, vil ind/ud-kontrolenheden fjerne buslåsesignalet og datacyklus nusignalet og busanmodningssignalerne
DK 165529B
40 fra bussen, således at til tidspunktet U vil signalerne BSLOCK-, BSDCNN- og BSREQT- gå over fra den binære NUL tilstand til den binære ET tilstand. Når flip-flop'en 810 til tidspunktet W tilbage-stilles af signalet BSDCNB+, der går over til den binære NUL til -5 stand på sin ti1bagesti11ingsindgang (R), vil flip-flop'en 810 blive tilbagestillet og bringe signalet BSNAKR- til at gå over fra den binære NUL tilstand til den binære ET tilstand.
Selv om denne forsøgte ind/ud-lagerlåseoperation indikeres efter fuldførelsen af den forudgående ind/ud-lagerlåseoperation, vil 10 ethvert forsøg af en anden ind/ud-kontrolenhed på at udføre en lager!åseoperation i den tid, hvor lageret er låst på vegne af bussen, resultere i, at den samme følge foregår, hvor ind/ud-kontrolenheden forsøger at udføre låseoperationen og modtager et NAK fra lageret. Dette skyldes, at udgangssignalet fra NAND-porten 804 15 indikerer, at lageret er låst på vegne af centralenheden eller bussen eller begge, hvilket alt sammen vil resultere i, at et NAK frembringes i afhængighed af ethvert efterfølgende forsøg på at initiere en låseoperation på vegne af et apparat, der er forbundet med den fælles bus 107.
20 På grund af en mulig kapløbstilstand, som kan fremkomme, hvor både centralenheden og bussen forsøger mere eller mindre samtidigt at låse lageret, er der en begrænsning med hensyn til den minimumstid, som skal forløbe mellem det tidspunkt, hvor centralenhedens mi kroinstruktion, som sætter låst af centralenhed flip-flop'en’801 25 udføres, og mi kroinstruktionen som ser på udgangssignalet fra låst af bus flip-flop'en 820. Der er to tilfælde af interesse ved dette mere eller mindre samtidige forsøg på at låse lageret. Det første tilfælde, hvor centralenheden låser lageret ganske lidt, før bussen låser lageret, og det andet tilfælde, hvor centralenheden låser la-30 geret ganske lidt, efter at bussen låser lageret. Det andet tilfælde pålægger denne tidsbegrænsning med hensyn til minimumstiden, som skal forløbe mellem det tidspunkt, hvor centralenheden sætter låst af centralenhed flip-flop'en 801, og det tidspunkt, hvor den ser på udgangssignalet fra låst af bus flip-flop'en 820.
35 Hvis centralenheden i det første tilfælde blot sætter låst af centralenhed flip-flop'en 801 ved udførelse af mi krooperationen i blok 1001 i fig. 10 lidt, før en i nd/ud-kontrol enhed på bussen foretager en lagerlåseoperationsanmodning om lageret, vil låst af centralenhed flip-flop'en 801 blive sat, før signalet BSDCNN- fra
DK 165529 B
41 bussen, der indikerer datacyklus nu taktstyresynkroniserings flipflop' en 802. I dette tilfælde vil begyndelsen af buscyklen hørende til busforsøget på at låse lageret resultere i sætningen af synkroniserings flip-flop'en 802, hvilket igen vil resultere i, at dens 5 udgangssignal LOCKED- bliver et binært NUL. Når signalet L0CKED-bliver et binært NUL, vil det resultere i, at udgangssignalet fra NAND-porten 804 bliver et binært ET, og dette vil igen resultere i, at en negativ kvittering (NAK) frembringes i afhængighed af en låseanmodning fra bussen. Låst af bus flip-flop'en 820 vil ikke 10 blive taktstyret, fordi en NAK blev frembragt i stedet for en ACK, og bussen vil derfor ikke låse lageret, og lageret kan ikke låses af centralenheden, før denne fuldfører sin totale lagerlåseoperation (dvs. en læsning-modificering-skrivning i lageret). I dette tilfælde, hvor centralenheden låser lageret lidt før låseanmodningen fra 15 bussen, er der ingen begrænsning med hensyn til den forløbende tid mellem udførelsen af mi kroinstruktionen 1001, som sætter låst af centralenhed flip-flop'en og udførelsen af mikrooperationen i forbindelse med blok 1002, som ser på status af låst af bus flip-flop'en 820.
20 Det andet tilfælde forekommer, når kapløbet mellem centralen heden og bussen om låsning af lageret indtræffer, når bussen udfører låseanmodningen lidt, før det tidspunkt hvor centralenheden låser lageret ved at sætte låst af centralenhed flip-flop'en 801. Dette tilfælde er illustreret i fig. 9, hvor en i nd/ud-kontrol enhed har 25 foretaget en anmodning om låsning af lageret til tidspunktet A, datacyklus nusignalet BSDCNN- frembringes af ind/ud-kontrolenheden til tidspunktet 8, som ligger lidt forud for det tidspunkt, hvor mi krooperationen hørende til blok 1001 i fig. 10 udføres, og som sætter signalet SETLCK- i den binære NUL tilstand, således at låst 30 af centralenhed flip-flop'en 801 sættes til tidspunktet C, hvilket resulterer i, at signalet CPLMKE+ bliver et binært ET. I dette tilfælde kom det binære ET, som bliver til rådighed på dataindgangen D på synkroniserings flip-flop'en 802, netop for sent til at blive taktstyret ind i flip-flop'en 802, således at dens § udgangssignal 35 LOCKED- forbliver et binært ET. Da låst af bus flip-flop'en 820 til tidspunktet C endnu ikke vil være blevet låst af ACK, som frembringes til ind/ud-kontrolenheden, vil det andet signal til NAND-porten 804, signalet LOCKDD- også være et binært ET og derfor fuldstændigt aktivere NAND-porten 804. Til tidspunktet C er lageret derfor ikke
DK 165529 B
42 blevet låst af bussen, og synkroniserings flip-flop'en er ikke blevet sat, hvilket resulterer i, at udgangssignalet på NOR-porten 806 er et binært ET, hvilket vil bevirke sætningen af flip-flop'en 809, hvilket igen vil resultere i frembringelsen af en ACK til 5 ind/ud-kontrolenheden, som anmoder om udførelse af låseoperationen.
Frembringelsen af ACK signalet vil igen takt styre låst af bus flip-flop'en 820, hvilket resulterer i, at den sættes, så at dens Q udgangssignal L0CKDD+ vil ændres til den binære ET tilstand til tidspunktet D.
10 I dette andet tilfælde, hvor bussen har vundet kapløbet om at låse lageret, hvis tiden mellem det tidspunkt, hvor centralenheden sætter låst af centralenhed flip-flop'en 801, og det tidspunkt, hvor den ser på udgangssignalet fra låst af bus flip-flop'en 820 er for kort, er låst af bus flip-flop'en 820 eventuelt endnu ikke blevet 15 sat af det taktstyrende ACK signal. Centralenhedens mi krooperation, som undersøger tilstanden af låst af bus flip-flop'en 820 i forbindelse med blok 1002, kan derfor ikke forekomme senere efter sætningen af låst af centralenhed flip-flop'en 801, end det tager det udgangssignalet fra låst af bus flip-flop'en 820 at blive stabilt, så 20 at sætningen af låst af bus flip-flop'en 820 vil være synlig for mi krooperationen i blok 1002 i fig. 10. I den foretrukne udførelsesform er denne minimumstid ca. 60 ns, fordi taktstyringssignalet BSDCND+ på taktindgangene på flip-flop'ene 809 og 810 forekommer ca.
60 ns efter taktstyringssignalet BSDCNN+ til synkroniserings flip-25 flop'en 802. Tiden på 60 ns ser bort fra udbredelsesforsinkelserne i forbindelse med NAND-porten 811 og stabiliseringstiden for låst af bus flip-flop'en 820. Så længe centralenhedens firmware derfor ikke ser på udgangssignalet på låst af bus flip-flop'en 820 tidligere end 60 ns efter sætning af låst af centralenhed flip-flop'en 801, . vil 30 låsningen af lageret af bussen være synlig for centralenheden, og ingen aktion vil blive taget i den tid af centralenheden, hvor resultatet af kapløbet mellem centralenheden og bussen om låsning af lageret er uafgjort.
I den foretrukne udførelsesform, hvor centralenheden kræver ca.
35 240 ns for at udføre hver mi kroinstruktion i fig. 10, frembyder dette ikke nogen problem, fordi det er til sikret, at der er tilstrækkelig tid mellem udførelsen af mi krooperationen i blok 1001, som sætter låst af centralenhed flip-flop'en 801, og det tidspunkt hvor udgangssignalet fra låst af bus flip-flop'en 820 undersøges af
DK 165529B
43 mikrooperationerne i blok 1002. Hvis det omvendte var tilfældet, hvor mi krooperationerne tog mindre tid end tiden mellem taktstyrin-gen af synkroniserings flip-flop'en 802 og taktstyringen af låst af bus flip-flop'en 820, kunne firmware operationerne i fig. 10 imid-5 lertid stadig anvendes, så længe der var tilstrækkelige mikroopera-tioner udført mellem blok 1001 og blok 1002 til at sikre, at blokken 1002 ikke ville undersøge udgangssignalet fra flip-flop'en 820, før den havde haft tid til at sættes og stabilisere sig, når bussen netop slår centralenheden om låsning af lageret. Det skal bemærkes, 10 at selv om blokken 1002 ubetinget læser lageret, hver gang den udføres i den tid, hvor bussen har lageret låst, bliver lagerdataene kastet bort, fordi der sker en genlæsning, så det tilfælde forekommer aldrig, hvor data udlæst fra lageret, når lageret var låst af bussen, senere vil blive anvendt af centralenheden, fordi lageret 15 altid genlæses, hvis lageret var låst. Det skal også bemærkes, at selv om firmwaren i fig. 10 kombinerer læsningen af lageret og testningen af buslåsningen i én mi kroinstruktion, kan disse operationer finde sted i separate mikroinstruktioner, så længe løkken på busi åsemi krooperationen går forud for lagerlæsemikrooperationen.
20 Ud fra den foregående redegørelse vil det forstås, at låselo gikken 110 i fig. 8 og firmare operationerne i fig. 10 i kombination tilvejebringer en simpel mekanisme, hvorved to enheder, der arbejder asynkront, kan udføre låse- og låse-op operationer på en fælles ressource. I den foretrukne udførelsesform udføres dette ved hjælp 25 af centralenhedens firmware, når centralenheden har bestemt, at den før eller senere kræver, at den foretager en låseoperation på lageret og ubetinget sætter en centralenhedslåse flip-flop uden hensyn til, om lageret allerede er blevet låst af bussen. Efter at tilstrækkelig tid er forløbet til at tillade centralenheden at være 30 sikker på, at en buslåseoperation, som umiddelbart slår låsningen af lageret ved hjælp af centralenheden ud, har haft en mulighed for at sætte låst af bus flip-flop'en, afgiver centralenheden en læseordre og undersøger samtidigt låst af bus flip-flop'en. Hvis låst af bus flip-flip'en ikke er blevet sat, er centralenheden sikker på, at 35 centralenheden har vundet et eventuelt kapløb, og at et eventuelt senere forsøg af bussen på at udføre en låseoperation vil givet en negativ kvittering (NAK). Centralenheden kan derpå undersøge låst af bus flip-flop'en, og hvis lageret ikke er blevet sat af bussen, kan centralenheden derpå anvende de udlæste data, modificere dataene og
DK 165529 B
44 derpå skrive de modificerede data tilbage i lageret, og samtidig tilbagestiller centralenheden lås af centralenhed flip-flop'en. Hvis centralenhedens firmware finder, at bussen har vundet kapløbet og låst lageret, fortsætter centralenhedens firmware med at gennemløbe 5 en løkke, indtil det tidspunkt, hvor den finder, at låst af bus flip-flop'en er blevet tilbagestillet, på hvilket tidspunkt centralenheden kan udlæse lageret, modificere dataene og skrive de modificerede data tilbage i lageret og tilbagestille låst af centralenhed flip-flop'en.
10 Centralenheden sikres, at når lageret er blevet låst op af bussen, kan ingen efterfølgende busanmodninger låse lageret, fordi ethvert yderligere forsøg på at låse lageret fra bussen ikke vil resultere i, at lageret låses af bussen, og enheden på bussen, som anmoder om låsning af lageret, vil blive givet en negativ kvitte-15 ring, hvilket vil resultere i, at enheden senere igen prøver låse operationen. Låselogikken 110 i fig. 8 arbejder således, at et forsøg på at låse lageret fra bussen kun vil resultere i, at lageret låses, hvis lageret ikke er allerede er blevet låst af enten centralenheden eller bussen. Ethvert forsøg på at låse lageret fra 20 bussen, hvis lageret allerede er låst, vil resultere i, at en negativ kvittering frembringes til i nd/ud-kontrol enheden, og bussen vil senere igen prøve at låse lageret. Når lageret er blevet låst af bussen, vil det forblive låst, indtil det tidspunkt hvor ind/ud-kontrol enheden på bussen sender signal til lageret via en 25 låse-op følge, til hvilket tidspunkt lageret vil blive låst op af bussen. I den tid, hvor lageret er låst af enten centralenheden eller bussen, kan enhver enhed på bussen foretage en lagertilgangsanmodning, som ikke kræver en låse- eller låse-op lageroperation. I den foretrukne udførelsesform er der kun én centralenhed, og følgen 30 mellem det tidspunkt, hvor centralenheden sætter låst af centralenhed flip-flop'en 801, og det tidspunkt, hvor lagerskriveoperationen ved afslutningen af en lagerlåseoperation udføres, er ikke-afbryde-lig af nogen centralenhedsoperation, som vil udføre en lagerskriv-ning, der for tidligt ville tilbagestille låst af centralenhed 35 flip-flop'en 801.
I den foretrukne udførelsesform er lageret en fælles ressource, som kan allokeres til enten en enkelt centralenhed eller til et af flere apparater, der er forbundet med en fælles bus, men det er muligt at udvide denne logik til at håndtere det tilfælde, hvor der
DK 165529B
45 er flere centralenheder eller andre typer af apparater. Selv om opfindelsen er blevet beskrevet i forbindelse med den foretrukne udførelsesform, hvor lageret er en fælles ressource og er fælles for en flerhed af enheder, der er forbundet med en fælles bus og en 5 centralenhed, er opfindelsen lige såvel anvendelig ved andre typer af fælles ressourcer, der skal tildeles en individuel bruger for en bestemt operation, under hvilken andre brugere ikke kan tillades tilgang til ressourcen.
10 15 20 25 30 35

Claims (3)

1. Låseapparat til anvendelse i et databehandl ingsanlsg og med en første enhed (101,102) af en første type og en flerhed af andre 5 enheder (103,104,108) af en anden type, hvor den første enhed er indrettet til at anvendes af alle de andre enheder, og når en af de andre enheder udfører en bestemt slags operation (låseoperation), som anvender den første enhed, skal de øvrige af de andre enheder forhindres i at udføre den bestemte type af operation, og når en af 10 de andre enheder forlanger at udføre den nævnte bestemte type af operation, frembringer den et tilsvarende anmodningssignal (BSLOCK,SETLCK), hvilket låseapparat (110) styrer den første enhed for at reagere rigtigt på kun et af de nævnte anmodningssignaler og omfatter første lagerorganer (820) til modtagelse af et anmodnings-15 signal (BSLOCK) fra en af de andre enheder, og når det aktiveres af et første signal (MEACKR), som angiver, at den første enhed er i en tilstand for modtagelse af anmodningen, til lagring af en indikation for, at anmodningen er blevet tilstået, kendetegnet ved, at det yderligere omfatter: 20 andre lagerorganer (801) til modtagelse af et anmodningssignal (SETLCK) fra en anden af de andre enheder og til uden hensyn til tilstanden af den første enhed at lagre en indikation for, at den anden enhed har foretaget en sådan anmodning, tredie lagerorganer (802) til modtagelse af et signal svarende til 25 indikationen, som er lagret af de andre lagerorganer og til, når de er aktiveret i en tid (BSDCNN) i operationscyklen for de andre enheder, hvori et anmodningssignal kan føres til de første lagerorganer, at lagre en indikation for, at anmodningen, som repræsenteres af signalet fra de andre lagerorganer, er blevet tilstået, og 30 et logikkredsløb (804,805,806,809,811), som er koblet til de første og tredie lagerorganer og indrettet til i afhængighed af signaler (LOCKDD,LOCKED) svarende til indikationerne indeholdt deri (i) at muliggøre frembringelse af det første signal (MEACKR), hvis hverken de første lagerorganer eller de tredie lagerorganer indeholder en 35 indikation for, at en anmodning er blevet tilstået, eller (ii) at forhindre frembringelse af det første signal, hvis nogen af de første eller tredie lagerorganer indeholder en indikation om, at en anmodning er blevet tilstået.
2. Apparat ifølge krav 1, kendetegnet ved, at i 47 DK 165529 B databehandlingsanlægget, som indbefatter apparatet, omfatter den nævnte flerhed af andre enheder en flerhed af styreenheder (103,104), der er koblet til den første enhed af en fælles bus (107) og en processor (108), der separat er koblet til den første enhed, 5 hvor den første enhed er en lagerenhed (101,102), og hvor hver af styreenhederne frembringer et (BSLOCK) anmodningssignal, og processoren frembringer et (SETLCK) anmodningssignal.
3. Apparat ifølge krav 2, kendetegnet ved, at hver af de andre enheder frembringer et signal til tilbagestilling af det 10 tilsvarende af det første, andet og tredie lagerelement, når denne enhed har fuldført sin bestemte operationstype. 15 20 25 30 35
DK323084A 1983-07-01 1984-06-29 Apparat til at forhindre tilgang til en faelles ressource DK165529C (da)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51047283 1983-07-01
US06/510,472 US4587609A (en) 1983-07-01 1983-07-01 Lockout operation among asynchronous accessers of a shared computer system resource

Publications (4)

Publication Number Publication Date
DK323084D0 DK323084D0 (da) 1984-06-29
DK323084A DK323084A (da) 1985-01-02
DK165529B true DK165529B (da) 1992-12-07
DK165529C DK165529C (da) 1993-04-19

Family

ID=24030868

Family Applications (1)

Application Number Title Priority Date Filing Date
DK323084A DK165529C (da) 1983-07-01 1984-06-29 Apparat til at forhindre tilgang til en faelles ressource

Country Status (12)

Country Link
US (1) US4587609A (da)
EP (1) EP0130593B1 (da)
JP (1) JPS6039266A (da)
KR (1) KR900005453B1 (da)
AU (1) AU572161B2 (da)
CA (1) CA1211854A (da)
DE (1) DE3482630D1 (da)
DK (1) DK165529C (da)
ES (1) ES8606687A1 (da)
FI (1) FI79621C (da)
NO (1) NO166985C (da)
YU (1) YU45630B (da)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4706190A (en) * 1983-09-22 1987-11-10 Digital Equipment Corporation Retry mechanism for releasing control of a communications path in digital computer system
IT1206331B (it) * 1983-10-25 1989-04-14 Honeywell Inf Systems Architettura di sistema di elaborazione dati.
ES2042510T3 (es) * 1986-04-02 1993-12-16 Siemens Ag Procedimiento para la activacion de una memoria comun de un sistema multiprocesador constituido por sistemas microprocesadores individuales.
JPH0619760B2 (ja) * 1986-04-23 1994-03-16 日本電気株式会社 情報処理装置
US5115499A (en) * 1986-05-14 1992-05-19 Sequoia Systems, Inc. Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code
US5276807A (en) * 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US5341510A (en) * 1987-05-01 1994-08-23 Digital Equipment Corporation Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor
US4949239A (en) * 1987-05-01 1990-08-14 Digital Equipment Corporation System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer system
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US4937733A (en) * 1987-05-01 1990-06-26 Digital Equipment Corporation Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
US4941083A (en) * 1987-05-01 1990-07-10 Digital Equipment Corporation Method and apparatus for initiating interlock read transactions on a multiprocessor computer system
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5291581A (en) * 1987-07-01 1994-03-01 Digital Equipment Corporation Apparatus and method for synchronization of access to main memory signal groups in a multiprocessor data processing system
IN169634B (da) * 1987-07-01 1991-11-23 Digital Equipment Corp
US5062044A (en) * 1987-09-29 1991-10-29 Western Digital Corporation Temporary bus master for use in a digital system having asynchronously communicating sub-systems
AU604063B2 (en) * 1987-10-13 1990-12-06 Honeywell Bull Inc. Circuit for preventing lock-out of high priority requests to a system controller
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
US4975870A (en) * 1988-02-25 1990-12-04 Data General Corporation Apparatus for locking a portion of a computer memory
US5111423A (en) * 1988-07-21 1992-05-05 Altera Corporation Programmable interface for computer system peripheral circuit card
US5249285A (en) * 1988-08-01 1993-09-28 Stenograph Corporation RAM lock device and method for a text entry system
US5163141A (en) * 1988-08-01 1992-11-10 Stenograph Corporation RAM lock device and method for a text entry system
US6304987B1 (en) * 1995-06-07 2001-10-16 Texas Instruments Incorporated Integrated test circuit
JPH02103656A (ja) * 1988-10-12 1990-04-16 Fujitsu Ltd 主記憶参照の遂次化制御方式
US5175861A (en) * 1988-10-14 1992-12-29 Nec Corporation Lock processing system
JPH02306355A (ja) * 1988-10-25 1990-12-19 Apollo Computer Inc バスロックシステム
US5175829A (en) * 1988-10-25 1992-12-29 Hewlett-Packard Company Method and apparatus for bus lock during atomic computer operations
US5167022A (en) * 1988-10-25 1992-11-24 Hewlett-Packard Company Multiprocessor bus locking system with a winning processor broadcasting an ownership signal causing all processors to halt their requests
US5222219A (en) * 1988-10-25 1993-06-22 Hewlett-Packard Company Pipeline computer system having write order preservation
US5007054A (en) * 1988-12-28 1991-04-09 Pitney Bowes Inc. Network and protocol for real-time control of machine operations
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5483518A (en) 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
US5131081A (en) * 1989-03-23 1992-07-14 North American Philips Corp., Signetics Div. System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers
US5182809A (en) * 1989-05-31 1993-01-26 International Business Machines Corporation Dual bus microcomputer system with programmable control of lock function
JP3005250B2 (ja) * 1989-06-30 2000-01-31 テキサス インスツルメンツ インコーポレイテツド バスモニター集積回路
US5191652A (en) * 1989-11-10 1993-03-02 International Business Machines Corporation Method and apparatus for exploiting communications bandwidth as for providing shared memory
US5161227A (en) * 1989-11-13 1992-11-03 International Business Machines Corporation Multilevel locking system and method
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5276847A (en) * 1990-02-14 1994-01-04 Intel Corporation Method for locking and unlocking a computer address
US6675333B1 (en) 1990-03-30 2004-01-06 Texas Instruments Incorporated Integrated circuit with serial I/O controller
US5214778A (en) * 1990-04-06 1993-05-25 Micro Technology, Inc. Resource management in a multiple resource system
US5168564A (en) * 1990-10-05 1992-12-01 Bull Hn Information Systems Inc. Cancel mechanism for resilient resource management and control
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US5598552A (en) * 1991-04-17 1997-01-28 Sierra Semiconductor Corporation Error free data transfers
US5237694A (en) * 1991-05-30 1993-08-17 Advanced Micro Devices, Inc. Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor
JP2739786B2 (ja) * 1991-07-26 1998-04-15 日本電気株式会社 マルチ・プロセッサシステム
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
CA2086691C (en) * 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
US5274823A (en) * 1992-03-31 1993-12-28 International Business Machines Corporation Interrupt handling serialization for process level programming
US5768548A (en) * 1992-04-15 1998-06-16 Intel Corporation Bus bridge for responding to received first write command by storing data and for responding to received second write command by transferring the stored data
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
US5423044A (en) * 1992-06-16 1995-06-06 International Business Machines Corporation Shared, distributed lock manager for loosely coupled processing systems
US5392433A (en) * 1992-09-25 1995-02-21 International Business Machines Corporation Method and apparatus for intraprocess locking of a shared resource in a computer system
JP2874488B2 (ja) * 1992-10-30 1999-03-24 富士通株式会社 処理装置
GB9314860D0 (en) * 1993-07-16 1993-09-01 D2B Systems Co Ltd Communication bus system with mitigation of slave station locking problem and master station for use in such communication system
US5526524A (en) * 1993-12-23 1996-06-11 International Business Machines Corporation Method and system for management of locked objects in a computer supported cooperative work environment
US5673384A (en) * 1995-10-06 1997-09-30 Hewlett-Packard Company Dual disk lock arbitration between equal sized partition of a cluster
US5969538A (en) 1996-10-31 1999-10-19 Texas Instruments Incorporated Semiconductor wafer with interconnect between dies for testing and a process of testing
IE960753A1 (en) * 1996-10-29 1998-05-06 Sportables Limited A method and apparatus for controlling access by two¹computer processors to a shared resource
US6041376A (en) * 1997-04-24 2000-03-21 Sequent Computer Systems, Inc. Distributed shared memory system having a first node that prevents other nodes from accessing requested data until a processor on the first node controls the requested data
US6076126A (en) * 1997-06-30 2000-06-13 Emc Corporation Software locking mechanism for locking shared resources in a data processing system
US5987550A (en) * 1997-06-30 1999-11-16 Emc Corporation Lock mechanism for shared resources in a data processing system
US6078981A (en) * 1997-12-29 2000-06-20 Intel Corporation Transaction stall technique to prevent livelock in multiple-processor systems
US6408413B1 (en) 1998-02-18 2002-06-18 Texas Instruments Incorporated Hierarchical access of test access ports in embedded core integrated circuits
US6405335B1 (en) 1998-02-25 2002-06-11 Texas Instruments Incorporated Position independent testing of circuits
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
US6381663B1 (en) 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
US7058862B2 (en) 2000-05-26 2006-06-06 Texas Instruments Incorporated Selecting different 1149.1 TAP domains from update-IR state
US6651088B1 (en) * 1999-07-20 2003-11-18 Hewlett-Packard Development Company, L.P. Method for reducing coherent misses in shared-memory multiprocessors utilizing lock-binding prefetchs
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6490642B1 (en) * 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6728915B2 (en) 2000-01-10 2004-04-27 Texas Instruments Incorporated IC with shared scan cells selectively connected in scan path
US6769080B2 (en) 2000-03-09 2004-07-27 Texas Instruments Incorporated Scan circuit low power adapter with counter
EP1320841A1 (en) * 2000-09-28 2003-06-25 Scientific Learning Corp. Method and apparatus for automated training of language learning skills
US7111228B1 (en) 2002-05-07 2006-09-19 Marvell International Ltd. System and method for performing parity checks in disk storage system
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7007114B1 (en) * 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7209919B2 (en) * 2003-06-11 2007-04-24 International Business Machines Corporation Library server locks DB2 resources in short time for CM implicit transaction
US7526691B1 (en) 2003-10-15 2009-04-28 Marvell International Ltd. System and method for using TAP controllers
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) * 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US8032674B2 (en) * 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7757009B2 (en) * 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) * 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) * 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
JP4576433B2 (ja) * 2006-02-06 2010-11-10 富士通株式会社 情報処理装置、演算処理装置、情報処理装置の制御方法及びプログラム
US7797473B2 (en) * 2008-06-05 2010-09-14 Dell Products, Lp System for executing system management interrupts and methods thereof
US9292533B2 (en) * 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system
US9575813B2 (en) * 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3398405A (en) * 1965-06-07 1968-08-20 Burroughs Corp Digital computer with memory lock operation
US3641505A (en) * 1969-06-25 1972-02-08 Bell Telephone Labor Inc Multiprocessor computer adapted for partitioning into a plurality of independently operating systems
US3623011A (en) * 1969-06-25 1971-11-23 Bell Telephone Labor Inc Time-shared access to computer registers
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors
US3725872A (en) * 1971-03-03 1973-04-03 Burroughs Corp Data processing system having status indicating and storage means
US3820079A (en) * 1971-11-01 1974-06-25 Hewlett Packard Co Bus oriented,modular,multiprocessing computer
US3827029A (en) * 1972-09-25 1974-07-30 Westinghouse Electric Corp Memory and program protection system for a digital computer system
JPS5645951B2 (da) * 1973-05-21 1981-10-29
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US4318182A (en) * 1974-04-19 1982-03-02 Honeywell Information Systems Inc. Deadlock detection and prevention mechanism for a computer system
US4000485A (en) * 1975-06-30 1976-12-28 Honeywell Information Systems, Inc. Data processing system providing locked operation of shared resources
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
JPS5443644A (en) * 1977-09-13 1979-04-06 Fujitsu Ltd Processing system for deadlock automatic release at exclusive control time
US4136386A (en) * 1977-10-06 1979-01-23 International Business Machines Corporation Backing store access coordination in a multi-processor system
JPS6016664B2 (ja) * 1977-10-28 1985-04-26 豊田工機株式会社 デ−タ転送装置
US4320455A (en) * 1978-01-09 1982-03-16 Honeywell Information Systems Inc. Queue structure for a data processing system
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4521848A (en) * 1978-10-31 1985-06-04 Honeywell Information Systems Inc. Intersystem fault detection and bus cycle completion logic system
US4237534A (en) * 1978-11-13 1980-12-02 Motorola, Inc. Bus arbiter
US4488217A (en) * 1979-03-12 1984-12-11 Digital Equipment Corporation Data processing system with lock-unlock instruction facility
JPS5847468Y2 (ja) * 1979-09-13 1983-10-29 横河電機株式会社 マイクロプロセツサ相互排除回路
US4319324A (en) * 1980-01-08 1982-03-09 Honeywell Information Systems Inc. Double word fetch system
US4323967A (en) * 1980-04-15 1982-04-06 Honeywell Information Systems Inc. Local bus interface for controlling information transfers between units in a central subsystem
US4415972A (en) * 1980-12-29 1983-11-15 Sperry Corporation Dual port memory interlock
US4507730A (en) * 1981-10-01 1985-03-26 Honeywell Information Systems Inc. Memory system with automatic memory configuration
US4558429A (en) * 1981-12-17 1985-12-10 Honeywell Information Systems Inc. Pause apparatus for a memory controller with interleaved queuing apparatus
US4484270A (en) * 1982-07-07 1984-11-20 Sperry Corporation Centralized hardware control of multisystem access to shared and non-shared subsystems

Also Published As

Publication number Publication date
NO166985B (no) 1991-06-10
FI842558A0 (fi) 1984-06-26
JPH0414370B2 (da) 1992-03-12
CA1211854A (en) 1986-09-23
ES533831A0 (es) 1986-04-16
YU114284A (en) 1987-06-30
DK165529C (da) 1993-04-19
KR850001571A (ko) 1985-03-30
EP0130593A3 (en) 1986-05-21
DE3482630D1 (de) 1990-08-09
FI79621B (fi) 1989-09-29
JPS6039266A (ja) 1985-03-01
FI842558A (fi) 1985-01-02
DK323084A (da) 1985-01-02
ES8606687A1 (es) 1986-04-16
AU2993884A (en) 1985-01-03
EP0130593A2 (en) 1985-01-09
NO842649L (no) 1985-01-02
KR900005453B1 (ko) 1990-07-30
EP0130593B1 (en) 1990-07-04
DK323084D0 (da) 1984-06-29
AU572161B2 (en) 1988-05-05
NO166985C (no) 1991-09-18
YU45630B (sh) 1992-07-20
US4587609A (en) 1986-05-06
FI79621C (fi) 1990-01-10

Similar Documents

Publication Publication Date Title
DK165529B (da) Apparat til at forhindre tilgang til en faelles ressource
US4763249A (en) Bus device for use in a computer system having a synchronous bus
US5412788A (en) Memory bank management and arbitration in multiprocessor computer system
US5410710A (en) Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
CA1218467A (en) Arbitration mechanism for assigning control of a communications path in a digital computer system
US5459840A (en) Input/output bus architecture with parallel arbitration
US4661905A (en) Bus-control mechanism
EP0301610B1 (en) Data processing apparatus for connection to a common communication path in a data processing system
EP0140751A2 (en) Cache invalidation mechanism for multiprocessor systems
US5148545A (en) Bus device which performs protocol confidential transactions
JPS5922251B2 (ja) 多数未完情報要求を与えるシステム
US5101479A (en) Bus device for generating and responding to slave response codes
US4769769A (en) Communication system including a first-in-first-out buffer
US4236203A (en) System providing multiple fetch bus cycle operation
US5119292A (en) Bus device which abstains from round robin arbitration
WO1996036912A2 (en) Address and data bus arbiter for pipelined transactions on a split bus
US4622630A (en) Data processing system having unique bus control protocol
US5828891A (en) Multilevel interrupt device
US4896266A (en) Bus activity sequence controller
US4245299A (en) System providing adaptive response in information requesting unit
EP0139568B1 (en) Message oriented interrupt mechanism for multiprocessor systems
US5787263A (en) Method of an apparatus for controlling data transfer
US5150466A (en) Flexible distributed bus priority network
US5377334A (en) Fast asynchronous resource master-slave combination
EP0340347A2 (en) Bus arbitration system

Legal Events

Date Code Title Description
PBP Patent lapsed