Post on 23-Jun-2015
Cours Informatique Temps Réel
Calculateurs Temps Réel
1Lotfi BOUSSAID
LotfiBoussaid@yahoo.fr
Cours Informatique Temps Réel
ENIM – Université de Monastir
2007 - 2008
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
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
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)
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
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
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
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
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
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
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
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
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;
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;
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;
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;
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.
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)
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;
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.
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.
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
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
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 :
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
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
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
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
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
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
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
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
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
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, ..
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)
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
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
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.
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.
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 :
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.
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 :
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.
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.
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
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.
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.
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
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
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.
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)
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 :
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
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é.
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
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:
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:
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
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)
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.
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++).
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
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 ..
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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)
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
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
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
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 ?
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
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
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
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
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
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
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
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
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
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