• Aucun résultat trouvé

Établissement des arbres couvrants

Dans le document Asynchronisme dans les rétines artificielles (Page 120-122)

6.2 Vers une nouvelle architecture dédiée aux traitements régionaux

7.1.1 Établissement des arbres couvrants

L’architecture de la couche asynchrone que nous allons définir a pour but de permettre le calcul de prefix-associations uniquement. Dans une telle structure, les arbres couvrants sont des éléments clés puisque les propagations s’effectuent uniquement sur des arbres couvrants, ceci permettant d’assurer que le calcul de l’association utilise les données de chaque processeur élémentaire une fois et une seule. Il est donc important de pouvoir les construire et les utiliser efficacement. L’utilisation des arbres couvrants comme support de la prefix-association a été présentée dans la section précédente. En revanche l’algorithme permettant l’éta- blissement de ces arbres couvrants n’a pas été proposé. Il repose sur l’utilisation d’une structure asynchrone, l’arbitre asynchrone et sur un opérateur permettant de déterminer un point unique dans une région qui servira de racine à l’arbre cou- vrant. L’arbitre asynchrone et l’opérateur de détermination du point unique seront étudiés dans les prochaines sections.

Compte tenu de l’importance des arbres couvrants dans le calcul des associations, la construction de ces arbres doit pouvoir se faire de manière rapide et robuste. Un arbre couvrant ne contenant pas de boucles par définition, sa construction ne peut être que le résultat d’un processus itératif.

Nécessité de l’asynchronisme

Montrons tout d’abord la nécessité de l’asynchronisme pour établir les arbres couvrants. Supposons que l’on veuille construire un arbre couvrant de manière

pas être acquise par le biais d’opérations sur un réseau de type arbre couvrant, puisqu’elle est justement nécessaire à la mise en place de ce réseau. Il ne reste donc plus qu’une manière directe de procéder, à savoir la connaissance de chacun des pixels situés dans la région. Une telle connaissance est très coûteuse à acquérir de manière synchrone, et très difficile à utiliser de par sa très faible compacité, ce qui rend la méthode inefficace.

De fait un processus itératif de construction est nécessaire. Une approche synchrone de ce processus peut alors être envisagée. Toutefois on peut s’interroger sur le bien-fondé d’une telle approche. Les arbres couvrants sont utiles pour permettre l’utilisation de propagations asynchrones permettant de suppléer aux limitations en terme de vitesse des propagations synchrones. Partant de ce constat, il parait assez peu opportun d’utiliser une méthode de construction d’arbre par itération synchrone. La construction de l’arbre couvrant doit donc, pour être efficace, utiliser une propagation de type asynchrone.

Algorithme de construction

Convaincus de la nécessité de l’asynchronisme pour établir les arbres couvrants, nous examinons à présent un algorithme permettant de construire ces arbres. Un point particulier d’un arbre couvrant est sa racine, qui est unique et qui reçoit le résultat des prefix-associations sur cet arbre. Ce point est donc connecté à chaque autre processeur faisant partie de l’arbre, et dans le cas général, c’est le seul point ayant cette propriété (les connexions étant directionnelles). C’est donc par ce point qu’il est opportun de commencer la construction de l’arbre couvrant.

Il est à noter ici que le processeur racine n’étant pas défini a priori, il faut donc le choisir dans la région et de manière unique. Le choix de ce processeur unique étant une des difficultés de l’établissement asynchrone d’arbres couvrants, nous dévelop- perons ce point dans les parties suivantes.

Supposant la racine de l’arbre choisie, il faut alors construire un arbre couvrant où chaque processeur n’a qu’un seul antécédent. Pour cela il suffit d’établir toutes les connexions possibles à l’intérieur d’une région et de laisser se propager un mar- queur depuis la racine dans chacun des processeurs de la région, en mémorisant la connexion entrante dans un processeur dès qu’il a été atteint par le marqueur sur une de ses entrées. Une telle propagation permet de construire très efficacement un arbre couvrant sur une région, celui-ci ayant une structure irrégulière liée à la dis- persion des temps de propagation dans les structures électroniques utilisées. L’arbre obtenu est orienté de la racine vers les feuilles et permet les leaffix-associations. L’inversion des connexions programmables sur cet arbre permet d’obtenir un arbre utilisé dans les rootfix-associations.

Un problème peut toutefois se poser lors de la construction de l’arbre. Il arrive qu’un processeur voit le marqueur arriver sur deux ou plus de ses entrées à la fois. Dans ce cas, il doit donc choisir arbitrairement ou non une des entrées qui sera

7.1. L’arbitre asynchrone, un élément indispensable aux prefix associations

considérée comme la connexion vers son antécédent dans l’arbre. Ce choix doit être fait de manière asynchrone et il requiert un composant dédié présent dans la struc- ture de la Maille Associative d’Orsay, l’arbitre asynchrone. Nous détaillons cette structure dans la section suivante.

Robustesse

Un des aspects essentiels des primitives de calculs régionaux est leur robustesse. Ces primitives ayant comme support un circuit électronique, il est important de prendre en compte une éventuelle défaillance de quelques processeurs isolés de ce circuit. Comme nous le verrons plus tard, la partie asynchrone de notre structure se réduit à un opérateur de propagation. Une défaillance du circuit consiste pour notre circuit en une absence de propagation dans le processeur défectueux.

De fait lors de l’établissement de l’arbre couvrant, le processeur défectueux, ne propagera pas le marqueur qui lui arrive. Il n’aura donc pas de connexion sortante, ce sera donc une feuille de l’arbre couvrant. Après inversion du réseau pour effectuer des rootfix-associations telles que des calculs de somme, la seule donnée transitant dans ce processeur est sa valeur locale. Une panne dans le chemin asynchrone implique donc une perte de la donnée locale uniquement. Cette propriété confère à la primitive d’établissement d’arbre couvrant une bonne robustesse aux défaillances du circuit.

Toutefois, il est à noter que ces propriétés ne sont plus valables dans le cas où le pixel défaillant se situe dans une zone ne faisant qu’un seul pixel d’épaisseur. Dans ce cas, le seul réseau de connexion implantable localement est de type linéaire. Couper la propagation dans un tel réseau conduit à isoler une partie du circuit qui ne sera pas couverte par l’arbre couvrant. Il est à noter que ce cas de figure rejoint celui de l’additionneur bit-série linéaire, proposé par l’Université de Tokyo [KKI04], qui présente une robustesse limitée aux défaillances.

Dans le document Asynchronisme dans les rétines artificielles (Page 120-122)