Cours Informatique Temps Réel

128
Cours Informatique Temps Réel Calculateurs Temps Réel 1 Lotfi BOUSSAID [email protected] Cours Informatique Temps Réel ENIM – Université de Monastir 2007 - 2008

Transcript of Cours Informatique Temps Réel

Page 1: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

1Lotfi BOUSSAID

[email protected]

Cours Informatique Temps Réel

ENIM – Université de Monastir

2007 - 2008

Page 2: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

2Lotfi BOUSSAID

• 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)

Plan du cours

Page 3: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

3Lotfi BOUSSAID

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

Page 4: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

4Lotfi BOUSSAID

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

• 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)

Qu’est-ce qu’un Système temps réel ?

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

Un système temps réel est un système qui contrôle ou pilote un procédé physique à une vitesse adaptée à l’évolution de ce procédé quelles que soient les conditions d’utilisation

Un système temps réel est un système qui contrôle ou pilote un procédé physique à une vitesse adaptée à l’évolution de ce procédé quelles que soient les conditions d’utilisation

Page 5: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

5Lotfi BOUSSAID

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

• 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.

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

Page 6: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

6Lotfi BOUSSAID

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 »

Aller vite n’est pas l’objectif recherché

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

Page 7: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

7Lotfi BOUSSAID

GrandePortée

Faible portée

Satellite

Grande mobilité Faible mobilitéLarge région

Région

Local Area

• Télécommunications mobiles de 3ème génération • Fonctions multimédia • Grand public

Domaines d’application (1/2)

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

Page 8: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

8Lotfi BOUSSAIDSource: numatec automotive

• 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

Domaines d’application (2/2)

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

Page 9: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

9Lotfi BOUSSAID

Système Informatique

Hardware Software

Évolution de l’architecture

• Monoprocesseur, Multiprocesseurs• CISC, RISC• Scalaire, superscalaire, vectoriel• Van Neumann Harvard

CAO de circuits intégrés

Outils de description matérielVHDL, Handel-C, SystemC ..

Design Reuse : IP

LangageOS

• DOS, Windows 9x, XP• Unix, Linux, HPUX ..

RTOS

Assembleur, FortranC, C++, LISP, ADA

Programmation parallèle

RTLinux, µClinux, TRAI, VxWorks

V Fortran, C

Conception logicielle MatérielleCODESIGN

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

Page 10: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

10Lotfi BOUSSAID

Microprocesseurs - le 8080

• 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 ?

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

Page 11: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

11Lotfi BOUSSAID

Microprocesseurs - Le Pentium© Pro

• 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

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

Page 12: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

12Lotfi BOUSSAID

Carte mère et Bus PC

• 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

Ex : carte Pentium

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

Page 13: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

13Lotfi BOUSSAID

Von Neumann vs. Harvard

MÉMOIREMÉMOIRE CPUCPUIOIO

• • • • •IOIO IOIO

BUS SYSTÈME

MÉMOIREDONNÉES

MÉMOIREDONNÉES CPUCPU IOIO • • • • •IOIO IOIO

BUS DONNÉES

BUS INSTRUCTIONS

MÉMOIREPROGRAMMEMÉMOIRE

PROGRAMME

• Von Neumann

• Harvard

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

Page 14: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

14Lotfi BOUSSAID

Les processeurs CISC(Complex Instructions Set Computer)

• 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 avantages

• 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

Les inconvénients

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

Page 15: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

15Lotfi BOUSSAID

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

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

Page 16: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

16Lotfi BOUSSAID

Le pipeline (ou pipelining)

• 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

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

Page 17: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

17Lotfi BOUSSAID

Les ordinateurs séquentiels :

Les calculateurs Parallèles

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

Insuffisance pour certaines applications : météorologie, synthèse et reconstruction d'images, simulations numériques, etc.

Développer des calculateurs parallèles

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

Page 18: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

18Lotfi BOUSSAID

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.

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

Page 19: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

19Lotfi BOUSSAID

Modèles de Calculateurs Parallèles

Classification de Flynn [1]

Architecture SISD « Single Instruction stream, Single Data stream »

Architecture MISD « Multiple Instruction stream, Single Data stream »

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

Page 20: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

20Lotfi BOUSSAID

Modèles de Calculateurs Parallèles

Classification de Flynn [1]

Architecture SIMD « Single Instruction stream, Multiple Data stream »

Architecture MIMD « Multiple Instruction stream, Mingle Data stream »

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

Page 21: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

21Lotfi BOUSSAID

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

Page 22: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

22Lotfi BOUSSAID

La CAO des Systèmes Matériels

Les circuits FPGA (Field Programmable Gate Array)

PLDProgrammable Logic Device

PLDProgrammable Logic Device

SPLDSimple PLD

(PAL & GAL)

~ 0 à 500Gates

SPLDSimple PLD

(PAL & GAL)

~ 0 à 500Gates

CPLDComplex PLD

~ 500 à 30 000 Gates

CPLDComplex PLD

~ 500 à 30 000 Gates

FPGAField

ProgrammableGate Array

~ 1000 à 250 000 Gates

FPGAField

ProgrammableGate Array

~ 1000 à 250 000 Gates

SPGASystem

ProgrammableGate Array

~ 500 000 Gates

SPGASystem

ProgrammableGate Array

~ 500 000 Gates

Page 23: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

23Lotfi BOUSSAID

Les différentes technologies des FPGAs

CMOSNonNonAntifuse

CMOSOuiOui, dans le circuitSRAM

EECMOSNonOui, dans le circuitEEPROM

UVCMOSNonOui, en dehors du circuitEPROM

BipolaireNonNonFuse

Technologie:Volatile:Reprogrammable:Nom:

Résumé des différentes technologies

Les Fabricants

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

La CAO des Systèmes Matériels

Page 24: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

24Lotfi BOUSSAID

Programmable I/O • 840 Mbps LVDS

Synchronous Dual-Port RAM• Fast & efficient logic• Highest flexibility BRAM

SwitchMatrix

Slice S0

Slice S1

Slice S2

Slice S3

Digital Clock Management • Precise frequency generation and

phase control• Both on-chip & off-chip clock synchronization EmbeddedPowerPC

• 300 MHz• 420 DMIPS

Powerful CLB>300 MHz Performance

La CAO des Systèmes Matériels

Architecture interne des FPGAs

Page 25: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

25Lotfi BOUSSAID

• Les cellules d’interconnections programmables

Cellules d’interconnections

Bloc CLB

Bloc I/O

Les ressources logiques de base des circuits FPGAs :

PSM = Programmable Switch Matrix 10 interconnect points per matrix

• Les blocs logiques configurables CLBs

• Les blocs entrée/sortie

La CAO des Systèmes Matériels

Page 26: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

26Lotfi BOUSSAID

Tranche (Slice)

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

1 CLB = 2 (4) Tranches (Slices)

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

Les ressources logiques de base des circuits FPGAs :

La CAO des Systèmes Matériels

Page 27: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

27Lotfi BOUSSAID

La série Virtex de chez Xilinx compte trois modèles : Le Virtex 2.5V (0.22µm, 5 niveaux de métallisation)Le Virtex-E 1.8V (0.18µm, 6 niveaux de métallisation)Le Virtex-E 1.8V Extended Memory

Architecture des Virtex 2.5V et 1.8V [Xilinx00]

Exemple de circuits FPGAs Xilinx

La CAO des Systèmes Matériels

Page 28: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

28Lotfi BOUSSAID

• 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.

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

Advantages des circuits FPGA

La CAO des Systèmes Matériels

Page 29: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

29Lotfi BOUSSAID

Domaines d’application des FPGAs: • Prototypage rapide• Traitement d’images• Traitement du signal• Cryptographie• Réseaux informatiques• etc...

Les progrès technologique des FPGAs

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

La CAO des Systèmes Matériels

Page 30: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

30Lotfi BOUSSAID

SpécificationFonctionnelleSpécificationFonctionnelle

Stratégie de Conception

Synthèse etValidation

Synthèse etValidation

PrototypagePrototypage

Niveau RTLVHDL RTL

Data Path - Controller

Niveau RTLVHDL RTL

Data Path - Controller

Niveau Comportemental

C, VHDL ..

Niveau Comportemental

C, VHDL ..

Niveau LogiqueNelist

Niveau LogiqueNelist

Synthèse de Haut niveau Synthèse de Haut niveau

Synthèse RTL Synthèse RTL

Niveau PhysiqueNiveau Physique

Synthèse LogiqueSynthèse Logique

Raffinement &

Réutilisation

La CAO des Systèmes Matériels

Page 31: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

31Lotfi BOUSSAID

Développement d’un FPGA

Entrée schématique Entrée syntaxique Langage: VHDL Diagrammes d’états

Vérification des erreursde syntaxe

Synthèse

OptimisationPlacement / routagedans le circuit choisi

Simulation fonctionnelle

SimulationAprès synthèse

Simulation temporelle

VHDL VHDL VHDL

STIMULIOu

TESTBENCH

VHDL

STIMULIOu

TESTBENCH

VHDL

EDIF, XNF

JEDEC

STIMULIOu

TESTBENCH

VHDL, SDF

Modelsim

Xilinx Integrated Software Environnement

ISE

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)

La CAO des Systèmes Matériels

Page 32: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

32Lotfi BOUSSAID

Carte d’évaluation SPARTAN-3FPGA Spartan-3

216 Kbits de bloc RAM

Horloge interne jusqu’à 500 Mhz

3 connecteurs d’extensions

4 afficheurs 7 segments à Leds8 interrupteurs et

4 boutons-poussoirs

Port série

Port VGA

Port PS2

9 Leds

Mémoire SRAM

(256 Kb x 32)

Intégrée à la carte

La CAO des Systèmes Matériels

Page 33: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

33Lotfi BOUSSAID

Le VHDL

• 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

VHSIC (Very High Speed Integrated Circuit) Hardware Description Language

La CAO des Systèmes Matériels

Page 34: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

34Lotfi BOUSSAID

Analogie avec circuits logiques réels

Exemple: Comparateur 4 bits

architecture arch of comparateur isbegin

EQ <= ‘1’ when (A = B) else ‘0’;end arch;

La CAO des Systèmes Matériels

entity comparateur isport( A, B: in bit_vector(0 to 3);

EQ: out bit);end comparateur;

Page 35: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

35Lotfi BOUSSAID

• 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

Objets VHDL

La CAO des Systèmes Matériels

Msg <= "MEM: " & Addr(Array of characters)String

CharData <= ‘X’;‘a’, ‘b’, ‘2, ‘$’, etc.Character

Q <= ‘1’ after 6 ns;1 ua, 7 ns, 100 psTime

V1 = V2 / 5.31.0, -1.0E5Real

Count <= Count + 2;-2, -1, 0, 1, 2, 3, 4 . . .Integer

EQ <= True;True, FalseBoolean

DataOut <= "00010101";(array of bits)Bit_vector

Q <= ‘1’;‘1’, ‘0’Bit

ExampleValuesData Type

Page 36: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

36Lotfi BOUSSAID

Objets VHDL

La CAO des Systèmes Matériels

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

Don’t care'-'Logic 1 (read)'H'Logic 0 (read)'L'Weak 1'W'

Highimpedance

'Z'

Logic 1 (driven)

'1'

Logic 0 (driven)

'0'Unknown'X'Uninitialized'U'

DescriptionValue

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

Page 37: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

37Lotfi BOUSSAID

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 …

La CAO des Systèmes Matériels

Page 38: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

38Lotfi BOUSSAID

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 fonctionUne entité est divisée en trois (3) parties :

• Déclaration de l’entitéEntity <Nom de l’entité> is

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

• Déclaration des constantes, signauxinternes et components

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

Begin<Code utile>

End Structural• Corps de l’entité : code utile

Règle : une seule entité par fichier

La CAO des Systèmes Matériels

Page 39: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

39Lotfi BOUSSAID

Architecture behavioral of Adder8bits isSignal AplusB: std_logic_vector(8 downto 0);Begin

Additiop : Process (rst, clk) Begin

If (rst = '1') thenCarry <= '0';C <= "00000000";AplusB <= (Others => '0');

Elsif (clk'event and clk = '1') thenAplusB <= (A & '0') + (B & '0');C <= AplusB(7 downto 0);Carry <= AplusB(8)

EndEnd process

End behavioral

Exemple d’entité : additionneur 8 bits

Entity Adder8bits isPort ( 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

La CAO des Systèmes Matériels

Page 40: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

40Lotfi BOUSSAID

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 !

La CAO des Systèmes Matériels

Page 41: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

41Lotfi BOUSSAID

Exemple avec component : additionneur 16 bits

Entity Adder16bits isPort ( 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 isSignal 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;BeginAdder1 : Adder8bitsPort map ( D(7 downto 0),

E(7 downto 0),F(7 downto 0),Carry);

Dplus <= D(15 downto 8) + ("0000000" & Carry);Adder2 : Adder8bitsPort map ( Dplus,

E(15 downto 8),F(15 downto 8),Carry );

End structural

La CAO des Systèmes Matériels

Page 42: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

42Lotfi BOUSSAID

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

La CAO des Systèmes Matériels

Page 43: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

43Lotfi BOUSSAID

Test bench et exemple

• Test bench : Librairies et entité « vide »

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

• Opérateurs Wait et After

La CAO des Systèmes Matériels

Page 44: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

44Lotfi BOUSSAID

Syntaxe

La CAO des Systèmes Matériels

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

Page 45: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

45Lotfi BOUSSAID

Syntaxe

La CAO des Systèmes Matériels

4. La description- Les instructions concurrentes

- Affectation simple :

GRANDEUR <= VALEUR_OU_AUTRE_GRANDEUR;

- Affectation conditionnelle :

GRANDEUR <= Q1 when Condition1 else

Q2 when Condition2 else

..

Qn

- Affectation sélective :GRANDEUR <= Q1 when valeur1,

Q2 when valeur2,..Qn when others;

- La boucle For .. Generatefor i in MIN to MAX generate

INSTRUCTIONS;end generate;

Page 46: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

46Lotfi BOUSSAID

SyntaxeLa CAO des Systèmes Matériels

- Les instructions séquentielles

- Le test if .. Then .. Elsif .. 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 => INSTRUCTIONn;

End case;

Page 47: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

47Lotfi BOUSSAID

Syntaxe

La CAO des Systèmes Matériels

- Les instructions séquentielles

- La boucle for .. In .. To .. Loop .. End loop :

for N in X to Y loop

INSTRUCTION;

end loop;

- La boucle while .. Loop .. End loop :while CONDITION loop

INSTRUCTION;end loop;

- L’attente " wait until" :

wait until EVENEMENT;

INSTRUCTION;

Page 48: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

48Lotfi BOUSSAID

Fonctions Combinatoires

La CAO des Systèmes Matériels

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

FCE0

En

S0

Sp

), .. ,( 00 nEEFCS =

), .. ,( 0 np EEFCS =

Exemple :Exemple : Conversion BCD vers 7 Segments :

library ieee ;use ieee.std_logic_1164.ALL;entity BCD_2_7SEG isport (

BIN : in STD_LOGIC_VECTOR(3 downto 0) ;SORTIE : out STD_LOGIC_VECTOR(6 downto 0)

);end BCD_2_7SEG;

architecture COMPORTEMENT of BCD_2_7SEG isbegin

case BIN iswhen 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" ;when 7 => SORTIE <= "0001111" ;when 8 => SORTIE <= "0000000" ;when 9 => SORTIE <= "0000100" ;when others => SORTIE <= "01100000" ;

end case ;end COMPORTEMENT;

Page 49: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

49Lotfi BOUSSAID

Fonctions Séquentielles (1)

La CAO des Systèmes Matériels

Définition d’un PROCESSUn 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 processend 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 listede 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 encompte à la fin du process.

Page 50: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

50Lotfi BOUSSAID

La CAO des Systèmes Matériels

Les deux principales structures utilisées dans un PROCESS

L’assignation conditionnelle

if condition theninstructions

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

Exemple:if (RESET=’1’) then

SORTIE <= ”0000”;end if ;

L’assignation sélectivecase 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;

Fonctions Séquentielles (2)

Page 51: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

51Lotfi BOUSSAID

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 isport ( D,CLK : in std_logic;

S : out std_logic);end BASCULED;

architecture DESCRIPTION of BASCULED isbegin

PRO_BASCULED : process (CLK)begin

if (CLK'event and CLK ='1') thenS <= D;

end if;end process PRO_BASCULED;

end DESCRIPTION;

Page 52: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

52Lotfi BOUSSAID

La CAO des Systèmes Matériels

Fonctions Séquentielles (4)Une fonction séquentielle a la capacité de « se souvenirse souvenir » des événements antérieurs :

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

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 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.

Page 53: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

53Lotfi BOUSSAID

La CAO des Systèmes Matériels

Les Machines d’États Finis (MEF)

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.

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=2n

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

Page 54: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

54Lotfi BOUSSAID

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 vraie3. Un front actif de l’horloge survient

Exemple de diagramme d’état

Page 55: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

55Lotfi BOUSSAID

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

Page 56: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

56Lotfi BOUSSAID

Les Systèmes d’Exploitation

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

- La multiplicité des différentes ressources

- la complexité de chacune des composantes encombrantes source de bogues

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

Page 57: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

57Lotfi BOUSSAID

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

Page 58: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

58Lotfi BOUSSAID

Les Systèmes 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 :

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

SE

Vue descendante

Vue ascendante

Machine virtuelle

Gestionnaire de ressources

Page 59: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

59Lotfi BOUSSAID

Les Systèmes d’Exploitation

La machine virtuelle doit fournir à l’utilisateur :

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

La Gestionnaire de ressources doit permettre :

- 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

- 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

Page 60: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

60Lotfi BOUSSAID

Les Systèmes d’Exploitation

Appels Système :

Principes des Systèmes d’Exploitation

- 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 «Traps » ou interruptions logicielles qui permettent le passage en mode privilégié appelé mode noyau ou kernel

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

CALL Application

TRAP BibliothèqueMode utilisateur Mode noyauSystème

Matériel

Mécanisme des traps

Page 61: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

61Lotfi BOUSSAID

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 processusCes 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 fichiersCes systèmes contrôlent de gros ensembles d’informations interrogeables à distance Besoin de temps de réponse court

- TransactionnelCes 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éralMulti-utilisateurs et multi-tâches

Page 62: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

62Lotfi BOUSSAID

Les Systèmes d’Exploitation

Structure Interne des SE Généraux

1. Systèmes MonolithiquesLe 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 coucheStructuration en plusieurs couches, dont chacune s’appuie sur la couche immédiatement inférieure

Page 63: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

63Lotfi BOUSSAID

Les Systèmes d’Exploitation

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

4. Systèmes client-serveurLes 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.

3. Machines virtuellesLe 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

CMSCMS CMS

VM

Matériel

CMS: Conversation Monitor System

VM: Virtual Machine

Page 64: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

64Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Processus

Un processus est une instance d’un programme en cours d’exécution, il est caractérisé par :

- Son code (texte), ses données, sa pile d’exécution, les valeurs courantes des registres du processeur..

Un processus est une instance d’un programme en cours d’exécution, il est caractérisé par :

- Son code (texte), ses données, sa pile d’exécution, les valeurs courantes des registres du processeur..

Définition

Définition

Définition

Un processus est crée par d’autres processus (sauf le premier), il est susceptible d’être :

- Suspendu, redémarré, et de recevoir des signaux traitables de façon asynchrones

Un processus est crée par d’autres processus (sauf le premier), il est susceptible d’être :

- Suspendu, redémarré, et de recevoir des signaux traitables de façon asynchrones

Il existe deux niveaux d’exécution :

- Les processus classiques « lourds » possédant chacun leurs données propres

- Les tâches légères ou « threads » qui peuvent exister au sein de chaque processus lourd

Il existe deux niveaux d’exécution :

- Les processus classiques « lourds » possédant chacun leurs données propres

- Les tâches légères ou « threads » qui peuvent exister au sein de chaque processus lourd

Page 65: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

65Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Processus (2)

La notion de processus constitue un modèle simple et efficace pour représenter l’exécution concurrente de tâches au sein d’un SE multitâchesLa notion de processus constitue un modèle simple et efficace pour représenter l’exécution concurrente de tâches au sein d’un SE multitâches

Notion de processus

Un processus modélise l’exécution d’un programme sur un processeur disposant :

- d’un compteur ordinal ;

- d’un jeu de registres ;

- de mémoire virtuelle

Un processus modélise l’exécution d’un programme sur un processeur disposant :

- d’un compteur ordinal ;

- d’un jeu de registres ;

- de mémoire virtuelle

Les processeur physique commute entre les processus sous la direction d’un Ordonnanceur Les processeur physique commute entre les processus sous la direction d’un Ordonnanceur

ABCD Temps

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

Page 66: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

66Lotfi BOUSSAID

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, ..

Page 67: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

67Lotfi BOUSSAID

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)

Page 68: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

68Lotfi BOUSSAID

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 processusLorsque plusieurs processus doivent être exécutés simultanément il faut réaliser un choix pour ordonnancer dans le temps les processus prêts sur le processeur.Lorsque plusieurs processus doivent être exécutés simultanément il faut réaliser un choix pour ordonnancer dans le temps les processus prêts sur le processeur.

Pour les systèmes de traitement par lots, l’algorithme de traitement est relativement simple Exécution du programme suivant de la file dés qu’un emplacement mémoire se libèrePour les systèmes de traitement par lots, l’algorithme de traitement est relativement simple Exécution du programme suivant de la file dés qu’un emplacement mémoire se libère

Page 69: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

69Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Processus (6)

Ordonnancement des processus

Pour les systèmes multi-utilisateurs, multi-tâches, multi-processeur, l’algorithme d’ordonnancement peut devenir plus complexe Pour les systèmes multi-utilisateurs, multi-tâches, multi-processeur, l’algorithme d’ordonnancement peut devenir plus complexe

Le choix de l’algorithme dépend l’application et notamment des critères suivants :

- Équité : chaque processus doit pouvoir disposer de la ressource processeur

- Efficacité : l’utilisation du processeur doit être maximale

- Temps de réponse : minimiser le temps de réponse pour les utilisateurs interactifs

- Temps d’exécution : minimiser le temps d’exécution pris par chaque travail exécuté en traitement par lot

- Rendement : le nombre de travaux exécuté par unité de temps doit être maximale

Le choix de l’algorithme dépend l’application et notamment des critères suivants :

- Équité : chaque processus doit pouvoir disposer de la ressource processeur

- Efficacité : l’utilisation du processeur doit être maximale

- Temps de réponse : minimiser le temps de réponse pour les utilisateurs interactifs

- Temps d’exécution : minimiser le temps d’exécution pris par chaque travail exécuté en traitement par lot

- Rendement : le nombre de travaux exécuté par unité de temps doit être maximale

Page 70: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

70Lotfi BOUSSAID

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.

Page 71: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

71Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps RéelDéfinition

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

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

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

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.

Page 72: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

72Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Contraintes

1. Le déterminisme logique : les mêmes entrées appliquées au système doivent produire les mêmes effets.

2. Le déterminisme temporel : une tâche donnée doit obligatoirement être exécutée dans les délais impartis, on parle d‘échéance.

3. La fiabilité : le système doit être disponible. Cette contrainte est très forte dans le cas d'un système embarqué car les interventions d'un opérateur sont très difficiles voire même impossibles. Cette contrainte est indépendante de la notion de temps réel mais la fiabilité du système sera d'autant plus mise à l'épreuve dans le cas de contraintes dures.

1. Le déterminisme logique : les mêmes entrées appliquées au système doivent produire les mêmes effets.

2. Le déterminisme temporel : une tâche donnée doit obligatoirement être exécutée dans les délais impartis, on parle d‘échéance.

3. La fiabilité : le système doit être disponible. Cette contrainte est très forte dans le cas d'un système embarqué car les interventions d'un opérateur sont très difficiles voire même impossibles. Cette contrainte est indépendante de la notion de temps réel mais la fiabilité du système sera d'autant plus mise à l'épreuve dans le cas de contraintes dures.

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

Page 73: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

73Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Préemption et changement de contexte

Dans un système temps réel, le noyau est dit préemptif si un thread peut être interrompu par l'Ordonnanceur en fonction du niveau de priorité afin de permettre l'exécution d'un thread de plus haut niveau de priorité prêt à être exécuté.

Ceci permet d'affecter les plus hauts niveaux de priorité à des tâches dites critiques par rapport àl'environnement réel contrôlé par le système.

La vérification des contextes à commuter est réalisée de manière régulière par l'Ordonnanceur en fonction de l'horloge logicielle interne du système, ou tick timer système.

Dans le cas d'un noyau non préemptif (ex: le noyau LINUX) un thread sera interrompu uniquement dans le cas d'un appel au noyau ou d'une une interruption externe.

Dans un système temps réel, le noyau est dit préemptif si un thread peut être interrompu par l'Ordonnanceur en fonction du niveau de priorité afin de permettre l'exécution d'un thread de plus haut niveau de priorité prêt à être exécuté.

Ceci permet d'affecter les plus hauts niveaux de priorité à des tâches dites critiques par rapport àl'environnement réel contrôlé par le système.

La vérification des contextes à commuter est réalisée de manière régulière par l'Ordonnanceur en fonction de l'horloge logicielle interne du système, ou tick timer système.

Dans le cas d'un noyau non préemptif (ex: le noyau LINUX) un thread sera interrompu uniquement dans le cas d'un appel au noyau ou d'une une interruption externe.

Page 74: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

74Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps RéelLa norme POSIX (Portable Operating System Interface)

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.

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).

-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.

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

Page 75: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

75Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps Réel

Noyau Temps RéelUn 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éelUn 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.

Page 76: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

76Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps RéelTour 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.

Page 77: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

77Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps RéelLinux 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

Page 78: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

78Lotfi BOUSSAID

Les Systèmes d’Exploitation

Les Systèmes d’Exploitation Temps RéelLe 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.

Page 79: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

79Lotfi BOUSSAID

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'Ecolepolytechnique 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 µClinuxlancé 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.

Page 80: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

80Lotfi BOUSSAID

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

Page 81: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

81Lotfi BOUSSAID

Un aperçu du parallélisme

La programmation Parallèle

Sequencement du travail d'un maçon travaillant seulSequencement du travail d'un maçon travaillant seul

Page 82: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

82Lotfi BOUSSAID

Sequencement du travail d'un maçon travaillant seulSequencement du travail d'un maçon travaillant seul

Un aperçu du parallélisme (2)

La programmation Parallèle

{ Sequencement du travail de deux maçons travaillant sur deux portions de mur séparées.{ Sequencement du travail de deux maçons travaillant sur deux portions de mur séparées.

Page 83: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

83Lotfi BOUSSAID

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

La programmation Parallèle

Difficultés :

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

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

« 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)

Page 84: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

84Lotfi BOUSSAID

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

La programmation Parallèle

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.

Quand les processeurs ne coopèrent pas :

Page 85: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

85Lotfi BOUSSAID

Modèle de parallélisme

La programmation Parallèle

Modèle de programmation:

Architecture matérielle:

Le plus utilisé

Outils de parallélisation: MPIordinateur à

mémoire distribuée

OpenMPordinateur à

mémoire partagée

Page 86: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

86Lotfi BOUSSAID

Mémoire partagée / distribuée

La programmation Parallèle

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.

Mémoire partagée (SMP) Mémoire distribuée

Chaque processeur possède sa propremé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é.

Page 87: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

87Lotfi BOUSSAID

Revue d'effectif 1: dans le monde

La programmation Parallèle

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:

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

Page 88: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

88Lotfi BOUSSAID

Outils de parallélisation

La programmation Parallèle

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.

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

Page 89: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

89Lotfi BOUSSAID

Modèle de programmation OpenMP

La programmation Parallèle

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:

Page 90: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

90Lotfi BOUSSAID

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

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

Comment « faire tourner » un code OpenMP ?

La programmation Parallèle

Page 91: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

91Lotfi BOUSSAID

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

La programmation Parallèle

Temps de transmission d'un message

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

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:

Taille des messages (1-10 Ko)

Temps de transm

ission (10-100µs)Latence

Débit (bandwidth)

Initialisation paramètres réseau

Préparation du message (Packing)

Page 92: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

92Lotfi BOUSSAID

Modes de communications entre process

La programmation Parallèle

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

Mode de commnications: définitionsOne-sided / Two-sided:

Un seul processeur gère tout les éléments de la com / les deux processeurs interviennent, il gère chacun une partie des éléments de la com.

Synchrone / Asynchrone:Le processeur qui envoi (1) attend / n'attend pas que le processeur qui reçoit (2) ait signaléqu'il était prêt. En mode asynchrone, le processeur (1) transmet les données qui sont écrites dans le buffer de réception du processeur (2). Il viendra les lire plus tard, quand le code lui dira de faire.

Page 93: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

93Lotfi BOUSSAID

MPI : Introduction

La programmation Parallèle

Les standards MPI:MPI 1 (1994): Le coeur de la bibliothèque

- Communicateurs- Communications locales et globale- Définition de type de variable- Topologies

MPI 2 (1997): extensions et support C++ et f90- Communications ''one-sided''- Entrées-sorties parallèles (non traitées ici)

Implémentations gratuites:LAM: http://www.lam-mpi.org

MPI 1 et 2 (en partie) sur grille de PC ou architectures SMP.MPICH2: http://www-unix.mcs.anl.gov/mpi/mpich2/index.htm

MPI 1 et 2 (en partie) sur grille de PC ou architectures SMP.

MPI est une bibliothèque de communication pour le parallélisme sur architectures à mémoire partagée (Fortran, C, C++).

Page 94: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

94Lotfi BOUSSAID

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

Page 95: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

95Lotfi BOUSSAID

Évolution des Applications Multimédia (1)

eTV

GSM 3G Éducation

GPS

Visiophone

TV HD VOD (Set Top Box)

Les STR embarqués : les SOC et les SOPC

De plus en plus présent dans le quotidien ..

Page 96: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

96Lotfi BOUSSAID

-Télécommunication,- Multimédia, - Traitement du signal

Systèmes sophistiqués :

En 2003 : 1 Milliard de téléphones portables pour 200 Millions de PC

Satisfaire les besoins de l’utilisateurSatisfaire les besoins de l’utilisateur

Évolution des Applications Multimédia (2)

Les STR embarqués : les SOC et les SOPC

Évolution de la demande de services en :

- Puissance de calcul- Flexibilité- Consommation- Portabilité

Répondre aux exigences de ces nouvelles applicationsRépondre aux exigences de ces nouvelles applications

Objectifs

Page 97: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

97Lotfi BOUSSAID

Évolution de standards de communication- GSM GPRS EDGE UMTS- Bluetooth 11 Mbits/s Hiperlan2 à 54 Mbits/- USB 1.0 USB 2.0 Firewire- Etc.

Les STR embarqués : les SOC et les SOPC

Évolution des normes du multimédia

MPEG21Authentification

MPEG1CD Vidéo MPEG2DVD, TV HD

MPEG4Codage objetet interactivité

MPEG7Description de Contenu AV

Page 98: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

98Lotfi BOUSSAID

Exemple d’applicationDescription de Contenu Audiovisuelles : Les Métadonnées

« Arrissala »

A. GhaiethCut Cut Cut

Désert Ciel

Les STR embarqués : les SOC et les SOPC

Page 99: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

99Lotfi BOUSSAID

Mouvement

<Segment xsi:type="MovingRegionType"><TextAnnotation>

<FreeTextAnnotation xml:lang="en">Person</FreeTextAnnotation></TextAnnotation>

<MediaTime><MediaTimePoint> 00:00:15 </MediaTimePoint><MediaDuration> 00:00:30 </MediaDuration>

</MediaTime>

<ParametricObjectMotion model="Upward">…

</ParametricObjectMotion></Segment>

Métadonnées = Données sur les Données !!

Les STR embarqués : les SOC et les SOPC

Page 100: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

100Lotfi BOUSSAID

Les STR embarqués : les SOC et les SOPC

- Réduire le «time to market»- Réutilisation pour concevoir d’autres produits rentabiliser

• Les produits ont une durée de plus en plus faible

Les contraintes de conception des SOC

Page 101: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

101Lotfi BOUSSAID

Réutilisation - Approche retenue pour limiter les coûts- Conception d’un SOC à partir de blocs prédéfinis

Les STR embarqués : les SOC et les SOPC

IP :Intellectual Properties

Page 102: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

102Lotfi BOUSSAID

Vers la réutilisation de bloc prédéfinis (Bibliothèques, IP)

Les STR embarqués : les SOC et les SOPC

Page 103: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

103Lotfi BOUSSAID

Synchronous Dual-Port RAM• Fast & efficient logic• Highest flexibility BRAM

SwitchMatrix

Slice S0

Slice S1

Slice S2

Slice S3

Digital Clock Management • Precise frequency generation and

phase control• Both on-chip & off-chip clock synchronization EmbeddedPowerPC

• 300 MHz• 420 DMIPS

Powerful CLB• >300 MHz Performance

Programmable I/O • 840 Mbps LVDS

Exploitation des ressources des nouveaux FPGA

Les STR embarqués : les SOC et les SOPC

Page 104: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

104Lotfi BOUSSAID

Réduction des coûts

- Réduire les coûts du matériel augmente en proportion les coûts du logiciel – 80% du coût de développement d’un SOC est aujourd’hui dû au logiciel

- Le coût du test croît de façon exponentielle– Equipes de vérification 2 fois plus nombreuses que celles de développement

Les STR embarqués : les SOC et les SOPC

Conséquences de la réduction des coûts de conception du matérielConséquences de la réduction des coûts de conception du matériel

Page 105: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

105Lotfi BOUSSAID

La révolution

0

200

400

600

800

1000

1200

1400

1995 2000 2005

Nb Soc(M)

- Prévision de répartition par secteur pour 2004 :– Communication : 44% (croissance 24% par an)– Electronique grand public : 28 % (croissance 43%

par an)– Le reste 28 %

Les STR embarqués : les SOC et les SOPC

- Le nombre de SOC vendus croît de 30% par an

- Les outils de conception évoluent moins vite que la technologie

Page 106: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

106Lotfi BOUSSAID

Composants sur carte

ROM CAN

UART

Glue

CNAGlue

CISC

RAMFonctions spécifiques ASIC

ROM CAN

UART

ASICATM

CANFPGA

RISC

RAM

Composants virtuels IP

RAM1

MPEG

Analo

RAM2

E/SROM

CœurRISC

CœurDSP

Qu’est ce qu’un système embarqué sur une seule puce SOC ?

SoC

Les STR embarqués : les SOC et les SOPC

Page 107: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

107Lotfi BOUSSAID

Notion d’IP (Intellectual Property)

• Blocs fonctionnels complexes réutilisables– Hard: déjà implanté, dépendant de la technologies, fortement optimisé– Soft: dans un langage de haut niveau (VHDL, Verilog, C++…), paramétrables– Firm: Constitué d’une combinaison de code RTL synthétisable, de références de

bibliothèque de l’architecture cible et d’une Netlist au niveau portes

• Normalisation des interfaces• Environnement de développement (co-design, co-spec, co-verif)• Performances moyennes (peu optimisé)

Les STR embarqués : les SOC et les SOPC

Page 108: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

108Lotfi BOUSSAID

Utilisation d’IP

• Bloc réutilisable (IP) – connaître les fonctionnalités– estimer les performances dans un système– être sûr du bon fonctionnement de l’IP– intégrer cet IP dans le système– valider le système

Les STR embarqués : les SOC et les SOPC

Page 109: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

109Lotfi BOUSSAID

Commerce d ’IP « design & reuse »

Les STR embarqués : les SOC et les SOPC

Page 110: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

110Lotfi BOUSSAID

• Modélisation des applications• Construction de l’architecture• Le problème du partitionnement• Le problème des communications• Le problème de la consommation

Les STR embarqués : les SOC et les SOPC

Problématique

Page 111: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

111Lotfi BOUSSAID

Les STR embarqués : les SOC et les SOPC

SpécificationPartitionnement Co-synthèseCo-simulationPrototypage.

Flot de conception Logicielle/Matérielle : Le Codesign

Page 112: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

112Lotfi BOUSSAID

Les Bus utilisé dans les SOCLes STR embarqués : les SOC et les SOPC

Le Bus AMBALe Bus AMBA

Il comprend trois bus :

1. AMBA AHB (Advanced High-performance Bus)2. Advanced System Bus (ASB)3. Advanced Peripheral Bus (APB)

Page 113: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

113Lotfi BOUSSAID

Les Bus utilisé dans les SOCLes STR embarqués : les SOC et les SOPC

Le Bus AVALONLe Bus AVALON

- Le bus Avalon est un bus de chez Altera utilisé pour le processeur embarqué Nios

- L’outil SOPC Builder system d’Altera génère automatiquement l’ensemble du bus

- Les maîtres et esclaves du bus Avalon interagit ensemble avec une technique d’arbitrage appelé Slave-Side

- L’arbitrage Slave-side détermine lequel des maître gagne l’accès à l’esclave à un évènement ou plusieurs maîtres tentent d’accéder au même temps à l’esclave.

Page 114: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

114Lotfi BOUSSAID

Les Bus utilisé dans les SOCLes STR embarqués : les SOC et les SOPC

Le Bus CoreConnectLe Bus CoreConnect

Il comprend trois bus :

1. PLB (Processor Local Bus)2. OPB (On-chip Peripheral Bus)3. DCR bus (Device Control Register bus)

Page 115: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

115Lotfi BOUSSAID

Les Bus utilisé dans les SOCLes STR embarqués : les SOC et les SOPC

Le Bus WishboneLe Bus Wishbone

Il comprend deux interfaces de bus :

1. Master Interface2. Slave Interface

Bus partagé

Crossbar switch interconnection

Page 116: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

116Lotfi BOUSSAID

SoC vs SoPC

• SoC– Peu évolutif– Grandes productions– Fabrication et test long et coûteux

• System on Programmable Chip– Prototypage rapide sur FPGA– Composant reconfigurable à volonté– Moins de portes logiques disponible– Consommation plus élevée– Performances moins bonnes

Les STR embarqués : les SOC et les SOPC

Page 117: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

117Lotfi BOUSSAID

CPU

Transmetteurs

Processeur HW

Région reconfigurable

MEM

MultiplieursProcesseur SW ou HW

Resources Matérielles disponibles

MEM

ProcessHW

ProcessHW

ProcessHW

Resources Matérielles disponibles

Qu’est-ce qu’un Système sur puce reconfigurable SOPC ?

Les STR embarqués : les SOC et les SOPC

Page 118: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

118Lotfi BOUSSAID

HWProcess

HWProcess

HWProcess

Resources programmable

disponibles variables

HLE

Statique

RDP

RDT

Hard. IP

Soft. IP

Firm IP

IP

Surface /Latence

T4

T41 T42 T43

Graphe de tâche

Partition(1)

Partition(n)

T1

T3T2

T5T6

T4

T1

T8 T1

T7 T1

T9

T1T3T2

T5T6T4

T1

T8 T1

T7 T1

T9Une seule Partition

* Temps de reconfiguration ** Contraintes Mémoires *** Contraintes surfaces

Les STR embarqués : les SOC et les SOPC

Méthodologie de conception des SOPC ?

Page 119: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

119Lotfi BOUSSAID

Vérification formelle des IP

- Vérifier que le comportement des IP est conforme aux spécifications

- Simulation fonctionnelle traditionnelle insuffisante surtout pour éviter les erreurs d’incompatibilitédans les SoC

DSPASIC

DRAM

SRAM

µPRéseau

IntégréCodeurvidéo

Faire appel à des preuves de vérification formelle ou semi-formelleFaire appel à des preuves de vérification formelle ou semi-formelle

Les STR embarqués : les SOC et les SOPC

Page 120: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

120Lotfi BOUSSAID

VHDLVerilogPSLPEC

HOL: Université de CambridgeACL2: Texas InstrumentSVE: Siemens

ImPROVE-HDL : TNI-ValiosysAssertions SimplesGénération d’une librairie (Assertion + Environnement)

Langage

Outil : Solver

Méthodologie

(Property/Environment Constraints)

Vérification formelle des IP

Les STR embarqués : les SOC et les SOPC

Page 121: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

121Lotfi BOUSSAID

Conception basée PlateformeModule CELOXICA RC203E

Les STR embarqués : les SOC et les SOPC

Page 122: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

122Lotfi BOUSSAID

L’Environnement PDK Design Suite

• La Bibliothèque PSL (Platform Support Labrary)– Virgule fixe/flottante, Prise en charge des RAM, Les Filtres FIR, Microblaze

• La Bibliothèque PAL (Platform Abstraction Layer)– Cores génériques (console, contrôleur PS/2)

• La Bibliothèque DSM (Data Stream Manager)– Assure la communication entre la partie matérielle et les parties exécutées par un processeur ex: Microblaze

• Le langage Handel-C – Le parallélisme par { }, les canaux de communication, Multi Domaines

Les STR embarqués : les SOC et les SOPC

Page 123: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

123Lotfi BOUSSAID

Modèle d’Architecture Générique pour les Applications Multimédia

Étude de cas Réel

Les STR embarqués : les SOC et les SOPC

Page 124: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

124Lotfi BOUSSAID

Effets de TransitionApplication : Résumé Vidéo

Les STR embarqués : les SOC et les SOPC

Page 125: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

125Lotfi BOUSSAID

Extraction d’Images Clés

Détecteur de Cut Détecteur de Fondu

Flux Vidéo MPEG2

Images Clés (Keyframes)

Segmentation de la vidéo

Prototype d’Analyse de Contenu AV

Les STR embarqués : les SOC et les SOPC

Page 126: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

126Lotfi BOUSSAID

Schéma synoptique du détecteur de cut

Implémentation du détecteur de Cut

16 x histogrammes (Dim. 4)

Partie Contrôle Partie Opérative

Les STR embarqués : les SOC et les SOPC

Page 127: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

127Lotfi BOUSSAID

-1 -2 -10 0 01 2 1

-1 0 1-2 0 2-1 0 1

Sx= Sy=

Implantation Matérielle du détecteur de Fondu basé sur le Filtre de SOBEL

Filtre de SOBEL

)(]).1].[1[]1].[1([)(2)(]).1].[1[]1].[1([)(1

2

11211

ZFZZZZZZGZFZZZZZZG

NNNN

N

−−−−−

−−−−−

++−++=

++−++=

))2,2()1,2(2),2(())2,()1,(2),((),(2

*),(),(2))2,2()2,1(2)2,(()),2(),1(2),((),(1

*),(),(1

*),(*),(),(

−−+−−+−−−+−+=

=−−+−−+−−−+−+=

=

+=

yxfyxfyxfyxfyxfyxfyxgSyxfyxg

yxfyxfyxfyxfyxfyxfyxgSyxfyxg

SyxfSyxfyxg

y

x

yx

Les STR embarqués : les SOC et les SOPC

Page 128: Cours Informatique Temps Réel

Cours Informatique Temps Réel

Calculateurs Temps Réel

128Lotfi BOUSSAID

Implantation Matérielle du Détecteur de Fondu

Solution 1 : Filtre de SOBEL

Les STR embarqués : les SOC et les SOPC