• Aucun résultat trouvé

L’arbitre asynchrone

Dans le document Asynchronisme dans les rétines artificielles (Page 125-129)

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

7.1.3 L’arbitre asynchrone

Comme indiqué à la partie 7.1.1, il est nécessaire d’avoir dans le chemin asyn- chrone un arbitre asynchrone. Cet arbitre sert à établir les arbres couvrants sur les régions en sélectionnant un unique antécédent (une unique connexion entrante) pour chacun des pixels de l’arbre. Dans cette partie nous étudions la structure de cet arbitre asynchrone d’un point de vue électronique.

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

Tour d’horizon des arbitres existant dans la littérature

Avant d’étudier plus en détails le fonctionnement des arbitres asynchrones, un tour d’horizon des différents arbitres que l’on peut rencontrer dans la littérature s’impose. Ces différentes structures ont été répertoriées dans [Lit03]. Un arbitre a pour fonction, dans le cas où plusieurs signaux d’entrée deviennent actifs en même temps, d’en choisir un et un seul. Cette fonction peut être réalisée de plusieurs ma- nières. Il existe trois grandes catégories comportementales d’arbitres : les arbitres parallèles, les arbitres série et les arbitres par élimination successive.

Les arbitres parallèles peuvent être de deux types, synchrone ou asynchrone. Un arbitre parallèle synchrone fonctionne de manière déterministe, c’est à dire que l’ar- bitrage sera toujours le même si l’on renouvelle une expérience identique plusieurs fois de suite. Un tel arbitre repose sur une structure de type encodeur de priorité. L’arbitre mémorise les connexions actives au moment de l’arrivée des signaux à l’aide d’un verrou déclenché dès qu’une ou plusieurs entrées deviennent actives, et choisit ensuite de manière déterministe et synchrone le signal en faveur duquel il effectue son arbitrage grâce à l’encodeur de priorité (fig. 7.1).

Un arbitre parallèle asynchrone fonctionne de manière aléatoire. Il est constitué de

Fig. 7.1 – Arbitre parallèle à encodeur de priorité

composants ayant des fonctionnalités identiques sur chacune des entrées. Le com- posant usuel utilisé pour la réalisation d’un arbitre asynchrone est la bascule RS (fig. 7.2). Cette bascule n’ayant que deux entrées, il est nécessaire de cascader n−1

Fig. 7.2 – Structure d’une cellule RS

cellules d’arbitrage de ce type pour réaliser un arbitre à n entrées. Pour ce faire, les sorties complémentées de chaque arbitre doivent être réunies entre elles par un opérateur de type non OU exclusif afin que les signaux placés sur chacune des deux sorties de l’arbitre soit transmis au successeur de ce dernier. Il serait théoriquement possible d’utiliser un non OU logique en lieu et place du non OU exclusif, mais

1. Il y a donc chevauchement temporel des états logiques 1 sur les deux sorties, et le OU logique reste donc dans ce cas dans le même état logique 1 en sortie. Cette exclusion mutuelle étant très importante, le non OU exclusif s’impose. L’arbitre

Fig. 7.3 – Arbitre à 2 entrées, avec propagation de la sortie par non OU exclusif construit à base de XOR est toutefois insuffisant. Si l’une des entrées passe à 1 tandis que l’autre passe à 0 simultanément, la sortie du XOR ne va pas changer, ce qui peut provoquer la perte d’informations. Il est donc nécessaire d’utiliser une autre structure permettant d’assurer le retour à 0 de la sortie lors des transitions : il s’agit de l’exclusion mutuelle. L’exclusion mutuelle réalise de plus une inversion logique, il est ainsi possible d’utiliser une porte logique OU pour réunir les deux signaux (fig. 7.4). La maille associative d’Orsay utilise un arbitre de ce type, son

Fig. 7.4 – Arbitre à 2 entrées, exclusion mutuelle et propagation de la sortie par

OU logique

schéma est proposé à la figure 7.5. Le coût d’implantation en transistor d’un arbitre parallèle asynchrone peut être séparé en deux parties, le coût dû aux bascules et le coût dû aux portes NAND destinées à interpréter les sorties des bascules. Le coût lié aux bascules croît linéairement avec le nombre d’entrées n, le nombre de bas- cules étant n− 1. Le coût lié aux portes NAND croît en O(n log(n)) car le nombre de porte NAND nécessaire est n, le nombre d’entrée de chaque porte est log(n) et le coût en transistor de chaque porte NAND est proportionnel à son nombre d’entrées. L’utilisation d’un tel arbitre doit donc se faire pour un nombre d’entrées assez faible.

Un arbitre série ou daisy-chain peut également être de type synchrone ou asyn- chrone, mais son fonctionnement est basé dans les deux cas sur la propagation

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

Fig. 7.5 – Arbitre parallèle asynchrone de la maille associative d’Orsay d’un jeton tournant. Cette propagation peut être synchrone ou asynchrone. Le je- ton active successivement chacun des détecteurs de signaux placés sur les entrées du processeur. Si un détecteur activé par le jeton tournant détecte qu’une entrée est active, alors le jeton est arrêté et l’entrée correspondante est sélectionnée. Compte tenu du mode de propagation, le jeton ne peut activer qu’un seul détecteur à la fois, ce qui assure que l’arbitre ne sélectionne qu’une seule entrée à la fois. Une fois l’en- trée désactivée, le jeton recommence à tourner. Un tel arbitre a un avantage, qui est son coût matériel linéaire en fonction du nombre d’entrées (fig. 7.6). Toutefois, son

Fig. 7.6 – Arbitre série à jeton

entrée. Dans ce cas, le jeton fait au maximum un tour avant d’arriver à l’entrée active. Cette solution a cependant un coût en transistors élevé, de par l’utilisation d’un détecteur sur chaque entrée, du réseau de propagation du jeton et d’un OU permettant de savoir si l’une des entrées est active pour libérer le jeton.

Enfin, l’arbitre à éliminations successives est de type asynchrone. Les entrées sont hiérarchisées entre elles. L’arbitrage est initié par une commande. L’entrée active ayant le plus haut niveau hiérarchique prend la main et bloque chacune des autres entrées. Une particularité de ce type d’arbitre est qu’un signal de haute priorité peut venir interrompre un signal de priorité plus faible si un arbitrage est déclenché durant l’utilisation du signal de priorité plus faible. Un tel fonctionnement hiérar- chique peut être intéressant dans une structure de type micro-contrôleur standard, mais elle n’a que peu d’intérêt dans le cas des mailles où il n’y a pas de hiérarchie entre les entrées.

Choix de l’arbitre

Parmi les arbitres présentés ci-dessus, l’arbitre asynchrone ayant le meilleur compromis entre coût d’implantation et consommation d’énergie est l’arbitre pa- rallèle asynchrone utilisé dans la maille associative d’Orsay. Cet arbitre aurait un coût relativement important de l’ordre de 140 transistors dans une version 4- connexe de la Maille Associative. Malgré son coût, il est utilisé uniquement pour la construction des arbres couvrants. La section suivante propose d’en tirer parti de manière plus poussée en construisant une architecture basée sur cet arbitre.

Dans le document Asynchronisme dans les rétines artificielles (Page 125-129)