wiki:attribution_boite_wti

Version 10 (modified by laniel, 8 years ago) (diff)

--

Politique d'attribution des boîtes aux lettres des WTI

L'architecture TSAR possède un composant Iopic. Ce composant permet à un périphérique externe d'écrire à une adresse donnée.

Ce périphérique est principalement utilisé pour écrire dans certains registres du composant Xicu. Ces registres sont des boîtes aux lettres, lorsque l'une de ces boîtes a été écrite alors l'Xicu lévera une interruption et le processeur concerné exécutera l'ISR associée.

Cheminement d'une WTI selon la politique pollueur/payeur

On appelle ces interruptions des Write Triggered Interruptions (WTI) car elles sont déclenchées par une opération d'écriture dans les registres boîtes aux lettres de l'Xicu.

Attribution des boîtes aux lettres

Chaque cluster possède une Xicu qui contient 16 boîtes aux lettres, 4 sont réservées pour les interruptions inter-processeur (Inter Process Interruption ou IPI).

Les périphériques externes peuvent donc utiliser 12 de ces boîtes aux lettres afin de signaler la fin de l'opération d'entrée sortie et qu'il faut donc lancer l'ISR associée à ce périphérique.

Nous avons choisi une politique d'attribution des boîtes aux lettres inspirée de celle du GIET-VM.

Chaque cœur est responsable d'un certains nombre de boîte aux lettres, c'est-à-dire qu'il exécutera les ISR des interruptions venant de ses boîtes aux lettres.

Afin d'équilibrer la charge entre les différents cœur il a été décidé d'utiliser une stratégie d'allocation basée sur le round robin.

Un index indiquera la boîte suivant la dernière boîtes aux lettres allouées, la recherche d'une boîte libre s'effectuera circulairement à partir de cet index.

Chaque cœur est responsable d'un certain nombre de boîte aux lettres

Sur la figure, B9 est la dernière boîte à avoir été allouée (l'index pointe sur B10). La recherche aura donc lieu à partir de B10, or B10 est déjà utilisée.

Par conséquent ce sera B11 qui sera allouée, l'index pointera sur B12 et ce sera le processeur P3 qui exécutera l'ISR.

Ici les boîtes aux lettres responsables des IPI sont B0, B4, B8 et B12. Ces boîtes seront toujours marquées comme occupées.

Déroulement d'une opération d'entrée/sortie avec un périphérique externe

Chaque périphérique externe est protégé par un verrou global, donc 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.

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 et qu'elles sont partagées uniquement par les cœur du cluster. A contrario, les périphériques sont uniques et tous les cœurs de l'architecture sont en concurrence pour les accéder.

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.

Ordre d'allocation lors d'une opération d'entrée/sortie

Attachments (5)

Download all attachments as: .zip