close

Вход

Забыли?

вход по аккаунту

1232613

код для вставки
Génération de système d’exploitation pour le ciblage de
logiciel multitâche sur des architectures
multiprocesseurs hétérogènes dans le cadre des systèmes
embarqués spécifiques.
L. Gauthier
To cite this version:
L. Gauthier. Génération de système d’exploitation pour le ciblage de logiciel multitâche sur des
architectures multiprocesseurs hétérogènes dans le cadre des systèmes embarqués spécifiques.. Micro
et nanotechnologies/Microélectronique. Institut National Polytechnique de Grenoble - INPG, 2001.
Français. �tel-00163404�
HAL Id: tel-00163404
https://tel.archives-ouvertes.fr/tel-00163404
Submitted on 17 Jul 2007
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d’enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.
INSTITUT NATIONAL POLYTECHNIQUE DE GRENOBLE
THESE
pour obtenir le grade de
DOCTEUR DE L’INPG
Spécialité : Microélectronique
préparé au laboratoire TIMA
dans le cadre de l’Ecole Doctorale EEATS
présentée et soutenue publiquement
par
Lovic GAUTHIER
le 5 décembre 2001
Titre :
Génération de système d’exploitation pour le ciblage de logiciel multitâche sur des architectures
multiprocesseurs hétérogènes dans le cadre des systèmes embarqués spécifiques
Directeur de thèse :
Ahmed Amine Jerraya
JURY
M. Guy MAZARÉ
, Président
M. Yves SOREL
M. Diederik VERKEST
M. Ahmed Amine JERRAYA
M. Giovanni DE MICHELI
, Rapporteur
, Rapporteur
, Directeur de thèse
, Examinateur
M. Christian BERTHET
, Examinateur
(( )) ! " # $% &
! " '(' & & )*'( & * (% +& , # - . / 0 12
! * 1%0 +& , ' # + # * (% . # $% / 0 1 & & 3 & & & 4
55 ( % & 555 ( % & 6 557 ( % 554 # % & 57 8 % & 575 8 577 8 574 " & 57; < = 57? 54 % & 545 @ % & 547 @ 5; ( A '(' 5;5 1 A 5;7 # A 5? 75 C % = 755 '% = 6 757 1 % = 754 < = % = 75; 8 % = 77 ( % = % & 775 @ % & 777 % & 774 ( & % & 77; = % & 77? # % = %
& 74 C % = A 745 " % = 6= % 747 * 6 % = 5
7
4
4
9
9
:
57
5>
59
59
59
5:
7B
7B
7>
47
44
4;
4>
;4
;?
;?
;?
;9
?B
?B
?5
?4
?;
?>
;
744 # ?:
7; >7
45 C 455 *6 457 = &
47 ( & 475 , = & 477 *6 & 474 & 44 8 & 445 8 & 447 ( & 4; ( & 6 4;5 * E & 4;7 @ & & 4;4 ( % = & 4? ! " ;5 ( A & ;55 F % = ;57 ( ;54 ( & & % = ;5; = & & ;5? ( 6 A & ;5> ( % = ;7 ( % = ;75 # & A & % =2
;77 * A ;74 * A ;7; G A ;7? #% ;7> ' % = ;79 + % = ;7D + 6 ;7: ( ;75B = & & % = ;4 %
& ' ?5 * ?55 * A '(' )*'( ?57 ' 6 >4
>;
>;
>?
>>
>>
>>
>9
>9
>D
95
95
9?
9>
99
#$
9:
9:
DB
D4
DD
:4
:>
:9
:9
5BB
5B4
5B4
5B4
5B:
55:
54B
547
547
54;
%
54?
54>
54D
?
?7 ( & & % = ?75 ( = H & & ?77 & & ?4 8 ?45 JI A % = ?47 8 % = ?; ! & ( " ) #5 C #7 1 8 #4 *6 8 #45 * 2
#47 * 2 & #44 #; ( 8 #;5 ( % G #;7 ( % #;4 ( % A #? ( = #> ( & #>5 *6 & #>7 1 & #>4 *6 & & #>; 8 6 & #>? # & #9 ( & = #95 *6 & & #97 & #94 # = & = #D ( #D5 *6 #D7 # #: ( K #:5 *6 & #:7 J #:4 ( & (( )) (( )) #:; ( & (( )) #:? ( = #5B ( #5B5 ( #5B7 ( #55 ( 6 #555 ( #557 ( #554 ( E 5;4
5;4
5;>
5?B
5?B
5?>
5?9
%$
5>4
5>4
5>4
5>4
5>;
5>;
5>;
5>;
5>?
5>?
5>?
5>>
5>>
5>9
5>9
5>9
5>9
5>9
5>9
5>9
5>D
5>D
5>D
5>:
5>:
5>:
5>:
59B
59B
59B
595
595
595
595
595
595
595
>
#55; ( #55? ( &
#55> ( #559 ( L #55D ( #55: ( = *
595
597
597
597
594
594
#%
9
5
7
4
55
57
54
5;
5?
5>
59
5D
5:
55B
555
557
554
55;
55?
55>
559
55D
55:
57B
575
577
574
57;
75
77
74
7;
7?
7>
79
7D
8 % & F& A % & 6 ' % & # & # & = # & = % = A = " = "% = 1 = 1 " " % " % ( A % & ( = = A '(' ( = & A = & 8 6 A % ( A % = 6 A + '% = & '% = 1 M C & 1 "" = M @ @[email protected] % = & 7: C % 7
;
?
>
D
:
5B
55
57
54
5;
5?
5>
5D
7B
77
77
74
7?
79
7D
7:
45
45
4?
4>
49
;5
;7
;7
;9
;D
?;
D
75B
755
45
47
44
;5
;7
;4
;;
;?
;>
;9
;D
;:
;5B
;55
;57
;54
;5;
;5?
;5>
;59
;5D
;5:
;7B
;75
;77
;74
;7;
;7?
;7>
;79
;7D
;7:
;4B
;45
;47
;44
;4;
( A & ??
= % & ??
( >?
= & & % >?
( & >:
( & % = DB
( N"( " ( D5
= = D7
= & = D7
8 D;
#& & #8"9 D?
= D?
1 D:
= & & % = :5
= :;
= %
= :?
( A & % = ::
= 6 6 5B5
= 5B7
#& M 5B7
( G 5B;
( 5B9
( 5BD
M 5B:
* 6 5B:
1 555
1 6 557
* = # - 557
* = 557
( & & 55;
#8"955?
* = 559
( & & = 55D
' 55:
1 57B
' & O P 575
577
= 6 ;47 +!,-./01 574
= 6 ;47 +!,-./01 574
;4?
;4>
;49
;4D
;4:
;;B
?5
?7
?4
?;
??
?>
?9
?D
?:
:
1% " = M = = 6 06 = ( )*'( ( )*'( ( )*'( 1 )*'( "5 1 )*'( "7 ( & & % = )*'(
( % = "5 ( % = "7 = 57?
57>
579
57:
545
544
54>
549
54:
5;B
5;5
5;9
5?7
5?4
5?D
5B
% & 6 22 % % 6 = %
* % 2
= % % H & M 2
1 % = = M % 6 5 ( & & % = Communication logicielle
(pilotes, entrées/sorties,
interruptions)
Système
d’exploitation
Gestion des ressources
Logiciel
Logiciel spécifique
à l’application
Matériel
Réseau de communication
matérielle embarquée
Processeurs ASIC Mémoires
5 !
( % & 6 2
& E %
( E = % & ( & = % % H =
= & & % & 2
= % * = 6
1 % C = C ( % = 1 % = 6 = = ( = % & 6 % E ( % = Q H % & & 3 2
% & 6 M E E % & (& A % & 6 A = & 6 C 1 A ! % & ! & = = & 6
! & % ( 6 7 A C % &G
= &G & E 1 Spécification haut niveau
Synthèse
Allocations globales
Spécification niveau
intermédiaire annotée
UC
UC
Simulation
ASIC
Génération d’interfaces
matérielles et logicielles
Réalisation finale
Appl.
SE
UC
7 ! Appl.
SE
UC
ASIC
6 4 & = = A & % = 6 = Introduction
Chapitre 1 :
Introduction aux
systèmes embarqués
État de l’art
Chapitre 2 :
État de l’art sur les
systèmes d’exploitation
Chapitre 3 :
De la compilation
au ciblage logiciel
Contribution
Chapitre 4 :
Ciblage automatique
avec génération de SE
Exemple
Chapitre 5 :
Application du flot de
ciblage logiciel
4 ! 2 3 ) & 1 % 2
& % * = % 22 % * H 6 A 6
'(' & QC"#
3 ) ( % = ( & ( % = 6 = ( = = % = 2
% & 6 % & % = 4
3 ) 6 & & ( & ( % & 6 & & 6 5 3 ) ! " 6
% = ( 6 & & ( &
! 3 ) & ' A & )*'( ( = & & % = & 6 & 5
#
$
! " % & & ' ( ) ) #
!! "
*
#
1 6 % & % % * 6 % & 6 % & 1 % & 6 % & H % 2 2 R 1 A '('
& QC"# ( A
!
" ( % ( 2
2 % & " 7
& & = & % & % & 7 787
! ( % & & = & 2
C ( & % 6 55 ( 2
% & 1 = OE 2
P
Coeur du
système
embarqué
55 ! ! 7 787
CNA
CAN
Capteurs
Système embarqué
Actionneurs, Afficheurs
Environnement
" ( % & = % ! & 2
! O & P S &
! % ! % ( % M & E 6 ( % & R 6 , 4
% R C 6 ( & 2
% 6 H = = ( A 5; % %2
& = % ( 2
% & % O# # P A 2
T>5U
* % E & 2
3 = & 2
% 2
= 1 & ( % = # % & H & % = H ( % & H & &
( % & , H % R # % = R = H & T>4U =
* 2
7 77
2
( % & !+/91& T;7U " T::U K & C#' O C # ' 6 P $%# ;
6 57 ( & % GL G Système embarqué
Mémoire
Processeur
bus du processeur
Périphérique
Périphérique
d’entrée
de sortie
Environnement
57 ! $ & ( 2
O K P ( K
& %
( K & 2
, = & O & P ( = H & 2
& & E 7 77
( % & 2
( % & H K = = * = :! T55;UT7DU O P =
2
( % & = 2
& = = K
( K & %2
( = S ' 6 54 * & & Système embarqué
?
Mémoire
annexe
Processeur
Mémoire
bus annexe
annexe
centrale
Pont
Processeur
bus du processeur central
central
Autres
Périphériques
Périphériques
d’entrée
de sortie
périphériques
Environement
54 ! $ ( &
2
( % & = 2
O =P ( % = 2
C M %
= % & ( ( = 6 & 7 77
( T74U C & & % 2
& 2
1 & A= & 2
G & K % E
# K 6 2
T>5U ( 6 5; = 2
* 6 O $%# P ( = & & ( = & &
3 ( = 6 = >
& = Architecture à base de bus
Processeur
Mémoire
Architecture en barres croisées
Processeur
Mémoire
ASIC
Processeur
ASIC
Bus
Mémoire
Processeur
ASIC
Architecture à base de réseau commuté
Architecture mixte
Processeur
Mémoire
ASIC
Bus
Processeur
ASIC
Mémoire
ASIC
Processeur
ASIC
Mémoire
ASIC
5; ! $ &
# H ( 6 = ( 6 2
( & % & T55DU 1 % = * = & & M Q = % = =
= G & 9
% = %
% O E & P % % O 3 P
!# * R H % & * 1 = %
& ( %
V 2
= , = % 77 7
( * % % * & = % S
;0 TDU -< T4DU C / T?DU
C = & S TD?U ( & = O P
! ( 2% C = =
! ( 22 = ! ( = = C = = & ;0
TDU 2 ( 6 5? = %
= 1 1 2 = ! ! 1 1 =
D
% 2 2 1 1 M1
M2
m1
p1
m2
p2
p3
m3
p4
p5
p6
c2
c1
P1
c3
c4
P2
P3
c5
P4
C2
C1
5? ! )(
& 6 H = & H 1 = ;0 TDU = 6 # = * / =
=
2
= 2
& & W ( ;0 TDU
6 & & O P 2
C E & & 77 7
( * % 6 % % K %
&3
= ( & T7:UT5:U & % = = 6 3 O %& 2
P ( = = & = = :
( = 6 & = # = 1 = &
! (
= & & ( & = &
! 3 3 2
& C & 6 3 6
! = = & ! 3 3 H 1 = = = H H
( % 22
C = 6 2
H & 2 2 % & 777
( % ((% )) 2
= A T97U
6 5> * X a
b
c
d
+
e
*
−
/
5> ! )(
5B
> ( & H % ( ' = 6 H C & & % 2
/ T5B:U H 6
((% )) % C O P * > ( = H 6 H H 1 E ( % & 2
' / ? TD4U 1 T?4U & 777
13 @ ( 6 X % 3 1
1 ( = % 6 " "%
! 1 " (= 6 59 "
! 1 "% (= 6 5D "%
a=b
si (a>3) alors
a=a+1
sinon
a=a+2
...
a=b
a>3
a<=3
a=a+1
a=a+2
...
59 ! )(
*
8 T55U = 55
a=b
a=b
si (a>3) alors
a=a+1
sinon
a=a+2
...
a>3
a<=3
a=a+1
a=a+2
...
5D ! )(
3 *
@ * & & = % T5>U
& T94UT7?U = & 6 2
= * & & = T94U
( 6 & 2
= = = & % * K
2
2 777
2
( = 1 T:5U % & ( 1 22 & ( % < 2
* H ( 1 % ( 6 5: =
* 6 % 4 C = & = 1 = = &
= ( 6 55B = 2
# * 6 1 6 5: 57
État initial
État 1
État 2
État 3
5: ! )(
' 4 = 1 C & & = & 2
( = 1 % & = O = 6 P C &
H 6 & 6 O = 6 & 6 T94UP
( = 1 % % O P C % % & % T:7U
! = = % 2
% ( = & % ( = %
1 O
P = & & 54
État initial
1
État 1
1
1
1
2
2
1
2
1
1
1
2
1
1
1
1
1
2
2
1
État 3
1
1
2
1
1
2
1
1
1
1
1
1
55B ! )(
1
1
2
2
1
1
État 2
1
1
1
1
1
' 2
2
1
"
1
1
1
1
1
1
@ " @ " # = ( % ( 6 555 % 2 2 2 = O P A ( = ( % % & 1 =
;0 TDU ; TD7U 82
/ !
T5B7U
% S T94U
3
* & ( O P = ( 6 557 % & * = & = T94U
- T59U / T5?U T?5U % / ! T5B7U 5;
P2
e
e <= c
c
a
P1
c <= a
d <= b
b
d
P3
f
f <= d
Chronogrammes
a
0
5
b
1
2
activité de P1
c
4
d
6
5
1
2
activité de P2
activité de P3
e
3
f
7
5
1
555 ! * +
@ 3
2
" # ( = 6 ( 6 554 % 15 17 = 15 % 17 15 & 17 * 17 & ( = 15 17 % % & % !/2 T?;U & T5DU + T9DU C & % T:7U
777
( 1 = 2
5?
P2
e
e <= c
c
a
P1
c <= a
d <= b
b
d
P3
f
f <= d
Chronogrammes
horloge
a
0
b
5
1
0
c
5
1
d
0
e
2
5
1
f
557 ! * +
2
2
" A
* O K P
= & E C & C = 6 ! T>>U = & A ( =
E 1 & 6 T>:U
T;DU = ( & %& 2
= & 2
5>
P1
P2
Chronogrammes
communication
activité de P1
activité de P2
554 ! * +
& & = ( B 5 2
= E ( & %& O
P & J = & H & = C &
" # 77 7
!
( ! T>>U 2
& = 2
%
& & !BB
T:DU
& 2
% C
= E = ! !BB / ! T;?U & & & / ! T5B7U
77 7
;0
( ;0 TDU C = C = & % 59
2 2
% * % 2&
;0 & T5B4U
77 7
/
( / T?DU % C % & = ( 2
6 ( 2
& % = 6 6 @[email protected] 6 $ % C = & 2
% " = % & 6 = * 2 2
% *
2
& % % !$
( % & E 2 E = # = & % A A %
A ( % A & 77 7
'
( A % & T>BU 6 55;
A 6 % C H Y 6 & & & % A
quipe
gicielle
5D
* A E 6 Flot de conception classique
Codéveloppement
Spécification
Spécification
générale
générale
équipe
système
Partitionnement
logiciel/matériel
l’architecture
Spécification
Spécification
Architecture
logicielle
matérielle
Globale
Conception
logicielle
Informations
sur le matériel
équipe
système
Définition de
Conception
matérielle
Partitionnement
Synthèse
Allocations
équipe
matérielle
équipe
Prototype
Prototype
Spécification
Spécification
logiciel
matériel
logicielle
matérielle
équipe
logicielle
équipe
Conception
équipe
Intégration
architecture
Intégration
logicielle
Prototype
Prototype
final
logiciel
Architecture
Globale
raffinée/annotée
Conception
matérielle
matérielle
Prototype
Intégration
Prototype
équipe
Test
matérielle
équipe
Intégration
Test
Test
Compte rendu
final
équipe
Test
Compte rendu
55; !
77 7
' ( A % & & &
= % & Q & & % O P
& 6 & G & % & C & H 6 % ( H K A V H & 5:
6 Y H H A & ( & % A % & & ' A E = % & G = & * =
A & 777
!" ( # & T5;UT>4UT>DUT44UT;;U & 2
% O P & % * = & ( ( E & 6 % ( = % ( &
( E E *
& T4:UT??UT45UT?:UT55BU T79U
( 6 55; = A & A A H % & ( % = = 777
! ( T557UT>9UTD>UT:U & % H % % = & C = = H O 6 55?P 2
Q ( E ( = 2
6 = 7B
& 2
% M E H H S 3 Cosimulation avec description unique
Cosimulation multilangage
Description
Description
Description
Description
Description
Description
logicielle
matérielle
autre
logicielle
matérielle
autre
Simulateur
Simulateur
Simulateur
logiciel
matériel
autre
Traduction
Bus de cosimulation
Description
unique
Simulateur
55? !
( !% & ''
( & 6 A %
& % ( % & = ( & & 2
= = = & 2
( 6 7 A
" ' ( )
7 7 7
( A & % & 6 % ( O 547P " ( = (( ))
75
& % * C G M * A % = M = & 7 7 7
'
( % & 6 C = "(TD9U % 6 & O 5;54P ( A & % 6 & & & V & 6 O 5;54P
7 7 7
A
'
( A T555U 6 = & ! A T7;U ;5?5 % = & ( = < & 2
C =
& O P (
& O 22 &P ( 6 55> = = 1 2 ! 77
M1
M2
m1
m2
p2
p1
p3
c2
m3
p4
p7
c6
c1
p8
c7
c3
p5
P1
c5
p6
P2
p9
p10
c4
C1
55> ! ! (
: " / " ! F&
! - & < 2 Q
8 L '2 1
F8-#L"(
559 !
'*( '%
16
&3 1 6
&3 1 % Q L
) & )Z*( '% )Z*( '%
"( Niveau service
74
Niveau fonctionnel
message
F1
F3
message
message
message
message
service
requête
F4
service
requête
F3
requête
service
F2
service
requête
F1
message
Routeur de requêtes/services
F2
Niveau macro−architecture
processeur 1
Niveau micro−architecture
processeur 2
processeur 1
événement
F1
données
F4
processeur 2
événement
F2
F1
F3
données
F2
F3
système
d’exploitation
événement
système
d’exploitation
événement
bus adresses
données
données
bus données
bus adresses
bus données
événement
interface
interface
F4
ASIC
F4
ASIC
55D ! )(
" 7;
" '
( % = & H TD?U 2
2 2 (
6 559 H = 6 55D = # & % & ' 6 # 2
= & 6 # 2 6 $%# # 2 6 % = * = 6 55D = = &2
O M P < < < < # % M # = M = = < R < < < < R < # 2 & < < 5 < 7 < $%# @ 2 = = O% = P ( $%# = M O P
( A , R 2 , - & , ".
7 7 7
&3 '
( 6 55: 6 A '(' A
& L C 2 V %
& 6 % A = A = E ! ( 2 H % & ! ( = & O P H H ! ( 2 H & Description fonctionnelle
après partitionnement
logiciel/matériel
Synthèse de la
communication
Allocation mémoire
globale
Description
macro−architecture
Affectation mémoire
et protocoles
Optimisation des accès
Description
macro−architecture
annotée
(table d’allocations)
Génération d’interfaces
matérielles
Génération d’interfaces
logicielles
55: !
7?
7>
" )
A & 6 57B C 6 % ( E = & 2
= & & 7 77
' " A A / ! T5B7U % C &
[[ & & % L & % % ;0 TDU
H = = C
& & = ' &G ( 6 575 = 2
" " & ( 6 1 & & 79
SystemC annoté
Description
de l’architecture
Boîtes noires
Description
du comportement
Traduction
vers Colif
Niveau
fonctionnel
Architecture
Colif
fonctionnelle
Bibliothèque
Comportement
(ex. C++)
de modèles
mémoire
Raffinement :
synthèse de
communication
Allocation
mémoires
globales
Bibliothèque
de
communication
Architecture
Colif
macro−architecture
Comportement
(ex. C++)
Affectations
mémoire
Bibliothèque
de simulation
Optimisations
d’accès mémoire
Génération
de modèles
Niveau
macro−architecture
Table d’allocations
de simulation
Bibliothèque
de mémoire
Génération
d’architecture
mémoire
Architecture
Colif annotée
macro−architecture
avec mémoire
Bibliothèque
d’interfaces
Génération
d’interfaces
matérielles
Niveau
micro−architecture
Code
des interfaces
matérielles
Architecture
Colif
micro−architecture
Comportement
Optimisé
Génération
de systèmes
d’exploitation
(interfaces
logicielles)
Code
de systèmes
d’exploitation
Bibliothèque
de systèmes
d’exploitation
Description
multilangage
Comportement
Composants
Optimisé
existants
multiniveaux
simulable
Cosimulation
Compilation / Synthèse
Système
monopuce
57B !
& 7D
C
C
C
C
C
C
\ ]
\ & ]
\ ]
^ _% ^
^ 5 ^
^ 7 ^
LL−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
LL = LL
)#_Z#,,(O 5 P
`
_ _ _ \ ] Z7S
aS
)#_QF8O 7 P
`
)#_,*
aS
LL−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
LL 1 LL
_ O 3 ∗ T U P
`
LL C _ O P S
LL =
5 )5O ^)5^ P S
LL 5 )"5O ^)"5^ P S
7 )"7O ^)"7^ P S
LL O ∗)"5)15PO)5P S
O ∗)"7)15PO)5P S
LL Q F([email protected]
_ O B P S
aS
NCQ_''' S
575 ! )(
7:
& G A = A '% 8 2
0 = Q = * V K = ( 6 577 Module processeur
Mémoire
locale
Processeur
bus du processeur
Périphérique
local
Périphérique
local
577 ! ! 7 77
7 77
'
" ! A
= O'%P
A ( 2
((&G )) M = . b 7 77
3
2
& ( 6 & TDBU '%
" * 6 6 6 3 /3
( % O $%# P * A H % H * 2 O 5;7:P 2
= Y 2
= & & 4B
7 77%
> & & H T9:U = '% "
@ + 7 77
3 ( T9:U = @ + % K & & ( &
& & & & = %
O 5;7;P
7 77#
A
( H & = T99U = * (% & & & & & ( A 6 574 ( O P & ( = & & K % % & & 7 77D
( = =2
M % = 2
( 6 574 ( %
= 7 77$
" ( A H % & = & ( & & ( 6 57; 2
& O &P O EP & 2
= = )Z*( O EP '% TD>U = +& , 45
Application
API
Processeur
Noyau
Pilotes
bus adresse bus données contrôle
Pont vers le bus interne
Interface
matérielle
bus interne
Coprocesseurs de communication
574 ! /
& & 2
& & % & #1C O$ '& & % P +M = & H A H 1 & & = ( Simulation SystemC
Enveloppe A
Module A
VHDL
Niveau :
micro−architecture
57; ! )"
Enveloppe B
Module B
SystemC
Niveau :
fonctionnel
47
% 1 = ;0 TDU & =
1 T?4U
1 H = H
K & % & ( % = M H ( K '% 2 = C & & 7 77 8
F ( & 2
=
% % 1 6 % !(
* %
& 6 % O# P Q % ' E G = R ( & 22 %
( '(' & QC"# A & 2
A 22 6 C E O 2 P ( A 2
& ( & % = = ! " 44
$ %& + ," - ' ," ! " ," ," $
& ( % ( ( ( ." ( / ( / ," 0
%& $
#
$
#
$
$*
$*
$
%& #
- ," " 1
2 3 - ( ," $
$#
$
'
C % = M % %
& 6 = % = * % & 6 A % & #!
) * % = % H = M 4;
T9;U = T7UT5BDU O P C % = * 6 % = % = & 1 6 % = * +
* 6 % = & 6 & % = K
6 ) c 6 T5B>U
7 7 7
F 1 6 O P
& Q ( ( M O P 6 H O 2
P
/ % = & C & 6 C T5B>U
! C = M & ! C H 6 1 = M ! C O
= ,CN 6 P
( 6 75 OQM 5
QM 7 QM 4P M % = 4?
Tâche 1
Tâche 2
Tâche 3
Logiciel
Système d’exploitation
Processeur
Matériel
Périph. 1
75 ! (
7 7 7
F Périph. 2
Périph. 3
( T5B>U
1 = 0 ( ) ( & S = = C ( % = 2
M = 2
M M = & M ( & & M c M % = 6 77 6 % = M 7 7 7
) G
( % = Q % = * = % = 2
& % = "
( C = /2 T;DU H" T5B5U
% = 2
$ C & % = L 4>
Tâche 1
Système
d’exploitation
Tâche 2
+
Tâche 4
matériel
Tâche 3
Légende :
requête :
service :
77 ! (
'
& * * % = 2
& = 6 = 7 77
1
1
I3
1
I3
( = M = C c * 2
J & = E & =
= 2
O P
= H M H # & = M =
% = M % O% " P ( = M E = 2
* = 49
= M = 1 M = 1 = K ( 6 74 = M OP Q5 Q7 = (( )) Tâche 1
Tâche 2
étape 1
étape 1
étape 2
étape 2
étape 3
étape 3
étape 4
étape 4
Exécution multitâche souhaitée
étape 1
étape 1
étape 2
Tâche 1
et
Tâche 2
étape 2
Exécution multitâche sur un processeur
étape 3
étape 3
étape 4
étape 4
74 ! ' 0
= = ! = 2
= 2
& H S =
! = =
1
I3
A
( = M = M M % = M = T9;U
M %
= C = & &
= M # # $ % & #
4D
2 ( M = 2
E * M = M % & & 6 & &
% C E & M Q % M % M = 1
I3
A
( = M = M % = M = & % = 2
2
M # = M M c & & = M = M & 6 & % 6 & & 6 M % = E O P F = =
A & % C & & & % & & 7 77
1
( % = = % = ( % ((2))
1
% & =
% = M % M 2
= & =
( % 2
H & 2 , 7575 M 1 ' ! 4:
& H M C 1
6 7 77
1
* % & 2 % * H M H 6 &
T4?U
& 1 % ! = & ! ! = M 8 = & 2
( 2 & & 2
& E T554U 5 ( % = & 2 C & % C = % (( =)) C = & = M 6 (( )) M * % ((2 ))
7 ( % = & 2 A & & = % = : " A ( M = 2
M & M 1 & = 2
% % = 5 = + M = 7 % = +2
% = = * & = & = &(1# T57U
# % = ;B
= = M K ( % F:J
T75U 6 2 , = M * 2 M C & & = M * = % ! ((& )) M = ! (( )) M M 8 ! % = ,CN T75U 2
G ! & & M & M 7 77
1
1 1 " M ( M X S & % ( M = & & % = " H M & M = 6 M = H M H S ( 6 7; & = M % O & 6P = OP V & A & & O&P V & M H
* M O P (( )) # M & & & H M (( ! ! (( ! ! ) $ * ;5
Exemple de code non translatable (a)
Exemple de code translatable (b)
...
ADD R1,R2,R1
ST R1,0x456A
...
JMP 0x0AB0
...
...
ADD R1,R2,R1
ST R1,VAR
...
JMP ETIQUETTE
...
Instructions non translatables
(adresses explicites)
Instructions translatables
(adresses implicites)
Deux tâche exécutant ce code
dans un espace mémoire unique
Deux tâche exécutant ce code
dans un espace mémoire unique
0xE800
0xE800
Données de la deuxième tâche
mal positionnées
Données de la deuxième tâche
bien positionnées
devrait accéder ici
accède ici
0xC000
0xC000
Code de la deuxième tâche
mal positionné
ST R1,0x456A
Code de la deuxième tâche
bien positionné
devrait brancher ici
JMP 0x0AB0
ST R1,VAR
branche ici
JMP ETIQUETTE
0xA000
0x5800
0x5800
Données de la première tâche
bien positionnées
Données de la première tâche
bien positionnées
accède ici
accède ici
0x3000
Code de la première tâche
bien positionné
ST R1,0x456A
JMP 0x0AB0
0x3000
Code de la première tâche
bien positionné
branche ici
0xA000
0x1000
0x0000
ST R1,VAR
branche ici
JMP ETIQUETTE
0x1000
0x0000
7; ! % &
G & *
= X T5B?U 1 % **! -* *& ! . ( 6 7? M O P % 1 , H M 1 = M 3 2
* & % = c 2
;7
Espace mémoire virtuel de la tâche
0xFFFFFFFF
Mémoire physique
0x00FFFFFF
0x00FF45A0
0x000005A0
0x00000000
0x00000000
Tâche accédant
à l’adresse virtuelle
MMU
0x00FF45A0
7? ! ' **!
M H ( 6 7> = =
M ' X E % Mémoire virtuelle
de la tâche 1
Mémoire physique
Mémoire virtuelle
de la tâche 2
Zone partagée
Zone partagée
Zone partagée
7> ! ! & + , &
-./
( 0
7 77%
" ;4
% = = M = =
! M ! ! & ( = M % M % = M = # * * 6 % = 2
, % = & *F' . d 4= " F' ,CN . d ,Q <,N
7 77
+/K 8DL
! +/
% = 1 = C (( )) % C
* & " +/
( % *F' = % = 2
* 1 " H & = ( ! L O =P ( H = ! 6 ! L= L ! & & 1 =
7 77
M N 7KDDL
! M N 7
. d 4= % = M 2 C &
;;
M M = 8 . d 4= % = "'2
*F' & % " M N 7
% & *F' " % O = & 6 & P
7 77
F:JK L
! F:J
C = & = % ,CN H = % & = C ! % M ! % = = 2
C ! C ! ( M H
" F:J
( % ,CN & = H M O %'# 1 P C H & = & = M C 2
= & C & 2 C
= 6 % T:BU
7 77
M N :4K$%L
. d ,Q % ,CN % 2 ( & ,CN
7 77%
5:JKD$L
$ % = 2
<,N % = % & C 2
% ,CN 2 & O = (( )) (( ))P
;?
H % 77
"
* $ = % = 2
= % & * & H % 2
O 22 P T5B9UT?7U C = E 3 ( % = % % ,CN % 2
E & M 1 % & % %
= & ' E % E H
= % = O P 3 O M H P E % & *
4(+: T5B;U * #!# * % = * % & S % = % = %
& * 2 % & = 2 & 6 % = % & & ( ,
* % & , & %
= = 6 = % &2
;>
77 7
< " ( % = & & % = = C = 2
M & 6 %
& = M M = * % & & 777
77 7
< * % & 6 % 2
3 % & % 2
# 6 79 6 = % = = ( % = & & 2
2 H =
% O 757;P % 2%2 6 7D % = & 6 & = O
= #, T7BU Q1LC1 T:9UP * 6=
& 77 7
< Q % = ,CN % 2
& T4>U
! 1 % & M ( % & M ! 1 % = & & M ( % 2 O 7577P
Communication point à point
Communication multi−point
Module 1
Module 2
Module 1
Module 2
(processeur, matériel, ...)
(processeur, matériel, ...)
(processeur, matériel, ...)
(processeur, matériel, ...)
Module 3
Module 4
Module 3
Module 4
(processeur, matériel, ...)
(processeur, matériel, ...)
(processeur, matériel, ...)
(processeur, matériel, ...)
79 ! # 77 7
2 ;9
+
3 # % & 6 ( &
6 % & = 2
77 7%
! A , % = & 2
% = C & 6 & % = & H & 2
6 % % ( ,
* 6 = %
& T9BU , O P = 777
! A
* = 6 = % & T57BU 2
T47U ( A = = K ;D
Communication asynchrone (par poingée de main)
Module 1
Module 2
(processeur, matériel, ...)
(processeur, matériel, ...)
Module 1 écrit
Module 2 lit
Module 1
requète
donnée
Module 2
acquittement
Module 1 doit attendre
Communication par FIFO (et poingée de main)
Module 1
Module 2
(processeur, matériel, ...)
(processeur, matériel, ...)
Module 1 écrit
Module 2 lit
Module 1
requète
donnée
FIFO
acquitement
Module 2
requète
acquitement
FIFO
donnée
Module 1 peut effectuer une autre tâche
7D ! 2 2%2
( + C & A R 2
! ( 0 = # & = ! ( = H 2
* O T47UT9?UP
! ( & F % T>?U 0 (* $ * # 1 " $ ! 2 3% " ! " ! ;:
G C % 777
! A
( 2 1 H % = = % = & ! ( % = = % ! ( % = & % 6 S = % #-'
! 6 , % V % & 2 % % ((2))
O 7577P
777
! , 7775 % & 2
& % = = & C & = % = &
% & 0 %
= 777
( % & & & & % = & *
= % 777%
3
( & H
= K
?B
# % = & 2
& H = & 2 2
= & & %2
= & % = & S E & % 6 M ( ( ,
$ E = % = 2
& = % = = * % = & & M 777
*
% & C 777
" , % & % = % & & & 8F" % # % = =
O P (( &))
& = ( & 2
& & " - ( C = & % & , = % = 77 7
( % 5:J TD:U /+/ T?>U M N !-TD;U
;M?
T55>U :
2 F/
T;U
?5
% = & 2
2 C 6 C E 6 77 7
6 % = & = 2 % = = C = ( = 2 O ! T:BUP T77U 2
% & & % = & ,
C & 6 $ . ( . * Q % = % & * %
% = % & 77%7
&"
2 ( % = 2 = 2
( E = & % = H & %
= F ( % = = 6 ! ( 2
= & % = & 7575
! * & = 2
% & C % = 4 ?7
! * % = O = ((Q # '))P 2
! * K O P
77%7
" " O
( % = 6 = = H = % E = & ( % = = % & V ( % = & H =2 = & & % 6 &
% = = = % % = =
% & = E
( % = % M T:;U & M , % & 2 & % = = = & & %
= 77%7
/ "
, %
= & C = % =2
, = % F ( 6 & ?4
C E M % % & =
* A M M & & = T95UT?BUT79UT49U # 2
% % M * % = M C & & 6 & 6& = ( 6 %
= 1 = & 2
& = & E 2
& = %
= & % 2
M H % M 6 % & M M 3 =
H & (( )) K 2
& ( 6 7: & M & M = & % A T;:U 1 & #!$ ) & 1 % & C A % =2
& 2
% = O 5 ,(( ! # ?;
Programme avec attente active
Programme sans attente active
...
... Attente active de la valeur */
/*
while (*etat_registre!=Pret);
/* Le registre peut être lu */
val=*valeur_registre;
...
...
/* Blocage tant que le registre
ne peut pas être lu */
sys_wait(Register_Pret);
/* Le registre peut etre lu */
val=*valeur_registre;
...
Diagrammes d’exécutions
Le programme veut accéder au registre
Le programme veut accéder au registre
Le registre est prêt => interruption
Le programme accède au registre
Le programme accède au registre
7: ! %"
"
77?4P = & ( & H A = * % & 2
6 &
% = ! + * / * A % & T554U , 6 77 7
2
'
* % = 2
22 & 6 ( 6 % = 2
&
F % & A 6 75B 6 % = & = & 6 & ??
Spécifications
Manuel utilisateur
de l’application
de l’architecture
Manuel utilisateur
Code
du SE
du SE
Programmation
manuelle
Code
de l’application
Compilation
Édition de liens
Code
exécutable final
75B !
77 7
3 " ' & A 6 % & 2
&& 2 ( 6 755 % & G & % & =
Processeur central
adresses, données et contrôle du processeur
ASIC
755 ! ! (
processeur
esclave
autre
périphérique
( = %
= & & % = * A & ?>
77 7
" '
A % & 2
& &
= & Q & % = E C E 2
% E % & & H = C 6 2
H O 22 & = & 2
P 6 % 6 * = % & = ( = 2
& 2
& % & = % & 2
= G ( A = E &
0 1 + ( * * A A E 2
C A= & %
= * A = & % = 6 %
777
( 6 O P c & , 3 ( V % = & & * =
5 ' % %
& ;M? T55>U ; T;5U ! -J-!F4;-
?9
T>7U !3 +/ T5BBU 5:J TD:U -9(J T;4U = H & %
7 ' % 6 6 % +/ T9>U ! T:BU :6
2 F/ T;U (4J! T;BU 1 !P+/6 TD5U V %
& O & % P
( = A= & E % = & 6
1 % = 3' O3 '1& P C & O "
P % % / " # % & A & = 5 & & O &P & % 6 ;M? T55>U 5:J TD:U !3 +/
T5BBU ; T;5U ! -J-!F4;- T>7U -9(J T;4U
7 A +/ T9>U : 2 F/ T;U (4J! T;BU
6 6 % E & O = 6 ;7>P , & % = = T;:U O = &G = P c * & 6 & & & ! % = & 6 6 H & O& 2
T:>UP 6 6 1
% % +/ T9>U ;M? T55>U ! T:BU (4J! T;BU !
-J-!F4;- T>7U -9(J T;4U
6 % 6 6 & 777
( % = & 6 & 2
% = % = % ?D
& = % = 4 T559U % ;M? T55>U . C ! = % = % = ! 6 % = 2
6 ! = & %
& H H = 6 O1 P ( 2 K& ! & & = & & = &
! = O &4 P
777
" '
( % = %2
& = % = %
= % A E & % & =
4 @ ' % = 6 & ( % 1 = & = % 6 2
6 E ( H 2 = % = %
= % Q & 6 O 2
& P M & C = & A & % = &3 A & G E O 7454P C = 2
M 1
?:
( % 2
c 6 6 = ( & ;5>7 & & = %2
= 6
22 & & 2
C & O A P
1 = &
H = H
& & % 2
H = 6 % = = % = E = 8 & E % = A % & % = & % = & A
777
2
! 6
3
T7>U = M 22 = % = M (& & = & M ( & M & = ( 3
* 1 6 H = 5 6 1 (
& = 1 7 = 1 & &
= = >B
( % H = 5 7 2
" " 3
= % = & % = % = & 777
2
/ 3
T4BU %
= (& & %2
% & & O& = '%P
( 3
( % % = H ( % = & & = E R
% = 6 " " 3
% = &2
& & = & & = % = (( )) C & %
= & & % = & 777
2
/ 3
T?U % = &
>5
(& & % = & % ( 3
2 % = & & = % = &
( 6 6
% = & ( 6 & 6 % = 6 " " 3
c ( H 2 % = & = O EP H = % 777
2
* A Q" 47 * R
3
T;:U = 2
& 2 ( A 2
( % = = % (& & A M & % ( 3
( A V & ( c T:;U
( = % H H ( % = 22 2
% H = ; T4U
= & & ' = & 6 = 6 2
& & O 7475P
6 7
8
>7
" " 3
( O ;79P H 2
% A O ;7?P * A % % &
1 = A #!%
( % = * %2
= C & 1 = ( % = % & C 6 = 2
( & % H * 2
% = 3 =
( % = % & 3 & C = = & % A & M 2
6 % = 2
8 = % K
& A % = 2
M & % = =2 & F % & 6 & & % = & >4
! #
$ '
'#
'
( 2 ." ( ( % / ( ( , (
4 ," 2 ( ( % ( ( ( ( ( ( 26 ( ( & , ( ( ," ( ( #
#
##
##
##
#
#5
$
#
* & = = H O P ( & & ( & % & & 6 & ( = H & ( &
% & 6 $!
) ( H 6 & % >;
O P & O P 0 ( T9U Q = ( A OP ! % = 6 = 6 = 1
! % %= & X 2
K
! % & & & (( )) C %
! & (( )) &
( ( & 8 ! Q % % & &
! ( = 2
6 & ! & A 2
( & - (( % . (( *,
(
A % 6 45 C
A (
& ( & &
( 6 47 = 6 & & % 2
C & & O A P O P 6 C & >?
Programme C
Analyse
lexicale
Liste de
tokens
Analyse
syntaxique
Arbre de
compilation
Analyse
sémantique
Arbre
décoré
Génération
de code
Programme assembleur
45 !
& && #
& ( 2
O P & & & 6 % & O =P
$!# * A & % = 2
* & +
adresse : 0x5667
type : int
47 ! )(
idf
cst
valeur : 3
type : int
>>
22 6 %2
= A * 6 & & = A & 2 * ( T:4U = & B 5 = & 22 (( )) = T5BU
F = & = & O = P = O
= "(P
C = & = & = (( )) T55:U * = & = & * = = (= $ = $ T5B5U * = & ( ( * = & & & 0 ( ( ( & = & O P T;9U
% ( ( ( & A & 6 2
C & A 6 c & 6 C A & & O % P & * &
A 6 22 & & $!$ ( ( 77 7
>9
A & 6 A & = % ( 6 % 6 2
2
= 6 ( & = & # = & C = E %2
& =
&
77 7
( J & % % & 77 7
( S A 6
( & & O P 6 ( & % 6 O 4455P ( = 6 ( & & % ( % & & & ( &
& & =
6 1 & & 6 6 ' E & (( >D
& & ' 6 A= &
( ( , & , 2
& = & 6 =
( & & K % , & %
( 6 44 A & Application
logicielle
Architecture
Analyse
des entrées
requis
paramètres
Choix des
code de
l’application
logicielle
éléments logiciels
éléments
logiciels
suplémentaires
Mise en place
des paramètres
Génération
du code ciblé
code ciblé de
l’application
logicielle
Compilation
Édition
de liens
code exécutable
de l’application
44 !
& & >:
9B
777
&
) 3 & , % H & %
A ( & & 1 2 % = * 6 ! % % ! 22 O 2
P
! C O & P O 2
P 6 O = P A = & A ! 6 ! & 6 ! & 6 ! C & & &
777
!3 @ = * &
6 % O 4475P
( ( & % = T4BU * = = %
= ( % & % T;9U % = & O 7475P * = = % & A C * A & & & & & ( = = & & & 95
' & & 777
1
* = & 1 6 O 4475P 2
O% = P ( 1 = & O 745P * 2
= % % = & = O 2
P 1 & O 7475P
777
! ( 6 # A A $!% " E & %
& 6 1 E & A & 2
6 % = A &
" 0 3 ( ( , E & E2
= H 7 7 7
" " 3 C = & = & = % & 2
E H & = % A 2
& & 1 E & ! % % 2
T55DU 1 & % = & J 2
% D & 97
5> & 47 & % = % % & % T>>U " & % = % & = =
F % ! & = & & O
= = = P &
2& & 2& C % = &
! % & 2
6 C 2
& &
=
K & = % & T55:U * = ! 6 = O P
H " " ' & H 2
C % H & & ( H = 6 O*$P Q & & & & H ' & H 2
H H & H 94
( & & = & & = , 1 & 1 6 6 & & & * & &
! " 3 & & & J & 6 & E & O P * = H H T>;UT5;U
* G & & H & # & & 6 & & 7 7 7
" ( & S = = !
!
C & G & = C G
! (( )) & % ! 22 2
L O) , P OZ P 22 L % ! & 2
6 =
! O = = P ! O 8C' C' P =
& &
1 ! G , % 7 # 46+ 9+2:8
, ! 3% % ; $ " ! 9;
! O = / T?DUP ! = & O = *"#P
!
!
3 !
!
7 7 7
: G = & G ! ! !BB
T>>UT:DU & T>U / T?DU
T59U ! & ! & & M 2
& ( & G
! O;0 TDU / ! T5B7U P
! ! H % T54U
- & & ' ! & OP & ! *"# & & K ! & & 2
& & & = %
= C & G =
% = S
& & O & & & & = 2
P Q & E * 2
& T;9U
" & 9?
* ( ( * & 2
& ( & & = &
1 % &
% % = H %2
A & 6 &
C % A & S = 2
6 & C % = = & % & 3 @
> , & = &
= C 6 O = P ' = H O = Q . T559UP =
O P * = E & & = * & & A =
!
' 1 A & % 22 * & % ! A = Y V & 2
6 O = 6 P & %
%= ! & & H = ! = E & 9>
C = % ! = = % & % 2
= & A & & ! % T;:U
& % = ! , & 2
& A H = # % K O & ,12 P C % & C & A & 6 & & G " * ( ( 7 77
/ ) ( % = A & & & A & & = % = & % = & & &
% = 7 77
& , 7555 % = & 6 & ( % = 2
6 & C = % = & , % = % = #1C #1C ( #1C % % 99
% %
= % E 6 & % = *
& % = & , ;79? % &
$!(
* & & & A 1 & E = & % = 6 * 2
A &
( % = & ( 3% 9D
9:
"
# A & A H %
= & & & % = 2
& & 6 ( A = %!
& ( & & % = 6 2
6 & & % = " 4( ( ( ,
* ( % = % = 6 ;5
! ( 6 ! A T7;U 6 2
& ;5?5
! ( & & % = 2
& % = 6 & & =
O ;54P 6 O ;5>7P
, * ! DB ! ( 2
& & ( A= & A H & & Spécification Colif
Processeur 1
T1
Proc. 2
T2
T3
Bibliothèque de S.E.
S1
E1
S2
S3
E2
S4
E3
Flot de génération
de système
d’exploitation
Macro 1 pour E1
Macro 1 pour E2
Code C
Code Assembleur
Code du système
d’exploitation
généré
;5 !
& " & ( * A 6 * V & & 2 H " % (( % ( & 1 6 & & % = 6 ! A ;5?5 ( 6 ;7
7 77
1 " 1 ( ! A = *
= & =
1 K 6 = 2
= ( ! % D5
XML
middle
Lidel
Colif
autre
;7 !
&& 5*
6 * 6
# % = %= 1 = ! #1C ! #1C 6 * ! 7 77
F J1
1 & J1 T55?U .4 G M %
& & & & ( & J1 & 22 % & = &2
1 & = & O 6 ;;P ( 6 ;4 = J1 J1
% 6 ( = % O 6 & P & OT 777U777TP UP 1 1 & J1 6 & & 6 6 J1
& = & 6= 2
M % & % J1 J1 ! A
D7 \e f^5B^ f^[email protected]−D^e]
\+!492- '/'Q" ^ ^]
\ f^ ^ f^5B^]
\ A f^1#8#"Q8^ f^^]
\ A f^^]
\ A &f^^L]
\L A ]
\ A f^ ^]
\ A &f^^L]
\" f^ ^ f^ ^L]
\L A ]
\L ]
;4 ! )( (
\& 5]
\& 7]
\L& 5]
\L& 7]
;; ! )(
7 77
" (
1 ( 1 J1 6 = 1 2 ! A ( 6 ;7 /
1 = ! % 6 ! 6 & ( %= & 2
= % 6 6 ( 6 % O %
6 P % ( % % 1 % & = %
( % = 6 %
= = 6 % ( 6 O 6 P % 1 6 & % = 6 1 D4
J1 1 ( 1 % ! % & & G ! * %
! % & % S & 1 & ! ! = ( % & = ! & 6 & = & % 1 (% = H % = %= 6 J1 J1 * % & %= 1 % & 1 & " * ( & & & & % = 6 * O P
7 77
! 3
& H % =2
" % = % = & " 2
% = %
= & " 6
6 % = % = & # $ ! * D; & O2
P & = % = % " " ( " " " " " Q " X " X X
" " X
" X
" 6 ;?
Description dans la bibliothèque
l’élément e0 fournit s0
requiert s1
Graphe de dépendances correspondant
s0
l’élément e1 fournit s1,s2
requiert s3
e0
e2
s1
s2
l’élément e2 fournit s4
requiert s2
l’élément e3 fournit s3
requiert s4, s5
s4
l’élément e4 fournit s5
e1
e3
s3
s5
e4
;? !
" (% ;7>
( ( & 6 & 1 & & = & ' & ' D?
= 6 ;> & #8"9
Tout
ARM
68xxx
x86
ARM6 ARM7 ARM8
;> ! $ ( " 8086
80286 80386
" $
*7
C & 6 " " %2
= ( 6 ;9 = V =
" 8 8 8 O P e0
s0
s1
e1
;9 ! )(
7 77
" " = 3
, & & & % = ! 6
! " ! " ! & " " % = C G
6 ;5;5
D> & ! ! &
! = ! 6 & = O ;545 P
6
6
! 2
! 6 2 O G P
! 6 2 O G P
! 6 & " ! A % O% P
%& = 2
1 = /A ( C ' 2
= & * 2
Q =
= O P 2 * & & G ( 2
= & & 6 ;5;7
A A % =2
' ! A G ! % A % % O %P O P
! " = % = C ! G ! D9
! ! " ! 6 O ;545P
C ! G ! ! 6 6
' ! G ! ! ! * H ' ! G ! ! * H " " & % & & 8F" ' ! " G ! ! ! H 7 77
F = 3
( " & % = 6 ( ;7> % = H ( " A & % = ( ;79
%
= & H DD ( " & 6 % = &
"" %
*( ( 6 & & % = & & & & O
" P %
= , = H & & 7 7 7
0 3
" ( " G %
= , " & X " " 6 = Y & =
1 & A= & = & & 6 " 1 = 6 = " " O 22 P " O 22 & P
" ((L))
6 ,CN
( H " ! &2 " #1C % = &
! + " = & O & O P 2+/J T;>UP
! /3 V " = % &
O P
! +3 " 2
! , " %
% = 2 ! , PE " % = 2
" , PE O P
! , P! " = = M ( " 6 &
! , P/3 " M O = M P
!
D:
" M 2 g & M ! " = O @[email protected]
! " = O = %P
! /3 V " = % % = ! " & 2 " P+ =
& 2
(
6 ;D , P4 ?
T1
T2
T3
Application logicielle
API
IO
Synchronization
Other
Kernel
Data
Interrupt Synchronization
Système d’exploitation
Boot Cxt Task Schedule
Driver
IO
...
11111111111111111111111111111111111
00000000000000000000000000000000000
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
00000000000000000000000000000000000
11111111111111111111111111111111111
;D ! ' " 7 7 7
0 3
Architecture matérielle
& ( G % = C & " * G ! A O ;5?5P
((L)) 6 ,CN
:B 7 7 7
!3 ( & %
= & % = O E P ( E & O& = P
% = =
= M 6 S & ( % = & 2
6 E * = & 7 7 7
- 3
* = 6 & & % = % = ?5 ( & & ?
/ " 3
(& & & 6 ;:
:5
API
IO
Over
Synchronization
Pipe
Semaphore
Put
Put
P
Get
Get
V
Over
Pipe
Semaphore
Kernel
High
Cxt
Task
Boot
Synchronization
Schedule
Interrupt
Low
Cxt
Task
Boot
Schedule
HighInterrupt
LowInterrupt
Driver
IO
Put
Access
Get
State
FifoHard
;: ! )(
FifoSoft
Register
Access
( BlockUnblock
:7 * 6 %& " ( " & " &2 = &2P2 P2
" 2 " 2 A " " A " 1 ! ( A O = %& P
! ( A & 2
A 2 2 1 = A " 2 2 " &2P2 P2
&2P2 P* ( & & ?77
! 3
( " &2 & 22 & % & A % % % % = & ( , % % = 4 ? /3 6
! O = M P C & & E 2
% = C ( 6 & &
( % 2
% = , % & # 0 3 6
N ( " /3 V 6
( " " 1 < A/A < A0 ( O P
& L &
A ( ! !BB & ( & & &(1# D888 F:J ( 2
F:J M = ,CN ?45?
1 6 6
:4
C & [[ & L
"$ * )
7 7%7
(
! A
T7;U L 1 & = & ! A
! A
O
P O P O P & & % & & = O P O P ( % 6 & ( O 3" P = ( ( 6 ;5B = ( ( = = ! A
( ' % ' 2% ( ' =
= = = = % TD>U
( = ( ! A
( & , = = & C 6 = = 6 O P
6 & & O P H & # * ! :; b6
b3
b1
b4
b5
b2
b3
b1
;5B ! )(
# * 6
6 ' & 6
7 7%7
! A * 2
% = & & ( 6 # = % 6
I3 ( & I3 O P & M A ( % % = & C & :?
" & O 22 &2 ;5;5P C G & % = 6 G O % P & % = ( @ 3 ( = 2
% = , & & &
! ! M ! C 6 = & 22
& & 1 6 2& 2& 6 5 ( M O & M P
7 ( ( K = 2
K 4 ( 6 ( 6 ;7?
% = ( 6 ;55 = processeur
Informations sur les objets (sans les allocations) :
T1
P1
Tâche T1 :
Port P1 : Fifo Put/Get
Port P2 : Fifo Get
T2
P2
P3
P4
N2
N1
N3
P5
;55 ! !
P6
( Tâche T2 :
Port P3 : Fifo Put
Port P4 : Bloc Get/Put
Port du processeur :
Port P5 : Accès registre
Port P6 : Accès DMA
& ( . ! " # 3% # "" %! # "8
$
:> "5 * 7 77
O ( % = = & 6 & 6 & H ( % = E & &
1 A & 6 6 C 6 6 K
% = ( & = & & 6 1 % = & & H
H & A= & H =2
, ! * =
6 & =2
& 7 77
3
( 2
= & [[ & T>U
C 3 & & C * & = [[ ( T4U & ( "
& & 7 77
2 ( "
, R & 8 1 c =
( 8 6 = = = 6 = =
+ ,(( <
:9
( = % % G O H P % & C & 6 & 6 &
& C & & A ( K & & % (( )) (( )) (( )) % (( )) (())
8 & 6 = 2
= & = 2
%!# , %
& % & , 2
O % P
c O A P E * A % = * A ( A @ % & & % = " ( )
* ( . ( ,
* A & % = 2
R 77 7
2 ( A & % = 6 % = & & & % = O ( ;54P
(& % = 6 = 6 ( = = = #1C M 77 7
2 ' " 6
( A 6 ;57 C & & % =2
0 * :D C % = % = &
2 "" %! ) Description de l’architecture
annotée (Colif)
68000
Code de l’application
(tâches)
#include "t1.h"
void t1::t1_beh()
{
for(;;)
{
P4.WakeUp();
...
ARM7
T1
T2
T3
Bibliothèque de
système d’exploitation (Lidel)
API
Synchronization
Communication
P, V, ...
Get, Put, ...
Services
requis
Sem.
Interrupt
...
Driver
Regiser
Fifo
...
demandes
d’alloc.
Analyse des entrées
Extraction/répartition
des paramètres/services
adresses
Allocation
des paramètres
Processeur cible
Paramètres
Noms des fichiers
sources des tâches
Sélection
du code
du S.E.
Noms des fichiers
sources du S.E.
Implémentations
Paramètres
Génération
du code du S.E.
Code du S.E. adapté
à l’application
et à l’architecture
void schedule(void)
{
int old_tid=cur_tid;
cur_tid=new_tid;
cxt_switch(tasks[old...
Génération
de fichiers
de compilation
API du S.E.
(classes C++)
class T1
{
private :
Port_singal<0> P1;
...
Fichiers
de compilation
(Makefile)
VM2.elf : T1/T1.o ...
armlink −I‘pwd‘ ...
API/Pipe/pipe1.o : ...
armcc −I‘pwd‘ ...
Compilation
Édition de liens
Code binaire final
de l’application et du S.E.
;57 !
::
& " & ( 5BB ( A 5 % = & O P & = 7 =
4 % = & & % = 6 ; % = 6 %
= H = ? 6 1 T5U
" 0 )
* A =
& & % = 777
2
3 6 & % ( M 6 % * % ;5?5 * A '(' % O 5;75P
2 A ( %
! & & M 2
= M M 2
! #1C #1C % M M ! % O>DBBB #8"9 P 2
O ;777P ! = ! M % = 2
* % 6= O ;777P H &
O 5;7?P
5B5
777
( ' % = H
= %
= = & ' & 6 A & & H % = ( A 6 O P 1 = M & 6 0
( 6 % & O% P = & & ( 6 ;54 = = 6 6 c >??4> B = & 7?> B
;54 ! )(
!""#"
$ %""
+ # * & O M P Q ! ' & E O P
! ' ( 6 O P
! ' O P
6 ;5; &(-//-.(-*/4(- O 22 &P 1 = &(-//-.4&12+:
4 ,(( " 0
5B7 7?> 1-1
2
4.4&12+: 4./2&! 1 &(-//-./01 2
47 1-1
B=;?BB
( ;7: & $' () ' *+,,-+.,+ / 0"
& &' ' & ) ' *+,,-1 %"!0
-1
0,1
& &' ' & () ' *+,,-,2 3" #%0
;5; ! )(
777
( M Y M ( = 2
= M 6 M M = * M 6 ;5?
T1
T2
T3
T4
T5
T6
Encapsulation de communication
S.E. 1
S.E. 2
S.E. 3
Proceseur 1
Proceseur 2
Proceseur 3
;5? ! $ 0
& A & '%
O 5;7 P 777
3
( & & ;54
5B4
" 0 )
( A % = 6 [[ &
( A %
= A & & '% [[ & 6 & & ( A 6 6 2
( 6 *1 & 0 T5U
6 A H ! H &
! &
! % = O ;7?P
"" -6
)
( G A 6 ;5>
( = % 6 2
% = = = M M ( ( = 2
& ( = % V ( 6 6 % M 8 & = H
"$ * ( % A & & (
5B; Analyseur
de ressources
d’architecture
T1
T2
Noyau
Allocateur
T1
Spécification
d’entrée
T2
T2
API
T1
Unités de
génération
(paramètres)
Sélectionneur
de code
Liste d’éléments
Générateur
;5> !
de code
Générateur
de fichiers de
compilation
Code du SE généré
Makefile
8 & % 2
( & & & 8 ! 6 % A &
! ( 6 V %2
, ;7?5 77%7
5B?
, 4475 % = & %
= 2
( 6 M & C % = H % = & ( 6 & & % = C 6 & 6 6 % = / = 1 % = = ( M M ( #1C
% = = ( %
= ( 22 2
22 O =P
( = =
2
' O P
! ! 6 O ;7:P
! % = = 6 ( %
= O ;79P
8 ! ( /A % ! ( 2
6 A & & 6 5 ,(( 5B> ( M O P
M (
O%
P C M (
( 6 ;59 6 6 ( QR
= M 4 4 ( M 4 4 2 2 M =
! 1 =
@[email protected] M @[email protected] ( QR M 4 4 4
% ! ( QR M O2
2P ' ! M ' M ' = ' ! 4 O #1C P ' ! @[email protected] 4 ( QR M O 2P ! = M ' O2
P QR * & M ( 6 ;5D & H M = = H O P 1 & W
6 6 2
* = 6 M = * 6 H & H & h & = ( C = & 6 ;5D V M = & O 6 ;5:P
77%7
1 & 6 O ;7> ;79P C = % 5 %
% = 5B9
P2 :
P1 :
services d’API
P1 :
services d’API
P2 :
services d’API
services d’API
T1
T1
T2
T2
T3
P3 :
services d’API
C1 :
C1 :
média
média
allocations
allocations
(a)
(b)
T1
T1
P1 :
T2
P3 :
P1 :
services d’API
services d’API
C1 :
services d’API
C1 :
(média)
(média)
(allocations)
(allocations)
P2 :
P2 :
média
média
allocations
allocations
(c)
;59 !
(d)
= M C % % = % % = 2
7 % = ( = = 4 & & %
= O #1C P & & 6 2
C % %
( 6 ;7B = 6 5BD T1
T1
P1 :
P1, P1’ :
services d’API
services d’API
C1 :
C1, C1’ :
(média)
(média)
(allocations)
(allocations)
P2 :
P3 :
P2 :
média
média
média
allocations
allocations
allocations
allocations
T1
T2
T1
P1 :
P3 :
services d’API
T2
P1, P1’ :
services d’API
C1 :
P3, P3’ :
services d’API
services d’API
C1, C1’ :
(média)
(média)
(allocations)
(allocations)
P2 :
P3 :
P3 :
P2 :
média
média
média
média
allocations
allocations
allocations
allocations
;5D !
77%7
P3 :
média
A 9
6
( & #1C M E & % 77%7
A ( % = & G % = 2
& % 77%7%
A 3 6
( 6 & 6 % & ( % ;7> ( % G % 5B:
T1
T1
P1 :
services d’API
P1 :
services d’API
C1 :
(média)
C1 :
(allocations)
(média)
(allocations)
P2 :
P3 :
P0 :
P2 :
P3 :
média
média
média
média
média
allocations
allocations
allocations
allocations
allocations
;5: ! ! + 0
Spécification
Unités de génération correspondantes
P3
T1
P1
P2
T2
P1
T1
P2
T2
P4
P3
Communications
Noyau
P4
Paramètres généraux
;7B ! & "5 * ( #1C =
% 6 = = 8 6 777
2 #1C 6 . ! =1 # ! 55B = & 3
( & X %
% C = = ( #1C ( 6 ;75 6 = > ! ! ? > 3 555
' ' 4 5 , 6 & 5 1& & '
5 ' 5 +
& 6
6 & & ' - -6 &, 6 &7 + 8 , '9 8 ' & '
& '
) ,
8 '9 , &
8 & ,
8 '
, ' 8 & ' - - 7+:0
8 6' 8 '( '
,
8 '&
'
, 6' 8 '9 , 6' 8 ,
8 &4'9 6 & & 6 ; + ' 8 8 6 ' '9
8 ' & '
<
8 '9 , '
+
8 ' & '
,
1& & '
& ' - - 7 + 8 '9 8 ' & '
8 '9 &
8 &' $ '6& '&4 & 8 ' & '
<
8 & 8 6 & , 9 ' ' 8 ,& ' - -6 &,7+:0
8 , 6' 8 '9 6' 8 8 &4'9 6 & & 6
8 8 6 ' '9
8 ' & '
<
; +
' 557 /
( % = % X 5 X C 6 X 2
7 X & C 6 8 , X - 6 X # = # - # - ( 6 ;77 A
B
;77 ! ' & A
B
;74 ! ( 9 $ " 3
;7; ! ( E1
S1
E2
S2
" 6 " " " ( 5 % % 7 C % = = X H (= 6 ;74 &
4 C % = X = X H % ( = 6 ;7; &
; C = X % X =
#1C S Q X 554
? & # &
! & O P
! & ! & = > 1 X 6 & 2 9 1 X 6 E = 6 ;7? 6 & & 6 ;: & O&2P+P2 P = M 4 4 8 ! 2 O " P % % ! ( = < A/A < A0 55; Unité de génération correspondante
API
T1
IO
API/IO/Pipe/Put
Pipe
Put
Get
API/IO/Pipe/Get
T2
Pipe
Kernel
High
Cxt
Task
Boot
Synchronization
Schedule
Interrupt
Low
Cxt
Task
Boot
Schedule
HighInterrupt
LowInterrupt
BlockUnblock
Driver
IO
Put
Access
Get
State
FifoHard
;7? !
& FifoSoft
Access
!3 55?
& & 6 &
# 6 & & * = 6 ;7> OP 2
& # & & #8"> #8"9 #8"D DBD> DB7D> DB4D> ( O&P #8"9 G & &
(( )) & #8"9
8 2
G & Arbre d’implémentations pour un élément
Liste d’implémentations pour le processeur ARM7
Tout
ARM
68xxx
ARM6 ARM7 ARM8
Tout
x86
8086
< ARM7
80286 80386
;7> ! # 777
ARM
$
*7
( = 2
E 22 2
3
( ( % M 1 & ' O P
( = % =
( 6 ;79 6 2
= 6 ;7D 6 & & 6 ;: = * % 55> < A0 & G 1& &4&4 ' '
'6 6 & &4&4- '-6 &, 6 &7 ' 8 '$' ' 8 8
8
8
8
, '9 ' & '
' ,
'9 , '
, ' 8 =>&4&4- '- 7
8 =>6- ' 8 ' $&
' 6- ' 8 , ' 8 => -6- ' 8 6 ,
8 ' & '
6- '
8 ' & '
-6- '
1& &4&4 &4&4- '- 8 8
8
8
8
'
' '
'6 7 ' '
'9 ' & '
' '9 '
, ' 8 &4&4- '- ,76- ' 8 ' & '
6- '
' & '
-6- '
;79 ! ( & 559
55D API
IO
Pipe
Put
Get
Pipe
Kernel
High
Cxt
Task
Boot
Synchronization
Schedule
Interrupt
Low
Cxt
Task
Boot
Schedule
HighInterrupt
LowInterrupt
BlockUnblock
Driver
IO
Put
Get
State
FifoSoft
;7D !
& ( 777
!3 55:
( & 2
C * =
= H 777
/ " C ( & 1 H = ( 6 ;7: = - / / / / C 5
/ S0
E1
S1
S2
S3
E2
;7: ! " "7 8 * * = %2
= , & % =2
6 77#7
4 3 A " ( 2
% 1 % 57B = C A 6 1 = & = 1 = 6 = H ( & = 6 H
77#7
- 1 =2
1 = 377 3737 & &(-//- & 4& - = 6 8**+,, 3
6 8**+,, 3
8* 0
8* 0
4?&?
4?4?
4?&
4?4
* = = 6 37 373 C 6 B=;BBB B=5BB
8 2
77#7
& ( = 6 2
6 6 & E &
4 ) ( ' = &(-//- 4& - 6 O 6 ;4B
i 3 ∗ fW#*8''S
_ cfWQ#C((S
i 8 = 3 ∗ fB=;BBB S
_ cfB=5BB S
;4B ! ' & 575
, ;795 & =
( & ' % & ' ( 6 ;45 = & = 6 & O P
A
`
S
S
S
a _% S
∗
∗
_% TW/X-+<`*#Q#aUf
`
WY
^
,f
`*#Q#a − 5 -:-<:C
B
,−5 +
`^'Q#Q'T C U ^ ^*#Q#T C U ^ ^'C+,#(T C U ^ a ^
^
`^'Q#Q'T,U ^ ^*#Q#T,U ^ ^'C+,#(T,U^a^
-<:/X-+<
<+(
<(+1
4+
-:<+(
ZW
aS
i 8 = A
`
S
S
S
a _% S
∗
∗
_% T4Uf
`
`B5?a`74>a`;?9a
aS
;45 ! " " ) -
.
& C & 577 1 & H C E = 1 = & H & = 6 ( 6 ;47 = & ( 6 ;44 = +!,-./01 6 ;4; " `
_& _d O
S
" ∗
WY
<
" ∗
& c_ c P
f O P S
O /-<:-`(Fg*_'Z"aP +
^1O P S ^
-:<
ZW
N3 `
WY
O P
∗ [[f∗&
−−S
a
<
[[S
O /-<:-`(Fg*_'Z"aP +
^)O P S ^
-:<
ZW
a
;47 ! ! " 574
" `
_& _d O
" ∗
S
" ∗ & c_ c P
f O P S
1O P S
N3 O P
`
∗ [[f∗& [[S
−−S
a
)O P S
a
;44 ! )(
" `
_& _d O
" ∗
N3 `
a
S
& :;<= " " ∗ & c_ c P
f O P S
O P
∗ [[f∗&
−−S
[[S
a
;4; ! )(
& :;<= " 57; 77#7
&
O P (& % = 1 = & 2 * 2 ' ? ( & = 2 % * 2 ? ( ( c * = 6 ? ( * 2 2 8 ! K & 2
! 1 % % 6 H %
= F 6 O
( E * A 1 = = H @[email protected] O* 2P O &P
1 & Y 6 % * % & = 6 ;4? ( 2 *-4 N( O 2 P 1 = = 6 8 &(* & &
*-4 % & @ " " "" %! $ ! ! 57?
i * O (d8 P
WY
-<:!&/M0-:
+
M0-:
+
M0-: +40-(/ +
-:!&/-:-<:ZW
`"F*#8+a +Q f
"F*
^C* ^
^O ∗ T^#8+^UP^
^#**8^
^O ∗ ^#8+^P^
FQ1Q` ^ +Q^a
i O 1 P
1 + O P
`
( 0 8 f T U S
A O W+Q`^C* ^^ % ^aP
W.#CQ`^ ^aS
W+Q`^C* ^^ ^aS
a
i 1 + O P
`
( 0 8 f T U S
A OO∗ T % U P P
d O P S
O ∗ T U P S
a
;4? ! ' 3 O
( 6 % = = 6 O P & &
1 & = 1 = & =
C & 6 6 * & & 6 6 1 = 6 6 = 7 6 6 = 73 C E 6 & H 1 = & & H % ( 6 H ( 6 = 57> 6 ;4> & 6 0-&-(/ @ & A
B A
WY
< /-<:-
<+(
<(+1
`Z#*8'a +
B 4+ /X-+<`Z#*8'a +
^i j^Z#*8'T Uj^j^
-:<+(
-:<
ZW
;4> ! * 9
77#7%
& ( M % 2
& & & #1C = % 6 %
= 1 E = & % = % H & ( % 6 = = % ( & & ' % H
8 6 M H 6 ( [[ &
H ' 6 = A A ( & 6 =2
% % ( % % & % % = * 3 O
6 M 1 M M H 579
( M M O P
M ( 6 ;49 = ( M 4 6 ;7B M = & 2 M 4 2 = * 2
6 M 6 % 6 ( 4&/,:&1- 4&/,2+(4 2+(4:&1- & = 6 M i " WY
-<:
M ` a Q#'g(#''f
^
^ Q#'g,#"T U ^ _ ^
^j`j " j ^
<+(
<(+1 O B P 4+ O /X-+<`Q#'g1F8QT
Ua − 5P +
^ ^ 1F8Q(#'',#"`Q#'g1F8QT U T U a ^ ^
1F8Q,#"TQ#'g1F8QT U T U U ^ S j ^
-:<+(
^
^aSj^
j
" ^ Q#'g,#"T
U ^ O P S j ^
-:-<:ZW
i = Q5_ `
"
1_1 [email protected] '_ 15 S
1_1 [email protected] Z _ 14 S
aS
" Q5 O P S
;49 ! )(
& 0
( = #1C 2
% = ( 6 ;4D = 2
2+(4! &//:&1- = ( 2 M 4 & 2 * & * = #1C (
R & = 6 + ! =1 $ 57D ( /-(;!-2(+4+492- % 2
6 #1C M ( /9/:&1- /9/&(*F1-:4 % i " WY
-<:<+(
` a 1F8Q(#'',#"f
<(+1 O B P 4+ O /X-+<`1F8Q(",Q`
aa − 5P +
1F8Q(",Q` aT U ^_^
-:<+(
1F8Q"*C#` a ^ ^
-:-<:W
a
i " WY
-<:
` a 1F8Q(#''f
^
^ 1F8Q(#'',#"` a ^ _ ^
^j`j " j ^
<+(
<(+1 O B P 4+ O /X-+<`1F8Q'8)C T
Ua − 5P +
'8)C18FQFQ/1`1F8Q'8)C T Ua
^
j`j^
^
^ '/',#"`1F8Q'8)C T U 1F8Q"*C#` aa
^O^ '/'#8+",Q`'8)C18FQFQ/1`1F8Q'8)C T Uaa
^PSj aj^
-:<+(
^aSj^
-:-<:ZW
i = 1_1 [email protected] '_ `
"
1 _1 [email protected] 'O P
`
%1 _1 [email protected] 'O P S
aS
aS
1 [email protected] ' OP
`
%1 [email protected] ' O P S
aS
;4D ! )(
& 57:
54B "9 8 ( & 6 6 "06 * & 6 & = 6 "06
77D7
! ( & 6 = & * 6 c = & 6 & * & 0 O T5U P E 0 H 77D7
!3 ' 6 2
, &
( & = & 6 5 6 & C % 7 6 & = & C % & % 4 = 6 & 6 = 2
& = =
( & & % = O ;54P C E 1 = 6 6 #8"9 6 #8"9 6 & & & & = & 6 * = 1 = &
' #8"9 H H >4&[email protected]
0 > > "
# " >
")
77D7
545
! 1 ( 5 6 & & 6 O = ##?
#8"P 6 & 7 6 0 = H =
4 6 & = & 6
= "06 = ;4: ( [[ & ? ( & > A ?,<//C, ? ? ?&
D,<//C,
'&&
CC'&
,''
*' E
F$(
/.8GHG
CC/.8GHG
,/.8GHG
*/.8 '$ ?
IJ,
K L'$ ? K L'& ? K L 'E? M
K L&4? ,N &4 ' L$& $&? M
LH ? L4 4 ? M
1LL1 L -&E ? 1LL1 L - ?
0L0? %L%? #L#?
F0?&
F0?
F0?
DIJ,
D* 8
? ?&
?&?
DF DO?
'$ ? 8 F0?
DIJ,
DO?&
D D/., 8 DO?
;4: ! )(
8& DO?&
1 & M
547 ": * ( 6 = 6 6 O ;7?P
( ( & ( & 77$7
& , ;777 & O 22 6 P
( & Oc hP & 6 6 ;;B c ( 2
= & & ( & = 6 ;;B c & 77$7
& * & O 22 6 P
( & & ( H & 1 = 2
"; - * , M = & & & * E & 2
& , A= & & & 2 ? 3 3 ! $ 4 < ! ! '
Mémoire avant allocations
Allocations imposées :
de 0x4000 à 0x4FFF
0xFFFF
544
Mémoire après allocations
imposées
0xFFFF
de 0xA000 à 0xBFFF
0xBFFF
0xAFFF
0x4FFF
0x3FFF
0x0000
0x0000
Mémoire après allocations
imposées
0xFFFF
Demandes d’allocations :
Mémoire finale
0x4800 octets
0xFFFF
0x2000 octets
0xBFFF
0xBFFF
0xAFFF
0xAFFF
0x4FFF
0x3FFF
0x4FFF
0x3FFF
0x1FFF
0x0000
0x0000
;;B ! )(
77 87
, %
= , 13
= 1 & 5 E '
= 7 & =2 & & 4 & 6 G 54; (
, R 2
& C = 5 & & A= & & = &
7 & & 2
& = & & 5 % H O =
P
7 C & & 4 6 & ( 6 = A= & 77 87
&= ( %!$
( A & & 6= H 6 % = ( & O P O '%P #1C & A
& & % = O ( P 6 % = #1C & & A= & = & & & & = &
% = & ( A= & A E % = 1 %
= A 54?
$
% & #
) % * $
#
#
#
$
#
2 , ) , ++ 0
72+ #
+ , 5
%& % $
$
" 8 % #
$
$
9 ) ( ," $*
:/
," ( $#
#"
#
( A & )*'( A 1 & 1 & & & & & % = = 6 = (!
* ( )*'( -4 &44 . ( - & . % & )*'(
'Q" Q =2 2
)*'( A 4*, *, - * 4,. & 2& ( A & 7B;D 2& % H % 54>
$ 0 * )
0
%7 7 7
* ! ;/
( $%# 2'/$ 6= 6 6 & K 1 K 1 & M K % = (2
6 ?5
Architecture d’origine
PC hôte
Modem VDSL
Processeur
généraliste
Mémoire
partagée
Processeur
de traitement
du signal
S.E.
commercial
FPGA+ASIC
Parties analogiques du modem
?5 !
1 @ ( = % H #'C * % = C 2
A #'C % = ( 6 ?7 ( 6 22 (( )) )*'(
2
$*)
549
(a) Architecture d’origine
(b) Nouvelle architecture
PC hôte
PC hôte
Modem VDSL
Modem VDSL
Processeur
généraliste
Mémoire
partagée
Processeur
ARM7
Processeur
de traitement
du signal
Mémoire
partagée
Processeur
de traitement
du signal
S.E. généré
SE
commercial
Processeur
ARM7
ASIC/FPGA
ASIC/FPGA
S.E. généré
Parties analogiques du modem
?7 !
%7 7 7
2 E Parties analogiques du modem
/ /
( & % )*'(
& ( )*'( = A = A
& ( & ! A & & & & H A A &
! A= & A ! & ! & & 54D
2 * % = & = % = 2
& % = & & C % = H % = & 2
M & ( & & % = = % = 6 ! & H
* & = & W 2
! & ! & = & & & & H
$ * %7 77
! ( 6 )*'( & 2
H M 6 [[ & 6 & A , 6 '% & A ( = #8"9 $%# ( 2 #8"9 6 6 K %7 77
" '
( 6 ?4 & 1 K 1 6 A $%#
6
1 $%#
A 2
$*)
54:
P6
M1
M2
T2
P2
N4
P2
P2
N1
M3
P2
P1
T4
P1
P3
P2
N5
N2
P3
P3
N2
P1
N4
P5
N10
P4
T5
P3
P2
P1
N1
P4
T1
P3
P1
P4
P4
N3
P2
T8
P1
P3
N6
N5
N3
P1
T3
P3
T6
P2
P1
N7
P2
P3
P2
N6
T7
P1
N9
P4
P2
P3
T6’
?4 !
P1
N8
P1
5;B
; 3
'
'
'
'
4
4
<
'
'
'
'
<
'
'
<
'
'
!"
# $ %
& !"
'
% ()
()*
# $ %
!"
'
% ()+
(),
# $ %
!"
'
% ()&
()&*
!&" !&" - &.&/ -0 .1..2
-0 .-' 3 .-%.4 5'
-0 .-' 3 .-%.4 5'
-0 .-' 3 .-%.6
- &./ .-' 3 .-%.6
.1.. - &./ .-' 3 .-%.6
.1.. ?; ! ' *B
2
; 3
'
'
'
'
'$
'#
4
4$
4#
<
<$
4
45
'
'
'
'
'
'
'
<#= <#,
'
'
<
'
'
'
<5
'
'
'
'
'
$*)
7 55
!"
' % *
()
()*
# $ %
& !"
' % ()+
(),
# $ %
!"
' % ()&
()&*
# $ %
!"
' % ()&+
()&,
%
' % ()
# $ %
' % ()*
' % &
!*" ' % &
!*" ' % *
!" !&" !&" !&" - .*/ -0 .1.. -0 .1..2
-0 .1.. - ./ -0 .1..2
-0 .1.10. -0 .1. '. -0 .-' 3 ..-8
-0 .-' 3 ..6
- ./ -0 .-' 3 .-%.6
-0 .1. '. -0 .-' 3 .- .
-0 .1. '. - ./ -0 .1.. -0 .1. '. -0 .-' 3 .- .8
-0 .-' 3 .-%.4 5'
-0 .-' 3 .-%.4 5'
- .+/ -0 .1.. -0 .1.. -0 .1..2
?? ! ' *=
5;5
5;7
( 6 ?; ?? H & 6 % = ! # % 6 1 = 6 ?; 1 % #8"9 >??4> O P 7?> ! # M 1 = 6 ?; M 4 B 6 1 P4 7 * 6 M B % ! # M M 1 = 6 ?; 2 M 4 &2P+P2 P* ! # O % P 1 = 6 ?;
2
1 ? ( = [email protected] [email protected]; 5
! # = 1
6 ?; : 5 % & 4 4
%7 77
& " I3
( M % ( & O+" P & & % C = * = 6 A * 6 ?4 2
M 4%
( = & O2 P & M 3 @[email protected] ( M & & C M & % * 6 ?4 M = : :% : 1 % 2 ( O1 P 6 c & M 1 % M (( )) c 2
% & & M = * 6 ?4 M = : :%
1 % 1 ( O/ P M (2
M & " "
5;4
M ( & M * 6 ?4 M = : : : 1
% / ( O/ 3 P % * 0 T4;U * 6 ?4 M = : % / 3 % 1 6 O4 P M & ( 2 M 4% % 4 & " ( = A K % = ( % O( P 2
& & = 6 A * 6 ?4
2% 1 % ( ( = % O ? ( P & & % @[email protected] = * 6 ?4 2
2 2
1 1 % ? ( ( % OE> P ( % & 6= * 6 ?4 2
1 % E> ( % O P * 6 ?4
2
1 % (!# " $ < , ;54 & & H & & 6 " ;5;
& & 6 & & 8 6 & & A H H
5;;
%77 7
!3 ) !
6
C & % = = % = &
C % = 1 ( 6 A '% & [[ , & ?45; * & [[ E 6 & 6 2
& O &P " & 2 !
& & & C 1 & & & 2
& % = = & 6 % = H H E &
C = & & = & = & 6 8 & & OM P & & 6 F = %77 7
, ;5;5 & 2
= O & P .
! , #
" 5;?
, = & & 6 ( =
& & & O ?77P = & & 3 E #1C O ?457P E & = #1C = ( & & = 6 ?> S %77 7
A
I3
, % % = M 6 O ;79?P
& ( % = H % & % * & & % = % % = 2
S % 1 * % = & &
1 6 6 & & % 2
%
* A
?577 % = = 2
& * % = O M P = 2
& = ( % = & W ( % M & & & & G ( 2
% 6 # % % H O ,(( " 3% 5;>
& )*'(P = % = 6 & & % %
# % % H % $ % ( & & % = )*'( ( #8"9
>DBBB ,CN O ?45?P
%777
( " ( & & 6 ?> 6 = , 5;9
API
IO
Synchronization
Pipe
Memory
Over
Put
Attach
Put
Wait
Wait
Notify
SetVal
P
Get
Timer
Signal
Semaphore
Get
V
Pipe
Memory
Signal
Semaphore
Over
Timer
Interrupt
Kernel
High
Schedule
Task
Wait
Synchronization
Sleep
Notify
WakeUp
ISR
Call
Cxt
Block
UnBlock
RoundRobbin
Boot
Low
CxtSwitch
Cxt
Task
Boot
Priority
Trap
Load
ISR
Schedule
HardInterrupt
Call
SoftInterrupt
LowInterrupt
BlockUnblock
Driver
IO
Put
Get
Access
State
Address
Fifo
?> !
Shm
Register
( Buffer
LockedRegister
Access
5;D
%777
A
" &2
% & 1 & " O
& P O P
((2 ))
C #1C & = % % 2 * &
((1 ))
C #1C (( )) c M ((+" ))
C #1C = % % 2 * ((/ 3 ))
C #1C % = % % 2 ; H ((/ ))
C #1C % = = % % M : A %777
A
" ((, ))
%
% = 22 & M & = ((!))
C = = M = M ' &
H ((4 ?))
C M ( 2
6 & O !P O /3 P
((E))
C % = C & % = 6 5;:
((/3 ))
C M A= & C & H M C & O % P
6 & %777
A
" (( ))
% =2
1 & 6 %
& & O P & % & % E?F6
E?
((!))
C % (( %))
(( N ))
C G
& ((0 ))
((/A ))
C M : A
0 %777%
A
" ((/3 V ))
= & 6 % % ( E? M 6 ( FE? M 6 1 & , M %777
A
" (( " )) Q R
= C ((< A))
C @[email protected] C S 2
= ((/3))
C c M 5?B
((( ))
C C & % = H & % (( ? ( ))
((M ( ))
C = % ? ( E> O ?574P C & ( & ((&
))
C ' 2
L ' (!$ =
$ >.
)
%77 7
( * ( 6 H % 6 A C = 6 # '% %= [[ & & = [[
( 6 )*'( '% ( 2
6 )*'( 5 " '% 74 g
'% 2
1 2
, ?577 %2
= C % & - A H & = & 6 2
( & 6 & % O 5;7;P A ,(( #
$ 5?5
%77 7
3
! 3
( & & )*'( % = - & & & & E = * & & 75 & & 49 H O7: % D 2
HP & 6 & % = O & 2
M P
1 & & #1C
6 & & & & & & @ 3
( 6 ?9 ?D & & & = * 6 & ( 6 & % 6 = #1C 2 & %
+ # ! ?9 !
( & Boot
Kernel
Boot
Task
Cxt
CxtSwitch
Kernel/Cxt
Schedule
RoundRobbin
WakeUp
Sleep
LowInterrupt
BlockUnBlock
Interrupt/
Low
Trap
ISR
UnBlock
Block
Sync
Call
HardIt
(ISR)
Call
Interrupt
ISR
Interrupt/
High
Access
HardIt
(Wait)
Signal
SoftInterrupt
Signal
HardIt
(Wait)
LockedRegister
Pipe
Notify
Wait
Signal
Sync
Put
Get
Pipe
IO
API
5?7
*B
?D !
Boot
Kernel
Boot
Task
Cxt
CxtSwitch
Kernel/Cxt
Schedule
RoundRobbin
WakeUp
Sleep
LowInterrupt
BlockUnBlock
Interrupt/
Low
ISR
Trap
UnBlock
Block
Sync
HardIt
(ISR)
Call
ISR
Interrupt/
Low
Call
Interrupt
Access
Access
( & *=
SoftInterrupt
Signal
SoftInterrupt
Semaphore
shm
Memory
Access
Register
Over
HardIt
Wait
WaitRegister
Pipe
HardIt
Wait
LockedRegister
Pipe
SoftInterrupt
SoftFifo
Pipe
Notify
Wait
Signal
V
P
Semaphore
Sync
Attach
Memory
Put
Get
Over
Put
Get
Pipe
IO
API
5?4
5?;
- 3
(= & & = = = & 1 = #1C
& & E & & & ( #1C #1C & = & & #1C = 1 = E 2
" ( #1C ' 2
& = & & H % & ; 3
1 % = & C 3 % 1 % = A & & % = 2
= ( & & & ( & = 2
6
# % = ' % = &
= ( * 6 6 C & O 22 & P %77 7
& 6 & & 6 % = 6 6 1 6 M 6 0 < =1 ) #
5??
% = O ;79?P
( = % = )*'( c # & = & ( E2
6 O & P ! ( %
! ( %77 7
! ( % = M 2
E ( E #8"9
& #,'C & 2
6 & & * #,'C & ( = E % = M , M [[ & O P Y ( E % H * E M [[ 1 & & & % & & M O 22 P 6 8 M % = & = = &
%77 7%
; , % = 6 H ; ( % 55? &
1 % M = % -% . #8"9 & & % & = 2 A ! B
5?>
& & 2
= M % = O 22 P
6
F:J
1 = M % = 2
O% ,CNP ,CN 6 & & % = C = & = M M =
= = # = & & % = $
* ( %777
4 * = % = = 1 O "5P :>D 7D5 & # % = 5;D; ?BB 1 = O "7P 5D97 7D5 & # % = 7>7; 5B7B % = % = 6 & & H % %
= & ;0 S ! T:BU & 50 % = & 5 ( ( 6 ?: O P 6 & H % 2
& 4 , 5 $ #" $ 3
$ 5?9
%777
5 1 % = 2 2
1 %2
= % & * = % &
& 2 A
( % = = * % % = M , #8"9
7?"Zc
1 % = = 4> % 22
5;;µ ( ?: % 74>µ C 2 ; 7D % ( % ?B % 22 7BBµ
6 % = M 7> % 22 5B;µ
& = % = = #8"9 H O P 7µ % ?µ
(!%
( A & )*'( A & '(' A
& 1 A & & % = 6 & #8"9 H = = & & &
# A 6 & % = %2
& & ( % = = = % = & =
C & % = O 22 6 2
% = 6 &P , % = & & 5?D
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
Q ii∗L
L∗ii
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
L ∗ ' Z ∗ L
C ^ gL=L = = ^
C ^ gLQ0L 0 ^
C ^ gLCQLZ L ^
C ^ ^
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
L∗ii
Q 0 ii∗L
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
C A 8#*/
5
C A '(1
7
C A 8,,C,+ 4
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
L∗ii
+& & ii∗L
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
_ d_ S
L ∗ d 0
∗L
L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
L∗ii ' d ii∗L
L∗ii
ii∗L
ii∗L
L∗ii − −&& L∗iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii∗L
L ∗ " ∗ L
" __ _ O " P
`
L ∗ 0
∗L
_ f _
S
_ fd_ S
L ∗ = d ∗ L
__ =_d O __0_0 T _ U = __0_0 T _ U = P S
a
L ∗ 8 −&& ∗ L
__ _ && O " P
`
_ f__0_0 T _ U = S
a
" ?: ! )(
& 5?:
( % & & = & 8 % & & 2
* 2
& % & = & 5BB C & % 2
& O P
+,- , ''
(& % 1 A 2
A 6 % M E & A H & % E
C < A E & %
= ( % = 6 C 6 % = 6 & 2
& & 5>B
* & & ;54 % = = ( & = & = ! % = ! % = ! & 6 = ( = = 2 6
% = &
* ( . ( * ( ;7 C ! ( H % 6 &
! ( = H & E M = & = ! ( H & = =
! ( 6 & 6 ( & & )*'( (& = % = = #8"9 % ( % = C & & & % = =
?. ( )*'( C ( % % 2
C 5>5
6 % 6 & . ( & & & 2
! ( ! ( E ! ( 2
= H C % & 6 , E 2
= O P 1 % & 6 H & & K & 6 & = * M 2
6 ( % C & E & ( % & = & 3 6 E ( % 3 ( & A 5>7
5>4
% %
' # ( /!
) 8 = & = &
/!# . 1 8 = (( =)) 1 E 6 7 = % = * (( 6 ? )) 6 =
= 22 6 7 6 /!$ * Q 6 2 6 M P
0 * ,(
2 C %& PQ RP 1 = = 2 = 1 % = `W
i * i − i ^5[5f^ 5[5
Wa
5>;
( 1 % = 5[5f7
0 * ,. & 6 2 = P 6= ' & & 1 = 2 & 6 (( =)) W=
( = % ( C /!% ( 8 2 & & % H C %
% & % G % & % & A
" 6 ( G = [ 1 = A& ?A G ( \ G & ' C \
8 \
Q& \&
-
\\ ]
\ ]
)
= G `W
5>?
^j^( & 8 j^ j ^
^j "G & & j ^
^j Q & j ^
a
( ^( & 8 ^
"G & & Q & W
" ( % & >; & % & 7 D 5B
5>
! ( & 7 6= 8 1 = $0 00
55
! ( & D 6= 8 1 = 00 :
! ( & 5B 6= 6=
8 1 = 0% 0% 57
! ( & 5> 6= 8 1 = %# 4?
" ) ( % A & A >; & % /!( = 8 (
= & O #>P O #DP 1 H O P
& & A & A
( & & 5>>
F F =
# +
3+4
' −
5−4
" ∗
5∗6
< /
23/4
8 %
23%4
, −
−3
1 ∗∗
2 ∗ ∗4
( //
20//10
& & &
4&2
F &&
|
7|1
F N&&
k
4k5
, & & l
[email protected]@@@@@@@@@@@@@@@
* >>
4 >> 2
* <<
1 << 2
J ==
^Q^==^Q ^
* H !=
2! = 3
' >
2>3
C <
2<3
' >=
4 >= 4
C >=
4 <= 5
&&
3&&4
F ||
3||4
F N kk
4kk;
, !
!3
C =>
(1 == 2) => (0 == 3)
( O P
O9P
O5P
O4BP
O?P
O4P
O24P
O5>P
O54BP
O7P
O4P
O7P
OBP
O5P
O;P
OBP
O5P
OBP
O5P
O5P
O5P
O5P
O5P
OBP
OBP
O5P
7S7;7T7T7;7; TT7;; :78 O7L7U V7W7X7Y7VV7WW7S7XX OO7LL
1 & =
2) ∗ 3 = 9
(1 +
8 = == H G /!0 5 0 * . ( 6 & 6 * 8 6 G R H . ( %= 6 & -<:- \
] f \ ] -: -<:8 ! ( -:-<:- = 2 -: -<:-
! C & 6 & & = & O #9 #DP
5>9
! * & 6 = 1 = = 5B
-<: f? -:-<:[ 5 ' * . & & & V 6 ( & 2
& 8 # -<:- -: -<: & * 8 -: & 5 0 * . (
C & 6 & & O & & P M * -<:- 1 -<:-
5"
* . C & & M -<:- (--<:-
5$ * . C & 6 & M F:-<:- \
] -:-<:-
/!1 & 8 O & P C % & % H & & & = 7 0 * . & & 6 -<:- (--<:- * -<:- -<:- T U \
] f \ & ] -: -<:-
7 % & M =
& = = & ( & . > > ! 5>D
TU \ ] f
T\ ]\ = ]\]U
-<:-
-: -<:-
) = & 5 7 4 ;
-<:- T U &5 f T 5 7 4 ; U -: -<:( = & = TU \ ] f
\ & ]\ = & ]
-<:-
-: -<:-
) = & 5 7 4 ; ? > M -<:- T U &7 f &5 T ? > U -: -<:-
(= & -<:- T U \
] f
\& ] O\ ]\ ] \ -: -<:-
]\]P
) = & 7 4 ; > &7
-<:- T U &4 f &7 O 5 4 ? P -: -<:8 ! ( & B
! C & & & =
7 1 & E 6 & 1 = = 57 O & 6 P
&4 T 4 U ∗ 7
C & & (-6
-<:- 1 = G ^* =^ (--<:- &4 T B U f ^ * = ^ -:-<:-
/!2 - 8 6 9 0 * & 6 -<:- (--<:-
* -<:-
5>:
" #
`\ ]a \ ] f \ ] -: -<:( 6 6 & =
1 = 6 H -<:- ` & a 4 f [&[ -: -<:-
-<:-
9 * 1 E 6 1 = 4 4 ; ?
4 `4;?a
8 ! 22 2
! C = & 6 8 O #55P
/!3 4
8 % & : 0 * +
C & 6 & -:
K \ ]
: >. ( < O\ ]P +
\ 5]
- /-
-: <
((
6 )) \ 7]
( B H \ 5] \ 7]
8 ! ( ! ( - /- ! ( -:< 2 -: <
59B
: (( )) ((1*/))
& M0 - O\ ]P +
\ ]
-: M0 F:4 +
\ ]
-: F:4 O\ ]P
8 ! ( ! ' B M0 - B F:4 & 6 ! 2 -:M0 - -:F:4 2
:" (())
& = 6 & <+( \
] <(+1 O\ 5]P 4+ O\ 7]P /4-2 O\ 4]P +
\ ]
-: <+(
8 ! 5 7 4 ! ( /4-2 O 5P
! -:<+( ! ( 6 6 & <+( ' & :$ C & H = 1 !&/- \ ]
M0-: \ 5 ] + \ 5]
M0-: \ 7 ] + \ 7]
\]
M0-: +40-(/ + \ ,]
-: !&/-
( = M0-: +40-(/ = 8 ! ( M0-: +40-(/ O P
! -:!&/- $ /! 5 -
595
C 6 &
* % &
; * ( & 1 = 6 6 & 4 O G
^ =^P -<:- Q7 f Q -:-<:-
; 1 # = = -<:- ` &a f
(--<:- f[& -:-<:-
-:-<:-
/!
- ( /: !+/ 4&: &/: &!+/ &4&:
8 H *
C & & A !- (+F: < ++(
*3(
( G & & 5B C & E O P & 7 D
5B 5> E: +!4 -! 0-J
" & 5 B ! /-<:- 6 & = ! /4&E 6 & & ! /<F:! 6 & 597
$ ( E(-&, & & & 5 ( /X-+< & & & & G 7 * @ &7
7#7
+" A 3 ( +2-: 6 6 6 ( ! +/- 6 6 &7
7#7
3 ( (-& = 6 6 = & G 6 ( M(4- = 6 6 = G &7
7#7
2 3 ( 4- 6 6 ( /--, = 6 6 H ( = &7
7#7
-
( +F42F4 2
G ( :2F4 G &7
7#7%
* ( -((+( = ( G & 594
9 * . ( < G 6 &
( -;& G 2
( :&1- 6 & ( /9/4-1 G 2
= ( = : * ( :! F- 6 ( +& = 6 1 & 1 1&2 6 = & &
2 59;
59?
) ! !&: ) # , ! !:& ) , # ! /! ) # O% % P % =
! &/! ) $ %& # OC#' C # '2
6 P R = ! E ) V ! ) (( )) % O P & ! (4 ) & , " O P V & V = & 2
& ! /( ) % " 2
! ! A ) " M M K % = V & ! !3 ) = M = M ( = % = ! 2 A ) " M M %2
= K ! 4 ) % & 22 & = ! ) C ! F:J ) % = ! 43 O P M ! 2 = % M 2
% ! 11F ) * *& ! O P % '
% % = &
! 2! ) %4' # O P & 2 ,CN ( C1 59>
! &2 ) $ '& & % & ! <<+ ) 2 % 2 % R ! (+1 ) * ! /2 ) & & ' O P % C L *$#
! & " ) % 6 % ! 26 ) O = P & ! 4? ) O = P 2
6
! 6 ) O 2& P < 6 0 &
G ! E 6 ) O2& P < 6 0 &
G ! 1& ) * "% # O P V ! 2 ) 6 Q H ! 4 ) O& P @ & ! ) 2
% Q ! 2 ) & 2
6 & ! // ) % = 599
* T5U
T7U
T4U
T;U
T?U
T>U
T9U
TDU
T:U
T5BU
T55U
T57U
T54U
T5;U
T5?U
T5>U
T59U
T5DU
T5:U
*-C#, +,L( = d& LLddd & /C! !C%5 , 1(' & LLddd % '% = & LLddd L*C'L L% =L
* && & $ #% 5:D9
# # 8 ' $ # ; ' 6 * 7BBB
8 # $2" - ) F $ 8 D 6 &&6 * 6 4
1 % 5::B
Q . #& $ ,& ' 8 Z.L'. ) 6 1 m - 0 7; & 8C' * '; & $4
#; DBD!D55 $ 5::D
1 #& $2 @ c @ ( @ " $ & 57 * 7BBB
1 #& $2 @ c @ ( @ " ' 1 1 . $4
& ? 5BB 7BBB
#8" ( #8"9 * ' " EEFFF;;E
E!*E'2E$ *7"#; # - *(% , n ## $% # E # " '% * # 2' 6 " ' C '; &
$ , ) ;;!>7 " 7BB5
# - , n . b Q 8 ## $% * ' = Z dL'd " '% C '; )4
" %))) % G1
' & D!54 $ 7BBB
#& - 1 ( + $ '% 2
d #4
'& & 5> 5B4!5;: 5::5
1 - = 1 - c $& > 6 " " 4
& 5:D4
+ -% Q 'Q8( ( " EEFFF4
; ;E EE (;
Q - - 0 % % && ,
C'*, '%
+ - 4 & G $ - L 5::5
, /C! *1 *
59D
T7BU 8 - #$C 5::5
T75U ' - !C%5 5:D?
T77U " % Q " 5:D?
EEFFF;;;EE;;E EE EFFFE;
T74U # 0 0 4+ )) , 6 " EEFFF; ;EE)/BHHHI:BJII=J # 5:::
T7;U . + , ( + * (% # $% " * 8 # 2' 6 " '%22 * C '; ,F" %))) % G1 ' & $ 7BB5
T7?U " 1 + # $ 0 ( ( Z Z # ' 2) '% = d2 d @'" 6 7B:!774 F & 5::4
T7>U $ Q0 + 2Q ' " = *2
& 'd C '; & $ #; ;D:!;:; $ 7BBB
T79U 1 @ Z 1 ( " n ' " 8 8 ' , n # # $% " * Z '% #) G1
DFEF # & "% 5:::
T7DU d C ,7 & LLddd d L d,7
T7:U g . * $ & *, $ ' 434 / ! & *4
& , 'C+' -0 m " T4BU * * * )0 Z * " F '% & 'd + '%22 C '; & $ #; 4:>!;B5 $ 7BBB
T45U $ *) E 1 = % ' -% '% 2
'; %; #; # $ & 5?;!5>5 , &
5::9
T47U 8 * 0 + (0 % # 8 , $ 1d #% 2
& F '% 457245? C '; & $ #; $ 7BBB
T44U 8 1 * 0 , $ F8*' Z d2'd 2'% 8 6 &
82Q * & & '% '; %; #; # $ &
, & 5::D
T4;U . * 0 '& & && ;4!
557 5:>9
T4?U # * 1 1 - 5::5
T4>U # * 1 1 7 4 ;>!9;
- 5::5
T49U ' d ' '; & $ #;
477!479 $ 7BBB
T4DU C # % ) 5:DD
T4:U 1 n 1 g g 0 # *& Z dLd d 95!9> , & 5::>
T;BU & 1d 8QN & LLddd& d T;5U ) & LLddd T;7U 8 $ Z0 Q - . / Z * Z " Qd
Q % dLd % & %
* * "% 5::>
59:
T;4U % /8N & LLddd L%= T;;U * * +0 @ ) ' ,% $ + & )
1 2Z C d H ,d $% 5::;
T;?U ** +0 $ n 8 *o # + ' n # &&
*& g d # 1 & " 7BBB
T;>U + '%5 F8 % 5::;
T;9U ( + ' / ## $% # + Q # 2
' 6 F '% & '% 'd C '; &
$ , ) >9:!>D? " 7BB5
T;DU 1 + $C% # %' 1 Z 5::?
T;:U Q + * & & ( ; ' %% / 4
( T?BU
T?5U
T?7U
T?4U
T?;U
T??U
T?>U
T?9U
T?DU
T?:U
T>BU
T>5U
T>7U
T>4U
T>;U
T>?U
T>>U
1* 1 NC @8 ' , &
7BBB
Q + ( /' F c % 2
& C 7 % G1 D4
FEF #4 & "% 5:::
, Z&d 1 1 8% * 1 Q % 2Ad 2
C ' & %))) 9: 54B?!547B
5::5
$ Z% * 1 $ ; ! "
D >;:!9DB C Q 1 & @ 5::>
, $ Z * $ Z * & ' % C m # "2
S C'-, BD:D95;>:: 7BBB
# 8 Z O P # $#* 75ODP # 5:9D
$ Z . . 1 & & % 9B!9> 5::>
C % 'F'% O P
C KILB CQ2Q 8 n5BB '& & &&6 & & 6
3 & 5:D>
$ $ g ( d2d '; $ ' & $ # 4>5!4>> @& % 5::D
# # $% ' 6 C
$
4 * 4' # $ 7BB5
## $% ( ) O557P " 7BB5
$ 'd '% NQC) & LLddd L = # g " # & * ( DF4F 1* % -0% # :;97B '& 5::?
C g0d0 Z * ' = # @ Z " 2 & '% * '; & $ #; $ 5::D
- g 8 $ -0 # & $ , C 7BBB
- g * 8 , # '& & && 1 2Z 5:9D
5DB
T>9U g g / g / ' g # C Z d2'd d # C + '; " %))) % 4
G1 ' & >>!95 $ 5::>
T>DU '% g , # & ) $ ! DF F
g d # 1 & S C'-, B9:74:>4>9 5::?
T>:U $2( g 46 " 5::B
T9BU $ $ (& * #E4%% 1 & + . 5:::
T95U ( / ' ' 6 c = 2
2 & d % = C 4, ) ' & $
5::7
T97U - ( # 8 Z *Ad %))) # 79!4: # 5::;
T94U # ( & d ! !#3 ) *
*HHEJ< 5:::
T9;U ( ( $ (% ' # " Z 282
Q M $ # & * 5:94
T9?U $8 ( #$ ' 8 d &% % C = $#* & F1 & 5::>
T9>U (% =.0 (%=F' & LLddd% =d0 T99U * (% ' / # - ## $% # 2' 6 # 2
+ Z " '%22 C '; &
$ #; ?5D!?74 $ 7BB5
T9DU * "% 5:D7
T9:U ' " @ + @ 8 ## $% # 2
6 2 6 d % C 5% %2%' %4#IB * 7BB5
TDBU ' " @ + @ 8 ## $% # % 2 6 %22 C % F & 7BB5
TD5U " µ " LF'2CC & LLddd 2 TD7U 1 8 "&% * Q , & DF && Z 2
"% 5::D
TD4U $ " 0 n Fd0 $" # G * 1 5::?
TD;U $ " % % * G F # " 1S 5::D
TD?U + , g ' F " . b ( + * (% ' /
1 ## $% * 6 % & = & ,% 7BB5
TD>U + , ' / ## $% " = 2( @ + 86 ' * C '; & $ , ) 9?;!9?: " 7BB5
TD9U F& " + " EEFFF;&;&E&EE
5::9
TDDU $ 1 * " "% G F <;B % 5::9
TD:U <,N 'd '% <,N & LLddd= T:BU 8 Z & LL L L
5D5
T:5U . 8 ' C $ ' 2) 5:D?
T:7U " 8 #% % M4
& & ?; 544!5;: 7BBB
T:4U 12 ' "2 @ @ ( @ " # 4
&& & ; " 5::4
T:;U - ' c # Z g g ' & & % %))) # ' 5::?
T:?U * # ' % G F C, -* '& & . " 1 % 5::D
T:>U 8 ' , # ' 5::5
T:9U . 8 ' ,#'E%' %6 B , ' # 2.% 5::;
T:DU - ' , #NN '& & && # .% 5:D>
T::U - ' 0 * + ' - #& " " * 1 Z Z * $ $
- $ , " Q 18 )0 # C K % ' & 7>D!79; # 5::;
T5BBU ' " % F' & LLddd T5B5U ' " % $ & LLddd& T5B7U '%% C '% ) 55 & LLddd% L
T5B4U '%% C " ) d # '# 5::9
T5B;U Z Q0 C # 2 0 6 2 & % 4, *&O 5::9
T5B?U # Q& ( 4 D;!5?D 1 Z 5::7
T5B>U # Q& ( 1 Z 5::;
T5B9U # Q& ( : ;B9!>>B 1 Z C2
5::;
T5BDU 8 " Q J;= % '%&= 5::4
T5B:U 1 . Q '%#) & " ' " 5::;
T55BU @ ) " % " 2 Z d 'd @ 1 #) G1 DFEF # & ;4!;D " 5::9
T555U @ ) * +0 ' # 6 2 % 55>!574 " 5::?
T557U # ) 1 ( # # $% )C # )Z*(2 C + Q '; %))) % D & " & ,
G1 5;7!5;D , & 5::9
T554U ' ) - ( Z * " # '% 82Q g ' # 2' 6 Z.L'. & # '; & $ #; >9D!>D4 5::>
T55;U * )0 . 8 C - Z * " . 2 # * 2
Z Z dL'd '% & $ )
5O;P 4?9!4D> 5::>
T55?U .4 8 N"( 5B 2nd " EEFFF;F<;& 7BBB
T55>U . 8 '% C )=.0 ?;
& LLdddd L LL =d0?;
5D7
T559U
T55DU
T55:U
T57BU
. Q & LLdddd . . # # 5 " g 1 & 7BBB
. . # # 7 " g 1 & 7BBB
g " n & g + ' # 2% 2 0 C
'HH 5:::
(( )) ! ! "
# $%& ' (($ % & )) ( "
)*+ , $-./ "
! 0 1 0 1 1 1 1 1 0 2 1 2 0 1 0 0 3 0 1 3 0 $%& '$ % & ( 3
0 )*+ 0
1 1 $-./ 1 4 0 &+56 7"89::78"/;"<
&+56= 789::78"/;"<
1/--страниц
Пожаловаться на содержимое документа