NO169924B - Anordning ved en mikroprogrammerbar mikroprosessor - Google Patents

Anordning ved en mikroprogrammerbar mikroprosessor Download PDF

Info

Publication number
NO169924B
NO169924B NO853807A NO853807A NO169924B NO 169924 B NO169924 B NO 169924B NO 853807 A NO853807 A NO 853807A NO 853807 A NO853807 A NO 853807A NO 169924 B NO169924 B NO 169924B
Authority
NO
Norway
Prior art keywords
register
bit
microinstruction
instruction
control
Prior art date
Application number
NO853807A
Other languages
English (en)
Other versions
NO169924C (no
NO853807L (no
Inventor
Burke B Baumann
Troy Kimberley Wilson
Original Assignee
Honeywell 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 Honeywell Inc filed Critical Honeywell Inc
Publication of NO853807L publication Critical patent/NO853807L/no
Publication of NO169924B publication Critical patent/NO169924B/no
Publication of NO169924C publication Critical patent/NO169924C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode

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)
  • Advance Control (AREA)
  • Microcomputers (AREA)

Description

Oppfinnelsen vedrører en anordning ved en mikroprogrammerbar mikroprosessor som omfatter en styreenhet, en aritmetisk og logisk enhet, og tilhørende registere, for utførelse av hver instruksjon i et forutdefinert instruksjonssett, idet hver instruksjon har et operandfelt og et operasjonskodefelt.
Prosessorer utfører et utall av instruksjoner, som kan omfatte instruksjoner av aritmetisk type, skifttype, logisk type, datamanipulerende type etc. Disse instruksjoner kan kategoriseres som lager-til-lager instruksjoner, lager-til-register instruksjoner, register-til-register instruksjoner, etc. og som et resultat kan ytterligere klassifiseres som en type en instruksjon, type to instruksjon, etc, og hver instruksjonstype har et korresponderende instruksjonsformat. Forskjellige løsninger eksisterer i øyeblikket for å utføre en makroinstruksjon i en mikroprogrammerbar mikroprosessor. Ved en slik utførelse, kan et fastvareprogram, eller rutine (dvs. gruppe av instruksjoner), bestå i en kontroll-lager-enhet som lagrer gruppen av mikroinstruksjoner. Når operasjonskoden (OP-koden) for en makroinstruksjon først dekodes, kan fastvarerutinene påkalles og utføres. For en forutbestemt type av makroinstruksjon, slik som makroinstruksjonen av datamanipulerende type, kan grunnoperasjonen være felles for mer enn en makroinstruksjon, f.eks. "TESTBIT
FOR EN LOGISK VERDI LIK 1", eller "TESTBIT FOR EN LOGISK
VERDI LIK 0". Basert på den bestemte instruksjon, kan en forgrening til den korresponderende mikroprogramrutinen utføres, som så vil utføre den bestemte instruksjon og teste den angitte bit. Denne løsning krever at flere mikroinstruksjoner utføres og, krever at disse mikroinstruksjoner lagres i styrelagerenheten.
Som en anstrengelse for å redusere størrelsen av styrelagerenheten og å redusere antallet av instruksjoner som kreves for å bli utført ved utførelsen av makroinstruksjonen som medfører en hurtigere utførelsestid, modifiserer den foreliggende oppfinnelse mikroinstruksjonen når den hentes fra styrelagerenheten og overføres til mikroinstruksjonsregisteret. Forutbestemt felt av mikroinstruksjonen modifiseres med forutbestemte felt av makroinstruksjonen som angir variasjonen av den grunnleggende OP-kode, hvorved den grunnleggende operasjon modifiseres, hvilket minsker utførelsestiden for makroinstruksjonen, og medfører hastig-hetsøkning av utførelsestiden for makroinstruksjonen.
Derfor tilveiebringer den foreliggende oppfinnelse en styreenhet for en mikroprogrammerbar mikroprosessor. Styreenheten ifølge foreliggende oppfinnelse kjennetegnes ved at den omfatter: styrelagermiddel for å lagre et flertall mikroinstruksjoner,
omsettingsmiddel som har inngangsterminaler innrettet til å motta operandfeltet for instruksjonen som i øyeblikket utføres, for å omdanne informasjonen som uttrykkes av formatet i operandfeltet av instruksjonen til informasjon som er forenlig med formatet i mikroinstruksjonsordet, for derfor å utmate omdannede operanddata anvendt til å modifisere mikroinstruksjonsordet ettersom det hentes fra styrelagermidlet,
omvekslingsmiddel som har et første sett av inngangsterminaler operativt forbundet med nevnte styrelagermiddel for å motta forutvalgte partier av en hentet mikroinstruksjon, og som dessuten har et andre sett av inngangsterminaler driftsmessig forbundet med nevnte omsettingsmiddel til å motta nevnte omdannede operanddata, for å velge mellom (i) den forutvalgte delen av et hentet mikroinstruksjonsord og (ii) de omdannede operanddata, som reaksjon på et valgsignal, hvorved utmates valgte data, og
registermiddel som er driftsmessig forbundet med nevnte omvekslingsmiddel til å motta de valgte data, og dessuten driftsmessig forbundet med nevnte styrelagermiddel til å motta den delen av det hentede mikroinstruksjonsordet som ikke er gjenstand for å bli valgt av nevnte omvekslingsmiddel , for å holde mikroinstruksjonen for løpende utføring.
Ifølge ytterligere utførelsesformer av oppfinnelsen omfatter styreenheten dessuten dekodermiddel som driftsmessig er forbundet med nevnte registermiddel, for dekoding av forutvalgte biter i nevnte registermiddel til å generere et andre sett av styresignaler, innbefattende valgsignalet, for derved å gi delvis styring av nevnte aritmetiske enhet og nevnte tilhørende registre.
I tillegg kan styreenheten omfatte logisk middel som er driftsmessig forbundet med nevnte omsettingsmiddel, og dessuten har en første inngangsterminal innrettet til å motta et første status (condition) signal som indikerer en status for en forutvalgt bit og som har en andre inngangsterminal innrettet tii å motta et andre statussignal som indikerer en status for en testutmatning fra nevnte aritmetiske enhet, for å tilveiebringe testsignal som indikerer resultatene av en testet status som følge av utførelsen av nevnte mikro-instruksj on.
Forøvrig kan nevnte styrelagermiddel omfatte første styrelagermiddel for lagring av et flertall mikroinstruksjoner som skal utsettes for dekoding, og andre styrelagermiddel som er driftsmessig forbundet med nevnte aritmetiske enhet for lagring av konstante digitale verdier som tilsvarer nevnte mikroinstruksjoner.
Følgelig oppnås det formål med den foreliggende oppfinnelse å tilveiebringe en styreenhet som modifiserer mikroinstruksjonen ettersom den hentes fra en styrelagerenhet, samt tilveiebringe en styreenhet for en mikroprogrammerbar prosessor som modifiserer mikroinstruksjonen ettersom den hentes fra styrelagerenheten med forutbestemte felt fra makroinstruksjonen.
Disse og andre formål med den foreliggende oppfinnelse vil fremgå tydeligere i forbindelse med den etterfølge beskrivelse og vedlagte tegninger, hvor like henvisningstall angir like deler. Fig. 1 viser et blokkskjema over en mikroprogrammerbar mikroprosessor som innbefatter en styreenhet ifølge den foreliggende oppfinnelse. Fig. 2 viser et instruksjonsformat for en datamanipulerende/testbit instruksjon for prosessoren i fig. 1. Fig. 3 viser et format hos et mikroinstruksjonsord i
prosessoren i fig. 1.
Fig. 4 viser et logisk skjema over en programmerbar logisk rekke hos styreenheten ifølge den foretrukne utførelsesform av den foreliggende oppf innelse. Fig. 5 viser et delvis logisk skjema over en dekoder i styreenheten ifølge den foretrukne utførelses-form av den foreliggende oppfinnelse. Fig. 6 viser sannhetstabellen som anvendes for realiseringen av styrelogikken for en test-vippe i styreenheten ifølge den foretrukne utførelses-form av den foreliggende oppfinnelse.
Idet det henvises til fig. 1, er der vist et blokkskjema over en mikroprogrammerbar mikroprosessor (eller ganske enkelt mikroprosessor) 10 som kan innbefatte en styreenhet 20 ifølge den foreliggende oppfinnelse. Mikroprosessoren 10 omfatter et lagerdataregister (MD-register) 101 og et lageradresse-register (MA-register) 102 som danner grensesnitt med et lager (ikke vist) via en lagerbuss 103. Mikroprosessoren 10 ifølge den foreliggende oppfinnelse er en AQ-type prosessor og omfatter et A-register 104, et Q-register (ikke vist) hvor Q-registeret er et reservert lagersted, og et B-register 105. En programteller 106 og en skiftteller 107 anvendes til den totale styring og utførelse av instruksjonene for mikroprosessoren 10. En ALU 110 utfører de forskjellige aritmetiske og logiske operasjoner under styring fra styreenheten 20. I den foretrukne utførelsesform av den foreliggende oppfinnelse, er ALU 110 en 74F181 TT1 integrert kretsbrikke. A-inngangen og B-inngangen på ALU 110 er driftsmessig koplet til å motta operanddata fra A-register 104, B-register 105, MD-register 101, MA-register 102, og data fra et K-register 115 via en K-buss gjennom henholdsvis en A-MUX 111, og B-MUX 112. (Tallene 24 gjennom linjene for A-inngangen og B-inngangen hos ALU 110 angir antallet av biter på den linjen som anvendes i den foretrukne utførelsesform av den foreliggende oppfinnelse, idet i dette tilfellet linjene er en 24-bit linje. Denne betegnelse innbefattes i tegningene i den foreliggende søknad). En hvilken som helst bit i A-registeret 104 kan testes/manipuleres ved bruken av en 24-til-1 A-register multiplekser (24-til-l A-REG MUX) 113 og en 1 av 24 bit maske 114.
Styreenheten 20 ifølge den foretrukne utførelsesform av foreliggende oppfinnelse omfatter et 48-bit bredt styre-ROM 201 som lagrer mikroinstruksjonene som anvendes til å realisere makroinstruksjonssettet i mikroprosessoren 10. Styre-ROM 201 omfatter også som del av mikroinstruksjonen en konstant som oppnås fra et konstant PROM 203 ved utførelsen av visse av mikroinstruksjonene. Tolv biter fra styre-ROM 201 er koplet til en første inngang på en MUX 202. En andre gruppe av 12 biter koples fra en feltprogrammerbar logikkmatrise (FPLA) 204 til en andre inngang på MUX 202. 12-bit utgangen på MUX 202 koples til et mikroinstruksjonsregister 205, sammen med 36 biter fra styre ROM 201. Utgangene fra mikroinstruksjonsregisteret 205 i forbindelse med en dekoder 206 omfatter styresignaler som i sin tur koples til de forskjellige enheter, slik som ALU 110, for å styre driften av disse enheter. Ved å velge de andre inngangene på MUX 202 via et valgsignal, VALG (206), kan forutbestemte biter hos den mikroinstruksjon som leses fra styre-ROM 201 modifiseres for derved å gi den mikroinstruksjon som overføres til mikroinstruksjonsregisteret 205 et forskjellig (eller modifisert) sett av styreindikatorer, som gir et modifisert sett av styresignaler for en modifisert operasjon. De tolv biter i mikroinstruksjonen som modifiseres, bestemmes delvis fra operandfeltet for makroinstruksjonen. Operandfeltet som temporært lagres i MA-registeret 102 koples til FPLA 204 som dekoder operanddata til styrebiter for mikroinstruksjonen. Styre-ROM 201 adresseres av biter 1-12 fra MA-registeret 102, et "neste instruksjonsadresse" felt i mikroinstruksjonen, eller fra en adresse som tilføres av et makro OP-koderegister (OP-KODE register) 120.
Ettersom den foretrukne utførelsesform av den foreliggende oppfinnelse realiseres for datamanipulerende/bittesttype instruksjoner, innbefattes en test-vippestyrelogikk 207 og test-vippe 208. Fire biter fra FPLA 204 koples til test-vippestyrelogikken 207 sammen med et ALU TEST UTGANGS signal fra ALU 110 og utgangssignalet fra 24-til-l A-REG MUX 113.
Mikroprosessoren 10 ifølge den foretrukne utførelsesform av den foreliggende oppfinnelse har definert fem instruk-sjonstyper som vist i tabell 1.
Åv særlig interesse her er Type 1 instruksjonen som gjør hruk av modifikasjonstrekket ved styreenheten ifølge den foreliggende oppfinnelse. Før de operasjoner som kreves av mikroprosessoren 10 for utførelsen av Type 1 instruksjonen diskuteres, vil noe generell omtale av mikroprosessoren 10 bli gitt.
Idet det henvises til fig. 2, er der vist et makroinstruk-sjonsformat for et Type 1 instruksjonsord. Mikroprosessoren 10 ifølge den foretrukne utførelsesform av den foreliggende oppfinnelse anvender et 24-bit makroinstruksjonsord. De øvre seks biter (biter 18-23) anvendes for makro OP-koden. For de instruksjoner som kan forsynes med indeks, anvendes biter 15-17 for å angi et indeksregister. Biter 0-14 definerer et operandfelt. For en Type 4 makroinstruksjon, definerer operanden lageradressen for operanddataen. For en Type 1 makroinstruksjon, definerer R feltet en variant av den grunnleggende operasjon for OP-koden. Testfelt (bit 5) definerer hvorvidt en testoperasjon er involvert, og K-feltet (biter 0-4) angir den bit som skal testes. Den effektive bit som skal testes er en funksjon av K-feltet og indeksfeltet, ettersom K-feltet utsettes for en indeksdannelsesoperasjon.
Fig. 3 viser et format for mikroinstruksjonsordet i mikroprosessoren 10 ifølge den foretrukne utførelsesform av den foreligge oppfinnelse. Modifikasjonsbitene tilføres av FPLA 204. Biter 35-40 og biter 8-13 i mikroinstruksjonsordet modifiseres av FPLA 204. Biter 35 - 39 i mikroinstruksjonsordet anvendes for styringen av ALU 10, og bit 40 i mikroinstruksjonsordet anvendes for bestemmelsen av ALU, idet bit 40 angir A-registeret 104. Den neste mikroinstruk-sjonsadressen tilveiebringes ved hjelp av biter 6-17 i mikro-instruksj onsordet.
Den grunnleggende operasjon for mikroprosessoren 10 vil nå bli omtalt. Under en første syklus for en mikroprosessor 10 hentes en makroinstruksjon fra lageret (ikke vist) og plasseres i lagerdataregisteret 101. De øvre seks biter (18-23) er også plassert i OP-kode registeret 120. Disse seks biter omfatter den grunnleggende instruksjons (eller makro) OP-koden. Som del av denne første syklus gjennomgår instruksjonen eventuell adresse eller instruksjonsmodi-fikasjon som kan skyldes relativ adressering eller indeks-ering. Resultatet av denne operasjon lagres så i lageradresseregisteret 102. Basert på OP-koden som tilføres av OP-koderegisteret 120, utfører fastvarerutinene lagret i styre ROM 201 en 64-veis avgrening basert på innholdet i OP-koderegisteret 120. Dette dirigerer fastvaren til rutinen som kreves for å utføre en hvilken som helst av de 64 grunnleggende OP-koder i mikroprosessoren 10. De operasjoner som er beskrevet hittil er felles for utførelsen av samtlige av instruksjonene i mikroprosessoren 10.
De lavere 18 biter i makroinstruksjonen befinner seg nå i MA-registeret 102. For en instruksjon som krever en operand-datahenting fra lager, lagres lageradressen nå i lageradresseregisteret. For en Type 1 makroinstruksjon overføres de lavere 15 biter i MA-registeret 102 til FPLA 204. De lavere 5-biter i MA-registeret 102 anvendes også til å velge innmatningen til 24-til-l A-register multiplekseren 113 og masken som skal utmates av en av 24-b itmasken 114. Den første mikroinstruksjonen angir valg (206). Dette tillater at den neste mikroinstruksjonen som i øyeblikket hentes modifiseres av utmatningen fra FPLA 204. Mikroinstruksjonen som hentes og modifiseres angir alltid A-registeret og K-bussen som kilder og B-registeret som et av bestemmelsesstedene. FPLA 204 utmater 12 biter som erstattes eller anvendes til å sette 12 av mikroinstruksjonens biter som er lagret i mikroinstruksjonsregister 205. Fem av FPLA-utmatningen erstatter biter 35-39 i mikroinstruksjonen. Disse biter definerer ALU-operasjonen som skal utføres. En FPLA-utmatning erstatter bit 40 i mikroinstruksjonen og denne bit bestemmer om A-registeret vil være et bestemmelsessted for ALU 110 utgangen. De fem øvrige utgangsbiter fra FPLA 204 erstatter biter 8-12 i mikroinstruksjonen. Disse biter danner del av den neste adressen for mikroinstruksjonen og anvendes til å dirigere fastvare til forskjellige rutiner som kreves for å fullføre utførelsen av forskjellige Type 1 instruksjoner. Som et resultat av modifisering av mikroinstruksjonen som hentes og overføres til mikroinstruksjonsregisteret 205, vil ALU 10 operasjonen bli endret til den passende drift. Majoriteten av Type 1 instruksjoner vil bli fullført når den modifiserte mikroinstruksjonen har fullført sin utførelse. Type 1 instruksjonene som ikke er blitt fullført vil bli dirigert av den modifiserte mikroinstruksjon til en passende rutine som vil fullføre den bestemte Type 1 instruksj onen.
Idet det henvises til fig. 4 er der vist et logisk skjema over FPLA 204, og MUX 202. FPLA 204 deles i to individuelle FPLA, nemlig FPLA-1 250 og FPLA-2 251. Inngangene hos hver FPLA 250, 251 er nummerert fra Iqq t.o.m. I±rj, idet hver inngang er koplet til en tilsvarende inngangsbit MAqq - MA^4 fra lageradresseregisteret 102, idet lageradresseregisteret anvendes til temporært å lagre operandfeltet for Type 1 mikroinstruksjonen. 1^5 hos hver FPLA 250, 251 er en kombinert inngang for MAQ3 og MA04• Inngangen 1^5 anvendes som en kontroll på K-feltet i hvilken en verdi av logisk 0 angir at verdien av K må være mindre eller lik 23, en logisk 1 angir at K-feltet må ha en verdi som er større eller lik 24, eller hvis ingen verdi er angitt K er et neglisjerings (don't care) uttrykk. FPLA 250, 251 kan være av typen 82S100 integrert kretsbrikke. MUX 202 ifølge den foretrukne utførelsesform av foreliggende oppfinnelse omfatter tre integrerte kretsbrikker av typen F157, betegnet 222, 223, 224. Hver null-inngang til MUX 202 koples til en tilsvarende utgang Fqo t.o.m. Fqs på FPLA 250, 251 som vist. Hver eneR inngang på MUX 202 koples til en tilsvarende bit CR08 t.o.m. C<R>13, og CR35 t.o.m. CR40 hos styre ROM 201 (hvor CR08 betegner bit 8 hos styre ROM, CRøg betegner bit 9 hos styre ROM...). Utgangen fra MUX 202 koples så til en tilsvarende bit i mikroinstruksjonsregisteret 205, idet MIR40 betegner bit 40 i mikroinstruksjonsregisteret 205, MIR39 betegner bit 39 i mikroinstruksjonsregisteret 205 .... Utgangen Fq5 hos FPLA 251 kombineres med bit 32 i den neste mikroinstruksjonen hvis VALG (206) åpnes i den foreliggende mikroinstruksjonen. Den operasjon anvendes til å endre en funksjon i mikroinstruksjonsordet til en Type 1 skriftoperasjon. Biter 0-14 av Type 1 instruksjonen anvendes til å generere modifikasjonsbitene i mikroinstruksjonsordet ifølge tabellene 2 og 3.
(Bokstaven L angir lav (en logisk null) og bokstaven H angir høy (eller en logisk en). Bokstaven A angir aktiv, den foretrukne utførelsesform av den foreliggende oppfinnelse anvender aktiv høy. Punktet og streken angir henholdsvis ikke tilstede og neglisjer (don't care).
Idet det henvises til fig. 5, er der vist et delvis logisk skjema over dekoderen 206. Dekoderen 206 omfatter et flertall dekoder integrerte kretsbrikker. En første 3-til-8 dekoder 306 har koplet til inngangene utgangene fra mikroinstruksjonsregisteret 205, idet utgangen på mikroinstruksjonsregisteret 205 er betegnet OMIRXX hvor XX betegner biten i mikroinstruksjonsregisteret. En andre 3-til-8 dekoder 307 anvendes til å generere KLÅR (230) signalet, idet den andre dekoderen dekoder utgangsbitene fra mikroinstruksjonsregisteret 205 som vist. Nevnte første og andre dekodere 306, 307 er av typen F138 integrert kretsbrikke.
Styre ROM 201 er av typen AMD AM 27S191, og mikroinstruksjonsregisteret 205 er av typen 74F175 integrert kretsbrikke. Test-vippestyrelogikken 207 er realisert ifølge sannhetstabellen i fig. 6, fra utgangs signal ene F^, og F7 fra FPLA 250 og 251. Datamanipulerings og bittestingsinstruksjoner realisert i mikroprosessoren 10 ifølge den foretrukne uførelsesform av foreliggende oppfinnelse er angitt i tillegget sammen med en kort beskrivelse av den funksjon som utføres av instruksjonen.
TILLEGG
CBK - ForandringsbIt K:
CBK komplementerer bit Z i A-registeret. Samtlige øvrige biter i A forblir uendret.
CLO - Tell minst signifikante enere:
CLO teller antallet av "en" biter til høyre for den "null" bit som er lengst mot høyre i A-registeret. Tellerverdien plasseres i J-telleren. Evis A er lik 77777777g, er tellingen 24iq.
CLZ - Tell minst signifikante nuller:
CLZ teller antallet av "null" biter til høyre for den "en" bit som er lengst mot høyre i A-registeret. Tellerverdien plasseres i J-telleren. Hvis A er lik OOOOOOOO3, er tellingen 24iq.
CMO - Tell mest signifikante enere:
CMO teller antallet av "en" biter til venstre for den "null" bit som er lengst mot venstre i A-registeret. Tellerverdien plasseres i J-telleren. Hvis A er lik 77777777g, er tellingen 2410.
CMZ - Tell mest signifikante nuller:
CMZ teller antallet av "null" biter til venstre for den "en" bit som er lengst mot venstre i A-registeret. Tellerverdien plasseres i J-telleren. Hvis A er lik OOOOOOOOg, er tellingen 24lfj.
CPL - Komplement A:
CPL erstatter innholdet i A-registeret med dets l's komplement.
CTO - Tell total en:
CTO teller det totale antall av "en" biter i A-registeret.
Tellerverdien plasseres i J-telleren. Hvis A er lik 777777778, er tellingen 2410.
CTZ - Tell total nuller:
CTZ teller det totale antallet av "null" biter i A-registeret. Tellerverdien plasseres i J-telleren. Hvis A er lik OOOOOOOOg, er tellingen 2410.
IBK - Isoler bit K:
IBK etterlater en utpekt bit i A-registeret uendret og setter alle de øvrige biter til "null".
ICB - Isoler og komplementer bit K:
ICB komplementerer bit K i A-registeret og setter samtlige av de øvrige biter til "null".
LDO - Last en inn i bit K:
LDO plasserer en "en" i bit Z i A-registeret. Alle øvrige biter tilbakestilles til "null".
LDZ - Last nuller inn i A:
LDZ erstatter innholdet i A-registeret med "nuller".
LMO - Last minus en:
LMO plasserer en "en" i hver av bitene i A-registeret.
NEG - Omg. iøre ( negere) :
NEG erstatter innholdet i A-registeret med dets 2's komplement .
RBK - Tilbakestill bit K:
RBK plasserer en "null" i bit z i A-registeret. Alle øvrige biter forblir uendret.
RER - Tilbakestill TSTF hvis bit K er like og tilbakestill bit K: RER tilbakestiller test-vippen (TSTF) hvis bit Z i A-registeret er "null". Hvis bit Z er "en", forblir TSTF uendret. Bit Z i A-registeret settes til "null".
REV - Tilbakestill TSTF hvis bit K er like:
REV tilbakestiller test-vippen (TSTF) hvis bit Z i A-registeret er "null". Hvis biten er "en", forblir TSTF uendret.
RLZ - Tilbakestill TSTF og last nuller inn i A:
RLZ erstatter innholdet i A-registeret med "nuller". Test-vippen tilbakestilles også til en "null".
RJJZ - Tilbakestill TSTF hvis A er ikke- null:
RNZ tilbakestiller test-vippen (TSTF) hvis en hvilken som helst bit i A-registeret er en "en". Ellers er TSTF uendret.
ROD - Tilbakestill TSTF hvis bit K er odde::
ROD tilbakestiller test-vippen (TSTF) hvis bit Z i A-registeret er "en". Hvis biten er "null", forblir TSTF uendret.
ROR - Tilbakestill TSTF hvis bit K er odde og tilbakestill bit K: ROR tilbakestiller test-vippen (TSTF) hvis bit Z i A-registeret er "en". Hvis biten "null", forblir TSTF uendret. Bit Z i A-registeret settes til "null".
ROS - Tilbakestill TSTF hvis bit K er odde og sett bit K: ROS tilbakestiller test-vippen (TSTF) hvis bit Z i A-registeret er "en". Hvis biten er "null", forblir TSTF uendret. Bit Z i A-registeret settes til "en".
RST - Tilbakestill TSTF:
EST tilbakestiller test-vippen (TSTF) til en "null".
SBK - Sett bit K:
SBK setter bit Z i A-registeret til en. Samtlige øvrige biter forblir uendret.
SET - Sett TSTF:
SET setter test-vippen (TSTF) til en "en".
SLZ - Sett TSTF og last nuller inn i A:
SLZ erstatter innholdet i A-registeret med "nuller". TSTF settes til en "en".
SNZ - Sett TSTF hvis A er ikke- null:
SNZ setter test-vippen (TSTF) hvis en hvilken som helst bit i A-registeret er en "en". Ellers forblir TSTF uendret.
SOD - Sett TSTF hvis bit K er odde:
SOD setter test-vippen (TSTF) hvis bit Z i A-registeret er "en". Hvis biten er "null", forblir TSTF uendret.
SOR - Setter TSTF hvis bit K er odde og tilbakestiller bit K: SOR setter test-vippen (TSTF) hvis bit Z i A-registeret er en "en". Hvis biten er en "null" forblir TSTF uendret. Bit Z i A-registeret settes til "null".
SOS - Sett TSTF hvis bit K er odde og sett bit K:
SOS setter test-vippen (TSTF) hvis bit Z i A-registeret er en "en". Hvis biten er "null", forblir TSTF uendret. Bit Z i A-registeret settes til en "en".
SRA - Skift mot høvre aritmetikk:
SRA forskyver innholdet i A-registeret Z plasser mot høyre. Tegnbiten endres ikke. Biter som forskyves ut av Aq tapes. Biter som forskyves inn i A22 er de samme som tegnbiten.
SRC - Forskyv mot høvre sirkulært:
SRC forskyver A-register biter mot høyre, ut av Aq og inn i <A>23-
SRL - Forskyv mot høvre logisk:
SRL forskyver samtlige tjuefire biter i A-registeret mot høyre Z plasser. Biter som forskyves ut av Aq tapes. Nuller forskyves inn i A23.
TEC - Test like og komplement bit K:
TEC setter test-vippen (TSTF) hvis bit Z i A-registeret var "null". Hvis biten var en "en", tilbakestilles TSTF. Bit Z i A-registeret komplementeres så.
TER - Test like og tilbakestill bit K:
TER gransker bit Z i A-registeret. Hvis biten er "null", settes TSTF til en "en". TSTF tilbakestilles til en "null" hvis biten er "en". TER tilbakestiller så bit Z til en "null".
TES - Test like og sett bit K:
TES gransker bit Z i A-registeret. Hvis biten er "null", settes TSTF til en "en". TSTF tilbakestilles til en "null" hvis biten er en "en". TES setter så Z til en "en".
TEV - Test bit K like:
TEV setter test-vippen (TSTF) hvis bit Z i A-registeret er "null". Hvis biten er "en" tilbakestilles TSTF.
TMF - Test minus en for K biter:
TMF forskyver innholdet i A-registeret til høyre sirkulært Z plasser. Hvis samtlige Z biter som forskyves inn i A23 er "enere" settes test-vippen, mens den ellers blir tilbake-stillet .
TMO - Test minus en;
TMO setter test-vippen (TSTF) hvis A-register hitene samtlige er "en". Den tilbakestiller TSTF hvis en hvilken som helst bit i A-registeret er en "null".
TNM - Test ikke minus en:
TNM setter TSTF hvis en hvilken som helst bit i A-registeret er en null. Når samtlige biter i A-registeret er "enere", tilbakestilles TSTF.
TNZ - Test A i ikke- null:
TNZ setter test-vippen (TSTF) hvis en hvilken som helst bit i A-registeret er en "en". Den tilbakestiller TSTF hvis A-register biter samtlige er "null".
TOD - Test bit K odde:
TOD setter test-vippen (TSTF) hvis bit Z i A-registeret er "en". Hvis biten er "null" tilbakestiller TOD TSTF.
TOR - Test odde og tilbakestill bit K:
TOR setter TSTF hvis bit Z er en "en" og tilbakestiller TSTF hvis bit Z er en "null". Etter testingsoperasjonen settes bit Z til en "null". Dvs., TOR erstatter den følgende to instruksjonssekvens: TOD K, RBK K.
TOS - Test odde og sett bit K:
TOS gransker bit Z i A-registeret. Hvis Z er lik "en", settes TSTF til en "en". TSTF tilbakestilles til "null" hvis Z er lik "null". TOS setter så bit Z til en "en".
TSC - Test og skift sirkulært:
TSC forskyver innholdet i A-registeret mot høyre sirkulært Z plasser. Hvis samtlige Z biter som forskyves inn i A23 er "null", settes test-vippen, mens den ellers tilbakestilles.
TZC - Test null og komplementer:
TZC setter TSTF når samtlige biter i A-registeret er "null". Evis en hvilken som helst bit i A-registeret er en "en", tilbakestilles TSTF. TZC erstatter så innholdet i A-registeret med dens l's komplement.
TZE - Test A null:
TZE setter test-vippen (TSTF) hvis A-register bitene samtlige er "null". Den tilbakestiller TSTF hvis en hvilken som helst bit i A-registeret er en "en".
Bemerk: Z er en funksjon av K og X.

Claims (4)

1. Anordning ved en mikroprogrammerbar mikroprosessor (10) som omfatter en styreenhet (20), en aritmetisk og logisk enhet (ALU) (110), og tilhørende registere (101,102,104,105,...), for utførelse av hver instruksjon i et forutdefinert instruksjonssett, idet hver instruksjon har et operandfelt og et operasjonskodefelt, karakterisert ved at nevnte styreenhet (20) omfatter: a) styrelagermiddel (201,203) for å lagre et flertall mikroinstruksj oner, b) omsettingsmiddel (204) som har inngangsterminaler innrettet til å motta operandfeltet for instruksjonen som i øyeblikket utføres, for å omdanne informasjonen som uttrykkes av formatet i operandfeltet av instruksjonen til informasjon som er forenlig med formatet i mikroinstruksjonsordet, for derfor å utmate omdannede operanddata anvendt til å modifisere mikroinstruksjonsordet ettersom det hentes fra styrelagermidlet, c) omveksl ingsmiddel (202) som har et første sett av inngangsterminaler operativt forbundet med nevnte styrelagermiddel for å motta forutvalgte partier av en hentet mikroinstruksjon, og som dessuten har et andre sett av inngangsterminaler driftsmessig forbundet med nevnte omsettingsmiddel til å motta nevnte omdannede operanddata, for å velge mellom (i) den forutvalgte delen av et hentet mikroinstruksjonsord og (ii) de omdannede operanddata, som reaksjon på et valgsignal, hvorved utmates valgte data, og d) registermiddel (205) som er driftsmessig forbundet med nevnte omvekslingsmiddel til å motta de valgte data, og dessuten driftsmessig forbundet med nevnte styrelagermiddel til å motta den delen av det hentede mikroinstruksjonsordet som ikke er gjenstand for å bli valgt av nevnte omvekslingsmiddel, for å holde mikroinstruksjonen for løpende utføring.
2. Anordning som angitt i krav 1, karakterisert ved at nevnte styreenhet dessuten omfatter dekodermiddel (206) driftsmessig forbundet med nevnte registermiddel, for dekoding av forutvalgte biter i nevnte registermiddel til å generere et andre sett av styresignaler, innbefattende valgsignalet, for derved å gi delvis styring av nevnte aritmetiske enhet (ALU) og nevnte tilhørende registre.
3. Anordning som angitt i krav 2, karakterisert ved at nevnte styreenhet dessuten omfatter logisk middel (207,208) som er driftsmessig forbundet med nevnte omsettingsmiddel, og dessuten har en første inngangsterminal innrettet til å motta et første status (condition) signal som indikerer en status for en forutvalgt bit og som har en andre inngangsterminal innrettet til å motta et andre statussignal som indikerer en status for en testutmatning fra nevnte aritmetiske enhet (ALU), for å tilveiebringe testsignal som indikerer resultatene av en testet status som følge av utførelsen av nevnte mikroinstruksjon.
4. Anordning som angitt i krav 1, karakterisert ved at nevnte styrelagermiddel omfatter: a) første styrelagermiddel (201) for lagring av et flertall mikroinstruksjoner som skal utsettes for dekoding, og b) andre styrelagermiddel (203) som er driftsmessig forbundet med nevnte aritmetiske enhet (ALU) for lagring av konstante digitale verdier som tilsvarer nevnte mikro-instruksj oner.
NO853807A 1984-12-05 1985-09-27 Anordning ved en mikroprogrammerbar mikroprosessor NO169924C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/678,536 US4825363A (en) 1984-12-05 1984-12-05 Apparatus for modifying microinstructions of a microprogrammed processor

Publications (3)

Publication Number Publication Date
NO853807L NO853807L (no) 1986-06-06
NO169924B true NO169924B (no) 1992-05-11
NO169924C NO169924C (no) 1992-08-19

Family

ID=24723212

Family Applications (1)

Application Number Title Priority Date Filing Date
NO853807A NO169924C (no) 1984-12-05 1985-09-27 Anordning ved en mikroprogrammerbar mikroprosessor

Country Status (6)

Country Link
US (1) US4825363A (no)
EP (1) EP0184158A3 (no)
JP (1) JPH0812598B2 (no)
AU (1) AU584642B2 (no)
CA (1) CA1242801A (no)
NO (1) NO169924C (no)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3689595T2 (de) * 1985-04-08 1994-05-19 Hitachi Ltd Datenverarbeitungssystem.
US5155819A (en) * 1987-11-03 1992-10-13 Lsi Logic Corporation Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
JP2986104B2 (ja) * 1988-03-15 1999-12-06 株式会社東芝 情報処理装置の自己試験回路
GB2215879A (en) * 1988-03-23 1989-09-27 Benchmark Technologies Numerical processor using microcode
AU632493B2 (en) * 1988-05-03 1993-01-07 Lg Electronics Inc. Microprocessor having external control store
JPH0261723A (ja) * 1988-08-29 1990-03-01 Matsushita Electric Ind Co Ltd ステートマシン
JP2538053B2 (ja) * 1989-05-08 1996-09-25 松下電器産業株式会社 制御装置
JP2901081B2 (ja) * 1989-12-19 1999-06-02 株式会社日立製作所 Osiディレクトリの非葉エントリの名称変更方法
US5241637A (en) * 1990-01-05 1993-08-31 Motorola, Inc. Data processor microsequencer having multiple microaddress sources and next microaddress source selection
US5276824A (en) * 1990-01-08 1994-01-04 Motorola, Inc. Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe
US5412785A (en) * 1990-04-09 1995-05-02 Motorola, Inc. Microprogrammed data processor which includes a microsequencer in which a next microaddress output of a microROM is connected to the or-plane of an entry PLA
US5280595A (en) * 1990-10-05 1994-01-18 Bull Hn Information Systems Inc. State machine for executing commands within a minimum number of cycles by accomodating unforseen time dependency according to status signals received from different functional sections
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US5452423A (en) * 1991-06-13 1995-09-19 Chips And Technologies, Inc. Two-ROM multibyte microcode address selection method and apparatus
US5414821A (en) * 1991-12-17 1995-05-09 Unisys Corporation Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
US5379392A (en) * 1991-12-17 1995-01-03 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5559974A (en) * 1994-03-01 1996-09-24 Intel Corporation Decoder having independently loaded micro-alias and macro-alias registers accessible simultaneously by one micro-operation
US5581720A (en) * 1994-04-15 1996-12-03 David Sarnoff Research Center, Inc. Apparatus and method for updating information in a microcode instruction
US5734817A (en) * 1995-03-01 1998-03-31 Unisys Corporation Method for making a data base available to a user program during data base recovery
US5761740A (en) * 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5884071A (en) * 1997-03-31 1999-03-16 Intel Corporation Method and apparatus for decoding enhancement instructions using alias encodings
US6643800B1 (en) * 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7599981B2 (en) 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800293A (en) * 1972-12-26 1974-03-26 Ibm Microprogram control subsystem
DE2336676C3 (de) * 1973-07-19 1981-06-19 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Modifizierung von Mikroprogrammbefehlen
IT995722B (it) * 1973-10-10 1975-11-20 Honeywell Inf Systems Italia Calcolatore microprogrammato a interior decore espansibile mediante riconoscimento e interpre tazione di codici di operazione aggiunti
US3942156A (en) * 1973-12-17 1976-03-02 Xerox Corporation Indirect arithmetic control
US3949370A (en) * 1974-06-06 1976-04-06 National Semiconductor Corporation Programmable logic array control section for data processing system
JPS5136047A (ja) * 1974-09-21 1976-03-26 Hitachi Ltd Maikuropuroguramuseigyohoshiki
US4037202A (en) * 1975-04-21 1977-07-19 Raytheon Company Microprogram controlled digital processor having addressable flip/flop section
US4075687A (en) * 1976-03-01 1978-02-21 Raytheon Company Microprogram controlled digital computer
JPS52120640A (en) * 1976-04-02 1977-10-11 Toshiba Corp Micro program control system
US4360868A (en) * 1978-12-06 1982-11-23 Data General Corporation Instruction prefetch means having first and second register for storing and providing a current PC while generating a next PC
JPS55138341U (no) * 1979-03-26 1980-10-02
JPS55164943A (en) * 1979-06-07 1980-12-23 Fujitsu Ltd Microprogram processing system
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
US4521858A (en) * 1980-05-20 1985-06-04 Technology Marketing, Inc. Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu
JPS5748139A (en) * 1980-09-04 1982-03-19 Nec Corp Microprogram control device
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor
US4594661A (en) * 1982-02-22 1986-06-10 International Business Machines Corp. Microword control system utilizing multiplexed programmable logic arrays
EP0097725B1 (de) * 1982-06-08 1986-05-14 Ibm Deutschland Gmbh Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
US4519033A (en) * 1982-08-02 1985-05-21 Motorola, Inc. Control state sequencer
US4551798A (en) * 1982-11-03 1985-11-05 Burroughs Corporation Multiple control stores in a pipelined microcontroller for handling nester subroutines
IT1153668B (it) * 1982-11-24 1987-01-14 Honeywell Inf Systems Organizzazione di memoria di controllo

Also Published As

Publication number Publication date
NO169924C (no) 1992-08-19
JPH0812598B2 (ja) 1996-02-07
AU584642B2 (en) 1989-06-01
AU4847785A (en) 1986-06-12
EP0184158A3 (en) 1987-05-27
EP0184158A2 (en) 1986-06-11
JPS61134840A (ja) 1986-06-21
CA1242801A (en) 1988-10-04
NO853807L (no) 1986-06-06
US4825363A (en) 1989-04-25

Similar Documents

Publication Publication Date Title
NO169924B (no) Anordning ved en mikroprogrammerbar mikroprosessor
US4155120A (en) Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution
US4179737A (en) Means and methods for providing greater speed and flexibility of microinstruction sequencing
US5922066A (en) Multifunction data aligner in wide data width processor
US5222244A (en) Method of modifying a microinstruction with operands specified by an instruction held in an alias register
US4179731A (en) Microprogrammed control system
JP3658101B2 (ja) データ処理装置
US3585605A (en) Associative memory data processor
US3988719A (en) Microprogrammed data processing systems
JPH0235523A (ja) フレキシブルasicマイクロコンピュータ
US4388682A (en) Microprogrammable instruction translator
US3958221A (en) Method and apparatus for locating effective operand of an instruction
US4467415A (en) High-speed microprogram control apparatus with decreased control storage requirements
NO141105B (no) Databehandlingssystem som har en hoeyhastighets bufferlager - enhet for overfoering av data mellom et hovedlager og en sentral behandlingsenhet
US4347566A (en) Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
US4649477A (en) Operand size mechanism for control simplification
CA1150845A (en) Data processor controlled by microprograms
US4130880A (en) Data storage system for addressing data stored in adjacent word locations
US4337510A (en) Read control system for a control storage device
JPH031231A (ja) マイクロプログラム制御装置
US5210840A (en) Address space control apparatus for virtual memory systems
AU629007B2 (en) Apparatus for accelerating store operations in a risc computer
EP0162928B1 (en) Microprogram control method
US4799151A (en) Microprogram control circuit
EP0239276A2 (en) Alu for a bit slice processor with multiplexed bypass path