API pour système bi-processeur hétérogène

Transcription

API pour système bi-processeur hétérogène
Département d'électricité et informatique
Tél. : + 41 24 423 21 11
Fax : + 41 24 425 00 50
Ecole d’ingénieurs du Canton de Vaud
Route de Cheseaux 1, case postale
CH - 1401 Yverdon - les - Bains
mailto:[email protected]
http://www.eivd.ch
API pour système bi-processeur hétérogène
Description
Modélisation du système
Un système embarqué devant faire preuve de grandes
performances dans plusieurs domaines ne doit pas être
implémenté par du matériel généraliste, faute de quoi, il
devrait être surdimensionné pour pouvoir atteindre les
résultats escomptés dans chacun des domaines.
En effet, les meilleures performances dans un domaine
donné ne peuvent être atteintes que par du matériel y
spécifique. Il s’agit donc d’utiliser un module optimisé par
domaine.
C’est ainsi que le futur processeur Macgic du CSEM,
développé pour effectuer du traitement de signal (DSP),
sera couplé à un processeur à usage général. Cela
permet en effet de maximiser les performances de chacun
des processeurs qui n’effectueront alors que les tâches
pour lesquels ils sont les plus efficaces.
Le processeur Macgic n’étant pas encore fonctionnel, le
système bi-processeur considéré dans le cadre de ce
projet est pour l’heure composé de deux cartes
processeur RISC.
Le processeur à usage général est un ARM7TDMI tandis
que le remplaçant du Macgic est un NIOS 16bits.
Le canal de communication inter-processeur est
implémenté par un module de mémoire partagée
disponible sur la carte du processeur NIOS. Une ligne
d’interruption par processeur est également à disposition.
Afin de répondre aux exigences de portabilité de l’API, un
modèle en couches a été établi. Celui-ci permet de définir
clairement des phases de développement et de test de
l’API ainsi que des niveaux d’abstractions permettant une
plus grande portabilité.
Mandat
Il s’agit de concevoir et d’implémenter une interface de
programmation d’application (API) pour ce système biprocesseur. Celle-ci doit permettre la communication,
synchronisation des tâches évoluant sur chacun des
processeurs. La carte processeur RISC ARM est
exploitée par un RTOS (eCos) tandis qu’aucun exécutif
existant n’est utilisé pour le NIOS/Macgic. Il est primordial
de faire en sorte que l’API soit la plus indépendante
possible du matériel et du kernel/runtime sous-jacent qui
sont susceptibles d’être remplacés.
Auteur:
Répondant externe:
Prof. responsable:
Sujet proposé par:
Application
utilisateur
Application
utilisateur
Protocole
inter-tâches
Protocole
inter-tâches
Protocole interprocesseurs
Protocole interprocesseurs
Accès mémoire
partagée
Accès mémoire
partagée
Accès E/S
Accès E/S
Accès matériel
Accès matériel
Modèle en couches de l’API
Résultats
Les services offerts à l’utilisateur de l’API sont la
possibilité de créer, détruire et accéder différentes
structures de données ou outils de synchronisation en
mémoire partagée (entier, buffer, mutex, sémaphore).
Pour pallier au fait que la mémoire partagée est de petite
taille, la possibilité de transférer, d’un processeur à l’autre,
des buffers de taille plus grande est également offerte.
Le programmeur du système bi-processeur peut dès lors
se concentrer sur sa propre problématique en utilisant les
fonctionnalités de l’API.
Laurent Folladore
Flavio Rampogna
Nicolas Pesenti
CSEM S.A.
EIVD © 2003 - 2004, filière d’informatique technique