Master 2004perso.citi.insa-lyon.fr/afraboul//master/chap2.pdfMaster 2004 Plan Architecture...
Embed Size (px)
Transcript of Master 2004perso.citi.insa-lyon.fr/afraboul//master/chap2.pdfMaster 2004 Plan Architecture...

- p. 1/43
Conception et systèmes embarquéscomplexes
Master 2004
Antoine Fraboulet, Tanguy [email protected], [email protected]
Lab CITI, INSA de Lyon, Lab LIP, ENS de Lyon

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
- p. 2/43
Master 2004
Conception de systèmesembarqués complexes
Antoine FRABOULET, Tanguy RISSET

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
- p. 3/43
Plan
1. Architecture matérielle2. Organisation logicelle3. Méthodes de conception4. Plateforme SocLib

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 4/43
Présentation
■ Architecture des systèmes embarqués◆ Processeur◆ Mémoires◆ Système à bus◆ Périphériques◆ Communications

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 5/43
Compilation et interprétation
Langage de haut niveauint a,b,c;a = b + c;
Assembleurint a,b,c;
load R0, @bload R1, @cadd R3,R0,R1store R3, @a
Binaire01001011...1010101001010...10001
...10010011...00011

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
Mémoire

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
16 adresse de boot

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
load R0,[36]
16

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
7
16
load R0,[36]

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
20
load R1,[40]

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
load R1,[40]
20
10

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
add R3,R0,R1
24

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
add R3,R0,R1
24
7
+
10

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
add R3,R0,R1
24
17

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
28
store R3,[44]

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 6/43
Processeur - Mémoire
8
3
3 3
RI
décodeur
MémoirePC
1620
840
2428323640444852566064687276
load R0,[36]load R1,[40]add R3,R0,R1store R3,[44]
xx
710
store R3,[44]
28
17
17

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 7/43
Processeur
■ L’adresse de démarrage (boot) d’un processeur est fixéematériellement
■ Le processeur accède directement à la mémoire■ La mémoire contient le code et les données■ La suite des instructions est interprétée depuis la mémoire
■ Les systèmes embarqués fonctionnent souvent avec desmémoires non volatiles (re-)programmables.◆ mémoire flash◆ eeprom◆ . . .
■ Cette mémoire peut être reprogrammé en téléchargeant unenouvelle version du logiciel depuis une autre machine.

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 8/43
Interconnexion des Entrées / Sorties
proc. mémoire

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 8/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 9/43
Interconnexion des Entrées / Sorties
Choix architecturaux:■ Instructions d’E/S
◆ Instructions spéciales (in, out)◆ Espace d’adressage séparé de la mémoire de données◆ Exemple : intel x86
■ E/S mappées en mémoire◆ Une tranche d’adresse est allouée à chaque périphérique◆ Utilisation des instructions de lecture, écriture◆ Cas le plus souvent rencontré

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC
1:
2:
0x00000C0x00FFFC
0x02000FC0x020FFFC
......
0x025FFFC0x02300FC3: 5 4 3
21

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Lecture à l’adresse 0x0000FC
1:
2:
0x00000C0x00FFFC
0x02000FC0x020FFFC
......
0x025FFFC0x02300FC3: 5 4 3
21
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
1

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
5
1
4
2
3

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 10/43
Interconnexion des Entrées / Sorties
proc. mémoire
mémoire 2 dma réseaux
écran
contrôleur
Ecriture à l’adresse 0x02301FF
1: 0x00000C0x00FFFC
2: 0x02000FC0x020FFFC
3: 0x02300FC0x025FFFC
......
5
1
4
2
3

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 11/43
Interconnexion des Entrées / Sorties
Rôle de l’arbitre de bus (contrôleur) :■ Gérer les accès si plusieurs composants veulent écrire
simultanément sur le bus■ Gérer la destination des écriture en fonction des adresses
◆ Le contrôleur connaît donc la cartographie mémoire(mapping) distribuée entre les composants
◆ Cette carte mémoire est définie lors de la conception dusystème
■ Le logiciel doit connaître ces adresses pour accéder auxpériphériques et les contrôler

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 12/43
Périphériques
registres dedonnée
registresd’état
électronique
de contrôle E/Sbu
s sy
stèm
e

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 13/43
Périphériques
■ Un périphérique est un bloc pouvant être manipulé parl’intermédiaire de ses registres de contrôle et de données.
■ Il existe différents type de périphériques◆ maîtres : peuvent initier une communication sur le bus◆ esclave : ne peuvent que répondre à une requête de
lecture et/ou d’écriture◆ certains composants peuvent avoir les deux interfaces
(DMA par exemple)

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 14/43
Écriture de pilotes de périphériques
■ Un pilote (driver) est la partie logicielle permettant de fairefonctionner un périphérique
■ Les pilotes sont spécifiques aux périphériques◆ Adresses mémoires (décalage par rapport à une base) :
ports de communications et registres◆ Connaissances des mécanismes de communications :
automates de fonctionnement■ Les pilotes sont également liés au système d’exploitation

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 15/43
Écriture de pilotes de périphériques
Les communications avec les périphériques nécessitent unaccès aux adresses mémoires réelles.#define ALPHA_IN 0x40000000
#define ALPHA_OUT 0x41000000
static inline void write(int v)
{
*ALPHA_IN = v;
}
static inline int read()
{
return *ALPHA_OUT;
}

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 16/43
Communication avec les périphériques
Scrutation, attente active■ le processeur est en boucle de lecture sur un registre d’état■ la valeur de ce registre indique si le périphérique peut
accepter une nouvelle lecture ou écriture#define OUT_DATA 0x1000
#define STATUS_REG 0x1001
char s[]="hello.";
char *ptr = s;
while (*ptr != 0) {
write(OUT_DATA,*ptr);
while (read(STATUS_REG) != 0);
ptr++;
}

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 17/43
Communication avec les périphériques
■ Les communications par scrutation sont simples àprogrammer
■ Le débit de transfert des E/S est limité par la vitesse duprocesseur
■ La latence de traitement dépend de la période de scrutationdu périphérique
■ Le processeur prend en charge tout le transfert

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 18/43
Communication avec les périphériques
Mécanisme d’interruptions■ Le périphérique peut signaler au processeur qu’il a fini une
action■ Nécessite un cablâge supplémentaire pour la signalisation■ Une interruption peut arriver à n’importe quel moment dans
le déroulement du programme s’exécutant sur le processeur■ Changements de contextes
1. Terminaison de l’instruction en cours
2. Sauvegarde de l’état du processeur3. Exécution du gestionnaire d’interruption4. Restauration de l’état précédent5. Reprise du fonctionnement normal

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 19/43
Communication avec les périphériques
registres de
donnée
registres
d’état
électronique
de contrôle E/Sbus données
interruptionacquittement

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 20/43
Communication avec les périphériques
Programmeutilisateur
Gestionnaired’interruption
...
...
arrivée
interruption
...
Changements de contextes

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 21/43
Changement de contexte
La gestion des interruptions nécessite un support duprocesseur.■ Le processeur empile son registre PC et son registre d’état
dans une pile d’exécution à l’adresse [base] et [base+4]■ Le registre CP est modifié pour pointer sur une adresse
prédéfinie : le gestionnaire d’interruption■ Le code ainsi appelé commence par sauvegarder les
registres du processeur dans la mémoirestore r0, [base+8]store r1, [base+12]...store r31, [base+132]

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 22/43
Changement de contexte
■ Le gestionnaire d’interruption peut alors appeler la fonctionprévue pour traiter l’interruption.
■ Lorsque le traitement est terminé, on restaure le contenudes registres sauvegardés dans la pile
■ La dernière action à effectuer est la restauration du registred’état suivie d’un saut à l’adresse [base].

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 23/43
Communication avec les périphériques
■ Les changements de contextes ont un coût non négligeableen nombre de cycles. Il est parfois plus avantageux, pour lespetits transferts de données, de faire de la scrutation.
■ Les interruptions permettent de libérer le processeurs enattendant qu’un périphérique ne se signale
■ Il faut une ligne d’interruption par périphérique■ Ces lignes sont connectées sur un contrôleur
d’interruption◆ mise en place de priorités◆ vectorisation des interruptions : le processeur demande
au contrôleur quelle est le périphérique qui a générél’interruption

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 24/43
Communications efficaces : DMA
Pour les transfers de gros volumes, il faut de préférence utiliserun DMA (Direct Memory Access).1. Le processeur configure le DMA (adresses et taille de
transfert)
2. Le DMA prend la main sur le bus et déplace les données3. Une interruption est générée à la fin du transfert

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 25/43
Architectures complexes
Memoire
Externe
Interfaces E/S
ROM
Interfaces E/S
DSP
mem
RAMASIC
Processeur

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 26/43
Architectures complexes
■ Architecture hiérarchique : connexion de bus■ Nombre de composants importants■ Mémoire distribuée sur plusieurs modules■ Pas de limite en complexité

● Master 2004
● Plan
Architecture
● Présentation
● Compilation et interprétation
● Processeur - Mémoire
● Interconnexion des Entrées /
Sorties● Périphériques
● Écriture de pilotes de
périphériques
● Communication avec les
périphériques
● Communication avec les
périphériques● Architectures complexes
● Technologie cible : System on
Chip
Organisation Logicielle
Méthodes de conception
SocLib
- p. 27/43
Technologie cible : System on Chip

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 28/43
Organisaiton logicielle
■ Gestion des ressources■ Utilisation de la mémoire■ Utilisation des périphériques

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 29/43
Contraintes des logiciels
■ Les sytèmes n’intégrent en général pas de protectionmémoire◆ Tout l’espace d’adressage est accessible depuis
l’applicatif◆ Nécessiter d’avoir un programme fiable et “sans bug”
■ La programmation en assembleur reste présente au moinspour les pilotes et les couches basses
■ Le reste peut être écrit en langage de haut niveau et compilé
■ Une part importante du temps de conception est passéedans la mise au point du logiciel et du matériel

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 30/43
Systèmes d’exploitation
Système d’exploitations pour l’embarqué:■ Windows CE■ Wind River VxWorks■ Symbian■ Qnx■ Linux, µcLinux, RTLinux . . .■ OS propriétaires

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 31/43
Systèmes d’exploitation
■ Système applicatifs : API de manipulation de matériel, uneseule application
■ Systèmes à commutation de tâches : temps partagé entreplusieurs programmes◆ coopératif, préemptif◆ tables des tâches statique / dynamique◆ gestion de priorité / temps réél
■ Ajout d’une interface homme-machine◆ Prise en compte des interactions, interruptions
■ Ajout d’un système de fichier / support de stockage◆ Possibilité de rajouter des programmes (et de les charger)
■ Ajout d’une topographie mémoire (segmentation /pagination)◆ mémoire virtuelle◆ protection mémoire entre applications→ Unix

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 32/43
Systèmes multitâches
■ Coopératif◆ L’application “rend la main”
■ Appels système bloquants (mutex par exemple)■ Demande explicite
■ Préemptif◆ Un timer matériel génère une interruption périodique◆ Le rôle du gestionnaire d’interruption est de choisir le
prochain processus à être exécuté■ Gestions de priorité■ Notions de temps réel

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 33/43
Contraintes des systèmes
■ Empreinte mémoire minimale■ Commutation de contexte rapide (latence)■ Gestion des tâches (ordonnancement)■ Gestion multiprocesseur (synchronisation)■ API de communication entre les applications souple■ Possibilité de communiquer facilement entre matériel et
logiciel

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 34/43
Chaîne logicielle
code asmassembleur
obj
liensédition des
exechargement
compilateur
Simulation
Exécution

● Master 2004
● Plan
Architecture
Organisation Logicielle
● Organisaiton logicielle
● Contraintes des logiciels
● Systèmes d’exploitation
Méthodes de conception
SocLib
- p. 35/43
Chaîne logicielle
Les étapes de compilation de l’application dépendent de lanature du système cible■ Cross compilation classique pour les gros systèmes :
l’application peut-être ajoutée dynamiquement au système■ Intégration du système à l’édition des liens : le chargement
remplace tout à chaque fois

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
● Conception de système
● Méthodologie de conception
● Méthodologie de conception
SocLib
- p. 36/43
Conception de système
Le matériel et le logiciel peuvent être séparés, il faut lesprendre en compte dans un processus de codesign.■ Modélisations du système complet
◆ Étude des fonctionnalités et des tâches concurrentes■ Partitionnement Matériel / Logiciel
◆ Hypothèses architecturales◆ Choix du processeur◆ Choix de l’interface◆ Estimation des contraintes physiques et économiques
■ Modélisation Matérielle/Logicielle, Validation◆ Analyser la fonctionnalité en fonction des choix◆ Validation de fonctionnement et du respect des
contraintes

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
● Conception de système
● Méthodologie de conception
● Méthodologie de conception
SocLib
- p. 37/43
Méthodologie de conception
Spécifications, contraintes et critères
PartitionnementfonctionnelleAnalyse
Assignation
dehaut niveau
Estimations
Algorithmes et architecture
d’architecture
Ébauche Modèles decomposantsarchitecturaux

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
● Conception de système
● Méthodologie de conception
● Méthodologie de conception
SocLib
- p. 38/43
Méthodologie de conception
Intérêts du «codesign»■ Conception rapide de SoC : time to market
◆ Cycle de conception de haut niveau pour réduire lestemps d’estimations des solutions
■ Réduire la difficulté de validation et déboguage◆ Réutilisation d’IP◆ Modules reconfigurables
■ Converger vers une solution optimale en fonction descontraintes de départ

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
● Conception de système
● Méthodologie de conception
● Méthodologie de conception
SocLib
- p. 39/43
Méthodologie de conception
■ La conception nécessite d’avoir une modélisation complète■ Approche logicielle
◆ les objets migrent vers le HW jusqu’à ce que lescontraintes de performances soit atteintes (pour un coûtminimum)
■ Approche matérielle◆ les objets migrent en SW tant que les contraintes de
performances restent atteintes (pour un coût minimum)■ Le meilleur partitionnement nécessite en général l’expertise
d’un concepteur.

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
● SocLib
● Architecture de la
démonstration● Organisation logicielle
● Utilisation de l’ensemble
- p. 40/43
SocLib
http://soclib.lip6.fr/■ Environnement de conception et de simulation gratuit et
open source■ Utilise des modèles de composants écrits en SystemC
◆ processeur◆ interconnexion◆ périphériques◆ . . .
■ Utilisation d’une chaîne de compilation standard (GNU)

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
● SocLib
● Architecture de la
démonstration● Organisation logicielle
● Utilisation de l’ensemble
- p. 41/43
Architecture de la démonstration
I
MISP 3000
D
RAM
sémaphores
Interconnexion
CacheRAM
TTY
RAM multi bancs
filtre audio

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
● SocLib
● Architecture de la
démonstration● Organisation logicielle
● Utilisation de l’ensemble
- p. 42/43
Organisation logicielle
■ Système d’exploitation multithread : Mutek◆ Gestion de l’API de thread Posix◆ Gestion des interruptions◆ Commutation de contexte rapide
■ Logiciel cross-compilé avec gcc■ Intégration du système avec l’applicatif à l’édition des liens

● Master 2004
● Plan
Architecture
Organisation Logicielle
Méthodes de conception
SocLib
● SocLib
● Architecture de la
démonstration● Organisation logicielle
● Utilisation de l’ensemble
- p. 43/43
Utilisation de l’ensemble
démonstration