Vous êtes sur la page 1sur 36

RTS6: Conception et programmation de

Systèmes Embarqués
cours 1: Introduction aux systèmes
embarqués

Antoine Fraboulet, Fabrice Jumel, Lionel Morel, Tanguy Risset


tanguy.risset@insa-lyon.fr
Lab CITI, INSA de Lyon

- p. 1/133

Plan du cours 1 (2H)

Introduction ■ Introduction générale aux systèmes embarqués


Processeurs embarqués
■ Architecture des processeurs embarqués
introduction au MSP 430

Présentation des SoC


■ Présentation rapides du MSP430
■ Systèmes sur puces

- p. 2/133
Introduction
● Un peu d’histoire
● Aujourd’hui

Processeurs embarqués

introduction au MSP 430

Présentation des SoC Un peu d’histoire

- p. 3/133

Un peu d’histoire

Introduction
● Un peu d’histoire
■ Fin du XIXème siècle : démonstration du potentiel des
● Aujourd’hui technologies électroniques pour les transmissions sans fil.
Processeurs embarqués
■ Seconde guerre mondiale
introduction au MSP 430
◆ Application au calcul (décryptage)
Présentation des SoC
◆ Premiers ordinateurs (ENIAC)

■ 1947-1954
◆ Invention puis commercialisation des transistors à
semi-conducteurs
◆ Les « transistors » remplacent les postes radio à tubes

■ Années 60 et 70: premiers circuits intégrés, LSI

- p. 4/133
Un peu d’histoire

Introduction
● Un peu d’histoire
■ 1960-2002
● Aujourd’hui ◆ Réduction des tailles de transistors (≃ 10000)
Processeurs embarqués ◆ Évolution anticipée (loi de Moore)
introduction au MSP 430 ◆ Industrie au coeur de la croissance économique des 50
Présentation des SoC
dernières années
◆ Augmentation exponentielle des performances

■ Puissance (Joy) :MIPS = 2


année−1984
■ Densité (Moore) :Transistors par puce = 2
année−1964
■ Densité des supports magnétiques «Maximal Areal

année−1971
Density» (Frank): MAD = 10 10
■ “Stagnation” des performances pour la rapidité d’accès

aux disques → RAID (multiplications des disques) et


caches.

- p. 5/133

Aujourd’hui

Introduction
● Un peu d’histoire
■ Circuits mixtes analogique/digital (télécommunications)
● Aujourd’hui
■ Micro-systèmes (capteurs, actionneurs intégrés)
Processeurs embarqués
■ Nano-technologies (horizon 5 à 10 ans)
introduction au MSP 430

Présentation des SoC


■ Taille de gravure: 90 nm
■ Coûts de R&D de plus en plus élevés
■ La demande (ordinateurs, téléphones mobiles, etc.) stagne
■ Peu de produits vraiment nouveaux (VHS => DVD,
caméscopes => numériques, téléphones fixes => mobiles)
■ Crise financière et économique des TIC

- p. 6/133
Introduction

Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques Processeurs embarqués
introduction au MSP 430

Présentation des SoC

- p. 7/133

Part de marché

Introduction ■ Quel est le le microprocesseur le plus vendu ?


Processeurs embarqués ◆ Réponse classique: "Le Pentium: 92% du marché"
● Processeurs embarqués
● Éconnomie
● ISA
■ Faux!......
● Pipeline ◆ En fait les Pentium ne représentent que 2% des
● Classification
● Charactéristiques microprocesseurs vendus dans le monde.
introduction au MSP 430

Présentation des SoC

- p. 8/133
Contradiction ?

Introduction ■ Alors d’ou vient la position d’Intel (16% du marché des


Processeurs embarqués
● Processeurs embarqués
semi-conducteurs) ?
● Éconnomie
● ISA
■ processeurs: 2% du silicium, 30% des revenus
● Pipeline
● Classification
● Charactéristiques

introduction au MSP 430

Présentation des SoC

- p. 9/133

Et au sein des processeurs

Introduction ■ 3 milliards de processeurs 8 bits vendus par an (8051, 6805


Processeurs embarqués
● Processeurs embarqués
etc.)
● Éconnomie
● ISA
■ 32 bits (Pentium, Athlon, mais aussi PowerPC, 68000, MIPS,
● Pipeline
● Classification
ARM etc.)
● Charactéristiques
■ La plupart (98%) sont embarqués (3 fois plus d’ARM vendus
introduction au MSP 430
que de Pentium)
Présentation des SoC

- p. 10/133
Variété des processeurs embarqués

Introduction

Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques

introduction au MSP 430

Présentation des SoC

■ Les applications sont plus variées que pour les ordinateurs


■ Beaucoup de processeurs embarqués sont des processeurs
de bureau qui n’ont pas percés (MIPS, 68K, SPARC, ARM,
PowerPC)

- p. 11/133

Une image en 2007

Introduction

Processeurs embarqués
● Processeurs embarqués
● Éconnomie
● ISA
● Pipeline
● Classification
● Charactéristiques

introduction au MSP 430

Présentation des SoC

- p. 12/133
Architecture "Von Neuman" ou "Princeton"

Introduction ■ La mémoire contient les données et les instructions


Processeurs embarqués
● Processeurs embarqués
■ L’unité centrale (CPU) charge les instructions depuis la
● Éconnomie
● ISA
mémoire.
● Pipeline
● Classification ■ Un ensemble de registres aide le CPU:
● Charactéristiques
◆ Compteur d’instructions (Program counter: PC),
introduction au MSP 430
◆ Registre d’instruction (Instruction register: IR)
Présentation des SoC
◆ Pointeur de pile (stack pointer: SP)
◆ Registres à usage général (Accumulateur: A)

Memory Proc

- p. 13/133

Architecture Harvard

Introduction ■ Données et instructions dans des mémoires séparées


Processeurs embarqués
● Processeurs embarqués
■ Autorise deux accès simultanés à la mémoire.
● Éconnomie
● ISA ■ Utilisé pour la plupart des DSP
● Pipeline
● Classification ◆ meilleure bande passante
● Charactéristiques
◆ Performances plus prédictibles
introduction au MSP 430

Présentation des SoC


Instruction Proc
Memory

Data
Memory

- p. 14/133
Le jeu d’instruction

Introduction ■ Le jeu d’instruction (Instruction Set Architecture: ISA) a une


Processeurs embarqués
● Processeurs embarqués
importance capitale
● Éconnomie ◆ Il détermine les instructions élémentaires exécutées par le
● ISA
● Pipeline CPU.
● Classification
● Charactéristiques ◆ C’est un équilibre entre la complexité matérielle du CPU
introduction au MSP 430 et la facilité d’exprimer les actions requises
Présentation des SoC
◆ On le représente de manière symbolique (ex: MSP, code
sur 16 bits):
mov r5,@r8 ; commentaire [R8]<-R5
lab: ADD r4,r5 ; R5<-R5+R4
■ Deux classes de jeux d’instructions:
◆ CISC: Complex Instruction Set Computer
◆ RISC: Reduce Instruction Set Computer

- p. 15/133

CISC: Complex Instruction Set Computer

Introduction ■ Une instruction peut designer plusieurs opérations


Processeurs embarqués
● Processeurs embarqués
élémentaires.
● Éconnomie Ex: un load, une opération arithmétique et un store,
● ISA
● Pipeline Ex: calculer une interpolation linéaire de plusieurs
● Classification
● Charactéristiques valeurs en mémoire.
introduction au MSP 430 ■ Accélération par des mécanismes matériels complexes
Présentation des SoC
■ Grandes variations de taille et de temps d’exécution pour les
instructions
■ Résulte en un code compact mais complexe à générer.
■ Vax, Motorola 68000, Intel x86/Pentium

- p. 16/133
Exemple: instructions de l’ISA du Pentium

Introduction JE EIP + displacement


4 4 8
Processeurs embarqués
JE Condition Displacement
● Processeurs embarqués
● Éconnomie
● ISA Call
● Pipeline 8 32
● Classification CALL Offset
● Charactéristiques

introduction au MSP 430 Mov $EBX, [EDI+displacement]


6 1 1 8 8
Présentation des SoC
MOV d w r−m postbyte Displacement

Push ESI
5 3

PUSH Reg

Add $EAX, Immediate


4 3 1 32

ADD Reg w Immediate

Test $EDX, Immediate


7 1 8 32

TEST w PostByte Immediate

- p. 17/133

RISC: Reduced Instruction Set Computer

Introduction ■ Petites instructions simples, toutes de même taille, ayant


Processeurs embarqués
● Processeurs embarqués
toutes (presque) le même temps d’exécution
● Éconnomie
● ISA
■ Pas d’instruction complexe
● Pipeline
● Classification ■ Accélération en pipelinant l’exécution (entre 3 et 7 étages de
● Charactéristiques
pipeline pour une instruction) ⇒ augmentation de la vitesse
introduction au MSP 430
d’horloge
Présentation des SoC
■ Code plus simple à générer, mais moins compact
■ Tous les microprocesseurs modernes utilisent ce paradigme:
SPARC, MIPS, ARM, PowerPC, etc.

- p. 18/133
Exemple: instructions de l’ISA du MSP

Introduction 1 operand instruction


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Processeurs embarqués
● Processeurs embarqués 0 0 B/W Ad
0 0 0 1 opcode Dest reg.
● Éconnomie
● ISA
● Pipeline
● Classification relative Jumps
● Charactéristiques 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

introduction au MSP 430


0 0 1 condition PC offset (10 bits)

Présentation des SoC

2 operands instruction
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Dest reg. Ad B/W As Dest reg.


opcode

Exemples:
■ PUSB.B R4

■ JNE -56

■ ADD.W R4,R4

- p. 19/133

Le CPU

Introduction ■ L’unité de contrôle configure le chemin de donnée suivant


Processeurs embarqués
● Processeurs embarqués
l’instruction à exécuter.
● Éconnomie
● ISA
■ L’exécution d’une instruction est décomposée en plusieurs
● Pipeline
● Classification
phases d’un cycle.
● Charactéristiques
Processor Datapath
introduction au MSP 430

ALU
Présentation des SoC
Control unit
control/Status
Register File

PC IR

Memory

- p. 20/133
Le pipeline RISC: exemple du MIPS

Introduction ■ Le pipeline dépend de l’architecture, pour le MIPS:


Processeurs embarqués ◆ Instruction Fetch (IF, Fetch):
● Processeurs embarqués
● Éconnomie charge l’instruction dans l’IR
● ISA
● Pipeline ◆ Instruction Decode (ID, Decode):
● Classification
● Charactéristiques décode l’instruction et met en place le contrôle du chemin
introduction au MSP 430 de donnée
Présentation des SoC
◆ Execute (Ex): exécute le calcul dans le chemin de
donnée.
◆ Memory access (Mem): accède la mémoire
◆ Write Back (WB): écrit dans le banc de registre

- p. 21/133

Le pipeline RISC: exemple du MIPS

Introduction ■ Physiquement, l’architecture du processeur est organisée en


Processeurs embarqués
● Processeurs embarqués
calculs combinatoires pour chaque étape de pipeline,
● Éconnomie séparés par des registres.
● ISA
● Pipeline
● Classification
● Charactéristiques

introduction au MSP 430

Présentation des SoC

- p. 22/133
Le pipeline RISC: exemple du MIPS

Introduction ■ Lorsque l’instruction suivante ne peut pas être exécutée tout


Processeurs embarqués
● Processeurs embarqués
de suite, cela crée une "bulle".
● Éconnomie
● ISA
■ Par exemple une addition utilisant un registre qui vient d’être
● Pipeline
● Classification
chargé doit être retardé d’un cycle.
● Charactéristiques

introduction au MSP 430

Présentation des SoC

- p. 23/133

Bilan architecture non pipelinée

Introduction ■ Exécution non pipelinée:


Processeurs embarqués ◆ 5 cycles pour exécuter une instruction
● Processeurs embarqués
● Éconnomie ◆ ⇒ 15 cycles pour 3 instructions.
● ISA
● Pipeline
● Classification
■ Exécution pipelinée:
● Charactéristiques ◆ 5 cycles pour exécuter une instruction
introduction au MSP 430 ◆ 8 cycles pour 3 instructions.
Présentation des SoC ◆ ⇒ sans branchement, une instruction par cycle
◆ Un branchement (conditionnel ou pas) interrompt le
pipeline car il faut attendre de décoder l’adresse de
branchement pour charger l’instruction suivante ⇒
quelques cycles d’inactivité (pipeline stall)
◆ Lors d’un branchement, certain ISA autorisent l’utilisation
de ces delai slots: une ou deux instructions après le
branchement sont exécutées, que le branchement soit
pris ou pas (comme si elles étaint écrites avant le
branchement).

- p. 24/133
Parallélisme au sein du processeur

Introduction
Indépendamment du pipeline, Deux paradigmes dominants:
Processeurs embarqués ■ Super Scalaire
● Processeurs embarqués
● Éconnomie ◆ Duplication des unités,
● ISA
● Pipeline ◆ Répartition au vol des instructions sur les unités
● Classification
● Charactéristiques disponibles (re-ordonnancement des instructions: out of
introduction au MSP 430 order execution)
Présentation des SoC
◆ Exemple: le PowerPC 970 (4 ALU, 2 FPU)
◆ Efficace mais complexifie l’unité de contrôle (problème
des interruptions)
■ Very Large Instruction Word (VLIW)
◆ Duplication des unités,
◆ L’ordonnancement des instructions est fixé à la
compilation (tout se passe comme si les instructions
pouvait être regroupe sur 64 bits, 128 bits etc.)
◆ Inventé par Josh Fisher (Yale) à partir du trace scheduling
◆ Les processeurs VLIW sont tous basés sur les
architecures RISC, avec entre 4 et 8 unités.
◆ Exemple: TriMedia (Philips), Itanium IA64 (Intel).
- p. 25/133

Parallélisme au sein du processeur

Introduction
Une autre approche possible: instructions SIMD.
Processeurs embarqués ■ Modification du data-path pour proposer des opérations
● Processeurs embarqués
● Éconnomie parallèles sur 16 ou 8 bits
● ISA
● Pipeline ■ Exemple: Sun Visual Instruction Set, Intel Pentium MMX,
● Classification
● Charactéristiques Philips TriMedia
introduction au MSP 430
■ Gains importants sur certains traitements mais très peu
Présentation des SoC
utilisé en pratique (difficile à inférer par le compilateur)
◆ Librairies écrites en assembleur (programmes non
portables)
◆ Fonction C représentant les instructions assembleurs
(compiler intrinsic)
◆ Exemple: instruction ifir8ii R1, R2, R3 du Trimedia:
8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits 8 bits

* * * *

32 bits

- p. 26/133
Mémoire

Introduction ■ Plusieurs technologies pour les mémoires:


Processeurs embarqués ◆ Mémoires statiques (SRAM): petites, rapides,
● Processeurs embarqués
● Éconnomie consommatrices, peu denses (chères).
● ISA
● Pipeline ◆ Mémoires dynamiques (DRAM): grandes, lentes, très
● Classification
● Charactéristiques denses, transactions chères
introduction au MSP 430 ■ De plus en plus de place On-Chip pour la mémoire (dans ce
Présentation des SoC cas elles sont moins efficaces que les chips mémoire).
■ Ne pas oublier que le code aussi réside en mémoire
■ Tous les systèmes ont des caches pour cacher les temps de
latence lors de l’accès à la mémoire, en général plusieurs
niveaux de caches: hiérarchie mémoire.

- p. 27/133

Principe du Cache

Introduction 0
1
0
Processeurs embarqués 2
● Processeurs embarqués 3
● Éconnomie 4
● ISA 5
● Pipeline 6
● Classification 7
● Charactéristiques 0 8
1 9
introduction au MSP 430
1 cycle 2 10−20 cycles 10
Espace
Présentation des SoC Processeur 0
1
0000
11111
0
1
0
3 11
00
00
11
00
11
00
11
111111
000000
11
mémoire
0
1 0
1 4
5
00
11 001213
11 adressable
6 14
7 15
16
17
18
Cache de données (SRAM) 19
20
21
22
23 N−1

Mémoire principale (DRAM)

- p. 28/133
Hiérarchie Mémoire

Introduction

Processeurs embarqués Processeur Processeur


● Processeurs embarqués /DSP /DSP
● Éconnomie
● ISA
ASIC / ASIP
D: cache de données
● Pipeline D I D I
I: cache d’instructions
● Classification
● Charactéristiques

introduction au MSP 430

Mémoire cache Cache Cache


Présentation des SoC
de niveau 4
de niveau 3 de niveau 2

SOC

Bus système externe

Bancs de mémoire DRAM

contrôleur
mémoire

- p. 29/133

Différents types de processeurs embarqués

Introduction ■ Beaucoup de Processeurs à usage général ayant une ou


Processeurs embarqués
● Processeurs embarqués
deux générations
● Éconnomie
● ISA
■ 4, 8, 16 ou 32 bits (taille des mots)
● Pipeline
● Classification ■ RISC et CISC
● Charactéristiques

introduction au MSP 430


■ DSP: Digital Signal Processor
Présentation des SoC
■ ASIP: Application Specific Integrated Processor

- p. 30/133
68000, x86

Introduction ■ Famille des Motorola 68000


Processeurs embarqués ◆ Un des plus vieux processeur embarqué (ex Sun, Mac)
● Processeurs embarqués
● Éconnomie ◆ Architecture CISC
● ISA
● Pipeline ◆ ISA propre et les meilleurs outils de développement,
● Classification
● Charactéristiques beaucoup d’utilisateurs
introduction au MSP 430 ■ Famille des x86
Présentation des SoC ◆ Démarre au 8086 (Intel) puis 80286, 386, 486, Pentium, et
Athlon (AMD)
◆ En processeurs embarqués: 5 fois moins que MIPS, ARM
ou 68000.
◆ architecture CISC, compatible avec le code du 8086
◆ compatibilité mais mauvaises performances

- p. 31/133

SPARC, 29000 et i960

Introduction ■ SPARC
Processeurs embarqués ◆ Un des premier RISC à avoir été embarqué (pratiquement
● Processeurs embarqués
● Éconnomie plus aujourd’hui)
● ISA
● Pipeline ◆ SPARC est une architecture brevetée (soft core,
● Classification
● Charactéristiques Intellectuel Property: IP), plusieurs compagnies fabriquent
introduction au MSP 430 des SPARC
Présentation des SoC ■ 29000 (AMD)
◆ Le 29000 a eu beaucoup de succès (imprimante laser
Apple) grâce à ces 192 registres
◆ AMD a arrêté la production car le développement des
outils coûtait trop cher.
■ i960 (intel)
◆ Le i960 a été le plus vendu des processeurs embarqués
au milieu des années 90 (router réseau et HP Laserjet).

- p. 32/133
MIPS, ARM, SuperH et PowerPC

Introduction ■ MIPS (microprocessor without interlocked pipeline stages)


Processeurs embarqués ◆ Originellement pour les stations puissantes (SGI)
● Processeurs embarqués
● Éconnomie ◆ Puis, marché des consoles de jeux (Nitendo N64)
● ISA
● Pipeline ◆ Famille très étendue: du plus gros (MIPS 20Kc, 64 bit) au
● Classification
● Charactéristiques plus petit (SmartMIPS, 32 bit pour carte à puce)
introduction au MSP 430 ■ ARM (Advanced RISC Machines, ex Acorn)
Présentation des SoC ◆ Un des 32 bits embarqués les plus populaires :
téléphones portables
◆ Faible consommation
◆ Le successeur: StrongArm est commercialisé par Intel
sous le nom de XScale
■ SuperH (ou SH: Hitachi) Utilisé dans les stations Sega et les
PDA
■ PowerPC autant utilisé en embarqué qu’en ordinateur

- p. 33/133

Et les autres....

Introduction ■ Plus de 100 processeurs embarqués 32 bits sur le marché


Processeurs embarqués
● Processeurs embarqués
■ Les constructeurs de FPGA proposent des soft-processeurs
● Éconnomie
● ISA
pour configurer les FPGA: Nios (Altera), MicroBlaze (Xilinx)
● Pipeline
● Classification ■ Certain processeurs RISC (Crusoe de Transmetta) peuvent
● Charactéristiques
exécuter du code CISC (Intel)
introduction au MSP 430
◆ Principe: recompilation du code à l’exécution (runtime
Présentation des SoC
compilation)
◆ Gain obtenus par un mécanisme de cache, d’optimisation
poussée des portion de code répétées (boucle), et grâce
au parallélisme de niveau instruction
◆ Réduction drastique de la consommation pour des
performances équivalentes

- p. 34/133
Micro-contrôleurs

Introduction ■ Utilisé pour le contrôle embarqué


Processeurs embarqués ◆ Censeur, contrôleurs simples
● Processeurs embarqués
● Éconnomie ◆ Manipule des événements, quelques données mais en
● ISA
● Pipeline faible quantité
● Classification
● Charactéristiques ◆ Exemple: camescope, disque dur, appareil photo
introduction au MSP 430 numérique, machine à laver, four à micro-onde
Présentation des SoC ■ Quelques caractéristiques fréquentes
◆ Périphériques présents sur le circuit (timer, convertisseur
analogique numérique, interface de communication),
accessible directement grâce aux registres
◆ Programme et données intégrées au circuit
◆ Accès direct du programmeur à de nombreuses broches
du circuit
◆ Instructions spécialisées pour les manipulation de bits.

■ Le MSP430 appartient à cette catégorie

- p. 35/133

DSP: Digital Signal Processing

Introduction ■ Utilisés pour les applications de traitement du signal


Processeurs embarqués ◆ Grande quantités de données numérisées, souvent
● Processeurs embarqués
● Éconnomie organisées en flux
● ISA
● Pipeline ◆ Filtre numérique sur téléphone, TV numérique,
● Classification
● Charactéristiques synthétiseur de sons
introduction au MSP 430 ■ Relativement proche des GPP, mais quelques
Présentation des SoC caractéristiques en plus:
◆ Bande passante élevée (deux bus)
◆ Instructions dédiées pour les calculs de traitement du
signal: multiplication accumulation,
◆ Arithmétique spécifique (mode d’arrondi)
◆ Registres dédiés pour certains opérateurs.
◆ Constructeurs: Texas Instrument, puis Analog Devices,
Motorola

- p. 36/133
Quelques mécanismes matériels utiles

Introduction ■ Densité de code:


Processeurs embarqués ◆ La taille du code est importante pour les codes
● Processeurs embarqués
● Éconnomie embarqués car elle influe sur la taille de la mémoire
● ISA
● Pipeline utilisée
● Classification
● Charactéristiques ◆ Un programme C compilé pour SPARC prendra deux fois
introduction au MSP 430 plus de place en mémoire que le même programme
Présentation des SoC compilé pour le 68030.
◆ En général les code RISC sont deux fois moins dense que
les codes CISC (ex: instruction TBLS du 68300: table
lookup and interpolate)
◆ Les options de compilation doivent être utilisées avec
précaution.
◆ Le code est quelquefois stocké compressé et
decompressé au vol par du matériel spécifique.

- p. 37/133

Quelques mécanismes matériels utiles

Introduction ■ Manipulations au niveau bit:


Processeurs embarqués ◆ Utilisé pour les algorithmes de cryptage mais surtout pour
● Processeurs embarqués
● Éconnomie les pilotes de périphériques.
● ISA
● Pipeline ◆ La plupart des périphériques indiquent leur état au
● Classification
● Charactéristiques processeur en mettant un certain bit à 1 dans un certain
introduction au MSP 430 registre.
Présentation des SoC
◆ Un processeur standard doit rapatrier le mot de 32 bit,
masquer et tester à 0
◆ Les instructions BIC, BIT et BIS du MSP430 font des
manipulation au niveau bit dans la mémoire

- p. 38/133
Quelques mécanismes matériels utiles

Introduction ■ Données non-alignés


Processeurs embarqués ◆ De nombreux traitements manipulent des données de
● Processeurs embarqués
● Éconnomie taille non-multiple de 32 (paquets TCP/IP, video streams,
● ISA
● Pipeline clés d’encryption, 20 bits, 56 bits)
● Classification
● Charactéristiques ◆ Les processeurs RISC savent uniquement transférer des
introduction au MSP 430 mots (32 bits) alignés (calés sur une adresse multiple de
Présentation des SoC 32 bits).
◆ La plupart des architectures CISC (68k, x86) peuvent faire
des chargements non alignés

- p. 39/133

Quelques mécanismes matériels utiles

Introduction ■ Gestion spécifique du cache


Processeurs embarqués ◆ Les caches améliorent les performances mais introduisent
● Processeurs embarqués
● Éconnomie du non-déterminisme.
● ISA
● Pipeline ◆ Les contraintes spécifiques des systèmes embarqués ont
● Classification
● Charactéristiques entraîné des mécanismes particuliers pour les cache
introduction au MSP 430
◆ On peut vouloir bloquer le cache (cache locking): forcer
Présentation des SoC certaines données ou instruction à se charger et rester
dans le cache (on parle aussi de mémoire scratch-pad
memory ou de software controlled cache).
◆ La plupart des caches utilisent une politique de
Write-Back: une donnée modifiée dans le cache n’est pas
forcément immédiatement recopiée en memoire. Dans le
cas de périphériques mappés en mémoire, il est
indispensable de recopier immédiatement (politique
write-through)

- p. 40/133
Quelques mots sur la consommation

Introduction ■ Trois composantes de la consommation d’une porte logique


Processeurs embarqués
● Processeurs embarqués
(inverseur)
● Éconnomie ◆ Consommation dynamique : Pdyn = C.V 2
● ISA
CC
● Pipeline (C capacité de la porte)
● Classification
● Charactéristiques ◆ Consommation statique : Pstatic = VCC .Ileak
introduction au MSP 430 (VCC : tension d’alimentation, Ileak intensité des
Présentation des SoC courants de fuite)
◆ Consommation de court-circuit Pcs = K.τ.(VCC − 2VT h )3 .
(K:constante technologique ; VT h :tension seuil ;
τ :temps de montée descente du signal)
■ Aujourd’hui (2004) Pdyn ≫ Pstatic ≫ Pcs
■ Demain (2007) Pdyn ≈ Pstatic ≫ Pcs

- p. 41/133

Consommation d’un circuit CMOS

Introduction ■ Généralisation naïve en prenant en compte une activité


Processeurs embarqués
● Processeurs embarqués
moyenne α (nombre moyen de portes commutant)
● Éconnomie ◆ Consommation dynamique : Pdyn = C.V 2 .α.f
● ISA
CC
● Pipeline (f : fréquence du circuit)
● Classification
● Charactéristiques ◆ Consommation statique : Pstatic = VCC .Ileak .N.kdesign
introduction au MSP 430 (N: nombre de portes, kdesign constante dépendant
Présentation des SoC du design)
■ Cette modélisation est très imprécise pour un circuit dont le
comportement n’est pas stationnaire (ex: processeur)

- p. 42/133
Réduction statique de la consommation

Introduction ■ Le facteur le plus important est la tension d’alimentation


Processeurs embarqués
● Processeurs embarqués
(VCC ) d’abord 3.3 V puis 2.5 V. Les versions récentes de
● Éconnomie Xscale (strong ARM, Intel) et les puces smartCard
● ISA
● Pipeline fonctionnent a 0.65 V
● Classification
● Charactéristiques ■ On peut différencier les tensions en fonction du bloc du chip:
introduction au MSP 430 1.5 V pour le processeur, 3.3 pour l’interface du bus et les
Présentation des SoC pattes d’entrée/sortie (ex: Strong ARM de Digital)
■ Plus la technologie est intégrée, moins elle consomme
(capacité diminuée).
■ Fréquence d’horloge peu élevée compensée par le
parallélisme
■ Complexité réduite des différents composants (moins de
registres, architectures RISC)

- p. 43/133

Réduction dynamique de la consommation

Introduction ■ Gestion dynamique de la fréquence d’horloge


Processeurs embarqués
● Processeurs embarqués
■ Exemple: processeur Crusoe (Transmetta)
● Éconnomie
● ISA
Suppression de l’horloge sur un bloc (Dynamic clock
● Pipeline
● Classification
gating)
● Charactéristiques
■ Gestion dynamique de l’alimentation (pas encore réalisé)
introduction au MSP 430

Présentation des SoC

- p. 44/133
Low Power Mode pour le MSP430

Introduction ■ Différent mode pour réduire la consommation


Processeurs embarqués ◆ LPM0: le CPU est arrété
● Processeurs embarqués
● Éconnomie ◆ LPM1, LPM2: l’horloge rapide (MCLK) est aussi arrétée
● ISA
● Pipeline ◆ LPM3 le générateur d’horloge est arrété
● Classification
● Charactéristiques ◆ LPM4 : l’oscillateur du crystal est arrété
introduction au MSP 430 ■ Le temps de reprise est d’autant plus long que la veille est
Présentation des SoC profonde.

- p. 45/133

Introduction

Processeurs embarqués

introduction au MSP 430


● introduction au MSP 430
● TI MSP430 : ez430-rf2500
● Documents techniques
● Architecture introduction au MSP 430
● Périphériques
● Chaîne de développement

Présentation des SoC

- p. 46/133
TI MSP430 : ez430-rf2500

Introduction

Processeurs embarqués

introduction au MSP 430


● introduction au MSP 430
● TI MSP430 : ez430-rf2500
● Documents techniques
● Architecture
● Périphériques
● Chaîne de développement

Présentation des SoC

- p. 47/133

Documents techniques

Introduction ■ Documents du cours http://


Processeurs embarqués
■ Manuel de programmation du MSP
introduction au MSP 430
● introduction au MSP 430 (MSP430x2xx_Family_User’s_Guide_(Rev._D)_slau144d.pdf)
● TI MSP430 : ez430-rf2500
● Documents techniques ■ Manuel du MSP430F2274 (msp430f2274.pdf)
● Architecture
● Périphériques
● Chaîne de développement
■ Feuilles de schématique
Présentation des SoC
■ User’s Manual EZ430
(eZ430-RF2500_User Guide_SLAU227A.pdf)
■ Datasheet du composant radio (cc2500.pdf)
■ Documents IAR
◆ IAR compiler reference guide, ...

■ Site de Texas Instrument


◆ Exemples de programme / drivers, Notes d’application, ...

■ The mspgcc toolchain:


http://mspgcc.sourceforge.net/
■ Notamment la doc mspgcc (download puis documentation)

- p. 48/133
Architecture du MSP

Introduction

Processeurs embarqués Flash RAM Peripheral Peripheral


Clock ROM
introduction au MSP 430 Bus 8 bits 8 bits
● introduction au MSP 430
Ctrl
● TI MSP430 : ez430-rf2500
● Documents techniques
● Architecture Adress
16 8
● Périphériques
RISC−CPU
● Chaîne de développement
16 bit

JTAG
Présentation des SoC
16 Data
Bus 8
Conv

Watchdog Peripheral Peripheral Peripheral


Timer
16 bits 8 bits 8 bits

- p. 49/133

CPU RISC 16 bits

Introduction
R0/PC Program counter
Processeurs embarqués
R1/SP Stack Pointer
introduction au MSP 430 ■ 28 Instructions sur 16 bits R2/SR/CG1 Status Reg
● introduction au MSP 430
● TI MSP430 : ez430-rf2500
● Documents techniques
■ 64 Ko de mémoire adressable R3/CG2 Constant Gen

● Architecture
● Périphériques
■ Périphériques mappés en R4 General Purpose
MAB Memory Address Bus

R5 General Purpose
● Chaîne de développement
mémoire
MDB Memory Data Bus

.....

Présentation des SoC


■ 16 registres 16 bits (r0-r16) R14 General Purpose

◆ r0: PC (Program counter) R15 General Purpose

◆ r1: SP (Stack pointeur)


◆ r2: SR (status register) Z
dest src
C
16 bit ALU
◆ r3: constante 0 V
N

R3: Status Register


15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OS− CPU
Reserved V SCG1 SCG1 GIE N Z GC
COFF OFF

- p. 50/133
Periphérique intégrés

Introduction ■ timers
Processeurs embarqués
■ contrôleur LCD
introduction au MSP 430
● introduction au MSP 430 ■ mutliplieur cablé
● TI MSP430 : ez430-rf2500
● Documents techniques
● Architecture
■ contrôleur de bus
● Périphériques
● Chaîne de développement
■ convertisseur analogique numérique, comparateur
Présentation des SoC ■ ports séries

- p. 51/133

Périphérique mappé en mémoire

Introduction ■ l’écriture à une certaine adresse est interprétée comme une


Processeurs embarqués
communication avec le périphérique.
introduction au MSP 430
● introduction au MSP 430
■ Exemple : le multiplieur matériel
● TI MSP430 : ez430-rf2500
◆ Accessible par des registres mappés entre les adresses
● Documents techniques
● Architecture
● Périphériques
0x0130 et 0x013F
● Chaîne de développement ◆ Écriture à l’adresse 0x130, positionne le premier
Présentation des SoC opérande (unsigned mult)
◆ Écriture à l’adresse 0x138, positionne le deuxième
opérande et lance le calcul
◆ Le résultat est à l’adresse 0x013A, sur 32 bits

■ Les autres périphériques sont aussi accessibles par des


registres mappé en mémoire: les SFR (Special Function
Registers), en C:
◆ écriture vers le périphérique: SFR = valeur
◆ lecture des registres du périphérique: variable = SFR

- p. 52/133
Exemple: multiplieur cablé

Introduction
int main(void) {
Processeurs embarqués
int i;
introduction au MSP 430
● introduction au MSP 430 int *p,*res;
● TI MSP430 : ez430-rf2500
● Documents techniques
int main(void) {
● Architecture
● Périphériques
int i; __asm__("mov #304, R4");
● Chaîne de développement int *p,*res; __asm__("mov #2, @R4");
Présentation des SoC // p=0x130;
p=0x130; // *p=2;
*p=2; __asm__("mov #312, R4");
p=0x138; __asm__("mov #5, @R4");
*p=5; //p=0x138;
res=0x13A; //*p=5;
i=*res; __asm__("mov #314, R4");
__asm__("mov @R4, R5");
nop(); //res=0x13A;
i=*res;
}
nop();
- p. 53/133

Mapping mémoire

Introduction ■ Interrupt Vector Table: indique les adresses des fonctions de


Processeurs embarqués
gestion des interruption
introduction au MSP 430
● introduction au MSP 430
■ Lors du Boot, le MSP va lire l’adresse 0xFFFE: handler du
● TI MSP430 : ez430-rf2500
● Documents techniques
reset.
● Architecture
0xFFFF
● Périphériques Interrupt Vector Table Word/Byte
● Chaîne de développement ■ Sur le MSP430F149: 0xFFE0

Présentation des SoC ◆ 0x0 à 0x1FF: 0xFFDF


Word/Byte
périphériques FLASH/ROM

◆ 0x200 à B=0x9FF: RAM


A 11111111111111
00000000000000
00000000000000
11111111111111
00000000000000
11111111111111
(2Ko), Données et pile 00000000000000
11111111111111
00000000000000
11111111111111
00000000000000
11111111111111
d’exécution 00000000000000
11111111111111
00000000000000
11111111111111
B 00000000000000
11111111111111
◆ 0xC00 à 0xFFF: Boot
RAM Word/Byte
mem. 0x200
0x1FF
◆ 0x1000 à 0x10FF: byte 16 bit peripheral Modules
Word
info. mem. 0x100
0xFF 6 bit peripheral Modules
◆ A=0x1100 à 0xFFFF: Byte
0x10
ROM (60 Ko): code. 0xF
Special Function Register Byte
0x0
- p. 54/133
Chaîne de développement

Introduction ■ Plusieurs configurations


Processeurs embarqués ◆ Programmation directe du micro-contrôleur
introduction au MSP 430 ◆ Simulation du micro-contrôleur (sans les périphériques)
● introduction au MSP 430
● TI MSP430 : ez430-rf2500
● Documents techniques
■ Plusieurs plateformes de développement
● Architecture ◆ mspgcc (GNU)
● Périphériques
● Chaîne de développement ◆ IAR (texas Instrument)
Présentation des SoC ◆ ..

- p. 55/133

RTS6: Conception et programmation de Système

Introduction

Processeurs embarqués

introduction au MSP 430

Présentation des SoC


● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ
Introduction aux systèmes sur puces (SoC)
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 56/133
Qu’est ce qu’un SoC

Introduction ■ "System" : une collection d’éléments en interaction.


Processeurs embarqués
■ "On Chip" : sur un seul circuit.
introduction au MSP 430

Présentation des SoC


■ Mais tous les circuits intégrés ne sont pas des SOC, Un
● Qu’est ce qu’un SoC SOC implémente une fonction "complète"
● Exemple SoC: appareil photo
numérique ◆ Décodeur MPEG2 vidéo + audio + système + transport +
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ graphique + interface utilisateur
H5500
● Architecture S3CA400A01 ◆ Terminal GSM : tout sauf la RF
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 57/133

Q’est ce qu’un SoC

Introduction ■ Une seule fonction


Processeurs embarqués
un seul programme, exécuté en boucle
introduction au MSP 430
■ Contraintes importantes
Présentation des SoC
● Qu’est ce qu’un SoC coût, consommation, taille, performance, . . .
● Exemple SoC: appareil photo
numérique ■ Prise en compte de l’environnement
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ doivent réagir en fonction de nombreux paramètres
H5500
● Architecture S3CA400A01 souvent associé à des contraintes de temps-réel
(companion chip)
● Critères de qualité de
conception d’un SOC
■ Les éléments constitutifs d’un SOC sont "complexes",
● Choix en fonction des
contraintes
réutilisables et de nature variée :
● Méthodologie de conception
● SocLib
◆ Fonctions analogiques (convertisseurs A/N, filtres, etc.)
● Organisation logicielle ◆ Fonctions numériques câblées (décodeur de Viterbi)
● Exemple d’une plateforme
soclib ◆ Fonctions logicielles (sur micro-contrôleur, DSP, RISC)
◆ Composants de base (mémoires)

- p. 58/133
Exemple SoC: appareil photo numérique

Introduction CCD

Processeurs embarqués
preprocesseur CCD (?)
introduction au MSP 430 CAN

Présentation des SoC


● Qu’est ce qu’un SoC Lentille
● Exemple SoC: appareil photo
numérique compression microcontroleur (?)
● Autre exemple: iPaQ H5500 JPEG (?) UART
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
■ Une seule fonction : prendre des photos
contraintes
● Méthodologie de conception
■ Contraintes : taille, poids, consommation
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 59/133

Autre exemple: iPaQ H5500

Introduction ■ Site http://www.handhelds.org/: "encourage and


Processeurs embarqués
facilitate the creation of open source software for use on
introduction au MSP 430
handheld and wearable computers"
Présentation des SoC
● Qu’est ce qu’un SoC
■ Adaptation de linux pour PDA
● Exemple SoC: appareil photo
numérique
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 60/133
iPaQ H5500, une fois démonté

Introduction

Processeurs embarqués

introduction au MSP 430

Présentation des SoC


● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 61/133

Architecture carte iPaQ H5500

Introduction
BUS
Processeurs embarqués
Cotulla Intel PXA250
introduction au MSP 430

Présentation des SoC


● Qu’est ce qu’un SoC
ARM Xscale
● Exemple SoC: appareil photo
numérique
● Autre exemple: iPaQ H5500
SAMSUNG
● Architecture carte iPaQ
S3CA400A01
H5500
● Architecture S3CA400A01 (SAMCOP)
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme SDRAM 0
soclib

SDRAM 1

- p. 62/133
Architecture S3CA400A01 (companion chip)

Introduction

Processeurs embarqués
DMA (2channel)
introduction au MSP 430
CINT
Présentation des SoC Interuption
DP[1:0]
● Qu’est ce qu’un SoC
DN[1:0]
● Exemple SoC: appareil photo USB
Accel I/F
numérique Interface Accelerometer
CS[5:2] 2

Bus systeme (AHB)


● Autre exemple: iPaQ H5500 RDY Intel
● Architecture carte iPaQ Cotulla
nOE
H5500 (Xscale) Bridge
● Architecture S3CA400A01 nWE LED[4:0]
LED

Bus periphérique (APB)


(companion chip)
● Critères de qualité de
conception d’un SOC
Interne Buffer DQ
● Choix en fonction des
32 KBytes OneWire
contraintes
● Méthodologie de conception
● SocLib
SD Card I/F
● Organisation logicielle SD Host
DREQ[1:0] 6
● Exemple d’une plateforme MA[25:0]
soclib DMA
MD[31:0]

Touch Panel I/F FCD I/F FCD I/F


11
PCMCIA
Expansion PWR Man.
RXD[1:0]
ADC UART TXD[1:0]
Data[31:0]
Addr[10:0]
control

XP.XM.YP.YM
ADC[3:0]

Reset, PLL, VCC, MCU−CLK

- p. 63/133

Critères de qualité de conception d’un SOC

Introduction ■ Métriques usuelles


Processeurs embarqués ◆ Coût à l’unité: coût de fabrication d’une unité sans inclure
introduction au MSP 430
les coût non récurrents
Présentation des SoC ◆ Coûts non récurrents: coût de conception d’un système
● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
(coût de mise en place de la première pièce).
● Autre exemple: iPaQ H5500 ◆ Taille
● Architecture carte iPaQ
H5500 ◆ Performance
● Architecture S3CA400A01
(companion chip) ◆ Consommation
● Critères de qualité de
conception d’un SOC ◆ Évolutivité: possibilité de faire évoluer le système pour en
● Choix en fonction des
contraintes
● Méthodologie de conception
avoir des versions dérivées.
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 64/133
Critères de qualité de conception d’un SOC

Introduction ■ Métriques usuelles (suite)


Processeurs embarqués ◆ Temps de prototypage : temps de mise en place d’un
introduction au MSP 430
premier système fonctionnel
Présentation des SoC ◆ Temps de mise sur le marché : système suffisamment
● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
fiable pour être commercialisé
● Autre exemple: iPaQ H5500 ◆ Maintenance : possibilité de modifications du système par
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
rapport à sa première version
(companion chip) ◆ Fiabilité, sûreté de fonctionnement, . . .
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 65/133

Choix en fonction des contraintes

Introduction ■ Une grande souplesse de réalisation est possible


Processeurs embarqués ◆ Il n’y a pas de solution unique
introduction au MSP 430 Performance implémentation
Présentation des SoC uniquement matérielle
● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ contrainte
H5500
● Architecture S3CA400A01
de performance
(companion chip)
● Critères de qualité de
conception d’un SOC implémenation
● Choix en fonction des uniquement logicielle
contraintes
● Méthodologie de conception Coût
● SocLib
● Organisation logicielle contrainte
● Exemple d’une plateforme de coût
soclib

- p. 66/133
Méthodologie de conception

Introduction
Intérêts du «codesign»
Processeurs embarqués ■ Conception rapide de SoC : time to market
introduction au MSP 430 ◆ Cycle de conception de haut niveau pour réduire les
Présentation des SoC
● Qu’est ce qu’un SoC
temps d’estimations des solutions
● Exemple SoC: appareil photo
numérique
■ Réduire la difficulté de validation et déboguage
● Autre exemple: iPaQ H5500
◆ Réutilisation d’IP
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
◆ Modules reconfigurables
(companion chip)
● Critères de qualité de ■ Converger vers une solution optimale en fonction des
conception d’un SOC
● Choix en fonction des contraintes de départ
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 67/133

Méthodologie de conception

Introduction ■ La conception nécessite d’avoir une modélisation complète


Processeurs embarqués
■ Approche logicielle
introduction au MSP 430
◆ les objets migrent vers le HW jusqu’à ce que les
Présentation des SoC
● Qu’est ce qu’un SoC contraintes de performances soit atteintes (pour un coût
● Exemple SoC: appareil photo
numérique
minimum)
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ ■ Approche matérielle
H5500
● Architecture S3CA400A01 ◆ les objets migrent en SW tant que les contraintes de
(companion chip)
● Critères de qualité de performances restent atteintes (pour un coût minimum)
conception d’un SOC
● Choix en fonction des
contraintes
■ Le meilleur partitionnement nécessite en général l’expertise
● Méthodologie de conception
● SocLib
d’un concepteur.
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 68/133
SocLib

Introduction

Processeurs embarqués

introduction au MSP 430

Présentation des SoC http://soclib.lip6.fr/


● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo ■ Environnement de conception et de simulation gratuit et
numérique
● Autre exemple: iPaQ H5500 open source
● Architecture carte iPaQ
H5500 ■ Utilise des modèles de composants écrits en SystemC
● Architecture S3CA400A01
(companion chip) ◆ processeur
● Critères de qualité de
conception d’un SOC ◆ interconnexion
● Choix en fonction des
contraintes
● Méthodologie de conception
◆ périphériques
● SocLib
◆ ...
● Organisation logicielle
● Exemple d’une plateforme
soclib
■ Utilisation d’une chaîne de compilation standard (GNU)

- p. 69/133

Organisation logicielle

Introduction ■ Système d’exploitation multithread : Mutek


Processeurs embarqués ◆ Gestion de l’API de thread Posix
introduction au MSP 430 ◆ Gestion des interruptions
Présentation des SoC ◆ Commutation de contexte rapide
● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo
numérique
■ Logiciel cross-compilé avec gcc
● Autre exemple: iPaQ H5500
● Architecture carte iPaQ ■ Intégration du système avec l’applicatif à l’édition des liens
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib

- p. 70/133
Exemple d’une plateforme soclib

Introduction

Processeurs embarqués MISP 3000


introduction au MSP 430

Présentation des SoC


I D RAM multi bancs
● Qu’est ce qu’un SoC
● Exemple SoC: appareil photo RAM
numérique
● Autre exemple: iPaQ H5500 Cache
● Architecture carte iPaQ
H5500
● Architecture S3CA400A01
(companion chip)
● Critères de qualité de
conception d’un SOC
● Choix en fonction des
contraintes
● Méthodologie de conception
Interconnexion
● SocLib
● Organisation logicielle
● Exemple d’une plateforme
soclib
TTY RAM
sémaphores filtre audio

- p. 71/133

Vous aimerez peut-être aussi