NO300790B1 - Innretning for å danne et grensesnitt mellom en hovedprosessorbuss og en periferibuss - Google Patents

Innretning for å danne et grensesnitt mellom en hovedprosessorbuss og en periferibuss Download PDF

Info

Publication number
NO300790B1
NO300790B1 NO911511A NO911511A NO300790B1 NO 300790 B1 NO300790 B1 NO 300790B1 NO 911511 A NO911511 A NO 911511A NO 911511 A NO911511 A NO 911511A NO 300790 B1 NO300790 B1 NO 300790B1
Authority
NO
Norway
Prior art keywords
bus
main processor
data
peripheral
address
Prior art date
Application number
NO911511A
Other languages
English (en)
Other versions
NO911511D0 (no
NO911511L (no
Inventor
Guy Paul Vachon
Original Assignee
Schlumberger Technology Corp
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 Schlumberger Technology Corp filed Critical Schlumberger Technology Corp
Publication of NO911511D0 publication Critical patent/NO911511D0/no
Publication of NO911511L publication Critical patent/NO911511L/no
Publication of NO300790B1 publication Critical patent/NO300790B1/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

En bussgrensesnittinnretning er egnet til bruk i datamaskinelle datafangstsystemer for å sammenknytte en hovedprosessorbuss med en ekstra periferibuss. Driften av periferiinnretningene forbundet til den ekstra periferibuss kan styres enten av hovedprosessoren eller bussgrensesnitt-innretningen. Innretningen tillater også . data samlet inn fra periferiinnretningene på ekstrabussen å lagres i en dobbeltport-RAM for overføring av DMA-typen over hovedprosessorbussen.

Description

Oppfinnelsen angår en hovedprosessorbuss forbundet med en hovedprosessor og en periferibuss som er forbundet med en rekke periferiinnretninger, hvor hovedprosessorbussen tidsmultiplekser data- og adressesignaler over et sett av linjer og periferibussen omfatter separate data- og adressebusser, hvor innretningen innbefatter en mikrokontrollenhet forbundet med tilhørende adresse- og databusser, en DMA-teller og en dobbeltport-RAM som kan aksesseres over hovedprosessorbussen via en første port og over mikrokontrollerbussen via en annen port.
Når de første datamaskinelle datafangstsystemer ble laget, var det vanlig å avbilde maskinvaren hvorfra data skulle fanges, på registre i datafangstprosessorens lagerplass. Dette ga et enkelt og intuitivt grensesnitt til prosessoren som er i stand til å motta et dataord i en instruksjonssyklus. Etter hvert som datamaskinarkitekturer utviklet seg, ble instruksjonssyklene for prosessorer kortere, mens syklustiden for datafangstbusser ikke ble det. Med disse nyere arkitekturene var eksekverings-tiden for en instruksjon ikke lenger sammenlignbar med cykeltiden for en inn/ut-("I/O"-)buss. Dette økte kostnaden i form av prosessortid for prosessoren ved fangst av data fra perifer maskinvare.
Nyere datalagre er også så meget raskere at mange moderne datamaskinarkitekturer har en privat lagerbuss i stedet for å plassere lageret på prosessorens I/O-buss. Dette gjør lageret til en innretning meget forskjellig fra et I/O-register. En I/O-aksess uttrykt som prosessortid blir da meget mer kostbar enn en lageraksess. En arkitektur som ikke skjelner mellom de to kan ikke benyttes til å få maksimal ytelse ut av systemet.
For å redusere prosessorens I/O-prosesseringstid, er perifert utstyr blitt utført med grensesnitt av typen direkte minneaksess (DMA). I stedet for at prosessoren tar dataene fra periferiutstyret og plasserer dem i minnet, ble grensesnittene utført for å ta styringen av hovedprosessorbussen og direkte plassere dataene i eller ta dataene ut av minnet uten at noen prosessor var involvert. Grensesnitt av DMA-typen gir de størst mulige minneoverføringsrater og reduserer prosessorens I/O-prosesseringstid.
En rekke perifere instrumenter som benyttes idag, mangler ikke bare DMA-mulighet, men krever prosessorinngrep for å samle data. Selv om slike instrumenter kunne endres slik at de ikke behøvde prosessorinngrep og pent ville pakke sine data for datafangstprosessoren i blokker for overføringer av DMA-typen, ville dette bety lite for instrumentene som allerede er i bruk og utgjør en enorm kapitalinvestering.
En fremgangsmåte er vist i Electro/81 Conference Record, bind 6, april 1981, T.W. Starnes, "A terminal handler as an example of an intelligent peripheral controller". Denne fremgangsmåte kan benyttes til å styre en enkel periferiinnretning uten avbrudd, men mangler DMA-mulighet. J. Koller; 16 Bit Microcom-puter, Bestell-Nr. 116, Ing. W. Hofacker GmbH Verlag, 8000 Miinchen, 1981, sidene 278-280 viser at en DMA-kontrollenhet kan benyttes sammen med Motorola 68120. Selv en kombinasjon av disse fremgangsmåter kan imidlertid bare håndtere en enkelt periferiinnretning, er ikke i stand til å skaffe avbrudd, sørger heller ikke for syklusoversettelse og gir ikke mulighet for DMA i multiple innretninger.
Overføring av data ved perifert utstyr via DMA uten prosessorinngrep er imidlertid spesielt egnet for datamaskinelle datafangstanvendelser. Datamaskinelle datafangstsystemer kan baseres på hva som kalles arkitektur av strømtypen. Det vil si at systemet består av et sett av samtidig eksekverende programmoduler som kommuniserer via datastrømmer. Data i strømmene frembragt av periferiinnretningene holdes i buffere som reserveres når behovet oppstår og frigjøres når dataene de rommer ikke lenger er nødvendige. Et minnestyringssystem frembringer disse bufrene, holder rede på hvilke som inneholder gyldige data og reallokerer de hvis data er utgått. Med DMA-moden for datafangst ville dataene materialisere seg på toppen av strømmene og flyte gjennom resten av systemet. Det eksisterer derfor et behov for en anordning til å implementere DMA i datamaskinelle datafangstsystemer som benytter eksisterende perifere datafangstinnretninger uten DMA-mulighet.
Mange typer datafangstinnretninger krever også prosessorinngrep for å arbeide korrekt, hvilket medfarer enda flere krav til prosessoren. F.eks. omfatter slike prosessorinngrep inndata til periferiinnretningen for å initiere datafangsten og for å sjekke fullføringen av datafangstoperasjonen.
Den kjensgjerning at data samlet fra forskjellige innretninger må relateres, øker prosessorkostnaden ytterligere og krever at prosessoren må manipulere de innsamlede data på en eller annen måte før de har en anvendbar form. F.eks. kan det være nødvendig at to separate datakilder skal vekselvirke. Proses-sorkostnadene ville reduseres hvis datavekselvirkningen kunne finne sted før innmating til prosessoren.
Den foreliggende oppfinnelse angår en perifer I/O-buss og en programmerbar grensesnittinnretning for å sammenknytte perifert datafangstutstyr til en hoved-datafangstprosessor. Datafangstperiferiutstyret er forbundet med den perifere I/O-buss som er forsynt med et direkte grensesnitt til hovedprosessorbussen ved grensesnittinnretningen. Registrene til datafangstperiferiutstyret kan deretter lagerlistes på hovedprosessorbussen. Den perifere I/O-buss er en herre/slave type med grensesnittinnretningen som bussherre. Grensesnittinnretningen oversetter hovedprosessorbusssykler til perifere I/O-busssykler og omvendt. Grensesnittinnretningen er også i stand til å overføre data mellom innretninger plassert på periferibussen såvel som til å utføre kontrollfunksjoner for de innretninger som krever prosessorinngrep. Grensesnittinnretningen er også forsynt med et dobbeltports randomaksessminne (RAM) som kan aksesseres av både grensesnittinnretningen og hovedinnretninger plassert på hovedprosessorbussen og således skaffe et kommunikasjonsmiddel mellom hovedprosessoren og den programmerbare grensesnittinnretningen. Nevnte RAM kan også benyttes til å lagre data samlet av innretninger på periferiinnretningen for senere overføring over hovedprosessorbussen enten ved normale skrivesykler eller via DMA.
Det er således en hensikt med den foreliggende oppfinnelse å skaffe en dedisert perifer I/O-buss for datafangstperiferiinn-retninger som er sammenknyttet med en hovedprosessorbuss.
Det er også en hensikt med den foreliggende oppfinnelse å skaffe en programmerbar bussgrensesnittinnretning for å sammenknytte en hovedprosessorbuss med en perifer I/O-buss.
Det er en ytterligere hensikt med den foreliggende oppfinnelse at den programmerbare grensesnittinnretning skal være i stand til å anta kontrollansvaret for perifere slaveinnretninger på den perifere I/O-buss og overføre data dem imellom.
Det er en ytterligere hensikt med den foreliggende oppfinnelse at bussgrensesnittet skal være i stand til å overføre i blokkmode data samlet fra periferiinnretninger plassert på den perifere I/O-buss til hovedprosessorbussen.
De ovennevnte hensikter oppnås i henhold til oppfinnelsen med en innretning som er kjennetegnet ved de trekk som fremgår av kravene.
Oppfinnelsen skal nå forklares nærmere i den følgende detalj-erte beskrivelse av den foretrukne utførelse, tatt i samband med den ledsagende tegning og kravene. Fig. 1 viser skjematisk et datamaskinelt datafangstsystem som benytter den perifere I/O-buss. Fig. 2 viser skjematisk den perifere buss i samsvar med den foreliggende oppfinnelse. Fig. 3 viser skjematisk innretningen i henhold til den foreliggende oppfinnelse. Fig. 4 viser i større detalj og skjematisk innretningen på figur 3. Fig. 1 viser en skjematisk gjengivelse av et datamaskinelt datafangstsystem som benytter en perifer I/O-buss i samsvar med den foreliggende oppfinnelse. På grunn av dens enkelthet kan den perifere I/O-buss 10 utvides slik at de perifere datafangstinnretninger 70 som er knyttet sammen med den, kan være anbragt fysisk fjernt fra resten av systemet uten reduksjon av ytelse. Den perifere I/O-buss 10 er sammenknyttet med hovedprosessorbussen 30 via en bussgrensesnittinnretning 50. En hoveddatafangstprosessor 90 er koblet til hovedprosessorbussen 30 sammen med forbundne perifere innretninger. I den spesielle utførelse vist, blir alle komponentene overflødige med de to perifere I/O-busser direkte sammenknyttet.
Den perifere I/O-buss 10 som her er beskrevet, er en buss med en enkelt hovedbuss og flere slaver. Den perifere I/O-buss 10 er sammenknyttet med hovedprosessorbussen 30 ved en intelligent bussgrensesnittinnretning som her generelt er betegnet som innretning 50. Den perifere I/O-buss 10 gir et generelt avbrudds- og enkelt adresse/data-grensesnitt til systemet. Registrene til datafangstperiferiutstyret er lagerlistet på hovedprosessorbussen 30. Innretningen 50 oversetter hovedprosessorbusssykler til periferibusssykler og omvendt. Høyere ordens bussfunksjoner såsom lese-modifiser-skrivesykler og DMA implementeres også av innretningen 50.
Under henvisning til fig. 2 skal strukturen til den perifere I/O-buss 10 i samsvar med en spesiell utførelse nå beskrives. Adresselinjer ADDR(1-13) overfører adresseinformasjon fra innretningen til alle slavene som befinner seg på en perifer I/O-buss. Adresseområdet for de 13 adresselinjene er åtte kiloord. Datalinjene DATA(1-16) fører data begge veier mellom hovedprosessorbussen 3 0 og slavedatafangst-periferiinnretningene 70.
De resterende linjer på den perifere I/O-buss 10 er kontrollin-jer. WR-linjen vil være lav under en lesesyklus og høy under en skrivesyklus. TO/Tl-signaler skjelner aksesstypene avhengig av hvorvidt et fullstendig ord, en lav byte eller en høy byte skal aksesseres eller et avbrudd bekreftes. MSTB-signalet er et strobesignal for den perifere I/O-buss og aktiveres etter at alle kontrolldata- og adresselinjer er gyldige og stabile. MSTB-signalet aktiveres ikke før alle signalene befinner seg på bussen og slavene har hatt tid til å dekode adresse- og kontrollinjene. DONE-signalet aktiveres av en slave for å signalere at denne er ferdig med en transaksjon. DONE-signalet signalerer innretningen 50 om at den kan fortsette å lese data på bussen. DONE- og MSTB-signalene er sammenlåst slik at tiden som kreves av en transaksjon avhenger av hvor hurtig slaven kan reagere på den.
Innretningen 50 krever at dens slaver aktiverer DONE-signalet innenfor et gitt tidsrom etter deteksjon av MSTB-signalet. Denne mekanisme benyttes for å sikre deteksjon av dårlige eller ikke eksisterende perifere I/O-busslaver. Det faktum at noen perifere I/O-bussykler kan være uavhengig av hovedprosessor-bussaktiviteten, må tas i betraktning for å finne den bestemte tidsavbruddsverdi. Det vil si at innretningen også kan initiere perifere busscykler. Et mulig problem oppstår når hovedprosessoren forsøker å kommunisere med den perifere I/O-buss og hovedprosessorbussyklusen begynner umiddelbart etter at en slik perifer I/O-bussyklus begynner. For å garantere at den perifere I/O-bussrelaterte syklus vil være fullført i tide for at den prosessorbussrelaterte syklus skal finne sted før den sist-nevntes tidsavbrudd utløper, må en fullstendig perifer I/O-bussyklus ikke utgjøre mer enn halvparten av tidsavbrudds-verdien for hovedprosessorbussen. Fra denne verdien må det også trekkes fra tillegg for protokoll, forplantning og innretningen for å gi et tidsrom hvorunder slaven må handle før et tidsavbrudd finner sted.
Avbruddslinjene HREQ og LREQ skaffer to typer av avbrudd som datafangstperiferiinnretningene 70 kan frembringe. Periferiinnretningene 70 er serielt forbundet slik at visse periferiinnretninger iboende vil ha høyere prioritet enn andre. IACKIN-/IACKOUT-linjene for avbruddsbekreftelse benyttes til å overføre den aktive lave bekreftelse gjennom den serielle kjede. HREQ er vertsavbruddsanmodningen generert av slaveinnretningen 70 når slaveinnretningen må avbryte hovedprosessoren. HREQ-anmodningen blir bekreftet bare etter at hovedprosessorbussen 30 har akseptert avbruddssignalet generert av innretningen 50 for slaveinnretningen. LREQ er den lokale avbruddsanmodning generert av en slaveinnretning for å avbryte innretningen 50 og bekreftes straks innretningen mottar anmodningen. Avbruddsvektoren blir overført over den perifere I/O-buss på en syklus tilsvarende en lesesyklus sammen med bekreftelsessignalet for å meddele innretningen 50 om hvilket avbrudd som har funnet sted. En adresselinje ADDR1 benyttes til å angi hvorvidt en vertsavbruddsanmodning eller en lokal avbruddsanmodning bekreftes. Innretningen 50 vil deretter oversette dette signalet til et passende avbruddssignal for hovedprosessoren 90.
RESET-linjen benyttes til å plassere alle slaveinnretninger 70 på den perifere I/O-buss i en kjent tilstand. To forskjellige tilbakestillingsfunksjoner kan være anordnet. En myk tilbakestilling venter inntil bussyklusen som foregår opphører, før den får slaveinnretningene til å forandre den kjente tilstand. En hard tilbakestilling ser bort fra den nåværende tilstand for bussen og frembringer sine virkninger momentant. Det er ingen forskjell mellom en myk og en hard tilbakestilling hvis de aktiveres når den perifere I/O-buss er stille. Innretningen er ansvarlig for å aktivere hver av tilbakestillingene og holder rede på når den perifere I/O-buss er stille og når den ikke er det. Hvis den mottar en myk tilbakestillingsanmodning, vil innretningen 50 fullføre den nåværende syklus og deretter aktivere RESET-signalet. Hvis det mottas en hard tilbakestillingsanmodning, vil innretningen 50 aktivere RESET-signalet momentant. Derfor tar innretningen 50 vare på de to forskjellige typer tilbakestilling og bare en signallinje på bussen benyttes til en tilbakestilling.
På fig. 3 omfatter den intelligente bussgrensesnittinnretning eller bare innretning 50 et hovedprosessorbussgrensesnitt 5la, et perifert I/O-bussgrensesnitt 51b, en programmerbar mikrokontrollenhet 52, en dobbeltports RAM 53 som kan aksesseres enten av hovedprosessorbussgrensesnittet 51a eller mikrokontrollenheten 52 via denne bussen 92 og en DMA-teller 54 benyttet til å overføre noe av innholdet i nevnte dobbeltport-RAM til hovedprosessorbussen i blokkmode-DMA. Hovedprosessorbuss- og periferibuss-grensesnittene 51a og 51b er koblet sammen slik at en hovedprosessorbussyklus for en periferibuss kan oversettes uten inngrep fra resten av kretsen. Nevnte dobbeltport-RAM 53 og det perifere I/O-bussgrensesnitt 51b er sammenknyttet via iaikrokontrollenhetens buss 92. Mikrokontrollenheten 52 har aksess både til nevnte dobbeltport-RAM 53 og det perifere I/O-bussgrensesnitt 51b og styrer overføringer dem imellom. Hovedprosessorbussgrensesnittet 51a har lese/skriveaksess til et hvert sted på dobbeltport-RAM 53. DMA-telleren 54 låser startadressen som det ønskes å overføre data i til eller fra hvilket som helst sted i hovedprosessorbussadressestedet til eller fra en anvist minneblokk i nevnte dobbeltport-RAM 53, og øker automatisk under DMA-syklusen. DMA-operasjonen organiseres og styres av mikrokontrollenheten 52 slik at overføringer med forskjellig størrelse kan settes opp mellom hvilke som helst to destinasj oner«
Innretningen 50 støtter to mekanismer for å avbryte hovedprosessoren. Periferiinnretningene 70 på den perifere I/O-buss 10 kan avbryte hovedprosessoren 90 ved hjelp av vertsavbrudds-mekanismen til den perifere I/O-buss beskrevet ovenfor. Disse avbruddene har faste vektorer, da de går rett igjennom. Mikrokontrollenheten 52 er også i stand til å avbryte hovedprosessoren 90. Avbruddsvektoren for dette sistnevnte avbrudd lagres i nevnte dobbeltport-RAM 53 og er derfor programmerbar. Hovedprosessoren 90 er også i stand til å avbryte mikrokontrollenheten 52 ved å skrive på bestemte steder i nevnte dobbeltport-RAM 53.
Et mer detaljert skjema for bussherren 50 er gitt på fig. 4. I den følgende beskrivelse vil det gis henvisning til kontrollsignaler generert av en ytre logiske krets som styrer operasjonen til innretningen 50. Den ytre krets genererer disse signaler ved fremgangsmåter velkjent for fagfolk og som reaksjon på visse betingelser, slik det skal beskrives.
En av funksjonene utført av innretningen 50 er aktivering av oversettelsen av sykler for hovedprosessorbussen 30 til periferibussykler og omvendt. Den ytre logiske krets som reagerer på signalene mottatt fra både hovedprosessorbussen 3 0 og periferibussen 10, genererer kontrollsignaler på det passende tidspunkt for å aktivere overføringen av adresse- og kontrollsignaler fra hovedprosessorbussen til periferibussen såvel som den toveis passasje av datasignaler mellom de to busser ved å aktivere tre-tilstands bufferforsterkere innsatt mellom de to busser. I den spesielle utførelse vist, benytter hovedprosessorbussen 30 felles linjer for data ved tidsmul-tipleksing. Bufrede forbindelser mellom innretningen 50 og både periferibussen 10 og hovedprosessorbussen 30 er anordnet som vist på fig. 4. Adressesignaler fra hovedprosessorbussen 3 0 låses ved angivelse av synkpulsen til adresselåsen 76. SYNC er et signal generert av hovedbussen og angir at en adresse (i stedet for data) sendes over bussen. Hvis adressen under lese-eller skrivesyklusen for en hovedprosessorbuss befinner seg innenfor adresseområdet for periferibussen, avgis ENQTOGA-signalet av den ytre krets for å åpne tre-tilstandsbufferen 11 og føre adressen til adresselinjene 10b på den perifere I/O-buss 10. Datasignaler fra hovedprosessorbussen 3 0 føres under en skrivesyklus rett gjennom til datalinjene 10a på den perifere I/O-buss 10 når bufferen 81 åpnes ved angivelse av ENQTOG-signalet, idet sistnevnte signal genereres tilsvarende ENQTOGA-signalet. Under en lesesyklus låses data fra den perifere I/O-buss 10a i datalåsen 70 ved angivelse av LDGTOQ-signalet. LDGTOQ-signalet genereres etter fullførelsen av en periferibusslesesyklus initiert av hovedprosessorbussyklusen. GRD-signalet genereres tilsvarende for å åpne bufferen 82 og føre data gjennom til hovedprosessorbussen 3 0 via tretUstands-bufferen 31. således tillater innretningen 50 direkte aksess til den perifere I/O-buss 10 ved hovedprosessorbussen 30.
Hovedprosessorbussen 30 kan også aksessere nevnte dobbeltport-RAM 53. Adressen for stedet som skal aksesseres, låses først i adresselåsen 76 som beskrevet ovenfor for en periferi-bussaksess, og føres av multiplekseren 60 til ADDRR-porten på nevnte dobbelport-RAM 53. Under en skrivesyklus blir data fra hovedprosessorbussen deretter skrevet direkte på det adresserte sted via porten betegnet DATAR. WRQR-signalet 18 gis under hovedprosessorbusens skrivesykler hver gang adressen befinner seg innenfor adresseområdet til nevnte dobbeltport-RAM 53 for å åpne buffer 83 og tjener som skriveåpnings-(WENR-)inngang til RAM 53. Under en lesesyklus blir data fra det adresserte sted i nevnte dobbeltport RAM 53 låst i datalåsen av LDRTOQ-signalet og ført til hovedprosessorbussen 30 av buffer 84. RDQR-signalet blir avgitt under hovedprosessorbussens lesesykler hver gang adressen befinner seg innenfor adresseområdet til nevnte dobbeltport RAM 53 for å åpne buffer 84 og tjene som ut-gangsåpnings-(0NR-)inngang til RAM 53. LDRTOQ-signalet som låser dataene til datalåsen 75, blir avgitt ved begynnelsen av syklusen hver gang RDQR avgis.
Nevnte dobbeltport RAM 53 kan også aksesseres av mikrokontrollenheten 52 via dens 92. RAM 53 kan således tjene som et middel til kommunikasjon mellom hovedprosessoren og mikrokontrollenhet 52. For beskrivelsesformål vil det antas at begrepet "mikrokontrollenhet" innbefatter et minne (et leseminne eller ROM) for å romme eksekverbar kode. Alternativt kunne naturligvis mikrokontrollenheten 52 eksekvere instruksjoner lagret i nevnte dobbeltport-RAM 53. Mikrokontrollenheten 92 i denne utførelse er en 8-bits databuss 92d med en 16-bits adressebuss 92a. Som vist på fig. 4, er bare adresselinjene 92a forbundet til adresseporten ADDRL på nevnte dobbeltport-RAM 53. Data kan flyte til og fra adresserte steder på RAM 53 via dataporten DATAL hvortil det er forbundet en 16-bits utvekslingsbuss 55. WR-signalet fra periferibussen og dets inverse benyttes som henholdsvis skriveaktiverings- og utgangsaktiverings-innsigna-ler til RAM 53. Utvekslingsbussen 55 kommuniserer med databus-sen 92d via dens toveis tre-tilstands buffer 56. Når mikrokontrollenheten 52 aksesserer nevnte dobbeltport-RAM 53, settes en adresse til et bestemt sted i RAM på adressebussen
92a. Størrelsen av nevnte dobbeltport-RAM 53 velges imidlertid slik at ikke alle 16 bitene til adressebussen 92a behøves for å fullstendig spesifisere adresseplassen til RAM. En av de ekstra biter av adressefeltet blir deretter benyttet av mikrokontrollenhetens adressedekoder 93 for å angi kilden eller bestemmelsesstedet for dataene som henholdsvis skal skrives på eller leses fra nevnte dobbeltport-RAM 53. Når data leses av RAM 53 av mikrokontrollenheten 52, åpner adressedekoderen 93 enten den toveis buffer 56 som sender data til et innvendig register på mikrokontrollenheten eller låser dataene i dataregister 74. Data i dataregister 74 kan deretter sendes ut over periferibussen 10. I en foretrukket utførelse blir en periferibusskrivesyklus automatisk initiert av en ytre krets når en periferibussadresse skrives av mikrokontrollenheten på et 16-bits adresseregister 71. Da adresseplassen til periferibussen bare er 13 biter, kan en av de ekstra biter i adressefeltet benyttes til å angi hvorvidt en lese- eller skrivesyklus for en periferibuss skulle initieres. Adressedekoderen 93 skaffer låseovergangen når adressen til adresseregisteret 71 foreligger på adressebussen 92a under skriveoperasjonen fra adresseregisteret 71. ENGDO-signalet bekreftes av den ytre krets under periferibuss-skrivesyklusen for å åpne bufferen 74a. Når data skrives på RAM 53 av mikrokontrollenheten, benyttes en ekstra bit av adressefeltet til enten å åpne den toveis buffer 56, hvilket gjør at dataenes kilde blir et innvendig register i mikrokontrollenheten, eller til å åpne bufferen 73a, og få kilden til å bli dataregisteret 73. Data kan leses inn i dataregisteret 73 fra periferibussen 10 ved å skrive en periferibussadresse i adresseregisteret 71, hvilket automatisk initierer periferibussens lesesyklus, igjen med bruk av en av de ekstra biter i adressefeltet for å angi en lesning i motsetning til en skriving. Under lesesyklusen gis LDGI-signalet av den utvendige krets for å låse data på registeret 73. Under både skrive- og lesesyklene for periferibussen, blir
ENCTOGA-signalet avgitt for å åpne bufferen 71 og føre innholdet i adresseregisteret 71 ut på periferadressebussen 10. Således er innretningen, med bruk av adresseregisteret 71, datainngangsregisteret 73 og datautgangsregisteret 74 i stand til å flytte data mellom innretninger plassert på periferibussen 10, såvel som til å flytte data til og fra nevnte dobbeltport-RAM.
DMA mellom nevnte dobbeltport-RAM 53 og prosessorbussen 3 0 også kan oppnås. DMA-operasjonen initieres av hovedprosessoren ved å skrive i nevnte dobbeltport-RAM på et forhåndsbestemt sted som leses av mikrokontrollenheten 52. Informasjonen på det forhåndsbestemte sted inneholder størrelsen på DMA-blokken som skal overføres, såvel som startadressen på hovedprosessorbussen 30 som det skal leses fra eller skrives på. Innretningen 50 initierer deretter DMA-operasjonen i henhold til den bestemte protokoll for hovedprosessorbussen 30. Før DMA-operasjonen begynner, skriver mikrokontrollenheten 52 startadressen for stedet som skal aksesseres på hovedprosessorbussen 30 i en første teller i DMA-telleren 54. Multiplekseren 60 som også er under styring av mikrokontrollenheten 52, blir konfigurert slik at den overfører startadressen for DMA-blokken i dobbeltport RAM og som er signalet betegnet FNUM føyd til et annet 4-bits signal CNT generert i en annen teller i PMA-telleren 54. Både hovedprosessorbussadressen inneholdt i DMA-telleren 54 og CNT blir øket sekvensielt under DMA-operasjonen. RDQR-, WRWR- og LDRTOQ-signalene blir også bekreftet som avgitt ovenfor med hensyn til aksesser av nevnte dobbeltport-RAM 53 fra hovedprosessorbussen 30. ENDMAQA-signalet avgis under denne operasjonen for å åpne bufferen 54a.
I tilfelle at en slave på den perifere I/O-buss 10 ikke reagerer under en aksessyklus av enten hovedprosessorbussen 3 0 eller mikrokontrollenheten 52, blir adressen, TO-,Tl- og WR-linjene låst i feillåsen 72 etter et bestemt tidsavbruddsinter-vall. Det låste signal inneholder således adressen som forsøkes aksessert, sammen med bytespesifikasjonen og angir også hvorvidt syklustypen var en lese- eller skrivesyklus.
Tre typer avbrudd støttes av innretningen 50. Den første er hvor mikrokontrollenheten 52 avbryter hovedprosessoren. I dette tilfelle svitsjes multiplekseren 60 slik at den mottar signalet INTADDR som aksesserer det bestemte sted i nevnte dobbeltport-RAM 53. Avbruddssektoren, svarende til en bestemt type avbrudd, blir skrevet på stedet som har adressen INTADDR, hvilket gjør at avbruddet anmodes på hovedprosessorbussen 30. Avbruddsvektoren blir deretter ført via datalås 75 til hovedprosessorbussen 30. Slaver på den perifere I/O-buss 10 kan også avbryte hovedprosessoren direkte. Når avbrudd bekreftes, sender slaven deretter avbruddsvektoren til hovedprosessorbussen 3 0 via datalås 70. Den tredje type avbrudd has hvor en perifer I/O-busslave avbryter mikrokontrollenheten 52. Som bemerket ovenfor, finner dette sted når slaveinnretningen bekrefter LREQ-linjen. Avbruddet blir bekreftet av mikrokontrollenheten 52 som skriver på adresselåsen 71.
Innretningen 50 tjener således det dobbelte formål å oversette hovedprosessorbussykluser til perifere I/O-bussykluser såvel som til å implementere høyere datafangstfunksjoner som DMA. Fleksibiliteten til innretningen 50 kan også benyttes til å få innretninger på den perifere I/O-buss 50 til å se forskjellige ut for hovedprosessoren.
Et applikasjonseksempel på den foreliggende oppfinnelse i et datafangstsystem for brønnlogging skal nå beskrives. I et slikt system blir data fra en brønnlogg plassert nede i hullet og overført via et telemetrisystem til overflaten. Et separat dybdesystem holder typisk rede på brønnloggens dybde nede i hullet. Både telemetrisystemet og dybdesystemet blir sammenknyttet med den perifere I/O-buss 10. Mikrokontrollenheten 52 kan programmeres for å avlese dybden fra dybdesystemet og deretter skrive ut dybden til telemetrisystemet med bestemte tidsintervaller. På denne måte kan det separate telemetri- og dybdesystemene fås til å se ut som et kombinert telemetri/dybdesystem uten noe inngrep av hovedprosessoren.
I andre anvendelser kan datafangstinstrumenteringen som krever prosessorinngrep på den perifere I/O-buss 10, styres av mikrokontrollenheten 52. Dataene kan deretter leses og skrives i nevnte dobbeltport-RAM 53. Dataene i nevnte dobbeltport-RAM 53 blir deretter gitt ut ved DMA eller ganske enkelt lest av hovedprosessoren som fritas for ansvaret for å kontrollere driften av datafangstinstrumentet (f.eks. starte en analog-digitalomforming og sjekke for fullføringen av operasjonen før dataene leses).

Claims (6)

1. Innretning (50) for å danne et grensesnitt mellom en hovedprosessorbuss (30) forbundet med en hovedprosessor (90) og en periferibuss (10) som er forbundet med en rekke periferiinnretninger (70), hvor hovedprosessorbussen (30) tidsmultiplekser data- og adressesignaler over et sett av linjer og periferibussen (10) omfatter separate data- og adressebusser, hvor innretningen (50) innbefatter en mikrokontrollenhet (52) forbundet med tilhørende adresse- og databusser (92), en DMA-teller (54) og en dobbeltport-RAM (53) som kan aksesseres over hovedprosessorbussen (30) via en første port og over mikrokontrollenhetens buss (92) via en annen port, karakterisert ved at det bufrede grensesnitt til hovedprosessorbussen (51a) og periferibussen (51b) er koblet til henholdsvis de første og andre porter, at hovedprosessorbuss- og periferibussgrensesnittene (51a, 51b) er sammenkoblet (55) for å føre data og avbrudd direkte mellom hovedprosessorbussen (30) og en av periferiinnretningene (70) forbundet med periferibussen (10), at DMA-telleren (54) er koblet mellom hovedprosessorbussgrensesnittet (5la) og nevnte dobbeltport-RAM (53) og styrt av mikrokontrollenheten (52) for å låse stedet i hovedprosessorbussens (30) adresserom for dataoverføring til eller fra en minneblokk i nevnte dobbeltport-RAM (53), at mikrokontrollenheten (52) for direkte minneaksess til hovedprosessorbussens (30) adresserom in-struerer periferiinnretningene (70) om å skrive data til en serie av buffere i nevnte dobbeltport-RAM (53) med seriell overføring av de perifere data som skal skrives til hovedprosessorbussens (3 0) adresserom spesifisert som den låste adresse i DMA-telleren (54), og at for direkte minneaksess fra hovedprosessorbussens (30) adresserom til periferiinnretningene (70) skrives data på hovedprosessorbussen (30) til serien av buffere i nevnte dobbeltport-RAM (53) og mikrokontrollenheten (52) overfører serielt de bufrede data til periferinnretningene (70) .
2. Innretning i henhold til krav 1, karakterisert ved at DMA-telleren (54) dessuten omfatter en første teller som kan lagre en hovedpro-sessorbussadresse ved mikrokontrollenheten (52), idet hovedprosessorbussadressen kan inkrementeres sekvensielt, en annen teller for å generere et signal til bruk som en del av adressen for et sted i nevnte dobbeltport-RAM (53), idet det annet tellersignal kan inkrementeres sekvensielt, og en multiplekser (60) som kan styres av mikrokontrollenheten (52) for å føre en adresse til den første port i nevnte dobbeltport-RAM (53) fra enten hovedprosessorbussen (30) eller fra en kilde som når den tilføyes det annet tellersignal, danner startadressen for en minneblokk som skal gis ut over hovedprosessorbussen (30) via en DMA-operasjon.
3. Innretning i henhold til krav 1, karakterisert ved at den omfatter et feilregister for å låse de perifere bussadresse- og kontrollsignaler ved avgivelse av et feilsignal fra periferibussen (10) .
4. Innretning som angitt i krav 1, karakterisert ved at mikrokontrollenheten (52) er i stand til å avbryte hovedprosessoren (90) med en programmerbar avbruddsvektor lagret i nevnte dobbeltport-RAM (53) .
5. Innretning som angitt i krav 1, karakterisert ved at mikrokontrollenheten (52) avbrytes når hovedprosessoren (90) skriver i et bestemt sted i nevnte dobbeltport-RAM (53).
6. Innretning i henhold til krav 1, karakterisert ved at den annen dataport på nevnte dobbeltport-RAM (53) forbindes via en utvekslingsbuss til datainngangs- og datautgangsregistrene, idet utvekslingsbussen kommuniserer med mikrokontrollenhetens databuss via en toveis tre-tilstands buffer (56).
NO911511A 1989-08-18 1991-04-17 Innretning for å danne et grensesnitt mellom en hovedprosessorbuss og en periferibuss NO300790B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39576789A 1989-08-18 1989-08-18
PCT/US1990/004568 WO1991003022A1 (en) 1989-08-18 1990-08-13 Peripheral i/0 bus and programmable bus interface for computerized data acquisition

Publications (3)

Publication Number Publication Date
NO911511D0 NO911511D0 (no) 1991-04-17
NO911511L NO911511L (no) 1991-04-17
NO300790B1 true NO300790B1 (no) 1997-07-21

Family

ID=23564415

Family Applications (1)

Application Number Title Priority Date Filing Date
NO911511A NO300790B1 (no) 1989-08-18 1991-04-17 Innretning for å danne et grensesnitt mellom en hovedprosessorbuss og en periferibuss

Country Status (7)

Country Link
EP (1) EP0439594B1 (no)
JP (1) JPH07504050A (no)
AU (1) AU6288090A (no)
CA (1) CA2039150A1 (no)
DE (1) DE69016991D1 (no)
NO (1) NO300790B1 (no)
WO (1) WO1991003022A1 (no)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0600121A1 (de) * 1992-12-02 1994-06-08 Siemens Aktiengesellschaft Mikroprozessor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698753A (en) * 1982-11-09 1987-10-06 Texas Instruments Incorporated Multiprocessor interface device
IT1161467B (it) * 1983-01-21 1987-03-18 Cselt Centro Studi Lab Telecom Interfaccia di tipo parallelo per la gestione del colloquio tra un bus asincrono e un bus sincrono collegato a piu terminali dotati ognuno di un proprio segnale di sincronizzazione
EP0251686B1 (en) * 1986-06-30 1994-01-19 Encore Computer Corporation Method and apparatus for sharing information between a plurality of processing units

Also Published As

Publication number Publication date
EP0439594A1 (en) 1991-08-07
NO911511D0 (no) 1991-04-17
JPH07504050A (ja) 1995-04-27
AU6288090A (en) 1991-04-03
DE69016991D1 (de) 1995-03-23
NO911511L (no) 1991-04-17
CA2039150A1 (en) 1991-02-19
EP0439594B1 (en) 1995-02-15
WO1991003022A1 (en) 1991-03-07

Similar Documents

Publication Publication Date Title
KR960012356B1 (ko) 컴퓨터 시스템 및 데이타 전송 방법
EP0422103B1 (en) I/o bus to system bus interface
US5644729A (en) Bidirectional data buffer for a bus-to-bus interface unit in a computer system
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
EP0283628B1 (en) Bus interface circuit for digital data processor
EP1046111B1 (en) Data transferring in source-synchronous and common clock protocols
EP1466255B1 (en) Supercharge message exchanger
US5274795A (en) Peripheral I/O bus and programmable bus interface for computer data acquisition
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
JP4447892B2 (ja) マルチコア通信モジュールを組み入れたデータ通信システム及び方法
EP0121373A2 (en) Multilevel controller for a cache memory interface in a multiprocessing system
US6223260B1 (en) Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US5687393A (en) System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters
KR20040011665A (ko) 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
US6633927B1 (en) Device and method to minimize data latency and maximize data throughput using multiple data valid signals
US20050060439A1 (en) Peripheral interface system having dedicated communication channels
NO300790B1 (no) Innretning for å danne et grensesnitt mellom en hovedprosessorbuss og en periferibuss
EP0280821A2 (en) Interface between processor and special instruction processor in digital data processing system
JP3661249B2 (ja) マルチプロセッサシステム
JPH087738B2 (ja) エンディアン変換方式
US6295477B1 (en) Bus coupler between a system bus and a local bus in a multiple processor data processing system
EP0302926B1 (en) Control signal generation circuit for arithmetic and logic unit for digital processor
JPS6244352B2 (no)
JPS6116115B2 (no)

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees

Free format text: LAPSED IN FEBRUARY 2002