FI83458C - Stapelformingsfoerfarande foer programraeknare och anordning foer interna subrutiner och avbrott. - Google Patents

Stapelformingsfoerfarande foer programraeknare och anordning foer interna subrutiner och avbrott. Download PDF

Info

Publication number
FI83458C
FI83458C FI834414A FI834414A FI83458C FI 83458 C FI83458 C FI 83458C FI 834414 A FI834414 A FI 834414A FI 834414 A FI834414 A FI 834414A FI 83458 C FI83458 C FI 83458C
Authority
FI
Finland
Prior art keywords
address
register
microinstruction
return
ros
Prior art date
Application number
FI834414A
Other languages
English (en)
Swedish (sv)
Other versions
FI83458B (fi
FI834414A0 (fi
FI834414A (fi
Inventor
John J Bradley
Ming T Miu
Original Assignee
Honeywell Inf Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Inf Systems filed Critical Honeywell Inf Systems
Publication of FI834414A0 publication Critical patent/FI834414A0/fi
Publication of FI834414A publication Critical patent/FI834414A/fi
Publication of FI83458B publication Critical patent/FI83458B/fi
Application granted granted Critical
Publication of FI83458C publication Critical patent/FI83458C/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

1 83458
OHJELMALASKURIN PINONMUODOSTUSMENETELMÄ JA LAITTEISTO SISÄKKÄISILLE ALIRUTIINEILLE JA KESKEYTYKSILLE . - STAPELFORMINGS-FDRFARANDE FÖR PROGRAMRÄKNARE OCH ANORDNING'FÖR INTERNA SUBRUTINER OCH AVBROTT. KEKSINNÖN TAUSTA
Keksinnön käyttöalue Tämä keksintö liittyy tietojenkäsittelyjärjestelmiin ja tarkemmin sellaiseen tietojenkäsittelyjärjestelmään, jossa on mahdollisuus suorittaa sisäkkäisiä alirutiineja ja keskeytyksiä .
Tekniikantason kuvaus
Tietojenkäsittelyjärjestelmässä suoritettavat operaatiot ja niiden tapahtumisjärjestys määräytyy muistiin tallennetun ohjelman mukaan. Tietojenkäsittelyjärjestelmien ohjelmiin on yleensä sisällytetty yhteisiä toimintoja, joita saatetaan tarvita useita kertoja samassa ohjelmassa tai joita voidaan käyttää hyväksi myös muissa ohjelmissa. Näitä yhteisiä toimintoja käytetään helpottamaan ohjelmointityötä haluttaessa määritellä tarkasti kaikki suoritettavat toimenpidesarjat, ja jotta prosessorin ominaisuudet tulisivat paremmin hyödynnetyiksi. Kukin tällainen yhteinen toiminto voidaan määritellä alirutiiniksi, jolloin alirutiini sisältää tietyn käskyjonon.
Alirutiineja voidaan käyttää hyväksi lukuisissa yhteisissä toiminnoissa, esimerkiksi matemaattisia likiarvolaskelmia käyttävissä trigonometrisissä funktioissa. Sen sijaan, että ohjelmoija kirjoittaisi uudelleen sarjan operaatioita useaan kertaan, tarvitsee ohjelmoijan kirjoittaa haluttujen operaati-. . oiden suorittamiseksi tarvittava käskyjoukko vain yhteen kertaan ja kutsua se sitten esiin niin usein kuin sitä tarvitaan. Näin siis digitaalisessa prosessorissa suoritetaan haarautuminen esimerkiksi kosini-alirutiiniin, jos ohjelmassa tarvitaan trigonometrisistä funktioista kosinin arvoa.
2 83458
Usein on huomattu, että alirutiini kutsuu toista alirutiinia suorittaakseen toimenpiteensä loppuun. Tällaisessa tilanteessa syntyy ongelmia, koska prosessorin on tallennettava ja kutsuttava uudelleen paluuosoite eli sen alirutiinin seuraava osoite, josta hypättiin. Vaikka ohjelman tehokkuus kokonaisuutena paranee käytettäessä tiettyä toimintoa varten vain yhteen prosessorin kohtaan sijoitettua alirutiinia, on toisaalta usein havaittu, että järjestelmän toimintaan ilmestyy heikkouksia kutsuttaessa eri alirutiineja ja palattaessa niistä takaisin. Ongelmia on ilmennyt niin ajan suhteen kuin laitteiston ja/tai ti]arajoituksiin liittyvien näkökohtien suhteen .
Tekniikantasolla on useita ratkaisuja alirutiineihin haarautu-miseksi ja niistä palaamiseksi. Eräs näistä ratkaisuista on sellainen, jossa seuraavan käskyn (osoite)paikka siirretään alirutiinin ensimmäiseen (osoite)paikkaan. Tällaisessa järjestelmässä viimeisellä alirutiinin käskyllä on pääsy alirutiinin ensimmäiseen paikkaan. Tähän ensimmäiseen paikkaan on tallennettu paluuosoite seuraavaan käskyyn (eli käskyyn joka on ohjelmassa seuraavana sen käskyn jälkeen, josta haarauduttiin alirutiiniin). Näin prosessori voi jatkaa käskyjen suorittamista peräkkäisessä järjestyksessä läpi koko ohjelman. Tässä menetelmässä on kuitenkin eräitä puutteita, sillä useampien yhteisten siirtojen käsittely mutkistaa tilannetta. Järjestelmän toiminnan kannalta on esimerkiksi usein eduksi siirtää operaatioita (toimenpiteitä) ensimmäisestä alirutiinista toiseen alirutiiniin, joka käyttää hyväkseen ensimmäistä alirutiinia. Joissakin muissa tilanteissa saattaa olla eduksi, jos ensimmäinen alirutiini kutsuu itseään uudelleen. Tällaiset siirrot ovat vaikeita, ja niitä on joskus jopa mahdotonta toteuttaa edellä kuvatun kaltaisilla tietojenkäsittelyjärjestelmillä ilman niihin tehtäviä muutoksia tai lisäämättä käskyjen määrää.
Kun ensimmäistä alirutiinia kutsutaan ensimmäisen kerran, siirretään seuraavan päärutiinissa olevan mikrokäskyn osoite ensimmäiseen alirutiinipaikkaan.
3 83458
Kun ensimmäistä alirutiinia kutsutaan uudelleen välirutiinis-ta, siirretään välirutiinissa olevan seuraavan käskyn osoite samaan paikkaan ensimmäisessä alirutiinissa, jolloin paikan alkuperäinen sisältö tuhoutuu. Tästä seuraa tilanne, jossa ensimmäinen alirutiini pystyy palaamaan välirutiiniin, mutta se ei enää pystykään palaamaan päärutiiniin.
Tietojenkäsittelyjärjestelmissä, joissa ensimmäinen tai toinen alirutiini voi kutsua uudelleen ensimmäistä alirutiinia, voidaan käyttää käskyä, jolla paluuosoite siirretään määrättyyn muistipaikkaan. Viimeisen alirutiinin käskyä muutetaan tämän jälkeen siten, että se sisältää tämän tietyn muistipaikan osoitteen. Vaikka tämä järjestelmä sälliäkin yhden alirutiinin kutsua toista alirutiinia eli sallii jälkimmäisen alirutiinin sijoittamisen edellisen alirutiinin "sisään" samalla sallien vain osittain suoritetun alirutiinin käyttämisen myöhemmin muihin tarkoituksiin, tarvitaan yksi varamuistipaikka ja useita käskyjä kutakin sisennystasoa kohden. Ohjauspiirit tulevat sitä monimutkaisemmiksi, mitä enemmän tarvitaan edellä mainittuja varamuistipaikkoja kutakin sisäkkäistä alirutiinia varten. Lisäksi ohjelmointi on myös mutkikkaampaa, koska viimeinen alirutiinikäsky täytyy muuttaa sellaiseksi, että se osoittaa kullekin alirutiinille varattua tiettyä muistipaikkaa. Niinpä tällainen ratkaisutapa muodostuukin sitä hankalammaksi, mitä useampaan tasoon alirutiinit on sijoitettu toistensa sisään.
On myös toisenlaisia tietojenkäsittelyjärjestelmiä, joissa käytetään hyväksi vapaita muistipaikkoja alirutiinin tai aiemmin suoritetun rutiinin paluuosoitteen tallentamiseen. Alirutiinin viimeinen käsky suorittaa haarautumisen osoitettuun muistipaikkaan. Tällaisen järjestelmän hyödyntämiseksi tarvitaan kuitenkin kaksi rekisteriä, joista toinen osoittaa vapaita muistipaikkoja ja toisesta saadaan rekisterin senhetkinen arvo ja kulloinkin tarvittava muistiosoite.
4 83458
Vaikka tämän tyyppisellä tietojenkäsittelyjärjestelmällä pystytäänkin ratkaisemaan eräitä aikaisemmista ongelmista, siinä tarvitaan silti ylimääräisiä käskyjä jokaisen uuden alirutiinitason osoittamiseksi, jonka myötä ohjelman suorittamiseksi tarvittava aika kasvaa.
Eräs uudemmista ratkaisuista tähän ongelmaan löytyy yhdysvaltalaisesta patentista 3,909,797 nimeltään "Data Processing System Utilizing Control Store Unit and Push Down Stack for Nested Subroutines" (Tietojenkäsittelyjärjestelmä, jossa sisäkkäisten alirutiinien käsittelyssä käytetään hyväksi ohjausmuistiyksikköä ja pinomuistia). Tätä patenttia käsitellään tässä yhteydessä viitteenomaisesti.
Tämän patentin mukaisessa tietojenkäsittelyjärjestelmässä on mikro-ohjelmoitu ohjausmuistiyksikkö, joka tekee mahdolliseksi keskusyksikön alijärjestelmän järjestämisen peräkkäisrakentei-seksi. Tämä patentti koskee ohjausmuistiyksikköä ohjaavaan kiinteään laiteohjelmistoon ohjelmoitujen alirutiinien asettamista sisäkkäin, mutta keksinnön periaatteet ovat sovellettavissa aivan yhtä hyvin erillisen sovellutusohjelmiston ohjelmiin tai kiinteän laiteohjelmiston mikro-ohjelmiin. Ohjaus-muistiyksiköstä saadaan mikro-ohjelman alirutiiniin haarautu-misen aiheuttava mikrokäsky mikrokomennolla, jonka avulla parhaillaan suoritettavan mikro-ohjelmarutiinin paluuosoite voidaan tallentaa muistiin. Mikrokomento sallii myös pinomuistin käsittelyn siten, että aiemmin tallennettuja mikro-ohjelman paluuosoitteita siirretään (työnnetään) alaspäin yksi taso. Mikro-ohjelman alirutiinin tultua suoritetuksi saadaan ohjaus-muistiyksiköstä haarautumiskenttä, jolloin multiplekseri voi valita pinomuistissa päällimmäisenä olevan paluuosoitteen, jonka jälkeen paluuosoite siirretään järjestelmään kuuluvaan . senhetkisen osoitteen rekisteriin. Haarautumiskenttä nostaa myös pinomuistiin aiemmin tallennettuja paluuosoitteita yhden tason ylöspäin.
5 83458
Tietojenkäsittelyjärjestelmässä käytetään keskeytyksiä, jotta järjestelmä reagoisi halutulla tavalla myös sellaisiin tapahtumiin, joita esiintyy tahdistamattömasti ohjelman suoritukseen nähden. Tällaiset tahdistamattomat tapahtumat voivat olla esimerkiksi tietojenkäsittelyjärjestelmässä esiintyviä vikoja tai tietojenkäsittelyjärjestelmän ohjaamien laitteiden toimintatiloissa esiintyviä muutoksia.
Kun esimerkiksi syöttö/tulostuslaite (I/O) lähettää keskeytyksen tietojenkäsittelyjärjestelmälle, se voi olla merkki siitä, että laite pyytää palvelua tietojenkäsittelyjärjestelmältä. Tällaisia keskeytyksiä voidaan käyttää ilmoittamaan syöttö/ tulostustoimenpiteen päättymisestä tai järjestelmäviasta, kuten muistivirheestä. Alirutiinien tapauksessa keskeytykset voivat muuttaa ohjelman kulkua. Keskeytyksen ilmetessä ohjelman kulku ohjataan keskeytyksen palvelurutiiniin, joka on ohjelmoitu käsittelemään keskytyksen aiheuttanutta tapahtumaa. Keskeytyksen palvelurutiinin tultua suoritetuksi, täytyy keskeytyksen palvelurutiinin ohjata prosessoria niin, että se jatkaa ohjelman suorittamista siitä paluuosoitteesta, joka tallennettiin keskeytyshetkellä.
Eräs paluuosoitteen tallennustapa on varata tietyt kiinteät muistipaikat jokaiselle keskeytystyypille keskeytetyn ohjelman paluuosoitteen tallentamiseksi. Kun keskeytyksen palvelurutii-ni on tullut loppuun suoritetuksi, saadaan keskeytyksen pal-velurutiini tätä menetelmää käyttäen lataamaan prosessorin ohjelmalaskuri uudelleen kiinteästä muistipaikasta, joka on varattu juuri kyseisen tyyppistä keskeytystä varten. Tällä tavalla prosessori saadaan jatkamaan sitä ohjelmaa, jota oltiin suorittamassa juuri ennen kuin keskeytys tapahtui. Tässä menetelmässä on kuitenkin se heikkous, että keskeytysten palvelurutiinit eivät pysty helposti käyttämään yhteisiä ohjelmakäskyjä, koska palvelurutiinin täytyy noutaa keskeytettyyn ohjelmaan palatakseen keskeytyksen paluuosoite kiinteästä muistipaikasta, joka on muistin eri kohdissa keskeytyksestä riippuen.
6 83458
Keskeytysten paluuosoitteiden käsittelyyn liittyvää ohjelmaa on lähestytty eri tavalla yhdysvaltalaisessa patentissa 4,340,933, jonka nimi on "Data Processing System Having Centralized Nonexistent Memory Address Detection" (Ei olemassa olevien muistiosoitteiden keskitettyä ilmaisua käyttävä tietojenkäsittelyjärjestelmä), jota käsitellään tässä viitteen omaisesti.
Tämä patentti koskee laitteistokeskeytyksiä, jotka keskeyttävät kiinteään laiteohjelmistoon kuuluvan mikro-ohjelman suorittamisen. Siinä mikro-ohjelman paluuosoite tallennetaan erikoisrekisteriin (laitteistokeskeytysten paluuosoiterekiste-riin) ja muut laitteistokeskeytykset estetään, kunnes mikro-ohjelmaan kuuluva laitteistokeskeytyksen palvelurutiini on suoritettu loppuun. Muiden keskeytysten estäminen varmistaa sen, ettei laitteistokeskeytysten paluuosoiterekisteriin tallennettu ensimmäinen mikro-ohjelman paluuosoite tuhoudu, koska toista paluuosoitetta ei tallenneta ensimmäisen paluuosoitteen päälle toisen laitteistokeskeytyksen ilmetessä. Vaikka tämä menetelmä salliikin keskeytysten palvelurutiinien käyttää yhteisiä ohjelmakäskyjä (koska kaikki keskeytysten palvelu-rutiinit palauttavat ohjelman suorituksen keskeytettyyn ohjelmaan lataamalla ohjelmalaskurin uudelleen yhdestä ja ainoasta keskeytysten paluuosoiterekisteristä), sillä on kuitenkin se haittapuoli, ettei keskeytyksissä ja alirutiineissa voida helposti käyttää yleisiä ja yhteisiä ohjelmakäskyjä.
Näin ollen meiltä puuttuu vieläkin paluuosoitteiden tallennus-menetelmä, joka sallii sisäkkäiset alirutiinit ja keskeytysten palvelun yhteisiä ohjelmakäskyjä tehokkaasti käyttäen.
7 83458
KEKSINNÖN TAVOITTEET
Tämän keksinnön päätavoite on siis saada aikaan parempi tietojenkäsittelyjärjestelmä, jossa suoritetaan ja käsitellään alirutiinisiirtoja ja keskeytyksiä.
Keksinnön toisena tavoitteena on saada aikaan uusi ja parempi järjestelmä paluuosoitteiden tallentamiseksi haarauduttaessa alirutiineihin tai palveltaessa satunnaisia keskeytyksiä. Järjestelmän tulee edelleen toimia automaattisesti niin, että keskeytyksen palvelurutiini tai alirutiini, johon haaraudutaan, jatkaa ohjelman suorittamista annetusta paluuosoitteesta alirutiinin tai keskeytyksen palvelurutiinin tultua loppuun suoritetuksi.
Edelleen keksinnön tavoitteena on saada aikaan parempi tekniikka sisäkkäisten alirutiinien ja keskeytysten käyttämiseksi tietojenkäsittelysovellutuksissa ja tietokonejärjestelmissä. Näin luotavan tekniikan on oltava tehokasta, luotettavaa ja kokonaisuuden kannalta aikaa säästävää.
Tämä keksintö eritellään yksityiskohdittain liitteenä olevissa patenttivaatimuksissa. Keksinnön edellä mainitut ja muut tavoitteet sekä sen edut ymmärtää helpoimmin tutustumalla .... seuraavaan kuvaukseen yhdessä piirustusten kanssa.
8 83458 YHTEENVETO KEKSINNÖSTÄ
Edellä mainitut tavoitteet saavutetaan yhden toimintatavan mukaisen keksinnön suoritusmuodon mukaisesti varustamalla tietojenkäsittelyjärjestelmän mikroprosessori ohjausalueella, joka tekee mahdolliseksi mikroprosessorin toimintojen järjestämisen peräkkäisrakenteiseksi. Ohjausalueelta saadaan alirutiiniin haarautumisen aiheuttava mikrokäsky mikrokomennon avulla, jolloin parhaillaan suoritettavan ohjelman tai rutiinin paluuosoite voidaan tallentaa. Mikrokomento tekee myös pinomuistin käsittelyn mahdolliseksi siten, että aiemmin tallennettuja paluuosoitteita painetaan pinossa yksi taso alaspäin. Ohjausaluetta käytetään myös vektoroitujen keskeytys-osoitteiden muodostamiseen, jotka vastaavat korkeimman prioriteetin omaavaa ei-estettyä käsittelyä odottavaa keskeytystä. Nämä vektoroidut keskeytysosoitteet viedään seuraavan osoitteen rekisteriin senhetkisen mikrokäskyn muodostaman osoitteen tilalle ja senhetkisen mikrokäskyn muodostama osoite viedään pinomuistiin ja sitä siirretään yksi taso alaspäin keskeytyksen ilmetessä. Kun alirutiini tai keskeytyksen palvelurutiini on saatu suoritetuksi loppuun, saadaan ohjausalueelta osoite-kenttä, jotta multiplekseri voi valita pinomuistissa päällimmäisenä olevan paluuosoitteen syötettäväksi ohjausalueessa olevaan seuraavan osoitteen rekisteriin. Kun pinomuistista näin poimitaan päällimmäinen paluuosoite, nousevat myös aiemmin tallennetut paluuosoitteet pinossa yhden tason ylöspäin.
Keksinnössä on varauduttu myös siihen, että jos keskeytys esiintyy palattaessa alirutiinista tai keskeytyksen palvelu-rutiinista, ei pinomuistista poimita tai siihen laiteta mitään osoitteita, ja vektoroitu osoite viedään seuraavan osoitteen rekisteriin seuraavan suoritettavan mikrokäskyn osoitteeksi.
' Pinomuisti on toteutettu keksinnön suoritusmuodossa käyttäen ; siirtorekistereitä.
9 83458
PIIRUSTUSTEN LYHYT KUVAUS
Tapa, jolla nyt kyseessä olevan keksinnön menetelmä on toteutettu, ja tapa, jolla nyt kyseessä olevan keksinnön laitteisto on konsturoitu, samoin kuin sen toimintatapakin, käyvät parhaiten ilmi seuraavasta yksityiskohtaisesta kuvauksesta yhdessä siihen liittyvien piirustusten kanssa, joissa eri osat ovat tunnistettavissa viitenumeroiden avulla useista kuvista, joista s
Kuva 1 on yleisluontoinen lohkokaavio tietojenkäsittelyjärjestelmästä, jossa käytetään hyväksi nyt esillä olevaa keksintöä;
Kuva 2 on lohkokaavio osasta kuvan 1 mikroprosessorin ohjaus-aluetta, joka suorittaa nyt esillä olevan keksinnön periaatteet ;
Kuva 3 esittää kuvan 1 mikroprosessorin kiinteän laiteohjel-miston mikrokäskysanakenttiä;
Kuva 4 esittää mikro-ohjelman mikrokäskyjen suorittamisen kulkukaaviota alkaen pääohjelmasta ja jatkuen kahden alirutiinin ja kahden laitteistokeskeytyksen palvelurutiinin kautta nyt esillä olevan keksinnön mukaisesti; ja.
Kuva 5 on looginen lohkokaavio piireistä, joita käytetään kuvan 2 ohjausalueessa nyt esillä olevan keksinnön mukaisesti.
ίο 83 458
SUORITUSMUODON KUVAUS
Vaikkakin keksinnön taustaa on tarkasteltu edellä olevissa luvuissa ensisijaisesti varusohjelmiston kannalta ja tarkastelemalla lähinnä varusohjelmiston rutiinien ja keskeytysten asettamista sisäkkäin, ovat keksinnön periaatteet aivan yhtä hyvin sovellettavissa kiinteän laiteohjelmiston rutiineihin ja keskeytyksiin. Seuraavaksi keksintöä tarkastellaan suoritusmuodon kannalta, jollaisena keksintö on toteutettu mikroprosessorissa käytettäväksi kiinteän laiteohjelmiston alirutiinien ja keskeytysten sisäkkäin asettamiseen.
Ennen kuin keksinnön rakennetta ja toimintaa aletaan selostamaan yhdessä piirustusten kanssa on huomattava, että toiminnan selittämisen helpottamiseksi keksinnön toteutustapa on esitetty piirustuksissa siten, että se pystyy asettamaan sisäkkäin neljä alirutiini- tai keskeytystasoa. On kuitenkin aivan selvää, että käytännössä alirutiini- tai keskeytystasojen määrä voi olla paljon suurempikin kuin neljä lisäämällä asiaankuuluvia piirejä ja muuta laitteistoa. Vaihtoehtoisesti voidaan käyttää ylivuotomenettelyä sen sijaan, että pyrittäisiin laajentamaan laitteistoa. Ylivuototilanteessa eli silloin kun haluttaisiin asettaa sisäkkäin enemmän kuin neljä alirutiini-tai keskeytystasoa, voisi mikroprosessori palauttaa neljän ylittävien alirutiinien tai keskeytysten käsittelyn muille järjestelmän mekanismeille.
Suoritusmuodon toteutusta kuvataan piirustuksissa niissä esitetyillä piiriratkaisuilla. On kuitenkin ymmärrettävää, että sovitettaessa keksintöä muun tyyppisiin prosessoreihin saate-·.·· taan käyttää muunkinlaisia logiikkakytkentöjä. Täten keksintöä ;Y ei ole tarkoitettu rajattavaksi vain piirustuksissa esitettyi-.· · hin tapauksiin.
u 83458
Tutustukaamme nyt piirustuksiin. Kuva 1 esittää kokonaisuutena järjestelmää, jossa voidaan käyttää nyt esillä olevan keksinnön mukaista alirutiinien ja keskeytysten sisäkkäin sijoittamista .Lähemmin tarkasteltaessa havaitaan, että kuvassa 1 on esitetty päämuisti-alijärjestelmä 10, keskusyksikkö (CPU) 20 ja syöttö/tulostusyksikkö (I/O) 40. Päämuisti-alijärjestelmä 10 koostuu kolmesta metallioksidipuolijohdemoduulista 12, 14 ja 16. Näistä kolmesta moduulista on liityntä keskusyksikön väylään 20 ja syöttö/tulostusväylään 40 pääväylän 26 kautta. Pääväylän 26 kautta on mahdollista päästä yhteyteen kaikkiin muistimoduuleihin ja syöttö/tulostusyksikköihin sekä ohjata niitä.
Keskusyksikkö 20 suorittaa sananmuoto!sia käskyjä, jotka toimivat kiinteän ja vaihtelevan pituisissa kentissä. Keskusyksikössä käytettävän tiedon perusyksikkö on 16-bittinen sana, joka koostuu kahdesta 8-bittisestä tavusta. Näitä tietosanoja käytetään 1, 2 tai 4 sanan ryhmissä muodostettaessa käskyjä ja kiinteitä operandeja tai liukulukuoperandeja. Tavuja käytetään myös vaihtelevan pituisissa kentissä desimaalimuotoisena tai aakkosnumeerisena tietona.
Keskusyksikkö (CPU) 20 koostuu mikroprosessorista 30, valvon-talogiikasta 22 ja lukumuistista (ROS) 24. Mikroprosessori 30 on NMOS-tekniikalla toteutettu 16-bittinen mikropiiri, joka pystyy suorittamaan aritmeettisia, loogisia ja ohjausoperaati-oita. Mikroprosessorin toimintaa ohjataan 48-bittisillä ulkoisen laiteohjelmiston mikrokäskysanoilla, jotka keksinnön suoritusmuodossa on sijoitettu lukumuistiin ROS 24. Mikroprosessori 30 on toteutettu siten, että se pystyy suorittamaan CPU:n 20 16-bittisen ohjelmiston käskyvalikoiman.
i2 83458
Mikroprosessori 30 on toteutettu siten, että se ohjaa suoraan syöttö/tulostus- (I/O) ja muistioperaatioita, jotta integroitujen järjestelmien suunnittelu olisi helpompaa. Mikroprosessorin 30 toteutus sallii laajemmat ohjaustoiminnot ja laaja-alaisemman integraation, koska siinä käytetään 48-bittisiä ulkoisen laiteohjelmiston mikrokäskysanoja, joilla päästään todelliseen horisontaaliseen mikro-ohjelmointiin, joka sallii jopa 12 samanaikaista mikro-operaatiota yhtä 48-bittistä mikrokäskysanaa kohden. Mikroprosessorin 30 toteutus sallii myös 8 ulkoisen laitteistokeskeytyksen käyttämisen, jotka muodostavat vektorit laiteohjelmiston mikro-ohjelmarutiinei-hin. Mikroprosessorin 30 toteutus sallii myös 5 ulkoista ohjelmistokeskeytystä, jotka käsitellään laiteohjelmiston ohjauksen alaisuudessa. Lisäksi mikroprosessorista 30 saadaan 10 ulkoista valvontabittiä, jotka ovat peräisin valvonta-logiikasta 22. Valvontabittejä tunnustellaan ja ohjataan pitkälle kehitetyillä testihaarautumis- ja päähaarautumisoperaa-tioilla mikroprosessorin ohjausalueeseen 36 kuuluvilla logiikkapiireillä, joiden ansiosta kiinteän laiteohjelmiston puitteissa voidaan suorittaa varsin pitkälle kehitettyjä haarautumisoperaatioita.
Mikroprosessori 30 koostuu viidestä sisäisestä päälogiikka-alueesta, kuten kuvasta 1 näkyy. Nämä viisi päälogiikka-aluetta ovat tietojen käsittelyalue 32 johon sisältyy aritmeettislooginen yksikkö (ALU), muistinhallintayksikkö (MMU) 34, ohjausalue 36, prosessoriväylä 37 ja sisäinen väylä 38.
Prosessoriväylä 37 koostuu kahdestakymmenestä osoite/data-linjasta, kolmesta yleiskäyttöisestä ohjauslinjasta ja yhdestä linjasta, jolla valvotaan, että muistiosoitteita käytetään - toimintasääntöjen mukaisesti. Prosessoriväylä 37 on kytketty pääväylään 26, ja sitä käytetään osoitteiden syöttämiseen pää- - muistiin 10 ja syöttö/tulostusyksikköön 40 sekä kaksisuuntai- λ seen tiedonsiirtoon (lähetys ja vastaanotto) päämuistin 10 ja ; syöttö/tulostusyksikön 40 kanssa.
13 83458
Sisäinen väylä 38 on tärkein reitti, jonka kautta mikroprosessorin muut 4 aluetta kommunikoivat keskenään. Sisäinen väylä 38 on 20 bittiä leveä. Sisäisellä väylällä 38 on 12 tietolähdettä 48-bittisen mikrokäskysanan 11 mikro-operandin ohjauksen alaisuudessa. Aritmeettislooginen yksikkö ALU on se tietolähde, josta sisäinen väylä 38 ottaa oletusarvot, ellei mitään yhdestätoista määritellystä mikro-operandista käytetä.
Tietojen käsittelyalue 32 suorittaa aritmeettisia ja loogisia operaatioita tiedoille ja muodostaa muistiosoitteet. Tietojen käsittelyalue 32 koostuu indikaattorirekisteristä, joukosta erillisiä rekistereitä, rekisteritiedostosta, aritmeettisloogisesta yksiköstä (ALU) ja siirtomekanismista. Erästä näistä erillisistä rekistereistä käytetään 20-bittisenä muistiosoiterekisterinä CPU:ta varten. Tämä ohjelmalaskuri sisältää keskusyksikön 20 parhaillaan suorittaman ohjelmakäskyn 20-bittisen muistiosoitteen. Rekisteritiedosto sisältää seitsemän 16-bittistä ohjelmalla osoitettavaa dataosoiterekis-teriä, seitsemän ohjelmalla osoitettavaa perusrekisteriä ja joukon muita rekistereitä, jotka kaikki liittyvät CPUtn 20 parhaillaan suorittamaan ohjelmaan. Rekisteritiedosto sisältää myös joukon työrekistereitä, joita ROS-muistiin 24 tallennettu kiinteä laiteohjelmisto käyttää tietojen väliaikaiseen tallennukseen laiteohjelmistoon kuuluvien toimenpiteiden aikana. Siirtomekanismia käytetään mahdollistamaan erilaisia siirto-toimenpiteitä (eli avaa/sulje, aritmeettinen/looginen, vasem-malle/oikealle), joita suoritetaan en joko 16-bittisillä tai 32-bittisillä operandeilla.
Mikroprosessorin 30 ohjausalue 36 on jaettu loogisesti kolmeen alueeseen: tulosalpapiireihin ohjausta varten, testattaviin rekistereihin ja seuraavan osoitteen muodostuspiireihin. Ohjausaluetta 36 kuvataan yksityiskohtaisemmin myöhemmässä vaiheessa käsiteltäessä kuvan 2 piirejä.
14 83458
Mikroprosessorin 30 MMU-osan 34 pääasiallisia osia ovat: rekisteritiedosto, 12-bittinen osoite perusosan uudelleensijoittamista varten, 9-bittinen vertailija muistisegmentin koon tarkistamista varten, useita 2-bittisiä rengasvertaili-joita pääsyoikeuksien tutkimiseksi annettuun segmenttiin sekä muistivippoja potentiaalisten muistin väärinkäytösten indikoimista varten. MMU 34 muuntaa minkä hyvänsä CPU:n muodostaman muistiosoitejakson aikana ohjelmaloogisen osoitteen fyysiseksi osoitteeksi. Ohjelmalooginen osoite sisältää segmentin numeron, lohkon numeron ja offset-arvon (siirtymän), ja se saadaan sisäiseltä väylältä 38. Muunnoksen jälkeen fyysinen osoite syötetään prosessoriväyIälle 37, joka puolestaa suorittaa lähetyksen päämuistiin 10 pääväylän 26 kautta.
Kuten tähänastisesta kuvauksesta käy ilmi, suorittaa CPU 20 ohjelmiston ohjelmat, jonka käskyt noudetaan päämuistista 10, jonka jälkeen CPU 20 suorittaa aritmeettisia ja loogisia operaatioita tiedoille, jotka on myös tallennettu päämuistiin 10. CPU:n 20 suorittamalla ohjelmiston ohjelmalla on kyky manipuloida yleisrekistereitä ja perusosoiterekistereitä, joihin ohjelmistolla päästään käsiksi ja joihin ohjelmalaskuri osoittaa ohjelmiston senhetkisen käskyn. Nämä yleierekisterit, perusosoiterekisterit ja ohjelmalaskuri - joihin CPU:n 20 suorittamalla ohjelmistolla päästään käsiksi - sijaitsevat fyysisesti mikroprosessorin 30 tietojen käsittelyalueella 32.
.·. Kuvassa 1 esitetyn CPU:n 20 yksityiskohtaista toimintaa ohjataan mikroprosessorilla 30 ROS-muistiin 24 tallennettujen kiinteän laiteohjelmiston mikrokäskyjen ohjaamana. Kunkin ROS 24:n muistipaikan voidaan tulkita ohjaavan yhtä mikroprosessorin konejaksoa.
15 83458
Kun kukin ROS-muistin 24 muistipaikka luetaan, dekoodataan muistisisältö ohjausalueella 36, josta on seurauksena tietty operaatio mikroprosessorin 30 puitteissa. ROS-paikkoja ryhmit-telemällä saadaan muodostetuksi kiinteän laiteohjelmiston mikrokäskyjonoja, jotka voivat suorittaa CPU:hun 20 liittyvän tietyn operaation tai ohjelmakäskyn. Kun kutakin ohjelmakäskyä alustetaan, käytetään ohjelmakäskyn toimintakoodikentän tiettyjä bittejä määrittelemään ROS-muistiin 24 tallennetun kiinteän laiteohjelmiston mikrokäskyrutiinin alkuosoite. Testaamalla tiettyjä vippoja, jotka asetetaan tai nollataan mikroprosessorin 30 suorittaman ohjelmakäskyjen dekoodauksen avulla, sallitaan mikroprosessorin haarautua tarkemmin määriteltyyn kiinteän laiteohjelmiston mikrokäskyjonoon ROS-muistin 24 puitteissa, aina kun tämä on tarpeen.
Syöttö/tulostusyksikkö 40 on kytketty pääväylään 26. Syöttö/ tulostusohjäin 42 on se osa syöttö/tulostusyksiköstä 40, jonka ansiosta oheislaitteen 44 ja päämuistin 10 välille muodostuu täydellinen tiedonsiirtoreitti pääväylän 26 kautta. Syöttö/ tulostusohjäin 42 muodostaa reitin, jonka kautta oheislaite-komennot saadaan. Lisäksi I/O-ohjain 42 ohjaa oheislaite-• - komentojen seurauksena tapahtuvia tiedonsiirto-operaatioita.
Tutkikaamme nyt kuvaa 2, joka esittää yksityiskohtaisemmin kuvan 1 ohjausaluetta 36. Ohjausalue 36 sisältää muitakin logiikkapiirejä ja IC-piirejä, mutta keksinnön selostamisen vuoksi logiikkapiirit on rajoitettu kuvassa 2 esitettyyn muotoon. Kuvassa 2 on esitetty myös sisäinen väylä 38, valvonta-logiikka 22 ja lukumuisti (ROS) 24.
16 83458
Kuvassa 2 esitettyjen lohkojen oikean yläkulman vieressä oleva numero edustaa kunkin lohkon edustaman rekisterin sisältämien tietobittien lukumäärää.
Lukumuisti ROS 24 voi olla tyypiltään ROM-muisti (Read Only Memory » lukumuisti) tai RAM-muisti (Random Access Memory * luku/kirjoitusmuisti) tai mikä muu muistipiiri hyvänsä, johon kiinteän laiteohjelmiston mikrokäskyt voidaan tallentaa. ROS 24 sisältää kiinteän laiteohjelmiston mikrokäskyt (tai ohjaus-sanat), joita mikroprosessori 30 käyttää keskusyksikön (CPU) toiminnan ohjaamiseen ja tarkemmin ottaen CPU:n 20 ohjelma-käskyjen suorittamiseen. ROS-muistista 24 haetaan yksi ohjaus-sana kutakin mikroprosessorin konejaksoa kohden.
ROS 24 on kytketty ROS-datarekisteriin 65, joka ottaa vastaan ROS-muistista 24 haetun mikrokäskysanan. Jokainen mikrokäsky sisältää osoiteosan ja komento-osan. Mikrokäskysanan osoiteosa määrittelee ROS-muistista 24 luettavan seuraavan muistipaikan osoitteen, joka on mikroprosessorin 30 suorittama seuraava mikrokäsky. Mikrokäskyn komento-osa määrittelee operaatiot, jotka mikroprosessori suorittaa kyseisen mikrokäskyn suorittamisen aikana.
Mikrokäskysanan osoiteosa voidaan sisällyttää ennalta määriteltyyn bittimäärään. Esimerkiksi patentin suoritusmuodossa se on sisällytetty mikrokäskysanan bitteihin 0-12 (katso kuvaa 3). Mikrokäskyn komento-osa voi myös olla sisällytetty ennalta määriteltyyn bittimäärään. Esimerkiksi patentin suoritusmuodossa se on sisällytetty bitteihin 13 - 47 (katso kuvaa .... 3). Komento-osa voidaan edelleen jakaa useampiin kenttiin, jotka muodostavat mikrokäskyn alikomennot.
i7 83458
Ennen kuin tarkastellaan mikrokäskysanan rakennetta yksityiskohtaisemmin kuvan 3 avulla, tutkikaamme kuvan 2 muita osia. Valvontalogiikasta 22 saadaan tilatiedot CPU:n 20 osalta, ja ne ladataan testivippoihin 50 siten, että tila voidaan testata kiinteällä laiteohjelmistolla. Testivipat 50 pitävät sisällään valvontalogiikalta 22 saatavien kymmenen dynaamisen tilatieto-bitin lisäksi myös viisi bittiä, jotka toimivat CPU:n eri optioiden tilan näytteenottotarkoituksissa. CPU:n optiobitit tulisi käsittää luonteeltaan staattisina, ja niiden tehtävänä on osoittaa, onko tietty laitteisto-optio (esim. valinnainen oheislaite) asennettuna vaiko ei tietojenkäsittelyjärjestelmässä. Testivipat 50 sisältävät lisäksi 4 ohjausvippaa, jotka ovat asetettavissa tai nollattavissa tai joista on voitava siirtää bitti kiinteän laiteohjelmiston ohjauksen alaisuudessa. Nämä neljä ohjausvippaa ovat testattavissa kiinteällä laiteohjelmistolla. Testivippoihin 50 kuuluu myös 10 tilapäis-vippaa, jotka ladataan kunkin kiinteän laiteohjelmajakson aikana dynaamisilla tiedoilla. Tällaisia tietoja ovat esimerkiksi tieto siitä, onko aritmeettisloogisen yksikön ALU bitistä 16 saatu muistibitti (carry) tai ylivuotobitti (overflow), tai onko ALU-yksikön bitistä 20 saatu muistibitti tai ylivuotobitti, tai ovatko tietyt sisäisen väylän 38 bitit nollia, jne. Nämä 10 väliaikaisvippaa ovat myös testattavissa kiinteällä laiteohjelmistolla.
F-rekisteri 51 on 16-bittinen käskyrekisteri, joka ladataan sisäiseltä väylältä 38. Kaikki F-rekisterin bitit ovat testattavissa kiinteällä laiteohjelmistolla. F-rekisterin 51 neljä oikeanpuoleisinta bittiä muodostavat myös 5-bittisen F-laski-jan 52 neljä oikeanpuoleisinta bittiä. F-laskija 52 on 5-. . bittinen laskija, joka voidaan ladata sisäiseltä väylältä 38. F-laskija 52 voidaan inkrementoida (kasvattaa sen arvoa) tai dekrementoida (vähentää sen arvoa). F-laskijan 52 neljä oikeanpuoleisinta bittiä dekoodataan myös siten, että sisäi-‘selle väylälle 38 voidaan sijoittaa 16-bittinen maski (peite) kiinteän laiteohjelmiston ohjauksen alaisuudessa.
18 83458 Järjestelmässä on 5 mahdollista tilaa, jotka voivat aiheuttaa ohjelmistokeskeytyksen. Nämä tilat on tallennettu salpapiirei-hin ohjelmistokeskeytysrekisterissä 53. Ohjelmistokeskeytysten prioriteettiverkko 54 priorisoi (asettaa tärkeysjärjestykseen) nämä tilat ja muodostaa vektoroidun osoitteen syötettäväksi päähaarautumislogiikkaan 57.
Ohjausalueen 36 seuraavan osoitteen muodostusosa 55 sisältää tarvittavat logiikkapiirit ROS-muistin 24 toimintojen asettamiseksi peräkkäismuotoon. Testihaarautumislogiikkaa 56 käytetään testaamaan 64 testitilaa, joista voi olla seurauksena 2-suuntainen haarautumisosoite ROS-osoiterekisteriä 63 varten. Nämä 64 testitilaa ovat testattavissa kiinteän laite-ohjelmiston ohjauksen alaisuudessa, ja testihaarautumislogii-kasta 56 saadaan ulos yksi informaatiobitti osoitemultiplekse-riin 1 60. Testihaarautumislogiikkaan 56 syötettävät tiedot saadaan testivipoilta 50, F-rekisteristä 51 ja F-laskijasta 52.
Päähaarautumislogiikka 57 muodostaa 15 päätestihaarautumis-matriisia. Pääosa näihin matriiseihin tulevista tiedoista saadaan F-rekisteristä 51 (erilaisina yhdistelminä). Muita syötettäviä tietoja ovat testivippojen 50 valvonta- ja optio-bitit. Päähaarautumislogiikasta 57 saatavat lähtötiedot ovat 4-bittistä osoitetietoa, joka syötetään osoitemultiplekseriin :V i 60.
Rekisteristä 58 saadaan tietobitit, jotka vastaavat kymmentä mahdollista tilaa, jotka voivat aiheuttaa laitteistokeskeytyk-sen. Laitteistokeskeytysten prioriteettiverkko 59 priorisoi . . nämä 10 mahdollista tilaa ja tuottaa 4-bittisen ulostulotie-. don, jota osoitemultiplekseri 2 62 käyttää tuottaakseen - 12-bittisen vektoroidun laitteistokeskeytysosoitteen, kun : jokin näistä kymmenestä mahdollisesta tilasta esiintyy.
19 83458
Osoitemultiplekserin 1 60 ulostulosta saadaan 12-bittinen seuraava nimellisosoite, joka ladataan ROS-oeoiterekisteriin 63 ja jota käytetään seuraavan mikrokäskyn hakuun ROS-muistis-ta 24. Tämä 12-bittinen osoite on nimellinen siinä mielessä, että tätä seuraavaa nimellisosoitetta käytetään seuraavana osoitteena ainoastaan silloin, jos laitteistokeskeytystä ei esiinny. Laitteistokeskeytystä ei esiinny, ellei yhtään laitteistokeskeytystä ole odottamassa käsittelyä tai jos käsittelyä odottavat laitteistokeskeytykset on estetty asettamalla mikrokäskysanassa oleva keskeytysten estobitti (katso bittiä 34 kuvassa 3).
Osoitemultiplekseriä 2 62 käytetään valitsemaan multiplekserin 1 60 muodostaman 12-bittisen seuraavan nimellisosoitteen ja vektoreoidun laitteistokeskeytysosoitteen väliltä, joka on muodostettu yhdistämällä laitteistokeskeytysten prioriteetti-verkosta 59 saatavat 4 bittiä 8 etunollan kanssa. Osoitemultiplekserin 2 62 ulostulosta saadaan 12-bittinen seuraava osoite, joka ladataan ROS-osoiterekisteriin (RAR) 63. RAR:n 63 ulostulotietoja käytetään muodostamaan ROS-muistista 24 haettavan seuraavan mikrokäskyn osoite. RAR:n 63 ulostulotiedot syötetään myös ROS-osoitehistoriarekisteriin 66.
ROS-osoitehistoriarekisterin 66 toiminta on järjestetty siten, että jo varsin varhaisessa vaiheessa suoritettaessa ROS-data-rekisterin 65 sisältämää senhetkistä mikrokäskyä, samalla kun seuraavan mikrokäskyn osoitetta ollaan muodostamassa ja siirtämässä ROS-osoiterekisterin 63, pitää ROS-osoitehistoria-rekisteri sisällään senhetkisen mikrokäskyn osoitteen. Tätä senhetkisen mikrokäskyn osoitetta käytetään muodostettaessa . . seuraavan mikrokäskyn osoite, jos senhetkinen mikrokäsky pyytää käyttämään sitä. ROS-osoitehistoriarekisteristä 66 saata-. vaa senhetkistä osoitetta käytetään myös inkrementoijalla 64 suoritetun inkrementoinnin jälkeen paluuosoitteena mikroali- rutiineista ja laitteistokeskeytysten palvelurutiineista.
2o 83 458
Inkrementoija 64 inkrementoi ROS-osoitehistoriarekisterissä 66 olevan osoitteen ennalta määritellyllä luvulla (esim. luvulla 1 keksinnön suoritusmuodossa). Inkrementoija 64 on 12-bittinen inkrementoija, jota käytetään syöttämään paluuosoitepinoa 70 paluumultiplekserin 61 kautta PUSH-mikrokomennon aikana. Inkrementoijän 64 ulostuloa käytetään myös syöttämään seuraava ROS-osoitearvo RAR:ään 63 INC- ja INCK-mikrokomentoja varten osoitemultiplekserin 1 60 ja osoitemultiplekserin 2 62 kautta. INC-mikrokomento määrittelee sen, että seuraava ROS-osoite on oleva senhetkinen ROS-osoite inkrementoituna yhdellä, ja INCK-mikrokomento määrittelee sen, että seuraava ROS-osoitearvo on oleva senhetkinen osoitearvo plus 1 ja sen lisäksi sisäiselle väylälle 38 on syötettävä vakio, jonka määrittelevät mikrokäskyssä olevat muut käyttämättömät osoitekentän bitit.
Paluuosoitepino 70 on 4 x 12-bittinen LIFO- (Last In First Out = vähiten odottanut käsitellään ensin) muistipiiri, jota käytetään alirutiinien ja laitteistokeskeytysten paluuosoitteiden tallentamiseen. Paluuosoitepino 70 alustetaan heksadesimaali-arvoon 001 nollausaikana, ja sen alimmainen muistipaikka asetetaan heksadesimaaliarvoon 001 jokaisen POP- (paluu-) mikro-komennon aikana. PUSH-mikrokomento aiheuttaa sen, että paluu-osoitepinoon 70 tuodaan päällimmäiseksi inkrementoijän 64 ulostulosta saatava osoite. Laitteistokeskeytys aiheuttaa sen, että paluuosoitepinoon 70 tuodaan päällimmäiseksi osoitemultiplekserin 1 60 ulostulosta saatava osoite, joka on seuraava nimellisosoite. Inkrementoija 64 siirtää paluuosoitepinoon 70 inkrementoidun osoitehistorian ROS-osoitehistoriarekisteristä 66, kun yksi ROS-datarekisterin 65 seuraavan komento-osan ala-kenttä määrittelee PUSH-mikrokomennon. Tämä PUSH-mikrokomento mahdollistaa mikro-ohjelman sen mikrokäskyn paluuosoitteen tallentamisen, jota ollaan suorittamassa haarauduttaessa mikro-ohjelman alirutiiniin.
2i 83458
Inkrementoija 64 reagoi PUSH-mikrokomentoon syöttämällä inkre-mentoidun senhetkisen ROS-osoitteen ROS-osoitehistoriarekiste-ristä 66 paluuosoitepinoon 70, joka koostuu rekisterijoukosta 71 - 74. Paluuosoitepino 70 on toiminnallisesti pinomuisti, joka koostuu useammasta päällekkäin "pinotusta” työrekisteris-tä. Pinomuistin ainoa ulostulo on ylimmäisestä rekisteristä 71, joka on kytketty osoitemultiplekseriin 1 60. Ainoat sisäänmenot paluuosoitepinoon 70 ovat ylhäältä ja alhaalta. Kun osoite laitetaan pinomuistiin 70, se menee rekisteriin 71 sen jälkeen kun jo aiemmin pinossa olleita osoitteita on siirretty alaspäin yhden rekisteritason verran. Kun pinomuistista otetaan pois osoite, se viedään ylimmästä rekisteristä 71 osoitemultiplekseriin 1 60, ja jokainen paluuosoiterekisteriin 70 tallennettu osoite siirtyy yhden rekisteritason verran ylöspäin. Kun osoite näin poimitaan pinomuistista, vapautuu alimmainen rekisteri 74, jolloin se ladataan heksadesimaalimuotoi-sella osoitteella 001. Pinomuistin voidaan kuvitella olevan korttipakka, jossa pakan kortteihin päästään käsiksi vain lisäämällä pakan päälle kortti kerrallaan tai poistamalla pakan päältä kortti kerrallaan, ja jossa ennalta määritelty kortti (heksadesimaaliarvo 001) lisätään pakkaan alimmaiseksi joka kerta kun pakan päällimmäinen kortti otetaan pois.
Näin siis paluuosoitepinoon 70 tallennetaan inkrementoitu senhetkinen osoite, joka saadaan ROS-osoitehistoriarekisteristä 66, kun suorituksen alla oleva mikro-ohjelma haarautuu alirutiiniin. Tämän lisäksi paluuosoitepinoon 70 tallennetaan seuraava nimellisosoite, joka saadaan osoitemultiplekseristä 1 60 joka kerta kun laitteistokeskeytys esiintyy, mikä vektoroi kiinteän laiteohjelmiston suorittamisen ennalta määriteltyyn ROS-muistin 24 muistipaikkaan, joka määräytyy juuri ilmenneen laitteistokeskeytyksen mukaisesti.
22 83458 Nämä paluuosoitepinoon 70 tallennetut osoitteet osoittavat mikro-ohjelman seuraavaan vaiheeseen, joka olisi pitänyt suorittaa kaikissa muissa tapauksissa paitsi silloin, jos järjestelmässä esiintyy haarautuminen mikro-ohjelman alirutiiniin tai haarautuminen mikro-ohjelman keskeytyksen käsittelyrutiiniin .
Koska nämä osoitteet tallennetaan silloin, kun järjestelmässä esiintyy haarautuminen mikro-ohjelman alirutiiniin tai kun järjestelmässä esiintyy laitteistokeskeytys, palauttavat paluuosoitepinossa 70 olevat osoitteet mikro-ohjelman oikeaan suoritusvaiheeseen sen jälkeen kun alirutiinin tai laitteisto-keskeytysten käsittelyrutiinin viimeinen mikrokäsky on suoritettu. Tilannetta on helpompi kuvata kuvan 4 avulla, jota selostetaan myöhemmin.
Kuva 3 esittää keksinnön suoritusmuodon mikroprosessorin 30 kiinteän laiteohjelmiston mikrokäskysanan kenttiä. Tämä mikro-käskysana koostuu 48 bitistä (bitit 0 - 47). Bittejä 0-12 käytetään ROS-osoitekenttänä, bittejä 13 - 17 käytetään rekisteritiedoston rekisterien valintaan, bittejä 18 - 22 käytetään ohjaamaan aritmeettisloogisen yksikön ALU aritmeettisia ja loogisia toimintoja sekä tietojen syöttämistä ALU-yksikön portteihin, bittejä 23 - 25 käytetään väylän ohjaukseen, bittejä 26 - 30 käytetään rekistereiden muutoskenttänä, bittejä 31 - 33 käytetään muistinhallintayksikön MMU ohjaukseen, bittiä 34 käytetään estämään laitteistokeskeytysten esiintyminen ja bittejä 35 - 47 käytetään erikoisohjauskenttänä.
Erikoisohjauskenttää (RDDT-bitit 35 - 47) käytetään muuntamaan sekä täydentämään tiettyjä kiinteän laiteohjelmiston mikro-käskysanan muita kenttiä. Erikoisohjauskentästä saadaan jopa 3 samanaikaista mikrokomentoa tietyn mikrojakson aikana. Erikoisoh jauskenttä on jaettu neljään alakenttään (A - D), kuten kuvasta 3 ilmenee. Joidenkin alakenttien tulkinta riippuu toisten alakenttien sisällöstä.
Mikrokäskyjen 48 bittiä ladataan ROS-datarekisteriin 65 alettaessa suorittaa mikrokäskyä. Näitä 48 bittiä kutsutaan signaaleiksi RDDT00 - RDDT47.
23 8 3 4 5 8 ROS-osoitekenttä käsittää 13 bittiä (RDDTOO - RDDT12), ja sitä käytetään muodostamaan kiinteän laiteohjelmiston tietyn mikro-ohjelmavaiheen seuraavan ohjelma-askelen osoite. Tapa, jolla tämä seuraava osoite muodostetaan, määräytyy ROS-osoitekentän viiden ensimmäisen bitin mukaan, kuten alla olevasta taulukosta 1 näkyy.
Taulukko 1 RDDT-bitit 01234 Operaatio 1 X X X X Hyppy 0 1 X X X Testihaarautuminen 0 0 1 X X Päähaarautuminen 0 0 0 1 X Inkrementointi vakion kanssa 00001 Inkrementointi ilman vakiota 00000 Paluu (POP-mikrokomento) PUSH-mikrokomentoa voidaan käyttää yhdessä minkä hyvänsä taulukossa 1 mainitun viiden ensimmäisen operaation kanssa. Kun PUSH-mikrokomentoa käytetään yhdessä minkä hyvänsä hypyn tai haarautumisen aiheuttavan mikrokomennon kanssa, voi mikro-ohjelmoija tallentaa paluuosoitepinoon 70 paluuosoit-teen, johon mikro-ohjelmoija haluaa palata sen jälkeen kun alirutiini, johon haarauduttiin, on saatu suoritetuksi loppuun. Jotta mikro-ohjelmaa kirjoittavan henkilön olisi helpompaa tallentaa tämä paluuosoite, siirtää PUSH-mikrokomento inkrementoijän 64 yhdellä inkrementoiman ROS-historiaosoite-rekisterin 66 sisällön päällimmäiseksi paluuosoitepinoon 70. Tämän jälkeen mikro-ohjelmoija käyttää paluu-mikrokomentoa (POP) viimeisenä kutsutun alirutiinin kiinteän laiteohjelmiston ohjelma-askelena palatakseen ensimmäiseen osoitepaikkaan, joka seuraa sitä mikrokäskyä, joka kutsui mikro-ohjelman ali-·:·· rutiinia.
24 83458
Taulukossa 1 kuvattujen kuuden operaation määräämään seuraavan osoitteen muodostamiseen on yksi poikkeus: laitteistokeskey-tys. Kun järjestelmässä esiintyy läitteistokeskeytys, käytetään seuraavaa ROS-osoitetta laitteistovektorina, ja senhetkisen ohjelmasanan ROS-osoitekentän muodostama ROS-osoite sijoitetaan päällimmäiseksi paluuosoitepinoon 70 osoitemulti-plekserin 1 60 ulostulosta, joka valitaan paluumultiplekserin 61 ulostulotiedoksi ja laitetaan paluuosoitepinoon 70. Jos POSH-mikrokomentoa (joka määritellään erikoisohjauskentän C biteillä RDDT42 - RDDT44 yhdessä alakenttien A ja B erikois-koodauksen kanssa) käytetään minkä hyvänsä taulukossa 1 esitetyn viiden ensimmäisen operaation yhteydessä, on mikro-ohjelman tekijän myös estettävä laitteistokeskeytykset määrittelemällä RDDT-bitin 34 binääriarvoksi YKSI, ettei laitteistokes-keytyksen esiintymisen seurauksena suoritettaisi sekaannuksia aiheuttavaa osoitteen pinomuistiinsijoitusoperaatiota. Koska läitteistokeskeytys voi esiintyä (yleensä ulkoisen asynkronisen tapahtuman esiintyessä) koska hyvänsä ennen kuin suoritettavaksi annettu kiinteän laiteohjelmiston mikro-ohjelmajakso on saatu loppuun suoritetuksi, täytyy laitteistokeskeytyksen esiintymisen sallimiseksi kiinnittää erikseen huomiota.
Taulukossa 1 määriteltyjen kuuden operaation haarautumisomi-naisuuksia kutsutaan sivuhaarautumiseksi ja pankkihaarautumi-seksi (koskee testihaarautumista ja päähaarautumista). Sivuksi määritellään 64 peräkkäistä muistipaikkaa ROS-muistin 24 puitteissa, ja pankiksi määritellään 1024 muistipaikkaa ROS-muis-tin 24 puitteissa (16 sivua). Testihaarautumisoperaation haarautumisrajät on rajattu siten, että haarautuminen on mahdollinen mihin hyvänsä muistipaikkaan sivun puitteissa. Päähaarautumisoperaation haarautumisrajät on puolestaan rajattu siten, että haarautuminen voi tapahtua mihin hyvänsä muistipaikkaan pankin puitteissa. Taulukon 1 jäljellä olevat neljä operaatiota voivat suorittaa haarautumisen tai inkremen-toinnin pankista toiseen.
25 8 3 4 5 8
Taulukossa 1 ensimmäisenä mainittu hyppyoperaatio on ainoa seuraavan osoitteen muodostamistapa, joka sallii haarautumisen mihin hyvänsä ROS 24:n 24.4096 muistipaikasta. Tämä saadaan aikaan ROS-osoitekentän puitteissa olevalla kiinteän laite-ohjelmiston seuraavan suoritettavan mikrokäskyn 12-bittisellä suoralla osoitteella.
Kun RDDT-bitin 0 binääriarvo on YKSI, viedään ROS-datarekiste-rin 65 sisältämän senhetkisen ROS-datasanan (kiinteän laite-ohjelmiston mikrokäskyn) RDDT-bitit 1-12 suoraan ROS-osoite-rekisteriin 63 osoitemultiplekserin 1 60 ja osoitemultiplekse-rin 2 62 kautta seuraavana kiinteän laiteohjelmiston mikro-ohjelman osoitteena tietenkin koko ajan olettaen, ettei sillä välin esiinny laitteistokeskeytyksiä. Jos laitteistokeskeytys esiintyisi, sijoitettaisiin tämä seuraava nimellisosoite päällimmäiseksi paluuosoitepinoon 70, ja kahdeksan vasemmanpuoleisinta binääristä NOLLA-bittiä ja laitteistokeskeytysten prio-riteettiverkon 59 neljä ulostulobittiä yhdistämällä muodostettu laitteistokeskeytyksen vektoriosoite ladattaisiin osoitemultiplekserin 2 62 ulostulosta ROS-osoiterekisteriin 63 seu-raavaksi ROS-osoitteeksi.
PUSH-mikrokomentoa (joka määritellään erikoisohjauskentällä C) voidaan käyttää yhdessä taulukossa 1 mainitun ensimmäisen hyppyoperaation kanssa. Kun PUSH-mikrokomentoa käytetään yhdessä kyseisen hyppyoperaation kanssa, täytyy laitteisto-keskeytysten estobitin RDDT34 binääriarvoksi asettaa YKSI, jotta laitteistokeskeytykset estyisivät. ROS-osoitehistoria-rekisterin 66 sisältämä senhetkinen ROS-osoite inkrementoidaan PUSH-mikrokomennon aikana yhdellä ja sijoitetaan päällimmäiseksi paluuosoitepinoon 70 paluumultiplekserin 61 toimesta ennen kuin RDDT-bittien 1-12 määrittelemä seuraava osoite ladataan ROS-osoiterekisteriin 63.
26 83458
Taulukossa 1 mainittu testihaarautumisoperaatio on kaksisuuntainen haarautuminen, jossa käytetään yhden testitilan tulosta 64 testitilasta. Nämä 64 testitilaa' on määritelty osana ROS-osoitekenttää biteissä 3-8. Kaikkien testihaarautumisten toiminta on rajoitettu siten, että haarautuminen on mahdollinen ainoastaan senhetkisen sivun puitteissa. Tämä merkitsee sitä, että testin tuloksena muodostettava seuraava ROS-osoite on aina toinen kahdesta muistipaikasta (riippuen testin tuloksesta: eli onko tulos tosi vaiko epätosi), jotka sijaitsevat 8 muistipaikan päässä toisistaan mutta sivun (64 muistipaikan) puitteissa, jota ROS-osoiterekisteri 63 sillä hetkellä osoittaa. Toisin sanoen testihaarautumisen tuloksesta riippuen haetaan seuraava mikrokäsky muistipaikasta, joka määräytyy ottamalla 6 vasemmanpuoleisinta bittiä senhetkisestä ROS-osoitteesta (ROS-osoitehistoriarekisteristä 66) ja yhdistämällä ne kuuteen oikeanpuoleisimpaan bittiin, jotka saadaan ROS-osoitekentän biteistä 2, 9, 10, 11 ja 12, joita käytetään vastaavasti seuraavan nimellisen ROS-osoitteen bittipaikkoja 7, 8, 10, 11 ja 12 varten samalla kun testin tulosta (1 tai 0 vastaten testin tulosta tosi tai epätosi) käytetään seuraavan nimellisen ROS-osoitteen bittipaikkana 9.
Tämä edellä kuvatuista biteistä koostuva nimellinen seuraava ROS-osoite, joka on muodostettu kiinteän laiteohjelmiston senhetkisen mikrokäskysanan biteissä 0-13 määritellyn testihaarautumisen tuloksen perusteella, on seuraava ROS-osoite edellyttäen, ettei sillä välin esiinny laitteistokeskeytyk-siä. Jos laitteistokeskeytys esiintyy, sijoitetaan tämä osoite päällimmäiseksi paluuosoitepinoon 70, ja muodostettu lait-teistokeskeytyksen vektoriosoite korvaa sen seuraavan ROS-osoitteen sisältönä ROS-osoiterekisterissä 63.
27 83458 PUSH-mikrokomentoa voidaan käyttää myös yhdessä testihaarautu-misoperaatioiden kanssa. Kuten edellä selostettiin, täytyy laitteistokeskeytykset estää (asettamalla RDDT-bitin 34 binääriarvoksi YKSI), jos PUSH-mikrokomentoa käytetään. Jos PUSH-mikrokomentoa käytetään testihaarautumisoperaation yhteydessä, sijoitetaan senhetkinen ROS-osoite - joka on testi-haarautumismikrokäskyn osoite (joka saadaan ROS-oeoitehisto-riarekistristä 66) inkrementoituna yhdellä - päällimmäiseksi paluuosoitepinoon 70, ja mikro-ohjelma haarautuu seuraavaan nimellisosoitteeseen, joka määräytyy testihaarautumislogiikan 56 ulostulotiedoista.
Päähaarautumisoperaatio on 16-suuntainen haarautuminen, jossa käytetään osana ROS-osoitekenttää biteissä 5-8 määriteltyjen 15 testiryhmän tuloksia. Kaikkien päähaarautumisten toiminta on rajoitettu siten, että haarautuminen on mahdollinen vain senhetkisen pankin (1024 muistipaikan) puitteissa. Tämä tarkoittaa sitä, että päähaarautumistestin tuloksen perusteella muodostettu seuraava nimellinen ROS-osoite on aina jokin 16 muistipaikasta (riippuen päähaarautumismatriisin ulostulotiedoista), jotka ovat 16 muistipaikan päässä toisistaan mutta pankin (1024 muistipaikan) puitteissa, jotka ROS-osoitehisto-riarekisteri 66 sillä hetkellä osoittaa. Seuraava nimellinen ROS-osoite muodostetaan ottamalla bitit 0 ja 1 senhetkisestä ROS-osoitteesta ja käyttämällä niitä seuraavan nimellisen ROS-osoitteen bitteinä 0 ja 1 sekä ottamalla bitit 3, 4, 9, 10, 11 ja 12 ROS-osoitekentästä ja käyttämällä niitä vastaavasti seuraavan nimellisen ROS-osoitteen bitteinä 2, 3, 8, 9, 10 ja 11. Lisäksi seuraavan nimellisen ROS-osoitteen bitit 4-7 määräytyvät 4-bittisen päähaarautumislogiikan 57 ulostulon mukaan.
28 83458
Edellä kuvattu seuraava nimellinen ROS-osoite, joka on muodostettu ROS-datarekisterissä 65 olevan kiinteän laiteohjelmiston mikrokäskyeanan biteissä 0-12 määritellyn päähaarautumis-operaation tuloksen perusteella, on seuraava ROS-osoite edellyttäen, ettei sillä välin ole esiintynyt laitteistokeskeytyk-siä. Jos laitteistokeskeytys esiintyy, tämä vasta muodostettu seuraava nimellinen ROS-osoite sijoitetaan päällimmäiseksi paluuosoitepinoon 70 ja muodostettu laitteistokeskeytyksen vektoriosoite korvaa sen seuraavana ROS-osoitteena RAR:ssä 63.
PUSH-mikrokomentoa voidaan käyttää yhdessä päähaarautumis-operaatioiden kanssa, kuten testihaarautumisoperaatioidenkin tapauksessa. Myös tässä, kuten edellä selostettiin, täytyy laitteistokeskeytykset estää asettamalla bitin RDDT34 binääri-arvoksi YKSI. Jos PUSH-mikrokomentoa käytetään päähaarautumis-operaation yhteydessä, sijoitetaan senhetkinen ROS-osoite -joka on itse päähaarautumismikrokäskyn osoite (joka saadaan ROS-osoitehistoriarekisteristä 66) plus 1 - päällimmäiseksi paluuosoitepinoon 70, ja mikro-ohjelma haarautuu seuraavaan nimellisosoitteeseen, joka määräytyy päähaarautumislogiikan 57 ulostulotietojen perusteella.
Operaatio "inkrementointi vakion kanssa" (INCK-mikrokomento), joka määritellään senhetkisen mikrokäekyn ROS-osoitekentässä (13-bittisen kentän biteissä 0-3), aiheuttaa sen, että ROS-osoitehistoriarekisterin 66 senhetkinen arvo inkrementoituna yhdellä sijoitetaan ROS-osoiterekisteriin seuraavaa mikro-jaksoa varten. Tämän seuraavan osoitteen muodostamisen lisäksi käytetään jäljellä olevia 9 bittiä (RDDT-bitit 4-12) muodostamaan 8-bittinen vakio + täyte 20-bittiä leveälle sisäiselle väylälle 38 senhetkisen mikrojakson aikana.
29 8 3 4 5 8 ROS-osoitehistoriarekisterin 66 sisältämä senhetkinen ROS-osoite inkrementoidaan inkrementoijalla 64, ja tulos palautetaan ROS-osoiterekisteriin 63 osoitemultiplekserin 1 60 ja osoitemultiplekserin 2 62 kautta, kun mikrokomento "inkremen-tointi vakion kanssa" määritellään mikrokäskyn ROS-osoite-kentassä. Jos järjestelmässä esiintyy laitteistokeskeytys, sijoitetaan tämä äskettäin muodostettu seuraava osoite päällimmäiseksi paluuosoitepinoon 70 paluumultiplekserin 61 kautta, ja laitteistokeskeytyksen vektoriosoite sijoitetaan ROS-osoiterekisteriin 63 käytettäväksi seuraavana ROS-osoitteena.
PUSH-alikomentoa voidaan käyttää yhdessä inkrementointioperaa-tioiden kanssa. Kuten kaikkien PUSH-alikomentojen kanssa täytyy menetellä, on laitteistokeskeytykset estettävä asettamalla RDDT-bitin 34 binääriarvoksi YKSI, kun PUSH-alikomentoa käytetään inkrementointioperaatioiden yhteydessä. Jos PUSH-mikro-komentoa käytetään inkrementointioperaatioiden yhteydessä, sijoitetaan senhetkinen ROS-osoite inkrementoituna yhdellä päällimmäiseksi paluuosoitepinoon 70 sen lisäksi että siitä tulee seuraava ROS-osoite.
Mikrokäskyn ROS-osoitekentässä määriteltävä inkrementointi-operaation alikomento (INC) käynnistää samanlaisen operaation kuin edellä kuvattiin operaatiota "inkrementointi vakion kanssa" (mikrokomento INCK) sillä erotuksella, ettei sisäiselle väylälle 38 muodosteta mitään vakiota.
Paluuoperaatio (mikrokomento POP) aiheuttaa sen, että paluu-osoitepinon 70 ylimmäisen rekisterin sisältö ladataan ROS-osoiterekisteriin 63 osoitemultiplekserin 1 62 ja osoitemultiplekserin 2 62 kautta käytettäväksi ROS-osoitteena seuraavaa mikrojaksoa varten.
30 83458
Lisäksi paluuosoitepinon alimpaan rekisteriin 74 ladataan heksadesimaalimuotoinen ROS-osoite 001 joka kerta kun paluu-osoitepinosta 70 poimitaan päällimmäinen osoite. Tätä paluuosoitepinon 70 alimmaisen rekisterin lataamista ROS-osoit-teella 001 käytetään ilmaisemaan tapaus, jossa pinosta yritetään poimia enemmän osoitteita kuin mitä siinä on. Tällainen pinon "liiallinen tyhjentäminen" aiheuttaa sen, että mikroprosessori vektoroidaan mikro-ohjelman virhejaksoon, joka alkaa ROS-paikasta 1. Koska paluuoperaatio (mikrokomento POP) määräytyy täysin ROS-osoitekentän biteillä 0-4, ei ROS-osoitekentän bittejä 5-12 käytetä osana paluuoperaatiota.
Kun ROS-osoitekentän biteissä 0-4 määritellään paluuoperaatio, tuodaan ROS-osoiterekisteriin 63 paluuosoitepinon 70 ylimmän rekisterin sisältö edellyttäen, ettei sillä välin esiinny laitteistokeskeytyksiä. Jos järjestelmässä esiintyy laitteistokeskeytys, ohitetaan tai peruutetaan paluuoperaatio (tai pinomuistin päällimmäisen osoitteen poimintaoperaatioj tehokkaasti. Tämä pinomuistin päällimmäisen osoitteen poimintaoperaation peruuttaminen laitteistokeskeytyksen esiintyessä paluuoperaation aikana vastaa loogisesti täysin paluu-:-· osoitteen poimimista paluuosoitepinon 70 päältä ja välittömästi - saman mikrojakson puitteissa - suoritettavaa paluuosoit-teen laittamista takaisin päällimmäiseksi paluuosoitepinoon 70. Juuri tämä paluuosoitepinoeta 70 suoritettavan osoitteen poimimisen peruuttaminen tai ohittaminen laitteistokeskeytyk-sen esiintyessä paluuoperaation aikana, on se, joka sallii paluuosoitepinon käyttämisen siten, että se sisältää paluu-osoitteet sekä mikro-ohjelman alirutiinikutsuille että lait-teistokeskeytyksille.
31 83458
Vaikka paluuosoitepinolla 70 onkin se ominaisuus, että lait-teistokeskeytyksen palvelurutiinin paluuosoitteen tallentamiseen liittyvä osoitteen sijoittaminen päällimmäiseksi pino-muistiin peruuttaakin pinosta tapahtuvan osoitteen poiminta-operaation palattaessa mikro-ohjelman alirutiinista tai kun laitteistokeskeytyksen palvelurutiini on saatu suoritetuksi loppuun, ei paluuosoitepinolla 70 tarvitse olla sitä ominaisuutta, että pinoa voitaisiin samanaikaisesti siirrellä eri suuntiin tai pinosta voitaisiin ensin poimia osoite ja sitten laittaa siihen osoite yhden mikrojakson aikana. Menetelmää, jolla tämä samanaikainen eri suuntiin tapahtuva siirto estetään (eli menetelmää, jolla osoitteen laittaminen pinoon peruuttaa osoitteen poimimisen pinosta) selitetään yksityiskohtaisemmin myöhemmin kuvan 5 yhteydessä. Kuten myöhemmin havaitaan kuvan 4 selityksen yhteydessä, tämä laitteistokeskeytyksen esiintymiseen liittyvään osoitteen pinoon laittamis-operaation esiintyessä tapahtuvaan paluuoperaatioon liittyvä osoitteen pinosta poimintaoperaation peruuttaminen ei vaikuta haitallisesti ohjauksen kulkuun mikro-ohjelman puitteissa, koska laitteistokeskeytyksen palvelurutiini suorittaa paluu-operaation vasta viimeisenä vaiheena sen mikro-ohjelmoidussa keskeytyksen palvelurutiinissa.
PUSH-mikrokomentoa, joka koodataan erikoisohjauskentässä (RDDT-bitit 35 - 47) ei saa käyttää samassa mikrokäskyssä paluuoperaation kanssa joka koodataan ROS-osoitekentässä (RDDT-bitit 0 - 12), koska seuraukset keksinnön suoritusmuodon mikroprosessorissa 30 ovat määrittelemättömiä.
Kuten edellä on selostettu, aiheuttaa laitteistokeskeytys haarautumisen kiinteään ROS-osoitteeseen. Tämän ROS-osoitteen määrää prioriteettiverkko (prinet 59), jonka sisäänsyöttö-tietoina käytetään rekisteristä 58 saatavia erilaisia virhe-signaaleja ja keskeytyspyyntöjä.
32 83458
Laitteistokeskeytykset aiheuttavat sen, että seuraava kiinteällä laiteohjelmistolla muodostettu ROS-osoite sijoitetaan päällimmäiseksi paluuosoitepinoon 70. Jos seuraava ROS-osoite olisi pitänyt muodostaa paluuosoitepinosta paluu-mikrokomen-nolla, estetään osoitteen poimiminen paluuosoitepinosta 70. Laitteistokeskeytykset täytyy estää aina kun PUSH-mikro-operaatio suoritetaan, jotta estettäisiin vaatimus laittaa osoite kahdesti pinoon, joista ensimmäinen osoitteen pinoon laittaminen liittyy itse PUSH-mikrokomentoon ja toinen osoitteen pinoon laittaminen liittyy paluuosoitteen tallentamiseen laitteistokeskeytystä varten.
Kun laitteistokeskeytysten estokentän (RDDT-bitin 34) binääri-arvo on YKSI, estyvät laitteistokeskeytykset, ja ei-virhetilan laitteistokeskeytykset (kuten muistin virkistykseen ja data-pyyntöihin liittyvät laitteistokeskeytykset) estyvät (eli niitä estetään tunkeutumasta senhetkisen mikrokäskyn suorittamisen ja seuraavan mikrokäskyn suorittamisen väliin). Lait-teistovirhetilojen syötöt prioriteettiverkkoon 59 (kuten järjestelmän nollaus, yritys päästä käsiksi ei-olemassa olevaan resurssiin, luvaton käyttöyritys, tai muistin pariteettivirhe) eivät ole RDDT-bitin 34 ohjauksen alaisuudessa, ja ne voivat tunkeutua minkä hyvänsä kahden mikrojakson väliin. Se seikka, että edellä mainittuihin virhetilanteisiin liittyviä lait-teistokeskeytyksiä ei voida estää ja jotka näin ollen voivat esiintyä PUSH-mikrokomennon sisältämän mikrokäskyn aikana, ei aiheuta ongelmia, koska näihin ei-estettävissä oleviin virhe-tiloihin liittyvät laitteistokeskeytysten palvelurutiinit eivät suorita lopussa paluuoperaatiota, eikä niiden toiminta näin ollen riipu paluuosoitepinon 70 sisällöstä. Kun RDDT-bitin 34 binääriarvo on NOLLA, ovat kaikki laitteistokeskeytykset sallittuja.
33 83458
Kuva 4 esittää kiinteän laiteohjelmiston mikrokäskyjonoa, joka muodostaa mikro-ohjelmassa olevan päärutiinin, joka on merkitty numerolla 100. Päärutiini 100 voi itse olla päämikro-ohjel-man rutiini tai mikroaliohjelman rutiini, ja se on mikä hyvänsä yleisistä mikrokäskyistä muodostettu jono, jonka tarkoituksena on suorittaa jokin toiminto. On osoittautunut tarpeelliseksi pystyä suorittamaan haarautumisia mihin hyvänsä yleiseen mikrokäskyistä muodostettuun jonoon. Kuvassa 4 on esitetty esimerkkitarkoituksissa kaksi mikroalirutiinia, joista toinen (ensimmäisen tason) alirutiini on merkitty numerolla 102 ja toinen (toisen tason) alirutiini on merkitty numerolla 104. Missä hyvänsä rutiinien (ohjelmien) tai alirutiinien kohdissa voi esiintyä haarautumisia näihin alirutiineihin. Lisäksi on esiintynyt tarve pystyä suorittamaan laitteistokeskeytysten palvelurutiineja minkä hyvänsä laitteistokeskeytysten käsittelemiseksi, joita esiintyy mikrorutiinin 100 suorittamisen aikana tai minkä hyvänsä siihen liittyvän mikroalirutiinin suorittamisen aikana. Kuvassa 4 on esitetty esimerkkitarkoituksissa kaksi laitteistokeskeytysten palvelurutiinia, joista ensimmäinen laitteistokeskeytyksen palvelurutiini on merkitty numerolla 106 ja toinen laitteistokeskeytyksen palvelurutiini on merkitty numerolla 108. Kuvan 4 mikro-ohjelmassa olevat suorakaiteen muotoiset laatikot esittävät mikrokäskyjä. Mikro-käskyn sisältö on esitetty ROS-muistin 24 ulostulotietoina siinä muodossa, kuin ne ovat ROS-datarekisterissä 65.
Mikrokäsky, joka määrittelee haarautumisen ensimmäisen tason alirutiiniin, löytyy kuvassa 4 mikrokäskystä P. Tämä mikro-käsky koostuu ROS-osoitekentästä, jossa on ehdollinen tai ehdoton haarautuminen mikrokäskyyn Q, sekä erikoisohjaus-kentästä, joka määrittelee PUSH-mikrokomennon. Lisäksi siinä .. on laitteistokesketysbitti, joka on asetettu estämään lait-teistokeskeytykset. Tämä kiinteän laiteohjelmiston mikrokäsky, joka aiheuttaa haarautumisen mikrokäskyyn Q, sijoittaa paluu-osoitteen paluuosoitepinoon ja estää laitteistokeskeytykset, on esitetty kuvassa 4 laatikolla P.
34 83458
Kun mikro-ohjelmaa järjestyksessä suoritettaessa tullaan tämän mikrokäskyn kohdalle, tapahtuu seuraavat operaatiot:
Mikrokäskyn ROS-osoitekenttä ilmoittaa, että on suoritettava haarautumisoperaatio. Erikoisohjauskenttä ilmoittaa, että ROS-osoitehistoriarekisterissä 66 oleva senhetkinen ROS-osoite on inkrementoitava inkrementoijalla 64 ja laitettava päällimmäiseksi paluuosoitepinoon 70 paluumultiplekserin 61 kautta. Tämä saadaan aikaan inkrementoijalla 64 ottamalla ROS-osoite-historiarekisterin 66 sisältö, joka sillä hetkellä sisältää P-käskyn ROS-osoitteen, ja inkrementoimalla se yhdellä siten, että inkrementoijän 64 ulostulosta saadaan käskyyn P + 1 liittyvä osoite ja tallentamalla se paluumultiplekserin 61 kautta paluuosoitepinon 70 ylimmäiseen rekisteriin, joka on rekisteri 71. Näin siis rekisteri 71 sisältää tuolla hetkellä osoitteen P + 1. Myös tässä mikrokäskyssä, joka sijaitsee ROS-muistin 24 osoitteessa P, on laitteistokeskeytysbitti asetettu estämään laitteistokeskeytysten esiintyminen paikassa P olevan mikro-käskyn suorittamisen ja ensimmäisen tason alirutiinin ensimmäisen käskyn välillä, joka on paikassa Q oleva mikrokäsky.
Haarautumisen esiintymisen jälkeen mikroalirutiinin suorittaminen tapahtuu normaalissa järjestyksessä kohdassa Q esitetyllä tavalla. Jos ensimmäisen tason alirutiini 102 tarvitsee toista alirutiinia kuten laatikon R kohdalla on näytetty, suoritetaan toinen haarautuminen mikroalirutiiniin. Tällöin samoja käskyn P kohdalla esiintyneitä toimenpidevaiheita sovelletaan myös käskyyn R ensimmäisen tason alirutiinin 102 haarautuessa toisen tason alirutiiniin 104. Näin siis käskyn R kohdalla suoritetaan ehdollinen tai ehdoton haarautuminen toisen tason alirutiiniin 104, joka alkaa ROS-muistin 24 osoitteesta S. Kun käsky R suoritetaan, inkrementoidaan ROS-osoitehistoriarekisterissä 66 oleva senhetkinen ROS-osoite yhdellä inkrementoijän 64 toimesta ja siirretään paluuosoitepinoon 70 säilytettäväksi ylimmässä rekisterissä 71, ja rekisterin 71 aikaisempi sisältö siirretään alaspäin yhden tason verran eli rekisteriin 72.
35 83458 Täten mikro-ohjelman suorituksen tuolla hetkellä rekisteri 71
sisältää osoitteen R + 1 ja rekisteri 72 sisältää osoitteen P
+ 1. Osoite R + 1 on tällöin se ensimmäisen tason alirutiiniin ♦ kuuluva osoite, johon toisen tason alirutiinin on palattava sen jälkeen kun toisen tason alirutiini on suoritettu loppuun. Vastaavasti osoite P + 1 on se päärutiiniin kuuluva osoite, johon ensimmäisen tason alirutiinin on palattava sen jälkeen kun ensimmäisen tason alirutiini on suoritettu loppuun. Paikassa R olevan mikrokäskyn ROS-osoitekentällä on sellainen arvo, joka aiheuttaa mikro-ohjelman haarautumisen laatikkoon (mikrokäskyyn) S.
Kuten kuvasta 4 näkyy, ilmestyy ensimmäinen laitteistokeskey-tys odottamaan käsittelyä laatikkoon R liittyvän mikrokäskyn suorittamisen aikana. Tämä ensimmäinen keskeytys on tyypiltään sellainen, että se voidaan estää asettamalla laitteistokeskey-tysten estobitin (RDDT 34) binääriarvoksi YKSI, jolloin lait-teistokeskeytyksen ei sallita muuttaa kiinteän laiteohjelmis-ton normaalia kulkua, jossa on seuraavana mikrokäsky R. Näin ollen mikrokäskyn R suorittamisen loputtua suoritetaan haarautuminen paikkaan S loppuun asti ja laatikkoon S liittyvä mikrokäsky suoritetaan. Jos ensimmäinen keskeytys olisi ollut tyypiltään virhekeskeytys, olisi laitteistokeskeytys esiintynyt sen jälkeen kun mikrokäsky R olisi suoritettu loppuun, ja mikro-ohjelman suorituksen kulku olisi vektoroitu (ohjattu) paikkaan, joka liittyy laitteistovirhekeskeytyksiin.
ROS-muistista 24 haettavan seuraavan mikrokäskyn ROS-osoite lasketaan mikrokäskyn S suorittamisen aikana, kuten kuvassa 4 olevasta tarkastelusta ilmenee. Ellei laitteistokeskeytystä . .. esiintyisi - joka ohjaa kiinteän laiteohjelmiston suorittamisen ensimmäiseen palvelurutiiniin 106 alkaen paikasta V -olisi normaali seuraava osoite S + 1.
36 83458 Tämä osoite määriteltäisiin joko käyttäen mikrokäskyn S ROS-osoitekenttää siinä muodossa kuin se on ROS-datarekisterissä 65, joka voisi indikoida hyppy- tai haarautumisoperaation, jolloin ROS-datarekisterissä 65 olevan ROS-osoitekentän bitit multipleksoitaisiin osoitemultiplekserin 1 60 kautta testi-haarautumislogiikasta 56 tai päähaarautumislogiikasta 57 saatavien lisäbittien kanssa tai ilman niitä. Vaihtoehtoisesti, jos mikrokäskyn S ROS-osoitekentässä indikoidaan inkre-mentointioperaatio, inkrementoidaan ROS-osoitehistoriarekis-terin 66 sisältö inkrementoijän 64 avulla, ja 12-bittinen ulostulotieto multipleksoidaan multiplekserin 1 60 kautta. Osoitemultiplekserin 1 60 ulostulotietona tulee joka tapauksessa olemaan osoite S + 1.
Koska mikrokäsky S ei estä keskeytyksiä ja käsittelyä on odottamassa laitteistokeskeytys, multipleksoidaan osoitemultiplekserin 1 60 ulostulotiedot paluumultiplekserin 61 kautta ja sijoitetaan päällimmäiseksi paluuosoitepinon 70 rekisteriin 71, ja osoite P + 1 siirretään alaspäin rekisteristä 72 rekisteriin 73 ja osoite R + 1 siirretään alaspäin rekisteristä 71 rekisteriin 72. Samanaikaisesti osoitemultiplekseri 2 62 suorittaa prioriteettiverkon 59 ulostulotietojen multipleksoinnin siten, että ensimmäiseen laitteistokeskeytykseen liittyvä osoite syötetään ROS-osoiterkisteriin 63 siten, että ROS-osoiterekisteri 63 saa sisällökseen laatikkoon V liittyvän osoitteen ja että mikrokäsky haetaan ROS-muistista 64. Mikro-käskyn S loppuunsuorittamiseen mennessä mikrokäsky V on tullut haetuksi ROS-muistista 24, ja se on käytettävissä dekoodaamis-ta ja suorittamista vertan ROS-datarekisterissä 65.
37 83458
Ennen kuin ryhdymme tarkastelemaan mikrokäskyt V - X sisältävän ensimmäisen laitteistokeskeytyksen palvelurutiinin 106 suorittamista on huomattava, että ellei mikrokäsky R olisi sisältänyt laitteistokeskeytystä estävää mikrokomentoa, olisi mikrokäskyn R suorittamisen aikana tullut vastaan tilanne, jossa paluuosoitepinoon 70 olisi tarvinnut suorittaa osoitteen laittaminen kahdesti, jotta mikro-ohjelman oikea suoritusjärjestys säilyisi. Toisin sanoen, sekä inkrementoijasta 64 paluumultiplekseriin 61 saatava osoite R + 1 että sitä seuraa-va osoitemultiplekseristä 1 60 paluumultiplekserin 61 kautta saatava osoite S pitäisi laittaa paluuosoitepinoon 70. Koska kaksinkertainen osoitteen pinoon laittamisoperaatio ei ole mahdollinen yhden mikrojakson suorittamisen aikana, tarvitaan laitteistokeskeytysten estämistä.
Jos mikrokäskyn R suorittamisen aikana käsittelyään odottamaan ilmestyvä ensimmäinen keskeytys olisi laitteistovirhekeskey-tys, jota ei voida estää asettamalla laitteistokeskeytysten estobittiä 34, haarautuisi mikroprosessori mikrokäskyn R suorittamisen jälkeen mikrokäskyyn V, ja ensimmäisen laitteisto-keskeytyksen palvelurutiinin suorittaminen alkaisi ilman, että mikrokäsky S suoritettaisiin siinä välissä. Tällaisessa tapauksessa ensimmäinen laitteistokeskeytyksen palvelurutiini 106 olisi kuitenkin erilainen kuvan 4 esittämästä tapauksesta siltä osin, että laitteistovirhekeskeytyksiin liittyvät pal-velurutiinit eivät pääty osoitteen poimintaoperaatioon pino-muistista. Sen sijaan ne päättyvät haarautumalla johonkin ennalta määriteltyyn kohtaan suoritettuaan ensin joitakin järjestelmän uudelleenalustustoimintoja. Nämä laitteietovirhe-keskeytykset eivät suorita osoitteen poimintaoperaatiota pino-muistista, koska tällainen operaatio ilmoittaa aikomuksesta palata suorittamaan mikro-ohjelmaa siitä kohdasta, jossa keskeytys tapahtui. Nämä laitteistovirheet, jotka eivät ole estettävissä, eivät ole sellaista tyyppiä, joista järjestelmän toiminta voidaan palauttaa ennalleen, ja siksi niiden yhteydessä ohjausta ei palauteta takaisin siihen kohtaan, jossa keskeytys tapahtui.
38 8 3 4 5 8
Palatkaamme nyt uudelleen ensimmäiseen laitteistokeskeytyksen palvelurutiiniin 106, joka käsittää mikrokäskyt V - X. Kuvasta 4 havaitaan, että käskyissä V ja W ja kaikissa niiden välillä esiintyvissä käskyissä on laitteistokeskeytykset estävä mikro-koodi (INH) (eli bitin 34 binääriarvoksi on asetettu YKSI). Estämällä laitteistokeskeytysten esiintyminen kaikkien muiden paitsi laitteistokeskeytyksen palvelurutiinin viimeisen mikro-käskyn (POP) aikana mikro-ohjelman tekijä varmistaa sen, että toisen tai sitä seuraavan laitteistokeskeytyksen esiintyminen ei keskeytä ensimmäisen laitteistokeskeytyksen käsittelyä. Tällä varmistetaan se, että mitkä hyvänsä ajasta riippuvat yhdellä mikrokäskyllä käynnistettävät ohjelmajaksot voidaan päättää seuraavalla mikrokäskyllä ilman, että mikään väliin tuleva laitteistokeskeytys pidentäisi jakson käynnistämiseen ja päättämiseen käytettävien mikrokäskyjen välistä aikaa. Tästä on myös se etu, että koska keksinnön suoritusmuodossa paluuosoitepinon syvyys on ainoastaan 4 tasoa, niin pinon kolmea tasoa voidaan käyttää mikro-ohjelman alirutiinien kutsumiseen ja neljäs taso voidaan varata laitteistokeskey-tyksille ilman sitä mahdollisuutta, että laitteistokeskeytykset pitäisi sijoittaa sisäkkäin useampaan kuin yhteen tasoon. Voidaan päätellä, että kuvassa 2 esitetty logiikka sallisi itse asiassa laitteistokeskeytysten sijoittamisen sisäkkäin, ja jos pinomuistissa olisi riittävästi tasoja, se sallisi kaikkien laitteistokeskeytysten esiintymisen ylittämättä pino-muistin kapasiteettia samoin kuin ylittämättä sallittua mikro-ohjelmien alirutiinikutsujen maksimimäärää, jonka verran alirutiineja voidaan sijoittaa sisäkkäin. Tällöin edellä kuvatun kaltaista laitteistokeskeytysten estämistä laitteisto-keskeytyksen palvelurutiinin käsittelyn aikana ei tarvittaisi (tämä perustuu olettamukseen, ettei mikään laitteistokeskey-tyksistä pysty keskeyttämään itseään).
3? 83458
Kun ensimmäistä laitteistokeskeytyksen palvelurutiinia 106 suoritetaan, suoritetaan mikrokäskyt V - W peräkkäin keskeytyksettä. Mikrokäskyn W suorittamista seuraa mikrokäsky X ilman keskeytystä, koska mikrokäskyssä W on keskeytyksen estävä mikrokomento (INH). Kannattaa pitää mielessä, että mikro-käskyissä V - W on muitakin mikrokomentoja INH- (esto-) mikro-komennon lisäksi, jotka suorittavat juuri sen tietyn laitteistokeskeytyksen palvelemiseen liittyviä operaatioita, joka palvelua on pyytänyt. Myös mikrokäsky X voi aivan samalla tavalla sisältää muita mikrokomentoja POP-mikrokomennon ohella .
Kun mikrokäskyä X suoritetaan, sisältää ROS-datarekisteri 65 mikrokäskyn X, joka puolestaan sisältää ROS-osoitekenttään koodatun paluuoperaation (POP). Tämä paluuoperaatio aiheuttaa sen, että paluuosoiterekisteristä 70 poimitaan osoite. Paluu-osoiterekisteri sisältää edellä selostetun mukaisesti osoitteen S + 1 osoiterekisterissä 71, osoitteen R + 1 osoiterekisterissä 72, osoitteen P + 1 osoiterekisterissä 73 ja osoitteen 001 (heksadesimaalimuodossa) rekisterissä 74 ennen kuin mikro-komento POP suoritetaan. Mikrokäskyssä X oleva mikrokomento POP aiheuttaa sen, että paluuosoitepinon 70 osoitteet nousevat yhden rekisteripaikan (tason) ylöspäin, kun pinosta poimitaan päällimmäinen osoite. Mikrokäskyssä X oleva mikrokomento POP aiheuttaa siis sen, että osoite S + 1 poimitaan pois paluuosoitepinon 70 rekisteristä 71, rekisterin 72 sisältö ladataan rekisteriin 71, rekisterin 73 sisältö ladataan rekisteriin 72, rekisterin 74 sisältö ladataan rekisteriin 73, ja heksadesi-maalimuotoinen osoitearvo 001 ladataan rekisteriin 74. Osoite S + 1 ladataan osoitemultiplekserin 1 60 ja osoitemultiplekse-rin 2 62 kautta ROS-osoiterekisteriin 63, jossa sitä käytetään hakemaan mikrokäsky S + 1 ROS-muistista 24, joka sitten ladataan ROS-datarekisteriin 65. Näin siis mikrokäskyn X tultua suoritetuksi, jatketaan toisen tason alirutiinin 104 suorittamista mikrokäskyn S + 1 suorittamisella.
40 83458
Toisen tason alirutiinin 104 suorittaminen jatkuu mikrokäskys-tä S + 1 käsky kerrallaan, kunnes tullaan mikrokäskyyn T. Mikrokäskyn X tultua suoritetuksi ja ennen mikrokäskyn T suorittamista paluuosoitepino 70 sisältää osoitteen R + 1 rekisterissä 71, osoitteen P + 1 rekisterissä 72, ja osoitteen 001 (heksadesimaalimuodossa) rekistereissä 73 ja 74.
Kuvasta 4 näkyy, että toinen laitteistokeskeytys ilmestyy odottamaan käsittelyä mikrokäskyn T suorittamisen aikana. Mikrokäsky T sisältää alikomennon POP, joka toisen keskeytyksen puuttuessa palauttaisi mikro-ohjelman suorituksen mikro-käskyyn R + 1 poimimalla osoitteen R + 1 paluuosoitepinon 70 päältä. Mutta kuten jo edellä selostettiin käy niin, että kun mikrokomento POP esiintyy samanaikaisesti laitteistokeskeytys-komennon kanssa, peruutetaan osoitteen poimiminen paluuosoite-pinosta 70 sillä, että ohjelma suorittaa ehdottoman osoitteen pinoon laittamisen liittyen vastauksena laitteistokeskeytyk-seen. Näin ollen paluuosoitepinosta 70 ei poimita osoitetta eikä siihen laiteta osoitetta mikrokäskyn T suorittamisen aikana, joten paluuosoitepino jää sisällöltään muuttumattomaksi niin, että rekisteri 71 sisältää osoitteen R + 1, rekisteri 72 sisältää osoitteen P + 1 ja rekisterit 73 ja 74 sisältävät kummatkin osoitteen 001 (heksadesimaalimuodossa).
Prioriteettiverkko 59 muodostaa mikrokäskyn T suorittamisen aikana vektoroidun osoitteen toiseen laitteistokeskeytyksen palvelurutiiniin siten, että osoite Y ladataan ROS-osoite-rekisteriin 63 osoitemultiplekserin 2 62 kautta. Mikro-ohjelman suoritus jatkuu mikrokäskyn Y suorittamisella, joka on ensimmäinen käsky toisessa laitteistokeskeytyksen palvelu-rutiinissa 108, joka käsittää käskyn Y ja käskyn Z. Myös tässäkin, kuten edellä on jo selostettu, täytyy jokaisen laitteistokeskeytyksen palvelurutiinin käskyn estää laitteisto-* keskeytykset viimeistä mikrokäskyä lukuun ottamatta.
4i 83458
Samoin edellä olevaan viitaten, sisältää käsky Y muita mikro-komentoja INH- (esto-) mikrokomennon lisäksi. Myös mikrokäsky Z voi aivan samalla tavalla sisältää muita mikrokomentoja mikrokomennon POP ohella.
ROS-datarekisteri 65 sisältää mikrokäskyn Z suorittamisen aikana paluuoperaation ROS-osoitekentässä. Tämä paluu-mikro-komento (POP) aiheuttaa sen, että paluuosoitepinossa 70 olevat osoitteet nousevat ylöspäin yhden tason verran, jolloin rekisterissä 71 oleva osoite R + 1 ladataan ROS-osoiterekisteriin 61 osoitemultiplekserin 1 60 ja osoitemultiplekserin 2 62 kautta. Lisäksi rekisterin 72 sisältö ladataan rekisteriin 71, rekisterin 73 sisältö ladataan rekisteriin 72, rekisterin 74 sisältö ladataan rekisteriin 73, ja rekisteriin 74 ladataan heksadesimaalimuotoinen osoite 001. Täten mikrokäskyn Z tultua suoritetuksi paluuosoitepino 70 sisältää osoitteen P + 1 rekisterissä 71, ja osoitteen 001 (heksadesimaalimuodossa) rekistereissä 72, 73 ja 74.
Osoitteen poimiminen paluuosoitepinosta 70 mikrokäskyssä Z olevalla mikrokomennolla POP aiheuttaa sen, että mikro-ohjelman suoritus jatkuu ensimmäisen tason alirutiinissa 102 olevan mikrokäskyn R + 1 suorittamisella. Ensimmäisen tason alirutiini 102 jatkaa mikrokäskyjensä suorittamista, kunnes tullaan mikrokäskyyn U. Mikrokäsky U sisältää mikrokomennon POP, joka - · palauttaa mikro-ohjelman suorituksen siihen mikrokäskyyn, joka on seuraavana ensimmäisen tason alirutiiniin tapahtuneen haa-rautumisen aiheuttaneen mikrokäskyn jälkeen. Mikrokäskyssä U oleva mikrokomento POP nostaa paluuosoitepinossa 70 olevia osoitteita yhden tason verran ylöspäin aiheuttaen sen, että osoite P + 1 ladataan osoitemultiplekserin 1 60 ja osoite multiplekserin 2 62 kautta ROS-osoiterekisteriin 63. Tästä on seurauksena se, että ROS-muistin 24 paikassa P + 1 sijaitseva mikrokäsky ladataan ROS-datarekisteriin 65 ja suoritetaan. Näin siis mikro-ohjelman suoritus jatkuu päärutiinissa 100 olevasta mikrokäskystä P + 1, jonka jälkeen on seuraava mikro-käsky, jota osoitetaan mikrokäskyn P + 1 ROS-osoitekentällä.
42 83458
Kuten edellä olevasta kuvassa 4 esitetyn esimerkin selostuksesta voidaan päätellä, aiheuttaa jokainen alirutiiniin tapahtuvaan haarautumiseen liittyvä täsmällisesti mikrokoodattu PUSH-mikrokomento sen, että paluuosoitepinoon 70 laitetaan päällimmäiseksi osoite ja muut pinon rekistereissä olevat osoitteet siirtyvät alaspäin yhden rekisteritason verran. Samoin käy joka kerta suoritettaessa ehdoton osoitteen pinoon laittaminen (PUSH), joka liittyy laitteistokeskeytykseen vastaamiseen. Edellä olevasta esimerkistä voidaan päätellä, että osoitteen laittaminen paluuosoitepinoon aiheutti vain kolme tasoa syvän siirron: ensimmäinen siirto tapahtui silloin, kun käsky P aiheutti haarautumisen ensimmäisen tason alirutiiniin, toinen siirto tapahtui silloin, kun käsky R aiheutti haarautumisen toisen tason alirutiiniin, ja kolmas siirto tapahtui käskyn S aikana valmisteltaessa vektorointia ensimmäiseen laitteistokeskeytyksen palvelurutiiniin.
Kuvan 4 esimerkissä tapahtui osoitteen poimiminen paluuosoite-pinosta 70 myös kolme kertaa: ensimmäisen kerran osoite poimittiin mikrokäskyn X aikana ensimmäisen laitteistokeskeytyksen palvelurutiinin tullessa suoritetuksi, toisen kerran osoite poimittiin toisen laitteistokeskeytyksen palvelurutiinin lopussa mikrokäskyn Z suorittamisen aikana, ja kolmas kerta oli mikrokäskyn U suorittamisen aikana, kun ensimmäisen tason alirutiini palasi päärutiiniin. Osoitteen poimintaoperaatio paluuosoitepinosta 70, joka olisi normaalisti suoritettu toisen tason alirutiinin lopussa mikrokäskyllä T, peruutettiin ehdottomalla osoitteen pinoonlaitto-operaatiolla, joka liittyy mikrokäskyn Y suorittamisella alkavaan toiseen laitteisto-keskeytyksen palvelurutiiniin tapahtuvaan vektorointiin.
43 83458
Paneutukaamme nyt kuvassa 5 yksityiskohtaisesti esitettyihin piiriratkaisuihin, joissa käytetään aiemmin käytettyjä viitenumerolta. Lisäksi kuvassa 5 on etsitetty yksityiskohtaisia piiriratkaisuja, joita tarvitaan laitteistomekanismin toimintaa varten. Kuvassa näkyy pieniä ympyröitä joidenkin osien sisäänmenoissa ja ulostuloissa. Näitä ympyröitä käytetään esittämään invertoivia (kääntäviä) sisäänmenoja ja ulostuloja.
Paluuosoitepino 70 on esitetty kuvassa 5 (huom. kuva jaettu kahdelle sivulle) koostuvaksi kahdestatoista 4-bittisestä kaksisuuntaisesta yleiskäyttöisestä siirtorekisteristä, jotka ovat tyypiltään SN74LS194. Nämä rekisteripiirit on valmistanut Texas Instruments Incorporated, ja niitä kuvataan heidän kirjassaan “The TTL Data Book for Design Engineers, Second Edition, copyright 1976", joka on otettu mukaan viitteeksi. Kuvassa 5 näkyvät ainoastaan siirtorekisteri 70A, johon tallennetaan paluuosoitepinossa 70 olevien neljän 12-bittisen osoitteen eniten merkitsevät bitit, ja siirtorekisteri 70K, johon tallennetaan neljän 12-bittisen osoitteen toiseksi vähiten merkitsevät bitit, sekä siirtorekisteri 70L, johon tallennetaan paluuosoitepinoon 70 tallennettavien neljän 12-bittisen osoitteen vähiten merkitsevät bitit. Vain nämä kolme rekisteriä on siis merkitty kuvaan 5, ja rekisterit 70B - 70J on jätetty pois kuvasta yksinkertaistamissyistä. Paluuosoitepinon 70 rekistereitä 71 - 74 ei ole esitetty kuvassa 5, koska kunkin rekisterin 71 - 74 bitit tallennetaan siirtorekistereihin 70A - 70L. Tapaa, jolla kahtatoista 4-bittistä siirtorekiste-riä käytetään pinomuistina, kuvataan tarkemmin myöhemmin.
44 83458
Kuvassa 5 näkyy myös ROS-muisti 24, johon tallennetaan mikroprosessorin 30 eri osien suoritettaviksi haluttavat mikro-käskyt. ROS-muistia 24 osoitetaan toimintajakson aikana ROS-osoiterekisterin 63 sisällöllä. Tämä aiheuttaa sen, että osoitteen määrittelemän muistipaikan sisältö luetaan ROS-data-rekisteriin 65.
R0S~datarekisteri 65 on esitetty kuvassa 5 sisältäväksi kolme erillistä mikrokäskyä, jotka kuvaavat kolmea eri mielenkiinnon kohteena olevaa tapausta, joita kuvan 5 avulla selvitetään. Todellisuudessa ROS-datarekisterissä 65 voi olla vain yksi näistä mikrokäskyistä minä hyvänsä ajankohtana. Ylimmäinen mikrokäsky, joka suorittaa hypyn mikrokäskyyn S, sisältää myös PUSH-mikrokomennon. Tämä mikrokäsky edustaa kuvan 4 mikro-käskyä R, joka aiheuttaa haarautumisen toisen tason alirutiiniin 104. Keskimmäinen mikrokäsky on mikä hyvänsä mikrokäsky, jossa laitteistokeskeytyksiä ei ole estetty asettamalla mikro-käskyssä olevan laitteistokeskeytyksen (HI) estobitin binääri-arvoksi YKSI. Alimmainen mikrokäsky on mikrokäsky, joka sisältää POP-mikrokomennon ROS-osoitekentässä, ja se voisi olla mikä hyvänsä kuvan 4 POP-käskyistä, joita ovat mikrokäskyt U, T, X ja Z. Tätä POP-mikrokäskyä käytetään suorittamaan paluu alirutiinista tai laitteistokeskeytyksen palvelurutiinista.
Mikrokäskysanan kentät, jotka sisältävät seuraavan käsittelyn kohteeksi otettavan osoitteen ja mikroprosessorin 30 alijärjestelmää ohjaavat seuraavat komennot, siirretään ja dekoodataan kuvissa 1 ja 2 esitetyillä toimintayksiköillä. Jokainen toimintayksikkö sisältää logiikkapiirit tarvittavien mikrokäskysanassa määriteltyjen alikomentojen dekoodaamiseksi järjestelmän ajoitusoperaatioiden ohjauksen alaisuudessa.
45 83458
Kun ensimmäisen tason alirutiini 102 kutsuu toisen tason alirutiinia 104 suorittamalla haarautumisen mikrokSskyn S PUSH-ja INH- (esto-) mikrokomennoilla, tapahtuu seuraava tapahtumasarja :
Haarautumisen aiheuttava mikrokäsky luetaan ROS-muistista 24 ja ladataan ROS-datarekisteriin 65, jonka jälkeen haarautuminen tapahtuu lukemistapahtumaa seuraavassa jaksossa, ja se muodostetaan ROS-osoitekentästä, jossa bittipaikan NOLLA binääriarvo on YKSI. Haarautumisen aiheuttavassa mikrokäsky-sanassa on myös PUSH-mikrokomento ja laitteistokeskeytyksen estävä mikrokomento, joista ensiksi mainittu mikrokomento tallentaa paluuosoitteen paluuosoitepinoon 70 ja jälkimmäinen mikrokomento estää laitteistokeskeytykset.
Tarkkaan ottaen JUMP-mikrokomento dekoodataan invertterillä 87, joka saa binääriarvon YKSI ROS-osoitekentän bittipaikasta 0 ja tuottaa ulostulostaan binääriarvon NOLLA siten, että signaali JUMP-, joka kytketään ohjaimen 60A ulostulon mahdollistavaan sisäänmenoon (F), mahdollistaa ohjaimen 60A sisään-menotietojen saamisen piirin ulostuloista. Tällöin osoite-multiplekserin 1 60 ulostulosta saadaan ROS-osoitekentän bitit 1-12, jotka sisältävät mikrokäskyn S osoitteen. Ohjain 60A on väyläohjain, ja se on tyypiltään sellainen, että siinä on 3-tilaiset ulostulot siten, että vain yhden väyläohjaimen -jotka muodostavat osoitemultiplekserin 1 60 - ulostulot ovat sallittuja, tarkasteltiinpa tilannetta millä hetkellä hyvänsä. On huomattava, että osoitemultiplekseri 1 60 koostuu useammasta väyläohjaimesta kuin kuvassa 5 esitetyistä väylä-ohjaimista 60A ja 60B. Samoin siinä on muitakin sisäänmenoja kuvassa 5 esitettyjen sisäänmenojen lisäksi, mutta kuvassa 5 on esitetty vain ne sisäänmenot, joilla on merkitystä nyt esillä olevan keksinnön suhteen.
46 83458
Osoitemultiplekserin 1 60 ulostulotiedot, jotka esiintyvät osoitemultiplekserin 2 62 sisäänmenossa A, valitaan osoitemultiplekserin 2 62 binääritilassa YKSI olevalla valinta-sisäänmenolla (SEL) siten, että osoitemultiplekserin 2 62 ulostulosta saadaan mikrokäskyn S osoite, joka on ROS-osoite-kentän biteissä 1 - 12. Nämä osoitemultiplekserin 2 62 ulostulotiedot ladataan ROS-osoiterekisteriin 63 siten, että käskyä S osoitetaan ROS-muistissa 24.
Paluumultiplekseriä 61 ja osoitemultiplekserin 2 62 sisäänmenossa (SEL) esiintyvää sisäänmenon valintasignaalia LDRSAR+ käytetään suorittamaan valinta multipleksereiden 62 ja 61 sisäänmenojen A ja B väliltä. Laitteistokeskeytysten priori-teettiverkon kooderin 54 "ulostulo aktiivinen"-ulostulossa (P) esiintyvän signaalin LDRSAR+ binääritila on NOLLA, jos jokin kooderin 54 ulostulojen Q1 - Q8 binääritila on NOLLA. Jokin kooderin 54 ulostuloista Ql - Q8 on binääritilassa NOLLA, jos jokin sisäänmenoista 10 - 110 on binääritilassa NOLLA ja kooderin 54 sallintasisäänmenoon (EI) kytkettävä sisäänmenon sallintasignaali DISHIP+ on binääritilassa NOLLA.
Laitteistokeskeytysten prioriteettiverkon kooderi 54 koostuu keksinnön suoritusmuodossa kahdesta kaskadikytkentäisestä tyyppiä SN74148 olevasta 8 linjaa/3 Iinjaa-prioriteetti-kooderista, jotka on valmistanut Texas Instruments, ja joita kuvataan heidän julkaisussaan "The TTL Data Book for Design Engineers, Seocnd Edition". Kooderin 54 sisäänmeno 10 on kytketty vastaanottosignaaliin CLEARX-, joka on signaali, jonka binääriarvo on NOLLA laitteiston nollaustilan aikana.
47 83458
Muut kooderin 54 sisäänmenot II - 110 on kytketty erilaisiin signaaleihin, jotka ilmoittavat laitteistokeskeytyspyynnöstä tai laitteistovirhetilasta. Joka "kerta kun jokin näistä sisäänmenoissa 10 - 110 esiintyvistä signaaleista on binääri-tilassa NOLLA, saadaan kooderin 54 binäärikoodatuista ulostuloista Q1 - Q8 signaali, joka vastaa korkeimman prioriteetin Laitteistokeskeytystä tai laitteistovirhettä, joka pyytää palvelua.
Koska ROS-datarekisterissä 65 olevaan ensimmäiseen mikrokäs-kyyn kuuluvassa laitteistokeskeytysten estokentässä on binääriarvoltaan YKSI oleva bitti, tulee signaalin RDDT34+ binääriarvoksi YKSI, joka osittain mahdollistaa AND-veräjän 84. Signaalin CLEARX- binääriarvoksi tulee myös YKSI, koska kyseessä ei ole nollaustila. AND-veräjän 84 kolmannen sisään-menon - signaalin ST0PIT+ - binääriarvoksi tulee myös YKSI, koska kyseessä ei ole myöskään laitteistovirhetila, joten AND-veräjän 84 ulostulosignaalin DISHIP+ binääriarvoksi tulee YKSI estäen kooderin 54 ulostulot tehden samalla signaalin LDRSAR+ binääriarvoksi YKSI.
Ensimmäisen mikrokäskyn PUSH-mikrokomento dekoodataan NOR-veräjillä 80, 81 ja 82 yhdessä NAND-veräjän 83 ja invertterin 85 kanssa. PUSH-alikomento määritellään mikrokäskysanan erikoisohjauskentässä asettamalla alakentän A binääriarvoksi 000, alakentän B binääriarvoksi Χ0Χ0 (jossa X-bittien tilalla ei ole merkitystä), ja alakentän C binääriarvoksi 100. Ala-kenttä A dekoodataan syöttämällä bitit 35 - 37 NOR-veräjään 82, jonka ulostulosta saadaan binääriarvo YKSI, jos PUSH-alikomento on määritelty. Alakenttä B dekoodataan syöttämällä bitit 39 ja 41 NOR-veräjään 81, jonka ulostulosta saadaan binääriarvo YKSI, jos PUSH-alikomento on määritelty.
48 83458
Alakenttä C dekoodataan invertterillä 85 invertoimalla bitti 42 ja käyttämällä invertterin ulostuloa yhdessä bittien 43 ja 44 kanssa NOR-veräjän 80 sisäänmenotietoina. NOR-veräjän 80 ulostulo saa binääriarvon YKSI, jos PUSH-alikomento on määritelty. Jos PUSH-alikomento on määritelty erikoisohjauskentäs-sä, saavat NAND-veräjän 83 kaikki kolme sisäänmenoa binääriarvon YKSI aiheuttaen täten sen, että ulostulosignaalin PUSHOP- binääriarvoksi tulee NOLLA.
Kun PUSH-signaalin PUSHOP- binääriarvo on NOLLA yhdessä NAND-veräjän 90 sisäänmenossa, ja kun NAND-veräjän 90 toisen sisäänmenosignaalin LDRSAR+ binääriarvo on YKSI osoittaen, ettei yhtään laitteistokeskeytystä ole sekä odottamassa käsittelyä että sallittu, tulee NAND-veräjän 90 ulostulosignaalin PUSHNT+ binääriarvoksi YKSI osoittaen, että paluuosoitepinoon 70 on kohdistettava PUSH-operaatio (osoite laitetaan paluuosoitepinoon) joko siksi, että ROS-datarekisteriin 65 on koodattu PUSH-mikrokomento tai siksi, että laitteistokeskeytys on odottamassa käsittelyä ja laitteistokeskeytykset ovat sallittuja. Signaali PUSHNT+ on toinen NAND-veräjän 91 sisään-menosignaaleista. Toinen NAND-veräjän 91 sisäänmenosignaaleis-ta on signaali POPOP+, joka saadaan invertteristä 88. Invert-teriä 88 syötetään OR-veräjästä 86 saatavalla signaalilla ···- POPOP-.
ROS-osoitekentän bitit 0-4 syötetään OR-veräjään 86, jota käytetään POP-mikrokomentojen dekoodaamiseen. Jos bittien 0 -4 binääriarvo on NOLLA, on OR-veräjän 86 ulostulon binääriarvo NOLLA joka osoittaa, että paluuosoitepinosta on poimittava osoite (POP-operaatio). Koska S-mikrokäskyn JUMP (hyppy) bitin 0 binääriarvo on YKSI, tulee OR-veräjän 86 ulostulon binääriarvoksi YKSI aiheuttaen sen, että invertterin 88 ulostulon binääriarvoksi tulee NOLLA.
49 83 458
Kun signaalin POPOP+ binääriarvo on NOLLA NAND-veräjän 91 toisessa sisäänmenossa on siitä seurauksena se, että NAND-veräjän 91 ulostulosignaalin PUSPOP- binääriarvoksi tulee YKSI mikä ilmoittaa, ettei sekä osoitteen pinoonlaitto-operaatio että osoitteen pinostapoimintaoperaatiota pyydetä samanaikaisesti. Kun AND-veräjän 92 molempien sisäänmenojen binääriarvo on YKSI, tulee AND-veräjän 92 ulostulosignaalin PUSNOT+ binääriarvoksi YKSI osoittaen, että paluuosoitepinoon 70 on suoritettava osoitteenlaitto-operaatio. Kun signaalin PUSN0T+ binääriarvo on YKSI toisessa OR-veräjän 94 sisäänmenossa, tulee OR-veräjän 94 ulostulosignaalin PUSNEN+ binääriarvoksi YKSI osoittaen, että paluuosoitepinoon 70 on suoritettava osoitteenlaitto-operaatio.
Osoitteenpoimintaoperaation signaali POPOP+ on myös toinen AND-veräjän 93 sisäänmenosignaaleista. Kun AND-veräjän 93 molempien sisäänmenosignaalien binääriarvo on NOLLA, tulee AND-veräjän 93 ulostulosignaalin POPNOT+ binääriarvoksi NOLLA osoittaen, ettei paluuosoitepinoon 70 kohdisteta osoitteen-poimintaoperaatiota. Koska järjestelmässä ei sillä hetkellä suoriteta nollausoperaatiota, tulee invertterin 89 ulostulosignaalin CLEARX+ binääriarvoksi NOLLA, jolloin OR-veräjän 95 molmpien sisäänmenosignaalien binääriarvoksi tulee NOLLA aiheuttaen sen, että OR-veräjän 95 ulostulosignaalin POPNEN+ binääriarvoksi tulee NOLLA osoittaen sen, ettei paluuosoitepinoon 70 kohdisteta osoitteenpoimintaoperaatiota.
Signaali PUSNEN+ on kytketty jokaisen kahdentoista 4-bittisen kaksisuuntaisen siirtorekisterin 70A - 70L siirtotilasisään-menoon SO. Samalla tavalla signaali P0PNEN+ on kytketty jokaisen kahdentoista 4-bittisen kaksisuuntaisen siirtorekisterin 70A - 70L siirtotilasisäänmenoon SI. Siirtotilasisäänmenot SO ja SI ovat binäärikoodattuja siten, että kun sisäänmenojen SO ja SI binääriarvo on NOLLA, ei siirtorekistereissä tapahdu siirtoa tai rinnakkaislataamista, kun siirtorekisterien kello-sisäänmenossa (C) oleva kellosignaali vaihtaa tilaansa binääriarvosta NOLLA binääriarvoon YKSI.
50 83458
Kun SO: n binääriarvo on NOLLA ja SI: n binääriarvo on YKSI, suoritetaan siirto vasemmalle (POP), kun siirtorekistereitä kellotetaan. Kun S0:n binääriarvo on YKSI ja Sl:n binääriarvo on NOLLA, suoritetaan siirto oikealle (PUSH), kun siirtorekis-tereitä kellotetaan. Kun sekä S0:n että Sl:n binääriarvo on YKSI, suoritetaan kussakin siirtorekisterissä olevan neljän bittipaikan rinnakkaislataaminen, kun kellosignaali vaihtaa tilaansa binääriarvosta NOLLA binääriarvoon YKSI. Jokaisen kahdentoista 4-bittisen siirtorekisterin nollaussisäänmeno (R) asetetaan binääriarvoon YKSI, koska rekistereitä ei nollata (tyhjennetä) järjestelmän toiminnan aikana.
ROS-datarekisterissä 65 olevan senhetkisen mikrokäskyn suorituksen loppuvaiheessa ja sen jälkeen kun seuraavan mikrokäskyn osoite on ladattu ROS-osoiterekisteriin 63, käytetään kello-signaalia PSTR0B+ kellottamaan paluuosoitepinoa 70 kellottamalla siirtorekistereitä 70A - 70L. Samaa kellosignaalia käytetään myös kellottamaan (lataamaan) ROS-osoitehistoriarekis-teri 66. Näin siis samanaikaisesti kun paluuosoite kellotetaan paluuosoitepinoon 70 signaalin PSTROB+ vaihtaessa tilaansa binääriarvosta NOLLA binääriarvoon YKSI, on ROS-osoiterekiste-ristä 63 löytyvää seuraavaa osoitetta käyttäen haettava ROS-muistin 24 seuraavan muistipaikan osoite ja ladattava se ROS-osoitehistoriarekisteriin 66 käytettäväksi senhetkisenä osoitteena seuraavan mikrokäskyn suorituksen alkuvaiheessa.
Senhetkisen mikrokäskyn suorituksen alkuvaiheessa ennen kuin osoite S kellotetaan ROS-osoiterekisteristä 63 ROS-osoite-historiarekisteriin 66, ROS-osoitehistoriarekisteri 66 sisältää ROS-datarekisterissä 65 olevan mikrokäskyn osoitteen, joka määritteli hypyn paikkaan S (kuvassa 4 tämä mikrokäsky on R).
“ 83458 Täten mikrokäskyn R suorituksen alkuvaiheessa ROS-osoite-historiarekisteri 66 sisältäisi senhetkisen ositteen R ja inkrementoijän 64 ulostulosta saataisiin osoite R + 1, joka esiintyisi paluumultiplekserin 61 sisäänmenossa A. Kuten edellä olevasta selvityksestä käy ilmi, on valintasignaalin LDRSAR+ binääriarvo YKSI JUMP-mikrokäskyn S aikana aiheuttaen sen, että paluumultiplekserin 61 sisäänmeno A on sallittu paluumultiplekserin 61 ulostulossa Q. Täten siirtorekisterei-den 70A - 70L "siirto oikeaan"-sarjasisäänmenoissa (Rl) esiintyvät signaalit STKIOO - STKIll vastaavat binäärimuotoista osoitetta R + 1. Näin siis kellosignaalin PSTROB+ esiintyessä S-mikrokäskyn JUMP suorituksen loppuvaiheessa laitetaan osoite R + 1 paluuosoitepinoon 70 siirtämällä siirtorekistereitä 70A - 70L oikealle yhden rekisteripaikan verran.
Tarkasteltuamme kuvassa 5 olevien logiikkapiirien toimintaa S-mikrokäskyn JUMP suhteen, joka myös estää keskeytykset ja suorittaa PUSH-mikrokomennon, siirrymme tarkastelemaan ROS-datarekisterissä 65 esitettyjen toisen ja kolmannen mikro-käskyn suorittamista. Kuvassa 5 esitetyt toinen ja kolmas mikrokäsky eivät sisällä osoitteen pinoonlaitto-operaatiota (PUSH) erikoisohjauskentässä. Tästä syystä kummankin näiden käskyjen suorittamisen aikana on NAND-veräjän 83 ulostulon binääriarvo YKSI. NAND-veräjän 83 ulostuloa käytetään juuri dekoodaamaan (ilmaisemaan) PUSH-mikrokomento, joten ulostulon binääriarvo YKSI osoittaa, ettei mikrokäskyyn ole koodattu osoitteen pinoonlaitto-operaatiota.
Tarkastelkaamme nyt ROS-datarekisterissä 65 olevaa toista mikrokäskyä. Kuten kuvasta 5 näkyy, on bittipaikassa 34 olevan laitteistokeskeytysten estobitin binääriarvo NOLLA mikä osoittaa, että laitteistokeskeytykset ovat sallittuja. Tämä binäärinen NOLLA esiintyy signaalina RDDT34+ AND-veräjän 84 keskimmäisessä sisäänmenossa aiheuttaen sen, että AND-veräjän 84 ulostulosignaalin DISHIP+ binääriarvoksi tulee NOLLA täten sallien laitteistokeskeytysten prioriteettiverkon kooderin 54 sisäänmenot.
52 83458
Jos yhtään laitteistokeskeytyssignaalia ei ole binäärisessä NOLLA-tilassa eikä yhtään laitteistovirhesignaalia ole binäärisessä NOLLA-tilassa eikä järjestelmässä ole parhaillaan nollaustila, saavat kooderin 54 kaikki sisäänmenot 10 - 110 binäärisen YKSI-tilan, jolloin "ulostulo aktiivinen"-signaali kooderin 54 ulostulossa P - eli signaali LDRSAR+ - saa binäärisen arvon YKSI.
Kun signaalin LDRSAR+ binääriarvo on YKSI ja signaalin PUSHOP-binääriarvo on YKSI osoittaen ettei osoitteen pinoonlaitto-operaatiota ole määritelty, saa NAND-veräjän 90 ulostulosignaali PUSHNT+ binääriarvon NOLLA osoittaen, ettei osoitteen pinoonlaitto-operaatiota suoriteta siksi, ettei PUSH-mikro-komentoa esiinny eikä myöskään laitteistokeskeytyetä ole odottamassa käsittelyä. Kun AND-veräjän 92 toisen sisäänmenon binääriarvo on NOLLA, tulee AND-veräjän 92 ulostulosignaalin PUSN0T+ binääriarvoksi NOLLA OR-veräjän 94 toisessa sisään-menossa. OR-veräjän 94 toisen sisäänmenosignaalin CLEARX+ binääriarvoksi tulee NOLLA, jos järjestelmässä ei olla suorittamassa nollausoperaatiota. Tämän vuoksi OR-veräjän 94 ulostulosignaalin PUSNEN+ binääriarvoksi tulee NOLLA.
·*.·· Koska toisen mikrokäskyn ROS-osoitekentässä ei ole määritelty osoitteen poimintaoperaatiota pinomuistista (POP), saa invert-terin 88 ulostulosignaali Ρ0Ρ0Ρ+ binääriarvon NOLLA osoittaen, ettei osoitteen poimintaoperaatiota pinomuistista ole määritelty. Kun signaalin Ρ0Ρ0Ρ+ binääriarvo on NOLLA toisessa AND-veräjän 93 sisäänmenossa aiheuttaa se sen, että AND-veräjän 93 ulostulosignaalin Ρ0ΡΝ0Τ+ binääriarvoksi tulee NOLLA. Kun OR-veräjän 95 molempien sisäänmenosignaalien binääriarvo on NOLLA, tulee OR-veräjän 95 ulostulosignaalin P0PNEN+ binääriarvoksi NOLLA.
53 83458
Siirtorekistereiden 70A - 70L sisäänmenoissa olevien molempien siirtotapasignaalien SO ja SI binääriarvo on NOLLA, ei siirto-rekisterissä tapahdu siirtoa eikä rinnakkaislataamista, kun rekistereitä kellotetaan signaalin PSTROB+ vaihtaessa tilaansa binääriarvosta NOLLA binääriarvoon YKSI, joten tämän mikro-käskyn suorittamisen aikana ei suoriteta sen enempää osoitteen pinoonlaitto-, osoitteen pinostaotto- kuin latausoperaatiota-kaan.
Osoitemultiplekserin 2 62 A-sisäänmenot veräjöidään tämän mikrokäskyn suorittamisen aikana osoitemultiplekserin 2 62 ulostuloon Q, koska valintasignaalin LDRSAR+ binääriarvo on YKSI, kuten edellä on selvitetty. Näin ollen osoitemultiplekserin 1 60 ulostulo ladataan ROS-osoiterekisteriin 63. Senhetkisen mikrokäskyn suorituksen loppuvaiheessa, kun paluu-irm 1 tiplekser in 6) ulostuloa ohjataan poimintasignaalilla signaalin PSTR0B+ vaihtaessa tilaansa binääriarvosta NOLLA binääriarvoon YKSI, ladataan seuraavan osoitteen sisältävän ROS-osoiterekisterin 63 ulostulotiedot ROS-osoitehistoria-rekisteriin 66, jonka jälkeen inkrementoija 64 inkrementoi ulostulotiedot yhdellä. Tämän jälkeen, kun seuraavaa mikro-käskyä suoritetaan senhetkisenä mikrokäskynä, sisältää ROS-osoitehistoriarekisteri 66 senhetkisen osoitteen, ja inkremen-toijalla 64 muodostettu senhetkinen osoite + 1 esiintyy paluu-multiplekserin 61 sisäänmenossa A.
Jos tämän toisen mikrokäskyn - jossa laitteistokeskeytykset on sallittu asettamalla bitin 34 binääriarvoksi NOLLA - suorittamisen aikana esiintyy laitteistokeskeytys, tulee kooderin 54 ulostulosta P saatavan "ulostulo aktiivinen"-signaalin LDRSAR+ binääriarvoksi NOLLA mikä osoittaa, että järjestelmässä on esiintynyt laitteistokeskeytys tai virhetila tai nollaustila, ja osoitemultiplekserin 2 62 sisäänmeno B sallitaan osoitemultiplekserin 2 62 ulostuloon Q.
54 83458
Osoitemultiplekserin 2 62 sisäänmenoon B tuotavat tiedot koostuvat kooderista 54 saatavista binäärikoodatuista biteistä Q1 - Q8 yhdessä kahdeksassa eniten merkitsevässä bitissä olevien kahdeksan etunollabitin kanssa siten, että osoitemultiplekserin 2 62 ulostulosta Q saadaan 12-bittinen binäärimuotoinen osoite. Tämä osoite vastaa sen laitteietokeekeytyksen palvelurutiinin alkuosoitetta, joka on esiohjelmoitu käsittelemään juuri kyseistä laitteistokeskeytystä tai laitteisto-virhettä tai nollaustilaa.
Osoitemultiplekserin 2 62 ulostulotiedot syötetään ROS-osoite-rekisteriin 63 ja sen ulostulotiedot syötetään ROS-muistiin 24 siten, että laitteistokeskeytyksen palvelurutiinin ensimmäinen sana voidaan hakea ja suorittaa. Laitteistokeskeytyksen palvelurutiinin ensimmäisen sanan osoite ladataan osoitehistoria-rekisteriin 66 ROS-osoiterekisteristä 63 ROS-datarekisterissä 65 olevan toisen mikrokäskyn suorittamisen aikana signaalin PSTROB+ kellottaessa (vaihtaessa binääritilaansa arvosta NOLLA arvoon YKSI). Samanaikaisesti, kun osoite kellotetaan ROS-osoiterekisteristä 63 ROS-osoitehistoriarekisteriin 66, laitetaan paluumultiplekserin 61 ulostulotiedot päällimmäiseksi paluuosoitepinoon 70.
Paluumultiplekserin 61 ulostulosta saadaan osoitemultiplekserin 1 60 ulostulotiedot, jotka ovat seuraava nimellinen mikro-käskyn osoite, joka esiintyy paluumultiplekserin 61 sisään-menossa B. Kuten edellä olevasta havaitaan, saadaan paluumultiplekserin 61 sisäänmenon B tiedot paluumultiplekserin 61 ulostulosta Q, koska valintasignaalin LDRSAR+ binääriarvo on NOLLA aina kun kooderista 54 saadaan aktiivinen ulostulo.
Siirtorekisterit 70A - 70L suorittavat osoitteen pinoonlaitto-operaation (PUSH) (siirto oikealle), koska OR-veräjältä 94 saatavan signaalin PUSNEN+ binääriarvo on YKSI ja OR-veräjältä 95 saatavan signaalin P0PNEN+ binääriarvo on NOLLA.
55 83458
Signaalin PUSNEN+ binääriarvo on YKSI ja signaalin POPNEN+ binääriarvo on NOLLA, koska signaalin LDRSAR+ binääriarvo on NOLLA, signaalin CLF.ARX+ binääriarvo on NOLLA, signaalin PUSHOP- binääriarvo on YKSI ja signaalin POPOP+ binääriarvo on NOLLA veräjien 90 - 95 sisäänmenoissa, joiden toimintaa edellä kuvattiin.
Kuvassa 5 olevassa ROS-datarekisterissä 65 esitetyn kolmannen mikrokäskyn suorittamisen aikana suoritetaan osoitteen pinos-tapoimintaoperaatio (POP), kuten ROS-osoitekentässä on määritelty. Edellä mainittu osoitteen poimintaoperaatio dekoodataan (ilmaistaan) OR-veräjällä 86, jonka ulostulosignaalin POPOP-binääriarvo on NOLLA osoittaen, että osoitteen poimintaoperaatio paluuosoitepinosta on suoritettava. Kun signaalin POPOP-binääriarvo on NOLLA, se sallii osoitemultiplekseriin 1 60 kuuluvan ohjaimen 60U ulostulon siten, että osoitemultiplekse-rin 2 sisäänmenoon A saadaan signaalit STKOOO - STKOll, jotka ovat siirtorekistereiden 70A - 70L ulostuloja QA vastaavat 12 bittiä. Nämä 12 signaalia vastaavat paluuosoitepinossa 70 olevaa ylintä osoitetta. Ohjaimen 60A ulostulot estetään signaalin JUMP- binääriarvon ollessa YKSI. Täten osoitemulti-plekserin 1 60 ulostulosta saadaan paluuosoitepinossa 70 oleva ylin osoite, joka vastaa kuvassa 4 olevan rekisterin 71 . sisältöä.
Tämä POP-mikrokäskyn suorittamisen aikana ei esiinny laitteis-tokeskeytyksiä, Osoitemultiplekserin 2 62 sieäänmenot A valitaan ulostuloksi Q, jolloin ulostulosta Q saatavat tiedot ladataan ROS-osoiterekisteriin 63, joka määrittelee ROS-muis-tista 24 haettavan seuraavan käskyn osoitteen. Kun tässä tapauksessa on nyt kyse POP-käskystä eikä laitteistokeskeytys-tä esiinny, on ROS-muistista 24 luettava seuraava käsky se käsky, jota paluuosoitepinon 70 ylimmäinen rekisteripaikka osoittaa. Ellei tämän POP-mikrokäskyn suorittamisen aikana esiinny laitteistokeskeytystä, on kooderin 54 ulostulosignaa-- Iin LDRSAR+ binääriarvo YKSI osoittaen, ettei yksikään sen ulostuloista ole aktiivinen.
56 83458
Koska osoitteen pinoonlaitto-operaatiota (PUSH) ei ole määritelty erikoisohjauskentässä, on NAND-veräjästä 83 saatavan signaalin PUSHOP- binääriarvo YKSI, jolloin NAND-veräjän 90 ulostulosignaalin PUSHNT+ binääriarvo on NOLLA osoittaen, ettei osoitteen pinoonlaitto-operaatiota suoriteta. Jos järjestelmässä ei ole käynnissä nollausoperaatiota, mikä osoitetaan signaalin CLEARX+ binääriarvolla NOLLA, on OR-veräjän 94 ulostulosignaalin PUSNEN+ binääriarvo NOLLA ja OR-veräjän 95 ulostulosignaalin POPNEN+ binääriarvo on YKSI osoittaen, että siirtorekisterit 70A - 70L suorittavat osoitteen pinostapoi-mintaoperaation (POP) eli siirron vasemmalle. Tämä operaatio nostaa paluuosoitepinon 70 osoitteita yhden rekisteripaikan (tason) ylöspäin, kun signaali PUSTR0B+ vaihtaa binääritilaan-κη arvosta NOLLA arvoon YKSI.
Kun tämä siirto-operaatio vasemmalle tapahtuu siirtorekiste-reissä 70A - 70L, ladataan näihin kahteentoista 4-bittiseen siirtorekisteriin bitit, jotka ovat siirtorekistereiden sarja-sisäänmenossa "siirto vasemmalle" (LI). Kuten kuvasta 5 käy ilmi, on siirtorekistereiden 70A - 70K sisäänmenossa LI binäärinen NOLLA-bitti ja siirtorekisterin 70L sisäänmenossa LI on binäärinen YKSI-bitti, jonka seurauksena kuvassa 2 esitetyn paluuosoitepinon 70 alimpaan rekisteripaikkaan (rekisteriin 74) ladataan heksadesimaalimuotoinen osoite 001. Tätä osoitetta 001 käytetään ROS-muistissa 24 sellaisen rutiinin osoitteena, joka on mikro-ohjelmoitu käsittelemään tapausta, jossa pinosta yritetään poimia enemmän osoitteita kuin siihen on laitettu. Tällainen tilanne esiintyy silloin, jos tämä heksadesimaalimuotoinen osoite 001 poimitaan pinon päältä pois.
57 83458 Tämä sama heksadesimaalimuotoinen ROS-osoite 001 ladataan samanaikaisesti paluuosoitepinon 70 rekistereihin 71 - 74, kun järjestelmässä suoritetaan nollausoperaatio lataamalla siirto-rekistereiden 70A - 70K kaikkiin neljään sisäänmenoon rinnakkain binäärinen NOLLA järjestämällä binäärinen NOLLA rekistereiden 70A - 70K sisäänmenoihin PIA, PIB, PIC ja PID ja jär-jesteämällä binäärinen YKSI rekisterin 70L vastaaviin sisäänmenoihin, ja suorittamalla rinnakkaislataus järjestämällä signaalien PUSNEN+ ja POPNEN+ binääriarvoksi NOLLA, kun näitä rekistereitä kellotetaan signaalilla PSTROB+ sen vaihtaessa binääritilaansa arvosta NOLLA arvoon YKSI nollausoperaation aikana. Tämä saadaan aikaan, koska signaalin CLEARX+ binääri-arvo on YKSI nollausoperaation aikana paikoittaen OR-veräjien 94 ja 95 ulostulojen binääriarvoksi YKSI asettaen täten kummankin siirtotavan valintasignaalin SO ja SI binääriarvoksi YKSI.
Kuten edellä olevasta kuvaa 4 koskevasta selvityksestä käy ilmi, jos laitteistokeskeytys esiintyy osoitteen poiminta-operaation sisältämän mikrokäskyn suorittamisen aikana (kuvassa 5 esitetty kolmas mikrokäsky sisältää juuri tällaisen osoitteen poimintaoperaation), peruuttaa laitteistokeskeytyk-seen liittyvä osoitteen pinoonlaitto-operaatio mikrokäskyssä olevan osoitteen poimintaoperaation, eikä paluuosoitepinoon laiteta osoitetta eikä siitä myöskään poimita osoitetta. Mene-telmää, jolla tämä on saatu aikaan, käsitellään nyt seuraavassa kuvaan 5 tukeutuen.
Jos kolmas mikrokäsky, joka sisältää osoitteen poimintaoperaation ROS-osoitekentässä, sisältää myös laitteistokeskeytysten estobitin (jonka binääriarvo on NOLLA), voi laitteistokeskeytys esiintyä POP-mikrokäskyn suorittamisen aikana. Kuten edellä kävi ilmi, sallitaan ohjaimen 60B ulostulo POP-mikrokomen-non sisältämän mikrokäskyn suorittamisen aikana siten, että osoitemultiplekserin 1 60 ulostulosta saadaan paluuosoitepinon 70 ylimmän rekisterin sisältämä paluuosoite.
58 83458
Osoitemultiplekserin 1 60 ulostulotiedot viedään osoitemulti-plekserin 2 62 sisäänmenoon A ja paluumultiplekserin 61 sisäänmenoon B. Kuten edellä olevasta käy ilmi, jos laitteis-tokeskeytys esiintyy, tulee kooderilta 54 saatavan signaalin LDRSAR+ binääriarvoksi NOLLA, jolloin sekä osoitemultiplekse-ristä 2 62 että paluumultiplekseristä 61 valitaan sisäänmeno B. Täten osoitemultiplekserin 2 62 ulostulosta saadaan koode-rin 54 määräämällä tavalla vektoroitu osoite, joka sijaitsee laitteistokeskeytyksen palvelurutiinissa. Paluumultiplekserin 61 ulostulosta saadaan ohjaimen 60B ulostulotiedot, jotka ovat paluuosoitepinon 70 ylimmän rekisterin ulostulotiedot.
Täten ROS-osoiterekisteriin 63 ladataan sen laitteistokeskeytyksen palvelurutiinin alkuosoite, joka liittyy palvelua odottavaan korkeimman prioriteetin keskeytykseen, ja sen muistipaikan sisältö haetaan ROS-muistista 24, jotta laitteistokeskeytyksen palvelurutiinin suoritus voitaisiin aloittaa. Kun signaalin LDRSAR+ binääriarvo on NOLLA, tulee NAND-veräjän 90 ulostulosignaalin PUSHNT+ binääriarvoksi YKSI osoittaen, että paluuosoitepinoon 70 tulisi kohdistaa osoitteen pinoonlaitto-operaatio. Koska ROS-osoitekenttään on koodattu POP-mikro-komento, tulee OR-veräjän 86 ulostulosignaalin P0P0P- binääri-____ arvoksi NOLLA täten aiheuttaen sen, että invertterin 88 ulostulosignaalin Ρ0Ρ0Ρ+ binääriarvoksi tulee YKSI osoittaen, että paluuosoitepinoon 70 tulisi kohdistaa osoitteen poiminta-operaatio. Kun NAND-veräjän 91 molempien sisäänmenojen binääriarvo on YKSI, tulee NAND-veräjän 91 ulostulosignaalin PUSPOP- binääriarvoksi NOLLA osoittaen, että paluuosoitepinoon 70 on kohdistettava sekä osoitteen pinoonlaitto-operaatio että osoitteen pinostapoimintaoperaatio samanaikaisesti.
59 83458
Kun signaalin PUSPOP- binääriarvo on NOLLA, se estää AND-veräjät 92 ja 93 ja aiheuttaa sen, että signaalien PUSNOT+ ja POPNOT+ binääriarvoksi tulee NOLLA mikä osoittaa sen, ettei järjestelmässä suoriteta osoitteen pinoonlaitto-operaatiota sen enempää kuin osoitteen pinostapoimintaoperaatiotakaan. Koska järjestelmässä ei olla suorittamassa parhaillaan nollausoperaatiota, on signaalin CLEARX+ binääriarvo NOLLA, joten OR-veräjien 94 ja 95 ulostulosignaalin binääriarvoksi tulee NOLLA mikä osoittaa, ettei siirtorekistereissä 70A - 70L suoriteta siirto-operaatiota sen enempää kuin latausoperaatio-takaan. Näin ollen mikrokäskyssä oleva POP-mikrokomento peruuttaa laitteistokeskeytykseen ehdottomasti kuuluvan osoitteen pinoonlaitto-operaation. Tämän seurauksena paluuosoite-pinoon 70 ei kohdisteta osoitteen pinoonlaitto-operaatiota eikä osoitteen pinostapoimintaoperaatiota sen enempää kuin rinnakkaislataamistakaan.
Edellä olevasta selvityksestä voidaan päätellä, että NAND-veräjää 91 käytetään ilmaisemaan osoitteen pinoonlaitto- ja pinostapoiminta-operaatioiden samanaikaista esiintymistä sekä estämään paluuosoitepinoon 70 kohdistuva samanaikainen osoitteen pinoonlaitto-operaatio ja pinostapoimintaoperaatio, kun tällainen tilanne esiintyy. Tällainen tilanne voi esiintyä silloin, kun mikrokäskyyn on koodattu POP-mikrokomento, ja järjestelmässä esiintyy laitteistokeskeytys. Näiden tapahtumien yhdistelmä estää sen, ettei pinoa voida liikuttaa - . kumpaankaan suuntaan. Edellä olevasta selvityksestä voidaan päätellä myös se, kuinka paluuosoitepinon 70 alin rekisteri-paikka ladataan joka kerta kun pinosta poimitaan jonkun rutiinin osoite. Tätä käytetään ilmaisemaan, ettei pinosta poimita enempää osoitteita kuin mitä pinossa on. Edellä olevasta selvityksestä käy myös ilmi se, kuinka pino alustetaan nollaus-operaation aikana siten, että jokaiseen pinon rekisteriin ladataan sama heksadesimaalimuotoinen osoite 001, jota käytetään edellä mainitun palvelurutiinin osoitteena, jolla estetään liian monen osoitteen poimiminen paluuosoitepinosta.
*0 83458
Alaa ymmärtäville on voinut helposti tulla mieleen muutosehdotuksia keksinnön suoritusmuotoa kuvattaessa. Esimerkiksi, jos laitteistokeskeytyksiä ei estetä laitteistokeskeytyksen palvelurutiinin aikana, voidaan keksinnön pinonmuodostusmene-telmää (eli menetelmää, jolla useampia alirutiineja voidaan asettaa sisäkkäin) käyttää laitteistokeskeytysten sisäkkäin sijoittamiseen. Ja vaikka keksinnön suoritusmuotoa onkin kuvattu 4-bittisiin siirtorekistereihin nojautuen, saadaan pinomuistin syvyydeksi (eli kuinka monta osoitetta pinoon mahtuu) useampibittisiä rekistereitä käytettäessä niin monta tasoa kuin mitä laajennetussa siirtorekisterissä on bittejä. Tällä tavalla voidaan alirutiineja ja keskeytyksiä asettaa sisäkkäin useampaan tasoon. Lisäksi keksinnön suoritusmuodossa olevien siirtorekistereiden sijasta voitaisiin käyttää yhdysvaltalaisessa patentissa 3,909,797 kuvattua vipoista muodostetuista rekistereistä koostuvaa pinomekanismia edellyttäen, että nyt esillä olevan keksinnön logiikkapiirejä, joita käytetään ilmaisemaan yritys suorittaa samanaikainen osoitteen pinoonlaitto- ja pinostapoimintaoperaatio, käytetään hyväksi siten, ettei järjestelmässä suoriteta osoitteen pinoonlaitto-operaatiota sen enempää kuin pinostapoimintaoperaatiotakaan.
On huomattava, että ROS-osoitekenttä alirutiiniin voi olla joko ehdollinen tai ehdoton haarautuminen. Tämä on erityisen hyödyllinen piirre selostetun kaltaisessa järjestelmässä, koska seuraava osoite saadaan jatkuvasti ROS-muistista 24 saatavien mikrokäskyjen ROS-osoitekentästä. Se on kuitenkin kaikesta huolimatta aivan yhtä käyttökelpoinen sellaisissa osoitusmenetelmissä, joissa käytetään sekvenssilaskuria. Molemmissa osoitusmenetelmissä on tarpeen käyttää PUSH-mikro-komentoa mahdollistamaan seuraavan käskyn osoitteen tallentaminen eli käskyn, joka muussa tapauksessa suoritettaisiin, ellei alirutiiniin tapahtuisi haarautumista.
ei 83458
Kun keksintöä on kuvattu ja selostettu keksinnön suoritusmuotoon nojautuen, lienee alaa hallitseville selvää, että edellä mainitun kaltaisia ja muunkinlaisia muutoksia muoto-asioissa ja yksityiskohdissa voidaan tehdä poikkeamatta keksinnön hengestä ja puitteista.
Patenttivaatimukset ovat seuraavat:

Claims (10)

62 83 458
1. Tietojenkäsittelylaitteessa, jota ohjataan mikro-ohjelmoidun ohjausmuistin (24) avulla, missä mainittu ohjausmuisti (24) toteuttaa erilaisia mikrokäskyjonoja, jotka pidetään tallennus-yksikön osoitettavissa paikoissa, ja missä mainittu prosessori on varustettu pinomuistilla (70) ylläpitämään useita mainitun tailennusyksikön osoitteita; laite (36) mainitun tietojenkäsit-telylaitteen ohjaamiseksi sallimaan sekoittuneiden alirutiinien haarautuminen ja pääsy keskeytyspalvelurutiineihin mainituista mikrokäskyjonoista, tunnettu siitä, että siihen kuuluu: elimet (64), joita ohjataan suoritettaessa ensimmäistä mikro-käskyä, joka ilmaisee siirron tiettyyn alirutiiniin suoritettavasta rutiinista/alirutiinista inkrementoimaan mainitun ensimmäisen mikrokäskyn osoite ja pinoamaan tällainen inkremen-toitu osoite mainitun pinon (70) päälle, elimet (60, 61), joita ohjataan suoritettaessa toista mikrokäs-kyä, jonka aikana esiintyy keskeytys pinoamaan mainitun pinon (70) päälle seuraava osoite, joka on kehitetty mainitun toisen mikrokäskyn suorittamisen aikana ja siirtämään toiminto mikro-käskyjen palvelurutiiniin, jonka ensimmäinen osoite on määritetty mainitun keskeytyksen luonteen avulla, ja elimet (62, 63), joita ohjataan kunkin alirutiinin ja mainitun palvelurutiinin viimeisen mikrokäskyn (POP) avulla hakemaan tietoa mainitusta pinosta (70) ja käyttämään mainitun pinon (70) päältä vastaanotettua osoitetta paluuosoitteena uudelleen syöttämään rutiini/alirutiini josta mainittu alirutiini tai palveiurutiini oli syötetty.
2. Patenttivaatimuksen 1 mukainen laite, tunnettu siitä, että siihen lisäksi kuuluu elimet (59), joiden on mahdollistettu samanaikaisen alirutiinissa olevan viimeisen mikrokäskyn suorittamisen ja keskeytyksen ilmenemisen avulla estämään tietojen hakeminen mainitusta pinosta. 63 83458
3. Patenttivaatimuksen 1 mukainen laite, tunnettu siitä, että siihen lisäksi kuuluu elimet (RDDT 34), jotka reagoivat mainittuun ensimmäiseen mikrokäskyyn estämään mainittua laitetta reagoimaan tiettyihin keskeytyksiin.
4. Tietojenkäsittelyjärjestelmä (10, 20, 40) rutiinin suorittamiseksi, jolla päästään käsiksi useisiin alirutiineihin, ja useiden keskeytysten palvelurutiinien suorittamiseksi vastauksena useisiin keskeytyksiin, johon järjestelmään kuuluu: muodostusvälineet (24, 63, 65), joilla saadaan aikaan jono mikrokäskyjä; muuttamisvälineet (58, 62) muodostusvälinei11ä (24) aikaansaadun mikrokäskyjonon muuttamiseksi, tallennus-välineet (70) paluuosoitteen tallentamiseksi ja siirtovälineet (62) paluuosoitteiden siirtämiseksi, tunnettu siitä, että: A. muodostusvälineiden (24, 63, 65) jokainen mikrokäsky sisältää osoitekentät muodostusvälineiden (24, 63, 65) mikro-käskyn osoitteen määrittelemiseksi sekä komentokentät siirtoreittien määrittelemiseksi, yhden mikrokäskytyypin määritellessä haarautumisen alirutiineihin ja toisen mikrokäskytyypin määritellessä paluun alirutiineista tai keskeytysten palvelurutiineista; B. vastauksena esiintyvään ei-estettyyn keskeytykseen saadaan muuttamisvälineistä (58, 59, 62) vektoroitu keskeytysosoite muodostusvälinei1 le (24, 63), jota käytetään keskeytyksen palvelurutiinin alkuosoitteena; C. tallennusvälineisiin (70) sisältyy: a. joukko sisäisesti sarjaan kytkettyjä rekistereitä (71 - 74), joista yksi rekisteri joukkoon (71- 74) kuuluva rekisteri on ylimmäinen rekisteri (71) ja toinen rekisteri joukkoon (71 - 74) kuuluvat rekisteri on alimmainen 64 83458 rekisteri (74), jäljellä olevien rekisteri joukkoon (71 - 74) kuuluvien rekistereiden (72, 73) ollessa ylimmän rekisterin (71) ja alimman rekisterin (74) välissä, joista kukin rekisteri joukon (71, 72, 73, 74) rekisteri on tarkoitettu yhden paluuosoitteen tallentamiseen, b. ensimmäinen väline, joka on kytketty ylimpään rekisteriin (71) ja jäljellä oleviin rekistereihin (72, 73), ja joka reagoi muodostusvälineisiin (24, 63, 65), jotta paluu-osoitteet etenisivät perätysten rekisteri joukon (71, 72, 73, 74) alimpaan rekisteriin (74), ja c. alimmainen väline, joka on kytketty alimmaiseen rekisteriin (74) ja jäljellä oleviin rekistereihin (72, 73), ja joka reagoi muodostusvälineisiin (24, 63, 65), jotta paluuosoitteet etenisivät perätysten rekisteri joukon (71, 72, 73, 74) ylimpään rekisteriin (71), jossa tallennus-väline (70) reagoi mainittuun yhdentyyppiseen mikrokäskyyn ja ei-estettyjen keskeytysten esiintymiseen tallentaen peräkkäin aikaisempien rutiinien ja palvelurutiinien paluuosoitteita ylimpään rekisteriin (71); ja että D. siirtovälineet (60, 62) reagoivat sarjaan mainittuja toisentyyppisiä mikrokäskyjä siirtäen paluuosoitteita muodostus-välineisiin (24, 63, 65) tallennusvälineen (70) ylimmästä rekisteristä (71).
5. Patenttivaatimuksen 4 mukainen järjestelmä, tunnettu siitä, että mainittujen mikrokäskyjen komentokenttien ensimmäisessä komentokentässä on ensimmäinen arvo, joka sallii muistivälineen (70) vastaanottaa paluuosoitteita siirtovälineistä (60, 62) ja missä mikrokäskyn osoitekenttien ensimmäisessä osoitekentässä on ensimmäinen arvo, joka sallii tallennusväli neen (70) lähettää paluuosoitteita siirtovälineisiin (60, 62). es 83458
6. Patenttivaatimuksen 5 mukainen järjestelmä, tunnettu siitä, että se sisältää lisäksi inkremointivälineet (64) muodostusvälineiden (24, 63, 65) osoitteen inkrementoimiseksi ennalta määritellyllä luvulla ja missä ylimmäinen rekisteri (71) ottaa vastaan inkrementoidun osoitteen inkrementointi-välineestä (64) vastauksena ensimmäisen komentokentän ensimmäiseen arvoon.
7. Patenttivaatimuksen 6 mukainen järjestelmä, tunnettu siitä, että mikrokäskyjen komentokenttien toisessa komentoken-tässä on ensimmäinen arvo keskeytysten estämiseksi ja toinen arvo keskeytysten sallimiseksi ja missä toisen komentokentän ensimmäistä arvoa käytetään yhdessä ensimmäisen komentokentän ensimmäisen arvon kanssa estämään keskeytyksen esiintyminen paluuosoitteen tallentamisen aikana suoritettaessa haarautuminen yhteen alirutiineista.
8. Tietojenkäsittelyjärjestelmä, jolla päästään käsiksi peräkkäisessä järjestyksessä rutiineihin ja aiirutiineihin ja jolla päästään käsiksi keskeytysten palvelurutiineihin, johon järjestelmään kuuluu: muodostusvälineet (24, 65), joilla saadaan aikaan peräkkäinen jono mikrokäskyjä; välineet (63) osoitteen vastaanottamikseksi muodostusvälineistä, tallennusvälineet (70) paluuositteen tallentamiseksi ja siirtovälineet (62) paluu-osoitteiden siirtämiseksi; tunnettu siitä, että: A. muodostusvälineiden (24, 65) kunkin mikrokäskyn osoitetta osoitetaan muodostusvälineisiin (24, 65) sisältyvällä osoitteella, kunkin mikrokäskyn sisältäessä osoitekentät muodostusvälineiden (24, 65) mikrokäskyn seuraavan osoitteen määrittämiseksi, joista osoitekenttien ensimmäisessä osoite-kentässä on ensimmäinen arvo, joka määrittelee haarautumisen aiirutiineihin, sekä toinen arvo joka määrittelee paluun alirutiineista tai keskeytysten palvelurutiineista, komento- 66 83458 kenttien ensimmäisen komentokentän sisältäessä siirron, ja komentokenttien toisen komentokentän sisältäessä ensimmäisen arvon, joka määrittelee keskeytysten estämisen, sekä toisen arvon, joka määrittelee keskeytysten sallimisen; B. vastaanottovälineestä (63) saatava osoite on seuraava osoite; C. Tallennusvälineisiin (70) sisältyy seuraavat osat: a. joukko sisäisesti sarjaankytkettyjä rekistereitä (71 - 74), joista yksi rekisteri joukkoon (71 - 74) kuuluva rekisteri on ylimmäinen rekisteri (71), ja joista toinen rekisteri joukkoon (71 - 74) kuuluva rekisteri on alimmainen rekisteri (74), jäljellä olevien rekisteri-joukkoon kuuluvien rekistereiden (72, 73) ollessa ylimmän rekisterin (71) ja alimman rekisterin (74) välissä, joista kukin rekisteri joukkoon (71 - 74) kuuluva rekisteri on tarkoitettu yhden paluuosoitteen tallennukseen; b. ensimmäiset välineet (80 - 85, 90 - 95), jotka on kytketty ylimpään rekisteriin (71) ja jäljellä oleviin rekistereihin (72, 73), joiden tehtävänä on reagoida ensimmäisen arvon sisältävään ensimmäiseen komentokent-tään, jotta paluuosoitteet etenisivät perättäin rekisteri joukon (71 - 74) alimmaiseen rekisteriin (74); c. toiset välineet (86, 88, 90 - 95), jotka on kytketty alimpaan rekisteriin (74) ja jäljellä oleviin rekistereihin (72, 73), joiden tehtävänä on reagoida toisen arvon sisältävään ensimmäiseen osoitekenttään, jotta paluuosoitteet etenisivät perättäin rekisteri joukon (71 - 74) ylimpään rekisteriin (71); d. ylimmäisen rekisterin (71), vastaanottaessa paluuosoit-teen vastauksena ensimmäisen arvon sisältävään ensimmäi- 67 83458 seen osoitekenttään sekä ensimmäisen arvon sisältävään ensimmäiseen komentokenttään; ja että D. siirtovälineet (60, 62) reagoivat toisen arvon sisältävään ensimmäiseen osoitekenttään paluuosoitteen siirtämiseksi ylimmästä rekisteristä (71) vastaanottovälineisiin (63) paluuosoitteen tullessa seuraavaksi osoitteeksi.
9. Patenttivaatimuksen 8 mukainen järjestelmä, tunnettu siitä, että siihen kuuluu lisäksi: vastaanottovälineisiin (63) kytketyt inkrementointivälineet (64) sen hetkisen osoitteen inkrementoimiseksi ennalta määritellyllä luvulla inkrementoidun sen hetkisen osoitteen muodostamiseksi, jossa sen hetkinen osoite on muodostuvälineissä (24, 65) oleva osoite, jota käytetään muodostamaan sen hetkinen mikrokäsky, ensimmäisen arvon, joka mahdollistaa inkrementoidun sen hetkisen osoitteen siirtämisen ylimmäiseen rekisteriin (71) inkrementoidun osoitteen ollessa paluuosoite.
10. Patenttivaatimuksen 8 mukainen järjestelmä, tunnettu siitä, että tallennusvälineet (70) sisältävät lisäksi ensimmäisen välineen (86), joka reagoi toisen arvon sisältävään ensimmäiseen osoitekenttään sekä toisen arvon sisältävään toiseen komentokenttään, ja joka reagoi ei-estetyn keskeytyksen esiintymiseen säilyttääkseen paluuosoitteita, jotka ovat rekisteri-joukon (71 - 74) ylimmässä rekisterissä (71), alimmassa rekisterissä (74) ja jäljellä olevissa rekistereissä (72, 73). 68 83458
FI834414A 1982-12-03 1983-12-02 Stapelformingsfoerfarande foer programraeknare och anordning foer interna subrutiner och avbrott. FI83458C (fi)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44674882 1982-12-03
US06/446,748 US4488227A (en) 1982-12-03 1982-12-03 Program counter stacking method and apparatus for nested subroutines and interrupts

Publications (4)

Publication Number Publication Date
FI834414A0 FI834414A0 (fi) 1983-12-02
FI834414A FI834414A (fi) 1984-06-04
FI83458B FI83458B (fi) 1991-03-28
FI83458C true FI83458C (fi) 1991-07-10

Family

ID=23773700

Family Applications (1)

Application Number Title Priority Date Filing Date
FI834414A FI83458C (fi) 1982-12-03 1983-12-02 Stapelformingsfoerfarande foer programraeknare och anordning foer interna subrutiner och avbrott.

Country Status (11)

Country Link
US (1) US4488227A (fi)
EP (1) EP0111407B1 (fi)
JP (1) JPH0666051B2 (fi)
KR (1) KR900007565B1 (fi)
AU (1) AU573194B2 (fi)
BR (1) BR8306655A (fi)
CA (1) CA1205564A (fi)
FI (1) FI83458C (fi)
HK (1) HK64292A (fi)
SG (1) SG67692G (fi)
YU (1) YU45579B (fi)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4792890A (en) * 1985-12-31 1988-12-20 International Business Machines Corp. Method for resolving conflicts between interrupt sources sharing the same priority level
US5161217A (en) * 1986-10-14 1992-11-03 Bull Hn Information Systems Inc. Buffered address stack register with parallel input registers and overflow protection
JPS63108457A (ja) * 1986-10-24 1988-05-13 Brother Ind Ltd デ−タ処理装置
US4800491A (en) * 1986-11-17 1989-01-24 General Electric Company Register-stack apparatus
US5179688A (en) * 1987-06-30 1993-01-12 Tandem Computers Incorporated Queue system with uninterrupted transfer of data through intermediate locations to selected queue location
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US4965716A (en) * 1988-03-11 1990-10-23 International Business Machines Corporation Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US5287483A (en) * 1988-07-06 1994-02-15 Kabushiki Kaisha Toshiba Prefetched operand storing system for an information processor
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
US5043879A (en) * 1989-01-12 1991-08-27 International Business Machines Corporation PLA microcode controller
JPH02190937A (ja) * 1989-01-19 1990-07-26 Sanyo Electric Co Ltd マイクロコンピュータの割り込み回路
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
DE69114321T2 (de) * 1990-02-20 1996-07-18 Nec Corp Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
JP2507833B2 (ja) * 1990-12-25 1996-06-19 三菱電機株式会社 マイクロコンピュ−タ
US5455949A (en) * 1991-09-06 1995-10-03 International Business Machines Corporation Method for representing and signaling run-time program conditions
JPH0831041B2 (ja) * 1991-09-06 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム条件処理方法およびコンピュータ・システム
JP3182438B2 (ja) * 1991-10-28 2001-07-03 株式会社日立製作所 データプロセッサ
US5448707A (en) * 1991-10-29 1995-09-05 Intel Corporation Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns
US5274817A (en) * 1991-12-23 1993-12-28 Caterpillar Inc. Method for executing subroutine calls
JP3211423B2 (ja) * 1992-10-13 2001-09-25 ソニー株式会社 分岐命令実行方法および分岐命令実行装置
US5640548A (en) * 1992-10-19 1997-06-17 Motorola, Inc. Method and apparatus for unstacking registers in a data processing system
US5450349A (en) * 1992-10-27 1995-09-12 Digital Equipment Corporation Computer system performance evaluation system and method
JPH0749790A (ja) * 1993-06-01 1995-02-21 Matsushita Electric Ind Co Ltd プロセッサにおける割り込み制御方法及び割り込み制御回路
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
US5995996A (en) * 1993-06-15 1999-11-30 Xerox Corporation Pipelined image processing system for a single application environment
US5553259A (en) * 1993-07-16 1996-09-03 Unisys Corporation Apparatus and method for synchronizing the simultaneous loading of cache program word addresses in dual slice registers
US5922070A (en) * 1994-01-11 1999-07-13 Texas Instruments Incorporated Pipelined data processing including program counter recycling
US5537541A (en) * 1994-08-16 1996-07-16 Digital Equipment Corporation System independent interface for performance counters
US5671422A (en) * 1994-11-14 1997-09-23 Intel Corporation Method and apparatus for switching between the modes of a processor
JP3504355B2 (ja) * 1994-12-06 2004-03-08 松下電器産業株式会社 プロセッサ
US6081880A (en) * 1995-03-09 2000-06-27 Lsi Logic Corporation Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5966529A (en) * 1995-05-15 1999-10-12 Zsp Corporation Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
KR100381876B1 (ko) * 1995-07-03 2003-07-18 텍사스 인스트루먼츠 인코포레이티드 프로그램카운팅시스템및카운터의동작방법
US5732272A (en) * 1995-07-31 1998-03-24 Apple Computer, Inc. Subroutine execution time tracer
US5900025A (en) * 1995-09-12 1999-05-04 Zsp Corporation Processor having a hierarchical control register file and methods for operating the same
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
CA2159979C (en) * 1995-10-05 1999-05-25 Arthur Lai Methology to link any pci rom based device using a single software or hardware interrupt vector in pc system at runtime
JP2850808B2 (ja) * 1995-10-31 1999-01-27 日本電気株式会社 データ処理装置およびデータ処理方法
US5606703A (en) * 1995-12-06 1997-02-25 International Business Machines Corporation Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures
US5761491A (en) * 1996-04-15 1998-06-02 Motorola Inc. Data processing system and method for storing and restoring a stack pointer
US6070218A (en) * 1998-01-16 2000-05-30 Lsi Logic Corporation Interrupt capture and hold mechanism
US6065088A (en) * 1998-08-31 2000-05-16 International Business Machines Corporation System and method for interrupt command queuing and ordering
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6934939B2 (en) * 2001-02-28 2005-08-23 International Business Machines Corporation Method for unwinding a program call stack
US7231511B2 (en) * 2001-12-20 2007-06-12 Intel Corporation Microinstruction pointer stack including speculative pointers for out-of-order execution
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
US7206884B2 (en) * 2004-02-11 2007-04-17 Arm Limited Interrupt priority control within a nested interrupt system
GB2478733B (en) 2010-03-15 2013-08-14 Advanced Risc Mach Ltd Apparatus and method for handling exception events
DE102011005209B4 (de) 2011-03-07 2016-06-23 Infineon Technologies Ag Programmanweisungsgesteuerte Instruktionsflusskontrolle
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9317460B2 (en) * 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253425A5 (fi) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3909797A (en) * 1973-12-13 1975-09-30 Honeywell Inf Systems Data processing system utilizing control store unit and push down stack for nested subroutines
JPS50128429A (fi) * 1974-03-28 1975-10-09
US4287559A (en) * 1977-02-09 1981-09-01 Texas Instruments Incorporated Electronic microprocessor system having two cycle branch logic
JPS54106142A (en) * 1978-02-08 1979-08-20 Nec Corp Data processor
JPS5552152A (en) * 1978-10-13 1980-04-16 Hitachi Ltd Control system for program address
US4340933A (en) * 1979-02-12 1982-07-20 Honeywell Information Systems Inc. Data processing system having centralized nonexistent memory address detection
JPS564943A (en) * 1979-06-26 1981-01-19 Nec Corp Noise removing unit
US4398244A (en) * 1980-05-07 1983-08-09 Fairchild Camera & Instrument Corporation Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same
US4438492A (en) * 1980-08-01 1984-03-20 Advanced Micro Devices, Inc. Interruptable microprogram controller for microcomputer systems

Also Published As

Publication number Publication date
FI83458B (fi) 1991-03-28
FI834414A0 (fi) 1983-12-02
KR900007565B1 (ko) 1990-10-15
SG67692G (en) 1992-12-04
EP0111407A2 (en) 1984-06-20
JPH0666051B2 (ja) 1994-08-24
HK64292A (en) 1992-09-04
YU45579B (sh) 1992-07-20
JPS59111542A (ja) 1984-06-27
AU573194B2 (en) 1988-06-02
CA1205564A (en) 1986-06-03
BR8306655A (pt) 1984-07-17
YU236183A (en) 1986-10-31
EP0111407B1 (en) 1992-04-29
EP0111407A3 (en) 1984-07-18
KR840007187A (ko) 1984-12-05
FI834414A (fi) 1984-06-04
US4488227A (en) 1984-12-11
AU2160783A (en) 1984-06-07

Similar Documents

Publication Publication Date Title
FI83458C (fi) Stapelformingsfoerfarande foer programraeknare och anordning foer interna subrutiner och avbrott.
US4016545A (en) Plural memory controller apparatus
US4794517A (en) Three phased pipelined signal processor
EP0198214B1 (en) Branch control in a three phase pipelined signal processor
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4363091A (en) Extended address, single and multiple bit microprocessor
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
EP0399762B1 (en) Multiple instruction issue computer architecture
US3988719A (en) Microprogrammed data processing systems
US4099229A (en) Variable architecture digital computer
EP0071028A2 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPS589455B2 (ja) 多重長アドレス構成を有するマイクロプログラム化デ−タ処理システム
US4490783A (en) Microcomputer with self-test of microcode
JPS6114535B2 (fi)
US3654621A (en) Information processing system having means for dynamic memory address preparation
US4251859A (en) Data processing system with an enhanced pipeline control
US4323964A (en) CPU Employing micro programmable control for use in a data processing system
US5097407A (en) Artificial intelligence processor
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US5416911A (en) Performance enhancement for load multiple register instruction
WO1984004188A1 (en) Microcomputer with interprocess communication
EP0126124B1 (en) Multiple control stores in a pipelined microcontroller for handling nested subroutines
EP0317473A2 (en) Microcode branch based upon operand length and alignment
US4471426A (en) Microcomputer which fetches two sets of microcode bits at one time

Legal Events

Date Code Title Description
MM Patent lapsed
MM Patent lapsed

Owner name: HONEYWELL INFORMATION SYSTEMS INC.