• Aucun résultat trouvé

Avantages et inconvénients de l’asynchronisme

5.2 Principe de fonctionnement de l’asynchronisme

5.2.5 Avantages et inconvénients de l’asynchronisme

La différence fondamentale entre les circuits asynchrones et les circuits syn- chrones est le mode de déclenchement des échanges d’informations, qu’ils soient de type calcul ou déplacement de données. La synchronisation globale réalisée par une horloge dans le cas des systèmes synchrones est ici réalisée par un système de communication local de type poignée de main (ou "handshaking" en anglais) entre les différents composants du circuit. Cette communication particulière permet d’as- surer le transfert et la synchronisation de données entre les composants dès que ce transfert est possible. Cependant cette communication locale a un coût matériel et énergétique (faible) dans la mesure où elle nécessite l’ajout de signaux de contrôle : le signal de requête et le signal d’acquittement.

Ce mode de gestion délocalisée du contrôle apporte un certain nombre d’avan- tages et d’inconvénients que nous détaillons ici. Ces avantages et inconvénients généralement reconnus sont décrits de manière claire dans [Rez04] [Sli04] [Ren00a]. Les avantages de la conception asynchrone se présentent à différents niveaux :

– Optimisation du temps de calcul : Le temps mis par un opérateur pour déplacer ou traiter une donnée n’est pas le même pour chacune des opérations à effectuer dans tout le circuit. Dans un système synchrone, afin d’assurer la validité des données en sortie de chacun des opérateurs, il est nécessaire d’at- tendre que le signal d’horloge global atteigne l’opérateur, qu’il le déclenche et que le calcul se termine.

Le premier facteur correspondant à la différence de temps d’arrivée de l’hor- loge partant d’une source unique, appelé clock skew, peut être en partie ré- solu lors de la phase de conception synchrone. Il faut pour cela utiliser des techniques de placement routage optimisée en forme d’arbre de manière à diminuer ces écarts de temps à l’arrivée de l’horloge dans chacun des compo-

5.2. Principe de fonctionnement de l’asynchronisme

sants du circuit. Il est à noter que ce problème devient aujourd’hui essentiel dans la conception de circuits car les temps de propagation des horloges sont devenus supérieurs aux délais des portes.

Le deuxième facteur est la différence de temps de calcul dans les différents composants du circuit. Variant énormément d’un composant à l’autre selon les fonctions réalisées, il est très difficile d’égaliser ces temps de calcul lors de la conception du circuit. Cela peut se faire en partie par l’utilisation d’opéra- teurs répartis ou en divisant une fonction ayant un temps de calcul important en plusieurs sous fonctions connectées entre elles par un pipeline synchrone. Il n’est cependant pas possible de diviser de la sorte toutes les fonctions, et cette division contraint à réorganiser tout ou partie du circuit lors de la phase de conception.

La conséquence de ces décalages temporels entre les sorties des différents composants est qu’il faut attendre que le dernier des composants ait fini son calcul pour relancer une nouvelle opération de manière globale. L’horloge est donc obligée de fonctionner en regard du chemin critique, à savoir le chemin le plus lent. La vitesse de fonctionnement d’un circuit synchrone dépend donc demaxcircuit(τclock delay+gate delay) où τclock delay+gate delay est la somme du temps

mis par le signal d’horloge pour arriver au composant et du temps mis par le composant pour faire son calcul. Il est également à noter qu’une optimisa- tion des chemins non critiques ne sert pas à grand chose en matière de coût temporel dans un circuit synchrone.

Dans les circuits asynchrones, la gestion du transfert des données et l’exé- cution des instructions étant gérés localement, il n’y a plus de contrainte forte liée à un contrôle global comme il est question dans les circuits syn- chrones. En conséquence, le temps d’exécution de la fonction correspondant à un opérateur est exactement celle de l’opérateur. On peut en effet négli- ger les temps relatifs aux signaux de contrôle, ceux-ci étant locaux, ils n’ont pas de propagation à effectuer. En conséquence, la vitesse du circuit est en permanence ajustée aux capacités temporelles des fonctions effectuées, et la vitesse obtenue est donc la meilleure possible. La vitesse de fonctionnement d’un circuit asynchrone dépend donc de la valeur moyenne de τgate delay sur

l’ensemble des cellules considérées. Dans un circuit asynchrone, l’optimisation des chemins non critiques permet d’améliorer la système car ils sont pris en compte dans la moyenne des temps de traitement.

En terme de vitesse, un circuit asynchrone a donc potentiellement des per- formances améliorées par rapport à un circuit synchrone. Ce résultat vérifié doit toutefois être nuancé par la dégradation des performances de certains composants, dégradation due à une complexification du fonctionnement in- troduite par l’asynchronisme.

pas à l’exécution d’une tâche ne consomment aucune énergie dynamique. De plus, ces circuits peuvent se réveiller instantanément pour passer d’un mode de fonctionnement endormi (pas de consommation d’énergie), à la pleine ac- tivité (débit maximal). Cette fonctionnalité n’est pas rajoutée au système comme dans certains circuits synchrones mais inhérente au fonctionnement asynchrone.

Le deuxième facteur permettant de réduire l’énergie consommée par le circuit est l’absence d’horloge globale. Comme nous l’avons dit précédemment, les temps de propagation des signaux d’horloges sont aujourd’hui plus grands que les temps de traitement des différentes fonctions. Ceci est dû aux capacités présentées par les rails d’horloge. Ces capacités ont une autre conséquence, leur agitation à coût énergétique important P = C V2 f , avec C la capacité

de l’ensemble des rails d’horloge, V la tension d’alimentation et f la fréquence du signal d’horloge. Cette consommation ne fait qu’augmenter à mesure que la fréquence augmente, et que les capacités de rails augmentent (ceci étant du entre autres à la réduction des distances inter-rails, et donc à l’augmentation de leur capacité). Le coût énergétique lié au fonctionnement des horloges est aujourd’hui la source la plus importante de consommation énergétique dans certains circuits. Un circuit asynchrone n’ayant pas recours à une horloge globale, ce coût disparaît, et permet de réduire significativement l’énergie consommée.

– Modularité : La modularité des circuits asynchrones est un autre des avan- tages ayant contribué au retour des circuits synchrones dans le monde de l’architecture de circuits. Grâce au contrôle local, les parties d’un circuit asyn- chrone forment des briques autonomes et élémentaires qui peuvent être assem- blées en se préoccupant principalement d’aspects fonctionnels. Ces briques peuvent être facilement réutilisées d’un circuit vers un autre et archivées dans des bibliothèques de conception automatique ou assistée par ordinateur. Cette propriété permet de rendre les circuits asynchrones très portables, en parti- culier dans le cas d’une migration technologique. Par rapport aux circuits synchrones, il n’est pas nécessaire d’effectuer une synthèse et une vérification globale du circuit pour vérifier que les décalages entre les instants d’arrivée des horloges (clock skew) ne sont pas rédhibitoires.

Pour la même raison, il est possible d’ajuster le circuit de manière beaucoup plus fine. L’ajout d’une brique asynchrone est en effet sans répercution sur le fonctionnement global du circuit, cela permet donc d’affiner de manière locale chacune des parties d’un circuit asynchrone jusqu’à obtenir le meilleur fonc- tionnement possible. Une telle démarche est très difficile en synchrone dans la mesure où l’ajout d’un composant peut avoir des conséquences sur tout le reste de la conception. Nous pouvons citer l’exemple de l’ajout d’un étage dans un pipeline synchrone. Pour faire cela, il faut s’assurer que chacun des

5.2. Principe de fonctionnement de l’asynchronisme

chemins convergents continue à avoir le même nombre d’étages de pipeline, et que le circuit fonctionne toujours correctement. En conception asynchrone, l’ajout d’un étage de pipeline se fait sans aucune difficulté.

– Emission électromagnétique : Un des avantages des circuits asynchrones est la réduction des émissions électromagnétiques du circuit [PSR04]. Cette réduction s’explique par deux points principaux. Contrairement aux circuits synchrones où toutes les parties fonctionnent à fréquence fixe et à peu près en phase, les transitions ont lieu à des moments beaucoup plus répartis dans un circuit asynchrone. Ceci a pour conséquence d’élargir le spectre d’émis- sion du composant tout en affaiblissant la densité de puissance d’émission électromagnétique pour chacun des bandes de fréquence. De plus, dans un système synchrone, les signaux de fréquence fixes sont transportés sur des rails de taille assez importante qui peuvent donc jouer un rôle d’antenne et favoriser les émissions électromagnétiques. La suppression de ces rails dans les circuits asynchrones contribue donc également à réduire ces émissions. Une des conséquences de cette diminution des perturbations électromagné- tiques est une réduction des contraintes de blindage du circuit lors de sa conception.

Cette propriété de faible émission électromagnétique est importante dans les applications embarquées de type télécommunications où les problèmes de compatibilité électromagnétique sont fondamentaux, et dans les applications militaires où le souci de camouflage est constant.

– Sécurité : Avec le développement des communications et traitements sécuri- sés et cryptés, une nouvelle propriété des circuits asynchrones a été mise en lumière. Il s’agit de la sécurité contre les attaques de type DPA (Differential Power Analysis) [BRR+04]. Lors d’une attaque DPA, les variations de cou- rant dans un circuit sont observées et permettent de dévoiler les données qui y sont manipulées. Dans un circuit synchrone, ces variations sont parfaite- ment localisées, et correspondent aux fronts d’horloge, leur étude permet de dévoiler les données échangées dans le circuit. La dispersion temporelle des traitements de données dans un circuit asynchrone rend plus difficile une telle analyse, ce qui permet d’améliorer la sécurité de ce type de circuit.

Les avantages des circuits asynchrones présentés ici ont favorisé leur retour dans les laboratoires de recherche. Cependant, aujourd’hui, l’utilisation industrielle de composants asynchrones reste encore assez limitée. Il y a deux inconvénients ma- jeurs des circuits asynchrones permettant d’expliquer cela :

– Augmentation de la surface d’implantation : Le fait de ne pas avoir d’horloge globale dans le système allège les contraintes de placement rou- tage à l’échelle globale du circuit. Toutefois, cette synchronisation est réalisée localement et implique donc l’ajout de composant matériel à cet effet. Des exemples d’implantations ont montré que l’augmentation de la surface de si-

– Outils de conception : En raison de la quasi-totale domination du marché par la logique synchrone, les outils de conception assistée et de vérification ont été développés pour cette technologie. Il n’existe aujourd’hui que peu d’outils permettant de réaliser la même chose en logique asynchrone. De fait la conception d’un circuit asynchrone se révèle être plus longue, plus diffi- cile et plus hasardeuse que la conception d’un circuit synchrone. Ce facteur est une cause importante de l’utilisation très limitée de l’asynchronisme dans les circuits actuels. La solution à ce problème est de développer des outils permettant la conception et le test des circuits asynchrones, ce que font plu- sieurs équipes universitaires. Nous pouvons citer l’université de Manchester et son outil de conception Balsa [EB02] basé sur Tangram, un autre outil ayant été développé à l’université de Eindhoven en collaboration avec Philips [vBKR+91]. En France, l’équipe CIS du TIMA à Grenoble sous la direction de Marc Renaudin développe actuellement un outil complet appelé TAST [SRSR04].

Les listes d’avantages et inconvénients des circuits asynchrones présentées dans cette partie l’ont été dans un cadre général. Dans le cadre plus restreint des rétines artificielles régionales asynchrones, ces listes sont en réalité plus réduites. Parmi les avantages, figurent le gain en vitesse et en énergie consommée, et la réduction des émissions électromagnétiques. En revanche, la modularité ne nous concerne pas dans la mesure où l’architecture que nous présentons dans la suite n’est pas de type modulaire comme pourrait l’être un circuit de type GALS (Globally Asynchronous, Locally Synchronous). De la même manière, l’architecture étant une maille consti- tuée d’un ensemble de processeurs asynchrones très simples et dont l’architecture a été optimisée manuellement, les problèmes liés aux outils de conception ne se posent pas, les aspects vérification ne posent pas problème non plus compte tenu de la simplicité du circuit. Enfin, l’augmentation de la surface d’implantation due à l’utilisation de circuits asynchrones ne peut être considérée comme un inconvé- nient dans le cas d’une rétine asynchrone, car l’asynchronisme n’est pas utilisé en remplacement d’une fonction synchrone mais dans le but d’implanter de nouvelles fonctionnalités régionales (et à faible coût matériel).