• Aucun résultat trouvé

La r´etine artificielle num´erique programmable Pvlsar34

1.2 La r´etine programmable

1.2.3 La r´etine artificielle num´erique programmable Pvlsar34

Apr`es ce rappel historique, il apparaˆıt que la solution optimale consiste `a choisir un syst`eme mixte analogique-num´erique. En effet, la partie num´erique induit une grande pro- grammabilit´e et la partie analogique permet de param´etrer un grand nombre de fonctions, soulageant ainsi la ”couche” num´erique .

Cependant, un m´elange aussi intime de fonctions analogiques et num´eriques n´ecessite une mise au point technologique tr`es d´elicate et les r´etines utilis´ees pour ce projet sont de ce fait essentiellement num´eriques. En particulier, les op´erations ´el´ementaires effectu´ees sur les images sont exclusivement bool´eennes.

Le mod`ele de r´etine que nous avons ´etudi´e et avec lequel nous avons implant´e nos algorithmes est la r´etine PVLSAR 34 (Figure 1.15), derni`ere n´ee de la famille des r´etines PVLSAR, d´evelopp´ee `a l’ENSTA par Thierry Bernard en 2005. Il s’agit d’une machine massivement parall`ele de 40 000 processeurs interconnect´es selon une grille 200x200 en topologie 4-connexe. Chaque pixel, grav´e en technologie 0.35µm, a une taille de 37.5µm de cot´e et une capacit´e m´emoire de 45 bits. Cette r´etine constitue aujourd’hui la plus grande de la famille PVLSAR jamais r´ealis´ee.

Ainsi, la r´etine artificielle que nous utilisons est constitu´ee d’une grille bidimension- nelle de ”cellules”, chaque cellule ´etant form´ee de l’association d’un ´el´ement photosensible

40Field-Programmable Gate Array, un circuit int´egr´e qui peut ˆetre reprogramm´e apr`es sa fabrication. 41Ceci n’est cependant vrai que pour Pvlsar 2.2 mais pas pour Pvlsar 3.4.

Fig. 1.14 – Comparaison des diff´erents circuits RANP fabriqu´es `a ce jour.

Les circuits sont class´es en fonction de la taille de la matrice imageuse (en abcisse) et de la m´emoire disponible dans le pixel (en ordonn´ee). La grosseur des points repr´esente le rapport surface / complexit´e.

(photor´ecepteur42), et d’un ´el´ement de calcul (processeur ´el´ementaire (PE)). Chaque pho-

toc´epteur est capable d’int´egrer la lumi`ere re¸cue (le nombre de photons) par une surface photosensible et de la transformer en courant ´electrique. Cette ´etape se nomme la pho- totransduction43. Ce courant est cod´e dans un certain nombre de registres binaires pen-

dant la conversion analogique-num´erique. Le signal binaire bidimensionnel ainsi obtenu est trait´e grˆace aux op´erations logiques et aux registres-m´emoire au sein du processeur.

Le mode de parall´elisme est purement SIMD, toute la grille ´etant command´ee par un s´equenceur externe `a la r´etine qui envoie une s´equence d’instructions `a la r´etine selon une fr´equence fixe, et `a chaque pas de calcul, tous les 40 000 processeurs ex´ecutent exactement la mˆeme instruction. Chaque cellule de la r´etine ex´ecute `a chaque cycle d’horloge la mˆeme instruction ´el´ementaire : soit une op´eration bool´eenne entre deux de ses registres m´emoire (OU et inversion) ; soit une translation ´el´ementaire vers un de ses quatre voisins dans les directions cardinales N, E, S, W. Chaque cellule d’une mˆeme ligne est rattach´ee `a une mˆeme ligne de bus convergeant vers un palpeur. La m´emoire est dispos´ee sur un peigne form´e par les lignes du bus.

Un programme r´etinien est donc enti`erement d´efini par la s´equence d’instructions envoy´ee par le s´equenceur. Chaque processeur est dot´e d’une m´emoire num´erique dont la vocation est de repr´esenter les donn´ees d’un pixel. L’entr´ee des donn´ees se fait de mani`ere optique : chaque processeur est pourvu d’un photocapteur et d’un m´ecanisme de conversion analogique - num´erique qui lui permet de coder dans sa m´emoire une grandeur num´erique repr´esentant une intensit´e lumineuse. Chaque processeur est aussi muni d’une unit´e de calcul permettant de lire, ´ecrire et combiner de mani`ere logique des donn´ees num´eriques `a partir de et en direction de sa m´emoire. Chaque couple de processeurs adjacents au sens de la 4-connexit´e partage une partie de leur m´emoire, ce qui permet de communiquer des donn´ees entre pixels voisins.

Dans un syst`eme de vision, la r´etine est associ´ee `a un hˆote appel´e cortex, typiquement compos´e d’un processeur scalaire (microprocesseur basse puissance DSP) et/ou d’un cir- cuit de logique programmable (FPGA). Le cortex a deux fonctions :

– contrˆoler la r´etine, en lui envoyant les s´equences de commandes ;

– effectuer les tˆaches de haut niveau du probl`eme de vision `a partir des informations extraites de la r´etine.

D’un point de vue technique, le cortex de la r´etine actuelle est une carte de d´eveloppement Altera Excalibur EPXA144. Le dispositif EPXA1 contient un microprocesseur RISC (ou

42Une photodiode, diode `a semi-conducteur dans laquelle un rayonnement lumineux incident d´etermine une variation de courant ´electrique

43la transformation physique du flux photonique en une grandeur physiquement exploitable. 44http://www.altera.com/products/devkits/altera/kit-epxa1.html

”reduced instruction-set computer ) 32 bits ARM922T45 combin´e avec un FPGA APEX

20KE46 dans un paquet FineLine BGA de 484-pin47. La Figure 1.16 pr´esente la carte de

d´eveloppement Altera Excalibur EPXA1. Une m´emoire SRAM48 de 16Ko est partag´ee

entre le processeur ARM et le FPGA. Dans la suite du document on appelera nios, l’ensemble form´e par le processeur ARM et des composants ´electroniques permettant les entr´ees sorties entre la carte et l’ext´erieur (port s´erie, LAN ethernet, . . . ).

Fig. 1.16 – La carte de d´eveloppement Altera Excalibur EPXA1.

Du point de vue des acc`es `a la m´emoire num´erique de la r´etine, il est important de comprendre qu’il n’existe pas de moyen de lire ou d’´ecrire depuis l’ext´erieur directement

45L’architecture ARM ´etait initialement destin´ee `a un ordinateur de la soci´et´e Acorn, puis elle a ´et´e compl´et´ee pour devenir une offre ind´ependante pour le march´e de l’´electronique embarqu´ee.

46http://www.altera.com/products/devices/apex/overview/apx-overview.html

47En micro-´electronique, une matrice de billes (ball grid array ou BGA) d´esigne un type d’intercon- nexion entre le boitier d’un composant et le circuit imprim´e

48La SRAM ou ’Static Random Access Memory” est un type de m´emoire vive dont les temps d’acc`es avait repr´esent´e, en leur temps, une avanc´ee importante pour la rapidit´e des processus informatiques.

sur un pixel ou sur une zone sp´ecifi´ee de la m´emoire de la r´etine. Le seul moyen d’acc´eder `a la m´emoire num´erique de la r´etine en lecture ou en ´ecriture est par le bord de la grille, o`u le contenu de la m´emoire d’une partie des processeurs est accessible par le bus de communication avec le processeur hˆote (cortex). Par la suite, l’acc`es `a un pixel ou une zone quelconque de la m´emoire num´erique se fait par combinaison de d´ecalage effectu´es grˆace au partage de la m´emoire entre processeurs adjacents.

Chaque processeur ´etant associ´e `a un ´el´ement photosensible du capteur, la surface qu’il occupe sur le circuit est tr`es r´eduite. Par cons´equent, la m´emoire d´edi´ee `a chaque processeur est tr`es faible et son jeu d’instructions tr`es r´eduit. Dans la suite du document, nous appellerons code r´etinien le code bool´een ex´ecut´e sur la r´etine. Il s’agit en fait d’un pseudo-code qui nous permet de tester et de valider les algorithmes que nous devons ensuite r´e´ecrire en code r´etine v´eritable. Celui-ci se pr´esente en suite d’instructions en assembleur sp´ecifiquement d´evelopp´e pour le circuit.

haut niveau Traitement Code PAR

BU

A / D

CORTEX

Entrée optique Données Code Modifie Programme Somme analogique 1 PIXEL/PROCESSEUR

Unite Booleenne Memoire Numerique

RANP

Conversion Analog/Numer Phorecepteur PROCESSEUR HOTE CONTROLEUR

Fig. 1.17 – Sch´ema g´en´eral de l’architecture du syst`eme compos´e de la r´etine artificielle programmable (RANP) et du cortex avec un agrandissement du sch´ema d’un processeur ´el´ementaire.

La Figure 1.17 fournit un sch´ema g´en´eral de l’architecture du syst`eme compos´e de la r´etine artificielle programmable et du cortex. Cette figure permet d’avoir un aper¸cu global du fonctionnement de la r´etine et du rˆole du dialogue r´etine-cortex dans le d´eroulement des algorithmes que nous pr´esentons dans la suite du document. Le processeur hˆote charge le code compil´e depuis l’ext´erieur puis le modifie afin d’envoyer des instructions parall`eles au contrˆoleur qui se charge de s´equencer le programme. La r´etine ex´ecute les instructions en effectuant des ´echanges de donn´ees avec le cortex. Concernant l’extraction de donn´ees, il y a deux mani`eres d’extraire l’information de la r´etine artificielle programmable :

1. par translation de l’image et par lecture la sortie sur le bord de la grille, afin d’ob- tenir la valeur d’un ou plusieurs plans de bits de la m´emoire num´erique.

2. par l’additionneur analogique global, qui fournit en temps constant une mesure approximative du nombre de ”1” dans n’importe quel plan de bits de la m´emoire num´erique.