• [^] # Re: Remarque à la c...

    Posté par (site web personnel) . En réponse à la dépêche Servo fin 2015 : où en est-on ?. Évalué à 3.

    Concernant la gestion d'horloge et de tensions, il ne faut pas mélanger les choix pour une techno et ce qui est possible de faire.

    Pour couper une horloge, il suffit de mettre une porte devant. Pour en changer la fréquence, il faut modifier la pll qui peut mettre un certain temps à se stabiliser. Le pire est de couper la pll pour la rallumer (~100ms de mémoire).

    Concernant la tension, tu peux couper des power domaine entier. Mais selon la taille des fils, rallumer un secteur prend un "certain temps" (celui des capa parasites le long de tout les fils d'alim). Baisser la tension avec une diode en série, prend un peu moins de temps car le delta de tension est plus faible. En plus, cela évite d'avoir 2 power domain, avec l'un dédié au registre pour conserver "l'état" du module.

    Un DVFS, c'est accorder la tension nécessaire pour une fréquence donnée. Dans l'exemple que j'ai vu, c'est une commande I2C à 3.5Mhz qui sort du Soc pour aller dans la puce de gestion d'énergie pour donner une nouvelle tension. La communication est donc lente, et ensuite, il faut que l'alim à découpage varie sa tension sans autre perturbation (surtout aucune oscillation par exemple). Les points tensions/fréquence peuvent être fixe ou asservi. Dans le cas d'un asservissement, il y a un "ring oscillateur", une série d'inverseurs mis en anneaux, qui oscille, la fréquence dépend de la vitesse de chaque inverseurs qui est proportionnel à la tension d'alimentation. Ainsi, si la vitesse des oscillateurs est plus grande que nécessaire, la tension peut être baissée. Si la tension baisse trop, le SoC plante, il ne faut pas oublier. Ainsi, le cycle de mesure/ajustement se fait en plusieurs fois. Ce qui prend encore plus de temps. En général, on allait à un point de fonctionnement, puis on laissait le truc en automatique. L'automatisme permet de s'ajuster à chaque puce. Donc, les samples les plus rapide consommaient moins, car avec une tension plus faible en moyenne.

    Souvent les points de fonctionnement à 100, 50 ou 25 % de la clock max ne concernait que le cpu et non les caches (omap3). Ainsi, l'énergie nécessaires par instructions ne baissait pas comme le prévois la formule linéairement à la tension. Donc, les points de fonctionnement à 50 et 25%, si on tient compte de la puce entière ne consomme pas forcément moins. Il faut donc mieux jouer sur allumer et éteindre le chip (avec nettoyage du cache si nécessaire).

    Intel a fait des progrès, je n'en doute pas. Surtout qu'ils ont récupérer l'équipe low power de TI, après leur fermeture à Sophia Antipolis en 2009.

    J'avais entendu parler aussi des gains de puissance, si on jouait sur le rapport entre la vitesse de la DRAM et la vitesse du cpu. En général, ils sont au max tous les 2, à 100% de l'horloge. Mais les taches peuvent être cpu bound ou memory bound. Cela permet de baisser une fréquence par rapport à l'autre sans perte de performance ou presque, le papier citait 20% de gain d'énergie sur le mode 100%.

    "La première sécurité est la liberté"