2011 IEEE International Parallel & Distributed Processing Symposium
!" #$%$& ' ( ()( *+ ,++-
!
"#$%
&'$%() *+ , * * -. / .0 1'2
)#"$ )) "03 4 + &' * * 567 * 8 + 67 9 9 : 9 3"# -. / .0 1'2 -0/;-"$#) * 3"# 9 "0 " > & & 710/ "% > > E & & & "% > > & > & & >& & ' & & & & > & A / & > & = > > > = & >&& & > & - > 4 4 + "% & & & 4 & E #7$ 4 > > & E #0$ & & 7. & ( 0 &
! " #!"$ "% & '& ( & )* "%' + & ,*-% & & & ./ 01/2 "% & & & !" "% & 3 4 5 4. ,*-% & )*/267 "%' # $ "% 710/ "% & /71.82'9: /.0; & ) & & ,*-%
4+ .5 6 (
"% & B& > -*F #- * F $ C/D C;D 9> 4 4 -*F -*F & -H I "% & & ! " C.D ( -H I G & !" "% & ,*-% % > 4 & '& C8D C2D & : & & '& > & ' > + > C2D ,*-% C?D * 4 40 '& & & C71D % 528 532
4 4 4 4 C77D > 4 9> + 4
'& C70D 4 > + 4 '& "% & "%' ,*-% & C7 & & & ':: + "% & C7/D & '& ) & " 4 : 4 3 4 ,*-% )* 4
C7;D > )* > + & % + 4 % ,*-% )* 4 C7.D %>
4 ,*-% '& 4 > & 4 3 4 ,*-% 4 4
& )* >
> C78D > "% & )* "%' 710/ "% & &
% '&
, & > 4 4 > & E
% '& & '& & 7 '& A '& % 4
= '& = + & + '& > % 7 > , & & 4
+ & , 4 4 & 1 + 9> & > & - G A # $ = > # & & E = 6+ # & + E #/$ #;$ A ( > > > & 6+ # > & "% & 4 & 4 !" "% & 7E ! 0E ! : 4 & "% &
>
7 84 . 5 7 9: A
#.$
530 534
78 78 '%!! 7 78 , 4
78 & 4 = 78 78 '%!! 78 > & &
A K& "% & & 6+ #0$ !" "% & & & & 4 > = 6+ #0$ & > !" "% & !" "% & 0
& 0 ! + & !" "% & & +
4
E ( E 7 0 & !" & % / & & & = 710/ & 7 710/ "% 710/ ;70 :
#8$ + & ( & 532 536
Flag(1 bit) Data(17 bit)
MM control run
Montgomery Multiplier
Addr
ModExp control BRAM
input/output data line control line
5 " 061 " 1 ./
;70 = '& 5%7 4 7 # ;70 1 $ 0 & 4 = & % 0 ;70 : 710/ < '& 7 = 4 & % 7# ;70 1 $ !" "% & : = & 6+ 2
#?$ > & & 710/ : 710/ ;70 > &
= 6+ ? & & !"
< 7 '& : 0 4 6+ 2 > : 0 : 7 : data
sel
MUX dbus 16 cores
16 cores
16 cores
16 cores
7 ! / -1 / 6.6clk2 (200MHz)
Address counter
FIFO
run done wr rd
wr_en rd_en
Controller
wr_done rd_done
abus dbus BRAM DSP
…
BRAM DSP
…
BRAM DSP Clk1 (400MHz)
$ ! / 6 0/ 66
( & & > 7. !" "% , 8 & B
> % 4 > % & & , 2 6>& 7. !" "% & 4 & 4 "% 4 & 534 538
" 6 " 06; 6 ; (*6 7 (*6 " 0 = # $ $0 - / 6 7 "#$6 8 .9*+2: #5 5> #
5 6 0 .6 1@ 0 = -- . 0 = " 0 = 8 .9*+2: -9-6: ! !/ 9=0 ;6: 6 0
*22 9#: '
%$ $3@ 64 ,57# .6
& & 4 & & & , 710/ "% & 4
0.0 > 4 > 710/ 7 + C77D 4 4 '&
! 6 B = ' '&'# : C7;D 3 4 5 4/ ,*-% )* 78 )* )*/2 9 4 & & & ;2; B > C7/D ':: + > 40 '& ) & & )* %
4 535 539
% % + C7.D 4 )* ) & > 0 )* % G & )*/267 "%' & : 4 >& % )*/267 & 5%0 > > + & 4 + & & 7 5 ! &"
> !" "% & 4 : )* ( & > > '& )* ( > 3 4 5 4. & ,*-% 64 4 & " % %% %"
& = -+ - - A , -= 782 -
! ( ') "##:
"'&$"(" # D G = 8 -
66 /* - ? 0 !
*
.#
' '.&$'%: "## " 7 D = F F E ! ( ' + ,- ) # &&& &:$#( -
5 F H F F0 F
!!" # . / )
- "##& $( 782 !
: ->> 2 8 H ->> 782
!
/ 0 ) "##5
. 9 > /0 *> 782
" - ,- ' ) # "##' "'"$"((
* !
% D
*
%* # &&& '#$'' ? 0 !
8
/C C C
-
/C C
D
9
'
55 .% 5(5$5& "##' 782 !
" " "#$"%
&'(
' G F F0 F H I +
" )* + , * % -%#. /0 1 2 3"4 !
0 98
"##
- H "##
- ! 5 66 , *% 782 98:(; 1 2 3"4 ! "##&
:#$:'
:
"## ':$'(
? !
. @ / A