Changes between Version 38 and Version 39 of SoclibCourseTp4
- Timestamp:
- Oct 13, 2009, 10:22:50 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp4
v38 v39 7 7 = 1 Objectif = 8 8 9 Le but de ce quatrième TP est principalement d'introduire la chaîne de compilation '''soclib-cc''', qui permet d'automatiser la génération du simulateur. On en profitera pour introduire dans l'architecture différents9 Le but de ce quatrième TP est principalement d'introduire la chaîne de compilation '''soclib-cc''', qui permet d'automatiser la génération du (des) simulateurs. On en profitera pour introduire dans l'architecture de nouveaux 10 10 composants matériels supportant la communication par interruption entre le(s) processeurs(s) et les périphériques. 11 11 … … 70 70 Il faut par ailleurs définir les caractéristiques de la top-cell dans un fichier de directives pour soclib-cc. 71 71 Ce fichier est habituellement nommé '''platform.desc''', mais le nom n'est pas imposé. 72 Ce fichier est également en langage parsable par Python, et contient le nom de fichier de la top-cell SystemC, la liste des composants instanciés et les valeurs des paramètresVCI.72 Ce fichier est également en langage parsable par Python, et contient : le nom de fichier de la top-cell SystemC, la liste des modèles des composants instanciés et les valeurs des paramètres template VCI. 73 73 Vous trouverez ci-dessous, à titre d'exemple, le fichier '''tp3.desc''' décrivant l'architecture du TP3: 74 74 … … 96 96 }}} 97 97 98 99 98 = 3 Travail à réaliser = 100 99 101 100 L'archive [attachment:soclib_tp4.tgz soclib_tp4.tgz] contient différents fichiers dont vous aurez besoin pour ce TP. 102 101 Elle contient également un sous-répertoire '''soft''' qui est utilisé pour la génération du logiciel embarqué. 103 Attention: ce répertoire '''soft''' de l'archive contient des fichiers différents de ceux qui étaient fournis pour le TP3.102 Attention: ce répertoire '''soft''' de l'archive du TP4 contient des fichiers différents de ceux qui étaient fournis pour le TP3. 104 103 105 104 Créez un répertoire de travail spécifique TP4, recopiez l'archive dans ce répertoire TP4, et décompressez-la: … … 134 133 == 4.2 Contrôleur d'interruptions et timer == 135 134 136 La plate-forme matérielle du TP3 utilisait une technique de scrutation (polling) pour lire des caractères en provenance du terminal TTY. Cette technique d'attente active n'est pas très efficace dans les applications logicielles où un seul processeur doit exécuter plusieurs tâches en pseudo parallélisme, grâce à des techniques de multiplexage temporel. 137 138 On souhaite donc remplacer ce mécanisme de scrutation par un mécanisme d'interruption, en utilisant 135 La plate-forme matérielle du TP3 utilisait une technique de scrutation (polling) pour lire des caractères en provenance du terminal TTY. On souhaite donc remplacer ce mécanisme de scrutation par un mécanisme d'interruption, en utilisant 139 136 la capacité du contrôleur TTY à générer une interruption lorsque qu'un caractère est frappé sur le clavier. 140 137 Ceci nécessite d'introduire un nouveau composant matériel dans l'architecture : Le composant '''vci_icu''' est contrôleur d'interruptions vectorisé. C'est une cible VCI dont vous trouverez la spécification fonctionnelle … … 153 150 '''tp4_top.cpp''' le fichier ainsi modifié. Modifiez également le fichier '''tp3_desc''' et renommez le '''tp4_desc''' 154 151 152 Utilisez '''soclib-cc''' pour générer le simulateur '''tp4_simulator.x'''. 153 155 154 == 4.3 Communication par interruptions == 156 155 157 On associe à chaque ligne d'interruption une routine de traitement spécifique, 158 appelée ISR (Interrupt Service Routine). Une ISR a pour principale fonction 159 de signaler au système d'exploitation qu'un événement s'est produit sur un périphérique. 156 On associe à chaque ligne d'interruption une routine de traitement spécifique, 157 appelée ISR (Interrupt Service Routine), qui est donc exécutée par le processeur lorsque la ligne d'interruption 158 est activée par le périphérique, et que les interruptions ne sont pas masquées. 159 Il s'agit donc pour le périphérique de "voler" quelques cycles du processeur pour lui permettre d'exécuter 160 un peu de code. L'ISR permet généralement au périphérique de signaler un événement au systèmes d'exploitation 161 en allant écrire à certains emplacements prédéfinis en mémoire. 160 162 161 Pour communiquer avec un périphérique, un programme utilisateur peut utiliser163 Pour communiquer avec un périphérique, un programme utilisateur peut donc utiliser 162 164 un tampons mémoire partagé DATA, protégé par une variable de synchronisation SYNC. 163 165 Supposons qu'un programme utilisateur souhaite lire un caractère sur un terminal TTY.