[go: up one dir, main page]

NO169989B - Vektorbehandlingssystem - Google Patents

Vektorbehandlingssystem Download PDF

Info

Publication number
NO169989B
NO169989B NO852772A NO852772A NO169989B NO 169989 B NO169989 B NO 169989B NO 852772 A NO852772 A NO 852772A NO 852772 A NO852772 A NO 852772A NO 169989 B NO169989 B NO 169989B
Authority
NO
Norway
Prior art keywords
vector
register
mvl
instruction
registers
Prior art date
Application number
NO852772A
Other languages
English (en)
Other versions
NO169989C (no
NO852772L (no
Inventor
Tadashi Watanabe
Original Assignee
Nec Corp
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 Nec Corp filed Critical Nec Corp
Publication of NO852772L publication Critical patent/NO852772L/no
Publication of NO169989B publication Critical patent/NO169989B/no
Publication of NO169989C publication Critical patent/NO169989C/no

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Description

Foreliggende oppfinnelse angår et vektorbehandlingssystem, og særlig et vektorbehandlingssystem som er i stand til å fastlegge det antall lagersteder som skal anvendes i dets vektorregistre.
Et eksempel på tidligere kjente vektorbehandlingssystemer er angitt i US patentskrift nr. 4.128.880. Det system som er foreslått i dette patentskrift er utstyrt med åtte vektorregistre som hver har 64 lagersteder for å utføre vektorbehandling av vektordata innenfor hvert lagersted i de respektive vektorregistre. Lengden av et vektorregister, hvilket vil si antallet lagersteder i vedkommende register, vil her bli betegnet som en maksimal vektorlengde (MVL). Ved vektorbehandling som reaksjon på en instruksjon, lagres først det antall vektorelementer som skal utføres, i en lagringsinnretning som kalles et vektorlengderegister og som benyttes til å lagre det antall vektoroperasjoner som skal utføres. Vektorelementene leses deretter ut i rekkefølge fra vektorregistrene til en vektorfunksjonsenhet i det antall som tilsvarer den lagrede verdi i vektorlengderegisteret. Vedkommende operasjon (f.eks. en adderingsoperasjon, en multiplisering o.s.v.) som er spesifisert i instruksjonen utføres så på de utleste vektorelementer, og resultatene av operasjonen lagres i rekkefølge i et annet vektorregister eller i en hovedhukommelse. Dersom nå antall N repetisjoner i en sløyfedel av et program skrevet i programmeringsspråket FORTRAN eller et annet programmeringsspråk, er lik eller mindre enn nevnte antall MVL, lagres N i vektorlengderegisteret mens flere sett av N vektorelementer lagres i de forskjellige vektorregistre som spesifiseres av instruksjonen, og den spesifiserte operasjon i sløyfedelen utføres for de N vektorelementer som leses ut i rekkefølge fra vektorregisterne.
Hvis på den annen side N er større enn MVL, lagres først den verdi M som oppnås ved å legge en enerverdi til resten av (N-1)/MVL i vektorlengderegisteret, for å utføre den første behandling. Ved denne første behandling lagres flere sett av M vektorelementer i de forskjellige spesifiserte vektorregistre, og den spesifiserte operasjon utføres for settene av M vektorelementer. Ved den andre behandling, lastes så MVL av programmet inn i vektorlengderegisteret mens flere sett av MVL antall vektorelementer lagres i de forskjellige spesifiserte vektorregistre, og den spesifiserte operasjon utføres for settene av MVL vektorelementer.
En sådan andre behandling gjentas [(N-l)/MVL] ganger med de gjenværende sett av vektorelementer, idet [(N-l)/MVL] står for det største hele tall som ikke overskrider tallverdien (N-l)/MVL. Skjønt sløyfedelen med forholdet N > MVL kan behandles i det tidligere kjente system, må således objektprogrammet ha MVL som en konstant. For å utføre objektprogrammet ved hjelp av visse vektorbehandlingssystemer som er utstyrt med vektorregistre som hver har en bit-lengde kortere enn den som tilsvarer den anvendte bit-lengde i det ovenfor nevnte tidligere kjente system, er som en følge av dette visse rekompileringstrinn i programmet uunngåelig for å forandre MVL til å kunne tilpasses nevnte vektorregistre med sådan kortere bitlengde. Når vektorbehandlingssystemer fremstilles for kommersielle formål, opprettes vanligvis flere fremstillings-modeller som er utstyrt med vektorregistre med forskjellig MVL, for derved å kunne tilfredsstille forskjellige bruker-behov ved et optimalt forhold mellom omkostninger og yteevne. Som en følge av dette må det utarbeides objektprogrammer for hver enkelt sådan modell, da de ikke kan utveksles mellom de forskjellige modeller.
Det er derfor et formål for foreliggende oppfinnelse å frembringe et vektorbehandlingssystem som er fritt for de ovenfor angitte ulemper ved tidligere kjente sådanne systemer.
Foreliggende oppfinnelse gjelder således et vektorbehandlingssystem som omfatter: - en hovedhukommelse for lagring av instruksjoner og operander, - minst et skalarregister som er tilgjengelig for instruksjon-ene, - et antall vektorregistere som hver omfatter flere lagersteder for å inneholde vektorelementer i et ordnet datasett, - funksjonelle organer for utførelse av en forutbestemt operasjon for minst ett sett av vektorelementer i minst ett
vektorregister som reaksjon på en første instruksjon,
- en første lagringsinnretning for lagring av et tall MVL (et positivt helt tall) som angir antall lagersteder som skal
anvendes i hvert av vektorregistrene,
- en innstillingsinnretning for innstilling av nevnte tall MVL i den første lagringsinnretning, og - en utlesningsinnretning for utlesning i rekkefølge av nevnte vektorelementer.
På denne bakgrunn av prinsipielt kjent teknikk fra bl.a. EP patentsøknad nr. 44 563, har så vektorbehandlingssystemet i henhold til oppfinnelsen som særtrekk at det videre omfatter: - styreorganer som reagerer på en andre instruksjon ved å overføre innholdet i den første lagringsinnretning enten til
skalarregisteret eller til hovedhukommelsen, og
- en annen lagringsinnretning for å lagre et tall som angir det antall vektorelementer som skal overføres fra minst ett av vektorregistrene til de funksjonelle organer, idet: - nevnte utlesningsinnretning er innrettet for å lese ut i rekkefølge det angitte antall vektorelemeter fra vedkommende vektorregister og for å overføre disse til de funksjonelle organer, som reaksjon på innholdet i den andre lagringsinnretning, og - nevnte andre lagringsinnretning er utformet for, ved begynnelsestidspunktet for vektorbehandlingen, å inneholde : - tallet MVL, når restandelen som fremkommer ved divisjon av et tall N (som angir antall gjentagelser av en sløyfedel i et program) med tallet MVL, er lik null, eller
- selve restandelen, når denne ikke er null,
og
- tallet MVL, etter at utlesningsinnretningen har fullført en utlesning på grunnlag av en restandel som ikke er null.
I en foretrukket utførelse av vektorbehandlingssystemet i henhold oppfinnelsen er nevnte innstillingsinnretning en krysskoblingstråd, en mekanisk omkobler, en konsoll, en tjenesteprosessor eller en avsøkerbane.
Oppfinnelsen vil nå bli nærmere beskrevet under henvisning til de vedføyde tegninger, på hvilke: Fig. 1 er et blokkskjema over en første utførelse av
oppfinnelsen,
fig. 2A og 2B er diagrammer av instruksjonsformater for
anvendelse i henhold til oppfinnelsen,
fig. 3 viser et tidsskjema for å anskueliggjøre virkemåten
ved "pipeline"-behandling,
fig. 4A og 4B er skisser som anskueliggjør et kildeprogram og
et objektprogram,
fig. 5 er et blokkskjema over en andre utførelse av oppfinnelsen, og
fig. 6 er et blokkskjema over et utførelseseksempel på en
hovedhukommelseregulator.
I de forskjellige figurer på tegningene angir samme henvis-ningstall det samme konstruksjonselement.
Det skal først henvises til fig. 1 som viser en første utførelse av oppfinnelsen, og som omfatter en funksjonell seksjon 5 med en addisjonsenhet 510, en multiplikasjons/divi-sjonsenhet 511, en skiftenhet 512 og en logikkenhet 513, og en hovedhukommelse (MM) 3 som har fortløpende lagersteder tilordnet fortløpende adresser med utgangspunkt fra adresse 0, og som hver har en lengde på en bitgruppe, samt åtte vektorregistre VØ-V7 som hver omfatter 64 lagersteder. videre er det anordnet et instruksjonsregister 6 og et register (MVR) for maksimal vektorlengde 7, samt en skalarregistergruppe 4 som består av 16 adresserbare skalarregistre S^-S^ som anvendes for skalare operasjoner eller adresseberegninger. Systemet omfatter videre en velgerkrets 9, et vektorlengderegister 2, en banevelgerkrets 1, en dekoder 10, innstillings-organer 8, en vektorelementteller 11, et register 12 og en teller 13.
Det skal nå henvises til fig. 2A, hvor det er angitt at en første instruksjonstype med et første instruksjonsformat (RR) for anvendelse i den viste utførelse (f.eks. en aritmetisk instruksjon eller en instruksjon om hukommelsestilgang), omfatter et operasjonskodefelt OP (bitposisjon 0 til og med 7), et resultatregister-utpekerfelt Rx (bitposisjon 8 til og med 15), et første inngangsregister-utpekerfelt Ry (bitposisjon 16 til og med 23), samt et andre inngangsregister-utpekerf elt Rz (bitposisjon 24 til og med 31).
Det skal nå henvises til fig. 2B, hvor det er vist en annen instruksjonstype med et andre instruksjonsformat (RX) for anvendelse i foreliggende systemutførelse, og som i tillegg til de samme felt som er angitt for den første instruksjonstype, omfatter et forskyvningsfelt D (bitposisjon 32 til og med 63).
Det skal igjen henvises til fig. 1, hvor adresse 0 til og med 63 er tilordnet 64 lagersteder i hvert av registrene VQ-V7. Da hvert av registrene V1-V7 kan inneholde opptil 64 vektorelementer, som hver har en lengde på 4 bitgrupper, er MVL lik 64. Registrene Vq og V^ er forbundet med enheten 510, registrene V2 og V3 med enheten 511, registrene V4 og V5 med enheten 512, samt registrene Vg og V7 med enheten 513. Da forbindelsene mellom seksjonen 5 og registrene VQ-V7 er faste, anvendes feltene Ry og Rz ikke for vektoroperasjonsinstruk-sjoner. Registeret 2, som er forbundet med registeret 12 over en lederbane 14, inneholder antall vektoroperasjoner spesifisert av instruksjonen. Innholdet i registeret 2 kan innstilles vilkårlig av instruksjonen fra f.eks. hovedhukommelsen (MM) 3. Instruksjonsfeltet OP, som er ført inn i instruksjonsregisteret 6 fra hovedhukommelsen (MM) 3 over en lederbane 15, dekodes av dekoderen 10. Registeret 7 for maksimal vektorlengde (MVR) innstilles til verdien for MVL, f.eks. 64 i foreliggende utførelse, over innstillingsorganene 8, som kan bestå av en krysskoblingstråd, en mekanisk omkobler eller en forvaltningsprosesser for vedlikehold og diagnose. Det er også mulig å benytte en spesialbane, slik som en avsøkerbane.
Kretsen 1 har som funksjon å velge baner for dataoverføringer mellom hovedhukommelsen (MM) 3 og registrene VØ-V7, mellom registergruppen 4 og registrene Vq-V7, mellom seksjonen 5 og registrene Vq- V- j samt mellom registergruppen 4 og seksjonen 5. Kretsen 9 reagerer på instruksjonsfeltene Rx, Ry og Rz ved å velge tilsvarende skalarregistre i registergruppen 4 som utgangsregister, samt henholsvis første og andre inngangsregister. Hvis f.eks. den instruksjon som tas ut fra hovedhukommelsen (MM) 3 til registeret 6 er en "laste"-instruksjon for innlasting av innholdet i registeret 7 for maksimal vektorlengde (MVR) i gruppen 4, vil kretsen 9 velge tilsvarende skalarregister i gruppen 4 som reaksjon på instruksjonsfeltet Rx. Innholdet i registeret (MVR) 7 føres deretter gjennom banen 19 inn i det skalarregister som er valgt av feltet Rx. Hver av enhetene 510, 511, 512 og 513 er "pipe-line "-koblet i et antall behandlingstrinn. Behandlingen i hvert trinn er synkronisert og innledes med klokkeimpulser som tilføres fra en klokkesignalkilde (ikke vist). Med hensyn til konstruksjon og virkemåte av sådanne "pipelines", henvises det til en artikkel med tittelen "The IBM System/360 Model 91: Floating-Point Execution Unit" av S.F. Anderson m.fl., publisert i IBM Journal of Research and Developments, bind 11, nr. 1, januar 1967, sidene 54-68.
Enheten 510 omfatter f.eks. et sammenligningstrinn 5101 for sammenligning av eksponentdelene av to vektorelementer som tilføres fra registrene Vg og V1( et sifferopprettingstrinn 5102 for å utføre sifferoppretting av vedkommende elementers mantisser, et addisjonstrinn 5103 for addisjon av mantisse-delene av nevnte elementer, samt et normaliseringstrinn 5104 for normalisering av addisjonsresultatet. Når det gjelder addisjonsbehandling av vektorer, tilfores, slik som beskrevet nedenfor, inngangsdata i rekkefølge fra lagerstedene ved adresse null i registrene Vq og Vi til enheten 510 i synkroni-sering med klokkesignalene. Ved dette tidspunkt er kretsen 1 tilført instruksjonsfeltet Rx i registeret 6 over en lederbane 16. Kretsen 1 overfører i rekkefølge de addisjonsresultater som etter tur avgis fra enheten 510, til påfølgende lagersteder i det vektorregister som er spesifisert i instruksjonsfeltet Rx.
Ved begynnelsen av den vektoraddisjonsprosess som skal utføres, lagres på den annen side innholdet i registeret 2 midlertidig i registeret 12 og samtidig innstilles innholdet i telleren 11 til null. Telleren 11 fortsetter sin opptelling i synkronisme med klokkesignalene, mens innholdet i registeret 12 ikke er null. Utgangssignalet fra telleren 11 tilføres som adresseringsdata for registrene Vq og V^ over en lederbane 17 og innholdet i de lagersteder som derved adresseres, tilføres til enheten 510, slik som beskrevet ovenfor. Telleren 13 subtraherer en enerverdi fra innholdet i registeret 12 i synkronisme med klokkesignalene og lagrer resultatet på nytt i registeret 12. En sådan opptellingsprosess i telleren 11 og nedtellingsprosess i telleren 13 fortsetter inntil innholdet i registeret 12 oppnår nullverdi. Sådan maskinvare som registeret 2 og tellerne 11 og 13, er også anordnet for registerparet V2-V3, registerparet V4-V5 samt registerparet Vg-V7, men er utelatt fra tegningen, for å forenkle denne.
Fig. 3 viser et tidsskjema for å illustrere den ovenfor angitte prosess. I fig. 3 angir Vj_(j) (i, j = 0 til 7) innholdet i det i-te lagersted i vektorregisteret Vj_' , mens T^ angir overføringscykelen fra vektorregistrene Vq og V^ til enheten 510, C angir cykelen for trinnet 5101, S cykelen for trinnet 5102, A cykelen for trinnet 5103, N cykelen for trinnet 5104, og T2 overføringscykelen fra enheten 510 til det adresserte vektorregister.
Det vil nå bli beskrevet hvorledes en UTFØR-sløyfe (DO-loop) i et Kildeprogram skrevet i FORTRAN og vist i fig. 4A, blir gjennomført. UTFØR-sløyfedelen i fig. 4A angir at minst en setning mellom en UTFØR-setning og en FORTSETT-setning (CONTINUE) skal utføres N ganger (N er et heltall). For denne utførelse frembringes et objektprogram som angitt i fig. 4B fra kildeprogrammet i fig. 4A . De instruksjonsoperasjoner som skal anvendes i dette objektprogram er oppstilt i tabell 1.
Det skal nå henvises til figurene 4B og 1 ved beskrivelse av det angitte objektprogram. Det antas at vektorelementene er lagret i fortløpende adresser i hovedhukommelsen (MM) 3 og at et vektorelement opptar fire påfølgende adresser i denne hukommelse.
TRINN (1): Som reaksjon på lagringen av LDS-instruksjonen i registeret 6, lastes antallet gjentagelser N av programmet i hovedhukommelsen (MM) 3, inn i skalarregisteret Sl.
TRINN (2): Som reaksjon på lagringen av SMVL-instruksjonen i registeret 6, lastes innholdet i registeret 7 for maksimal vektorlengde (MVR), nemlig MVL (= 64) , inn i skalarregisteret S2 over lederbanen 19.
TRINN (3): Det resultat som oppnås ved addisjon av innholdet (N) i registeret Sl og "-1" ved enheten 510, lagres i skalarregisteret S3 over lederbanen 25 og i kretsen 1 over banen 26 som reaksjon på lagringen av ADD-instruksjonen i registeret 6.
TRINN (4): Det oppnådde resultat ved addisjon av innholdet (MVL) i registeret (S2) og "-1" ved enheten 510, lagres i skalarregisteret S4 etter lagring av ADD-instruksjonen i registeret 6.
TRINN (5): Det oppnådde resultat ved OG-operasjon av innholdet (N-l) i registeret S3 og innholdet (MVL-1) i registeret S4 ved enheten 513, lagres i skalarregisteret S5 over banen 27 og i kretsen 1 over banen 26 som reaksjon på lagringen av AND-indstruksjonen i registeret 6.
TRINN (6): Det oppnådde resultat ved addisjon av innholdet i registeret S5 og "1", lagres i skalarregisteret S6 som reaksjon på lagringen av ADD-instruksjonen i registeret 6.
TRINN (7): Innholdet i registeret S6 forskyves til venstre med to bitposisjoner av enheten 512, således at "4" multi-plisert med innholdet i registeret S6 lagres i registeret S7 over lederbanen 28 og i kretsen 1 over banen 26 som reaksjon på lagringen av SLL-instruksjonen i registeret 6. Som et resultat oppnås lagerstedet for det første vektorelement som skal utleses fra hovedhukommelsen (MM) 3, i registeret S7.
TRINN (8): Innholdet i registeret S2 som er forskjøvet til venstre med to bitposisjoner av enheten 512, lagres i registeret S8 som reaksjon på lagringen av SLL-instruksjonen i registeret 6. Som et resultat oppnås avstanden mellom settene av vektorelementer når vektorlengden er MVL.
TRINN (9): Som reaksjon på lagringen av 0R<4>instruksjonen i registeret 6, lagres "4" i registeret S9.
TRINN (10): Som reaksjon på lagringen av LVL-instruksjonen i registeret 6, lastes innholdet i registeret S6 inn i registeret 2 over lederbanen 20.
TRINN (i + 1) (i er et helt tall, på 11 eller mer):
Det oppnådde resultat ved addisjon av innholdet i registeret S9 og innholdet i registeret S7 ved enheten 510, lagres i registeret S9 som reaksjon på lagringen av ADD-instruksjonen i registeret 6. Som et resultat oppnås for gjentagelse, utlesningsadressen for det neste sett av vektorelementer i hovedhukommelsen (MM) 3.
TRINN (i + 2): Som reaksjon på lagringen av denne OR-instruksjon i registeret 6, lastes innholdet i registeret S8 inn i registeret S7.
TRINN (i + 3): Det innhold i registeret S6 som subtraheres fra innholdet i registeret Sl ved enheten 510, lagres i registeret Sl som reaksjon på lagringen av SUB-instruksjonen i registeret 6. Som et resultat oppnås antallet av gjenværende vektorelementer som ennå ikke er behandlet.
TRINN (i + 4): Som reaksjon på lagringen av OR-instruksjonen i registeret 6, lastes innholdet (MVL) i registeret S2 inn i registeret S6.
TRINN (i + 5): Som reaksjon på lagringen av BNZ-instruksjonen i registeret 6, kontrolleres innholdet i registeret Sl, og hvis innholdet ikke er "0", utføres prosessen fra trinn (10).
I en rekke behandlingstrinn fra trinn (3) til trinn (5) beregnes restandelen av forholdet (N-l)/MVL ved anvendelse av det forhold at MVL vanligvis er en eksponent av 2. Behand-lingsprosessene opptil trinn (9) utgjør forbehandling av UTFØR-sløyfeoperasj onen.
Da objektprogrammet ikke har antallet lagringsdeler i hvert vektorregister, nemlig MVL som en konstant, er det åpenbart ut i fra det som er angitt ovenfor, at i denne utførelse kan et felles objektprogram deles av systemer med forskjellig lagringskapasitet for vektorregistre, ved ganske enkelt å forandre innholdet i registeret 7 for maksimal vektorlengde (MVR) ved hjelp av innstillingsorganene 8.
Det skal nå henvises til fig. 5 som viser en andre utførelse av oppfinnelsen og av samme konstruksjon som den første, bortsett fra at den ytterligere omfatter en hukommelseregu-lator 18. Gjennom denne overføres innholdet i registeret 7 for maksimal vektorlengde (MVR) til hovedhukommelsen (MM) 3.
I fig. 6 er det vist at den regulator 18 som anvendes i den andre utførelse, omfatter et addisjonstrinn 181 med tre innganger, et adresseregister 182 og to dataregistre 183 og 184. Instruksjonen for overføring av innholdet i registeret (MVR) 7 til hovedhukommelsen (MM) 3 er en instruksjon av annen type. Når en sådan instruksjon lagres i et instruksjonsregister 60, velger velgerinnretningen 9 to tilsvarende skalarregistre som reaksjon på feltene Ry og Rz i instruksjonen, og innholdet i de valgte skalarregistre tilføres to inngangsklem-mer for addisjonsleddet 180 over baneavsnittene 23-1 og 23-2 av en lederbane 23. Da feltet D i instruksjonen er blitt tilført den gjenværende ene inngangsklemme for addisjonsleddet 181 over en bane 21, finner en addisjon sted og resultatet lagres i registeret 182. Innholdet i registeret (MVR) 7 lagres midlertidig i den adresse av hovedhukommelsen (MM) 3 som adresseres av innholdet i registeret 182. Registeret 184 lagrer midlertidig de data som leses ut fra hovedhukommelsen (MM) 3. Registeret 184 fungerer således som en buffer for overføring av data til skalarregistergruppen 4 over et baneavsnitt 23-4 av lederbanen 23. I denne utførelse utføres, som nevnt ovenfor, vektoroperasjonsinstruksjonen etter at innholdet i registeret (MVR) 7 er blitt overført til hovedhukommelsen (MM) 3, istedet for til gruppen 4.
Beskrivelsen ovenfor gjelder foretrukne utførelser av den foreliggende oppfinnelse, men det vil være åpenbart for fagfolk på området at oppfinnelsen lett kan bringes til praktisk anvendelse på forskjellige andre måter.

Claims (2)

1. Vektorbehandlingssystem som omfatter: - en hovedhukommelse (3) for lagring av instruksjoner og operander, - minst et skalarregister (4) som er tilgjengelig for instruk-sjonene, - et antall vektorregistre(Vq - V7) som hver omfatter flere lagersteder for å inneholde vektorelementer i et ordnet datasett, - funksjonelle organer (5) for utførelse av en forutbestemt operasjon for minst ett sett av vektorelementer i minst ett vektorregister som reaksjon på en første instruksjon, - en første lagringsinnretning (7) for lagring av et tall MVL (et positivt helt tall) som angir antall lagersteder som skal anvendes i hvert av vektorregistrene, - en innstillingsinnretning (8) for innstilling av nevnte tall MVL i den første lagringsinnretning (7), og - en utlesningsinnretning (11) for utlesning i rekkefølge av nevnte vektorelementer, karakterisert ved at systemet videre omfatter: - styreorganer (10, 18) som reagerer på en andre instruksjon ved å overføre innholdet i den første lagringsinnretning (7) enten til skalarregisteret (4) eller til hovedhukommelsen (3), og - en annen lagringsinnretning (2) for å lagre et tall som angir det antall vektorelementer som skal overføres fra minst ett av vektorregistrene (Vq - V7) til de funksjonelle organer (5), idet: - nevnte utlesningsinnretning (11) er innrettet for å lese ut i rekkefølge det angitte antall vektorelemeter fra vedkommende vektorregister (Vg - V7) og for å overføre disse til de funksjonelle organer (5), som reaksjon på innholdet i den andre lagringsinnretning (2) , og - nevnte andre lagringsinnretning (2) er utformet for, ved begynnelsestidspunktet for vektorbehandlingen, å inneholde : - tallet MVL, når restandelen som fremkommer ved divisjon av et tall N (som angir antall gjentagelser av en sløyfedel i et program) med tallet MVL, er lik null, eller - selve restandelen, når denne ikke er null, og - tallet MVL, etter at utlesningsinnretningen (11) har fullført en utlesning på grunnlag av en restandel som ikke er null.
2. Vektorbehandlingssystem som angitt i krav 1, karakterisert ved at nevnte innstillingsinnretning (8) er en krysskoblingstråd, en mekanisk omkobler, en konsoll, en tjenesteprosessor eller en avsøkerbane.
NO852772A 1984-07-11 1985-07-10 Vektorbehandlingssystem NO169989C (no)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59143578A JPS6123275A (ja) 1984-07-11 1984-07-11 ベクトル処理装置

Publications (3)

Publication Number Publication Date
NO852772L NO852772L (no) 1986-01-13
NO169989B true NO169989B (no) 1992-05-18
NO169989C NO169989C (no) 1992-08-26

Family

ID=15341996

Family Applications (1)

Application Number Title Priority Date Filing Date
NO852772A NO169989C (no) 1984-07-11 1985-07-10 Vektorbehandlingssystem

Country Status (7)

Country Link
US (1) US4710867A (no)
EP (1) EP0173040B1 (no)
JP (1) JPS6123275A (no)
AU (1) AU578874B2 (no)
DE (1) DE3583264D1 (no)
FI (1) FI90149C (no)
NO (1) NO169989C (no)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814817B2 (ja) * 1986-10-09 1996-02-14 株式会社日立製作所 自動ベクトル化方法
JPH03150636A (ja) * 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
US5742842A (en) * 1992-01-28 1998-04-21 Fujitsu Limited Data processing apparatus for executing a vector operation under control of a master processor
US6665790B1 (en) 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
JP4203979B2 (ja) * 2000-08-02 2009-01-07 富士通株式会社 パケット処理装置
US6941548B2 (en) * 2001-10-16 2005-09-06 Tensilica, Inc. Automatic instruction set architecture generation
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
JP2004152049A (ja) * 2002-10-31 2004-05-27 Renesas Technology Corp データ処理装置
US7543119B2 (en) * 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US8209525B2 (en) * 2008-08-15 2012-06-26 Apple Inc. Method and apparatus for executing program code
US8933954B2 (en) * 2011-03-23 2015-01-13 Qualcomm Incorporated Register allocation for graphics processing
CN102968379B (zh) * 2012-10-24 2015-05-06 无锡江南计算技术研究所 一种寄存器分配方法、系统及处理器
US11544214B2 (en) 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS6055864B2 (ja) * 1980-07-21 1985-12-06 株式会社日立製作所 ベクトルプロセツサ
JPS59112364A (ja) * 1982-12-20 1984-06-28 Fujitsu Ltd ベクトル演算処理方式
JPS6069746A (ja) * 1983-09-26 1985-04-20 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式

Also Published As

Publication number Publication date
FI90149B (fi) 1993-09-15
EP0173040A2 (en) 1986-03-05
NO169989C (no) 1992-08-26
AU578874B2 (en) 1988-11-03
FI852738A0 (fi) 1985-07-10
FI90149C (fi) 1993-12-27
JPS6123275A (ja) 1986-01-31
NO852772L (no) 1986-01-13
US4710867A (en) 1987-12-01
DE3583264D1 (de) 1991-07-25
EP0173040B1 (en) 1991-06-19
AU4479685A (en) 1986-01-16
FI852738L (fi) 1986-01-12
JPH0319986B2 (no) 1991-03-18
EP0173040A3 (en) 1988-01-07

Similar Documents

Publication Publication Date Title
US4651274A (en) Vector data processor
US4881168A (en) Vector processor with vector data compression/expansion capability
US4725973A (en) Vector processor
EP0689128B1 (en) Computer instruction compression
US4628436A (en) Digital controller
KR930007041B1 (ko) 명령 지정방법 및 실행장치
US4890218A (en) Variable length instruction decoding apparatus having cross coupled first and second microengines
NO169989B (no) Vektorbehandlingssystem
US20070150697A1 (en) Vector processor with multi-pipe vector block matching
US6779102B2 (en) Data processor capable of executing an instruction that makes a cache memory ineffective
US4949292A (en) Vector processor for processing recurrent equations at a high speed
US5260897A (en) Signal processing circuit
US5371862A (en) Program execution control system
EP1046983A1 (en) VLIW processor and program code compression device and method
US4967350A (en) Pipelined vector processor for executing recursive instructions
US5335330A (en) Information processing apparatus with optimization programming
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US6499099B1 (en) Central processing unit method and apparatus for extending general instructions with extension data of an extension register
US5295248A (en) Branch control circuit
US20030046516A1 (en) Method and apparatus for extending instructions with extension data of an extension register
JP2002529847A (ja) ビットfifoを有するディジタル信号プロセッサ
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
GB2380283A (en) A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units
CA1271561A (en) Instruction decoding microengines

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees