• Aucun résultat trouvé

Additionneur bit-série linéaire

Dans le document Asynchronisme dans les rétines artificielles (Page 106-110)

5.3 Circuits asynchrones et synchrones dans les rétines artificielles :

6.1.2 Additionneur bit-série linéaire

La première architecture que nous étudions permet d’implanter le calcul de l’ad- dition bit-série linéaire telle qu’elle a été présentée précédemment. Cette structure a été proposée par Komuro, Kagami et Ishikawa à l’Université de Tokyo [KKI04] dans une rétine artificielle.

Nous détaillerons la partie asynchrone de l’architecture utilisée, puis nous décrirons les algorithmes utiles à son fonctionnement. Enfin, nous discuterons des avantages et inconvénients de cette architecture.

Architecture

La structure de la rétine étudiée est une matrice de processeurs à deux dimen- sions. Chaque processeur élémentaire est constitué d’un photorécepteur couplé à un processeur élémentaire (PE). L’architecture du PE utilisé est proposée à la fi- gure 6.2. Chaque PE est connecté aux voisins haut, bas, gauche et droit et peut communiquer avec eux de manière synchrone.

Chaque processeur élémentaire dispose en outre d’un chemin asynchrone destiné au calcul des opérations régionales. Le long de ce chemin, en partant des pixels immédiatement précédents (à gauche sur la figure 6.2), nous rencontrons un mul- tiplexeur placé en entrée et permettant d’établir une connexion entrante depuis un

Fig. 6.2 – Structure du processeur élémentaire (source [KKI04])

pixel voisin ou un bit de valeur 0. Ce multiplexeur permet de choisir la connexion active, il joue donc un rôle de connexion programmable. Le second élément essentiel du chemin asynchrone est le Full Adder, qui permet d’additionner de manière com- binatoire 3 données unaires. Cet opérateur est l’opérateur élémentaire permettant d’effectuer l’addition bit-série linéaire. Ses trois entrées sont connectées :

– au processeur antécédent (par le biais du multiplexeur piloté par S5) – à un bit de donnée (par le biais du multiplexeur piloté par S3)

– à un bit de retenue (par le biais du multiplexeur piloté par S1, la retenue étant stockée dans le registre DF F )

Le verrou latch(N) en sortie permet d’obtenir un fonctionnement avec propagation vers le voisin connecté en sortie pour les opérations régionales (verrou ouvert) ou sans propagation (verrou fermé) pour les opérations locales.

Pour les opérations locales, certains calculs sont effectués par le full adder. Dans ce cas, la connexion à un pixel antécédent (utilisée dans les opérations régionales) est redirigée vers un second bit de donnée interne à l’aide des multiplexeurs pilotés par S4 et S5.

Le processeur élémentaire décrit permet donc d’effectuer des opérations locales de type mixte synchrone-asynchrone ou régionales asynchrones.

Fonctionnement

Nous limitons l’étude du fonctionnement de la rétine proposée au cas des opé- rations régionales asynchrones.

Grâce à la connexion programmable présente dans chaque pixel, il est possible de connecter de nombreux processeurs selon une topologie de type chaîne. Le premier

6.1. Tour d’horizon des implantations asynchrones de la somme régionale dans les mailles

pixel de la chaîne est connecté en entrée à 0, puis les autres pixels sont reliés les uns aux autres jusqu’à la fin de la chaîne. Cette chaîne de processeurs élémentaires sert de support à l’addition régionale telle qu’elle a été décrite précédemment. Il est intéressant ici de rentrer un peu plus dans le détail du chargement des données à additionner :

– la donnée provenant du processeur antécédent dans la chaîne est routée jus- qu’au full adder à l’aide de la connexion programmable et du multiplexeur piloté par S5.

– la donnée interne en mémoire est mémorisée par le latch(B) et routée vers le full adder grâce au multiplexeur piloté par S4.

– la retenue mémorisée dans le registre DF F est routée vers le full adder par le multiplexeur piloté par S1.

Une fois les données placées en mémoire et routées vers le full adder, la phase pro- prement dite d’addition asynchrone peut commencer. La propagation est déclenchée par l’ouverture du latch(N), le multiplexeur piloté par S2 ayant au préalable été configuré de telle sorte que le bit de poids faible de l’addition réalisée par le full adder soit transmis. Le calcul d’un bit de la somme régionale est effectuée dès lors que le réseau est stabilisé.

La mise en série de n processeurs permet de réaliser des additions bit-série sur

n bits. Cette structure permet d’extraire des grandeurs scalaires sur des régions

pouvant être représentées sous forme d’une chaîne continue de processeurs. Toute- fois, cette fonction n’est pas la seule fonction régionale qu’il est possible d’effectuer avec cette structure. En effet, si l’on relie le bit de poids fort de la sortie du full adder (la retenue C) au verrou de sortie (latch N ) à l’aide du multiplexeur piloté par S2, et si l’on place un 1 logique en S0 et que l’on route ce 1 vers le full adder au lieu de router la retenue, alors, on peut réaliser un OU-global sur la chaîne de processeurs. Le bit de poids fort de la sortie d’un Full Adder se comporte en effet comme un opérateur majorité à3 entrées, qui devient un opérateur OU à 2 entrées si l’on connecte l’une des 3 entrées à un 1 logique.

Les opérations régionales fondamentales réalisables à l’aide de l’architecture pré- sentée sont donc la somme régionale et le OU logique régional.

Evaluation des performances

L’architecture de l’additionneur bit-série proposée par Komuro, Kagami et Ishi- kawa à l’Université de Tokyo [KKI04] offrent certaines fonctionnalités n’existant pas dans les rétines SIMD classiques, en particulier :

– elle permet de calculer des sommes à haute vitesse sur une région. – elle permet d’effectuer un OU logique régional.

nécessaires au calcul de chacun des bits de la somme est égal à n également. En supposant le délai asynchrone entre deux cellules égal à tasync en moyenne, le temps

de calcul total est égal à ntasync.

En technologie 0.35µm, tasync  3ns (simulations effectuées à l’aide de Spice).

Dans une région constituée de40000 pixels, cela conduit donc à un temps de calcul pour un bit de la somme d’environ 120µs. Si l’on envisage le calcul d’une somme dont le résultat fait28 bits (ce qui correspond au cas d’une région comportant 40000 pixels, les données à sommer ayant une profondeur de12 bits) on obtient un temps de calcul d’environ3.4ms pour les opérations bit-série asynchrones uniquement. Ce temps est multiplié par 3 environ si l’on tient compte des opérations synchrones à effectuer pour la mémorisation des retenues, le chargement des données...

On arrive finalement à un temps de calcul de l’ordre de 10ms pour effectuer une somme régionale. Le nombre d’opérations régionales qu’il est possible d’effectuer est donc de l’ordre de 100 opérations par seconde, soit environ 3 opérations par image dans le cas d’un imageur à 30 images secondes.

Dans cette évaluation, nous n’avons pas pris en compte le temps nécessaire à l’établissement de la structure du réseau couvrant, celui-ci devant être fait depuis l’extérieur de la rétine.

Inconvénients

La structure proposée par Komuro, Kagami et Ishikawa, qui a l’avantage d’of- frir aux rétines artificielles un nouveau champ d’application présente toutefois un certain nombres d’inconvénients :

– Le circuit proposé ne peut être utilisé pour calculer des sommes distribuées sur une région ayant une forme quelconque 6.4. Pour couvrir tous les réseaux,

Fig. 6.3 – Région couverte avec un réseau linéaire

Fig. 6.4 – Région impossible à couvrir avec un réseau linéaire une structure de type arbre couvrant est préférable. Il est toutefois possible de tenter de résoudre ce problème en utilisant uniquement un additionneur bit-série linéaire, mais cela implique de ne pas calculer en même temps des sommes sur toutes les régions de l’image dans la mesure où il est nécessaire

6.1. Tour d’horizon des implantations asynchrones de la somme régionale dans les mailles

de traverser des pixels n’appartenant pas à la région sur laquelle s’effectue le calcul. La gestion de l’ordonnancement des calculs régionaux sur ces diffé- rentes régions se révèle dans ce cas être un problème complexe, et impossible à résoudre de manière autonome sur un imageur massivement parallèle, ce qui réduit fortement l’intérêt de cette méthode.

– La méthode proposée conduit à obtenir des chaînes de processeurs élémen- taires très longues. L’utilisation d’un réseau de connexion de type chaîne conduit à un temps de propagation proportionnel au nombre n de pixels for- mant la région. L’utilisation d’une structure de type arbre couvrant (voir 6.1.3) permet de réduire la longueur de la chaîne significativement d’un fac- teur environ √n, ce qui conduit pour une région de taille 10000 pixels à une

réduction du temps de propagation de deux ordres de grandeur, ce qui est extrêmement important. Cette réduction permettrait d’utiliser de manière intensive les opérateurs régionaux, une limitation à environ 3 opérations ré- gionales par seconde étant trop limitative.

– La robustesse est limitée. Dans le cas où le chemin asynchrone de l’un des processeurs viendrait à tomber en panne, tous les pixels situés dans la chaîne avant ce pixel ne seront pas pris en compte, ce qui réduit fortement la robus- tesse du système. Une solution dans laquelle le pixel incriminé serait le seul à être exclu de la somme serait bien meilleure.

Ces différents inconvénients nous conduisent donc à nous tourner vers une autre implantation de la somme régionale, l’additionneur bit-série à entrées multiples.

Dans le document Asynchronisme dans les rétines artificielles (Page 106-110)