FI90804B - Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu - Google Patents

Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu Download PDF

Info

Publication number
FI90804B
FI90804B FI873030A FI873030A FI90804B FI 90804 B FI90804 B FI 90804B FI 873030 A FI873030 A FI 873030A FI 873030 A FI873030 A FI 873030A FI 90804 B FI90804 B FI 90804B
Authority
FI
Finland
Prior art keywords
instruction
interrupt
instructions
program
normal
Prior art date
Application number
FI873030A
Other languages
English (en)
Swedish (sv)
Other versions
FI873030A (fi
FI90804C (fi
FI873030A0 (fi
Inventor
Kevin L Kloker
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of FI873030A publication Critical patent/FI873030A/fi
Publication of FI873030A0 publication Critical patent/FI873030A0/fi
Application granted granted Critical
Publication of FI90804B publication Critical patent/FI90804B/fi
Publication of FI90804C publication Critical patent/FI90804C/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

90804
Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
Tekniikan alue 5 Tämä keksintö liittyy yleisesti datan käsittelypii- reihin ja erityisesti keskeytysten suorittamiseen data-prosessorissa.
Keksinnön tausta
Dataprosessorit keskeytetään tyypillisesti asynkro-10 nisesti oheislaitteilla ohjelma-askelsekvenssien suorittamisen aikana. Keskeytyspyynnöt käsitellään tavallisesti toisella kahdesta tavasta tai niiden muunnelmilla. Ensimmäinen menetelmä, joka on tavallisesti toteutettu prosessoreilla, on vektoroitu keskeytys ohjelmalaskurin korvauk-15 sella. Tässä menetelmässä keskeytyspyyntöä ei palvella välittömästi, vaan sitä pidetään voimassa kunnes keskeytyksen suoritusraja esiintyy. Siten sen hetkisen käskyn suorittamisen loppuun saattaminen varmistetaan ennen keskeytyksen palvelemista. Käskyrajalla ohjelmalaskurin sisältö käsittää 20 paluuosoitteen, joka osoittaa seuraavaa käskyä, joka normaalisti suoritettaisiin, ellei keskeytystä esiintyisi.
Tämä paluuosoite ja vaihteleva määrä muuta informaatiota talletetaan sitten pinomuistiin. Muu informaatio, joka saatetaan tallentaa, sisältää tilakoodirekisterit, datarekis-25 terit ja osoiterekisterit. Keskeytyspalvelurutiinin alku-osoite korvaa sitten aikaisemman ohjelmalaskurin, jotta aikaansaadaan siirtyminen keskeytyspalvelurutiiniin. Korvausarvo ohjelmalaskuria varten voidaan synnyttää eri tavoin. Yleinen toteutus on, että prosessori synnyttää keskeytyksen 30 hyväksymissignaalin. Vasteena keskeytyksen hyväksymissignaa-lille keskeyttävä oheislaite tuottaa keskeytysvektorinume-ron, joka ohjaa prosessorin hakemaan muistitaulukossa olevan keskeytyspalvelurutiinin alkuosoitteen. Keskeytyspalvelurutiinin alkuosoite ladataan ohjelmalaskuriin ja prosessori .35 hakee keskeytysrutiinin ensimmäisen käskyn, dekoodaa sen ja 2 suorittaa sen. "Paluu keskeytyksestä" -käskyn (RTI) suorittaminen lopettaa keskeytyspalvelurutiinin. RTI -käsky aiheuttaa prosessorin aikaisemman tilan palauttamisen ja lataa ohjelmalaskurin paluuosoitteella ennen kuin normaali-5 ohjelman suorittamista jatketaan.
Edellä selostettu keskeytyksen suoritusmenetelmä on hidas, koska siinä on ylimääräisiä keskeytyksen käsittelyyn tarvittavia yleisjaksoja. Keskeytyksen palvelussa kohdataan aina epävarma määrä viivettä odotettaessa sen hetkisen käs-10 kyn loppuunsuorittamista. Alkuperäisen keskeytysosoitteen määrittäminen on myös tehotonta, johtuen ajasta, joka tarvitaan keskeytysvektori-informaation hakemiseen. Lisäksi, sen jälkeen, kun alkuosoite on ladattu ohjelmalaskuriin, tarvitaan aikaa keskeytyspalvelurutiinin ensimmäisen käs-15 kyn hakemiseksi ja dekoodaamiseksi ennen kuin suoritus voi alkaa. Prosessorin hyötysuhde pienenee, koska prosessori pakotetaan olemaan joutotilassa ohjelmalaskurin korvauksen aiheuttamien vuomuutosoperaatioiden aikana. Lopuksi kohdataan viivettä, kun suoritetaan RTI -käsky, johtuen ajasta, 20 joka tarvitaan palauttamaan prosessorin aikaisemmat tila-olosuhteet ja suorittamaan vuomuutos normaaliin käskyvir-taan.
Toiset ovat minimoineet tähän keskeytyksen käsittelymenetelmään liittyvän yleisajan (overhead) vähentämällä 25 niiden rekistereiden lukumäärää, jotka tallennetaan kun keskeytykset tapahtuvat. Toiset ovat yksinkertaistaneet vaiheita, jotka tarvitaan keskeytyspalvelurutiinin alku-osoitteen saamiseksi. Sen sijaan, että käyttävät kaavaa keskeytyspalvelurutiinin osoitteen laskemiseksi, toiset 30 ovat tallentaneet alkuosoitteen kiinteään paikkaan ohjelma-muistissa tai yksinkertaisesti pakottaneet prosessin välittömästi hyppäämään kiinteään paikkaan. Vaikka tällaiset tekniikat minimoivat keskeytyksen yleisajan, tehottomuutta on yhä olemassa. Käskyn haku, dekoodaus ja suoritusmekanismit 35 on moderneissa prosessoreissa usein liukuhihna muodossa 90804 3 (pipelined), niin että käskyn esihakumekanismit voivat olla limitettyjä käskyn suorittamisen kanssa käskyjen hakemiseksi ja dekoodaamiseksi etukäteen. Seurauksena käskyliukuhihna on normaalisti täynnä, kun keskeytyspyyntö vastaanotetaan.
5 Siksi liukuhihnalla olevat käskyt täytyy poistaa keskeytyksen suorittamisen aikana ja viivettä kohdataan käskyn haussa, dekoodauksessa ja suorittamisessa eri osoitteessa, joka liittyy keskeytyspalvelurutiiniin. Tämä vuomuutosoperaatio aiheuttaa suoritusjaksojen, menettämistä liukuhihnatyyppisis-10 sä dataprosessoreissa.
Toinen tavallinen keskeytysten suorittamismenetelmä on tunnettu käskyn lisäyksenä (jamming). Tässä menetelmässä keskeytyspyyntöä ei palvella välittömästi, vaan se pidetään voimassa käskyn suoritusrajaan asti. Sen hetkisen käskyn 15 lopettamisen jälkeen prosessori tuottaa keskeytyksen hyväk-symissignaalin oheislaitteelle. Vasteena oheislaite, joka pyytää keskeytystä, tuottaa yhden käskyn, sellaisen kuten "hyppy aliohjelmaan" -käskyn, joka lisätään käskyrekisteriin. "Hyppy aliohjelmaan" -käskyn suorittaminen lataa ohjelma-20 laskurin keskeytyspalveluohjelman alkuosoitteella. Keskey-tyspalveluohjelman loppuun saattamisen jälkeen RTI -käsky lataisi paluuosoitteen takaisin ohjelmalaskuriin. Jos lisätty käsky ei ole "hyppy aliohjelmaan" -käsky, lisätty käsky suoritetaan yhden käskyn omaavana palveluohjelmana, 25 jossa on sisäinen "paluu keskeytyksestä" (RTI). Käskyn lisäämisen aikana ohjelmalaskurin vanha sisältö pidetään väliaikaisesti vakiona. Tämä mahdollistaa normaalin ohjelman jatkaa suorittamistaan ilman paluuosoitetta.
Käskyn lisäystekniikassa prosessori odottaa kunnes 50 sen hetkinen käsky lopettaa suorittamisensa ennen kuin keskeytyksen hyväksymissignaali hakee lisätyn keskeytys-palveluohjelmakäskyn. Prosessori odottaa myös kunnes lisätyn keskeytyspalveluohjelmakäskyn suorittaminen päättyy ennen kuin se hakee normaalin ohjelman seuraavan käskyn.
34 Molemmista näistä vuomuutosoperaatioista on seurauksena 4 hukkaanmenneitä yleisjaksoja. Lisäksi käskyn lisäyskeskeytys-järjestelmässä keskeyttävän oheislaitteen täytyy olla suunniteltu tiettyä prosessoria varten, jotta aikaansaadaan oikea lisätty keskeytyskäsky oikealla sähköisellä ajoituksel-5 la. Tämä rajoittaa muutamien kaupallisesti saatavilla olevien prosessorien yhteen sopivuutta erilaisiin oheislaitteisiin .
Keksinnön lyhyt kuvaus Täten esillä olevan keksinnön kohteena on aikaansaa-10 da dataprosessori, jossa on parannettu keskeytyspalvelu, joka käyttää käskyn esihaun uudelleensuuntausta.
Esillä olevan keksinnön toisena kohteena on aikaansaada parannettu väline dataprosessoriohjelman suorittamisen keskeyttämiseksi pyytävää laitetta palvelemista varten.
15 Esillä olevan keksinnön vielä eräänä kohteena on aikaansaada parannettu väline niiden yleissuoritusjaksojen minimoimiseksi, jotka menetetään dataprosessorissa, kun haetaan ja dekoodataan käskyjä keskeytettäessä ja palattaessa pääohjelmaan, jota dataprosessorilla ollaan suoritta-20 massa.
Toteutettaessa esillä olevan keksinnön yllä mainittuja ja muita kohteita on aikaansaatu, yhdessä muodossa, ohjausyksikkö dataprosessorin varustamiseksi käskyillä suorittamista varten. Tämä ohjausyksikkö selektiivisesti aikaan-25 saa esihaetut normaalikäskyt, kun keskeytyspyyntö oheislaitteelta puuttuu. Ennalta määrätty määrä esihaettuja keskeytyskäskyjä aikaansaadaan vasteena keskeytyspyynnölle. Esihaetut käskyt dekoodataan ennen kuin ne viedään data-prosessorille. Menetelmä on toteutettu esillä olevassa kek-30 sinnössä sellaisten yleissuoritusjaksojen eliminoimiseksi, joissa dataprosessori ei suorita lainkaan käskyjä. Lisä-jaksot liittyvät keskeyttävään käskyvirtaan keskeytyspal-veluohjelman suorittamiseksi vasteena keskeytyspyynnölle. Pyyntö vastaanotetaan keskeytyksen ohjauspiiristöllä nor-35 maalin ohjausyksiköltä dataprosessorille kulkevan käsky- h 90804 5 virran keskeyttämiseksi. Normaalikäskyjen esihaut uudel-leensuunnataan, jotta aikaansaadaan ainakin yksi keskeytys-käskyn esihaku. Keskeytyskäskyn esihaku tai esihaut aloitetaan ennen kuin esihaetut normaalikäskyt lopettavat suo-5 rittamisen ja ennen sen dekoodaamista, onko viimeisimpänä esihaettu normaalikäsky monisanakäsky, jota ei ole täydellisesti esihaettu. Keskeytyskäskyn esihaku uudelleensuunnataan sitten jatkamaan normaalikäskyjen esihakujen suorittamista. Normaalikäskyjen esihaut aloitetaan ennen kuin esihaettu 10 keskeytyskäsky tai -käskyt lopettavat suorittamisen ja ennen kuin esihaettu keskeytyskäsky tai -käskyt on dekoodattu sen määrittämiseksi, onko viimeisimpänä esihaettu keskeytyskäsky monisanakäsky, jota ei ole vielä täydellisesti esihaettu.
15 Nämä ja muut kohteet, piirteet ja edut tulevat selvemmin ymmärretyksi seuraavasta yksityiskohtaisesta selostuksesta, joka suoritetaan yhdessä oheisten piirrosten kanssa.
Piirrosten lyhyt kuvaus 20 Kuvio 1 havainnollistaa taulukkomuodossa käskyvirran käsittelyä tunnetussa dataprosessorissa;
Kuvio 2 havainnollistaa taulukkomuodossa käskyvirran käsittelyä toisessa tunnetussa dataprosessorissa;
Kuvio 3 havainnollistaa taulukkomuodossa käskyvirran 25 käsittelyä vielä yhdessä tunnetussa dataprosessorissa;
Kuvio 4 havainnollistaa lohkokaaviomuodossa data-prosessoria, joka käyttää esillä olevan keksinnön mukaista käskyn esihaun uudelleensuuntausta;
Kuvio 5 havainnollistaa taulukkomuodossa käskyvirran 30 käsittelyä esillä olevan keksinnön dataprosessorissa.
Keksinnön yksityiskohtainen kuvaus
Kuviossa 1 esitettynä on tunnetun dataprosessorin käskyvuokaavio, jossa ei ole käskyn esihakua ja jota käytetään monissa kaupallisesti saatavilla olevissa dataproses-35 soreissa. Siinä on havainnollistettu kahdeksantoista käsky-jaksoa, joissa keskeytyskäsky i suoritetaan käskyjen n-1, 6 n, n+1 ja n+2 suorittamisen aikana. Keskeytyspyyntö voi olla vastaanotettu oheislaitteelta millä tahansa hetkellä normaalien ohjelmakäskyjen suorittamisen aikana. Ainoastaan havainnollisuustarkoituksella oletetaan, että jossakin pis-5 teessä käskyn n suoritusjakson aikana (käskyjakso 6) vastaanotetaan keskeytyspyyntö. Kuvion 1 dataprosessorijärjestelmä toimii sillä tavoin, että keskeytyspyynnöt pidetään voimassa käskyn suoritusrajän alkuun asti, niin että sen hetkisen käskyn suorittamisen loppuun saattaminen varmiste-•10 taan. Keskeytysten palveleminen käskyjaksorajoilla mahdollistaa prosessorin tilan määrittämisen jokaisen käskyn lopussa. Tunnettu tilakone myös yksinkertaistaa informaatiota, joka täytyy tallentaa ennen kuin keskeytys palvellaan. Kuitenkin voi olla olemassa useita viivejaksoja ennen kuin 15 keskeytyspyyntö on todella hyväksytty. Jokaiseen käskyyn liittyy kolme erillistä operaatiota, jotka ovat haku-, dekoodaus- ja suoritusoperaatiot. Kuten voidaan helposti nähdä, jokaista jaksoa kohden, jossa käsky suoritetaan, on kaksi jaksoa, joista kutakin on merkitty "X":lla, joiden 20 aikana ei tapahdu mitään käskyn suoritusta. Viivettä tavataan myös keskeytyksen suorittamisessa johtuen suoritettavaa keskeytysohjelmaa vastaavan keskeytyksen alkuosoitteen tai -vektorinumeron hakemisesta (ei esitetty kuviossa 1). Jokaisen joutosuoritusjakson, jota esitetään "X":llä, aika-25 na joko tapahtuu tulevan käskyn haku tai suoritetaan tulevan käskyn dekoodaus. Keskeytyskäskyt (i) ja paluut keskeytyksistä (RTI) käsitellään tyypillisesti koneella samalla tavoin kuin kaikki muut normaalit ohjelmakäskyt. Keskeytys-pyyntöihin liittyvien viiveiden lisäksi kuvion 1 datapro-30 sessilla on kaksi yleisjaksoa, jotka liittyvät jokaiseen suoritusjaksoon, ja se on äärimmäisen tehoton.
Kuviossa 2 on esitettynä toisen tunnetun dataproses-sorin käskyvirtakaavio, jossa ei ole käskyn esihakua ja joka käyttää erilaista keskeytystekniikkaa, joka tunnetaan 35 käskyn lisäyskeskeytyksenä. Kuten voidaan helposti nähdä, 90804 7 käskyn lisäyksellä tarvitaan ainoastaan 15 käskyjaksoa suorittamaan sama määrä ohjelmakäskyjä ja keskeytyskäskyt, jotka suoritettiin kahdeksassatoista käskyjaksossa kuviossa 1. Ainoastaan havainnollisuuden vuoksi oletetaan, että asynkro-5 ninen keskeytyspyyntö vastaanotetaan jonakin aikana käskyn n (kuudes käskyjakso) suoritusjakson aikana. Keskeytyspyyntö pidetään jälleen voimassa sen hetkisen käskyn suorittamisen loppuun asti. Prosessoreissa, jotka käyttävät käskyn lisäystä, keskeyttävän oheislaitteen täytyy sijoittaa oikea käsky 10 prosessorin käskyrekisteriin keskeytyskäskyn lisäämiseksi prosessoriin. Prosessori vastaisi oheislaitteelle keskeytys-tilakoodilla. Siten keskeyttävän oheislaitteen täytyy olla prosessorille ominainen. Vaikka ainoastaan yksi käsky suoritetaan joka kolmas käskyjakso, mitään paluuta keskeytys-15 käskystä ei tarvitse suorittaa, kun keskeytyskäsky on lisätty käskyrekisteriin. Tämän vuoksi tarvitaan kolme jaksoa vähemmän suorittamaan sama määrä käskyjä kuin verrattuna kuvion 1 prosessoriin. Kuitenkin myös tässä tekniikassa on olemassa yleisjaksoja, koska keskeytyskäskyä ei haeta eikä 20 dekoodata ennen käskyjakson rajaa ja normaalia ohjelmakäskyä ei haeta eikä dekoodata ennen keskeytyspalveluohjelman loppuun saattamista.
Kuviossa 3 on esitetty virtauskaavio vielä yhden tyyppiselle tunnetulle dataprosessorille, jolla on käsky 25 liukuhihna-arkkitehti ja käskyjen esihaku. Kuvion 3 data- prosessorissa käskyt esihaetaan, niin että käskyt ovat saatavilla sillä hetkellä, kun käskyn tulee olla dekoodattu.
Tämä esihakutekniikka eliminoi viiveen, joka liittyy käskyjen hakuun ja dekoodaamiseen. Se olettaa, että käskyt suo-30 ritetaan jonossa. Ainoastaan 12 käskyjaksoa vaaditaan suorittamaan sama määrä käskyjä, joka suoritettiin kuvioiden 1 ja 2 prosessoreilla. Havainnollisuuden vuoksi oletetaan, että keskeytyspyyntö oheislaitteelta tapahtuu jollakin ajan-hetkellä käskyn n (neljäs käskyjakso) suoritusjakson aikana.
35 Taaskaan keskeytyskäskyä ei haeta välittömästi, vaan se 8 haetaan sen hetkisen käskyn loppuun suorittamisen jälkeen.
Kun esihakukyky on olemassa, käsky voidaan suorittaa samalla kun toista käskyä dekoodataan ja samalla kun vielä yhtä käskyä haetaan. Kuitenkaan jaksoissa, joissa ensimmäi-5 nen keskeytyskäsky haetaan ja dekoodataan, ei saateta suorittaa mitään käskyä. Seurauksena keskeytyskäskyn toteuttamisen ympärillä on kokonaisuutena neljä jaksoa, joiden aikana ei tapahdu käskyn suorittamista. Käskyn esihaku ei ole tehokas eliminoitaessa yleisjaksoja vuomuutosoperaatioiden 10 aikana. Käskyn esihaku kuitenkin oleellisesti pienentää niiden käskyjaksojen lukumäärää, jotka tarvitaan suorittamaan sama määrä käskyjä kuin tarvittiin kuvioiden 1 ja 2 prosessoreissa.
Kuviossa 4 on esitettynä keksinnön mukainen ohjelman 15 ohjausyksikkö 10 dataprosessoria varten. Ohjelmalaskurilla 14 on ensimmäinen napa, joka on kytketty ohjelmamuistin 15 sisääntuloon ohjelmaosoiteväylän 16 kautta. Ohjelmamuistil-la 15 on ulostulo, joka on kytketty esihakurekisterin 18 ensimmäiseen sisääntuloon ohjelmadataväylän 19 kautta.
20 Esihakurekisterin 18 ensimmäinen ulostulo on kytketty käs-kydekooderin 22 ensimmäiseen sisääntuloon. Käskydekooderin 22 ulostulo on kytketty käskyrekisterin 24 ensimmäiseen sisääntuloon. Esihakurekisterin 18 toinen ulostulo on kytketty sekä käskydekooderin 22 että käskyrekisterin 24 toisiin 25 sisääntuloihin. Käskyrekisterin 24 ohjausulostulo on kytketty ohjelmalaskurin 14 ensimmäiseen sisääntuloon. Pinomuisti-rekisterillä 26 on sisääntulo/ulostulonapa, joka on kytketty ohjelmalaskurin 14 ensimmäiseen sisääntulo/ulostulonapaan. Ohjelmalaskurin 14 toinen sisääntulo on kytketty sekä yhdel-30 lä kasvatuspiirin 28 sisääntuloon että ohjelmaosoiteväylään 16. Yhdellä lisäyspiirin 28 ulostulo on kytketty esihakulas-kurin 30 ensimmäiseen sisääntuloon. Esihakulaskurin 30 ulostulo on kytketty ohjelmaosoiteväylään 16. Keskeytyspyyntö-signaali on kytketty keskeytysesihaun ohjauspiirin 34 si-35 sääntuloon ja keskeytysosoitegeneraattoripiirin 36 ensimmäiseen sisääntuloon. Keskeytysesihaun ohjauspiirin 34 90804 9 ulostulo tuottaa keskeytyshakusignaalin ja se on kytketty keskeytysosoitegeneraattoripiirin 36 toiseen sisääntuloon, esihakulaskurin 30 toiseen sisääntuloon ja esihakurekisterin 18 toiseen sisääntuloon.
5 Toiminnan osalta käsitellään aluksi ohjausyksikköä 10, joka toimii ilman keskeytyspyyntöjä. Käskyrekisteri 24 tallentaa käskyn, joka odottaa dataprosessorilla tapahtuvaa suorittamista ja joka on seuraava dataprosessorilla suoritettava käsky. Ohjelmalaskuri 14 toimii käskyrekisterissä 10 24 olevaa käskyä välittömästi seuraavan käskyn käskyosoit- teen tallentamiseksi ja kytkemiseksi ohjelmamuistiin 15 ohjelmaosoiteväylän 16 kautta. Ohjelmamuisti 15 on muisti, joka tuottaa dataprosessorilla suoritettavat ohjelmakäskyt ohjelmaosoitteita vastaten. Pino 26 on muistirekisteri, jo-15 ka voi selektiivisesti tallentaa ja tuottaa ohjelmalasku-rin 14 osoitesisällöt. Esihakulaskuri 30 toimii tavalla, joka on muutoin analoginen ohjelmalaskurin 14 kanssa paitsi, että esihakulaskuri 30 osoittaa yhden käskyosoitteen verran eteenpäin ohjelmalaskurista 14 ja toimii käskyosoit-20 teen saamiseksi ohjelmamuistiin 15 ohjelmaosoiteväylällä 16. Kun esihakulaskuri 30 kytkee seuraavan käskyn hakuosoitteen ohjelmamuistiin 15 osoiteväylän 16 kautta, esihakulaskuri 30 saman aikaisesti kytkee seuraavan käskyn hakuosoitteen sekä ohjelmalaskurille 14 että inkrementoijalle 28 osoite-25 väylän 16 kautta. Inkrementoija 28 kasvattaa haettua käsky-osoitetta yhdellä ja kytkee kasvatetun käskyosoitteen esi-hakulaskurille 30, joka päivitetään. Tällä tavoin esihakulaskuri 14 toimii aina osoittaen kaksi käskyosoitetta eteenpäin siitä käskystä, jota dataprosessorilla suorite-30 taan. Esihakulaskuri 30 on käskyn hakuosoitteiden normaali-lähde, kun käskyt käsitellään jonossa. Ohjelmalaskuri 14 on käskyn hakuosoitteiden vaihtoehtoinen lähde, kun vuon-muutosoperaatio tapahtuu. Siten ennen kuin käsky tallennetaan käskyrekisterillä 24, kytketään käskyt ohjelmamuistis-35 ta 15 esihakurekisteriin 18 ja käsky dekooderiin 22.
1 o
Esihakurekisteri 18 ja käskydekooderi 22 toimivat yhdessä, jotta dekoodattu käsky tallennetaan ja kytketään käskyre-kisteriin 24. Tällä tavoin ohjausyksikkö 10 toimii ennalta määrätyn ohjelman käskyjen käsittelemiseksi ja tuottamisek-5 si dataprosessorilla suorittamista varten.
Oletetaan nyt, että oheislaite, joka on kytketty dataprosessoriin, haluaa keskeyttää dataprosessorin toiminnan palvelun pyytämiseksi dataprosessorilta. Oheislaite tuottaa keskeytyspyyntösignaalin, joka on kytketty sekä 10 keskeytysesihaun ohjauspiirille 34 ja keskeytysosoitteen generaattoripiirille 36. Keskeytysesihaun ohjauspiiri 34 toimii oheislaitteen keskeytyspyynnön tunnistamiseksi ja esihakulaskurin 30 suorittaman käskyjen haun uudelleen suuntaamisen aikaansaamiseksi. Keskeytysesihaun ohjauspii-15 ri 34 toteuttaa tämän toiminnan aikaansaamalla keskeytys-hakusignaalin, joka aiheuttaa haun uudelleen suuntauksen ennalta määrätylle määrälle käskysanahakuja ja ohjaa esiha-kumekanismia. Keskeytyshakusignaali on kytketty keskeytys-osoitegeneraattorille 36, esihakulaskurille 30 ja esihaku-20 rekisterille 18. Vasteena sekä keskeytyspyyntösignaalille että keskeytyshakusignaalille keskeytysosoitegeneraattori 36 synnyttää keskeytysosoitteita, jotka ilmaisevat missä keskeytyskäsky tai käskyt sijaitsevat ohjelmamuistissa 15. Keskeytyspyyntösignaali ilmoittaa keskeytysosoitegeneraat-25 torille 36 mitä keskeytyspalvelurutiineista, joille osoi-tegeneraattori 36 on aikaansaanut osoitteet, itse asiassa ollaan pyytämässä. Keskeytyshakusignaali itse asiassa ohjaa sitä, milloin keskeytysosoitegeneraattorin 36 sallitaan tuottaa keskeytysosoitteita ohjelmaosoiteväylälle 16. Kes-30 keytyshakusignaali myös estää esihakulaskuria 30 tuottamasta käskyosoitteita ohjelmaosoiteväylälle 16, kun keskeytysosoitegeneraattori 36 on aktivoitu.
Ennalta määrätty määrä keskeytyskäskyosoitteita voidaan lisätä käskyvirtaan ohjelmaosoiteväylän 16 ja ohjelma-35 muistin 15 kautta. Jopa vaikka keskeytysosoitteet itse li 90804 1 1 asiassa tuotetaan keskeytysosoitegeneraattorilla 36, voidaan dataprosessorilla suorittaa useita käskyjä ennen kuin keskeytysohjelman suorittaminen alkaa, johtuen ajasta, joka tarvitaan keskeytyskäskyn hakemiseen ja dekoodaamiseen.
5 Keskeytysesihaun ohjauspiiri 34 ja keskeytysosoitegeneraat-toripiiri 36 voivat selektiivisesti lisätä ennalta määrätyn määrän käskyosoitteita, jotka tarvitaan palvelemaan jonkin tyyppistä keskeytystä, käskyvirtaan. Kun keskeytysosoitteet on lisätty käskyvirtaan ja kytketty käskyrekisterille 24, 10 ohjelmalaskurin 14 sisältö pidetään vakiona pitosignaalilla, jonka käskyrekisteri 24 tuottaa vasteena keskeytyssignaalille. On huomattava, että ohjelmalaskuria 14 ei pidetä vakiona välittömästi keskeytyspyyntösignaalin vastaanottamisen jälkeen, vaan se jatkaa inkrementointia ja sitä käsitellään 15 käskyillä viimeisen käskyn loppuun asti ennen keskeytysohjelman suorittamista. Keskeytyshakusignaali toimii myös sen ilmoittamiseksi, että esihakurekisterissä 18 oleva käsky on keskeytyskäsky. Sekä keskeytyskäskyn että keskeytyssignaali-ilmaisun sisällöt on kytketty käskydekooderille 22 20 ja sitten käskyrekisterille 24. Keskeytyssignaalin vastaanottamisen jälkeen käskyrekisteri 24 tuottaa pitosignaalin ohjelmalaskurille 14. Niin pian kuin keskeytysosoite tai osoitteet on tuotettu osoitegeneraattorilla 36 keskeytyshakusignaali poistaa osoitegeneraattorin 36 toiminnasta ja 25 aktivoi esihakulaskurin 30. Kun keskeytysohjelma on lopettanut suorittamisen, esihakulaskuri 30 osoittaa kohti seuraa-vaa käskyä normaali ohjelmassa, jonka käsittelyä tullaan jatkamaan dataptosessorilla. Esihakulaskurin 30 sallitaan jälleen tuottaa normaali ohjelman käskyosoitteita ohjelma-30 osoiteväylältä 60 ja ohjelmalaskurilla 14 ei ole enää siihen tallennettua arvoa pidettynä.
Jokainen piireistä, jotka muodostavat kuvion 4 ohjausyksikön 10, voidaan helposti toteuttaa tunnetuilla kaupallisesti saatavilla olevilla piireillä. Keskeytysesi-35 haun ohjauspiiri 34 voi olla toteutettu monella tavoin.
12
Ohjauspiiri 34 voisi olla suunniteltu väliaikaisesti uudel-leensuuntaamaan käskyjen hakuvirta kiinteän hakujaksojen lukumäärän ajaksi, sellaisen kuten yksi tai kaksi. Ohjaus-piiri 34 voisi myös olla toteutettu käyttäen rekistereitä, 5 niin että jokaiselle keskeytykselle voisi olla ohjelmoitu ennalta määrätty määrä hakuja. Vaihtoehtoisesti laskureita voitaisiin käyttää ohjauspiirissä 34 laskemaan ennalta määrätty määrä keskeytyskäskyhakuja. Monia muita tapoja voidaan käyttää aikaan saamaan selostetut toiminnot, joita ohjaus-10 piiriltä 34 ja osoitegeneraattorilta 36 vaaditaan.
Kuviossa 5 on esitettynä käskyjakson suorituksen esimerkki vuokaa vio , kun käytetään kuvion 4 ohjausyksikköä 10. Kuten voidaan helposti huomata, voidaan keskeytyspyynnön, joka tapahtuu jossakin pisteessä käskyn n (käskyjakso neljä) 15 suoritusjakson aikana, välissä suorittaa useita peräkkäisiä käskyjä. Toisin kuin aikaisemmissa piireissä esillä oleva keksintö suorittaa normaali ohjelman käskyt ja epäsynkroni-set keskeytyspyynnöt menettämättä yhtään jaksoa yleisenä.
Kun ohjausyksikkö 10 tunnistaa keskeytyspyynnön, ohjausyk-20 sikkö 10 välittömästi uudelleen suuntaa käskyn haun odottamatta käskyrajan loppua. Samalla tavoin keskeytyspalvelu-ohjelman hakujen loppuun suorittamisen jälkeen käskyjen hakuvirta uudelleen suunnataan välittömästi ja normaali ohjelman käskyt haetaan ja dekoodataan ennen keskeytyspal-25 veluohjelman loppuun saattamista. Koska keskeytysosoiteha-kuja ei suoriteta käskyrajoilla, yleisjaksot, joita esiintyy odotettaessa sen hetkisen käskyn suorittamisen loppuun saattamista ennen keskeytyspalvelun alkamista, minimoituvat.
Yleisjaksot on eliminoitu esillä olevalla keksinnöl-30 lä seurauksena pääasiallisesti siitä tosiasiasta, että käskyjen esihaut voidaan suorittaa odottamatta kulloinkin suoritettavan käskyn loppuun saattamista. Koska keskeytyskäs-kyt lisätään liukuhihnatyyppiseen käskyvirtaan niin pian kuin mahdollista keskeytyspyynnön jälkeen, on piirin toimin-.35 nassa muutamia tarpeellisia rajoituksia. Pitäisi helposti ymmärtää, että rajoitukset riippuvat suuressa määrin I: 90804 13 siitä tietystä piiristöstä, joka valitaan toteuttamaan esillä oleva keksintö, ja rajoitukset voivat siksi vaihdella vastaavasti.
Ensinnäkin, jotta taataan, että kyseisellä hetkellä 5 suoritettava käsky voidaan suorittaa loppuun jättämättä osaa käskystä suorittamatta tai menettämättä osaa käskystä, kaikilla käskyillä täytyy olla sama koko, joka ei ole suurempi kuin niiden rekistereiden lukumäärä, jotka on sijoitettu käskyliukuhihnalle ohjelmamuistin 15 ja dataprosesso-10 rin väliin. Tämä takaa, että jokainen käsky, joka on aloittanut suorittamisen, saattaa suorittamisen loppuun, koska kaikki käskyhaut tätä käskyä varten on jo tehty. Ohjausyksikön 10 havainnollistetussa muodossa on ohjelmamuistin 15 ja dataprosessorin välissä olevien rekistereiden luku-15 määrä kaksi, mitä esitetään rekistereillä 18 ja 24. Siten mikään ohjausyksikön 10 käsittelemä käsky ei voi olla kooltaan suurempi kuin kaksi sanaa. Tämä käskykoon rajoitus ei kuitenkaan ole merkittävä sellaisissa dataprosessoreissa, kuten mikroprosessorit (MPU), alennetun käskymäärän tieto-20 koneissa (RISC) tai digitaalisissa signaaliprosessoreissa (DSP), jotka tyypillisesti käyttävät yksi sanaisia käskyjä. Sovellutuksissa, jotka vaativat suurempia sanakokoja kuin kaksi, voidaan käskyliukuhihnalle varustaa lisämuistirekis-tereitä.
25 Toiseksi kaikilla käsiteltävillä käskyillä on tyypil lisesti operaatiokoodiosa ja informaatio-osa. Operaatio-koodiosa on aina käskyn ensimmäisessä sanassa. Informaatio-osa sisältyy ensimmäiseen käskysanaan ja seuraaviin käskysanoihin, mikäli sellaisia on. Käskyrekisterin 24 täytyy 30 määrittää pitäisikö käskyrekisterissä olevan operaatiokoo-din aloittaa suorittaminen tai olla keskeytetty. Käskyre-kisteri 24 vastaanottaa dekoodatun käskypituuden käskydekoo-dedilta 22 ja ilmoituksen esihakurekisterissä 18 olevasta keskeytyskäskystä keskeytyssignaalin välityksellä esihaku-35 rekisteristä 18. Jos käsky sisältyy täydellisesti käskyre- 1 4 kisteriin 24, käsky voi aloittaa suorittamisen. Jos käsky ei täydellisesti sisälly käskyrekisteriin 24 ja tarvitsee seuraavan käskysanan esihakurekisteristä 18, keskeytyssignaali esihakurekisteristä 18 ilmoittaa sisältääkö esihaku-5 rekisteri seuraavan käskysanan. Jos keskeytyssignaali ilmoittaa normaalin käskyhaun, uusi käsky voi aloittaa suorittamisen, koska kaikki käskysanat on haettu. Jos keskeytys-signaali ilmoittaa keskeytyskäskyhaun, uusi käsky täytyy keskeyttää ja sen täytyy olla ensimmäinen käskysana, joka 10 uudelleenhaetaan sen jälkeen, kun keskeytyskäskyhaut on suoritettu loppuun. Tässä esimerkissä käytettäisiin keskeytetyn käskysanan uudelleenhakemiseksi ohjelmalaskuria 14 esihakulaskurin 30 sijasta ensimmäisen normaalin käskyhaun ajan. Keskeytetty käsky aiheuttaa yhden suoritusjakson mene-15 tyksen, mutta sillä on mitätön vaikutus suorituskykyyn, koska useimmat käskyt ovat ainoastaan yhden sanan pituisia.
Jos kaikki käskyt ovat yhden sanan pituisia, käskyjä ei koskaan keskeytetä.
Kolmanneksi oletamme nyt, että muutamat niistä käs-20 kyistä, jotka esiintyvät normaalissa käskyvirrassa, ovat vuonmuutoskäskyjä, jotka saavat käskyvuon muuttamaan suuntaa. Esimerkiksi vuonmuutoskäsky voisi aiheuttaa ohjelman suorittamisen siirtymisen ohjelmamuistissa 15 olevaan ennalta määrättyyn aliohjelmaan. Vuonmuutoskäsky tyypillisesti 25 saattaa dataprosessorin hylkäämään esihakurekisterin 18 sisällön ja kytkemään hyppyosoitteen ohjelmalaskuriin 14 oh-jelmaosoiteväylän 16 kautta. Onko käsky vuonmuutoskäsky vai normaali käsky voidaan helposti määrittää käskydekooderilla 22 käskyn operaatiokoodiosasta. Jos käskyrekisteri 24 vas-30 taanottaa keskeytyssignaalin, kun käskyrekisterissä 24 on vuonmuutoskäsky, esihakurekisterin 18 sisältöä ei voida hylätä kuten aikaisemmin selostettiin normaalin käskyn käsittelylle. Muutoin käskyrekisterissä 18 oleva keskeytyskäsky voitaisiin hylätä pysyvästi ja keskeytyspyyntö jäisi huo-35 mioimatta.
90804 1 5
Lopuksi sellaiset vuonmuutoskäskyt, kuten hyppy aliohjelmaan, saattavat esiintyä myös keskeytyskäskyvirras-sa. Ensisijaisessa muodossa keskeytyshakujen lukumäärä on tyypillisesti vain yksi tai kaksi hakua. Tämä sallii nopean 5 keskeytyspalveluohjelman, jossa yksi käsky riittää palvele maan keskeyttävää oheislaitetta. Pitempiä keskeytyspalvelu-ohjelmia varten on keskeytyskäskyvirtaan sijoitettu ensimmäiseksi käskyksi aliohjelmaanhyppykäsky. Tämä aiheuttaa vuonmuutoksen pitempään keskeytyspalveluohjelmaan, joka 10 suoritetaan normaalina käskyvirtana. Jos käskyrekisterissä 24 olevan käskyn operaatiokoodi on vuonmuutoskäsky ja se on myös keskeytyskäsky, esihakurekisterin 18 sisältö saatetaan hylätä, jos esihakurekisteri sisältää normaalin käskyn. Jos esihakurekisteri 18 sisältää keskeytyskäskyn, esihaku-15 rekisterin 18 sisältöä ei voida hylätä. Kuten aikaisemmin selostettiin, tämä varmistaa, että keskeytyspyyntöjä ei hylätä.
Tähän mennessä pitäisi olla selvää, että on aikaansaatu prosessorin ohjausyksikkö, joka minimoi yleisjaksot.
20 Ohjausprosessori aikaansaa siihen liittyvän prosessorin toimintojen maksimaalisen hyväksikäytön jokaisen käskyjak-son aikana. Näin voidaan tehokkaasti toteuttaa hyvin nopea keskeytyspalvelu käytettäväksi yhden sanan tai kahden sanan käskyryhmissä, joita yleisesti käyttävät MPU-, RISC- ja 25 DSP -dataprosessorit.
Vaikka suoritusmuoto on selostettu käyttäen tiettyjä oletettuja parametreja, pitäisi ymmärtää, että piirin tai annettujen parametrien tietyt ilmeiset modifikaatiot tulevat ilmeisiksi alan ammattimiehille ja että keksinnön suo-30 japiirin pitäisi olla rajoitettu ainoastaan oheisten patenttivaatimusten suojapiirillä.

Claims (4)

16
1. Tiedonkäsittelyjärjestelmässä, jossa on data-prosessori käskyjen suorittamiseksi ja ohjausyksikkö (10) 5 mainittujen käskyjen tuottamiseksi dataprosessorille, mainitun ohjausyksikön (10) selektiivisesti tuottaessa esihaetut normaali käskyt, kun keskeytyspyyntö oheislaitteelta puuttuu, ja sen tuottaessa esihaetut keskeytyskäskyt vasteena keskeytyspyynnölle, menetelmä 10 sellaisten suoritusjaksojen eliminoimiseksi, joissa ei suoriteta yhtään käskyä dataprosessorilla ja jotka liittyvät keskeyttävään käskyvuohon keskeytyspal-veluohjelman suorittamiseksi vasteena keskeytyspyynnölle, jolloin pyyntö oheislaitteelta normaalin käskyvirran 15 keskeyttämiseksi ohjausyksiköltä dataprosessorille ilmaistaan, tunnettu siitä, että menetelmä käsittää vaiheet: muodostetaan ohjaussignaali (Pito) ainakin yhden käskyjakson ajaksi vasteena pyynnölle keskeyttää normaali 20 käskyvirta; uudelleensuunnataan normaalit käskyjen esihaut ainakin yhden käskyjakson ajaksi vasteena ohjaussignaalille (Pito), jotta aikaansaadaan ainakin yksi keskeytyskäskyn esihaku, mainitun ainakin yhden keskeytyskäskyn esihaun ollessa 25 aloitettu ennen mainittujen esihaettujen normaali käskyjen loppuunsuorittamista; ja uudelleensuunnataan mainittu ainakin yksi keskeytys-käskyn esihaku välittömästi ainakin yhden ohjaussignaalin (Pito) käskyjakson keston jälkeen jatkamaan normaali 30 käskyjen esihakujen aikaansaamista, mainittujen normaali käskyjen esihakujen ollessa aloitettu ennen kuin mainitun ainakin yhden esihaetun keskeytyskäskyn suorittaminen on saatettu loppuun.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että se käsittää vaiheet: mainitun ainakin yhden keskeytyskäskyn esihaun aloittamisen 90804 17 ennen sen dekoodausta, onko viimeisimpänä esihaettu normaali käsky monisanakäsky, jota ei ole täydellisesti esihaettu.
3. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että se edelleen käsittää vaiheen: mainittujen normaali käskyjen esihakujen aloittamisen ennen sen dekoodaamista, onko viimeisimpänä esihaettu kes-keytyskäsky monisanakäsky, jota ei ole täydellisesti esi-10 haettu.
4. Dataprosessorin ohjausyksikkö (10) esihaettujen normaali käskyjen tuottamiseksi dataprosessorilla suorittamista varten, joka dataprosessori voidaan 15 keskeyttää keskeytyspyyntösignaalilla ainakin yhden esihaetun keskeytyskäskyn tuottamiseksi minimoimalla käskysuoritusjaksojen menetys yleisesti keskeytyksen aikana, joka ohjausyksikkö (10) käsittää ohjelmaosoiteväylän (16) normaali käskyosoitteiden ja 20 keskeytyskäskyosoitteiden siirtämiseksi; ohjelmaosoitemuistivälineen (14), joka on kytketty ohjelmaosoiteväylään (16) selektiivisesti vastaanottamaan, tallentamaan ja tuottamaan normaali käskyosoitteita; esihakuosoitemuistivälineen (30), joka on kytketty oh-25 jelmaosoiteväylään (16) selektiivisesti tallentamaan ja tuottamaan ohj elmakäskyosoitteita; inkrementoijavälineen (28), jolla on sisääntulo kytkettynä ohjelmaosoiteväylään (16) ja ulostulo kytkettynä esihakuosoitemuistivälineeseen 30 (30), selektiivisesti inkrementoimaan esi hakuosoitemuistivälineen (30) tallentamia käskyosoitteita seuraaviin käskyosoitteisiin; joka dataprosessorin ohjausyksikkö (10) on tunnettu siitä, että se käsittää 35 keskeytyksen ohjausvälineen (34) keskeytyshaun ohjaus signaalin tuottamiseksi vasteena keskeytyksen pyyntösignaalin ilmaisemiselle ennen sen dekoodaamista, 18 onko viimeisimpänä esihaettu normaali käsky monisanakäsky, jota ei ole täydellisesti esihaettu, mainitun keskeytyshaun ohjaussignaalin kontrolloidessa milloin ennalta määrätty keskeytysosoite tai 5 useiden keskeytysosoitteiden osoitteet tuotetaan ohj elmaosoiteväylälle (16)? keskeytysosoitevälineen (36), joka on kytketty sekä ohjelmaosoiteväylään (16) että keskeytyksen ohjausvälineeseen (34) selektiivisesti tuottamaan ennalta 10 määrätty keskeytysosoite tai useiden keskeytysosoitteiden osoitteet ohjelmaosoiteväylälle (16) vasteena sekä keskeytyspyyntösignaalille että keskeytyshakusignaalille; ohjelmamuistivälineen (15), jolla on sisääntulo kytkettynä ohjelmaosoiteväylään (16) ja ulostulo 15 esihaettujen normaali käskyjen ja esihaettujen keskeytyskäskyjen tuottamiseksi vasteena normaali käskyosoitteille ja vastaavasti keskeytyskäskyosoitteille; ensimmäisen käskymuistivälineen (18), jolla on sisääntulo kytkettynä ohjelmamuistivälineeseen (15) ja 20 keskeytyksen ohjausvälineeseen (34), selektiivisesti vastaanottamaan, tallentamaan ja tuottamaan käskyt ja tuottamaan keskeytyksen hyväksymissignaali, joka ilmoittaa, että keskeytyskäsky on tallennettu; käskyn dekoodausvälineen (22), jolla ensimmäinen 25 sisääntulo kytkettynä ensimmäiseen käskymuistivälineeseen (18) keskeytyksen hyväksymissignaalin vastaanottamiseksi, toinen sisääntulo kytkettynä ensimmäiseen käskymuistivälineeseen (18) käskyn selektiivisesti vastaanottamiseksi ja ulostulo dekoodattujen käskyjen 30 selektiiviseksi tuottamiseksi; ja toisen käskymuistivälineen (24), jolla on ensimmäinen sisääntulo kytkettynä käskydekoodausvälineen (22) ulostuloon, toinen sisääntulo keskeytyksen hyväksymissignaalin vastaanottamiseksi, ulostulo 35 dekoodattujen käskyjen selektiiviseksi tuottamiseksi dataprosessorille, ja ulostulo ohjaussignaalin (Pito) tuottamiseksi ainakin yhden käskyjakson ajaksi vasteena 90804 19 pyynnölle keskeyttää normaali käskyvirta mainitun ohjelmaosoitemuistivälineen (14) sisällön pitämiseksi vakiosuuruisena. 20
FI873030A 1985-11-27 1987-07-08 Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu FI90804C (fi)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80249185 1985-11-27
US06/802,491 US4709324A (en) 1985-11-27 1985-11-27 Data processor control unit having an interrupt service using instruction prefetch redirection
US8602466 1986-11-10
PCT/US1986/002466 WO1987003394A1 (en) 1985-11-27 1986-11-10 A data processor control unit having an interrupt service using instruction prefetch redirection

Publications (4)

Publication Number Publication Date
FI873030A FI873030A (fi) 1987-07-08
FI873030A0 FI873030A0 (fi) 1987-07-08
FI90804B true FI90804B (fi) 1993-12-15
FI90804C FI90804C (fi) 1994-03-25

Family

ID=25183841

Family Applications (1)

Application Number Title Priority Date Filing Date
FI873030A FI90804C (fi) 1985-11-27 1987-07-08 Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu

Country Status (13)

Country Link
US (1) US4709324A (fi)
EP (1) EP0247175B1 (fi)
JP (1) JPH083791B2 (fi)
KR (1) KR940009100B1 (fi)
CN (1) CN1009396B (fi)
AU (1) AU6779687A (fi)
CA (1) CA1265873A (fi)
DE (1) DE3681733D1 (fi)
FI (1) FI90804C (fi)
HK (1) HK5294A (fi)
IL (1) IL80499A (fi)
SG (1) SG130093G (fi)
WO (1) WO1987003394A1 (fi)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
JPH0740225B2 (ja) * 1985-12-25 1995-05-01 日本電気株式会社 プログラムスキツプ動作制御方式
JPS6398737A (ja) * 1986-10-15 1988-04-30 Mitsubishi Electric Corp デ−タ処理装置
DE3856067T2 (de) * 1987-07-06 1998-06-10 Hitachi Ltd Datenprozessor mit einer Unterbrechungsfunktion
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
DE68927313T2 (de) * 1988-06-27 1997-05-07 Digital Equipment Corp Operandenspezifiererverarbeitung
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5006980A (en) * 1988-07-20 1991-04-09 Digital Equipment Corporation Pipelined digital CPU with deadlock resolution
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
JP2504149B2 (ja) * 1988-12-02 1996-06-05 三菱電機株式会社 命令キュ―管理装置
JPH0640316B2 (ja) * 1989-04-20 1994-05-25 工業技術院長 演算レジスタ上でのデータ待ち合せ実現方法
CA2019299C (en) * 1989-06-22 2002-01-15 Steven Frank Multiprocessor system with multiple instruction sources
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
US5287522A (en) * 1990-06-29 1994-02-15 Bull Hn Information Systems, Inc. External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
JP2556182B2 (ja) * 1990-08-29 1996-11-20 三菱電機株式会社 デ−タ処理装置
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
JP2677719B2 (ja) * 1991-05-08 1997-11-17 富士通株式会社 情報処理装置
JP2682264B2 (ja) * 1991-05-21 1997-11-26 日本電気株式会社 プログラムカウンタ装置
JPH04346127A (ja) 1991-05-23 1992-12-02 Sony Corp 電子装置
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
US5542076A (en) * 1991-06-14 1996-07-30 Digital Equipment Corporation Method and apparatus for adaptive interrupt servicing in data processing system
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
WO1993006549A1 (en) * 1991-09-19 1993-04-01 Chips And Technologies, Inc. A system for performing input and output operations to and from a processor
US5623665A (en) * 1992-01-13 1997-04-22 Sony Corporation Electronic apparatus for patching a read-only memory
JP3230262B2 (ja) * 1992-01-24 2001-11-19 ソニー株式会社 電子装置及びその固定情報修正方法
US5805902A (en) * 1993-07-02 1998-09-08 Elonex I.P. Holdings, Ltd. Structure and method for issuing interrupt requests as addresses and for decoding the addresses issued as interrupt requests
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
US5475822A (en) * 1993-11-15 1995-12-12 Motorola, Inc. Data processing system for resuming instruction execution after an interrupt and method therefor
JPH07244649A (ja) * 1994-03-08 1995-09-19 Fujitsu Ltd 割込処理分散方式
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
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
US5687339A (en) * 1995-09-14 1997-11-11 Elan Microelectronics Corp. Pre-reading and pre-decoding of instructions of a microprocessor within single cycle
US5954819A (en) * 1996-05-17 1999-09-21 National Semiconductor Corporation Power conservation method and apparatus activated by detecting programmable signals indicative of system inactivity and excluding prefetched signals
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US5907712A (en) * 1997-05-30 1999-05-25 International Business Machines Corporation Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler
US5905880A (en) * 1997-09-29 1999-05-18 Microchip Technology Incorporated Robust multiple word instruction and method therefor
US5901309A (en) * 1997-10-07 1999-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for improved interrupt handling within a microprocessor
US6044430A (en) 1997-12-17 2000-03-28 Advanced Micro Devices Inc. Real time interrupt handling for superscalar processors
US6275924B1 (en) * 1998-09-15 2001-08-14 Texas Instruments Incorporated System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time
US7401205B1 (en) * 1999-08-13 2008-07-15 Mips Technologies, Inc. High performance RISC instruction set digital signal processor having circular buffer and looping controls
US6889279B2 (en) * 2000-12-11 2005-05-03 Cadence Design Systems, Inc. Pre-stored vector interrupt handling system and method
US7007172B2 (en) 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6985986B2 (en) 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6976158B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6952711B2 (en) 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US6937084B2 (en) 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US6934728B2 (en) 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7020788B2 (en) 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US7467178B2 (en) 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US6975679B2 (en) 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
GB2400198B (en) 2003-04-04 2006-04-05 Advanced Risc Mach Ltd Controlling execution of a block of program instructions within a computer processing system
US7200719B2 (en) * 2003-07-31 2007-04-03 Freescale Semiconductor, Inc. Prefetch control in a data processing system
JP4247132B2 (ja) 2004-01-29 2009-04-02 株式会社ルネサステクノロジ 情報処理装置
CN102141904B (zh) * 2011-03-31 2014-02-12 杭州中天微系统有限公司 支持中断屏蔽指令的数据处理器
WO2013095532A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Interrupt return instruction with embedded interrupt service functionality
CN111190658B (zh) * 2020-01-08 2023-02-28 乐鑫信息科技(上海)股份有限公司 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4181934A (en) * 1976-12-27 1980-01-01 International Business Machines Corporation Microprocessor architecture with integrated interrupts and cycle steals prioritized channel
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4210960A (en) * 1977-09-02 1980-07-01 Sperry Corporation Digital computer with overlapped operation utilizing conditional control to minimize time losses
EP0020931B1 (fr) * 1979-06-21 1984-10-10 International Business Machines Corporation Dispositif exécutant des opérations d'interruption de programme pour processeur du type à appel anticipé des instructions
US4527237A (en) * 1979-10-11 1985-07-02 Nanodata Computer Corporation Data processing system
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
JPS57130998A (en) * 1981-02-04 1982-08-13 Japan Found Cancer Human interferon-beta-gene
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
IE54592B1 (en) * 1982-03-08 1989-12-06 Genentech Inc Anumal interferons, processes involved in their production, compositions containing them, dna sequences coding therefor and espression vehicles containing such sequences and cells transformed thereby
DE3220116A1 (de) * 1982-05-28 1983-12-01 Dr. Karl Thomae Gmbh, 7950 Biberach Mikrobiologisch hergestellte (alpha)- und ss-interferone, dna-sequenzen, die fuer diese interferone codieren, mikroorganismen, die diese genetische information enthalten, und verfahren zu ihrer herstellung
DE3369015D1 (en) * 1983-09-16 1987-02-12 Ibm Deutschland Arrangement in the command circuit of a pipe-line processor for instruction interrupt and report
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer

Also Published As

Publication number Publication date
KR940009100B1 (ko) 1994-09-29
EP0247175B1 (en) 1991-09-25
EP0247175A4 (en) 1988-03-22
FI873030A (fi) 1987-07-08
WO1987003394A1 (en) 1987-06-04
IL80499A0 (en) 1987-02-27
FI90804C (fi) 1994-03-25
KR880700969A (ko) 1988-04-13
IL80499A (en) 1990-06-10
JPH083791B2 (ja) 1996-01-17
SG130093G (en) 1994-02-25
JPS63501454A (ja) 1988-06-02
CA1265873A (en) 1990-02-13
AU6779687A (en) 1987-07-01
CN1009396B (zh) 1990-08-29
US4709324A (en) 1987-11-24
FI873030A0 (fi) 1987-07-08
EP0247175A1 (en) 1987-12-02
DE3681733D1 (de) 1991-10-31
CN86107934A (zh) 1987-08-12
HK5294A (en) 1994-01-28

Similar Documents

Publication Publication Date Title
FI90804B (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
US5222223A (en) Method and apparatus for ordering and queueing multiple memory requests
US5276882A (en) Subroutine return through branch history table
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4775927A (en) Processor including fetch operation for branch instruction with control tag
KR920006275B1 (ko) 데이타 처리 장치
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
US6209086B1 (en) Method and apparatus for fast response time interrupt control in a pipelined data processor
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
US6108768A (en) Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US5416911A (en) Performance enhancement for load multiple register instruction
US5978905A (en) Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
US5901309A (en) Method for improved interrupt handling within a microprocessor
EP1039375A1 (en) Method and apparatus for implementing zero overhead loops
US6237086B1 (en) 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US6609191B1 (en) Method and apparatus for speculative microinstruction pairing
US6170050B1 (en) Length decoder for variable length data
US7020769B2 (en) Method and system for processing a loop of instructions
US5237664A (en) Pipeline circuit
EP0116600B1 (en) Pre-execution next address calculating mechanism
US5838961A (en) Method of operation and apparatus for optimizing execution of short instruction branches
JPH0342723A (ja) データ処理装置
JPS60241136A (ja) デ−タ処理装置
JPS60231241A (ja) プログラム先行フエツチ制御方式

Legal Events

Date Code Title Description
BB Publication of examined application
FG Patent granted

Owner name: MOTOROLA, INC.

PC Transfer of assignment of patent

Owner name: FREESCALE SEMICONDUCTOR, INC.

Free format text: FREESCALE SEMICONDUCTOR, INC.

MA Patent expired