• Aucun résultat trouvé

La configuration dans le système PAX2 concerne 3 modules de calcul : les ASICs (les circuits Galway), le module de gestion du réseau et le module du bruit synaptique. La sélection du module se fait par l’insertion d’un code spécifique codé sur 2 bits. La taille de la trame de donnée est relative au module du calcul.

Configuration des neurones

La configuration des neurones consiste à envoyer une série de paramètres aux ASICs. Les paramètres peuvent être numériques ou analogiques. La trame de configuration des neurones devrait spécifier l’adresse de l’ASIC (entre 1 et 5), le numéro du neurone dans l’ASIC (entre O et 4), le type de paramètre (numérique ou analogique) et sa valeur. La figure A.2 résume le format nécessaire pour une trame de configuration.

Code (2bits) No ASIC (3bits) No neurone (3bits) Type donnée (1 bit) Donnée (14 bits)

Figure A.2 Trame de configuration des neurones.

Les modules qui reçoivent cette trame ont un accès direct aux ASICs. Ils interprètent les champs de la trame agissant selon leur contenu. Dans le cas où le paramètre est numérique, une séquence de 14 bits sera envoyée au neurone. Un exemple d’envoi d’un paramètre numérique est fourni dans la figure A.3. Une horloge accompagne chaque donnée sur 14 bits pour synchroniser la réception. Un signal de validation indique la fin de la transmission du paramètre. Ces paramètres vont par la suite agir sur l’état des interrupteurs au sein des circuits permettant de définir la topologie des neurones de point de vue canaux ioniques.

Figure A.3. Illustration de la configuration des circuits Galway par l’intermédiaire des paramètres numériques.

opération pour synchroniser la réception. La figure A.4 fournit un exemple illustratif de cette opération.

Figure A.4. Chronogramme des entrées des paramètres analogiques au niveau du circuit Galway.

Pour un seul circuit, on envoi 205 paramètres analogiques pour une configuration complète. Les paramètres sont stockés dans des mémoires analogiques dans le circuit. Ces mémoires doivent être rafraîchies périodiquement pour garder les bonnes valeurs des potentiels. Le rafraîchissement est donc réalisé par le renvoi des mêmes séquences de paramètres chaque période de 2 ms.

Configuration du réseau

La configuration du réseau suppose que les matrices de configuration sont déjà remplies par l’utilisateur final. Ces matrices seront interprétées par un programme informatique qui les traduit en trames destinées au module de gestion de réseau. Les données correspondant à la connectivité ont la forme suivante :

@ du neurone : |liste des neurones postsynaptiques| FF |liste des neurones présynaptiques| Pour chaque neurone, on définit les listes de ses neurones présynaptiques et postsynaptiques séparées par un mot réservé (FF). Ces paramètres sont sauvegardés dans une mémoire RAM appelée RAM de connectivité. Elle contient 2024 entrées de 8 bits chacune. Les données relatives à un neurone sont stockées sur 64 entrées. La figure A.5 illustre un exemple de configuration d’un neurone qui est connecté à 3 neurones présynaptiques et 2 postsynaptiques (valeurs en hexadécimale).

01 12 09 FF 01 05 FF … FF

Figure A.5. Configuration de la connectivité d’un neurone : la liste de neurones présynaptiques (les neurones 01, 12 et 09) et séparée de la liste des neurones postsynaptiques (les neurones 01 et 05) par un FF. Les cases

restantes des 64 entrées réservées à la configuration du neurone sont toutes mises à FF.

En ce qui concerne la configuration de la plasticité de réseau, une deuxième mémoire RAM, appelée RAM des poids, sauvegarde les poids synaptiques et la plasticité des connexions. Elle est organisée de la même façon que la RAM de connectivité à l’exception

Annexe A

que les entrées sont codées sur 17 bits. Les 16 premiers bits accueillent les poids synaptiques, alors que le 17ème bit configure la plasticité de la connexion.

Un registre de 32 bits permet de configurer la polarité des neurones. Le numéro de bit correspond au numéro de neurone.

Pour distinguer les différents paramètres de configuration au niveau du FPGA, un caractère distinctif est ajouté en amont de chaque octet de donnée envoyé. Ainsi, le fichier de configuration ressemble à l’illustration de la figure A.6 (valeurs en hexadécimale).

c01c12c09cFFc01c05cFFcFFcFF…w80w01w54w01w78w00wFFwFFw47w01w74w00wFF…s01s00s18s00.

Figure A.6. Exemple du contenu d’un fichier de configuration : distinction entre les paramètres des RAMs. Les données destinées à la RAM de connectivité sont précédées par le caractère ‘c’, celles pour destinées à la RAM des poids commencent par le caractère ‘w’. Le caractère ‘s’ sert pour distinguer les données de polarité.

Configuration du module du bruit synaptique

A la différence des autres configurations, la configuration du module du bruit synaptique continue à fonctionner durant la simulation. Les données de configuration seront accueillies par plusieurs mémoires RAMs. L’organisation d’une RAM est illustrée par la figure A.7. Un bloc RAM est divisé en deux parties, chacune de 512 entrées de 16 bits destinés à recevoir les ISIs. Chaque partie contient les données pour un neurone et est divisée en deux compartiments : un compartiment pour stocker les valeurs des ISIs de la synapse excitatrices, et un deuxième pour la synapse inhibitrice.

Exc_n Inh_n Exc_n+1 Inh_n+1 0 256 512 768 1024 Neurone n Neurone n+1

Figure A.7. Organisation d’une RAM de stockage des ISIs.

Les valeurs de chaque compartiment sont rafraîchies périodiquement. Un protocole est défini pour assurer cette tâche. La figure A.8 décrit son fonctionnement. Le FPGA réalise une demande de rafraîchissement en envoyant l’identificateur de la RAM (RAM_id), le numéro du compartiment (cprt) et l’adresse à partir de laquelle il commence le rafraîchissement. La machine hôte répond par l’envoi de 256 nouvelles valeurs à insérer dans le compartiment en question, et finie par une l’envoi d’un signal de fin de l’opération. Cette opération se répète jusqu’à la fin de la simulation. Le rafraîchissement des RAMs se fait en tour de rôle.

Machine hôte FPGA temps temps Remplissage des RAM start_sim RAM_id, cprt, ad r

Envoi des ISIs Fin de rafraîchissement

RAM_id, c prt, adr

Envoi des ISIs

Figure A.8. Protocole de la configuration périodique des données du module du bruit synaptique.

Pour un rafraîchissement, l’ordinateur envoie une trame selon le format suivant :

RAM_id cprt Adr_1 Donnée_1 Adr_2 Donnée_2 … Adr_256 Donnée_256