FI118654B - Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite - Google Patents

Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite Download PDF

Info

Publication number
FI118654B
FI118654B FI20021983A FI20021983A FI118654B FI 118654 B FI118654 B FI 118654B FI 20021983 A FI20021983 A FI 20021983A FI 20021983 A FI20021983 A FI 20021983A FI 118654 B FI118654 B FI 118654B
Authority
FI
Finland
Prior art keywords
data
output
input
multiplier
multiplication
Prior art date
Application number
FI20021983A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021983A0 (fi
FI20021983A (fi
Inventor
Petri Liuha
David Guevorkian
Aki Launiainen
Original Assignee
Nokia 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 Nokia Corp filed Critical Nokia Corp
Publication of FI20021983A0 publication Critical patent/FI20021983A0/fi
Priority to FI20021983A priority Critical patent/FI118654B/fi
Priority to TW092130872A priority patent/TWI266233B/zh
Priority to CNB2003801083374A priority patent/CN100530168C/zh
Priority to AU2003276291A priority patent/AU2003276291A1/en
Priority to DE60318494T priority patent/DE60318494T2/de
Priority to AT03810471T priority patent/ATE382901T1/de
Priority to PCT/FI2003/000819 priority patent/WO2004042599A1/en
Priority to EP03810471A priority patent/EP1576493B1/en
Priority to KR1020057007985A priority patent/KR100715770B1/ko
Priority to US10/703,162 priority patent/US7774400B2/en
Publication of FI20021983A publication Critical patent/FI20021983A/fi
Application granted granted Critical
Publication of FI118654B publication Critical patent/FI118654B/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5318Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3868Bypass control, i.e. possibility to transfer an operand unchanged to the output

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Forklifts And Lifting Vehicles (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Fishing Rods (AREA)
  • Multi Processors (AREA)

Description

118654
Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
Tekniikan ala 5
Nyt esillä oleva keksintö koskee menetelmää kertolaskuoperaatioiden suorittamiseksi käyttäen liukuhihnoitettua kertolaskulaitetta, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi tulotietoliitäntä datan syöttämiseksi ja 10 ainakin yksi lähtötietoliitäntä datan lähtöä varten, jossa menetelmässä data kertolaskuoperaatioiden suorittamiseksi syötetään laitteeseen. Keksintö liittyy myös järjestelmään kertolaskuoperaatioiden suorittamiseksi liukuhihnoitetussa kertolaskulaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla 15 on ainakin yksi tulotietoliitäntä datan syöttämiseksi ja ainakin yksi lähtötietoliitäntä datan lähtöä varten. Keksintö liittyy edelleen laitteeseen kertolaskuoperaatioiden suorittamiseksi liukuhihnoitetussa kertolasku-laitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi tulotietoliitäntä datan 20 syöttämiseksi ja ainakin yksi lähtötietoliitäntä datan lähtöä varten. Kek-: V sintö liittyy edelleen langattomaan päätelaitteeseen, joka käsittää lait- v.: teen kertolaskuoperaatioiden suorittamiseksi liukuhihnoitetussa kerto- laskulaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryh-·:··: män, joilla mainituilla liukuhihnavaiheilla on ainakin yksi tulotietoliitäntä 25 datan syöttämiseksi ja ainakin yksi lähtötietoliitäntä datan lähtöä varten. .···.* Keksintö liittyy myös kertolaskulaitteeseen, joka käsittää laitteen kerto laskuoperaatioiden suorittamiseksi liukuhihnoitetussa kertolaskulait-teessä, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi tulotietoliitäntä datan syöt- *·;* 30 tämiseksi ja ainakin yksi lähtötietoliitäntä datan lähtöä varten.
·· • · * ··
Keksinnön tausta ··« ··· • · · • · · ·...: On olemassa useita sovelluksia, joissa tarvitaan kertolasku-, kerto- 35 yhteenlasku- (Multiply-Accumulate, MAC) ja muita laskentaoperaatioita.
118654 2
Ei-rajoittavana esimerkkinä monet signaalinkäsittelysovellukset, kuten digitaaliset signaalinsuodatussovellukset, videon/kuvankäsittelysovel-lukset, jne. ovat sovelluksia, joissa toteutetaan reaaliaikaisia kertolaskua ja MAC-operaatioita. Myös muut sovellukset, joissa tarvitaan 5 vektori- ja/tai matriisioperaatioita, käyttävät kertolaskuoperaatioita. Kertolaskuoperaatioita toteutetaan tavallisesti summauksen ja bittien suhteen siirto-operaationa. Tällaiset kertolaskuoperaatiot ovat resursseja vaativia tehtäviä, koska yksi kahden operandin välinen kertolasku-operaatio vaatii useita summaus- ja siirto-operaatioita kertolaskutulok-10 sen laskemiseksi.
Videon/kuvankäsittelyn algoritmeille on ominaista suuri määrä laskentoja, jotka tulee toteuttaa reaaliajassa. Näin ollen nopea suorituskyky on ollut käyttövoimana kehitettäessä rinnakkaisia erityisrakenteita (kiihdyt-15 timiäj eri videon/kuvankäsittelyn algoritmeille tai osatehtäville. Tekniikan tason mukaiseen videon/kuvankäsittelyjärjestelmään sisältyy useita tällaisia kiihdyttimiä (esim. erotusten itseisarvojen summa (Sum of Absolute Differences, SAD), kosinimuunnos, jne.), joista jokainen koostuu suuresta määrästä laitteistoelementtejä. Kuitenkin kehitettäessä 20 matkaviestinjärjestelmiä laitteiston pinta-ala, joka vaikuttaa järjestelmän kustannuksiin, ja tehon/energian kulutus ovat yhtä tärkeitä ominai- * · : suuksia kuin nopea suorituskyky. Yksi keino kaikkien näiden kriteerien :Y: täyttämiseksi on digitaalisten signaaliprosessorien (Digital Signal
Processor, DSP) modernisointi edelleen ja erikoistuneiden kiihdyttimien •:··: 25 määrän vähentäminen. Vaikka tällä alueella onkin olemassa joitakin : parannuksia, kehitetyt järjestelmät eivät siltikään aina tyydytä nopeuden ,···[ ja tehonkulutuksen vaatimuksia.
· • * * . Taulukko 1 esittää tiivistetysti joitakin keskeisiä aritmeettisia kaavoja • · · ·;;; 30 sekä esimerkkejä videon/kuvankäsittelyn algoritmeista, joissa näitä kaavoja usein käytetään. Näihin kaavoihin liittyvä operaatiot ovat hyvin ·:· tuttuja perustason operaatioita. Suuri osa kirjallisuudesta keskittyy nii- • · * t ;··*. den toteutuksiin. Tässä korostetaan kahta yksityiskohtaa, jotka koske- *. vat näitä operaatioita videon/kuvankäsittelyn yhteydessä. Ensiksi, ope- ] ] 35 raatioiden operandit ovat useimmiten keskitarkkoja (8-16 -bittisiä) :·**: kokonaislukuja. Toiseksi, useimmat algoritmit käyttävät erittäin rinnak- 118654 3 kaisia operaatioita. Joissakin tapauksissa nämä rinnakkaiset operaatiot jakavat samat operandit. Esimerkiksi skalaarikvantisoinnissa sama numero kerrotaan kuvan useisiin kuva-alkioihin, matriisi-vektoritulossa matriisin eri rivit kerrotaan samaan sisääntulovektoriin, ei-rekursiivi-5 sessa (Finite Impulse Response, FIR) suodatuksessa samat kertoimet liittyvät useisiin MAC-operaatioihin, jne.
Taulukko 1.
Aritmeetti- Kuvaus Algoritmit nen kaava___
Rinnakkaiset cf/=a/±i>/f Uikekompensointi, luminanssin summaukset/ muutos, osaoperaatio DCT:ssä, vähennykset___DWT, SAP, jne. _ £ Keskimääräinen suodatin esi- ja S = ) fl;
Keräys- “J jälkikäsittelyssä, osaoperaatio summaus DWT:ssä, vektori-vektori ja matriisi- vektori sisäiset tulot, konvoluutio, ___jne._
Rinnakkaiset Kvantisointi, osaoperaatio DCT:ssä, .. , kertolaskut tai DWT, vektori-vektori ja matriisi- rrii-a/x, i=1,...,K vektori sisäiset tulot, konvoluutio, :.v jne.
• · v ·* Kerto- si,=si~i +<*&. Perusoperaatio FIR-suodatuksessa *:*·: yhteenlasku i = ja matriisi-vektori operaatiot.
(MAC) on tunnettu __kokonaisluku__
Vektori- ? = y Esi- ja jälkikäsittely, osaoperaatio vektori “[ DCT:ssä, DWT, vektori-vektori ja "*·*·. sisäinen tulo matriisi-vektori sisäiset tulot, kon- *.**______voluutio, jne._
Matriisi- _ Y Värin muuttamiset, geometriset O vektoritulo ' rj l'jXj manipulaatiot, affiininen liikkeen / = 1,..., K arviointi, esi- ja jälkikäsittely, osa- .·.; operaatio DCT:ssä, jne.
• ·· • · 118654 4 FIR-suodatus £ Esi- ja jälkikäsittely (kuvan suoda- S; = s,aixi-i (konvoluutio) yTj tuksen kehittäminen, interpolaatio, i = ekstrapolaatio), DWT:n perus- __operaatio_ SAD (ero- £ t, Liikkeen arviointi, kuvan tarkkuuden s ~ X \ai - 0; >
tusten itseis- “J kriteerit MAE
arvojen summa)__
Tekniikan tason arkkitehtuurit videon- ja kuvankäsittelyä ja muita sig-naalinkäsittelytehtäviä varten perustuvat tavallisesti tavanomaisiin ker-tojarakenteisiin. Kertolasku- ja/tai MAC-operaatioiden toteuttamiseksi 5 on kehitetty useita kertolaskumenetelmiä ja suuri määrä laitteita. Seu-raavassa huomioidaan vain kertolaskumenetelmät ja yleiset kertoja-rakenteet tapauksessa, jossa molemmat operandit (kerrottava ja kertoja) ovat tuntemattomia, kahden komplementin aritmetiikkana esitetty kahden kiintopisteen etumerkillisen kokonaisluvun kertolasku, ja niin 10 sanotut kantaluku-T -menetelmät (radix-7).
Kahden komplementin esityksessä «-bitistä (etumerkki mukaan luettuna) kertoja a osoitetaan 0=0^0^2-0^0, ja kahden komplemen- • · · : '.** tin esityksessä m-bitistä (etumerkki mukaan luettuna) kerrottava x :Y: 15 osoitetaan x =xm-jxm~2-xix0’ tässä järjestyksessä. Suhde a:n ja 0: a:n välillä Ga samankaltainen suhde x:r\ ja x :n välillä) on *.*··: seuraavanlainen: • · • · · • · · I..* n-2 m-2 *...* a = -an_j2n + ^ ar2r , x = -xm-]2m + X x;2 .
r=0 1=0 • · · !···. 20 Kantaluku-T:n rinnakkaisessa kertolaskumenetelmässä tulon y = a-x • · kahden komplementti y - ym+n-iym+n-2-yiyo saadaan seuraavan *«* kaavan mukaisesti: ··· • · • · ··· ····Σ nradix-T~l 7- \ e, ·. ·: r=0 ' 118654 5 seuraavissa kahdessa päävaiheessa:
Vaihe 1. Tuotetaan sellaisia osittaistuloja (Partial Product, PP) 5 Ar-x,r = 0,...,nradix_T -1, että yhtälö (2) on voimassa.
Vaihe 2. Summataan rinnakkaisesti kaikki osittaistulot jotka alustavasti siirtävät r:nnen osittaistulon Ar x,r = 0,...,nradix_T -1 vasempaan nradix„T bittiä.
10
Kantaluku-T:n MAC-yksikkö toimii samalla tavoin sillä erolla, että toinen numero (kumuloituva termi) lisätään osittaistulojen mukana vaiheessa 2.
15 Vaihetta 1 tarkastellaan tässä tarkemmin. Riippuen siitä miten numerot Ar -x,r = 0,...,nradix_T -1 määritellään ja saadaan, voidaan johtaa eri kertolaskumenetelmiä. Numeroiden Ar -x,r = 0,..., nradix_T -l valinnan puolestaan määrää itse asiassa kertoja a :n esitys. Yksinkertaisin kerto-laskumenetelmä on kantaluku-2 -menetelmä, joka käyttää kahden 20 komplementin perustason esitystä a:sta, joka annetaan (1):n vasemmanpuoleisessa yhtälössä. Tässä tapauksessa tulon kahden komple- : *.** mentti saadaan seuraavana: • · * • · · • · ·*;*. ^radix~2~f Tl—2 y= ς = ς ™ * * r=0 r=0 ' ' • · • » · • ♦· • · f": 25 toisin sanoen nradix_2=n ja osittaistulot Ar-x,r = 0,...,n-l määritel lään Ar=ar M kun r = 0,...,n-2 , ja An_j = -an_j :llä kun r = n-l.
·:♦ Nämä osittaistulot voidaan yksinkertaisesti muodostaa Qa tavallisesti muodostetaankin) käyttämällä kaksituloisten JA-porttien matriisia jokai-\ sen kertojan ä ja kerrottavan x kahden komplementin bitin välillä.
• Il 30 Tulon Ar >x,r ~0,...,n-l arvo kerrotaan 2r:ään (eli siirretään vasem- • · *" malle r bittiä) ennen kuin se summataan toisessa vaiheessa. On huo- ·:**: mättävä, että tässä menetelmässä osittaistuloa Αη_2 x, jota toisinaan · • · · • · • · 118654 6 kutsutaan korjauskertoimeksi, käsitellään eri lailla kuin muita osittais-tuloja.
Osittaistulojen epäyhtenäinen luonne vältetään toisessa kantaluku-2 -5 kertolaskumenetelmässä, joka perustuu kertojan kahden komplementin bittien a Booth-uudelleenkoodaukseen peräkkäisiksi etumerkillisiksi numeroiksi. Tulo voidaan nyt esittää seuraavasti: nradix-2 ^ n—1 y= Σ (Arx)2r = Σ (- ar + ar_! }c2r , a_j=0 (4) 10 Toisin sanoen, nradix_2=n kuten aiemmin, mutta kaikki osittaistulot Ar -x,r = 0,..., n—1 määritellään yhtälöllä Ar = -ar + . Edellisen menetelmän tavoin Ar x,r~0,...,n-l\n arvo kerrotaan 2r:ään ennen kuin se lisätään toisessa vaiheessa. Tässä menettelyssä osittaistulot valitaan joukosta 0,±x. Kaksi näistä arvoista {0 ja x) on helposti saata- 15 villa, kun taas arvon -x löytäminen vaatii x \n bittien invertoimista ja ykkösen lisäämistä. Tavallisesti ykkösen lisääminen tapahtuu vaiheessa 2, jossa osittaistulot summataan.
j**‘: Kantaluku-2 -kertolaskumenetelmässä on kaiken kaikkiaan !·.·. 20 nradix-2 -n summattavaa osittaistuloa riippumatta siitä käytetäänkö • * * .·*:·. Booth-uudelleenkoodattu- vai ei-uudelleenkoodattu-menetelmää.
♦ * *
Osittaistulojen määrän pienentämiseksi, ja näin ollen toisen vaiheen ... . (osittaistulojen summaus) viiveen pienentämiseksi on kehitetty kanta- *:./ Iuku-4:n muunnettuun Boothin algoritmiin (Modified Booth Algorithm, • · *···' 25 MBA) perustuva menetelmä. MBA on yksi suosituimmista kertolasku- menetelmistä ja sitä tutkitaan ja optimoidaan laajasti.
*»· ··*♦
Alla olevien kaavojen yksinkertaistamiseksi jokaisessa tapauksessa, jossa termi kuten nlk esiintyy, oletetaan että n on * :n kokonaisluku-!·*·. 30 kerrannainen. Tämä on käypä oletus, koska kahden komplementin *" lukumäärää voi täydentää vapaasti määrättävällä määrällä bittejä (toistamalla merkittävintä bittiä).
• « • * · • ·♦ • · 118654 7 MBA:ssa tulon kahden komplementti saadaan summana nradix-4 - n / 2—1 _ y= ^ (Arx)2 = ^ ([— ^a2r+l a2r a2r-l*(r > (5\ r=0 r-0 a_i = 0 nradix-4 = nl2:r\ osittaistuloista, missä arvo 5 Are\-2-l,0,l,2},r = 0,l,...,nl2-l valitaan kolmen peräkkäisen bitin a2r+1»a2r»a2r-i (a-i = °) mukaan kahden komplementin esityksestä kertojasta a. Osittaistulo Arx, r = 0,l,...,n!2-l, kerrotaan 22rM (eli vasemmalle 2r bittiä siirretty laitteisto) ennen kun se lisätään vaiheessa 2.
10
On myös mahdollista käyttää 2:ta suurempia kantalukuja ei-uudelleen-koodatuissa kertolaskumenetelmissä osittaistulojen lukumäärän pienentämiseksi. Esimerkiksi kantaluku-4:n ei-uudelleenkoodatussa ker-tolaskumenetelmässä osittaistulot Α,,χ , Ar e {0,1,23} , r-0,1,...,«/2-1 15 valitaan kertojan kahden peräkkäisen bitin alr+\,alr mukaisesti. Tässä menetelmässä on nradix_A=n!2 osittaistuloa. Mahdollinen osittaistulo 2x voidaan saada aikaan siirtämällä mahdollista osittaistuloa x kerran :*·*: vasemmalle. Pariton osittaistulo 3x vaatii x:n lisäsummauksen. Jos • · käytetään myös negatiivisten lukujen kertolaskuja, tulee käyttää etu-20 merkkejä, joissa jokaisen osittaistulon merkittävin bitti (eli etumerkillinen • · · bitti) kopioidaan niin monta kertaa kuin on tarpeen vaadittavan bitti- ! ! pituuden saavuttamiseksi.
• * · * • ·· • · ·*· *···* Kantaluku-8:n ei-uudelleenkoodatussa kertolaskumenetelmässä osit- 25 taistulot Α,,χ , Ar e jo,1,2,3,4,5,6,7} , r = 0,1,...,«/3-1 valitaan kertojan m kolmen peräkkäisen bitin mukaisesti. Mahdollisten osittaistulojen lista on 0,x,2x,3x,...jx, joista kaikki tulevat saataville kun toteutetaan kolme I;, itsenäistä yhteenlaskua/vähennyslaskua, jotta saataisiin 3x-x + 2x, 5x = x + 4x, 7x = 8x-x. Mahdollinen osittaistulo 6x voidaan muodostaa *':** 30 siirtämällä mahdollinen osittaistulo 3x yksi paikka vasempaan. Kuiten- kin korkeampien kantalukujen tapauksissa (>=16) on olemassa joitakin • · • * · • M • · 118654 8 mahdollisia osittaistuloja (esim. llx ja 13x), joita ei voi saada yhdellä yhteenlaskulla/vähennyslaskulla.
Kuva 1 esittää yleislaitteen 101 muunnetun Boothin algoritmin (Modified 5 Booth Algorithm) suorittamiseksi. On olemassa ni 2 Boothin koodaus-dekoodausriviä, joista jokainen koostuu Boothin kooderista 102, ja m + i Boothin dekooderista 103, jotka on voitu ryhmittää kahden ryhmiin. Jokainen Boothin kooderi 102 analysoi kertojan a kahden komplementin kolme peräkkäistä bittiä, yhden bitin päällekkäisyydellä, ja muodos-10 taa q signaalia vastaavaan dekoodereiden 103 riviin. Joissakin viimeaikaisissa tekniikan tason suunnitelmissa q = 3. Näiden q -signaalien mukaan dekooderirivit muodostavat osittaistulot (Arx)e {o,±x,±2x} , joissa on kerrottavan bitit 5c sisääntuloissaan. x:n ei-negatiiviset kerrannaiset ovat helposti saatavilla, koska 2x muodostetaan langatto-15 maila siirrolla. x:n negatiiviset kerrannaiset muodostetaan invertoimalla x\n vastaavien positiivisten kerrannaisten bitit ja sitten lisäämällä 1, mikä tapahtuu yleensä vaiheessa 2. Esimerkiksi US-patentti 6 173 304 kuvaa tällaista järjestelmää, joka käyttää Boothin koodereita ja de-koodereita. Kantaluku-2 -menetelmässä osittaistulot voi löytää hel-20 pommin kuin muunnetussa Boothin algoritmissa, mutta osittaistulojen :·... lukumäärä pienenee «/2:een kun käytetään muunnettua Boothin ‘. f algoritmia, jolloin saavutetaan suorituskyvyn nopeudessa, pinta-alassa ja tehonkulutuksessa merkittäviä etuja.
::: • 25 Osittaistulojen lukumäärän pienentämiseksi edelleen Boothin kooda-usta on edelleen laajennettu monibitti (vapaasti määrättävä kantaluku-\.'*·· T) -uudelleenkoodaukseen . Yleinen yhtälö tulolle on nyt:
*:· nradix~T t-2 . IV
y= Σ (λ^)2 = Σ /+Σβ/Γ+/2'+α^ ^2 /6\ *...** r=0 r=0 [I i=0 J I w j\. a_1=0,T = 2t = 2ι^-τ .
··· : : ··· 30 Toisin sanoen osittaistuloja (T -2t ) on nra(nx-T = nlt ja jokainen osit-·:··· taistulo valitaan kertoja a :n t + 1 peräkkäisten bittien mukaan mahdol listen osittaistulojen Ax listasta siten, että A vaihtelee välillä -2t_1 ja 118654 9 2t~1. Jokainen mahdollinen osittaistulo voidaan muodostaa suhteellisen helposti lisäämällä kaksi (kun T = 8,16) tai useampi (kun T>16) x:n kahden potenssin kerrannaista, ja mahdollisesti niiden bittien inversiolla, joita seuraa 1:n lisääminen (vaiheessa 2). Esimerkiksi kan-5 taluku-8:n uudelleenkoodauksen tapauksessa mahdollisten osittais-tulojen lista on 0,±x,±2x,±3x,±4x. Kaikki listan ei-negatiiviset kerrannaiset ovat helposti saatavilla, paitsi 3x, joka voidaan saada yhdellä yhteenlaskulla: 3x = x + 2x. Negatiiviset kerrannaiset voi löytää invertoi-lisää-1 -menetelmällä, kuten aiemmin. Kantaluku-16:n uudelleen-10 koodauksen tapauksessa mahdollisten osittaistulojen lista on 0,±x,±2x,±3x,...,±8x, joista kaikki tulevat saataville kun toteutetaan kolme itsenäistä yhteenlaskua/vähennyslaskua, jotta saataisiin 3x = x + 2x, 5x = x + 4x, 7x = ~x + 8x. Mahdollinen osittaistulo 6x voidaan muodostaa siirtämällä mahdollinen osittaistulo 3x yksi paikka 15 vasempaan. Kuitenkin korkeampien kantalukujen tapauksissa on olemassa joitakin mahdollisia osittaistuloja (esim. llx ja 13x) joita ei voi saada yhdellä yhteenlaskulla/vähennyslaskulla.
Kuva 2 esittää tekniikan tason kantaluku-T:n (T>8) monibittisten 20 Booth-uudelleenkoodattujen ja kantaluku-T:n (7 >4 ) uusien ei-uudel- leenkoodattujen ("kantaluku-suurempi-kuin-neljä”) kertojien yleistä : *.: rakennetta 201. Tämä rakenne koostuu summainmatriisista 202 (Array :.v of Adders, AA) mahdollisten osittaistulojen listan laskemiseksi, valinta- :T: lohkosta 203 (Selection Block, SB) nlt osittaistulojen valitsemiseksi ·:··: 25 kertojabittien mukaisesti, ja summauslohkosta 204 (Summation Block) valittujen osittaistulojen summaamiseksi. Lopullinen summain 205 .··/ (Final Adder) muodostaa tulon y summan S ja muistibitin C termeistä, • · joita summauslohko 204 on tuottanut.
* • · · *::! 30 Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan ·;·* summainmatriisi koostuu s summaimista/vähentäjistä, missä s on nii- den x :n parittomien positiivisten kerrannaisten lukumäärä, jotka ovat :***: mukana mahdollisten osittaistulojen listassa (^ = 1 T = 8 Boothin • · · uudelleenkoodattujen ja T~ 4 ei-uudelleenkoodattujen kertojien ! ! 35 tapauksissa, ja j = 3 T = 16 Boothin uudelleenkoodattujen tai 7=8 ei- • · · *· uudelleenkoodattujen kertojien tapauksissa, jne.). Tavallisesti käytetään 118654 10 nopeita muistibittiä ennakoivia (Carry-Look-Ahead, CLA) summaimia, koska mahdollisten osittaistulojen listan muodostaminen on melko aikaa vievä osuus tämänkaltaisissa kertojissa. Patentissa US-5 875 125 on ehdotettu erityistä x + 2x summainta, jota voidaan käyttää 5 kantaluku-8 -kertojissa. On huomattava, että sekoitettuja kantaluku-4/8 -kertojia on myös ehdotettu, esimerkiksi US-patentissa 4 965 762, mutta nämä kertojat ovat kuitenkin pääasiassa käyttökelpoisia toistuville (ei rinnakkaisille) kertojille, joissa osittaistulot tuotetaan ja keräys-summataan sanallisesti. US-patentti 5 646 877 kuvaa kertojaraken-10 netta, jossa kaikki vapaasti määrättävän kantaluvun mahdolliset osittaistulot saadaan 3x :n ja x:n siirrettyjen versioiden summina tai erotuksina summainmatriisissa, joka koostuu x + 2x summaimesta 3x:n tuottamiseksi, kahdesta siirtimestä ja summaimesta/vähentäjästä.
15 Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan valintalohko koostuu n/t kantaluku-T:n Boothin koodereista ja vastaavasta määrästä dekooderirivejä. Jokainen kooderi analysoi vastaavan kertojan (t +1) -monikon ja muodostaa lukuisia ohjaussignaaleja, joiden perusteella dekooderirivit muodostavat vastaavia osittaistuloja. Sitä 20 miten kantaluku-4:n Boothin koodereita ja dekoodereita voi laajentaa korkeampiin kantalukuihin on kommentoitu esimerkiksi patentissa US-6 240 438.
• · · • · • · ·*·* *·* : Seuraavassa tarkastellaan tarkemmin osittaistulojen summaamista eli *:,,i 25 vaihetta 2. Useimmat rinnakkaisista kertoja/MAC-yksikkö -rakenteista • · käyttävät summausiohkoja, jotka koostuvat pakkausmatriisista, jota seuraa nopea summain (lopullinen summain) vaiheessa 1 muodostettujen osittaistulojen summaamiseksi (katso kuvat 1 ja 2). Pakkaus-matriisi vähentää nradix_T osittaistuloriviä kahteen riviin, jotka vastaa- .··. 30 vat summan S ja muistibitin C termejä, jotka summataan lopullisen ..*·* summaimen kanssa. Pakkausmatriisi koostuu yleensä joko koko- tai • · : ‘· puolisummaimista (muistibitin tallentava summain eli CSA-puu tai
Wallacen puu) tai 4:2 -pakkaimista. Lopullinen summain on yleensä nopea CLA-summain, joka on suunniteltu tarkoin pakkausmatriisin eri • 35 bittien viiveiden mukaisesti.
• · 118654 11
On huomioitava, että mikäli käytetään hyväksi Boothin uudelleen-koodauskaavioita, sen tuloksena, että ykkösen lisääminen suoritetaan vaiheessa 2 vaiheen 1 sijaan, jokaisessa osittaistulorivissä on yksibitti-5 nen arvo, joka on nolla jos osittaistulo on kerrottavan ei-negatiivinen kerrannainen ja on muuten ykkönen. Näin ollen rivien lukumäärä on itse asiassa 2nradix_T . Nämä yksi-bittiset arvot voidaan liittää osittaistulo- riveihin siten, että rivien lukumäärä on jälleen nradix_T tai ehkä nradtx-T +1 > mutta sillä kustannuksella, että osittaistulojen pituus kas-10 vaa (yhdellä bitillä) ja tekee niistä epäsäännöllisiä. Ei-uudelleenkooda-tussa kaavioissa on enintään yksi ylimääräinen yksi-bittinen arvo, joten yksinkertaisempia pakkausmatriiseja voidaan suunnitella.
Toinen Boothin uudelleenkoodatun kertojan summauslohkoon liittyvä 15 ongelma on se, miten etumerkkejä tulisi käsitellä, koska osittaistulo-rivejä siirretään toisiinsa nähden ennen niiden summaamista. Yksinkertaisessa toteutuksessa jokaista osittaistuloa (siirron jälkeen) tulisi olla laajennettu (« + w) -bittiseen numeroon, mikä on erittäin tuhlaileva lähestymistapa. Erityisiä etumerkkimenetelmiä ja piirejä on kehitetty 20 pienentämään etumerkillisten bittien lukumäärää kahteen jokaisessa ;v rivissä. Ei-uudelleenkoodattujen kertojien tapauksessa etumerkkejä ’v*’ voidaan käsitellä helpommin, ilman ylimääräisiä etumerkkibittejä, koska mahdollisesti yhtä lukuun ottamatta kaikkien osittaistulojen etumerkit *·*; ovat samat.
25 ·.*·! On olemassa pääasiassa kaksi tapaa laajentaa kertojarakenteita MAC- :***: yksiköiksi, kuten ne on kuvattu kuvissa 3a ja 3b. Ensimmäisessä tapa uksessa (kuva 3a) pakkausmatriisin 301 kaksi lähtöä (summa S ja ·:· muistibitti C -termit) syötetään takaisin sen sisääntuloihin siten, että .···. 30 senhetkiset osittaistuloarvot keräyssummataan senhetkisen keräys- summa-arvon kahden yhteenlaskettavan kanssa. Lopulliset summa S " ja muistibitti c -termit lisätään sitten lopullisessa summaimessa 302.
Toisessa tapauksessa (kuva 3b) nämä lähdöt syötetään toiseen pak-:*·*: kausmatriisiin 303, jonka lähdöt syötetään takaisin sen (toinen pak- 35 kausmatriisi 303) sisääntuloon. Nyt senhetkisen tulon summa S ja muistibitti c -termit summataan senhetkiseen keräyssummausarvoon 118654 12 viimeiseen sykliin asti, jolloin lopulliset summa S ja muistibitti C -termit summataan lopullisessa summaimessa 302. Koko pakkausmatrii-sin syvyys (ja siten kokonaisviive) voi olla pienempi ensimmäisessä tapauksessa, kun taas leveys ja siten pinta-ala ja tehonkulutus voivat 5 olla pienempiä toisessa tapauksessa.
Korkeakantalukuisten kertoimien yhteenvetona tulisi huomioida, että mitä korkeampi kantaluku on, sitä monimutkaisempi on vaihe 1 (osit-taistulojen tuottaminen), mutta sitä vähemmän monimutkainen on vaihe 10 2 (osittaistulojen summaus). ”Kantaluku-suurempi-kuin-neljä” -kerto- laskumenetelmät eivät ole kasvattaneet suosiotaan, ehkäpä johtuen siitä, että ne vaativat melko paljon aikaa ja pinta-alaa kuluttavat osittaistulojen tuottajat, mukaan lukien sekä summainmatriisi että valinta-lohko. Yleisesti kantaluku-4:n MBA:ta pidetään parhaana tekniikan 15 tason rinnakkaisena kertolaskumenetelmänä, ja sitä käytetään monissa teollisissa kertojissa.
Liukuhihnoittamiseksi kutsuttua menetelmää voidaan käyttää laskenta- operaatioiden yhteydessä. Näin ollen liukuhihnoittamista hyväkseen 20 käyttävä laite käsittää kaksi tai useampia liukuhihnavaiheita. Jokainen .. . liukuhihnavaihe on tarkoitettu suorittamaan tiettyjä osia laskenta- \ :* operaatioista (eli osaoperaatioita). Tekniikan tasolla liukuhihnavaihei- • · # den laskentaoperaatiot liittyvät toisiinsa siten, että jokainen liukuhihna-:·:: vaihe suorittaa yhden tai useampia osaoperaatioita suoritettavasta las- 25 kentaoperaatioista, ja viimeisen liukuhihnavaiheen lähtö tuottaa las- %'*·: kentaoperaation tuloksen. Tällaisessa laitteessa eri liukuhihnavaiheet toimivat peräkkäisesti, jolloin seuraava liukuhihnavaihe aloittaa osaope-raation laskennan sen jälkeen kun edellinen liukuhihnavaihe on päättä-nyt osaoperaationsa laskennan. Jos liukuhihnavaiheet ovat puhtaasti .**··. 30 tasapainossa (eli jotkin kerrokset ovat merkittävästi nopeampia kuin toi- set) tämä tarkoittaa sitä, että yhtä lukuun ottamatta kaikki liukuhihna-• '** vaiheet ovat odottavassa tai vapaassa tilassa suurimman osan ajasta.
Lisäksi kaikki liukuhihnavaiheet on varattu tiettyjä tehtäviä varten (tietyn osaoperaation laskenta) ja niitä ei voida käyttää muiden laskenta-35 operaatioiden suorittamiseen.
118654 13
Seuraavassa esitellään joitakin kertoja/MAC-yksikön ominaisuuksia, jotka ovat toivottavia videon- ja kuvankäsittelyn kannalta, mutta jotka puuttuvat tai ovat heikkoja tekniikan tason ratkaisuissa. Ensin tarkastellaan kaikkein suosituinta kantaluku-4:n Boothin uudelleenkoodattua 5 kertoja/MAC -menetelmää. Tämän menetelmän yleisenä haittapuolena on se, että sen tehonkulutus on suurempi kuin suurempien kantalukujen menetelmissä. Toinen yleinen haittapuoli on, että vaikka osittais-tulojen lukumäärää vähennetään puoleen verrattuna kantaluku-2 -kertolaskuun, sitä voitaisiin edelleen vähentää käyttämällä suurempia 10 kantalukuja. Toisin sanoen, tämä menetelmä on monimutkainen lähinnä vaiheessa 2 (osittaistulojen summaus). Kun kantaluku-4:n Booth-uudelleenkoodattua kertoja/MAC-rakennetta liukuhihnoitetaan, osittaistulon tuottamislohkoa pidetään yleensä ensimmäisenä liuku-hihnavaiheena, joka on kuitenkin puhtaasti tasapainossa muiden liuku-15 hihnavaiheiden kanssa (eli niitä nopeampi).
Pohdittaessa “kantaluku-suurempi-kuin-neljä” Boothin uudelleen-koodattuja kertojia on näytetty, että näiden kertojien eri toteutukset, kun niitä käsitellään ainoastaan kertolaskuoperaation toteuttamiseksi, ovat 20 kilpailukykyisiä kantaluku-4 kertojien kanssa pinta-ala- ja aikakriteerien suhteen, samalla kun suoriutuvat niitä paremmin tehokulutuksen suh-: V teen. "Kantaluku-suurempi-kuin-neljä” -menetelmien pääasiallinen \'0 haittapuoli on summainmatriisin tarve osittaistulon tuottamislohkossa.
·· • · · • * ·:··: 25 Kun verrataan Boothin uudelleenkoodattuja “kantaluku-suurempi-kuin- : neljä” kertojia ei-uudelleenkoodattuihin, edellisillä on haittapuoli, joka .··% liittyy kerrottavan negatiivisten kerrannaisten sekä etumerkkien käsitte lyn tarpeeseen. Toisaalta kantaluku-T:n ei-uudelleenkoodattu kertoja . sisältää saman määrän summaimia osittaistulon tuottamislohkossa kun ··· 30 kantaluku-(2T) Boothin uudelleenkoodattu. Vielä tärkeämpää on, että *·;** “kantaluku-suurempi-kuin-kahdeksan” ei-uudelleenkoodatut kertojat ·:· tarvitsevat enemmän kuin yhden tason summauksen tuottaakseen :***: mahdollisia osittaistuioja, kun taas Booth-uudelleenkoodatussa lähes- tymistavassa tämä on totta ”kantaluku-suurempi-kuin-kuusitoista”-ker- \ [ 35 tojille. Näistä syistä kummankin tyyppiset kertojat ovat käyttökelpoisia • · * *· " erilaisissa suunnitteluolosuhteissa.
118654 14
Tekniikan tason rinnakkaiset arkkitehtuurit matriisi-vektori -aritmetiikkaa varten on suunniteltu siten, että ne käyttävät useita itsenäisiä kertojia yhdistettynä summaimiin tai useita itsenäisiä MAC-yksiköitä. On myös 5 tavallista, että on useita spesifisiä piirejä eri aritmetiikkaoperaatioille. Kuitenkin suuren kantaluvun kertojat sisältävät lohkoja (liukuhihna-vaiheita), joita voidaan käyttää uudelleen muihin operaatioihin, kuten summauksiin/vähennyksiin, keräyssummauksiin, jne. Tulee myös mainita, että matriisi-vektori -aritmetiikassa, erityisesti niissä joita käytetään 10 videon/kuvankäsittelyssä, on useita tilanteita, joissa yksi kerrottava tulee kertoa usealla kertojalla, mikä tarkoittaa, että kerrottavan mahdollisia osittaistuloja olisi voitu käyttää uudelleen kaikissa näissä kertolaskuissa jos olisi käytetty suuren kantaluvun kertolaskumenetelmiä. Lisäksi, kuten aiemmin mainittiin, on monia tilanteita, joissa tekniikan 15 tason kertojien liukuhihnavaiheet ovat puhtaasti tasapainoisia ja siten pienentävät laitteen tehokkuutta.
Eurooppalainen hakemusjulkaisu EP 1 050 828 A1 esittää prosessoria ja kuvankäsittelylaitetta. Kuvankäsittelylaite käsittää yleiskäyttöisen :*·*: 20 prosessointipiirin, jossa on useita dedikoituja, tiettyyn käyttöön ;*\\ tarkoitettuja liukuhihnapiirejä. Kaikissa näissä liukuhihnapiireissä on joukko sisäisiä asteita. Kukin liukuhihnapiiri suorittaa kyseiselle i « · liukuhihnapiirille määritetyn operaation ja operaation suoritettuaan .* ! muodostaa lähtötiedon. Mainittujen llukuhihnapiirien jatkoksi järjestetty • · · 25 datavalitsin valitsee valintaslgnaalin perusteella yhden liukuhihnapiirin :···: muodostaman lähtötiedon kerrallaan ja asettaa valitsimen lähtötiedoksi mainitun valitun liukuhihnapiirin lähtötiedon. Kukin liukuhihnapiiri on ...T tarkoitettu suorittamaan tietty, kyseiselle liukuhihnapiirille dedikoitu laskutoimitus, joka ei ole sama kaikissa liukuhihnapiireissä.
:·| 30 Liukuhihnapiireissä on tiettyjä, laskutoimituksen suorittamiseen I·.., soveltuvia sisäisiä asteita. Tällöin saman liukuhihnapiirin lähtötieto *’:** muodostetaan aina samalla tavalla. Toisin sanoen, yksi liukuhihnapiiri v : on suunniteltu suorittamaan tietty tehtävä. Liukuhihnapiirejä ei ole *:··: kytketty keskenään sarjaan, mutta liukuhihnapiirin sisäiset asteet ovat 35 sarjaankytkentä.
118654 15
Toinen eurooppalainen hakemusjulkaisu EP 0 644 492 B1 liittyy adaptiiviseen videosignaalin käsittelylaitteistoon, joka voi kertolaskun jälkeen suorittaa loogisia laskutoimituksia, jatkuvia kertolaskutoimituksia, tai muita laskutoimituksia kertolaskutulosten 5 yhdistämiseksi toisiinsa. Laitteisto käsittää joukon prosessointipiirejä, jotka voivat sisältää erilaisia aritmeettis-loogisia yksiköitä ja valitsimia signaalien reitittämiseksi prosessointipiirien sisällä. Prosessointipiiri voi sisältää esim. laajennetun aritmeettis-loogisen yksikön, kertolaskuyksikön, akun, valitsimia ja lähdön.
10
Keksinnön tavoitteet ja yhteenveto
Nyt esillä olevan keksinnön tavoitteena on toteuttaa parannettu kertolaskujen laskentarakenne ja menetelmä kertolaskuoperaatioiden 15 suorittamiseksi konfiguroitavissa olevalla rakenteella. Monitoiminnalliset/konfiguroitavissa olevat arkkitehtuurit voidaan konfiguroida useisiin eri rakenteisiin joukolla ohjaussignaaleita. Nyt esillä olevan keksinnön rakenteet voidaan edullisesti toteuttaa VLSI-arkkitehtuurina.
20
Nyt esillä olevasta keksinnöstä on eri suoritusmuotoja, joista joitakin käsitellään yksityiskohtaisemmin myöhemmin tässä selityksessä.
• · · ! ! Ensimmäinen suoritusmuoto käyttää hyväkseen rinnakkaista kertoja- • · · 25 rakennetta matriisi-vektori -aritmetiikassa ja on samalla joustava ja tar-joaa mahdollisuuden konfiguroida sitä pienempiin tehtäviin.
Keksinnön ensimmäisen suoritusmuodon rakenne on rakenne, joka voidaan toteuttaa laitteena joka voidaan konfiguroida toteuttamaan lis-:·! 30 taa operaatioista, mukaan lukien: (a) useita kertolaskuja; (b) useita MAC-operaatioita; (c) useita eritarkkuuksisia (bittileveys) summauk- *·;·' sia/vähennyksiä; ja/tai (d) rinnakkaisen yhteenlaskun.
··· * · » • · :··: Toisessa suoritusmuodossa käytetään hyväksi muistiyksikköä, johon 35 mahdolliset osittaistulot voidaan tallentaa ja käyttää uudelleen niissä tapauksissa, joissa sama kerrottava tulee kertoa usealla kertojalla. Ei- 118654 16 rajoittavia esimerkkejä tällaisista operaatioista ovat matriisi-vektori -kertolasku, FIR-suodatus, jne. Tällä tavoin ainoastaan se kertolaskun ensimmäinen numero, jolla on sama kerrottava, toteutetaan täydellisesti, kun taas toisia toteutetaan vain osittain välttäen näin kaikkein 5 resursseja vaativimman mahdollisten osittaistulojen laskemisen osan. Esimerkiksi kun kerrotaan matriisi vektoriin, täydellisiä kertolaskuja toteutetaan ainoastaan lähtövektorin ensimmäisen komponentin laskemisessa, kun taas loput kertolaskut lähtövektorin toisten komponenttien laskemiseksi toteutetaan vain osittain. Kun toteutetaan FIR-10 suodatusta, täydellisiä kertolaskuja toteutetaan vain kerran, kun lasketaan ensimmäistä lähtönäytettä, mutta loppuja kertolaskuja muiden lähtönäytteiden laskemiseksi toteutetaan vaillinaisesti.
Kolmas suoritusmuoto on yhdistelmä rinnakkaisesta kertojarakenteesta 15 ja erotusten itseisarvojen summan (SAD) kiihdytinrakenteesta videon ja kuvan käsittelyä (MAVIP) varten. Rakenne on monitoiminnallinen arkkitehtuuri siten, että se voidaan konfiguroida eri arkkitehtuureihin joukolla ohjaussignaaleita.
20 Tarkkaan ottaen nyt esillä olevan keksinnön mukaiselle menetelmälle on tunnusomaista se, että selektiivistä datankäsittelyä suoritetaan las-kentalaitteessa, jolloin ainakin yhden mainitun tulotietoliitännän ja ♦ · · ' . ainakin yhden lähtötietoliitännän välillä suoritetaan valinta ainakin .* .* yhden tulotietoliitännän yhdistämiseksi mainittuun ainakin yhteen 25 lähtötietoliitäntään datan reitittämiseksi mainitun ainakin yhden :···: tulotietoliitännän ja mainitun ainakin yhden lähtötietoliitännän välillä ja datan käsittelemiseksi mainitun valinnan mukaisesti. Nyt esillä olevan ...V keksinnön mukaiselle järjestelmälle on pääasiassa tunnusomaista se, että järjestelmä edelleen sisältää ainakin yhden kytkimen selektiivisen :·* 30 datankäsittelyn suorittamiseksi; mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden ’*;·* tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtötieto- liitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja ·:··: datan käsittelemiseksi mainitun valinnan mukaisesti. Nyt esillä olevan 35 keksinnön mukaiselle laitteelle on pääasiassa tunnusomaista se, että laite edelleen sisältää ainakin yhden kytkimen selektiivisen datankäsit- 118654 17 telyn suorittamiseksi; mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsittelemiseksi mainitun 5 valinnan mukaisesti. Nyt esillä olevan keksinnön mukaiselle langattomalle päätelaitteelle on pääasiassa tunnusomaista se, että langaton päätelaite edelleen sisältää ainakin yhden kytkimen selektiivisen datankäsittelyn suorittamiseksi; mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotieto-10 liitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsittelemiseksi mainitun valinnan mukaisesti. Nyt esillä olevan keksinnön mukaiselle laskentalaitteelle on pääasiassa tunnusomaista se, että laskentalaite edelleen sisältää ainakin yhden kytkimen selektiivisen 15 datankäsittelyn suorittamiseksi; mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsittelemiseksi mainitun valinnan mukaisesti.
20
Nyt esillä oleva keksintö osoittaa merkittäviä etuja verrattuna tekniikan tason ratkaisuihin. On mahdollista kehittää VLSI-arkkitehtuuri, joka aa* a. soveltuu signaalinkäsittelysovelluksissa, kuten videon/kuvankäsittelyn .* .* algoritmeissa, usein käytettyjen aritmeettisten kaavojen tehokkaaseen *;aa’: 25 toteuttamiseen. Käyttämällä keksinnön mukaista menetelmää :···: videon/kuvankäsittelyn yhteydessä kertolaskuoperaatiot voidaan suo rittaa nopeammin ja pienemmällä teholla kuin tekniikan tason menetel-missä ja laitteissa. Keksintö on erityisen tehokas useiden kertolasku-: jen/MAC:iden toteuttamisessa ja useiden kertolaskujen/MAC:iden, joilla :·.* 30 on yksi yhteinen operandi (yhteinen kerrottava), toteuttamiseksi. Mer- kiitävää säästöä tehonkulutuksessa voidaan saavuttaa sen ansiosta, • · että eri liukuhihnavaiheet voidaan asettaa tehonsäästötilaan kun niitä ei :T; tarvita ja/tai voidaan käyttää eri liukuhihnavaiheita eri laskentaoperaati- ·:··: oiden suorittamiseksi oleellisesti samanaikaisesti. Nopea suorituskyky 35 (suuri suoritusteho) johtuu liukuhihnoituksen käytöstä, jossa on joustava mahdollisuus tasapainottaa eri liukuhihnavaiheiden viiveet ja pie- 118654 18 nentää koko rakenteen aikaa nopeimman lohkon viiveeseen. Suoritus-tehon kasvu saavutetaan pinta-alan minimikasvulla ja ilman että tulo/lähtö-väyIän leveyttä kasvatetaan verrattuna yksittäiseen liuku-hihnoitetun tekniikan tason (kantaluku-4 tai suurempi) kertojaan.
5
Konfiguroitavissa oleva rakenne mahdollistaa saman laitteen uudelleenkäytön eri operaatioissa. Lisäksi operaatioita voidaan toteuttaa sisääntuloargumenttien eri bittitarkkuuksilla, esim. kahdeksalla rinnakkaisella 8-bitin summauksella tai neljällä rinnakkaisella 16-bitin sum-10 mauksella.
Merkittäviä ajan ja tehon/energiankulutuksen säästöjä saavutetaan, koska kaikkein hintavin osa, eli mahdollisten osittaistulojen laskenta poistetaan useimmista kertolaskuoperaatioista.
15
Edelleen nyt esillä olevan keksinnön yhden edullisen suoritusmuodon etu on, että arkkitehtuurin ensimmäistä liukuhihnavaihetta, eli sum- mainmatriiseja mahdollisten osittaistulojen laskemiseksi, ei ole tarpeen tasapainottaa muiden vaiheiden kanssa, koska se ei ole kriittisellä :*·*: 20 polulla useimpien syklien aikana.
• » • · • ♦ · • · · .·*:*. Muistiyksikön ottaminen käyttöön mahdollistaa myös ensimmäisen liu- kuhihnavaiheen käyttämisen hyväksi toisessa tehtävässä rinnakkaisesti . muiden vaiheiden kanssa, eli samanaikaisesti kertolaskuoperaatioon 25 perustuvan operaation toteuttamisen kanssa voidaan toteuttaa rinnak-*··* kaisia summaus/vähennysoperaatioita (eri tarkkuuksisia) toiseen tehtä vään.
··· ···· ***** Koska nyt esillä olevan keksinnön edullinen suoritusmuoto on moni- 30 toiminnallinen, se voi korvata useita laitekiihdyttimiä, jotka ovat erikois- • ·· tuneet tiettyihin signaalinkäsittelyoperaatioihin, kuten esimerkiksi * *: * * videon/kuvankäsittelyoperaatioi hin.
··· • · · * * *:**: Piirustusten lyhyt kuvaus 35 118654 19
Nyt esillä olevaa keksintöä selostetaan seuraavassa tarkemmin viitaten samalla oheisiin piirustuksiin, joissa kuva 1 kuvaa tekniikan tason kantaluku-4:n Boothin uudelleen-5 koodattujen kertojien tyypillistä rakennetta, kuva2 kuvaa kantaluku-T:n Boothin uudelleenkoodattujen (r>8) tai ei-uudelleenkoodattujen (r> 4) kertojien yleistä raken netta, 10 kuva 3a kuvaa summauslohkon yhtä suoritusmuotoa rinnakkaisessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa summauslohko toteutetaan yleisenä pakkausmatriisina n/t:lle valituille osittaistuloille ja takaisinkytkennän summa-15 ja muistibittitermeille, kuva 3b kuvaa summauslohkon toista suoritusmuotoa rinnakkaisessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa summainlohko toteutetaan jaettuna pakkausmatriisina, 20 « · kuva 4a esittää erotusten itseisarvojen summa -arkkitehtuurin ylei-sen rakenteen, jossa DS-yksikkö toimii vähentäjänä, jota seuraavat XOR-portit, • · 25 kuva 4b esittää DS-yksikön yleisen rakenteen, • · φ · »·· kuva 5 kuvaa esimerkkiä erotusten itseisarvojen summa -arkki- ...T tehtuurista, jossa p=1, s=8, n~8, ··· • · • · ··· :\m 30 kuva 6 kuvaa yksinkertaistettuna lohkokaaviona esillä olevan kek- j···. sinnön mukaisen konfiguroitavissa olevan laitteen yleistä T rakennetta useille kertolaskuille/MAC-operaatioille.
··· • · · • · ♦ kuva 7 kuvaa kuvan 6 konfiguroitavissa olevan laitteen edullista 35 suoritusmuotoa, 118654 20 kuva 8 kuvaa yksinkertaistettuna lohkokaaviona nyt esillä olevan keksinnön mukaisen laitteen yleistä rakennetta matriisi-vektori operaatioille, 5 kuva 9 kuvaa nyt esillä olevan keksinnön mukaisen arkkitehtuurin edullista suoritusmuotoa kahden samanaikaisen (13x13)-bittisen MAC-operaation matriisi-vektori -aritmetiikalle, kuva 10a kuvaa rekisterimuistia, jossa on osoitusyksikkö joka toimii 10 kiertävässä mod-P -tilassa, kuva 10b kuvaa siirtorekisterimuistia, jossa on kiertävä mod-P takaisinkytkentäpiiri, 15 kuva 11 kuvaa videon ja kuvan käsittelyyn tarkoitetun monitoimin-nallisen arkkitehtuurin yleistä rakennetta nyt esillä olevan keksinnön mukaisesti, kuva 12a kuvaa esimerkkitoteutusta AA/DSA-yksiköstä, f*·*.· 20 .·.·*. kuva 12b kuvaa toista esimerkkitoteutusta AA/DSA-yksiköstä, * · • · · • j · m]". kuva 13 kuvaa esimerkkitoteutusta monitoiminnallisesta arkkiteh- .* tuurista videon ja kuvan käsittelyä varten, joka on saatu • · · 25 yhdistämällä kuvan 5 SAD-rakenne ja kuvan 9 matriisi- :···: vektori -aritmetiikan arkkitehtuuri, ja kuva 14 kuvaa yksinkertaistettuna lohkokaaviona keksinnön edulli-sen suoritusmuodon mukaista laitetta.
··· ί·: 30 • · · )... Keksinnön yksityiskohtainen kuvaus
• I
f · • ![i*: Nyt esillä olevan keksinnön ensimmäistä edullista suoritusmuotoa ·:··! kuvataan seuraavassa yksityiskohtaisemmin. Nyt esillä olevan keksin- 35 nön mukaisen laitteen ensimmäisen suoritusmuodon yleistä rakennetta kuvataan kuvassa 6. Laite 1 jaetaan joukoksi eri liukuhihnavaiheita P1 118654 21 - P4. Tässä suoritusmuodossa laite 1 käsittää neljä liukuhihnavaihetta, mutta on selvää, että nyt esillä olevan keksinnön puitteissa liukuhihna-vaiheiden lukumäärä voi olla muu kuin neljä.
5 Nyt esillä olevan keksinnön ensimmäisen edullisen suoritusmuodon mukainen laite yhdistää useita (rivistö) kertojia/MAC-yksiköitä. Kanta-luku-T:n Boothin uudelleenkoodattujen (T=8, 16) tai ei-uudelleen-koodattujen (T=4, 8) kertojien rivistöjen lajitelman yleinen rakenne esitetään kaaviollisesti kuvassa 6. Kertojien/MAC-yksiköiden rivistön 10 rakenteen edullinen suoritusmuoto voidaan yleisesti esittää liuku-hihnoitettuna laitteena, jossa ensimmäinen liukuhihnavaihe P1 käsittää useita, esimerkiksi p, s summaimien matriiseja (AA) 2, ja kaikki 5 summaimien matriisit 2 jakavat samat sisääntulolinjat 6. Toinen liukuhihnavaihe P2 on useita, esimerkiksi q , valintalohkoja (SB) 3, kolmas 15 vaihe P3 on useita, esimerkiksi u , pakkausmatriiseja (CA) 4, ja neljäs liukuhihnavaihe P4 käsittää useita, esimerkiksi v , lopullisia CLA-sum-maimia 5. Perustason toiminnalliset lohkot (AA, SB, CA ja CLA) voivat itse asiassa olla samoja, kuin mitä voidaan käyttää vastaavan tyyppisissä tekniikan tason kertojissa ja/tai MAC-yksiköissä. Yksi nyt esillä :*·*: 20 olevan keksinnön mukaisen laitteen tunnusomaisista piirteistä on se, • · että se sisältää valintavälineet laitteen sisäisen signaalipolun (-polku- .·!·. jen) uudelleenreitittämiseksi ja myös lähtösignaalin valitsemiseksi joukosta sisäisiä signaaleja. Valintavälineet valitsevat ainakin yhden . liukuhihnavaiheen sisääntulon ainakin kahdesta vaihtoehdosta. Edulli- • · · *;./ 25 sessa suoritusmuodossa tekniikan tason rakenteen ainakin jotkin *—: peruslohkot korvataan useammalla kuin yhdellä peruslohkolla. Laitteen toiminta riippuu useista parametreista (p, q, u ja v), joiden asianmukai- * ..li* sella valinnalla voidaan suunnitella laite, jolla on tasapainoiset liuku- O hihnavaiheet. Yhden liukuhihnavaiheen lohkot toimivat sopivimmin ϊ·Ι 30 aikalomitetusti siten, että liukuhihnavaiheiden suoritustehoja voidaan vaihdella, jotta ne tehtäisiin suunnilleen yhtä suuriksi, ja jotta saavutet- *:** täisiin haluttu toimintavaiheen kesto.
··· * · · • · · • ""s Useiden toiminnallisten lohkojen aikalomitetun toiminnan periaate esi- 35 tetään alla lyhyesti. Ajatellaan, että toiminnallista lohkoa FB käytetään suuremman järjestelmän liukuhihnavaiheessa, ja oletetaan, että siinä 118654 22 on arvioitu DFB ~ pTdes:n viive (mutta DFB<pTdes), jossa Tdes on haluttu järjestelmän toimintavaiheen kesto. Sitten, jotta liukuhihnavaihe P1, ..., P4 toimisi suoritusteholla, joka vastaa yhden vaiheen kestoa, sarjallinen toiminnallinen lohko voidaan korvata usealla w toiminnalli-5 sen lohkon FBj,FB2,...,FBw:llä, joilla on liukuhihnarekisterit (salvat)
Rj.....Rw sisääntuloissaan ja w:l multiplekseri 602, 603, 604, 605 lähdöissään. Parametri w riippuu kyseessä olevasta liukuhihna- vaiheesta. Ensimmäiselle liukuhihnavaiheelle P1 parametri w vastaa parametriä p, eli siinä on p liukuhihnarekisteriä Rj,...,Rp ja ensimmäi- 10 sen liukuhihnavaiheen multiplekseri 602 valitsee yhden p-sisääntuloista lähtöönsä. Toiselle liukuhihnavaiheella P2 parametri w vastaa parametriä q, eli siinä on q liukuhihnarekisteriä RF...,Rq ja toisen liukuhihna- vaiheen P2 multiplekseri 603 valitsee yhden q-sisääntuloista lähtöönsä, tässä järjestyksessä. Kolmannelle liukuhihnavaiheelle P3 parametri w 15 vastaa parametriä u, eli siinä on u liukuhihnarekisteriä Rjja kolmannen liukuhihnavaiheen P3 multiplekseri 604 käsittää kaksi multiplekseriä (ei näytetty), joista kumpikin valitsee yhden u- sisääntuloista lähtöönsä. Neljännelle liukuhihnavaiheelle P4 parametri w vastaa parametriä v, eli siinä on v liukuhihnarekisteriä Rj,...,Rv ja |V 20 neljännen liukuhihnavaiheen P4 multiplekseri 605 valitsee yhden v- :V; sisääntuloista lähtöönsä 414. Yhteinen sisääntulo liukuhihnavaihee- seen P1, P2, P3, P4 liittyy jokaiseen w liukuhihnarekisteriin Rj,...,Rw.
* ·:··· Kuitenkin jokainen näistä rekistereistä on avoinna vain yhden jokaisesta w toimintavaiheesta yhden toimintavaiheen aikapoikkeamalla. Tällä .···.' 25 tavoin jokaisessa toimintavaiheessa sisääntulo / on itse asiassa yhtey- • * dessä vain yhden toiminnallisen lohkon sisääntuloon, kun muut yhtey- . det eivät taas ole toiminnassa, koska kaikkien muiden tarkasteltavan ··· ·;;· liukuhihnavaiheen muodostavien toiminnallisten lohkojen sisääntulo- ·*...·* rekisterit on suljettu kirjoittamisen vuoksi. Rekisteri R1 ensimmäisen toi- 30 minnallisen lohkon FBj sisääntulossa on avoinna jokaisen w toiminta- .*···, vaiheen ensimmäisen vaiheen aikana, rekisteri R-y toisen toiminnallisen • · * £ lohkon FB2 sisääntulossa on avoinna jokaisen w toimintavaiheen toi-
:·** ] sen vaiheen aikana, jne. Yleensä toimintavaiheessa t = l,2y...,K
sisääntulo / on itse asiassa yhteydessä vain FBf \n sisääntuloon, jossa 35 f = {t-l)modw+l. Näin ollen sisääntulo /:tä käytetään samassa tilassa, mutta ajallisesti jaettuna tarkasteltavan liukuhihnavaiheen toi- 118654 23 minnallisten lohkojen FB1,...,FBW kesken. Järjestelmän toiminnan aikana, toimintavaiheen t = l,2,...,K aikana, yksi näyte Xt tulotieto- virrasta kyseiseen kerrokseen tulee sisään toiminnalliseen lohkoon FBf, f — (t-l)mod w+l, joka aloitetaan kyseisessä kerroksessa. Kun 5 FBf suorittaa valmiiksi toimintansa Xt\x\ aikana toimintavaiheen t + w-l,t = 1,2.....K lopussa, w:l multiplekseri 602, 603, 604, 605 toi minnallisten lohkojen lähdöissä välittää FBf\ssä saadut tulokset kerroksen lähtöön seuraavassa toimintavaiheessa t + w, t = l,2.....K.
Tämän vuoksi multiplekseri 602, 603, 604, 605 toimii kiertävän mod w 10 -säännönmukaisesti.
Korvaamalla tekniikan tason kertojan/MAC-yksikön rakenteen jokaisen toiminnallisen lohkon usealla samanlaisella toiminnallisella lohkolla ja käyttämällä hyväksi aikalomitetun toiminnan periaatetta voidaan saa-15 vuttaa parempi tasapaino liukuhihnavaiheissa mitä tulee ennalta määrättyyn toimintavaiheen kestoon asianmukaisella lohkojen lukumäärän vallinnalla jokaisessa liukuhihnavaiheessa (toisin sanoen, parametreillä p, q, u ja v). Oletetaan, että tekniikan tason kertojan/MAC-yksikön rakenteen neljän liukuhihnavaiheen viiveet ovat , dsb , dca , dcla , {'·*: 20 tässä järjestyksessä, ja haluttu järjestelmän suoritusteho on Ndes kerto- :V: laskua/MAC-operaatiota sekunnissa, jolloin haluttu toimintavaiheen kesto valitaan olemaan Tdes sekuntia, niin että Tdes<i/Ndes, ja mainitut suunnitteluparametrit valitaan olemaan p = \DAAlTdes\ q=[DSBlTdes~j, : u = [DCA/Tdes'\, ja v = \dcla /Tdes~|, missä esitysmuoto [x~\ tarkoittaa • ·· .···.' 25 pyöristystä seuraavaan kokonaislukuun.
··· . Nyt esillä olevan keksinnön ensimmäisen edullisen suoritusmuodon ««· * mukaisen rakenteen konfiguroitavuus saavutetaan sisällyttämällä yksi * tai useampia valintavälineitä, esim. multiplekserit 15, 16,17, ensimmäi- 30 sen P1, kolmannen P3 ja neljännen liukuhihnavaiheen P4 sisääntuloi- :***: hin. Multiplekserit 15, 16, 17 ovat edullisesti 2:1 multipleksereitä. Niitä ··· ohjataan signaaleilla c1t c2, ja c3, tässä järjestyksessä. Rakenne käsit-*** [ tää myös lähtövalitsimen 20, jota ohjataan ensimmäisellä ohjaus- * * signaalilla c* ja toisen c2 ja kolmannen ohjaussignaalin c3 TAI-yhdistel- 35 mästä (eli c2 vc3). Lähtövalitsin 20 valitsee rakenteen lähtöväylään 14 yhdistettävää dataa ensimmäisestä P1 tai viimeisestä liuku- 118654 24 hihnavaiheesta P4. Multipleksereiden 15, 16, 17 ensimmäiset sisääntulot on yhdistetty vastaaviin rakenteen sisääntuloväylän 6 linjoihin, ja multipleksereiden 15, 16, 17 toiset sisääntulot on yhdistetty siten, että jos toiset sisääntulot aktivoidaan, rakenne toimii kertolasku/MAC-ope-5 raatiolaitteena. Tällöin rakenteen eri konfiguraatiot ovat mahdollisia ohjaussignaalien ch c2, ja c3 eri joukkoihin. Konfiguraation riippuvuus näistä signaaleista on seuraavanlainen.
Kun kaikki ohjaussignaalit c1t c2, c3 asetetaan loogiseen 1-tilaan, eli 10 0-1=02=03=1, rakenne käyttäytyy kuten kertolasku/MAC-operaatiolaite.
Tilanteessa, jossa ensimmäinen ohjaussignaali c1 on loogisessa 0-tilassa ja toiset kaksi ohjaussignaalia c2, c3ovat loogisessa 1-tilassa, eli Ci=0; c2=c3=1, rakenne käyttäytyy kuten sp-summain/vähentäjien matriisi. Ainoastaan ensimmäinen liukuhihnavaihe P1 (eli summainmatriisi 15 2) aktivoidaan muiden ollessa vapaana. Kolmas vaihtoehto on, että ensimmäinen ohjaussignaali asetetaan loogiseen 1-tilaan, kun taas toinen c2ja kolmas ohjaussignaali c3 asetetaan loogiseen 0-tilaan {Ci=1; c2=0; c3=0). Tämä tarkoittaa, että rakenne käyttäytyy laskurina. Ainoastaan pakkausmatriisit 4 ja lopulliset summaimet 5 toimivat, kun taas :’·\· 20 summainmatriisit ja valintalohkot ovat vapaat. Neljännessä vaihto- • · ehdossa sekä ensimmäinen c* että toinen ohjaussignaali c2 asetetaan .‘V. loogiseen 1-tilaan ja kolmas ohjaussignaali c3 asetetaan loogiseen 0- tilaan (Ci=c2=7; c3=0). Tässä tapauksessa rakenne käyttäytyy nopeana . laajan tarkkuuden summaimena. Vielä yhdessä vaihtoehdossa, kun *;./ 25 ci=c2=c3=0, rakenne samanaikaisesti käyttäytyy kuten sp-sum- *···*’ maimien/vähentäjien matriisi ja laskuri. On selvää, että edellä mainitut valintavälineet 16, 17, 20, samoin kuin rakenteen/toimintatavan riippu-vuus ohjaussignaalien c-,, c2, c3 tilasta ovat ainoastaan yksi mahdollinen O vaihtoehto, mutta myös muita vaihtoehtoja voidaan soveltaa nyt esillä :·! 30 olevan keksinnön puitteissa. Tämä pätee myös muihin ohjaussignaalei- hin, joita kuvataan myöhemmin tässä selityksessä.
• · • § * lit v : Kuvassa 6 on kaksi muuta ohjaussignaalia c4 ja c5, jotka lisäävät monitoiminnallisuutta rakenteeseen uudelleenkonfiguroimatta sitä. 35 Neljäs ohjaussignaali aktivoi (jos esim. c4=1) tai disaktivoi (jos esim. c4=0) takaisinkytkentäpiirejä paukkausmatriisien 4 lähtöjen ja 118654 25 sisääntulojen välillä kolmannessa liukuhihnavaiheessa P3. Tällöin rakenne toimii kertojana jos 0-1=02-03-1, c4=0 ja se toimii MAC-yksik-könä jos 0^02=03=04=1. Viides ohjaussignaali c5(joka voi olla 1-, 2-, tai 3-bittinen signaali) ohjaa summain/vähentäjien tarkkuutta ensimmäi-5 sessä liukuhihnavaiheessa P1 sallimalla (c5:n vastaava bitti on esim. looginen 1) tai pysäyttämällä (c5:n vastaava bitti on esim. looginen 0) muistibitin lisääntymisen kokosummaimien 5 lohkojen välillä. Tällöin useat summainmatriisit, jotka sisältävät sp-summaimia/vähentäjiä m-bittisille sisääntuloille, voivat myös toimia useina 2sp-sum-10 maimina/vähentäjinä (m/2;-bittisille sisääntuloille tai useina 4sp-sum-maimina/vähentäjinä (m/^-bittisille sisääntuloille, jne. On myös mahdollista, että valintalohkoja 3, pakkausmatriiseja 4, ja lopullisia sum-maimia 5 voidaan lievästi muuntaa ja tehdä ohjattaviksi ohjaussignaalilla, joka myös sallii useiden tarkkojen kertolaskujen/MAC-operaatioi-15 den toteuttamisen.
Esimerkki nyt esillä olevan keksinnön ensimmäisen edullisen suoritusmuodon mukaisesta tyypin 1 ei-uudelleenkoodatusta kantaluku-8:n kertojarakenteesta kuvataan kuvassa 7. Tämä esimerkki vastaa tapa-•v. 20 usta, jossa m=13 (kerrottavan tarkkuus) n=16 (kertojan tarkkuus) ja p=q=u=v=1. Ensimmäisessä liukuhihnavaiheessa P1 on kaiken kaikki-aan kahdeksan 8-bittistä summain/vähentäjää, joita voidaan konfigu- • · · roida neljään 16-bittiseen summain/vähentäjään riippuen viidennestä [ ! ohjaussignaalista c5. Riippuen neljännestä ohjaussignaalista c4 kol- 25 mannen liukuhihnavaiheen P3 pakkausmatriisi voidaan tässä esimer- *···: kissä konfiguroida joko siten, että sillä on kaiken kaikkiaan kuusi sisääntuloa joista kaksi on varsinaisia takaisinkytkentöjä sen lähdöistä ..!·* (jos esim. c4=1) tai siten, että sillä on neljä sisääntuloa ilman takaisinkytkentää (jos esim. c4=0). Neljäs ohjaussignaali c4 voidaan :·! 30 yhdistää pakkausmatriisin sisäiseen kelloon (ei näytetty), jotta voitaisiin • · · seisauttaa ne kokosummaimet, joita ei jälkimmäisessä tapauksessa *':** tarvita. Sisääntuloväylää 6 käytetään joko kerrottavan (ensimmäinen ··· v : ohjaussignaali c7 on esim. looginen 1) tai yhteenlaskettavien (ensim- "··: mäinen ohjaussignaali c* on esim. looginen 0) syöttämiseen.
35 118654 26
Arkkitehtuurit matriisi-vektori -aritmetiikalle
Seuraavassa nyt esillä olevan keksinnön mukaisten kertoja/MAC-yksikkö rakenteiden edullisia suoritusmuotoja käytetään sellaisten matriisi-vektori operaatioiden suorittamisessa kuten skalaari vektoriin tai 5 matriisiin -kertolasku, matriisi vektoriin -kertolasku (ja siten matriisi matriisiin -kertolasku, käänteinen matriisilaskenta, värikonversiot, nopeat ortogonaaliset muunnokset, esim. FFT, nopea DCT, jne.) ja konvoluutio tai FIR-suodatus, ja siten suodatinrivistö ja erityisesti diskreetit wavelet-muunnostoteutukset. Näille operaatioille on yhteistä, 10 että yksi kerrottava x kerrotaan useilla kertojilla af , / = 1,...,/: . Toisaalta suuren kantaluvun kertolaskumenetelmien olennainen piirre on, että merkittävä kompleksisuus siirretään ensimmäiseen vaiheeseen (osittaistulojen muodostaminen) toisesta vaiheesta (osittaistulojen summaus). Mitä korkeampi kantaluku on, sitä enemmän kompleksi-15 suutta on siirrettävä.
Tämän edullisen sovelluksen pääasiallisena ajatuksena on laskea yhteisen kerrottavan x mahdollisia osittaistuloja vain kerran kun se kerrotaan ensimmäisellä kertojalla ax , ja sen jälkeen käyttää uudelleen 20 näitä mahdollisia osittaistuloja kerrottaessa x lopuilla kertojilla a{ , |*V / = 2,...,/: . Tällä tavoin vain yksi K kertolaskuista on kokonaan suoriva tettu kun K-1 kertolaskua suoritetaan osittain suorittamatta kaikkein :T: monimutkaisinta osaa suuri-kantaluku-suurempi-kuin-neljä -kerto- ·:··: laskumenetelmästä (eli mahdollisten osittaistulojen laskenta). Epäile- 25 mättä tällöin saavutetaan merkittäviä ajan ja tehon/energiankulutuksen .···. säästöjä.
··· ... Tämän ajatuksen mukaan matriisi-vektori -aritmetiikalle ehdotetun ark- *::! kitehtuurin yleinen rakenne voidaan johtaa nyt esillä olevan keksinnön • · *··♦* 30 ensimmäisen edullisen suoritusmuodon kertoja/MAC-yksikkö -raken- teestä. Tämä saadaan aikaan yhdistämällä muisti 21 kuten kuvassa 8 esitetään. On olemassa kuudes ohjaussignaali c6, jonka mukaan muisti .I., 21 on joko avoinna (kun kuudes ohjaussignaali c6 on esim. asetettu loogiseen O.aan (matala)) tai suljettu (kun kuudes ohjaussignaali c6 on 35 esim. asetettu loogiseen 1:een (korkea)) kirjoittamista varten. Kun muisti 21 on asetettu avoimeksi kirjoittamista varten, mahdolliset osit- 118654 27 taistulot voidaan tallentaa useiden summainmatriisien 2 lähdöistä muistiin 21. Samaa signaalia c6 voidaan käyttää ohjaamaan 2:1 multi-plekseriä 22. Multiplekserin 22 ensimmäinen sisääntulo on yhteydessä useiden summainmatriisien 2 lähtöön, ja multiplekserin 22 toinen 5 sisääntulo on yhteydessä muistin 21 lähtöön. Näin ollen mahdolliset osittaistulot tulevat useiden valintalohkojen 3 sisääntuloon joko suoraan useiden summainmatriisien 2 lähdöistä (kun kuudes ohjaussignaali c6 on esim. asetettu loogiseen 0:aan) tai muistista 21 (kun kuudes ohjaussignaali c6 on asetettu loogiseen 1 :een).
10
Kuva 9 kuvaa matriisi-vektori -aritmetiikan esimerkkirakenteen tapaukseen, jossa kaksi {13x13)-bittistä MAC-operaatioita voidaan suorittaa samanaikaisesti. Rakenne yhdistää kaksi erillistä valintalohkoa 3a, 3b, joita ohjaa kahden eri kertojan bitit. Joko saman kerrottavan (jos c2=c3) 15 mahdolliset osittaistulot tai kahden eri kerrottavan (jos c2*c3 ) mahdolliset osittaistulot voidaan valita syötettäväksi valintalohkoihin 3a, 3b. Kahden valintalohkon lähdöt syötetään kahteen erilliseen pak-kausmatriisiin, joilla on 31-bittiset takaisinkytkennät {b-32 on maksimi bittitarkkuus lopulliselle yhteenlasketulle tulokselle tässä tapauksessa). 20 Näiden pakkausmatriisien summan S ja muistibitin C lähdöt voidaan :v. joko yhdistää (4x31)-sisääntulo pakkausmatriisissa, jota seuraa lopulli- nen summain yhden keräyssummatermin muodostamiseksi, tai ne voi-daan summata pareittain kahden keräyssummatermin muodostamiseksi. Tällä tavoin kaksi erillistä pakkausmatriisia, joilla kummallakin on I ] 25 pienempi syvyys ja näin ollen lyhyempi takaisinkytkentäpiiri, toimii ke- räyssummakerroksessa. Tämän jälkeen kaksi paria summa- ja muisti-bittitermejä joko summataan erikseen (pareittain) kahteen CPA:han tai summataan yhdessä kolmannessa summauslohkossa. Ensimmäisessä tapauksessa kahden erillisen operaation (esim. kaksi lähtökompo-30 nenttia matriisi-vektori -kertolaskussa) tulokset saadaan samanaikai-sesti. Toisessa tapauksessa yhden kompleksioperaation laskenta jae-taan kahteen pienempään ja sitten tulokset yhdistetään.
• * « · ··· :T: Itse asiassa mitä tahansa lue/kirjoita -muistia voidaan käyttää matriisi- ·:··: 35 vektori -aritmetiikalle ehdotetussa rakenteessa . Kaksi suositeltavaa muistityyppiä kuvataan kuvissa 10a ja 10b. Kuvassa 10a kuvattu muis- 118654 28 tityyppi vastaa rekisterimuistin tapausta, jossa on R rekisteriä pituudeltaan L , jossa l on tarpeeksi suuri tallentamaan yhden kerrottavan mahdolliset osittaistulot yhteen rekisteriin: L>(m+t)s Jossa m on kerrottavan bittitarkkuus, t = logT , T on käytettävän kertolaskumenetel-5 män kantaluku, ja 5 on summaimien/vähentäjien lukumäärä jokaisessa summainmatriisissa. Tämän muistityypin osoitusyksikön tulisi voida tuottaa osoitteita kiertävään modP -sääntöön mille tahansa positiiviselle kokonaisluvulle P<R . Tämä tarkoittaa sitä, että toimintavaiheessa t -1,2,... osoitusyksikkö tuottaa a(t) = (t- 7)mod P senhetki- 10 senä osoitearvona. Sitten mahdollisen osittaistulon arvo sisääntulo-linjalla kirjoitetaan rekisteriin ait) , a(t)e fy,l,...,R-l} , jos kuudes ohjaussignaali c6 on matala (muistiin), tai sisältö rekisteristä a(t) , a(t)&fy,l,...,R-l\ , eli aiemmin tallennetut mahdolliset osittaistulon arvot, kirjoitetaan lähtölinjaan, jos kuudes ohjaussignaali c6 on korkea 15 (muistista).
Kuvassa 10b kuvattu toinen muistityyppi toimii samankaltaisella mod/* tavalla, mutta on järjestetty siirtorekisteriksi, jolla on ohjattavissa oleva takaisinkytkentä. Jokaisessa toimintavaiheessa data p innestä rekiste-20 riyksiköstä, p = 0,...,P-2 , siirretään (p + l) :teen rekisteriyksikköön, jos jälkimmäistä ei pysäytetä. Jokaisesta rekisteriyksiköstä on takaisin-kytkentälinjoja. Kaikki takaisinkytkentälinjat syötetään (/? + /): 1 multi- * · » plekseriin, jossa on myös sisääntulolinja toisena sisääntulona (muistiin). Multiplekseriä ohjataan (logR) -bittisellä signaalilla, jonka arvo on ase-25 tettu olemaan c6P siten, että joko dataa sisääntulolinjasta (jos c6 = 0 ) tai takaisinkytkentäpiiristä, joka on peräisin (P-l) :sen rekisterin lähdöstä Oos c6 = 1 ) kirjoitetaan 0 :nteen rekisteriin. Muistin lähtö otetaan aina 0 :nnesta rekisteristä.
φ * · • · · · :*t": 30 Seuraavassa käsitellään yksityiskohtaisemmin kolmen sellaisen ope- raation suorittamista, joita toteutetaan usein videon ja kuvan käsitte-:... lyssä. On huomattava, että nämä ovat vain esimerkkitoteutuksia aino- * :·* astaan tietyille operaatioille, mutta nyt esillä olevaa keksintöä ei rajoi- teta ainoastaan näihin operaatioihin eikä tarkasti esiteltyihin menetel-*:··: 35 miin. Kaikki muut operaatiot joihin yleisen kerrottavan kertolasku useilla kertojilla liittyy voidaan toteuttaa samalla tavoin keksinnön mukaisella 118654 29 matriisi-vektori -aritmetiikan arkkitehtuurilla. Myös muita samankaltaisia algoritmeja voidaan kehittää tarkastelluille operaatioille.
Ensiksi tarkastellaan skalaari vektoriin -kertolaskuoperaation xa 5 suorittamista, mikä on kaikkein ilmeisin tapaus jossa yleinen kerrottava (skalaari) x tulee kertoa suurella määrällä kertojia a7 , i = \,...,K , vektorin a komponenteilla. Ensimmäisessä vaiheessa, kun toteutetaan yleisen kerrottavan kertolaskua ensimmäisellä kertojalla ax , kuudes ohjaussignaali Ce asetetaan matalaksi siten että * :n mahdolliset 10 osittaistulot siirtyvät suoraan ensimmäisen liukuhihnavaiheen P1 sum-mainmatriiseista 2 toisen liukuhihnavaiheen P2 useisiin valintalohkoihin 3, ja samaan aikaan ne kirjoitetaan muistiin 21. Muisti 21 on asetettu toimimaan modi -tilan mukaisesti ja kaikki sen rekisterit o innetta lukuun ottamatta on pysäytetty. Kaikkia paitsi ensimmäinen ensimmäi-15 sen liukuhihnavaiheen summainmatriiseista 2a on myös pysäytetty, jos vain yksi skalaari yhteen tai useaan vektoriin -kertolasku tulee toteuttaa. Toisesta toimintavaiheesta alkaen kuudes ohjaussignaali c$ asetetaan niin korkeaksi, että muisti 21 suljetaan kirjoittamista varten ja x :n mahdolliset osittaistulot, jotka on kirjoitettu muistiin ensimmäisen vai-20 heen jälkeen, noudetaan muistista 21 valintalohkoihin 3 vastaavan 2:1-multiplekserin 22 toisen sisääntulon läpi. Samaan aikaan kaikki sum- · mainmatriisit 2 (ensimmäinen mukaan luettuna) joko pysäytetään tai siirretään toiseen tehtävään. Näin ollen saavutetaan ajan säästöä, « · · koska kertolaskuoperaation kriittinen polku on pienentynyt hylkäämällä I*'] 25 kaikkein kalleimman osan, nimittäin mahdollisten osittaistulojen lasken- *·.**: nan. Tehon ja energian kulutuksessa saavutetaan merkittäviä säästöjä, koska ensimmäinen liukuhihnavaihe pysäytetään tai vaihdetaan toiseen tehtävään K toimintavaiheen K-1:n aikana. Toinen etu on, että tässä ·:· laskennallisessa kaaviossa ensimmäistä liukuhihnavaihetta P1 ei tar- • · · · ·*": 30 vitse välttämättä tasapainottaa muiden liukuhihnavaiheiden P2-P4 ,.** kanssa, koska se on pois kriittiseltä polulta K toimintavaiheen K-1:n aikana. Vielä yksi etu on, että kerrottava * noudetaan vain kerran ulkoi-:···: sesta muistista (ei näytetty), kun taas perinteisessä toteutuksessa se pitäisi noutaa K kertaa.
Toinen tässä tarkasteltava operaatio on matriisi-vektori -kertolasku 35 118654 30 p s = Αχ, tai vastaavasti, sj = £at,jxj · z = 7=1 Tämä operaatio on osa useista lineaarisen algebran ja videon/kuvan käsittelyn algoritmeista, kuten matriisi-matriisiin -kertolasku, käänteinen matriisilaskenta, kuvan väriavaruus-konversiot, nopeat ortogonaaliset 5 muunnokset, (esim. FFT, nopea DCT, jne.), geometriset manipulaatiot, reunailmaisu, ja muut. Matriisi-vektoriin -kertolaskua voi ajatella useina vektori-vektoriin -kertolaskuina ja siten sitä voisi toteuttaa MAC-yksikön tai niiden rivistön kanssa. Kuitenkin tulisi huomata että jokainen sisääntulovektorin x komponentti (kerrottava) xj , j = kerrotaan 10 K kertojalla, matriisin a j :nnen sarakkeen komponentilla. Muistin 21 hyväksikäyttö nyt esillä olevan keksinnön tämän suoritusmuodon mukaisen matriisi-vektori -aritmetiikan rakenteessa sallii mahdollisten osittaistulojen laskennan ainoastaan kerran jokaiselle sisääntulovektorin x komponentille xj , j = 1,..., p . Mahdolliset osittaistulot tallenne- 15 taan sitten muistiin 21 edellyttäen että se sisältää tarpeeksi rekistereitä (eli p<r ).
Kuten verkkoteoriasta tiedetään, edellä mainittu kriittinen polku ilmaisee pisimmän reitin aloitussolmusta päätössolmuun. Nyt esillä olevaan kek-i 20 sintöön sovellettuna kriittinen polku ilmaisee pisimmän reitin laskenta- \v prosessiin alusta laskentaprosessin loppuun liukuhihnoitetussa järjes- v : telmässä. Kriittisen polun pituus kuvaa aikaa jonka laskentaoperaation ·: *: suorittaminen kestää. Kriittisen polun analyysiä käyttämällä on mahdol- lista löytää sellaisia järjestelmän osia, jotka vaikuttavat kriittisen polun 25 pituuteen. Kun tällaisia polkuja löydetään, ne voidaan analysoida, jotta voitaisiin selvittää onko mitään mahdollisuuksia lyhentää tällaisten osien pituutta. Vastaavasti, tavallisesti ei ole tarpeellista tai käyttö-kelpoista pyrkiä lyhentämään sellaisia osia jotka eivät kuulu kriittiseen ’"** polkuun.
:*··· 30 :***: Jotta voitaisiin alustaa (KxP) -matriisi vektoriin -kertolasku, nyt esillä .·!·. olevan keksinnön edullisen suoritusmuodon mukainen rakenne konfigu- roidaan asettamalla sopivia arvoja ohjaussignaalille seuraavalla tavalla. Muisti 21 asetetaan toimimaan modP -tilan mukaisesti ja muistin 35 rekisterit P - R pysäytetään. Arkkitehtuurin pakkausmatriisi 4 asete- 118654 31 taan toimimaan laskurina asettamalla viides ohjaussignaali c5 korkeaksi. Kuudes ohjaussignaali c6 asetetaan matalaksi alussa kun muodostetaan mahdollisia osittaistuloja jokaiselle komponentille xj , j = ι,.,.,Ρ , P toimintavaiheen t = p+i,...,p + P aikana, missä p vai- 5 hetta on ensimmäisen liukuhihnavaiheen viive, joka vastaa siinä olevien summainmatriisien määrää. Näiden toimintavaiheiden aikana komponentin xj , j — ι,.,.,Ρ mahdolliset osittaistulot välitetään suoraan ensimmäisen liukuhihnavaiheen P1 summainmatriiseista 2 multiplekserin 22 kautta toisen liukuhihnavaiheen P2 useisiin valintalohkoihin 3, ja 10 samaan aikaa ne kirjoitetaan muistiin 21. Näin ollen matriisin A ensimmäisen rivin kertolasku sisääntulovektorilla x toteutetaan ja olennaisesti samanaikaisesti jokaisen komponentin xj , j = i,...,P mahdolliset osittaistulot tallennetaan peräkkäisiin rekistereihin. Toimintavaiheen p+p jälkeen ohjaussignaali c6 asetetaan korkeaksi niin, että muisti 21 15 on suljettu kirjoittamista varten ja mahdolliset osittaistulot xj :lle, j = ι,.,.,Ρ , noudetaan kierretysti useiden valintalohkojen 3 sisääntuloon muistista 21 2:1-multiplekserin toisen sisääntulon läpi. Myös viides ohjaussignaali c5 asetetaan matalaksi yhdelle vaiheelle, jotta voitaisiin aloittaa uudelleen uusi yhteenlasku. Tämä toistetaan k-i kertaa kun-20 nes kaikki matriisin A rivit on kerrottu sisääntulovektorilla x . Toiminta- : V vaiheesta p + P alkaen kaikki summainmatriisit 2 (ensimmäinen • · mukaan luettuna) joko pysäytetään tai vaihdetaan toiseen tehtävään. Näin ollen ainoastaan p pk :sta kertolaskusta toteutetaan kokonaan, kun P(K-1) niistä toteutetaan osittain, ilman ensimmäistä, kaikkein 25 monimutkaisinta vaihetta. Samalla tavoin kuin skalaari-vektoriin -ker-.···. tolaskuoperaation tapaus tämä johtaa merkittäviin ajan ja tehon/energian kulutuksen säästöihin.
• ·
Seuraavassa tarkastellaan tarkemmin nyt esillä olevan keksinnön • · 1 **:1' 30 mukaisen rakenteen konvoluution tai FIR-suodatuksen toteutusta. Suo- ;1·.· ritettavan operaatio on *· p **:·1 si = ,Zajxi-j> i=l.-..,A· * · · /—1 • · · 1 · 118654 32 jossa yleensä P«K. FIR-suodatuksen toteuttamiseksi nyt esillä olevan keksinnön mukaiselle rakenteelle matriisi-vektori -aritmetiikkaan on kaki mahdollista strategiaa.
5 Ensimmäisessä strategiassa FIR-suodatusta tarkastellaan P-diagonaa- lisen (tai P-sidotun) matriisin A kertolaskuna sisääntulovektorilla, johon on liitetty P komponentteja = -P +1.....0 jotka vastaavat negatiivisia indeksejä ja siirretään P bittiä alaspäin. Kun ottaa huomioon, että matriisi a on hajanainen (sillä on ei-nolla-tuloja vain P-diagonaaleissa), 10 edellä mainittua yleistä strategiaa matriisi-vektori -kertolaskulle muunnetaan hieman FIR-suodatuksen tapausta varten. Matriisi a :n / :s rivi, i = ι,.,.,κ käsittää vain P ei-nolla tuloa, suodatinkertoimet aj , j = l , sarakkeissa /,/ + i,...,/+/>-i . Tässä suoritusmuodossa mahdollisia osittaistuloja ei tallenneta muistiin samanaikaisesti kaikkien sisääntulo-15 vektorin komponenttien osalta, vaan ainoastaan P komponenttien mahdolliset osittaistulot tallennetaan samanaikaisesti. Joka P:ssä toimintavaiheessa lasketaan uusi joukko mahdollisia osittaistuloja senhetkiselle tulonäytteelle useissa summainmatriiseissa, ja se korvaa joukon mahdollisia osittaistuloja, joka on tallennettu muistiin P operaatio-20 vaihetta aiemmin. Tämä saavutetaan asettamalla kuudes ohjaus-signaali c6 matalaksi jokaisessa P toimintavaiheessa. Näin ollen useita summainmatriiseja 2 ei voi kokonaan pysäyttää, mutta ne voivat toimia P kertaa hitaammin kuin toteutuksessa, jossa ei tallenneta mahdollisia osittaistuloja. Vain P+K PK:sta kertolaskusta toteutetaan kokonaan, kun . . 25 muut toteutetaan vain osittain.
• · · • ·· • · • · · i · *···’ Toisessa strategiassa FIR-suodatuksen toteuttamiseksi mahdolliset osittaistulot P suodatinkertoimille tallennetaan muistiin 21 laskettaessa ensimmäistä lähtönäytettä. Nämä mahdolliset osittaistulot noudetaan 30 sitten kierretysti muistista 21 kun lasketaan muita K-1 lähtönäytteitä. Tämä tarkoittaa, että vain P PK:sta kertolaskusta on kokonaan toteu- • » *.···. tettu, kun muut on toteutettu vain osittain. Kaikki summainmatriisit 2 • · *:] voidaan pysäyttää vai vaihtaa toiseen tehtävään heti kun mahdolliset osittaistulot suodatinkertoimille on tallennettu muistiin 21. Näin ollen **·*’*: 35 toinen strategia on vielä edullisempi kuin ensimmäinen. Tämä strategia on kuitenkin mahdollinen vain jos ensimmäisen liukuhihnavaiheen P1 118654 33 summain/vähentäjät 2 ovat tarpeeksi tarkkoja laskemaan mahdollisia osittaistuloja suodatinkertoimille.
Monitoiminnalliset arkkitehtuurit videon/kuvan käsittelylle 5 Nyt esillä olevan keksinnön rakenne voidaan edullisesti toteuttaa monitoiminnallisena arkkitehtuurina videon/kuvan käsittelylle (MAVIP). Kuva 11 kuvaa nyt esillä olevan keksinnön mukaisen videonkäsittely-rakenteen yhtä edullista suoritusmuotoa. Rakenne perustuu edellä kuvattuihin suoritusmuotoihin ja se käyttää hyväkseen niin sanottua 10 erotusten itseisarvojen summa (Sum of Absolute Differences, SAD) -arkkitehtuuria 24. SAD-arkkitehtuurin yleinen rakenne kuvataan kuvassa 4a. Se koostuu useista niin sanotun erotus-etumerkki (Difference-Sign, DS) -yksikön 25 p-matriiseista, jotka toimivat aika-lomitetusta, pakkausmatriisista 4, jossa on takaisinkytkentä, sekä lopul-15 lisesta summaimesta 5, jota seuraa minimiarvioijayksikkö (M) 26, jota tarvitaan liikkeen arviointiprosessissa (perustuu SAD:hen), mutta jota ei tarvita itse SAD-laskentaan. DS-yksiköiden 25 jokainen matriisi (lyhyemmin DS-matriisi tai DSA) koostuu s DS-yksiköstä 27 (kuva 4b), joista jokainen on oleellisesti 8-bittinen vähentäjä, jota seuraavat XOR-portit 20 28 etumerkkibitin ja muiden erotusbittien välillä. Sisääntulo pakkaus- : *·*’ matriisiin muodostetaan s /-bittisistä numeroista (etumerkkidata), s n- \v bittisistä numeroista (erotusdata, useimmiten n=8), ja kahdesta \!*! (n+logK-/)-bittisestä takaisinkytkennästä (useimmiten K-256). Lopulli- *:*·': sella summaimella voi olla (n+logK)-bittinen tarkkuus. Esimerkki SAD- 25 arkkitehtuurista, joka koostuu kahdeksasta DS-yksiköstä (vähentäjät) ja .*·*: vastaa tapausta p=1, s=8, n-8, ja K=256, esitetään kuvassa 5.
· · ... Vertaamalla kuvan 4a SAD-rakennetta kertojaan perustuviin rakentei- "."t siin kuvissa 6 tai 8 ja erityisesti kuvan 5 esimerkkiä kuvien 7 tai 9 *T* 30 rakenteisiin voidaan huomata, että näiden kahden tyyppisten rakentei- :***· den välillä on merkittäviä yhtäläisyyksiä. Molemmat näistä rakenne- tyypeistä koostuvat oleellisesti lohkosta, joka sisältää useita sum-/:·. maimia tai vähentäjiä 4, 27 (joita seuraavat XOR-portit SAD:n tapauk- sessa), datanreitityslohkosta, joka on valintalohko 3 kertojaan perustu-35 vien rakenteiden tapauksessa ja suorat yhteydet SAD:n tapauksessa, ja summauslohkosta, joka koostuu summainmatriisista 4 ja lopullisesta 118654 34 summaimesta 5. Tätä samankaltaisuutta voidaan käyttää näiden kahdentyyppisten rakenteiden yhtenäistämiseksi ja niiden yhdistämiseksi uudelleenkonfiguroitavaan arkkitehtuuriin jonka voi konfiguroida kumpaan tahansa näistä kahdesta rakenteesta käyttämällä joitakin ohjaus-5 signaaleja. Tällä tavoin voidaan saavuttaa lisää arkkitehtuurin moni-toiminnallisuutta muutaman signaalin ohjaaman yksinkertaisen logiikan minimikustannuksilla.
On olemassa useita vaihtoehtoja SAD-rakenteen yhdistämiseksi kerto-10 jaan perustuvien rakenteiden kanssa. Kuva 11 esittää yhden näistä videon/kuvan käsittelyn monitoiminnallisen arkkitehtuurin yleisen rakenteen vaihtoehdoista. Tämä arkkitehtuuri on johdettu yksinkertaisin muunnoksin jokaisessa perustason kertojaan perustuvan rakenteen lohkossa. Tässä tapauksessa perusrakenne on kuvan 8 matriisi-vektori 15 -aritmetiikan arkkitehtuuri. Kuva 13 esittää esimerkkitoteutuksen videon/kuvan käsittelyn monitoiminnallisesta arkkitehtuurista, joka on johdettu kuva 9 matriisi-vektori -aritmetiikan arkkitehtuurista.
Yhdessä toteutuksessa videon/kuvan käsittelyn monitoiminnallinen ark-20 kitehtuuri sisältää summainmatriiseja 2, jota ensimmäisestä ohjaus-signaalista q ja viidennestä ohjaussignaalista c5 riippuen voidaan !·.·, konfiguroida joko summain/vähentäjiin tai DS-yksiköihin, ja näin ollen ne merkitään AA/DSA. AA/DSA-yksikön mahdollinen toteutus yleista-pauksessa on esitetty kaavallisesti kuvassa 12a. Esimerkki kokonai-*, ' 25 sesta matriisista AA/DSA-yksiköitä tapaukselle, jossa m-16, n=2 esite- *;*//· tään kuvassa 12b. Jokainen matriisin m-bittinen summain/vähentäjä !...: koostuu r peräkkäisestä (m/rj-bittisestä summaimesta/vähentäjästä, jota seuraavat XOR-portit. XOR-portit ovat aktiivisia vain tapauksessa •y cjc5 =1 , eli tapauksessa (chc5)=(1,0), jolloin arkkitehtuuri toimii SAD- 30 arkkitehtuurina. Toisaalta muistibitin lisääntyminen r peräkkäisen (m/r)-..·* bittisen summaimen/vähentäjän välillä tarjotaan vain jos c5 = o . Ensim- • t mäisen ohjaussignaalin c1 ja viidennen ohjaussignaalin c5 yhdistel- • · **:** mää käytetään myös ohjaamaan sitä menevätkö eri sisääntulot :T: (cjc5=0 ) (yhteenlaskettavat tai SAD-operandit) vai yksi sisääntulo ...·: 35 {cjc5=l ) (kerrottava) matriisiin. Sitä toteutetaanko summaus tai vähennys ohjaa signaali ο·,η, joka riippuu kertolaskumenetelmästä ja tar- 118654 35 kastellun m-bittisen summain/vähentäjän asemasta AA/DSA-yksikössä. Esimerkiksi ei-uudelleenkoodatussa kantaluku-8 -kertolaskumenetel-mässä, jossa m=16, n=2, cln annetaan joko cin=cs:nä tai cin=clc5cs :nä riippuen summaimen asemasta (katso kuva 12b), jossa cs=0 tarkoittaa 5 summauksia ja cs=0 tarkoittaa vähennyksiä, toteutetaan tapauksissa Ci=0. Näin ollen riippuen ohjaussignaaleista c, ja c5 AA/DSA-yksikkö voidaan konfiguroida toimimaan eri tiloissa seuraavalla tavalla.
(cues) AA/DSA:n toimintatila Sisääntulo Lähtö__Kohdekäyttö (0,0) rs rinnakkaista (m/ή- rs (m/ή- rs (m/r+1)- Rinnakkai- bittistä summausta/ bittistä paria bittistä nen sum- vähennystä (x/,y,), summaa main/ ______\=1,...,r c/=x(+y/, vähentäjä (0,1) s rinnakkaista m)- rs (m/ή- rs(m/r+1)- bittistä summausta/ bittistä paria bittistä vähennystä (x/,y,), erotusta ___Ci=Xj-yi,__ (1.0) rs(m/r)-bittistä rs (m/ή- rs(m/r)~ SAD-arkki- rinnakkaista vähen- bittistä paria bittistä ero- tehtuurin en- nystä, sitten XOR:t (x/,y/), tusdataa, ja simmäinen Γ·*: i=1,...,r rs f-bittistä vaihe (useita ·*·’: dataa DS-yksiköitä) • · ^""^ “
(1.1) s summausta tai Yksi (m-t)- sm-bittistä Kantaluku-T
vähennystä kanta- bittinen ker- osittaistuloa kertojan en- ,·, · luku-T:n kertolasku- rottavax jarsf-bit- simmäinen • *· t*../ _algoritmin mukaisesti (HogT) tistä nollaa vaihe (AA) • • · · 10 Kuvan 11 MAVIP:n käsitellyssä suoritusmuodossa on datanreitityslohko .»·' AA/DSA-yksiköiden lohkon ja pakkausmatriisien lohkon välissä, jota ohjataan nyt samoilla signaaleilla c1 ja c5 kuin AA/DSA-yksiköitä. Kel- :·! losignaali (ei näytetty) valintalohkoihin on yhdistetty signaaliin c1 JA- portin kautta siten, että valintalohko pysäytetään kun cj = 0 . Arkki- * · *·* 15 tehtuuri toimii tässä tapauksessa rinnakkaisena matriisina sum- ‘• j*: maimia/vähentäjiä. Riippuen ohjaussignaalista c5 datanreitityslohko • joko konfiguroidaan suoriin yhteyksiin, kuten SAD-arkkitehtuurissa Gos c5 =0 ), lähettäen suoraan r (m/rj-bittistä erotusdataa ja r 1-bittistä 118654 36 dataa pakkausmatriisien lohkoon AA/DSA-yksiköiden lähdöistä, tai se toimii perustason valintalohkona vastaavassa kertojarakenteessa (jos C5 = 7 ) lähettäen s m-bittisiä osittaistuloja pakkausmatriisien lohkoon joko AA/DSA-yksiköiden lohkosta tai muistista. Tämä saadaan aikaa 5 sijoittamalla datan yhdistäjä/multiplekseri -lohko 23, joka valitsee dataa vastaavasta linjasta. Datan yhdistäjä/multiplekseri -lohko 23 valitsee AA/DSA-yksiköiden lohkon lähdön jos c5 = 0 tai valintalohkon lähdön jos £5= 7 ja muuttaa datatyypin sopivaksi pakkausmatriisiin 4. Esimerkiksi kuvan 13 esimerkissä sisääntulo pakkausmatriisiin koostuu 10 kahdesta ryhmästä, joissa kummassa on viisi 25—bittistä numeroa ja kaksi 37—bittistä takaisinkytkentäpiiriä. Kummankin ryhmän sisääntulojen joukko vastaa osittaistulojen joukkoa kertolaskumenetelmässä siirtojen jälkeen. Näin ollen yhdistäjä/kertoja -lohko 23 ei tee mitään osittaistulojen konversioita, vaan ainoastaan toteuttaa vastaavat siirrot ja 15 lähettää kaksi joukkoa osittaistuloja pakkausmatriisien lohkoon jos c5=l . Kuitenkin kun SAD:tä toteutetaan (c5=0 ) yhdistäjä/kertoja - lohko 23 muuttaa kahdeksan 8—bittistä ja kahdeksan -/-bittistä erotusta ja etumerkkidataa ennen kun lähettää sen pakkausmatriisien lohkoon. Kahdeksan 1-bittisiä dataa pakataan kahteen 2-bittiseen numeroon :v< 20 pienessä pakkausmatriisissa ja sitten niitä täydennetään nollilla (MSB- puolella) jotta niistä tulee 25-bittisiä numeroita. Myös kahdeksan 8-bit-*;];* tistä numeroa täydennetään nollilla, jotta niistä tulee 25-bittisiä nume- : raita. Tulokseksi saatavat kymmenen 25—bittistä numeroa ryhmitellään sitten viiden numeron ryhmiin.
25
Muutoksia summauslohkoihin 4 kuvan 11 arkkitehtuurissa verrattuna ··♦ kuvan 8 matriisi-vektori -aritmetiikan arkkitehtuuriin tarvitaan, jotta siitä ... saataisiin konfiguroitava riippuen signaaleista cj ja c5 . Ensiksi sum- mauslohko 4 pysäytetään jos (cj,c2)= (0,7) niin että arkkitehtuuri toimii • · " 30 rinnakkaisena summain/vähentäjänä tässä tapauksessa. Kuitenkin jos j**·· (cj,c2)=(o,o) , summauslohko 4 toimii laskurina, joka saa dataa suo- raan sisääntuloväylästä 6 niin, että arkkitehtuuri on itse asiassa jaettu kahteen osaan, joista ensimmäinen osa toimii rinnakkaisena sum- main/vähentäjämatriisina ja toinen osa toimii laskurina. Jos 35 (<cj,c2)~(l,l) ja c5 = 0 , summauslohko 4 konfiguroidaan yhteen SAD- arkkitehtuurille, ja jokaisessa toimintavaiheessa se hyväksyy ja laskee 118654 37 yhteen rs (m/r)~bittistä erotusdataa ja rs 1-bittistä dataa AA/DSA-yksi- köiden lohkosta, jonka datan yhdistäjä/multiplekseri -lohko 23 on aiemmin muuttanut. Tapauksessa (c],c2)=(l,l) ja c5=l summaus- lohko 4 konfiguroidaan yhteen perustason kertojaan perustuvalle 5 rakenteelle (esim. kuvan 8 matriisi-vektori -arkkitehtuurin summaus-lohkoon), joka jokaisessa toimintavaiheessa hyväksyy s m-bittistä osit-taistuloa, ja summaa tai keräyssummaa osittaistuloja, joilla on oikeita siirtoja, jotka on toteutettu datan yhdistäjä/multiplekseri -lohkossa. Tällaisen uudelleenkonfiguroitavan summauslohkon suunnittelemiseksi 10 on useita tapoja. Kuvan 13 esimerkki käyttää kahta summauslohkoa (pakkausmatriisia) joita seuraa kolmas summauslohko (lopullinen summain), kuten kuvan 9 esimerkissä.
Kuva 12b esittelee esimerkin uudelleenkonfiguroitavasta summainten-15 tai DS-yksiköiden lohkosta, joka vastaa 8 8-bittisen tai 4 16-bittisen summaimen tapausta. Tämä lohko toteuttaa eri toimintoja riippuen taulukon 2 osoittamasta kolmesta ohjaussignaalista c1t c5l ja cs.
__ Taulukko 2 ;v> (ci,c5Cs) Lohkon Sisääntulo Lähtö Kohde- *. ;* toimintatila käyttö • · · ' .........-........ -....... - (0,0,0) 8 rinnakkaista 8 S-bittistä paria 8 9-bittistä Rinnakkai- * · · *· ] 8-bittistä (x/,y/), jossa x,· ja summaa/ erotusta nen sum- _summausta y, summaimelle c,=x,+y/xry, jossa 8 main/ (0,0,1) 8 rinnakkaista /=7,...,8 otetaan summa/ erotus Eri- 8-bittistä sisääntulo- bittiä muodostetaan tarkkuuksi- vähennystä linjoista A(8(i- lähtölinjoissa 2i-1 ja nen vä- ··· 1):8i-1) ja B(8(i- etumerkkibitit hentäjä .**·. 1):8i-1), tässä muodostetaan __järjestyksessä lähtölinjoissa 2/.
(0,1,0) 4 rinnakkaista 4 16-bittistä 4 77-bittistä 76-bittistä paria (χ,-y,), summaa/erotusta :*·*: summausta jossa x, and y, , C/=x,+y/, jossa 16 • I * _ I_I_ • « 118654 38 (0,1,1) 4 rinnakkaista i=1,...,4 mene- summa/erotus bitin / 6-bittistä vät sisään 4 ryhmää jokainen erotusta summainten 2i- muodostetaan 1 ja 2i parin yhdistetyissä sisääntulo- lähtölinjoissa (1,3), linjoista A(16(i- (5,7), (9,11), ja 1):16i-1) ja (13,15). Näitä B(16(i-1):16i-1), yhdistettyjä linjoja tässä järjestyk- vastaavat etu-sessä. merkkibitit muo dostetaan lähtö-linjoissa 4, 8, 12 ja 16, tässä järjestyk- _____Isessä. _ (1,0,0)__Tämä ei ole käypä ohjaussignaalien yhdistelmä._ (1,0,1) 8 rinnakkaista 8 8-bittistä paria 8 8-bittistä erotus- SAD-arkki- 8-bittistä DS- (x/,y/), joissa x, dataa linjoilla 2/-7 ja tehtuurin operaatiota ja y,· sum- 8 7-bittistä etu- ensimmäi- (erotukset joita maimelle merkkidataa linjoilla nen vaihe seuraavat i=1,...,8 otetaan 2i, i=1,...,8. (useita DS- • · XOR:t) sisääntulo- yksiköitä) linjoista A(8(i- ; 1):8i-1) ja B(8(i- " ' 1):8i-1), tässä • · \*·:__{järjestyksessä __ ··· 1(1,1,0) _Tämä ei ole käypä ohjaussignaalien yhdistelmä._ ··# ♦ ··♦· • · · • * • · • · · »· • ♦ • · · ··· « · • · • ♦ · ··· • « · • · « • · 118654 39 (1,1,1) 2 76-bittistä Rekisterin vakio 4 16-bittistä osit- Kantaluku- summausta ja C(16), joka on taistuloa (joilla on 8:n ei-2 7β-bittistä yhteydessä 2 8- 15-bittiset arvot), uudelleen- erotusta bittiseen JA- Yhdistetyt linjat koodatun porttiin ja 16- (1,3) sisältävät kertojan bittinen kerrot- C(16)-x, linjat (5,7) ensimmäi- tava x (etu- sisältävät 3x, linjat nen vaihe merkki 73-bitti- (9,11) sisältävät 5x, (AA), sestä arvosta) ja linjat (13,15) jonka oletetaan sisältävät 7x. olevan saatavilla 0,...,15 väylän A bitti- __[linjoilla. __
Alla kuvataan datapolut, jotka vastaavat jokaista käypää ohjaussignaalien yhdistelmää.
5 Ensiksi selitetään multipleksereiden toiminta. Multipleksereiden M1 .. . tiloja sisääntulosalpojen sisääntuloilla ohjataan niin, että jos ohjaus- sisääntulo (eli οήο5) on korkea, multiplekseri ohittaa ensimmäisen sisääntulon (kuvan 12b ylempi sisääntulo) sen lähtöön. Vastaavasti jos :·: j ohjaussisääntulo on matala, multiplekseri ohittaa toisen sisääntulon 10 (kuvan 12b matalampi sisääntulo) sen lähtöön. Multipleksereiden M2 * · :. i toimintatiloja summainten välillä ohjataan niin, että jos ohjaussisääntulo (eli c5) on korkea, multiplekseri ohittaa ensimmäisen sisääntulon (kuvan 12b oikeanpuoleisin sisääntulo) sen lähtöön. Vastaavasti jos ohjaus- ··· sisääntulo on matala, multiplekseri ohittaa toisen sisääntulon (kuvan ···* .*··. 15 12b vasemmanpuoleisin sisääntulo) sen lähtöön.
··· ·· i " Ensimmäisessä kahdessa tapauksessa ογ,ο5,οδ=0,0,0 ja chc5,cs-0,0,1 lohko toimii rinnakkaisena 8 Ö-bittisen summain/vähentäjän matriisina, koska c5=0 viittaa siihen, että siirtobittitulo jokaiseen summaimeen 20 (mukaan luettuna jopa numeroidut) on signaali cs, eli muistibitin lisääntymistä ei ole 8-bittisten summainparien välillä, mistä riippuen toteutetaan joko summauksia tai vähennyksiä. Koska CiC5=0, siirtobittitulo 118654 40 jokaiseen 8-bittiseen summaimeen (mukaan luettuna jopa numeroidut ja ne, joissa siirtobittitulo on ) on signaali cs, (^7^=^ ). Näin ollen se, toteutetaanko summauksia vai vähennyksiä määritetään signaalilla cs, joka ei ole ainoastaan siirtobittitulo jokaiseen summaimeen, 5 vaan myös toinen sisääntulo XOR-portteihin summaimien sisääntuloissa (sisääntulo invertoidaan jos cs=1). Koska c5=0, ja näin ollen οήο5=0, multiplekserit liukuhihnasalpojen sisääntuloissa (pienen tyhjät suorakulmiot kuvassa 12b) ohittavat ylemmät sisääntulot näihin salpoihin. Ja multipleksereiden ylemmät sisääntulot on yhdistetty väylien A ja 10 B sisääntulolinjoihin siten, että 8 8-bittistä paria muodostuu taulukon 2 mukaisesti. Tulee myös huomata, että XOR-portit summaimien lähdöissä eivät nyt ole toiminnassa, koska 0-,=0, ja näin ollen XOR:n toinen sisääntulo ei vaikuta sen lähtöön.
15 Tapauksissa, joissa c^c5,cs=0,1,0 ja 0^05,03=0,1,1, lohko toimii 4 16-bittisen summain/vähentäjien rinnakkalsmatrilsina, koska c5=1 viittaa siihen, että siirtobittilähdöt parittomasti numeroiduista summaimista lisääntyvät parillisesti numeroitujen summaimien siirtobittituloihin. Se toteutetaanko summauksia vai vähennyksiä määritellään taas signaa-.. . 20 lilla cs. Koska jälleen 0,05=0, multiplekserit liukuhihnasalpojen R
sisääntuloissa (pienet tyhjät suorakulmiot kuvassa 12b) ohittavat ylem- · *;];* mät sisääntulot näihin salpoihin, mikä vastaa taulukon 2 sisääntulo- v : kaaviota. XOR-portit lähdössä eivät taaskaan ole toiminnassa.
• · 25 Tapauksessa 0-1,05,03=1,0,1 lohko toimii 8 DS-yksikön (Difference Sign, erotus-etumerkki) rinnakkaismatriisina. Sisääntulokaavio ja muistibitin lisääntymiskaavio ovat aivan samoja kuin tapauksessa 1, mutta koska cs=1, ainoastaan vähennyksiä toteutetaan. Lisäksi koska nyt (ja vain nyt) qc5 =1 , XOR-portit lähdössä ovat aktiivisia. Tämä tarkoittaa, että • · *" 30 erotusbitit (muodostettu 8-bittisillä linjoilla) invertoidaan jos vastaavan :8-bittisen summaimen siirtobittilähtö on korkea (eli jos ylempi sisääntulo !...: summaimeen on pienempi kun alempi).
«·· • · · • » ·
Tapauksessa 0-,,05,03=1,1,1 lohko toimii kantaluku-8:n ei-uudelleen- 35 koodatun kertojan ensimmäisen kerroksen 4:nä 76-bittisenä sum-maimena/vähentäjänä: c5=1 saa 8-bittisten summaimien parin toimi- • · 118654 41 maan 16-bittisenä summain/vähentäjänä. Summainparit (1,2) ja (7,8) toimivat 16-bittisinä vähentäjinä (koska cs=1), ja summainparit (3,4) ja (5,6) toimivat 16-bittisinä summaimina (koska qqq. =o ). Myös koska nyt Qa vain nyt) c-,c5=1, multiplekserit sisääntulossa ohittavat niiden 5 alemmat sisääntulot liukuhihnasalpoihin. Summainparista (1,2) muodostettu vähentäjä saa vakion C(16) (tallennettu rekisteriin) ensimmäisessä sisääntulossaan, ja 16-bittisen kerrottavan x (etumerkki 13-bitti-sestä arvosta) toisessa sisääntulossaan. Kerrottavan x oletetaan olevan käytettävissä väylän AO, 15 bittilinjoilla. Parin (3,4) summain 10 saa 2x (siirretty x) ensimmäiseen sisääntuloonsa ja x toiseen sisääntuloonsa. Summainpari (5,6) saa 4x ja x ensimmäiseen ja toiseen sisääntuloonsa, tässä järjestyksessä. Lopuksi, parin (7,8) vähentäjä saa 8x ja x ensimmäiseen ja toiseen sisääntuloonsa, tässä järjestyksessä. Tulee myös mainita, että XOR-portit summaimien lähdöissä 15 eivät ole toiminnassa tässä tapauksessa.
Kuva 13 esittelee edullisen suoritusmuodon monitoiminnallisesta arkkitehtuurista videon/kuvan käsittelyyn, joka on johdettu kuvan 9 matriisi-vektori -aritmetiikan arkkitehtuurista (n=m=13)~bittisen kerrottavan ja ;Vt 20 kertojan tapaukselle. Tämän toteutuksen arkkitehtuuri koostuu uudel-leenkonfiguroitavasta kahdeksan 8-bittisen ja neljän 76-bittisen sum- • · · main/vähentäjän 2 matriisista (katso kuva 12b), muistiyksiköstä 21 :·: j summain/vähentäjien 2 tulosten tallentamiseksi, konfiguroitavasta datanreitityslohkosta 3, summauslohkosta 4, joka voi toimia myös kah-*·!*·! 25 tena erillisenä summaus/yhteenlasku -lohkona, ja lähtömultiplekseristä 20, joka valitsee oikean lähdön. Arkkitehtuuria ohjaa seitsemän ohjaussignaalia ch...,c7 . Arkkitehtuurin kellosignaali (ei näytetty) yhdis-tetään signaalien c7 ja c2 kanssa JA-porttien kautta arkkitehtuurin joi- !·*·. denkin lohkojen pysäyttämiseksi riippuen toteutetusta operaatiosta.
30 Esimerkiksi ainoastaan summainten/vähentäjien matriisi ja lähtö- : *·· multiplekseri ovat toiminnallisia kun (cy,c2)= (<0,1). Tässä tapauksessa ··· arkkitehtuuri yksinkertaisesti toimii rinnakkaisena matriisina sum-.·*·. maimia/vähentäjiä. Kun cj=l kaikki lohkot ovat toiminnallisia, mutta datanreitityslohko konfiguroidaan joko ohjaamaan yhteyksiä SAD- 35 toteutukseen tai kertojaan perustuvan rakenteen datanreitityslohkoon riippuen siitä, onko c5 -0 vai c5 =1 , tässä järjestyksessä. Myös pak- 118654 42 kausmatriisin eri osat toimivat riippuen c5 :stä Tällä tavoin arkkitehtuuri konfiguroidaan joko SAD-arkkitehtuuriin (jos Cj~j ja c5=0 ) tai kertojaan perustuvaan rakenteeseen (jos c1 = 1 ja c5 -1 ) riippuen signaalista c5 . Puolestaan kun cj=c5=l kertojaan perustuva 5 rakenne uudelleenkonfiguroidaan joko yhteen sen mahdollisista konfi-guroinneista riippuen signaaleista c3,...,c7 samalla tavoin kuin aiemmin tässä kuvauksessa pohdittiin. Lisäksi summauslohko voidaan konfiguroida kahteen erilliseen lohkoon (jos c6=1), jotka tarjoavat mahdollisuuden toteuttaa kertolaskujen pari yhdellä kertaa tai yhteen lohkoon 10 (jos c6=0) jotta voidaan laskea nopeammin yhteen suurempi määrä osittaistuloja.
Taulukko 3 listaa joitakin operaatioita joita voidaan toteuttaa kuvan 13 MAVIP:n esimerkkitoteutuksessa ohjaussignaalien cj,...,c7 vastaavan 15 valinnan ohella.
Taulukko 3. _
Operaatio Ohjaussignaalit __Cj C2 C3 C5 Cg C7
Rinnakkaisia S-bittisiä summauksia/ 0 x x x 0 1 1 * Vähennyksiä • · · ,—- * ---- · *:!:* sad 1 x x x o o 1 • · · ........... — ............. · **’ ] 13-bittisten kertolaskujen pari_1x00110 \ [ (kx1) - (1xk) 13-bittinen vektori-vektoriin - 1 0 0 1 1 0 1 :;]*ΐ sisäinen tulo (ei muistia käytössä) O (k<65)__ (kx1) - (1xk) 13-bittinen vektori-vektoriin - 1 1 1 1 1 0 0 sisäinen tulo (k<65)_(muisti käytössä)_ :]]]: (pxk) - (kx1) 13 bittinen matriisi-vektori tulo 1 c2 c3 1 1 0 0 (k<65) c2=c3=0 ensimmäiset (k/2) sykliä ja c2-c3=1 '*:** _sen jälkeen_ v’! p-pituisen signaalin /r-tappi FIR suodatus. 1 c2 c3 1 1 0 0 *:·*: c2-c3=0 ensimmäiset (k/2) sykliä ja c2-c3-1 _sen jälkeen_ 118654 43
Yllä kuvattujen suoritusmuotojen toteuttamiseksi on olemassa monia vaihtoehtoja, koska on mahdollista käyttää erityyppisten kertoja/MAC-yksikkörakenteiden useita erilaisia laajennuksia. Lisäksi suunnittelu-5 parametrien erilaiset valinnat jokaisessa rakenteessa johtavat eri vaihtoehtoihin.
Nyt esillä olevan keksinnön edullisia suoritusmuotoja sovelletaan esimerkiksi itsenäisinä (tiukasti tai löyhästi kytkettyinä) laitteina. Keksinnön 10 vaihtoehtoinen toteutus voi olla toiminnallinen yksikkö järjestelmän prosessorissa. Tällainen järjestely voi korvata kertolaskuyksikön prosessorissa. Useita vaihtoehtoja tämän toteuttamiseksi on edelleen olemassa. Yksi niistä voi olla toteutus, jossa prosessorin toiminnallisena yksikkönä käytetään vain osaa yhdestä eri suoritusmuodoista, lukuun ottamatta 15 useita summainmatriiseja (ensimmäinen liukuhihnavaihe P1) ja lukuun ottamatta muistia 21. Prosessorin summaimet/vähentäjät toimivat sitten useina summainmatriiseina samalla kun rekisterit toimivat muistina, jota käytetään matriisi-vektorioperaatioiden rakenteessa.
:*·*: 20 Esimerkiksi Texas Instruments TMS320C64x DSP sisältää kahdeksan • · toiminnallista yksikköä, joista kuusi voi toimia 64-bittisenä sum-maimena/vähentäjänä, joista jokainen voi toimia joko kahtena 32-bitti- i«l senä tai neljänä 16-bittisenä tai kahdeksana 8-bittisenä. Se sisältää ! ! myös 128 64-bittistä rekisteriä, joista jokaista voidaan samalla tavoin 25 käyttää joko kahtena 32-bittisenä tai neljänä 16-bittisenä tai kahdek- :···: sana 8-bittisenä. Oletetaan, että toinen toiminnallinen yksikkö (FU), joka on samankaltainen kuin kuvassa 5 mutta ilman summainmatriisia, sisällytetään prosessoriin. Sitten tätä useita valintalohkoja, useita pak- kausmatriiseja ja useita nopeita lopullisia summaimia käsittävää toimin- :·* 30 nallista yksikköä voitaisiin käyttää kertolaskuun ja kertolaskuun perus- • # · ... tuviin operaatioihin seuraavassa kahdessa syklissä (olemassa olevan TMS320C64x kertojan kertolasku vaatii myös kaksi sykliä). Ensimmäi-: sessä syklissä summaimet/vähentäjät laskevat kerrottavan x mahdolli- :**: set osittaistulot ja tallentavat tulokset rekistereihin. Seuraavassa vai- 35 heessa valitaan oikea joukko osittaistuloista ja summataan käsitellyn toiminnallisen yksikön kanssa. Sellaisissa tapauksissa, joissa kerrotta- 118654 44 vaa x käytetään uudelleen, ensimmäinen sykli voidaan toteuttaa vain kerran toteutettaessa ensimmäistä kertolaskua, jossa x on mukana, kun taas se voidaan jättää pois seuraavista kertolaskuista, joissa χ johtaa merkittäviin ajan ja tehonkulutuksen säästöihin. Lisäksi kun 5 toteutetaan FIR-suodatusta (konvoluutio) verrattain pienellä määrällä kertojia, TMS320C64x :n summain/vähentäjiä käytetään alussa vain useissa (mahdollisesti yhdessä) sykleissä mahdollisten osittaistulojen laskemiseksi suodatinkertojille ja niiden tallentamiseksi rekistereihin. Sitten loput laskennat suoritetaan toiminnallisella yksiköllä keksinnön ja 10 lataa/tallenna -yksikön mukaisesti, mikä tarjoaa mahdollisuuden käyttää summaimia/vähentäjiä muihin tarkoituksiin (tai pysäyttää ne tehon säästämiseksi). TMS320C64x:n FIR-suodatuksen tämänhetkisessä toteutuksessa kaikki toiminnalliset yksiköt, mukaan luettuna kertoja ja summaimet/vähentäjät, olisivat varattuja tämän tehtävän vuoksi.
15
Kuitenkin toinen vaihtoehto on mahdollisuus toteuttaa keksinnön edulliset rakenteet useille bittitarkkuuksille. Esimerkiksi on mahdollista toteuttaa kertojia/MAC-yksiköitä, jotka voivat suorittaa joko yhden nxm kertolaskun, kaksi (n/2)xm tai nx(m/2) kertolaskua, tai neljä ... 20 («/2)x (m/2) kertolaskua yhdessä toimintavaiheessa.
• » « • · • · • :·*’·* Kuva 14 esittää laitteen 29 nyt esillä olevan keksinnön edullisen suori- v : tusmuodon mukaisesti. Se käsittää ohjausyksikön 30 laitteen 29 ope- raatioiden ohjaamiseksi. Laite käsittää myös digitaalisen signaalin- 0·· 25 prosessorin 31 signaalinkäsittelytehtävien suorittamiseksi tai mikro- prosessorin ohjaustehtävien suorittamiseksi. Kuitenkin jotkin signaalin- käsittelytehtävistä, erityisesti videosignaalin käsittelyyn liittyvät tehtävät suoritetaan videon/kuvankäsittely-yksikössä 32 nyt esillä olevan kek- !···. sinnön edullisen suoritusmuodon mukaisesti, mikä yksikkö voi olla eril- • 30 linen yksikkö tai toteutettu digitaalisessa signaaliprosessorissa 31. : **· Laitteen käyttöliittymä 33 käsittää näyttölaitteen 34, äänilaitteen 35, φ · · näppäimistön 36 ja esim. videokameran 37. Laite 29 käsittää viestintä-välineet 38, kuten matkaviestintävälineet, viestintäverkon (ei näytetty) kanssa kommunikoimiseen ja informaation vaihtamiseen toisen tunne- 35 tun laitteen (ei näytetty) kanssa. Muistivälineitä 39 käytetään varastoi- • · 118654 45 maan erilaista dataa ja ohjelmia, kuten toimintakäskyjä ohjausyksikölle 30 ja mahdollisia osittaistuloja.
Nyt esillä oleva keksintö ei rajoitu pelkästään edellä esitettyihin suori-5 tusmuotoihin vaan sitä voidaan muunnella oheisten patenttivaatimusten puitteissa.
·· · • 1 » • · • · • · • · · « · · • · ··♦ • · « • · · · • · • · · • 1· • « *·# • · • · ·«· ··· ···1 φ · · • · • · · · ·1 • · • ·· ··· • · « ··· • · · · * · · • · ·

Claims (28)

118654 46
1. Menetelmä kertolaskuoperaatioiden suorittamiseksi käyttäen liukuhihnoitettua kertolaskulaitetta, joka käsittää ainakin kahden 5 liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi tulotietoliitäntä datan syöttämiseksi ja ainakin yksi lähtotietoliitäntä datan lähtöä varten, jossa menetelmässä data kertolaskuoperaatioiden suorittamiseksi syötetään laitteeseen, tunnettu siitä, että selektiivistä datankäsittelyä suoritetaan 10 kertolaskulaitteessa, jossa ainakin yhden mainitun tulotietoliitännän ja ainakin yhden lähtötietoliitännän välillä suoritetaan valinta ainakin yhden tulotietoliitännän yhdistämiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi mainitun ainakin yhden tulotietoliitännän ja mainitun ainakin yhden lähtötietoliitännän välillä ja 15 datan käsittelemiseksi mainitun valinnan mukaisesti.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että tutkitaan sitä, mihin liukuhihnavaiheeseen tulotiedot on tarkoitettu, jolloin valinta tehdään mainitun tutkimisen perusteella laitteen tulotietojen * · ; 20 yhdistämiseksi tarkoitetun liukuhihnavaiheen dataliitäntään. • · t • t
··· · · '·' \ 3. Patenttivaatimuksen 1 tai 2 mukainen menetelmä, tunnettu siitä, *ί": että yksi mainituista dataliitännöistä käsittää kertolaskulaitteen lähdön, ja että yhden liukuhihnavaiheen kertolaskutulos valitaan tarjottavaksi O 25 lähtönä kertolaskulaitteesta, jossa mainitun yhden liukuhihnavaiheen lähtö on yhteydessä mainittuun yhteen kertolaskulaitteen dataliitäntään, ·:· joka käsittää mainitun kertolaskulaitteen lähdön. ···· • · · • a • ·
4. Patenttivaatimuksen 1, 2, tai 3 mukainen menetelmä, tunnettu siitä, 30 että mainitut kertolaskuoperaatiot suoritetaan ainakin kahdessa liuku-Σ·..: hihnavaiheessa (P1,..., P4), jossa mainitut kertolaskuoperaatiot on ·*·*: jaettu ainakin kahteen osaoperaatioon, ja että ainakin kaksi osaoperaatiota suoritetaan eri liukuhihnavaiheissa.
5. Patenttivaatimuksen 4 mukainen menetelmä, tunnettu siitä, että kertolaskuoperaatiot suoritetaan ainakin osittain aikalomitetusti 118654 47 jakamalla ainakin yksi osaoperaatio osittaisiin osaoperaatioihin, ja aloittamalla jokainen osittainen osaoperaatio eri aikaan.
6. Patenttivaatimuksen 3 mukainen menetelmä, tunnettu siitä, että 5 sisääntulo liukuhihnavaiheeseen (P1, P2, P3, P4) valitaan ainakin ensimmäisestä dataliitännästä ja toisesta dataliitännästä, joka ensimmäinen dataliitäntä on dataliitäntä kyseessä olevaan liukuhihnavaihetta edeltävän liukuhihnavaiheen datan lähtöön ja joka toinen dataliitäntä on toinen dataliitäntä kertolaskulaitteen mainittujen dataliitäntöjen datan 10 lähtöön.
7. Patenttivaatimusten 1-5 mukainen menetelmä, tunnettu siitä, että ainakin yhden liukuhihnavaiheen (P1, P2, P3, P4) lähtöarvot tallennetaan. 15
8. Jonkin patenttivaatimuksen 1-7 mukainen menetelmä, tunnettu siitä, että sitä käytetään videoinformaation käsittelyn yhteydessä. .. .a
9. Jonkin patenttivaatimuksen 1-8 mukainen menetelmä tunnettu siitä, ;* 20 että yksi kertolaskuoperaatio ja toinen kertolaskuoperaatio suoritetaan • · « ·[;’ liukuhihnoitetusti, jossa mainittu toinen kertolaskuoperaatio aloitetaan v : ennen kuin mainittu ensimmäinen kertolaskuoperaatio päättyy, mainitut kertolaskuoperaatiot jaetaan ainakin ensimmäiseen ja toiseen osa- V i operaatioon, ja kumpikin mainituista ensimmäisestä ja toisesta osa- 25 operaatiosta toteutetaan yhdessä liukuhihnavaiheessa, ja että ainakin yksi mainituista osaoperaatiosta suoritetaan rinnakkaisesti yhdessä liukuhihnavaiheessa, jossa osaoperaatio toiselle kertolaskuoperaatiolle !···. aloitetaan ennen kuin vastaava osaoperaatio ensimmäiselle kerto- ,/* laskuoperaatiolle päättyy. : *** 30 ···
10. Järjestelmä kertolaskuoperaatioiden suorittamiseksi liukuhihnoite-tussa kertolaskulaitteessa, joka käsittää ainakin kahden liukuhihna-vaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi • « dataliitäntä datan tuloa varten ja ainakin yksi dataliitäntä datan lähtöä 35 varten, tunnettu siitä, että järjestelmä edelleen sisältää ainakin yhden kytkimen (2, 3, 4, 5) selektiivisen datankäsittelyn suorittamiseksi, 118654 48 mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsittelemiseksi mainitun valinnan mukai-5 sesti.
11. Patenttivaatimuksen 10 mukainen järjestelmä, tunnettu siitä, että se sisältää valitsimen sen tutkimiseksi mihin liukuhihnavaiheeseen tulotiedot on tarkoitettu, jossa valinta on järjestetty tehtäväksi mainitun 10 tutkimisen perusteella laitteen tulotietojen yhdistämiseksi tarkoitetun liukuhihnavaiheen dataliitäntään.
12. Patenttivaatimuksen 10 tai 11 mukainen järjestelmä, tunnettu siitä, että yksi mainituista dataliitännöistä käsittää kertolaskulaitteen lähdön, 15 ja että järjestelmä käsittää lähtökytkimen yhden liukuhihnavaiheen kertolaskutuloksen tuomiseksi kertolaskulaitteen lähtönä yhdistämällä mainitun yhden liukuhihnavaiheen lähtö kertolaskulaitteen mainittuun lähtöön.
13. Patenttivaatimuksen 10, 11 tai 12 mukainen järjestelmä, tunnettu siitä, että se käsittää sisääntulosalvat (Rj,...,Rp ) ainakin yhden kertolaskuoperaation jakamiseksi osaoperaatioihin, ja jokaisen osa-operaation aloittamiseksi eri aikaan. • · · * ’ 25
14. Jonkin patenttivaatimuksen 10-13 mukainen järjestelmä, tunnettu siitä, että se sisältää liukuhihnavaiheiden väliset kytkimet liukuhihna- ·»· vaiheen (P1, P2, P3, P4) tulotietoliitännän yhdistämiseksi joko ensimmäisen lähtötietoliitännän tai toisen lähtötietoliitännän kanssa, joka ensimmäinen lähtötietoliitäntä on kyseessä olevaa 30 liukuhihnavaihetta edeltävän liukuhihnavaiheen lähtö. ··· · • · ·
15. Jonkin patenttivaatimuksen 10-14 mukainen järjestelmä, tunnettu *·;·* siitä, että se sisältää muistia (21) liukuhihnavaiheen (P1, P2, P3, P4) : lähtöarvojen tallentamiseksi. *·· · * ·:··: 35 118654 49
16. Jonkin patenttivaatimuksen 10-15 mukainen järjestelmä, tunnettu siitä, että se käsittää näytön (34, 37) videoinformaation esittämiseksi ja/tai videokameran videoinformaation syöttämiseksi järjestelmään.
17. Laite kertolaskuoperaatioiden suorittamiseksi liukuhihnoitetussa kertolaskulaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan tuloa varten ja ainakin yksi dataliitäntä datan lähtöä varten, tunnettu siitä, että laite edelleen sisältää ainakin yhden kytkimen (2, 3, 10 4, 5) selektiivisen datankäsittelyn suorittamiseksi, mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtö-tietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsittelemiseksi mainitun valinnan mukaisesti. 15
18. Patenttivaatimuksen 17 mukainen laite, tunnettu siitä, että se sisältää valitsimen laitteen tulotietojen yhdistämiseksi sen liukuhihna-vaiheen dataliitäntään, johon tulotiedot on tarkoitettu. ·· · • · · .·* 20
19. Patenttivaatimuksen 17 tai 18 mukainen laite, tunnettu siitä, että se käsittää lähdön, ja lähtökytkimen yhden liukuhihnavaiheen : kertolaskutuloksen tarjoamiseksi kertolaskulaitteen lähtönä *·“’·’ yhdistämällä mainitun yhden liukuhihnavaiheen lähtö laitteen mainittuun v*| lähtöön. :*·*: 25 ···
20. Patenttivaatimuksen 17, 18 tai 19 mukainen laite, tunnettu siitä, ... että se käsittää sisääntulosalvat ) ainakin yhden kertolasku- ···· .*·. operaation jakamiseksi osaoperaatioihin, ja jokaisen osaoperaation aloittamiseksi eri aikaan. i ’*· 30 #*·
21. Jonkin patenttivaatimuksen 17-20 mukainen laite, tunnettu siitä, :T: että se sisältää liukuhihnavaiheiden väliset kytkimet liukuhihnavaiheen (P1, P2, P3, P4) tulotietoliitännän yhdistämiseksi joko ensimmäisen lähtötietoliitännän tai toisen lähtötietoliitännän kanssa, joka 35 ensimmäinen lähtötietoliitäntä on kyseessä olevaa liukuhihnavaihetta edeltävän liukuhihnavaiheen lähtö. 118654 50
22. Jonkin patenttivaatimuksen 17-21 mukainen laite, tunnettu siitä, että se sisältää muistia (21) liukuhihnavaiheen (P1, P2, P3, P4) lähtöarvojen tallentamiseksi. 5
23. Jonkin patenttivaatimuksen 17-22 mukainen laite, tunnettu siitä, että se on videonkäsittelylaite.
24. Jonkin patenttivaatimuksen 17-23 mukainen laite, tunnettu siitä, 10 että se käsittää matkaviestinlähettimen ja -vastaanottimen (38).
25. Jonkin patenttivaatimuksen 17-22 mukainen laite, tunnettu siitä, että se on integroitu piiri.
26. Jonkin patenttivaatimuksen 17-25 mukainen laite, tunnettu siitä, että liukuhihnavaihe käsittää kaksi tai useampia olennaisesti samanlaisia, rinnankytkettyjä toiminnallisia lohkoja.
27. Langaton päätelaite, joka sisältää laitteen kertolaskuoperaatioiden 20 suorittamiseksi liukuhihnoitetussa kertolaskulaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihna-.·.·. vaiheilla on ainakin yksi dataliitäntä datan tuloa varten ja ainakin yksi dataliitäntä datan lähtöä varten, tunnettu siitä, että langaton päätelaite • · · edelleen sisältää ainakin yhden kytkimen (2, 3, 4, 5) selektiivisen ! ] 25 datankäsittelyn suorittamiseksi, mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotieto- : liitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen välillä ja datan käsitte- : lemiseksi mainitun valinnan mukaisesti. : : 30 ♦ *· .v.
28. Kertolaskulaite, joka sisältää laitteen kertolaskuoperaatioiden λ! suorittamiseksi liukuhihnoitetussa kertolaskulaitteessa, joka käsittää **:** ainakin kahden liukuhihnavaiheen ryhmän, joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan tuloa varten ja ·:··: 35 ainakin yksi dataliitäntä datan lähtöä varten, tunnettu siitä, että kerto laskulaite edelleen sisältää ainakin yhden kytkimen (2, 3, 4, 5) ¥ 118654 51 selektiivisen datankäsittelyn suorittamiseksi, mainittu ainakin yksi kytkin käsittää ainakin yhden ohjaussisääntulon mainitun ainakin yhden tulotietoliitännän kytkemiseksi mainittuun ainakin yhteen lähtötietoliitäntään datan reitittämiseksi yhdistettyjen dataliitäntöjen 5 välillä ja datan käsittelemiseksi mainitun valinnan mukaisesti. ·· · • · · « · • · • · • · · • « · • · »·· • · · • · · • t • · • φ · • M * · * · · • · • · *·· ··· * ···« • · · • · Φ «•f ·· • · • · · • · · t · • · ··* *·» • · · Φ · * t • • · 118654 52
FI20021983A 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite FI118654B (fi)

Priority Applications (10)

Application Number Priority Date Filing Date Title
FI20021983A FI118654B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
DE60318494T DE60318494T2 (de) 2002-11-06 2003-11-05 Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
CNB2003801083374A CN100530168C (zh) 2002-11-06 2003-11-05 用于执行计算操作的***、方法及设备
AU2003276291A AU2003276291A1 (en) 2002-11-06 2003-11-05 Method and a system for performing calculation operations and a device
TW092130872A TWI266233B (en) 2002-11-06 2003-11-05 Method and system for performing a calculation operation and a device
AT03810471T ATE382901T1 (de) 2002-11-06 2003-11-05 Verfahren, einrichtung und system zur durchführung von kalkulationsoperationen
PCT/FI2003/000819 WO2004042599A1 (en) 2002-11-06 2003-11-05 Method and a system for performing calculation operations and a device
EP03810471A EP1576493B1 (en) 2002-11-06 2003-11-05 Method, device and system for performing calculation operations
KR1020057007985A KR100715770B1 (ko) 2002-11-06 2003-11-05 연산을 수행하는 방법 및 시스템 및 장치
US10/703,162 US7774400B2 (en) 2002-11-06 2003-11-06 Method and system for performing calculation operations and a device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021983 2002-11-06
FI20021983A FI118654B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite

Publications (3)

Publication Number Publication Date
FI20021983A0 FI20021983A0 (fi) 2002-11-06
FI20021983A FI20021983A (fi) 2004-07-16
FI118654B true FI118654B (fi) 2008-01-31

Family

ID=8564892

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20021983A FI118654B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite

Country Status (10)

Country Link
US (1) US7774400B2 (fi)
EP (1) EP1576493B1 (fi)
KR (1) KR100715770B1 (fi)
CN (1) CN100530168C (fi)
AT (1) ATE382901T1 (fi)
AU (1) AU2003276291A1 (fi)
DE (1) DE60318494T2 (fi)
FI (1) FI118654B (fi)
TW (1) TWI266233B (fi)
WO (1) WO2004042599A1 (fi)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856201B1 (en) 2004-11-10 2014-10-07 Altera Corporation Mixed-mode multiplier using hard and soft logic circuitry
DE102005011374B3 (de) * 2005-03-11 2006-07-13 Infineon Technologies Ag Sicheres und schnelles Rechenwerk für Addiereschaltungen von Kryptographieprozessoren
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US20080225939A1 (en) * 2007-03-15 2008-09-18 Jiun-In Guo Multifunctional video encoding circuit system
KR20080085423A (ko) * 2007-03-20 2008-09-24 엘지전자 주식회사 Bma 연산기 및 이를 이용한 인코더
US20090063609A1 (en) * 2007-06-08 2009-03-05 Honkai Tam Static 4:2 Compressor with Fast Sum and Carryout
US7958180B2 (en) * 2007-07-05 2011-06-07 International Business Machines Corporation Multiplier engine
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8892620B2 (en) * 2009-10-07 2014-11-18 Qsigma, Inc. Computer for Amdahl-compliant algorithms like matrix inversion
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9588765B2 (en) * 2014-09-26 2017-03-07 Intel Corporation Instruction and logic for multiplier selectors for merging math functions
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US9846623B2 (en) 2015-08-20 2017-12-19 Qsigma, Inc. Simultaneous multi-processor apparatus applicable to acheiving exascale performance for algorithms and program systems
CN111651205B (zh) * 2016-04-26 2023-11-17 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法
CN112214244A (zh) * 2016-08-05 2021-01-12 中科寒武纪科技股份有限公司 一种运算装置及其操作方法
US20180113840A1 (en) * 2016-10-25 2018-04-26 Wisconsin Alumni Research Foundation Matrix Processor with Localized Memory
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) * 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
EP3480710A1 (en) * 2017-11-03 2019-05-08 Nokia Technologies Oy Computer architectures and instructions for multiplication
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11409356B1 (en) 2019-11-20 2022-08-09 Mentium Technologies Inc. Using data correlation to reduce the power consumption of signal processing systems without affecting the precision of computation
WO2021102382A1 (en) * 2019-11-20 2021-05-27 Mentium Technologies Inc. Data processing system configured for separated computations for positive and negative data
CN113395551A (zh) * 2021-07-20 2021-09-14 珠海极海半导体有限公司 处理器、npu芯片和电子设备
CN115138208B (zh) * 2022-09-06 2022-11-25 山东超华环保智能装备有限公司 数据处理器及包含该处理器的一种废气智能处理***

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8718488D0 (en) * 1987-08-05 1987-09-09 British Petroleum Co Plc Chemical process
US5204828A (en) * 1989-02-10 1993-04-20 Intel Corporation Bus apparatus having hold registers for parallel processing in a microprocessor
US4965762A (en) * 1989-09-15 1990-10-23 Motorola Inc. Mixed size radix recoded multiplier
US5299320A (en) * 1990-09-03 1994-03-29 Matsushita Electric Industrial Co., Ltd. Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
US5420815A (en) * 1991-10-29 1995-05-30 Advanced Micro Devices, Inc. Digital multiplication and accumulation system
US5220525A (en) * 1991-11-04 1993-06-15 Motorola, Inc. Recoded iterative multiplier
JP3140187B2 (ja) * 1992-07-23 2001-03-05 アイシン・エィ・ダブリュ株式会社 車両用経路誘導装置
JP3546437B2 (ja) * 1993-03-31 2004-07-28 ソニー株式会社 適応形ビデオ信号演算処理装置
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5646877A (en) * 1995-05-25 1997-07-08 Texas Instruments Incorporated High radix multiplier architecture
JPH09305401A (ja) * 1996-05-13 1997-11-28 Mitsubishi Electric Corp コンピュータ及びコンパイラ
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
JP3678512B2 (ja) * 1996-08-29 2005-08-03 富士通株式会社 乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路
KR100291383B1 (ko) * 1996-11-18 2001-09-17 윤종용 디지털신호처리를위한명령을지원하는모듈계산장치및방법
US5875125A (en) * 1997-07-07 1999-02-23 International Business Machines Corporation X+2X adder with multi-bit generate/propagate circuit
US6175911B1 (en) * 1998-08-21 2001-01-16 Advanced Micro Devices, Inc. Method and apparatus for concurrently executing multiplication and iterative operations
US6671708B1 (en) * 1998-11-26 2003-12-30 Matsushita Electric Industrial Co., Ltd. Processor and image processing device
JP2000322235A (ja) * 1999-05-07 2000-11-24 Sony Corp 情報処理装置

Also Published As

Publication number Publication date
US20040148321A1 (en) 2004-07-29
FI20021983A0 (fi) 2002-11-06
KR100715770B1 (ko) 2007-05-08
ATE382901T1 (de) 2008-01-15
TW200414023A (en) 2004-08-01
AU2003276291A1 (en) 2004-06-07
KR20050065672A (ko) 2005-06-29
DE60318494T2 (de) 2009-01-15
EP1576493B1 (en) 2008-01-02
DE60318494D1 (de) 2008-02-14
TWI266233B (en) 2006-11-11
FI20021983A (fi) 2004-07-16
CN100530168C (zh) 2009-08-19
CN1735880A (zh) 2006-02-15
WO2004042599A1 (en) 2004-05-21
US7774400B2 (en) 2010-08-10
EP1576493A1 (en) 2005-09-21

Similar Documents

Publication Publication Date Title
FI118654B (fi) Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
FI118612B (fi) Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
KR101173405B1 (ko) 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장
US7107305B2 (en) Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions
US6473529B1 (en) Sum-of-absolute-difference calculator for motion estimation using inversion and carry compensation with full and half-adders
JP3546437B2 (ja) 適応形ビデオ信号演算処理装置
US20080140999A1 (en) Programmable video signal processor for video compression and decompression
US6675286B1 (en) Multimedia instruction set for wide data paths
Olivares et al. SAD computation based on online arithmetic for motion estimation
FI115862B (fi) Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite
KR20080094812A (ko) 개선된 감소 트리 회로를 갖는 부스 곱셈기
WO2002073395A2 (en) A method and apparatus for multiplication and/or modular reduction processing
Furht Processor architectures for multimedia: a survey
Chen et al. Design methodology of a hardware-efficiency VLIW architecture with highly adaptable data path
Wesolowski et al. Design of a novel flexible 4-moduli RNS and reverse converter
Chen et al. A reconfigurable digital signal processor architecture for high-efficiency MPEG-4 video encoding
Atitallah et al. HW/SW FPGA architecture for a flexible motion estimation
KR100434391B1 (ko) 디에스피 프로세서 및 마이크로프로세서의 실시간영상데이터 처리를 위한 연산회로 및 그 연산방법
Chen et al. An adaptive DSP processor for high-efficiency computing MPEG-4 video encoder
CN100370834C (zh) 多模图像编解码芯片中的系数缩放计算模块
Liu et al. A SIMD video signal processor with efficient data organization
Chen et al. Application-specific data path for highly efficient computation of multistandard video codecs
Guevorkian et al. A radix-8 multiplier design and its extension for efficient implementation of imaging algorithms
Furht Processor architectures for multimedia
Chu et al. Design of customized functional units for the vliw-based multi-threading processor core targeted at multimedia applications

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 118654

Country of ref document: FI

MM Patent lapsed