Professional Documents
Culture Documents
hite
tural
Universit de Cergy-Pontoise
Benot Miramond
2 novembre 2006
Aprs avoir travailler au niveau RTL au TP pr
dent, nous allons maintenant monter en abstra
tion
pour suivre la mthodologie TLM. De manire pla
er le travail demand par rapport au TP pr
dent
et
omprendre
ette mthodologie, lisez les 3 premiers paragraphes de la page :
http ://www.us.design-reuse.
om/arti
les/arti
le10626.html
puis les 4 premiers slides de :
www.o
pip.org/pressroom/s
hedule/speaking/papers_presentations/Mentor.pps
Rappel : Durant les exer
i
es le tableau suivant vous indiquera quelles notions de SystemC sont
ibles durant l'exr
i
e.
COO Module Interfa
e Event Canaux
- - - - -
Les san
es de TP qui vont suivre portent sur la mme appli
ation : une appli
ation de traitement
d'image simple illutrant les dirents m
anismes de
al
ul utiliss au niveau systme pour des implmen-
tation logi
ielles ou matrielles. SystemC permet d'exprimer une mme fon
tionnalit sous ses direntes
implantations possibles. Chaque implantation utilise une modle de
al
ul dirent. L'obje
tif de
ette
srie de TP est de
omprendre
es modles de
al
ul en les utilisant pour
ette fon
tionnalit.
le modle mmoire partag,
orrespondant une implmentation purement logi
ielle.
le modle dit "Kahn Pro
ess Network",
orrespondant une implmentation purement matrielle.
une implmentation mmoire partage en expli
itant le servi
e de gestion des t
hes de l'OS.
une implmentation mixte ave
a
lrateur matriel, et servi
e ddi (Hw driver) de l'OS.
Nous allons travailler sur une appli
ation ralisant en srie des
al
uls simples de traitement d'image.
Le
hoix de
e type d'appli
ation est de pouvoir tudier l'impa
t de la granularit du traitement sur les
hoix ar
hite
turaux.
L'appli
ation sera
ompose de 3 traitements su
ssifs qui sont :
transformation de format,
ltre par
al
ul de gradient,
sur
hentillonnage.
On supposera en eet que notre futur systme dispose d'un
apteur d'entre lui fournissant une srie
d'images sur lesquelles le systme doit raliser un
ertain traitement que nous simplions dans le
adre
de
es TPs. L'unit d'entre du systme est modlis par un module de le
ture
hier pour lequel il doit
raliser une
onversion sur
haque pixel.
1
2.1.2 Filtrage
Dans l'obje
tif nal de raliser un traitement du type re
onnaissan
e de forme, l'image subit un
premier ltre sous la forme d'un
al
ul de gradient :
r
G2x + G2y
Gx,y =
2
ave
:
Gx = Dx+1,y Dx1,y ,
Gy = Dx,y+1 Dx,y1 ,
et Dx,y reprsente la valeur du pixel aux
oordonnes [x, y] ave
x [0, W ] et y [0, H],
W est la largeur de l'image d'entre et H la hauteur de l'image.
Remarque : dans nos modles, l'image sera reprsente
omme un tableau une dimension de taille
H W , et les pixels seront reprsents
omme des ottants.
Q
Enn, pour
omposenser la perte d'informations, l'image subit un sur
hentillonnage d'un fa
teur 4 :
Hs = 2.H et Ws = 2.W . Le masque du sur
hentillonnage est le suivant, pour
haque pixel [x, y] :
S2x,2y = Dx,y ,
opie des pixels de l'an
ienne image
S2x+1,2y+1 = (S2x1,2y1 + S2x1,2y+1 + S2x+1,2y1 + S2x1,2y1 )/4, interpolation sur les autres
pixels,
S2x1,2y = (S2x1,2y1 + S2x1,2y+1 )/2, et
S2x,2y1 = (S2x1,2y1 + S2x+1,2y1 )/2
La gure 1 synthtise le
al
ul.
(0)
111111
000000 111111
000000
Xs 111111
000000 x
000000
111111 000000
111111 000000
111111
000000
111111 000000
111111 000000
111111
000000
111111
000000
111111 000000
111111
000000
111111 000000
111111
000000
111111
000000
111111 000000
111111 000000
111111
000000
111111 (1) 000000
111111 000000
111111
S(Sx,Ys) y
111111
000000 111111
000000
000000
111111 000000
111111
000000
111111 000000
111111 (1) S(Xs,Ys) = (S(Xs1,Ys1)+S(Xs1,Ys+1)+S(Xs+1,Ys1)+S(Xs+1,Ys+1))/4
000000
111111
000000
111111 000000
111111
000000
111111 (2) S(Xs+1,Ys) = (S(Xs1,Ys1)+S(Xs1,Ys+1))/2
000000
111111 000000
111111
Ys 000000
111111 000000
111111 (3) S(Xs,Ys1) = (S(Xs1,Ys1)+S(Xs+1,Ys1))/2
111111
000000 111111
000000
Xs 111111
000000 000000
111111
Xs
000000
111111 000000
111111 000000
111111 000000
111111
000000
111111 000000
111111 000000
111111 (3) 111111
000000
000000
111111
000000
111111 000000
111111
000000
111111 000000
111111
000000
111111 000000
111111
000000
111111
000000
111111 000000
111111 000000
111111
S(Sx,Ys1)111111
000000
000000
111111 000000
111111 000000
111111 000000
111111
(2)
S(Sx1,Ys)
111111
000000
000000
111111 111111
000000
000000
111111
000000
111111
Ys 111111
000000
111111
000000
000000
111111
Ys 111111
000000
000000
111111
000000
111111
000000
111111 000000
111111
000000
111111
Fig. 1 Cal
uls de sur
hentillonnage
La premire implantation de l'appli
ation
orrespond une solution ar
hite
turale purement logi
ielle
ou la plateforme (le pro
esseur programmable et son OS) est totallement virtualise. Plus pr
isment
ette plateforme est abstraite par le moteur de simulation SystemC qui ore les
apa
its d'ex
ution
de
ette future plateforme. A
e niveau le
on
epteur n'a pas de
ontrle sur l'ordre d'ex
ution des
2
pro
essus de l'appli
ation puisque soumise au rgles de simulation de l'ordonnan
eur SystemC.
Vous trouverez le
ode de dpart de l'appli
ation sur la page web habituelle. Cette solution
onsiste sim-
plement en autant de pro
essus (SC_THREAD) que de fon
tionnalits. Ces pro
essus se syn
hronisent
par des vnements et
ommuniquent par mmoire partage protge par des smaphores. Compilez-le
et ex
utez-le. Ce
ode ne ralise qu'une petite partie du traitement que vous allez
omplter :
Cration de 2 SC_THREAD supplmentaires,
ajout des m
anismes de syn
hronisation,
odage du gradient et du sur
hentillonnage.
appel aux fon
tions d'a
hage.
Lorsque l'appli
ation est fon
tionnellement
orre
te, analysez le
omportement ex
utif du systme :
paralllisme de traitement, points de syn
hronisation par rapport aux donnes et dduisez-en les m
a-
nismes possibles d'a
lration si l'appli
ation tait porte en matrielle.
Quelle est la dure du temps d'ex
ution simule ? A quel niveau d'abstra
tion de la mthodologie TLM
orrespond notre implmentation ?
Que faut-il ajouter pour que le modle devienne Timed ?
Le modle de Kahn est une reprsentation de traitement matrielles
ommuniquant travers des
FIFOs de taille innie
omme le prsente la gure 2.
Nous allons utiliser
ette reprsentation pour modliser au niveau systme une implantation matrielle
du
ode logi
iel pr
dent.
A partir des reexions de la se
tion pr
dente, tablissez un s
hma pr
is du systme matriel a
lrant
le
al
ul. Quelle type de FIFO faut-il utiliser pour la
ommuni
ation (bloquant ou non, taille des donnes
hanges ...)
Travail raliser :
1.
riture d'un
anal hirar
hique de modlisation de la FIFO dnie,
2.
riture de 3 s
_modules pour les 3 traitements (ave
modi
ation du mode de
ommuni
ation),
3. dans un premier temps les donnes seront sto
kes dans un tableau temporaire,
4. dans un deuxime temps les traitements devront se faire en parallle la r
upration des donnes
suivantes.
Prenez le temps de bien
omprendre
e que vous faites et de
onstruire itrativement des modules propres
et
omments.
Le dernier modle n'est rien d'autre que le modle mmoire partage ou nous allons expli
iter le
servi
e de gestion des t
hes de l'OS en droutant les appels systmes ( SystemC). De
ette manire,
la plateforme logi
ielle devient de moins en moins virtuelle jusqu' aboutir son modle
omplet.
Travail ralise :
1.
ration d'un module OS ayant les servi
es suivants non-en
ore implmentes :
Cration de t
he,
3
ordonnan
ement des t
hes (non-premptibles),
syn
hronisation par droutage de l'appel wait() ;
2. implmentation des servi
es de l'OS,
3. liens ave
les fon
tions de l'appli
ation.
Cette dernire tape
onsiste
umuler les deux derniers modles ar
hite
turaux en ajoutant un
servi
e de
ommuni
ation l'OS permettant de faire passer les donnes des pro
essus logi
iels aux
omposants matriels. Il est possible de multiplier les tapes de gradients et de sur
hantillonnage pour
augmenter le nombre de traitements.