Processeurs embarqués spécifiques et production de code (Charot)

publicité
n
n
Processeurs embarqués spécifiques
et production de code
François Charot
Irisa/Inria
Rennes
Ecole thématique Seix - Novembre 2000 - F. Charot
1
Plan de la présentation
n
n
n
n
n
Quelques aspects concernant la production
de logiciel pour les systèmes enfouis
Compilateurs pour processeurs embarqués
Compilateurs reciblables
Approche ARMOR/CALIFE
Conclusion
Ecole thématique Seix - Novembre 2000 - F. Charot
n
2
n1
n
n
Plan de la présentation
n
Quelques aspects concernant la production
de logiciel pour les systèmes enfouis
Types de processeurs
n
n
n
n
codesign matériel/logiciel
outils de spécification de systèmes
Compilateurs pour processeurs embarqués
Compilateurs reciblables
Approche ARMOR/CALIFE
Conclusion
Ecole thématique Seix - Novembre 2000 - F. Charot
3
Logiciels et processeurs embarqués
n
Révolution technique des applications grand public
du type multimédia, télécoms
•
•
*
n
*
Technologies d’intégration
Outils de conception
système sur silicium, système mono-puce
mono-puce
La loi du time to market impose réaction rapide et
anticipation stratégique
emploi du logiciel et intégration de cœ urs de
processeurs (temps de conception raisonnable)
•
•
flexibilité en terme de conception
flexibilité en terme d’évolution
Ecole thématique Seix - Novembre 2000 - F. Charot
n
4
n2
n
n
Caractéristiques
d’un processeur embarqué
n
Cœ ur de processeur
•
n
Contrainte de performance
•
n
partie centrale d’un processeur (plus périphériques)
notion de temps réel
Problème de la densité de code : taille du code
applicatif (mémoire)
•
•
la mémoire tend à occuper la majeure partie d’une
puce
impact de la taille du cœ ur dans le choix du
processeur
Ecole thématique Seix - Novembre 2000 - F. Charot
5
Styles architecturaux
des processeurs embarqués
DSP
micro
contrôleur
VLIW
spécifique
ASIP
RISC
Ecole thématique Seix - Novembre 2000 - F. Charot
n
6
n3
n
n
Caractéristiques
d’un logiciel embarqué
Taille réduite de programme
n
quelques centaines, voire milliers de lignes de code C
Gestion simplifiée de la mémoire
n
absence d’allocation dynamique
Gestion simplifiée des entrées/sorties (flot de
donnée)
n Exécution cyclique rythmée par le flot de
données
n Contraintes temporelles fortes
* Ces caractéristiques influent sur la compilation
n
Ecole thématique Seix - Novembre 2000 - F. Charot
7
Caractéristiques
d’un logiciel embarqué (suite)
n
Historiquement, emploi de l’assembleur
•
n
notamment pour les parties critiques
Aujourd ’hui, des langages de haut niveau
comme C, C++ s ’imposent
•
•
•
•
augmentation de complexité
portabilité
progrès de la technologie de compilation
évolution des architectures
Ecole thématique Seix - Novembre 2000 - F. Charot
n
8
n4
n
n
Caractéristiques
d’un logiciel embarqué (suite)
Impact du style d’écriture du code sur les
performances
n
niveau comportemental (norme C ANSI)
•
usage de constructions de haut niveau (tableaux,
structures)
Lisibilité
portabilité
second niveau
•
efficacité
utilisation de pointeurs, de fonctions prédéfinies
troisième niveau
•
assignation manuelle de variables à des registres de
l’architecture cible (directives)
quatrième niveau
•
mélange de C bas niveau avec directives et d’assembleur
Ecole thématique Seix - Novembre 2000 - F. Charot
9
Compilation de programmes embarqués
n
Rôle essentiel du compilateur
•
•
générer rapidement des programmes efficaces
importance de l’optimisation de code
taille de code
vitesse d’exécution
– puissance ou énergie consommée
–
–
n
*
Automatiser la conception du compilateur
Compilation reciblable
Ecole thématique Seix - Novembre 2000 - F. Charot
n
10
n5
n
n
Interdépendance entre
architecture cible, compilateur, application
n
Choix d’un cœ ur existant et son compilateur
•
n
Cœ ur de processeur fixé
•
n
écriture de l’application
développement du compilateur, conjointement à
l’écriture de l’application
Conception conjointe processeur-compilateur
en regard des besoins de l’application
•
ASIP : cible idéale pour la compilation ayant des
caractéristiques pour une exécution optimisée
Ecole thématique Seix - Novembre 2000 - F. Charot
11
Processeurs embarqués :
cœ ur TMS320C64x de Texas Instruments
1,1 GHz
8800 MIPS
4400 MAC (16 bits)
Ecole thématique Seix - Novembre 2000 - F. Charot
n
12
n6
n
n
Processeurs embarqués :
programme CoreWare de LSI Logic’s
Ecole thématique Seix - Novembre 2000 - F. Charot
13
Processeurs embarqués :
cœ urs de DSP/VLIW
Compagnie
ARM
DSP Group
IBM
Mentor
Graphics
Texas
StarCore
Siemens
Famille
Piccolo
PineDSPCore
OakDSPCore
PalmDSPCore
C54XDSP
M320C50
Donnée
16 bits
16 bits
16 bits
16/20/24bits
16 bits
16 bits
Instruction Horloge
16/32 bits 70 MHz
16 bits
40 MHz
16 bits
80 MHz
16/32 bits 150 MHz
16/32 bits
66 MHz
16 bits
C27xx
C54x
140 (vliw)
Tricore
Carmel (vliw)
16 bits
16 bits
16 bits
32 bits
16 bits
16 bits
16 bits
16 bits
16/32 bits
24/48 bits
Ecole thématique Seix - Novembre 2000 - F. Charot
n
50 MHz
100 MHz
300 MHz
80 MHz
120 MHz
14
n7
n
n
Cœ ur de processeur :
utilisation dans des systèmes sur silicium
RAM
ASIC
Processeur
D/A
A/D
I/O
ROM
Ecole thématique Seix - Novembre 2000 - F. Charot
I/O
15
ASIP (Nortel)
commutateur de téléphone local privé
Ecole thématique Seix - Novembre 2000 - F. Charot
n
16
n8
n
n
ASIP (STMicroelectronics)
visiophonie sur ligne téléphonique
Ecole thématique Seix - Novembre 2000 - F. Charot
17
ASIP (TCEC)
traitement audio haute fidélité
Ecole thématique Seix - Novembre 2000 - F. Charot
n
18
n9
n
n
Classification des processeurs
Caractéristiques dépendantes
de l’application
Processeur disponible
(ASIP)
Circuit en boîtier
Sans
(circuit sur
étagère)
ASSP
Cellule (cœ ur de processeur)
Sans (proc. à usage général)
DSP
[Marwedel, 95]
Micro-contrôleur
Caractéristiques dépendantes du domaine
Ecole thématique Seix - Novembre 2000 - F. Charot
19
Tendances en matière d’ASIP
Usage
16
Volume
42
14
32
28
14
31
DSP maison
DSP commerce
micro-contrôleur maison
micro-contrôleur commerce
23
[étude à Northern Telecom,
Paulin, 1995]
Ecole thématique Seix - Novembre 2000 - F. Charot
n
20
n10
n
n
Plan de la présentation
n
Quelques aspects concernant la production de logiciel pour les
systèmes enfouis
n
Compilateurs pour processeurs embarqués
Performances des compilateurs pour processeurs
embarqués
Nouvelles techniques d’optimisation
n
n
n
Compilateurs reciblables
Approche ARMOR/CALIFE
Conclusion
Ecole thématique Seix - Novembre 2000 - F. Charot
21
Performance des compilateurs
pour processeurs embarqués
[DSPstone, Zivojnovic, 1994]
t : temps d’exécution
p : mémoire programme
d : mémoire données
code source
compilateur C
C
Métrique :
profiler
profiler
code assembleur généré
code assembleur
de référence
tr, pr, dr
résultats
tg, pg, dg
surcoût temps d ' exécution: ∆tg = (tg − tr ) / tr[%]
surcoût mém. programme: ∆pg = ( pg − pr ) / pr[%]
surcoût mém
. données
∆dg 2000
= (d
g Charot
− dr ) / dr[%]
Ecole
thématique Seix -:Novembre
- F.
n
22
n11
n
n
Performance des compilateurs
pour processeurs embarqués
Exemple : ADPCM (codage parole)
Surcoût mémoire données (%) Surcoût vitesse (%)
700
400
350
600
300
500
250
400
200
300
150
200
100
100
50
0
TI-C51
0
DSP56001
ADI-2101
DSP56001
Ecole thématique
Seix - Novembre 2000TI-C51
- F. Charot
ADI-2101 23
Performance des compilateurs
pour processeurs embarqués
Performance absolue en µs pour l ’application ADPCM
600
Code C
500
400
300
200
assembleur
100
0
TI-C51 Seix DSP56001
ADI-2101
Ecole thématique
- Novembre 2000
- F. Charot
n
24
n12
n
n
Performance des compilateurs
pour processeurs embarqués
Surcoût mémoire (%)
12
Exemple : multiplication de matrices (10x10)
Surcoût vitesse (%)
400
350
10
300
8
250
6
200
4
150
100
2
50
0
TI-C51
0
DSP56001
Ecole thématique
ADI-2101
Seix - Novembre 2000TI-C51
- F. Charot
DSP56001
ADI-2101 25
Utilisation des langages d’assemblage
dans les systèmes embarqués
code C
(microc o n t r ô leur)
a s s e mb l e u r
(microcontrôleur)
code C (DSP)
[Paulin, 1995]
a s s e mbleur
(DSP)
proportions relatives de lignes
d’assembleur et de code C
Ecole thématique Seix - Novembre 2000 - F. Charot
n
26
n13
n
n
Raisons pour l’inefficacité des compilateurs
L’efficacité du matériel est privilégiée lors de la conception
AGU
address
register file
3
16
TR
bus
exchange
16 program bus
controller
data RAM
(256 x 16)
ARP
16
16
shifter
MUX
multiplier
PR
32
’C25
ALU
32 ACCU
shifter
program ROM
data bus
16
(4096 x 16)
Ecole thématique Seix - Novembre 2000 - F. Charot
27
Travaux récents concernant
les techniques d’optimisation
n
n
n
n
n
n
n
n
assignation de registres pour des bancs de registres
hétérogènes [Araujo95,Wess95]
optimisation des registres de mode [Liao96]
intégration du dépliage de boucle et de l’allocation de
registres [Nicolau]
allocation en présence de plusieurs bancs mémoire
[Sudarsanam95]
compaction de code [Leupers95, Leupers99]
assignation d’adresse pour une utilisation optimisée
des unités de génération d’adresse [Liao95,Leupers96,
Sudarsanam97,Basu99]
sélection de code à partir de graphes [Leupers99]
...
Ecole thématique Seix - Novembre 2000 - F. Charot
n
28
n14
n
n
Exploitation des calculs d’adresse
Champ instruction
Paramètres:
Paramètres:
k = # registres d’adresse
m = # registres de modification
1
Métrique de coût pour les
operations UGA:
File de
registres
d’adresse
+/-
operation
coût
immediate AR load
1
immediate AR modify
1
auto-increment/decrement 0
.......
File de
registres
de modification
mémoire
mémoire
Ecole thématique Seix - Novembre 2000 - F. Charot
29
Conséquence d’un arrangement
optimisé de la mémoire
Variables dans un bloc de base:
Séquence d’accès:
accès:
V = {a, b, c, d}
S = (b, d, a, c, d, c)
0
1
2
3
aa
bb
cc
dd
Load AR,1
AR += 2
AR -= 3
AR += 2
AR ++
AR --
cost: 4
;b
;d
;a
;c
;d
;c
0
1
2
3
bb
dd
cc
aa
Ecole thématique Seix - Novembre 2000 - F. Charot
n
Load AR,0
AR ++
AR +=2
AR -AR -AR ++
;b
;d
;a
;c
;d
;c
cost:30 2
n15
n
n
Assignation d’adresse
pour un unique registre d’adresse
Séquence d’accès : b d a c d c
aa
11
cc
bb
11
11
22
dd
Graphe
d’accès
bb
11
cc
11
dd
22
bb
dd
cc
aa
0
aa
Chemin de poids
maximum
1
2
3
mémoire
Recherche du chemin (heuristique)
Ecole thématique Seix - Novembre 2000 - F. Charot
[Bartley,
31 1995]
1992, Liao,
Exploitation du parallélisme
de niveau instruction
Transfert vers plusieurs registres possible dans la même instruction
AGU
address
register file
3
16
TR
bus
exchange
16 program bus
controller
data RAM
(256 x 16)
ARP
multiplier
PR
32
16
16
shifter
MUX
ALU
32 ACCU
shifter
program ROM
data
bus
16
(4096 x 16)
Ecole thématique Seix - Novembre 2000 - F. Charot
n
’C25
32
n16
n
n
Exploitation du parallélisme
de niveau instruction
u(n) = u(n - 1) + K0 × e(n) + K1 × e(n - 1);
e(n - 1)= e(n)
De 9 à 7 cycles après compaction
ACCU
TR
PR
TR
e(n - 1)
ACCU
PR
ACCU
u(n)
:= u(n - 1)
:= e(n - 1)
:= TR × K1
:= e(n)
:= e(n)
:= ACCU + PR
:= TR × K0
:= ACCU + PR
:= ACCU
ACCU:= u(n - 1)
TR := e(n - 1)
PR
:= TR × K1
e(n - 1):= e(n) || ACCU:= ACCU + PR
|| TR:= e(n)
PR
:= TR × K0
ACCU:= ACCU + PR
u(n)
:= ACCU
Ecole thématique Seix - Novembre 2000 - F. Charot
33
Exploitation du parallélisme
de niveau instruction
n
n
Ordonnancement local pour les blocs de base
•
ordonnancement par liste
•
programmation linéaire en nombres entiers
Ordonnancement global pour exploiter le
parallélisme de l’architecture
•
ordonnancement de traces (VLIW) [Fisher,85]
trace : séquence de blocs de base (sur la base de
probabilité d ’exécution de branchement conditionnel)
–
•
ordonnancement de super-bloc [Hwu,93]
super-bloc : région de programme à un point
d ’entrée
–
Ecole thématique Seix - Novembre 2000 - F. Charot
n
34
n17
n
n
Ordonnancement global : mouvement
de code en présence de conditionnelle
profitable
spéculatif
Copie (bas, haut)
Remontée (bas,
haut)
instruction avant mouvement
Ecole thématique Seix - instruction
Novembre 2000
- F. Charot
après
mouvement
35
Optimisation globale : les boucles
A
A
N
A
B
B
N/2
A
N-1
B
A
B
B
Pipeline logiciel
Ecole thématiqueDépliage
Seix - Novembre 2000 - F. Charot
n
36
n18
n
n
Bancs mémoire multiples
X0
X1
Y0
Y1
X-Mem
De UGA
ou immediat
Y-Mem
De UGA
ou immediat
Multiplieur
ALU
Décal.
A
Décal.
Mouvement de
donnée en parallèle
possible si différents
bancs mémoire sont
utilisés
Ecole thématique Seix
B - Novembre 2000 - F. Charot
37
Bancs mémoire multiples
Code Précompacté
(variables symboliques
et registres)
move v0,r0 v1,r1
move v2,r2 v3,r3
Etiquetage d’un graphe de contraintes
Ne pas
assigner
au même
registre
utilisation du recuit simulé
v0
v1
{X-Mem,
Y-Mem}
r0
r1
{X0,X1,Y0,
Y1, A,B}
v2
v3
{X-Mem,
Y-Mem}
r2
r3
{X0,X1,Y0,
Y1, A,B}
[Sundarnanam,
Sundarnanam, 95]
Ecole thématique Seix - Novembre 2000 - F. Charot
n
38
n19
n
n
Allocation de registres
par coloriage d’un graphe d’interférence
valeur
V1
V2
V3
V4
V5
V6
durée de vie
_____
___________
______
_______
_________
V4
________
___
V6
V2
V1
N registres
trouver un coloriage utilisant N couleurs
V5
V3
Ecole thématique Seix - Novembre 2000 - F. Charot
39
Technique du routage de données
Calcul d’une solution à partir des routes possibles
MX
MUX
RAM
donnée
MUX
ALU
multiplier
shifter
AR
ACC
Ecole thématique
Seix - Novembre
- F. Charot
donnée
de AR 2000
utilisée
par le
n
multiplieur
40
n20
n
n
Etape clé dans tout compilateur :
la sélection de code
load
MEM
load
MEM
*
load
load
MEM
MEM
*
mul
mul
mac
add
+
mac
Ecole thématique Seix - Novembre 2000 - F. Charot
41
Sélection de code par analyse d’arbre (1)
Spécification d’un grammaire pour générer un analyseur
iburg* :
terminals: {MEM, *, +}
non-terminals: {reg1,reg2,reg3}
start symbol: reg1
rules:
“add” (cost=2): reg1 -> + (reg1, reg2)
“mul” (cost=2): reg1 -> * ( reg1,reg2)
“mac” (cost=3): reg1 -> + (*(reg1,reg2), reg3)
“load” (cost=1): reg1 -> MEM
“mov2”(cost=1): reg2 -> reg1
“mov3”(cost=1): reg3 -> reg1
* C.W.
Ecole thématique Seix - Novembre 2000 - F. Charot
n
Fraser et al., 1992
42
n21
n
n
Sélection de code par analyse d’arbre (2)
reg1:load:1
reg2:mov2:2
reg3:mov3:2
“load”(cost=1):
reg1 -> MEM
“mov2”(cost=1):
reg2 -> reg1
“mov3”(cost=1):
reg3 -> reg1
MEM
MEM
“add” (cost=2):
reg1 -> +(reg1, reg2)
“mul” (cost=2):
reg1 -> *(reg1,reg2)
“mac” (cost=3):
reg1->+(*(reg1,reg2), reg3)
*
MEM
reg1:mul:5
reg2:mov2:6
reg3:mov3:6
Ecole thématique Seix - Novembre 2000 - F. Charot
+
MEM
*
reg1:add:13
43
reg1:mac:12
Sélection de code par analyse d’arbre (3)
load
MEM
load
MEM
load
load
MEM
MEM
mov2
mov2
Inclut le routage
de données
entre registres
*
*
mul
mov3
mac
+
reg1:add:13
reg1:mac:12
Ecole thématique Seix - Novembre 2000 - F. Charot
n
44
n22
n
n
Plan de la présentation
n
Quelques aspects concernant la production de logiciel pour les
systèmes enfouis
Compilateurs pour processeurs embarqués
n
Compilateurs reciblables
n
Motivations pour des compilateurs reciblables
Quelques exemples
n
n
Approche ARMOR/CALIFE
Conclusion
Ecole thématique Seix - Novembre 2000 - F. Charot
45
Compilateur reciblable versus
compilateur standard
Compilateur standard
Programme
Compilateur
standard
incluant
modèle
de machine
Compilateur
reciblable
Programme
Exécutable
Ecole thématique Seix - Novembre 2000 - F. Charot
n
Modèle
de machine
Compilateur
reciblable
Exécutable
46
n23
n
n
Flexibilité d’un compilateur
adaptation par choix
d’options de compilation
niveau 1
gestion externe
du modèle de processeur
reciblage par adaptation des algorithmes
à un modèle de processeur
niveau 2
gestion externe
du flot de compilation
reciblage par adaptation du flot de
compilation au processeur
flexibilité
niveau 3
gestion externe
des passes de compilation
reciblage par construction assistée des
niveau 4
passes de compilation + structuration
Ecole thématique Seix - Novembre 2000 - F. Charot
47
Pourquoi le reciblage ?
n
Nécessaire pour supporter la génération de code pour ASIP
Calcul/watt
ASIC
ASIP (bon compromis)
10x+2
10x+1
10x
Processeur standard
Seconde génération de produit
Première génération de produit
Ecole thématique Seix - Novembre 2000 - F. Charot
n
année
48
n24
n
n
Pourquoi les ASIP sont-ils utilisés ?
Processeurs
Trimedia VLIW
EPICS
Philips
Applications
Multimédia
GSM
STMicroelectronics DSP D950 +
coprocesseur
Vidéophone
GSM, modem
Italtel 1
DSP ASIP
Station de base GSM
FT R&D2
ASIP DSP LIW
Terminal main libre
(1) Réduction du volume (2 ASIP au lieu de 8 DSP)
et de la fréquence d’horloge (facteur 5 à 10)
(2) Réduction de 50% de la consommation par rapport à des
solutions commerciales (plus de parallélisme, fréquence horloge
réduite)
Ecole thématique Seix - Novembre 2000 - F. Charot
49
EPICS : architecture reconfigurable
X Mem. Unit
XXALU RAM
XA
YA
Y Mem.Unit
Register
File
X/Y
Ports
Data
I/O
Unit
Arithm.
Unit
Z
Port
Host
Control
Unit
Program
Control
Y
YALU RAM
BUS
Interface
Unit
XD
YD
ZD
ZA
n
RAM
Ecole thématique Seix - Novembre 2000 - F. Charot
Loop
Control
Unit [Woudsma, 94]
50
n25
n
n
EPICS : caractéristiques
dépendantes de l’application
n
n
n
n
n
n
n
Mémoire : types et taille
Largeur des données et adresses en bit
file de registres optionnelle
unité de contrôle de boucle optionnelle
interfaces paramétrables
utilisation de générateurs de SRAM et ROM
… ..
Approche intermédiaire entre l’ASIP et le cœ ur standard
Ecole thématique Seix - Novembre 2000 - F. Charot
51
Pourquoi le reciblage ?
n
n
n
Produire rapidement des compilateurs
pour une large palette de processeurs, de
façon économique
Comparer différentes architectures
Fournir une meilleure compréhension de
l’interdépendance entre architecture et
compilateur
Ecole thématique Seix - Novembre 2000 - F. Charot
n
52
n26
n
n
GCC : Gnu C Compiler
n
optimisations indépendantes
de l’architecture cible
•
•
•
•
n
n
élimination des sousexpressions communes
élimination du code mort
propagation de constantes
...
C, C++
description
de l’architecture
large diffusion du code source
inadapté aux DSP, ASIP
frontal
code intermédiaire
optimisation globale
ordonnancement
allocation de registres
optimisations peephole
assembleur
Ecole thématique Seix - Novembre 2000 - F. Charot
assembleur
53
Record
n
n
n
université de Dortmund
cible une classe de DSP
MODULE register (IN input : (15:0);
OUT output : (15:0);
modélisation structurelle
IN enable : Bit; CLK clock : Bit)
de la cible (Mimola)
VAR reg : (15:0)
MODULE ual (IN A,B : (15:0));
IN Ctrl :(1:0);
OUT Res : (15:0))
CONBEGIN
Res <- CASE Ctrl OF
0 : A+B;
1 : A-B;
2 : A AND B;
3:A;
END;
CONEND;
CONBEGIN
CASE enable OF
0 : NONLOAD;
1 : AT clock UP DO reg := input;
END;
output <- reg;
CONEND;
CONNECTIONS
ual.Res -> register.input
...
Ecole thématique Seix - Novembre 2000 - F. Charot
n
54
n27
n
n
Record : flot de compilation
Ecole thématique Seix - Novembre 2000 - F. Charot
55
Chess
n
n
n
Target compiler technologies (http://www.retarget.com)
cible DSP
modélisation comportementale de la cible
Idée: partir du manuel de référence
format opcode operands
opn exa (alu_sh_inst
0 0 ......
......
| macc_inst
| shift_inst);
......
0 1 ......
format opcode operands
opn alu_sh_inst ( ....
1 0 .......
.......
);
opn macc_inst ( ....);
format opcode operands
opn shift_inst ( ... );
1 1: .......
.......
Ecole thématique Seix - Novembre 2000 - F. Charot
n
56
n28
n
n
Chess
n
ISG : modèle combiné du jeu d’instructions et du chemin de
donnée, base pour la sélection de code
Ecole thématique Seix - Novembre 2000 - F. Charot
57
SPAM
n
n
université de Princeton (http://www.ee.princeton.edu/spam)
bibliothèque d’algorithmes de génération et
optimisation de code pour DSP
allocation
de ressources
autres
compactage
optimisations
Informations
sur l’architecture
niveau application
bloc de base
procédure
programme
niveau représentation
niveau assembleur Classes C++
Ecole thématique Seix - Novembre 2000 - F. Charot
n
Informations
annexes
fichier de
configuration
58
n29
n
n
FlexCC
n
STMicroelectronics
registres
et modes d’utilisation
code source C
sélection de code
code machine virtuelle
règles d’optimisation
optimisations
règles de ciblage
sélection d’instructions
contraintes
compactage
informations
sur
l’architecture
Ecole thématique
Seix - Novembre 2000 - F. code
Charot machine
59
SUIF
n
n
n
n
n
université de Stanford (http://www.suif.stanford.edu)
à la base de la National Compiler Infrastructure
regroupe Harvard, Rice, Stanford, UCSB, ...
optimisation de code source, parallélisation
niveau d’abstraction du format intermédiaire
Ecole thématique Seix - Novembre 2000 - F. Charot
n
60
n30
n
n
AVIV/ISDL
nMIT
=
narchitecture
Sn-DAG
Sn-DAG
VLIW
=
a
bloc de base
u1
a
nœ ud de transfert
b
architecture cible
b
+
c
d
R1
R2
R3
U1
add
sub
U2
add
mul
U3
add
+
u1
+
u2
+
u3
MEM
c
d
mémoire
Ecole thématique Seix - Novembre 2000 - F. Charot
61
AVIV/ISDL
n
Une description ISDL comporte les sections suivantes
•
•
•
•
n
format du mot d’instruction
déclaration des ressources de mémorisation, avec leur taille et
leur largeur en bits
instructions du processeur, informations sur la syntaxe
assembleur, le masque binaire, la sémantique, la taille et la
durée d'exécution
spécification explicite des contraintes imposées par
l'architecture (limitations de parallélisme dues au codage du
jeu d'instructions)
Deux bases de données sont construites
•
•
mise en relation des opérations de base avec toutes les
instructions du processeur susceptibles de les implémenter
transferts de données autorisés par le processeur
Ecole thématique Seix - Novembre 2000 - F. Charot
n
62
n31
n
n
Cosy
n
n
n
n
Développé par ACE (http://www.ace.nl)
Résultat des projets esprit Prepare et Compare
C, C++ DSP-C
Points forts
•
•
n
organisation des passes de compilation
complet (générateur de générateur de code,
optimisation de boucles)
Points faibles
•
adaptation aux DSP et ASIP ?
Ecole thématique Seix - Novembre 2000 - F. Charot
63
Plan de la présentation
n
Quelques aspects concernant la production de logiciel pour les
systèmes enfouis
Compilateurs pour processeurs embarqués
Compilateurs reciblables
n
Approche Armor/Calife
Armor/Calife
n
n
Modélisation des processeurs en Armor
Plate-forme de compilation Calife
n
Conclusion
Ecole thématique Seix - Novembre 2000 - F. Charot
n
64
n32
n
n
Le langage Armor
n
Comportement du jeu d’instructions
•
•
•
n
n
sémantique opérationnelle
utilisation des ressources
parallélisme interne
Pas d’informations sur la forme
Concision -> factorisation des
informations
•
réinvestissement des principes de nML
Ecole thématique Seix - Novembre 2000 - F. Charot
65
Structure du jeu d’instructions
Tms320c6x
instructionSet =
[
inst || inst || inst || inst
|| inst || inst || inst || inst
]
gp inst = add | sub | ...
Ecole thématique Seix - Novembre 2000 - F. Charot
n
66
n33
n
n
Structure du jeu d’instructions
D950
Instructions comprenant une opération arithmétique
avec des load/store éventuels :
gp ALUo2_LDSTopt =
[ st_YM_1 || ALUo2_3
[ st_YM_1 || ALUo2_3
[ ALUo2_3 || ld_XM_1
[ st_XM_1 || ALUo2_4
[ st_XM_1 || ALUo2_4
[ ALUo2_4 || ld_YM_1
|| ld_XM_1 ] |
]
|
]
|
|| ld_YM_1 ] |
]
|
]
Ecole thématique Seix - Novembre 2000 - F. Charot
67
Flot de données
r
ALU
MP
ADDMUL r,r,r,r
df
op
op
op
op
asmul is { r=mul(adsub(r,r),r) }
adsub = add | sous
add(x,y) is ADD(x,y) <ress=ALU>
sous(x,y) is SUB(x,y) <ress=ALU>
mul(x,y) is MUL(x,y) <ress=MP>
SUBMUL r,r,r,r
fu ALU <cycle=1>
fu MP <cycle=2>
regFile r(16,word) <access Rd=1 Wr=2>
type word is integer(32)
Ecole thématique Seix - Novembre 2000 - F. Charot
n
68
n34
n
n
Unités de génération d’adresses
df load is {r=mem[ad]}
address ad = simple
| postmod
address simplep is AR
address postmod is
AR%i{opAd(AR%i,src)}
op opAd = inc | dec
op inc(x,y) is
ADD(x,y) <ress=UGA_UAL>
mode src = IR | const(1)
Ecole thématique Seix - Novembre 2000 - F. Charot
69
Adéquation application/
architecture/compilateur
Application
Processeur
optimisé
Outils de
compilation
Ecole thématique Seix - Novembre 2000 - F. Charot
n
70
n35
n
n
Adéquation application/
architecture/compilateur
Compilateur
Application
Processeur
candidat
Modèle
asm
Statistiques
Simulateur
Ecole thématique Seix - Novembre 2000 - F. Charot
71
Compilation flexible
main () {
... a = b + c; ...
}
Code C
Chemin de
données
mems
Compilateur
flexible
Contrôleur
+ jeu d’instructions
load r1,b
load r2, c
add r3,r1,r2
store a
Processeur cible
Code assembleur
Ecole thématique Seix - Novembre 2000 - F. Charot
n
72
n36
n
n
Flexibilité : approche courante
n
Documentation
du processeur
n
Modèle
descriptif
Reciblage rapide
Pas de compétences
en compilation
100
0
n
Séquence de
transformations
de code
Gamme
architecturale
restreinte
Ecole thématique Seix - Novembre 2000 - F. Charot
Qualité du
code
73
Notre approche de flexibilité :
au niveau du flot de compilation
Langage C
Assembleur optimisé
Ecole thématique Seix - Novembre 2000 - F. Charot
n
74
n37
n
n
Fondements de CALIFE
n
Créer des transformations génériques
n
Offrir un moyen de les paramétrer
•
n
description du processeur
Offrir un moyen de les assembler
•
plate-forme commune
Ecole thématique Seix - Novembre 2000 - F. Charot
75
Bibliothèque CALIFE
Passerelles
Modèle
central
Sousmodèles
Informations chargées
à l’exécution
Algorithmes
Boîte à outils
Armor
Représentation du programme
Ecole thématique Seix - Novembre 2000 - F. Charot
n
76
n38
n
n
CALIFE en résumé
bibliothèque
ARMOR
ARMOR
compilateur
passerelles
sélection de code
informations
spécialisées
allocation de registres
code
code
source
source
code
code
machine
machine
optimisé
optimisé
ordonnancement
Ecole thématique Seix - Novembre 2000 - F. Charot
77
Plan de la présentation
n
Quelques aspects concernant la production de logiciel pour les
systèmes enfouis
Compilateurs pour processeurs embarqués
Compilateurs reciblables
Approche Armor/Calife
n
Conclusion
n
n
n
Ecole thématique Seix - Novembre 2000 - F. Charot
n
78
n39
n
n
Conclusion
n
n
n
n
Tendance marquée vers les cœ urs en général et les cœ urs
de processeurs embarqués en particulier.
Les compilateurs pour processeurs embarqués ont du mal à
générer du code de qualité. Les travaux récents montrent
que des améliorations sont possibles.
Les compilateurs reciblables offrent un support pour les
ASIP, mais également pour sélectionner le processeur
adéquat et comprendre le processus de reciblage.
Les compilateurs reciblables doivent être interfacés à
d’autres outils (outils de CAO, de synthèse, de
parallélisation)
Ecole thématique Seix - Novembre 2000 - F. Charot
n
79
n40
Téléchargement