[go: up one dir, main page]

FI79621C - Laosfunktionsfoerfarande foer ett gemensamt redskap. - Google Patents

Laosfunktionsfoerfarande foer ett gemensamt redskap. Download PDF

Info

Publication number
FI79621C
FI79621C FI842558A FI842558A FI79621C FI 79621 C FI79621 C FI 79621C FI 842558 A FI842558 A FI 842558A FI 842558 A FI842558 A FI 842558A FI 79621 C FI79621 C FI 79621C
Authority
FI
Finland
Prior art keywords
signal
bus
memory
type
processor
Prior art date
Application number
FI842558A
Other languages
English (en)
Swedish (sv)
Other versions
FI79621B (fi
FI842558A0 (fi
FI842558A (fi
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 FI842558A0 publication Critical patent/FI842558A0/fi
Publication of FI842558A publication Critical patent/FI842558A/fi
Publication of FI79621B publication Critical patent/FI79621B/fi
Application granted granted Critical
Publication of FI79621C publication Critical patent/FI79621C/fi

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)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Arc Welding Control (AREA)
  • Numerical Control (AREA)
  • Hardware Redundancy (AREA)
  • Lock And Its Accessories (AREA)

Description

1 79621
Yhteisen välineen lukitustoimintamenetelmä ja -laite. Läsfunktionsförfarande för ett gemensamt redskap.
Esillä oleva keksintö kohdistuu yleisesti tietojenkäsittelyjärjestelmiin ja täsmällisemmin lukitustoimintaan, jonka vaikutuksesta yhteisen välineen useista käyttäjistä yksi saa yksinoikeuden yhteisen välineen käyttöön sinä aikana, jonka yhteinen väline on lukittuna.
Järjestelmässä, jossa on useita yhteiseen välineeseen kytkettyjä laitteita, on oltava järjestyksenpitojärjestelmiä, jotka voivat antaa yhdelle käyttäjälaitteista yksinoikeuden yhteisen välineen käyttöön tietyn tyyppisiä toimintoja varten. Tämän yhden yksinkäyttöä edellyttävää toimintaa suorittavan laitteen yksinkäyttövaiheen aikana toinen laite saattaa haluta suorittaa toimintaa, joka myös edellyttää yhteisen välineen yksinkäyttöä. Tämä ongelma tulee monimutkaisemmaksi, kun tällaisten laitteiden joukkoon sisältyy esimerkiksi yksi tai useampi prosessori, yksi tai useampi muistiyksikkö ja erityyppisiä oheislaitteita, kuten magneettinauhatallennuslaitteita, levymuistilaitteita, kortinlukulaitteita ja vastaavia.
Tunnettuun tekniikkaan sisältyy erilaisia menetelmiä ja lait-| teitä tällaisen järjestelmän yhteenkytkemiseksi. Tällaisiin tunnettuihin järjestelmiin sisältyy järjestelmiä, joissa eri laitteiden välillä on yhteiset tietoväyläyhteydet, ja järjestelmiä, joissa on erikoisyhteyksiä. Tällaisiin järjestelmiin voi myös väylätyypin yhteydessä sisältyä mahdollisuus synkroniseen tai asynkroniseen toimintaan. Jotkut tällaiset järjestelmät edellyttävät riippumatta tavasta, jolla laitteet on kytketty tai jolla niitä käytetään, että prosessori ohjaa kaikkea tätä tiedonsiirtoa väylällä, vaikka siirto tapahtuu esimerkiksi muiden laitteiden kuin prosessorin välillä.
2 79621
Eräs tällainen rakennekaavio on esitetty US-patentissa 4 000 485, jonka nimityksenä on "Data Processing System Providing Lock Operation of Shared Resources". Tässä patentissa on esitetty tietojenkäsittelyjärjestelmä, jossa yhteinen väline on päämuisti, joka on kytketty yhteiseen väylään, jonka kautta kaikki.siirrot laiteohjaimille ja laiteohjaimilta ja keskusyksiköltä ja keskusyksikölle tapahtuvat. Jos keskusyksikkö haluaa tässä järjestelmässä suorittaa päämuistin muistipaikan sisällön luku-muunnos-kirjoitustoiminnan, tietojenkäsittelyjärjestelmä ensin lukitsee luettavan ja päivitettävän muistipaikan sisältävän päämuistin, niin että niiden useiden yhteisväyläjaksojen aikana, jotka tarvitaan ensin muistipaikan kirjoittamiseen ja tämän jälkeen sen uudelleenkirjoittamiseen, toiminta voidaan suorittaa keskeytyksittä, ilman että jokin toinen keskusyksikkö tai laiteohjain voisi suorittaa toista lukittua toimintaa ennen ensimmäisen lukitun toiminnan loppuunsuorittamista. Vaikka yhteisväylä on asynkroninen väylä (jokin laite, joka haluaa suorittaa siirron yhteisväylän kautta, voi pyytää väylän käyttöä asynkronisesti koska tahansa, mikäli väylä ei ole jo käytössä), tässä järjestelmässä on prioriteetin ratkaisulaite, niin että yhteiseen välineeseen liittyvän lukitusmekanismin ei tarvitse kyetä käsittelemään tapausta, jossa ensimmäinen pyytäjä lukitsee yhteisen välineen ja toinen pyytäjä, joka haluaa suorittaa lukitun toiminnan yhteisellä välineellä, antaa asynkronisesti toisen lukituspyynnön.
Kaksiporttisten muistien kehittämisen myötä on tullut mahdolliseksi, että useammat käyttäjät voivat antaa samanaikaisia pyyntöjä lukitun toiminnan suorittamiseksi yhteisellä välineellä. Esimerkiksi jos ensimmäinen portti on kytketty yhteisväylään, joka yhdistää laiteohjaimet päämuistiin, ja toinen portti on kytketty keskusyksikköön, on mahdollista, että laiteohjain voi yrittää suorittaa päämuistin lukitustoimintaa samalla hetkellä kun keskusyksikkö haluaa suorittaa lukitustoiminnan. Tämän 3 79621 vuoksi tarvitaan yhteisen välineen lukitusmekanismi, jossa voidaan käsitellä kilpailevia asynkronisia pyyntöjä useilta pyytä-j iltä.
Esillä olevan keksinnön tarkoituksena on saada aikaan parannettu yhteisten välineiden lukitusmekanismi, jossa voidaan ratkaista useat yhteisen välineen asynkroniset lukituspyynnöt.
Esillä olevan keksinnön vielä eräänä tarkoituksena on saada aikaan kustannuksiltaan edullinen yhteisten välineiden lukitusmekanismi .
Tämä keksintö on yksilöity täsmällisesti oheisissa patenttivaatimuksissa. Tämän keksinnön edellä esitetyt ja muut päämäärät voidaan ymmärtää tutustumalla seuraavaan piirustuksiin liittyvään selitykseen.
Keksinnön edellä mainitut ja muut päämäärät saavutetaan aikaansaamalla lukituslogiikka tietojenkäsittelyjärjestelmässä, jossa on joukko yksiköitä, jotka on kytketty toisiinsa yhteisväylän avulla informaation siirtämiseksi yksiköiden joukon minkä tahansa kahden yksikön välillä. Yksiköiden joukkoon sisältyy ainakin ensimmäinen ja toinen yksikkö ensimmäisen yksikön ollessa väline, joka on yhteinen ainakin toiselle yksikölle ja kolmannelle yksikölle ja jolloin toinen yksikkö ja kolmas yksikkö toimivat asynkronisesti toistensa suhteen ja molemmat voivat pyytää ensimmäisen yksikön keskeytyksetöntä käyttöä. Ensimmäinen yksikkö sisältää ensimmäiset muistielimet lukitussignaalin tallentamiseksi yksiköiden joukon toisesta yksiköstä tai jostain muusta yksiköstä lukitussignaalin ilmoittaessa, että lukitussignaalin antava toinen tai muu yksikkö haluaa keskeytyksetöntä pääsyä ensimmäiseen yksikköön. Ensimmäisessä yksikössä on toiset muistielimet, jotka tallentavat ilmoituksen siitä, että kolmas yksikkö haluaa keskeytyksetöntä pääsyä ensimmäiseen 4 79621 yksikköön. Laitteessa on kolmannet muistielimet, jotka tallentavat toisten muistielimien ilmoituksen sillä hetkellä, kun toinen yksikkö antaa lukitussignaalin. Ensimmäinen yksikkö on lisäksi varustettu logiikalla, joka kehittää ensimmäisten muistielimien ja kolmansien muistielimien ilmoituksen vaikutuksesta positiivisen kuittauksen toiselle yksikölle, jos toisen yksikön pyytäessä keskeytyksetöntä pääsyä yhteiseen yksikköön ensimmäiset muistielimet tai toiset muistielimet eivät ilmaise, että keskeytyksetöntä pääsyä yhteiseen välineeseen on pyydetty. Tämä sama logiikka kehittää myös negatiivisen vastauksen toiselle yksikölle, jos toisen yksikön antaessa lukitussignaalin ensimmäiset muistielimet tai kolmannet muistielimet ilmaisevat, että keskeytyksetöntä pääsyä yhteiseen välineeseen on pyydetty. Laite on myös varustettu logiikalla lukitussignaalin tilan tallentamiseksi ensimmäisiin muistielimiin aina kun positiivinen kuittaus kehitetään jollekin yhteisväylän useista yksiköistä. Ensimmäiseen yksikköön sisältyy lisäksi logiikka, joka reagoi lukituksenavaussignaaliin siten, että ensimmäiset muistielimet nollataan, jos ensimmäinen yksikkö kehittää positiivisen kuittauksen yhteisväylän jonkin useista yksiköistä antaman lukituk-senavaussignaalin vaikutuksesta. Laitteessa on myös logiikka, joka estää kolmatta yksikköä pääsemästä ensimmäiseen yksikköön, jos ensimmäiset muistielimet ilmaisevat, että jokin useista yksiköistä haluaa keskeytyksetöntä pääsyä yhteiseen yksikköön. Laitteessa on lisäelimet toisten muistielimien nollaamiseksi, kun toinen yksikkö on suorittanut loppuun toiminnan, joka edellyttää keskeytyksetöntä pääsyä yhteiseen yksikköön.
Tapa, jolla esillä olevan keksinnön menetelmä suoritetaan, ja tapa, jolla esillä olevan keksinnön laite on konstruoitu, sekä sen toiminta voidaan ymmärtää parhaiten seuraavan yksityiskohtaisen selityksen avulla oheisiin piirustuksiin liittyen, joissa vastaavat elementit on esitetty samoilla viitenumeroilla useissa kuvioissa ja joissa: 5 79621
Kuvio 1 on yleislohkokaavio tietojenkäsittelyjärjestelmästä, joka sisältää esillä olevan keksinnön lukituslogiikan,
Kuviot 2-6 esittävät kuvion 1 tietojenkäsittelyjärjestelmän yhteisväylän kautta siirrettyjen eri tietojen muotoa,
Kuvio 7 esittää kuvion 1 tietojenkäsittelyjärjestelmän väylän toiminnan ajoituskaaviota,
Kuvio 8 esittää esillä olevan keksinnön lukituslogiikan logiik-kakaaviota,
Kuvio 9 esittää kuvion 8 lukituslogiikan toimintaesimerkin ajoituskaaviota ja
Kuvio 10 esittää kuvion 1 tietojenkäsittelyjärjestelmän prosessorin suorittamien mikro-operaatioiden lohkokaaviota suoritettaessa lukittua muistitoimintaa kuvion 8 luki-tuslogiikkaa käyttämällä.
LUKITUSLOGIIKAN SISÄLTÄVÄ TIETOJENKÄSITTELYJÄRJESTELMÄ
Kuvio 1 esittää parhaana pidetyn suoritusmuodon tietojenkäsittelyjärjestelmää, joka sisältää prosessori/muistikortin 100, muistimodulin 1 101, muistimodulin 2 102, ensimmäisen 1/0-ohjaimen 103 ja siihen liittyvän 1/0-laitteen 105 ja toisen 1/0-ohjaimen 104 ja siihen liittyvän 1/0-laitteen 106 ja yhteisväylän 107. Kuviossa 1 eri komponentteja yhdistävät ohuet viivat ovat ohjauslinjoja ja komponentteja yhdistävät paksut viivat ovat tieto/osoitelinjoja.
Prosessori/muistikortti 100 on yksi painopiirilevy, joka on yhdistetty yhteisväylään 107. Prosessori/muistikortti 100 sisältää sekä prosessorilogiikan 108 että muistiohjainlogiikan 109.
6 79621
Prosessori/muistikortilla 100 ei ole päämuistia. PäMmuisti tietojen ja ohjelman käskyjen säilyttämiseksi on muodostettu kytkemällä yksi tai useampia muistimoduleja, kuten muistimoduli 1 101 ja muistimoduli 2 102 prosessori/muistikorttiin 100. Kaikki pyynnöt muistimodulin 1 ja muistimodulin 2 sisältämään päämuistiin pääsemiseksi, jotka voivat tulla joko prosessorilta tai 1/0-ohjaimelta, kulkevat muistiohjainlogiikan 109 kautta. Muistiohjainlogiikka 109 on kaksiporttinen. Ensimmäinen portti on kytketty yhteisväylään 107, niin että joko 1/0-ohjain 103 tai 1/0-ohjain 104 voivat suorittaa muistinkäyttöpyyntöjä ja tiedon siirtoja yhteisväylän 107 kautta. Prosessorilogiikan 108 muistinkäyttöpyynnöt tietoja tai ohjelmakäskyjä varten annetaan tavallisesti suoraan prosessorilogiikalta 108 muistinohjainlogiikan 109 toiseen tuloon yhteisväylää 107 käyttämättä.
Parhaana pidetyssä suoritusmuodossa kumpikin muistimoduli 101 ja 102 voi sisältää esimerkiksi 256 k (lk = 1024) sanaa päämuistia. Parhaana pidetyssä suoritusmuodossa jokainen muistin sana sisältää 16 bittiä tietoa, joka voidaan osoittaa myös kahtena 8-bitin sanana. Parhaana pidetyssä suoritusmuodossa muisti muodostuu MOS puolijohdepiireistä jokaisen muistipaikan sisältäessä itse asiassa 22 bittiä informaatiota. Kuuttatoista biteistä käytetään sanan 16 tietobittiä varten ja 6 bittiä käytetään virheenilmaisuun ja -korjaukseen (EDAC). Kumpikin muistimoduli muodostuu erillisestä fysikaalisesta painopiirilevys-tä, joka sisältää 88 MOS muistipiiriä, joissa on kussakin 64 kbittiä. Muistinohjauslogiikka 109 sisältää lukituslogiikan 110, prioriteetin ratkaisuelimen 111 ja virkistyslogiikan 112. Muistinohjauslogiikka 109 sisältää lisäksi ajoitusyksikön, vir-heenilmaisu ja -korjauslogiikan ja piirinosoituslogiikan, joita ei ole esitetty kuviossa 1.
Lukituslogiikan 110 tehtävänä on lukita päämuisti prosessorin tai 1/0-ohjaimen komennosta estämään joko 1/0-ohjaimen tai pro- 7 79621 sessorin suorittaman muun lukitustoiminnan, kunnes päämuistin lukitus poistetaan. Prioriteetin ratkaisulogiikan 111 tehtävänä on suorittaa ratkaisu päämuistin kilpailevien käyttöpyyntöjen välillä. Prioriteetti on ratkaistava päämuistin käyttöpyyntöjen välillä, jotka voivat tulla: prosessorilta 108, 1/0-ohjaimelta 103 tai 104 yhteisväylän 107 kautta tai virkistyslogiikalta 112.
Prioriteetin ratkaisulogiikka 111 on toteutettu siten, että aina päämuistin vapautuessa suoritetaan ratkaisujakso, jossa tarkastetaan kaikki kolme mahdollista käyttöpyyntöjen lähdettä ja päämuisti annetaan ensin virkistyslogiikalta 112 tulevalle käyttöpyynnölle. Jos virkistyspyyntöä ei ole olemassa, pMämuis-ti annetaan yhteisväylältä 107 tulevalle pyynnölle, joka on lähtöisin 1/0-ohjaimesta. Jos virkistyspyyntöä eikä väyläpyyn-töä ei ole olemassa, päämuisti annetaan prosessorille 108, jos se on antanut pyynnön. Prioriteetin ratkaisulogiikan 111 toiminta on selitetty yksityiskohtaisemmin US-patenttihakemuksessa Serial No. 449 703, "Priority Resolver With Lowest Priority Level Having Shortest Logic Path", joka sisällytetään tähän viitteenä. Virkistyslogiikan 112 tehtävänä on suorittaa muisti-modulin 1 101 ja muistimodulin 2 102 haihtuviin MOS muistipii-reihin tallennetun tiedon jaksottainen virkistys.
VÄYLÄPYYNTÖ- JA VASTAUSJAKSOT
Parhaana pidetyn järjestelmän yhteisväylä 107 aikaansaa tiedonsiirtotien järjestelmän kahden yksikön välille. Yhteisväylä 107 on toteutukseltaan asynkroninen mahdollistaen nopeuksiltaan erilaisten yksiköiden kytkemisen väylään siten, että ne toimivat tehokkaasti samassa järjestelmässä. Esillä olevan keksinnön väylän toteutus mahdollistaa sellaisen liikenteen, kuten muis-tisiirtojen, keskeytysten, tietojen, tilojen ja komentojen siirtämisen. Tällaisen järjestelmän väylä- ja liitäntälogiikan e 79621 täsmällisempi selitys on löydettävissä US patenteista 3 993 981, myönnetty 23.11.1976 ja 4 236 203, myönnetty 25.11.1980, jotka sisällytetään tähän viitteinä.
Yhteisväylä 107 mahdollistaa minkä tahansa kahden yksikön keskinäisen kommunikoinnin määrätyllä hetkellä yhteisten signaali-teiden välityksellä. Yhteyttä haluava yksikkö pyytää väylä-jaksoa. Kun tämä väyläjakso on myönnetty, tästä yksiköstä tulee isäntäyksikkö ja se voi osoittaa mitä tahansa muuta järjestelmän yksikköä orjayksikkönä. Jotkin väyläsiirtotyypit edellyttävät vastausjaksoa (esimerkiksi yksittäishaun muistin luku). Tapauksissa, joissa tarvitaan vastausjakso, pyytäjä asettuu isän-täyksiköksi, ilmoittaa, että vastausta halutaan, ja identifioi itsensä orjayksikölle. Kun vaadittu informaatio tulee saataville (riippuu orjayksikön toiminta-ajasta), orjayksikkö asettuu isäntäyksiköksi ja käynnistää siirron pyytävälle yksikölle. Tämä päättää yksittäishakusiirron, johon tarvitaan tässä tapauksessa kaksi väyläjaksoa. Näiden kahden jakson (pyyntöjakson ja vastausjakson) välistä väylän aikaa voidaan käyttää järjestelmän muuhun liikenteeseen, johon nämä kaksi yksikköä eivät osallistu.
VÄYLÄSIGNAALIT
Isäntäyksikkö voi osoittaa mitä tahansa muuta väylän yksikköä orjayksikkönä. Se suorittaa tämän asettamalla orjayksikön osoitteen osoitejohtimille. Osoitejohtimia voi olla esimerkiksi 24 ja niillä voi olla jompi kumpi kahdesta merkityksestä riippuen niihin liittyvän ohjausjohtimen tilasta, jota kutsutaan muistinkäyttösignaaliksi (BSMREF-). Jos muistinkäyttösignaali on binaarinen nolla, osoitejohtimille on voimassa kuvion 2 muo-. to 24:nnen näistä johtimista ollessa vähiten merkitsevä bitti.
On huomattava, että tässä selityksessä termejä binaarinen nolla ja binaarinen ykkönen käytetään tarkoittamaan sähköisten 9 79621 signaalien alempia ja vastaavasti ylempiä tiloja. Jos muistin-käyttösignaali on binaarinen ykkönen, näille 24 bitille on voimassa kuviossa 3 esitetty muoto. Periaatteessa muistia osoitettaessa väylä mahdollistaa enintään 2^4 tavun suoran osoituksen muistissa. Yksiköiden välittäessä ohjausinformaatiota, tietoja tai keskeytyksiä, ne osoittavat toisensa kanavanumeron avulla. Kanavanumero mahdollistaa enintään 2*0 kanavan osoittamisen väylällä. Kanavanumeron ohella siirretään kuuden bitin funktio-koodi, joka määrittelee, mitä enintään 2^ mahdollisesta funktiosta tämä siirto tarkoittaa.
Kun isäntäyksikkö haluaa orjayksiköltä vastausjakson, se ilmoittaa tämän orjayksikölle ohjausjohtimen, jonka nimenä on BSWRIT- ensimmäisen tilan avulla (johtimen toinen tila ei edellytä vastausta, ts. on kirjoituskäsky). Tässä tapauksessa isäntäyksikkö yksilöi itsensä orjayksikölle kanavanumeron avulla. Tietojohtimet, vastakohtana väylän osoitejohtimille, on koodattu kuvion 4 muodon mukaisesti yksilöimään isäntäyksikön, kun orjayksiköltä halutaan vastaus. Vastausjakso johdetaan pyytäjälle ei-muistinkäyttösiirtona. Ohjausjohdin, jonka merkintänä on jälkimmäinen väyläjakso (BSSHBC-), aktivoidaan osoittamaan, että tämä on odotettu jakso (eikä jonkin muun yksikön luvaton siirto). Kun isäntäyksikkö haluaa kaksoishakua orjayksiköstä, se ilmoittaa tämän orjayksikölle ohjausjohtimen, jonka nimenä on BSDBPL-, ensimmäisellä tilalla (ohjausyksikön toinen tila ei edellytä kaksoishakua, vaan yksittäishakua). Kun orjayksikkö vastaa isäntäyksikön pyyntöön, tämän saman ohjausjohtimen (BSDBPL-) ensimmäistä tilaa käytetään ilmoittamaan pyytävälle yksikölle, että tämä vastausjakso on kahdesta vastausjaksosta ensimmäinen (johtimen toisen tilan ilmoittaessa, että se on kaksoishakutoiminnan jälkimmäinen vastausjakso).
Hajautetun ratkaisuverkon tehtävänä on väyläjakson myöntäminen ja samanaikaisten väylänkäyttöpyyntöjen ratkaiseminen. Priori- 10 79621 teetti annetaan pääasiassa fysikaalisen sijainnin perusteella väylällä, jolloin korkein prioriteetti annetaan väylän ensimmäiselle yksikölle. Ratkaisutoiminnan toteuttava logiikka on hajautettu kaikkien väylään kytkettyjen yksiköiden kesken ja se on selitetty täydellisesti US patentissa 4 030 075 ja sen kehi-tystuloksessa, joka on selitetty US patentissa 4 096 569, jotka molemmat sisällytetään tähän viitteinä. Tyypillisessä järjestelmässä muistille annetaan korkein prioriteetti ja prosessorille annetaan alhaisin prioriteetti ja muut yksiköt sijoitetaan niiden toimintavaatimusten perusteella. Kuviossa 1 esitetyn parhaana pidetyn suoritusmuodon järjestelmässä sekä proses-sorilogiikka että muistinohjäin ovat samalla piirilevyllä, joka on sijoitettu yhteisväylän korkeamman prioriteetin päähän ja prioriteettilogiikkaa on parannettu siten, että se mahdollistaa alimman prioriteetin antamisen prosessorille siten kuin on selitetty US patenttihakemuksessa Serial no. 453 406, "Distributed Priority Network Logic for Allowing a Low Priority Unit to Reside in a High Priority Position", joka sisällytetään tähän viitteenä.
Kuten kuviosta 1 ilmenee, esillä olevan keksinnön tyypillinen järjestelmä sisältää monijohtimisen yhteisväylän 107, joka on kytketty prosessoriin, muistiin ja yhteen tai useampaan 1/0-laitteeseen ja -ohjaimeen. Tällöin muistinohjaimella 109 on korkein prioriteetti ja prosessorilogiikalla 108 on alhaisin prioriteetti, jolloin Ι/0-ohjaimilla 103 ja 104 on välillä olevat prioriteetit. Lisäksi jokaiseen tällaiseen yksikköön sisältyy osoitelogiikka sen kanavanumeron tai muistiosoitteen tunnistamiseksi. Tyypillisen peruslaiteohjaimen osoitelogiikkaa on käsitelty myös US-patentissa 4 030 075.
Tietyn järjestelmän jokaisella päätepisteellä on kanavanumero . lukuunottamatta muistityyppisiä käsittelyelementtejä, jotka yk silöidään muistiosoitteella. Jokaiselle tällaiselle laitteelle n 79621 on annettu kanavanumero. Kaksisuuntaiset sekä vuorosuuntaiset laitteet käyttävät kahta kanavanumeroa. Pelkästään lähettävät tai pelkästään vastaanottavat laitteet käyttävät kukin yhtä kanavanumeroa. Kanavanumerot ovat helposti muutettavissa ja siten kussakin tällaisessa väylään kytketyssä yksikössä voidaan käyttää yhtä tai useampaa heksadesimaalista kiertokytkintä (peukalopyöräkytkintä) yksikön osoitteen ilmaisemiseksi tai asettamiseksi. Siten järjestelmää kokoonpantaessa tietylle väylään kytketylle yksikölle voidaan antaa sellainen kanavanumero kuin kyseiselle tietylle järjestelmälle on sopivaa. Yksiköt, joissa on useita syöttö/tulostus- (I/O) portteja, tarvitsevat yleensä ryhmän peräkkäisiä kanavanumeroita. Esimerkiksi neli-porttisessa yksikössä voidaan käyttää kiertokytkimiä kanavanu-meron seitsemän eniten merkitsevän bitin valitsemiseksi ja sen kolmea vähiten merkitsevää bittiä voidaan käyttää porttinumeron määrittelemiseksi ja tuloporttien erottamiseksi lähtöporteista. Orjayksikön kanavanumero esiintyy osoiteväylällä kaikissa ei-muistisiirroissa, kuten kuviossa 3 on esitetty. Jokainen yksikkö vertaa tätä numeroa omaan sisäiseen tallennettuun numeroonsa (joka on tallennettu sisäisesti kiertokytkimien avulla). Yksikkö, jossa saadaan yhteensopiva vertailutulos, on määritelmän mukaan orjayksikkö ja sen on reagoitava tähän jaksoon. Samassa järjestelmässä ei yleensä millekään kahdelle pisteelle anneta samaa kanavanumeroa. Kuten kuviossa 3 on esitetty, tietty väylä- tai I/O-funktio voidaan suorittaa väylän osoitejohtimien bittien 18-23 osoittamalla tavalla muiden kuin muistisiirtojen tapauksessa. Funktiokoodit voivat tarkoittaa syöttö- tai tulostustoimintoja. Kaikki parittomat funktiokoodit tarkoittavat tulostussiirtoja (kirjoitus) ja kaikki parilliset funktio-koodit tarkoittavat syöttösiirtopyyntöjä (luku). Esimerkiksi funktiokoodia 00 (kantaluku 16) voidaan käyttää merkitsemään yksittäishaun muistinlukua ja funktiokoodia 20 (kantaluku 16) voidaan käyttää merkitsemään kaksoishakulukutoimintaa. Prosessori tarkastaa 6 bitin funktiokoodikentän vähiten merkitsevän 12 79621 bitin, 23, syöttö/tulostuskomentoa varten ja käyttää yhtä väylän johdinta suunnan määräämiseen.
Syöttö- ja tulostusfunktioita on erilaisia. Eräs tulostusfunk-tioista on komento, jolla tietosuure, esimerkiksi 16 bittiä, ladataan kanavaan väylältä. Yksityisten tietobittien merkitykset ovat komponenttikohtaisia, mutta tietosuure tarkoittaa tietoa, joka on tallennettava, lähetettävä, siirrettävä jne. riippuen kyseisen komponentin toiminnasta. Toisena tällaisena tu-lostusfunktiona on komento, jolla 24 bitin suure ladataan kana-vaosoiterekisteriin (ei esitetty kuvioissa). Osoite on muisti-tavuosoite ja se tarkoittaa muistin aloitusosoitetta, josta kanava aloittaa tiedon syötön tai tulostuksen. Muita tulostus-funktioita ovat tulostusaluekomento, joka määrittelee kanavalle tiettyä siirtoa varten varatun muistipuskurin koon, tulostusoh-jauskomento, jonka yksityiset bitit aikaansaavat tiettyjä vaikutuksia, tulostustehtävätoiminnat, kuten kirjoituskomennot, lähtöasetukset, joka on komento, joka ilmoittaa sellaisia funktioita kuten päätteen nopeuden, kortin lukumuodon jne. tulos-tuskeskeytysohjaus, joka on komento, joka lataa esimerkiksi 16 bitin sanan kanavaan kuviossa 5 esitetyssä muodossa. Ensimmäiset 10 bittiä ilmoittavat prosessorin kanavanumeron ja bitit 10-15 ilmoittavat keskeytystason. Keskeytyksessä prosessorin kanavanumero palautetaan osoiteväylälle ja keskeytystaso palautetaan tietoväylälle. Syöttöfunktioihin sisältyy samanlaisia toimintoja kuin tulostusfunktioihin paitsi, että tässä tapauksessa syöttötiedot siirretään laitteelta prosessorille väylän välityksellä.
Kuten edellä on selitetty jokaiselle eri tyyppiselle väylään kytketylle laitteelle on annettu yksilöllinen laitetunnusnu-mero. Tämä numero annetaan väylälle syöttöfunktiokomennon vaikutuksesta, jota kutsutaan syöttölaitetunnistukseksi. Tämä numero annetaan tietoväylälle kuviossa 6 esitetyssä muodossa. Mu- 13 79621 kavuussyistä numero on jaettu 13 bittiin, jotka yksilöivät laitteen (bitit 0-12) ja kolmeen bittiin, jotka yksilöivät laitteen tiettyjä toimintaominaisuuksia (bitit 13-15), siten kuin tarvitaan,
VÄYLÄÄJOITUS
Kuvio 7 esittää väylän ajoituskaaviota ja sitä käsitellään yksityiskohtaisemmin myöhemmin. Yleisesti ajoitus on kuitenkin seuraava. Ajoitus koskee kaikkia siirtoja isäntäyksiköltä väylään kytketylle orjayksikölle. Nopeus, jolla siirto voi tapahtua, riippuu järjestelmän kokoonpanosta. Eli mitä useampia yksiköitä on kytketty väylään ja mitä pitempi väylä on sitä enemmän aikaa kuluu kommunikointiin väylällä etenemisviiveistä johtuen. Toisaalta yksiköiden pienempi lukumäärä väylällä pienentää vastausaikaa. Väylän ajoitus on siten luonteeltaan todella asynkroninen. Isäntäyksikkö, joka haluaa väyläjakson, antaa väyläpyynnön. Signaali BSREQT- on yhteinen kaikille väylällä oleville yksiköille ja mikäli sen arvo on binaarinen ykkönen, se osoittaa, että ainakin yksi yksikkö pyytää väyläjaksoa. Kun väyläjakso on myönnetty, signaali BSDCNN- asettuu binaariseksi nollaksi osoittaen, että ratkaisutoiminta on suoritettu loppuun ja että yksi tietty isäntäyksikkö hallitsee nyt väylää. Sillä hetkellä kun signaali BSDCNN- tulee binaariseksi nollaksi, isäntäyksikkö antaa siirrettävän informaation väylälle. Jokainen väylän yksikkö kehittää sisäisen ohjaussignaalin (BSDCND-) signaalista BSDCNN-, Ohjaussignaalia (BSDCND-) on viivästetty esimerkiksi noin 60 ns signaalin BSDCNN- binaarisen nollatilan vastaanottamisesta. Kun viive on kulunut loppuun or-jayksikössä, väylän etenemisaikavaihtelut on otettu huomioon ja jokainen orjayksikkö on voinut tunnistaa oman osoitteensa (muistiosoitteen tai kanavanumeron). Osoitettu orjayksikkö voi tällöin antaa jonkin seuraavista vastauksista, joko hyväksyvän (ACK), hylkäävän (NAK) tai odota-signaalin (WAIT) tai erikoi- 14 79621 sesti BSACKR-, BSNAKR- tai BSWAIT- signaalin. Vastaus lähetetään väylälle ja vastaus antaa isäntäyksikölle merkin siitä, että orjayksikkö on havainnut pyydetyn toiminnan. Ohjauslinjat palaavat tällöin binaariseen ykköstilaan kuviossa 7 esitetyssä järjestyksessä. Väylän kättely on siten täysin asynkroninen ja jokainen siirtymä tapahtuu vain, kun edellinen siirtymä on vastaanotettu. Yksittäisillä yksiköillä voi siten kulua eri pituisia aikoja niiden ohjaus- ja kuittaussignaalien jne. siirtymien välillä riippuen niiden sisäisistä toiminnoista. Väylän aikakatkaisutoiminta on olemassa lukkiutumisten estämiseksi, joita voi esiintyä, jos mikään väylän yksiköistä ei vastaa pyyntöön.
Väylällä siirrettävään informaatioon voi sisältyä esimerkiksi 50 signaalia tai bittiä, jotka voidaan jakaa osiin seuraavasti: 24 osoitebittiä, 16 databittiä, 5 ohjausbittiä ja 5 tarkastus-bittiä. Näitä eri signaaleja käsitellään seuraavassa.
VÄYLÄPRIORITEETTI
Yhteisväylän pyyntöjen ratkaisutoiminta suorittaa ratkaisun eri yksiköiltä tulevien samanaikaisten palvelupyyntöjen välillä ja myöntää väyläjaksot sijaintiin perustuvan prioriteettijärjestelmän perusteella. Kuten edellä on todettu, muistilla on korkein prioriteetti ja prosessorilla on alhaisin prioriteetti, vaikka molemmat sijaitsevat fysikaalisesti yhteisväylän 107 samassa päässä. Muut yksiköt ovat väylän varrella sijaitsevissa sijaintipaikoissa ja niiden prioriteetti kasvaa suhteessa niiden läheisyyteen väylän muistipäähän nähden. Jokaiseen suoraan väylään kytkettyyn yksikköön sisältyy prioriteettilogiikka rat-- kaisutoiminnan suorittamiseksi. Jokaisen tällaisen yksikön prioriteettiverkkoon sisältyy myöntämiskiikku. Millä tahansa hetkellä vain yksi tietty myöntämiskiikku voi olla asetettuna ja tämä yksikkö on määritelmän mukaan isäntäyksikkö tällä ni- is 79621 menomaisella väyläjaksolla. Mikä tahansa yksikkö voi päättää mielivaltaisena hetkenä, että se tarvitsee väyläjakson, ja asettaa käyttäjä-kiikkunsa. Siten millä tahansa hetkellä voi olla asetettuna useita käyttäjäkiikkuja kunkin edustaessa tulevaa väyläjaksoa. Lisäksi jokainen väylän yksikkö sisältää pyyntökiikun. Tarkasteltaessa kaikkia yksiköitä yhdessä pyyntö-kiikkuja voidaan pitää pyyntörekisterinä. Tämän rekisterin lähdöt ovat tuloina ratkaisuverkolle, joka toimii siten, että se asettaa vain yhden myöntämiskiikun riippumatta siitä, kuinka monta pyyntöä on odottamassa. Erikoisesti jos odottavia käyttäjiä ei ole, tällöin ei aseteta yhtään pyyntökiikkua. Ensimmäisenä asetettu käyttäjäkiikku aikaansaa sen pyyntökiikun asettamisen. Tämä vuorostaan estää, lyhyen viiveen jälkeen kuten myöhemmin selitetään, muita laitteita asettamasta pyyntökiikkujaan. Tämä merkitsee sitä, että kaikista käyttäjä-kiikuista otetaan näyte tiettynä aikajaksona (viivejakso). Tuloksena on, että joukko pyyntökiikkuja voidaan asettaa tämän viivejakson aikana niiden saapumisesta riippuen. Jotta pyyntö-kiikkujen lähtöjen annettaisiin stabiloitua, jokaiseen yksikköön sisältyy tällainen viive sen varmistamiseksi, että stabiloituminen on tapahtunut. Tietty myöntämiskiikku asetetaan, jos siihen liittyvän yksikön pyyntökiikku on asetettu ja viiveaika on kulunut eikä mikään ylemmän prioriteetin yksikkö halua väyläjaksoa. Tällöin kehitetään valintasignaali toisen viive-jakson jälkeen ja lopuksi myöntämiskiikku nollataan (palautetaan) kun isäntäyksikkö vastaanottaa ACK, NAK tai WAIT-signaa-lin orjayksiköltä.
Kuten edellä on todettu, orjayksikön mahdollisia vastauksia on kolme, ACK, WAIT tai NAK-signaali. Lisäksi on neljäs tila, jossa ei saada mitään vastausta. Tapauksessa, jossa mikään väylän yksiköistä ei totea siirtoa itselleen osoitetuksi, ei saada mitään vastausta. Tällöin suoritetaan aikakatkaisu ja kehitetään negatiivinen kuittaussignaali NAK, mikä vapauttaa väylän. Kuit- ie 79621 taussignaali ACK kehitetään, jos orjayksikkö voi hyväksyä väy-läsiirron isäntäyksiköltä ja haluaa siirron. Jos orjayksikkö on tilapäisesti varattuna eikä voi hyväksyä siirtoa sillä hetkellä, se kehittää odotusvastauksen WAIT. WAIT-signaalin vastaanottaessaan isäntäyksikkö yrittää uudelleen seuraavalla sille myönnetyllä väyläjaksolla ja jatkaa yrittämistä, niin kauan kunnes se onnistuu. Tilanteita, jotka aiheuttavat WAIT-vastauk-sen antamisen orjayksiköstä prosessorin ollessa isäntäyksikkönä ovat: jos ohjain odottaa vastausta muistilta tai jos ohjain ei ole vielä käsitellyt aikaisempaa syöttö/tulostuskomentoa tai esillä olevan keksinnön tapauksessa, jos ohjain on isäntäyksikkönä ja yrittää lukita muistin, kun toinen ohjain tai prosessori on jo lukinnut muistin. Orjayksikön kehittämä negatiivinen kuittaussignaali NAK merkitsee sitä, ettei orjayksikkö voi hyväksyä siirtoa sillä hetkellä. NAK-signaalin vastaanottaessaan isäntäyksikkö ei yritä heti uudelleen, vaan suorittaa tietyn toimenpiteen isäntäyksikön tyypistä riippuen.
Kuten edellä on yleisesti mainittu, väylällä on perusajoitus-signaalit, jotka aikaansaavat sen kättelytoiminnan. Nämä viisi signaalia ovat, kuten edellä on selitetty, väylänpyyntösignaali (BSREQT-), joka ollessaan binaarinen nolla osoittaa, että yksi : : tai useampi väylän yksiköistä on pyytänyt väyläjaksoa, tieto- jaksonvalintasignaali (BSDCNN-), joka ollessaan binaarinen nol-la osoittaa, että tietty isäntäyksikkö on suorittamassa väylä-: siirtoa ja on antanut väylälle informaatiota jonkin tietyn or jayksikön käyttöön, kuittaussignaali (BSACKR-), joka on orjayksikön isäntäyksikölle kehittämä signaali, joka osoittaa, että orjayksikkö hyväksyy siirron asettamalla tämän signaalin binaariseksi nollaksi, negatiivinen kuittaussignaali (BSNAKR-), joka on orjayksikön pääyksikölle kehittämä signaali, joka ollessaan binaarinen nolla osoittaa isäntäyksikölle, että orjayksikkö ei hyväksy tätä siirtoa ja odotussignaali (BSWAIT-), joka on orja-yksikön isäntäyksikölle kehittämä signaali, joka ollessaan bi- 17 79621 naarinen nolla osoittaa, että orjayksikkö lykkää päätöstä siirrosta.
Lisäksi ja kuten edellä on mainittu väylällä voi olla jopa 50 informaatiosignaalia, jotka siirretään kunkin väyläjakson informaatiosisältönä. Nämä signaalit ovat kelpaavia orjayksikön käytettäväksi kuvion 7 valintasignaalin BSDCND- etureunalla. Koko seuraava tarkastelu on esitetty esimerkkinä ja on selvää, että bittien lukumäärää voidaan muuttaa erilaisissa tehtävissä. Siten tietoja varten voi olla varattu 16 johdinta tai bittiä. Osoitetta varten on 24 johdinta. Yksi bitti on varattu muistin-käyttösignaalia (BSMREF-) varten, joka ollessaan binaarinen nolla osoittaa, että osoitejohtimet sisältävät muistiosoitteen. Kun muistinkäyttösignaali on binaarinen ykkönen, se osoittaa, että osoitejohtimet sisältävät kanavaosoitteen ja funktiokoodin kuten kuviossa 3 on osoitettu. Lisäksi tavusignaali (BSBYTE-) osoittaa ollessaan binaarinen nolla, että sen hetkinen siirto on tavusiirto eikä sanasiirto sanan sisältäessä tyypillisesti kaksi tavua. Lisäksi kirjoitussignaali (BSWRIT-) osoittaa ol-lessaan binaarinen ykkönen, että orjayksikköä pyydetään antamaan informaatiota isäntäyksikölle. Erillinen väyläsiirto antaa tämän informaation. Lisäksi isäntäyksikkö käyttää jälkimmäinen väyläjakso-signaalia (BSSHBC-) ilmoittaakseen orjayksikölle, että tämä on aikaisemmin pyydetty informaatio. Ajanhetkestä, jolloin kaksi väylän yksikköä ovat aloittaneet lukutoiminnan minkä osoittaa signaali (BSWRIT-), toisen jakson esiintymishet-keen, jolloin muistista luetun tiedon siirto suoritetaan loppuun, (jonka osoittaa BSSHBC-) molemmat yksiköt voivat olla varattuja kaikkien muiden väylän yksiköiden suhteen.
VÄYLÄN LUKITSEMA MUISTITOIMINTA
Erilaisten virhe- ja pariteettisignaalien lisäksi väylän 50 in-formaatiosignaaliin sisältyy myös lukitussignaali. Lukitus- ie 79621 signaalia (BSLOCK-) käytetään lukitustoiminnan aikaansaamiseksi. Muistinlukitustoiminta on monijaksoinen väyläsiirto, jossa yksikkö voi lukea tai kirjoittaa muistin sanan tai usean sanan alueen ilman, että väylällä olisi muita yksiköitä tai kuten seuraavassa selitetään, että keskusyksikkö voisi katkaista toiminnan toisella lukitustoiminnalla. Tämä helpottaa muistipaikkojen käyttämistä lippuina järjestelmän käsittely-yksiköiden välillä tapahtuvaa asynkronista kommunikointia varten. Lukitus-toiminnan vaikutuksena on pidentää varattu-tilaa muistijakson ohi tietyille toimintatyypeille. Muut väylän yksiköt, jotka yrittävät antaa lukitussignaaleja ennen viimeisen jakson lop-puunsuorittamista saavat NAK-vastauksen. Muisti reagoi kuitenkin edelleen muihin (ei lukittuihin) muistinkäyttöpyyntöihin.
Esimerkkinä lukitustoiminnasta on luku-muunnos-kirjoitus-jakso, jonka kolme väyläjaksoa ovat seuraavat. Ensimmäisen väyläjakson aikana (aika A-F kuviossa 9) osoiteväylä sisältää muistiosoitteen, tietoväylä sisältää alkuperäyksikön kanavanumeron, signaali BSWRIT- on binaarinen nolla osoittaen, että vastausta pyydetään, signaali BSLOCK- on binaarinen nolla osoittaen, että kyseessä on lukittu toiminta ja lisäksi signaali BSMREF- on binaarinen ykkönen. Luku-muunnos-kirjoitus-toiminnan toisen väyläjakson aikana (aika G-K kuviossa 9) osoiteväylä sisältää alkuperäyksikön kanavanumeron, tietoväylä sisältää muistitiedon, signaali BSSHBC- on binaarinen nolla ilmaisten lukuvastauksen ja signaali BSMREF- on binaarinen ykkönen. Kolmannen väyläjakson aikana (aika L-P kuviossa 9) osoiteväylä sisältää muistiosoitteen, tietoväylä sisältää muistitiedon, signaali BSLOCK- on binaarinen nolla ilmaisten luku-muunnos-kirjoitus-toiminnan loppuunsuorittamisen ja signaali BSMREF- on binaarinen nolla ja signaali BSSHBC- on binaarinen nolla. Lisäksi signaali BSWRIT-on binaarinen ykkönen. On huomattava, että edellä oleva tarkastelu on yleisluontoinen ja yksittäiset signaalit voivat olla selitetyssä tilassa vain osan väyläjaksosta kuten kuviossa 9 on * * 19 79621 esitetty. Samoin kuin kaikissa muissa toiminnoissa luku-muun-nos-kirjoitus-toiminnan kolmen väyläjakson välillä olevaa aikaa väylällä voivat käyttää muut yksiköt, jotka eivät ole mukana siirrossa. Lisäksi prosessori voi käyttää muistia sikäli kuin prosessori ei yritä suorittaa muistinlukitustoimintaa.
Muiden ohjaussignaalien lisäksi väylällä voi lisäksi olla väy-lännollaussignaali (BSMCLR-), joka on normaalisti binaarinen ykkönen ja joka tulee binaariseksi nollaksi, kun esim. järjestelmän käynnistyssekvenssin aikana suoritetaan yleisnollaustoi-minta.
VÄYLÄN PRIORITEETTIVERKON AJOITUS
Seuraavassa tarkastellaan yksityiskohtaisemmin kuvion 7 ajoituskaaviota muistin osoitelogiikkapiirien ja keskusyksikön yhteydessä.
Tarkasteltaessa kuvion 7 ajoituskaaviota jokaisessa väyläjak-sossa on kolme tunnistettavissa olevaa osaa eli täsmällisemmin jakso (7-A ... 7-C), jonka aikana prioriteetiltaan korkein pyytävä laite saa väylän hallintaansa, jakso (7-C ... 7-E), jonka aikana isäntäyksikkö kutsuu orjayksikköä ja jakso (7-E ...
7-G), jonka aikana orjayksikkö vastaa. Kun väylä on vapaa, väy-länpyyntösignaali (BSREQT-) on binaarinen ykkönen. Väylänpyyn-tösignaalin negatiiviseen suuntaan siirtyvä reuna hetkellä 7-A käynnistää prioriteettiverkkojakson. Järjestelmässä on varattu asynkroninen viive prioriteettiverkon asettumista varten (hetkellä 7-B) ja väylän isäntäkäyttäjän valitsemiseksi. Seu-raava väylän signaali on BSDCNN- eli tietojaksovalintasignaali. Signaalin BSDCNN- siirtyminen binaariseksi nollaksi hetkellä 7-C merkitsee sitä, että väylän käyttö on myönnetty isäntäyk-sikölle. Tämän jälkeen väylätoiminnan toinen vaihe merkitsee sitä, että isäntäyksikkö on valittu ja se on tällöin vapaa 20 79621 siirtämään informaatiota yhteisväylän 107 tieto-, osoite- ja ohjausjohtimilla orjayksikölle, jonka isäntäyksikkö siksi valitsee.
Orjayksikkö valmistaa väylätoiminnan kolmannen vaiheen aloittamisen valintasignaalin BSDCND- negatiiviseen suuntaan siirtyvällä reunalla. Valintasignaalia viivästetään esimerkiksi 60 ns signaalin BSDCNN- negatiiviseen suuntaan siirtyvästä reunasta kuvion 8 väyläprioriteetin ratkaisulogiikan viivelinjalla 824. Signaalin BSDCND- negatiiviseen suuntaan siirtyvän reunan esiintyessä hetkellä 7-D orjayksikkö voi testata onko osoite sen osoite ja mikäli sitä kutsutaan, käynnistää päätöksenteko-prosessorin sen määräämiseksi mikä vastaus annetaan. Tämä saattaa tyypillisesti orjayksikön kehittämään kuittaussignaalin (BSACKR-) tai ei tyypillisessä tapauksessa signaalin BSNAKR-tai BSWAIT- tai jopa voidaan olla kehittämättä mitään signaalia (tapauksessa, jossa orjayksikköä ei ole olemassa) kuten edellä on selitetty. Kun isäntäyksikkö vastaanottaa kuittaussignaalin negatiiviseen suuntaan siirtyvän reunan hetkellä 7-E, tämä aikaansaa isäntäyksikön signaalin BSDCNN- siirtymisen binaariseksi ykköseksi hetkellä 7-F. Valintasignaali palaa binaariseen ykköstilaan hetkellä 7-G, joka on kuvion 8 viivelinjan 824 muodostama viive ajasta 7-F. Orjayksikkö tallentaa siten väylätoiminnan kolmannessa vaiheessa väylällä olevan tiedon ja osoit-teen ja väyläjakson päättyminen alkaa. Jakson päättyminen, ts. signaalin BSDCNN- siirtyminen binaariseksi ykköseksi aktivoi dynaamisesti prioriteettiverkon seuraavan päätöksen.
Tällä hetkellä voidaan kehittää väyläpyyntösignaali ja mikäli sellaista ei vastaanoteta, se merkitsee sitä, että väylä palaa lepotilaan ja signaali BSREQT- palaa siten binaariseen ykköstilaan. Jos väyläpyyntösignaali on tällä hetkellä olemassa, ts. binaarinen nolla kuten on esitetty, se käynnistää asynkronisen prioriteettiverkon valintaprosessin, jonka jälkeen signaalin 21 79621 BSDCNN- toinen negatiiviseen suuntaan siirtyvä reuna aktivoidaan, kuten on esitetty katkoviivoilla hetkinä 7-1 ja 7-J. On huomattava, että tämän prioriteettiverkon päätöksen ei tarvitse odottaa tai tulla kuittausignaalin positiiviseen suuntaan siirtyvän reunan liipaisemaksi hetkellä 7-H, vaan se voidaan itse asiassa liipaista hetkellä 7-F heti väylän lepotilaan siirtymisen jälkeen, jos jokin yksikkö haluaa tämän jälkeen väyläjak-soa. Vaikka signaalin BSDCNN- positiiviseen suuntaan siirtyvä reuna voi liipaista prioriteettiverkon päätöksen hetkellä 7-F, signaalin BSDCNN- toisen negatiiviseen suuntaan siirtyvän reunan, joka seuraa myöntämiskiikun asettamisesta, on odotettava kuittaussignaalin positiiviseen suuntaan siirtyvää reunaa hetkellä 7-H. Signaalin BSDCNN- hetkellä 7-1 negatiiviseen suuntaan siirtyvä reuna havainnollistaa tapausta, jossa prioriteettiverkon päätös liipaistaan hetkellä 7-F ja ratkaisu tapahtuu ennen ajanhetkeä 7-H. Signaalin BSDCNN- hetkellä 7-J negatiiviseen suuntaan siirtyvä reuna havainnollistaa tapausta, jossa kuittaussignaali nollautuu ennen prioriteettiverkon ratkaisua. Signaalin BSDCNN- hetkellä 7-L negatiiviseen suuntaan siirtyvä reuna havainnollistaa tapausta, jossa hetkellä 7-F ei ole väy-läpyyntöä ja myöhempi väyläpyyntösignaali BSREQT- liipaisee prioriteettiverkon ratkaisun hetkellä 7-K. Tämä prosessi toistuu asynkronisesti.
MUISTINLUKUTOIMINTA
Seuraavassa tarkastellaan muistinlukutoimintaa esimerkin avulla. Esimerkissä I/O-ohjain antaa muistinlukupyynnön ja seuraavassa tarkastellaan pyyntöön ja vastaukseen liittyviä kahta väyläjaksoa. Ensimmäisen väyläjakson aikana I/O-ohjain on isän-täyksikkönä ja muisti on orjayksikkönä. Tämän ensimmäisen jakson aikana I/O-ohjain pyytää väylää käyttämällä prioriteetti-verkkologiikkaansa ja muistinohjäin vastaa. Toisen väyläjakson aikana, jossa muistinohjäin on isäntäyksikkönä ja I/O-ohjain on 22 79621 orjayksikkönä, muisti pyytää väylää käyttämällä prioriteetti-verkkologiikkaansa ja I/O-ohjain vastaa käyttämällä väylälii-täntälogiikkaa. Muistinohjaimen varattusignaali kehitetään osoittamaan, että yksi muistinohjaimeen kytketyistä muistimodu-leista on varattu. Jos muistimoduli on varattu, tällöin isäntä-(pyytävän) yksikön antaman muistinkäyttöpyynnön seurauksena kehitetään odota-signaali. Kuittaussignaali (ACK) kehitetään, kun muistinohjäin ei ole varattu. On jälleen huomattava, että odota-signaali merkitsee erittäin lyhyttä viivettä, koska muisti on edelleen varattuna.
MUISTIN LUKITUSTOIMINTA
Toisena tekijänä, joka osoittaa mikä signaaleista ACK, NAK tai WAIT on kehitettävä, on lukitussignaali, joka kuten aikaisemmin on mainittu, aikaansaa monijaksoisen väyläsiirron, jolloin laite voi käyttää tiettyä muistipaikkaa, ilman että jokin toinen lukitseva yksikkö voisi keskeyttää toiminnan. Tämän lukitustoi-minnan vaikutuksena on ulottaa muistinohjaimen varattu-tila yhden jakson loppuunsuorittamisen yli tietynlaisissa toiminnoissa. Yhteisväylän 107 laitteet, jotka yrittävät käynnistää luki-tustoimintaa ennen sekvenssin viimeisen jakson loppuunsuoritta-mista, vastaanottavat negatiivisen kuittaussignaalin NAK. Muisti reagoi kuitenkin edelleen muistinkäyttöpyyntöön kuten tässä tullaan selittämään. On huomattava, että näiden väyläjaksojen välistä aikaa voivat käyttää muut yksiköt, jotka eivät ole mukana siirrossa. Lukitustoimintaa käytetään pääasiassa tapauksissa, joissa on suotavaa, että kaksi tai useampi yksikkö tai laite käyttää yhteistä välinettä kuten esimerkiksi muistia. Lukitun toiminnan, johon voi sisältyä mielivaltainen lukumäärä väyläjaksoja ja muistijaksoja, lukituksen avaa se nimenomainen yksikkö tai laite, joka on hallinnut yhteistä välinettä. Yhteisen välineen ollessa lukittuna muut yhteisen välineen käyttöä haluavat yksiköt lukitaan pois, jos tällaiset muut väylällä 23 79621 olevat yksiköt antavat lukitusohjaussignaalin tai jos prosessori yrittää suorittaa lukitustoimintaa. Jos lukitustoimintaa ei yritetä, prosessori tai muu tällainen yksikkö voi käyttää yhteistä välinettä, esim. kiireellisen pyynnön tai toimenpiteen suorittamiseksi. Ennen kuin jokin lukitussignaalin antava yksikkö saa yhteisen välineen käyttöönsä yhteinen väline testataan sen toteamiseksi onko se mukana lukitussa toiminnassa ja jos väline ei tällöin ole mukana lukitustoiminnassa, lukitus-toimintaa haluava yksikkö voi käyttää välinettä.
Voidaan siten havaita, että lukitustoiminnalla välineen käyttämiseksi yhteisenä on vaikutusta niiden yksiköiden kesken, jotka antavat asianomaiset ohjaukset, ts. lukituksen ohjaussignaalin, ja sitä voidaan käyttää esimerkiksi käytettäessä yhteisenä muistin osaa, johon voi olla tallennettu in£ormaatiotaulukko. Lisäksi jos jokin yksiköistä haluaa muuttaa yhteisen välineen informaatiota, muut yksiköt voidaan lukita pois, niin että ne eivät saa vasta osittain muuttunutta informaatiota, vaan käyttö sallitaan niille vasta, kun kaikki tällaiset muutokset on tehty. Tällaisessa tapauksessa voi olla kysymys luku-muunnos-kirjoitusoperaatiosta.
On huomattava, että signaalia BSSHBC-käytetään yhteisväylän 107 välityksellä suoritetun lukitustoiminnan tapauksessa hieman eri tavalla kuin mitä edellä on selitetty. Väylän lukitustoiminnan aikana signaalin BSSHBC- antaa yksikkö, joka yrittää käyttää yhteisenä välinettä, sekä päästäkseen yhteiseen välineeseen testaus- ja lukitusmenettelyn avulla että yhteisen välineen lukituksen avaamiseksi suoritettuaan loppuun lukitun toiminnan.
LUKITUSLOGIIKKA
Menetelmä, jolla muistinohjaimen 109 lukituslogiikkaa 110 käytetään jakamattoman muistitoiminnan suorittamiseksi Ι/0-ohjai- 24 79621 men tai prosessorin toimesta, käsitellään seuraavassa kuvion 8 logiikkalohkokaavioon ja kuvion 9 ajoituskaavioon viitaten. Koska muistinohjäin 109 on kaksiporttinen siten, että se mahdollistaa pääsyn muistiin 1/0-ohjaimesta yhteisväylän 107 kautta tai prosessorilogiikasta 108, lukituslogiikan 110 on synkronoitava lukituspyynnöt, joita joko 1/0-ohjain tai prosessorilo-giikka voivat kehittää asynkronisesti. Asynkronisten lukitus-ja lukituksen avaustoimintojen synkronointi tapahtuu seuraavassa selitettävällä tavalla.
Kuvio 8 on muistinohjauslogiikan 109 lukituslogiikan 110 logiikkalohkokaavio. Kuviossa 8 pienet ympyrät loogisten elementtien tuloissa tai lähdöissä esittävät invertoivia tuloja ja lähtöjä. Kuviossa 8 lukituslogiikka 110 muodostuu prosessorilu-kituskiikusta 801, väylälukituskiikusta 820, synkronointikii-kusta 802 ja muista kiikuista, inverttereistä, JA-, JA-EI- ja TAI-EI-porteista. Kiikut 801 ja 820 ovat negatiivisella reunalla Hipaistavia asetettavia ja palautettavia J-K-kiikkuja, joiden tyyppi on S4S112, jota valmistaa Texas Instruments Inc., Dallas, Texas ja jotka on esitetty valmistajan kirjassa The TTL Data Book for Design Engineers, Second Edition, Copyright 1976, joka sisällytetään tähän viitteenä. Synkronointi-kiikku 802 on positiivisella reunalla Hipaistava asetettava ja palautettava D-kiikku, joka on tyyppiä 74F74, jota valmistaa Fairchild Camera and Instrument Corporation, Mountainview, California ja joka on esitetty valmistajan kirjassa Fast Fair-child Advanced Schottky TTL, Copyright 1980, joka sisällytetään tähän viitteenä.
Alussa ennen minkään muistinlukitustoiminnan alkamista proses-sorilukituskiikku 801, väylälukituskiikku 820 ja synkronointi-kiikku 802 ovat palautetussa tilassaan siten, että niiden Q-lähtöjen lähtösignaalit ovat binaarisia nollia ja Q-lähtöjen lähtösignaalit ovat binaarisia ykkösiä. Siten kiikun 801 Q-läh- 25 79621 dön signaali CPLKME+ ja kiikun 820 Q-lähdön signaali LOCKDD+ ovat binaarisia nollia ja kiikun 820 O-lähdön signaali LOCKDD-ja kiikun 802 O-lähdön signaali LOCKED- ovat binaarisia ykkösiä. Kiikut 801, 820 ja 802 ohjataan alussa palautettuun tilaan kaikkien näiden kiikkujen palautustuloihin (R) syötetyllä väylän yleisellä nollaussignaalilla BSMCLR-, joka siirtyy järjestelmän alustuksessa lyhyeksi ajaksi binaariseen nollaan, niin että yhteisväylään 107 kytkettyjen yksiköiden logiikka nollautuu alkutilaan.
MU1STINLUKITUSESIMERKKI
Kuvion 8 lukituslogiikkaa 110 selitetään seuraavassa viitaten kuvion 9 ajoituskaavioon, joka havainnollistaa tapausta, jossa Ι/0-ohjain haluaa suorittaa lukitun toiminnan yhdessä muistimo-duleista olevassa muistipaikassa. Tässä kuvion 9 esittämässä esimerkissä Ι/0-ohjaimen käynnistettyä muistinlukitustoiminnan prosessori haluaa suorittaa lukitun toiminnan muistissa ja prosessori käynnistää myös lukitustoiminnan. Kuvion 9 esimerkki osoittaa, että Ι/0-ohjaimen lukitustoiminta suoritetaan loppuun ennen kuin prosessorin lukitustoiminnan sallitaan tapahtua. Prosessorin lukitustoiminnan aikana Ι/0-ohjain yrittää käynnistää toista muistin lukitustoimintaa. Kuvio 9 osoittaa, että Ι/0-ohjaimen muistin lukitustoiminta alkaa hetkellä A ja päättyy hetkellä O, jolloin muistin luku suoritetaan ajanhetkien A ja J välillä, Ι/0-ohjain muuntaa tietoa ajanhetkien J ja L välillä ja muunnettu tieto kirjoitetaan muistiin ajanhetkien L ja O välillä. I/O-ohjaimen muistin väylälukitustoiminnan jälkeen prosessori suorittaa muistinlukitustoimintansa, joka alkaa hetkellä AA ja jonka aikana prosessorilla on muisti lukittuna ajanhetkien C ja X välillä ja joka muodostuu siten, että prosessori suorittaa muistinlukua ajanhetkestä BB ajanhetkeen CC, muuntaa tietoa ajanhetkestä CC ajanhetkeen DD ja kirjoittaa muunnetun tiedon muistiin ajanhetkien DD ja EE välillä. Proses- sorin muistinlukitustoiminnan aikana I/O-ohjain yrittää suorit taa muistinlukitustoiminnan ajanhetkien R ja U välillä, mistä on seurauksena negatiivinen kuittausvastaus NAK.
26 79621
Kuviossa 9 ajanhetkellä A I/O-ohjain, esim. kuvion 1 I/O-ohjain 103, on päättänyt, että se haluaa suorittaa luku-muunnos-kirjoitus-toimenpiteen muistin muistipaikassa. Tämä edellyttää muistinlukitustoiminnan suorittamista ja I/O-ohjain pyytää ajanhetkellä A yhteisväylän 107 käyttöä saattamalla väylänpyyn-tösignaalin BSREQT-siirtymään binaarisesta ykköstilasta binaariseen nollatilaan. Kun väyläpyyntösignaali BSREQT- siirtyy binaariseen nollatilaan, se käynnistää väylän prioriteetin rat-kaisujakson ja jokaisen yhteisväylään 107 kytketyn yksikön prioriteettilogiikka päättää millä kaikista mahdollisista pyytävistä yksiköistä on korkein prioriteetti ja jos Ι/0-ohjai-mella on korkein prioriteetti, väylä myönnetään sille isäntäyk-sikkönä ja I/O-ohjaimen prioriteettilogiikka saattaa väylän tietojakson valintasignaalin BSDCNN- siirtymään ykköstilasta binaariseen nollatilaan hetkellä B. Tällä samalla hetkellä I/O-ohjaimen logiikka asettaa isäntäyksikkönä väylän osoitelin-joille luettavan muistipaikan osoitteen ja ohjaa myös väylän lukitussignaalin BSLOCK- binaariseen nollatilaan ja jättää jälkimmäinen väyläjakso -signaalin, signaalin BSHHBC-, binaariseen ykköstilaan antaen siten muistille orjayksikkönä merkin siitä, että lukitustoiminta on suoritettava. Kuviosta 9 havaitaan siten, että ajanhetkellä B signaali BSHHBC- on binaarinen ykkönen kuvion 8 JA-portin 818 ensimmäisessä tulossa ja signaali BSLOCK+ binaarinen ykkönen JA-portin 818 toisessa tulossa, mikä tekee portin lähdön, signaalin LOCKER-t-, binaariseksi ykköseksi väylälukituskiikun 820 J-tulossa. Signaali BSLOCK+ saadaan in-vertteriltä 821, joka invertoi tulosignaalin BSLOCK- yhteis-: : väylältä 107. Väylälukitussignaali BSLOCK+, joka tulee binaari seksi ykköseksi hetkellä B kuviossa 9, on myös JA-portin 819 toisena tulona. JA-portin 819 toinen tulo on jälkimmäinen väy- 27 7 9 6 21 läjakso -signaali BSSHBC+, joka on invertterin 822 invertoitu lähtö, jonka invertterin tulosignaalina on signaali BSSHBC- yhteisväylältä 107. Hetkellä B signaali BSSHBC+ pysyy binaarisena nollana nollaten siten JA-portin 819 lähdön ja tehden signaalin UNL0CK+ binaariseksi nollaksi väylälukituskiikun 820 K tulossa. Hetkellä B väylän tietojaksonvalintasignaali BSDCNN- muuttuu binaarisesta ykköstilasta binaariseen nollatilaan ja saattaa invertterin 823 lähtösignaalin BSDCNN+ ja synkronointikiikun 802 kellotulon (C) muuttumaan binaarisesta nollatilasta binaariseen ykköstilaan, mikä siten lataa signaalin CPLKME+ kiikun datatuloon (D). Koska signaali CPLKME+ on ajanhetkellä B binaarinen nolla, synkronointikiikku 820 pysyy palautetussa tilassaan aiheuttaen Q-lähtönsä, signaalin LOCKED-, pysymisen binaarisena ykkösenä ja siten jatkaen JA-EI-portin 804 osittaista aktivointia.
Kuten myöhemmin ilmenee, kun Ι/0-ohjain yrittää lukita muistia, JA-portin 818 lähtö, signaali LOCKER+, on binaarinen ykkönen ja JA-portin 819 lähtö, signaali UNLOCK+, on binaarinen nolla seurauksena siitä, että I/O-ohjain asettaa signaalin BSLOCK- binaariseen nollatilaan ja pitää signaalin BSSHBC- binaarisessa ykköstilassa kuten tapahtuu ajanhetkinä B ja S kuviossa 9 Ι/0-ohjaimen muistinlukitustoiminnan alussa. JA-portin 818 lähtö on binaarinen nolla ja JA-portin 819 lähtö on binaarinen ykkönen, kun I/0-ohjain yrittää avata muistin lukitusta, mikä tapahtuu siten, että I/0-ohjain asettaa signaalin BSLOCK- binaariseen nollatilaan ja jälkimmäinen väyläjakso -signaalin BSSHBC- binaariseen ykköstilaan, kuten tapahtuu ajanhetkellä M kuviossa 9. Siten hetkellä B kuviossa 9 väylälukituskiikun 820 J-tulossa on lukitussignaali ja K-tulossa on lukituksenavaus-signaali. Näiden tulosignaalien esiintymisellä kiikun 820 J ja K tuloissa ei ole vaikutusta ennen kuin kiikku 820 saa kello-ohjauksen kellosignaalin MEACKR- siirtyessä binaariseen nollatilaan, mikä tapahtuu myöhemmin hetkellä D. Ajanhetkeen D asti 28 79621 väylälukituskiikku 820 pysyy palautetussa tilassa siten, että sen Q-lähtösignaali LOCKDD- pysyy binaarisessa ykköstilassa JA-EI-portin 804 toisessa tulossa. JA-EI-portin 804 molempien tulojen ollessa binaarisessa ykköstilassa sen lähtö, signaali LOCKED+, pysyy binaarisessa nollatilassa, kunnes toinen sen tuloista tulee binaariseksi nollaksi.
Signaali LOCKED+ on JA-portin 805 ja JA-EI-portin 807 toisena tulona. JA-portin 805 ja JA-EI-portin 807 toisina tuloina on signaali LOCKER+, JA-portin 818 lähtö. JA-EI-portin 804 lähtö, signaali LOCKED+, on binaarinen ykkönen, jos joko prosessori tai väylä on jo lukinnut muistin, ja binaarinen nolla, jos prosessori tai väylä eivät ole lukinneet muistia.
Signaalin LOCKED+ tila binaarinen nolla JA-portin 805 ja JA-EI-portin toisissa tuloissa asettaa nämä portit estotilaan ja tekee toisen portin lähdön signaalin MENAKR+, binaariseksi nollaksi ja toisen portin lähdön signaalin MENAKR- binaariseksi ykköseksi. Signaali MENAKR+ on TAI-EI-portin 806 yhtenä tulona ja signaali MENAKR- on TAI-EI-portin 808 yhtenä tulona. TAI-EI-porttien 806 ja 808 muina tuloina ovat signaalit MESAME-, MODPAR-, PARER8+ ja PARERO+. Jotta TAI-EI-portin 806 tai TAI-EI-portin 808 lähtö olisi binaarinen ykkönen, kaikkien niiden tulojen on oltava binaarisia nollia. Signaali MESAME- on binaarinen nolla, kun luettavan tai kirjoitettavan muistipaikan osoite sisältyy muistiohjaimen 109 osoiteavaruuteen (ts. osoitetun muistipaikan on oltava joko muistimodulissa 1 101 tai muistimodulissa 2 102 ja osoitetun modulin on oltava fysikaalisesti läsnä järjestelmässä). Siten hetkellä B, jos Ι/0-ohjaimen 103 isäntäyksikkönä yhteisväylälle 107 antama osoite osuu paikalla olevaan muistimoduliin, signaali MESAME- tulee binaariseksi nollaksi. Signaali MODPAR- on osoitteen modulaarinen pa-riteettisignaali, joka osoittaa vastaako yhteisväylän kahdeksan V korkeimman bitin osoitelinjojen pariteetti yhteisväylän pari-» 29 79621 teettilinjaa ja jos vastaa, signaali on binaarinen nolla. Pari-teettivirhesignaalit PARERO+ ja PARER8+ ovat tiedon pariteetti-virheindikaattoreita 8 alimmalle ja 8 ylimmälle datalinjalle ja signaalit ovat binaarisia nollia, jos mitään pariteettivirhettä ei esiinny. Siten normaalitapauksessa kun I/O-ohjain osoittaa muistissa olevaa muistipaikkaa, signaalit MESAME-, MODPAR-, PARER8+, ja PARERO+ ovat kaikki binaarisia nollia ja TAI-EI-porttien 806 ja 808 lähdöt määräytyvät vain tulosignaaleista MENAKR+ ja MENAKR-. Tässä tapauksessa signaali MENAKR+ on ajan-hetkellä B binaarinen nolla tehden TAI-EI-portin 806 lähdön signaalin MECYCLE+ binaariseksi ykköseksi ja signaali MENAKR-on binaarinen ykkönen tehden TAI-EI-portin 808 lähdön, signaalin MENAKR+, binaariseksi nollaksi. Valintasignaali BSDCND+ antaa kello-ohjauksen D-kiikkujen 809 ja 810 kellotuloihin (C) siirtyessään binaarisesta nollatilasta binaariseen ykköstilaan. Valintasignaali BSDCNN+ johdetaan siten, että signaalia BSDCNN+ viivästetään 60 ns viivelinjalla 824, joka sisältyy osana muis-tiohjaimen väyläprioriteetin ratkaisulogiikkaan. Kuviossa 7 esitetty signaali BSDCND- muodostetaan invertoimalla signaali BSDCND+ invertterillä 826. Binaarisen ykkössignaalin MECYCLE+ kello-ohjäämisestä kiikun 809 D-tuloon seuraa kiikun 809 asettaminen, mikä tekee sen Q-lähdön, signaalin MECYLL+, binaariseksi ykköseksi ja Q-lähdön, signaalin MECYLL-, binaariseksi nollaksi. Tällä samalla hetkellä signaalin BSDCND+ siirtyessä binaarisesta nollatilasta binaariseen ykköstilaan kiikku 810 saa kello-ohjauksen ja sen D-tulossa olevasta binaarisesta nol-lasignaalista MENAKR+ on seurauksena kiikun 810 pysyminen asetetussa tilassa, mikä saattaa sen Q-lähdön, signaalin MENAKK-, pysymään binaarisessa ykköstilassa. Kiikkujen 809 ja 810 kello-ohjaus tapahtuu hetkellä D, kun signaali BSDCND+ siirtyy binaarisesta nollatilasta binaariseen ykköstilaan. Kiikun 809 lähtöjä, signaaleja MECYLL+ ja MECYLL-, käytetään sen määräämiseksi antaako muisti orjayksikkönä positiivisen kuittauksen (ACK) tai odota- (WAIT) vastauksen isäntäyksikön väylän kautta antamaan 3° 79621 pyyntöön. Kiikun 810 lähtöä, signaalia MENAKK-, käytetään määräämään annetaanko pyytävälle yksikölle negatiivinen (NAK) vastaus.
Ajanhetkellä D kiikun 809 asettamisen jälkeen signaali MECYLL+ tulee binaariseksi ykköseksi ja aktivoi osittain JA-EI-portin 811. Lisäksi ajanhetkellä D signaali MECYLL- on binaarinen nolla TAI-EI-portin 812 yhdessä tulossa ja portin lähtösignaalin, MYWAIT+, määrää siten sen toinen tulosignaali WAITER-. Signaalin WAITER- antaa muistinvarauskiikku 803, jota käytetään ilmoittamaan onko muisti sillä hetkellä varattuna vai ei. Signaali WAITER- on myös JA-EI-portin 811 toisena tulona. Siten jos muistinvarauskiikku 803 ei ole ajanhetkellä D asetettuna ja osoita, että muisti ei ole sillä hetkellä varattuna, signaali WAITER- kiikun Q-lähdössä on binaarinen ykkönen ja se aktivoi osittain JA-EI-portin 811 ja aikaansaa portin lähdön, signaalin MEACKR-, tulemisen binaariseksi nollaksi, kun signaali MECYLL+ tulee binaariseksi ykköseksi hetkellä D. Invertteri 814 invertoi signaalin MEACKR- kehittäen signaalin MYACKR+, joka vuorostaan invertoidaan invertterillä 815 signaalin BSACKR- muodostamiseksi, joka on positiivinen väylän kuittaussignaali, joka tulee binaariseksi nollaksi hetkellä D kuviossa 9. On huomattava, että kuvion 8 elementteihin liittyvät etenemisviiveet on yksinkertaisuuden vuoksi jätetty monissa tapauksissa huomioonottamatta kuvion 9 ajoituskaaviossa. Esimerkiksi signaalin BSDCNN-siirtyminen binaariseen nollatilaan hetkellä D on esitetty seu-raavan välittömästi signaalin BSACKR- tulemisesta binaariseksi nollaksi kuviossa 9 ja elementtien 823, 809, 811, 814 ja 815 etenemisviiveet on jätetty huomioonottamatta. Signaalin WAITER-ollessa binaarinen ykkönen TAI-EI-portin 812 toisessa tulossa signaalin MECYLL- siirtyminen binaarisesta ykköstilasta binaa-. . riseen nollatilaan hetkellä D ei muuta TAI-EI-portin 812 lähtöä siten, että signaali MYWAIT+ jää binaariseksi nollaksi ja väy-Iän odotussignaali BSWAIT-, jonka invertteri 816 antaa, pysyy 3i 79621 binaarisena ykkösenä.
Siten voidaan havaita, että kuviossa 9 hetkellä D, kun I/O-ohjain yrittää lukita muistia ja kun I/O-ohjain tai prosessori eivät kumpikaan ole aikaisemmin lukinneet muistia, orjayk-sikön lukituslogiikka 110 kehittää positiivisen kuittauksen (ACK) ja se lähetetään Ι/0-ohjaimelle, joka on isäntäyksikkönä, yhteisväylän 107 kautta ajanhetkellä D. Palattaessa tarkastelemaan kiikkua 810 ajanhetkellä D, kun signaalin MENAKR+ binaarinen nolla-arvo viedään kello-ohjauksella kiikkuun 810, kiikku 810 pysyy palautettuna ja sen O-lähtösignaali MENAKK-, pysyy binaarisena ykkösenä aikaansaaden invertterin 813 lähdön, signaalin MYNAKR+, pysymisen binaarisena nollana, joka vuorostaan invertoidaan invertterillä 817 väyläsignaalin BSNAKR- muodostamiseksi, joka pysyy binaarisena ykkösenä osoittaen siten, että lukitustoiminnan suorittavalle pyytävälle Ι/0-ohjaimelle ei kehitetä negatiivista vastausta (NAK).
Signaalin MEACKR- siirtyminen binaarisesta ykköstilasta binaariseen nollatilaan hetkellä D väylälukituskiikun 820 kellotu-lossa (C) kello ohjaa signaalin LOCKER+ binaarisen ykkösarvon J tuloon ja asettaa siten kiikun 820 tehden signaalin LOCKDD+ binaariseksi ykköseksi ja signaalin LOCKDD- binaariseksi nollaksi. Väylälukituskiikku 820 saa siten kello-ohjauksen, aina kun yhteisväylään 107 kytketty pyytävä yksikkö saa positiivisen kuittauksen (ACK) muistinohjaimelta 109. Signaalin LOCKDD-siirtyminen binaarisesta ykköstilasta binaariseen nollatilaan hetkellä D tekee JA-EI-portin 804 lähdön, signaalin LOCKED+, binaariseksi ykköseksi hetkellä F.
Hetkellä D, kun muistinohjäin on päättänyt, että Ι/0-ohjaimen muistinkäyttöpyyntöön annetaan positiivinen kuittaus, muistin-ohjain lukitsee muistiosoitteen sisään kaksiporttisen muistin väyläporttiin ja lisäksi muistinohjäin lukitsee sisään väylä- 32 79621 linjan tilan, joka osoittaa onko suoritettava muistin luku- tai kirjoitustoiminta, ja pyytää prioriteetin ratkaisulogiikalta 111 muistijakson suorittamista väylään kytketyn yksikön toimesta. Hetkellä E sen jälkeen kun isäntäyksikkö, jona tässä esimerkissä on I/O-ohjain 103, on vastaanottanut kuittauksen ACK muistinohjaimelta 109, I/0-ohjain poistaa väylälukitus- ja tietojaksonvalintasignaalit BSLOCK- ja BSDCNN- ja asettaa ne takaisin binaarisesta nollatilasta binaariseen ykköstilaan ja lisäksi I/0-ohjain poistaa muistin osoitesignaalit ja muistin luku- tai kirjoitustoiminnan ilmaisevat signaalit. Tietojakson-valintasignaalin BSDCNN- siirtyminen tämän jälkeen binaarisesta nollasta binaariseksi ykköseksi hetkellä E saattaa I/O-ohjaimen palauttamaan väyläpyyntösignaalin siten, että signaali BSREQT-siirtyy binaarisesta nollatilasta binaariseen ykköstilaan ajan-hetkellä E. Hetkellä F molemmat kiikut 809 ja 810 palauttaa signaalin BSDCNB+ tuleminen binaariseksi nollaksi niiden palau-tustuloissa (R). Signaalin BSDCNB+ antaa TAI-portti 825, jonka tuloina ovat signaali BSDCND+ ja signaali BSDCNN+. Kiikkujen 809 ja 810 nollautumisesta muistin väyläjakson lopussa on seurauksena sen signaaleista ACK, WAIT tai NAK, joka oli aktivoituna, tuleminen palautetuksi ja asettuminen uudelleen binaariseen ykköstilaan samoin kuin signaali BSACKR- tekee hetkellä F kuviossa 9. Siten hetkellä F orjayksikkö poistaa positiivisen, odotus- tai negatiivisen vastaussignaalinsa väylältä seuraavan väyläjakson valmisteluna.
Myöhemmin hetkellä G, kun pyydetty tieto on luettu muistista, muistinohjäin 109 pyytää väylän käyttöä hetkellä G saattamalla väylänpyyntösignaalin BSREQT- siirtymään binaarisesta ykkösti-lasta binaariseen nollatilaan. Prioriteetin ratkaisun jälkeen signaali BSDCNN- siirtyy binaarisesta ykköstilasta binaariseen nollatilaan hetkellä H ja oletettaessa, että muisti on saanut väylän käyttöönsä, muisti asettaa tällöin isäntäyksikkönä väylän datalinjoille muistista luetun tietosanan. Se saattaa myös 33 7 9 6 21 tällä hetkellä jälkimmäinen väyläjakso -signaalin BSSHBC- siirtymään binaarisesta ykköstilasta binaariseen nollatilaan ilmaisten siten orjayksikölle, että kyseessä on vastausjakso aikaisempaan lukupyyntöön. Kun I/O-ohjain, joka on orjayksikkönä, havaitsee ohjainosoitteensa yhteisväylällä 107, se reagoi kehittämällä positiivisen kuittauksen ja muuttaa signaalin BSACKR- binaarisesta ykköstilasta binaariseen nollatilaan hetkellä I.
Kun muisti vastaanottaa kuittauksen ACK, se saattaa muistinoh-jaimen prioriteettiverkkologiikan aikaansaamaan tietojaksonva-lintasignaalin BSDCNN- siirtymisen binaarisesta nollatilasta binaariseen ykköstilaan hetkellä J ja myös muistin poistamaan jälkimmäinen väyläjakso -signaalin BSSHBC- siten, että se palaa binaarisesta nollatilasta binaariseen ykköstilaan ajanhetkellä J. Positiivisen kuittauksen vastaanottamisesta ja tietojakson-valintasignaalin muutoksesta binaarisesta nollatilasta binaariseen ykköstilaan seuraa muistinohjaimen väylänpyyntösignaalin BSREQT- siirtyminen binaarisesta nollatilasta binaariseen ykköstilaan ajanhetkellä J. Ajanhetkellä K viivästettyään tieto-jaksonvalintasignaalia BSDDNN- prioriteettiverkkologiikassaan I/0-ohjain, joka oli vastannut kuittauksella orjayksikkönä, palauttaa väylän kuittaussignaalin BSACKR- binaarisesta nollatilasta binaariseen ykköstilaan hetkellä K, Tällä ajanhetkellä lukitustoimintaesimerkin I/O-ohjaimen muis-tinkäyttöpyyntö on suoritettu loppuun siten, että ajanhetkien A ja F välillä Ι/0-ohjain oli isäntäyksikkönä ja muisti vastasi orjayksikkönä ja otti muistiosoitteen väylältä ja ajanhetkien G ja K välillä muistista tuli isäntäyksikkö ja se vastasi 1/0-ohjaimelle tämän ollessa orjayksikkönä ja antoi muistista luetun tietosanan. Ajanhetkien E ja G välillä muut yhteisväylän 107 yksiköt voivat pyytää ja saada väylän ja myös muistinohjaimen hallintaansa, mikäli ne eivät yritä suorittaa lukitustoi- 34 79621 mintaa. Tänä aikana myös prosessori, mikäli se ei olisi pyytänyt lukitustoimintaa hetkellä C, voisi päästä muistiin, kun muistia ei käytetä seurauksena väyläpyynnöistä, jotka prioriteetin ratkaisulogiikka 111 on todennut prioriteetiltaan korkeammiksi. Ajanhetkien J ja L välillä I/O-ohjain suorittaa toimintoja muistista luetun tiedon muuntamiseksi. Ajanhetkellä L I/O-ohjain haluaa kirjoittaa muunnetun tiedon takaisin muistiin ja se pyytää väylän käyttöä asettamalla väylänpyyntölinjän BSREQT-binaarisesta ykköstilasta binaariseen nollatilaan. Kun I/O-ohjain on saanut väylän isäntäyksikkönä hallintaansa, se saattaa tietojaksonvalintasignaalin BSDCNN- siirtymään binaarisesta ykköstilasta binaariseen nollatilaan 0 ajanhetkellä M ja lisäksi asettaa kirjoitettavan muistipaikan osoitteen väylän osoitelinjoille ja tähän muistipaikkaan kirjoitettavan tiedon väylän tietolinjoille. Ajanhetkellä M I/O-ohjain ilmoittaa myös, että lukitustoiminta on suoritettu loppuun, ja tämän vuoksi se avaa muistin lukituksen saattamalla signaalin BSLOCK-siirtymään binaarisesta ykköstilasta binaariseen nollatilaan ja saattamalla jälkimmäinen väyläjakso -linjan, BSSHBC-, siirty-mään binaarisesta ykköstilasta binaariseen nollatilaan osoittaen siten, että tämä toiminta on lukituksen avaustoiminta vastakohtana lukitustoiminnalle, joka tapahtuu ajanhetkellä B, jolloin signaali BSSHBC- pidettiin binaarisessa ykköstilassa.
Palattaessa tarkastelemaan lukituslogiikkaa 110, joka on esitetty kuviossa 8, havaitaan, että ajanhetkellä M muistin kirjoi tusväyläjakson aikana, jossa I/O-ohjain on isäntäyksikkönä ilmoittanut, että muistin lukitus on avattava asettamalla signaalin BSLOCK- ja signaalin BSSHBC- binaariseen nollatilaan, JA-portin 818 lähtö, signaali LOCKER+ tulee binaariseksi nollaksi, ilmoittaen, että kyseessä ei ole lukitustoiminta ja JA-portin 819 lähtö, signaali UNLOCK+, tulee binaariseksi ykköseksi osoittaen, että kyseessä on lukituksen avaustoiminta. Tänä ajankohtana M väylälukituskiikku 820 pysyy asetetussa tilassa 35 7 9 6 21 saattaen Q-lähtönsä, signaalin LOCKDD-, pysymään binaarisessa nollatilassa. Signaalin LOCKDD- binaarisen nolla-arvon asettaa JA-EI-portin 804 estotilaan tehden sen lähdön, signaalin LOCKED+, binaariseksi ykköseksi ilmoittaen siten, että muisti on sillä hetkellä lukittuna. Signaalin LOCKED+ binaarinen yk-kösarvo aktivoi osittain JA-portin 805 ja JA-EI-portin 807. Signaalin LOCKER+ binaarinen nollatila on kuitenkin asettanut molemmat portit estotilaan tehden JA-portin 805 lähdön, signaalin MENAKR+, binaariseksi nollaksi ja JA-EI-portin 807 lähdön, signaalin MENAKR-, binaariseksi ykköseksi. Jos oletetaan, että TAI-EI-porttien 806 ja 808 neljä muuta tulosignaalia ovat binaarisia nollatilassa osoittaen, että väylällä oleva muistiosoite kohdistuu muistinohjaimen ohjaamaan muistipaikkaan ja että osoitteen tai tiedon prioriteettivirhettä ei esiinny, TAI-EI-portin 806 lähtö, signaali MECYLE+, tulee olemaan binaarinen ykkönen ja TAI-EI-portin 808 lähtö, signaali MENAKR+ tulee olemaan binaarinen ykkönen. Tämän jälkeen kun signaalia BSDCNN+ on viivästetty viivelinjassa 824 ja se on saattanut kellosignaalin BSDCND+ siirtymään binaarisesta nollatilasta binaariseen ykkös-tilaan antaen kello-ohjauksen kiikuille 809 ja 810, kiikku 809 tulee asetetuksi tehden Q-lähtösignaalinsa MECYLL+ binaariseksi ykköseksi ja kiikku 810 pysyy palautettuna pitäen Q-signaalinsa MEANKK- binaarisena ykkösenä.
Jos oletetaan, että muisti on nyt käytettävissä siten, että muistinvarauskiikun 803 lähtö, signaali WAITER-, on binaarinen ykkönen, JA-EI-portti 811 tulee täysin aktivoiduksi ja sen läh-tösignaali, MEACKR-, tulee binaariseksi ykköseksi, mikä vuorostaan invertoidaan inverttereillä 814 ja 825, jonka seurauksena väylänkuittaussignaali BSACKR- tulee binaariseksi nollaksi ajanhetkellä N kuviossa 9. Kuvion 9 hetkellä N väylän odotus-signaali ja negatiivinen kuittaussignaali, BSWAIT- ja BSNAKR-, pysyvät binaarisessa ykköstilassa. Kun signaali MEACKR- siirtyy binaarisesta ykköstilasta binaariseen nollatilaan ajanhetkellä 36 7 9 6 21 N, se antaa kello-ohjauksen väylälukituskiikulle 820, jonka J tulossa on binaarinen nolla ja K tulossa binaarinen ykkönen, mistä on seurauksena kiikun 820 tuleminen palautetuksi, mikä aikaansaa sen Q-lähtösignaalin, LOCKDD+, siirtymisen binaarisesta ykköstilasta binaariseen nollatilaan.
Kuten aikaisemmin on selitetty, kun orjayksikkö, jona on tässä tapauksessa Ι/0-ohjain, vastaanottaa kuittaussignaalin, 1/0-ohjain poistaa tämän seurauksena väylän lukitussignaalin ja jälkimmäinen väyläjakso signaalin ja kirjoitusosoitteen ja datan yhteisväylältä 107 hetkellä D ja saattaa siten signaalit BSDCNN-, BSLOCK- ja BSSHBC- siirtymään binaarisesta nollatilasta binaariseen ykköstilaan. Kuittauksen ACK vastaanottamisesta ja tietojaksonvalintasignaalin BSDCNN- siirtymisestä on myös seurauksena, että Ι/0-ohjain vapauttaa väylänpyyntölinjan siten, että signaali BSREQT- siirtyy binaarisesta nollasta binaariseen ykköstilaan hetkellä O. Signaalin BSDCNN+ muistinohjai-men prioriteetin ratkaisulogiikan viivelinjassa 824 suoritetun viivästämisen jälkeen TAI-portin 825 lähtö, signaali BSDCNB+ . . kiikkujen 809 ja 810 palautustuloissa (R) siirtyy binaarisesta ykkösestä binaariseksi nollaksi palauttaen siten molemmat kiikut ja saattaen väylänkuittaussignaalin BSACKR- siirtymään binaarisesta ykköstilasta binaariseen nollatilaan hetkellä P.
Kuittaussignaalin BSACKR- siirtyminen takaisin binaariseen ykköstilaan hetkellä P päättää Ι/0-ohjaimen muistinkirjoitusjakson ja koko luku-muunnos-kirjoitusjakson, jossa muisti lukittiin aluksi lukujakson alussa hetkellä D, kun väylälukituskiik-ku 820 asetettiin ja joka päättyy kirjoitusjakson lopussa hetkellä N, kun väylälukituskiikku 820 palautetaan.
Kuten edellä olevasta kuvion 8 lukituslogiikan 110 selityksestä voidaan todeta, aina kun lukituslogiikka kehittää kuittauksen : ACK väylän käyttöä pyytävälle isäntäyksikölle, signaalin 37 79621 MEACKR- siirtyminen binaarisesta ykköstilasta binaariseen nollatilaan, esim. hetkinä D, I, N kuviossa 9, antaa kello-ohjauksen väylälukituskiikulle 820. Väylälukituskiikku 820 asetettiin hetkellä D ja palautettiin hetkellä N. Hetkellä I kiikun 820 kello-ohjauksesta ei seurannut kiikun tilan muutosta, koska J ja K tulot olivat binaarisessa nollatilassa, koska lu-kitussignaalin BSLOCK+ binaarinen nollatila oli asettanut JA-portit 818 ja 819 binaariseen nollatilaan.
On huomattava, että kiikut 809 ja 810 kehittävät signaalin ACK, WAIT tai NAK väylälle vain, kun isäntäyksikkö on suorittanut muistiin sisältyvän muistipaikan osoituksen eikä niitä kehitetä isäntäyksikön osoittaessa toista Ι/0-ohjainta tai sellaista muistipaikkaa, joka ei sisälly muistinohjaimen 109 ohjaamaan muistiin. Näin tapahtuu siitä huolimatta, että signaali BSDCND+ antaa kello-ohjauksen kiikuille 809 ja 810 jokaisen väyläjakson aikana. Kuitenkin mikäli yhteisväylän 107 osoitelinjat eivät osoita muistiin sisältyvää muistipaikkaa, signaali MESAME-, joka on molempien TAI-EI-porttien 806 ja 808 tulona, on binaarisessa ykköstilassa saattaen porttien lähdöt, signaalit MECYLE+ ja MENAKR+, jotka ovat kiikkujen datatuloja (D), binaariseen nollatilaan, mistä on siten seurauksena kiikkujen 809 ja 810 nollautuminen aina, kun niitä kello-ohjataan signaalilla BSDCND+. Tästä nollaamisesta seuraa vuorostaan kiikkujen 0 ja Q-lähtöjen tilojen muuttumattomuus, mistä vuorostaan seuraa, että mikään väylän signaaleista ACK, WAIT tai NAK ei muutu binaariseen nollatilaan.
Sen lisäksi että JA-EI-portin 811 antamaa signaalia MEACKR-käytetään kuittausvastauksen ACK kehittämiseen sitä käytetään myös Ι/0-ohjaimen muistinkäyttöpyyntönä prioriteetin ratkaisu-logiikalle 111 siten, että aina muistin antaessa positiivisen : : kuittauksen (ACK) yhteisväylältä 107 tulevaan muistinkäyttö- pyyntöön signaali pyytää muistin käyttöä prioriteetin ratkaisu- 38 79621 logiikan 111 kautta.
J-K-kiikut asetetaan kello-ohjaamalla binaarinen ykkönen J-tuloon ja palautetaan kello-ohjaamalla binaarinen ykkönen K-tuloon. Siten väylälukituskiikun 820 kello-ohjauksesta, aina muistinohjaimen ollessa orjayksikkönä väylällä, seuraa kuittaus ACK isäntäyksikölle, joka pyytää muistipaikkaan kirjoittamista tai sen lukemista. Väylälukituskiikku 820 muuttaa tilansa vain, jos sitä ollaan lukitsemassa tai avaamassa signaalien BSLOCK-ja BSSHBC- yhdistelmän määräämällä tavalla, kuten tapahtuu hetkellä B ja hetkellä M kuviossa 9 ja kuten kuvion 9 hetkellä H ei tapahdu, koska signaali BSLOCK- on binaarinen ykkönen.
Ennen kuin käsitellään menetelmää, jolla prosessori lukitsee muistin, on huomattava, että yhteisväylään 107 kytketyn 1/0-ohjaimen toimesta on mahdollista suorittaa normaali (ts. ei lukittu) muistin luku- tai kirjoitusoperaatio sinä aikana, jolloin muisti on lukittuna. Eli ainoa seikka, joka on estettynä muistin ollessa lukittuna, on toinen lukittu luku- tai kirjoi-tustoiminta joko prosessorista tai väylältä. Esimerkiksi jos Ι/0-ohjain on pyytänyt muistin lukua, suoritetaan kuviossa 9 esitetty sekvenssi ajanhetkestä A ajanhetkeen J paitsi, että isäntäyksikkö ei aikaansaa väylänlukitussignaalin BSLOCK- siirtymistä binaariseen nollatilaan hetkellä B, joten signaali LOCKER+ tulee olemaan binaarinen nolla kiikun 820 J-tulossa ja myös JA-portin 805 tulossa, mikä tekee portin lähdön, signaalin MENAKR+, binaariseksi nollaksi, mistä on seurauksena TAI-EI-portin 806 lähdön, signaalin MECYLE+, tuleminen binaariseksi ykköseksi» Kun signaalin BSDCND+ siirtyminen binaariseen ykkös-tilaan kello-ohjaa signaalin MECYLE+ binaarisen ykkösarvon kiikkuun 809, JA-EI-portti 811 tulee täysin aktivoiduksi, kun .oletetaan että signaali WAITER- on binaarinen ykkönen, ja seurauksena on kuittauksen ACK antaminen muistista, joka on orja-yksikkönä, Ι/0-ohjaimelle, joka on isäntäyksikkönä. Isäntäyksi- 39 79621 kölle annetusta kuittauksesta olisi seurauksena väylälukitus-kiikun 820 kello-ohjaus, mutta koska kiikun sekä J että K tuloissa on binaarinen nolla, kiikun 820 tila ei muutu ja sen aikaisemmin lukitsematon tila pysyy muuttumattomana.
PROSESSORIN LUKITSEMA MUISTITOIMINTA
Seuraavassa selitetään lukituslogiikan 110 osaa, joka mahdollistaa prosessorin suorittaman lukitun muistitoiminnan, kuvioihin 8, 9 ja 10 viitaten. Kun prosessori haluaa lukea tai kirjoittaa muistiin, joko ei lukitun tai lukitun toiminnan aikana, prosessori ei kommunikoi muistin kanssa yhteisväylän 107 kautta, vaan sen sijaan käyttämällä muistinohjaimen 109 toista porttia. Prosessori ei siten pyydä yhteisväylän 107 käyttöä muuttamalla väylänpyyntölinjän BSREQT- tilaa eikä prosessori käytä mitään ajoitussignaaleja tai lukitussignaaleja, kuten tietojaksonvalintasignaalia BSDCNN- tai lukitussignaalia BSLOCK- tai jälkimmäinen väyläjakso-signaalia BSSHBC-. Prosessori ei myöskään tutki ACK, WAIT tai NAK signaalilinjoja nähdäkseen onko muisti orjayksikkönä hyväksynyt komennon isäntäyk-siköltä, joka haluaa muistin käyttöä.
Prosessorin ja muistin välillä ei ole tätä isäntä-orjayksikkö-suhdetta, koska prosessori kommunikoi suoraan muistin kanssa oman porttinsa kautta. Aina halutessaan suorittaa lukitun toiminnan prosessori lukitsee muistin asettamalla prosessoriluki-tuskiikun 801, joka kuten edellä on selitetty on J-K-kiikku. Parhaana pidetyssä suoritusmuodossa prosessori on mikro-ohjelmoitu järjestelmä ja aikana, jolloin se suorittaa ohjelma-käskyä, joka edellyttää lukittua muistitoimintaa, kuten esimerkiksi prosessorin suorittaessa dekrementointikäskyä, joka edellyttää: muistipaikan lukemista prosessorin rekisteriin, ykkösen vähentämistä rekisterin sisällöstä ja tämän jälkeen rekisterin sisällön kirjoittamista takaisin muistiin, prosessori 40 79621 asettaa kiikun 801 suorittamalla mikro-operaation, joka saa signaalin SETLCK- kiikun 801 asetustulossa (S) siirtymään binaarisesta ykköstilasta binaariseen nollatilaan. Kiikun 801 asettaminen saattaa sen 0 lähdön, signaalin CPLKME+, siirtymään binaarisesta nollatilasta binaariseen ykköstilaan. Esimerkki tästä on esitetty kuviossa 9 hetkellä C, joka esiintyy hieman sen jälkeen kun väylältä hetkellä B tullut muistinkäyttöpyyntö on jo lukinnut muistin. Kuten myöhemmin havaitaan, johtuen prosessorin mikro-operaatioiden suorittamisesta asynkronisesti yhteisväylän 107 väyläjaksojen suhteen muistin lukitsemista samanaikaisesti yrittävien väylän ja prosessorin välillä saattaa syntyä kilpailutilanne. Ennen prosessorin ja väylän välisen muistinlukitsemisen mahdollisen kilpailutilanteen selittämistä selitetään menetelmä, jolla prosessori lukitsee muistin.
Kuten edellä on selitetty, väylän yleinen nollaussignaali BSMCLR- alkuasettaa prosessoria alustettaessa prosessoriluki-tuskiikun 801 samoin kuin synkronointikiikun 802 ja väyläluki-tuskiikun 820 palautustilaan. Kun myöhemmin prosessorin ohjelman suorituksen aikana ohjelman käsky edellyttää lukitun toiminnan suorittamista muistissa prosessorin halutessa keskeytyksittä lukea muistipaikan, muuntaa sen sisältöä ja kirjoittaa sisällön takaisin, ohjelmistokäskyn toteuttavat mikrokäskyt • suorittavat lukituksen asetusoperaation kehittämällä signaalin SETLCK- binaarisessa nollatilassa kiikun 801 asetustuloon (S). Tämä muistinlukitusmikro-operaatio on esitetty kuviossa 10 lohkona 1001. On huomattava, että prosessori suorittaa prosessori-lukituskiikun 801 asettamisen yksipuolisesti, ilman että prosessori tarkastaisi väylälukituskiikun 820 tilan todetakseen onko väylä jo lukinnut muistin. Prosessorin ei myöskään tarvit-: se tutkia onko muisti jo prosessorin lukitsemana prosessorilu- kituskiikun 801 tilaa tutkimalla, koska prosessori tietää implisiittisesti, että mikrokäskysekvenssiä, joka lukitsee ja myöhemmin avaa muistin ei voida keskeyttää jolloin mikäli proses- 41 79621 sorin mikro-operaatio on aikaisemmin lukinnut muistin, tätä on seurannut lukituksen avaava mikro-operaatio, ja siten jos prosessori on tällöin tilanteessa, jossa se voi lukita muistin, prosessorilukituskiikun 820 tilan on oltava palautetussa tilassa ja muisti ei voi olla sillä hetkellä prosessorin lukitsemana.
Synkronointikiikku 802 tarvitaan johtuen väyläsignaalien prosessorin mikrokäskyjen suorituksen suhteen asynkronisesta luonteesta. Siten kello-ohjaamalla prosessorilukituskiikun 810 lähtö, signaali CPLKME+, kiikun 802 datatuloon (D) käyttämällä väylän tietojaksonvalintasignaalia BSDCNN+, joka johdetaan invertoimalla väyläsignaali BSDCNN- invertterillä 823, kiikun 802 Q-lähtö, signaali LOCKED-, saadaan stabiloiduksi, jolla varmistetaan, että kiikkujen 809 ja 810 datatuloissa (D) olevat signaalit ovat stabiilissa tilassa, kun ne kello-ohjataan sisään noin 60 ns myöhemmin signaalien BSDCND+ siirtymisellä binaariseen ykköstilaan. Synkronointikiikku 802 varmistaa siten, että jos prosessori lukitsee muistin ennen kuin tietojakson va-lintasignaali BSDCNN- siirtyy väylällä binaariseen nollatilaan, prosessorilukitussignaali on havaittavissa ja stabiili siten, että se vaikuttaa MECYLE+ ja MENAKR+ signaalien tilaan kiikkujen 809 ja 810 tuloissa ja aiheuttaa negatiivisen kuittauksen antamisen väylältä tulevaan pyyntöön lukitun muistitoiminnan suorittamiseksi. Kuitenkin jos prosessori ei aseta prosessori-lukituskiikkua 801 ennen tietojaksonvalintasignaalin esiintymistä väylällä, synkronointikiikku 802 pysyy palautetussa tilassa ja kiikkujen 802 ja 810 tulot eivät muutu ennen seuraavaa väyläjaksoa. Kiikkujen 809 ja 810 kello-ohjauksen antamisella 60 ns synkronointikiikun 802 kello-ohjauksen jälkeen saadaan riittävästi aikaa sen varmistamiseksi, että kiikun 802 Q-lähtö on saavuttanut jatkuvan tilan, mihin voi kulua 20-30 ns, ja että tällä lähtötilalla on ollut riittävästi aikaa edetä JA-EI-I portin 804, JA-portin 805, TAI-EI-portin 806 tai JA-EI-portin 42 79621 804, JA-EI-portin 807 ja TAI-EI-portin 808 kautta ennen kiikkujen 809 ja 810 kello-ohjausta. Kun prosessori on asettanut pro-sessorilukituskiikun 801 ja tietojaksonvalintasignaalin esiintyminen väylällä on kello-ohjannut sen lähdön synkronointikiik-kuun 802, signaalin LOCKED- binaarinen nollatila aikaansaa JA-EI-portin 804 lähdön tulemisen binaariseksi ykköseksi ja pysymisen tässä tilassa siihen asti kunnes sekä synkronointikiikku 802 että väylälukituskiikku 820 palautetaan. Siten JA-EI-portin 804 lähtö, signaali LOCKED+, ilmaisee ollessaan binaarinen ykkönen, että joko prosessori tai väylä tai molemmat ovat lukinneet muistin.
Muu osa logiikasta 110 käyttää signaalia LOCKED+ samalla tavalla kuin edellä on selitetty väylän suorittaman muistin lukituksen osalta. Prosessorin suorittamasta muistin lukitsemisesta ei kuitenkaan seuraa ACK, WAIT tai NAK vastauksen kehittämistä prosessorille, koska nämä signaalit kehitetään vain vastauksena isäntäyksikön pyyntöön käyttää muistia yhteisväylän 107 kautta. Prosessorin muistinkäyttöön ei liity väyläjaksoa ja prosessorin suorittamasta muistin lukituksesta ei siten seuraa muistin or-jayksikkönä isäntäyksikölle kehittämää vastausta, kun sen sijaan vastaus kehitetään silloin, kun väylä on lukinnut muistin, koska väylän lukitus tapahtuu väyläjakson osana. Prosessorilu-kituskiikun 801 asetus tapahtuu siten valmisteluna seuraavalle väylän muistijaksolle, niin että mikä tahansa 1/0-yksikkö, joka yrittää isäntäyksikkönä suorittaa väylän välityksellä lukittua toimintaa muistissa, vastaanottaa oikean vastauksen riippumatta siitä onko muistin lukinnut väylällä oleva Ι/0-laite tai prosessori.
Kuten edellä on selitetty, prosessorilukituskiikku 801 tulee asetetuksi siten, että prosessori suorittaa mikro-operaation, joka aikaansaa signaalin SETLCK- tulemisen binaariseksi nollaksi. Prosessori suorittaa tämän lukituksenasetusmikro- 43 79621 operaation suorittaessaan lukitun toiminnan, joka edellyttää muistipaikan luku-muunnos-kirjoitustoimintaa. Jokaisella muis-tinkäyttökerralla joko lukua tai kirjoitusta varten ja riippumatta siitä tapahtuuko käyttö prosessorin tai yhteisväylään kytketyn I/O-laitteen toimesta ajoitussignaali MCASCP- tulee binaariseksi nollaksi, kun sarakeosoite annetaan päämuistin muodostaville puolijohdepiireille. Siten jokaisella muistin-käyttökerralla prosessorilukituskiikku 801 saa kello-ohjauksen siten, että signaali MCASCP- tulee binaariseksi nollaksi kello-tulossa (C). Sellaisen muistiinkirjoituksen aikana, joka suoritetaan prosessorin toimesta eikä yhteisväylällä olevan 1/0-ohjaimen toimesta, signaali MMWRIT+ on binaarinen ykkönen hetkellä, jolloin sarakeosoitesignaali MCASCP- tulee binaariseksi nollaksi. Siten prosessorin muistiinkirjoitussignaalin MMWRIT+ syöttäminen kiikun K-tuloon palauttaa prosessorilukituskiikun aina, kun muistiin kirjoitus tapahtuu prosessorin toimesta. Voidaan siten havaita, että prosessorin mikrokäskyn suorittaminen asettaa prosessorilukituskiikun 801 ennen luku-muunnos-kir joitustoimintaa ja kiikku palautetaan ehdoitta aina, kun muistiinkirjoitus suoritetaan prosessorin toimesta. Tämä luki-tuslogiikan yksinkertaistaminen on mahdollista, koska asiayhteydestä seuraa, että prosessori lukitsee muistin vain valmisteluna luku-muunnos-kirjoitustoiminnan suorittamiselle ja logiikka voi siten ehdoitta palauttaa prosessorilukituskiikun minkä tahansa prosessorin kirjoitustoiminnan lopussa, koska se on viimeinen vaihe, luku-muunnos-kirjoitussekvenssissä, jossa on pyydetty muistin lukitsemista.
Muistinvarauskiikkua 803 on selitetty aikaisemmin sen lähtö-signaalin WAITER- osalta. Kun muistinvarauskiikku 803 asetetaan, sen 0-lähtö, signaali WAITER-, tulee binaariseksi nollak-: si osoittaen, että kaksiporttisen muistin väyläportti on varat tuna ja se suorittaa muistitoimintaa yhteisväylään 107 kytketyn laitteen toimesta. Muistinvarauskiikun 803 asettaminen estää 44 79621 siten positiivisen kuittauksen antamisen seuraaville väylältä tuleville muistinkäyttöpyynnöille ennen sen hetkisen muistin-käyttöpyynnön loppuunsuorittamista. Kuten edellä.olevasta selityksestä ilmenee, kun muistinvarauskiikku 803 asetetaan, signaalin WAITER- binaarinen nolla-arvo asettaa .JA-EI-portin 811 estotilaan ja estää positiivisen kuittauksen ACK kehittämisen muistin käyttöä pyytävälle isäntäyksikölle ja sen sijaan seurauksena on TAI-EI-portin 812 aktivointi, mistä seuraa, että muisti kehittää odotussignaalin WAIT vastauksena Ι/0-ohjaimelta tulevaan muistinkäyttöpyyntöön.
Järjestelmää alustettaessa signaali MEMRDY- asetetaan binaariseen nollatilaan, mikä siten asettaa kiikun 803 ja pitää sen asetettuna siihen asti, kunnes järjestelmä on käynnistynyt ja muisti on saavuttanut toimintanopeutensa ja on nollattu. Tämän jälkeen signaali MEMRDY+ palaa binaariseen ykköstilaan ja muistinvarauskiikku 803 asetetaan väyläjakson aikana, jos data-signaali (D) MEBUSY+ on binaarinen ykkönen, kun tietojaksonva-lintasignaali BSDCNN+ tulee binaariseksi ykköseksi kellotulossa (C). Signaali MEBUSY+ saadaan kaksiporttisen muistin väyläport-tiin liittyvien muistisignaalien, joukon kerääntymisen seurauksena, josta on tuloksena, että signaali MEBUSY+ tulee olemaan binaarisessa ykköstilassa aina, kun kaksiporttisen muistin väy-läportti on mukana muistitoiminnassa eikä ole vapaa hyväksymään muistinkäyttöpyyntöä yhteisväylältä 107. Kun muisti on suorittanut loppuun muistitoiminnan yhteisväylään 107 kytketyn laitteen osalta, signaali MEBUSY+ palaa binaariseen nollatilaan ja kun tietojaksonvalintasignaali BSDDNN+ seuraavan kerran antaa kello-ohjauksen muistinvarauskiikulle 803, se tulee palautetuksi. Tämä palautus tapahtuu väyläjaksolla riittävän aikaisin siten, että muistinvarauskiikku 803 tulee palautetuksi ennen väyläjakson, jossa Ι/0-ohjaimen muistinkäyttöpyyntö annetaan, kuittaus- tai odotussignaalin kehittämistä.
45 79621
Edellä oleva selitys on osoittanut kuinka väylä voi lukita muistin asettamalla väylälukituskiikun 820 ja kuinka prosessori voi lukita muistin asettamalla prosessorilukituskiikun 801. Menetelmä, jolla väylälukituskiikku 820 palautetaan, samoin kuin menetelmä, jolla prosessorilukituskiikku 801 palautetaan ehdoitta aina kun muistiinkirjoitustoiminta suoritetaan prosessorin toimesta, on selitetty edellä. Edellä on myös selitetty kuinka myöhemmälle väylältä tulevalle lukitustoiminnalle annetaan negatiivinen kuittaus (NAK), jos lukitustoimintaa yritetään suorittaa aikana, jolloin muisti on jo joko prosessorin tai väylän lukitsema. Seuraavassa selitetään menetelmä, jolla prosessori määrää onko väylä lukinnut muistin, kun prosessori yrittää suorittaa lukittua toimintaa.
Koska prosessori ei saa ACK, WAIT tai NAK signaaleja, jotka kehitetään vain, kun muisti vastaa väylältä tulevaan muistinkäyt-töpyyntöön, prosessori tutkii suoraan väylälukituskiikun 820 lähtöjä tarkastelemalla Q-lähtösignaalia LOCKDD+. Pohjimmiltaan prosessori toimii siten, että se asettaa prosessorilukituskiikun 801 ehdoitta laitelmisto-operaatiolla ja tutkii tämän jälkeen toisella laitelmisto-operaatiolla väylälukituskiikun 820 tilan ja suorittaa ohjelmasilmukkaa siihen asti, kunnes muisti ei ole enää väylän lukitsemana. Tämän jälkeen prosessori suorittaa luku-muunnos-kirjoitustoimintansa prosessorin suorittaman muistiinkirjoituksen palauttaessa prosessorilukituskiikun 801. Tämä sekvenssi on esitetty kuviossa 10, jossa on esitetty neljä lohkoa kunkin lohkon vastatessa yhtä prosessorin laitel-miston mikro-operaatiota. Nämä neljä lohkoa 1000-1004 edustavat mikro-operaatioita, jotka voivat sisältyä ohjelmankäskyyn, joka suorittaa lukitun muistitoiminnan, kuten aikaisemmin on selitetty, esimerkiksi sanan dekrementointioperaation, jossa sana luetaan muistista, sanaa dekrementoidaan ykkösellä ja dekremen-toitu arvo kirjoitetaan takaisin muistiin.
46 79621
Lohkossa 1001 prosessorin laitelmisto asettaa ehdoitta proses-sorilukituskiikun 801. Tätä mikro-operaatiota voi seurata välittömästi lohkon 1002 edustama mikro-operaatio tai välissä voi olla muita mikro-operaatioita, kuten lohkosta 1001 lohkoon 1002 kulkeva katkaistu viiva osoittaa. Lohkossa 1002 suoritetaan mikro-operaatio, joka lukee muistipaikan sisällön, jota on käsiteltävä, ja samassa mikro-operaatiossa testataan onko väylä-kiikku 820 asetettuna. Jos signaali LOCKDD+ on binaarinen ykkönen osoittaen, että väylä on lukinnut muistin, mikro-operaatio haarautuu takaisin alkuun siten, että lohko 1002 suoritetaan uudelleen ja muistipaikka luetaan jälleen muistista ja kiikku 820 testataan uudelleen. Tämä kierto lohkossa 1002 jatkuu siihen asti, kunnes väylälukituskiikku 820 palautetaan, jolla hetkellä mikro-operaatio 1002 ei haaraudu takaisin ja lohkon 1003 mikro-operaatio suoritetaan. Lohko 1003 voi itse asiassa edustaa useita mikro-operaatioita, jotka laskevat uuden arvon sanalle, joka luettiin muistista, niin että päivitetty arvo voidaan tämän jälkeen kirjoittaa muistiin. Lohkojen 1002 ja 1003 välillä voi jälleen olla välillä olevia mikro-operaatioita, kuten on osoitettu katkaistulla viivalla. Päivitetty arvo kirjoitetaan muistiin lohkossa 1004 ja koska jokainen muistin kirjoitusoperaatio palauttaa ehdoitta prosessorilukituskiikun 801, prosessori vapauttaa muistin lukituksen. Kuten edellä on selitetty, sinä aikana, jolloin prosessori on lukinnut muistin lohkossa 1001 siihen asti kunnes sen lukitus vapautetaan lohkossa 1004, yhteisväylällä 107 olevan yksikön suorittamasta muistin lukituksen avausyrityksestä on seurauksena, että lukituslogiik-ka 110 kehittää negatiivisen kuittauksen NAK, kun muisti vastaa orjayksikkönä Ι/0-ohjaimelle, joka on antanut pyynnön isäntäyk-sikkönä.
Palattaessa tarkastelemaan kuviota 9 voidaan havaita, että prosessori suorittaa prosessorin lukitseman muistitoiminnan alkaen hetkestä AA ja päättyen hetkeen EE. Hetkestä AA hetkeen BB pro 47 79621 sessori suorittaa kuvion 10 lohkon 1001 muistinlukitustoimin-nan, josta on seurauksena hetkellä C prosessorilukituskiikun 810 asettaminen, mikä tekee sen Q-lähdön, signaalin CPLKME+, binaariseksi ykköseksi. Ajanhetkestä BB ajanhetkeen CC prosessorin laitelmisto on silmukassa, jossa prosessorin laitelmisto lukee muistin aina, kun muisti tulee prosessorin käytettäväksi, minkä määrää prioriteetin ratkaisulogiikka 111, ja samalla testaa väylälukituskiikun 820 ja jatkaa lohkon 1002 uudelleen suorittamista, kunnes se toteaa lohkon viimeisen suorituskerran aikana, että signaali LOCKDD+ on palannut binaariseen nollatilaan hetkellä N. Ajanhetkestä CC ajanhetkeen DD prosessori suorittaa lohkojen 1002 ja 1004 välisiä mikrokäskyjä, joihin sisältyy lohko 1003, joka muuntaa muistiin kirjoitettavaa tietoa. Prosessorin suorittamasta tiedon muistiin kirjoittamisesta seuraa prosessorilukituskiikun 801 palautus, mikä saa signaalin CPLMKE+ siirtymään binaarisesta ykköstilasta binaariseen nollatilaan hetkellä X. Ajanhetken X jälkeen, esim. kuvion 9 ajan-hetkellä Y myöhemmistä väylän käyttöpyynnöistä seuraa, esim. hetkellä Z, tietojaksonvalintasignaalin BSDCNN- siirtyminen binaarisesta ykköstilasta binaariseen nollatilaan, mistä vuorostaan seuraa synkronointikiikun 802 palautuminen, joka saa JA-EI-portin 804 lähdön, signaalin L0CKED+, siirtymään, esim. hetkellä Z, binaarisesta ykköstilasta binaariseen nollatilaan.
Kuviossa 9 on myös esitetty Ι/0-ohjaimen yritys suorittaa lukittua muistitoimintaa aikana, jolloin vain prosessorilla on muisti lukittuna. Siten hetkellä R Ι/0-ohjain antaa väyläpyyn-nön isäntäyksikkönä, mikä saattaa tietojaksonvalintasignaalin BSDCNN- siirtymään binaarisesta ykköstilasta binaariseen nollatilaan, josta seuraa, että Ι/0-ohjain asettaa luettavan muisti-osoitteen väylälle ja mikä myös saattaa Ι/0-ohjaimen asettamaan lukitussignaalin BSLOCK- binaariseen nollatilaan hetkellä S osoittamaan, että lukittua toimintaa halutaan. Koska väylä on tällä hetkellä prosessorin lukitsema, minkä osoittaa se, että 48 79621 JA-EI-portin 804 lähtö, signaali LOCKED+ on binaarisessa ykkös-tilassa, JA-EI~portin 807 lähtö, signaali MENAKR-, tulee binaariseksi nollaksi ja se tekee TAI-EI-portin 808 lähdön binaariseksi ykköseksi, inistä on seurauksena kiikun 810 asettuminen hetkellä T, mistä vuorostaan seuraa negatiivisen kuittauksen NAK kehittäminen väylälle ja signaalin BSNACKR- siirtyminen binaarisesta ykköstilasta binaariseen nollatilaan ajanhetkellä T. Kun Ι/0-ohjain, joka on isäntäyksikkönä, vastaanottaa hetkellä U negatiivisen kuittauksen muistista, joka on orjayksikkönä, Ι/0-ohjain poistaa väylän lukitussignaalin, tietojaksonvalinta-signaalin ja väylänpyyntösignaalit väylältä siten, että hetkellä U signaalit BSLOCK-, BSDCNN- ja BSREQT- siirtyvät binaarisesta nollatilasta binaariseen ykköstilaan. Ajanhetkellä W signaalin BSDCNB+ siirtyminen binaariseen nollatilaan kiikun 810 palautustulossa (R) palauttaa kiikun 810 ja se saattaa signaalin BSNACKR- siirtymään binaarisesta nollatilasta binaariseen ykköstilaan.
Vaikka tämä Ι/0-ohjaimen muistinlukitustoiminnan yritys on esitetty aikaisemman Ι/0-ohjaimen muistinlukitustoiminnan loppuun-suorittamisen jälkeen, mahdollisesta toisen Ι/0-ohjaimen yrityksestä suorittaa muistinlukitustoiminta aikana, jolloin väylä on lukinnut muistin, aiheutuu saman sekvenssin suorittaminen lukitustoimintaa yrittävän ϊ/0-ohjaimen vastaanottaessa negatiivisen kuittauksen NAK muistilta. Näin tapahtuu, koska JA-EI-portin 804 lähtö osoittaa, että prosessori tai väylä tai molemmat ovat lukinneet muistin, mistä kaikista seuraa negatiivisen kuittauksen NAK kehittäminen vastauksena myöhempiin yrityksiin lukitun toiminnan käynnistämiseksi yhteiseen väylään 107 kytketyn laitteen toimesta.
Mahdollisesti tuloksena oleva kilpailutilanne, jossa sekä prosessori että väylä yrittävät lukita muistin enemmän tai vähemmän samanaikaisesti, aiheuttaa rajoituksen minimiaikaan, jonka 49 79621 on kuluttava niiden ajankohtien välillä, jolloin prosessorilu-kituskiikun 801 asettava prosessorin mikrokäsky ja väyläluki-tuskiikun 820 lähtöä tutkiva mikrokäsky suoritetaan. Tähän enemmän tai vähemmän samanaikaiseen muistinlukitusyritykseen sisältyy kaksi mielenkiintoista tapausta. Ensimmäisessä tapauksessa prosessori lukitsee muistin hieman ennen väylän suorittaman muistin lukitusta ja toisessa tapauksessa prosessori lukitsee muistin hieman väylän suorittaman muistin lukituksen jälkeen. Toinen tapaus määrää tänä aikarajoituksena minimiajan, jonka on kuluttava sillä välillä, kun prosessori asettaa pro-sessorilukituskiikun 801 ja kun se tutkii väylälukituskiikun 820 lähtöä.
Ensimmäisessä tapauksessa mikäli prosessori asettaa prosessori-lukituskiikun 801 kuvion 10 lohkon 1001 mikro-operaation suorittamalla hieman ennen kuin väylällä oleva Ι/0-ohjain pyytää muistin lukitustoimintaa, prosessorilukituskiikku 801 tulee asetetuksi ennen kuin väylältä tuleva signaali BSDCNN-, joka ilmaisee tietojakson valinnan, antaa kello-ohjauksen synkro-nointikiikulle 802. Tässä tapauksessa väylän muistinlukitusyritykseen liittyvän väyläjakson alku aiheuttaa synkronointikiikun 802 asettamisen, mistä puolestaan seuraa kiikun lähtösignaalin LOCKED- tuleminen binaariseksi nollaksi. Signaalin LOCKED- binaarisesta nollatilasta seuraa JA-EI-portin 804 tuleminen binaariseksi ykköseksi, josta vuorostaan seuraa negatiivisen kuittauksen (NAK) kehittäminen vastauksena väylältä tulevaan lukituspyyntöön. Lukituskiikku 820 ei saa kello-ohjausta, koska kuittauksen ACK sijasta kehitetään negatiivinen kuittaus NAK, joten väylä ei lukitse muistia eikä prosessori voi lukita muistia ennen kuin prosessori on suorittanut loppuun koko muistin-lukitustoimintansa (ts. luku-muunnos-kirjoitustoiminnan muistissa). Tässä tapauksessa, jossa prosessori lukitsee muistin hieman ennen väylältä tulevaa lukituspyyntöä, prosessorilu-kituskiikun asettavan mikrokäskyn 1001 suorittamisen ja lohkoon 1002 liittyvän mikro-operaation, joka tutkii väylälukituskiikun 820 tilaa, suorittamisen välillä kuluvan ajan suhteen ei ole rajoituksia.
so 79621
Toisessa tapauksessa esiintyy kilpailutilanne prosessorin ja väylän suorittaman muistin lukituksen välillä, kun väylä antaa lukituspyynnön hieman ennen kuin prosessori lukitsee muistin asettamalla prosessorilukituskiikun 801. Tätä tapausta on havainnollistettu kuviossa 9, jossa I/O-ohjain on antanut muis-tinlukituspyynnön hetkellä A. I/0-ohjain kehittää tietojakson-valintasignaalin BSDCNN- hetkellä B, hieman ennen ajankohtaa, jolloin kuvion 10 lohkoon 1001 liittyvä mikro-operaatio suoritetaan, joka asettaa signaalin SETLOCK- binaariseen nollatilaan siten, että prosessorilukituskiikku 801 tulee asetetuksi hetkellä C, mistä seuraa signaalin CPLMKE+ tuleminen binaariseksi ykköseksi. Tässä tapauksessa synkronointikiikun 802 datatuloon (D) käytettäväksi tuleva binaarinen ykkönen jää juuri ja juuri kello-ohjaamatta kiikkuun 802 siten, että sen Q-lähtösignaali LOCKED- pysyy binaarisena ykkösenä. Koska kuittaus ACK, joka kehitetään Ι/0-ohjaimelle, ei ole vielä antanut kello-ohjausta väylälukituskiikulle 820 hetkellä C, JA-EI-portin 804 toinen tulosignaali, signaali LOCKDD-, on myös binaarinen ykkönen, mikä siten aktivoi täydellisesti JA-EI-portin 804. Väylä ei siten ole lukinnut muistia hetkellä C ja synkronointikiikkua ei ole asetettu, mistä seuraa TAI-EI-portin 806 lähdön tuleminen binaariseksi ykköseksi, mikä aiheuttaa kiikun 809 tulemisen asetetuksi, mistä vuorostaan seuraa kuittauksen ACK kehittäminen Ι/0-ohjaimelle, joka pyytää lukitusoperaation suorittamista. Kuittaussignaalin ACK kehittäminen antaa vuorostaan kello-ohjauksen väylälukituskiikulle 820, mistä seuraa kiikun tuleminen asetetuksi, niin että sen Q-lähtösignaali LOCKDD+ siirtyy binaariseen ykköstilaan hetkellä D.
Jos tässä toisessa tapauksessa, jossa väylä on voittanut kil- si 79621 pailun muistin lukitsemiseksi ajanhetken, jolloin prosessori asettaa prosessorilukituskiikun 801, ja ajanhetken, jolloin prosessori tarkastelee väylälukituskiikun 820 lähtöä, välinen aika on liian lyhyt, saattaa olla, että kello-ohjauksena toimiva kuittaussignaali ACK ei ole vielä asettanut väylälukitus-kiikkua 820. Lohkoon 1002 liittyvää väylälukituskiikun 820 tilaa tutkivaa prosessorin mikro-operaatiota ei siten voida suorittaa lyhyemmän ajan kuluttua prosessorilukituskiikun 801 asettumisesta kuin mitä tarvitaan väylälukituskiikun lähdön stabiloitumiseen, jotta väylälukituskiikun 820 asettuminen tulisi näkyviin kuvion 10 lohkon 1002 mikro-operaatiossa. Parhaana pidetyssä suoritusmuodossa tämä minimiaika on noin 60 ns, koska kellosignaali BSDCND+ kiikkujen 809 ja 810 kellotuloissa esiintyy noin 60 ns synkronointikiikun 802 kellosignaalin BSDCNN+ jälkeen. 60 ns ajassa on jätetty ottamatta huomioon JA-EI-porttiin 811 liittyvät etenemisviiveet ja väylälukituskiikun 820 asettumisaika. Siten edellyttäen, että prosessorin laitel-misto ei tutki väylälukituskiikun 820 lähtöä ennen kuin 60 ns on kulunut prosessorilukituskiikun 801 asettamisesta, prosessori havaitsee väylän suorittaman muistinlukituksen eikä prosessori suorita toimenpiteitä tänä aikana, kun prosessorin ja väylän suorittaman muistin lukituksen välisen kilpailun tulos on ratkaisematta.
Parhaana pidetyssä suoritusmuodossa, jossa prosessori tarvitsee noin 240 ns kuvion 10 kunkin mikrokäskyn suorittamiseen, tämä ei muodosta ongelmaa, koska prosessorilukituskiikun 801 asettavan lohkon 1001 mikro-operaation suorittamisen ja lohkon 1002 mikro-operaatioiden suorittaman väylälukituskiikun 820 lähdön tutkimisen välillä on varmasti riittävästi aikaa. Kuvion 10 laitelmisto-operaatioita voidaan kuitenkin käyttää myös päinvastaisessa tapauksessa, jossa mikro-operaatioihin kuluva aika on lyhyempi kuin synkronointikiikun 802 kello-ohjauksen ja väylälukituskiikun 820 kello-ohjauksen välinen aika, mikäli lohkon 52 79621 1001 ja lohkon 1002 välillä suoritetaan riittävästi mikro-operaatioita, jotka varmistavat, että lohko 1002 ei tutki kiikun 120 lähtöä ennenkuin sillä on ollut aikaa asettua ja stabiloitua, kun väylä on juuri ja juuri voittanut prosessorin muistin lukitsemisessa. On huomattava, että vaikka lohko 1002 lukee muistin ehdoitta sen jokaisella suorituskerralla, muistin tieto hylätään sinä aikana, jolloin väylä on lukinnut muistin, koska uudelleen lukeminen suoritetaan siten, että milloinkaan ei esiinny tapausta, jossa prosessori käyttäisi myöhemmin tietoa, joka on luettu muistista sen ollessa väylän lukitsemana, koska muisti luetaan aina uudelleen, jos muisti oli lukittuna. On myös huomattava, että vaikka kuvion 10 laitelmisto yhdistää muistin lukemisen ja väylälukituksen testauksen yhteen mikro-käskyyn, nämä operaatiot voidaan suorittaa eri mikrokäskyissä, kunhan väylälukitusmikro-operaatiosilmukka edeltää muistinlu-kumikro-operaatiota.
Edellä olevasta tarkastelusta voidaan havaita, että kuvion 8 lukituslogiikka 110 ja kuvion 10 laitelmisto-operaatiot muodostavat yhdessä yksinkertaisen mekanismin, jolla kaksi asynkronisesti toimivaa yksikköä voi suorittaa yhteisen välineen lukitus- ja lukituksen avausoperaatioita. Parhaana pidetyssä suoritusmuodossa tämä aikaansaadaan prosessorilaitelmistolla prosessorin todettua, että sen on ennemmin tai myöhemmin suoritettava muistin lukitusoperaatio, siten että prosessorilukitus-kiikku asetetaan ehdoitta ottamatta huomioon sitä onko väylä jo lukinnut muistin. Kun aikaa on kulunut riittävästi siten, että prosessori voi olla varma siitä, että prosessorin suorittaman muistin prosessorilukituksen juuri ja juuri voittaneella väylä-lukitustoiminnalla on ollut mahdollisuus asettaa väylälukitus-kiikku, prosessori antaa lukukäskyn ja tarkastaa samalla väylälukituskiikun. Jos väylälukituskiikkua ei ole asetettu, prosessori on varma, että se on voittanut mahdollisen kilpailun ja että väylän mahdolliselle myöhemmälle lukitustoiminnan suo- 53 79621 ritusyritykselle annetaan negatiivinen kuittaus (NAK). Prosessori voi tällöin tarkastaa väylälukituskiikun ja jos väylä ei ole lukinnut muistia, prosessori voi käyttää luettua tietoa, muuttaa sitä ja tämän jälkeen kirjoittaa muutetun tiedon takaisin muistiin ja palauttaa samanaikaisesti prosessorilukituskii-kun. Jos prosessorin laitelmisto toteaa, että väylä on voittanut kilpailun ja lukinnut muistin, prosessorin laitelmisto jatkaa silmukan suorittamista siihen asti kunnes se toteaa, että väylälukituskiikku on palautettu, jolla hetkellä prosessori voi lukea muistin, muuttaa tietoa ja kirjoittaa muutetun tiedon takaisin muistiin ja palauttaa prosessorilukituskiikun.
Prosessorille on varmistettu, että väylän avattua muistin lukituksen väylän myöhemmät pyynnöt eivät lukitse muistia, koska myöhemmistä yrityksistä lukita muisti väylältä ei seuraa väylän suorittamaa muistin lukitusta ja väylälle olevalle muistin lukitusta pyytävälle yksikölle annetaan negatiivinen kuittaus, jonka seurauksena kyseinen yksikkö yrittää lukitustoimintaa myöhemmin uudelleen. Kuvion 8 lukituslogiikka 110 toimii siten, että väylän muistinlukitusyrityksestä seuraa muistin lukitseminen vain mikäli prosessori tai väylä eivät ole jo lukinneet muistia. Jos muisti on jo lukittu, väylän muistinlukitusyrityk-sestä seuraa negatiivisen kuittauksen kehittäminen väylällä olevalle Ι/0-ohjaimelle, joka yrittää myöhemmin uudelleen muistin lukitsemista. Väylän lukitsemana muisti pysyy lukittuna siihen asti kunnes väylällä oleva Ι/0-ohjain antaa muistille merkin lukituksenavaussekvenssin avulla, jolloin väylä avaa muistin lukituksen. Kun muisti on joko prosessorin tai väylän lukitsemana, mikä tahansa väylän yksikkö voi suorittaa muistin-käyttöpyynnön, joka ei edellytä lukitus- tai lukituksenavaus-toimintaa. Parhaana pidetyssä suoritusmuodossa on vain yksi prosessori ja sekvenssiä, joka suoritetaan sillä välillä, kun prosessori asettaa prosessorilukituskiikun 801 ja kun muistin kirjoitusoperaatio suoritetaan muistin lukitun toiminnan lopus- 54 7 9 6 21 sa, ei voi keskeyttää mikään prosessorin operaatio, joka suorittaa muistiin kirjoituksen, joka palauttaisi ennenaikaisesti prosessorilukituskiikun 801.
Parhaana pidetyssä suoritusmuodossa muisti on yhteisenä välineenä, joka voidaan varata joko yhdelle ainoalle prosessorille tai yhdelle useista yhteiseen väylään kytketyistä laitteista. Tätä logiikkaa voidaan kuitenkin laajentaa käsittelemään tapauksia, joissa on monia prosessoreja tai muun tyyppisiä laitteita. Lisäksi vaikka keksintöä on selitetty parhaana pidetyn suoritusmuodon avulla, jossa muisti on yhteisenä välineenä ja se on yhteisenä useille yhteiseen väylään kytketyille laitteille ja prosessorille, keksintöä voidaan yhtä hyvin soveltaa muun tyyppisiin yhteisiin välineisiin, jotka on varattava yhdelle käyttäjälle tiettyä toimintaa varten, jonka aikana muiden käyttäjien ei voida sallia käyttävän välinettä.
Vaikka keksintöä on esitetty ja selitetty se parhaana pidettyyn suoritusmuotoon liittyen, alan ammattimiehelle on selvää, että siihen voidaan tehdä edellä esitettyjä ja muita muutoksia keksinnön ajatuksesta ja piiristä poikkeamatta.

Claims (5)

  1. 55 79621
  2. 1. Tietojenkäsittelyjärjestelmässä, jossa on useita ensimmäisen tyyppisiä yksiköitä (103, 104, 108) ja toisentyyppinen yksikkö (101, 102), missä mainittu toisentyyppinen yksikkö on sovitettu käytettäväksi kaikilla ensimmäisentyyppisillä yksiköillä, jolloin, kun yksi mainituista ensimmäisentyyppisistä yksiköistä suorittaa tietynlaista toimintoa (lukitustoiminto) käyttämällä mainittua toisentyyppistä yksikköä, muita ensimmäi-sentyyppisiä yksiköitä on estettävä suorittamasta mainittua tiettyä toimintoa, ja jolloin yhden mainituista ensimmäisentyyppisistä yksiköistä vaatiessa suorittamaan mainitun tietyntyyppisen toiminnon se muodostaa vastaavan kyselysignaalin (BSLOCK), SETLCK); laite mainitun toisentyyppisen yksikön ohjaamiseksi vastaamaan tarkoituksenmukaisesti ainoastaan yhteen mainituista kyselysignaaleista, tunnettu: ensimmäisestä tallennuselementistä (820) kyselysignaalin (BSLOCK) vastaanottamiseksi yhdeltä mainituista ensimmäisentyyppisistä yksiköistä, ja saatuaan valtuutuksen ensimmäisen signaalin (MEACKR) avulla, mikä ilmaisee että mainittu toisentyyppinen yksikkö on valmiina hyväksymään mainitun pyynnön, ilmaisun tallentamiseksi siitä, että mainittu pyyntö on myönnetty; toisesta tallennuselementistä (801) kyselysignaalin (SETLCK) vastaanottamiseksi toiselta mainitusta ensimmäisen tyyppisistä yksiköistä ja huolimatta mainitun toisentyyppisen yksikön tilasta tallentamaan ilmaisu siitä, että mainittu toinen ensim-mäisentyyppinen yksikkö on tehnyt tällaisen pyynnön; kolmannesta tallennuselementistä (802) signaalin, joka vastaa mainitun toisen tallennuselementin avulla tallennettua ilmaisua, vastaanottamiseksi ja saatuaan valtuutuksen ensimmäisentyyppisen yksikön toimintavaiheen ajanjakson (BSDCNN) aikana, jolloin kyselysignaali voidaan toimittaa mainitulle ensimäiselle tallen- 56 79621 nuselementille, ilmaisun tallentamiseksi siitä, että pyyntö jota edustaa mainitun toisen tallennuselementin signaali on myönnetty; ja loogisesta piiristä (804, 805, 806, 809, 811) kytkettynä mainittuun ensimmäiseen ja kolmanteen tallennus elementtiin ja reagoiden signaaleihin (LOCKDD, LOCKED) jotka vastaavat niissä pidettäviä ilmaisuja, (i) mahdollistamaan ensimmäisen signaalin (MEACKR) muodostaminen mikäli mainittu ensimmäinen tallennus-elementti eikä mainittu kolmannes tallennuselementti sisällä ilmaisua siitä, että kysely on myönnetty, tai (ii) estämään mainitun ensimmäisen signaalin muodostaminen mikäli kumpikaan mainitusta ensimmäisestä tai kolmannesta elementistä sisältää ilmaisun, että kysely on hyväksytty.
  3. 2. Patenttivaatimuksen 1 mukainen laite, tunnettu siitä, että tietojenkäsittelyjärjestelmässä, joka sisältää mainitun laitteen, mainitut useat ensimmäisentyyppiset yksiköt käsittävät useita ohjaimia (103, 104) kytkettynä mainittuun toisentyyppiseen yksikköön yhteisellä väylällä ja prosessorin (108) erikseen kytkettynä mainittuun toisen tyyppisen yksiköön, missä mainittu toisentyyppinen yksikkö on muistiyksikkö ja missä kukin mainituista ohjaimista tuottaa BSLOCK-kyselysignaalin ja mainittu ; prosessori tuottaa se SETLCK-kyselysignaalin.
  4. 3. Patenttivaatimuksen 2 mukainen laite, tunnettu siitä, että kukin mainituista ensimmäisen tyyppisistä yksiköistä kehittää signaalin vastaavan mainitun ensimmäisen, toisen ja kolmannen tallennuselementin tyhjentämiseksi, kun tällainen yksikkö on lopettanut tietyntyyppisen toimintonsa. 57 79621
  5. 1. I ett databehand.lings system med flera enheter av en förs-ta typ (103, 104, 108) och en enhet av en andra typ (101,102), där nämnda enhet av en andra typ anpassats för användning med alia enheter av den första typen, varvid d& en av nämnda enheter av en första typ utför en viss slags funktion (läs-ningsfunktion) genom att använda nämnda enhet av en andra typ, övriga enheter av den första typen bör förhindras att utföra nämnda vissa funktion, och varvid dä en av nämnda enheter av en första typ sä kräver, utföra nämnda funktion av en första typ, denna alstrar en motsvarande förfr&gan (BSLOCK, SETLCK)) och med en anordning för att styra nämnda enhet av en första typ att ändamä.lsenligt reagera enbart för en av nämnda för-frägningssignaler, kännetecknat av ett första lagringselement (820) för mottagning av en förfräg-ningssigna.l (BSLOCK) frän en av nämnda enheter av en första typ och efter att ha erhällit beful.lmäktigande genom en första signal (MEACKR), vilken indikerar att nämnda enhet av en andra typ är beredd att godkänna nämnda begäran, att lagra indika-tionen att nämnda begäran beviljats; ett andra lagringselement (80.1) för mottagning av en förfräg-ningssignal (SETLCK) frän en annan av nämnda enheter av en första typ och oaktat tillständet hos nämnda enhet av en andra typ lagra en indikation av att nämnda enhet av en första typ gjort en dylik begäran; ett tredje lagringselement (802) för mottagning av en signal, som motsvarar den genom nämnda andra lagringselement lagrade in-dikationen och efter att ha erhällit beful.lmäktigande under funktionsperioden (BSDCNN) för en enhet av den första typen, varvid förfrägningssignalen kan bringas tili nämnda första .lagringselement, för att lagra en indikation av att den begäran som re-presenteras av nämnda andra lagringselements signal beviljats; och
FI842558A 1983-07-01 1984-06-26 Laosfunktionsfoerfarande foer ett gemensamt redskap. FI79621C (fi)

Applications Claiming Priority (2)

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

Publications (4)

Publication Number Publication Date
FI842558A0 FI842558A0 (fi) 1984-06-26
FI842558A FI842558A (fi) 1985-01-02
FI79621B FI79621B (fi) 1989-09-29
FI79621C true FI79621C (fi) 1990-01-10

Family

ID=24030868

Family Applications (1)

Application Number Title Priority Date Filing Date
FI842558A FI79621C (fi) 1983-07-01 1984-06-26 Laosfunktionsfoerfarande foer ett gemensamt redskap.

Country Status (12)

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

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.
DE3785958D1 (de) * 1986-04-02 1993-07-01 Siemens Ag Verfahren zum ansteuern eines gemeinsamen speichers eines aus einzelnen mikroprozessorsystemen bestehenden mehrprozessorsystems.
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
US4941083A (en) * 1987-05-01 1990-07-10 Digital Equipment Corporation Method and apparatus for initiating interlock read transactions on 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
US4858116A (en) * 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in 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
IN169634B (fi) * 1987-07-01 1991-11-23 Digital Equipment Corp
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
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
US5163141A (en) * 1988-08-01 1992-11-10 Stenograph Corporation RAM lock device and method for a text entry system
US5249285A (en) * 1988-08-01 1993-09-28 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 バスロックシステム
US5222219A (en) * 1988-10-25 1993-06-22 Hewlett-Packard Company Pipeline computer system having write order preservation
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
US5175829A (en) * 1988-10-25 1992-12-29 Hewlett-Packard Company Method and apparatus for bus lock during atomic computer 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
US5007054A (en) * 1988-12-28 1991-04-09 Pitney Bowes Inc. Network and protocol for real-time control of machine operations
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
US5987550A (en) * 1997-06-30 1999-11-16 Emc Corporation Lock mechanism for shared resources in a data processing system
US6076126A (en) * 1997-06-30 2000-06-13 Emc Corporation Software locking mechanism for locking 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
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in 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
CA2418274A1 (en) * 2000-09-28 2002-04-04 Scientific Learning Corporation 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
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
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7870346B2 (en) * 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7080188B2 (en) * 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for 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
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
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
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
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
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
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
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 (fi) * 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
EP0130593B1 (en) 1990-07-04
YU114284A (en) 1987-06-30
AU572161B2 (en) 1988-05-05
JPH0414370B2 (fi) 1992-03-12
DK165529C (da) 1993-04-19
NO842649L (no) 1985-01-02
DK323084D0 (da) 1984-06-29
DE3482630D1 (de) 1990-08-09
JPS6039266A (ja) 1985-03-01
NO166985B (no) 1991-06-10
FI79621B (fi) 1989-09-29
CA1211854A (en) 1986-09-23
ES8606687A1 (es) 1986-04-16
EP0130593A3 (en) 1986-05-21
FI842558A0 (fi) 1984-06-26
DK165529B (da) 1992-12-07
EP0130593A2 (en) 1985-01-09
ES533831A0 (es) 1986-04-16
NO166985C (no) 1991-09-18
KR900005453B1 (ko) 1990-07-30
KR850001571A (ko) 1985-03-30
US4587609A (en) 1986-05-06
FI842558A (fi) 1985-01-02
AU2993884A (en) 1985-01-03
YU45630B (sh) 1992-07-20
DK323084A (da) 1985-01-02

Similar Documents

Publication Publication Date Title
FI79621C (fi) Laosfunktionsfoerfarande foer ett gemensamt redskap.
US4763249A (en) Bus device for use in a computer system having a synchronous bus
US4001790A (en) Modularly addressable units coupled in a data processing system over a common bus
US3993981A (en) Apparatus for processing data transfer requests in a data processing system
US4030075A (en) Data processing system having distributed priority network
KR910001790B1 (ko) 디지탈 컴퓨터 시스템에서의 통신로 제어 할당용 중재 장치 및 이의 중재 방법
US3995258A (en) Data processing system having a data integrity technique
US4769768A (en) Method and apparatus for requesting service of interrupts by selected number of processors
FI86923B (fi) Styrmekanism foer multiprocessorsystem.
JPS6112303B2 (fi)
EP0358716A1 (en) NODE FOR SUPPORTING INTERRUPTION REQUEST MESSAGES ON A BUS ON HOLD.
EP0138676B1 (en) Retry mechanism for releasing control of a communications path in a digital computer system
FI78994B (fi) Distribuerad prioritetsnaetslogik foer att moejliggoera att en enhet med laegre prioritet befinner sig i en position foer hoegre prioritet.
JPS5922250B2 (ja) 多重取出しバス・サイクル操作を与えるシステム
KR910001788B1 (ko) 다중 프로세서 시스템용 메세지 전송 인터럽팅 장치 및 이의 실행방법
US4241419A (en) Asynchronous digital data transmission system
US20050165988A1 (en) Bus communication system
KR100407176B1 (ko) 직렬 네트워크의 전송코드 확장에 의한 제어·상태 신호전송 방법 및 시스템
JPH0520261A (ja) 優先制御回路
JPH01161942A (ja) データ伝送装置及び方法
JP2000132504A (ja) バス調停システム及びバス調停方法
JPS61177560A (ja) 高速の並列バス構造およびデ−タ転送方法

Legal Events

Date Code Title Description
MM Patent lapsed
MM Patent lapsed

Owner name: HONEYWELL INFORMATION SYSTEMS INC.