Changes between Version 1 and Version 2 of wti_box_attribution
- Timestamp:
- Aug 1, 2016, 3:33:58 PM (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
wti_box_attribution
v1 v2 7 7 8 8 This peripheral is principally used to write to certain register of the [http://www.soclib.fr/trac/dev/wiki/Component/VciXicu Xicu] component. Those registers are mailboxes, when one of them is written then the XICU emits an interrupt so the concerned core will execute the associated ISR. 9 10 [[Image(WTI.svg, 50%)]] 9 11 10 12 We call those interruptions the **Write Triggered Interruptions (WTI)** because they are triggered by a write operation in the Xicu's mailboxes register. … … 28 30 29 31 30 == Déroulement d'une opération d'entrée/sortie avec un périphérique externe==31 Chaque périphérique externe est protégé par un verrou global, pour pouvoir réaliser une opération d'entrée/sortie avec l'un de ces périphériques il faut d'abord prendre ce verrou.32 == External peripheral's I/O operation progress == 33 Each external peripheral is protected by a global lock, to execute an I/O operation with one of this peripheral we firstly have to the lock. 32 34 33 Nous avons décidé qu'avant de prendre le verrou du périphérique le processeur devait s'assurer d'avoir obtenu une boîte aux lettres. En effet, il est plus facile d'obtenir une boîte aux lettres car il y en a 12 par cluster. De plus elles ne sont partagées que par les cœur d'un même cluster. //A contrario//, les périphériques sont uniques et tous les cœurs de l'architecture sont en concurrence pour les accéder.35 We decided that before to take the peripheral's lock the core should assure that it got a mailbox. Indeed, it is easier to get a mailbox because they are 12 by cluster. Moreover, they are shared only by the cores of the same cluster. //A contrario//, the peripheral are unique so all the architecture's core compete for their access. 34 36 35 Une fois la boîte aux lettres et le verrou du périphérique obtenus il faudra configurer l'Iopic afin que celui-ci écrive dans la boîte aux lettres. 37 Once the mailbox and the lock got we have to configure the Iopic 36 38 39 After the interruption's reception the peripheral's lock and the mailbox will be released. 37 40 41 Moreover, the Iopic will be un-configure, that is if the peripheral sends an interrup it will be in a special mailbox : `DEV_NULL`. 38 42 39 Lors de la réception d'une interruption le verrou du périphérique et la boîte aux lettres seront rendus.43 The `DEV_NULL` mailbox is the first free mailbox of the cluster 0's Xicu, its ISR is executed by the core 0 of this cluster. 40 44 41 De plus, l'IOPIC sera dé-configuré, c'est-à-dire que si le périphérique envoie une interruption celle-ci ira dans une boîte aux lettres particulière : `DEV_NULL`.45 The ISR linked to this specific mailbox only prints a error message which points that an unwanted interrupt was received. This mecanism was implemented to protect the operation system against peripheral's potential dysfunction. 42 46 43 La boîte aux lettres `DEV_NULL` est la première boîte aux lettres disponibles de l'XICU du cluster 0, son ISR est traitée par le cœur 0 de ce cluster.47 In the first figure, the core P1 begins an I/O operation with the disk. In addition to configure the disk, the core also configures the IOPIC so that the disk can write in the local Xicu's fifth mailbox. 44 48 45 L'ISR associée à cette boîte aux lettres particulières affiche uniquement un message d'erreur indiquant qu'une interruption non souhaitée a été reçue. Ce mécanisme a été implémenté afin de prémunir le système d'exploitation de potentiels dysfonctionnement d'un périphérique.49 When the disk will end its I/O operation, it will ordoer the IOPIC to write in the fifth mailbox so the core P1 will execute the disk's ISR. 46 50 47 Dans la première figure, le cœur P1 initie une opération d'entrée/sortie avec le disque. En plus de paramétrer le disque, le cœur paramètre aussi l'IOPIC afin que le disque écrive dans la boîte aux lettres 5 de l'XICU locale. 48 49 Lorsque le disque aura fini son opération il ordonnera à l'IOPIC d'écrire dans la boîte aux lettres 5 ce qui aura pour effet de faire exécuter l'ISR liée au disque par le cœur P1. 50 51 52 53 == API d'attribution des boîtes aux lettres == 51 == mailbox attribution API == 54 52 Pour mettre en place ce mécanisme nous avons dû écrire une API, celle-ci est composée d'une structure et de trois fonctions. 55 53