Changes between Version 38 and Version 39 of SoclibCourseTp4


Ignore:
Timestamp:
Oct 13, 2009, 10:22:50 PM (15 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoclibCourseTp4

    v38 v39  
    77= 1 Objectif =
    88
    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érents
     9Le 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
    1010composants matériels supportant la communication par interruption entre le(s) processeurs(s) et les périphériques.
    1111
     
    7070Il faut par ailleurs définir les caractéristiques de la top-cell dans un fichier de directives pour soclib-cc.
    7171Ce 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ètres VCI.
     72Ce 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.
    7373Vous trouverez ci-dessous, à titre d'exemple, le fichier '''tp3.desc''' décrivant l'architecture du TP3:
    7474
     
    9696}}}
    9797
    98 
    9998= 3 Travail à réaliser =
    10099
    101100L'archive [attachment:soclib_tp4.tgz soclib_tp4.tgz] contient différents fichiers dont vous aurez besoin pour ce TP.
    102101Elle 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.
     102Attention: ce répertoire '''soft''' de l'archive du TP4 contient des fichiers différents de ceux qui étaient fournis pour le TP3.
    104103
    105104Créez un répertoire de travail spécifique TP4, recopiez l'archive dans ce répertoire TP4, et décompressez-la:
     
    134133== 4.2 Contrôleur d'interruptions et timer ==
    135134
    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
     135La 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
    139136la capacité du contrôleur TTY à générer une interruption lorsque qu'un caractère est frappé sur le clavier.
    140137Ceci 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
     
    153150'''tp4_top.cpp''' le fichier ainsi modifié. Modifiez également le fichier '''tp3_desc''' et renommez le '''tp4_desc'''
    154151
     152Utilisez '''soclib-cc''' pour générer le simulateur '''tp4_simulator.x'''.
     153
    155154== 4.3 Communication par interruptions ==
    156155
    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.
     156On associe à chaque ligne d'interruption une routine de traitement spécifique,
     157appelée ISR (Interrupt Service Routine), qui est donc exécutée par le processeur lorsque la ligne d'interruption
     158est activée par le périphérique, et que les interruptions ne sont pas masquées.
     159Il s'agit donc pour le périphérique de "voler" quelques cycles du processeur pour lui permettre d'exécuter
     160un peu de code. L'ISR permet généralement au périphérique de signaler un événement au systèmes d'exploitation
     161en allant écrire à certains emplacements prédéfinis en mémoire.
    160162
    161 Pour communiquer avec un périphérique, un programme utilisateur peut utiliser
     163Pour communiquer avec un périphérique, un programme utilisateur peut donc utiliser
    162164un tampons mémoire partagé DATA, protégé par une variable de synchronisation SYNC.
    163165Supposons qu'un programme utilisateur souhaite lire un caractère sur un terminal TTY.