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