scieee Open visual document viewer

Modular exponentiation of matrices on FPGA-s

Herendi, Tamás; Major, Sándor Roland

Full text

Ac a Uni . Sapien iae, In o ma ica, 3, 2 (2011) 172–191 Modula exponen ia ion o ma ices on FPGA-s Tam´as HERENDI Uni e si y o Deb ecen email: [email p o ec ed] Roland S´ando MAJOR Uni e si y o Deb ecen email: [email p o ec ed] Abs ac . We desc ibe an e icien FPGA implemen a ion o he expo- nen ia ion o la ge ma ices. The esea ch is ela ed o an algo i hm o cons uc ing uni o mly dis ibu ed linea ecu ing sequences. The design u ilizes he special p ope ies o bo h he FPGA and he used ma ices o achie e a e y signi ican speedup compa ed o adi ional a chi ec u es. 1 In oduc ion Field-p og ammable ga e a ays (FPGA) o e a numbe o special op ions in compu a ion. U ilizing he unique p ope ies o an FPGA, some algo i hms ha a e imp ac ical o implemen on a mo e adi ional a chi ec u e can be- come bo h con enien o c ea e and esou ce-e icien . The p og ammable a - ay o look-up ables commonly ound on an FPGA p o ide bo h lexibili y in c ea ing logic o sui speci ic needs and na u ally lend hemsel es o g ea pa allelism in compu a ions. Fas ope a ions on ma ices a e o g ea p ac ical in e es . Ways o speed up ce ain ma ix calcula ions s ill ind hei way in o nume ous applica ions. Fas e implemen a ions o ma ix algo i hms can be achie ed ei he om a “so wa e” poin o iew, by imp o ing upon he algo i hm i sel , o om a Compu ing Classi ica ion Sys em 1998: B.2.4 Ma hema ics Subjec Classi ica ion 2010: 65F60 11Y55 Key wo ds and ph ases: pseudo andom numbe gene a o s, linea ecu ing sequences, uni o m dis ibu ion, ma ix exponen ia ion, pa allel a i hme ic, FPGA design, ha dwa e accele a ion o compu a ions, ha dwa e implemen a ion o compu a ions 172 Modula exponen ia ion o ma ices on FPGA-s 173 “ha dwa e” poin o iew, by using as e o di e en ly s uc u ed a chi ec- u es. Theo e ical imp o emen s on ma ix algo i hms include S assen’s algo- i hm [12] and he Coppe smi h-Winog ad algo i hm [2]. The nai e algo i hm o ma ix mul iplica ion is a well-known Θ(n3)algo i hm. S assen’s algo- i hm uses an idea simila o he Ka a suba-mul iplica ion. I has a ime complexi y o O(nlg 7)by di iding he ma ices in o sub-ma ices. Then by mul iplying hem in a di e en a angemen , i manages an o e all lowe mul i- plica ion coun compa ed o he classical algo i hm. Resea ch implemen ing i on he Cell B oadband Engine can be ound in [5]. S assen’s algo i hm and i s applicabili y o he p ojec is b ie ly discussed in Sec ion 7. The Coppe smi h- Winog ad algo i hm u he imp o es he complexi y o O(n2.376)by combin- ing he idea o S assen wi h he Salem-Spence heo em. [9] discusses and compa es he pe o mance o implemen a ions o hese algo i hms. Nume ous esea ch has been done on c ea ing e icien ealiza ions o di e - en ma ix ope a ions on di e en a chi ec u es. [8] and [10] bo h use FPGAs o pe o m ma ix in e sion. The design p esen ed he e is an implemen a ion o ma ix mul iplica ion on an FPGA. Wo ks o simila na u e can be ound in [1] and [4], dealing wi h FPGA con igu a ions used o loa ing poin ma ix mul iplica ion. [11] uses an FPGA design o digi al signal p ocessing. [3] discusses ano he FPGA implemen a ion o accele a ing ma ix mul iplica ion. The esea ch in his pape is ela ed o an algo i hm o he cons uc ion o pseudo andom numbe gene a o s. I equi es he exponen ia ion o la ge ma- ices o an ex emely high powe . This allows o nume ous op imiza ions o be made on he FPGA implemen a ion, esul ing in an ex emely as design. A speedup ac o o ∼200 is achie ed compa ed o a highly op imized p og am on a mo e adi ional a chi ec u e. We gi e he de ails o a design implemen ed on a Vi ex-5 XC5VLX110T FPGA ha mul iplies wo 896 ×896 sized ma ices. The ma ices a e de ined o e he mod 4 esidue class ing. Using his p ope y and he ac ha he ha dwa e uses 6-LUTs (Lookup Tables), we desc ibe i s a module ha com- pu es he do p oduc o ec o s aken om Z28 4in a single clock cycle a 100MHz clock speed. Wi h hese modules we cons uc a ma ix mul iplie module ha compu es he C∈Z20×20 4p oduc ma ix o A∈Z20×28d 4and B∈Z28d×20 4in dclock cycles a 100MHz. The signi icance o he alue 28 in he implemen a ion and i s expe imen al de e mina ion is also discussed. Finally, we desc ibe how o use hese modules o mul iplying ma ices aken om Z896×896 4. The p oposed algo i hm deals wi h he managemen o s o ed 174 T. He endi, R. Majo da a in such a way ha i can be accomplished comple ely in pa allel wi h he compu a ions. The esul ing design comple es he mul iplica ion in 64800 clock cycles a 100MHz. Fu u e wo k o inc easing he size o he used ma ices, and u he op i- mizing he design’s pe o mance using S assen’s algo i hm is also desc ibed. 2 Ma hema ical backg ound The p esen wo k is ini ia ed by a me hod o he cons uc ion o uni o mly dis ibu ed pseudo andom numbe gene a o s. (See [7].) The gene a o uses ecu ing sequences modulo powe s o 2 o he o m un≡ad−1un−1+ad−2un−2+· · · +a0un−dmod 2s, ai∈{0, 1, 2, 3}, s ∈Z+ The heo e ical backg ound can be ound in [6]. The cons uc ion assumes ha he alues a0, a1,...,ad−1a e such ha xd−ad−1xd−1−· · · −a0≡(x−1)2P(x)mod 2 holds o some P(x)i educible polynomial. I is p ac ical o choose P(x) o ha e maximal o de , since he o de o Pis closely ela ed o he pe iod leng h o he co esponding ecu ing sequence. The sequence unob ained his way does no necessa ily ha e uni o m dis ibu ion, howe e exac ly one o he ollowing ou sequences does: u(0) n≡ad−1u(0) n−1+ad−2u(0) n−2+· · · +a1u(0) n−d+1+a0u(0) n−dmod 2s u(1) n≡ad−1u(1) n−1+ad−2u(1) n−2+· · · +a1u(1) n−d+1+ (a0+2)u(1) n−dmod 2s u(2) n≡ad−1u(2) n−1+ad−2u(2) n−2+· · · + (a1+2)u(2) n−d+1+a0u(2) n−dmod 2s u(3) n≡ad−1u(3) n−1+ad−2u(3) n−2+· · · + (a1+2)u(3) n−d+1+ (a0+2)u(3) n−dmod 2s. Fo he de ails see [7]. Finding he sequence wi h uni o m dis ibu ion is o in e es . Le M(u) =        0 1 . . . 0 0 . . .. . ..... . .. . . 0 0 . . . 1 0 0 0 . . . 0 1 a0a1. . . ad−2ad−1        Modula exponen ia ion o ma ices on FPGA-s 175 be he companion ma ix o sequence u. To ind which o he abo e se- quences has a uni o m dis ibu ion, we ha e o compu e M(u)2d+1−2mod 4. I M(u)2d+1−2mod 4equals he iden i y ma ix, hen he pe iod leng h o un is 2d+1−2, which means i is no he sequence we a e sea ching o . The exponen ia ion o ma ices o high powe s can quickly become ime consuming on adi ional compu e s. The aim o he p ojec was o u ilize he special p ope ies o an FPGA o achie e a signi ican upg ade in speed compa ed o implemen a ions on mo e adi ional a chi ec u es. 3 Ha dwa e used in he implemen a ion The p ojec was implemen ed on a Xilinx XUPV505-LX110T de elopmen pla o m. The boa d ea u es a a ie y o po s o communica ion wi h he de ice. As a i s app oach he RS-232 se ial po was used o send da a be ween he boa d and a PC. A high-speed PCI Exp ess connec ion is also a ailable i he amoun o da a ans e ed would necessi a e i s use. The boa d’s mos p ominen ea u e is he Vi ex-5 XC5VLX110T FPGA. The FPGA’s main ool o compu a ion is he a ay o 6-inpu look-up ables, a anged in o 17280 Slices, wi h ou look-up ables ound in each Slice, adding up o a o al o 69120 LUTs. A single 6-inpu LUT can s o e 64 bi s o da a, whe e i s six inpu bi s a e used as an add ess o iden i y he single bi o da a ha is o be ou pu ed. By manipula ing he 64 bi con en o he look-up able, i can be con igu ed o ca y ou a bi a y Boolean unc ions wi h a mos six inpu bi s. In ou design hey a e used o c ea e LUTs pe o ming a mul iply-accumula e unc ion, which a e hie a chically a anged in o la ge and mo e complex modules. One ou o ou LUTs on he de ice can also be used as a 32 bi deep shi egis e ; hese a e he basis o implemen con aine s s o ing he da a, which is di ec ly ed o he compu a ional module. A ached o he boa d, he e is a 256MB DDR2 SODIMM module, which is used o s o ing da a exceeding he amoun ha can be p ac ically s o ed on he FPGA. 4 S uc u e o modules used in he compu a ion The basic elemen s o he design a e he LUTs deno ed by L(a, b, s) = c, whe e a, b, c and sa e wo-digi bina y numbe s. The unc ion ca ied ou by Lis a mul iply-accumula e ( o sho : MA) unc ion, i.e.: c≡(a·b) + smod 4 . 176 T. He endi, R. Majo Le a=2α1+α0,b=2β1+β0,s=2σ1+σ0,c=2γ1+γ0, whe e α0, α1, β0, β1, σ0, σ1, γ0, γ1∈{0, 1}, and L= (l1, l0)whe e l1and l0a e wo single bi LUTs, acco ding o he ollowing: •l0(α0, β0, σ0) = γ0 •l1(a, b, s) = γ1 Figu e 1: The s uc u e o L(a, b, s) We ema k ha while l0needs only h ee inpu bi s o accomplish i s unc- ion, l1 equi es all six bi s o inpu . The LUTs l0and l1we e con igu ed o he alues shown in Table 1 and Table 2 o pe o m he mul iply-accumula e unc ion. PPPPPPPP P (α0, β0) σ00 1 (0,0) 0 1 (0,1) 0 1 (1,0) 0 1 (1,1) 1 0 Table 1: Con en s o l0 Wi h he help o hese basic uni s one can compu e he do p oduc wo wo ec o s u= (u0, u1,...,un−1)and = ( 0, 1,..., n−1). Le us de ine a module m= (L[0], L[1],...,L[n−1]) by cascading nMA uni s deno ed by L[i]. In his module mwe use he ou pu o a gi en MA uni as he sum inpu o he nex uni , i.e. si+1=ci o i=0, 1, . . . , n −2, whe e siand cia e he s inpu and cou pu o L[i]. The e o mis a unc ion ha accep s a pai o ec o s u, o wo-digi numbe s o leng h nand ou pu s on cn−1 he wo-digi do -p oduc o he wo ec o s, i.e. m(u, ) = w. Modula exponen ia ion o ma ices on FPGA-s 177 PPPPPPPP P (a, b) s0123 (0,0) 0 0 1 1 (0,1) 0 0 1 1 (0,2) 0 0 1 1 (0,3) 0 0 1 1 (1,0) 0 0 1 1 (1,1) 0 1 1 0 (1,2) 1 1 0 0 (1,3) 1 0 0 1 (2,0) 0 0 1 1 (2,1) 1 1 0 0 (2,2) 0 0 1 1 (2,3) 1 1 0 0 (3,0) 0 0 1 1 (3,1) 1 0 0 1 (3,2) 1 1 0 0 (3,3) 0 1 1 0 Table 2: Con en s o l1 Figu e 2: The s uc u e o m(u, ) In o al, he numbe o LUTs used in mis 2n. No e ha ec o s o a bi a y leng h can be used in he compu a ion i we connec he ou pu o module m o he sum inpu o L[0](cn−1=s0), and hen i e a i ely shi uand on o he module’s inpu by nelemen s a a ime: 178 T. He endi, R. Majo Func ion i e a ed m(u, )// k=leng h(u) = leng h( ) 1. De ine κ=dk ne, 0, u0∈Zκ·n 4 2. o i=0 o κ·n−1do // ill and uwi h 0’s 3. i i<k hen 0 i= ielse 0 i=0 4. i i<k hen u0 i=uielse u0 i=0 5. end o 6. De ine emp, u emp, w, le w=0 7. o i=0 o κ−1do // shi 0and u0 o emp and u emp 8. emp = ( 0 i·n, 0 1+(i·n),..., 0 n−1+(i·n)) 9. u emp = (u0 i·n, u0 1+(i·n),...,u0 n−1+(i·n)) 10. w=w+m( emp, u emp) 11. end o 12. e u n w end Func ion He e u0and 0a e he ex ensions o uand by 0’s. We shall see ha he numbe chosen o nis c i ical in se ing many cha - ac e is ics o he en i e p ojec . The expe imen used o de e mining nwill be discussed in he ollowing chap e . Ou aim is o ob ain a module ha pe o ms he ma ix mul iplica ion o A, B ∈Zk×k 4, whe e Z4is he mod 4 esidue class ing. In he ollowing, le C∈Zk×k 4be he ou pu ma ix, such ha C=A×B. Fu he mo e, le aibe he i h ow o ma ix Aand le bjbe he j h column o ma ix B. The mul iplie uni s deno ed by ma e used o c ea e mo e complex mod- ules in a hie a chical manne . Fi s , by aking en mmul iplie blocks we c ea e a ow o mul iplie s R= (m0, m1,...,m9). This is used o compu e en consecu i e elemen s o a single ow o he ou pu ma ix: R(ai, bj, bj+1,...,bj+9)=(ci,j, ci,j+1,...,ci,j+9), whe e ci,j =ai·bj. The inpu ec o aiis used by all en mul iplie uni s o R. The leng h o hese ec o s, as men ioned abo e, can be a bi a y, bu ec o s o leng h g ea e han nwill need o be i e a i ely shi ed o he inpu o R. By aking en ow mul iplie s we can c ea e a uni M10×10 = (R0, R1,...,R9) which ou pu s a 10 ×10 sub-ma ix o C: Modula exponen ia ion o ma ices on FPGA-s 179 M10×10(ai, ai+1,...,ai+9, bj, bj+1,...,bj+9) =      ci,j ci,j+1· · · ci,j+9 ci+1,j ci+1,j+1· · · ci+1,j+9 . . .... ci+9,j ci+9,j+1· · · ci+9,j+9      . Finally, ou such uni s a e a anged so ha a 20 ×20 sub-ma ix o Ccould be ob ained as ou pu : M20×20(ai, ai+1,...,ai+19, bj, bj+1,...,bj+19) =      ci,j ci,j+1· · · ci,j+19 ci+1,j ci+1,j+1· · · ci+1,j+19 . . .... ci+19,j ci+19,j+1· · · ci+19,j+19      . The M20×20’s inpu s a e wen y ec o s om bo h ma ices Aand B. Because o ha dwa e cons ain s — in pa icula he numbe o LUTs on he used de ice — a la ge a angemen o mul iplie s would be imp ac ical o implemen . The module M20×20 is comp ised o 400 mmul iplie uni s. Figu e 3 shows he hie a chy o uni s used o build M20×20. Figu e 3: The s uc u e o M20×20 The M20×20 uni can be used i e a i ely o mul iply ma ices o a bi a y size, p oducing 20×20 sub-ma ices o he ou pu ma ix Cwi h each i e a ion. A e inpu ing wen y ows om ma ix Aand wen y columns om ma ix Band ob aining he desi ed ou pu , we can simply epea he p ocess o a 180 T. He endi, R. Majo se o ows and columns o Aand B espec i ely, un il we ob ain he en i e ou pu ma ix C: Func ion la ge ma ix mul (A, B) 1. De ine κ=dk 20 e,A0, B0, C0∈Zκ·n×κ·n 4 2. o i=0 o 20κ −1do 3. o j=0 o 20κ −1do 4. i i<kand j < k a0 ij =aij else a0 ij =0 5. i i<kand j < k b0 ij =bij else b0 ij =0 6. end o end o 7. o i=0 o κ−1do 8. o j=0 o κ−1do 9. C0[i,j i+19,j+19] = M20×20(ai, ai+1,...,ai+19, bj, bj+1,...,bj+19) 10. end o end o 11. e u n C0[0,0 k−1,k−1] end Func ion He e C0[i,j k,l] =      c0 i,j c0 i,j+1· · · c0 i,l c0 i+1,j c0 i+1,j+1· · · c0 i+1,l . . .... c0 k,j c0 k,j+1· · · c0 k,l      . No e ha in he nai e algo i hm la ge ma ix mul (A, B), du ing he main loop (lines 7-10), o each wen y ows ead om A, he en i e ma ix Bis ead. Du ing he whole p ocedu e, ma ix Awill be ead en i ely exac ly once, while ma ix Bwill be ead κ imes. Me hods imp o ing on his numbe a e desc ibed in sec ion 6. Since o almos all p ac ical cases he size ko ma ices A, B ∈Zk×k 4will be g ea e han he pa ame e n, he ec o s aken om hese ma ices will need o be i e a i ely shi ed on o he inpu o he mul iplie M20×20,nelemen s a a ime. The e o e, an e icien way o bo h s o e and hen use he ec o s aken om he ma ices is he c ea ion o FIFO ype con aine s made o shi egis e s. Le d nbe a shi egis e o wid h nand dep h d. I means ha d ncan s o e a mos d ec o s o leng h n, o equi alen ly a single ec o o leng h a mos nd. We choose dsuch ha nd ≥k, hus i can s o e one ow o column om he inpu ma ices Ao B. Le he ec o illing d nbe = ( 0, 1, . . . , d−1), Modula exponen ia ion o ma ices on FPGA-s 187 New ows a e loaded in a a slowe pace han columns a e. By he ime all columns a e ead once, he con en s o he ow-s o es ha e shi ed exac ly o he nex segmen o da a needed, he nex (z−1)·20 ows. A e ma ix Bis comple ely ead once, he ow-s o es a e illed wi h ows a(z−1)˙ 20 →a2(z−1)·20−1. Reading ows and columns p oceeds in his manne un il we’ e comple ely ead ma ix Aonce. Fo his eason, i is p ac ical o choose zsuch ha (z−1)|κ. All oge he we ead ma ix Bκ z−1 imes and ma ix Aonce. Du ing each z−1i e a ions shown in Figu e 6, wen y new columns and (z−1)·20 κ new ows a e loaded in o he column-s o e and ow-s o e cu en ly unused by he compu a ion. When he unused ow-s o e is illed wi h wen y new ows, i becomes ac i e, o be used in he ollowing i e a ions. The ow-s o e con aining he ows wi h he leas index becomes inac i e in he compu a ion and s a s accep ing he new ows ead. Figu e 7: P og ession o compu a ions h ough ma ix C Func ion imp o ed ma ix mul (A, B) 1. De ine z, κ =dk 20 e,A0, B0, C0∈Zκ·n×κ·n 4 2. o i=0 o 20κ −1do 3. o j=0 o 20κ −1do 4. i i<kand j<k hen a0 ij =aij else a0 ij =0 5. i i<kand j<k hen b0 ij =bij else b0 ij =0 6. end o end o 188 T. He endi, R. Majo 7. Fill he ow-s o es wi h ows a0→a(z−1)·20−1 8. Fill he column-s o es wi h columns b0−b19 9. Fo i=1 o κ2 z−1 Do in pa allel: |pe o m z−1i e a ions o he compu a ion |READ he nex 20 columns mod κ·20 |READ he nex (z−1)·20 κ ows mod κ·20 |WRITE he esul o he p e ious z−1i e a ions 11. e u n C0[0,0 k−1,k−1] end Func ion The possible alues o he pa ame e s used in his sec ion depend on he used ha dwa e. The size o he ma ices used in he implemen a ion a e de e mined by pa ame e s n=28 and d=32. The LUTs on he de ice ha comp ise he Td 20n con aine s can be con igu ed as d=32 bi deep shi egis e s. Fo his eason he ma ices a e o size 896 ×896. Rows wi h leng h k=896 a e he la ges ha can be s o ed in con aine s ha a e one LUT deep, making hem any la ge would double he numbe o LUTs needed o c ea ing a Td 20n. Because o he limi ed numbe o LUTs which can be used o s o age pu poses, z=10 was chosen. This yields ha wel e Td 20n con aine s a e de ined in he design. Dealing wi h ma ices la ge han k=896 is pa o u u e wo k. Fo con enience, ime quan i ies a e measu ed in clock cycles a 100MHz, he clock speed o he M20×20 mul iplie . The alue o δdepends on he DDR2 RAM used. The de ice was used a 200MHz, and has a 64 bi wide physical da a bus. F om hese alues we de e mine he ollowing pa ame e s: •κ=d896 20 e=45, •K(imp o ed ma ix mul ) = κ z−1κ+κ=45 9·45 +45 =270, •δ=140 clock cycles a 100MHz, •Φ(imp o ed ma ix mul ) = K(imp o ed ma ix mul )δ+κδ =270· 140 +45 ·140 =44100 clock cycles a 100MHz, •Γ(imp o ed ma ix mul ) = dκ2=32 ·452=64800 clock cycles a 100MHz. Modula exponen ia ion o ma ices on FPGA-s 189 The goal o Γ(imp o ed ma ix mul )> Φ(imp o ed ma ix mul )is a- chie ed, meaning ha he unning ime o he design is equal o he ime used by he compu a ion. The speedup p o ided by he con igu a ion can be shown by compa ing i s pe o mance o a simila implemen a ion c ea ed on a mo e adi ional a chi- ec u e. A highly op imized C++ p og am was c ea ed o a machine using an In el E8400 3GHz Dual Co e p ocesso wi h 2GB RAM. The algo i hm is s ongly specialized o he ask, making use o all a ailable op ions o in- c easing pe o mance. I uses 64 bi long a iables o pe o m mul iplica ion on 16 pai s o wo-digi elemen s a once in pa allel on bo h p ocesso co es. The unning ime o he mul iplica ion o ma ices o he same size is o e 100 ms. The FPGA implemen a ion, as men ioned abo e, achie es a un ime o ∼0.6 ms. On a e age, a speedup ac o o 200 is eached using he desc ibed FPGA design. 7 Fu u e wo k The u u e cou se o esea ch will ocus on inc easing he size o he used ma ices. As men ioned in he p e ious sec ion, simply inc easing he dep h do he Td 20n con aine s would be imp ac ical. Since a single LUT on he de ice can only be con igu ed as a 32 bi deep shi egis e , se ing d > 32 would double he numbe o LUTs needed o a Td 20n, and he design is al eady using well o e hal o he de ice’s LUTs ha can be con igu ed his way (13440 ou o 17280, o be exac ). Inc easing he size o he ma ices his way would equi e he es uc u ing o bo h he mul iplie module and he algo i hm used o memo y managemen . Ins ead, he cu en ly implemen ed module can be used as a basic uni o he mul iplica ion o la ge ma ices. Then he en ies o he la ge ma ices a e 896 ×896 blocks. This also allows o u he op imiza ion using S assen’s algo i hm. Suppose we double he ma ix sizes, in e p e ing hem as ma ices wi h ou blocks. Using he classical algo i hm, mul iplying wo 1792×1792 sized ma ices would ake eigh mul iplica ion o he blocks. Using a di ide-and-conque s a egy, we can exchange one mul iplica ion o a ew ex a addi ions. A11 A12 A21 A22·B11 B12 B21 B22=−D2+D4+D5+D6D1+D2 D3+D4D1−D3+D5−D7, 190 T. He endi, R. Majo whe e D1=A11(B12 −B22) D2= (A11 +A12)B22 D3= (A21 +A22)B11 D4=A22(B21 −B11) D5= (A11 +A22)(B11 +B22) D6= (A12 −A22)(B21 +B22) D7= (A11 −A21)(B11 +B12). This algo i hm, wi h i s O(nlg 7) ime complexi y, could speed up he design on la ge ma ices. We should no e howe e , ha he speed o he ex a addi ions ha e o be ca e ully conside ed. Since he mul iplica ion is al eady ex emely as , a simila imp o emen may also be necessa y o addi ions i he o e all pe o mance upg ade is o emain signi ican . Acknowledgemen s Resea ch suppo ed by he T´ AMOP 4.2.1/B-09/1/KONV-2010-0007 p ojec and TARIPAR3 p ojec g an N . TECH 08-A2/2-2008-0086. Re e ences [1] F. Bensaali, A. Ami a, R. So udeh, Floa ing-poin ma ix p oduc on FPGA, IEEE/ACS In e na ional Con e ence on Compu e Sys ems and Applica ions, Amman, Jo dan, 2007, pp. 466–473. ⇒173 [2] D. Coppe smi h, S. Winog ad, Ma ix mul iplica ion ia a i hme ic p o- g essions, J. Symbolic Compu . 9, 3 (1990) 251–280. ⇒173 [3] N. Da e,K.Fleming, M. King, M. Pellaue , M. Vijaya agha an, Ha dwa e accele a ion o ma ix mul iplica ion on a Xilinx FPGA, MEMOCODE ’07 P oc. 5 h IEEE/ACM In e na ional Con e ence on Fo mal Me hods and Models o Co-Design, Nice, F ance, 2007, pp. 97–100. ⇒173 Modula exponen ia ion o ma ices on FPGA-s 191 [4] Y. Dou, S. Vassiliadis, G. K. Kuzmano , G. N. Gaydadjie , 64-bi loa ing-poin FPGA ma ix mul iplica ion, P oc. 2005 ACM/SIGDA 13 h in e na ional symposium on Field-p og ammable ga e a ays, Mon- e ey, CA, USA, 2005, pp. 86–95. ⇒173 [5] T. J. Ea nes , S assen’s Algo i hm on he Cell B oadband Engine, 2008, h p://mc2.umbc.edu/docs/ea nes .pd ⇒173 [6] T. He endi, Uni o m dis ibu ion o linea ecu ences modulo p ime pow- e s, J. Fini e Fields Appl. 10, 1 (2004) 1–23. ⇒174 [7] T. He endi, Cons uc ion o uni o mly dis ibu ed linea ecu ing se- quences modulo powe s o 2 ( o appea ). ⇒174 [8] A. I u k, S. Mi zaei, R. Kas ne , An E icien FPGA Implemen a ion o Scalable Ma ix In e sion Co e using QR Decomposi ion, UCSD Techni- cal Repo , CS2009-0938, 2009. ⇒173 [9] B. Kaka ado , Ul a- as ma ix mul iplica ion, An empi ical analysis o highly op imized ec o algo i hms, S an o d Unde g adua e Resea ch Jou nal 3(2004) 33–36. ⇒173 [10] M. Ka koo i, J. R. Ca alla o, C. Dick, FPGA implemen a ion o ma ix in e sion using QRD-RLS algo i hm, P oc. 39 h Asiloma Con e ence on Signals, Sys ems, and Compu e s, Paci ic G o e, CA, USA, 2005, pp. 1625–1629. ⇒173 [11] S. M. Qasim, A. A. Telba, A. Y. AlMaz oo, FPGA design and implemen- a ion o ma ix mul iplie a chi ec u es o image and signal p ocessing applica ions, IJCSNS In e na ional Jou nal o Compu e Science and Ne wo k Secu i y 10, 2 (2010) 168–176. ⇒173 [12] V. S assen, Gaussian elimina ion is no op imal, Nume . Ma h. 13 (1969) 354–356. ⇒173 Recei ed: May 17, 2011 •Re ised: Oc obe 11, 2011