Sie sind auf Seite 1von 128
Cours Informatique Temps Réel LotfiBoussaid@yahoo.fr ENIM – Université de Monastir 2007 - 2008 Lotfi BOUSSAID
Cours Informatique Temps Réel
Cours Informatique Temps Réel

LotfiBoussaid@yahoo.fr

ENIM – Université de Monastir

2007 - 2008

Lotfi BOUSSAID Cours Informatique Temps Réel 1

Lotfi BOUSSAID

Cours Informatique Temps Réel

1

Plan du cours
Plan du cours

• Généralités sur les systèmes temps réel (1s)

• La CAO des Systèmes Matériels (5s)

• Les Systèmes d’Exploitation (2s)

• La programmation parallèle (2s)

• Les STR embarqués : les SOC et les SOPC (2s)

Lotfi BOUSSAID Cours Informatique Temps Réel 2

Lotfi BOUSSAID

Cours Informatique Temps Réel

2

Plan du cours
Plan du cours

• Généralités sur les systèmes temps réel

• La CAO des Systèmes Matériels

• Les Systèmes d’Exploitation

• La programmation parallèle

• Les STR embarqués : les SOC et les SOPC

Lotfi BOUSSAID Cours Informatique Temps Réel 3

Lotfi BOUSSAID

Cours Informatique Temps Réel

3

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Les systèmes temps réel : définitions

Qu’est-ce qu’un Système temps réel ?
Qu’est-ce qu’un Système temps réel ?
: définitions Qu’est-ce qu’un Système temps réel ? • Temps réel strict/dur (hard real-time) : le

• Temps réel strict/dur (hard real-time) : le non respect d’une contrainte de temps a des conséquences graves (humaines, économiques, écologiques) : besoin de garanties

Temps réel souple/mou (soft real-time) : on peut tolérer le non respect occasionnel d’une contrainte de temps (garanties probabilistes)

Lotfi BOUSSAID Cours Informatique Temps Réel 4

Lotfi BOUSSAID

Cours Informatique Temps Réel

4

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel Les systèmes temps réel : définitions (2) • Un système

Les systèmes temps réel : définitions (2)

Un système temps réel est un système réactif devant fournir des sorties logiquement correctes tout en respectant strictement des contraintes temporelles explicites

Tout système réactif est au minimum un système temps réel souple.

Le terme "temps réel" est généralement assimilé à "temps réel dur". Ce sont les systèmes de ce type qui posent des problèmes spécifiques tant d'analyse que de réalisation et de validation.

Le "temps réel" n'est pas un problème de rapidité intrinsèque. Il suffit de respecter les contraintes de temps imposées par l'environnement.

La structure embarquée ou détachée du système n'en change pas les principes. Elle n'influence que le type de solution retenue qui sera spécifique ou standard et plus ou moins réutilisable.

La plupart des systèmes dits "temps réel" comportent à la fois des fonctions temps réel dures et des fonctions temps réel souples.

Lotfi BOUSSAID Cours Informatique Temps Réel 5

Lotfi BOUSSAID

Cours Informatique Temps Réel

5

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Mauvaises interprétations de la notion de temps réel

« Real-time is not real-fast » ou « rien ne sert de courir, il faut partir à point »

» ou « rien ne sert de courir, il faut partir à point » Aller vite

Aller vite n’est pas l’objectif recherché

Lotfi BOUSSAID Cours Informatique Temps Réel 6

Lotfi BOUSSAID

Cours Informatique Temps Réel

6

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Domaines d’application (1/2)

• Télécommunications mobiles de 3 ème génération

• Fonctions multimédia

• Grand public

e génération • Fonctions multimédia • Grand public Satellite Faible portée Région Local Area Large
Satellite Faible portée Région Local Area
Satellite
Faible
portée
Région
Local Area

Large région

Grande mobilité

Faible mobilité

Grande

Portée

Large région Grande mobilité Faible mobilité Grande Portée Lotfi BOUSSAID Cours Informatique Temps Réel 7
Lotfi BOUSSAID Cours Informatique Temps Réel 7

Lotfi BOUSSAID

Cours Informatique Temps Réel

7

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Domaines d’application (2/2)

sur les Systèmes Temps Réel Domaines d’application (2/2) • Une Mercedes classe S : 65 processeurs

• Une Mercedes classe S : 65 processeurs

• Électronique embarquée : 27 à 30% du coût d’un véhicule, 40% du coûts (2020) [source PSA]

• Logiciels dans un véhicule

– 1ko (1980) et 2Mo (2000)

– même tendance que l’aéronautique

Source: numatec automotive Lotfi BOUSSAID Cours Informatique Temps Réel 8

Source: numatec automotive

Lotfi BOUSSAID

Cours Informatique Temps Réel

8

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Système Informatique

sur les Systèmes Temps Réel Système Informatique Hardware Évolution de l’architecture Software •

Hardware

Évolution de l’architecture

Informatique Hardware Évolution de l’architecture Software • Monoprocesseur, Multiprocesseurs • CISC,

Software

Hardware Évolution de l’architecture Software • Monoprocesseur, Multiprocesseurs • CISC, RISC •
Hardware Évolution de l’architecture Software • Monoprocesseur, Multiprocesseurs • CISC, RISC •

• Monoprocesseur, Multiprocesseurs

• CISC, RISC

• Scalaire, superscalaire, vectoriel

• Van Neumann Harvard

OS

• DOS, Windows 9x, XP

• Unix, Linux, HPUX

Langage

Assembleur, Fortran C, C++, LISP, ADA

Linux, HPUX Langage Assembleur, Fortran C, C++, LISP, ADA CAO de circuits intégrés RTOS Programmation parallèle

CAO de circuits intégrés

RTOS

Programmation parallèle

Outils de description matériel VHDL, Handel-C, SystemC

RTLinux, µClinux, TRAI, VxWorks

V Fortran, C

Design Reuse : IP

µClinux, TRAI, VxWorks V Fortran, C Design Reuse : IP Conception logicielle Matérielle CODESIGN Lotfi BOUSSAID
µClinux, TRAI, VxWorks V Fortran, C Design Reuse : IP Conception logicielle Matérielle CODESIGN Lotfi BOUSSAID

Conception logicielle Matérielle CODESIGN

C Design Reuse : IP Conception logicielle Matérielle CODESIGN Lotfi BOUSSAID Cours Informatique Temps Réel 9
Lotfi BOUSSAID Cours Informatique Temps Réel 9

Lotfi BOUSSAID

Cours Informatique Temps Réel

9

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Microprocesseurs - le 8080

sur les Systèmes Temps Réel Microprocesseurs - le 8080 • Intel 8080 - 3/1/1974 – Mots

• Intel 8080 - 3/1/1974

– Mots de 8 bits

– bus adresses 16 bits, bus données 8 bits

– 7 registres 8 bits, A à E,H,L, BC, DE, HL 16 bits

– 64 k octets adressables

– 6000 transistors

– 2 MHz

– ~ 0.02 mips ?

Lotfi BOUSSAID Cours Informatique Temps Réel 10

Lotfi BOUSSAID

Cours Informatique Temps Réel

10

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Microprocesseurs - Le Pentium© Pro

Systèmes Temps Réel Microprocesseurs - Le Pentium© Pro • Intel Pentium Pro 27/3/95 – bus interne

• Intel Pentium Pro 27/3/95

– bus interne 300 bits

– bus externe 64 bit

– mémoire : 4 Go

– mémoire virtuelle : 64 To

– processeur 5.5 M transistors

– cache intégré

– 166, 180, 200 MHz

Lotfi BOUSSAID Cours Informatique Temps Réel 11

Lotfi BOUSSAID

Cours Informatique Temps Réel

11

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Carte mère et Bus PC

sur les Systèmes Temps Réel Carte mère et Bus PC Ex : carte Pentium • Format

Ex : carte Pentium

• Format standard

– Classique (AT), ATX

• Supporte :

– processeur (ou carte fille Slot1)

– mémoire (RAM, cache, BIOS)

• SIMM, DIMM

– “chipset” (gestion logique bus)

– bus ISA et/ou PCI

– peut inclure un contrôleur SCSI

– cartes d’extension

– connecteurs divers périphériques, alimentation

Lotfi BOUSSAID Cours Informatique Temps Réel 12

Lotfi BOUSSAID

Cours Informatique Temps Réel

12

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel
• Von Neumann Von Neumann vs. Harvard IO IO IO IO IO IO •••••
• Von Neumann
Von Neumann vs. Harvard
IO IO
IO IO
IO IO
•••••

• Harvard

BUS SYSTÈME BUS INSTRUCTIONS

••••• IO IO IO IO
•••••
IO IO
IO IO

BUS DONNÉES

Lotfi BOUSSAID Cours Informatique Temps Réel 13

Lotfi BOUSSAID

Cours Informatique Temps Réel

13

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Les processeurs CISC

(Complex Instructions Set Computer)

Les avantages

• Instructions plus proches d'un langage de haut niveau

• Programmation plus compact

• Écriture plus rapide et plus élégante des application

• Moins d'occupation mémoire des programmes

• Exécution nécessite moins d'octets mémoire

Les inconvénients

• beaucoup trop de codes d'instruction différents

• taille des instructions élevée et variable (1 à 15 bytes – octets par instruction)

• structure des instructions non standardisées: exécution complexe, peu performante

Lotfi BOUSSAID Cours Informatique Temps Réel 14

Lotfi BOUSSAID

Cours Informatique Temps Réel

14

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Les processeurs RISC

(Reduced Instructions Set Computer)

• Nette séparation entre les instructions d'accès mémoire et les autres

• Instructions standardisées, en taille et en durée d'exécution

• Unité de décodage câblée, non microcodée architecture pipeline, superscalaire

• Très nombreux registres à usage général

• Un ou plusieurs cache (s) internes(s) ainsi que des tampons internes et un jeu d'instruction réduit aux instructions simples

Lotfi BOUSSAID Cours Informatique Temps Réel 15

Lotfi BOUSSAID

Cours Informatique Temps Réel

15

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Le pipeline (ou pipelining)

les Systèmes Temps Réel Le pipeline (ou pipelining ) • LI : Lecture de l'Instruction (en

LI : Lecture de l'Instruction (en anglais FETCH instruction) depuis le cache ;

DI : Décodage de l'Instruction (DECODe instruction) et recherche des opérandes;

EX : Exécution de l'Instruction (EXECute instruction)

MEM : Accès mémoire (MEMory access), écriture ou chargement de la mémoire ;

ER : Ecriture (Write instruction) de la valeur calculée dans les registres.

Objectif du pipeline : Être capable de réaliser chaque étape en parallèle avec les étapes amont et aval

Lotfi BOUSSAID Cours Informatique Temps Réel 16

Lotfi BOUSSAID

Cours Informatique Temps Réel

16

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Les calculateurs Parallèles

Les ordinateurs séquentiels :

Augmentation des performances 2 fois / 14 mois (Lois de Moore)

des performances 2 fois / 14 mois ( Lois de Moore ) Insuffisance pour certaines applications
des performances 2 fois / 14 mois ( Lois de Moore ) Insuffisance pour certaines applications

Insuffisance pour certaines applications :

météorologie, synthèse et reconstruction d'images, simulations numériques, etc.

Développer des calculateurs parallèles
Développer des calculateurs parallèles
Lotfi BOUSSAID Cours Informatique Temps Réel 17

Lotfi BOUSSAID

Cours Informatique Temps Réel

17

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Les calculateurs Parallèles

Applications Grand Challenge également appelées « Applications 3T », parce qu'elles nécessitent pour leur exécution [1]:

• 1 Téra flops (floating operation per second) ;

• 1 Téra octet de mémoire centrale ;

• 1 Téra octet par seconde de bande passante pour produire les résultats.

Ces applications ne sont réalisables actuellement qu’en faisant recours à un parallélisme massif :

Plus de 8000 processeurs GPP !!

[1] François PELLEGRINI, Architecture et systèmes des calculateurs parallèles, ENSEIRB, Octobre 2003.

Lotfi BOUSSAID Cours Informatique Temps Réel 18

Lotfi BOUSSAID

Cours Informatique Temps Réel

18

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Modèles de Calculateurs Parallèles

Classification de Flynn [1]

Architecture SISD « Single Instruction stream, Single Data stream »

« S ingle I nstruction stream, S ingle D ata stream » Architecture MISD « M

Architecture MISD « Multiple Instruction stream, Single Data stream »

« M ultiple I nstruction stream, S ingle D ata stream » Lotfi BOUSSAID Cours Informatique
Lotfi BOUSSAID Cours Informatique Temps Réel 19

Lotfi BOUSSAID

Cours Informatique Temps Réel

19

Généralités sur les Systèmes Temps Réel
Généralités sur les Systèmes Temps Réel

Modèles de Calculateurs Parallèles

Classification de Flynn [1]

Architecture SIMD « Single Instruction stream, Multiple Data stream »

S ingle I nstruction stream, M ultiple D ata stream » Architecture MIMD « M ultiple

Architecture MIMD « Multiple Instruction stream, Mingle Data stream »

« M ultiple I nstruction stream, M ingle D ata stream » Lotfi BOUSSAID Cours Informatique
Lotfi BOUSSAID Cours Informatique Temps Réel 20

Lotfi BOUSSAID

Cours Informatique Temps Réel

20

Plan du cours
Plan du cours

• Généralités sur les systèmes temps réel

• La CAO des Systèmes Matériels

• Les Systèmes d’Exploitation

• La programmation parallèle

• Les STR embarqués : les SOC et les SOPC

Lotfi BOUSSAID Cours Informatique Temps Réel 21

Lotfi BOUSSAID

Cours Informatique Temps Réel

21

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les circuits FPGA (Field Programmable Gate Array)

PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device

PLD PLD

PLD PLD
Programmable Programmable Logic Logic Device Device

Programmable Programmable Logic Logic Device Device

PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device
PLD PLD Programmable Programmable Logic Logic Device Device
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
PLD Programmable Programmable Logic Logic Device Device Lotfi BOUSSAID Cours Informatique Temps Réel 22
Lotfi BOUSSAID Cours Informatique Temps Réel 22

Lotfi BOUSSAID

Cours Informatique Temps Réel

22

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les différentes technologies des FPGAs

 

Résumé des différentes technologies

 

Nom:

Reprogrammable:

Volatile:

Technologie:

Fuse

Non

Non

Bipolaire

EPROM

Oui, en dehors du circuit

Non

UVCMOS

EEPROM

Oui, dans le circuit

Non

EECMOS

SRAM

Oui, dans le circuit Non

Oui

CMOS

Antifuse

Non

CMOS

Les Fabricants

XILINX, ALTERA, ACTEL, Vantis, Lattice, Lucent, Cypress, Atmel, QuickLogic, Philips

Lotfi BOUSSAID Cours Informatique Temps Réel 23

Lotfi BOUSSAID

Cours Informatique Temps Réel

23

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Architecture interne des FPGAs

CAO des Systèmes Matériels Architecture interne des FPGAs Slice S3 Slice S2 Switch Matrix Slice S1
Slice S3 Slice S2 Switch Matrix Slice S1 Slice S0 BRAM
Slice
S3
Slice
S2
Switch
Matrix
Slice
S1
Slice
S0
BRAM

Powerful CLB

>300 MHz Performance

Synchronous Dual-Port RAM

• Fast & efficient logic

• Highest flexibility

RAM • Fast & efficient logic • Highest flexibility Programmable I/O • 840 Mbps LVDS Digital

Programmable I/O

• 840 Mbps LVDS

Digital Clock Management

• Precise frequency generation and phase control

• Both on-chip & off-chip clock synchronization

EmbeddedPowerPC

• 300 MHz

• 420 DMIPS

clock synchronization EmbeddedPowerPC • 300 MHz • 420 DMIPS Lotfi BOUSSAID Cours Informatique Temps Réel 24
Lotfi BOUSSAID Cours Informatique Temps Réel 24

Lotfi BOUSSAID

Cours Informatique Temps Réel

24

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les ressources logiques de base des circuits FPGAs :

• Les blocs logiques configurables CLBs

• Les blocs entrée/sortie

• Les cellules d’interconnections programmables

• Les cellules d’interconnections programmables PSM = Programmable Switch Matrix 10 interconnect points per

PSM = Programmable Switch Matrix 10 interconnect points per matrix

Bloc I/O

Bloc CLB
Bloc CLB

Cellules

d’interconnections

Lotfi BOUSSAID Cours Informatique Temps Réel 25

Lotfi BOUSSAID

Cours Informatique Temps Réel

25

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les ressources logiques de base des circuits FPGAs :

1 CLB = 2 (4) Tranches (Slices)

de base des circuits FPGAs : 1 CLB = 2 (4) Tranches (Slices) Tranche (Slice) LUT

Tranche (Slice)

FPGAs : 1 CLB = 2 (4) Tranches (Slices) Tranche (Slice) LUT à 4 Entrées (Look-Up-Table)
FPGAs : 1 CLB = 2 (4) Tranches (Slices) Tranche (Slice) LUT à 4 Entrées (Look-Up-Table)

LUT à 4 Entrées (Look-Up-Table)

Une table de transcodage combinatoire (LUT) pouvant implanter :

– deux fonctions indépendantes à 4 variables

– une fonction complète à 5 variables

– une fonction incomplète à 6 variables • Deux cellules séquentielles (bascules D) • Des multiplexeurs de configuration

Lotfi BOUSSAID Cours Informatique Temps Réel 26

Lotfi BOUSSAID

Cours Informatique Temps Réel

26

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Exemple de circuits FPGAs Xilinx

La série Virtex de chez Xilinx compte trois modèles :

Le Virtex 2.5V

Le Virtex-E 1.8V (0.18µm, 6 niveaux de métallisation)

Le Virtex-E 1.8V Extended Memory

(0.22µm, 5 niveaux de métallisation)

1.8V Extended Memory (0.22µm, 5 niveaux de métallisation) Architecture des Virtex 2.5V et 1.8V [Xilinx00] Lotfi

Architecture des Virtex 2.5V et 1.8V [Xilinx00]

Lotfi BOUSSAID Cours Informatique Temps Réel 27

Lotfi BOUSSAID

Cours Informatique Temps Réel

27

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels
Advantages des circuits FPGA
Advantages des circuits FPGA

• Délai de conception

• Possibilité de reconfiguration

• Prototypage rapide

• Ré-utilisation de bibliothèque de composants (IPs)

• Facilité de mise en œuvre et de test.

composants (IPs) • Facilité de mise en œuvre et de test. Meilleur compromis entre les critères

Meilleur compromis entre les critères de coût, de flexibilité et de performance

Lotfi BOUSSAID Cours Informatique Temps Réel 28

Lotfi BOUSSAID

Cours Informatique Temps Réel

28

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les progrès technologique des FPGAs

Systèmes Matériels Les progrès technologique des FPGAs • Composants toujours plus rapides • Capacité

• Composants toujours plus rapides • Capacité d’intégration plus élevée

Domaines d’application des FPGAs:

Prototypage rapide

Traitement d’images

Traitement du signal

Cryptographie

Réseaux informatiques

etc

du signal • Cryptographie • Réseaux informatiques • etc Lotfi BOUSSAID Cours Informatique Temps Réel 29
du signal • Cryptographie • Réseaux informatiques • etc Lotfi BOUSSAID Cours Informatique Temps Réel 29
Lotfi BOUSSAID Cours Informatique Temps Réel 29

Lotfi BOUSSAID

Cours Informatique Temps Réel

29

La CAO des Systèmes Matériels Stratégie de Conception Niveau Niveau Comportemental Comportemental Spécification
La CAO des Systèmes Matériels
Stratégie de Conception
Niveau Niveau
Comportemental Comportemental
Spécification Spécification
C, C, VHDL VHDL
Fonctionnelle Fonctionnelle
Raffinement
Synthèse Synthèse de de Haut Haut niveau niveau
&
Réutilisation
Niveau Niveau RTL RTL
VHDL VHDL RTL RTL
Synthèse Synthèse et et
Data Data Path Path - - Controller Controller
Validation Validation
Synthèse Synthèse RTL RTL
Niveau Niveau Logique Logique
Nelist Nelist
Synthèse Synthèse Logique Logique
Prototypage Prototypage
Niveau Niveau Physique Physique
Lotfi BOUSSAID

Lotfi BOUSSAID

Cours Informatique Temps Réel

30

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Développement d’un FPGA

Entrée schématique

Matériels Développement d’un FPGA Entrée schématique VHDL Modelsim Xilinx Integrated Software Environnement ISE

VHDL

Modelsim

Xilinx Integrated Software Environnement

ISE

Entrée syntaxique Langage: VHDL Diagrammes d’états VHDL VHDL Vérification des erreurs de syntaxe Simulation
Entrée syntaxique
Langage: VHDL
Diagrammes d’états
VHDL
VHDL
Vérification des erreurs
de syntaxe
Simulation fonctionnelle
STIMULI
Ou
TESTBENCH
VHDL
VHDL
Synthèse
Simulation
Après synthèse
STIMULI
Ou
TESTBENCH
EDIF, XNF
Optimisation
Placement / routage
dans le circuit choisi
VHDL, SDF
Simulation temporelle
STIMULI
Ou
TESTBENCH
JEDEC
La programmation du circuit se fait soit:
• En utilisant un programmateur
• En téléchargeant le code JEDEC sur
l’objet technique (JTAG ou ISP)
Lotfi BOUSSAID Cours Informatique Temps Réel 31

Lotfi BOUSSAID

Cours Informatique Temps Réel

31

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Carte d’évaluation SPARTAN-3

3 connecteurs d’extensions FPGA Spartan-3 216 Kbits de bloc RAM Horloge interne jusqu’à 500 Mhz
3 connecteurs d’extensions
FPGA Spartan-3
216 Kbits de bloc RAM
Horloge interne jusqu’à 500 Mhz
Port VGA
Mémoire SRAM
(256 Kb x 32)
Intégrée à la carte
Port série
Port PS2
8
interrupteurs et
9 Leds
4 afficheurs 7 segments à Leds
4
boutons-poussoirs
Lotfi BOUSSAID Cours Informatique Temps Réel 32

Lotfi BOUSSAID

Cours Informatique Temps Réel

32

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Le VHDL

VHSIC (Very High Speed Integrated Circuit) Hardware Description Language

• Objets et opérateurs de base

• Logique concurrente VS synchrone

• Les « Entity »

• Les « Component »

• Les « Package »

• Les « Test benches »

• La Syntaxe

• Fonctions Combinatoires

• Fonctions Séquentielles

Lotfi BOUSSAID Cours Informatique Temps Réel 33

Lotfi BOUSSAID

Cours Informatique Temps Réel

33

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Analogie avec circuits logiques réels

Exemple: Comparateur 4 bits

avec circuits logiques réels Exemple: Comparateur 4 bits entity comparateur is port ( A, B: in

entity comparateur is port( A, B: in bit_vector(0 to 3); EQ: out bit); end comparateur;

architecture arch of comparateur is begin EQ <= ‘1’ when (A = B) else ‘0’; end arch;

Lotfi BOUSSAID Cours Informatique Temps Réel 34

Lotfi BOUSSAID

Cours Informatique Temps Réel

34

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Objets VHDL

Les différentes sortes d’objets

– Signal : Fil conducteur.

– Variable : Valeur intermédiaire d’une opération complexe.

– Constant : Valeur fixe. Possédant tous un type

Data Type

Values

 

Example

Bit

‘1’, ‘0’

Q

<= ‘1’;

Bit_vector

(array of bits)

DataOut <= "00010101";

Boolean

True, False

EQ <= True;

Integer

-2, -1, 0, 1, 2, 3, 4

Count <= Count + 2;

Real

1.0, -1.0E5

V1 = V2 / 5.3

Time

1 ua, 7 ns, 100 ps

Q

<= ‘1’ after 6 ns;

Character

‘a’, ‘b’, ‘2, ‘$’, etc.

CharData <= ‘X’;

String

(Array of characters)

Msg <= "MEM: " & Addr

Lotfi BOUSSAID Cours Informatique Temps Réel 35

Lotfi BOUSSAID

Cours Informatique Temps Réel

35

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Objets VHDL

La bibliothèque IEEE 1164 a proposé un type de donnée standard ayant neuf valeurs comme indiqué ci-dessous :

Value

Description

'U'

Uninitialized

'X'

Unknown

'0'

Logic 0

(driven)

'1'

Logic 1

(driven)

'Z'

High

impedance

'W'

Weak 1

'L'

Logic 0 (read)

'H'

Logic 1 (read)

'-'

Don’t care

Ex. Type : std_logic et std_logic_vector(n downto 0)

Lotfi BOUSSAID Cours Informatique Temps Réel 36

Lotfi BOUSSAID

Cours Informatique Temps Réel

36

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Opérateurs

• Vaste choix d’opérateurs

Logiques: and, or, nand, nor, xor, etc.

Tests : =, /=, <, >, <=, etc.

Arithmétiques: +, -, /, *

Attributs : clock’event, clock’last_value, etc.

• Exemple, pour détecter un front montant :

if Clock = '1' and Clock’event then

Lotfi BOUSSAID Cours Informatique Temps Réel 37

Lotfi BOUSSAID

Cours Informatique Temps Réel

37

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les entités (entity)

Qu’est-ce que c’est ? C’est un bloc de code indépendant avec ses entrées et sorties

Analogie avec C/ C++ : Une fonction

Une entité est divisée en trois (3) parties :

• Déclaration de l’entité

• Déclaration des constantes, signaux internes et components

• Corps de l’entité : code utile

Entity <Nom de l’entité> is Port ( <Signaux in et out>); End <Nom de l’entité>

in et out>); End <Nom de l’entité> Architecture Structural <Nom de l’entité> is

Architecture Structural <Nom de l’entité> is <Constantes> <Signaux internes> <Components>

Begin <Code utile> End Structural

Règle : une seule entité par fichier

Lotfi BOUSSAID Cours Informatique Temps Réel 38

Lotfi BOUSSAID

Cours Informatique Temps Réel

38

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Exemple d’entité : additionneur 8 bits

Entity Adder8bits is Port ( clk: in std_logic; rst: in std_logic; A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); C: out std_logic_vector(7 downto 0); Carry: out std_logic); End Adder8bits

Architecture behavioral of Adder8bits is

Signal AplusB: std_logic_vector(8 downto 0); Begin Additiop : Process (rst, clk) Begin If (rst = '1') then Carry <= '0';

C <= "00000000";

AplusB <= (Others => '0');

Elsif (clk'event and clk = '1') then AplusB <= (A & '0') + (B & '0');

C <= AplusB(7 downto 0);

Carry <= AplusB(8)

End End process End behavioral

Lotfi BOUSSAID Cours Informatique Temps Réel 39

Lotfi BOUSSAID

Cours Informatique Temps Réel

39

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les components

But : Modularisation du code de façon hiérarchique (Analogie avec C/ C++ : Appel de fonction)

• Méthode pour inclure d’autres entités dans une entité principale

• Déclaration du component

• Instanciation du component : « Port map »

• Niveaux d’instanciations infinis !

: « Port map » • Niveaux d’instanciations infinis ! Lotfi BOUSSAID Cours Informatique Temps Réel
: « Port map » • Niveaux d’instanciations infinis ! Lotfi BOUSSAID Cours Informatique Temps Réel
Lotfi BOUSSAID Cours Informatique Temps Réel 40

Lotfi BOUSSAID

Cours Informatique Temps Réel

40

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Exemple avec component : additionneur 16 bits

Entity Adder16bits is Port ( D: in std_logic_vector(15 downto 0); E: in std_logic_vector(15 downto 0); F: out std_logic_vector(15 downto 0)); End Adder16bits;

Architecture Structural of Adder16bits is Signal Carry: std_logic; Signal Dplus: std_logic_vector(7 downto 0); Component Adder8bits Port ( A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); C: out std_logic_vector(7 downto 0); Carry: out std_logic); End component; Begin Adder1 : Adder8bits Port map ( D(7 downto 0), E(7 downto 0), F(7 downto 0), Carry);

( D(7 downto 0), E(7 downto 0), F(7 downto 0), Carry); Dplus <= D(15 downto 8)

Dplus <= D(15 downto 8) + ("0000000" & Carry); Adder2 : Adder8bits Port map ( Dplus, E(15 downto 8), F(15 downto 8), Carry ); End structural

Lotfi BOUSSAID Cours Informatique Temps Réel 41

Lotfi BOUSSAID

Cours Informatique Temps Réel

41

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les Packages

• Les packages sont des librairies de code VHDL précompilées ou non (Analogie avec C/ C++: #include “package.h”)

• Les packages sont généralement déclarés au tous début des fichiers de code source VHDL (avant les entités)

• Employés dans plusieurs cas, par exemple :

– Modularisation du code

– Simulation de composantes numériques externes

– Librairies nécessaires par les simulateurs employés

– Librairies nécessaires par les simulateurs employés Lotfi BOUSSAID Cours Informatique Temps Réel 42
Lotfi BOUSSAID Cours Informatique Temps Réel 42

Lotfi BOUSSAID

Cours Informatique Temps Réel

42

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Test bench et exemple

• Test bench : Librairies et entité « vide »

• Déclaration des components à simuler et signaux à manipuler

des components à simuler et signaux à manipuler • Opérateurs Wait et After Lotfi BOUSSAID Cours
des components à simuler et signaux à manipuler • Opérateurs Wait et After Lotfi BOUSSAID Cours

• Opérateurs Wait et After

à simuler et signaux à manipuler • Opérateurs Wait et After Lotfi BOUSSAID Cours Informatique Temps
Lotfi BOUSSAID Cours Informatique Temps Réel 43

Lotfi BOUSSAID

Cours Informatique Temps Réel

43

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Syntaxe

1. Les Instructions Port et Generic

- Port permet de décrire les entrées sorties

- Generic permet de spécifier certains paramètres de l’entité pour avoir des descriptions très générales (ex: largeur d’un bus)

2. Les Directions

- In entrée

- Out sortie qui ne peut pas être relue à l’intérieur de l’architecture

- Inout entrée-sortie pouvant être relue à l’intérieur de l’architecture

- Buffer sortie pouvant être relue à l’intérieur de l’architecture mais sur des signaux du type buffer

3. Les Objets

- Signal connexion interne déclarée dans une architecture ou un paquetage

- Buffer Il est affecté généralement à une sortie après une utilisation interne

- Variable utilisée comme index dans la génération de boucle et ne peut être déclarée que dans un process.

- Constant permet une meilleure lisibilité du programme

Lotfi BOUSSAID Cours Informatique Temps Réel 44

Lotfi BOUSSAID

Cours Informatique Temps Réel

44

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

4. La description

Syntaxe

- Les instructions concurrentes

- Affectation simple :

GRANDEUR <= VALEUR_OU_AUTRE_GRANDEUR;

- Affectation conditionnelle :

GRANDEUR <=

- Affectation sélective :

GRANDEUR <=

- La boucle For

Generate

Q1 when Condition1 else

Q2 when Condition2 else

Qn

Q1 when valeur1, Q2 when valeur2,

Qn when others;

for i in MIN to MAX generate INSTRUCTIONS; end generate;

Lotfi BOUSSAID Cours Informatique Temps Réel 45

Lotfi BOUSSAID

Cours Informatique Temps Réel

45

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

- Les instructions séquentielles

-

Le test if

Then

Elsif

Syntaxe

Else

End if :

if CONDITION1 then

INSTRUCTION1;

elsif CONDITION2 then

INSTRUCTION2;

else INSTRUCTIONn; end if;

- Le test case

When

End case :

case EXPRESSION is when ETAT1 => INSTRUCTION1; when ETAT2 => INSTRUCTION2;

when others End case;

=> INSTRUCTIONn;

Lotfi BOUSSAID Cours Informatique Temps Réel 46

Lotfi BOUSSAID

Cours Informatique Temps Réel

46

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Syntaxe

- Les instructions séquentielles

- La boucle for

In

To

for N in X to Y loop

INSTRUCTION;

Loop

End loop :

end loop;

- La boucle while

Loop

End loop :

while CONDITION loop INSTRUCTION; end loop;

- L’attente " wait until" :

wait until EVENEMENT;

INSTRUCTION;

Lotfi BOUSSAID Cours Informatique Temps Réel 47

Lotfi BOUSSAID

Cours Informatique Temps Réel

47

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Fonctions Combinatoires

Une fonction combinatoire peut être représentée par un système dont les sorties dépendent uniquement des entrées.

E

E

0

n

FC
FC
FC
FC

FC

FC
les sorties dépendent uniquement des entrées. E E 0 n FC S S 0 p S

S

S

0

p

S

S

0

p

(

= FC E

0

(

= FC E

0

,

,

,

,

E

n

E

n

)

)

architecture COMPORTEMENT of BCD_2_7SEG is begin case BIN is when 0 => SORTIE <= "0000001" ; when 1 => SORTIE <= "1001111" ; when 2 => SORTIE <= "0010010" ; when 3 => SORTIE <= "0000110" ; when 4 => SORTIE <= "1001100" ; when 5 => SORTIE <= "0100100" ;

when 6 => SORTIE <= "0100000" ;

ExempleExemple :: Conversion BCD vers 7 Segments :

; Exemple Exemple : : Conversion BCD vers 7 Segments : library ieee ; use ieee.std_logic_1164.ALL;

library ieee ; use ieee.std_logic_1164.ALL; entity BCD_2_7SEG is port ( BIN : in STD_LOGIC_VECTOR(3 downto 0) ;

SORTIE : out STD_LOGIC_VECTOR(6 downto 0)

); end BCD_2_7SEG;

when 7 => SORTIE <= "0001111" ; when 8 => SORTIE <= "0000000" ; when 9 => SORTIE <= "0000100" ; when others => SORTIE <= "01100000" ; end case ; end COMPORTEMENT;

Lotfi BOUSSAID Cours Informatique Temps Réel 48

Lotfi BOUSSAID

Cours Informatique Temps Réel

48

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Fonctions Séquentielles (1)

Définition d’un PROCESS Un process est une partie de la description d’un circuit dans laquelle les instructions sont exécutées séquentiellement c’est à dire les unes à la suite des autres. Il permet d’effectuer des opérations sur les signaux en utilisant les instructions standard de la programmation structurée comme dans les systèmes à microprocesseurs. L’exécution d’un process est déclenchée par un ou des changements d’états de signaux logiques. Le nom de ces signaux est défini dans la liste de sensibilité lors de la déclaration du process.

[Nom_du_process :] process(Liste_de_sensibilité_nom_des_signaux) Begin -- instructions du process end process [Nom_du_process] ;

Règles de fonctionnement d’un process :

1) L’exécution d’un process a lieu à chaque changement d’état d’un signal de la liste de sensibilité. 2) Les instructions du process s’exécutent séquentiellement. 3) Les changements d’état des signaux par les instructions du process sont pris en compte à la fin du process.

Lotfi BOUSSAID Cours Informatique Temps Réel 49

Lotfi BOUSSAID

Cours Informatique Temps Réel

49

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Fonctions Séquentielles (2)

Les deux principales structures utilisées dans un PROCESS

L’assignation conditionnelle

if condition then instructions [elsif condition then instructions] [else instructions] end if ;

Exemple:

if (RESET=’1’) then SORTIE <= ”0000”; end if ;

L’assignation sélective case signal_de_slection is when valeur_de_sélection => instructions [when others => instructions] end case;

Exemple:

case SEL is when “000” => S1 <= E1; when “001” => S1 <= ‘0’; when “010” | “011” => S1 <=’1’; when others => S1 <= ‘0’; end case;

Lotfi BOUSSAID Cours Informatique Temps Réel 50

Lotfi BOUSSAID

Cours Informatique Temps Réel

50

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Fonctions Séquentielles (3)

Exemples de process : Déclaration d’une bascule D

Library ieee; Use ieee.std_logic_1164.all; Use ieee.numeric_std.all; Use ieee.std_logic_unsigned.all;

entity BASCULED is port ( D,CLK : in std_logic;

S : out std_logic);

end BASCULED;

architecture DESCRIPTION of BASCULED is begin PRO_BASCULED : process (CLK) begin if (CLK'event and CLK ='1') then

S <= D;

end if; end process PRO_BASCULED; end DESCRIPTION;

Lotfi BOUSSAID Cours Informatique Temps Réel 51

Lotfi BOUSSAID

Cours Informatique Temps Réel

51

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Fonctions Séquentielles (4)

Une fonction séquentielle a la capacité de « sese souvenirsouvenir » des événements antérieurs :

Une même combinaison des entrées, à un certain instant, pourra avoir des effets différents suivant les valeurs des combinaisons précédentes de ces mêmes entrées.

Une fonction séquentielle peut être réalisée grâce une structure du type machine à états finis (MEF)

e une structure du type machine à états finis (MEF) Une machine à états en anglais

Une machine à états en anglais Finite State Machine (F.S.M.) est un système dynamique, qui peut se trouver, à chaque instant, dans une position parmi un nombre fini de positions possibles.

Lotfi BOUSSAID Cours Informatique Temps Réel 52

Lotfi BOUSSAID

Cours Informatique Temps Réel

52

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les Machines d’États Finis (MEF)

des Systèmes Matériels Les Machines d’États Finis (MEF) Deux types de machines ex istent : la

Deux types de machines existent : la machine de Moore et celle de MEALY

Dans une machine de type MOORE, les sorties ne dépendent que de l’état interne.

Dans une machine de type MEALY, les sorties sont fonctions de l’état courant et des entrées.

Le registre d’état constitue le cœur d’une machine à états. Il est constitué de n bascules synchrones. Le nombre d’états est : N=2 n

Lotfi BOUSSAID Cours Informatique Temps Réel 53

Lotfi BOUSSAID

Cours Informatique Temps Réel

53

La CAO des Systèmes Matériels
La CAO des Systèmes Matériels

Les Machines d’États Finis (MEF)

Le Diagramme de Transition

On associe à chaque valeur possible du registre d’état, une case. L’évolution du système est représentée par des flèches représentant les transitions. Pour qu’une transition soit activée il faut que les trois conditions suivantes soient vérifiées :

1. Le système se trouve dans l’état «source » considéré

2. La condition de réalisation sur les entrées est vraie

3. Un front actif de l’horloge survient

est vraie 3. Un front actif de l’horloge survient Exemple de diagramme d’état Lotfi BOUSSAID Cours

Exemple de diagramme d’état

Lotfi BOUSSAID Cours Informatique Temps Réel 54

Lotfi BOUSSAID

Cours Informatique Temps Réel

54

Plan du cours
Plan du cours

• Généralités sur les systèmes temps réel

• La CAO des Systèmes Matériels

• Les Systèmes d’Exploitation

• La programmation parallèle

• Les STR embarqués : les SOC et les SOPC

Lotfi BOUSSAID Cours Informatique Temps Réel 55

Lotfi BOUSSAID

Cours Informatique Temps Réel

55

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation
Qu’est-ce qu’un système d’exploitation ? Un système d’exploitation permet de fournir : - -
Qu’est-ce qu’un système d’exploitation ?
Un système d’exploitation permet de fournir :
-
-

Une gestion des ressources : (processeurs, mémoires, disques,

horloges, etc.)

Une base pour le développement et l’exécution de programmes d’application

Problématique

Pour assurer une exécution portable et efficace il faut pouvoir gérer :

- La multiplicité des différentes ressources - la complexité de chacune des composantes encombrantes source de bogues

Lotfi BOUSSAID Cours Informatique Temps Réel 56

Lotfi BOUSSAID

Cours Informatique Temps Réel

56

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Exemples de problèmes

1. Contrôleur de lecteur de disquette (NEC PD765) :

- Lecture ou écriture d’un secteur

- Le déplacement du bras d’un lecteur

- Le formatage d’une piste

- L’initialisation du contrôleur, le calibrage des têtes de lecture, des tests internes

2. Partage d’imprimante

- Pouvoir verrouiller l’accès à l’imprimante

- Gérer les tampons d’impression

- Éviter les conflits entre les programmes et les usagers

- Gérer l’accès concurrentiel à cette ressources

Lotfi BOUSSAID Cours Informatique Temps Réel 57

Lotfi BOUSSAID

Cours Informatique Temps Réel

57

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Fonctionnalités d’un Système d’Exploitation

Un système d’exploitation a pour but :

- Décharger le programmeur des tâches de programmation énorme et fastidieuse

- Protéger le système et ses usagers des fausses manipulations

- Offrir une vue simple, uniforme et cohérente de la machine et de ses ressources

Un système d’exploitation est considéré selon deux points de vue :

d’exploitation est consid éré selon deux points de vue : Vue descendante Machine virtuelle SE Vue

Vue descendante

Machine virtuelle

SE

deux points de vue : Vue descendante Machine virtuelle SE Vue ascendante Gestionnaire de ressources Lotfi

Vue ascendante

Gestionnaire de ressources

Lotfi BOUSSAID Cours Informatique Temps Réel 58

Lotfi BOUSSAID

Cours Informatique Temps Réel

58

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Fonctionnalités d’un Système d’Exploitation (2)

La machine virtuelle doit fournir à l’utilisateur :

- Une vue uniforme des entrées/sorties

- Une mémoire virtuelle et partageable

- La gestion de fichiers et répertoires

- la gestion de processus

- La gestion de communication interprocessus

La Gestionnaire de ressources doit permettre :

- Assurer le bon fonctionnement des ressources et le respect des délais

- Le contrôle des accès aux ressources

- L’interruption d’une utilisation de ressource

- La gestion des erreurs

- Et l’empêchement des conflits

Lotfi BOUSSAID Cours Informatique Temps Réel 59

Lotfi BOUSSAID

Cours Informatique Temps Réel

59

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Principes des Systèmes d’Exploitation

Appels Système :

- Interface entre le système d’exploitation et les programmes d’application qui s’exécutent en mode non privilégié (mode utilisateur)

- Les appels systèmes sont réalisés au moyen d’instructions spécifiques

logicielles qui permettent le passage en mode privilégié appelé mode noyau ou kernel

«Traps » ou interruptions

Mode noyau :

- Le code et les données utilisés par le SE ne sont accessibles qu’en mode noyau

- Les instructions de modification de la table de segments mémoire ne sont permises qu’en mode noyau

- Les instructions de lecture et d’écriture sur les ports d’entrée/sortie ne sont permises qu’en mode noyau

Application

Application CALL Bibliothèque Mode utilisateur TRAP Mode noyau Système Matériel

CALL

Bibliothèque Mode utilisateur

TRAP

Mode noyau

Système

Matériel

Mécanisme des traps

Lotfi BOUSSAID Cours Informatique Temps Réel 60

Lotfi BOUSSAID

Cours Informatique Temps Réel

60

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Types de Systèmes d’Exploitation

- Mono-utilisateur

N’accepte qu’un seul utilisateur à un moment donné

- Contrôle de processus

Ces systèmes sont principalement utilisés en milieu industriel, ils permettent de réagir en temps garanti à des événements issus de capteurs pour maintenir la stabilité d’un processus industriel « Feedback »

- Serveurs de fichiers

Ces systèmes contrôlent de gros ensembles d’informations interrogeables à distance Besoin de temps de réponse court

- Transactionnel Ces systèmes contrôlent de grandes bases de données modifiées de façon très fréquente Besoin de temps de réponse court

- Général Multi-utilisateurs et multi-tâches

Lotfi BOUSSAID Cours Informatique Temps Réel 61

Lotfi BOUSSAID

Cours Informatique Temps Réel

61

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Structure Interne des SE Généraux

1. Systèmes Monolithiques

Le système est une collection de procédures, chacune visible de toutes les autres, et pouvant appeler toute autre procédure qui lui est utile.

Structure interne en trois niveaux :

- La procédure interne est exécutée lors de chaque appel système

- Les procédures de services dédiés au traitement de chaque appel système

- Les procédures utilitaires assistent les procédures de service

2. Systèmes en couche

Structuration en plusieurs couches, dont chacune s’appuie sur la couche immédiatement inférieure

Lotfi BOUSSAID Cours Informatique Temps Réel 62

Lotfi BOUSSAID

Cours Informatique Temps Réel

62

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Structure Interne des SE Généraux (2)

3. Machines virtuelles

Le cœur du système, appelé machine virtuelle, s’exécute juste au dessus du matériel et se charge de la multiprogrammation et fournissant à la couche supérieure plusieurs machines virtuelles

Application

Application

Application

CMS

CMS

CMS

VM

Matériel

4. Systèmes client-serveur

CMS: Conversation Monitor System

VM: Virtual Machine

Les systèmes client-serveurs sont basés sur une approche horizontale plutôt que verticale.

Ils sont constitué d’un micro-noyau minimum pour la communication, permettant aux processus clients d’effectuer des requêtes auprès des différents serveurs de ressources du SE.

Lotfi BOUSSAID Cours Informatique Temps Réel 63

Lotfi BOUSSAID

Cours Informatique Temps Réel

63

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Définition

Les Processus

Les Systèmes d’Exploitation Définition Les Processus Définition - Définition - Lotfi BOUSSAID Cours Informatique

Définition

-

Définition

-

Lotfi BOUSSAID Cours Informatique Temps Réel 64

Lotfi BOUSSAID

Cours Informatique Temps Réel

64

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (2)

Notion de processus

d’Exploitation Les Processus (2) Notion de processus - - - A B C D Temps Dans

-

-

-

Les Processus (2) Notion de processus - - - A B C D Temps Dans les
A B C D
A
B
C
D

Temps

Dans les SE à temps partagé, tous les processus progressent dans le temps, mais un seul s’exécutent à la fois

Lotfi BOUSSAID Cours Informatique Temps Réel 65

Lotfi BOUSSAID

Cours Informatique Temps Réel

65

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (3)

État d’un processus

Les processus passent par des états discrets différents :

- Élu s’il est en cours d’exécution sur le processeur

- Prêt s’il est suspendu en faveur d’un autre. Il ne lui manque que la ressource processeur pour s’exécuter

- Bloqué s’il est en attente d’un évènement externe (frappe d’un clavier, bloc disque,

)

Gestion des processus

Pour la mise en œuvre du modèle des processus, le système dispose d’une table appelé « Table des processus ».

Pour chaque processus on trouve :

- Les valeurs de son compteur ordinal, son pointeur de pile, et des autres registres du processeur

- son numéro de processus, son état, sa priorité, son vecteur d’interruptions,

- son occupation mémoire

- la liste des fichiers ouverts par lui,

Lotfi BOUSSAID Cours Informatique Temps Réel 66

Lotfi BOUSSAID

Cours Informatique Temps Réel

66

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (4)

Gestion des interruptions

Le traitement des interruptions par le système s’effectue en appelant la routine de traitement associée à chaque type d’interruption, dont l’adresse est stockée dans une table indexée appelée Vecteur d’Interruptions.

Le traitement d’une interruption par le SE s’effectue de la façon suivante :

- Le processeur sauvegarde la valeur de son compteur ordinal dans la pile courante, détermine le type

d’interruption, passe en mode noyau et charge la nouvelle valeur du compteur ordinal à partir de la valeur contenue dans le vecteur d’interruptions.

- Sauvegarde des registres du processeur dans la pile, puis appelle la procédure principale de gestion de l’interruption, écrite en langage C

- Au retour de la procédure de gestion, la routine de traitement restaure les registres du processeur puis exécute l’instruction de retour de procédure (RET ou IRET)

Lotfi BOUSSAID Cours Informatique Temps Réel 67

Lotfi BOUSSAID

Cours Informatique Temps Réel

67

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (5)

Communication inter-processus

Certains processus :

- Ont besoin de coopérer nécessité de moyen de communication et de synchronisation

- se trouvent en compétition pour une ressource système, soit à cause de la non partageabilité d’une ressource, soit que les instructions peuvent provoquer des interblocages.

Ordonnancement des processus

prov oquer des interblocages. Ordonnancement des processus Lotfi BOUSSAID Cours Informatique Temps Réel 68
prov oquer des interblocages. Ordonnancement des processus Lotfi BOUSSAID Cours Informatique Temps Réel 68
Lotfi BOUSSAID Cours Informatique Temps Réel 68

Lotfi BOUSSAID

Cours Informatique Temps Réel

68

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (6)

Ordonnancement des processus

Les Processus (6) Ordonnancement des processus - - - - - Lotfi BOUSSAID Cours Informatique

-

-

-

-

-

Lotfi BOUSSAID Cours Informatique Temps Réel 69

Lotfi BOUSSAID

Cours Informatique Temps Réel

69

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Processus (7)

Les différents techniques d’ordonnancement

Ordonnancement circulaire : (round robin ou tourniquet) mécanisme d’ordonnancement le plus simple.

Il consiste à attribuer à chaque processus un quantum de temps pendant lequel il a le droit de s’exécuter.

Ordonnancement de priorité : Mécanisme de priorité afin de favoriser certaines classes de processus par rapport à d’autres en fonction des besoins.

Ordonnancement du plus court d’abord : Ce type d’ordonnancement s’applique lorsqu’on dispose d’un ensemble de tâches dont on peut connaître la durée à l’avance (ex: transactions journalières bancaires).

Ordonnancement dicté par une politique : Ce type d’ordonnancement permet de garantir à l’utilisateur une performance annoncé (peut être utilisé pour les systèmes temps réel)

Ordonnancement à deux niveaux :

- Un Ordonnanceur de bas niveau, semblable à ceux déjà vus, s’occupe des processus présents en mémoire

- Un Ordonnanceur de haut niveau permet, de temps en temps, d’échanger les processus entre la mémoire et le disque.

Lotfi BOUSSAID Cours Informatique Temps Réel 70

Lotfi BOUSSAID

Cours Informatique Temps Réel

70

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Définition

Les systèmes d’exploitation modernes sont basés sur des processeurs

d’exploitation modernes sont basés sur des processeurs Partage du temps du processeur ent re les différentes

Partage du temps du processeur entre les différentes tâches.

du temps du processeur ent re les différentes tâches. Le passage d’une tâche à l’autre est

Le passage d’une tâche à l’autre est assuré par un ensemble d’algorithmes appelé Ordonnanceur (Scheduler en anglais).

appelé Ordonnanceur ( Scheduler en anglais). Dans un système temps réel, le but de l'Ordonnanceur

Dans un système temps réel, le but de l'Ordonnanceur est de donner à l'utilisateur une impression de confort tout en s'assurant que toutes les tâches demandées sont finalement exécutées.

Lotfi BOUSSAID Cours Informatique Temps Réel 71

Lotfi BOUSSAID

Cours Informatique Temps Réel

71

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Contraintes

Les systèmes à contraintes temps réel doivent répondre à trois critères fondamentaux :

1.

2.

3.

Lotfi BOUSSAID Cours Informatique Temps Réel 72

Lotfi BOUSSAID

Cours Informatique Temps Réel

72

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Préemption et changement de contexte

Temps Réel Préemption et changement de contexte Lotfi BOUSSAID Cours Informatique Temps Réel 73
Lotfi BOUSSAID Cours Informatique Temps Réel 73

Lotfi BOUSSAID

Cours Informatique Temps Réel

73

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

La norme POSIX (Portable Operating System Interface)

Norme développée par l’IEEE (Institute of Electrical and Electronic Engineering) et standardisée par l'ANSI (American National Standard Institute) et l'ISO (International Standard Organisation).

Le but de POSIX est d'obtenir la portabilité des logiciels au niveau de leur code source indépendamment du matériel et afin de pouvoir migrer d’un système à l’autre moyennant une compilation des sources du programme.

Le standard POSIX est divisé en plusieurs sous-standards dont les principaux sont les suivants :

-IEEE 1003.1-1990 : POSIX Partie 1 : Interface de programmation (API) système. Ce standard contient la définition de ces fonctions (Bindings) en langage C.

- IEEE 1003.2-1992 : Interface applicative pour le shell et applications annexes pour les systèmes de type UNIX.

-IEEE 1003.1b-1993 : Interface de programmation (API) temps réel. Ajout du support de programmation temps réel au standard précédent. On parle également de POSIX.4.

- IEEE 1003.1c-1995 : Interface de programmation (API) pour le multithreading.

Lotfi BOUSSAID Cours Informatique Temps Réel 74

Lotfi BOUSSAID

Cours Informatique Temps Réel

74

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Noyau Temps Réel

Un noyau temps réel est le minimum logiciel pour pouvoir faire du temps réel : Ordonnanceur, gestion de tâches, communications inter-tâches (un système plutôt limité mais performant).

Exécutif temps réel

Un exécutif temps réel possède un noyau temps réel complété de modules/bibliothèques pour faciliter la conception d'applications temps réel : gestion mémoire, gestion des E/S, gestion de timers, gestion d'accès réseau, gestion de fichiers.

Système d'exploitation temps réel

Un système d'exploitation temps réel est le cas particulier où l'on a confusion entre le système hôte et le système cible qui ne font plus qu'un. On a donc ici un environnement de développement natif.

Lotfi BOUSSAID Cours Informatique Temps Réel 75

Lotfi BOUSSAID

Cours Informatique Temps Réel

75

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Tour d’horizon des principaux systèmes temps réel

VxWorks - est aujourd'hui l'exécutif temps réel le plus utilisé dans l'industrie (Société Wind River). Fiable, portable, totalement configurable et supporte plusieurs processeurs (PowerPC, 68k, ColdFire, 8086, Pentium, ARM, MCORE,

QNX - Développé par la société canadienne QNX Software , QNX est un système temps réel de type UNIX conforme à la norme POSIX

µC/OS - environnements de très petite taille construits autour de micro-contrôleurs. Il est disponible sur un grand nombre de processeurs et peut intégrer des protocoles standards comme TCP/IP (µC/IP) pour assurer une connectivité IP sur une liaison série par PPP.

Windows CE - Annoncé par Microsoft comme système d'exploitation embarqué pour les PDAs

eCOS - (Embeddable Configurable Operating System) fut initialement développé par la société Cygnus et adapté aux solutions à très faible empreinte mémoire et profondément enfouies.

Lotfi BOUSSAID Cours Informatique Temps Réel 76

Lotfi BOUSSAID

Cours Informatique Temps Réel

76

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Linux et le temps réel

1. Amélioration du noyau de linux par des patchs préemptifs à temps de latence réduit pour satisfaire les besoins d’applications temps réel mou.

2. Développement d’un noyau auxiliaire pour les traitements des tâches à temps réel dur

au xiliaire pour les traitements des tâches à temps réel dur Lotfi BOUSSAID Cours Informatique Temps
Lotfi BOUSSAID Cours Informatique Temps Réel 77

Lotfi BOUSSAID

Cours Informatique Temps Réel

77

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Le mécanisme des modules Linux temps réel

Gestion des modules :

– insmod <nom du module> : insertion du module dans le noyau.

Vérification de la compatibilité de version

Edition de lien dynamique avec les fonctions du noyau.

Execution de init_module.

– rmmod <nom du module> : retrait du module

Vérification que le module n'est pas utilisé.

Execution de cleanup_module.

– lsmod : liste de tous les modules contenus dans le noyau.

Les modules RTLinux :

– rtl_sched.o : scheduler temps-réel. API POSIX.

– rtl_fifo.o : API de gestion des FIFOs temps-réel.

– rtl_posixio.o : API d'opérations bas-niveau sur les devices.

– rtl_time.o : API de gestion du temps (précision : nanoseconde)

– rtl.o : micro-noyau temps-réel.

L'insertion du module rtl.o lance le noyau temps-réel.

Les modules RTLinux doivent être insérés préalablement à l'insertion de tout module définissant des tâches temps-réel.

Lotfi BOUSSAID Cours Informatique Temps Réel 78

Lotfi BOUSSAID

Cours Informatique Temps Réel

78

Les Systèmes d’Exploitation
Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Systèmes Temps Réel basé sur linux

1. RTAI (Real Time Application Interface) Département d'ingénierie aérospatiale (DIAPM) de l'Ecole polytechnique de Milan (Politecnico di Milano). Il intègre des améliorations et des corrections concernant en particulier les modes temps réel et la gestion des nombres flottants.

2. µClinux (prononcer « you see linux ») est l'acronyme de Microcontroller Linux. Le projet µClinux lancé en janvier 1998 est un portage de Linux version 2.0.x originellement sur des processeurs ne possédant d'unité de gestion mémoire MMU (Memory Management Unit). Il supporte les processeurs (Motorola 683xx, Motorola ColdFire, i960 d'Intel, ARM7TDMI et NIOS d'Altera. µClinux basé sur le noyau Linux 2.4.x est maintenant opérationnel.

Lotfi BOUSSAID Cours Informatique Temps Réel 79

Lotfi BOUSSAID

Cours Informatique Temps Réel

79

Plan du cours
Plan du cours

• Généralités sur les systèmes temps réel

• La CAO des Systèmes Matériels

• Les Systèmes d’Exploitation

• La programmation parallèle

• Les STR embarqués : les SOC et les SOPC

Lotfi BOUSSAID Cours Informatique Temps Réel 80

Lotfi BOUSSAID

Cours Informatique Temps Réel

80

La programmation Parallèle
La programmation Parallèle

Un aperçu du parallélisme

La programmation Parallèle Un aperçu du parallélisme Lotfi BOUSSAID Cours Informatique Temps Réel 81
La programmation Parallèle Un aperçu du parallélisme Lotfi BOUSSAID Cours Informatique Temps Réel 81
Lotfi BOUSSAID Cours Informatique Temps Réel 81

Lotfi BOUSSAID

Cours Informatique Temps Réel

81

La programmation Parallèle
La programmation Parallèle

Un aperçu du parallélisme (2)

La programmation Parallèle Un aperçu du parallélisme (2) Lotfi BOUSSAID Cours Informatique Temps Réel 82
La programmation Parallèle Un aperçu du parallélisme (2) Lotfi BOUSSAID Cours Informatique Temps Réel 82
La programmation Parallèle Un aperçu du parallélisme (2) Lotfi BOUSSAID Cours Informatique Temps Réel 82
La programmation Parallèle Un aperçu du parallélisme (2) Lotfi BOUSSAID Cours Informatique Temps Réel 82
Lotfi BOUSSAID Cours Informatique Temps Réel 82

Lotfi BOUSSAID

Cours Informatique Temps Réel

82

La programmation Parallèle
La programmation Parallèle

Le Calcul parallèle : qu'est ce que c'est?

« Faire coopérer plusieurs processeurs pour réaliser un calcul »

Avantages :

Rapidité :

Pour N processeurs, temps de calcul divisé par N, en théorie.

Taille mémoire :

Pour N processeurs, on dispose de N fois plus de mémoire (en général)

Difficultés :

Il faut gérer le partage des tâches.

Il faut gérer l'échange d'information. (tâches non indépendantes)

Lotfi BOUSSAID Cours Informatique Temps Réel 83

Lotfi BOUSSAID

Cours Informatique Temps Réel

83

La programmation Parallèle
La programmation Parallèle

Qu'est ce qui n'est pas du calcul parallèle.

Quand les processeurs ne coopèrent pas :

Calculs monoprocesseurs séquentiels

Calculs multiprocesseurs :

• Exécution pour une série de conditions initiales différentes. • Problème divisible en sous-problèmes indépendants:

Exemple: Mouvement de N particules test dans un champ extérieur.

Une architecture parallèle efficace coûte cher, il faut l'utiliser à bon escient.

Lotfi BOUSSAID Cours Informatique Temps Réel 84

Lotfi BOUSSAID

Cours Informatique Temps Réel

84

La programmation Parallèle
La programmation Parallèle

Modèle de parallélisme

Architecture matérielle:

Modèle de parallélisme Architecture matérielle: Modèle de programmation: Le plus utilisé Outils de

Modèle de programmation:

Le plus utilisé

matérielle: Modèle de programmation: Le plus utilisé Outils de parallélisation: OpenMP ordinateur à mémoire
matérielle: Modèle de programmation: Le plus utilisé Outils de parallélisation: OpenMP ordinateur à mémoire

Outils de parallélisation:

OpenMP ordinateur à mémoire partagée

MPI ordinateur à mémoire distribuée

Lotfi BOUSSAID Cours Informatique Temps Réel 85

Lotfi BOUSSAID

Cours Informatique Temps Réel

85

La programmation Parallèle
La programmation Parallèle

Mémoire partagée / distribuée

La programmation Parallèle Mémoire partagée / distribuée Mémoire partagée (SMP) Tous les processeurs ont accès à

Mémoire partagée (SMP)

Tous les processeurs ont accès à l'ensemble de la mémoire.

Attention aux conflits.

Très peu de surcoût de parallélisation.

Le plus souvent nb proc < 32.

Architecture coûteuse.

plus souvent nb proc < 32. ➔ Architecture coûteuse. Mémoire distribuée Chaque processeur possède sa propre

Mémoire distribuée

Chaque processeur possède sa propre mémoire. Il n'a pas accès à celle des autres.

Il faut gérer l'échange de messages (surcoût)

Architecture bon-marché.

Il faut ajouter un réseau de com. performant.

Nb de proc ~ illimité.

Lotfi BOUSSAID Cours Informatique Temps Réel 86

Lotfi BOUSSAID

Cours Informatique Temps Réel

86

La programmation Parallèle
La programmation Parallèle

Revue d'effectif 1: dans le monde

Tous les ans, une liste des 500 plus gros ordinateur est publiée sur:

http://www.top500.org

Extrait de la liste du 8 Novembre 2004:

Extrait de la liste du 8 Novembre 2004: [1] Programmation parallèle pour le calcul scienti fique,

[1] Programmation parallèle pour le calcul scientifique, Benoit Semelin, 2005

Lotfi BOUSSAID Cours Informatique Temps Réel 87

Lotfi BOUSSAID

Cours Informatique Temps Réel

87

La programmation Parallèle
La programmation Parallèle

Outils de parallélisation

La parallélisation peut-être effectuées à divers niveaux:

Langages :

Compositional C++ (CC++)

Fortran M

High performance Fortran (HPF)

etc

Bibliothèques :

Message Passing Interface (MPI)

Parallel Virtual Machine (PVM): ~ obsolète.

Directives de compilation :

OpenMP

Instructions spécifiques constructeur.

Compilateurs: efficacité très faible :

Intel Fortran/C compiler: gratuit.

Lotfi BOUSSAID Cours Informatique Temps Réel 88

Lotfi BOUSSAID

Cours Informatique Temps Réel

88

La programmation Parallèle
La programmation Parallèle

Modèle de programmation OpenMP

OpenMP est un ensemble de directives de compilation pour paralléliser un code sur une architecture SMP (interfaces Fortran, C et C++)

Le compilateur interprète les directive OpenMP (si il en est capable!) Les standards d'OpenMP datent de 1997, ceux d'OpenMP-2 de 2000. Les développeurs de compilateurs les implémentent.

Modèles d'exécution OpenMP:

les implémentent. Modèles d'exécution OpenMP: Lotfi BOUSSAID Cours Informatique Temps Réel 89
Lotfi BOUSSAID Cours Informatique Temps Réel 89

Lotfi BOUSSAID

Cours Informatique Temps Réel

89

La programmation Parallèle
La programmation Parallèle

Comment « faire tourner » un code OpenMP ?

Écrire le code séquentiel (tout ou partie) Débuguer Se placer sur une machine SMP multiprocesseur Insérer les directives OpenMP Compiler avec l'option appropriée: f90 -omp toto.f90 -o toto.out Définir le nombre de CPU: export OMP_NUM_THREADS =4 Lancer normalement: ./toto.out Débuguer Évaluer les performances, en particulier le « speedup »:

Temps exécution N procs / Temps exécution 1 proc

Lotfi BOUSSAID Cours Informatique Temps Réel 90

Lotfi BOUSSAID

Cours Informatique Temps Réel

90

Temps de transmission (10-100µs)

La programmation Parallèle
La programmation Parallèle

Parallélisation sur architectures à mémoire distribuée :

Communications

Temps de transmission d'un message

Sur une architecture à mémoire distribuée, les unités de calculs doivent échanger des messages. Ces communications ne sont pas instantanée.

Le coût dépend du réseau de communications et de l'implémentation MPI.

Détails des contributions au coût de communication. Voir graphique.

Conséquences:

Il vaut mieux envoyer 1 gros message que plein de petits. Il faut grouper les communication!

que plein de petits . Il faut grouper les communication! Débit (bandwidth) Préparation du message (Packing)
que plein de petits . Il faut grouper les communication! Débit (bandwidth) Préparation du message (Packing)

Débit (bandwidth)

Préparation du message (Packing) Latence Initialisation paramètres réseau
Préparation du message
(Packing)
Latence
Initialisation paramètres réseau

Taille des messages

(1-10 Ko)

Lotfi BOUSSAID Cours Informatique Temps Réel 91

Lotfi BOUSSAID

Cours Informatique Temps Réel

91

La programmation Parallèle
La programmation Parallèle

Modes de communications entre process

Exemple de mécanisme de communication: (two-sided, buffered, synchrone)

de communic ation: (two-sided , buffered, synchrone) Mode de commnications: définitions One-sided / Two-sided

Mode de commnications: définitions One-sided / Two-sided