Title: Estimation de la consommation dans la conception systme des applications embarques temps rels
1Projet SystemC MASTER 2 recherche GEII Promo
2007-2008 IUP Lorient Pierre Bomel
2Intérêt des circuits ? Le principal avantage des
FPGA/ASIC est de permettre une implémentation
parallélisée, et au bit près, dalgorithmes qui
nécessitent de grandes puissances de
calcul. SystemC ? Une modélisation en SystemC
permet, avec les types de données en virgule
fixe, de valider larchitecture du circuit avant
de limplémenter en VHDL. On peut ainsi simuler
des scénarios avec des représentations
variables des nombres en virgule
fixe. Objectif faire le circuit le plus petit
(le moins de bits possible) et le plus rapide
possible (en nombre de cycles dhorloge) pour la
fonction dire si un nombre est premier .
3Les nombres premiers de Mersenne sont de la
forme 2q-1 On cherche actuellement à
identifier des nombres premiers de Mersenne dau
moins 10 millions de chiffres ! Il y a même une
prime de 100 000 pour celui qui trouvera un
nombre premier encore plus long (projet
GIMPS). Plus modestement, nous emploierons le
crible dErasthotène (284-192 av JC), un
mathématicien grec dAlexandrie.
4Le crible dErasthotène consiste à éliminer tous
les multiples dun nombre dont le carré est
inférieur ou égal au nombre dont on veut tester
la primalité.
Par exemple 37 est-il un nombre premier ?
On commence avec le nombre 2. 4 22 lt 37
On part de la grille suivante.
1
2
1
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
37
32
34
36
37
38
40
On continue avec le nombre 3. 9 32 lt 37
On continue avec le nombre 5. 25 52 lt 37
1
2
3
4
6
8
9
10
1
2
3
4
5
6
8
9
10
12
14
15
16
18
20
12
14
15
16
18
20
21
22
24
26
27
28
30
21
22
24
25
26
27
28
30
32
33
34
36
37
38
39
40
32
33
34
35
36
37
38
39
40
5On continue avec le nombre 7. Mais 49 72 gt
37 Il est inutile de poursuivre, le criblage est
terminé. 37 na pas été marqué, donc il est
premier !
1
2
3
4
5
6
8
9
10
12
14
15
16
18
20
21
22
24
25
26
27
28
30
32
33
34
35
36
37
38
39
40
Si le nombre 37 avait été marqué lors du criblage
on se serrait arrêté immédiatement en sachant
avec certitude que 37 serait alors un multiple
dun autre nombre, donc non premier.
6On a dailleurs identifié tous les nombres
premiers inférieurs on égaux à 49.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
7Le crible dErasthotène repose sur laptitude à
calculer des multiplications de nombres de
tailles de plus en plus grandes. 1/ calculer un
carré dun nombre N pour le test darrêt 2/
calculer les multiples de N pour marquer
(cribler) la table Comment faire lorsque N
grandit ? Par exemple pour trouver des nouveaux
nombres premiers de Mersenne.
La solution cest la FFT !
8Constat la multiplication est une convolution
! Def soient f(n) et g(m) deux signaux
numériques, leur produit de convolution est le
signal numérique fg défini par la relation
(fg)(p) Snf(n)g(p-n) Soient deux nombres
représentés par des suites af(n) et bg(m) a
f(0) f(1) f(2) 123 ( 321 poids faibles en
premier) b g(0) g(1) g(2) 678 ( 876 poids
faibles en premier) a.b 321 . 876 281196
6 9 1 1 8 2 (poids faibles en premiers)
clk
1 2 3
6 9 1 1 8 2
6 7 8
9Constat la multiplication est une convolution
! Soient deux nombres représentés par des suites
af(n) et bg(m) a f(n) f(0) f(1) f(2)
123 ( 321 poids faibles en premier) b g(m)
g(0) g(1) g(2) 678 ( 876 poids faibles en
premier) a.b 321 . 876 281196 a.b 6 9 1
1 8 2 (poids faibles en premiers) a.b fg
fg(0) fg(1) fg(2) fg(3) fg(4) fg(0)
f(0)g(0-0) f(1)g(0-1) f(2)g(0-2) 1.6 2.0
3.0 6 fg(1) f(0)g(1-0) f(1)g(1-1)
f(2)g(1-2) 1.7 2.6 3.0 19 fg(2)
f(0)g(2-0) f(1)g(2-1) f(2)g(2-2) 1.8 2.7
3.6 40 fg(3) f(0)g(3-0) f(1)g(3-1)
f(2)g(3-3) 1.0 2.8 3.7 37 fg(4)
f(0)g(4-0) f(1)g(4-1) f(2)g(4-3) 1.0 2.0
3.8 24 Avec propagation de la retenue aux
termes suivants on obtient a.b 6 19 40 37 24
6 9 (140) 37 24 6 9 1 (437) 24 6 9 1 1
(424) a.b 6 9 1 1 8 2 Les deux méthodes
donnent le même résultat.
10Propriété de la transformée de Fourier la
transformée de Fourier dun produit
de Convolution est le produit des transformées de
Fourier. F(fg) F(f).F(g) Application à la
multiplication des nombres longs fg
F-1(F(fg)) F-1(F(f) . F(g)) Donc le circuit
est le suivant
F
1 2 3
x
F-1
6 9 1 1 8 2
F
6 7 8
11Votre enseignant vous a fourni et à mis en
uvre devant vous le code des FFT (décimée en
temps, base 2) et FFT inverse en virgule
fixe. Votre projet est de modéliser en SystemC
ce circuit et dutiliser ces FFT pour
implémenter lalgorithme du crible
dErathostene. Contrainte pour des nombres
ayant jusquà 1000 chiffres Un test sera fait le
jour de la soutenance avec des nombres choisis
par votre enseignant. Si le nombre est trop
grand, un fichier ASCII contenant ce nombre vous
sera fourni. Bon travail !