Changes between Version 52 and Version 53 of SoclibCourseTp4
- Timestamp:
- Dec 4, 2010, 5:08:12 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SoclibCourseTp4
v52 v53 17 17 = 2 Architecture mono-processeur avec interruptions = 18 18 19 Tous les périphériques utilisent les interruptions, mais il existe deux types de périphériques:19 Il existe deux types de périphériques: 20 20 21 21 * Un contrôleur TTY est un périphérique ''caractère'' car il supporte des requêtes de lecture ou d'écriture d'un seul caractère. Ce type de périphérique se comporte comme une cible sur le bus, puisqu'il ne peut que recevoir des commandes provenant d'un processeur, et qu'il n'a pas la possibilité de lire ou d'écrire lui-même en mémoire. … … 27 27 Lorsque le nombre de périphériques augmente, le nombre de lignes d'interruption augmente également, 28 28 et il faut un mécanisme permettant de concentrer plusieurs dizaines de requêtes d'interruption vers un seul signal 29 connecté au processeur. Ceci nécessite d'introduire un nouveau composant matériel dans l'architecture : Le composant '''vci_icu''' est contrôleur d'interruptions vectorisées. C'est une cible VCI dont vous trouverez la spécification fonctionnelle [https://www.soclib.fr/trac/dev/wiki/Component/VciIcu ici].29 connecté au processeur. 30 30 31 On en profite pour introduire d'autres périphériques : Le composant '''vci_multi_timer''' est également une cible VCI 32 contenant un nombre queconque de timers programmables capables de générer des interruptions périodiques à destination du processeur. Vous trouverez la spécification fonctionnelle de ce composant 31 Ceci nécessite d'introduire un nouveau composant matériel dans l'architecture : Le composant '''vci_icu''' est 32 un contrôleur d'interruptions vectorisées. C'est une cible VCI dont vous trouverez la spécification fonctionnelle [https://www.soclib.fr/trac/dev/wiki/Component/VciIcu ici]. 33 34 Le composant '''vci_multi_timer''' est également une cible VCI 35 contenant un nombre queconque de timers programmables capables de générer des interruptions périodiques à destination du processeur. On trouvera la spécification fonctionnelle de ce composant 33 36 [https://www.soclib.fr/trac/dev/wiki/Component/VciMultiTimer ici]. 34 37 35 Le composant '''vci_block_device'''... 38 Le composant '''vci_block_device''' est un contrôleur de disque simplifié. Ce composant FBF est à la fois un initiateur VCI, capable de lire et d'écrire dans la mémoire, et une cible qui peut recevoir des commandes de configuration. 39 Le GIET ne gérant pas un véritable système de fichier, ce composant IOC ne gère qu'un unique fichier, stocké sur le disque de la station de travail qui exécute le simulateur. Le nom de ce fichier est un argument du constructeur. On trouvera la spécification fonctionnelle de ce composant [https://www.soclib.fr/trac/dev/wiki/Component/VciBlockDevice ici]. 36 40 37 Le composant '''vci_frame_buffer'''... 41 Le composant '''vci_frame_buffer''' est un contrôleur d'écran graphique. C'est une cible VCI qui est vue 42 comme un tampon mémoire directement adressable de M lignes de N pixels, dans lequel le logiciel peut lire ou écrire. 43 Le contenu de ce buffer est parcouru périodiquement à la fréquence video, et son contenu est affiché sur l'écran graphique externe. On trouvera la spécification fonctionnelle de ce composant [https://www.soclib.fr/trac/dev/wiki/Component/VciFrameBuffer ici]. 38 44 39 Le composant '''vci_dma'''... 45 Le composant '''vci_dma''' est un composant matériel qui peut être programmé par le système d'exploitation pour éffectuer 46 de gros transferts de données, tel que la copie d'une image d'un tampon mémoire situé dans l'espace utilisateur vers le 47 tampon mémoire du composant FBF. On trouvera la spécification fonctionnelle de ce composant DMA [https://www.soclib.fr/trac/dev/wiki/Component/VciDma ici]. 40 48 41 49 Les deux composants IOC et DMA étant à la fois initiateur et cible, on obtient finalement une architecture possédant … … 46 54 * La ligne d'interruption du TIMER est connectée au port '''p_irq_in[0]''' du composant ICU 47 55 * la ligne d'interruption du TTY est connectée au port '''p_irq_in[1]''' du composant ICU. 48 * la ligne d'interruption du contrôleur de disque est connectée au port '''p_irq_in[5]''' du composant ICU.49 * la ligne d'interruption du contrôleur DMA est connectée au port '''p_irq_in[ 1]''' du composant ICU.56 * la ligne d'interruption du contrôleur de disque IOC est connectée au port '''p_irq_in[5]''' du composant ICU. 57 * la ligne d'interruption du contrôleur DMA est connectée au port '''p_irq_in[6]''' du composant ICU. 50 58 51 59 == 2.2 Interruptions vectorisées ==