WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Les systèmes embarqués

( Télécharger le fichier original )
par Ramzi BOULKROUNE
Université de Annaba - Ingénieur d'état en électronique option télécommunication 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

II.6.1.3.1. La forme intermédiaire utilisée :

Le flot utilise une forme intermédiaire pour décrire la spécification quels que soient les niveaux d'abstraction. Cette forme intermédiaire utilise le langage Colif. Ce langage permet de décrire la structure d'un système, à plusieurs niveaux d'abstraction, et en mettant l'accent sur les communications. Les descriptions comportementales sont supposées issues de la description initiale de l'application.

II.6.1.3.2. Les objets de la description :

Quel que soit le niveau d'abstraction, la description est constituée de modules communicants. Ces modules peuvent représenter des parties matérielles, des parties logicielles ou des éléments de mémorisation. Ils communiquent par l'intermédiaire de ports, au travers de canaux.

Chaque objet (module, port ou canal) est décomposé en une interface et un contenu. Le contenu de chaque objet peut être hiérarchique (c'est-à-dire contenir d'autres objets) ou faire référence à un comportement.

La figure II.6 donne un exemple d'une telle architecture : les modules, les ports et les canaux sont respectivement nommés M, P et C lorsqu'ils sont hiérarchiques et m, p et c lorsqu'ils ne le sont pas.

M1

m1

m2

m3

P1

P2

P3

P4

P7

P8

c6

c7

c1

c2

c3

P5

P6

P9

P10

P1

c5

C1

c4 p2

Figure II.6 : La représentation intermédiaire

Niveau

service

Fonctionnel

Macro-
architecture

Micro-
architecture

comportement

Objets
concurrents

Transactions Partiellement ordonnées

Pas de calcul

cycles

communications

Requêtes / services

Passage de
messages

Transmission de
données
événements

Valeurs de bits

Exemple de
langages

CORBA/UML

SDL

VHDL, systemC

VHDL, systemC

Tableau II.1 : Exemple de description pour chaque niveau d'abstraction II.6.1.3.3. Les niveaux d'abstraction utilisés dans le flot :

Les systèmes est représenté sur quatre niveaux d'abstraction différents : le niveau service, le niveau fonctionnel, le niveau macroarchitecture et le niveau microarchitecture. Le tableau II.1 compare les caractéristiques de ces différents niveaux, et la figure II.7 donne un exemple pour chaque niveau. Au niveau service, les objets peuvent interagir anonymement par le biais de requêtes et de service. Seules les fonctionnalités sont définies. Au niveau fonctionnel, les connexions entre les objets sont définies. Au niveau macroarchitecture, les éléments d'architecture sont définis : les processeurs, les ASIC, etc. au niveau microarchitecture, tous les détails de réalisation sont définis, comme les interfaces de communications des processeurs ou les systèmes d'exploitation.

Chapitre II conception des logiciels embarqués

Niveau service niveau fonctionnel

R S S

F1 F2 F3

Routeur de requêtes /services

R R S R

F4

S

F1 F1

message

F1 F1

message

message

Niveau macroarchitecture

Processeur 1

F1

Données données Evénement

Evénement

Evénement

Données

F2

F4
ASIC

Processeur 2

F3

Niveau microarchitecture

Système d'exploitation

Processeur 1

Evénement
Données

F1

F2

Système d'exploitation

Processeur 2

Evénement

F3

Bus adresses bus données bus adresses bus données

Interface

F4
ASIC

Interface

Figure II.7 : Exemple de description pour chaque niveau d'abstraction

Dans l'exemple de la figure II.7, une application est présentée aux quatre niveaux d'abstraction. Cette application est composée de quatre fonctions (ou tâches) F1, F2, F3 et F4. Au niveau service, elles communiquent anonymement grâce au routeur de requêtes. Au niveau fonctionnel, les connexions entre les tâches sont explicitées, par exemple F1 envoie et reçoit des messages avec F2 et F3 mais F4 n'envoie des messages qu'à F3, et n'en reçoit que de F2. Au niveau macroarchitecture, l'architecture globale a été décidée : F1 et F2 sont sur le processeur 1, F3 sur le processeur 2 tandis que F4 est un ASIC. Finalement, au niveau microarchitecture, les détails locaux sont aussi explicités : les processeurs disposent de leurs interfaces logicielles (systèmes d'exploitation) et matérielles. Les ports des processeurs et de l'ASIC sont réels t non plus ceux de la communication entre les tâches (qui sont cachés dans les interfaces).

Le niveau service n'est pour l'instant pas traité par le flot. Nous commençons par le niveau fonctionnel, pour arriver jusqu'au niveau microarchitecture. Ce dernier est souvent appelé niveau transfert de registres ou RTL (register transfer level).

II.6.1.4. Architecture générale du flot :

La figure II.8 donne une vision simplifiée du flot de conception. Ce flot débute au niveau fonctionnel, mais après que le partitionnement logiciel/matériel ait été décidé. Il se termine au niveau microarchitecture, où une classique étape de compilation et de synthèse logique permet d'obtenir la réalisation finale du système. C'est un flot descendant qui permet cependant de simuler à tous les niveaux et de revenir en arrière à chaque étape. En entrée, le flot attend une description de l'application au niveau fonctionnel. Cette description est traduite dans la forme intermédiaire multi niveau Colif pour être raffinée au cours de trois étapes :

- La première étape fait passer la description au niveau macroarchitecture : elle effectue la synthèse de la communication et les allocations globales de la mémoire ;

- La deuxième étape génère une table d'allocation (mémoire et protocoles) : elle effectue les affectations de mémoire et de protocoles, et également les optimisations des accès ;

Description fonctionnelle
après partitionnement
logiciel / matériel

Synthèse de la communication

Allocation mémoire globale

Description macroarchitecture

Affectation mémoire et protocoles

Optimisation des accès

Description macroarchitecture
annotée (table d'allocations)

Génération d'interfaces matérielles

Génération d'interfaces logicielles

Figure II.8 : Représentation simplifiée du flot de conception pour systèmes monopuces

Chapitre II conception des logiciels embarqués

- La dernière étape fait passer la description au niveau microarchitecture : elle effectue la génération des interfaces logicielles et matérielles qui permettent l'assemblage des divers composants ainsi que leurs communications.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Je ne pense pas qu'un écrivain puisse avoir de profondes assises s'il n'a pas ressenti avec amertume les injustices de la société ou il vit"   Thomas Lanier dit Tennessie Williams