• Aucun résultat trouvé

Chapitre 2 : Modèle d’exécution de l’architecture

2.2 Définition du modèle d'analyse

Le modèle d’exécution proposé est analysé de deux façons. La première concerne directement les prérequis en bande passante et performance de calcul imposés pour atteindre le zéro-temps mort. La seconde s’intéresse uniquement à l’impact du modèle sur la gestion du temps mort. Pour cela, nous proposons de commencer par la définition d’un modèle dit primaire, se basant sur une chaîne standard de spectrométrie travaillant en flux, et de le faire évoluer avec notre proposition.

2.2.1 Modèle d’analyse des prérequis en performances

Pour cette analyse, nous utilisons une application type de spectrométrie que nous exécutons sur un processeur appelé « processeur X ». Ce processeur est directement relié en sortie d’un front end composé d’un dispositif de détection et de pré-amplification et d’un CAN. Le processeur exécute un programme de spectrométrie de manière séquentielle et doit permettre de travailler en flot de

Figure 2-1 : Schéma bloc du système analysé pour l'analyse des performances.

Comme l'illustre la Figure 2-1, le processeur envoie le résultat de ses traitements vers un PC distant dont l'objectif est la construction et la post-analyse du spectre. Dans ce chapitre, nous analysons seulement la partie traitement numérique du signal de la chaîne. Nous considérons que la gestion du flux en sortie du processeur est, sans intervention du modèle d'exécution, une problématique inhérente au détecteur et au taux d'impulsion qu'il peut traiter. Cependant, si une impulsion est un ensemble d'échantillons qui varie de la dizaine à plusieurs milliers d'échantillons (voir Chapitre 1), alors, le débit de données de sortie sera toujours inférieur au débit d'entrée si l'information extraite ne dépasse pas la taille de la résolution binaire maximum du CAN.

2.2.1.1 Application analysée

L’application traditionnelle de spectrométrie choisie pour être exécutée séquentiellement sur le processeur X est composée de quatre algorithmes. Le premier est un trigger de Schmitt (Pasquali et al. 2007), suivi d’un dispositif de rejet d’empilement basé sur une dérivée (CAEN 2011). Les impulsions à l’origine d’un déclenchement sont ensuite mise en forme à l’aide d’un filtre trapézoïdal (Radeka 1972) pour ensuite en extraire l’amplitude maximum de chacune d’elles. Dans le Chapitre 1, nous avons montré que ces algorithmes ont été développés et testés afin d’obtenir un indicateur de complexité qui est le nombre d’opérations par échantillon que l’on ramènera au nombre d’opérations par seconde. Pour simplifier le modèle tout en étant indépendant de la cible architecturale, aucune différence ne sera faite entre les instructions utilisées pour les opérations. Cette méthode permet de comparer les modèles entre eux. Pour chaque algorithme étudié, le nombre d’opérations par échantillon retenu est le suivant :

 trigger de Schmitt : 4 opérations/échantillon ;  réjection d’empilement : 8 opérations/échantillon ;  filtre trapézoïdal : 18 opérations/échantillon ;

 recherche d’amplitude maximum : 3 opérations/échantillon ; 2.2.1.2 Signal analysé

Pour le modèle, nous choisissons d’utiliser un signal en sortie d’un dispositif composé d’un détecteur CsI(TI) (Moszynski et al. 2008) suivi d’un photomultiplicateur et d’un ADC cadencé à 1 GHz pour une résolution de 16 bits (Texas Instruments 2015). Les impulsions numérisées ont une durée moyenne de 1 μs et le débit d’arrivée des impulsions (taux de comptage) est de 105 impulsions par seconde. Ce taux d'impulsion peut être exprimé en coups par seconde (cps).

2.2.1.3 Modèle de départ

En prenant en compte les caractéristiques définies dans les deux sous-parties précédentes, le système de spectrométrie retenu pour respecter le zéro-temps mort peut être modélisé par la Figure 2-2. Compte tenu des caractéristiques imposées par le modèle primaire et le signal d’entrée, le processeur X doit être capable de supporter un débit d'échantillon de 16 Gbit/s et d’atteindre 33 Gop/s pour travailler en flux sur les échantillons et donc de ne pas avoir de temps mort. Il s'agit du cas le plus défavorable. En effet, si l'on considère que le premier étage de traitement est conditionnel (le trigger), les traitements suivants ne seront exécutés qu'en présence de données utiles. Cependant, pour pouvoir travailler en flux, il est nécessaire de prendre en compte le cas le plus défavorable. Dans le cas contraire, le processeur ne garantit pas de traiter tous les échantillons d'une impulsion.

Figure 2-2 : Analyse des performances requises d’un système sans temps mort pour le modèle d'exécution primaire.

A partir de l’étude des applications, nous considérons que la caractéristique extraite d'une impulsion dans le dernier étage de traitement ne peut dépasser la résolution intrinsèque du détecteur et donc la résolution binaire choisie pour le CAN. C'est pourquoi nous ne faisons pas apparaître, pour le moment, la communication vers le PC distant dans cette analyse. Les parties suivantes présentent donc des solutions qui tendent à réduire ces prérequis en modifiant le modèle d’exécution.

2.2.2 Modèle d’analyse du temps mort

Le modèle initial décrivant le temps mort d’un dispositif de traitement des impulsions est le modèle non-paralysable décrit dans (Knoll 2010) et introduit dans le Chapitre 1. Ce modèle impose que chaque impulsion détectée par le déclencheur soit suivie d’une période de temps mort 𝜏 connue et/ou fixée à l’avance. Durant cette période, aucune autre impulsion ne peut être traitée et toutes les impulsions parvenant sur le dispositif sont donc perdues. 𝜏 est calculé en fonction de la durée maximum des traitements sur une taille d’impulsion moyenne afin de tenir les contraintes du temps réel. Si, par exemple, les traitements sont capables de travailler en flux sur l’impulsion détectée, alors la durée 𝜏 est définie en fonction de la taille moyenne des impulsions de manière à ne pas réenclencher le déclencheur avant la fin d’une impulsion. Les traitements sont donc dirigés par un délai défini à l’avance mais pas par les impulsions, ce qui empêche la saturation du système. Il est admis (Knoll 2010) que ne pas faire saturer le système offre de meilleures performances en termes de nombre d'impulsions traitées qu’un système paralysable pour de forts taux de comptage. La Figure 2-3 illustre temporellement le temps mort fixe d’un système non-paralysable pour un signal idéal. La figure montre que si la durée des traitements comprise dans 𝜏 est définie à deux fois la durée moyenne d'une impulsion, les impulsions numéro 2, 4 et 5 ne sont pas traitées et donc perdues.

Figure 2-3 : Illustration du temps mort fixe d'un modèle non-paralysable.

L’impact du temps mort sur le nombre d’impulsions traitées peut être formalisé de la manière suivante. Pour un taux d’impulsions détectées 𝑛, le taux d’impulsions réellement traitées 𝑚0 est donné

par l’équation 1-3.

𝑚0= 𝑛

1 + 𝑛𝜏 2-1

Les parties suivantes présentent des solutions pour améliorer le taux d’impulsions réellement traitées. Ces solutions passent par la modification du modèle d'exécution classique afin d'offrir une gestion du temps mort permettant de le supprimer totalement et donc d'aboutir à un nombre d'impulsions traitées égal au nombre d'impulsions détectées.