• Aucun résultat trouvé

CHAPITRE 2. COMMUNICATION SÉRIELLE TOLÉRANTE AUX PANNES

2.3 Variation : bidirectionnalité

Le second type d’architecture de liens inter-cellulaires reconfigurables proposé dans ce document est appelé : “bidirectional configurable inter-cellular (BCIC) links architecture”. Cette architecture est légèrement différente de l’architecture unidirectionnelle de la précédente section du chapitre. La seule différence réside dans la capacité de communiquer dans les 2 directions pour créer un chemin intercellulaire qui puisse revenir sur ses pas en passant par le même chemin. La figure 2-1 montre des vues à haut niveau de ces architectures. On voit sur la figure 2-1 que chaque cellule peut gérer 2 liens, ainsi une seule cellule est nécessaire pour jouer le rôle de cellule d’entrée et de sortie.

La figure C.1 de l’annexe C montre en détail comment sont interconnectées les cellules dans une architecture BCIC. L’architecture BCIC possède les mêmes sous-modules qu’une architecture UCIC sauf qu’il y a une différence : il y a un multiplexeur configurable de plus (indiqué par (b)) qui redirige lui aussi les flux de bits. Ce multiplexeur configurable est associé à un registre de configuration appelé breg (pour “backward register”). De plus, un démultiplexeur (a) est ajouté par rapport au UCIC. Ces ajouts permettent de créer deux

chemins intercellulaires : un qui avance vers la prochaine cellule et un autre qui revient vers la cellule précédente.

La figure 2-9 montre en détail la structure interne du cœur logique de l’architecture BCIC. Le “Tap controller” est commandé par un signal tms JTAG standard. Par contre, plutôt que d’avoir un seul registre “bypass”, il faut 2 registres nommés : “forward bypass” et “backward bypass”. Ces 2 registres permettent de gérer deux flux de bits en même temps permettant la création de 2 chemins configurables dans une seule cellule. Cela a pour effet d’augmenter la tolérance aux pannes du système mais surtout de permettre à un chemin de revenir sur lui-même en passant pas la même cellule. Un nouvel ensemble d’instructions JTAG doit être inclus dans le décodeur pour gérer les cas où les flux de bits avant et arrière sont gérés en même temps. Les deux flux de bits peuvent utiliser les liens btdo (backward tdo), ftdo (forward tdo), btdi (backward tdi), ftdi (forward tdi) pour rediriger les données.

Un exemple impliquant un réticule de 4x4 cellules et permettant d’illustrer les capacités supérieures de la structure bidirectionnelle en termes de tolérance aux pannes est montré à la figure 2-10. Chaque cellule possède un jeu de 8 entrées et 8 sorties. Plusieurs fautes ont été ajoutées dans le réticule à la fois au niveau des liens bloquants et des cellules bloquantes. Le but est d’arriver à configurer un registre situé dans la cellule (2,1) et la (3,2). La cellule (2,1) est simplement configurée à l’aide de la création d’un chemin qui la traverse. L’état de la cellule est donc “scan in”. La cellule (3,2) est configurée grâce à l’utilisation d’une cellule voisine (la cellule (3,1)) par contrôle externe.

L’architecture avec liens BCIC offre plusieurs avantages par rapport au UCIC :

1- Un plus grand nombre de liens entre les cellules signifie plus de chemins potentiels pour éviter les liens bloquants ou les cellules bloquantes. Un exemple de cet accroissement de la robustesse est montré à la figure 2-10 où il est possible de créer un chemin qui revient sur lui-même et qui passe entre des cellules bloquantes. Le chemin intercellulaire débute à la cellule (1,1) et revient à la même cellule. Ce chemin aurait été impossible à créer avec une architecture UCIC avec comme conséquence que les cellules (2,0), (3,0), (3,1), (2,2,), (3,2) ne sont pas configurables, donc dysfonctionnelles.

2- Les algorithmes de diagnostic sont plus simples à coder sur un logiciel. Il est toujours possible de revenir sur des cellules déjà visitées par un chemin, les algorithmes de routage sont plus faciles et directs à implanter sur ordinateur. Il devient donc possible d’explorer les liens d’un réticule une cellule à la fois.

D’un autre côté, un inconvénient évident de l’architecture BCIC est qu’elle utilise un plus grand nombre de ressources matérielles. Pour des systèmes très denses composés de petites cellules, cette méthode n’est pas recommandée.

2-10 Les capacités de tolérance aux fautes de l'architecture BCIC

La figure C.3 de l’annexe C montre comment il est facile et direct de procéder à un diagnostic complet d’une matrice de cellules. En quatre étapes, la figure illustre comment il est possible d’appliquer l’algorithme de diagnostic sur une petite matrice de 3x3 cellules. Le même algorithme de diagnostic que pour l’architecture UCIC s’applique pour l’architecture BCIC. Par conséquent, l’organigramme de la figure C.4 s’applique directement. L’étape A de la figure C.3 montre en pointillé le chemin planifié pour le test incluant un ensemble de liens non explorés (non testés). Ce chemin inclut un lien bloquant. Ainsi, à l’étape suivante (B), une fois le chemin créé, le signal ne peut pas atteindre le port de la cellule qui interface avec le contrôleur de test. S’il n’y a pas de signal qui sort par le port de sortie, alors au moins un des liens visités ou une des cellules utilisées par le chemin est bloquant. Ainsi, un deuxième chemin est planifié et créé pour le test en C sur la figure C.3. Cette fois-ci, le signal peut se propager à travers le chemin ce qui prouve que les liens visités fonctionnent. En (D), les résultats du test sont mémorisés dans une base de données et ils peuvent être utilisés pour effectuer des inférences logiques à partir des résultats d’autres tests.

2.4 Conclusion

Ce chapitre a porté sur le système de communication sérielle tolérant aux pannes pour les cellules du WaferIC. Les méthodes proposées ne sont pas seulement applicables aux besoins spécifiques du WaferIC, mais elles peuvent s’appliquer à tout système sur puce (SoC) ou système sur tranche (SoW) qui exploite un système de communication sérielle JTAG tolérant aux pannes. Deux architectures de communication ont été proposées dans ce chapitre. Les deux méthodes s’appellent respectivement l’architecture avec liens UCIC, c'est-à-dire “unidirectional configurable inter-cellular” et l’architecture avec liens BCIC (bidirectional configurable inter-cellular). Cette méthode permet de créer dans le WaferIC des liens configurables dynamiques en fonction des besoins de l’utilisateur et de la liste des pannes du circuit (fault map).