FI90149B - Vektorbehandlingssystem - Google Patents

Vektorbehandlingssystem Download PDF

Info

Publication number
FI90149B
FI90149B FI852738A FI852738A FI90149B FI 90149 B FI90149 B FI 90149B FI 852738 A FI852738 A FI 852738A FI 852738 A FI852738 A FI 852738A FI 90149 B FI90149 B FI 90149B
Authority
FI
Finland
Prior art keywords
register
vector
instruction
memory
mvl
Prior art date
Application number
FI852738A
Other languages
English (en)
Swedish (sv)
Other versions
FI852738A0 (fi
FI90149C (fi
FI852738L (fi
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 FI852738A0 publication Critical patent/FI852738A0/fi
Publication of FI852738L publication Critical patent/FI852738L/fi
Publication of FI90149B publication Critical patent/FI90149B/fi
Application granted granted Critical
Publication of FI90149C publication Critical patent/FI90149C/fi

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

, 90149
Vektorikäsittelyjärjestelmä
Keksinnön kohteena on vektorikäsittelyjärjestelmä, ja tarkemmin sanottuna vektorikäsittelyjärjestelmä, joka pystyy asettamaan vektorirekistereissä käytettävien muistipaikkojen lukumäärän.
Esimerkki nykytekniikan mukaisesta vektorikäsittelyjärjestelmästä on ehdotettu US-patenttissa 4 128 880. Ehdotettu järjestelmä on varustettu kahdeksalla vektorirekisterillä, joissa kussakin on 64 muistipaikkaa vekrorikäsittelyn suorittamiseksi vektoritiedolle vastaavan vektorirekisterin jokaisessa muistipaikassa. Yhden vektorirekisterin pituutta, eli muistipaikkojen lukumäärää yhdessä vektorirekisterissä, tullaan seuraavassa nimittämään maksimi-vektoripituudeksi (MVL). Vektorikäsittelyssä vastineena käskylle suoritettavien vektorielementtien määrä tallennetaan ensin muistielimeen, jota nimitetään vektoripituusrekisteriksi ja käytetään suoritettavien vektorioperaatioiden määrän tallettamiseen. Seuraavaksi vektorielementit luetaan peräkkäisesti vektor irekistereistä vektoritoimintayksikköön sen määrän mukaisesti, joka vastaa vektoripituusrekisteriin talletettua arvoa, käskyllä määritelty toiminto (esimerkiksi lisäysoperaatio, kerto-operaatio, jne.) suoritetaan näiden ulosluettujen vektorielementtien suhteen, ja toiminnan tulokset talletetaan peräkkäisesti toiseen vektori-rekisteriin tai päämuistiin. Jos nyt silmukkaosan toiston lukumäärän ohjelmassa, joka on kirjoitettu FORTRAN-kielellä tai muulla ohjelmointikielellä, on yhtäsuuri tai pienempi kuin MVL, N talletetaan vektoripituusrekisteriin, useita N:n vektorielementin joukkoja talletetaan käskyn määräämiin vektorirekistereihin, vastaavsti, ja määritelty operaatio silmukkaosassa suoritetaan N:lie vektorielementille, jotka luetaan peräkkäisesti vektori-rekistereistä. Toisaalta, jos N on suurempi kuin MVL, talletetaan arvo M, joka on saatu lisäämällä jäännökseen (N-1)/MVL luku "1", ensiksi vektoripituusrekisteriin ensimmäisen käsittelyn suorittamiseksi. Ensimmäisessä käsittelyssä M:n vektorielementin lukuisia joukkoja talletetaan määriteltyihin vektorirekistereihin, vastaavasti, ja määritelty operaatio suoritetaan M:n vektorielementin joukoille. Toisessa käsittelyssä ohjelma lataa MVL:n vektoripituusrekisteriin, useita joukkoja MVL:stä vektorielemen- 2 90149 tistä talletetaan määriteltyihin vektorirekistereihin, vastaavasti, ja määritelty operaatio suoritetaan MVL:n vektorielementin joukoille. Tällainen toinen käsittely toistetaan _/(N-1)/MVL/ kertaa vektorielementtien jäijelläoleville joukoille, jolloin /.(N-1) /MVL? tarkoittaa suurinta kokonaislukua, joka ei ylitä lukua (N-1J/MVL. Tällä tavalla, vaikka silmukkaosa, jolla on suhde N>MVL, voidaan käsitellä nykytekniikan mukaisissa järjestelmissä, täytyy kohdeohjelmassa MVL olla vakio. Seurauksena on, että jotta kohdeohjelma voitaisiin suorittaa jollakin vek-torikäsittelyjärjestelmällä, jonka on varustettu vektorirekis-tereillä, joissa kussakin bittipituus on lyhyempi kuin vastaavassa, yllä mainitussa nykytekniikan mukaisessa järjestelmässä, on ohjelman jonkinlainen uudelleenkääntöaskel välttämätön MVL:n muuttamiseksi sovitettavaksi niihin vektorirekistereihin, joilla on tällainen lyhyempi bittipituus. Yleisesti, kun vekto-rikäsittelyjärjestelmiä valmistetaan kaupallisiin tarkoituksiin, muodostetaan joskun lukuisia suunnittelumalleja, jotka on varustettu eri MVL:n omaavilla vektorirekistereillä, jotta voitaisiin vastata käyttäjien erilaisiin tarpeisiin optimaalisella kustan-nus-suorituskykysuhteella. Seurauksena on, että tällaisia malleja vastaavat kohdeohjelmat täytyy valmistaa etukäteen, koska ne eivät ole vaihdettavissa näiden mallien välillä.
Eräs tämän keksinnön tehtävä on siksi muodostaa vektorikäsit-telyjärjestelmä, jossa ei ole nykytekniikan mukaisissa järjestelmissä esiintyviä, edellä mainittuja haittoja.
Tämän keksinnön yhden näkökohdan mukaisesti on muodostettu vektorikäsittelyjärjestelmä, johon kuuluu: päämuisti käskyjen ja operandien tallettamiseksi; vähintään yksi skalaarirekisteri, johon jokaisella mainituista käskyistä on pääsy; lukuisia vektorirekistereitä, joilla kullakin on lukuisia muistipaikkoja järjestetun tietojoukon lukuisien vektorielementtien tallettamiseksi; toiminnalliset elimet edeltä määrätyn operaation suorittamiseksi ainakin mainittujen vektorielementtien yhdelle joukolle yhdessä vektorirekisterissä vastineena ensimmäiselle käskylle; ensimmäinen muistielin niiden muistipaikkojen määrän MVL (positiivinen kokonaisluku) tallettamiseksi, jota kussakin mainituista vektorirekistereistä käytetään; asetuselin mainitun il 3 9 n 1 4 9 luvun MVL asettamiseksi ensimmäisessä muistielimessä; ohjaus-elin, joka reagoi toiseen käskyyn, mainitun ensimmäisen muisti-elimen sisällön siirtämiseksi joko mainittuun skalaarirekiste-riin tai mainittuun päämuistiin: toinen muistielin mainittujen vektorielementtien lukumäärän pitämiseksi mainitussa, ainakin yhdessä vektorirekisterissä syötettäväksi toimintaelimeen riippuen mainitun ensimmäisen muistielimen sisältö-MVL:stä, joka on siirretty joko mainittuun skalaarirekisteriin tai mainittuun päämuistiin, sekä kolmannella käskyllä määritellyn vektori-operaatioiden määrän N (positiivinen kokonaisluku) pitämiseksi; lukuelin mainittujen vektorielementtien lukemiseksi peräkkäisesti mainitusta, vähintään yhdestä vektorirekisteristä mainittuun toimintaelimeen vastineena mainitun toisen muistielimen sisällölle.
Keksinnön muut piirteet ja edut ilmenevät seuraavasta kuvauksesta yhdessä liitteinä olevien kuvien kanssa, joissa: kuva 1 on keksinnön ensimmäisen toteutuksen lohkokaavio; kuvat 2A ja 2B ovat keksintöä varten käytettävien käskyjen muotojen kaavioita; kuvassa 3 esitetään ajoituskaavio liukuhihnoitetun suorituksen toiminnan kuvaamiseksi; kuvissa 4A ja 4B esitetään lähdeohjelma ja kohdeohjelma; kuva 5 on keksinnön toisen toteutuksen lohkokaavio; ja kuva 6 on päämuistiohjaimen esimerkin lohkokaavio.
Piirroksissa samat viitenumerot esittävät samoja rakenne-elementtejä.
Viitaten nyt kuvaan 1 koostuu keksinnön ensimmäinen toteutus toiminnallisesta osasta 5, jossa on summausyksikkö 510; kerto/ jakoyksikkö 511; siirtoyksikkö 512 ja looginen yksikkö 513; päämuistista (MM), jolla on vierekkäisiä muistipaikkoja, joihin on sijoitettu vierekkäisiä osoitteita alkaen nollasta, ja jotka ovat pituudeltaan yhden tavun mittaisia, vastaavasti; kahdeksasta vektorirekisteristä VQ - V^, joilla on 64 muistipaikkaa vastaavasti; käskyrekisteristä 6, maksimivektoripituusrekiste-ristä (MVR) 7; skalaarirekisteriryhmästä 4, joka koostuu 16 4 90149 osoitettavasta skalaarirekisteristä - S^g, joita käytetään skalaarioperaatioihin tai osoitteen laskuun; valitsinpiiristä 9; vektoripituusrekisteristä 2; reitinvalintapiiristä 1; dekooderis-ta 10; asetuselimestä 8; vektorielementtilaskurista 11; rekisteristä 12; ja laskurista 13.
Viitaten kuvaan 2A koostuu ensimmäisen tyyppinen käsky, jolla on ensimmäinen käskymuoto (RR) käytettäväksi toteutuksessa (esimerkiksi aritmeettinen käsky tai muistinhakukäsky) toimikoodikentästä OP (bitit 0 - 7), tulosrekisterin määränpääkentästä Rx (bitit 8 - 15), ensimmäisen sisääntulorekisterin määränpääkentästä Ry (bitit 16 - 23), ja toisesta sisääntulorekisterin määränpääkentästä Rz (bitit 24 - 31):
Viitaten kuvaan 2B koostuu toisen tyyppinen käsky, jolla toinen käskymuoto (RX) käytettäväksi toteutuksessa, siirtymäkentästä D (bitit 32 - 63) ensimmäisen tyyppisen käskyn kanssa samanlaisten 1 isäksi.
Viitaten jälleen kuvaan 1 on osoitteet 0-63 allokoitu kunkin rekisterin Vq - V^ 64: ään muistipaikkaan. Koska jokainen rekistereistä V.j - Vy pystyy tallettamaan 64 vektorielementtiä, joista jokainen on neljän tavun mittainen, on MVL 64. Rekisterit Vq ja V^ on kytketty yksikköön 510, rekisterit V2 ja V^ yksikköön 511, rekisterit V^ ja Vg yksikköön 512 ja rekisterit Vg ja V^ yksikköön 513, tässä järjestyksessä. Toteutuksessa, koska yhteydet osan 5 ja rekisterien VQ - V^ välillä ovat kiinteitä, ei käytetä kenttiä Ry ja Rz vektorioperaatiokäskyjä varten. Rekisteri 2 on kytketty rekisteriin 12 reittiä 14 pitkin ja säilyttää käskyn määrittelemän vektorioperaatioiden lukumäärän.
Rekisterin 2 sisältö voidaan asettaa mielivaltaisesti käskyllä esimerkiksi MM3:lta. Käskyn, joka on ladattu käskyrekisteriin 6 MM3:lta pitkin reittiä 15, kenttä OP dekoodataan dekooderilla 10. MVR:ään 7 asetetaan MVLrn arvo, esimerkiksi 64, asetuseli-mellä 8. Asetuselin 8 voi koostua hyppyjohtimesta, mekaanisesta kytkimestä tai huoltoprosessista ylläpitoa ja virheenmääritystä varten. On myös mahdollista käyttää erityistä reittiä, kuten selailureittiä. Piiri 1 toimii valiten reitit tiedonsiirtoa I! 5 9G149 varten MM3:n ja rekistereiden Vq ~ , rekisteriryhmän 4 ja rekistereiden , osan 5 ja rekistereiden Vq - Μη sekä rekisteriryhmän 4 ja osan 5 välille. Piiri 9 reagoi myös käskyn kenttään Rx, kenttään Ry ja kenttään Rz valiten vastaavat skalaarirekisterit rekisteriryhmässä 4 ulostulorekisteriksi, ensimmäiseksi sisääntulorekisteriksi ja toiseksi sisääntulo-rekisteriksi, tässä järjestyksessä. Jos esimerkiksi MM3:sta rekisteriin 6 otettu käsky on "lataus"-käsky MVR:n 7 sisällön lataamiseksi ryhmään 4, valitsee piiri 9 vastaavan skalaari-rekisterin ryhmässä 4 vastineena käskyn kentälle Rx. Seuraavaksi MVR:n 7 sisältö ladataan reittiä 19 pitkin siihen skalaarirekis-teriin, joka on valittu kentällä Rx. Yksiköt 510, 511, 512 ja 513 on kaikki liukuhihnoitettu lukuisilla käsittelyvaiheilla. Käsittely jokaisessa vaiheessa on synkronoitu ja etenee kello-pulssien mukaisesti, joita syötetään kellolähteestä (ei kuvassa). Tällaisten liukuhihnojen rakenteen ja toiminnan suhteen viitataan artikkeliin "The IBM System/360 Model 91: Floating-Point Execution Unit", kirjoittanut S.F. Anderson et ai, julkaistu sarjassa "IBM Journal of Research and Developments", Voi. 11, No 1, tammikuun numero, 1967, ss. 54-68. Esimerkiksi yksikkö 510 sisältää eksponenttiosien vertailuasteen 5101 niiden kahden vektorielementin eksponenttiosien vertailemiseksi, jotka on syötetty rekistereistä VQ ja , mantissaosan numeronkchdistamisasteer 5102 näiden elementtien numeron kohdintamisen suorittamiseksi, summausasteen 5103 näiden elementtien mantissaosien summaamiseksi, ja summaustuloksen normalisaatioasteen 5104. Kuten alla on selitetty, syötetään sisääntulotieto vektorisummauskäsit-telyn tapauksessa peräkkäisesti muistipaikoista osoitteessa nolla rekistereissä VQ ja yksikköön 510 synkronoidusti kellojen kanssa. Tällä hetkellä piiriin 1 on syötetty käskyn kenttä Rx rekisteriin 6 reittiä 16 pitkin. Piiri 1 siirtää summaustulokset, jotka tulostetaan peräkkäisesti yksiköltä 510, peräkkäisesti käskyn kentän Rx määrittelemiin vektorin muistipaikkoihin. Toisaalta rekisterin 2 sisältö talletetaan väliaikaisesti rekisteriin 12 vektorisummauskäsittelyn suorituksen alussa, ja samanaikaisesti laskurin 11 sisältö asetetaan alkuarvoon "0". Laskuri 11 jatkaa ylös laskemista kellon kanssa tahdissa, kun rekisterin 12 sisältö ei ole "0". Laskurin 11 6 90149 ulostulo syötetään rekistereihin VQ ja reittiä 17 pitkin osoitetietona, ja täten osoitettujen muistipaikkojen sisältö syötetään yksikölle 510, kuten yllä selitettiin. Laskuri 13 vähentää "1" rekisterin 12 sisällöstä kellojen tahdissa ja tallettaa tuloksen uudelleen rekisteriin 12. Tällainen laskurin 11 ylöslaskutoiminta ja laskurin 13 alaslaskutoiminta jatkuu, kunnes rekisterin 12 sisällöksi tulee "0". Tällainen laitteisto, kuten rekisteri 2 ja laskurit 11 ja 13, on sijoitettu myös rekisteriparille V2 ja V3, rekisteriparille V4 ja V5 sekä rekisteriparille Vg ja V?, mutta ne on jätetty pois piirroksesta yksinkertaisuuden vuoksi.
Kuvassa 3 on ajoituskaavio yllämainitun toiminnan kuvaamiseksi. Kuvassa 3 (j) (i, j = 0-7) esittää i:nen muistipaikan sisältöä vektorirekisterissä V^; siirtojaksoa vektorirekistereistä Vq ja yksikölle 510; C asteen 5101 jaksoa; S asteen 5102 jaksoa; A asteen 5103 jaksoa; N asteen 5104 jaksoa; ja siirto-jaksoa yksiköltä 510 osoitettuun vektorirekisteriin.
Seuraavaksi kuvataan, kuin DO-silmukkaosa kirjoitettuna FORTRAN-kielellä kuvassa 4A suoritetaan. DO-silmukkaosa kuvassa 4A merkitsee, että ainakin yksi käsky DO-lauseen ja CONTINUE-lauseen välillä on suoritettava N kertaa (N on kokonaisluku). Toteutuksessa muodostetaan kuvan 4A lähdeohjelmasta kuvan 4B mukainen kohdeohjelma. Tässä kohdeohjelmassa käytettävien käskyjen toiminta on listattu taulukossa 1.
Taulukko 1 Käsky Muoto Toiminta LDS Rx,M RX Rx ¢- M (Ry + Rz + D) Päämuistin sisältö, jota osoitetaan osoitteella, joka saadaan lisäämällä kentällä Ry määritellyn rekisterin sisältö (Ry), kentällä Rz määritellyn rekisterin sisältö (Rz) ja siirtymä D toisiinsa, ladataan ska-laarirekisteriin, jonka määrää kenttä Rx.
7 90149 Käsky Muoto Toiminta
SMVL Rx RR Rx «- MVR
MVR:n sisältö ladataan kentän Rx määräämään skalaarirekisteriin.
ADD Rx, Ry, Rz RR Rx <r Ry + Rz (Ry) ja Rz) summataan kokonaislukuina ja tulos talletetaan kentän Rx määrittelemään skalaarirekisteriin.
AND Rx , Rz RR Rx «- Ry + Rz
Tulos, joka saadaan AND operaatiosta (Ry):n ja (RZ):n välillä, talletetaan kentän Rx määrittelemään skalaarirekisteriin.
SLL Rx,Ry,Rz RR Rx Ry < Rz (Rz):aa siirretään vasemmalle se määrä bittejä, jonka (Ry) määrä, ja tulos talletetaan kentän Rx määrittämään skalaarirekisteriin.
OR Rx, Ry, Rz RR Rx Ry | Rz
Tulos, joka saadaan OF.-operaatiosta (Ry):n ja (RZ):n välillä, talletetaan kentän Rx määrittelemään skalaarirekisteriin.
LVL Ry VL Ry
(Ry) ladataan vektoripituusrekisteriin (VL
SUB Rx, Ry, Rz RR Rx Ry - Rz (Ry) ja (Rz) vähennetään toisistaan kokonaislukuina ja tulos talletetaan kentän Rx määrittelemään skalaarirekisteriin.
BNZ Rx,M RX Jos (Rx) ei ole "O", haaraudutaan käskyyn MM:ssä, johon osoitetaan osoitteella, joka saadaan lisäämällä (Ry), (Rz), ja siirtymä D toisiinsa.
8 9Π149
Viitaten nyt kuviin 4B ja 1 kuvataan tämä kohdeohjelma. On oletettu, että vektorielementit on talletettu vierekkäisiin osoitteisiin MM3:ssa ja että yksi vektorielementti vie neljä vierekkäistä osoitetta siellä.
ASKEL (1): Vastineena LDS-käskyn tallettamiselle rekisteriin 6 toistojen määrä N ladataan ohjelmalla MM3: n skalaarirekisteriin S1. ASKEL (2): Vastineena SMVL-käskyn tallettamiselle rekisteriin 6 MVR:n 7 sisältö, eli MVL (= 64), ladataan skalaarirekisteriin S2 reittiä 19 pitkin.
ASKEL (3): Tulos, joka on saatu summaamalla rekisterin S1 sisältö (N) ja "-1" yksiköllä 510, talletetaan skalaarirekisteriin S3 pitkin reittiä 25, piiri 1 ja reitti 26 vastineena ADD-käskyn tallettamiselle rekisteriin 6.
ASKEL (4): Tulos, joka saadaan summaamalla rekisterin S2 sisältö (MVL) ja "-Γ yksiköllä 510, talletetaan skalaarirekisteriin S4, kun ADD-käsky talletetaan rekisteriin 6.
ASKEL (5): Tulos, joka saadaan AND-operaatiosta rekisterin S3 sisällön {N — 1) ja rekisterin S4 sisällön (MVL-1) välillä yksiköllä 513, talletetaan skalaarirekisteriin S5 pitkin piiri 1 ja reitti 26 vastineena AND-käskyn tallettamiselle rekisteriin 6.
ASKEL (6): Tulos, joka saadaan, summaamalla rekisterin S5 sisältö ja "1", talletetaan skalaarirekisteriin S6 vastineena ADD-käskyn tallettamiselle rekisteriin 6.
ASKEL (7): Yksikkö 512 siirtää rekisterin S6 sisältöä vasemmalle 2 bittiä siten, että "4” kerrottuna rekisterin S6 sisällöllä talletetaan rekisteriin S7 pitkin reittiä 28, minkä piiri 1 ja reitti 26 tekevät vastineena SLL-käskyn tallettamiselle rekisteriin 6. Seurauksena ensimmäisen MM3:sta luettavan vekto-rielementin muistipaikka saadaan rekisteriin S7.
ASKEL (8): Rekisterin S2 sisältö, jota yksikkö 512 on siirtänyt vasemmalle 2 bittiä, talletetaan rekisteriin S8 vastineena SLL-käskyn tallettamiselle rekisteriin 6. Seurauksena saadaan välimatka kahden vektorielementtien joukon välillä, kun vektori-pituus on MVL.
ASKEL (9): Vastineena OR-käskyn tallettamiselle rekisteriin 6 talletetaan "4" rekisteriin S9.
ASKEL(10): Vastineena LVL-käskyn tallettamiselle rekisteriin 6 rekisterin S6 sisältö ladataan rekisteriin pitkin reittiä 20.
li 9 90149 ASKEL (i + 1) (i on kokonaisluku, joka on 11 tai suurempi):
Tulos, joka saadaan summaamalla rekisteriin S9 sisältö ja rekisterin S7 sisältö yksiköllä 510, talletetaan rekisteriin S9 vastineena ADD-käskyn tallettamiselle rekisteriin 6. Seurauksena saadaan seuraavien vektorielementtien joukon lukuosoite MM3:ssa iteraatiota varten.
ASKEL (i + 2): Vastineena tämän OR-käskyn tallettamiselle rekisteriin 6 ladataan rekisterin S8 sisältö rekisteriin S7 .
ASKEL (i + 3): Rekisterin S6 sisältö, joka on vähennetty rekisterin S1 sisällöstä yksiköllä 510, talletetaan rekisteriin S1 vastineena SUB-käskyn tallettamiselle rekisteriin 6. Seurauksena saadaan niiden jäljelläolevien vektorielementtien lukumäärä, joita vielä ei ole käsitelty.
ASKEL (i + 4): Vastineena OR-käskyn tallettamiselle rekisteriin 6 rekisterin S2 sisältö (MVL) ladataan rekisteriin S6.
ASKEL (i + 5): Vastineena BNZ-käskyn tallettamiselle rekisteriin 6 tarkistetaan rekisterin S1 sisältö, ja jos sisältö ei ole "O", suoritetaan proseduurit ASKELEESTA (10).
Käsittelysarjassa ASKELEESTA (3) ASKELEESEEN (5) osamäärän (N—1)/MVL jäännös lasketaan käyttäen sitä tietoa, että MVL on yleensä 2:n eksponentti. Proseduurit aina ASKELEESEEN (9) saakka ovat DO-silmukkaoperaation esikäsittelyä.
Tässä toteutuksessa, kuten ylläolevasta käy ilmi, koska kohde-ohjelmalla ei muistipaikkojen lukumäärä, eli MVL, ole vakio jokaisessa vektorirekisterissä, voidaan yhteinen kohdeohjelma jakaa sellaisten järjestelmien kesken, joilla on eri muistikapasiteetit vektorirekistereissä, yksinkertaisesti muuttamalla MVR:n 7 sisältö asetuselimellä 8.
Viitaten kuvaan 5 on keksinnön toisella toteutuksella sama rakenne kuin ensimmäisellä toteutuksella paitsi, että siinä on lisänä muistinohjaus 18, jonka läpi MVR:n 7 sisältö siirretään MM3:een.
Viitaten kuvaan 6 sisältää toisessa toteutuksessa käytetty ohjain 18 kolmesisääntuloisen summaimen 181, osoiterekisterin 182, sekä 10 9 Π1 49 tietorekisterit 183 ja 184. Käsky MVR:n 7 sisällön siirtoa varten MM3 reen on toisen tyyppinen käsky. Kun sellainen käsky talletetaan käskyrekisteriin 60, valitsee valitsin 9 kaksi vastaavaa skalaarirekisteriä vastineena käskyn kentille Ry ja Rz, ja valittujen skalaarirekistereiden sisällöt syötetään summaimen 181 kahdelle sisääntuloliittimelle reitin 23 reittejä 23-1 ja 23-2 pitkin. Kun käskyn kenttä D on syötetty summaimen 181 jäijelläolevalle sisääntuloliittimelle pitkin reittiä 21, ne summataan ja tulos talletetaan rekisteriin 182. MVR:n 7 sisältö talletetaan väliaikaisesti rekisteriin 183 pitkin reittiä 22, ja talletetaan sitten MM3:n osoitteeseen, jonka osoittaa rekisterin 182 sisältö. Rekisteri 184 tallettaa väliaikaisesti MM3:sta luetun tiedon. Rekisteri 184 toimii nimittäin puskurina tiedon siirtämiseksi skalaarirekisteriryhmään 4 reitin 23 reittiä 23-4 pitkin. Tässä toteutuksessa, kuten yllä mainittiin, vektorioperaatiokäsky suoritetaan sen jälkeen, kun MVR:n 7 sisältö on siirretty MM3 reen ryhmän 4 sijasta.
Edellä olevan kuvauksen kohteena ovat tämän keksinnön edulliset toteutukset, mutta on selvää alan ammattimiehille, että keksintöä voidaan soveltaa käytäntöön lukuisilla muilla tavoilla.
Il

Claims (2)

11 90149
1. Vektorikäsittelyjärjestelmä, johon kuuluu päämuisti (3) käskyjen ja operandien tallettamiseksi, vähintään yksi skalaa-rirekisteri (4), johon jokaisella mainituista käskyistä on pääsy, joukko vektorirekistereitä (V0-V7), joilla kullakin on lukuisia muistipaikkoja järjestetyn tietojoukon lukuisien vek-torielementtien tallettamiseksi, toimintaelimet (5) edeltämää-rätyn operaation suorittamiseksi ainakin mainittujen vektori-elementtien yhdelle joukolle yhdessä vektorirekisterissä (V0-V7) vastineena ensimmäiselle käskylle, ja ensimmäinen muisti-elin (7) niiden muistipaikkojen lukumäärän MVL (positiivinen kokonaisluku) tallettamiseksi, jota kussakin mainituista vek-torirekistereistä käytetään, tunnettu asetuselimestä (8) mainitun luvun MVL asettamiseksi ensimmäisessä muistielimessä (7), ohjauselimistä (10, 18), jotka reagoivat toiseen käskyyn, mainitun ensimmäisen muistielimen (7) sisällön siirtämiseksi joko mainittuun skalaarirekisteriin (4) tai mainittuun pää-muistiin (3), toisesta muistielimestä (2) mainittujen vekto-rielementtien lukumäärän pitämiseksi mainitussa, ainakin yhdessä vektorirekisterissä syötettäväksi toimintaelimelle (5), ja lukuelimet (11) mainitussa ainakin yhdessä vektorirekisterissä (Vn-V7) olevien vektorielementtien lukemiseksi vuorotellen mainitulle toimintaelimelle (5), riippuen toisen muisti-elimen (2) sisällöstä, jolloin mainittu toinen muistielin (2) sisältää mainitun MVL:n, kun luvun N (joka luku määrittelee ohjelman silmukan toistojen määrän) jaon mainitulla MVLrllä jäännöksenä on vektorikäsittelyn lähtöhetkellä nolla, sisältää mainitun jäännöksen, kun tämä jäännös ei ole nolla, sekä sisältää mainitun MVL:n lukuelimien (11) avulla suoritetun luku-käsittelyn päättymisen jälkeen mainitun jäännöksen perusteella .
2. Patenttivaatimuksen 1 mukainen vektorikäsittelyjärjestelmä , tunnettu siitä, että mainittu asetuselin (8) on hyppyjohdin, mekaaninen kytkin, konsoli, huoltoprosessori tai pyyhkäi-syreitti. f tr 'N, i2 901 49
FI852738A 1984-07-11 1985-07-10 Vektorbehandlingssystem FI90149C (fi)

Applications Claiming Priority (2)

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

Publications (4)

Publication Number Publication Date
FI852738A0 FI852738A0 (fi) 1985-07-10
FI852738L FI852738L (fi) 1986-01-12
FI90149B true FI90149B (fi) 1993-09-15
FI90149C FI90149C (fi) 1993-12-27

Family

ID=15341996

Family Applications (1)

Application Number Title Priority Date Filing Date
FI852738A FI90149C (fi) 1984-07-11 1985-07-10 Vektorbehandlingssystem

Country Status (7)

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

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
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US6665790B1 (en) 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
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
NO169989C (no) 1992-08-26
FI852738A0 (fi) 1985-07-10
EP0173040A3 (en) 1988-01-07
EP0173040B1 (en) 1991-06-19
EP0173040A2 (en) 1986-03-05
US4710867A (en) 1987-12-01
DE3583264D1 (de) 1991-07-25
NO852772L (no) 1986-01-13
AU4479685A (en) 1986-01-16
AU578874B2 (en) 1988-11-03
NO169989B (no) 1992-05-18
JPH0319986B2 (fi) 1991-03-18
JPS6123275A (ja) 1986-01-31
FI90149C (fi) 1993-12-27
FI852738L (fi) 1986-01-12

Similar Documents

Publication Publication Date Title
FI90149B (fi) Vektorbehandlingssystem
KR920008280B1 (ko) 집적 프로세서
US4675806A (en) Data processing unit utilizing data flow ordered execution
EP0293851B1 (en) Digital signal processor
US5206940A (en) Address control and generating system for digital signal-processor
EP0240032A2 (en) Vector processor with vector data compression/expansion capability
US6055629A (en) Predicting for all branch instructions in a bunch based on history register updated once for all of any taken branches in a bunch
GB1448866A (en) Microprogrammed data processing systems
EP0284364A2 (en) High speed computer system
KR100322277B1 (ko) 확장 명령어를 가진 중앙처리장치
US4754424A (en) Information processing unit having data generating means for generating immediate data
EP0167959A2 (en) Computer vector register processing
US4241410A (en) Binary number generation
US20080215859A1 (en) Computer with high-speed context switching
CA1308490C (en) Operation apparatus
US3315234A (en) Data editing apparatus
EP0169030A2 (en) Data processing circuit for calculating either a total sum or a total product of a series of data at a high speed
EP0150506A2 (en) Instruction processor
US4811213A (en) Vector processor with vector registers
US5542080A (en) Method for controlling execution of data driven type information processor
US6081869A (en) Bit-field peripheral
EP0580109A2 (en) Data acces in a RISC digital signal processor
JPS61175734A (ja) 処理選択方式
KR19980013688A (ko) 벡터 프로세서를 이용한 도트 프로덕트의 구현 방법(Method for Emboding dot Product using Vector Processor)
GB1254946A (en) Improvements in or relating to computers

Legal Events

Date Code Title Description
FG Patent granted

Owner name: NEC CORPORATION

BB Publication of examined application
FG Patent granted

Owner name: NEC CORPORATION

MA Patent expired