![]() |
Produit Processeur JAPIntroduction
La sécurité de fonctionnement est peut-être l’aspect le plus important dans les applications embarquées. Contrairement aux autres langages tels que le C, JAVA offre une plus grande sécurité lors de l’exécution d’une application. Durant l’exécution d’un code JAVA, la gestion de l’espace mémoire de la pile et le dépassement de la dimension des tableaux sont en permanence contrôlés. L’utilisation de références élimine les erreurs rencontrées lors de la manipulation de pointeurs et le « Garbage Collector » restitue automatiquement la mémoire non utilisée par l’application. Le langage JAVA prend donc une place de plus en plus importante dans la conception des systèmes embarqués. La notion d’orientée objet et l’indépendance du code source vis-à-vis de la plate-forme matérielle, permettent la réutilisation du logiciel embarqué et limitent les coûts de recherche et de développement. La pérennité du code, la sécurité d’exécution, la modification et le debogage à distance des programmes permet à JAVA d’être le langage le plus adapté pour répondre aux contraintes rencontrées dans le domaine de l’embarqué. Presentation
La société Advanced Electronic Design propose depuis plus de dix ans une solution JAVA clé en main pour des systèmes embarqués. Cette solution est composée essentiellement d’un processeur JAVA, appelé JAP, et d’un système d’exploitation (JOS) compatible avec le standard J2ME. Le processeur JAP est capable d’exécuter directement le byte code JAVA éliminant ainsi l’intervention d’un interpréteur ou d’un compilateur. L’architecture du processeur JAP (Java Processor) a donc été spécialement conçue pour répondre aux exigences du jeu d’instructions JAVA. Une fois le « byte code » généré par le compilateur Java, les fichiers « .class » sont directement exécutés par le processeur JAP.
Architecture
Le cœur 32 bits du processeur intègre tous les mécanismes nécessaires à la gestion rapide des byte-codes JAVA. Son architecture regroupe un cache pile sécurisé, une machine à états, un gestionnaire d’interruption et une unité arithmétique en virgule flottante en option. Le processeur possède son propre jeu d’instructions natif lui permettant de mélanger des programmes écrits en langage JAVA et en langage C (ou assembleur). Enfin, le processeur gère automatiquement le changement de contexte des processus et des transitions entre le monde JAVA (orienté pile) et le monde natif (orienté registre). L’unité arithmétique en virgule flottante répond entièrement au format IEEE-754. Cette unité est capable d’effectuer des calculs flottants en simple (32 bits) et double précision (64 bits), ainsi que des opérations telles que la multiplication et la division sur des nombres entiers 32 et 64 bits. Ces opérations sont réalisées par l’intermédiaire d’un opérateur série parallèle ou par un opérateur parallèle en fonction des ressources disponibles. Cette unité est directement connectée au cache pile du processeur JAP. Ainsi, les variables flottantes et entières sont mélangées dans le cache pile et peuvent indifféremment être accédées par les deux unités ALU et FPU. Système d'exploitation
Le système d’exploitation JOS a été développé pour répondre aux spécifications du langage JAVA dans le domaine des systèmes embarqués. Le JOS a été implémenté de façon modulaire et en fonction des besoins les modules seront ou non intégrés dans le système cible. Parmi les modules d’ordre généraux on trouve la gestion des nombres flottants et les opérateurs mathématiques complexes (avec ou sans FPU), ainsi que la compression/décompression de fichiers et le décodeur d’image. Le JOS est totalement préemptif et peut être interrompu à tout moment afin de gérer un événement. Enfin, c’est un système entièrement paramétrable permettant de répondre aux besoins de l’application. Son emprunte mémoire est de 40 Ko. |
