• Aucun résultat trouvé

2. Le simulateur PAX : historique et évolution

4.3 Le circuit Galway (Bornat, 2006)

A la différence du circuit Trieste, le circuit Galway est conçu pour simuler des modèles de neurones configurables. Il s’appuie sur les travaux de thèse de S. Saïghi (Saïghi, 2004) qui ont abouti à la réalisation d’une bibliothèque de fonctions analogiques. La bibliothèque a été réalisée en technologie BiCMOS 0.35µm chez austriamicrosystems. Elle rassemble les opérations nécessaires à l’intégration d’un modèle de neurone qui suit le formalisme de Hodgkin-Huxley. Le circuit Galway occupe 10.5 mm2 pour 50000 composants actifs et passifs.

La conception d’un système contenant plus de neurones nécessite d’intégrer plus de neurones par circuit. Galway contient 5 neurones entièrement configurables. Il existe deux types de paramètres de configuration ; les paramètres analogiques pour le réglage des courants ioniques, et les paramètres numériques pour la sélection des conductances appartenant à un même neurone. Un neurone peut avoir entre 3 et 5 conductances (ou canaux ioniques). Dans

Galway, le neurone 0 ne peut avoir que 3 conductances, il servira comme neurone inhibiteur

de type FS (Fast Spiking). Les autres neurones sont considérés comme excitateurs de type RS (Regular Spiking) et peuvent incorporer 4 ou 5 canaux ioniques, à l’exception du dernier qui peut avoir une conductance de plus. Le nombre de neurones excitateurs et inhibiteurs dans le circuit reflète les proportions dans le néocortex, à savoir respectivement 80% et 20%.

Le schéma bloc d’un neurone dans le circuit Galway est similaire à celui de Trieste, à l’exception du module qui gère les paramètres analogiques. Ce module est maintenant contrôlable par l’utilisateur. Chaque ASIC possède 204 paramètres analogiques qui correspondent notamment aux paramètres de modèles de conductances. Ces paramètres sont stockés dans des mémoires analogiques et subissent un rafraîchissement toutes les 2 ms pour garder leur valeur. La figure 2.9 illustre la structure du circuit à partir d’une photographie annotée. La proportion de surface occupée par les mémoires analogiques se situe dans le cadre en haut à droite.

Les entrées synaptiques fonctionnent selon le même principe que les multisynapses du circuit Trieste. Le poids synaptique est toujours codé par la durée de l’impulsion de stimulation. Cette durée ne doit cependant pas dépasser 60 µs et peut être codée avec une précision de 13 bits pour un circuit de contrôle fonctionnant à 100 MHz. En parallèle, il est aussi possible d’ajuster la montée du courant synaptique en agissant sur la configuration des paramètres analogiques de la synapse avec une faible, moyenne ou grande contribution.

Chapitre 2. Le simulateur PAX : historique et évolution.

Il est important de rappeler que la durée de l’impulsion de stimulation est la somme des valeurs de plusieurs poids synaptiques. Pour éviter de dépasser la durée de remontée maximale (60 µs), le codage d’un poids synaptiques ne doit pas dépasser une certaine valeur inversement proportionnelle au nombre de neurones dans le réseau. Autrement dit, si un réseau contient N neurones, la valeur maximale du poids synaptique est 60/N µs. Au-delà de ce temps, des effets de saturation peuvent apparaître.

nrn0

nrn1

nrn2

nrn3 nrn4

Mémoire

analogique

Figure 2.9. Photographie du circuit Galway

5 PAX3 : le système multicarte

Cette version de PAX a fait l’objet de la principale contribution de cette thèse. Le nombre de neurones possibles est de l’ordre de quelques centaines. La démarche utilisée consiste à renforcer le calcul parallèle en distribuant les neurones sur plusieurs cartes électroniques qui communiquent entre elles en temps réel. Le calcul neuronal reste purement matériel en vue d’accélérer le traitement et de réduire les latences.

5.1 Vue d’ensemble

Les principales caractéristiques de cette version sont le nombre élevé des cartes électroniques et la gestion distribuée du réseau. Les contraintes temps réel, précision de calcul et flexibilité de configuration sont également satisfaites dans cette version. Le nombre de neurones intégrés peut atteindre les 400.

On garde toujours la décomposition en trois couches dans cette version. La couche logicielle s’occupe de la génération et l’envoi des paramètres de configuration. Les deux couches matérielles sont subdivisées verticalement en plusieurs unités. Chaque sous-unité représente une carte électronique constituée de circuits analogiques et un circuit numérique (FPGA), à l’exception d’une seule carte, dite carte mère, qui contient un circuit numérique et toute la circuiterie nécessaire pour l’interfaçage avec le logiciel utilisateur. Comme son nom l’indique, la carte mère pilote les autres cartes ″filles″ et assure leur interfaçage avec la machine hôte. L’ensemble des cartes filles constituent le réseau de

Du fait qu’il existe plusieurs cartes dans le système, il y a autant de boucles de simulation que de cartes filles. Le cycle de chaque boucle de simulation est similaire à celui du système PAX2, à la différence de la source de provenance des potentiels d’actions. Dans le système PAX2, les évènements proviennent uniquement des neurones locaux à la carte, alors qu’ici, ils peuvent provenir de neurones des autres cartes.

Les boucles de simulation s’exécutent en parallèle et ont la possibilité de communiquer entre elles. Un module de gestion de la communication externe est donc rajouté dans chaque carte. Ce nouveau mode de fonctionnement en réseaux distribués fait aussi appel à un calcul de plasticité distribué. La connectivité du réseau global est également gérée d’une façon distribuée. En général, chaque sous-unité doit être capable de gérer ses propres connexions locales, et les connexions externes afférentes. La section 3 du Chapitre 4 détaille l’approche utilisée pour la gestion des connexions.

Cette version bénéficie des avantages de l’implémentation purement matérielle des fonctions neuronales. En plus, la multitude des boucles de simulation renforce le calcul massivement parallèle et permet un plus grand nombre de neurones analogiques. Cependant, la communication inter-cartes induit des retards supplémentaires qui augmentent la latence dans les boucles de simulation (Belhadj, 2010). Le nombre de cartes que peut supporter le système est fonction de l’ampleur de ces retards. Ces derniers peuvent provenir de plusieurs sources : temps de propagation sur le bus, temps de traitement dans les dispositifs de routage, encapsulation/décapsulation des données, multiplexages, temps d’attente dans les buffers, etc. Pour garder les mêmes performances temporelles, il devient crucial de mettre en œuvre un protocole de communication temps-réel qui veille sur l’aspect temporel de l’échange de données inter-cartes. La section 2 du Chapitre 4 décrit la solution que l’on a développée pour garantir l’aspect temps réel du simulateur.

Chapitre 2. Le simulateur PAX : historique et évolution.