NO802759L - Multiprogrammert databehandlingssystem. - Google Patents

Multiprogrammert databehandlingssystem.

Info

Publication number
NO802759L
NO802759L NO802759A NO802759A NO802759L NO 802759 L NO802759 L NO 802759L NO 802759 A NO802759 A NO 802759A NO 802759 A NO802759 A NO 802759A NO 802759 L NO802759 L NO 802759L
Authority
NO
Norway
Prior art keywords
local storage
register
capability
instruction
local
Prior art date
Application number
NO802759A
Other languages
English (en)
Inventor
Nigel John Wheatley
Martyn Phillip Andrews
Original Assignee
Plessey Overseas
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 Plessey Overseas filed Critical Plessey Overseas
Publication of NO802759L publication Critical patent/NO802759L/no

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

Den foreliggende oppfinnelse vedrører multi-
programmerte databehandlingssystemer, og angår mer spesielt de arrangementer som er .tilveiebrakt for å lagre arbeids-parametre for en prosess når prosessen blir forstyrret ( dvs, avbrutt ).
For å tilveiebringe et system som er lett å utbygge
og vedlikeholde, blir styreprograarsettene delt i system-
rutiner og anvendeIsespr<q>gram. Hvert anvendelsesprogram arbei-
der med et begrenset sett, oppgaver under kontroll av systera-rutinene.
I et sanntids-miljø hvor .hurtige responstider er nød-vendige kan ethvert anvendelsesprogram avbrytes eller utsettes for å tillate et annet program å begynne behandling av en viktigere oppgave. Hvert,,anvendelsesprogram kan aktiveres et antall ganger for å ta seg av en sekvens av lignende oppgaver. Hver aktivering, eller såkalt prosess, utfører instruksjoner fra fellesprogrammet, men bruker en separat arbeidsdatabase. Dette resulterer i et multiprogrammert system hvor et antall prosesser kan være tilstede, en aktiv og resten avbrutt. Systemrutiner kan løpe som prosesser, av hvilke noen kan være avbrutt eller reaktivert og operert som oppkalte rutiner.
For å opprettholde ,den hurtige responsen er de fleste
eller alle systemrutlnene og anvendelsesprogrammene tilsted i hurtiglageret. Besten av hurtiglageret inneholder de permanente
og dynamiske data som er nødvendige for at programmene skal utføre sine opgaver og det arbeidsområde som er tilordnet hver prosess. Sjelden brukte .programmer og store men sjeldene anvendte filer kan oppbevares 1 hjelpelagre og kan bringes inn i hurtiglageret når det er nødvendig- Hver prosess er forsynt med et såkalt prosess-dumpelager hvoe prosessens arheids-parametre blir lagret når prosessen avbrytes.
Et slikt" system er, .beskrevet i "Systems Technology",
utgave 27, datert november 1977, i en artikkel med tittel
"System 250- a fault tolerant modular prosessing system for control applications" av K.J.Hamer-Hoges og G.B.K. Stagg på sidene 26 til 34. I et slikt system er hver prosess begrenset til å få aksess til sitt eget. lager eller periferiområde, slik
at enhver forsøkt krenkelse øyeblikkelig avbryter prosessen og forhindrer forfalskning av informasjon i lageret eller i periferiområdeto Hvis en prosess ved en feil ble tillatt å laste et lagerområde som inneholder databasen for en annen prosess eller dens overordnede instruksjoner, ville omgivelsene for denne avbrutte prosessen bli forfalsket eller ødelagt» Ved reaktivering ville den virke på ukorrekte data eller ukorrekt kode,og kunne igjen ødelegge andre prosesser. Hvis den opprinnelige feilen ikke detekteres,
vil den derfor forårsake en utbredt skade. Systemet som'
det refereres til i artikkelen, forhindrer også en prosess fra å modifisere sine egne instruksjoner for å tillate lukkede delte prosedyser,, endring av tabeller over konstanter, utførelse av data som instruksjoner og lesing av Instruksjoner som data, siden disse tyder på programfeil.
For å skape et sikkert miljø for hver prosess blir det brukt et lagersikrings-arrangement som medfører såkalte "evner<0>(capabilties). Hver prosess er tildelt visse lagerblokker som inneholder dens instruksjoner og data. Hver blokk er begrenset i størrelse,.og beliggenhet ved hjelp av ^utgangs"-(base) og "ende"-(limit) adresser og en "eå&ess<**->kode (access code) som begrenser den type aksess som kan fås til hver blokk. En prosess blir sagt å ha "evnen" til å foreta tillatte aksesser til hvert av disse lagerområdene.
De verdiene som er i løpende bruk, blir holdt i ev&@registre av masklnvaretype, og hver lageraksess blir kontrollert mot krenkelse. Evsebehandlingsoperasjonene er beskrevet i GB-patentene nr. 1 329 721 og 1 410 631. Hver prosess er forsynt med peker-tabeller som definerer d@lagerblokker som er tildelt prosessen.
Som nevnt er det i System, 250 til hver prosess tilordnet en prosess-dumpestakk som er sikret av evne-mekanismen. Funksjonene til denne dumpestakken er (i) å tilveibringe lagring av prosessens tilstand ved det punkt den bHir avbrutt, og (1) å stakklagre (eléer neste) Informasjon vedrørende de påkalte prosedyrene (dvs. delrutinene) for prosessen.
En prosess-dumpestakk består derfor av en fast del som først og fremst inneholder maskinregistrene og Indikatorene og en variakbel del som opereres som et stakklager med en inngang (eller lenke) for hver nestet rutine (dvs. prosess eller delrutine). SInformasjonen som er lagret i en lenke for hver neste rutine, omfatter typisk (a) en relativisert instruksjonsafiresse-registerverdi for returpunktet til den nestede rutine, (b) evnepekeren for kodeblokken til den nestede rutinen, og (c) evnepekeren for peker-tabellen for den nestede rutinen.
Det er et formål med den foreliggende oppfinnelse
å utvide de muligheter som er tilveiebrakt ved hjelp av prosess-dumpestakken, spesielt i forhold til lenkene 1 stakklagerområdene•
I henhold til oppfinnelseji er det tilveiebrakt et multiprogrammert databehandlingssystem der hver prosess er forsynt med en prosess-dumpestakk som har (a) en fast del for lagring av innholdene av masklnregistre og indikatorer når prosessen blir avbrutt, og (b) en variabel del for lagring av lenkene for håer nestet delrutine som utføres av prosessen, idet hver lenke innbefatter informasjon som Indikerer (a) den instruksjonsadresse til hvilken prosessen skal returnere når den nestede rutinen skal returneres til, (b) tøodeblokken for den nestede rutinen ,„ „og (c) en lenkebeskriver som indikerer størrelsen og innholdet av resten av lenken.
Innføringen av en lenkebeskriver tillater lagring av
to ytterligere klasser av informasjon i hver lenke, nemlig (i) data og avne-registre som er bevart under områdeforand-ringsprosedyren og (ii) .beskrivere for lokale lagersegmenter. Beskriverne for lokale lagersegmenter inneholder sumkontroll-, utgangs- og ende-informasjon. Utgangs- og ende-verdler er her i forhold til utgangsadressen til den lokale lagringsstakken, som i likhet med dumpe-stakken blir henvist av et skjult evnereglster e(I) Lenkebeskrivelsen inneholdes i de mest signifikant 8 bitene av IAR-ordet instruksjonsadresseregister. Hvis dette er null, så består lenken av bare tre dataelementer (i) IAR, (ii) kodeblokken og (iii) prosesspekerblokken. Den mest signifikante biten i primærbeskriveren indikerer tilstede-værelsen av stakkregistre og de minst signifikante syv bitene indikerer det antall lokale lagringsevner som er frembrakt.
Tilknyttet et stakkregistersett er en ettords beskriver som indikerer 4e registre som er stakklagret når subrutinen er nestet.
Evner for segmenter av lokale lagre er implementert
ved hjelp av maskinvareinstruksjoner som er (1) en lokallager-spørreinstruksjon og (ii) subsett lokallager-instruksjonen. '
Når lokallager-segmenter ^tildeles av instruksjonen "spør lokallager<0>, blir det foretatt en tre ords innføring entry i prosessdumpestakken. Innføringen inneholder et nivåtall som indikerer nestenlvået for den løpende prosedyre og en viss mengde grunnleggende aksesinnf ormasjon. Utgangs- og ende-verdier. rref erer til den lokale lagringsstakken og er i forhold til dens utgangsadresse. Peker-feltet til evnepekeren er en forskyvning 1 forhold til utgangsverdien fi>r dumpestakken. En lignende mekanisme tillater konstruksjon av evnar for subsett av iokallagersegmenter. Dette bevirkes av "subsett-lokallager" -instruksjonen som
når evnen for et lokallagersegment er gitt, vil skape et subsett av det segmentet.og returnere evnen for det i et register. Innføringen i dumpestakken er markert som en subsett-blokk cg det tilhørende nivåtallet vedrører nestenlvået for den løpende prosedyren.
Selv om et lokallager er ..tildelt ved hjelp av en eksplisitt maskinvare-instruksjon, blir det frigitt automatisk når det returneres fra den prosedyre i hviss lenke innfør-ingen ér foretatt. Alle evner for et spesifikt nivå blir inaktive når det returneres fra det prosedyren!vået, dette innbefatter evner i registre.
Hovedfunksjonen med nivåtallet som er tilordnet hver evne, er å styrke den ikke-skjønnsmessige forplantningsstyre-mekanismen. Denne styringen sikrer at ingen evne kan lagres i et evneregister med et lavere tilordnet nivå. Denne sikringsmekanismen er nødvendig hvis evner skal hindres i å referere til ikke-eksisterende eller enda verre, erstattet informasjon.
Den enkle "stakklagrede registre"-biten 1 lenkebeskriveren er tilordnet en ettords registerbeskriver som indikerer de registere som var stakklagret da områdekoblingen inntraff (dvs. når rutinen er nestet). Denne registerbeskriveren er oppbygget av "beskyttet oppkall"-instruksjonen og blir brukt ved "retur" og "beskygget retur"-instruksjonene,
som muliggjør automatisk og selektiv definisjon av områdeg rensesni ttet.
I "beskyttet oppkall"*instruksjonenblir et data-register (DO) brukt som registerbeskriver. De to funksjonene til beskriveren er å indikere hvilke data- og evne-registre som skal bevares under oppkallet og hvilke data- og evne-registre som kal slettes, dvs. sikres mot å bli lest av det nye området. Registrene som skal bevares blir si lest inn i dumpestakk-lenken og DO-reglstermØn3teret blir
lest inn i registerbeskriveren for lenken.
I "beskyttet retur"-instruksjonen blir registerbeskriveren brukt til å definere hvilke registre som skal slettes ved retur til kallerutinen.
Oppfinnelsen vil bli lettere å forstå ut fra den følgende beskrivelse som bør leses i forbindelse med de vedføyde tegninger, der: Figur 1 viser et blokkskjerna av et typisk multiproses-sorsystem for bruk med en utførelsesform av oppfinnelsen; Figur 2 viser i form av et blokkskjerna et typisk prosessorenhet som er egnet for buk i forbindelse med ut-føre lsesformen av oppfinnelsen?Figur 3 viser universal-registrene i en registerfil i prosessor-enheten; Figur 4 viser spesialregistrene og indikatorregistrene i prosessorenheten;
Figur 5 viser en typisk sumpestakkj
Figur 6 viser det lokale evneformatet?
Figur 7 viser flytskjemaet for en "lokallager spørre"-instruksjon? Figur 8 viser flytskjemaet for en lokallagersubsett-instruksjong Figur 9 viser flytskjemaet for en sikret kalle-instruksjonj og .„
figur 10 viser flytskjemaet for en beskyttet returinstruk-sjon.
Det vises først til figur 1 hvor det er vist et
modulært databehandlings-system omfattende (i) et antall behandlingsenheter CPUl og CPU2, (ii) et antall lagrings-moduler STA, STB, og STC> og (lii) en gruppe med perifere enheter kol&ektivt vist som PE.. Hver lagringsmodul og hvert periterienhet er forsynt med en aksessenhet SAUA,
SAUB, SAUG og PAUN.
Hver behandlingsenhet er.forsynt med en diskret kom-munikasjonsvei eller busJCBl og CB2, henholdsvis for behandlings-enhetene SPU1 og CPU2 via grensesnitt BIFl og BIF2).
Hver bus ender ved en separat terminal på alle aksessenhetene
(SAUA, SAUB, SAUC, og PAUK)
Alle aksessenhetene er forsynt med utstyr for gjen-kjennelse av kodet adresse-informasjon som tilføres busene som avsluttes på deres inngangsterminaler. De forskjellige segmenter som brukes ved behandlingen av prosesser, er fordelt over lagringsorodulene og alle adresseringsoperasjoner er basert på evnerégister-sikringssystemét.
Det vises nå til figur 2 iivor man vil se at hver behandlingsenhet CPU omfatter en A-datafil ADF og en B-datafil BDF som hver innbefatter <ågi lagrings-steder sammen med A-
og B-evneregisterfiler ACF (ACA/L og ACB) og BCF (BCA/L
ogBCB). Evneregistrene blir brukt feil å tilveiebringe informasjonssikrings-araangementer av den type som er beskrevet i GB-patent nr. 1 329 721. Datafilene ADF og BDF tilveiebringer dupliserte registerarrangementer og hvert omfatter åttexuniversalregistre.
Registertyper.
Det er fire registertyper, nemlig dataregistre, evnepeker-registre, evneregistre og indikatorreglstre.
Innenfor de tre første typene er noen universelle og
direkte tilgjengelige for alle program. De andre er spesial-registre til bruk for spesielle funksjoner og er tilgjengelige bare for program som har.de riktige evner. Den fullstendige registeroppbygningen er illustrert på figurene 3 og 4.
Universaldatar@gistre ( D( 0) til D( 7))
Det er åtte universelle dataregistre, hvert med en lengde på 24 biter, referert til som D(O) til D(7), i hvilke all datahåndtering blir utført. Syv av disse registrene, D(l) til D(7),, kan også brukes som adresse-modifikasjonsregistre under dannelsen av lageradresser. Register D(0) er et maskerégister og kan brukes til å spesifisere de nødvendige biter ved overføring av en del av et ord til eller fra et lager. Register D(0) blir også brukt til å føre parametre fra en instruksjonttil en annen. Bruken av registeret i dette siste tilfellet vil fremgå klarere senere.
Universelle evneregistre ( C( 0) til C( 7))
Når et evneregister (refejrert til som C(0) til C(7) ) blir lastet, vil det inneholde en utgangsadresse, en ende-adresse og aksessrettigheter for en lagret blokk.
Evneregister C(7) blir av prosessoren bSbukt til å holde evnen for den løpende programblokken, slik at enhver instruksjon som laster en ny evne inn 1 C(7), forårsaker en overføring av styring til den blokk som defineres av den lastede evnen. Hver gang .en instruksjon blir lest fra progremblokken, kontrollerer prosessoren at C(7) har et "UT-FØR DATA"-bitsett i sitt prdanarøksessfelt og at adressen
for instruksjonen ligger,.mellom utgangs- ende-adressene for evnen. Hvis en evne blir lastet inn i C(7) som ikke har "UTFØR DATA"-bitsettet, blir det ved etterfølgeade bruk generert en °feilavbrytelse" (Fault Interrupt). Hvis instruksjonsadressen også ligger utenfor området for utgangs» og ende-adressen, blir det genereit en f eilavbrytelse. Evneregister C{6) blir vanligvis brukt sam referanse for områdeevnepekerblokk siden det utgjør en del av hver lenke i prosess-dumpestakken og blir overskrevet av kalle- og retur-instruksjonene.
Spesialdatareglstre
Spesialdataregistrene er ^listet opp nedenfor.
1. Instruksjonsadresse- register ( IAR)
Dette registeret inneholder den absolutte adressen
for den løpende instruksjonen i programblokken som spesifisert av universal-revneregister C(7). Det blir endret ved kallen, retur- og las.te^evneC (^J -instruksjonene og forandret av "skift prosess°»instruksjonen.
2. Vakthundtids- reglster ( WSR ) -
Dett®registeret blir forandret av °skift prosess°p instruksjonen, idet den gamle verdien blir bevart i prosess^dumpestakken for den avbrutte prosessen og den nye verdien Rir lastet fra dampestakken for den aktiverte prosessene Den blir dekrementert en gang hvert 100 mikrosekund» Hvis den når null, forårsaker det en feilavbrytelse
(se avsnitt 4)»Det måler derfor den totale tid hver prosess er aktiv»
3. Avbrytelsesgodkjennings- register ( IR)
Dette registeret inneholder en enkelt bit? bit 6,
som blir innstilt når en progremfelle blir akseptert
(se avsnitt 4)„
4. Nedskyvnings- register for prosess°dumpestakk ( DSPPR)
Dette registeret inneholder en absolutt adressepeker som definerer den aktuelle toppen av prosessdumpestakken (dvs* at den peker på det første ordet i det området som er tilgjengelig for dumping). Det b2r endret av kalle^retur-■„ lokallaker "spørre-og lokallager"-subsett-instruksjonene,
og forandres av en prosesskift-instruksjon.
50 Feilindikatordumpe-register
Etter den første feilavbryteIsen inneholder dette registeret tilstanden til feilindikat©r«=registereto
6. Hivåtall-( LNR) og lo kallager^ stakkpeker- register ( LSPR)
Dette registeret er delt ,i to deler» De mest
signifikante 8 bitene inneholder det løpende lenkenivåtallet for prosessen» Det blir endret av kalle- og retur-instruksjonene, og forandres av prosesskift-instruksjonen.
De minst signifikante 16 bitene i registeret inneholder
en relativadressepek&r (relativ til utgangsadressen for C(L)) som definerer den aktuelle toppen av lokallager-stakken (dvs. at den peker på dei: første ordet i området som er tilgjengelig for tildeling). Det blir endret av lokalspørre-, lokallager^ubsett- og retur-instruksjonene utbyttes med prosessskif-instruksjonen. 7. Lokaleynetelle- ( LCCR) og lokallagertømmetelle-register ( LSCCR) ....
Registeret er delt i to deler. De mest signifikante
8 bitene inneholder tillingen av antallet lokale evner som er
frembrakt ved det løpende lenkenivået. Det blir endret av lokallagerspørre- og lokallagersubsett-instruksjonene, og utbyttes med kallev retur-, og prosesskift-instruksjonene. De minst signifikante 16.bitene i registeret Inneholder lokallagerslette tellingen. Det blir endret av lokallager spørre-instruksjoneneC^og utbyttet med prosesskift-instruksjonen•
8. Dataregistere D( A) og D( B)
Disse registrene blir ikke brukt av noen av prosessor-funksjonene, men di kan gjøres tilgjengelige for datainstruksjoner som bruker "interne modus" (internal mode).
Alle spesialdata-registrene har en lengde på 24 biter, bortsett fra avbrytelsesgodkjennings-registeret. Alle kan gjøres tilgjengelig for datainstruksjoner som bruker "intern medas" og av spesialle instruksjoner.
S pesialevne- registere ,
Det er åtte spesiaievne-registre, som blir brukt av prosessor-enheten til å få styreinformasjon. De kan leses og endres av program som har evnen til å adressere i "intern modus", siden spesielle .1 ast e-i ns tr uks joner ikke er tilveiebrakt.
!• Evne- reglster C( D)
Dette registeret inneholder utgangs-/evne-adresser og aksesskode for prosessorrdumpestakken for den aktive prosessen. Det blir forandret av prosesskift-instruksjonen og manipulert av kalle-, retur-, lokallagerspørre-
og lokallagersubsett-instruksjonene.
2. Bvneregister CXI) .
Dette registeret definerer en lagerblokk for det første ordet som inneholder intervalltids-verdien. Det måler den absolutte tiden som er gått og det blir dekrementert en gang hvert 100 mikrosekund av prosessor-
enheten. Når det når null, blir det generert en "normal-avbrytelsen.
3. Evne- reglster C( C1)
Dette registeret inneholder en lagerblokk som , inneholder den første delen av systemevne-tabellen.
4. Evne- reglster C( C2)
Dette registeret definerer en lagerblokk som inneholder den andre delen av systemevne-tabellen.
5. Evne- register C( N),
Dette registeret definerer en lagerblokk hvis første ord inneholder en evnepeker som tillater adgang til normal-avbrytelses-prosessen. 6 • Evne- register C( S) ;
Dette registeret definerer en fire ords lagerblokk som blir brukt av prosessoren når den tar seg av feilavbrytelser. De tolv mest signifikante bitene i utgangs-ordet blir inkrementert under feilsekvensen, idet resten av registeret er forutinnstilt av prosessoren etter oppgtartinjg (power-up).
7. Evne- reglster C( L) , ..
Dette registeret definerer en lagerblokk for lokallagerstakken til den løpende prosessen. Det blir forandret av prosesskifte-instruksjonen.
8. Evneregister C( P)
Dette registeret blir brukt av programmerer-grense-snittet for lageraksess.
Indikator- reglstre-
Det er fire Indikator—registre: primaarindikator-(PIR figur 2 og 4), feilindikator-FIR, test- TR og historisk HR register» De indikarer forskjellige tilstander i prosessoren. De er bare tilgjengelig i intern modus. Innholdet av primærindikator-registeret blir forandret av
en prosesskift-instruksjonj den gamle verdien blir bevart i prosess-dumpestakken til den avbrutte prosessen og den nye verdien blir lastet fra stakken for den aktiverte prosessen.
Primsrindikator- reglster ( PIR)
Primærindikator-registeret har en lengde på åtte biter.
Bitene 0-2 er aritmetiske indikatorer: lik null (bit 0),
mindre enn null (bit 1), overløp (bit 2), De blir innstilt eller slettet av resultatet av majoriteten av instruksjonene.
Bitene 4 og 5 er styre-indikatorer:
1. Speslalraodus (bit 4) forblir innstilt for bare en instruksjon. Når den er ..innstilt, tillater den enten en "last evne"-instruksjon å få tilgang til det spesielle évne-registeret istedet for det tilsvarende generelle evne-register. 2. "Grensesnittfeilsperre" (bit 5) forblir innstilt for
bare en instruksjon. Når den er innstilt,forhindrer den feil-avbrytelsen som normalt ville finne sted hvis en operandinn-hénting fra lager detekterte en prosessor/lager-grensesnittfeil. Bit 7 er en "første forsøk"-indikator. Den blir innstilt av en feilavbrytelse og påvirker prosessorens sespons på etter-følgende feil.
Bit 8 er sperreavbrytelses-indikatoren. Den forhindrer tidskrets-avbryteiser når den er innstilt.
Feilindikator- register ( FIR) : .
Feilindikator-register&£ har en lengde på 24 biter. Enhver bi% kan innstilles av en "intern modus aksess";
enhver bit kan slettes. „Ved innstilling av de hendelsene som er beskrevet nedenfor, inntreffer det en "feilavbrytelse".
bortsett fra prosessor/lager-grensesnittfeil når grensesnittfeilsperre er innstilt i primærindikator-registeret.
Bitene 0, 5,9-11 og 14 indikerer prosessor/lager-
feils
Busforstyrrelse (bit 6") blir innstilt hvis noen
av inngangs~linjene fra parallelbusen ikke er vendt til-
bake til lokisk "O" innen 400 mikrosekunder etter en lageraksess,
Slavetidsutkobling . (bit 5.) blir innstilt hvis en lagermodul rapporterer at adresse eller data ikke kan aksepteres av modulen under en lageraksess,
"Lagergrensesnitt-tidsutkobling" (bit 9) blir innstilt hvis en lagermodul ikke har reagert innen 50 mikrosekunder.
Paritetsfeil (bit 10) blir innstilt hvis den paritet
som genereres av lagermodulen på et fremadgående ord (dvs. "adresse" eller "adresse/data") og returneres til CPU, ikke er ekvivalent med den som ble generert av prosessoren.
"Les data paritetsfeil" (bit 11) blir Innstilt hvis "data-adresse"-pariteten som leses fra lageret ikke er ekvivalent med den som er generert av prosessoren på adressen og data fra lager.
"Ugyldig styrekode" (bit ,14) bliriinnstilt hvis en lagermodul rapporterer at den har mottatt en ugyldig styrekode under en CPU/lager-overfØring. Odde paritetskoder på
tre bit blir brukt.
Bit 2 er avbrytelsestidsutkoblings-indikatoren. Den
blir innstilt hvis avbrytelsesgodkjennings-registeret ikke er blitt brukt, hvoretter intervalltidsordet blir dekrementert
til null (når "avbrytelsessperrer" ikke er innstilt), for en periode på 300 ms, eller .hvis denne tilstanden ikke har inn-truffet 300 ms etter en "feilavbrytelse".
Bitene 6-8 indikerer evne-feils
"Evnesammenllgningsfeil" (bit 6) blir innstilt hvis den dupliserte utgangsadressen, endeadressen eller aksesskoden i et evneregister som blir brukt ved en forsøkt aksess, blir funnet ikke å være indentisk.
"Evnesumkontroll-feil" (bit 7) blir innstilt hvis sum» kon talordet, sirkulert 9 biter til venstre, ikke stemmer med summen av utgangs- og ende-veråtene når et evneregister blir
lastet»
"Utgangs/ende-evnekrenkelse" (bit 8) blir innstilt
hvis en adresse blir funnet å være utenfor det området
som spesifiseres av utgangs- og ende-adressene for den
evnen som blir brukt.
"Aksessfelt-krenkelse" (bit 18) blir innstilt hvis en ulovlig overføring blir forsøkt.
Bit 12 er indikatoren for, °ugyldig operasjon<0>. Den
blir innstilt når en ugyldig operasjon blir forsøkt.
Bit 13 er ^kraftfell"-indikatoren. Den blir innstilt hvis marginene for kraftforsyningen blir overskredet.
Bit 15 er afellefeil"=indikatoren. Den blir innstilt hvis det optrer en programfeile mens "avbrytelsessperrer"
er innstilt.
Bitene 16 og 19 indikerer, maskinvare feil. "Maskinvare feil 1" og "maskinvarefeil 2° blir innstilt hvis visse interne maskinvaresvikter.
Bit 17 er indikator for "vakthundtidskrets null". Den blir satt hvis vakthundtids~registeretruaår null.
Bitene 20-23 blir satt til oktaladressen til det evneregisteret som brukes når, en feil eller felle inntreffer.
Bitene 3 og 4 kan bare innstilles/tilbakestilles av datainstruksjoner som bruker, "intern modus".
Testreglster ( TR)
Dette registeret inneholder kontroi1-midler for testing av feildeteksjons-mekanismene.
Historisk register (HR)
Et register av en gruppe på seksten 25 biters register er adresserbare på en tid av en 4 biters adresseteller. De utgjør en "først inn/først ut" sirkulær kø for bruk ved feilundersøkende rutinerQ
Bruken av de ovennevnte registre sammen med bitmulti-plekseren BMff den aritmetiske enhet ALU* instruksjons^registeret IREGj, inndata-registeret MDIK„ lageradresse^registeret MAR<9>utdata-registeret MDOR og A°og B~evnekontroll-komparatorene ACC og BCC som alle er vist på figur 2, vil fremgå tydeligere senere 1 forbindelse med virkemåten til prosessoren ved utføringen av instruksjonene som håndterer informasjonen i prosessdumpestakken...
Prosessdumpestakk
Hver prosess er tilordnet en prosessdumpestakk som
er en lagerblokk definert av spesialevne-registeret C(D) mens prosessen løper. Prosessdumpestakken har tre funksjoner: ,„
1. Å bevare prosess-miljøet mens den er avbrutt»
2. Å stakklagre subrutinemi 1 j ø-verci&er under et "oppkall<0>til en annen subrutine; 3. A virke som en lokal evnetabell for blokker av lokale lagre tildelt i lokallager-stakken.
Prosessdumpestakken blir oppdatert av instruksjonene "oppkall", "spør lokallager", "lokallager-subsett" og "skift prosess". Instruksjonen "skift prosess" involverer to slike stakker. Innholdet av en ..typisk dumpes takk for en løpende prosess er vist på figur,5.
Prosessdumpestakken omfatter et område med fast størrelse og et stakkområde. Det faste området blir brukt til å dumpe prosess-miljøet ved avbrytelse. Onder en prosess-skiftemikro-sekvens blir evnepekerne„fra evnepeker-registerne P(0) til V ( Si) dumpet i lagerstedene Pd 10) til Pd(0) og innhoffldene av dataregisteme D(0) til D(7) blir dumpet i lagerstedene Dd(0) til Dd( 7) . I tillegg blir et antall spesielle prosessverdier dumpet i det faste området. Disse er nedskyvnings-registeret, vakthundtidskretsen, primærindikator-registeret, nivåtall-(LN) og lokallagerstakkpeker-registeret (LSSP) og det lokale lagerslettetelle-registeret (LSCC). Evnepekerne fra evnepeker-registerne P(6) og P(7) sammen med det aktuelle (relative) instruksjonsadresse-register og det lokale evnetelle-register blir dumpet på stakken.
Nedskyvning3peker-.registe.ret peker, når det er dumpet på lagerstedet for nedskyvningspekeren under en skifteprosess, til det siste ordet som er skrevet i dumpestakken (dvs. "instruks jons "-adressen).. Når prosessen løper, peker dette registeret til toppea av stakken (dvs. det neste tilgjengelige lagersted i stakken).. Onder et "oppkall" kan dataregistrene D(l) til D(6) og evnepeker-registrene P(0) til Pf(5) bevares ved spesifikasjon i instruksjonen, og i dette til-felle indikerer en beskriver-verdi hvilke registre som er stakklagret, som følger:.
En innstilling av den spesielle biten til 1, indikerer at registeret skal stakklagres. Evnepeker-registrene P(6)
og P(7) blir alltid bevart ved "oppkall" sammen med instruksjonsadresse-registeret (det relative) for den neste instruksjonen som skal utføres. En verdi på 1 for den mest signifikante bit i IAR-ordet indikerer at registere er stakklagret.
Kår lokallager blir tildeJLt i lokallagerstakken av "spør lokallager"-instruksjonen eller en delblokk blir definert av "lokallagersubsett"-instruksjonen, blir det foretatt en tre ords innføring på prosessdumpestakken. Innføringen omfatter et sumkontrollord, et utgangsord og et ende-ord. De minst signifikante 16 bitene i utgangsordet inneholder en forskyvning i forhold til utgangen for lokal-lagerstakk-evneregisteret» C(L) for det første lagersted i den spesifiserte blokken. Bit 23 i utgangsordet inneholder delevne-biten. De minst signifikante 16 bitene i ende-ordet inneholder en forskyvning 1 forhold til utgangen for lokallager-stakk-evneregisteret, V(L), av det siste lagerstedet i den spesifiserte blokken. De mest signifikante 8 bitene i ende-
ordet inneholder det nivåtall ved hvilket den lokale evnetabell-innføringen ble frembrakt. Sumbkontroll-ordet inneholder et 24 biters kontrollord dannet ved å addere de minst signifikante 16 bitene i .utgangsordet til de mimst . signifikante 16 bitene .i ende-ordet. Formatet på en lokal evnetabell-innføring er vist på figur 6.
"Spør lokallagerVinstruksjonen frembringer lokal evne-tabell-innføringer med delevne-biten tilbakestilt,
mens "lokallagersubsett"-instruksjonen frembringer lokale evnetabell-innføringer med elevne-biten innstilt.
Man skal nå se på virkemåten til behandlingsenheten på figur 2 ved utførelsen av de forskjellige Instruksjoner som manipulerer informasjoner i en prosessdumpestakk. De forskjellige operasjoner som utføres av behandlingsenheten blir styrt av en mlkroprogramstyreenhet som ikke er vist på tegningene, men fagfolk på området vil lett innse at de nødvendige operasjoner som di fineres ved flytskjemaene på figurene 7 til 10, for eksempel kan realiseres ved å bruke programmerte leselagre som genererer de nødvendige styre-signaler for hvert flytskjema-trinn. I den følgende beskrivelse inntreffer forskjellige overføringer fra register til register, og for å forenkle beskrivelsen vil det bli brukt en forkortelses-betegnelse som anveder symbolet := . Dette symbolet skal
leses som nBLIR", slik at utsagnet ALD s«= MDIN skal leses som "den aritmetiske enheten (ALU) aksepterer de data som holdes i inndata-registeret MDIN"..
Den første instruks jonen «som skal betraktes er "spør lokallager", og flytskjemaet for denne instruksjonen er vist på figur 7o
" Spør lokallagera- lnstruksjonen
Øverst på figur 7 er vist instruksjonsordet Iw som indikerer at denne instruksjonen (RLS) blir utført i lager-modus (S) og krever tildeling av en lokal lagerblokk med
en størrelse som indikeres av de data som holdes i det lage ru-stedet som er definert av M-, C(S)- og A-feltene i instruksjonsordet og evnebeskriveren for den lokale lagerblokken som skal lastes inn i evneregister C(N). M-feltet definerer ett av dataregistrene som skal virke som adressemodifiserer, mens C(2)-feltet definerer det generelle evneregisteret som inneholder beskriveren for <ten blokk i hvilken det nødvendige lagersted blir holdt, og A-verdien definerer forskyvningen fra utgangen for biokken for det krevede sted. Dnder den foregående instruksjonssyklus blir instruksjonsordet IW lest fra lageret inn i instruksjonsbufferet IB på figur 2, og funksjonskoden og registervelgefeltene blir ført til mlkro-progaamlageret (ikke vist) for å starte denn instruksjons-operasjonen som blir utført ved den følgende sekvens av trinn under mikroprogramstyring.
Trina Sl LSCC » 0?.
I dette trinnet blir det .lokale lagerslettetelle-register LSCCR valgt av mikroprogramenheten i A-fllen og matet til den aritmetiske enheten ALU slik at mikroprogram-enheten kan teste om styresignalene AUCS for den aritmetiske enheten er null. Hvis de er null. er der ikke noe tilgjengelig rom i det lokale lager. Hvis det ikke er null, blir trinn S2 utført.
Trinn S2 Les la<g>eradresse.
I dette trinnet blir lageradressen, definert ved A-verdLLen av instruksjonsordet, lest fra den relevante lagermodul inn i datainnmatnings-registeret. Sekvensen av operasjoner som utføres i dette trinnet vil typisk være som følgers -
Det skal bemerkes at det er antatt at ingen adressemodi-fikasjon var nødvendig (dvs. BfcsO). Den ovennevnte operasjon har trukket ut den lokale lagerblokkstørrelses-verdien LSSB som skal leses fra den relevante lagermodulen inn
i dataene i register MDIN.
Trinn S3 - LSSB ■ » 0?.
I dette trinnet blir dataene som er lest i trinn S2 ført til ALU for null-testing av mlkroprogramenheten ved å bruke ALUCS-signalene.. Hvis de er null, indikerer det en fMl, hvis ikke blir trinn S4 utført.
Trinn S4 - LSPR + LSSB - 1
I dette trinnet blir stakkpeker-reglsteret for lokallageret (LSPR) lest for å definere den aktuelle
toppen lokallagers takken.. (Øvs. det første ordet i området tilgjengelig for tildeling) og den siste adressen for blokkavsøkningen blir beregnet ved å addere LSSB-verdien som leses i trinn S2 minus en til den aktuelle LSPR- adressen.
Sekvensen omfatter typisk følgende operasjon
Trinn S5 - Innenfor LS3- grenser ..
I dette trinnet blir resultatet av operasjonen i trinn S4 testet for å se om den etterspurte blokken vil overskride lokallagerområdet. Dette oppnås ved å velge grensen lik halve lokallagerevneregisteret C(L) og sammenligne den med resultatet fra ALU i evnekomparatorene ACC og BCC. Hvis testen svikter blir det generert en feil.
Trinn S6 - Skriv LSB- utgang (( adresse ) i DS
I dette trinnet blir dumpestakkens nedskyvningspeker-register DSPPR som for øyeblikket peker til toppen av dumpe-stakken, biukt til å definere den adresse til hvilken utgangsadressen for den etterspurte lokallagerblokken skal skrives. Det vises til figur 5 i det området som er kalt LK(RS&LCC) og som indikerer "lenke med stakklagrede registre og frembrakte lokalevner", hvor det er vist en lokallagerevne-innføring ,bestående av "sumkontroll", "utgang" og "ende".
De utførte operasjonen kan typisk ha følgende rekkefølge
Trinn S7- Skriv LSB- ende JL DS,
I dette trinnet blir endeyerdien for lokallagerblokken som etterspørres skrevet inn i lokallagerevneinnføringen ved å utføre følgende operasjoner:
Trinn S8 - Skriv LNR 1 DS
I dette trinnet blir innholdet av nivåtallregisteret LNR skrevet inn i de åtte mest signifikante bitene av "ende"-ordinnføringen som er adressert i trinn S7 på følgende måte:
Trinn S9 - Skriv " sumkontroll'' i DS
I dette trinnet blir sumkontrollen for lokallagerevne-innf øringen dannet og skrevet i det første ordet i lokallagerevne-innføringen.
Trinn SIO - IKK L66R
I dette trinnet blir verdien i lokalevnetelle-registeret LCCR inkrementert med 1, Dette blir typisk oppnådd ved å sirkulere innholdet av LCCR-registeret gjennom ALU og operere ALU for en +l-operasjon.
Trinn Sil - IMK LSPR med LSS ,
I dette trinnet blir informasjonen om lokallagerblokk-størrelsen som er lest i trinn S2, addert til den aktuelle verdien av lokallagerevne-registeret LSPR for å danne en ny peker til det neste ledige område i lokallageret.
Trinn S 12 - Last C{ N)
I dette trinnet blir lokalevnebeskriveren som er dannet oveilfor, lastet inn i evneregisteret som er definert av "D^-feltet av instruksjonsordet. De operasjonene som utføres medfører vanligvis en normal evneregisterlaste-operesjon som vil være maken til de handlinger som er beskrevet i GB-patent nr, 1 329 721 når man tat: i be tralet ni ng for-skjellen mellom konstruksjonen æv de to CPU<*>er.
Trinn S1. 3 - Last LSCCR med LSS
I dette trinnet blir størrelsesverdien av lokallageret som er avlest i trinn S2,, matet inn i slettetelle-registeret for lokallageret, og trinnene S14,15 og 16 blir så utført gjentatte ganger for å slette de lagerstedene 1 lokallager blokken som det er blitt spurt etter. Dette blir oppnådd ved å dekrementere slette-tellerregisteret for lokal-
lageret (trinn S15), adaiere det til C (N)-utgangsverdien og skrive 0<*>er i de slik definerte lagerstedet (trinn S16) og så teste sletteteileverdien for lokallageret
for null (trinn S14).
Kår alle lagerstedene for lokallagerblokken er
blitt slettet, vil LSCCR-.verdien være null og instruksjonen vil komme ut ved trinn S14.
Fra det ovennevnte,vil man se at lokallagerblokken som
er definert ved lokalevneinnfØringen i dumpestakk-
lenken LK(RSfåLSS) på figur 5, nå kan brukes av den løpende rutinen og at frembringelsen av lokallagerblokken er blitt registrert i l&kalevnetalle-registeret LCCR.
Lokallagersubsett- instruksjon
I denne instruksjonen definerer instruksjonordet som er vist øverst på figur 8 og kalt IWS-S, evnepekeren for lokallager-evnebeskriveren ved hjelp av C(X) og A-feltene og evneregisteret som skal lastes med lokallagerevne-beskriveren. Instruksjonen blir også innført idet dataregisteret D(0)
i sine 12 mest signifikante biter holder en forskyvning,
og i sine minst signifikante 12 biter holder en størrelsesverdi for subsett-ordet. " .
Trinn SS1 - Last C( H)
I dette trinnet blir evneregisteret som er spesifisert
av D-feltet (C(K)), lastet med lokallager-evnebeskriveren definert av pekeren som er:._spesifisert ved M—, C-, og A-feltene. Operasjonene tilsvarer de som utføres i GB-patent nr. 1 329 721, selvsagt med justeringer for å romme forandringen 1 konstruksjon av CPD fra patentet til denne beskrivelsen.
Trinn SS2 - Les LSBB og størrelse
I dette trinnet blir forskyvningsverdien og størrelsen brukt til å definere det området som er nødvendig for subsettet i lokallageret for å definere en adresse som inditeerer grensen for subsettet i lokallagerblokken. Disse operasjoner kan typisk oppnås ved den følgende sekvens:
Trinn SS3 - S- SS innenfor " grense"
I dette trinnet blir endeadressen som er dannet av den siste ALU adder-operasjonen testet mot utgangen for lokallagerevnebeskriveren ved å bruke evnekode-kompara-torene ACC og BCC. Hvis endeadressen er utenfor størrelsen av lokallagerblokken, blir en feil indikert, hvis ikke blir trinn SS4 utført.
Trinn SS4 - Skriv LS- S- utgang 1 DS
I dette trinnet blir resultatet av addisjonen av forskyvningen og den relative utgangen fra evneregisteret som er spesifisert av instruksjonens D-felter (dvs. C(N)) og som løpende blir lagret i utdata-registeret i trinn SS2, lagret i dusipes takken for å danne utgangsordet for den lokale evneinnføringen med bit 23 satt til å indikere at den er en subsett-beskriver. Mikroprogrammenheten vil typisk frembringe utførelse av den følgende sekvens:
Trinn SS5 - Skriv LS- S- ende i PS
I dette trinnet blir endeverdien for lokalevne-beskriveren for subsettet skrevet i dumpestakken ved det neste lagerstedet i denne.
Trinn SS6 - Skriv LNR 1 DS
I dette trinnet blir verdien i nivåtali-registeret
LNR skrevet inn i de åtte mest signifikante bitene av den innskrevne innføring i trinn SS5.
Trinn SS7 - Skriv surokontroll 1 DS
I dette trinnet blir utgangsadressen for subsett-blokken addert til ende-adressen og resultatet sirkulert 9 biter» og dette ordet blir så skrevet i den dumpestakkadressen som er spesifisert av nedskyvningspeker-registeret DSPPR for dumpestakken for å, danne sumkontroll-inn-føringen for lokalevne-beskriveren.
Trinn SS8 - Dann LS- S- peker for C( N)
I dette trinnet blir det.gitt aksess til evneregisteret som er spesifisert ved C(N)-feltet»og de 9 mest signifikante bitene i ende-ordet blir trukket ut for å danne pekeren for C(N) ved å bruke de minst signifikante 15
bitene av relatlwerdien .av nedskyvningspeker-registeret for prosessdumpestakken.
Trinn SS9 - INK. BSPPR s INK LCCR
I dette trinnet blir nedskyvningspeker-registeret
DSPPR for prosessdumpestakken inkrementert for å peke på
det lagerstedet i dumpestakken som er "under" ende-ordet for den sist dannede evne-beskriveren. Tilslutt blir inneholdet av telleregisteret LCCR for lokalevnen inkrementert med en
for å indikere det antall lokaievne-beskrivere som er skapt av prosessen.
Fra den ovenfor gitte beskrivelse av "spør lokal-
lager"- og "åokallagersubsett"-instruksjonene kan man se at den nestede innføringen av dumpes tlskken blir brukt til å holde den lokalt skapte evnebeskriveren og at lokalevnetelle-registeret vil indikere det antall lokalevner som er skapt under-kjøringen av rutinen. I tilfellet med lokallager-subsett-lnstruksjonen blir bit ,23 i utgangs-innføringen markert som en "1".
Det nestede området av prosessdumpestekken blir i
tilegg til å frembringe en lokal evnebeskriver-tabell,
brukt til åi^frembringe lagring av registere som skal bevares når en områdeomkobllng (f.eks. et oppkall til en annen subrutine) inntreffer. De involverte instruksjonene er (a) instruksjonen "beskyttet kall" og (b) instruksjonen "beskyttet tilbakeføring<1*>.
Instruksjonen " beskyttet kall" .
Flytskjemaet for operasjonene som finner sted ved utførelsen av denne instruksjonen, er vist på figur 9. Når denne instruksjonen blir Innført, bærer D(0) en register-beskri ver som (a) i de 12 mest signigikante bitene definerer registerene som skal lagres i dumpestakken og (b) i de 12 LDinst signifikante bitene definerer registerene som skal slettes. En °1" er i noen av bitene 12 til 17 definerer typiske dataregistorene D, i( h$ til D(6) mens bitene 18 til 23 definerer pekerne for evneregistere C(0) til C(S) som skal lagres. Også en ener i noen av bitene 0 til 5 definerer dataregisterene D(l) til,-D(6) som skal slettes og bitene 6
til 11 definerer de evneregisterene som skal sléttes.
Trinn SCI Les D( 0)
I dette trinnet blir innholdet av register D{0) lest
og ført til mikroprogram-enheten ved å bruke betingelses-signalene &LUCS for den aritmetiske enheten.
Trinn SC2 - lagre registere ; slett registere
I dette trinnet vil de registere som skal bevares
bli ført gjennom ALU til., lageret på suksessive lagerskive-operasjoner ved de suksessive lagersteder i lenkesiiksjonen i dumpestakken, som vist på figur 5. Adresseringen vil være under styring av adresser dannet ved å bruke nedskyvningspekeren for dumpestakken i register DSPPR, Når bevaringen av registerene erHitt fullført, blir de registere som skal slettes håndtert ved å sirkulere dem gjennom ALU og null Alu-utgangen.
Trinn CS 3 - Ækrlv D( 0) 1 DS
Når trinn CS3 er ferdig vil neskyvningspekeren for dumpe-stakken peke til inngangen under det sist lagrede registeret. Referanse til figur 5 viser at dette lagerstedet blir brukt til åfoholde registrenes beskriverinngang. DSPPR-registeret blir brukt til å definere den dumpestakkadressen i hvilken innholdet av D(0) er skresvet.
Etter at lagerskrive-operasjonen er utført i trinn CS3, blir nedskyvningspekeren.for dumpestakken inkrementert med én klar for lagringen av pekeren for C(6) og C£(7) i trinn CS4 og CS5 med den etterfølgende inkrementering av nedskyvningspekeren.
Trinn CS6 - Skriv IAR i DS .......
I dette trinnet blir den siste innføring for den nestede rutinen forberedt, og den består, i bitene 0 til 15, av den relativiserte IAR-verdien, og, i bitene 16 til 22e av verdien av det lokale ,evnetelle~registeret som ble inkrementert ved utførelsen av trinn SLO i en instruksjon "spør lokallager" og trinn SS9 i en instruksjon "lokallagersubsett". De utførte operasjoner er typisk som følgers
Trinn CS7°Last C(6)
I dette trinnet blir evneregisteret C(6) lastet med evnebeskriveren for evnepeker-tabellen for den kalte prosessen
Trinn CS8- C( 6)- aksess ok?
1 dette trinnet kontrollerer mikroprogram-enheten den aksess,klode som er lastet i. trinn CS7o
Trinn CS9 - INK LCRs Tilbakestill LCCR
I dette trinnet blir verdien i nivåtall-registeret LNR inkrementert med In ved å føre denne verdien gjennom ALU, og den lokale evne.telleverdi i register LCCR blir tilbakestilt til null.
Trinn CS10 - Last C( 7)
I dette trinnet blir programblokk-evneregisteret G(7) lastet ved å bruke den pekeren som defineres av A— og M-feltene som refererer til prosessevne-tabellen i register C(6).
Denne operasjonen fullfører funksjonene for det beskyttede oppkall, og man kan se at den nestede lenken omfatter de lokale evnebeskrivere som er skapt under den nestede rutinen sammen med de bevarte registere og beskriverne for de lokale evne-beskrivere og de bevarte registere.
Til slutt skal betraktes .utførelsen av en instruksjon "beskyttet tilbakeføring" som vil bli utført ved slutten av en oppkalt rutine for „å tilbakeføre styringen til den tidligere nestede rutinen. Figur 10 viser operasjonene som utføres for en beskyttet.:.tilbakeføringe-instruksjon.
Instruksjonen " beskyttet., tilbakeføring"
Instruksjonsordet RIW som er vist øverst på figur 10, indikerer at det arbeides i direkte modus, og det blir innført idet D(O) i sine minst signifikante 12 biter har et mønster av enere som indikerer de generelle data-registere D(l) til D(6) og evneregisterene C(O) til C{5) som skal slettes.
Trinn RS - Null registere
I dette trinnet blir registeret D(O) lest og brukt til å betinge ALUCS-signalene slik at mikroprogrammstyringen sekvensielt kan velge de registere som skal nulles ved å sirkulere deres innhold gjennom ALU.
Trinn RS2 - Les DS
I dette trinnet blir dumpestakken adressert ved nedskyvningspekeren for dumpestakken, adekrementert med en for å adressere beskriver IARrlenkelnngangen, og den leste informasjon blir først inn i ett av de interne dataregistere. f.eks. D(l), slik at bit 23 kan testes i trinn RS5 for å se om noe register trenger å bli losset fra. lenken.
Trinn RS3 - Last C( 7) i HEK..,. DSPPR
I dette trinnet blir pekeren for C(7) lest fra dumpe-stakken og evneregisteret C(7) blir lastet og nedskyvningspekeren for dumpestakken blir dekrementert.
Trinn RS 3 Last C( 6K
I dette trinnet blir pekeren for C(6) lest fra dumpe-stakken og evneregisteret C(6) blir lastet.
Trinn RS5 - Er registerbeskriver - bit 23 = 1?
I dette trinnet blir bit .23 i register D(l), som er lastet i trinn RS2 ovenfor, testet. Hvis den er 0 er der ikke noen stakklagrede registere som skal losses fra dumpestakklenken, angitt ved lenken LK(O) på figur 5, og trinn RS6, RS7 og RS8 blir forbigått. Hvis den testede biten er en ener, så blir disse trinnene utført for å losse de stakklagrede registere fra lenken.
Trina RS6 - DEK. DSPPR Hes REG - beskriver
I dette trinnet blir den neste innføringen i lenken lest, hvilken på figur 5 ,er registerbeskriveren, og denne beskriveren blir brukt i .trinn RS7 til å styre lossingen av de stakklagrede data- og evne-registere.
Trinn RS7 - Dekrementer DSPPR med ( LCC x 3)
Dette trinnet justerer nedskyvningspekeren for dumpe-stakken klar til å losse de lokale evne-beskrivere hvis
der er noen.
Trinn RS9 - Er LCC x 3 °» 0
Hvis det er null er der ingen lokale evnebeskrivere
i lenken, slik som vist som LK(RS) på figur 5. Hvis verdien som testes ikke er null, vil trinnene RS10 osv. bli utført for å innstille den lokale lagerpekeren til utgangsadressen for det første subsettet i evnebeskriveren som er skapt ved at rutinen er "unestet"..
Trinn RS10 - Bevar DSPPR s Ink. DSPPR ; Last LSCCR med LCCX3
I dette trinnet blir nedskyvningspekeren for dumpe-stakken 1 register DSPPR bevart for senere bruk, vanligvis vil den bli holdt i et av dataregisterene som ikke er lastet i trinnene RS 6, RS7, og RS8»I tillegg blir lokallagerets evnetelle-register LCCR lastet med den lokale evnetelling som definerer antallet av lokale evner som er skapt ved dénne prosessen.
Trinn RS11 - Er LSCCR ■ 0?
I dette trinnet blir den lokale evnetellingen testet for å se om den er null..På dette tidspunkt vil den lokale evnetelling opplagt ikke være null.
Trinn RS12 - Les utgangs- innfØring
I dette trinnet blir lenkeinnføringen i dumpestakken
lest ved det lagersted som er definert i trinn RS1Q, slik at den mest signifikante biten i dette ordet kan testes for å se om den er et subsett av den lokale evneutgangs-innføring.
Trinn RS13 - Er bit 23 = 0
I dette trinnet blir dumpestakkinnføringen som er lest
i det siste trinnet testet for å se om den er en lokal evnebeskriver-utgangs-innføring som indikert ved at bit 23 er "l". Hvis bit 23 er "l", blir trinn RS14 utført.
Trinn RS14 - Dek. LCCR INK. DSPPR med 3
I dette trinnet blir den .lokale evnetellingen i register LCCR dekrementert med én og peker-registeret for dumpestakken blir justert med tre for å peke på utgangsinnføringen for den neste lokale subsettevne-pekeren hvis der er noen. Trinn RSll, RS12 og RS13 blir så utført for å teste om der er en
annen lokal evnebeskriver (trinn RSll) og om den ble skapt ved utføringen av den prosessen det blir tilbakeført til (trinnene RS12 og RSll).
Hvis ingen lokale subsettevnebeskrlvere er blitt skapt, blir trinn RS16 utført ved å sette nedskyvningspeker-
verdien for dumpestakken til begynnelsen av den dumpestakk-lenken som er blitt losset, slik at dette området kan brukes om igjen ved den neste "oppkal^-instruksjonen. Hvis en lokal sub-settevnebeskriver er blitt funnet ved utlesningen fra stakken av parametrene til den rutinen det vendes tilbake til» så
blir trinn RS15 utført ved å sette det lokale lagerpeker-register LSPR til utgangsverdien for den innføringen før utførelse av trinn RS16.
Trinn RS14 - Dek. LNR NullstiIltLCCR
I dette trinnet blir nivåtall-registerene LNR dek rementert med én ettersom tilbakeførings-instruksjonen til-bakefører styring til sabrutinen med høyere nivå, og det lokale evnetelle-register LCCR som er brukt i sløyfen som involverer trinn RSll, RS12, RS13 og RS14, blir tilbakeført til null.
Trinn RS18 - Kontroller LSD" ene
I dette trinnet blir de åtte generelle evnepekerne for evneregisterne C(0) til C(5) kontrollert for lokale lagerevne-aksesskoder. Hvis det blir funnet noen med en forskyvnings» verdi større enn eller lik nedskyvningspeker-verdien for den relative prosess-dumpestakken, så blir tilsvarende evne-register trukket.
Trinn RS19 - Last IAR
I dette trinnet blir den relativiserte IAR-verdien
som er lagret i trinn RS2, brukt til å danne den reelle IAR-verdien for den rutinen det vendes tilbake til.
Fra det ovenstående kan man se at den beskyttede tilbake-før ingsinstruks jonen fjerner alle de stakklagrede register-ferdier bortsett fra når oppkallet til subrutinen ved det lavere nivå ble gjort fra dumpestakklenken, og forårsaker at nivåtall°registeret LNR blir innstilt til det neste høyere nivå og at dumpestakken og de lokale lager-=ek@r-registere blir justert før tilbakeføring til den neste subrutinen ved høyere nivå.
Konklusjon
Av den foregående beskrivelse vil man se' at dumpestakken blir brukt til å neste subrutiner med hver lenke ved å holde pekerne for evneregistere ,C(6) og C(7) (dvs./ prosessevne-tabellen og prosessprogram-kodeblokkenKog den relativiserte instruksjons-adresseverdien for den nestede rutinen sammen med den lokale lagerevnebeskriveren^for enhver lokal lagerblokk som er skapt under den rutinen som er nestet, sammen med et valg av det generelle registere pg pekerne for de generelle evneregister. Informasjonen som holdes i hver lenke blir kvalifisert av en beskriver som indikerer det antall lokale evnebeskrivere som er skapt og de register som er stakklagret. Instruksjonene som er innlagt i CPU for å behandle de utvidede dumpestakk-fasilitetene er (i) instruksjonene "spør lokallager<0>og "lokallagersubsett" som avdeler den lokale lagerblokken og tildeler evnebeskrivere for dem ved å lagre beskriverne i lenkeområdet for den dumpestakken som er relevant for den subrutinen som avsøker lokallagerblokken, og (ii) "beskyttet kall og tilbakeføring"-instruksjonene som henholdsvis forårsaker nestingen og valgte registerinnhold i de nestede lenker. Man vil også forstå at selv om lokallageret blir tildelt ved en eksplisitt instruksjon, blir det automatisk tilbakeført når det vendes tilbake fra den subrutine i hvis lenke den lokale lagerevne-beskriverinnførlngen blir foretatt. Derfor blir alle evner for et spesielt nivå inaktive når det vendes tilbake fra det prosedyren!vået, og dette inkluderer evner i registere.
Det nivåtallet som er tilordnet hver lokal lagerevne-inn-føring, er for å utvide den ikke-diskrete forplantningsstyre-mekanismen. Denne mekanismen sikrer at ingen evnebeskriver kan lagres og brukes i en subrutine med lavere nivå. Denne sikkerhets-mekanismen er absolutt nødvendig for å forhindre at evnebeskrivere blir etterlatt som viser til ikke-eksisterende eller erstattet informasjon etter at det er foretatt tilbakeføring til en subrutine med høyere nivå.

Claims (1)

1. Multiprogrammert databehandlingssystem der hver prosess er forsynt med en prosessdumpestakk som har (a) én fast del for lagring av innholdet.av maskinregistere og indikatorer når prosessen blir avbrutt, <q> g (b) en variabel del for lagring av lenker for hver nestet subrutine som utføres av prosessen, karakterisert ved at hver lenke omfatter informasjon som indikerer (i) den instruksjonsadresse til hvilken prosessen skal vende tilbake når den nestede rutinen skal gjenopptas, (ii) kodeblokken for den nestede rutinen og (iii)„en lenke-beskriver som indikerer størrelsen og innholdet av resten av lenken,
2. Multiprogrammert databehandlingssystem ifølge krav 1, karakterisert ved at hver prosess er forsynt med en blokk av lokale lagre som er delt i lokale lagersegmenter som kreves ved ..utførelse av en "spør lokallager"-instrufcsjon av en prosessormodul i behandlingssystemet hver gang et lokalt lagersegment er nødvendig, og prosessormodulen omfatter et lokallagerstakkpeker-register og et lokallagerslettetåll-register, og lokallagerstakkpeker-registeret holder informasjon som indikerer lagerstedet for begynnelsen av et ledig område i lokallagersegmentet, mens lokallagerslettetelle-registeret holder informasjon som indikerer størrelsen a <y> det området i lokallagerblokken som er ledig for bruk, og disse registere blir brukt av trinn utført av prosessormctdulen ved utførelsen av instruksjonen "spør lokallager" for å danne lokale evne-beskrivere for lagring i lenkeprosess-dumpestakken. 3o Multiprogrammert databehandlingssystem ifølge krav 2, karakterisert ved at en instruksjon "spør lokallager" skaper en inngang; 1 lenkeprosess-dumpestakken som omfatter en lokal evnebeskriver som indikerer lagerstedet for det lokale lagersegment i blokken av lokale lågere og markerer lenkebeskriveren for å Indikere at et lokalt lagersegment er blitt skapt.
4. Multiprogrammert databehandlingssystem ifølge krav 3, karakterisert ved at instruksjonen "spør lokallager" bruker et lokalt lagerevneregister i prosessormodulen som inneholder informasjon som indikerer det området av lageret i databehandlingssystemet som er opptatt av blokken av lokale lagre tildelt den prosessen som blir utført av prosessormodulen.
5. Multiprogrammert databehandlingssystem ifølge krav 4, karakterisert ved at lenkebeskriveren omfatter informasjon som indikerer det antall lokale lagersegmenter som er skapt under utførelsen av subrutinen.
6. Multiprogrammert databehandlingssystem ifølge krav 5, karakterisert ved at lenkebeskriveren omfatter en tagg som når den er markert, indikerer at lenken omfatter dagersteder som lagrer innholdet av noen generelle data-og evne-registerene i prosessormodulen. 7o Multiprogrammert databehandlingssystem ifølge krav 6, karakterisert ved at lenken også omfatter en stakklagret beskriver for registere som indikerer identitene til de generelle data- og evneregister-inåhold som er blitt lagret i lenken.
8. Multiprogrammert databehandlingssystem ifølge krav 4, karakterisert ved at prosessormodulen inneholder en <0> lokallagersubsett"-instruksjon som styrer adskullelsen av et lokalt lagersegment i mindre subsett, og at operasjonen av lokallagersubsett- Instruksjonen omfatter trinnet for å markere inngangen i lenken for å indikere at inngangen vedrør et subsett av et lokallager-segment.
9. Multiprogrammert databehandlingssystem ifølge krav 8?karakterisert ved at hver inngang som er skapt av en "spør lokallager"-instruksjon eller en "lokallagersubsett"-instruksjon, registere det nivåtall som er tildelt den subrutinen som ble utført da det lokale lagersegmentet eller subsettet ble skapt.
NO802759A 1979-09-29 1980-09-17 Multiprogrammert databehandlingssystem. NO802759L (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB7933856A GB2060225B (en) 1979-09-29 1979-09-29 Multi-programming data processing system process suspension

Publications (1)

Publication Number Publication Date
NO802759L true NO802759L (no) 1981-03-30

Family

ID=10508176

Family Applications (1)

Application Number Title Priority Date Filing Date
NO802759A NO802759L (no) 1979-09-29 1980-09-17 Multiprogrammert databehandlingssystem.

Country Status (18)

Country Link
US (1) US4486831A (no)
EP (1) EP0026589B1 (no)
JP (1) JPS5657149A (no)
KR (1) KR860000837B1 (no)
AT (1) ATE32388T1 (no)
AU (1) AU542183B2 (no)
CA (1) CA1160350A (no)
DE (1) DE3072072D1 (no)
DK (1) DK408980A (no)
ES (1) ES495453A0 (no)
GB (1) GB2060225B (no)
HK (1) HK76984A (no)
IE (1) IE50246B1 (no)
NO (1) NO802759L (no)
NZ (1) NZ195062A (no)
PT (1) PT71824B (no)
SG (1) SG43484G (no)
ZA (1) ZA805536B (no)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649472A (en) * 1981-02-04 1987-03-10 Burroughs Corporation Multi-phase subroutine control circuitry
US4703449A (en) * 1983-02-28 1987-10-27 Data Translation Inc. Interrupt driven multi-buffer DMA circuit for enabling continuous sequential data transfers
US4599689A (en) * 1983-02-28 1986-07-08 Data Translations, Inc. Continuous data transfer system
US4644461A (en) * 1983-04-29 1987-02-17 The Regents Of The University Of California Dynamic activity-creating data-driven computer architecture
JPS60195646A (ja) * 1984-03-16 1985-10-04 Hitachi Ltd デ−タ処理装置
JPS61210432A (ja) * 1985-03-15 1986-09-18 Hitachi Ltd 計算処理方式
US5274797A (en) * 1986-05-30 1993-12-28 Bull Hn Information Systems Inc. Multiprocessor system with centralized initialization, testing and monitoring of the system and providing centralized timing
CA1312142C (en) * 1988-02-10 1992-12-29 Richard I. Baum Linkage mechanism for program isolation
US5210874A (en) * 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US4974159A (en) * 1988-09-13 1990-11-27 Microsoft Corporation Method of transferring control in a multitasking computer system
US5317733A (en) * 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
EP0532744B1 (en) * 1991-03-07 1996-12-18 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
US5995996A (en) * 1993-06-15 1999-11-30 Xerox Corporation Pipelined image processing system for a single application environment
US5396616A (en) * 1993-06-15 1995-03-07 Xerox Corporation System for emulating multi-tasking pipelines in a single tasking environment
US5701479A (en) * 1993-06-15 1997-12-23 Xerox Corporation Pipelined image processing system for a single application environment
EP0667574A3 (en) * 1994-02-14 1997-02-12 Ibm Computer system.
US5937186A (en) * 1994-03-24 1999-08-10 International Business Machines Corporation Asynchronous interrupt safing of prologue portions of computer programs
US6601188B1 (en) 1999-10-28 2003-07-29 International Business Machines Corporation Method and apparatus for external crash analysis in a multitasking operating system
US7620852B2 (en) * 2005-03-02 2009-11-17 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
US20070239854A1 (en) * 2006-04-11 2007-10-11 Gopalakrishnan Janakiraman Method of migrating process domain
US9063932B2 (en) 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
US10120688B2 (en) * 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions
GB2586276B (en) 2019-08-16 2022-03-30 Advanced Risc Mach Ltd Capability write address tracking

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US4351024A (en) * 1975-04-21 1982-09-21 Honeywell Information Systems Inc. Switch system base mechanism
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks

Also Published As

Publication number Publication date
IE802025L (en) 1981-03-29
US4486831A (en) 1984-12-04
ZA805536B (en) 1981-09-30
AU6215580A (en) 1981-04-02
DE3072072D1 (en) 1988-03-10
EP0026589B1 (en) 1988-02-03
AU542183B2 (en) 1985-02-14
GB2060225A (en) 1981-04-29
DK408980A (da) 1981-03-30
ES8106060A1 (es) 1981-07-01
JPS5657149A (en) 1981-05-19
HK76984A (en) 1984-10-19
SG43484G (en) 1985-09-13
PT71824B (en) 1981-06-30
EP0026589A2 (en) 1981-04-08
ATE32388T1 (de) 1988-02-15
IE50246B1 (en) 1986-03-05
NZ195062A (en) 1983-06-17
KR860000837B1 (ko) 1986-07-02
EP0026589A3 (en) 1982-06-30
CA1160350A (en) 1984-01-10
PT71824A (en) 1980-10-01
ES495453A0 (es) 1981-07-01
GB2060225B (en) 1983-05-25
JPH0114611B2 (no) 1989-03-13

Similar Documents

Publication Publication Date Title
NO802759L (no) Multiprogrammert databehandlingssystem.
US3735363A (en) Information processing system employing stored microprogrammed processors and access free field memories
NO155830B (no) Databehandlingssystem.
KR920001101B1 (ko) 마이크로프로세서와 그 내부의 레지스터장치
US4527238A (en) Cache with independent addressable data and directory arrays
EP0472433B1 (en) Firmware modification system wherein older version can be retrieved
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
US3654621A (en) Information processing system having means for dynamic memory address preparation
EP0348994A2 (en) Directed hardware error identification method and apparatus for error recovery in piplined processing areas of a computer system
US4771380A (en) Virtual vector registers for vector processing system
NO303419B1 (no) FremgangsmÕter og systemer for Õ bevare kildeinstruksjonens atomitet i oversatt programkode
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH0517588B2 (no)
KR850000622B1 (ko) 데이타 처리 시스템
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
EP0426111B1 (en) Memory control system
JPS6049340B2 (ja) 分岐命令先取り方式
NO300942B1 (no) Signalbehandlingsapparat og -metode
EP0319132B1 (en) Interrupt handling in a parallel data processing
CA1287177C (en) Microprogrammed systems software instruction undo
JPH1040103A (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
CN109358903A (zh) 数据访问设备和访问错误通知方法
US5675776A (en) Data processor using FIFO memories for routing operations to parallel operational units
KR930005767B1 (ko) 마이크로프로그램 제어를 기초로한 데이타 처리장치
JPS6285372A (ja) マルチプロセツサシステムにおけるコンペアアンドスワツプ方式