Proposition de techniques d’optimisation au niveau architectural
Un cycle, une transition au maximum
Principe de la méthode La technique présentée est basée sur une architecture de codage classique, telle que représentée sur la figure 3.8, consistant en un codeur à l’entrée du bus et en un décodeur à la sortie du bus. Le codeur a pour but de transformer les n bits de la donnée en entrée en m bits de données sur le bus codé (avec n ⩽ m); le décodeur réalise l’opération inverse afin de récupérer les données originales.
Quand la technique est utilisée, le bus est divisé en groupes de deux fils. Chaque paire de fils, est codée sur trois fils en sortie du bloc de codage tel qu’illustré sur la figure 4.1. Par conséquent pour un bus de taille n, un total de n 2 fils supplémentaires est nécessaire. L’objectif du codage est de diminuer le plus possible l’activité des bits de poids faible avec comme seconde contrainte de faire en sorte que le bus présente la plus faible capacité de crosstalk possible.
Le point clé de la technique, dans l’objectif de diminuer l’activité, est de faire en sorte que sur les trois fils en sortie du bloc de codage, il n’y ait au plus qu’un seul fil au maximum qui effectue une transition par cycle d’horloge. De cette manière, la diminution de l’activité entraîne une diminution de la consommation. Ceci permet également une accélération de la propagation des données sur le bus car il ne reste au pire cas que des transitions de type 1 + 2r sur les fils codés par la technique. Définissons :– Aj(ti) comme étant la donnée non codée sur le fil j au cycle d’horloge ti avec j ∈ [0,1];
Résultats expérimentaux
Pour les simulations, le modèle du bus utilisé est un modèle distribué Π3 incluant les capacités de crosstalk comme nous l’avons présenté dans le premier chapitre. Les résultats expérimentaux ont été obtenus en utilisant un simulateur SPICE (ELDO v5.7), pour différentes technologies (130nm, 90nm et 65nm), en considérant les stimulis de type données (image, musique, parole). Chaque technologie possède un certain nombre de couches de métal : 5 pour la 130nm, 6 pour la 90nm et 7 pour la 65nm.
Les simulations couvrent toutes les couches de métal, des plus basses (utilisées pour de courtes interconnexions) jusqu’au plus hautes (utilisées pour de long bus, ce qui nous intéresse ici plus particulièrement). Comme le temps de propagation sur les interconnexions peut être une donnée critique, les expé rimentations considèrent également les lignes bufferisées et non bufferisées. Comme le temps de propagation et la consommation sont parmi les points clés dans la concep tion des SoC actuels,
et dépendent entre autre de la taille des transistors (largeur WMOS), la largeur des transistors utilisés dans les codecs est un paramètre supplémentaire pour les simula tions. WMOS peut varier ici de deux fois la longueur de la technologie (2λ, cette taille est la taille minimum de design fixée par les valeurs des design kits) à n fois 2λ (pour les expérimentations la borne haute s’arrête à 6).
Les résultats de consommation présentés dans le tableau 4.1 tiennent évidemment compte du surcoût de consommation apporté par les codecs. Premièrement, l’analyse des résultats permet de remarquer que l’efficacité de la technique aug mente lors des sauts technologiques, ce qui est un point très important pour la réduction de la consommation dans les technologies actuelles et futures.
Deuxièmement, nous pouvons remarquer que la technique est tout de suite efficace pour les couches de métal les plus basses et devient de plus en plus efficace en montant dans les couches de métal; couches hautes, réservées plus particulièrement pour les bus, sur lesquelles le gain sera encore plus