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

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

Info

Publication number
FI118612B
FI118612B FI20021984A FI20021984A FI118612B FI 118612 B FI118612 B FI 118612B FI 20021984 A FI20021984 A FI 20021984A FI 20021984 A FI20021984 A FI 20021984A FI 118612 B FI118612 B FI 118612B
Authority
FI
Finland
Prior art keywords
data
output
input
memory
operations
Prior art date
Application number
FI20021984A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021984A (fi
FI20021984A0 (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 FI20021984A0 publication Critical patent/FI20021984A0/fi
Priority to FI20021984A priority Critical patent/FI118612B/fi
Priority to TW092130873A priority patent/TWI263167B/zh
Priority to PCT/FI2003/000820 priority patent/WO2004042600A1/en
Priority to EP03810472A priority patent/EP1576494B1/en
Priority to CNB2003801084019A priority patent/CN100405361C/zh
Priority to DE60313215T priority patent/DE60313215T2/de
Priority to AU2003276292A priority patent/AU2003276292A1/en
Priority to KR1020057007986A priority patent/KR100714358B1/ko
Priority to AT03810472T priority patent/ATE359559T1/de
Priority to US10/703,161 priority patent/US7536430B2/en
Publication of FI20021984A publication Critical patent/FI20021984A/fi
Application granted granted Critical
Publication of FI118612B publication Critical patent/FI118612B/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
    • 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/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • 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
    • 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/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (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)
  • Hardware Redundancy (AREA)
  • Advance Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Forklifts And Lifting Vehicles (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Fishing Rods (AREA)

Description

118612
Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
Tekniikan ala 5
Nyt esillä oleva keksintö koskee menetelmää laskuoperaatioiden suorittamiseksi käyttäen liukuhihnoitettua laskentalaitetta, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin yhden dataliitännän datan lähtöä varten, 10 joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan syöttämiseksi ja ainakin yksi dataliitäntä datan lähtöä varten, jossa menetelmässä data laskentaoperaatioiden suorittamiseksi syötetään laitteeseen. Keksintö koskee myös järjestelmää laskuoperaatioiden suorittamiseksi liukuhihnoitetussa laskentalaitteessa, joka käsittää 15 ainakin kahden liukuhihnavaiheen ryhmän, ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin yhden dataliitännän datan lähtöä varten, joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan syöttämiseksi ja ainakin yksi dataliitäntä datan lähtöä varten, ja mainittu laite edelleen käsittää datan sisääntulon ensimmäiselle ja toiselle 20 laskentaoperaatiolle. Keksintö koskee myös laitetta laskuoperaatioiden suorittamiseksi liukuhihnoitetussa laskentalaitteessa, joka käsittää : Y: ainakin kahden liukuhihnavaiheen ryhmän, ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin yhden dataliitännän datan lähtöä varten, joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan .·. ; 25 syöttämiseksi ja ainakin yksi dataliitäntä datan lähtöä varten, ja mainittu 1·.\ laite edelleen käsittää datan sisääntulon ensimmäiselle ja toiselle ’**·* laskentaoperaatiolle.
• ··':* Keksinnön tausta • · · • · ’*:·* 30 • · i *·· On olemassa useita sovelluksia, joissa tarvitaan kertolasku-, kerto- yhteenlasku- (Multiply-Accumulate, MAC) ja muita laskentaoperaatioita.
: !·. Ei-rajoittavana esimerkkinä monet signaalinkäsittelysovellukset, kuten • · · "Y digitaaliset signaalinsuodatussovellukset, videon/kuvankäsittelysovel- 35 lukset, jne. ovat sovelluksia, joissa toteutetaan reaaliaikaisia kertolasku- '"s-- 2 118612 operaatioita. Myös muut sovellukset, joissa tarvitaan vektori- ja/tai matriisioperaatioita, käyttävät kertolasku- ja MAC-operaatioita. Kertolaskuoperaatioita toteutetaan tavallisesti summauksen ja bittien suhteen siirto-operaationa. Tällaiset kertolaskuoperaatiot ovat resurs-5 seja vaativia tehtäviä, koska yksi kahden operandin välinen kerto-laskuoperaatio vaatii useita summauksia ja siirto-operaatioita ke rt o-laskutuloksen laskemiseksi.
Videon/kuvankäsittelyn algoritmeille on ominaista suuri määrä lasken-10 toja, jotka tulee toteuttaa reaaliajassa. Näin ollen nopea suorituskyky on ollut käyttövoimana kehitettäessä rinnakkaisia erityisrakenteita (kiihdyt-timiä) 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 15 Absolute Differences, SAD), kosinimuunnos, jne.), joista jokainen koostuu suuresta määrästä laitteistoelementtejä. Kuitenkin kehitettäessä matkaviestinjärjestelmiä laitteiston pinta-ala, joka vaikuttaa järjestelmän kustannuksiin, ja tehon/energian kulutus ovat yhtä tärkeitä ominaisuuksia kuin nopea suorituskyky. Yksi keino kaikkien näiden kri-20 teerien täyttämiseksi on digitaalisten signaaliprosessorien (Digital Signal Processor, DSP) modernisointi edelleen ja erikoistuneiden kiih-..li* dyttimien määrän vähentäminen. Vaikka tällä alueella onkin olemassa :V: joitakin parannuksia, kehitetyt järjestelmät eivät siltikään aina tyydytä :T: nopeuden ja tehonkulutuksen vaatimuksia.
25
Taulukko 1 esittää tiivistetysti joitakin keskeisiä aritmeettisia kaavoja .···! 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- 30 den toteutuksiin. Tässä korostetaan kahta yksityiskohtaa, jotka koske- • · ’·;** vat näitä operaatioita videon/kuvankäsittelyn yhteydessä. Ensiksi, ope- raatioiden operandit ovat useimmiten keskitarkkoja (8-16 -bittisiä) kokonaislukuja. Toiseksi, useimmat algoritmit käyttävät erittäin rinnak- ··· kaisia operaatioita. Joissakin tapauksissa nämä rinnakkaiset operaatiot .* ] 35 jakavat samat operandit. Esimerkiksi skalaarikvantisoinnissa sama *· *: numero kerrotaan kuvan useisiin kuva-alkioihin, matriisi-vektoritulossa 3 118612 matriisin eri rivit kerrotaan samaan sisääntulovektoriin, ei rekursiivisessa (Finite Impulse Response, FIR) suodatuksessa samat kertoimet liittyvät useisiin MAC-operaatioihin, jne.
5 Taulukko 1.
Aritmeetti- Kuvaus Algoritmit nen kaava_____________________
Rinnakkaiset cf/=a/±ö/, i=1,...,k Liikekompensointi, luminanssin summaukset/ muutos, osaoperaatio DCT:ssä, vähennykset DWT, SAP, jne. _ * Keskimääräinen suodatin esi- ja S = > cij
Keräys- ~i\ jälkikäsittelyssä, osaoperaatio summaus DWT:ssä, vektori-vektori ja matriisi- vektori sisäiset tulot, konvoluutio, _ jne._
Rinnakkaiset Kvantisointi, osaoperaatio DCT:ssä, kertolaskut m,=a;x,· tai DWT, vektori-vektori ja matriisi- m/=a,x, M,...,K vektori sisäiset tulot, konvoluutio, ___[ne._
Kerto- Si-s^i+afXj, Perusoperaatio FIR-suodatuksessa yhteenlasku 1 = l····. K, ja matriisi-vektori operaatiot.
: Y: (MAC) *0on tunnettu :Y:__kokonaisluku__ *:··: Vektori- _γ Esi- ja jälkikäsittely, osaoperaatio :*·.· vektori sisäi- '' DCT:ssä, DWT, vektori-vektori ja • · * * .···. nen tulo matriisi-vektori sisäiset tulot, kon- ___voluutio, jne._
Matriisi- £ Värin muuttamiset, geometriset \\\* vektoritulo ' l'j*j manipulaatiot, affiininen liikkeen *·:** i = 1 k estimointi, esi-ja jälkikäsittely, osa- ___operaatio DCT:ssä, jne._ FIR-suodatus _ γ Esi- ja jälkikäsittely (kuvan suoda- (konvoluutio) ' jX‘~J tuksen kehittäminen, interpolaatio, . ! / = 1,..., a: ekstrapolaatio), DWT:n perus- *· _operaatio_ 4 118612 SAD ν', , I Liikkeen estimointi, kuvan tarkkuu- S = > öj - o,· ,
(itseisarvojen “1 den kriteerit MAE
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 kiintopilkun etumerkillisen kokonaisluvun kertolasku, ja niin 10 sanotut kantaluku-Γ-menetelmät (radix-T).
Kahden komplementin esityksessä «-bitistä (etumerkki mukaan luettuna) kertoja a osoitetaan a = an_}an_2...aja0, ja kahden komplementin esityksessä m-bitistä (etumerkki mukaan luettuna) kerrottava x 15 osoitetaan χ =xm_]xm_2...xjxo, tässä järjestyksessä. Suhde a:n ja a:n välillä fla samankaltainen suhde x:n ja x:n välillä) on seuraavanlainen: *:* n-2 m-2 a = ~an-j2n + Σ ar2r , x = -xm-j2m + ^ X\2 .
r=0 1=0 • · · • · · *:··: 20 Kantaluku-7":n rinnakkaisessa kertolaskumenetelmässä tulon y = a-x kahden komplementti y = ym+n-iym+„-2-yiyo saadaan seuraavan kaavan mukaisesti:
nradix-T
·::: ?= Σ (Ar^mia-T m ··· "*·. 25 seuraavissa kahdessa päävaiheessa: • · • · ·
Vaihe 1. Tuotetaan sellaisia osittaistuloja (Partial Product, PP)
Ar -x,r ~0,...,nradix_T -1, että yhtälö (2) on voimassa.
5 118612
Vaihe 2. Summataan rinnakkaisesti kaikki osittaistulot jotka alustavasti siirtävät r:nnen osittaistulon Ar -x,r = 0,...,nradix_T -1 vasempaan rtmdix_T bittiä.
5
Kantaluku-T:n MAC-yksikkö toimii samalla tavalla sillä erolla, että toinen numero (kumuloituva termi) lisätään osittaistulojen mukana vaiheessa 2.
10 Vaihetta 1 tarkastellaan tässä tarkemmin. Riippuen siitä miten numerot Ar -x,r = 0,...,nradix_T -l määritellään ja saadaan, voidaan johtaa eri kertolaskumenetelmiä. Numeroiden Ar -x,r = 0,...,nradix_T -1 valinnan puolestaan määrää itse asiassa kertoja a :n esitys. Yksinkertaisin kerto-laskumenetelmä on kantaluku-2 -menetelmä, joka käyttää kahden 15 komplementin perustason esitystä a.sta, joka annetaan (1):n vasemmanpuoleisessa yhtälössä. Tässä tapauksessa tulon kahden komplementti saadaan seuraavana: nradix-2 . n—2 ?= Σ {ArxYtradtx-2 = Σ (arx)2r-(an_jx)2n~ , (3) r=0 r=0 ' f ··· *:*; 20 toisin sanoen nradix-2=n ja osittaistulot Ar x,r 1 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 (ja tavallisesti \ [ muodostetaankin) käyttämällä kaksituloisten JA-porttien matriisia jokai- sen kertojan ä ja kerrottavan x kahden komplementin bitin välillä.
··· 25 Tulon Ar 'X,r = 0,...,n~l arvo kerrotaan 2r:ään (eli siirretään vasemmalle r bittiä) ennen kuin se summataan toisessa vaiheessa. On huo-mättävä, että tässä menetelmässä osittaistuloa An_1 -x, jota toisinaan • · · kutsutaan korjauskertoimeksi, käsitellään eri lailla kuin muita osittais-tuloja.
.···. 30 • ♦
Osittaistulojen epäyhtenäinen luonne vältetään toisessa kantaluku-2 -kertolaskumenetelmässä, joka perustuu kertojan kahden komplementin • * » · < • ·· • · 6 118612 bittien a Booth-uudelleenkoodaukseen peräkkäisiksi etumerkillisiksi numeroiksi. Tulo voidaan nyt esittää seuraavasti: nradix-2~l n-1 y = Σ (A1)2'’ = Σ (- ar + ar-1 )x2r , a_j=0 (4) 5 Toisin sanoen, nra(nx^2~n kuten aiemmin, mutta kaikki osittaistulot Ar-x,r = 0,...,n-1 määritellään yhtälöllä Ar = -ar + ar. Edellisen menetelmän tavoin Arx,r = 0,...,n-l\x\ 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- 10 villa, kun taas arvon -x löytäminen vaatii 5c :n bittien invertoimista ja ykkösen lisäämistä. Tavallisesti ykkösen lisääminen tapahtuu vaiheessa 2, jossa osittaistulot summataan.
Kantaluku-2 -kertolaskumenetelmässä on kaiken kaikkiaan 15 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-^•j· luku-4 muunnettuun Boothin algoritmiin (Modified Booth Algorithm, :y; 20 MBA) perustuva menetelmä. MBA on yksi suosituimmista kertolasku- menetelmistä ja sitä tutkitaan ja optimoidaan laajasti.
• · .... Alla olevien kaavojen yksinkertaistamiseksi jokaisessa tapauksessa, *:./ jossa termi kuten «/A:esiintyy, oletetaan että n on k\r\ kokonaisluku- • ♦ *···1 25 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ä ...T (toistamalla merkittävintä bittiä).
««« • · • · ··· MBA:ssa tulon kahden komplementti saadaan summana 30 • · ··1 ♦ • · • · · • ·· • « 7 118612 nradix-4~l Λ Π12—1 - Τ = Σ (Ar*)2 V = Σ (Ε“^Λ2Γ+7+α2ΓΓ » (5) r=0 r=0 ÖL·/ = 0 nradix-4 =n/2\n osittaistuloista, missä arvo
Ar e ^2-1,0,1,2}^ = 0,1,...,n/2-1 valitaan kolmen peräkkäisen bitin a2r+i>a2r’a2r-i (a-i = °) mukaan kahden komplementin esityksestä 5 kertojasta a. Osittaistulo Arx, r = 0,1,...,n!2-1, kerrotaan 22r:Ma (eli vasemmalle 2r bittiä siirretty laitteisto) ennen kun se lisätään vaiheessa 2.
On myös mahdollista käyttää 2:ta suurempia kantalukuja ei-uudelleen-10 koodatuissa kertolaskumenetelmissä osittaistulojen lukumäärän pienentämiseksi. Esimerkiksi kantaluku-4:n ei-uudelleenkoodatussa ker-tolaskumenetelmässä osittaistulot Arx, Ar e {0,1,23}, r-0,1,..., m/2-i valitaan kertojan kahden peräkkäisen bitin a2r+i,a2r mukaisesti. Tässä menetelmässä on nradix_4 = n/2 osittaistuloa. Mahdollinen osittaistulo 15 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-·:· merkkejä, joissa jokaisen osittaistulon merkittävin bitti (eli etumerkillinen • · I · bitti) kopioidaan niin monta kertaa kuin on tarpeen vaadittavan bitti-20 pituuden saavuttamiseksi.
! ! Kantaluku-8:n ei-uudelleenkoodatussa kertolaskumenetelmässä osit- taistulot Arx, Ar e {04,2,3,4,5,6,7}, r=0,1„...,n/3-1, valitaan kertojan koi- • ♦ ***** men peräkkäisen bitin mukaisesti. Mahdollisten osittaistulojen lista on 25 0,x,2x,3x,...,7x , joista kaikki ovat saatavilla toteuttamalla kolme itse- ..II* näistä summausta/vähennystä jotta saataisiin 3x = x + 2x , 5x = x + 4x , C.*: 7x=8x-x. Mahdollinen osittaistulo 6x voidaan muodostaa siirtämällä mahdollista osittaistuloa 3x yksi bitti vasempaan. Kuitenkin suurem-pien kantalukujen tapauksissa (>=16) on olemassa joitakin mahdollisia *.** 30 osittaistuloja (esim. llx ja 13x) joita ei voi saada yhdellä yhteen- laskulla/vähennyslaskulla.
• · • · · • ·· « · 118612 δ
Kuva 1 esittää yleislaitteen 101 muunnetun Boothin algoritmin (Modified Booth Algorithm) suorittamiseksi. On olemassa nil Boothin koodaus-dekoodausriviä, joista jokainen koostuu Boothin kooderista 102, ja m+1 Boothin dekooderista 103, jotka on voitu ryhmittää kahden ryhmiin. 5 Jokainen Boothin kooderi 102 analysoi kertojan a kahden komplementin kolme peräkkäistä bittiä, yhden bitin päällekkäisyydellä, ja muodostaa q signaalia vastaavaan dekoodereiden 103 riviin. Joissakin viimeaikaisissa tekniikan tason suunnitelmissa q = 3. Näiden q- signaalien mukaan dekooderirivit muodostavat osittaistulot 10 (4.x) e {0,±x,±2x} , joissa on kerrottavan bitit x sisääntuloissaan. x:n ei-negatiiviset kerrannaiset ovat helposti saatavilla, koska 2x muodostetaan kiinteällä siirrolla. x:n negatiiviset kerrannaiset muodostetaan invertoimalla x:n vastaavien positiivisten kerrannaisten bitit ja sitten lisäämällä 1, mikä tapahtuu yleensä vaiheessa 2. 15 Esimerkiksi US-patentti 6 173 304 kuvaa tällaista järjestelmää, joka käyttää Boothin koodereita ja dekoodereita. Kantaluku-2 -menetelmässä osittaistulot voi löytää helpommin kuin muunnetussa Boothin algoritmissa, mutta osittaistulojen lukumäärä pienenee n/2:een kun käytetään muunnettua Boothin algoritmia, jolloin 20 saavutetaan suorituskyvyn nopeudessa, pinta-alassa ja tehonkulutuksessa merkittäviä etuja.
*« t·· • !.v Osittaistulojen lukumäärän pienentämiseksi edelleen Boothin kooda- 0': usta on edelleen laajennettu monibittiseen (vapaasti määrättävä kan- ·:··: 25 taluku-T) -uudelleenkoodaukseen . Yleinen yhtälö tulolle on nyt: • · • · « •
·"*· Kradix-T-1, v , nlt-l(\ t-2 IV
y= Σ (Arx)2rt - Σ +Σα*+ΐ21+atr~l X 2* (Q) r=0 r-0 (l i=0 J J V ’ ...1' a_1=0,T = 2t = 2tradtx~T.
·· • · * · ···
Toisin sanoen osittaistuloja (nradix_T = nlt) on T = 2t ja jokainen osit-taistulo valitaan kertoja / + 7:n a peräkkäisten bittien mukaan mahdol-: !*. 30 listen osittaistulojen Ax listasta siten, että A vaihtelee välillä -2t~1 ja 2t~1. Jokainen mahdollinen osittaistulo voidaan muodostaa suhteellisen helposti lisäämällä kaksi (kun T = 8,16) tai useampi (kun T>16) 9 118612 x:n kahden potenssin kerrannaista, ja mahdollisesti niiden bittien inversiolla, joita seuraa 1:n lisääminen (vaiheessa 2). Esimerkiksi kan-taluku-8:n uudelleenkoodauksen tapauksessa mahdollisten osittais-tulojen lista on 0,±x,±2x,±3xt±4x. Kaikki listan ei-negatiiviset kerrannai- 5 set 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 uudelleenkoodauksen tapauksessa mahdollisten osittaistulojen lista on 0,±x,±2x,±3x,...,±8x, joista kaikki tulevat saataville kun toteutetaan 10 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 bitti vasempaan. Kuitenkin suurempien kantalukujen tapauksissa on olemassa joitakin mahdollisia osittaistuloja (esim. ilx ja 13x) joita ei voi 15 saada yhdellä yhteenlaskulla/vähennyslaskulla.
Kuva 2 esittää tekniikan tason kantaluku-T:n (T>8) monibittisten Booth-uudelleenkoodattujen ja kantaluku-T:n (7^4) uusien ei-uudelleenkoodattujen ("kantaluku-suurempi-kuin-neljä”) kertojien yleistä 20 rakennetta 201. Tämä rakenne koostuu summainmatriisista 202 (Array of Adders, AA) mahdollisten osittaistulojen 0,±x,±2x,...,±Tx listan «·{* laskemiseksi, valintalohkosta 203 (Selection Block, SB) nlt osittaistulojen valitsemiseksi kertojabittien mukaisesti, ja summaus-’· lohkosta 204 (Summation Block) valittujen osittaistulojen summaami- ·:··: 25 seksi. Lopullinen summain 205 (Final Adder) muodostaa tulon y sum- man S ja muistibitin C termeistä, joita summauslohko 204 on tuottanut.
··· • · • ·
Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan summainmatriisi koostuu j summaimista/vähentäjistä, missä s on nii- 30 den x:n parittomien positiivisten kerrannaisten lukumäärä, jotka ovat **:** mukana mahdollisten osittaistulojen listassa (s = l T-8 Boothin uudel- • · : *·· leenkoodattujen ja T = 4 ei-uudelleenkoodattujen kertojien tapauksissa, :***: ja s = 3 T-16 Boothin uudelleenkoodattujen tai 7=8 ei-uudelleen- : !·. koodattujen kertojien tapauksissa, jne.). Tavallisesti käytetään nopeita t · · .*!!.: 35 muistibittiä ennakoivia (Carry-Look-Ahead, CLA) summaimia, koska mahdollisten osittaistulojen listan muodostaminen on melko aikaa vievä 10 118612 osuus tämänkaltaisissa kertojissa. Patentissa US-5 875 125 on ehdotettu erityistä x + 2x summainta, jota voidaan käyttää kantaluku-8 -kertojissa. On huomattava, että sekoitettuja kantaluku-4/8 -kertojia on myös ehdotettu, esimerkiksi US-patentissa 4 965 762, mutta nämä 5 kertojat ovat kuitenkin pääasiassa käyttökelpoisia toistuville (ei rinnakkaisille) kertojille, joissa osittaistulot tuotetaan ja keräyssummataan sanallisesti. US-patentti 5 646 877 kuvaa kertojarakennetta, jossa kaikki vapaasti määrättävän kantaluvun mahdolliset osittaistulot saadaan 3jc:n ja x:n siirrettyjen versioiden summina tai erotuksina sum-10 mainmatriisissa, joka koostuu x + 2x summaimesta 3x:n tuottamiseksi, kahdesta siirtimestä ja summaimesta/vähentäjästä.
Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan valintalohko koostuu nlt kantaluku-T:n Boothin koodereista ja vastaa-15 vasta määrästä dekooderirivejä. Jokainen kooderi analysoi vastaavan kertojan (t +1) -monikon ja muodostaa lukuisia ohjaussignaaleja, joiden perusteella dekooderirivit muodostavat vastaavia osittaistuloja. Sitä miten kantaluku-4:n Boothin koodereita ja dekoodereita voi laajentaa suurempiin kantalukuihin on kommentoitu esimerkiksi patentissa US-6 20 240 438.
·*·[' Seuraavassa tarkastellaan tarkemmin osittaistulojen summaamista eli :.v vaihetta 2. Useimmat rinnakkaisista kertoja/MAC-yksikkö -rakenteista ··· : käyttävät summauslohkoja, jotka koostuvat pakkausmatriisista, jota *·’**: 25 seuraa nopea summain (lopullinen summain) vaiheessa 1 muodostet- tujen osittaistulojen summaamiseksi (katso kuvat 1 ja 2). Pakkaus-.···.’ matriisi vähentää nradix_T osittaistuloriviä kahteen riviin, jotka vastaa vat summan S ja muistibitin C termejä, jotka summataan lopullisen summaimen kanssa. Pakkausmatrilsi koostuu yleensä joko koko- tai 30 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 O bittien viiveiden mukaisesti.
• · ♦ · · • · · !!!.: 35 On huomioitava, että mikäli käytetään hyväksi Boothin uudelleen- koodauskaavioita, sen tuloksena, että ykkösen lisääminen suoritetaan 11 118612 vaiheessa 2 vaiheen 1 sijaan, jokaisessa osittaistulorivissä on yksibitti-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 2nradjx-T. Nämä yksi-bittiset arvot voidaan liittää 5 osittaistuloriveihin siten, että rivien lukumäärä on jälleen nradix_T tai ehkä nradix_T +1, mutta sillä kustannuksella, että osittaistulojen pituus kasvaa (yhdellä bitillä) ja tekee niistä epäsäännöllisiä. Ei-uudelleen-koodatussa kaavioissa on enintään yksi ylimääräinen yksi-bittinen arvo, joten yksinkertaisempia pakkausmatriiseja voidaan suunnitella.
10
Toinen Boothin uudelleenkoodatun kertojan summauslohkoon liittyvä 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 15 olla laajennettu (« + w)-bittiseen numeroon, mikä on erittäin tuhlaileva lähestymistapa. Erityisiä etumerkkimenetelmiä ja piirejä on kehitetty pienentämään etumerkillisten bittien lukumäärää kahteen jokaisessa rivissä. Ei-uudelleenkoodattujen kertojien tapauksessa etumerkkejä voidaan käsitellä helpommin, ilman ylimääräisiä etumerkkibittejä, koska 20 mahdollisesti yhtä lukuun ottamatta kaikkien osittaistulojen etumerkit ovat samat.
··· ·»·· • · ;.v On olemassa pääasiassa kaksi tapaa laajentaa kertojarakenteita MAC- v’: yksiköiksi, kuten ne on kuvattu kuvissa 3a ja 3b. Ensimmäisessä tapa- ·:·*: 25 uksessa (kuva 3a) pakkausmatriisin 301 kaksi lähtöä (summa S ja i\: muistibitti c -termit) syötetään takaisin sen sisääntuloihin siten, että :***; 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.
30 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- Γ» kausmatriisi 303) sisääntuloon. Nyt senhetkisen tulon summa S ja muistibitti C -termit summataan senhetkiseen keräyssummausarvoon : )·. viimeiseen sykliin asti, jolloin lopulliset summa S ja muistibitti C -termit • · · [“I 35 summataan lopullisessa summaimessa 302. Koko pakkausmatriisin syvyys (ja siten kokonaisviive) voi olla pienempi ensimmäisessä tapa- 12 118612 uksessa, kun taas leveys ja siten pinta-ala ja tehonkulutus voivat olla pienempiä toisessa tapauksessa.
Suurikantalukuisten kertoimien yhteenvetona tulisi huomioida, että mitä 5 suurempi kantaluku on, sitä monimutkaisempi on vaihe 1 (osittaistulo-jen tuottaminen), mutta sitä vähemmän monimutkainen on vaihe 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 osit-10 taistulojen tuottajat, mukaan lukien sekä summainmatriisi että valinta-lohko. Yleisesti kantaluku-4:n MBA:ta pidetään parhaana tekniikan tason rinnakkaisena kertolaskumenetelmänä, ja sitä käytetään monissa teollisissa kertojissa.
15 Liukuhihnoittamiseksi kutsuttua menetelmää voidaan käyttää laskenta-operaatioiden yhteydessä. Näin ollen liukuhihnoitusta hyväkseen käyttävä laite käsittää kaksi tai useampia liukuhihnavaiheita. Jokainen liu-kuhihnavaihe on tarkoitettu suorittamaan tiettyjä osia laskentaoperaati-oista (eli osaoperaatioita). Tekniikan tasolla liukuhihnavaiheiden las-20 kentaoperaatiot liittyvät toisiinsa siten, että jokainen liukuhihnavaihe /l· suorittaa yhden tai useampia osaoperaatioita suoritettavasta laskenta- : operaatioista, ja viimeisen liukuhihnavaiheen lähtö tuottaa laskenta- • · .·:·. operaation tuloksen. Tällaisessa laitteessa eri liukuhihnavaiheet toimi- vat peräkkäisesti, jolloin seuraava liukuhihnavaihe aloittaa osaoperaa- • · ... . 25 tion laskennan sen jälkeen kun edellinen liukuhihnavaihe on päättänyt osaoperaationsa laskennan. Jos liukuhihnavaiheet ovat puhtaasti tasa- • 9 painossa (eli jotkin vaiheet ovat merkittävästi nopeampia kuin toiset) tämä tarkoittaa sitä, että yhtä lukuun ottamatta kaikki liukuhihnavaiheet ovat odottavassa tai vapaassa tilassa suurimman osan ajasta. Lisäksi 30 kaikki liukuhihnavaiheet on varattu tiettyjä tehtäviä varten (tietyn osa- operaation laskenta) ja niitä ei voida käyttää muiden laskentaoperaati- !···. oiden suorittamiseen.
• · • · · * · : Seuraavassa esitellään joitakin kertoja/MAC-yksikön ominaisuuksia, 35 jotka ovat toivottavia videon- ja kuvankäsittelyn kannalta, mutta jotka puuttuvat tai ovat heikkoja tekniikan tason ratkaisuissa. Ensin tarkas- 13 118612 teilaan kaikkein suosituinta kantaluku-4:n Boothin uudelleenkoodattua 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-5 tulojen lukumäärää vähennetään puoleen verrattuna kantaluku-2 -kertolaskuun, sitä voitaisiin edelleen vähentää käyttämällä suurempia kantalukuja. Toisin sanoen, tämä menetelmä on monimutkainen lähinnä vaiheessa 2 (osittaistulojen summaus). Kun kantaluku-4:n Booth-uudelleenkoodattua kertoja/MAC-rakennetta liukuhihnoitetaan, 10 osittaistulon tuottamislohkoa pidetään yleensä ensimmäisenä liuku-hihnavaiheena, joka on kuitenkin puhtaasti tasapainossa muiden liuku-hihnavaiheiden kanssa (eli niitä nopeampi).
Pohdittaessa “kantaluku-suurempi-kuin-neljä” Boothin uudelleen-15 koodattuja kertojia on näytetty, että näiden kertojien eri toteutukset, kun niitä käsitellään ainoastaan kertolaskuoperaation toteuttamiseksi, ovat kilpailukykyisiä kantaiuku-4 kertojien kanssa pinta-ala- ja aikakriteerien suhteen, samalla kun suoriutuvat niitä paremmin tehokulutuksen suhteen. ”Kantaluku-suurempi-kuin-neljä” -menetelmien pääasiallinen 20 haittapuoli on summainmatriisin tarve osittaistulon tuottamisiohkossa.
Boothin uudelleenkoodatuilla ”kantaluku-suurempi-kuin-neljä” -kertojilla 0.: on myös haittapuoli, joka liittyy tarpeeseen käsitellä kerrottavan negatii- :T: visia kerrannaisia, samoin kuin etumerkkejä.
25 : Kantaluku-T:n ei-uudelleenkoodattu kertoja sisältää saman määrän .·! summaimia mahdollisen osittaistulon muodostuslohkossa kun kanta- • · luku-(2T):n Boothin uudelleenkoodattu. Kun käytetään ”kantaluku-suu- rempi-kuin-kahdeksan” ei-uudelleenkoodattuja tai "kantaluku-suurempi- 30 kuin-kuusitoista” Boothin uudelleenkoodattuja kertojia, tarvitaan enem- «·* män kuin yhden tason lisäys mahdollisten osittaistulojen muodostami- ·:· seksi.
*··· ··· • · • ·
Taulukko 2a • · ....... .......................**·~·η — I -—. .
Kertojatyyppi BR,T=4 BR, T=8 BR, T=16
• · I-——I--——- I
14 118612
Summainmatriisin leveys, - 1 3 s
Mahdollisten osittais- 5 9 17 tulojen lukumäärä SB:n kompo- Kood. n/2 BR4 n/3 BR8 n/4BR16 ηθη1’1 Dekood. n/2 (m+1)-BD4 n/3 (m+2)- 4:1 t/c n/4 (m+3)-8:1 t/c SE Kyllä Kyllä Kyllä SB:n viive 6t 12t 16t CA:n sisääntulojen luku- n/2 (m+1)-bit + 3n/2 n/3 (m+2)-bit n/4 (m+3)-bit määrä 1 -bit +4n/31 -bit +5n/41 -bit FA-CA.n n=13, x 7/4/8t 5/3/6t 4/2/4t sisääntulojen/ ^AC 9/5/ 10t 8/4/8t 6/3/6t tasojen/ viivei----- den lukumäärä n=16’x 8/4/8t 6/3/6t 4/2/4t MAC 10 / 5 /10t 8 / 4 / 8t 6/3/6t n=64, x 32/8/16t 22/7/14t 16/6/12t MAC 34/9/ 18t 24/7/14t 18/6/12t ··· 4:2-CA:n n=13,x 7/2/6t 5/ (4:2)+FA/5t 4/1 /3t sisääntulojen/ ^AC 9/2(4:2)+FA/8t 7/2/61 6/2/6t tasojen/viivei- -— ———--—-- den lukumäärä η=1θ·χ 8/2/61 8/2/61 4/1/31 • · . . MAC 10/ 3 / 9t 8/2/6t 6/ 2 / 6t · · • Φ1 ... ——............
• Φ .1·1. n=64, x 32/4/12t 22/4/12t 16/3/9t • · • · · MAC 34/5/15t 24/4/12t 18 /4 / 12t Φ ..........1 ....... 1 .................... ™ ...........- » I - 1 • Φ · • • Φ 1 · * φ Φ **:·' Taulukko 2b • — ____ - _ _ ___
• · · [ ..... j I
Kertojatyyppi NR1,T=4 NR1,T=8 NR2, T=4 NR2, T=8 • · .....................
• · ------------------—'— - • Summainmatriisin 2 4 1 3 * 1 leveys, s * · • · · ............... .................. ...........—.................
1 · 1 Mahdollisten 4 8 4 8 15 118612 osittaistulojen lukumäärä SB:n Kood. Ei Ei 1 BR4 1 BR8 kompo De_ n/2 (m+1)-4:1 n/3 (m+2)-8:1 (m+1)- (m+2)(4:1 t/c +n/3( nentit kOOd. (BD4+n/2(4:1)) 8:1)) SE Ei Ei Ei Ei SB:n viive 5t 6t 6t 12t CA:n sisään- ((n-1)/2 + 1) ((17-1)/3+1) (n-1)/2 (m+4)-bit (n-1)/3 (m+6)-bit tulojen lukumäärä (m+2)-bit (m+3)-bit + 11-bit + 11-bit FA-CA:n n=13, x 7 / 4 / 8t 5/ 3 / 6t 6/ 3 / 6t 4/ 2 / 4t s|saa|7- MAC 9 / 4 / 8t 7 / 4 / 8t 8/4 / 8t 6/ 3 / 6t tulojen/--—---—--- tasojen/ n=16’x 9/4/8t 6/3/6t 8 / 4 / 8t 5/3/6t viiveiden MAC 11 /5/10t 8/4/8t 10/5/10t 7/4/8t lukumaaran=64i χ 33/8/16t 22/7/14t 32/ 8 /16t 21/7 /14t MAC 35/9/18t 24/7/14t 34/ 9 / 18t 23/ 8 /16t 4:2-CA:n n=13, x 7/ 2 / 6t 5 / (4:2)+FA / 5t 6/ 2 / 6t 4/1 / 3t ·;· sisään- MAC g /2(4;2)+FA/8t 7/ 2 / 6t 8/2/6t 6/ 2 / 6t tulojen/ —--—--—-- tesojen/ n=16-x 9 /2(4:2)+FA/8t 6/ 2 / 6t 8/ 2 / 6t 5 / (4:2)+FA / 5t '·* * viiveiden MAC 11 / 3 /9t 8/2 /6t 10/ 3 / 9t 7/ 2 / 6t * * lukumäärä . . n=64, x 33/4(4:2)+FA/14t 22/4/12t 32/4/ 12t 21 /4/ 12t * * t • * · • · MAC 35/5/15t 24/4/12t 34 / 5 /15t 23/4/12t • · * · · 1 I _I_1.............1 .......... ..
··· Taulukko 2c • · · · ....... " ' ~~1 ' ' ' ' ......... .....
;***; BR__Boothin uudelleenkoodattu kantaluku-T -kertoja__ • « * *. NR1 Tyypin 1 ei-uudelleenkoodattu kantaluku-T -kertoja (Il ‘-- "I* NR2__Tyypin 2 ei-uudelleenkoodattu kantaluku-T -kertoja ___ * · *·;·* SE__Etumerkkien piiri _ ”**: BR4, BR8, Boothin uudelleenkoodatut piirit vastaaville kantaluvuille BR16 • * ~—..........................— -- BD4 Kantaluku-4:n Boothin dekooderipiiri _ 16 118612 4:1, 8:1, 4:1 Multiplekserit tai tosi/komplementti -multiplekserit, joissa on vastaava määrä t/c, 8:1 t/c sisääntuloja._ SB _ Valintalohko (Selection Block)_
CA, FA-CA, Pakkausmatriisi, CA (Compression Array), joka koostuu koko- (FA, Full 4:2 CA_ Adder) ja puolisummaimista (HA, Half Adder), 4::2-pakkaimista koostuva CA
Taulukko 2a esittää useita ominaisuuksia eri lohkoissa, joita käytetään tekniikan tason Boothin uudelleenkoodatuissa kantaluku-T -kerto-jissa/MAC-yksiköissä «-bittisen kertojan ja m -bittisen kerrottavan kerto-5 miseksi, ja taulukko 1b esittää useita ominaisuuksia eri lohkoissa, joita käytetään uudessa ei-uudelleenkoodatuissa kantaluku-T -kerto-jissa/MAC-yksiköissä «-bittisen kertojan ja m-bittisen kerrottavan kertomiseksi, ja taulukko 2b esittää useita ominaisuuksia eri lohkoissa, joita käytetään tekniikan tason ei-uudelleenkoodatuissa kantaluku-T kerto-10 jissa « -bittisen kertojan ja m -bittisen kerrottavan kertomiseksi, tässä järjestyksessä. Taulukko 2c esittää lyhenteet, joita käytetään taulukoissa 2a ja 2b. Taulukkoja 2a ja 2b analysoitaessa voidaan nähdä, että jokaisen kertojan eri lohkojen viiveiden välillä on merkittäviä eroja jokaisessa kertoja/MAC-yksikkötyypissä useimmille «:n ja «z:n arvoille. 15 Toisin sanoen, näiden kertojien suora liukuhihnatoteutus kärsisi huonosta tasapainosta liukuhihnavaiheiden välillä. Pyrittäessä saavutta-maan parempaa tasapainoa näiden liukuhihnavaiheiden välillä olisi • » \v mahdollista joustavasti kasvattaa ensimmäisen ja viimeisen liukuhihna- ν’: vaiheen suoritustehoa suunnittelemalla CLA-summaimia, joissa on eri ·:**: 20 määriä kokosummaimia (Full Adder, FA) yhdessä ketjutuslohkossa.
Tämän vuoksi näiden lohkojen viiveitä ei osoiteta taulukoissa 2a ja 2b. .*··. Joissakin tapauksissa, esim. kun on pieni «, suurempi kantaluku T, tämä saattaa tarkoittaa erittäin pieniä ketjutuslohkoja, ja siten laajoja ... pinta-aloja. Joka tapauksessa CLA:n käyttäminen voi olla ratkaisu näi- 25 den kahden vaiheen nopeuttamiseksi, vaikka ratkaisu ei ole kaikkein ’*:·* tehokkain. Tilanne on erilainen keskimmäisen kahden liukuhihna- vaiheen (SB ja CA) kohdalla, koska näille lohkoille tarkoitetut huippu-tekniikkaa edustavat piirit on suunniteltu optimoimalla kriittisiä polkuja "V siten, että näiden piirien sisäinen liukuhihnoitus ei olisi kohtuullista.
\ \ 30 Lisäksi näiden lohkojen viiveiden väliset suhteelliset erot ovat hyvin *· erilaisia jokaiselle tyypille (BR (7=8,76), NR1 (7=4,8)) eri «:n arvojen 17 118612 tekniikan tason kertojan/MAC-yksikön rakenteille. Pienempien n\n ja suuremman kantaluku T:n (eli T = 16 ja vapaasti määriteltävä n) tapauksille valintalohko (SB) on hitaampi kuin pakkausmatriisi (CA), kun taas toisissa tapauksissa tilanne on päinvastainen. Tämä tarkoittaa 5 sitä, että nopeampien piirien suunnitteleminen yhdelle tai toiselle lohkolle ei tarjoa yleistä ratkaisua näiden vaiheiden tasapainottamisen ongelmaan. Kaikki nämä vaikeuttavat systemaattisen menetelmän johtamista tekniikan tason kertojan/MAC rakenteiden liukuhihnoittamiseksi tasapainoisilla liukuhihnavaiheilla.
10
Toisaalta jos rinnakkaista joukkoa itsenäisiä tekniikan tason kerto-jia/MAC-yksiköitä käytettäisiin lukuisien vastaavien toimintojen toteuttamiseksi, vaadittaisiin laaja piipinta-ala, vaikka nopeampia lohkoja voitaisiin jakaa vaikuttamatta yleiseen suoritustehoon. Lisäksi, kuten 15 edellä kuvattiin, liukuhihnavaiheet olisi huonosti tasapainotettu, jos liu-kuhihnoitettuja kertojia/MAC-yksiköitä käytettäisiin tällaisessa matriisissa.
Tekniikan tason rinnakkaiset arkkitehtuurit matriisi-vektori -aritmetiikkaa varten on suunniteltu siten, että ne käyttävät useita itsenäisiä kertojia 20 yhdistettynä summaimiin tai useita itsenäisiä MAC-yksiköitä. On myös ·:· 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 mai-! 25 nita, että matriisi-vektori -aritmetiikassa, erityisesti niissä joita käytetään • · t videon/kuvankäsittelyssä, on useita tilanteita, joissa yksi kerrottava :*··: tulee kertoa usealla kertojalla, mikä tarkoittaa, että kerrottavan mahdol lisia osittaistuloja olisi voitu käyttää uudelleen kaikissa näissä kerto- * laskuissa jos olisi käytetty suuren kantaluvun kertolaskumenetelmiä. 30 Esimerkiksi vektori- ja matriisi- laskentaoperaatioissa, joissa samaa kertojaa käytetään useita kertoja, samoja osittaistuloja käytetään use-my.lm ämmin kun kerran laskennan aikana. Kun tällaisia laskentaoperaatioita **:*’ toteutetaan tekniikan tason arkkitehtuureissa, ne laskevat osittaistulot joka kerta kun niitä tarvitaan, mikä johtaa laitteistoresurssien tehotto-:/.{ 35 maan hyväksikäyttöön ja ylimääräiseen tehon kulutukseen. Lisäksi, 18 118612 kuten aiemmin mainittiin, on monia tilanteita, joissa tekniikan tason kertojien liukuhihnavaiheet ovat puhtaasti tasapainoisia ja siten pienentävät laitteen tehokkuutta.
5 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 yhdistämiseksi toisiinsa. Laitteisto käsittää joukon prosessointipiirejä, jotka voivat sisältää esim. laajenne-10 tun artitmeettis-loogisen yksikön, kertolaskuyksikön, akun, valitsimen ja lähdön. Edellä mainittujen prosessointipiirien väliin on sijoitettu puskurimuisteja.
Toinen eurooppalainen hakemusjulkaisu EP 1 050 828 A1 esittää pro-15 sessoria ja kuvankäsittelylaitetta. Kuvankäsittelylaite käsittää yleiskäyttöisen prosessointipiirin, jossa on useita dedikoituja, tiettyyn käyttöön tarkoitettuja liukuhihnapiirejä. Näissä liukuhihnapiireissä on joukko sisäisiä asteita. Liukuhihnapiirien tulotiedot luetaan ensimmäisestä muistista. Kukin fiukuhihnapiiri suorittaa kyseiselle liukuhihnapiirille 20 määritetyn operaation ja operaation suoritettuaan muodostaa lähtötieni· don. Datavalitsin valitsee valintasignaalin perusteella yhden liukuhihna- piirin muodostaman lähtötiedon kerrallaan ja tallentaa valitun lähtötie-don toiseen muistiin. Myös näiden ensimmäisen ja toisen muistin tar-koituksena on toimia puskurimuistina.
! ! 25 • · · ; Keksinnön tavoitteet ja yhteenveto • · • * ···
Nyt esillä olevan keksinnön tavoite on toteuttaa parannettu laskenta-rakenne ja menetelmä laskentaoperaatioiden suorittamiseksi siten, että 30 kyetään tallentamaan laskentaoperaatioiden välituloksia, ja erityisesti siten että kyetään tallentamaan kertolaskuoperaation osittaistuloja. Nyt !···. esillä olevan keksinnön mukaisessa menetelmässä operaation ainakin yhden laskentavaiheen lähtötiedot, esim. liukuhihnavaiheen, tallen- • : netaan muistiin, jolloin tallennettua dataa käytetään tulotietoina toisessa 35 laskentaoperaatiossa. Lisäksi mahdollisten osittalstulojen tallentamiseksi laskentalaitteen muistia voidaan käyttää useissa laskenta- 19 118612 operaatioissa. Nyt esillä olevan keksinnön mukaisen laskentaiaitteen edullinen suoritusmuoto on monitoiminnallinen/konfiguroitavissa useisiin eri rakenteisiin joukolla ohjaussignaaleja. Nyt esillä olevan keksinnön rakenteet voidaan edullisesti toteuttaa VLSI-arkkitehtuurina.
5
Nyt esillä olevasta keksinnöstä on eri suoritusmuotoja, joista joitakin käsitellään yksityiskohtaisemmin myöhemmin tässä selityksessä.
Ensimmäisessä suoritusmuodossa käytetään hyväksi muistiyksikköä, 10 johon mahdolliset osittaistulot voidaan tallentaa ja käyttää uudelleen niissä tapauksissa, joissa sama kerrottava tulee kertoa usealla kertojalla. Ei-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 15 täydellisesti, kun taas toisia toteutetaan vain osittain välttäen näin kaikkein 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 20 komponenttien laskemiseksi toteutetaan vain osittain. Kun toteutetaan •r FIR-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.
25 Toinen suoritusmuoto käyttää hyväkseen rinnakkaista kertojaraken- *;./ netta matriisi-vektori -aritmetiikassa ja on samalla joustava ja tarjoaa • · ’··** mahdollisuuden konfiguroida sitä pienempiin tehtäviin.
»
Keksinnön toisen suoritusmuodon rakenne on rakenne, joka voidaan 30 toteuttaa laitteena joka voidaan konfiguroida toteuttamaan listaa ope-4 raatioista mukaan lukien: (a) useita kertolaskuja; (b) useita MAC-ope- !···, raatioita; (c) useita eritarkkuuksisia (bittileveys) summauk- ’*** sia/vähennyksiä; ja/tai (d) rinnakkaisen yhteenlaskun.
♦ t * * · • · · ·♦· * *:··: 35 Kolmas suoritusmuoto on yhdistelmä rinnakkaisesta kertojarakenteesta ja itseisarvojen summan (SAD) kiihdytinrakenteesta videon ja kuvan 20 118612 käsittelyä (MAVIP) varten. Rakenne on monitoiminnallinen arkkitehtuuri siten, että se voidaan konfiguroida eri arkkitehtuureihin joukolla ohjaus-signaaleita.
5 Tarkkaan ottaen nyt esillä olevan keksinnön mukaiselle menetelmälle on tunnusomaista se, että mainitussa ensimmäisessä laskentaoperaa-tioissa ainakin yhden liukuhihnavaiheen lähtötiedot tallennetaan muistiin ja mainitussa toisessa laskentaoperaatioissa käytetään tallennettua dataa tulotietoina liukuhihnavaiheeseen. Nyt esillä olevan 10 keksinnön mukaiselle järjestelmälle on pääasiassa tunnusomaista se, että järjestelmä edelleen sisältää muistin mainitussa ensimmäisessä laskentaoperaatiossa muodostetun ainakin yhden liukuhihnavaiheen datan tallentamiseksi, ja datannoutajan tallennetun datan käyttämiseksi mainitussa toisessa laskentaoperaatiossa tulotietoina liukuhihnavaihee-15 seen. Nyt esillä olevan keksinnön mukaiselle laitteelle on pääasiassa tunnusomaista se, että laite edelleen sisältää muistin mainitussa ensimmäisessä laskentaoperaatiossa muodostetun ainakin yhden liukuhihnavaiheen datan tallentamiseksi, ja datannoutajan tallennetun datan käyttämiseksi mainitussa toisessa laskentaoperaatiossa 20 tulotietoina liukuhihnavaiheeseen.
• · ti··
Nyt esillä oleva keksintö osoittaa merkittäviä etuja verrattuna tekniikan tason ratkaisuihin. On mahdollista kehittää VLSI-arkkitehtuuri, joka soveltuu signaalinkäsittelysovelluksissa, kuten videon/kuvankäsittelyn ,·. ; 25 algoritmeissa, usein käytettyjen aritmeettisten kaavojen tehokkaaseen 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- 30 jen/MAC:iden toteuttamisessa ja useiden kertolaskujen/MACiiden, joilla :**." on yksi yhteinen operandi (yhteinen kerrottava), toteuttamiseksi. Mer- .*···. kiitäviä pienennyksiä pinta-alan ja tehon kulutuksessa voidaan saavut- • · taa mahdollisten osittaistulojen tallennuskyvyn ja niiden käytöstä i perättäisissä laskentaoperaatioissa johdosta. Myös nyt esillä olevan 35 keksinnön toisen edullisen suoritusmuodon kyky asettaa eri liukuhihna-vaiheita tehonsäästötilaan kun niitä ei tarvita ja/tai käyttää eri liuku- 21 118612 hihnavaiheita eri laskentaoperaatioiden suorittamiseen olennaisesti samanaikaisesti johtaa pienempään tehon kulutukseen. Nopea suorituskyky (suuri suoritusteho) johtuu liukuhihnoituksen käytöstä, jossa on joustava mahdollisuus tasapainottaa eri liukuhihnavaiheiden viiveet ja 5 pienentää koko rakenteen aikaa nopeimman lohkon viiveeseen. Suoritustehon kasvu saavutetaan pinta-alan minimikasvulla ja ilman että tulo/lähtö-väylän leveyttä kasvatetaan verrattuna yksittäiseen liuku-hihnoitettuun tekniikan tason (kantaluku-4 tai suurempi) kertojaan.
10 Muistiyksikkö mahdollistaa myös ensimmäisen liukuhihnavaiheen käyttämisen hyväksi toisessa tehtävässä rinnakkaisesti muiden vaiheiden kanssa, eli samanaikaisesti kertolaskuoperaatioon perustuvan operaation toteuttamisen kanssa voidaan toteuttaa rinnakkaisia sum-maus/vähennysoperaatioita (eri tarkkuuksisia) toiseen tehtävään.
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.
··· ··*· :Y: Nyt esillä olevan keksinnön edullisen suoritusmuodon mukainen konfi- • · guroitava rakenne mahdollistaa saman laitteen käyttämisen uudelleen eri operaatioille. Lisäksi operaatioita voidaan toteuttaa sisääntuloargu-.... 25 menttlen eri bittitarkkuuksiIla, esim. kahdeksalla rinnakkaisella 8-bitin summauksella tai neljällä rinnakkaisella 16-bitin summauksella.
• · « ·
»M
Merkittäviä ajan ja tehon/energiankulutuksen säästöjä saavutetaan, koska kaikkein hintavin osa, eli mahdollisten osittaistulojen laskenta 30 poistetaan useimmista kertolaskuoperaatioista.
·· • · • *· !·. Koska nyt esillä olevan keksinnön edullinen suoritusmuoto on monitoi- • · minnallinen, se voi korvata useita laitekiihdyttimiä, jotka ovat erikoistu-: neet tiettyihin signaalinkäsittelyoperaatioihin, kuten esimerkiksi 35 videon/kuvankäsittelyoperaatioihin.
118612 22
Piirustusten lyhyt kuvaus
Nyt esillä olevaa keksintöä selostetaan seuraavassa tarkemmin viitaten samalla oheisiin piirustuksiin, joissa 5 kuva 1 kuvaa tekniikan tason kantaluku-4:n Boothin uudelleen-koodattujen kertojien tyypillistä rakennetta, kuva2 kuvaa kantaluku-T:n Boothin uudelleenkoodattujen (r>8) 10 tai ei-uudelleenkoodattujen (r>4) kertojien yleistä raken netta, kuva 3a kuvaa summauslohkon yhtä suoritusmuotoa rinnakkai sessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa 15 summauslohko toteutetaan yleisenä pakkausmatriisina n/t:lle valituille osittaistuloille ja takaisinkytkennän summa-ja muistibittitermeille, kuva 3b kuvaa summauslohkon toista suoritusmuotoa rinnakkai- 20 sessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa a summainlohko toteutetaan jaettuna pakkausmatriisina, • * • · · * kuva 4 esittää itseisarvojen summa -arkkitehtuurin yleisen raken-teen, jossa DS-yksikkö toimii vähentäjänä, jota seuraavat ... . 25 XOR-portit, • ·· • φ • · · • · *·♦·* kuva 5 esittää DS-yksikön yleisen rakenteen, kuva 6 kuvaa esimerkkiä itseisarvojen summa -arkkitehtuurista, :...Σ 30 jossa p=1, s=8, n=8, ·· • · • ·♦ !<··. kuva 7 kuvaa yksinkertaistettuna lohkokaavioina nyt esillä olevan • · *·* keksinnön ensimmäisen edullisen suoritusmuodon mukai- • · : sen laskentalaitteen yleisen rakenteen, 35 imi 2 23 kuva 8 kuvaa yksinkertaistettuna lohkokaaviona nyt esillä olevan keksinnön toisen suoritusmuodon mukaisen konfiguroita-van laskentalaitteen yleistä rakennetta useille kerto-laskuille/MAC-operaatioille, 5 kuva 9 kuvaa nyt esillä olevan keksinnön mukaisen arkkitehtuurin edullista suoritusmuotoa kahden samanaikaisen (13x13)-bittisen MAC-operaation matriisi-vektori aritmetiikalle, 10 kuva 10a kuvaa rekisterimuistia, jossa on osoitusyksikkö joka toimii 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 monitoiminnallisen arkkitehtuurin yleistä rakennetta nyt esillä olevan keksinnön mukaisesti, 20 kuva 12 kuvaa esimerkkitoteutusta AA/DSA-yksiköstä, ··· § ··«· :Y: kuva 13 kuvaa esimerkkitoteutusta monitoiminnallisesta arkkiteh-
• I
tuurista videon ja kuvan käsittelyä varten, joka on saatu yhdistämällä kuvan 6 SAD-rakenne ja kuvan 9 matriisi- .·. ; 25 vektori -aritmetiikan arkkitehtuuri, ja
• M
• ·
IM
• · **** kuva 14 kuvaa yksinkertaistettuna lohkokaaviona keksinnön edulli sen suoritusmuodon mukaista laitetta.
M· • • M·
Ml !...·* 30 Keksinnön yksityiskohtainen kuvaus ·· • ·
• M
.···. Nyt esillä olevan keksinnön ensimmäistä edullista suoritusmuotoa • · kuvataan seuraavassa yksityiskohtaisemmin. Nyt esillä olevan keksin-: nön mukaisen laitteen ensimmäisen suoritusmuodon yleistä rakennetta 35 kuvataan kuvassa 7. Laite 1 jaetaan joukoksi eri liukuhihnavaiheita P1 - P4. Tässä suoritusmuodossa laite 1 käsittää neljä liukuhihnavaiheita, 24 118612 mutta on selvää, että nyt esillä olevan keksinnön puitteissa liukuhihna-vaiheiden lukumäärä voi olla muu kuin neljä. Rakenne myös yhdistää muistilohkon, jossa yhtä operaatioita vastaavan ensimmäisen liuku-hihnavaiheen lähdöt voidaan kirjoittaa ja käyttää uudelleen sisään-5 tulona toisen operaation toiseen liukuhihnavaiheeseen.
Liukuhihnoitus on yleinen tapa kasvattaa järjestelmän suoritustehoa useiden samankaltaisten toimintojen toteuttamiseksi, eli kertolaskun ja/tai MACin. Pohdittaessa tyypillistä tekniikan tason kantaluku-T:n 10 Boothin uudelleenkoodattujen (T-8, 16) tai ei-uudelleenkoodattujen (T=4, 8) kertojarakenteiden liukuhihnatoteutusta ensimmäinen liuku-hihnavaihe P1 olisi s summaimien matriisi, jossa s annetaan taulukossa 2a, toinen vaihe P2 olisi valintalohko, kolmas vaihe P3 olisi pak-kausmatriisi, ja loput useat vaiheet P4 (joiden numero olisi erilainen eri 15 toteutuksissa) muodostaisivat lopullisen summaimen.
Nyt esillä olevan keksinnön ensimmäisen edullisen suoritusmuodon mukaisen laitteen yksi toteutus yhdistää useita (rivistö) kertojia/MAC- yksiköitä. Kantaluku-T:n Boothin uudelleenkoodattujen (T=8, 16) tai ei- 20 uudelleenkoodattujen (T=4, 8) kertojien rivistöjen lajitelman yleinen ·:· rakenne esitetään kaavallisesti kuvassa 7. Kertojien/MAC-yksiköiden .·!*. rivistön rakenteen edullinen suoritusmuoto voidaan yleisesti esittää liukuhihnoitettuna laitteena 1, jossa ensimmäinen liukuhihnavaihe P1 käsittää useita, esimerkiksi p, summaimien matriiseja (AA) 2, ja kaikki ! 25 5 summaimien matriisit 2 jakavat samat sisääntulolinjat 6. Toinen liuku- « · · hihnavaihe P2 on useita, esimerkiksi s, valintalohkoja (SB) 3, kolmas vaihe P3 on useita, esimerkiksi q, pakkausmatriiseja (CA) 4, ja neljäs liukuhihnavaihe P4 käsittää useita, esimerkiksi u, lopullisia CLA-sum-maimia 5. Perustason toiminnalliset lohkot (AA, SB, CA ja CLA) voivat 30 itse asiassa olla samoja, kuin mitä voidaan käyttää vastaavan tyyppi-sissä tekniikan tason kertojissa ja/tai MAC-yksiköissä. Näin ollen tapaus P = q = u = v = i vastaa tekniikan tason kertojan/MAC-yksikön • m **:*' rakenteen tapausta. Pääasiallinen ero on se, että laite sisältää muistin : 21, jota voidaan käyttää tallentamaan yhden tai useamman laskenta- ·:·*: 35 operaation välituloksia. Yksi ei-rajoittava esimerkki tällaisesta välitulok sesta ovat mahdolliset osittaistulot. Multiplekseriä 22 voidaan käyttää 25 118612 valitsemaan joko ensimmäisen liukuhihnavaiheen tai muistin 21 lähtö toisen liukuhihnavaiheen P2 sisääntulona. Edullisessa suoritus* muodossa tekniikan tason rakenteen ainakin jotkin peruslohkot korvataan useammalla kuin yhdellä peruslohkolla. Laitteen toiminta riippuu 5 useista parametreista (p, q, u ja v), joiden asianmukaisella valinnalla voidaan suunnitella laite, jolla on tasapainoiset liukuhihnavaiheet. Yhden liukuhihnavaiheen lohkot toimivat sopivimmin aikalomitetusti siten, että liukuhihnavaiheiden suoritustehoja voidaan vaihdella, jotta ne tehtäisiin suunnilleen yhtä suuriksi, ja jotta saavutettaisiin haluttu toi-10 mintavaiheen kesto.
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 daa, dsb, dca, dcla, 20 tässä järjestyksessä, ja haluttu järjestelmän suoritusteho on Ndes kerto- t ;j· laskua/MAC-operaatiota sekunnissa, jolloin haluttu toimintavaiheen .'v. kesto valitaan olemaan Tdes sekuntia, niin että Tdes <iiNdest ja mainitut suunnitteluparametrit valitaan olemaan p = \DAAiTdes\ q = \DSB!Tdes'], *;*.! u = \DCA!Tdes\ ja v = [DCLA/Tdes 1, missä esitysmuoto [x~\ tarkoittaa .* 25 pyöristystä seuraavaan kokonaislukuun.
• tt t » #·Μ *···* Kuva 8 esittää nyt esillä olevan keksinnön toisen edullisen suoritus muodon mukaisen laskentalaitteen. Nyt esillä olevan keksinnön toisen edullisen suoritusmuodon mukaisen rakenteen konfiguroitavuus saa-·’.*"♦· 30 vutetaan sisällyttämällä yksi tai useampia valintavälineitä, esim. multi- :·!^ plekserit 15, 16,17 ensimmäisen P1, kolmannen P3 ja neljännen liuku- I—, hihnavaiheen P4 sisääntuloihin. Multiplekserit 15,16,17 ovat edullisesti 2:1-multipleksereitä. Niitä ohjataan ohjaussignaaleilla ch c2, ja c3, tässä i järjestyksessä. Rakenne käsittää myös lähtövalitsimen 20, jota "**: 35 ohjataan ensimmäisellä ohjaussignaalilla c* ja toisen c2 ja kolmannen ohjaussignaalin c3 TAI-yhdistelmästä (eli c2vc3), Lähtövalitsin 20 välit- 26 118612 see rakenteen lähtöväylään 14 yhdistettävää dataa ensimmäisestä P1 tai viimeisestä liukuhihnavaiheesta 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 5 sisääntulot on yhdistetty siten, että jos toiset sisääntulot aktivoidaan, rakenne toimii kertolasku/MAC operaatiolaitteena. Tällöin rakenteen eri konfiguraatiot ovat mahdollisia ohjaussignaalien ch c2, ja c3 eri joukkoihin. Valintavälineitä voidaan käyttää uudelleenreitittämään laitteen sisäisiä signaalipolkuja (-polkua) ja myös valitsemaan lähtösignaali 10 sisäisten signaalien joukosta. Valintavälineet valitsevat ainakin yhden liukuhihnavaiheen sisääntulon ainakin kahdesta vaihtoehdosta. Konfiguraation riippuvuus näistä signaaleista on seuraavanlainen.
Kun kaikki ohjaussignaalit c1t c2, c3 asetetaan loogiseen 1-tilaan, eli 15 0^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, c3 ovat 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 20 2) aktivoidaan muiden ollessa vapaana. Kolmas vaihtoehto on, että ensimmäinen ohjaussignaali Ci asetetaan loogiseen 1-tilaan, kun taas ,'y. toinen c2ja kolmas ohjaussignaali c3 asetetaan loogiseen 0-tilaan (c^l; .•V*. c2=c3=0). Tämä tarkoittaa, että rakenne käyttäytyy laskurina. Ainoas- taan pakkausmatriisit 4 ja lopulliset summaimet 5 toimivat, kun taas .* [ 25 summainmatriisit ja valintalohkot ovat vapaat. Neljännessä vaihto- φ · · *;e" ehdossa sekä ensimmäinen Ci että toinen ohjaussignaali c2 asetetaan loogiseen 1-tilaan ja kolmas ohjaussignaali c3 asetetaan loogiseen 0-tilaan (ci=c2=1: c3=0). Tässä tapauksessa rakenne käyttäytyy nopeana laajan tarkkuuden summaimena. Vielä yhdessä vaihtoehdossa, kun :"4‘: 30 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 c1t c2, c3 tilasta ovat ainoastaan yksi mahdollinen vaihtoehto, mutta myös muita vaihtoehtoja voidaan soveltaa nyt esillä ·:··: 35 olevan keksinnön puitteissa. Tämä pätee myös muihin ohjaussignaalei- hin, joita kuvataan myöhemmin tässä selityksessä.
27 1 1 861 2
Kuvassa 8 on kaksi muuta ohjaussignaalia c4 ja c5, jotka lisäävät monitoiminnallisuutta rakenteeseen uudelleenkonfiguroimatta sitä. Neljäs ohjaussignaali aktivoi (jos esim. c4=1) tai disaktivoi (jos esim.
5 c4-0) takaisinkytkentäpiirejä paukkausmatriisien 4 lähtöjen ja sisääntulojen välillä kolmannessa liukuhihnavaiheessa P3. Tällöin rakenne toimii kertojana jos Ci-Ct-Cz-I, c4=0 ja se toimii MAC-yksik-könä jos Ci=c2=c3=C4=l Viides ohjaussignaali c5(joka voi olla 1-, 2-, tai 3-bittinen signaali) ohjaa summain/vähentäjien tarkkuutta ensimmäi-10 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-15 maimina/vähentäjinä (m/^-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-20 den toteuttamisen.
·«· *:*; Arkkitehtuurit matriisi-vektori -aritmetiikalle « · · • · ♦ • · :T: Seuraavassa nyt esillä olevan keksinnön mukaisten kertoja/MAC- ·:··· yksikkö rakenteiden edullisia suoritusmuotoja käytetään sellaisten mat- 25 riisi-vektori operaatioiden suorittamisessa kuten skalaari vektoriin tai ,···! matriisiin -kertolasku, matriisi vektoriin -kertolasku (ja siten matriisi • * matriisiin -kertolasku, käänteinen matriisilaskenta, värikonversiot, . nopeat kohtisuorat muunnokset, esim. FFT, nopea DCT, jne.) ja kon- ·;;· voluutio tai FIR-suodatus, ja siten suodatinrivistö ja erityisesti diskreetit 30 wavelet-muunnostoteutukset. Näille operaatioille on yhteistä, että yksi ;\t> kerrottava x kerrotaan usealla kertojilla ah / = 1,...,K. Toisaalta suuren • :*·*. kantaluvun kertolaskumenetelmien olennainen piirre on, että merkittävä ··· . ·. kompleksisuus siirretään ensimmäiseen vaiheeseen (osittaistulojen i,:: muodostaminen) toisesta vaiheesta (osittaistulojen summaus). Mitä 35 suurempi kantaluku on, sitä enemmän kompleksisuutta on siirrettävä.
28 118612 Tämän edullisen sovelluksen pääasiallisena ajatuksena on laskea yhteisen kerrottavan * mahdollisia osittaistuloja vain kerran kun se kerrotaan ensimmäisellä kertojalla alt ja sen jälkeen käyttää uudelleen näitä mahdollisia osittaistuloja kerrottaessa x lopuilla kertojilla aif 5 * = 2,..., K. Tällä tavoin vain yksi K kertolaskuista on kokonaan suoritettu kun K-1 kertolaskua suoritetaan osittain suorittamatta kaikkein moni-mutkaisinta osaa suuri-kantaluku -kertolaskumenetelmästä (eli mahdollisten osittaistulojen laskenta). Epäilemättä tällöin saavutetaan merkittäviä ajan ja tehon/energiankulutuksen säästöjä.
10 Tämän ajatuksen mukaan matriisi-vektori -aritmetiikalle ehdotetun arkkitehtuurin yleinen rakenne voidaan johtaa nyt esillä olevan keksinnön ensimmäisen edullisen suoritusmuodon kertoja/MAC-yksikkö -rakenteesta samoin kuin nyt esillä olevan keksinnön toisen edullisen suori-15 tusmuodon uudelleenkonfiguroitavasta laitteesta. Tämä saavutetaan käyttämällä hyväksi muistia 21 kun kuvissa 7 ja 8 esitetään. On olemassa kuudes ohjaussignaali c6, jonka mukaan muisti 21 on joko avoinna (kun kuudes ohjaussignaali c6 on esim. asetettu loogiseen 0:aan (matala)) tai suljettu (kun kuudes ohjaussignaali c6 on esim. 20 asetettu loogiseen 1:een (korkea)) kirjoittamista varten. Kun muisti 21 on asetettu avoimeksi kirjoittamista varten, mahdolliset osittaistulot voi- !v. daan tallentaa useiden summainmatriisien 2 lähdöistä muistiin 21.
• · ·
Samaa ohjaussignaalia c6 voidaan käyttää ohjaamaan 2:1 multiplekse- * ! riä 22. Multiplekserin 22 ensimmäinen sisääntulo on yhteydessä usei- * j 25 den summainmatriisien 2 lähtöön, ja multiplekserin 22 toinen 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 O.aan) tai muistista 21 (kun kuudes ohjaussignaali c6 30 on asetettu loogiseen 1:een).
·· * ·
Kuva 9 kuvaa matriisi-vektori -aritmetiikan esimerkkirakenteen tapauk-**:** seen, jossa kaksi {13x13)-bittistä MAC-operaatioita voidaan suorittaa
Lii samanaikaisesti. Rakenne yhdistää kaksi erillistä vafintalohkoa 3a, 3b, ·:··: 35 joita ohjaa kahden eri kertojan bitit. Joko saman kerrottavan (jos c2-c3) mahdolliset osittaistulot tai kahden eri kerrottavan (jos c2 φ c3 ) 29 118612 mahdolliset osittaistuiot 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).
5 Näiden pakkausmatriisien summan S ja muistibitin C lähdöt voidaan joko yhdistää (4x31)-sisääntulo pakkausmatriisissa, jota seuraa lopullinen summain yhden keräyssummatermin muodostamiseksi, tai ne voidaan summata pareittain kahden keräyssummatermin muodostamiseksi. Tällä tavoin kaksi erillistä pakkausmatriisia, joilla kummallakin on 10 pienempi syvyys ja näin ollen lyhyempi takaisinkytkentäpiiri, toimii kerä-yssummakerroksessa. Tämän jälkeen kaksi paria summa- ja muisti-bittitermejä joko summataan erikseen (pareittain) kahteen CPAihan tai summataan yhdessä kolmannessa summauslohkossa. Ensimmäisessä tapauksessa kahden erillisen operaation (esim. kaksi lähtökompo-15 nenttia matriisi-vektori -kertolaskussa) tulokset saadaan samanaikaisesti. Toisessa tapauksessa yhden kompleksioperaation laskenta jaetaan kahteen pienempään ja sitten tulokset yhdistetään.
Itse asiassa mitä tahansa lue/kirjoita -muistia voidaan käyttää matriisi- 20 vektori -aritmetiikalle ehdotetussa rakenteessa. Kaksi suositeltavaa ·:· muistityyppiä kuvataan kuvissa 10a ja 10b. Kuvassa 10a kuvattu muis- !v. tityyppi vastaa rekisterimuistin tapausta, jossa on R rekisteriä pituudel- taan L, jossa L on tarpeeksi suuri tallentamaan yhden kerrottavan *·*! mahdolliset osittaistuiot yhteen rekisteriin: L>(m+t)s, jossa m on ker- \ ] 25 rottavan bittitarkkuus, r = log7\ T on käytettävän kertolaskumenetel- • » · ; / män kantaluku, ja s on summainten/vähentäjien lukumäärä jokaisessa :*··: summainmatriisissa. Tämän muistityypin osoitusyksikön tulisi voida tuottaa osoitteita kiertävään mod P -sääntöön mille tahansa positiiviselle ...Ί* kokonaisluvulle P<R. Tämä tarkoittaa sitä, että toimintavaiheessa !*": 30 t = 1,2,... osoitusyksikkö tuottaa a{t) = (t-1)mod P senhetkisenä osoite- :*] arvona. Sitten mahdollisen osittaistulon arvo sisääntulolinjalla kirjoite- i..“ taan rekisteriin a{t), a(t) e {0,7,...,/? - ;}, jos kuudes ohjaussignaali c6 on *·”* matala (muistiin), tai sisältö rekisteristä a(t), a(t)e {<9,7,...,/?-7}, eli !,;** aiemmin tallennetut mahdollisen osittaistulon arvot, kirjoitetaan *:**: 35 lähtölinjaan, jos kuudes ohjaussignaali c6 on korkea (muistista).
30 118612
Kuvassa 10b kuvattu toinen muistityyppi toimii samankaltaisella mod/> tavalla, mutta on järjestetty siirtorekisteriksi, jolla on ohjattavissa oleva takaisinkytkentä. Jokaisessa toimintavaiheessa data p:nnestä rekisteri-yksiköstä, p = Ο,.,.,Ρ-2 siirretään (p + /):een rekisteriyksikköön jos jäl- 5 kimmäistä ei pysäytetä. Jokaisesta rekisteriyksiköstä on takaisin-kytkentälinjoja. Kaikki takaisinkytkentälinjat syötetään (R + l):l multiplekseriin, jossa on myös sisääntulolinja toisena sisääntulona (muistiin). Multiplekseriä ohjataan (log/?)-bittisellä signaalilla, jonka arvo on asetettu olemaan c6P siten, että joko dataa sisääntulolinjasta 10 (jos c6=0) tai takaisinkytkentäpiiristä, joka on peräisin (?-7):sen rekisterin lähdöstä (jos c6=l) kirjoitetaan 0:nteen rekisteriin. Muistin lähtö otetaan aina 0 :nnesta rekisteristä.
Seuraavassa käsitellään yksityiskohtaisemmin kolmen sellaisen ope-15 raation suorittamista, joita toteutetaan usein videon ja kuvan käsittelyssä. On huomattava, että nämä ovat vain esimerkkitoteutuksia ainoastaan tietyille operaatioille, mutta nyt esillä olevaa keksintöä ei rajoiteta ainoastaan näihin operaatioihin eikä tarkasti esiteltyihin menetelmiin. Kaikki muut operaatiot joihin yleisen kerrottavan kertolasku useilla 20 kertojilla liittyy voidaan toteuttaa samalla tavoin keksinnön mukaisella ·:· matriisi-vektori -aritmetiikan arkkitehtuurilla. Myös muita samankaltaisia ···· * »Y; algoritmeja voidaan kehittää tarkastelluille operaatioille.
• · «·· • « « • · ·
Ensiksi tarkastellaan skalaari vektoriin -kertolaskuoperaation xa ...! 25 suorittamista, mikä on kaikkein ilmeisin tapaus jossa yleinen kerrottava (skalaari) x tulee kertoa suurella määrällä kertojia a,, i = 1,...,K, vekto- • · *···* rin a komponenteilla. Ensimmäisessä vaiheessa, kun toteutetaan ylei sen kerrottavan kertolaskua ensimmäisellä kertojalla a{, kuudes ohjaussignaali c6 asetetaan matalaksi siten että *:n mahdolliset 30 osittaistulot siirtyvät suoraan ensimmäisen liukuhihnavaiheen P1 sum-mainmatriiseista 2 toisen liukuhihnavaiheen P2 useisiin valintalohkoihin • ·· i···. 3, ja samaan aikaan ne kirjoitetaan muistiin 21. Muisti 21 on asetettu toimimaan modi-tilan mukaisesti ja kaikki sen rekisterit o:nnetta lukuun : ottamatta on pysäytetty. Kaikkia paitsi ensimmäinen ensimmäisen liu- 35 kuhihnavaiheen summainmatriiseista 2a on myös pysäytetty, jos vain yksi skalaari yhteen tai useaan vektoriin -kertolasku tulee toteuttaa.
31 118612
Toisesta toimintavaiheesta alkaen kuudes ohjaussignaali c6 asetetaan niin korkeaksi, että muisti 21 suljetaan kirjoittamista varten ja *:n mahdolliset osittaistulot, jotka on kirjoitettu muistiin ensimmäisen vaiheen jälkeen, noudetaan muistista 21 valintalohkoihin 3 vastaavan 2:1-5 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ä kaikkein kalleimman osan, nimittäin mahdollisten osittaistulojen lasken-10 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 tarvitse välttämättä tasapainottaa muiden liukuhihnavaiheiden P2-P4 15 kanssa, koska se on pois kriittiseltä polulta K toimintavaiheen K-1:n aikana. Vielä yksi etu on, että kerrottava x noudetaan vain kerran ulkoisesta muistista (ei näytetty), kun taas perinteisessä toteutuksessa se pitäisi noutaa K kertaa.
20 Toinen tässä tarkasteltava operaatio on matriisi-vektori -kertolasku ·:. p s = Ax, tai vastaavasti, s,· = jα,-jxj, /=1,2,...,κ • * · . , • * y=l ··· v ; Tämä operaatio on osa useista lineaarisen algebran ja videon/kuvan käsittelyn algoritmeista, kuten matriisi-matriisiin -kertolasku, käänteinen V·: mat riisi lasku, kuvan väriavaruus-konversiot, nopeat ortogonaaliset :***: 25 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) 7 = 1,...,^, x kerrotaan ·· * : *·· 30 K kertojalla, matriisin j A :nnen sarakkeen komponentilla. Muistin 21 «·· s...! 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 xj komponentille j = \,...,P, x. Mahdolliset osittaistulot tallennetaan 32 118612 sitten muistiin 21 edellyttäen että se sisältää tarpeeksi rekistereitä (eli P<R).
Kuten verkkoteoriasta tiedetään, edellä mainittu kriittinen polku ilmaisee 5 pisimmän reitin aloitussolmusta päätössolmuun. Nyt esillä olevaan keksintöön sovellettuna kriittinen polku ilmaisee pisimmän reitin laskenta-prosessiin alusta laskentaprosessin loppuun liukuhihnoitetussa järjestelmässä. Kriittisen polun pituus kuvaa aikaa jonka laskentaoperaation suorittaminen kestää. Kriittisen polun analyysiä käyttämällä on mahdol-10 lista löytää sellaisia järjestelmän osia, jotka vaikuttavat kriittisen polun 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 15 polkuun.
Jotta voitaisiin alustaa (A" x/^-matriisi vektoriin -kertolasku, nyt esillä olevan keksinnön edullisen suoritusmuodon mukainen rakenne konfiguroidaan asettamalla sopivia arvoja ohjaussignaalille seuraavalla tavalla.
20 Muisti 21 asetetaan toimimaan mod p -tilan mukaisesti ja muistin rekisterit P - R pysäytetään. Arkkitehtuurin pakkausmatriisi 4 asetetaan . toimimaan laskurina asettamalla viides ohjaussignaali c5 korkeaksi.
·;·; Kuudes ohjaussignaali c6 asetetaan matalaksi alussa kun muodoste- :.v taan mahdollisia osittaistuloja jokaiselle komponentille * , j = i,...,p, p • · · v ** 25 toimintavaiheen t = p+ 1,.,., p+p aikana, missä p vaihetta on ensimmäi- sen liukuhihnavaiheen viive, joka vastaa siinä olevien summainmat-riisien määrää. Näiden toimintavaiheiden aikana komponentin xJt j = mahdolliset osittaistulot välitetään suoraan ensimmäisen liukuhihnavaiheen P1 summainmatriiseista 2 multiplekserin 22 kautta ·:· 30 toisen liukuhihnavaiheen P2 useisiin valintalohkoihin 3, ja samaan aikaa ne kirjoitetaan muistiin 21. Näin ollen matriisin A ensimmäisen • · · ./ rivin kertolasku sisääntulovektorilla x toteutetaan ja olennaisesti J’·* samanaikaisesti jokaisen komponentin *., j=1,...,P mahdolliset • · *·;·* osittaistulot tallennetaan peräkkäisiin rekistereihin. Toimintavaiheen : 35 p + P jälkeen ohjaussignaali c6 asetetaan korkeaksi niin, että muisti 21 on suljettu kirjoittamista varten ja mahdolliset osittaistulot jenille, 1 J6<JJ 2 33 j = l.....'/», 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-1 kertaa kun-5 nes kaikki matriisin A rivit on kerrottu sisääntulovektorilla χ. Toimintavaiheesta p+P alkaen kaikki summainmatriisit 2 (ensimmäinen mukaan luettuna) joko pysäytetään tai vaihdetaan toiseen tehtävään. Näin ollen ainoastaan ? PK :sta kertolaskusta toteutetaan kokonaan, kun P(K~i) niistä toteutetaan osittain, ilman ensimmäistä, kaikkein 10 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 15 mukaisen rakenteen konvoluution tai FIR-suodatuksen toteutusta. Suoritettavan operaatio on p
jxi~j’ ^ — 1 f->K
j=1 jossa yleensä p«k. FIR-suodatuksen toteuttamiseksi nyt esillä olevan keksinnön mukaiselle rakenteelle matriisi-vektori -aritmetiikkaan on 20 kaksi mahdollista strategiaa.
* · t ·*·· ‘•V: Ensimmäisessä strategiassa FIR-suodatusta tarkastellaan P-diagonaa- :T: lisen (tai P-sidotun) matriisin a kertolaskuna sisääntulovektorilla, johon on liitetty P komponentteja xhi = -P+ 1,...,0 jotka vastaavat negatiivisia 25 indeksejä ja siirretään P bittiä alaspäin. Kun ottaa huomioon, että mat-.···'. riisi a on hajanainen (sillä on ei-nolla-tuloja vain P-diagonaaleissa), edellä mainittua yleistä strategiaa matriisi-vektori -kertolaskulle muun-. netaan hieman FIR-suodatuksen tapausta varten. Matriisi /:n ···:’ / = i„..,a::s rivi, a käsittää vain P ei-nolla tuloa, suodatinkertoimet a.·, ··· j *·;·: 30 j-1.....p , sarakkeissa /,/+1.....i + p-i. Tässä suoritusmuodossa f*·· mahdollisia osittaistuloja ei tallenneta muistiin samanaikaisesti kaikkien sisääntulovektorin komponenttien osalta, vaan ainoastaan P kompo-:nenttien mahdolliset osittaistulot tallennetaan samanaikaisesti. Joka l P:ssä toimintavaiheessa lasketaan uusi joukko mahdollisia osittaistuloja 35 senhetkiselle tulonäytteelle useissa summainmatriiseissa, ja se korvaa 34 118612 joukon mahdollisia osittaistuloja, joka on tallennettu muistiin 21 P operaatiovaihetta aiemmin. Tämä saavutetaan asettamalla kuudes ohjaussignaali c6 matalaksi jokaisessa P toimintavaiheessa. Näin ollen useita summainmatriiseja 2 ei voi kokonaan pysäyttää, mutta ne voivat 5 toimia P kertaa hitaammin kuin toteutuksessa, jossa ei tallenneta mahdollisia osittaistuloja. Vain P+K PK:sta kertolaskusta toteutetaan kokonaan, kun muut toteutetaan vain osittain.
Toisessa strategiassa FIR-suodatuksen toteuttamiseksi mahdolliset 10 osittaistulot P suodatinkertoimille tallennetaan muistiin 21 laskettaessa ensimmäistä lähtönäytettä. Nämä mahdolliset osittaistulot noudetaan sitten kierretysti muistista 21 kun lasketaan muita K-1 lähtönäytteitä. Tämä tarkoittaa, että vain P PK:sta kertolaskusta on kokonaan toteutettu, kun muut on toteutettu vain osittain. Kaikki summainmatriisit 2 15 voidaan pysäyttää vai vaihtaa toiseen tehtävään heti kun mahdolliset osittaistulot suodatinkertoimille on tallennettu muistiin 21. Näin ollen toinen strategia on vielä edullisempi kuin ensimmäinen. Tämä strategia on kuitenkin mahdollinen vain jos ensimmäisen iiukuhihnavaiheen P1 summain/vähentäjät 2 ovat tarpeeksi tarkkoja laskemaan mahdollisia 20 osittaistuloja suodatinkertoimille.
Monitoiminnalliset arkkitehtuurit videon/kuvan käsittelylle «««· • · \v Nyt esillä olevan keksinnön rakenne voidaan edullisesti toteuttaa 0 · monitoiminnallisena arkkitehtuurina videon/kuvan käsittelylle (MAVIP).
*:··: 25 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 erotusten itseisarvojen summa (Sum of Absolute Differences, SAD) - arkkitehtuuria 24. SAD-arkkitehtuurin yleinen rakenne kuvataan *::: 30 kuvassa 4a. Se koostuu useista niin sanotun erotus-etumerkki • · **:*’ (Difference-Sign, DS) -yksikön 25 p-matriiseista, jotka toimivat aika- f ··· lomitetusta, pakkausmatriisista 4, jossa on takaisinkytkentä, sekä lopul- T": lisesta summaimesta 5, jota seuraa minimiarvioijayksikkö (M) 26, jota : ]·. tarvitaan liikkeen estimointiprosessissa (perustuu SAD:hen), mutta jota l 35 ei tarvita itse SAD-laskentaan. DS-yksiköiden 25 jokainen matriisi (lyhyemmin DS-matriisi tai DSA) koostuu s DS-yksiköstä 27 (kuva 5), 35 118612 joista jokainen on oleellisesti 8-bittinen vähentäjä, jota seuraavat XOR-portit 28 etumerkkibitin ja muiden erotusbittien välillä. Sisääntulo pak-kausmatriisiin muodostetaan s ^-bittisistä numeroista (etumerkkidata), s n-bittisistä numeroista (erotusdata, useimmiten n-8), ja kahdesta 5 (/7+logK-7)-bittisestä takaisinkytkennästä (useimmiten K-256). Lopullisella summaimella voi olla (n+logK)-bittinen tarkkuus. Esimerkki SAD-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 6.
10 Kun verrataan kuvan 4 SAD-rakennetta kertojaan perustuviin rakenteisiin kuvassa 8 ja erityisesti kuvan 6 esimerkkiä kuvien 8 tai 9 rakenteisiin voidaan huomata, että näiden kahden tyyppisten rakenteiden välillä on merkittäviä yhtäläisyyksiä. Molemmat näistä rakennetyypeistä koostuvat oleellisesti lohkosta, joka sisältää useita 15 summaimia tai vähentäjiä 4, 27 (joita seuraavat XOR-portit SAD.n tapauksessa), datanreitityslohkosta, joka on valintalohko 3 kertojaan perustuvien rakenteiden tapauksessa ja suorat yhteydet SAD:n tapauksessa, ja summauslohkosta, joka koostuu summainmatriisista 4 ja lopullisesta summaimesta 5. Tätä samankaltaisuutta voidaan käyttää 20 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 ohjaussignaaleja. Tällä tavoin voidaan saavuttaa lisää arkkitehtuurin monitoiminnallisuutta muutaman signaalin :·: | 25 ohjaaman yksinkertaisen logiikan minimikustannuksilla.
• · V·: On olemassa useita vaihtoehtoja SAD-rakenteen yhdistämiseksi kerto- jaan perustuvien rakenteiden kanssa. Kuva 11 esittää yhden näistä videon/kuvan käsittelyn monitoiminnallisen arkkitehtuurin yleisen 30 rakenteen vaihtoehdoista. Tämä arkkitehtuuri on johdettu yksinkertaisin .···. muunnoksin jokaisessa perustason kertojaan perustuvan rakenteen lohkossa. Tässä tapauksessa perusrakenne on kuvan 8 matriisi-vektori -aritmetiikan arkkitehtuuri. Kuva 13 esittää esimerkkitoteutuksen ··· videon/kuvan käsittelyn monitoiminnallisesta arkkitehtuurista, joka on : 35 johdettu kuva 9 matriisi-vektori -aritmetiikan arkkitehtuurista.
• m · 1 · 36 118612
Yhdessä toteutuksessa videon/kuvan käsittelyn monitoiminnallinen arkkitehtuuri sisältää summainmatriiseja 2, jota ensimmäisestä ohjaussignaalista q ja viidennestä ohjaussignaalista cs riippuen voidaan konfiguroida joko summain/vähentäjiin tai DS-yksiköihin ja näin ollen ne 5 merkitään AA/DSA. AA/DSA-yksikön mahdollinen toteutus yleisessä tapauksessa esitetään kaaviollisesti kuvassa 12. Jokainen matriisin m-bittinen summain/vähentäjä koostuu r peräkkäisestä (m/r)-bittisestä summaimesta/vähentäjästä, jota seuraavat XOR-portit (kuvassa 13, m=16, r=2). XOR-portit ovat aktiivisia vain tapauksessa cjcs=l, eli 10 tapauksessa (ci,c^-(1,0), jolloin arkkitehtuuri toimii SAD-arkkitehtuu-rina. Toisaalta muistibitin lisääntyminen r peräkkäisen (m/rj-bittisen summaimen/vähentäjän välillä tarjotaan vain jos c5=0. Ensimmäisen ohjaussignaalin cj ja viidennen ohjaussignaalin c5 yhdistelmää käytetään myös ohjaamaan sitä menevätkö eri sisääntulot (cjc5=0) (yhteen-15 laskettavat tai SAD-operandit) vai yksi sisääntulo (cjc5=l) (kerrottava) matriisiin. Sitä toteutetaanko summaus tai vähennys ohjaa signaali cin, joka riippuu kertolaskumenetelmästä ja tarkastellun m-bittisen sum-main/vähentäjän asemasta AA/DSA-yksikössä. Näin ollen riippuen ohjaussignaaleista Ci ja c5, AA/DSA-yksikkö voidaan konfiguroida toimi-20 maan eri tiloissa seuraavalla tavalla.
... (Cj,cs) AA/DSA:n toimintatila Sisääntulo Lähtö__Kohdekäyttö (0,0) rs rinnakkaista (m/r)- rs (m/r)- rs (m/r+1)- Rinnak- bittistä summausta/ bittistä paria bittistä kainen • f · '·1 ] vähennystä (x/.y#)> summaa summain/ I]___i=1,..,r__Cj-Xj+Yi, vähentäjä V·: (0,1) s rinnakkaista m- rs (m/r)- rs (m/r+1)- • · · bittistä summausta/ bittistä paria bittistä vähennystä (x/,y/), erotusta ___1=1,...,r c,=xry,,__ :"** (1,0) rs (m/rj-bittistä rs (m/r)- rs (m/ή- SAD- • · ./ rinnakkaista bittistä paria bittistä arkkitehtuurin vähennystä, sitten (x/,y/), erotusdataa, ensimmäinen • 1 *·;· XOR:t i=1,...,r ja rs 1- vaihe (useita bittistä DS-yksiköitä) :··: ___dataa__ 37 118612 (1,1) s summausta tai vä- Yksi (m-t)- s m-bittistä Kantaluku- hennystä kantaluku-T bittinen ker- osittaistuloa T:n kertojan kertolaskualgoritmin rottava x ja rs 1- ensimmäi- mukaisesti (f=log7) bittistä nen vaihe ___nollaa_(AA)_
Kuvan 11 MAVIP:n käsitellyssä suoritusmuodossa on datanreitityslohko AA/DSA-yksiköiden lohkon ja pakkausmatriisien lohkon välissä, jota ohjataan nyt samoilla signaaleilla c} ja c5 kuin AA/DSA-yksiköitä. Kel- 5 losignaali (ei näytetty) valintalohkoihin on yhdistetty signaaliin c} JA-portin kautta siten, että valintalohko pysäytetään kun cy = 0. Arkkitehtuuri toimii tässä tapauksessa rinnakkaisena matriisina sum-maimia/vähentäjiä. Riippuen ohjaussignaalista c5 datanreitityslohko joko konfiguroidaan suoriin yhteyksiin, kuten SAD-arkkitehtuurissa (jos 10 c5=0), lähettäen suoraan r (m/r)-bittistä erotusdataa ja r 7—bittistä dataa pakkausmatriisien lohkoon AA/DSA-yksiköiden lähdöistä, tai se toimii perustason valintalohkona vastaavassa kertojarakenteessa (jos c5=l) lähettäen s m—bittisiä osittaistuloja pakkausmatriisien lohkoon joko AA/DSA-yksiköiden lohkosta tai muistista. Tämä saadaan aikaa 15 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 c5 ~ 1 ja muuttaa datatyypin sopivaksi pakkausmatriisiin 4. Esi- • * * merkiksi kuvan 13 esimerkissä sisääntulo pakkausmatriisiin koostuu 20 kahdesta ryhmästä, joissa kummassa on viisi 25—bittistä numeroa ja .* .* kaksi 37—bittistä takaisinkytkentäpiiriä. Kummankin ryhmän sisääntulo- jen joukko vastaa osittaistulojen joukkoa kertolaskumenetelmässä siir-tojen jälkeen. Näin ollen yhdistäjä/kertoja -lohko 23 ei tee mitään osittaistulojen konversioita, vaan ainoastaan toteuttaa vastaavat siirrot ja 25 lähettää kaksi joukkoa osittaistuloja pakkausmatriisien lohkoon jos :**·. c5 =1. Kuitenkin kun SAD:tä toteutetaan (c5~0) yhdistäjä/kertoja - :·' lohko 23 muuttaa kahdeksan 3—bittistä ja kahdeksan 7—bittistä erotusta ja etumerkkidataa ennen kun lähettää ne pakkausmatriisien lohkoon. *·:** Kahdeksan 1-bittisiä dataa pakataan kahteen 2-bittiseen numeroon I.:*: 30 pienessä pakkausmatriisissa ja sitten niitä täydennetään nollilla (MSB- ·:··: puolella), jotta niistä tulee 25-bittisiä numeroita. Myös kahdeksan 8—bit- 38 118612 tistä numeroa täydennetään nollilla, jotta niistä tulee 25—bittisiä numeroita. Tulokseksi saatavat kymmenen 25—bittistä numeroa ryhmitellään sitten viiden numeron ryhmiin.
5 Muutoksia summauslohkoihin 4 kuvan 11 arkkitehtuurissa verrattuna kuvan 8 matriisi-vektori -aritmetiikan arkkitehtuuriin tarvitaan, jotta siitä saataisiin konfiguroitava riippuen signaaleista c7 ja c5. Ensiksi sum- mauslohko 4 pysäytetään jos (cj,c2)={0,1) niin että arkkitehtuuri toimii rinnakkaisena summain/vähentäjänä tässä tapauksessa. Kuitenkin jos 10 (ci,c2)={0,0), 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 (c},c2)=(lJ) ja c5=0, summauslohko 4 konfiguroidaan yhteen SAD- 15 arkkitehtuurille, ja jokaisessa toimintavaiheessa se hyväksyy ja laskee yhteen rs (m/rj-bittistä erotusdataa ja rs -/-bittistä dataa AA/DSA-yksi- köiden lohkosta, jonka datan yhdistäjä/multiplekseri -lohko 23 on aiemmin muuttanut. Tapauksessa (chc2)=(l,l) ja c5=J summauslohko 4 konfiguroidaan yhteen perustason kertojaan perustuvalle 20 rakenteelle (esim. kuvan 8 matriisi-vektori -arkkitehtuurin summaus-lohkolle), 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 • · * 25 on useita tapoja. Kuvan 13 esimerkki käyttää kahta summauslohkoa . .* (pakkausmatriisia) joita seuraa kolmas summauslohko (lopullinen summain) kuten kuvan 9 esimerkissä.
···
Kuva 13 esittelee edullisen suoritusmuodon monitoiminnallisesta ark-30 kitehtuurista videon/kuvan käsittelyyn, joka on johdettu kuvan 9 matriisi-·*”.*·* vektori -aritmetiikan arkkitehtuurista (/7=/77=73)-bittisen kerrottavan ja 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, muistiyksiköstä 21 summain/vähentäjien • m : 35 2 tulosten tallentamiseksi, konfiguroitavasta datanreitityslohkosta 3, ""S summauslohkosta 4, joka voi toimia myös kahtena erillisenä sum- 39 118612 maus/yhteenlasku -lohkona, ja lähtömultiplekseristä 20, joka valitsee oikean lähdön. Arkkitehtuuria ohjaa seitsemän ohjaussignaalia cj,...,c7.
Arkkitehtuurin kellosignaali (ei näytetty) yhdistetään signaalien cj ja c2 kanssa JA-porttien kautta arkkitehtuurin joidenkin lohkojen 5 pysäyttämiseksi riippuen toteutetusta operaatiosta. Esimerkiksi ainoastaan summain/vähentäjien matriisi ja lähtömultiplekseri ovat toiminnallisia kun (cj,c2)=(o,l). Tässä tapauksessa arkkitehtuuri yksinkertaisesti toimii rinnakkaisena matriisina summaimia/vähentäjiä. Kun cj — 1, kaikki lohkot ovat toiminnallisia, mutta datanreitityslohko 10 konfiguroidaan joko ohjaamaan yhteyksiä SAD-toteutukseen tai kertojaan perustuvan rakenteen datanreitityslohkoon riippuen siitä, onko c5 =0 vai c5 =1, tässä järjestyksessä. Myös pakkausmatriisin eri osat toimivat riippuen c5\stä Tällä tavoin arkkitehtuuri konfiguroidaan joko SAD-arkkitehtuuriin (jos cj=l ja c5 =0) tai kertojaan perustuvaan 15 rakenteeseen (jos cj = 1 ja c5 = 1) riippuen signaalista C5. Puolestaan kun cj =c5 =7, kertojaan perustuva rakenne uudelleenkonfiguroidaan joko yhteen sen mahdollisista konfiguroinneista riippuen signaaleista cjcy samalla tavoin kuin aiemmin tässä kuvauksessa pohdittiin.
Lisäksi summauslohko voidaan konfiguroida kahteen erilliseen lohkoon 20 (jos c6=1), jotka tarjoavat mahdollisuuden toteuttaa kertolaskujen pari yhdellä kertaa tai yhteen lohkoon (jos c6-0) jotta voitaisiin nopeammin a"··· laskea yhteen suurempi määrä osittaistuloja.
• · :.v
Taulukko 3 listaa joitakin operaatioita, joita voidaan toteuttaa kuvan 13 25 MAVIP:n esimerkkitoteutuksessa ohjaussignaalien cj,...,c7 vastaavan . . valinnan ohella.
» · · • ·· • · • ·· *···’ _Taulukko 3. _
Operaatio Ohjaussignaalit ··*! Cf C2 C3 C4 C5 Cfi C7 :...·· Rinnakkaiset 8-bittiset summaukset/ 0 x x x 0 1 1 vähennykset___ !···. SAP_1 x x X o o 1 • · ' — " /" 13-bittisten kertolaskujen pari__1x00110 ··! i (kx1) - (1xk) 13-bittinen vektori-vektoriin 10 0 110 1 • · 40 118612 sisäinen tulo (ei muistia käytössä) (k<65)__ (kx1) - (1xk) 13-bittinen vektori-vektoriin 111110 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_ p-pituisen signaalin Mappi FIR suodatus. 1 c2 c3 1 1 0 0 c2—c3—0 ensimmäiset (k/2) sykliä ja c2=c3-1 _sen jälkeen_
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 pro- sessorissa. Tällainen järjestely voi korvata kertolaskuyksikön prosesso-rissa. 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-bittisinä sum- maimena/vähentäjänä, joista jokainen voi toimia joko kahtena 32-bitti-: senä tai neljänä 16-bittisenä tai kahdeksana 8-bittisenä. Se sisältää *"*i myös 128 64-bittistä rekisteriä, joista jokaista voidaan samalla tavoin 41 118612 käyttää joko kahtena 32-bittisenä tai neljänä 16-bittisenä tai kahdeksana 8-bittisenä. Oletetaan, että toinen toiminnallinen yksikkö (FU), joka on samankaltainen kuin kuvassa 6 mutta ilman summainmatriisia, sisällytetään prosessoriin. Sitten tätä useita valintalohkoja, useita pak-5 kausmatriiseja ja useita nopeita lopullisia summaimia käsittävää toiminnallista yksikköä voitaisiin käyttää kertolaskuun ja kertolaskuun perustuviin operaatioihin seuraavassa kahdessa syklissä (olemassa olevan TMS320C64x kertojan kertolasku vaatii myös kaksi sykliä). Ensimmäisessä syklissä summaimet/vähentäjät laskevat kerrottavan x mahdolli-10 set osittaistulot ja tallentavat tulokset rekistereihin. Seuraavassa vaiheessa valitaan oikea joukko osittaistuloista ja summataan käsitellyn toiminnallisen yksikön kanssa. Sellaisissa tapauksissa, joissa kerrottavaa x käytetään uudelleen, ensimmäinen sykli voidaan toteuttaa vain kerran toteutettaessa ensimmäistä kertolaskua, jossa a on mukana, 15 kun taas se voidaan jättää pois seuraavista kertolaskuista, joissa a johtaa merkittäviin ajan ja tehonkulutuksen säästöihin. Lisäksi kun 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 laskemi-20 seksi suodatinkertojille ja niiden tallentamiseksi rekistereihin. Sitten loput laskennat suoritetaan toiminnallisella yksiköllä keksinnön ja lataa/tallenna -yksikön mukaisesti, mikä tarjoaa mahdollisuuden käyttää "\1t summaimia/vähentäjiä muihin tarkoituksiin (tai pysäyttää ne tehon *.1!:’ säästämiseksi). TMS320C64x:n FIR-suodatuksen tämänhetkisessä • · · ] 25 toteutuksessa kaikki toiminnalliset yksiköt, mukaan luettuna kertoja ja : summaimet/vähentäjät, olisivat varattuja tämän tehtävän vuoksi.
♦ · · ♦ ·· • ·
Kuitenkin toinen vaihtoehto on mahdollisuus toteuttaa keksinnön edulliset rakenteet useille bittitarkkuuksille. Esimerkiksi on mahdollista ;:· 30 toteuttaa kertojia/MAC-yksiköitä, jotka voivat suorittaa joko yhden nxm !···. kertolaskun, kaksi (n/2)xm tai nx(m/2) kertolaskua, tai neljä (n/2)x(m/2) kertolaskua yhdessä toimintavaiheessa.
• · • ·· »1«
Kuva 14 esittää laitteen 29 nyt esillä olevan keksinnön edullisen suori-: 35 tusmuodon mukaisesti. Se käsittää ohjausyksikön 30 laitteen 29 toi- ·...: mintojen ohjaamiseksi. Laite käsittää myös käsittely-yksikön 31 muiden 42 118612 käsittelytehtävien, esim. signaalinkäsittelyn suorittamiseksi. Nyt esillä olevan keksinnön edullisen suoritusmuodon mukainen laskentalaite 1 toteutetaan edullisesti käsittely-yksikössä 31. Käsittely-yksikkö voi myös käsittää edullisesti jaetun muistin 40 käytettäväksi sekä lasken-5 talaitteessa että ohjausyksikössä 30, ja sisäisen muistin 41 sisäiseen käyttöön käsittely-yksikössä 31, esimerkiksi tallentamaan mahdollisia osittaistuloja. Laitteen käyttöliittymä 33 käsittää näyttölaitteen 34, ääni-laitteen 35, näppäimistön 36, ja esim. videokameran 37. Laite 29 käsittää viestintävälineet 38, kuten matkaviestintävälineet, viestintäverkon 10 (ei näytetty) kanssa kommunikoimiseen ja informaation vaihtamiseen toisen tunnetun laitteen (ei näytetty) kanssa. Muistivälineitä 39 käytetään varastoimaan erilaista dataa ja ohjelmia, kuten toimintakäskyjä ohjausyksikölle 30.
15 Nyt esillä oleva keksintö ei rajoitu pelkästään edellä esitettyihin suoritusmuotoihin vaan sitä voidaan muunnella oheisten patenttivaatimusten puitteissa.
··· M·· • ♦ • · « • · ♦ • ♦ ··· * · ♦ • » · • · » • · · • M • ♦ ··· • ♦ • · ··· ·«« * ··»« ··· • · • ♦ *·· ·· • · • ·· ··· • · • ♦ »·· • · · · * · · *·· · 1 ·

Claims (31)

118612
1. Menetelmä laskuoperaatioiden suorittamiseksi käyttäen liukuhihnoi-tettua laskentalaitetta, joka käsittää ainakin kahden liukuhihnavaiheen 5 ryhmän, ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin yhden dataliitännän datan lähtöä varten, joilla mainituilla liukuhihna-vaiheilla on ainakin yksi dataliitäntä datan syöttämiseksi ja ainakin yksi dataliitäntä datan lähtöä varten, jossa menetelmässä data laskenta-operaatioiden suorittamiseksi syötetään laitteeseen, ja mainitussa 10 ensimmäisessä laskentaoperaatiossa ainakin yhden liukuhihnavaiheen lähtötiedot tallennetaan muistiin, tunnettu siitä, että mainitussa toisessa laskentaoperaatiossa muodostetaan ohjaussignaali, jolla valitaan joko ensimmäisen laskentaoperaation lähtötieto tai tallennettu lähtötieto liukuhihnavaiheen tulotiedoksi. 15
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että se on suuren kantaluvun ei-Booth-uudelleenkoodattu kertolaskumene-telmä.
3. Patenttivaatimuksen 1 tai 2 mukainen menetelmä, tunnettu siitä, että laskentaoperaatio on jaettu ensimmäiseen osaoperaatioon ja usei- siin toisiin osaoperaatioihin, ensimmäisen osaoperaation laskentatulok- !v. set on tallennettu, ja tallennettuja laskentatuloksia käytetään mainittujen ,···. useiden toisten osaoperaatioiden kanssa. • · · 25
] | 4. Patenttivaatimuksen 1, 2 tai 3 mukainen menetelmä, tunnettu siitä, " että laskentaoperaatio on kertolasku, jossa kerrottava kerrotaan kerto- jalla, että ensimmäinen liukuhihnavaihe suorittaa kertojan mahdollisten osittaistulojen laskennan, ja että mahdolliset osittaistulot tallennetaan 30 muistiin. • · · t · • · ··«
5. Patenttivaatimuksen 1, 2, 3 tai 4 mukainen menetelmä, tunnettu siitä, että mainittu laskentaoperaatio on kertolaskuoperaatio, jossa yksi kerrottava * kerrotaan useilla kertojilla {at, / = 1.....K ) yleisen kerrotta- 35 van {x ) mahdollisten osittaistulojen laskemiseksi kun se kerrotaan ensimmäisellä kertojalla ax , että mahdolliset osittaistulot tallennetaan 118612 muistiin, ja että tallennettuja mahdollisia osittaistuloja käytetään kun kerrotaan kerrottava (x ) muilla kertojilla (af , i = 2,...,K ).
6. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, että las-5 kentaoperaatiot suoritetaan ainakin osittain aikalomitetusti jakamalla ainakin yksi osaoperaatio osittaisiin osaoperaatioihin, ja aloittamalla jokainen osittainen osaoperaatio eri aikaan.
7. Jonkin patenttivaatimuksen 1-6 mukainen menetelmä, tunnettu siitä, 10 että sitä käytetään videoinformaation käsittelyn yhteydessä.
8. Jonkin patenttivaatimuksen 1-7 mukainen menetelmä, tunnettu siitä, että yksi kertolaskuoperaatio ja toinen kertolaskuoperaatio suoritetaan liukuhihnoitetusti, jossa mainittu toinen kertolaskuoperaatio aloitetaan 15 ennen kuin mainittu ensimmäinen kertolaskuoperaatio päättyy, mainitut kertolaskuoperaatiot jaetaan ainakin ensimmäiseen ja toiseen osaope-raatioon, ja kumpikin mainituista ensimmäisestä ja toisesta osaoperaa-tiosta toteutetaan yhdessä liukuhihnavaiheessa, ja että ainakin yksi mainituista osaoperaatiosta suoritetaan rinnakkaisesti yhdessä liuku-20 hihnavaiheessa, jossa osaoperaatio toiselle kertolaskuoperaatiolle aloitetaan ennen kuin vastaava osaoperaatio ensimmäiselle kerto-·:· laskuoperaatiolle päättyy. • •M • « • « · II·
9. Jonkin patenttivaatimuksen 1-8 mukainen menetelmä, tunnettu siitä, * i · 25 että selektiivistä datanreititystä suoritetaan laskentalaitteessa, jossa ! ! ainakin yhdelle dataliitännälle suoritetaan valinta ainakin kahden muun • · · dataliitännän joukossa mainitun ainakin yhden dataliitännän yhdistämi-:···: seksi valittuun dataliitäntään datan reitittämiseksi mainitun ainakin yhden dataliitännän ja mainitun valitun dataliitännän välillä. *:· 30 mi ww
10. Järjestelmä laskuoperaatioiden suorittamiseksi liukuhihnoitetussa :·' laskentalaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen • M \..e ryhmän, ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin ***/ yhden dataliitännän datan lähtöä varten, joilla mainituilla liukuhihna- l.i : 35 vaiheilla on ainakin yksi dataliitäntä datan syöttämiseksi ja ainakin yksi *:**: dataliitäntä datan lähtöä varten, ja mainittu laite edelleen käsittää datan 118612 syötön ensimmäiseen ja toiseen laskentaoperaatioon, ja muistin (21) ainakin yhden liukuhihnavaiheen lähtötietojen tallentamiseksi mainitussa ensimmäisessä laskentaoperaatiossa, tunnettu siitä, että järjestelmä . edelleen sisältää datannoutajan (22) ja välineet 5 ohjaussignaalin muodostamiseksi datannoutajalle (22) joko ensimmäisen laskentaoperaation lähtötiedon tai tallennetun lähtötiedon valitsemiseksi käytettäväksi mainitussa toisessa laskentaoperaatiossa liukuhihnavaiheen tulotietona.
11. Patenttivaatimuksen 10 mukainen järjestelmä, tunnettu siitä, että laskentalaite on suuren kantaluvun ei-Booth-uudelleenkoodattu kertoja.
12. Patenttivaatimuksen 10 tai 11 mukainen järjestelmä, tunnettu siitä, että laskentaoperaatio on jaettu ensimmäiseen osaoperaation, joka 15 suoritetaan ensimmäisessä liukuhihnavaiheessa, ja useisiin toisiin osa-operaatioihin, jotka suoritetaan muissa liukuhihnavaiheissa, ensimmäisen osaoperaation laskentatulokset järjestetään tallennettavaksi muistiin (21), ja datannoutaja koostuu multiplekseristä muistin lähdön yhdistämiseksi ainakin yhden mainitun muun liukuhihnavaiheen tulo-20 tietoliitäntään tallennettujen laskentatulosten käyttämiseksi mainittujen useiden toisten osaoperaatioiden kanssa. ··« t * · · · :V:
13. Patenttivaatimuksen 10, 11 tai 12 mukainen järjestelmä, tunnettu :T: siitä, että ensimmäinen liukuhihnavaihe sisältää summainmatriiseja (2), ·:··· 25 toinen liukuhihnavaihe sisältää valintalohkoja (3), kolmas liukuhihna- .·. : vaihe sisältää pakkausmatriiseja (4) ja neljäs liukuhihnavaihe sisältää .*···'. CLA-summaimia (5), että ensimmäisen liukuhihnavaiheen lähtötieto- *** liitäntä on yhdistetty muistin sisääntuloon ja datannoutajan yhteen . . sisääntuloon, muistin lähtö on yhdistetty datannoutajan toiseen • · 30 sisääntuloon, ja datannoutajan lähtö on yhdistetty toisen liukuhihna- **·*·: vaiheen tulotietoliitäntään.
* • · • · • ·« .*··; 14. Patenttivaatimuksen 10, 11, 12 tai 13 mukainen järjestelmä, tun- .·.] nettu siitä, että muisti käsittää useita rekistereitä, joista jokainen on 35 järjestetty tallentamaan yhden arvon, ja osoitusyksikön yhden rekisterin • · · • · · • · 118612 osoittamiseksi kerrallaan datan lukemiseksi/kirjoittamiseksi rekiste-ristä/rekisteriin.
15. Patenttivaatimuksen 10, 11, 12 tai 13 mukainen järjestelmä, tun-5 nettu siitä, että muisti käsittää useita rekistereitä, joista jokainen on järjestetty tallentamaan yksi arvo, multiplekserin joko muistin sisääntulon tai yhden rekisterin lähdön valitsemiseksi mainitun valitun lähteen arvon tallentamiseksi ensimmäiseen rekisteriin, ja että ensimmäisen rekisterin lähtö on yhdistetty muistin lähtöön. 10
16. Jonkin patenttivaatimuksen 10-15 mukainen järjestelmä, tunnettu siitä, että se sisältää ainakin yhden multiplekserin tulotietoliitännän valitsemiseksi liukuhihnavaiheeseen (P1, P2, P3, P4) ainakin ensimmäisestä lähtötietoliitännästä ja toisesta lähtötietoliitännästä, joka 15 ensimmäinen lähtötietoliitäntä on kyseessä olevaa liukuhihnavaihetta edeltävän liukuhihnavaiheen lähtö.
17. Jonkin patenttivaatimuksen 10-16 mukainen järjestelmä, tunnettu siitä, että se sisältää välineet (34, 37) videoinformaation käsittelemi- 20 seksi.
18. Laite laskuoperaatioiden suorittamiseksi liukuhihnoitetussa lasken- *·’/.: talaitteessa, joka käsittää ainakin kahden liukuhihnavaiheen ryhmän, :T: ainakin yhden dataliitännän datan syöttämiseksi, ja ainakin yhden data- ·:··: 25 liitännän datan lähtöä varten, joilla mainituilla liukuhihnavaiheilla on ainakin yksi dataliitäntä datan syöttämiseksi ja ainakin yksi dataliitäntä .*··! datan lähtöä varten, ja mainittu laite edelleen käsittää datan tulon • φ ensimmäiseen ja toiseen laskentaoperaatioon, ja muistin (21) ainakin . . yhden liukuhihnavaiheen lähtötietojen tallentamiseksi mainittuun • · · '·;;/· 30 ensimmäiseen laskentaoperaatioon, tunnettu siitä, että laite edelleen :·;·** sisältäädatannoutajan (22) ja välineet ohjaussignaalin muodostamiseksi datannoutajalle (22) joko ensimmäisen laskentaoperaation lähtötiedon tai tallennetun lähtötiedon valitsemiseksi käytettäväksi mainitussa toisessa laskentaoperaatiossa liukuhihnavaiheen tulotietona. • · · 35 • · • · · ♦ ·· • · 118612
19. Patenttivaatimuksen 18 mukainen laite, tunnettu siitä, että se on suuren kantaluvun ei-Booth-uudelleenkoodattu kertoja.
20. Patenttivaatimuksen 18 tai 19 mukainen laite, tunnettu siitä, että 5 laskentaoperaatio on jaettu ensimmäiseen osaoperaation, joka suoritetaan ensimmäisessä liukuhihnavaiheessa, ja useisiin toisiin osaope-raatioihin, jotka suoritetaan muissa liukuhihnavaiheissa, ensimmäisen osaoperaation laskentatulokset järjestetään tallennettavaksi muistiin (21), ja datannoutaja koostuu multiplekseristä muistin lähdön yhdis- 10 tämiseksi ainakin yhden mainitun muun liukuhihnavaiheen tulotieto-liitäntään tallennettujen laskentatulosten käyttämiseksi mainittujen useiden toisten osaoperaatioiden kanssa.
21. Patenttivaatimuksen 18, 19 tai 20 mukainen laite, tunnettu siitä, 15 että ensimmäinen liukuhihnavaihe sisältää summainmatriiseja (2), toinen liukuhihnavaihe sisältää valintalohkoja (3), kolmas liukuhihnavaihe sisältää pakkausmatriiseja (4) ja neljäs liukuhihnavaihe sisältää CLA-summaimia (5), että ensimmäisen liukuhihnavaiheen lähtötietoliitäntä on yhdistetty muistin sisääntuloon ja datannoutajan yhteen 20 sisääntuloon, muistin lähtö on yhdistetty datannoutajan toiseen sisääntuloon, ja datannoutajan lähtö on yhdistetty toisen liukuhihna- *:· vaiheen tulotietoliitäntään. ···· • · • · V • · ·
22. Patenttivaatimuksen 18,19,20 tai 21 mukainen laite, tunnettu siitä, 25 että muisti käsittää useita rekistereitä, joista jokainen on järjestetty tai- • · a.(. lentämään yhden arvon, ja osoitusyksiköstä yhden rekisterin osoittami- seksi kerrallaan datan lukemiseksi/kirjoittamiseksi rekisteristä/rekis- • · *···* teriin.
23. Patenttivaatimuksen 18,19,20 tai 21 mukainen laite, tunnettu siitä, että muisti käsittää useita rekistereitä, joista jokainen on järjestetty tai- :·! lentämään yksi arvo, multiplekserin joko muistin sisääntulon tai yhden *.···. rekisterin lähdön valitsemiseksi mainitun valitun lähteen arvon tai- • · lentämiseksi ensimmäiseen rekisteriin, ja että ensimmäisen rekisterin : 35 lähtö on yhdistetty muistin lähtöön. • · 118612
24. Jonkin patenttivaatimuksen 18-23 mukainen laite, tunnettu siitä, että se sisältää ainakin yhden multiplekserin tulotietoliitännän valitsemiseksi liukuhihnavaiheeseen (P1, P2, P3, P4) ainakin ensimmäisestä lähtötietoliitännästä ja toisesta lähtötietoliitännästä, joka 5 ensimmäinen lähtötietoliitäntä on kyseessä olevaa liukuhihnavaihetta edeltävän liukuhihnavaiheen lähtö.
25. Jonkin patenttivaatimuksen 18-24 mukainen laite, tunnettu siitä, että se sisältää välineet (34, 37) videoinformaation käsittelemiseksi. 10
26. Jonkin patenttivaatimuksen 18-25 mukainen laite, tunnettu siitä, että yksi kertolaskuoperaatio ja toinen kertolaskuoperaatio on järjestetty suoritettavaksi liukuhihnoitetusti, jolloin laite sisältää liukuhihnarekiste-reitä ainakin yhden liukuhihnavaiheen tulotietoliitännässä, ainakin 15 yhden multiplekserin ainakin yhden liukuhihnavaiheen lähdössä, ja ohjaussisääntuloja mainittujen liukuhihnarekisterien ohjaamiseksi siten, että vain yksi liukuhihnarekisteri on auki kerrallaan datan kirjoittamiseksi mainitun liukuhihnavaiheen tulotietoliitäntään, jolloin mainitut kertolaskuoperaatiot on järjestetty jaettavaksi ainakin ensimmäiseen ja 20 toiseen osaoperaatioon, joista mainituista ensimmäisestä ja toisesta osaoperaatioista jokainen on järjestetty toteutettavaksi yhdessä liuku-.:. hihnavaiheessa, ja että ainakin yksi mainituista osaoperaatioista on !!·. järjestetty suoritettavaksi rinnakkaisesti yhdessä liukuhihnassa, jossa toisen kertolaskuoperaation osaoperaatio on järjestetty alkamaan ’ ! 25 ennen kun vastaava ensimmäisen kertolaskuoperaation osaoperaatio ; ; päättyy. • · · • ·· • * ···
27. Jonkin patenttivaatimuksen 18-26 mukainen laite, tunnettu siitä, että se sisältää valintavälineet (2, 3, 4, 5) selektiivisen datanreitityksen ...T 30 suorittamiseksi, jotka mainitut valintavälineet käsittävät välineet datalii- tännän yhdistämiseksi toiseen dataliitäntään ainakin kahden muun ./ dataliitännän joukossa datan reitittämiseksi yhdistettyjen dataliitäntöjen **..!* välillä. • · • « ··· m
28. Jonkin patenttivaatimuksen 18-27 mukainen laite, tunnettu siitä, ·:··: että se sisältää välineet (38) matkaviestinnän suorittamiseksi. 118612
29. Jonkin patenttivaatimuksen 18-28 mukainen laite, tunnettu siitä, että se on integroitu piiri.
30. Jonkin patenttivaatimuksen 18-28 mukainen laite, tunnettu siitä, että se on laskentalaite.
31. Patenttivaatimuksen 22 mukainen laite, tunnettu siitä, että osoitusyksikkö käsittää osoitegeneraattorin osoitteen muodostamiseksi 10 arvon perusteella laskemalla mainitusta arvosta modulo P, jossa P on pienempi tai yhtäsuuri kuin muistin rekisterien lukumäärä. ♦ ·· ···· * t • · « • · 1 • · ·1« • · · • · · • · * · • · 1 • ♦♦ • ♦ • ♦ • » ··· ··« ···♦ • · · • · • · ** * ♦ • 1· • M * · « · ··· • · • · · • · · ··· ♦ · 118(512
FI20021984A 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite FI118612B (fi)

Priority Applications (10)

Application Number Priority Date Filing Date Title
FI20021984A FI118612B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
CNB2003801084019A CN100405361C (zh) 2002-11-06 2003-11-05 用于执行计算操作的方法、***以及设备
PCT/FI2003/000820 WO2004042600A1 (en) 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device
EP03810472A EP1576494B1 (en) 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device
TW092130873A TWI263167B (en) 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device
DE60313215T DE60313215T2 (de) 2002-11-06 2003-11-05 Verfahren und system zur durchf hrung von kalkulationsoperationenund einrichtung
AU2003276292A AU2003276292A1 (en) 2002-11-06 2003-11-05 Method and system for performing calculation operations and a device
KR1020057007986A KR100714358B1 (ko) 2002-11-06 2003-11-05 연산을 수행하기 위한 방법, 시스템 및 장치
AT03810472T ATE359559T1 (de) 2002-11-06 2003-11-05 Verfahren und system zur durchf hrung von kalkulationsoperationenund einrichtung
US10/703,161 US7536430B2 (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
FI20021984 2002-11-06
FI20021984A FI118612B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite

Publications (3)

Publication Number Publication Date
FI20021984A0 FI20021984A0 (fi) 2002-11-06
FI20021984A FI20021984A (fi) 2004-07-15
FI118612B true FI118612B (fi) 2008-01-15

Family

ID=8564893

Family Applications (1)

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

Country Status (10)

Country Link
US (1) US7536430B2 (fi)
EP (1) EP1576494B1 (fi)
KR (1) KR100714358B1 (fi)
CN (1) CN100405361C (fi)
AT (1) ATE359559T1 (fi)
AU (1) AU2003276292A1 (fi)
DE (1) DE60313215T2 (fi)
FI (1) FI118612B (fi)
TW (1) TWI263167B (fi)
WO (1) WO2004042600A1 (fi)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565390B1 (en) * 2005-03-23 2009-07-21 Altera Corporation Circuitry for facilitating performance of multiply-accumulate operations in programmable logic devices
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8041759B1 (en) * 2006-02-09 2011-10-18 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
US8266198B2 (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
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for 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
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
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
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix 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
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
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
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 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
DE112013002793T5 (de) * 2012-06-05 2015-04-09 Powerwave Technologies S.A.R.L. Rekonfigurierbare FIR-Filter varibler Länge zur Optimierung der Leistung von Digital-Repeatern
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
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
CN111651205B (zh) * 2016-04-26 2023-11-17 中科寒武纪科技股份有限公司 一种用于执行向量内积运算的装置和方法
CN106168941B (zh) * 2016-06-30 2019-06-14 中国人民解放军国防科学技术大学 一种支持复数乘法的fft蝶形运算硬件实现电路
KR102631381B1 (ko) * 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
CN106970896B (zh) * 2017-03-30 2020-05-12 中国人民解放军国防科学技术大学 面向向量处理器的二维矩阵卷积的向量化实现方法
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10678507B2 (en) 2017-12-22 2020-06-09 Alibaba Group Holding Limited Programmable multiply-add array hardware
CN110190843B (zh) * 2018-04-10 2020-03-10 中科寒武纪科技股份有限公司 压缩器电路、***树电路、乘法器电路、芯片和设备
JP7183079B2 (ja) * 2019-03-08 2022-12-05 株式会社東芝 半導体装置
TWI798640B (zh) * 2021-02-09 2023-04-11 新唐科技股份有限公司 常數乘法器
CN113870918B (zh) * 2021-09-30 2023-03-28 华中科技大学 存内稀疏矩阵乘法运算方法、方程求解方法以及求解器
CN115718724B (zh) * 2023-01-09 2023-05-09 阿里巴巴(中国)有限公司 Gpu、数据选择方法及芯片

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3732410A (en) * 1969-12-22 1973-05-08 Postmaster Department Res Labo Self adaptive filter and control circuit therefor
GB8718488D0 (en) * 1987-08-05 1987-09-09 British Petroleum Co Plc Chemical process
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 ソニー株式会社 適応形ビデオ信号演算処理装置
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
US5935202A (en) 1997-03-25 1999-08-10 International Business Machines Corporation Compressor circuit in a data processor and method therefor
US6085214A (en) * 1997-09-04 2000-07-04 Cirrus Logic, Inc. Digital multiplier with multiplier encoding involving 3X term
US6367003B1 (en) * 1998-03-04 2002-04-02 Micron Technology, Inc. Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method
US6141674A (en) 1998-06-10 2000-10-31 Hewlett-Packard Company Reducing the hardware cost of a bank of multipliers by combining shared terms
JP2000047852A (ja) * 1998-07-27 2000-02-18 Mitsubishi Electric Corp 乗算装置、該乗算装置を複数備える固定係数型firディジタルフィルタ
EP1050828A4 (en) * 1998-11-26 2008-08-13 Matsushita Electric Ind Co Ltd PROCESSOR AND IMAGE PROCESSING DEVICE
US6353843B1 (en) * 1999-10-08 2002-03-05 Sony Corporation Of Japan High performance universal multiplier circuit
US7127482B2 (en) * 2001-11-19 2006-10-24 Intel Corporation Performance optimized approach for efficient downsampling operations

Also Published As

Publication number Publication date
US7536430B2 (en) 2009-05-19
TW200411540A (en) 2004-07-01
FI20021984A (fi) 2004-07-15
KR100714358B1 (ko) 2007-05-02
CN1735881A (zh) 2006-02-15
FI20021984A0 (fi) 2002-11-06
CN100405361C (zh) 2008-07-23
KR20050065673A (ko) 2005-06-29
ATE359559T1 (de) 2007-05-15
AU2003276292A1 (en) 2004-06-07
DE60313215T2 (de) 2007-12-20
US20040139131A1 (en) 2004-07-15
DE60313215D1 (de) 2007-05-24
EP1576494B1 (en) 2007-04-11
WO2004042600A1 (en) 2004-05-21
EP1576494A1 (en) 2005-09-21
TWI263167B (en) 2006-10-01

Similar Documents

Publication Publication Date Title
FI118612B (fi) Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
JP4584580B2 (ja) 単一命令複数データ(simd)命令用の積和演算(mac)ユニット
US9792118B2 (en) Vector processing engines (VPEs) employing a tapped-delay line(s) for providing precision filter vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
US9684509B2 (en) Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
US6601077B1 (en) DSP unit for multi-level global accumulation
GB2464178A (en) SIMD processor with iterative multiply/accumulate instruction for finite impulse response filters
JP5544240B2 (ja) マルチmacアーキテクチャにおける低電力firフィルタ
WO2003073270A1 (en) Processor instruction set simulation power estimation method
Olivieri Design of synchronous and asynchronous variable-latency pipelined multipliers
US6675286B1 (en) Multimedia instruction set for wide data paths
CN116049907A (zh) 一种Paillier同态加密处理器及其处理方法
FI115862B (fi) Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite
Kumar et al. Analysis of low power, area and high speed multipliers for DSP applications
Belyaev et al. A high-perfomance multi-format simd multiplier for digital signal processors
US6401106B1 (en) Methods and apparatus for performing correlation operations
Parandeh-Afshar et al. Parallel merged multiplier–accumulator coprocessor optimized for digital filters
Kumm et al. Reduced complexity single and multiple constant multiplication in floating point precision
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
Chen et al. Design methodology of a hardware-efficiency VLIW architecture with highly adaptable data path
Guevorkian et al. A radix-8 multiplier design and its extension for efficient implementation of imaging algorithms
Rose et al. Segmented Arithmetic Operators for Graphics Processing

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 118612

Country of ref document: FI

MM Patent lapsed