FI115862B - Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite - Google Patents

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

Info

Publication number
FI115862B
FI115862B FI20021982A FI20021982A FI115862B FI 115862 B FI115862 B FI 115862B FI 20021982 A FI20021982 A FI 20021982A FI 20021982 A FI20021982 A FI 20021982A FI 115862 B FI115862 B FI 115862B
Authority
FI
Finland
Prior art keywords
partial
pipeline
operations
multiplication
sub
Prior art date
Application number
FI20021982A
Other languages
English (en)
Swedish (sv)
Other versions
FI20021982A (fi
FI20021982A0 (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 FI20021982A0 publication Critical patent/FI20021982A0/fi
Priority to FI20021982A priority Critical patent/FI115862B/fi
Priority to KR1020057007987A priority patent/KR20050084681A/ko
Priority to TW092130871A priority patent/TWI235954B/zh
Priority to CNA2003801083389A priority patent/CN1735857A/zh
Priority to AU2003279421A priority patent/AU2003279421A1/en
Priority to EP03772366A priority patent/EP1558994A1/en
Priority to PCT/FI2003/000821 priority patent/WO2004042554A1/en
Priority to US10/703,154 priority patent/US7334011B2/en
Publication of FI20021982A publication Critical patent/FI20021982A/fi
Application granted granted Critical
Publication of FI115862B publication Critical patent/FI115862B/fi

Links

Classifications

    • 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
    • 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
    • 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

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Description

1 115862
Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite
Tekniikan ala 5
Nyt esillä oleva keksintö koskee menetelmää yhden kertolaskuoperaation ja toisen kertolaskuoperaation suorittamiseksi liukuhihnoitetusti, jossa menetelmässä mainittu toinen kertolaskuoperaatio aloitetaan ennen kuin mainittu yksi kertolaskuoperaatio on päättynyt; mainitut 10 kertolaskuoperaatiot jaetaan ainakin ensimmäiseen ja toiseen osa-operaatioon, ja jokainen mainituista ensimmäisestä ja toisesta osa-operaatiosta toteutetaan yhdessä liukuhihnavaiheessa. Keksintö koskee myös laitetta yhden kertolaskuoperaation ja toisen kertolasku-operaation suorittamiseksi liukuhihnoitetusti; laite käsittää välineet ker-15 tolaskuoperaation jakamiseksi ainakin ensimmäiseen ja toiseen osa-operaatioon, ja jokainen mainituista ensimmäisestä ja toisesta osa-operaatiosta on järjestetty toteutettavaksi yhdessä liukuhihnavaiheessa. Keksintö koskee myös langatonta päätelaitetta, joka käsittää välineet yhden kertolaskuoperaation ja toisen kertolaskuoperaation suorittami-20 seksi liukuhihnoitetusti, mukaan lukien välineet kertolaskuoperaation ; jakamiseksi ainakin ensimmäiseen ja toiseen osaoperaatioon, ja jokai- / nen mainituista ensimmäisestä ja toisesta osaoperaatiosta on järjes- tetty toteutettavaksi yhdessä liukuhihnavaiheessa. Keksintö koskee ' edelleen myös järjestelmää yhden kertolaskuoperaation ja toisen ker- 25 tolaskuoperaation suorittamiseksi liukuhihnoitetusti; järjestelmä käsittää välineet kertolaskuoperaation jakamiseksi ainakin ensimmäiseen ja toi-seen osaoperaatioon, ja jokainen mainituista ensimmäisestä ja toisesta osaoperaatiosta on järjestetty toteutettavaksi yhdessä liukuhihna-·;· vaiheessa.
30 • ·
Keksinnön tausta • · :On olemassa useita sovelluksia, joissa tarvitaan kertolasku- ja/tai kerto-yhteenlaskuoperaatioita (Multiply-Accumulate, MAC). Ei-rajoittavana ....: 35 esimerkkinä monet signaalinkäsittelysovellukset, kuten digitaaliset sig- naalinsuodatussovellukset, videon/kuvankäsittelysovellukset, jne. ovat 2 115862 sovelluksia, joissa toteutetaan reaaliaikaisia kertolaskuoperaatioita. Myös muut sovellukset, joissa tarvitaan vektori- ja/tai matriisioperaati-oita, käyttävät kertolasku- ja/tai MAC-operaatioita. Kertolaskuoperaatioita toteutetaan tavallisesti summauksen ja bittien suhteen siirto-ope-5 raationa. Tällaiset kertolaskuoperaatiot ovat resursseja vaativia tehtäviä, koska yksi kahden operandin välinen kertolaskuoperaatio vaatii useita summaus- ja siirto-operaatioita kertolaskutuloksen 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- / dyttimien määrän vähentäminen. Vaikka tällä alueella onkin olemassa joitakin parannuksia, kehitetyt järjestelmät eivät siltikään aina tyydytä • « » | nopeuden ja tehonkulutuksen vaatimuksia.
•»* * · _ _ • · 25 :/·ί 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 ·· on kehitetty useita kertolaskumenetelmiä ja suuri määrä laitteita. Seu- .···. 30 raavassa huomioidaan vain kertolaskumenetelmät ja yleiset kertoja- rakenteet tapauksessa, jossa molemmat operandit (kerrottava ja kertoja) ovat tuntemattomia, kahden komplementin aritmetiikkana esitetty kahden kiintopisteen etumerkillisen kokonaisluvun kertolasku, ja niin :'; sanotut kantaluku- T -menetelmät (radix-7).
i 35 3 115862
Kahden komplementin esityksessä n -bitistä (etumerkki mukaan luettuna) kertoja a osoitetaan ä = an_1an_2...a1a0 , ja kahden komplementin esityksessä m -bitistä (etumerkki mukaan luettuna) kerrottava x osoitetaan χ = xm-jxm-2-xixo > tässä järjestyksessä.
5 Suhde a :n ja a :n välillä (ja samankaltainen suhde x :n ja x :n välillä) on seuraavanlainen: a = -a„.,2n-I+"^ar2r, x = x,2‘.
r-0 1=0
Kantaluku- 7:n rinnakkaisessa kertolaskumenetelmässä tulon y = a x 10 kahden komplementti y = ym+n_1ym+n_2...yiyo saadaan seuraavan kaavan mukaisesti:
nradix-T
y= Σ (α,χΥ'^-τ r=0 K ’ seuraavissa kahdessa päävaiheessa: 15 . . Vaihe 1. Tuotetaan sellaisia osittaistuloja (Partial Product, PP)
Ar x,r = 0,...,nradix_T -1 , että yhtälö (2) on voimassa.
•\: : Vaihe 2. Summataan rinnakkaisesti kaikki osittaistulot jotka alustavasti ·:··:’ 20 siirtävät r :nnen osittaistulon Ar-x,r = 0,...,nradix_T-l vasempaan rtmdix_T bittiä.
• ·
Kantaluku-T:n MAC yksikkö toimii samalla tavoin sillä erolla, että toinen numero (kumuloituva termi) lisätään osittaistulojen mukana vaiheessa 25 2.
• · *· Vaihetta 1 tarkastellaan tässä tarkemmin. Riippuen siitä miten numerot
Ar x,r = 0,...,nradix_T -1 määritellään ja saadaan, voidaan johtaa eri . kertolaskumenetelmiä. Numeroiden Ar-x,r = 0,...,nradix_T-l valin- 30 nan puolestaan määrää itse asiassa kertoja a :n esitys. Yksinkertaisin kertolaskumenetelmä on kantaluku-2 -menetelmä, joka käyttää kahden
* I
4 115862 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 y= Σ {Arx)2 radix~2 = YJ{arx)2r ~{an-ix)2n~ , /gx r=0 r=0 V ' 5 toisinsanoen nradix_2=n ja osittaistulot Ar x,r = 0,...,n-l määritellään Ar=ar :llä kun r = 0,...,n- 2 , ja An_j = -an_i :llä kun r = n-l .
Nämä osittaistulot voidaan yksinkertaisesti muodostaa (ja tavallisesti muodostetaankin) käyttämällä kaksituloisten JA-porttien matriisia jokai-10 sen kertojan a ja kerrottavan 5c kahden komplementin bitin välillä. Tulon Ar-x,r = Ο,.,.,η-1 arvo kerrotaan 2r :ään (eli siirretään vasemmalle r bittiä) ennen kuin se summataan toisessa vaiheessa. On huomattava, että tässä menetelmässä osittaistuloa An_rx , jota toisinaan kutsutaan korjauskertoimeksi, käsitellään eri lailla kuin muita osittais-15 tuloja.
Osittaistulojen epäyhtenäinen luonne vältetään toisessa kantaluku-2 -. . kertolaskumenetelmässä, joka perustuu kertojan kahden komplementin ; / bittien a Booth-uudelleenkoodaukseen peräkkäisiksi etumerkillisiksi : ·:.: 20 numeroiksi. Tulo voidaan nyt esittää seuraavasti: • nradix-2 n—1 ; y— Σ (Arx)2 — Σ (~ ar ar—l')x^ > O_j=0 /4^ ' " r=0 r=0 V ' t i t • * • ♦ • · *
Toisin sanoen, nradix_2 = « kuten aiemmin, mutta kaikki osittaistulot i;:· Ar x,r = Ο,.,.,η-1 määritellään yhtälöllä Ar =-ar +ar_j . Edellisen ·'...; 25 menetelmän tavoin Ar -x,r = Ο,.,.,η-1 :n arvo kerrotaan 2r .ään ennen kuin se lisätään toisessa vaiheessa. Tässä menettelyssä osittaistulot .··. valitaan joukosta 0,±x . Kaksi näistä arvoista (ö ja χ ) on helposti , saatavilla, kun taas arvon -x löytäminen vaatii x :n bittien invertoimista ja ykkösen lisäämistä. Tavallisesti ykkösen lisääminen tapahtuu vai-30 heessa 2, jossa osittaistulot summataan.
115862 5
Kantaluku-2 -kertolaskumenetelmässä on kaiken kaikkiaan 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 5 (osittaistulojen summaus) viiveen pienentämiseksi on kehitetty kanta-lukuun muunnettuun Boothin algoritmiin (Modified Booth Algorithm, MBA) perustuva menetelmä. MBA on ehkäpä suosituin kertolasku-menetelmä ja sitä tutkitaan ja optimoidaan laajasti. MBA:ssa tulon kahden komplementti saadaan summana 10 nradix-4~^ _ n! 2—1 y~ Σ (Arx)2 = ^ ([— ^a2r+l a2r a2r-1 > /c\ r=0 r=0 ' ' a_j = 0 nradix-42 :n osittaistuloista, missä arvo Ar e {-2-1,0,1,2} ,r = 0,l,...,n/2-l valitaan kolmen peräkkäisen bitin a2r+i,a2r’a2r-i (a_j=0 ) mukaan kahden komplementin esityksestä kertojasta ä .
15 Osittaistulo Arx , r = 0,1,...,n/2-1 , kerrotaan 22r :llä (eli vasemmalle 2r bittiä siirretty laitteisto) ennen kun se lisätään vaiheessa 2.
• · * · « • ·
Alla olevien kaavojen yksinkertaistamiseksi jokaisessa tapauksessa, jossa termi kuten nik esiintyy, oletetaan että « on k :n kokonaisluku-20 kerrannainen. Tämä on käypä oletus, koska kahden komplementin . . lukumäärää voi täydentää vapaasti määrättävällä määrällä bittejä (toistamalla merkittävintä bittiä).
Kuva 1 esittää muunnettua Boothin algoritmia 101 yleisesti. On ole-25 massa «/2 Boothin koodaus-dekoodausriviä, joista jokainen koostuu Boothin kooderista 102, ja m + i Boothin dekooderista 103, jotka on voitu ryhmittää kahden ryhmiin. Jokainen Boothin kooderi 102 analysoi kertojan a kahden komplementin kolme peräkkäistä bittiä, yhden bitin päällekkäisyydellä, ja muodostaa q signaalia vastaavaan dekooderei- i.i i 30 den 103 riviin . Joissakin viimeaikaisissa tekniikan tason suunnitelmissa :··· q = 3 . Näiden qf-signaalien mukaan dekooderirivit muodostavat osittaistulot (Arx)e {0,±x,±2x} joissa on kerrottavan bitit x 115862 6 sisääntuloissaan, x :n ei-negatiiviset kerrannaiset ovat helposti saatavilla, koska 2x muodostetaan kiinteällä siirrolla. * :n negatiiviset kerrannaiset muodostetaan invertoimalla x :n vastaavien positiivisten kerrannaisten bitit ja sitten lisäämällä 1, mikä tapahtuu yleensä vai-5 heessa 2. 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 nti :een kun käytetään muunnettua Boothin algoritmia, jolloin saavutetaan 10 suorituskyvyn nopeudessa, pinta-alassa ja tehonkulutuksessa merkittäviä etuja.
Osittaistulojen lukumäärän pienentämiseksi edelleen Boothin koodausta on edelleen laajennettu monibittiseen (vapaasti määrättävä 15 kantaluku-T) -uudelleenkoodaukseen . Yleinen yhtälö tulolle on nyt: nradix-T-i n/t-lff t—2 11, y= ^ (Arx)2 = -atr+l_j2 +^atr+i2 +atr-l x 2 /g\
r=0 r=0 [\_ i=0 J J W
a_j =0 , T = 2l = 2tradix~T .
: V: Toisin sanoen osittaistuloja (T = 2l ) on nradix_T = n/t ja jokainen osit- :T: taistulo valitaan kertoja a :n t + 1 peräkkäisten bittien mukaan ·:··: 20 mahdollisten osittaistulojen Ax listasta siten että A vaihtelee välillä :*·.· -2t~1 ja 2t_1 . Jokainen mahdollinen osittaistulo voidaan muodostaa .‘•8 suhteellisen helposti lisäämällä kaksi (kun T = 8,16 ) tai useampi (kun T > 16 ) x :n kahden potenssin kerrannaista, ja mahdollisesti niiden bittien inversiolla, joita seuraa 1 :n lisääminen (vaiheessa 2). Esimerkiksi 25 kantaluku-8:n uudelleenkoodauksen tapauksessa mahdollisten osit-taistulojen lista on 0,±x,±2x,±3x,±4x . Kaikki listan ei-negatiiviset f'.. kerrannaiset ovat helposti saatavilla, paitsi 3x , joka voidaan saada yhdellä yhteenlaskulla: 3x = x + 2x. Negatiiviset kerrannaiset voi löytää invertoi-lisää-1 -menetelmällä, kuten aiemmin. Kantaluku-16:n uudel-; 30 leenkoodauksen tapauksessa mahdollisten osittaistulojen lista on ‘ : 0,±x,±2x,±3x,...,±8x , joista kaikki tulevat saataville kun toteutetaan kolme itsenäistä yhteenlaskua/vähennyslaskua, jotta saataisiin 11 5 ε 6 2 7 3χ = χ + 2χ , 5χ = χ + 4χ , 7χ = -χ + 8χ . Mahdollinen osittaistulo 6χ voidaan muodostaa siirtämällä 3x yksi bitti vasempaan. Kuitenkin suurempien kantalukujen tapauksissa on olemassa joitakin mahdollisia osittaistuloja (esim. llx tai 13x ) joita ei voi saada yhdellä yhteen-5 laskulla/vähennyslaskulla.
Kuva 2 esittää tekniikan tason kantaluku-T:n (T>8 ) monibittisten Booth-uudelleenkoodattujen (”kantaluku-suurempi-kuin-neljä”) kertojien yleistä rakennetta 201. Tämä rakenne koostuu summainmatriisista 202 10 (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 summaamiseksi. Lopullinen summain 205 (Final Adder) muodostaa tulon y sum- 15 man S ja muistibitin C termeistä, joita summauslohko 204 on tuottanut.
Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan summainmatriisi koostuu yhtä monesta summaimesta kuin mitä mahdollisten osittaistulojen listassa on mukana x :n parittomia positiivisia 20 kerrannaisia (yksi kun T = 8 , kolme kun T = 16 , jne.). Tavallisesti käy- • · •V·: tetään nopeita muistibittiä ennakoivia (Carry-Look-Ahead, CLA) sum- :V: maimia, koska mahdollisten osittaistulojen listan muodostaminen on melko aikaa vievä osuus tämänkaltaisissa kertojissa. Patentissa US-5 875 125 on ehdotettu erityistä x + 2x summainta, jota voidaan käyttää : 25 kantaluku-8 kertojissa. On huomattava, että sekoitettuja kantaluku-4/8 .·*·.' kertojia on myös ehdotettu, esimerkiksi US-patentissa 4 965 762, mutta nämä kertojat ovat kuitenkin pääasiassa käyttökelpoisia toistuville (ei rinnakkaisille) kertojille, joissa mahdolliset osittaistulot tuotetaan ja ·;;; keräyssummataan sanallisesti. US-patentti 5 646 877 kuvaa kertoja- :·«·; 30 rakennetta, jossa vapaasti määrättävän kantaluvun osittaistulot saa- daan 3x :n ja x :n siirrettyjen versioiden summina tai erotuksina sum-;···; mainmatriisissa joka koostuu x + 2x summaimesta 3x :n tuottamiseksi, kahdesta siirtimestä ja summaimesta/vähentäjästä.
' : 35 Tyypillisen tekniikan tason kantaluku-suurempi-kuin-neljä -kertojan valintalohko 203 koostuu nlt kantaluku-T:n Boothin koodereista ja 8 115862 vastaavasta määrästä dekooderirivejä. Jokainen kooderi analysoi vastaavan kertojan (/ + 7) -monikon ja muodostaa lukuisia ohjaussignaaleja, joiden perusteella dekooderirivit muodostavat vastaavia osittais-tuloja. Sitä miten kantaluku-4:n Boothin koodereita ja dekoodereita voi 5 laajentaa suurempiin kantalukuihin on kommentoitu esimerkiksi patentissa US-6 240 438.
Seuraavassa tarkastellaan tarkemmin osittaistulojen summaamista eli vaihetta 2. Useimmat rinnakkaisista kertoja/MAC-yksikkö -rakenteista 10 käyttävät summauslohkoja, jotka koostuvat pakkausmatriisista, jota seuraa nopea summain (lopullinen summain) vaiheessa 1 muodostettujen osittaistulojen summaamiseksi (katso kuvat 1 ja 2). Pakkaus-matriisi vähentää nradix_T osittaistuloriviä kahteen riviin, jotka vastaavat summan S ja muistibitin C termejä, jotka summataan lopullisen 15 summaimen kanssa. Pakkausmatriisi koostuu yleensä joko koko- tai puolisummaimista (muistibitin tallentava summain eli CSA-puu tai Wallacen puu) tai 4:2-pakkaimista. Lopullinen summain on yleensä nopea CLA-summain, joka on suunniteltu tarkoin pakkausmatriisin eri bittien viiveiden mukaisesti.
20
On olemassa pääasiassa kaksi tapaa laajentaa kertojarakenteita MAC-: Y: yksiköiksi, kuten ne on kuvattu kuvissa 3a ja 3b. Ensimmäisessä tapa- uksessa (kuva 3a) pakkausmatriisin 301 kaksi lähtöä (S ja C -termit) syötetään takaisin sen sisääntuloihin siten, että senhetkiset osittaistulo-.·. : 25 arvot keräyssummataan senhetkisen keräyssumma-arvon kahden yhteenlaskettavan kanssa. Lopulliset S ja C -termit lisätään sitten lopullisessa summaimessa 302. Toisessa tapauksessa (kuva 3b) nämä lähdöt syötetään toiseen pakkausmatriisiin 303, jonka lähdöt syötetään ·;;· takaisin sen (toinen pakkausmatriisi 303) sisääntuloon. Nyt senhetkisen 30 tuloni ja C -termit summataan senhetkiseen keräyssummausarvoon viimeiseen sykliin asti, jolloin lopulliset S ja C -termit summataan . * · : lopullisessa summaimessa 302. Koko pakkausmatriisin syvyys (ja siten . ’ kokonaisviive) voi olla pienempi ensimmäisessä tapauksessa, kun taas :·· ; leveys ja siten pinta-ala ja tehonkulutus voivat olla pienempiä toisessa 35 tapauksessa.
115862 9
Suurikantalukuisten kertoimien yhteenvetona tulisi huomioida, että mitä 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-5 laskumenetelmät eivät ole kasvattaneet suosiotaan, ehkäpä johtuen siitä, että ne vaativat melko paljon aikaa ja pinta-alaa kuluttavat osittaistulojen tuottajat, mukaan lukien sekä summainmatriisi että valinta-lohko. Yleisesti kantaluku-4:n MBA:ta pidetään parhaana tekniikan tason rinnakkaisena kertolaskumenetelmänä, ja sitä käytetään monissa 10 teollisista kertojista.
Keksinnön tärkeä tavoite on korostaa joitakin kertoja/MAC-yksikön ominaisuuksia, jotka ovat toivottavia videon- ja kuvankäsittelyn kannalta, mutta jotka puuttuvat tai ovat heikkoja esiteltävissä tekniikan tason rat-15 kaisuissa. Ensin tarkastellaan kaikkein suosituinta kantaluku-4 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 osittaistulojen lukumäärää vähennetään puoleen verrattuna 20 kantaluku-2 -kertolaskuun, sitä voitaisiin edelleen vähentää käyttämällä suurempia kantalukuja. Toisin sanoen, tämä menetelmä on moni-:Y: mutkainen lähinnä vaiheessa 2 (osittaistulojen summaus). Kun kanta- ;Τ: luku-4:n Booth-uudelleenkoodattua kertoja/MAC-rakennetta limitetään, osittaistulon tuottamislohkoa pidetään yleensä ensimmäisenä liuku-: 25 hihnavaiheena, joka on kuitenkin puhtaasti tasapainossa (eli nopeampi kuin) muiden liukuhihnavaiheiden kanssa.
Pohdittaessa “kantaluku-suurempi-kuin-neljä” -kertojia on näytetty, että ·;;; näiden kertojien eri toteutukset, kun niitä käsitellään ainoastaan kerto- 30 laskuoperaation toteuttamiseksi, ovat kilpailukykyisiä kantaluku-4 kerto- ·*·.. jien kanssa pinta-ala- ja aikakriteerien suhteen, samalla kun suoriutuvat > .··. niitä paremmin tehokulutuksen suhteen. ”Kantaluku-suurempi-kuin- neljä” -menetelmien pääasiallinen haittapuoli on summainmatriisin * ··' ; tarve osittaistulon tuottamislohkossa.
':,,i 35 115862 10
Boothin uudelleenkoodatuilla kertojilla on myös haittapuoli, joka liittyy tarpeeseen käsitellä kerrottavan negatiivisia kerrannaisia, samoin kuin etumerkkejä. Erityisesti ”kantaluku-suurempi-kuin-kuusitoista” Boothin uudelleenkoodatut kertojat tarvitset enemmän kuin yksitasoista sum-5 mausta tuottaakseen mahdollisia osittaistuloja.
Näin ollen yksi keksinnön tavoitteista on kehittää suurikantalukuisia kertojia ilman Boothin uudelleenkoodausta.
10 Jos rinnakkaista joukkoa itsenäisiä tekniikan tason tai äskettäin ehdotettuja suurikantalukuisia kertojia/MAC-yksiköitä käytettäisiin lukuisien vastaavien toimintojen tuottamiseksi, vaadittaisiin laaja piipinta-ala, vaikka nopeampia lohkoja voitaisiin jakaa vaikuttamatta yleiseen suoritustehoon.
15 Näin ollen keksinnön toinen tavoite on kehittää rivistö kertojia ja/tai MAC-yksiköitä, joilla on joitakin yhteisiä lohkoja.
Liukuhihnoitettujen tekniikan tason kertojien ja/tai MAC-yksiköiden mer-20 kittävä haittapuoli on, että liukuhihnavaiheet on tasapainotettu heikosti.
* ·
Keksinnön tavoitteet ja yhteenveto * · ·
* » I
•...: Nämä havainnollistetaan kahdella taulukolla. Taulukko 1 a esittää useita • · : 25 ominaisuuksia eri lohkoissa, joita käytetään tekniikan tason Boothin * * · uudelleenkoodatuissa kantaluku-T -kertojissa/MAC-yksiköissä n -bittisen kertojan ja m -bittisen kerrottavan kertomiseksi, ja taulukko 1b esittää useita ominaisuuksia eri lohkoissa, joita käytetään uudessa ei- I * · ;;; uudelleenkoodattujen kantaluku-T -kertojissa/MAC-yksiköissä n -bitti- 30 sen kertojan ja m -bittisen kerrottavan kertomiseksi, tässä järjestyk-sessä. Taulukko 1c esittää lyhenteet, joita käytetään taulukoissa 1a ja :***: 1b. Taulukkoja 1a ja 1b analysoitaessa voidaan nähdä, että jokaisen kertojan eri lohkojen viiveiden välillä on merkittäviä eroja jokaisessa ; kertoja/MAC-yksikkötyypissä useimmille n :n ja m :n arvoille. Toisin ’ : 35 sanoen, näiden kertojien suora liukuhihnatoteutus kärsisi huonosta tasapainosta liukuhihnavaiheiden välillä. Pyrittäessä saavuttamaan 115862 11 parempaa tasapainoa näiden liukuhihnavaiheiden välillä olisi mahdollista joustavasti kasvattaa ensimmäisen ja viimeisen liukuhihnavaiheen suoritustehoa suunnittelemalla CLA-summaimia, joissa on eri määriä kokosummaimia (Full Adder, FA) yhdessä ketjutuslohkossa. Tämän 5 vuoksi näiden lohkojen viiveitä ei osoiteta taulukoissa 1a ja 1b. Joissakin tapauksissa, esim. kun on pieni n , 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äiden kahden vaiheen nopeuttamiseksi, vaikka ratkaisu ei ole kaikkein tehok-10 käin. Tilanne on erilainen keskimmäisen kahden liukuhihnavaiheen (SB ja CA) kohdalla, koska näille lohkoille tarkoitetut huipputekniikkaa edustavat piirit on suunniteltu optimoimalla kriittisiä polkuja siten, että näiden piirien sisäinen liukuhihnoitus ei olisi kohtuullista. Lisäksi näiden lohkojen viiveiden väliset suhteelliset erot ovat hyvin erilaisia jokaiselle 15 tyypille (BR (7=8,16), NR1 (7=4,8)) eri n :n arvojen tekniikan tason ker-tojan/MAC-yksikön rakenteille. Pienempien n :n ja suuremman kanta-luku 7 :n (eli T = 16 ja vapaasti määriteltävä n ) tapauksille valinta-lohko (SB) on hitaampi kuin pakkausmatriisi (CA), kun taas toisissa tapauksissa tilanne on päinvastainen. Tämä tarkoittaa sitä, että nope-20 ampien piirien suunnitteleminen yhdelle tai toiselle lohkolle ei tarjoa yleistä ratkaisua näiden vaiheiden tasapainottamisen ongelmaan.
.* V: Kaikki nämä vaikeuttavat systemaattisen menetelmän johtamista teknii- kan tason kertojan/MAC rakenteiden liukuhihnoittamiseksi tasapainoi-•:..; silla liukuhihnavaiheilla.
.·. : 25 .···.* _ Taulukko la__
Kertojatyyppi__BR, T=4__BR, T=8__BR, T=16 . Summainmatriisin leveys, - 1 3 ·;;; _s____
Mahdollisten osittais- 5 9 17
• I
j tulojen lukumäärä____ i : SB:n kompo- Kood.__n/2 BR4__n/3 BR8__n/4 BR16_ : \t nentit Dekood. n/2 (m+1)-BP4 n/3 (m+2)- 4:1 t/c n/4 (m+3)-8:1 t/c ;;; J _|_SE__Kyllä__Kyllä__Kyllä SB:n viive 6t 12t 16t 12 1 1 5862 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/3 1-bit _+5n/41-bit FA-CA:n n=13,x 7/4/8t 5/3/6t 4/2/4t sisääntulojen/ MAC__9 / 5 /10t _8 / 4 / 8t__6 / 3 / 6t_ tasojen/ n=16,x 8/4/8t 6/3/6t 4/2 / 4t viiveiden MAC__10/5 / 10t__8 / 4 / 8t__6 / 3 / 6t_ lukumäärä 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/ MAC 9 / 2(4:2)+FA / 8t__7 / 2 / 6t__6 / 2 / 6t_ tasojen/ n=16,x 8/2/6t 6/2/61 4/1 /31 viiveiden MAC 10 / 3 / 91__8/2/61__6/2/6t lukumäärä n=64, x 32/4/12t 22/4/12t 16/3/9t _IMAC 34 / 5 / 15t 24 / 4 / 12t 18 / 4 / 12t _ Taulukko 1b __
Kertojatyyppi NR1,T=4 NR1,T=8 NR2, T=4__NR2, T=8
Summainmatriisin 2 4 1 3 leveys, s________ . , Mahdollisten 4 8 4 8 ’ * ‘' 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:i))__eri)]_ :" *:__SE__Ei__Ei__Ei__Ei_ SB:n viive _5t__6t_ 6t 12t _ CA:nsisään- ((n-1)/2+1) ((n-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__+ 1 1 -bit ;/ FA-CA:n n=13, x 7/4/8t 5/3/6t 6/3/61 4/2/4t \’ * sisään- MAC 9/4/81__7/4/81__8/4/81__6/3/61 ·;’* tulojen/ n=16,x 9/4/8t 6/3/6t 8/4/8t 5/3/6t tasojen/ MAC 11 / 5 /1 Qt__8 / 4 / 8t__10 / 5 /10t__7/4/8t ':": viiveiden n=64,x 33 / 8/16t 22/7/14t 32/8/16t 21 /7/141 lukumäärä MAC 35/9 / 18t 24 / 7 /14t 34/9/181__23 / 8 /161 115862 13 4:2-CA:n n=13,x 7 / 2 / 6t 5 / (4:2)+FA / 5t 6 / 2 / 6t 4/1 / 3t sisään- MAC 9 / 2(4:2)+FA / 8t 7 / 2 / 6t 8/2/6t 6 / 2 / 6t tulojen/ n=16, x 9 / 2(4:2)+FA / 8t 6 / 2 / 6t 8 / 2 / 6t 5 / (4:2)+FA / 5t tasojen/ MAC 11 / 3 / 9t 8 / 2 / 6t 10/3/91__7 / 2 / 6t viiveiden n=64, x 33 /4(4:2)+FA/14t 22 / 4 /12t 32 / 4 /12t 21 / 4 /12t lukumääräjMAC 35/5/15¾ 24 / 4 / 12t 34/5/15t 23/4/12t _ Taulukko 1c_ BR__Boothin uudelleenkoodattu kantaluku-T -kertoja_ NR1__Tyypin 1 ei-uudelleenkoodattu kantaluku-T -kertoja_ 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_ 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
* « · * · * t ·
Nyt esillä olevan keksinnön tavoitteena on toteuttaa parannettu las-v : 5 kentarakenne ja menetelmä kiintopilkun kertolaskuoperaatiolle rinnak- ': : kais-limitetysti, jolloin liukuhihnavaiheet ovat paremmin tasapainossa.
• · • * · * * · : Keksintö perustuu siihen ajatukseen, että rinnakkaisia kertojia tai MAC- yksiköitä käytetään laskentaoperaatioiden suorittamiseksi ainakin osit- 10 tain aikalomitetusti. Lyhyesti sanottuna, nyt esillä olevan keksinnön ! ·: ·, rakenne johdetaan kantaluku-T:n Booth-uudelleenkoodattujen (7=8,16) » » kertojien/MAC-yksiköiden tekniikan tason rakenteista tai uusista ei-: ’· uudelleenkoodatuista (joissa kantaluku T=4, 8) käyttämällä liuku- hihnoitusta, jossa jokainen liukuhihnavaihe rinnakkaistetaan eri rinnak-.·. 15 kaisuuden tasolla, niin että suurempaa rinnakkaisuutta käytetään ver- rattain hitaammille lohkoille. Tällä tavoin kertojien/MAC-yksiköiden suunnitteluun tuodaan paljon joustavuutta. Yhdeltä kannalta tämä mahdollistaa paremman suoritustehon saavuttamisen verrattuna yhteen 115862 14 tekniikan tason kertojaan/MAC:hen laitteiston/tehon kustannusten minimilisäyksellä. Toisaalta tämä johtaa merkittäviin pinta-alasäästöi-hin, parempaan tasapainoon liukuhihnavaiheiden välillä, ja siten parempaan laitteiston hyväksikäyttöön ja tehonkulutukseen verrattuna 5 siihen, että olisi olemassa rivistö itsenäisiä tekniikan tason kerto-jia/MAC-yksiköitä. Keksinnön mukaisen menetelmän toinen merkittävä etu on, että sillä saavutetaan enemmän rinnakkaisuutta ilman että kasvatetaan tulo/lähtö-väylän leveyttä.
10 Suuren kantaluvun kertoja/MAC-yksikkö -rakenteet sisältävät lohkoja, joita voidaan käyttää itsenäisesti muiden hyödyllisten operaatioiden suorittamiseksi. Tällaisia lohkoja ovat summain/vähentäjämatriisi tai summauslohko. Keksinnön tavoitteena on suunnitella uudelleenkonfigu-roitavia suuren kantaluvun kertoja/MAC-yksikkö -rakenteita, joita voi-15 daan konfiguroida sisältämään vain osajoukko kertojalohkoja siten, että sama laite tukee myös kertolaskuoperaation osaoperaatioiden toteuttamista.
Tarkkaan ottaen nyt esillä olevan keksinnön mukaiselle menetelmälle 20 on pääasiassa tunnusomaista se, että ainakin yksi osaoperaatioista V·; suoritetaan rinnakkaisesti yhdessä liukuhihnavaiheessa, jossa osaope- :V: raatio toiselle kertolaskuoperaatiolle aloitetaan ennen kuin vastaava osaoperaatio ensimmäiselle kertolaskuoperaatiolle on päättynyt. Nyt esillä olevan keksinnön mukaiselle laitteelle on pääasiassa tunnus-: 25 omaista se, että laite edelleen sisältää välineet ainakin yhden osaope- raation suorittamiseksi rinnakkaisesti yhdessä liukuhihnavaiheessa, ja välineet mainitun toisen kertolaskuoperaation osaoperaation aloittamiseksi ennen kuin vastaava mainitun yhden kertolaskuoperaation osa- I I · ·;;; operaatio on päättynyt. Nyt esillä olevan keksinnön mukaiselle langat- 30 tomalle päätelaitteelle on pääasiassa tunnusomaista se, että langaton ·*·.. päätelaite edelleen sisältää välineet ainakin yhden osaoperaation suo- . ··. ottamiseksi rinnakkaisesti yhdessä liukuhihnavaiheessa, ja välineet , \ mainitun toisen kertolaskuoperaation osaoperaation aloittamiseksi : : ; ennen kuin vastaava mainitun yhden kertolaskuoperaation osaoperaa- : : 35 tio on päättynyt. Nyt esillä olevan keksinnön mukaiselle laskenta- laitteelle on pääasiassa tunnusomaista se, että laskentalaite edelleen 115862 15 sisältää välineet ainakin yhden osaoperaation suorittamiseksi rinnak-kaisesti yhdessä liukuhihnavaihessa, ja välineet mainitun toisen kerto-laskuoperaation osaoperaation aloittamiseksi ennen kuin vastaava mainitun yhden kertolaskuoperaation osaoperaatio on päättynyt. Nyt 5 esillä olevan keksinnön mukaiselle järjestelmälle on pääasiassa tunnusomaista se, että laite edelleen sisältää välineet ainakin yhden osa-operaation suorittamiseksi rinnakkaisesti yhdessä liukuhihnavaihessa, ja välineet mainitun toisen kertolaskuoperaation osaoperaation aloittamiseksi ennen kuin vastaava mainitun yhden kertolaskuoperaation 10 osaoperaatio on päättynyt.
Nyt esillä oleva keksintö esittää merkittäviä etuja verrattuna tekniikan tason ratkaisuihin. Käyttämällä keksinnön mukaista menetelmää videon/kuvankäsittelyn yhteydessä kertolaskuoperaatioita voidaan suo-15 rittaa nopeammin ja pienemmällä teholla kuin tekniikan tason menetelmillä ja laitteilla. Keksintö on erityisen tehokas useiden kertolasku-jen/MAC:iden toteuttamiseksi. Merkittävää vähennystä pinta-alan ja tehon kulutuksessa voidaan saavuttaa liukuhihnavaiheiden välisen paremman tasapainon ansioista verrattuna esim. tapaukseen, jossa on 20 joukko itsenäisiä kertojia. Nopea suorituskyky (suuri suoritusteho) joh-tuu liukuhihnoituksen käytöstä, jossa on joustava mahdollisuus tasa-:Y: painottaa eri liukuhihnavaiheiden (kertojalohkot) viiveet ja pienentää koko rakenteen aikaa nopeimman lohkon viiveeseen. Suoritustehon kasvu saavutetaan pinta-alan minimikasvulla ja ilman että tulo/lähtö- • · . 25 väylän leveyttä kasvatetaan verrattuna yksittäiseen liukuhihnoitettuun :.. * tekniikan tason (kantaluku-4 tai suurempi) kertojaan.
Piirustusten lyhyt kuvaus * * · 30 Nyt esillä olevaa keksintöä selostetaan seuraavassa tarkemmin viitaten :'. samalla oheisiin piirustuksiin, joissa » · • ‘ kuva 1 kuvaa tekniikan tason kantaluku-4:n Boothin uudelleen- :·: : koodattujen kertojien tyypillistä rakennetta, 35 115862 16 kuva 2 kuvaa kantaluku-T:n Boothin uudelleenkoodattujen (r>8 ) tai ei-uudelleenkoodattujen (7>4 ) kertojien yleistä rakennetta, 5 kuva 3a kuvaa summauslohkon yhtä suoritusmuotoa rinnakkaisessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa summauslohko toteutetaan yleisenä pakkausmatriisina n/t:lle valituille osittaistuloille ja takaisinkytkennän summa-ja muistibittitermeille, 10 kuva 3b kuvaa summauslohkon toista suoritusmuotoa rinnakkaisessa kantaluku-T:n MAC-yksikkö -rakenteessa, jossa summainlohko toteutetaan jaettuna pakkausmatriisina, 15 kuva 4 kuvaa yksinkertaistettuna lohkokaaviona esillä olevan keksinnön mukaisen laitteen edullista suoritusmuotoa useille kertolaskuille/MAC-operaatioille, kuva 5a on kuvaus sarjatoiminnallisesta lohkosta, 20 kuva 5b on kuvaus useasta samanlaisesta rinnakkaisesta :Y; toiminnallisesta lohkosta, jotka toimivat nyt esillä olevan ; keksinnön viivästetyn (lomitetun) rinnakkaisuuden mukaan, * .... 25 kuva 6a kuvaa ajastuskaaviona sisääntulorekisterien toimintatapaa kuvan 5b viivästetyssä rinnakkaisessa toiminnallisessa lohkossa, . i* kuva 6b kuvaa ajastuskaaviona toiminnallisten lohkojen toiminta- 30 tapaa kuvan 5b viivästetyssä rinnakkaisessa toiminnalli- _ sessa lohkossa,
» I
/" kuva 6a kuvaa ajastuskaaviona lähtömultiplekserin toimintatapaa : kuvan 5b viivästetyssä rinnakkaisessa toiminnallisessa 35 lohkossa, 115862 17 kuva 7 kuvaa nyt esillä olevan keksinnön mukaisen tyypin 1 kanta-luku-8 -kertojan edullista suoritusmuotoa, joka käsittää summaimen kerrottavan kääntämiseksi, 5 kuva 8 kuvaa esimerkkisuoritusmuotoa valintayksiköstä (SEL) kuvan 7 kertojarakenteessa, kuva 9 kuvaa pakkausmatriisia, joka koostuu koko- ja puolisummaimista kuvan 7 kertojarakenteisiin tapauk-10 sessa, jossa m=13, n=16, kuva 10 kuvaa yksinkertaistettuna lohkokaaviona keksinnön edullisen suoritusmuodon mukaista laitetta, ja 15 kuva 11 kuvaa yksinkertaistettuna lohkokaaviona esillä olevan keksinnön toisen suoritusmuodon mukaisen laitteen yleistä rakennetta useille kertolaskuille/MAC-operaatioille.
Keksinnön yksityiskohtainen kuvaus 20
Nyt esillä olevan keksinnön edullista suoritusmuotoa kuvataan seuraa-:Y: vassa yksityiskohtaisemmin. Nyt esillä olevan keksinnön mukaisen laitteen yleistä rakennetta kuvataan kuvassa 4. Laite 401 käsittää jou-kon eri liukuhihnavaiheita P1, P2, P3, P4. Tässä suoritusmuodossa ; 25 laite 401 käsittää neljä liukuhihnavaiheita, mutta on selvää, että nyt !..* esillä olevan keksinnön puitteissa liukuhihnavaiheiden lukumäärä voi '··’ olla muu kuin neljä.
. Tässä ei-rajoittavana esimerkkinä käytettävä nyt esillä olevan keksin- 30 nön edullinen suoritusmuoto on laite, jolla tuotetaan sarja kertolaskuja :·’ yi — OjXj , / = 1,...,k , tai useita MAC-operaatioita, eli vektorista-vektoriin - k s = ^\aixi : !·. sisäisiä tuloja i=1 . Itse asiassa laite toimii suuren kantaluvun ” Y Boothin uudelleenkoodattujen tai ei-uudelleenkoodattujen rinnakkaisien kertojien tai MAC-yksiköiden rinnakkaismatriisina (rivistö), jossa matrii-35 sin kertojat/MAC-yksiköt jakavat joitakin lohkoja.
18 1 1 5862
Liukuhihnoitus on yleinen tapa kasvattaa järjestelmän suoritustehoa useiden samankaltaisten toimintojen toteuttamiseksi, eli kertolaskun ja/tai MAC:n. Pohdittaessa tyypillistä tekniikan tason kantaluku-T:n 5 Boothin uudelleenkoodattujen (T=8, 16) tai ei-uudelleenkoodattujen (T=4, 8) kertojarakenteiden (kuva 2) liukuhihnatoteutusta ensimmäinen liukuhihnavaihe P1 olisi s summaimien matriisi, jossa s annetaan taulukossa 1a, toinen vaihe P2 olisi valintalohko, kolmas vaihe P3 olisi pakkausmatriisi, ja loput useat vaiheet P4 (joiden numero olisi erilainen 10 eri toteutuksissa) muodostaisivat lopullisen summaimen.
Keksinnön soveltamiseksi kertolaskuprosessissa on johdettu uusi ei-uudelleenkoodattu kantaluku-suurempi-kuin-neljä -kertolaskumene-telmä vapaasti määriteltäville etumerkillisille kahden komplementin 15 kokonaisluvuille muuntamalla kaavaa (3) seuraavalla tavalla: ] nradix-T~t (f t—1 . ^ . /y\ y= Σ (4·*)* = Σ Ew' (7)
r=0 r=0 ^L/=0 J
. . jossa T = 2‘ • · · t » :.v tai seuraavalla tavalla: • · t ·:··: n!t-2(\t-l 1 1 ΓΓ f-2 ~\ λ y= Σ Σ“,Γ+ί? * !"V/+E0»-W 1 2”~' (8) r=0 U»'=0 J ) [l i=0 J ) 20
Jos käytetään kaavaa (7), tällöin tulee olemaan (n-l)/t + l mahdol-lista osittaistuloa, joissa ensimmäiset (n~l)/t mahdolliset osittaistulot ovat kerrottavan ei-negatiivisia kerrannaisia Arx , r = 0,l,...,n/t-l , ;·... joissa Ar vaihtelee välillä o ja 2l -1 ja viimeinen mahdollinen .···. 25 osittaistulo on (~an_jx) . Jos käytetään kaavaa (8), tällöin tulee ole maan n/t mahdollista osittaistuloa Arx , r = 0,1,...,n/1-1 .joissa Ar \\\ : vaihtelee välillä 0 ja 2* -1 ensimmäisille nlt-1 :lle mahdollisille osit- taistuloille, ja välillä -2*~l ja 2t_1 -l viimeiselle mahdolliselle osittais-tulolle. Tässä tapauksessa ainoastaan merkittävimmät / + / bitit ovat ,ο 1 1 5862
Booth-tyyppisesti uudelleenkoodattuja, kun taas muut bitit on vain ryhmitelty t :n mukaisesti. Yhtälöihin (7) tai (8) perustuvalla kertojalla olisi samankaltainen rakenne kuin kuvassa 2 esitetyllä, eroavuuksina valin-talohko 203 ja mahdollisten osittaistulojen määrä. Koska kertojaa ei ole 5 koodattu, valintalohko voidaan yksinkertaisesti toteuttaa multiplekseri-matriisina, ja jos käytetään kaavaa (8), tarvitaan ainoastaan yksi rivi Boothin koodereista/dekoodereista tärkeimmille t + 1 biteille. Koska miltei kaikki mahdolliset osittaistulot ovat kerrottavan ei-negatiivisia kerrannaisia, ei ole tarpeen suorittaa mitään ykkösen lisäämistä sum-10 mauslohkossa, lukuun ottamatta yhtä bittiä mikäli käytetään kaavaa (8). Tämä tekee valintalohkosta paljon pienemmän ja säännöllisemmän käyttämällä hyväkseen yksinkertaisempaa yhteen kytkettyä verkkoa.
Nyt esillä olevan keksinnön mukaisen laitteen edullinen suoritusmuoto 15 yhdistää useita (rivistö) kertojia/MAC-yksiköitä. Laitteen toiminta riippuu useista parametreista, joiden asianmukaisella valinnalla voidaan suunnitella laite, jolla on tasapainoiset liukuhihnavaiheet. Ehdotettujen kan-taluku-T:n Boothin uudelleenkoodattujen (T=8, 16) tai ei-uudelleen-koodattujen (T=4, 8) kertojien rivistöjen lajitelman yleinen rakenne esi-20 tetään kaaviollisesti kuvassa 4. Nyt esillä olevan keksinnön edullisen suoritusmuodon mukaisen kertojien/MAC-yksiköiden rivistön rakenne : V: voidaan yleisesti esittää limitettynä laitteena 401, jossa ensimmäinen liukuhihnavaihe P1 käsittää useita, esimerkiksi/? , s :n summaimien matriiseja (AA) 402, ja kaikki s summaimien matriisit 402 jakavat .·. : 25 samat sisääntulolinjat 406. Toinen liukuhihnavaihe P2 on useita, esi- !./ merkiksi g , valintalohkoja (SB) 403, kolmas vaihe P3 on useita, esimerkiksi u , pakkausmatriiseja (CA) 404, ja neljäs liukuhihnavaihe P4 käsittää useita, esimerkiksi v , lopullisia CLA-summaimia 405. • ; Perustason toiminnalliset lohkot (AA, SB, CA ja CLA) voivat itse asi- '·..** 30 assa olla samoja, kuin mitä voidaan käyttää saman tyyppisessä teknii- kan tason kantaluku 4, 8, tai 16:n Boothin uudelleenkoodatuissa kerto-;· *; jissa ja/tai MAC-yksiköissä tai hiljattain ehdotetuissa kantaluku 8 tai . \ 16:n ei-uudelleenkoodatuissa kertojissa/MAC-yksiköissä. Näin ollen : : i tapaus P = q = u = v = i vastaa tekniikan tason kertojan/MAC-yksikön : : 35 rakenteen tapausta. Pääasiallinen ero on siinä, että nyt esillä olevan keksinnön mukaisen laitteen edullisessa suoritusmuodossa jokainen 115862 20 tekniikan tason rakenteen peruslohko on korvattu usealla eri peruslohkojen lukumäärällä. Yhden liukuhihnavaiheen lohkot toimivat alla kuvatulla aikalomitetulla tavalla siten, että liukuhihnavaiheiden suoritustehoja voidaan vaihdella, jotta ne tehtäisiin suunnilleen yhtä suuriksi, 5 ja jotta saavutettaisiin haluttu toimintavaiheen kesto.
Useiden toiminnallisten lohkojen aikalomitetun toiminnan periaate esitetään alla viittaamalla kuviin 4, 5a ja 5b, joissa FB (Functional Block, toiminnallinen lohko) tarkoittaa mitä tahansa kertoja/MAC-rakenteiden 10 perustoiminnallista lohkoa (AA, SB, CA, CLA). Toiminnallista lohkoa FB
tulee käyttää suuremman järjestelmän liukuhihnavaiheessa, ja siinä tulee olla arvioitu DFB * pTdes :n viive (mutta DFB < pTdes ), jossa Tdes on haluttu järjestelmän toimintavaiheen kesto. Sitten, jotta liukuhihna-vaihe P1, ..., P4 toimisi suoritusteholla, joka vastaa yhden vaiheen 15 kestoa, sarjallinen toiminnallinen lohko voidaan korvata usealla w toiminnallisen lohkon FB],FB2,...,FBw :llä, joilla on liukuhihnarekisterit (salvat) sisääntuloissaan 406, 407, 408, 409 ja w:l multiplekseri 410, 411, 412, 413 lähdöissään. Parametri w riippuu kyseessä olevasta liukuhihnavaiheesta. Ensimmäiselle liukuhihna-20 vaiheelle P1 parametri w vastaa parametriä p, eli siinä on p liukuhihna-rekisteriä R1,...,Rp ja ensimmäisen liukuhihnavaiheen multiplekseri 60 410 valitsee yhden p-sisääntuloista lähtöönsä. Toiselle liukuhihna- :T: vaiheella P2 parametri w vastaa parametriä q, eli siinä on q liukuhihna- rekisteriä Rj,...,Rq ja toisen liukuhihnavaiheen P2 multiplekseri 411 25 valitsee yhden q-sisääntuloista lähtöönsä, tässä järjestyksessä. Koi- * · ·**. mannelle liukuhihnavaiheelle P3 parametri w vastaa parametriä u, eli siinä on u liukuhihnarekisteriä Rj,...,Ru ja kolmannen liukuhihna- vaiheen P3 multiplekseri 412 käsittää kaksi multiplekseriä (ei näytetty), . ; joista kumpikin valitsee yhden u-sisääntuloista lähtöönsä. Neljännelle 30 liukuhihnavaiheelle P4 parametri w vastaa parametriä v, eli siinä on v liukuhihnarekisteriä R],...,RV ja neljännen liukuhihnavaiheen P4 multi- :’ plekseri 413 valitsee yhden v-sisääntuloista lähtöönsä 414. Yhteinen : !·. sisääntulo 406, 407, 408, 409 liukuhihnavaiheeseen P1, P2, P3, P4 : : ; liittyy jokaiseen w liukuhihnarekisteriin Rj,...,Rw . Kuitenkin jokainen MM· 35 näistä rekistereistä on avoinna vain yhden jokaisesta w toimintavaiheesta yhden toimintavaiheen aikapoikkeamalla. Tämä on esitetty 115862 21 kuvassa 6a ajastuskaaviona. Tällä tavoin jokaisessa toimintavaiheessa sisääntulo / on itse asiassa yhteydessä vain yhden toiminnallisen lohkon sisääntuloon, kun muut yhteydet eivät taas ole toiminnassa, koska kaikkien muiden tarkasteltavan liukuhihnavaiheen muodostavien toi-5 minnallisten lohkojen sisääntulorekisterit on suljettu kirjoittamisen vuoksi. Rekisteri Rj ensimmäisen toiminnallisen lohkon FBj sisääntulossa on avoinna jokaisen w toimintavaiheen ensimmäisen vaiheen aikana, rekisteri r2 toisen toiminnallisen lohkon FB2 sisääntulossa on avoinna jokaisen w toimintavaiheen toisen vaiheen aikana, jne. 10 Yleensä toimintavaiheessa / = /,2,..., K sisääntulo / on itse asiassa yhteydessä vain FBf sisääntuloon, jossa f = (t~l)modw+l . Näin ollen sisääntulo /:tä käytetään samassa tilassa, mutta ajallisesti jaettuna tarkasteltavan liukuhihnavaiheen toiminnallisten lohkojen FBj,...,FBw kesken. Järjestelmän toiminnan aikana, toimintavaiheen 15 t = 1,2,...,K aikana, yksi näyte Xt tulotietovirrasta kyseiseen kerrokseen tulee sisään toiminnalliseen lohkoon FBf , / = (t-l)modw+l , joka aloitetaan kyseisessä kerroksessa kuten kuvan 6b ajoituskaaviossa näytetään. Kun FBf suorittaa valmiiksi toimintansa Xt :n aikana toimintavaiheen t + w-l ,/ = 1,2,...,K lopussa, w:l multiplekseri 410, 20 411, 412, 413 toiminnallisten lohkojen lähdöissä välittää FBf :ssä saa- " dut tulokset kerroksen lähtöön seuraavassa toimintavaiheessa t + w , v.: / = 7,2,...,K . Tämän vuoksi multiplekseri 410, 411, 412, 413 toimii : kuvassa 6c esitetyn pyöreän mod w -säännön mukaisesti.
* · V·; 25 Ensimmäisen liukuhihnavaiheen P1 lähtö on yhdistetty toisen liuku- hihnavaiheen P2 sisääntuloon. Vastaavasti, toisen liukuhihnavaiheen P2 lähtö on yhdistetty kolmannen liukuhihnavaiheen P3 sisääntuloon, ja kolmannen liukuhihnavaiheen P3 lähtö on yhdistetty neljännen liukuhihnavaiheen P4 sisääntuloon. Viimeisen liukuhihnavaiheen, eli nyt 30 esillä olevan keksinnön edullisen suoritusmuodon mukaisen laitteen : ·* neljännen liukuhihnavaiheen P4 lähtö on yhteydessä järjestelmän läh- :...: töön.
* · .!!.· Näin ollen korvaamalla tekniikan tason kertojan/MAC-yksikön raken- » · 35 teen jokaisen toiminnallisen lohkon usealla samanlaisella toiminnallisella lohkolla ja käyttämällä hyväksi aikalomitetun toiminnan periaatetta 115862 22 voidaan saavuttaa 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 kerto-5 jan/MAC-yksikön rakenteen neljän liukuhihnavaiheen viiveet ovat DAA , dsb - dca > dcla - tässä järjestyksessä, ja haluttu järjestelmän suoritusteho on Ndes kertolaskua/MAC-operaatiota sekunnissa, jolloin haluttu toimintavaiheen kesto valitaan olemaan Tdes sekuntia, niin että Tdes < IlNdes , ja mainitut suunnitteluparametrit valitaan olemaan 10 p = [DAA/Tdes~\ , q = \DSB!Tdes , u = [dca/Tdes~\, ja v = \Dcla / Tdes ~|, missä esitysmuoto [*~| tarkoittaa pyöristystä seuraavaan kokonaislukuun.
Kellolla Tdes toimivan ehdotetun kertojan/MAC-yksikön rakenteen 15 pinta-ala voidaan arvioida olevan:
Sprop ~ AA + U^CA V^CLA ^overhead » jossa SAA , SSB , sCA ja SCLA ovat vastaavien lohkojen pinta-alat, ja 20 Soverhead on lisäpinta-ala, jota liitäntä ja ohjausvälineet vaativat usei- .'*· den toiminnallisten lohkojen integroimiseksi jokaiseen liukuhihna- ν’.· vaiheeseen.
:··· Toisaalta, yksittäisessä perinteisessä suuren kantaluvun liukuhihnoite- ·. : 25 tussa kertojassa suoritusteho voidaan määritellä olemaan ,·*·. N pipe ~ U Tpipe , jOSSa Tpipe = max{DAA, Dsb , DqA , DCLA } Vaikka
Npipe > Ndes , mikä tarkoittaa, että yksi liukuhihnoitettu kertoja voi suoriutua tehtävästä, rakenne kärsisi matalasta vaiheiden välisestä tasapainosta, joka johtuisi suuriista eroista DAA , DSB , DCÄ , DCLA välillä, 30 kuten taulukosta 1a voidaan nähdä. Huono tasapaino johtaa laitteiden : '· matalaan hyötykäyttöön, ja siten tehonkulutuksen tehottomuuteen.
:.v Kuitenkin esimerkiksi signaalinkäsittelyssä tarvitaan suoritustehoja, : jotka ovat useita kertoja suurempia kuin mitä yksi vaikka liukuhihnoi- 8’.· tettukin kertoja tarjoaa. Tämä tarkoittaa sitä, että useissa tapauksissa 115862 23
Nj signaalinkäsittelyjärjestelmän tulisi sisältää matriisi (rivistö) n = — N pipe itsenäisiä kertojia/MAC-yksiköitä. Epäilemättä n = max{p,q,u,v} . Perinteisen kertojien/MAC-yksiköiden matriisin kokonaispinta-ala arvioitaisiin sitten seuraavasti: 5
Sconv = n(SAA +SSB +SCA + SCLA)+ Soverhead ·
Kun verrataan Sprop ja Sconv voidaan nähdä, että keksinnön mukaisten rakenteiden pinta-alassa voidaan saavuttaa merkittäviä säästöjä 10 verrattuna perinteisiin itsenäisten kertojan/MAC-yksiköiden matriiseihin. Nyt esillä olevan keksinnön edut voidaan saavuttaa ei ainoastaan signaalinkäsittelyssä (kuten kuvan/videonkäsittelyssä), vaan myös muissa prosesseissa, joissa tarvitaan reaaliaikaisia kertolaskuoperaatioita.
15 Näin ollen nyt esillä olevan keksinnön edullisen suoritusmuodon mukainen menetelmä tarjoaa paremman liukuhihnavaiheiden P1-P4 tasapainon, ja mahdollistaa yhden suuren kantaluvun liukuhihnoitetun ker-tojan/MAC-yksikön suoritustehon kasvun pinta-alan minimilaajennuk- : sella. Rakenteen suoritustehoa kasvatetaan nopeammin kun pinta-alaa, » · · ) 20 koska liukuhihnavaiheiden paremmalla tasapainottamisella on saavu- tettu parempi laitteiston hyväksikäyttö. Lisäksi tulisi huomioida, että « * · ‘ suoritustehoa kasvatetaan ilman, että on tarvetta kasvattaa tulo/lähtö- ' : väylän leveyttä, mikä on kriittistä, koska monien digitaalisten signaali- . : suorittimien väylän leveys on melko kapea.
25
Kuva 7 esittää esimerkkitoteutuksen tyypin 1 ei-uudelleenkoodatusta (eli yhtälöön (7) perustuvasta) kantaluku-8:n kertojarakenteesta (NR1, T=8), jossa käytetään hyväksi nyt esillä olevaa keksintöä. Kertojan 701 toiminta perustuu seuraaviin havaintoihin.
! 30 * Olkoon a = an_jan_2--ci]aQ ja x = xm_jx2...xjXQ kahden komplementin i ; esityksiä n -bittisestä (etumerkkibitti mukaan luettuna) kertojasta a ja m -bittisestä (etumerkkibitti mukaan luettuna) kerrottavasta x , tässä järjestyksessä. Olkoon myös kertoja etumerkillinen siten, että h = 3a/+1 35 (n on kokonaisluku). Silloin tulon y = a x (n + m) -bittinen (etumerkki- 115862 24 bitti mukaan luettuna) kahden komplementin esitys voidaan saada seu-raavalla tavalla:
y= Y,Yr23r +2kX
r=0 5 jossa
Yr =< Ar x
Ar = oin2air+xair — 2 oir+2 + 2ö3r+1 + air, r = 0,..., n —1, ovat osittaistulon arvoja, jotka muodostetaan vähiten merkittävistä m + 2 biteistä kahden komplementtien esityksestä numerosta Ar x , 10 k = min {n—1, m + 2} , ja X on etumerkin korjaava termi, joka saadaan seuraavasti X = (x„C(n)2m+2^-a„x2"^k)=\XmC(")2ml2 l 'f an=° V 1 xmC(n)2m*2~k-x2n~k ifa„=l : . 2"-l ·. : jossa C(n) =--= 1 Oil Oil ...Oil 1.
: : : ^ n-1 times rT: 15
Tulee huomioida, että Yr , r = 0,...,n-l saadaan poistamalla etumerkkibitit Ar x :stä, jotka kerätään termiin xmC(n)2m+2~k . Tämän * · ; ’ havainnon mukaan voidaan käyttää seuraavaa kertolaskualgoritmia.
20 Algoritmi 1.
Kertoja a:n kahden komplementin arvo a = α„_7α„_2···α/αο (n = 3n+l f - ) ja kerrottava x:n kahden komplementin arvo 3c = xm-ixm-2·~χ/χο an- :,J netaan tulotietoina algoritmiin 1. Tällöin algoritmi 1:n lähtö tulee ole- : X 25 maan tulon y = a-x kahden komplementin arvo [\\\ y = ym+n-iym+n-2ylYo Algoritmi 1 käsittää seuraavat vaiheet: 25 115062
Vaihe 1. Ensiksi muodostetaan mahdolliset osittaistulot 3x = 2x + x,5x = 4x + x ja 7x = 83c -x . Tämä voidaan suorittaa sellaisilla yhdistämisvälineillä kuten summaimilla/vähentäjillä 702b, 702c, 702d, tässä järjestyksessä. Myös etumerkin kor-5 jaustermi X = xmC(n)2m+2~k -x2n~k sen kahden komplementin muodossa muodostetaan esimerkiksi ensimmäisellä sum-maimella/vähentäjällä 702a. Arvot 2x,4x, and 8x voidaan saada siirtämällä kerrottavaa x yksi, kaksi tai kolme bittiä vasemmalle, tässä järjestyksessä. Arvo 6x voidaan saada siir-10 tämällä arvoa 3x yksi bitti vasempaan. Oleellisesti kaikki kerrottava x :n mahdolliset osittaistulojen arvot 0,x, 2x,3x, 4x, 5x,6x, and 7x , joilla on vapaasti määriteltävä 3 - bittinen ei-negatiivinen numero saadaan tässä kerroksessa. Jokainen tässä kerroksessa saatu numero on tulosta yhdestä 15 summauksesta tai vähennyksestä yhdellä operandilla, joka on x , ja toisella, joka on x siirrettynä vasempaan tietty määrä paikkoja. Näin ollen tämä vaihe voidaan toteuttaa neljän rinnakkaisen summaimen/vähentäjän 702a, 702b, 702c, 702d matriisissa yhdessä toimintavaiheessa.
20 • · · ; Vaihe 2. Kertojan jokaisen kolmen peräkkäisen bitin
Ar - a3r+2a3r+Ia3r , r = 0,...,n'-J ryhmän mukaan n osittais- * * · 2.... tulot Yr =<Ar x >(m+2) valitaan sitten kaikkien mahdollisten • : ensimmäisessä vaiheessa saatujen osittaistulojen arvojen 25 0, x, 2x,3x, 4x, 5x, 6x, and Tx listasta. Valinta voidaan tehdä valintavälineillä 703b, 703c, 703d. Myös jos a„ =0 niin etumerkin korjaustermin arvo asetetaan olemaan X = xmC(n)2m+1~k ; , muuten (jos an=l) X = X , jossa X saatiin ensimmäisessä vaiheessa. Tämä voidaan suorittaa ensimmäisellä valintaväli-: * 30 neellä 703a, joka valitsee joko sisääntulostaan : ·: X = xmC(n)2m+3~k , X = X lähtöön arvon an mukaisesti.
I Osittaistulot Yr ovat (m+2) -bittisiä numeroita, jotka on ·:··: muodostettu Ar ·x :sta poistamalla etumerkkibitti ja siten ne ovat aina positiivisia numeroita riippumatta x :n etumerkistä.
26 11 ££62
Vaihe 3. Tulo y määritellään nyt summaamalla n valitut osittaistulot Fr , r - 0,..., n —1 , ja X :n arvo. Ennen kuin summaus suoritetaan esim. pakkausmatriisissa 704a, Yr :n arvot kerrotaan 2r 5 :lla ja X :n arvo kerrotaan 2k :llä. Nämä kertolaskut kuvataan siirtotoimintoina, jotka käyttävät nuolia kuvan 7 valintalohkon 703 ja summauslohkon 704 välillä. Keksinnön mukaisesti ker- tolaskumenetelmän vaiheessa 3 lisättäviä numeroita (osittais-tulorivejä) on kaiken kaikkiaan n +1 = \n / 3~\+1 , kun taas 10 Boothin kertolaskumenetelmässä tämä luku on \n!2~\ tai Γ«/2~|+7 riippuen siitä, miten etumerkkejä käsitellään. Lisäksi koska osittaistulojen arvoja, samoin kuin etumerkin korjaus-termiä, siirretään 3 bittiä toistensa suhteen, joitakin näistä riveistä saatetaan yhdistää. Esimerkiksi kaksi riviä 000101 ja 15 011000 voidaan yhdistää seuraavaksi: 011101. Voidaan hel posti osoittaa, että yhdistämisen jälkeen osittaistulorivien kokonaismäärä on minj/3~][n/3~[}·+1. Koska kaikki osittaistulot
Yr ovat positiivisia ja 2k X on (m + n) -bittinen numero, mitään etumerkkejä ei tarvita summauksen toteuttamisessa. Muut tavat ·.*·: 20 etumerkin korjaustermin arvon muodostamiseksi ja summaami- ;V: seksi ovat mahdollisia, mutta niitä tulisi kuitenkin pitää pieninä variaatioina algoritmista 1. Selvästikin ehdotettu kertolasku-·:·; menetelmä voidaan helposti laajentaa MAC-menetelmään jos ·. : vaiheen 3 tulos lisätään aiempaan tulokseen.
25
Kuvan 7 kertoja 701 perustuu algoritmiin 1. Se koostuu summainmatrii-sista 702, jolla lasketaan etumerkin korjaustermi X ja sarja mahdolli-siä osittaistuloja 3x,5x,and7x kerrottavasta x , valintalohkosta 703, * m jolla muodostetaan sarja osittaistuloja Yr =< Ar ·χ >(m+2)
30 r- 0,..., n -1 , ja termi X kertoja d :n bittien mukaisesti, ja summaus-lohkosta 704, joka laskee tulon y summaamalla lähdöt Yr ja X : valintalohkosta 703 ja esisiirtää vasempaan Yr :n arvoa 3r bittiä ja X
:n arvoa K bittiä.
115862 27
Kuvan 7 kertojarakenne voidaan helposti laajentaa MAC-rakenteeksi sisällyttämällä takaisinkytkentä koko summauslohkon tai pakkaus-matriisin lähdöistä sen sisääntuloihin arvojen summan lisäämiseksi valintalohkosta 703 arvoon, joka on saatu aiemmassa toiminta-5 vaiheessa.
Kuvan 7 kertojarakenteen eri lohkojen eri toteutukset ovat mahdollisia. Seuraavassa oletetaan, että kerrottava x tulee sisään jokaiseen sum-mainmatriisin 702 neljään summaimeen/vähentäjään 702a, 702b, 702c, 10 702d bittirinnakkaisesti mahdollisin siirroin. Ensimmäinen summain 702a toteuttaa x2n~k :n vähennyksen vakiosta xmC(n)2m+2~k , jonka tuloksena on X . Tämä summain 702a voitaisiin korvata m :llä invertte-reillä, jos arvon an summaus toteutetaan summauslohkossa 704. Toinen 702b ja kolmas summain 702c vastaanottavat x :n toisessa 15 sisääntulossaan, ja x siirrettynä vasempaan, tässä järjestyksessä yhden tai kaksi asemaa niiden ensimmäisissä sisääntuloissa (summai-met, joissa on vain yksi sisääntulo voidaan myös ottaa huomioon). Tulos on 3x ja 55c , tässä järjestyksessä. Samalla tavoin neljäs summain 702d toteuttaa x :n vähentämisen 8x :stä, jonka tuloksena on 7x 20 . Summainmatriisi 702a, 702b, 702c ja 702d muodostaa ensimmäisen ' · ‘ liukuhihnavaiheen P1.
* « * • « · v : Summainmatriisin 702 lähdöt menevät sisään valintalohkoon 703, joka ·:·: nyt esillä olevassa suoritusmuodossa muodostaa toisen liukuhihna- 25 vaiheen P2 ja muodostuu (n+/w-k)-bittisestä 2:1 -multiplekseristä 703a ja n valintayksiköistä (SEL) 703b, 703c, 703d. Multiplekserillä 703a on X ensimmäisessä sisääntulossaan ja xmC(n)2m+2~k toisessa sisääntulossaan, ja sitä ohjataan an :llä siten että sillä on termi : X = xmC(n)2m+1~k -anx2n~k lähdössään. Jokaisella valintayksiköllä 30 703b, 703c, 703d on arvot 0,x,3x,5x,and7x sisääntulossa ja sitä ohjataan vastaavilla kolmella kertoja d :n bitillä. Lähtö muodostetaan •; * taulukon 3 mukaisesti.
» » * i l I Ϊ ! > ► I * 28 11 5 £ 6 2 __Taulukko 3.__
Ar Valittu sisääntulo Siirto vas. Lähtöarvo __Numero Arvo___ 000 0 0__0__0 001__1__X__0__x_
010 1 X__1__2X
011 __2__3x__0__3x_ 100 __1__x__2__4x_ 101 __3__5x__0__5x_ 110 __2___3x__1__6x_ 111 1 4__7x__0__7x_
Kuva 8 esittää ei-rajoittavan esimerkin virtapiireistä, jotka voidaan toteuttaa valintayksikkönä 703b, 703c, 703d. Virtapiiristö koostuu 8-5 Istä multiplekseristä, joiden jotkin sisääntulot muodostetaan siirtämällä joitakin toisten sisääntulojen biteistä. Yleisesti, valintayksikkö 703b, 703c, 703d voi olla mikä tahansa virtapiiristö, joka toimii taulukon 3 mukaisesti.
10 Nyt esillä olevan keksinnön mukaisen kertojarakenteen nyt esillä olevan : suoritusmuodon summauslohko 704 koostuu pakkausmatriisista (CA) j./ 704a, jota seuraa summain 705 (johon myöhemmin viitataan lopulli- sena summaimena). Summauslohko 704 muodostaa rakenteen kol-' mannen P3 ja neljännen liukuhihnavaiheen P4. Pakkausmatriisi 704a 15 pienentää n'+I osittaistulorivin kahteen riviin. Se voidaan rakentaa 3:2 Vi -suhteen kokosummaimista (FA), puolisummaimista (HA) ja/tai 4:2 - I « · suhteen pakkaimista. Tekniikan tasolta tunnetaan eri tekniikoita pak-kausmatriisien ja lopullisen summaimen rakentamiseksi, joita voidaan :* käyttää nyt esillä olevan suoritusmuodon puitteissa. Kuitenkin tulee 20 huomata, että summauslohkoon lisättävien rivien määrä on pienempi kuin tekniikan tason kantaluku-4:n Boothin uudelleenkoodatuissa kerto-jissa. Vastaavasti, pakkausmatriisien tasojen numerot ja siten niiden viiveet ja koko pienenevät merkittävästi. Esimerkiksi 13-bittisen kerrot-i tavan {m-13) ja 16-bittisen kertojan {n=16) tapauksessa lisättävien ·:··; 25 rivien lukumäärää pienennetään 9:stä 6:een, ja 11:stä 8:aan kun käy tetään kantaluku-8 -menetelmää kantaluku-4 -menetelmän sijaan ker- 115862 29 tojalle ja MAC-yksikön toteutuksille, tässä järjestyksessä. Esimerkki mahdollisesta pakkausmatriisista, joka on muodostettu koko- ja puoli-summaimista tätä tapausta varten, kuvataan kuvassa 9. Käsiteltävässä esimerkissä tasojen (viiveiden) lukumäärä pienennetään 4:stä 3:een 5 (8t:stä 6t:hen, t on NAND-porttiviive) ja 5:stä 4:ään (10t:stä 8t:hen) ver rattaessa huipputekniikkaa edustaviin kantaluku-4:n Boothin kertojiin ja MAC-yksiköihin, tässä järjestyksessä. Kokosummaimien (FA) ja puoli-summaimien (HA) lukumäärää pienennetään 72:sta ja 14:stä 36:een ja 13:een 13x16-kertojan tapauksessa kun käytetään kantaluku-8 -mene-10 telmää kantaluku-4 -menetelmän sijaan.
Taulukko 4
Osittais- CA:n Lopullisen o CC:t/latenssi CC:t/latenssi K
CO
Rakenne tulon viive summai- ® yhdelle ker- kertojille tai p-
O
tuottam. men viive O rannalle tai pituiselle vektori __viive_____MACille__kertolaskulle
Tekniikan 6t 8t 8t 8t 9/72t K+8=40/320t tason kanta- (4 tasoa) (7 vaihetta) luku-4:n
Boothin ; ‘ · kertoja ;Y; gzq.=igtgj_________
Tekniikan 6t 22t , * 11. tason kanta- 24t (3 tasoa) (3 vaihetta) 24t 4 / 96t K+4-36 / 864t . . Iuku-8:n NR1 I.. * kertoja, p=q=v=u=1
Ehdotettu 6t 12t :,lt: kertoja, p=2, 12t (3 tasoa) (5 vaihetta) 12t 7/84t K+6=38/456t ;·, q=v=u=1_______ , · · ·, Ehdotettu 6t 8t kertoja, p=3, 8t (3 tasoa) (7 vaihetta) 8t 9/72t K+8=40/320t : g=v=u=1_______ 30 11EC62
Ehdotettu 6t 6t kertoja, p=4, 6t (3 tasoa) (10 vai- 6t 12/72t K+11=43/258t q-v-u=1____hetta)____
Tekniikan 6t 10t 10t 10t 9/90t K+8=40/400t tason Boothin (5 tasoa) (7 vaihetta) MAC_______
Tekniikan 22t tason kanta- 24t 8t (3 vaihetta) 24t 5/120t K+4-36/864t luku-8:n NR1 (4 tasoa) MAC, p= q-v=u-1
Ehdotettu 8t 12t MAC, p=2, 12t (4 tasoa) (6 vaihetta) 12t 8/96t K+7=39/468t q=v=u=1_______
Ehdotettu 8t 8t MAC, p-3, 8t (4 tasoa) (8 vaihetta) 8t 10/80t K+9=41/328t q=v=u=1_______
Ehdotettu 8t 8t .·. : MAC,p=4, 6t (4tasoa) (8vaihetta) 8t 10/80t K+9=41/328t q=v=u=1_______ .! Ehdotettu 4t 4t '' [ MAC,p=6, 4t (4tasoa) (4x4vaihetta) 4t 6/24t K+7=39/156t q=1, v=2, u=4 ______ : Taulukko 5 FA lukumäärä + HA lukumäärä Booth Booth ---- Koo- De-
Rakenne 1. vaihe, 2. vaihe, 3. vaihe, Yh- daus koo_ ... osittaistulon CA lop. sum- teensä ,-|aus ,, *__tuottam.___main____
Tekniikan tason Boothin Ei 72 + 14 28 100 + 14 8 96 : * · * kertoja_______
Ehdotettu kertoja, 4x13 36 + 13 28 116 + 13 Ei Ei '·:·* -£Ξΐ_______ : ; ’: Ehdotettu kertoja, 8x13 36 + 13 28 168 + 13 Ei Ei :··: __L__ 31 1 1 5862
Ehdotettu kertoja, 12x13 36 + 13 28 223+ 13 Ei Ei P-3_________
Ehdotettu kertoja, 16x13 36 + 13 28 272 + 13 Ei Ei
Jli______J__l.
Taulukko 5 (jatkoa) MUX:t (SB) JA/TAI Portit^
Rakenne ---- INV -η-- yhteensä __2:1 3:1 4:1 8:1___2__3 4 _
Tekniikan tason Boothin 3 0 0 0 24 30 32 8 1225 kertoja__________
Ehdotettu kertoja, 15 0 0 75 26 13 0 0 1630 .El1 „___________
Ehdotettu kertoja, 75 0 0 75 52 13 0 0 2040 .1=*..-__-________
Ehdotettu kertoja, 15 60 0 75 78 13 0 0 2460 __________
Ehdotettu kertoja, 15 0 60 75 104 13 0 0 2750 P-4___________
Taulukko 4 esittää arvioituja aikaominaisuuksien vertailun ja taulukko 5 5 esittää arvioitujen laitteistoresursseja ja nyt esillä olevan keksinnön . . (ehdotettu kertoja) edullisen suoritusmuodon tyypin 1 ei-uudelleen- / koodattujen kantaluku-8 -kertojan ja MAC-yksikön rakenteiden porttien # · » *·*;* lukumäärän vertailun tekniikan tason Boothin kertojan ja Boothin MAC- : yksikön rakenteen 13-bittisen kerrottavan (m=13) ja 16-bittisen kertojan 10 (n=16) ja MAC-yksiköllä summattavien K=32 kertolaskujen tapauksen :/: kanssa. Molemmat näistä taulukoista on luotu sillä olettamuksella, että standardinmukaisia muistibitin ketjutussummaimia käytetään ensimmäisessä liukuhihnavaiheessa ja liukuhihnoitettuja summaimia käyte-tään lopullisina summaimina (kun kerroksia on taulukossa 4 mainittu ! 15 määrä). Kuten voidaan nähdä, kantaluku-8 -kertojan pakkausmatriisin viive (6t) on pienempi kuin kantaluku-4:n Boothin kertojan tapauksessa : ’* (8t). Kuitenkin jos käytetään vain yhtä summainmatriisia, kokonaisviive (864t) on merkittävästi suurempi kuin kantaluku-4:n Boothin kertojan : .·. (320t), koska toimintavaiheen kesto määritellään ensimmäisen liuku- !!!.· 20 hihnavaiheen viiveen mukaan (24t). Epäilemättä liukuhihnavaiheet ovat puhtaasti tasapainoisia. Lisäksi taulukosta 5 kantaluku-8 -kertojan 32 1 1 5862 porttien kokonaislukumäärä (1630G) on suurempi kuin kanta!uku-4:n Boothin kertojan porttien lukumäärä (1225G), pääasiassa valintalohkon vuoksi.
5 Toisaalta, lisäämällä enemmän summainmatriiseja rakenteeseen voidaan saavuttaa melkein suhteellisesti pienempi kantaluku-8 -kertojan viive pienemmällä kuin suhteellisella kasvulla porttien lukumäärässä. Kun lisätään p-4 summausmatriisia, saavutetaan parempi tasapaino liukuhihnavaiheiden välillä, ja kokonaisviiveestä (258t) tulee 3,34 kertaa 10 pienempi (mutta melkein 4 kertaa pienempi suuremmalle K:lle) kuin p-1 summainmatriisin tapauksessa. Tulee huomata, että porttien lukumäärä kasvaa vain 2750/1630=1,67 -kertaisesti. MAC-yksikön tapauksessa paras vaiheiden välinen tasapaino saavutetaan tapaukselle p=6, q=1, v=2, u=4, mikä tarkoittaa, että käytetään hyväksi kuutta sum-15 mainmatriisia ja kahta pakkausmatriisia. Tässä tapauksessa saavutetaan noin 5,54 kertaa nopeampi suorituskyky sillä kustannuksella, että porttien lukumäärä kasvaa noin 2,65 kertaiseksi verrattuna tapaukseen p=q=v=u=1.
20 Nyt esillä olevan keksinnön mukaista rakennetta voidaan käyttää . . monissa eri järjestelmissä ja laitteissa. Edullisesti sitä voidaan käyttää '! videon koodaus/dekoodaus -järjestelmissä suorittamaan useita resurs- seja vaativia laskentaoperaatioita. Parametrit p, q, u, v voidaan valita # · · ·* järjestelmän erityisvaatimusten mukaisesti, niin että voidaan saavuttaa ·:··: 25 kaikkein optimaalisimmat viiveet jokaiselle liukuhihnavaiheelle P1, ..., :\j P4.
Keksintöä voidaan käyttää esimerkiksi erillisenä yksikkönä, joka käsittää eri liukuhihnavaiheet P1, ..., P4. Jokaisessa liukuhihnavaiheessa 30 on tarpeelliset toiminnalliset yksiköt, joiden määrä riippuu kyseessä ;·' olevasta sovelluksesta. Keksintöä voidaan käyttää myös digitaalisessa • *· signaalinkäsittelyssä (DSP), mikroprosessorissa (MPU), sovellus- :j kohtaisessa integroidussa piirissä (ASIC), tai vastaavassa.
"‘.I 35 Nyt esillä olevan keksinnön toista edullista suoritusmuotoa kuvataan seuraavassa yksityiskohtaisemmin. Nyt esillä olevan keksinnön mukai- 115862 33 sen laitteen tämän suoritusmuodon yleinen rakenne esitellään kuvassa 11. Pääasiallinen ero on siinä, että laite on konfiguroitavissa, mikä tarkoittaa, että se saattaa käsittää päälohkojen (liukuhihnavaiheet) eri osajoukon. Tämä saavutetaan sisällyttämällä yksi tai useampia valinta-5 välineitä, esim. multiplekserit 21, 22, 23 ensimmäisen P1, kolmannen P3 ja neljännen liukuhihnavaiheen P4 sisääntuloihin. Multiplekserit 21, 22, 23 ovat edullisesti 2:1 -multipleksereitä. Niitä ohjataan signaaleilla e-,, c2, ja c3, tässä järjestyksessä. Rakenne käsittää myös lähtövalitsi-men 24, jota ohjataan ensimmäisellä ohjaussignaalilla c, ja toisen c2ja 10 kolmannen ohjaussignaalin c3 TAI-yhdistelmästä (eli c2vc3).
Lähtövalitsin 24 valitsee rakenteen lähtöväylään 26 yhdistettävää dataa ensimmäisestä P1 tai viimeisestä liukuhihnavaiheesta P4. Multiplekse-reiden 21, 22, 23 ensimmäiset sisääntulot on yhdistetty vastaaviin rakenteen tuloväylän 25 linjoihin, ja multipleksereiden 21, 22, 23 toiset 15 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 c-ι, c2, ja c3 eri joukkoihin. Konfiguraation riippuvuus näistä signaaleista on seuraavanlainen.
20 Kun kaikki ohjaussignaalit ch c2, c3 asetetaan loogiseen 1-tilaan, eli . . c-i=c2=c3=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 ; 0-1=0; c2=c3=1, rakenne käyttäytyy kuten sp-summain/vähentäjien mat- ·"· 25 riisi. Ainoastaan ensimmäinen liukuhihnavaihe P1 (eli summainmatriisi 2) aktivoidaan muiden olleessa vapaana. Kolmas vaihtoehto on, että ensimmäinen ohjaussignaali c* asetetaan loogiseen 1-tilaan, kun taas »«« toinen c2ja kolmas ohjaussignaali c3 asetetaan loogiseen 0-tilaan (c-,=1; c2=c3=0). Tämä tarkoittaa, että rakenne käyttäytyy laskurina. Ainoas-30 taan pakkausmatriisit 404 ja lopulliset summaimet 405 toimivat, kun taas summainmatriisit 402 ja valintalohkot 403 ovat vapaat. Neljän-: ‘ · nessä vaihtoehdossa sekä ensimmäinen ct että toinen ohjaussignaali c2 asetetaan loogiseen 1-tilaan ja kolmas ohjaussignaali c3 asetetaan : .·. loogiseen 0-tilaan (Ci=c2=7; c3=0). Tässä tapauksessa rakenne käyt- 35 täytyy kuin useat nopeat laajan tarkkuuden summaimet. Vielä yhdessä vaihtoehdossa, kun cf=c2=c3=0, rakenne samanaikaisesti käyttäytyy 115862 34 kuten sp-summaimien/vähentäjien matriisi ja laskuri. On selvää, että edellä mainitut valintavälineet 22, 23, 24, samoin kuin raken-teen/toimintatavan riippuvuus ohjaussignaalien c1t c2, c3 tilasta ovat ainoastaan yksi mahdollinen vaihtoehto, mutta myös muita vaihtoehtoja 5 voidaan soveltaa nyt esillä olevan keksinnön puitteissa. Tämä pätee myös muihin ohjaussignaaleihin, joita kuvataan myöhemmin tässä selityksessä.
Kuvassa 11 on kaksi muuta ohjaussignaalia c4 ja c5, jotka lisäävät 10 monitoiminnallisuutta rakenteeseen uudelleenkonfiguroimatta sitä.
Neljäs ohjaussignaali aktivoi (jos esim. c4=1) tai disaktivoi (jos esim. c4-0) takaisinkytkentäpiirejä paukkausmatriisien 404 lähtöjen ja sisääntulojen välillä kolmannessa liukuhihnavaiheessa P3. Tällöin rakenne toimii kertojana jos 0-1=02=03=1, c4=0 ja se toimii MAC-yksik-15 könä jos 0-,=02=03=0^1. Viides ohjaussignaali c5(joka voi olla 1-, 2-, tai 3-bittinen signaali) ohjaa summain/vähentäjien tarkkuutta ensimmäisessä 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 405 lohkojen välillä. Tällöin 20 useat summainmatriisit, jotka sisältävät sp-summaimia/vähentäjiä m- . . bittisille sisääntuloille, voivat myös toimia useina 2sp-sum- maimina/vähentäjinä (/77/2)-bittisille sisääntuloille tai useina 4sp-sum-
> t I
maimina/vähentäjinä (m/4j-bittisille sisääntuloille, jne. On myös mah-v : dollista, että valintalohkoja 403, pakkausmatriiseja 404, ja lopullisia 25 summaimia 405 voidaan lievästi muuntaa ja tehdä ohjattaviksi samalla 8 *. j signaalilla c4 myös sallimalla useiden tarkkojen kertolaskujen/MAC-ope- :''': raatioiden toteuttamisen.
Nyt esillä olevan keksinnön rakenne voidaan toteuttaa esim. integroi-30 tuna piirinä, käyttämällä yhtä tai useampaa prosessoria, loogista virta-• piiristöä ja muisteja, jne.
Kuva 10 esittää laitteen 10 nyt esillä olevan keksinnön edullisen suori-tusmuodon mukaan. Se käsittää ohjausyksikön 11 laitteen 10 toiminto-35 jen ohjaamiseksi. Laite käsittää myös mikroprosessoriyksikön 12, joka sisältää kertojan tai MAC-yksikön 13, tai uudelleenkonfiguroitavan lait- 115862 35 teen nyt esillä olevan keksinnön edullisen suoritusmuodon mukaan. Laitteen käyttöliittymä 14 käsittää näyttölaitteen 15, äänilaitteen 16, näppäimistön 17, ja esim. videokameran 18. Laite 10 käsittää viestintävälineet 19, kuten matkaviestintävälineet, viestintäverkon (ei näytetty) 5 kanssa kommunikoimiseen ja informaation vaihtamiseen toisen tunnetun laitteen (ei näytetty) kanssa. Muistivälineitä 20 käytetään varastoimaan erilaista dataa ja ohjelmia, kuten toimintakäskyjä ohjausyksikölle 11.
10 Laite voi olla esimerkiksi langaton päätelaite, laskentalaite, jne.
Nyt esillä oleva keksintö ei rajoitu pelkästään edellä esitettyihin suoritusmuotoihin vaan sitä voidaan muunnella oheisten patenttivaatimusten puitteissa.
15 » · · t ·

Claims (27)

115862 36
1. Menetelmä yhden kertolaskuoperaation ja toisen kertolaskuoperaa-tion suorittamiseksi liukuhihnoitetusti, jossa mainittu toinen kertolasku- 5 operaatio aloitetaan ennen kuin mainittu ensimmäinen kertolasku-operaatio päättyy, mainitut kertolaskuoperaatiot jaetaan ainakin ensimmäiseen ja toiseen osaoperaatioon, ja kumpikin mainituista ensimmäisestä ja toisesta osaoperaatiosta toteutetaan yhdessä liuku-hihnavaiheessa, tunnettu siitä, että ainakin yksi osaoperaatiosta suo-10 ritetaan rinnakkaisesti yhdessä liukuhihnavaiheessa, jossa osaoperaa-tiot toiselle kertolaskuoperaatiolle aloitetaan ennen kuin vastaava osa-operaatio ensimmäiselle kertolaskuoperaatiolle päättyy.
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että 15 ainakin yksi mainituista osaoperaatioista toteutetaan aikalomitetusti, jolloin mainittu ainakin yksi osaoperaatio jaetaan edelleen osittaisiin osaoperaatioihin siten, että jokainen osittainen osaoperaatio aloitetaan eri aikaan.
3. Patenttivaatimuksen 1 tai 2 mukainen menetelmä, tunnettu siitä, että liukuhihnavaiheiden (P1,..., P4) välinen datareititys on konfiguroi-'· " tavissa. v : 4. Patenttivaatimuksen 1, 2, tai 3 mukainen menetelmä, tunnettu siitä, 25 että jokainen mainituista kertolaskuoperaatioista suoritetaan ainakin : kahdessa liukuhihnavaiheessa (P1,..., P4), joissa ainakin kaksi osa- " ; operaatiota suoritetaan eri liukuhihnavaiheessa.
5. Jonkin patenttivaatimuksen 1-4 mukainen menetelmän, tunnettu 30 siitä, että mainittu yksi kertolaskuoperaatio ja toinen kertolaskuoperaa- : ‘ tio suoritetaan ensimmäisen operandin ja toisen operandin välillä.
6. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, että ! ·. kertolaskuoperaatio suoritetaan ainakin kolmessa liukuhihnavaiheessa, 35 joissa ensimmäinen operandi syötetään ensimmäiseen liukuhihna- vaiheeseen, jossa muodostetaan joukko ensimmäisen operandin osit-
115 C 62 37 taistuloja, toinen operandi syötetään toiseen liukuhihnavaiheeseen suorittamaan ainakin yhden osittaistulon valintaa joukosta osittaistuloja, jotka on muodostettu mainitussa ensimmäisessä liukuhihnavaiheessa, ja valitut osittaistulot yhdistetään kolmannessa liukuhihnavaiheessa 5 kertolaskuoperaation summauksen (S) ja muistibitin termien (C) muodostamiseksi mainitun ensimmäisen ja toisen operandin välillä.
7. Patenttivaatimuksen 6 mukainen menetelmä, tunnettu siitä, että summausoperaatio suoritetaan neljännessä liukuhihnavaiheessa, jossa 10 mainitut summaus- ja muistibittitermit yhdistetään muodostamaan kertolaskuoperaation tulosta.
8. Patenttivaatimuksen 7 mukainen menetelmä, tunnettu siitä, että useita dataosuuksia käsitellään yhtäaikaa, että kertolasku suoritetaan 15 yhdessä tai useammassa toimintavaiheessa, että toimintavaiheen kesto on määritetty, ja että liukuhihnavaiheiden viiveet on määritetty, jolloin lomittumistaso määritetään jokaiselle mainitulle liukuhihnavaiheelle.
9. Patenttivaatimuksen 8 mukainen menetelmä, tunnettu siitä, että 20 lomittumistaso määritetään asettamaan jokaisen liukuhihnavaiheen viiveet mahdollisimman samanlaisiksi, ja pienemmäksi kuin mainittu " ennalta määrätty toimintavaiheen kesto. ' 4 » v : 10. Patenttivaatimuksen 9 mukainen menetelmä, tunnettu siitä, että ··: 25 liukuhihnavaiheiden viiveet asetetaan asettamalla mainittujen jokai- : sessa liukuhihnavaiheessa yhtäaikaa prosessoitavien data-annosten ;: määrä vastaamaan ennalta määrättyä toimintavaiheen kestoa.
11. Patenttivaatimuksen 8, 9, tai 10 mukainen menetelmä, tunnettu ; 30 siitä, että ennalta määrätty toimintavaiheen kesto määritellään olemaan Tdes sekuntia, jossa mainittujen jokaisen liukuhihnavaiheen osittaisten i t : '*· osaoperaatioiden määrä valitaan seuraavalla tavalla: - ensimmäisen liukuhihnavaiheen osittaisten osaoperaatioiden määrä p = \DAAITdes'\, 35. toisen liukuhihnavaiheen osittaisten osaoperaatioiden määrä Q =\^SBITdes~\ »
11 SE 62 38 kolmannen liukuhihnavaiheen osittaisten osaoperaatioiden määrä u = \dca /Tdes~|, ja neljännen liukuhihnavaiheen osittaisten osaoperaatioiden määrä V = \l>CLAlTdes\ 5 jossa Daa on ensimmäisen liukuhihnavaiheen viive, DSB on toisen liukuhihnavaiheen viive, DCA on kolmannen liukuhihnavaiheen viive, ja DCla on neljännen liukuhihnavaiheen viive.
12. Jonkin patenttivaatimuksen 5-11 mukainen menetelmä, tunnettu 10 siitä, että ei-uudelleenkoodattu kantaluku-suurempi-kuin-neljä -kerto-laskumenetelmää vapaasti määrättäville etumerkillisille kahden komplementin kokonaisluvuille käytetään kertolaskuoperaation suorittamiseksi mainitun ensimmäisen operandin (a ) ja mainitun toisen operandin (x ) välillä yhden seuraavista yhtälön mukaan: ili-i nradix-T~^ t t—1 15 y= £ (^)2"= X Xβο.+ί2' * 2fr-(0^)2^1 tai r=0 r=0 J=0 _ J n!t-2(\t-1 Ί "l (\ t-2 ~\ Λ y= Σ * 2'r+ -2'"/o„-;+X%-/+/2' * 2"-‘ r=0 ^ J=0 _ J l^L i=0 J J jossa T = 2( . » * · t t» • · * · v.: 13. Jonkin patenttivaatimuksen 1-12 mukainen menetelmä, tunnettu v : 20 siitä, että sitä käytetään videoinformaation käsittelyn yhteydessä. I *
14. Laite yhden kertolaskuoperaation ja toisen kertolaskuoperaation suorittamiseksi liukuhihnoitetusti, joka laite sisältää välineet (P1, P2, P3, P4) kertolaskuoperaation jakamiseksi ainakin ensimmäiseen ja toi-25 seen osaoperaatioon, ja kumpikin mainitusta ensimmäisestä ja toisesta osaoperaatiosta on järjestetty toteutettavaksi yhdessä liukuhihna-vaiheessa, tunnettu siitä, että laite edelleen sisältää välineet (402, 403, 404, 405) ainakin yhden osaoperaation suorittamiseksi rinnakkai-j sesti yhdessä liukuhihnavaiheessa, ja välineet osaoperaation aloittami- * ’·, 30 seksi mainitulle toiselle kertolaskuoperaatiolle ennen kuin vastaava *" ! osaoperaatio mainitulle yhdelle kertolaskuoperaatiolle päättyy. 115862 39
15. Patenttivaatimuksen 14 mukainen laite, tunnettu siitä, että se sisältää välineet (Rly...,Rp ) ainakin yhden osaoperaation jakamiseksi osittaisiin osaoperaatioihin jokaisen osittaisen osaoperaation aloittamiseksi eri aikaan. 5
16. Patenttivaatimuksen 14 tai 15 mukainen laite, tunnettu siitä, että se sisältää ainakin yhden multiplekserin (410, 411, 412, 413) liukuhihna-vaiheiden (P1,..., P4) välistä valinnaista datareititystä varten.
17. Patenttivaatimuksen 14, 15, tai 16 mukainen laite, tunnettu siitä, että se sisältää ainakin kaksi liukuhihnavaihetta (P1,..., P4) jokaisen mainituista kertolaskuoperaatioista suorittamiseksi liukuhihnoitetusti, joissa ainakin kaksi osaoperaatiota on järjestetty suoritettavaksi eri liukuhihnavaiheissa. 15
18. Jonkin patenttivaatimuksen 14-17 mukainen laite, tunnettu siitä, että yksi kertolaskuoperaatio ja toinen kertolaskuoperaatio on järjestetty suoritettavaksi ensimmäisen operandin ja toisen operandin välissä, ja että laite sisältää ainakin ensimmäisen (P1), toisen (P2) ja kolmannen 20 liukuhihnavaiheen (P3) jokaisen mainitun kertolaskuoperaation suorit-, tamiseksi liukuhihnoitetusta, välineet ensimmäisen operandin syöttämi- ; .** seksi ensimmäiseen liukuhihnavaiheeseen, välineet toisen operandin *’;* syöttämiseksi toiseen liukuhihnavaiheeseen, ensimmäinen liukuhihna- • : : vaihe sisältäen välineet joukon ensimmäisen operandin osittaistulojen 25 muodostamiseksi, toinen liukuhihnavaihe sisältäen valitsimen ainakin ‘•j yhden osittaistulon valitsemiseksi mainitussa ensimmäisessä liuku- ; hihnavaiheessa muodostetusta joukosta osittaistuloja toisen operandin perusteella, ja kolmas liukuhihnavaihe sisältäen yhdistimen yhdistämään valitut osittaistulot kertolaskuoperaation summauksen (S) ja ter-. 30 mien (C) muodostamiseksi ensimmäisen ja toisen operandin välillä.
19. Patenttivaatimuksen 18 mukainen laite, tunnettu siitä, että se ...: edelleen sisältää neljännen liukuhihnavaiheen, joka sisältää summai- ; men summausoperaation suorittamiseksi mainitun summauksen ja 35 muistibittitermien välillä kertolaskuoperaation tuloksen muodostamiseksi. 40 1 1 5 8 62
20. Patenttivaatimuksen 19 mukainen laite, tunnettu siitä, että ainakin yksi liukuhihnavaihe käsittää välineet prosessoitavan datan jakamiseksi osittaisiin osaoperaatioihin useiden datan dataosien prosessoimiseksi 5 yhtäaikaa, jossa mainittu ainakin yksi liukuhihnavaihe käsittää datan-käsittelylohkon jokaiselle dataosalle jokaisen liukuhihnavaiheen data-osan prosessoimiseksi olennaisesti samanaikaisesti.
21. Patenttivaatimuksen mukainen laite, tunnettu siitä, että datan-10 käsittelylohkojen lukumäärä jokaisessa liukuhihnavaiheessa määritetään siten, että liukuhihnavaiheessa prosessoitavan datan proses-sointiaika on olennaisesti sama jokaisessa liukuhihnavaiheessa.
22. Patenttivaatimuksen 20 tai 21 mukainen menetelmä, tunnettu siitä, 15 että prosessointiaika määritellään olemaan Tdes sekuntia, jossa mainittujen datankäsittelylohkojen määrä jokaisessa liukuhihnavaiheessa on seuraava: ensimmäisen liukuhihnavaiheen osittaisten osaoperaatioiden määrä p = \DAA!Tdes^ , 20. toisen liukuhihnavaiheen osittaisten osaoperaatioiden määrä 4 = \DSB/Tdes~\ - 2. kolmannen liukuhihnavaiheen osittaisten osaoperaatioiden : Λ: määrä u = \dca / Tdes ~|, ja ' * r : - neljännen liukuhihnavaiheen osittaisten osaoperaatioiden määrä ' ' ΐ 25 v = \DCLA/Tdes 1 > jossa Daa on datankäsittelylohkojen prosessointiaika ensimmäisessä .···! liukuhihnavaiheessa, DSB on datankäsittelylohkojen prosessointiaika toisessa liukuhihnavaiheessa, DCÄ on datankäsittelylohkojen prosessointiaika kolmannessa liukuhihnavaiheessa, ja DCLA on 30 datankäsittelylohkojen prosessointiaika neljännessä liukuhihna-vaiheessa.
23. Jonkin patenttivaatimuksen 14-22 mukainen laite, tunnettu siitä, ; ! ’, että se on videonkäsittelylaite. 35 11 5 £ 6 2 41
24. Jonkin patenttivaatimuksen 14-23 mukainen laite, tunnettu siitä, että se on integroitu piiri.
25. Langaton päätelaite, joka käsittää välineet yhden kertolaskuoperaa-5 tion ja toisen kertolaskuoperaation suorittamiseksi liukuhihnoitetusti, sisältäen välineet (P1, P2, P3, P4) kertolaskuoperaation jakamiseksi ainakin ensimmäiseen ja toiseen osaoperaatioon, ja kumpikin mainitusta ensimmäisestä ja toisesta osaoperaatiosta on järjestetty toteutettavaksi yhdessä liukuhihnavaiheessa, tunnettu siitä, että langaton 10 päätelaite edelleen sisältää välineet (402, 403, 404, 405) ainakin yhden osaoperaation suorittamiseksi rinnakkaisesti yhdessä liukuhihna-vaiheessa, ja välineet osaoperaation aloittamiseksi mainitulle toiselle kertolaskuoperaatiolle ennen kuin vastaava osaoperaatio mainitulle yhdelle kertolaskuoperaatiolle päättyy. 15
26. Tietokone, joka käsittää välineet yhden kertolaskuoperaation ja toisen kertolaskuoperaation suorittamiseksi liukuhihnoitetusti, sisältäen välineet (P1, P2, P3, P4) kertolaskuoperaation jakamiseksi ainakin ensimmäiseen ja toiseen osaoperaatioon, ja kumpikin mainitusta 20 ensimmäisestä ja toisesta osaoperaatiosta on järjestetty toteutettavaksi yhdessä liukuhihnavaiheessa, tunnettu siitä, että tietokone edelleen :sisältää välineet (402, 403, 404, 405) ainakin yhden osaoperaation suo-:.v rittamiseksi rinnakkaisesti yhdessä liukuhihnavaiheessa, ja välineet v : osaoperaation aloittamiseksi mainitulle toiselle kertolaskuoperaatiolle ·:· : 25 ennen kuin vastaava osaoperaatio mainitulle yhdelle kertolaskuope- raatiolle päättyy. » 1
27. Järjestelmä yhden kertolaskuoperaation ja toisen kertolasku-operaation suorittamiseksi liukuhihnoitetusti, joka järjestelmä sisältää 30 välineet (P1, P2, P3, P4) kertolaskuoperaation jakamiseksi ainakin ’ ensimmäiseen ja toiseen osaoperaatioon, ja kumpikin mainitusta I ’ . ensimmäisestä ja toisesta osaoperaatiosta on järjestetty toteutettavaksi :''': yhdessä liukuhihnavaiheessa, tunnettu siitä, että järjestelmä edelleen ; , sisältää välineet (402, 403, 404, 405) ainakin yhden osaoperaation suo- j 35 rittamiseksi rinnakkaisesti yhdessä liukuhihnavaiheessa, ja välineet osaoperaation aloittamiseksi mainitulle toiselle kertolaskuoperaatiolle 115862 42 ennen Kuin vastaava osaoperaatio mainitulle yhdelle kerto.askuope-raatiolle päättyy. 1 · 43 115 8 6 2
FI20021982A 2002-11-06 2002-11-06 Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite FI115862B (fi)

Priority Applications (8)

Application Number Priority Date Filing Date Title
FI20021982A FI115862B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite
AU2003279421A AU2003279421A1 (en) 2002-11-06 2003-11-05 Method and a system for performing a multiplication operation and a device
TW092130871A TWI235954B (en) 2002-11-06 2003-11-05 Method and system for performing a multiplication operation and a device
CNA2003801083389A CN1735857A (zh) 2002-11-06 2003-11-05 用于完成乘法运算的方法、系统和设备
KR1020057007987A KR20050084681A (ko) 2002-11-06 2003-11-05 승산 방법 및 시스템과 그 장치
EP03772366A EP1558994A1 (en) 2002-11-06 2003-11-05 Method and a system for performing a multiplication operation and a device
PCT/FI2003/000821 WO2004042554A1 (en) 2002-11-06 2003-11-05 Method and a system for performing a multiplication operation and a device
US10/703,154 US7334011B2 (en) 2002-11-06 2003-11-06 Method and system for performing a multiplication operation and a device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20021982 2002-11-06
FI20021982A FI115862B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite

Publications (3)

Publication Number Publication Date
FI20021982A0 FI20021982A0 (fi) 2002-11-06
FI20021982A FI20021982A (fi) 2004-05-07
FI115862B true FI115862B (fi) 2005-07-29

Family

ID=8564891

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20021982A FI115862B (fi) 2002-11-06 2002-11-06 Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite

Country Status (8)

Country Link
US (1) US7334011B2 (fi)
EP (1) EP1558994A1 (fi)
KR (1) KR20050084681A (fi)
CN (1) CN1735857A (fi)
AU (1) AU2003279421A1 (fi)
FI (1) FI115862B (fi)
TW (1) TWI235954B (fi)
WO (1) WO2004042554A1 (fi)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008030916A2 (en) * 2006-09-06 2008-03-13 The Research Foundation Of State University Of New York A parameterized vlsi architecture and method for binary multipliers
EP3480710A1 (en) * 2017-11-03 2019-05-08 Nokia Technologies Oy Computer architectures and instructions for multiplication
CN108255463B (zh) * 2017-12-28 2020-12-22 深圳市紫光同创电子有限公司 一种数字逻辑运算方法、电路和fpga芯片
CN110399117B (zh) * 2019-07-31 2021-05-28 上海燧原智能科技有限公司 一种混合乘法加法处理方法及装置
US11270196B2 (en) 2019-10-15 2022-03-08 International Business Machines Corporation Multi-mode low-precision inner-product computation circuits for massively parallel neural inference engine
CN111596887B (zh) * 2020-05-22 2023-07-21 威高国科质谱医疗科技(天津)有限公司 一种基于可重构计算结构的内积计算方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025408A (en) * 1989-07-31 1991-06-18 Shographics, Inc. Bit serial multiplier with parallel-in-serial-out carry and partial product shift registers
US4965762A (en) * 1989-09-15 1990-10-23 Motorola Inc. Mixed size radix recoded multiplier
US5150322A (en) * 1990-06-05 1992-09-22 Vlsi Technology, Inc. Mixed-radix serial/parallel multipliers
US5636155A (en) 1993-04-27 1997-06-03 Matsushita Electric Industrial Co., Ltd. Arithmetic processor and arithmetic method
US5646877A (en) * 1995-05-25 1997-07-08 Texas Instruments Incorporated High radix multiplier architecture
US5729485A (en) * 1995-09-11 1998-03-17 Digital Equipment Corporation Fast determination of carry inputs from lower order product for radix-8 odd/even multiplier array
US5825680A (en) * 1996-06-21 1998-10-20 Digital Equipment Corporation Method and apparatus for performing fast division
US5761106A (en) * 1996-06-24 1998-06-02 Motorola, Inc. Horizontally pipelined multiplier circuit
JP3678512B2 (ja) 1996-08-29 2005-08-03 富士通株式会社 乗算回路、該乗算回路を構成する加算回路、該乗算回路の部分積ビット圧縮方法、および、該乗算回路を適用した大規模半導体集積回路
US5875125A (en) 1997-07-07 1999-02-23 International Business Machines Corporation X+2X adder with multi-bit generate/propagate circuit
US6173304B1 (en) 1998-08-20 2001-01-09 Lucent Technologies, Inc. Joint optimization of modified-booth encoder and partial product generator
US6353843B1 (en) * 1999-10-08 2002-03-05 Sony Corporation Of Japan High performance universal multiplier circuit
ATE316668T1 (de) * 2001-12-14 2006-02-15 Koninkl Philips Electronics Nv Fliessbandkern in einem montgomery-multiplizierer

Also Published As

Publication number Publication date
EP1558994A1 (en) 2005-08-03
US7334011B2 (en) 2008-02-19
US20040133618A1 (en) 2004-07-08
KR20050084681A (ko) 2005-08-26
FI20021982A (fi) 2004-05-07
WO2004042554A1 (en) 2004-05-21
AU2003279421A1 (en) 2004-06-07
CN1735857A (zh) 2006-02-15
TWI235954B (en) 2005-07-11
FI20021982A0 (fi) 2002-11-06
TW200419445A (en) 2004-10-01

Similar Documents

Publication Publication Date Title
FI118612B (fi) Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
KR100715770B1 (ko) 연산을 수행하는 방법 및 시스템 및 장치
US6601077B1 (en) DSP unit for multi-level global accumulation
WO2002012978A2 (en) Configurable function processing cell linear array in computation engine coupled to host units
Sakiyama et al. Tripartite modular multiplication
FI115862B (fi) Menetelmä ja järjestelmä kertolaskuoperaation suorittamiseksi ja laite
Tyler et al. AltiVec/sup TM: bringing vector technology to the PowerPC/sup TM/processor family
Meher On efficient retiming of fixed-point circuits
Abdallah et al. On multimoduli residue number systems with moduli of forms r/sup a/, r/sup b/-1, r/sup c/+ 1
Jagadeesh et al. Design of Parallel Multiplier–Accumulator Based on Radix-4 Modified Booth Algorithm with SPST
Matutino et al. An efficient scalable RNS architecture for large dynamic ranges
US7607165B2 (en) Method and apparatus for multiplication and/or modular reduction processing
Kumar et al. Analysis of low power, area and high speed multipliers for DSP applications
Aggoun et al. Area-time efficient serial-serial multipliers
Belyaev et al. A high-perfomance multi-format simd multiplier for digital signal processors
Wesolowski et al. Design of a novel flexible 4-moduli RNS and reverse converter
US6401106B1 (en) Methods and apparatus for performing correlation operations
Chen et al. Design methodology of a hardware-efficiency VLIW architecture with highly adaptable data path
Matutino et al. A compact and scalable rns architecture
Mirzaei-Teshnizi Parallel Modular Multiplication Using Variable Length Algorithms
Chen et al. An adaptive DSP processor for high-efficiency computing MPEG-4 video encoder
Hong et al. A novel radix-4 bit-level modular multiplier for fast RSA cryptosystem
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
Kalivas et al. Low-latency and high-efficiency bit serial-serial multipliers

Legal Events

Date Code Title Description
FG Patent granted

Ref document number: 115862

Country of ref document: FI