Calculateurs Temps Réel
Cours Informatique Temps Réel
[email protected]
ENIM – Université de Monastir 2007 - 2008
Lotfi BOUSSAID
Cours Informatique Temps Réel
1
CalculateursPlan Tempsdu Réel 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
CalculateursPlan Tempsdu Réel 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
Calculateurs 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 ?
Un Un système système temps temps réel réel est est un un système système qui qui contrôle contrôle ou ou pilote pilote un un procédé procédé physique physique àà une une vitesse vitesse adaptée adaptée àà l’évolution l’évolution de de ce ce procédé procédé quelles quelles que que soient soient les les conditions conditions d’utilisation d’utilisation
• 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
Calculateurs 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 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
Calculateurs 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 »
Aller vite n’est pas l’objectif recherché
Lotfi BOUSSAID
Cours Informatique Temps Réel
6
Calculateurs 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
Satellite Faible portée Région Grande Portée
Local Area Large région Grande mobilité
Lotfi BOUSSAID
Faible mobilité
Cours Informatique Temps Réel
7
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
Domaines d’application (2/2)
• • •
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
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel Système Informatique
Software
Hardware Évolution de l’architecture • Monoprocesseur, Multiprocesseurs • CISC, RISC • Scalaire, superscalaire, vectoriel • Van Neumann Î Harvard
OS
Langage
• DOS, Windows 9x, XP • Unix, Linux, HPUX ..
Assembleur, Fortran C, C++, LISP, ADA
CAO de circuits intégrés
RTOS
Outils de description matériel VHDL, Handel-C, SystemC ..
RTLinux, µClinux, TRAI, VxWorks
Programmation parallèle V Fortran, C
Design Reuse : IP Conception logicielle Matérielle CODESIGN Lotfi BOUSSAID
Cours Informatique Temps Réel
9
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
Microprocesseurs - le 8080
•
Lotfi BOUSSAID
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 ?
Cours Informatique Temps Réel
10
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel Microprocesseurs - Le Pentium© Pro
•
Lotfi BOUSSAID
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
Cours Informatique Temps Réel
11
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
12
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
• Von Neumann MÉMOIRE MÉMOIRE
• Harvard
MÉMOIRE MÉMOIRE DONNÉES DONNÉES
Von Neumann vs. Harvard CPU CPU
IO IO
IO IO
IO IO
•••••
BUS SYSTÈME BUS INSTRUCTIONS
MÉMOIRE MÉMOIRE PROGRAMME PROGRAMME
CPU CPU
IO IO
IO IO
IO IO
•••••
BUS DONNÉES Lotfi BOUSSAID
Cours Informatique Temps Réel
13
Calculateurs 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
Calculateurs 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
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
16
Calculateurs Temps Réel Généralités sur les Systèmes Temps Réel
Les calculateurs Parallèles Les ordinateurs séquentiels : x 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
Lotfi BOUSSAID
Cours Informatique Temps Réel
17
Calculateurs 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
Calculateurs 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 »
Architecture MISD « Multiple Instruction stream, Single Data stream »
Lotfi BOUSSAID
Cours Informatique Temps Réel
19
Calculateurs 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 »
Architecture MIMD « Multiple Instruction stream, Mingle Data stream »
Lotfi BOUSSAID
Cours Informatique Temps Réel
20
CalculateursPlan Tempsdu Réel 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
Calculateurs Temps Réel La CAO des Systèmes Matériels
Les circuits FPGA (Field Programmable Gate Array)
PLD PLD Programmable ProgrammableLogic LogicDevice Device
SPLD SPLD Simple Simple PLD PLD (PAL (PAL & & GAL) GAL)
CPLD CPLD Complex Complex PLD PLD
FPGA FPGA Field Field Programmable Programmable Gate Gate Array Array
SPGA SPGA System System Programmable Programmable Gate Gate Array Array
~~ 00 àà 500 500 Gates Gates
~~ 500 500 àà 30 30 000 000 Gates Gates
~~ 1000 1000 àà 250 250 000 000 Gates Gates
~~ 500 500 000 000 Gates Gates
Lotfi BOUSSAID
Cours Informatique Temps Réel
22
Calculateurs Temps Réel 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
Oui
CMOS
Antifuse
Non
Non
CMOS
Les Fabricants XILINX, ALTERA, ACTEL, Vantis, Lattice, Lucent, Cypress, Atmel, QuickLogic, Philips ..
Lotfi BOUSSAID
Cours Informatique Temps Réel
23
Calculateurs Temps Réel La CAO des Systèmes Matériels
Architecture interne des FPGAs
Switch Matrix Slice S1 Slice S0
Synchronous Dual-Port RAM • Fast & efficient logic • Highest flexibility
Slice S3 Slice S2
Powerful CLB >300 MHz Performance
BRAM
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
24
Calculateurs Temps Réel La CAO des Systèmes Matériels
Les ressources logiques de base des circuits FPGAs : • Les blocs logiques configurables CLBs Bloc I/O
• Les blocs entrée/sortie • Les cellules d’interconnections programmables
Bloc CLB
Cellules d’interconnections PSM = Programmable Switch Matrix 10 interconnect points per matrix Lotfi BOUSSAID
Cours Informatique Temps Réel
25
Calculateurs Temps Réel La CAO des Systèmes Matériels
Les ressources logiques de base des circuits FPGAs : 1 CLB = 2 (4) Tranches (Slices)
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
Tranche (Slice)
Lotfi BOUSSAID
Cours Informatique Temps Réel
26
Calculateurs Temps Réel 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 (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] Lotfi BOUSSAID
Cours Informatique Temps Réel
27
Calculateurs Temps Réel La CAO des Systèmes Matériels
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.
Meilleur compromis entre les critères de coût, de flexibilité et de performance
Lotfi BOUSSAID
Cours Informatique Temps Réel
28
Calculateurs Temps Réel La CAO des Systèmes Matériels
Les progrès technologique des FPGAs
• 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...
Lotfi BOUSSAID
Cours Informatique Temps Réel
29
Calculateurs Temps Réel La CAO des Systèmes Matériels Stratégie de Conception Spécification Spécification Fonctionnelle Fonctionnelle Raffinement & Réutilisation Synthèse Synthèse et et Validation Validation
Niveau Niveau Comportemental Comportemental C, C, VHDL VHDL .... Synthèse Synthèse de de Haut Haut niveau niveau Niveau Niveau RTL RTL VHDL VHDL RTL RTL Data Data Path Path -- Controller Controller Synthèse Synthèse RTL RTL Niveau Niveau Logique Logique Nelist Nelist
Prototypage Prototypage
Synthèse Synthèse Logique Logique
Niveau Niveau Physique Physique Lotfi BOUSSAID
Cours Informatique Temps Réel
30
Calculateurs Temps Réel La CAO des Systèmes Matériels
Développement d’un FPGA Entrée schématique VHDL
Modelsim
Entrée syntaxique Langage: VHDL
Diagrammes d’états VHDL
VHDL
Vérification des erreurs de syntaxe
Simulation fonctionnelle STIMULI Ou TESTBENCH
VHDL
Synthèse
Xilinx Integrated Software Environnement ISE
VHDL STIMULI Ou TESTBENCH
EDIF, XNF
Optimisation Placement / routage dans le circuit choisi
Simulation Après synthèse
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
Calculateurs Temps Réel 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
Mémoire SRAM
Port VGA
(256 Kb x 32) Intégrée à la carte
Port série Port PS2
9 Leds
8 interrupteurs et
4 afficheurs 7 segments à Leds
4 boutons-poussoirs
Lotfi BOUSSAID
Cours Informatique Temps Réel
32
Calculateurs Temps Réel 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
Calculateurs Temps Réel La CAO des Systèmes Matériels
Analogie avec circuits logiques réels Exemple: Comparateur 4 bits 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
Calculateurs Temps Réel 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
Calculateurs Temps Réel 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' 'X' '0'
Uninitialized Unknown Logic 0 (driven) Logic 1 (driven) High impedance Weak 1 Logic 0 (read) Logic 1 (read) Don’t care
'1' 'Z' 'W' 'L' 'H' '-'
Ex. Type : std_logic et std_logic_vector(n downto 0)
Lotfi BOUSSAID
Cours Informatique Temps Réel
36
Calculateurs Temps Réel 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
Calculateurs Temps Réel 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 : Entity
is Port ( ); End
• Déclaration de l’entité
• Déclaration des constantes, signaux internes et components • Corps de l’entité : code utile
Architecture Structural is Begin End Structural
Règle : une seule entité par fichier Lotfi BOUSSAID
Cours Informatique Temps Réel
38
Calculateurs Temps Réel 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
Lotfi BOUSSAID
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
Cours Informatique Temps Réel
39
Calculateurs Temps Réel 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 !
Lotfi BOUSSAID
Cours Informatique Temps Réel
40
Calculateurs Temps Réel 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);
Lotfi BOUSSAID
Dplus <= D(15 downto 8) + ("0000000" & Carry); Adder2 : Adder8bits Port map ( Dplus, E(15 downto 8), F(15 downto 8), Carry ); End structural
Cours Informatique Temps Réel
41
Calculateurs Temps Réel 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
Lotfi BOUSSAID
Cours Informatique Temps Réel
42
Calculateurs Temps Réel 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
• Opérateurs Wait et After
Lotfi BOUSSAID
Cours Informatique Temps Réel
43
Calculateurs Temps Réel 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
Calculateurs Temps Réel La CAO des Systèmes Matériels
Syntaxe 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 .. Generate for i in MIN to MAX generate INSTRUCTIONS; end generate; Lotfi BOUSSAID
Cours Informatique Temps Réel
45
Calculateurs Temps Réel La CAO des Systèmes Matériels -
Les instructions séquentielles -
Syntaxe
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;
Lotfi BOUSSAID
Cours Informatique Temps Réel
46
Calculateurs Temps Réel La CAO des Systèmes Matériels
Syntaxe -
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;
Lotfi BOUSSAID
Cours Informatique Temps Réel
47
Calculateurs Temps Réel 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. E0 En
S0
FC
Sp
S 0 = FC ( E0 , .. , En )
S p = FC ( E0 , .. , En )
architecture COMPORTEMENT of BCD_2_7SEG is begin Exemple : Conversion BCD vers 7 Segments : case BIN is when 0 => SORTIE <= "0000001" ; when 1 => SORTIE <= "1001111" ; library ieee ; when 2 => SORTIE <= "0010010" ; use ieee.std_logic_1164.ALL; when 3 => SORTIE <= "0000110" ; entity BCD_2_7SEG is when 4 => SORTIE <= "1001100" ; port ( when 5 => SORTIE <= "0100100" ; BIN : in STD_LOGIC_VECTOR(3 downto 0) ; SORTIE : out STD_LOGIC_VECTOR(6 downto 0) when 6 => SORTIE <= "0100000" ; when 7 => SORTIE <= "0001111" ; ); when 8 => SORTIE <= "0000000" ; end BCD_2_7SEG; when 9 => SORTIE <= "0000100" ; when others => SORTIE <= "01100000" ; end case ; end COMPORTEMENT; Lotfi BOUSSAID
Cours Informatique Temps Réel
48
Calculateurs Temps Réel 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
Calculateurs Temps Réel La CAO des Systèmes Matériels
Fonctions Séquentielles (2) Les deux principales structures utilisées dans un PROCESS
L’assignation sélective case signal_de_slection is when valeur_de_sélection => instructions [when others => instructions] end case;
L’assignation conditionnelle if condition then instructions [elsif condition then instructions] [else instructions] end if ;
Exemple: case SEL is when “000” => S1 <= E1; when “001” => S1 <= ‘0’; when “010” | “011” => S1 <=’1’; when others => S1 <= ‘0’; end case;
Exemple: if (RESET=’1’) then SORTIE <= ”0000”; end if ;
Lotfi BOUSSAID
Cours Informatique Temps Réel
50
Calculateurs Temps Réel 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
Calculateurs Temps Réel La CAO des Systèmes Matériels
Fonctions Séquentielles (4) Une fonction séquentielle a la capacité de « se souvenir » 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)
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
Calculateurs Temps Réel 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. 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=2n
Lotfi BOUSSAID
Cours Informatique Temps Réel
53
Calculateurs Temps Réel 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
Exemple de diagramme d’état
Lotfi BOUSSAID
Cours Informatique Temps Réel
54
CalculateursPlan Tempsdu Réel 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
Calculateurs Temps Réel
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 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
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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 :
Vue descendante
Machine virtuelle
SE Vue ascendante
Gestionnaire de ressources
Lotfi BOUSSAID
Cours Informatique Temps Réel
58
Calculateurs Temps Réel
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
Lotfi BOUSSAID
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
Cours Informatique Temps Réel
59
Calculateurs Temps Réel
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 «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 Application CALL TRAP
Bibliothèque Mode utilisateur
Mécanisme des traps
Mode noyau Système Matériel Lotfi BOUSSAID
Cours Informatique Temps Réel
60
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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
CMS: Conversation Monitor System VM: Virtual Machine
Matériel
4. Systèmes client-serveur 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
Calculateurs Temps Réel
Les Systèmes d’Exploitation Les Processus
Définition
X
Un Un processus processus est est une une instance instance d’un d’un programme programme en en cours cours d’exécution, d’exécution, ilil est est caractérisé caractérisé par par :: -- Son Son code code (texte), (texte), ses ses données, données, sa sa pile pile d’exécution, d’exécution, les les valeurs valeurs courantes courantes des des registres registres du du processeur.. processeur..
Définition
Y
Un Un processus processus est est crée crée par par d’autres d’autres processus processus (sauf (sauf le le premier), premier), ilil est est susceptible susceptible d’être d’être :: -- Suspendu, Suspendu, redémarré, redémarré, et et de de recevoir recevoir des des signaux signaux traitables traitables de de façon façon asynchrones asynchrones
Définition
Z
IlIl existe existe deux deux niveaux niveaux d’exécution d’exécution :: -- Les Les processus processus classiques classiques «« lourds lourds »» possédant possédant chacun chacun leurs leurs données données propres propres -- Les Les tâches tâches légères légères ou ou «« threads threads »» qui qui peuvent peuvent exister exister au au sein sein de de chaque chaque processus processus lourd lourd
Lotfi BOUSSAID
Cours Informatique Temps Réel
64
Calculateurs Temps Réel
Les Systèmes d’Exploitation Les Processus (2)
Notion de processus La La notion notion de de processus processus constitue constitue un un modèle modèle simple simple et et efficace efficace pour pour représenter représenter l’exécution l’exécution concurrente concurrente de de tâches au sein d’un SE multitâches tâches au sein d’un SE multitâches Un Un processus processus modélise modélise l’exécution l’exécution d’un d’un programme programme sur sur un un processeur processeur disposant disposant :: -- d’un d’un compteur compteur ordinal ordinal ;; -- d’un d’un jeu jeu de de registres registres ;; -- de de mémoire mémoire virtuelle virtuelle Les Les processeur processeur physique physique commute commute entre entre les les processus processus sous sous la la direction direction d’un d’un Ordonnanceur Ordonnanceur A B C Temps
D
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
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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 Lorsque Lorsque plusieurs plusieurs processus processus doivent doivent être être exécutés exécutés simultanément simultanément Î Î ilil faut faut réaliser réaliser un un choix choix pour pour ordonnancer ordonnancer dans dans le le temps temps les les processus processus prêts prêts sur sur le le processeur. processeur. Pour Pour les les systèmes systèmes de de traitement traitement par par lots, lots, l’algorithme l’algorithme de de traitement traitement est est relativement relativement simple simple Î Î Exécution Exécution du du programme programme suivant suivant de de la la file file dés dés qu’un qu’un emplacement emplacement mémoire mémoire se se libère libère
Lotfi BOUSSAID
Cours Informatique Temps Réel
68
Calculateurs Temps Réel
Les Systèmes d’Exploitation Les Processus (6)
Ordonnancement des processus Pour Pour les les systèmes systèmes multi-utilisateurs, multi-utilisateurs, multi-tâches, multi-tâches, multi-processeur, multi-processeur, l’algorithme l’algorithme d’ordonnancement d’ordonnancement peut peut devenir devenir plus plus complexe complexe
Le Le choix choix de de l’algorithme l’algorithme dépend dépend l’application l’application et et notamment notamment des des critères critères suivants suivants :: -- Équité Équité :: chaque chaque processus processus doit doit pouvoir pouvoir disposer disposer de de la la ressource ressource processeur processeur -- Efficacité Efficacité :: l’utilisation l’utilisation du du processeur processeur doit doit être être maximale maximale -- Temps Temps de de réponse réponse :: minimiser minimiser le le temps temps de de réponse réponse pour pour les les utilisateurs utilisateurs interactifs interactifs -- Temps Temps d’exécution d’exécution :: minimiser minimiser le le temps temps d’exécution d’exécution pris pris par par chaque chaque travail travail exécuté exécuté en en traitement traitement par par lot lot -- Rendement Rendement :: le le nombre nombre de de travaux travaux exécuté exécuté par par unité unité de de temps temps doit doit être être maximale maximale
Lotfi BOUSSAID
Cours Informatique Temps Réel
69
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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
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.
Lotfi BOUSSAID
Cours Informatique Temps Réel
71
Calculateurs Temps Réel
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. 1. Le Le déterminisme déterminisme logique logique :: les les mêmes mêmes entrées entrées appliquées appliquées au au système système doivent doivent produire produire les les mêmes mêmes effets. effets. 2. 2. Le Le déterminisme déterminisme temporel temporel :: une une tâche tâche donnée donnée doit doit obligatoirement obligatoirement être être exécutée exécutée dans dans les les délais délais impartis, impartis, on on parle parle d‘échéance. d‘échéance. 3. 3. La La fiabilité fiabilité :: le le système système doit doit être être disponible. disponible. Cette Cette contrainte contrainte est est très très forte forte dans dans le le cas cas d'un d'un système système embarqué embarqué car car les les interventions interventions d'un d'un opérateur opérateur sont sont très très difficiles difficiles voire voire même même impossibles. impossibles. Cette Cette contrainte contrainte est est indépendante indépendante de de la la notion notion de de temps temps réel réel mais mais la la fiabilité fiabilité du du système système sera sera d'autant d'autant plus plus mise mise àà l'épreuve l'épreuve dans dans le le cas cas de de contraintes contraintes dures. dures.
Lotfi BOUSSAID
Cours Informatique Temps Réel
72
Calculateurs Temps Réel
Les Systèmes d’Exploitation
Les Systèmes d’Exploitation Temps Réel Préemption et changement de contexte Dans Dans un un système système temps temps réel, réel, le le noyau noyau est est dit dit préemptif préemptif si si un un thread thread peut peut être être interrompu interrompu par par l'Ordonnanceur en fonction du niveau de priorité afin de permettre l'exécution d'un thread de plus l'Ordonnanceur en fonction du niveau de priorité afin de permettre l'exécution d'un thread de plus haut haut niveau niveau de de priorité priorité prêt prêt àà être être exécuté. exécuté. Ceci Ceci permet permet d'affecter d'affecter les les plus plus hauts hauts niveaux niveaux de de priorité priorité àà des des tâches tâches dites dites critiques critiques par par rapport rapport àà l'environnement l'environnement réel réel contrôlé contrôlé par par le le système. système. La La vérification vérification des des contextes contextes àà commuter commuter est est réalisée réalisée de de manière manière régulière régulière par par l'Ordonnanceur l'Ordonnanceur en en fonction fonction de de l'horloge l'horloge logicielle logicielle interne interne du du système, système, ou ou tick tick timer timer système. système. Dans Dans le le cas cas d'un d'un noyau noyau non non préemptif préemptif (ex: (ex: le le noyau noyau LINUX) LINUX) un un thread thread sera sera interrompu interrompu uniquement uniquement dans le cas d'un appel au noyau ou d'une une interruption externe. dans le cas d'un appel au noyau ou d'une une interruption externe.
Lotfi BOUSSAID
Cours Informatique Temps Réel
73
Calculateurs Temps Réel
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
Calculateurs Temps Réel
Les Systèmes d’Exploitation
Les Systèmes d’Exploitation Temps Réel X 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).
Y 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.
Z 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
Calculateurs Temps Réel
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
Calculateurs Temps Réel
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
77
Calculateurs Temps Réel
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 : 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 : 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
Calculateurs Temps Réel
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
CalculateursPlan Tempsdu Réel 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
Calculateurs Temps Réel La programmation Parallèle
Un aperçu du parallélisme
X Sequencement Sequencement du du travail travail d'un d'un maçon maçon travaillant travaillant seul seul
Lotfi BOUSSAID
Cours Informatique Temps Réel
81
Calculateurs Temps Réel La programmation Parallèle
Un aperçu du parallélisme (2)
Y Sequencement Sequencement du du travail travail d'un d'un maçon maçon travaillant travaillant seul seul
Z {{ Sequencement Sequencement du du travail travail de de deux deux maçons maçons travaillant travaillant sur sur deux deux portions portions de de mur mur séparées. séparées. Lotfi BOUSSAID
Cours Informatique Temps Réel
82
Calculateurs Temps Réel 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
Calculateurs Temps Réel 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
Calculateurs Temps Réel La programmation Parallèle
Modèle de parallélisme Architecture matérielle:
Modèle de programmation:
Le plus utilisé
Outils de parallélisation:
OpenMP ordinateur à mémoire partagée
Lotfi BOUSSAID
MPI ordinateur à mémoire distribuée
Cours Informatique Temps Réel
85
Calculateurs Temps Réel La programmation Parallèle
Mémoire partagée / distribuée
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. Lotfi BOUSSAID
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é.
Cours Informatique Temps Réel
86
Calculateurs Temps Réel 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:
[1] Programmation parallèle pour le calcul scientifique, Benoit Semelin, 2005
Lotfi BOUSSAID
Cours Informatique Temps Réel
87
Calculateurs Temps Réel 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
Calculateurs Temps Réel 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:
Lotfi BOUSSAID
Cours Informatique Temps Réel
89
Calculateurs Temps Réel La programmation Parallèle
Comment « faire tourner » un code OpenMP ? x Écrire le code séquentiel (tout ou partie) x Débuguer x Se placer sur une machine SMP multiprocesseur x Insérer les directives OpenMP x Compiler avec l'option appropriée: f90 -omp toto.f90 -o toto.out x Définir le nombre de CPU: export OMP_NUM_THREADS =4 x Lancer normalement: ./toto.out x Débuguer... x É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
Calculateurs Temps Réel 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.
Conséquences: Il vaut mieux envoyer 1 gros message que plein de petits. Il faut grouper les communication!
Temps de transmission (10-100µs)
Détails des contributions au coût de communication. Voir graphique.
Lotfi BOUSSAID
Débit (bandwidth) Préparation du message (Packing)
Latence
Initialisation paramètres réseau
Taille des messages
(1-10 Ko)
Cours Informatique Temps Réel
91
Calculateurs Temps Réel La programmation Parallèle
Modes de communications entre process Exemple de mécanisme de communication: (two-sided, buffered, synchrone)
Mode de commnications: définitions Î One-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. Lotfi BOUSSAID
Cours Informatique Temps Réel
92
Calculateurs Temps Réel La programmation Parallèle
MPI : Introduction MPI est une bibliothèque de communication pour le parallélisme sur architectures à mémoire partagée (Fortran, C, C++).
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. Lotfi BOUSSAID
Cours Informatique Temps Réel
93
CalculateursPlan Tempsdu Réel 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
94
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Évolution des Applications Multimédia (1) De plus en plus présent dans le quotidien ..
Visiophone GSM 3G
Éducation VOD (Set Top Box)
TV HD
GPS
eTV
Lotfi BOUSSAID
Cours Informatique Temps Réel
95
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Évolution des Applications Multimédia (2) Évolution de la demande de services en : -Télécommunication, - Multimédia, - Traitement du signal
Systèmes sophistiqués : - Puissance de calcul - Flexibilité - Consommation - Portabilité
Objectifs
Satisfaire les besoins de l’utilisateur Répondre aux exigences de ces nouvelles applications
En 2003 : 1 Milliard de téléphones portables pour 200 Millions de PC Lotfi BOUSSAID
Cours Informatique Temps Réel
96
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Évolution de standards de communication - GSM Î GPRS Î EDGE Î UMTS - Bluetooth 11 Mbits/s Î Hiperlan2 à 54 Mbits/ - USB 1.0 Î USB 2.0 Î Firewire - Etc.
Évolution des normes du multimédia MP EG
Authe
MPEG
21
ntifica
7
Descript ion de Contenu AV
tion
MPEG4 Codage objet et interactivité
MP E G 1 CD Vidéo
MPEG2
DVD, TV
Lotfi BOUSSAID
HD
Cours Informatique Temps Réel
97
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Exemple d’application Description de Contenu Audiovisuelles : Les Métadonnées
A. Ghaieth
Cut
Cut Désert
Cut Ciel
« Arrissala » Lotfi BOUSSAID
Cours Informatique Temps Réel
98
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Métadonnées = Données sur les Données !!
Mouvement Person 00:00:15 00:00:30 …
Lotfi BOUSSAID
Cours Informatique Temps Réel
99
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Les contraintes de conception des SOC • Les produits ont une durée de plus en plus faible - Réduire le «time to market» - Réutilisation pour concevoir d’autres produits Î rentabiliser
Lotfi BOUSSAID
Cours Informatique Temps Réel
100
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Réutilisation - Approche retenue pour limiter les coûts - Conception d’un SOC à partir de blocs prédéfinis
Lotfi BOUSSAID
IP : Intellectual Properties
Cours Informatique Temps Réel
101
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Vers la réutilisation de bloc prédéfinis (Bibliothèques, IP)
Lotfi BOUSSAID
Cours Informatique Temps Réel
102
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Exploitation des ressources des nouveaux FPGA Switch Matrix Slice S1 Slice S0
Synchronous Dual-Port RAM • Fast & efficient logic • Highest flexibility
Slice S3 Slice S2
Powerful CLB • >300 MHz Performance
BRAM
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
103
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Réduction des coûts
Conséquences de la réduction des coûts de conception du matériel - 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
Lotfi BOUSSAID
Cours Informatique Temps Réel
104
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
La révolution 1400
-
Le nombre de SOC vendus croît de 30% par an
1200
-
Prévision de répartition par secteur pour 2004 :
1000
– Communication : 44% (croissance 24% par an) – Electronique grand public : 28 % (croissance 43% par an) – Le reste 28 %
-
800
Nb Soc (M)
600 400 200
Les outils de conception évoluent moins vite que la technologie
Lotfi BOUSSAID
0 1995
2000
Cours Informatique Temps Réel
2005
105
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Qu’est ce qu’un système embarqué sur une seule puce SOC ? SoC
Composants sur carte
ROM
CISC
Glue CAN
RAM
Glue
UART CNA
Fonctions spécifiques ASIC Composants virtuels IP
ROM
RISC
ASIC ATM
CAN Cœur
RAM
FPGA
UART
CAN
DSP
RAM1
Cœur
RAM2
RISC
ROM E/S
Lotfi BOUSSAID
Cours Informatique Temps Réel
MPEG Analo
106
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
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é)
Lotfi BOUSSAID
Cours Informatique Temps Réel
107
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
108
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Commerce d ’IP « design & reuse »
Lotfi BOUSSAID
Cours Informatique Temps Réel
109
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Problématique • • • • •
Modélisation des applications Construction de l’architecture Le problème du partitionnement Le problème des communications Le problème de la consommation
Lotfi BOUSSAID
Cours Informatique Temps Réel
110
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Flot de conception Logicielle/Matérielle : Le Codesign ~ Spécification ~ Partitionnement ~ Co-synthèse ~ Co-simulation ~ Prototypage.
Lotfi BOUSSAID
Cours Informatique Temps Réel
111
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Les Bus utilisé dans les SOC Le Le Bus Bus AMBA AMBA
Il comprend trois bus : 1. 2. 3.
AMBA AHB (Advanced High-performance Bus) Advanced System Bus (ASB) Advanced Peripheral Bus (APB)
Lotfi BOUSSAID
Cours Informatique Temps Réel
112
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Les Bus utilisé dans les SOC Le Le Bus Bus AVALON 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.
Lotfi BOUSSAID
Cours Informatique Temps Réel
113
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Les Bus utilisé dans les SOC Le Le Bus Bus CoreConnect CoreConnect
Il comprend trois bus : 1. 2. 3.
PLB (Processor Local Bus) OPB (On-chip Peripheral Bus) DCR bus (Device Control Register bus)
Lotfi BOUSSAID
Cours Informatique Temps Réel
114
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Les Bus utilisé dans les SOC Le Le Bus Bus Wishbone Wishbone
Bus partagé
Il comprend deux interfaces de bus : 1. 2.
Master Interface Slave Interface
Crossbar switch interconnection
Lotfi BOUSSAID
Cours Informatique Temps Réel
115
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
116
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Qu’est-ce qu’un Système sur puce reconfigurable SOPC ?
Multiplieurs
Resources Matérielles disponibles
MEM
Processeur SW ou HW
CPU
Process HW
MEM
Resources Matérielles disponibles
Transmetteurs
Process HW
Process HW
Processeur Région HW reconfigurable
Lotfi BOUSSAID
Cours Informatique Temps Réel
117
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Méthodologie de conception des SOPC ? T1 T3 T4 T2 T9 5 6 T T 1 T T8 1 T7 1 T T
* Temps de reconfiguration ** Contraintes Mémoires *** Contraintes surfaces
HW Process
Firm IP
HW Process
Statique
Hard. IP Soft. IP
Une seule Partition
HLE
Resources programmable disponibles variables
RDP
IP
RDT
HW Process
T1
Surface /Latence
T3
T4 T2
T4
Graphe de tâche
T43 T41 T42
T8
T5
T6 T7
Lotfi BOUSSAID
T9
Partition( 1)
T1
T1
Partition( n)
T1
Cours Informatique Temps Réel
118
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Vérification formelle des IP µP Codeur vidéo
DSP
DRAM
Réseau ASIC Intégré SRAM
- 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
Faire appel à des preuves de vérification formelle ou semi-formelle
Lotfi BOUSSAID
Cours Informatique Temps Réel
119
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Vérification formelle des IP Langage
VHDL Verilog PSL PEC
Outil : Solver
SVE: Siemens
ACL2: Texas Instrument
HOL: Université de Cambridge ImPROVE-HDL : TNI-Valiosys
Méthodologie
(Property/Environment Constraints)
Lotfi BOUSSAID
Assertions Simples Génération d’une librairie (Assertion + Environnement)
Cours Informatique Temps Réel
120
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Conception basée Plateforme Module CELOXICA RC203E
Lotfi BOUSSAID
Cours Informatique Temps Réel
121
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
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
Lotfi BOUSSAID
Cours Informatique Temps Réel
122
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Modèle d’Architecture Générique pour les Applications Multimédia
Étude de cas Réel
Lotfi BOUSSAID
Cours Informatique Temps Réel
123
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Application : Résumé Vidéo Effets de Transition
Lotfi BOUSSAID
Cours Informatique Temps Réel
124
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Prototype d’Analyse de Contenu AV Extraction d’Images Clés Flux Vidéo MPEG2
Détecteur de Cut
Détecteur de Fondu
Segmentation de la vidéo
Images Clés (Keyframes)
Lotfi BOUSSAID
Cours Informatique Temps Réel
125
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Implémentation du détecteur de Cut
16 x histogrammes (Dim. 4)
Partie Contrôle
Partie Opérative
Schéma synoptique du détecteur de cut Lotfi BOUSSAID
Cours Informatique Temps Réel
126
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC
Implantation Matérielle du détecteur de Fondu basé sur le Filtre de SOBEL Filtre de SOBEL
-1 -2 -1 Sx= 0 0 0 1 2 1
-1 0 1 Sy= -2 0 2 -1 0 1
g ( x, y ) = f ( x , y ) * S x + f ( x, y ) * S y g1( x, y ) = f ( x, y ) * S x g1( x, y ) = ( f ( x, y ) + 2 f ( x − 1, y ) + f ( x − 2, y )) − ( f ( x, y − 2) + 2 f ( x − 1, y − 2) + f ( x − 2, y − 2)) g 2( x, y ) = f ( x, y ) * S y g 2( x, y ) = ( f ( x, y ) + 2 f ( x, y − 1) + f ( x, y − 2)) − ( f ( x − 2, y ) + 2 f ( x − 2, y − 1) + f ( x − 2, y − 2))
G1( Z ) = ([1 + Z −1 ].[1 + Z −1 ] − Z −2 N [1 + Z −1 ].[1 + Z −1 ]).F ( Z ) G 2( Z ) = ([1 + Z − N ].[1 + Z − N ] − Z − 2 [1 + Z − N ].[1 + Z − N ]).F ( Z ) Lotfi BOUSSAID
Cours Informatique Temps Réel
127
Temps Réel Les STRCalculateurs embarqués : les SOC et les SOPC Implantation Matérielle du Détecteur de Fondu Solution 1 : Filtre de SOBEL
Lotfi BOUSSAID
Cours Informatique Temps Réel
128