NO168497B - Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur. - Google Patents

Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur. Download PDF

Info

Publication number
NO168497B
NO168497B NO843891A NO843891A NO168497B NO 168497 B NO168497 B NO 168497B NO 843891 A NO843891 A NO 843891A NO 843891 A NO843891 A NO 843891A NO 168497 B NO168497 B NO 168497B
Authority
NO
Norway
Prior art keywords
data
register
special function
parity
bus
Prior art date
Application number
NO843891A
Other languages
English (en)
Other versions
NO168497C (no
NO843891L (no
Inventor
Robert Whiting Horst
Shannon Joseph Lynch
Cirillo Lino Costantino
John Martin Beirne
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of NO843891L publication Critical patent/NO843891L/no
Publication of NO168497B publication Critical patent/NO168497B/no
Publication of NO168497C publication Critical patent/NO168497C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Control By Computers (AREA)
  • Catalysts (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Electrotherapy Devices (AREA)
  • Dram (AREA)
  • Logic Circuits (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

De forskjellige funksjonsenheter som inngår i en sentral behandlingsenhet i en datamaskin er organisert for å aktivere en aritmetisk hovedlogikkenhet samt spesialfunksjonsenheter som omfatter en ytterligere aritmetisk logikkenhet, til tilgang til dataregistre, bokstavkonstanter samt data fra en hurtig hukommelse. En databuss for generell.anvendelse kobler funksjonsenhetene tett til hoveddatabanene og tillater CPU-sekvenseren å forgrenes på tallrike betingelser som kan angis over pr«veledere. Paritet fra funksjonsenhetene sendes ut en klokkesyklus senere enn resultatene,for at paritetsbanen ikke skal påvirke maskinssyklustiden. Denne oppbygningsarkitektur tillater ubenyttede mlkrokodemuligheter og anvendes for utprøving av korrekt CPU-drift ved å stanse CPU-operasjonen ved en mislykket sammenligning av to databusser.

Description

Foreliggende oppfinnelse angår en sentral databehandlingsenhet (CPU) i et databehandlingssystem. Nærmere bestemt angår foreliggende oppfinnelse organiseringen av de forskjellige funksjonsenheter som omfatter en CPU og tillater en aritmetisk hovedlogikkenhet (ALU) samt forskjellige spesialfunksjonsenheter tilgang til dataregistre, bokstavkonstanter og data fra et hukommelse-depot.
Den sentrale behandlingsenhet (CPU) i et databehandlingssystem er den del av systemet hvor datahåndtering, logiske og aritmetiske operasjoner samt andre dataomvandlinger finner sted. Den fysiske og logiske sammenkobling mellom elementene i CPU, den aritmetiske logikkenhet samt forskjellige registre og multipleksere i en CPU er kjent som en databane.
De fleste tidligere kjente CPU har en enkelt databanearkitektur, hvilket vil si at de er organisert på en slik måte at datastrømmen gjennom CPU finner sted langs en enkelt bane.
Noen tidligere kjente CPU er imidlertid utført med flere databaner. Disse CPU anvender tallrike flerports-registre i sin elementoppbygning. Sådanne arrangementer har imidlertid alltid krevet bruk av store multipleksere. I en CPU med 30 registre vil f.eks. hver multiplekser være utført med så mange som 30 inngangssett for å være istand til å betjene samtlige registre.
I tillegg kan tidligere kjente CPU være, eller ikke være, utført i en "pipeline"-form, dvs. si i to eller flere faser med hensyn til tidsstyring, således at utførelse av en enkelt mikroinstruksjonslinje finner sted i flere faser langs databanen. "Pipeline"-arkitektur tillater raskere gjennomløp av data gjennom en CPU ved å tillate deler av forskjellige påfølgende instruksjoner å bli utført samtidig. Mens en senere fase eller rang av en førte instruksjon utføres, kan således f.eks. en tidligere fase eller rang av en andre instruksjon også utføres.
De tidligere kjente databane-oppbygninger som er beskrevet ovenfor har vist seg tilstrekkelig for sitt formål, men hver av dem har en eller flere av følgende ulemper. CPU med flere databaner og som benytter seg av flerportsregistre og multipleksere er vanligvis kjennetegnet ved et forholdsvis stort antall deler pga. anvendelse av brede multipleksere. I tillegg har bruk av sådanne multipleksere en begrensende virkning på syklustiden for CPU, da det vanligvis er tilfelle at jo bredere multiplekser, desto lengre må dens tilordnede velger-tid være.
Tidligere kjente CPU som ikke er organisert i "pipeline"-form, er vanligvis ikke istand til samme gjennomløpstakt for instruksjoner som "pipeline"-oppbygde maskiner er istand til.
Et annet trekk ved tidligere kjente CPU med flere databaner og som benytter seg av brede multipleksere, er den totale mulig-het for tilgang til datainnholdet i flere enn to dataregistre samtidig. Denne funksjonssmidighet kan imidlertid ofte vise seg å gi bare en illusorisk funksjonell fordel, da statistisk sett, den mest anvendte operand er resultatet fra den forut-gående operasjon.
Til tross for de tilgjengelige, tidligere kjente oppbygnings-skjemaer for databaner, er det således fremdeles plass for forbedringer både med hensyn til ytelse, og ytelse i forhold til omkostninger. I de fleste tidligere kjente systemer fungerer deler av CPU uten overvåkning. Alternativt er det påkrevet med kostnadskrevende, ekstra overvåkende maskinvare. Videre krever tidligere kjente CPU vanligvis flere innbyrdes koblingsforbindelser mellom det logiske utprøvningsutstyr og de forskjellige funksjonsorganer, for å kunne utføre mikroforgrening.
Det er følgelig et formål for foreliggende oppfinnelse å frembringe en CPU-databanearkitektur som overvinner en eller flere av ulempene ved tidligere kjent arkitektur av denne art.
Det er et annet formål for foreliggende oppfinnelse å frembringe en CPU-databanearkitektur med flere databaner.
Det er ennå et ytterligere formål for foreliggende oppfinnelse å frembringe en CPU-arkitektur med flere databaner, og som nedsetter portantallet på registrene samt anvendelsen av brede multipleksere.
Det er et annet formål for foreliggende oppfinnelse å frembringe en CPU-arkitektur med flere databaner og som tillater en eller flere operasjoner å finne sted i CPU pr. instruk-sjonssyklus.
Det er således frembragt en sentral behandlingsenhet for databehandlingssystemer med "pipeline"-arkitektur, og som i henhold til oppfinnelsen har som særtrekk at den omfatter: - aritmetiske logikkorganer i en første databane for å utføre aritmetiske logikkprosesser på operander, - et antall valgbare spesialfunksjonsorganer i en andre databane for behandling av operander, - et antall første registerorganer for lagring av operander som skal behandles, - et antall første multiplekserorganer for å velge visse utvalgte operander fra nevnte første registerorganer, - et antall andre registerorganer forbundet med nevnte første multiplekserorganer for å lagre nevnte utvalgte operander, - et antall andre multiplekserorganer for ytterligere å velge blant de nevnte utvalgte av nevnte operander og å anbringe disse i nevnte første og andre databane, samt - databussutstyr for å føre tilbake behandlingsresultater fra nevnte aritmetiske logikkorganer og nevnte spesialfunksjonsorganer til nevnte første og andre registerorganer.
Oppfinnelsen gjelder altså en CPU med flere databaner, og hvori datakilder slik som en rekke registre, et hukommelse-depot, et bokstavkonstant-register, samt ALU-utgangs- og spe-sialfunksjonsutgangsregistre er organisert i to sett operand-busser, idet det ene sett mater en ALU og det annet sett mater et sett av spesialfunksjonsenheter, hvis arbeidsfunksjoner mikrokodestyres.
Hver operandbuss har som kilde en multiplekser som trekker ut data fra et undersett av mulige datakilder, innbefattet holde-registre som lagrer resultatene av tidligere operasjoner av ALU og spesialfunksjonsenhetene.
Skjønt tidligere kjente opplegg for flere databaner vanligvis multiplekser datakildene i en enkelt fase ved anvendelse av en eller flere store multipleksere, anvender foreliggende oppfinnelse to faser i et "pipeline"-arrangement, hvor en første fase utfører dekoding av registerrekken og en eventuell regi-stermultipleksing, samt en andre fase adresserer hovedmulti-pleksere og styrer ALU og spesialfunksjonsenhetenes funksjoner. Styring av spesialfunksjonene omfatter valg av en av N spesialfunksjonsenheter samt bestemmelse av dens arbeidsfunksjon.
Spesialfunksjonsarrangementet er et tett koblet skjema hvor en ekstra databane og et sett på N spesialfunksjonsenheter, som hver er istand til å utføre et antall arbeidsfunksjoner, står i grensesnittforbindelse med ALU-hoveddatabanen. Prinsippielt kan en hvilken som helst spesialfunksjon realiseres, f .eks>.. i en ekstra ALU, eller tilgang til et sett kl addeblokk-registre-,, trommel forskyvning, grensesnitt til andre; prosessorer i et: flerprosessorsystem over en mellomprosessor-buss,, grensesnitt-til hovedhukommelse, avbrudd av funksjons.utfør.else, lese- og-skrivetilgang til skrivbart reguleringslager,, tidsintervall-styring, grensesnitt for inn/ut-kanal.
Det forhold at det foreligger flere databaner gjør det mulig å utføre kontroll av de: forskjellige CPU-undersystemer på en måte som er gjennomsiktig for systembrukeren.. Under visse operasjoner kan valgfrie mikrokoder frembringes for å fastholde CPU ved en mislykket sammenligning mellom to databusser. Dissse og andre trekk og fordeler ved foreliggende oppfinnelse vil bli bedre forstått av vanlige fagfolk på området ut fra en gjennomgang av beskrivelsen nedenfor og de vedføyde tegninger, samt de etterfølgende patentkrav.
Oppfinnelsen vil nå bli nærmere beskrevet under henvisning til de vedføyde tegninger, hvorpå: Fig. 1 er et blokkskjerna over CPU i henhold til foreliggende
oppfinnelse,
fig. 2 er et blokkskjema over en ekstra ALU utført som en
spesialfunksjonsenhet,
fig. 3 er et blokkskjema over en rekke kladdeblokk-registre
anordnet som en spesialfunksjonsenhet,
fig. 4 er et blokkskjema over maskinvare for paritetsdannelse
som spesialfunksjon, og
fig. 5 er et blokkskjema over maskinvaremulighetene for
tilstandsprøver av spesialfunksjonsmoduler.
Det skal først henvises til fig. 1, hvor et blokkskjema over databane-arkitekturen er angitt. I denne foretrukne utførelse utnyttes to enheter som kilder. ALU 10 og spesialfunksjonsenheter 12a, 12b, 12c .... 12n betjenes av de tilgjengelige datakilder. Utgangen fra ALU 10 er gjort tilgjengelig på hoveddatabuss 14, mens utgangene fra spesialfunksjonsenhetene deles, hvilket vil si at bare en eneste av disse er tilgjengelig av gangen fra en spesiell hovedbuss 16.
Kildene for disse to dataressurser avleverer over to analoge databuss-sett, nemlig over J- og K-hovedbusser 18 og 20 fra 4:1-multipleksere 22 og 24, samt over SJ- og SK-spesial-databusser 26 og 28 fra 4:1-multipleksere 30 og 32. Multiplekser-valg utføres ved hjelp av mikrokodefelter, slik det uten videre vil forstås av fagfolk på området. Skjønt 4^-multipleksere anvendes i denne foretrukne utførelse, vil fagfolk på område uten videre være klar over at et system med større muligheter for inngangssammenkoblinger kunne vært anordnet, men da på bekostning av mer komplisert maskinvare, med usikker vinning av øket funksjonssmidighet.
Ikke alle dataressurser er samtidig tilgjengelig for hver av multiplekserne. 4:1-multiplekserne 22 og 30, som utgjør kilde for J-buss 18 og SJ-buss 26, er selv tilknyttet flere kilder, nemlig J-register 34, CD-register 36, M-register 38 og SM-register 40. 4:1-multiplekserne 24 og 32, som utgjør kilde for K-buss 20 og SK-buss 28, har selv som kilde M-register 38, SM-register 40, K-register 42 og LIT-register 40. Det bør bemerkes at databanen er beriket av felles tilknytning til M-og SM-datakilderegistrene 38 og 40 for både databane M og SM gjennom hver side av ALU 10, over J-register 34 og K-register 42, samt således over J-buss 18 og K-buss 20, og også over hver side av hvilken som helst av spesialfunksjonsmodulene 12a ... 12n, gjennom SJ-4:1-multipleksereh 30 og SK-4:1-multiplekseren 32, samt gjennom SJ-buss 26 og SK-buss 28.
Ved dette tidspunkt vil det være anskueliggjørende å utpeke arbeidsfunksjonene for de forskjellige registre og databusser som anvendes i en foretrukket utførelse av foreliggende oppfinnelse, skjønt vanlige fagfolk på området uten videre vil være klar over at disse valg til en viss grad er vilkårlige, og at andre funksjoner eller prioriteter godt kan tilordnes til forskjellige databusser og registre samt arrangementer; av disse, uten at derfor oppfinnelsens ramme og grunnprinsipper, overskrides. M-registeret 38 fastholder resultatene av det tidligere ALU-hovedresultat, som avgis til dets inngang fra utgangssiden av ALU 10 over M-buss 14'. SM-registeret 40 fastholder resultatet: av det tidligere valgte spesialfunksjonsresultat fra en hvilken som helst av spesialfunksjonsmodulene 12a ... 12n.
J-registeret 34 og K-registeret 42 fastholder hver innholdet av et utvalgt register av et antall sådanne registre, først og fremst innbefattet et valgt register fra registerrekken 46. Denne registerrekke kan datalastes fra M-registeret 38. Fagfolk på området vil erkjenne at J- eller K-registeret kan ta data fra andre registre, slik som et programtellerregister eller hukommelse-adresseregister, gjennom andre multipleksere på kjent måte. CD-registeret 36 fastholder utgangsinnholdet fra en adresser-bar hurtighukommelse 48 som datalastes fra SM-registeret 40 over leder 49. Det siste hovedregister i denne registerrekke er LIT-registeret 44, som, slik som dets betegnelse antyder, fastholder en bokstaykonstant tilført' fra et mikrokode-bitfelt 50.
Rekken 46 av flere registre styres av flere mikrokodefelter som spesifiserer det eventuelle register for drift til J- og K-registeret 34 og 42, samt det register i rekken som skal lades fra M-registeret 38. Et utpekerregister (ikke vist) arbeider i samsvar med en mikrokode for å velge registre som skal lades og leses. Dette register kan lades fra M-buss 14 eller trinnforskyves oppover eller nedover ved hjelp av mikrokodefelter. Alle felter som anvendes for å lade disse rekke-registre befinner seg i fase 2, mens alle felter som anvendes for lesning av registrene befinner seg i fase 1.
Som tidligere nevnt oppnås operasjonene i den viste databane i fig. 1 ved hjelp av en mikrokode-"pipeline" med minst to faser, slik som den beskrevet i de samtidig løpende US patent-søknader nr. 537.038 og 537.429, som begge inngår her som referanse.
I en foretrukket utførelse av foreliggende oppfinnelse dekoder mikrokode-bitfeltet i fase 1 for en gitt mikroinstruksjon, mikrokode-adresseringsfunksjonene for rekken 46 av flere registre, og multiplekseren 52, som anbringer resultatene fra ett av et antall forskjellige registre på inngangen til J-registeret, samt multiplekseren 54, som utfører en lignende funksjon på inngangen for K-registeret 42. Multiplekserne 52 og 54 danner porter til registre som det mindre ofte søkes tilgang til, slik som en programteller, hukommelse-adresse-registeret eller statusregisteret. Fagfolk på området vil erkjenne at dette trekk tillater tilgang til mange registre, mens hovedregisterbanene forblir uberørt.
Fase 2-delen av mikrokode-bitfeltet i hvilken som helst gitt mikroinstruksjon dekoder 4:1-multiplekserne 22, 24, 30 og 32, samt styrer og fastlegger operasjonen for ALU 10 og spesialfunksjonsenhetene 12a ... 12n. Med hensyn til spesialfunksjonsenhetene, styrer en del av mikrokode-bitfeltet i fase 2 både valget av en av de n spesialfunksjonsenheter 12a ... 12n som foreligger, og definerer vedkommende spesialfunksjonsen-hets arbeidsfunksjon. Fagfolk på området vil erkjenne at det er uvesentlig hvilken del av det tilgjengelige mikrokodefelt som anvendes, samt at hvilke som helst bitposisjoner i vedkommende mikrokodefelt-fase, kan anvendes. Alle registre klokkes samtidig, bortsett fra at CD-registeret 36 klokkes bare når mikrokoden spesifiserer en last fra hurtigbufferet 48. I denne forbindelse avgir et mikrokodefelt et sperre-signal (ikke vist) til CD-registeret 36. Datalasting av visse registre (M, SM, CD og nevnte registerrekke) kan eventuelt sperres under mikroforgrening. Se den samtidig løpende US patentansøkning nr. 537.886.
Det vil være åpenbart for vanlige fagfolk på området at det beskrevne arrangement av databaner i beskrivelsen ovenfor av en foretrukket utførelse av foreliggende oppfinnelsesgjen-stand, ut fra et omkostnings- og driftssynspunkt, gir en viss grad av smidighet som gir et vellykket kompromiss mellom komplisert maskinvare og tilpasningsmuligheter.
Hver spesialfunksjonsenhet 12a ... 12n kan være tilegnet en beslektet gruppe av oppgaver. En sådan enhet kan f.eks. være en ekstra ALU som er i stand til å utføre logiske eller aritmetiske funksjoner og returnere resultatet av disse til SM-databussen.
Det skal nå henvises til fig. 2, som viser en utførelse av en spesialfunksjonsenhet som en ALU. ALU-enheten 100 har en inngang 102 forbundet med SJ-databuss 26 samt en inngang 104 forbundet med SK-databuss 28, mens enhetens utgang 106 er tilsluttet bufferet 108. Dette buffer 108 fører ALU-resulatet tilbake til SM-databuss 16. Da mer enn en spesialfunksjonsenhet er tilsluttet SM-databussen, har bufferet 108 organer for å hindre konkurranse om denne databuss ved å sikre at nevnte spesialfunksjonsenhet bare har styring over SM-databuss 16 når den direkte velges. Bufferet 108 har således en OE-inngang som drives av dekodingsenheten 110. Et mikrokodefelt 112 i fase 2 driver dekodingsenheten 110, samt driver også lignende dekodingsenheter for alle spesialfunksjonsenheter tilsluttet SM-databuss 16. Hver dekodingsenhet er innstilt for å gjenkjenne bare en av alle mulige kombinasjoner av mikrokoder som opptrer i mikrokodefeltet 112. Bare en eneste dekodingsenhet vil således kunne aktivere et buffer til å forbinde en spesialfunksjonsenhet med SM-buss 16.
Et annet mikrokodefelt 104 i fase 2 er vist forbundet med ALU-enheten 100. Dette mikrokodefelt definerer den arbeidsfunksjon som skal utføres av ALU-enhet 100.
I drift er enhver spesialenhet, slik som ALU-enheten 100, alltid forbundet med SJ- og SK-databusser, og således alltid forberedt på å utføre sin arbeidsfunksjon. Bare en funksjon har imidlertid styring av SM-bussen til enhver tid. Dette valg av enhet fastlegges av mikrofeltet 112 og dekodes av dekoderen 110, som således tillater bufferet 108 å drive SM-buss 16.
ALU 100 kan ha en utgang tilsvarende ALU = 0 (vist ved henvis-ningstall 116), og som kan være nyttig for utførelse av forskjellige prøver. Som tidligere nevnt kan ubrukte mikrokode-muligheter i tidligere instruksjoner anvendes for å frembringe arbeidsoperasjoner gjennom CPU av den art som hovedsakelig er vist i fig. 1 og som fører til at kvantitative størrelser anbringes på SJ- og SK-databussene. Hvis disse mikrokode-prøverutiner er fastlagt slik at de resultater som samtidig opptrer på SJ- og SK-bussene antas å være like, kan utgangen 116 fra ALU 100 anvendes som slutt-trinnet i en prøve som går ut på å fastlegge om den maskinvare som utprøves ved hjelp av mikrokoden arbeider korrekt eller ikke. Et hvert annet resultat enn ALU = 0 på dette sted i programmet kan anvendes for å stoppe prosessoren på grunn av en mislykket sammenligning på henholdsvis SJ- og SK-databussen 26 og 28. Dette gir en fremgangsmåte for å bekrefte at korrekt arbeidsoperasjon foreligger i forskjellige deler av CPU som ikke er beskyttet ved andre midler (slik som paritet), uten bruk av redundans-kretser i for stor grad. Denne utprøvning finner sted samtidig med normal systemdrift uten å påvirke anleggets arbeidsfunksjon. Den enkle ADD-makroinstruksjon krever f.eks. ikke bruk av spesialfunksjonsmodulene 12a ... 12n.
De operander som skal tillegges, tilføres ALU 10 over J-databuss 18 og K-databuss 20. På grunn av databanenes smidighet kan i tillegg de samme operander samtidig tilføres spesialfunksjonsenheten ALU 100. Ved den etterfølgende klokkepuls er resultatene fra hoved-ALU og spesial-ALU tilgjengelig i M-egisteret 38 og SM-registeret 40. Disse resultater kan så overføres gjennom multiplekserne 30 og 32 samt tilføres inngangene 102 og 104 for spesialfunksjonsenheten ALU. Mikro-kodef eltet 114 utfører den kontrollfunksjon som instruerer spesial-ALU 100 til å utføre en subtraksjon og stoppe CPU hvis resultatet er forskjellig fra 0, slik som antydet ved lederen 116. Den korrekte arbeidsfunksjon for de' to ALU-enheter såvel som for mange av kontrollbanene,. er derved bekreftet.
Et annet eksempel på en spesialfunksjonsenhet som kan bygges inn i foreliggende CPU i henhold til oppfinnelsen, er en enhet som utgjør et kladdelager for et antall adresser. Kladdelageret 120, som kan utgjøres av RAM eller, andre passende hukommelses- eller registerinnretninger, er vist forbundet med SJ-, SK- og SM-databussene 26, 28 og 16. SJ-databussen anvendes som en datainngangsport for kladdelageret 120, mens SK-databussen anvendes for å fastholde en del av den adresse som anvendes for tilgang til kladdelageret 120. En annen del av den adresse som anvendes som tilgangsadresse til kladdelageret 120, er avledet fra mikrokodefeltet 114.
Liksom i ALU-eksempelet, undersøker en dekodingsenhet 122 mikrokodefeltet 112 for å fastlegge om et bestemt bitmønster har valgt kladdelageret 120 for styring av SM-databuss 16. Til forskjell fra dekodingsenheten 110 som er tilordnet ALU 100, har imidlertid dekodingsenheten 122 to utganger. Den ene av disse utganger, nemlig over lederen 124, avgir en enkelt bit til aktivering av utgangen fra kladdelager 120. Dette utgangsaktiverende inngangssignal anvendes på kjent måte innenfor foreliggende fagområde, for å sperre utgangsdriverne fra kladdelager 120, således at denne selektivt kan forbindes med SM-databuss 16. Den andre utgang, nemlig over lederen 126, anvendes for å drive lese/skrive-inngangen til kladdelager 120 samt fastlegger om kladdelageret 120 skal utføre en lese- eller skriveoperasjon.
Av de ovenfor angitte eksempler vil det fremgå at mikrokodefeltet 112 i alminnelighet utnyttes for å dekode valg av en bestemt spesialfunksjonsenhet og bringe dens utgang i forbindelse med SM-databuss 16. Mikrokodefeltet 114 utnyttes for å utføre spesielle adresseringsfunksjoner eller funksjons-definisjoner for hvilken som helst spesialfunksjon som foreligger i systemet.
Skjønt paritet vanligvis sendes ut sammen med de data den
gjelder, vil spesialfunksjonsenhetene 12a ... 12n sende paritet en klokkesyklus senere. I tilfeller hvor en spesialfunksjonsenhet 12a ... 12n vil frembringe paritet i serie med ut-gangsdata fra vedkommende spesialfunksjonsenhet, ville ellers paritetsdannelsen nedsette hastigheten av maskinens syklustid.
For å forhindre hastighetssenkning av syklustiden, sender spesialfunksjonsenhetene 12a ... 12n paritetsinformasjon en klokkesyklus senere enn datainformasjonen. Den tid som går med til å danne paritet påvirker således ikke den minste syklustid for CPU.
Det skal nå henvises til fig. 4, hvor mekanismen for å danne paritet for spesialfunksjonsenhetene er beskrevet.
Fig. 4 angir spesialfunksjonsenheter 12a ... 12n med sine inn-ganger forbundet med SJ-databuss 26 og SK-databuss 28, mens deres utganger er forbundet med SM-databuss 16. I tillegg til disse databusser, viser fig. 4 SJ-paritetsbuss 26a og SK-paritetsbuss 28a, som driver inngangene for begge spesialfunksjonsmoduler, såvel som SM-paritetsbuss 16a, som selektivt drives av spesialfunksjonsenhetene 12a ... 12n. Spesialfunksjonsenheten 12a, som på tegningen anskueliggjør oppbygningen av alle spesialfunksjonsenheter, er vist å inneholde en paritets-generatorenhet 202 såvel som en operasjonsenhet 200 for spesialfunksjonen, som f.eks. kan være ALU 100 i fig. 2, eller kladdelageret 120 i fig. 3. Alt etter arten av den spesielle spesialfunksjonsenhet det gjelder, kan paritet for vedkommende enhet enten passerer gjennom eller frembringes i enheten. Hvis f.eks. spesialfunksjonsenheten er et kladdelager, bringes paritet bare til å passere videre sammen med de data som skal lagres i kladdelageret. Hvis spesialfunksjonens operasjon 200 er en ALU, vil paritet bli frembragt ut fra ALU-resultatet.
I andre tilfeller, slik som når en spesialfunksjonsenhet omfatter en telleprosess, og inngangstilstandene og inngangs-paritet er kjent, kan en algoritme anvendes til å forutsi hva pariteten vil være på funksjonsresultatet. Som det vil være tidligere kjent, foreligger det mange maskinvare-opplegg som kan anvendes for å forutsi paritet på grunnlag av inngangs-operander og den operasjon som utføres. Paritetspassasje-eller generatorenheten 200 kan også utnytte disse former for å forutsi paritet.
Den resulterende paritetsbit som frembringes av paritets-passasje- eller generatorenheten 202 anbringes i et for-sinkelsesregister 204 for SM-paritetsbussen i den første effektive klokketakt som følger dens frembringelse.
Det skal bemerkes at mikrokodefeltet 112 som, slik det er nevnt ovenfor, anvendes for å aktivere en bestemt spesialfunksjonsenhet 12a ... 12n, er vist å drive dekodingsenheten 206. Dekodingsenheten 206 har samme arbeidsfunksjon som dekodings-enhetene 110 og 122 i fig. 2 og 3, men er her vist også å ha en annen funksjon i forbindelse med paritet. En del av utgangen fra dekodingsenheten 206 er vist å utføre SM-data-bussens utgangsfunksjon over buffer 208, som er vist skjema-tisk som en enhet med utkoblingsfunksjon, slik det vil være tidligere kjent. Utgangen fra dekodingsenheten 206 danner også datainngang til det paritetsdrivende SM-forsinkelses-register 210. Utgangen fra dette SM-register 210 driver aktiverings/utkoblings-lederen fra utgangsbuffer 212 som avgir det oppnådde resultat i SM-forsinkelseregisteret til SM-paritetsbuss 16a.
Fagfolk på området vil erkjenne at resultatet av den spesial-funksjonsoperasjon som er vist i blokk 200 bringes til å passere gjennom buffer 210 til SM-databuss 16 en klokkesyklus forutfor den paritetsbit som er tilgjengelig på SM-paritetsbuss 16a, på grunn av klokketaktsforsinkelsen gjennom registrene 204 og 210. For å kompensere for dette driver imidlertid paritetsbuss 16a en paritetskontrollenhet 216. Utgangen fra SM-registeret 214 avgis til paritetskontrollen liksom den uregistrerte paritetsbit fra SM-paritetsbuss 16a. Da den foreliggende paritetsbit på SM-paritetsbuss 16a er blitt forsinket med en klokkesyklus, vil tillegget av SM-registeret 214 til paritetsdatabussen forsinke datautgangen på SM-buss 16 nettopp med denne ene klokkesyklus, således at den paritetskontrollerende enhet 216 mottar både data og paritetsbit samtidig.
Skjønt beskrivelsen ovenfor hovedsakelig har anskueliggjort paritetsbegrepet som et enkelt bit pr. ord, vil fagfolk på området forstå at andre opplegg også kan anvendes. Et antall paritetsbit kan f.eks. anvendes for å dekke forskjellige underfelter av hele ordet. To paritetsbit, som hver dekker halvparten (nedre eller øvre) av et ord kan således anvendes. Det skal nå henvises til fig. 5, som viser et blokkskjema av de betingede utprøvningsmuligheter som ligger i maskinvaren i spesialfunksjonsmodulene, idet den maskinvarearkitektur som tillater CPU-sekvensenheten å forgrene til tallrike utprøv-ningsbetingelser, nå vil bli beskrevet.
Inne i hver av spesialfunksjonsmodulenhetene 12a ... 12n foreligger som tidligere beskrevet forskjellige spesialfunksjonsenheter som er i stand til å utføre forskjellige utprøvninger på de parametre de arbeider med. Hvis f.eks. spesialfunksjonsenheten er en ALU, kan de forskjellige prøver som kan utføres omfatte innstilling av en mentebit, ALU = 0, samt positive eller negative ALU-resultater.
Hver spesialfunksjonsenhet 12 er utstyrt med to multipleksere 130 og 132, som velger blant de tallrike prøvebetingelser som er tilgjengelige for vedkommende modul over en del av mikro-kodef eltet 114, slik som tidligere omtalt under henvisning til fig. 2, 3 og 4. Fagfolk på område vil erkjenne at valg av to spesielle prøver er noe vilkårlig og at et større eller mindre antall prøver kan utvelges, ved hensiktsmessig forandring av antall multipleksere, slik som multiplekserne 130 og 132. Utgangene fra multiplekserne 130 og 132 avgis til to databusser, hhv. STESTA-buss 134 og STESTB-buss 136, over buffere 138 og 140. På lignende måte som angitt i forbindelse med fig. 2-4, kan bufferne 138 og 140 ha sine utganger utkoblet når den spesialfunksjonsenhet 12 de er tilordnet hverken driver SM-databussen eller STESTA- eller STESTB-leder 134, 136. Utkoblingsinngangene for bufferne 138 og 140 drives av dekodingskretsen 110 som dekoder et mikrokode-bitfelt 112, slik som tidligere omtalt i forbindelse med disse spesialfunksjonsenheter.
Når således en spesialfunksjonsenhet er valgt, og en prøve eller et prøvesett er definert av en del av mikrokodefeltet 114, anbringes resultatene av disse prøver gjennom multiplekserne 130 og 132 samt bufferne 138 og 140 på STESTA-lederen 134 og STESTB-lederen 136.
STESTA-lederen 134 og STESTB-lederen 13 6 ender i en sekvens-maskinvareenhet 139 for betinget forgrening. Arbeidsfunksjonen for denne sekvens-maskinvareenhet 139 er å benytte de prøveresultater som den mottar fra STESTA- og STESTB-databussene til å utføre mikroforgrening og selektivt sperre mikrokodeledere når visse mikroforgreninger er opptatt. Oppbygningsarkitekturen og arbeidsfunksjonen for sekvens-maskinvareenheten 139 for betinget forgrening er fullstendig beskrevet i den samtidig løpende US patentansøkning nr. 537.886, som spesielt inntas i foreliggende beskrivelse som referanse.
Omfanget av de spesielle databusser som er vist her kan fastlegges i samsvar med en spesielle anvendelse. Skjønt man har anvendt et omfang på 16 bit pluss to paritetsbit, er de faktiske bussbredder som kan benyttes i utstyr i samsvar med oppfinnelsen ganske enkelt et spørsmål om konstruksjonsvalg.
Antallet og anvendelsen av de forskjellige registre er bare angitt som eksempler og ikke ment å angi noen begrensning. Fagfolk på området vil forstå at foreliggende oppfinnelse-gjenstand kan fungere i praksis ved anvendelse av TTL, ECL, CMOS, MOS, NMOS eller andre tekniske utførelser, hvis bare de iboende teknologiske konstruksjonsregler tas i betraktning.
Registre, multipleksere, ALU-enheter og logiske spesialfunksjonsenheter kan utnyttes som egne logikkelementer eller som deler av portrekker eller skreddersydd LSI.

Claims (1)

  1. Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur,karakterisert ved at den omfatter: - aritmetiske logikkorganer (10) i en første databane for å utføre aritmetiske logikkprosesser på operander, - et antall valgbare spesialfunksjonsorganer (12a ... 12n) i en andre databane for behandling av operander, - et antall første registerorganer (46) for lagring av operander som skal behandles, - et antall første multiplekserorganer (52, 54) for å velge visse utvalgte operander fra nevnte første registerorganer, - et antall andre registerorganer (34 ... 44) forbundet med nevnte første multiplekserorganer for å lagre nevnte utvalgte operander, - et antall andre multiplekserorganer (22, 24, 30, 32) for ytterligere å velge blant de nevnte utvalgte av nevnte operander og å anbringe disse i nevnte første og andre databane, samt - databussutstyr (14, 16) for å føre tilbake behandlingsresultater fra nevnte aritmetiske logikkorganer og nevnte spesialfunksjonsorganer til nevnte første og andre registerorganer .
NO843891A 1983-09-29 1984-09-28 Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur. NO168497C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/537,877 US4800486A (en) 1983-09-29 1983-09-29 Multiple data patch CPU architecture

Publications (3)

Publication Number Publication Date
NO843891L NO843891L (no) 1985-04-01
NO168497B true NO168497B (no) 1991-11-18
NO168497C NO168497C (no) 1992-02-26

Family

ID=24144474

Family Applications (1)

Application Number Title Priority Date Filing Date
NO843891A NO168497C (no) 1983-09-29 1984-09-28 Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur.

Country Status (19)

Country Link
US (1) US4800486A (no)
EP (1) EP0136179B1 (no)
JP (1) JPH0752386B2 (no)
KR (1) KR920004059B1 (no)
AT (1) ATE58794T1 (no)
AU (1) AU574387B2 (no)
BR (1) BR8404918A (no)
CA (1) CA1215783A (no)
DE (1) DE3483669D1 (no)
DK (1) DK165202C (no)
FI (1) FI85428C (no)
HK (1) HK46191A (no)
IE (1) IE56554B1 (no)
IL (1) IL73106A (no)
IN (1) IN162545B (no)
MX (1) MX157907A (no)
NO (1) NO168497C (no)
NZ (1) NZ209663A (no)
ZA (1) ZA847524B (no)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8401807D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Pipelined data processing apparatus
US4891754A (en) * 1987-07-02 1990-01-02 General Datacomm Inc. Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner
US5032986A (en) * 1987-07-28 1991-07-16 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware
JPH01255031A (ja) * 1988-04-05 1989-10-11 Matsushita Electric Ind Co Ltd 演算処理装置
US5109497A (en) * 1989-01-27 1992-04-28 Hughes Aircraft Company Arithmetic element controller for controlling data, control and micro store memories
KR100299691B1 (ko) * 1991-07-08 2001-11-22 구사마 사부로 확장가능알아이에스씨마이크로프로세서구조
EP0547240B1 (en) * 1991-07-08 2000-01-12 Seiko Epson Corporation Risc microprocessor architecture implementing fast trap and exception state
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
WO1994008287A1 (en) 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5648733A (en) * 1995-11-01 1997-07-15 Lsi Logic Corporation Scan compatible 3-state bus control
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US8006221B2 (en) * 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US7669083B2 (en) * 2007-09-11 2010-02-23 International Business Machines Corporation System and method for re-shuffling test case instruction orders for processor design verification and validation
US7992059B2 (en) 2007-09-11 2011-08-02 International Business Machines Corporation System and method for testing a large memory area during processor design verification and validation
US7966521B2 (en) * 2008-07-14 2011-06-21 International Business Machines Corporation Light weight and high throughput test case generation methodology for testing cache/TLB intervention and diagnostics
US9153295B2 (en) * 2012-10-04 2015-10-06 Texas Instruments Incorporated Register bank cross path connection method in a multi core processor system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
US3900723A (en) * 1974-05-28 1975-08-19 Control Data Corp Apparatus for controlling computer pipelines for arithmetic operations on vectors
JPS513743A (no) * 1974-06-28 1976-01-13 Hitachi Ltd
US4041461A (en) * 1975-07-25 1977-08-09 International Business Machines Corporation Signal analyzer system
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
IT1059493B (it) * 1976-04-22 1982-05-31 Olivetti & Co Spa Dispositivo per cambiare l ambiente di lavoro di un calcolatore
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
JPS5847042B2 (ja) * 1977-03-08 1983-10-20 株式会社日立製作所 異常検知方法
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
FR2413712A1 (fr) * 1977-12-30 1979-07-27 Ibm France Microprocesseur specialise pour le calcul de la somme de produits de deux operandes complexes
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4251885A (en) * 1979-03-09 1981-02-17 International Business Machines Corporation Checking programmed controller operation
US4253183A (en) * 1979-05-02 1981-02-24 Ncr Corporation Method and apparatus for diagnosing faults in a processor having a pipeline architecture
US4298935A (en) * 1979-10-05 1981-11-03 Honeywell Information Systems Inc. Interface circuit for coupling an automated maintenance system to a CPU
US4315313A (en) * 1979-12-27 1982-02-09 Ncr Corporation Diagnostic circuitry in a data processor
US4392200A (en) * 1980-01-28 1983-07-05 Digital Equipment Corporation Cached multiprocessor system with pipeline timing
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4376976A (en) * 1980-07-31 1983-03-15 Sperry Corporation Overlapped macro instruction control system
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
US4414669A (en) * 1981-07-23 1983-11-08 General Electric Company Self-testing pipeline processors
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
JPS59111569A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd ベクトル処理装置
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4618956A (en) * 1983-09-29 1986-10-21 Tandem Computers Incorporated Method of operating enhanced alu test hardware
US4574344A (en) * 1983-09-29 1986-03-04 Tandem Computers Incorporated Entry control store for enhanced CPU pipeline performance

Also Published As

Publication number Publication date
IL73106A0 (en) 1984-12-31
NO168497C (no) 1992-02-26
DK165202C (da) 1993-03-15
FI85428C (fi) 1992-04-10
HK46191A (en) 1991-06-21
ATE58794T1 (de) 1990-12-15
IL73106A (en) 1988-04-29
IN162545B (no) 1988-06-11
FI85428B (fi) 1991-12-31
NO843891L (no) 1985-04-01
DE3483669D1 (de) 1991-01-10
EP0136179A3 (en) 1986-12-30
IE842461L (en) 1985-03-29
DK462584D0 (da) 1984-09-27
JPS60167028A (ja) 1985-08-30
NZ209663A (en) 1989-01-06
CA1215783A (en) 1986-12-23
EP0136179A2 (en) 1985-04-03
MX157907A (es) 1988-12-20
JPH0752386B2 (ja) 1995-06-05
US4800486A (en) 1989-01-24
AU3359684A (en) 1985-04-04
IE56554B1 (en) 1991-09-11
ZA847524B (en) 1985-06-26
AU574387B2 (en) 1988-07-07
DK165202B (da) 1992-10-19
DK462584A (da) 1985-03-30
FI843781A0 (fi) 1984-09-26
KR920004059B1 (ko) 1992-05-23
BR8404918A (pt) 1985-08-20
EP0136179B1 (en) 1990-11-28
KR850002906A (ko) 1985-05-20
FI843781L (fi) 1985-03-30

Similar Documents

Publication Publication Date Title
NO168497B (no) Sentral behandlingsenhet i databehandlingssystemer med "pipeline"-arkitektur.
US4439827A (en) Dual fetch microsequencer
KR0125623B1 (ko) 데이타 프로세서 및 데이타 처리방법
US11243775B2 (en) System, apparatus and method for program order queue (POQ) to manage data dependencies in processor having multiple instruction queues
US10678541B2 (en) Processors having fully-connected interconnects shared by vector conflict instructions and permute instructions
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
CN100451949C (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CA1227578A (en) Entry control store for enhanced cpu pipeline performance
US4348724A (en) Address pairing apparatus for a control store of a data processing system
NZ201809A (en) Microprocessor
US4370729A (en) Microprogram sequencer
US4085450A (en) Performance invarient execution unit for non-communicative instructions
US5930520A (en) Pipelining device in a parallel processing apparatus and an instruction supplying method therefor
GB2426605A (en) Instruction issue control within a superscalar processor
US4360869A (en) Control store organization for a data processing system
US5666507A (en) Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
KR20010007093A (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
EP0315671A1 (en) Pipeline memory structure
US4349874A (en) Buffer system for supply procedure words to a central processor unit
US20020087821A1 (en) VLIW computer processing architecture with on-chip DRAM usable as physical memory or cache memory
US4404629A (en) Data processing system with latch for sharing instruction fields
EP0057067A2 (en) Odd byte memory addressing
EP0226103A2 (en) Address generation for cellular array processors
US7268591B1 (en) Decode structure with parallel rotation