Vous êtes sur la page 1sur 128

Calculateurs Temps Réel

Cours Informatique Temps Réel

LotfiBoussaid@yahoo.fr

ENIM – Université de Monastir

2007 - 2008

Lotfi BOUSSAID Cours Informatique Temps Réel 1


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é Faible mobilité

Lotfi BOUSSAID 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 Cours Informatique Temps Réel


Lotfi BOUSSAID 8
Calculateurs Temps Réel
Généralités sur les Systèmes Temps Réel
Système Informatique

Hardware Software

Évolution de l’architecture

• Monoprocesseur, Multiprocesseurs OS Langage


• CISC, RISC
• Scalaire, superscalaire, vectoriel • DOS, Windows 9x, XP Assembleur, Fortran
• Van Neumann Î Harvard • Unix, Linux, HPUX .. C, C++, LISP, ADA

CAO de circuits intégrés RTOS Programmation parallèle


Outils de description matériel RTLinux, µClinux,
VHDL, Handel-C, SystemC .. V Fortran, C
TRAI, VxWorks
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

• Intel 8080 - 3/1/1974


– Mots de 8 bits
– bus adresses 16 bits, bus données 8
bits
– 7 registres 8 bits, A à E,H,L,
⇒ BC, DE, HL 16 bits
– 64 k octets adressables
– 6000 transistors
– 2 MHz
– ~ 0.02 mips ?

Lotfi BOUSSAID Cours Informatique Temps Réel 10


Calculateurs Temps Réel
Généralités sur les Systèmes Temps Réel
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

Lotfi BOUSSAID 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 Von Neumann vs. Harvard

MÉMOIRE
MÉMOIRE CPU
CPU
IO
IO IO
IO IO
IO
•••••

• Harvard BUS SYSTÈME


BUS INSTRUCTIONS

MÉMOIRE MÉMOIRE
MÉMOIRE
DONNÉES
DONNÉES
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 CPLD
CPLD FPGA
FPGA SPGA
SPGA
Simple
Simple PLD
PLD Complex
Complex PLD
PLD Field
Field System
System
(PAL
(PAL &
& GAL)
GAL) Programmable
Programmable Programmable
Programmable
Gate
Gate Array
Array Gate
Gate Array
Array

~~ 00 àà 500
500 ~~ 500
500 àà 30
30 000
000 ~~ 1000
1000 àà 250
250 000
000 ~~ 500
500 000
000
Gates
Gates Gates
Gates Gates
Gates 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


Slice
S3
Slice
Switch S2 Powerful CLB
Matrix Slice >300 MHz Performance
Synchronous Dual-Port RAM S1
Slice
• Fast & efficient logic S0
• Highest flexibility 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
• Les blocs entrée/sortie Bloc I/O

• 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)
Tranche (Slice) • Des multiplexeurs de configuration

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
Niveau
Niveau
Spécification Comportemental
Comportemental
Spécification
Fonctionnelle C,
C, VHDL
VHDL ....
Fonctionnelle

Raffinement Synthèse
Synthèse de
de Haut
Haut niveau
niveau
&
Réutilisation
Niveau
Niveau RTL
RTL
VHDL
VHDL RTL
RTL
Synthèse
Synthèse etet Data
Data Path
Path -- Controller
Controller
Validation
Validation

Synthèse
Synthèse RTL
RTL

Niveau
Niveau Logique
Logique
Nelist
Nelist

Synthèse
Synthèse Logique
Logique
Prototypage
Prototypage

Niveau
Niveau Physique
Physique

Lotfi BOUSSAID Cours Informatique Temps Réel 30


Calculateurs Temps Réel
La CAO des Systèmes Matériels
Développement d’un FPGA
Entrée syntaxique
Entrée schématique Diagrammes d’états
Langage: VHDL

VHDL VHDL
VHDL

Vérification des erreurs Simulation fonctionnelle


Modelsim de syntaxe STIMULI
Ou
TESTBENCH
VHDL

VHDL Simulation
Xilinx Integrated Software Synthèse Après synthèse
STIMULI
Environnement Ou
TESTBENCH
ISE EDIF, XNF

Optimisation VHDL, SDF

Placement / routage Simulation temporelle


STIMULI
dans le circuit choisi 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

8 interrupteurs et
9 Leds 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' Uninitialized
'X' Unknown Ex. Type : std_logic et std_logic_vector(n downto 0)
'0' Logic 0
(driven)
'1' Logic 1
(driven)
'Z' High
impedance
'W' Weak 1
'L' Logic 0 (read)
'H' Logic 1 (read)
'-' Don’t care

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 <Nom de l’entité> is
• Déclaration de l’entité Port ( <Signaux in et out>);
End <Nom de l’entité>

Architecture Structural <Nom de l’entité> is


• Déclaration des constantes, signaux <Constantes>
internes et components <Signaux internes>
<Components>
Begin
• Corps de l’entité : code utile <Code utile>
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 Architecture behavioral of Adder8bits is


Port ( clk: in std_logic; Signal AplusB: std_logic_vector(8 downto 0);
rst: in std_logic; Begin
A: in std_logic_vector(7 downto 0); Additiop : Process (rst, clk)
B: in std_logic_vector(7 downto 0); Begin
C: out std_logic_vector(7 downto 0); If (rst = '1') then
Carry: out std_logic); Carry <= '0';
End Adder8bits C <= "00000000";
AplusB <= (Others => '0');
Elsif (clk'event and clk = '1') then
AplusB <= (A & '0') + (B & '0');
C <= AplusB(7 downto 0);
Carry <= AplusB(8)
End
End process
End behavioral

Lotfi BOUSSAID Cours Informatique Temps Réel 39


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); Dplus <= D(15 downto 8) + ("0000000" & Carry);
B: in std_logic_vector(7 downto 0); Adder2 : Adder8bits
C: out std_logic_vector(7 downto 0); Port map ( Dplus,
Carry: out std_logic); E(15 downto 8),
End component; F(15 downto 8),
Begin Carry );
Adder1 : Adder8bits End structural
Port map ( D(7 downto 0),
E(7 downto 0),
F(7 downto 0),
Carry);

Lotfi BOUSSAID 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
Syntaxe
- 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;

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 S0 S 0 = FC ( E0 , .. , En )
FC
En Sp S p = FC ( E0 , .. , En )
architecture COMPORTEMENT of BCD_2_7SEG is
Exemple : Conversion BCD vers 7 Segments : begin
case BIN is
when 0 => SORTIE <= "0000001" ;
library ieee ; when 1 => SORTIE <= "1001111" ;
use ieee.std_logic_1164.ALL; when 2 => SORTIE <= "0010010" ;
entity BCD_2_7SEG is when 3 => SORTIE <= "0000110" ;
port ( when 4 => SORTIE <= "1001100" ;
BIN : in STD_LOGIC_VECTOR(3 downto 0) ; when 5 => SORTIE <= "0100100" ;
SORTIE : out STD_LOGIC_VECTOR(6 downto 0) when 6 => SORTIE <= "0100000" ;
); when 7 => SORTIE <= "0001111" ;
end BCD_2_7SEG; when 8 => SORTIE <= "0000000" ;
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
L’assignation conditionnelle case signal_de_slection is
when valeur_de_sélection => instructions
if condition then [when others => instructions]
instructions end case;
[elsif condition then instructions]
[else instructions] Exemple:
end if ; case SEL is
when “000” => S1 <= E1;
Exemple: when “001” => S1 <= ‘0’;
if (RESET=’1’) then when “010” | “011” => S1 <=’1’;
SORTIE <= ”0000”; when others => S1 <= ‘0’;
end if ; end case;

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 : La Gestionnaire de ressources doit permettre :

- Une vue uniforme des entrées/sorties - Assurer le bon fonctionnement des ressources
et le respect des délais
- Une mémoire virtuelle et partageable
- Le contrôle des accès aux ressources
- La gestion de fichiers et répertoires
- L’interruption d’une utilisation de ressource
- la gestion de processus
- La gestion des erreurs
- La gestion de communication interprocessus
- Et l’empêchement des conflits

Lotfi BOUSSAID 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
Bibliothèque Mécanisme des traps
TRAP Mode utilisateur
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 CMS: Conversation Monitor System


VM 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
D Temps

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

Lotfi BOUSSAID Cours Informatique Temps Réel 65


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 sese 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 réponse :: minimiser
de réponse minimiser le
le temps
temps de
de réponse
réponse pour
pour les
les utilisateurs
utilisateurs interactifs
interactifs
-- Temps d’exécution :: minimiser
Temps d’exécution 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 doitdoit ê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 lesles 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 estest 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 unun système
système temps
temps réel,
réel, le
le noyau
noyau est
est dit préemptif si
dit préemptif 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
l'Ordonnanceur en fonction du niveau de priorité afin de permettre l'exécution d'un thread de plus 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 critiques par
dites critiques 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) unun 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 <nom du module> : insertion du module dans le noyau.
● Vérification de la compatibilité de version
● Edition de lien dynamique avec les fonctions du noyau.
● Execution de init_module.
– rmmod <nom du module> : retrait du module
● Vérification que le module n'est pas utilisé.
● Execution de cleanup_module.
– lsmod : liste de tous les modules contenus dans le noyau.

Les modules RTLinux :


– rtl_sched.o : scheduler temps-réel. API POSIX.
– rtl_fifo.o : API de gestion des FIFOs temps-réel.
– rtl_posixio.o : API d'opérations bas-niveau sur les devices.
– rtl_time.o : API de gestion du temps (précision : nanoseconde)
– rtl.o : micro-noyau temps-réel.
● L'insertion du module rtl.o lance le noyau temps-réel.
● Les modules RTLinux doivent être insérés préalablement à l'insertion de tout module
définissant des tâches temps-réel.

Lotfi BOUSSAID Cours Informatique Temps Réel 78


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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

Modèle de parallélisme
Architecture matérielle:

Modèle de programmation:

Le plus utilisé

Outils de parallélisation: OpenMP MPI


ordinateur à ordinateur à
mémoire partagée mémoire distribuée

Lotfi BOUSSAID Cours Informatique Temps Réel 85


La programmation Parallèle
Calculateurs Temps Réel

Mémoire partagée / distribuée

Mémoire distribuée
Mémoire partagée (SMP)
Chaque processeur possède sa propre
Tous les processeurs ont accès à mémoire. Il n'a pas accès à celle des autres.
l'ensemble de la mémoire.
➔ Il faut gérer l'échange de messages (surcoût)
➔ Attention aux conflits. ➔ Architecture bon-marché.
➔ Très peu de surcoût de parallélisation. ➔ Il faut ajouter un réseau de com. performant.
➔ Le plus souvent nb proc < 32. ➔ Nb de proc ~ illimité.
➔ Architecture coûteuse.

Lotfi BOUSSAID Cours Informatique Temps Réel 86


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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.

Temps de transmission (10-100µs)


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

Débit (bandwidth)
Conséquences:
Préparation du message
Il vaut mieux envoyer 1 gros (Packing)
Latence
message que plein de petits.
Initialisation paramètres réseau
Il faut grouper les communication!
Taille des messages (1-10 Ko)

Lotfi BOUSSAID Cours Informatique Temps Réel 91


La programmation Parallèle
Calculateurs Temps Réel

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


La programmation Parallèle
Calculateurs Temps Réel

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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Évolution des Applications Multimédia (1)
De plus en plus présent dans le quotidien ..

Visiophone
GSM 3G Éducation

TV HD VOD (Set Top Box)

eTV GPS

Lotfi BOUSSAID Cours Informatique Temps Réel 95


Les STRCalculateurs
embarqués Temps Réel
: 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é

Satisfaire les besoins de l’utilisateur


Objectifs

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


Les STRCalculateurs
embarqués Temps Réel
: 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 MPEG
Authe 21 7
ntifica Descript
tion ion de
Contenu
AV

MPEG4
Codage objet
et interactivité

MP E G
1
CD Vidéo MPEG2
DVD, TV
HD

Lotfi BOUSSAID Cours Informatique Temps Réel 97


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Exemple d’application
Description de Contenu Audiovisuelles : Les Métadonnées

Cut Cut Cut


A. Ghaieth Désert Ciel

« Arrissala »
Lotfi BOUSSAID Cours Informatique Temps Réel 98
Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

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

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>

Lotfi BOUSSAID Cours Informatique Temps Réel 99


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

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

Lotfi BOUSSAID Cours Informatique Temps Réel 101


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Exploitation des ressources des nouveaux FPGA
Slice
S3
Slice
Switch S2 Powerful CLB
Matrix Slice • >300 MHz Performance
Synchronous Dual-Port RAM S1
Slice
• Fast & efficient logic S0
• Highest flexibility 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


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
La révolution
1400

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

1000
- Prévision de répartition par secteur pour 2004 :
– Communication : 44% (croissance 24% par an) 800
Nb Soc
– Electronique grand public : 28 % (croissance 43% 600 (M)
par an)
400
– Le reste 28 %
200
- Les outils de conception évoluent moins vite
0
que la technologie 1995 2000 2005

Lotfi BOUSSAID Cours Informatique Temps Réel 105


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

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

Composants sur carte SoC

ROM CISC Glue CAN

Fonctions spécifiques ASIC


RAM Glue UART CNA
Composants virtuels IP
ROM RISC ASIC CAN
ATM
Cœur
DSP
RAM1
RAM FPGA UART CAN
Cœur RAM2
RISC
MPEG
ROM
Analo
E/S

Lotfi BOUSSAID Cours Informatique Temps Réel 106


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Commerce d ’IP « design & reuse »

Lotfi BOUSSAID Cours Informatique Temps Réel 109


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Les Bus utilisé dans les SOC
Le
Le Bus
Bus AMBA
AMBA

Il comprend trois bus :

1. AMBA AHB (Advanced High-performance Bus)


2. Advanced System Bus (ASB)
3. Advanced Peripheral Bus (APB)

Lotfi BOUSSAID Cours Informatique Temps Réel 112


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Les Bus utilisé dans les SOC
Le
Le Bus
Bus CoreConnect
CoreConnect

Il comprend trois bus :

1. PLB (Processor Local Bus)


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

Lotfi BOUSSAID Cours Informatique Temps Réel 114


Les STRCalculateurs
embarqués Temps Réel
: 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. Master Interface
2. Slave Interface

Crossbar switch interconnection

Lotfi BOUSSAID Cours Informatique Temps Réel 115


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

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

Processeur
Multiplieurs MEM SW ou HW

CPU
Resources Process Process
Matérielles HW HW
disponibles MEM

Resources Process
Matérielles HW
disponibles
Processeur Région
Transmetteurs
HW reconfigurable

Lotfi BOUSSAID Cours Informatique Temps Réel 117


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

Méthodologie de conception des SOPC ?

T1 Une seule
* Temps de reconfiguration T4 T2 T3
** Contraintes Mémoires T9 Partition
T
6 T
5
T
*** Contraintes surfaces T8 1

T7 1 T
1
T
HW HW
Firm IP Process Process
Statique
Hard. IP

Soft. IP Resources
HLE RDP HW
programmable Process
disponibles
IP RDT variables
T1
T3 Partition(
T4 T2
T4 T9 1)
Surface
T6 T5
/Latence Graphe de tâche T8 T1
Partition(
T41 T43 T7
T1 n)
T42 T1

Lotfi BOUSSAID Cours Informatique Temps Réel 118


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

Vérification formelle des IP

µP DRAM
Codeur Réseau
vidéo ASIC
Intégré
DSP 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC

Vérification formelle des IP

Langage

™ VHDL
™ Verilog Outil : Solver
™ PSL
™ PEC ™ SVE: Siemens
™ ACL2: Texas Instrument Méthodologie
™ HOL: Université de Cambridge
™ ImPROVE-HDL : TNI-Valiosys
™ Assertions Simples
™ Génération d’une librairie
(Property/Environment Constraints)
(Assertion + Environnement)

Lotfi BOUSSAID Cours Informatique Temps Réel 120


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Conception basée Plateforme
Module CELOXICA RC203E

Lotfi BOUSSAID Cours Informatique Temps Réel 121


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: les SOC et les SOPC
Application : Résumé Vidéo
Effets de Transition

Lotfi BOUSSAID Cours Informatique Temps Réel 124


Les STRCalculateurs
embarqués Temps Réel
: 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


Les STRCalculateurs
embarqués Temps Réel
: 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
Les STRCalculateurs
embarqués Temps Réel
: 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 -1 0 1
Sx= 0 0 0 Sy= -2 0 2
1 2 1 -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


Les STRCalculateurs
embarqués Temps Réel
: 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