Chapitre 3 Les Circuits Spécialisées ASIC et La consommation de puissance Smail NIAR MASTER1 INEM
Plan Technologies de réalisation de circuits intégrés Technologie CMOS Full custum Vs. Semi-custum Architectures des PLD « Programmable Logic Devices » PLA FPGA La consommation de puissance Dans l’Intel Pentium Extreme Edition Dans le Crusoé Transmeta
La technologie de fabrication des IC Les CI (ou chips) représentent la réalisation courante de tout système informatique Un CI : un ensemble de transistors + connections Drain Drain nmos pmos Nmos Nmos Grille Gate Grille=1 Grille=0 Source Source Sur N mos : Si Grille ==1, alors Drain et Source connectées Sur Pmos : Si Grillle == 0 alors ………………………………………
Un inverseur dans la technologie CMOS VDD ‘1’ VDD ‘1’ VDD ‘1’ p p p A=1 A=0 A 1 Y = A' n n n GND Masse ‘0’ GND Masse ‘0’ GND Masse ‘0’
Réalisation d’un CI gate oxide IC package IC source channel drain Silicon substrate
Les types de CI ASIC : CI intégré ou le nombre de transistors et les connections ont été optimisés pour une appli. coût et délai élevé. Le but est d’optimiser le nombre de transistor, leurs types (coûts et consommation), leurs placement dans le CI, ..etc. Exemple d’ASIC Full custom : les microP, les DSP, circuits spécialisés CoDec MP4, Jpeg2000, etc. Grand volumes, applications critiques, hautes performances
ASIC Gate Arrays ICs Un autre type que les Full Custum. Il s’agit de tableau de transistors (a) Single-column arrays I/O cells/pads Channels Basic cells
PLD : Programmable Logic Devices
PLD suite PLD programmable Logic Device: la disposition des transistors et des connections est fixée, mais on peut détruire ou remettre une connexion. Le concept de base des PLD est celui des PLA
Un exemple de PLA
Principe de fonctionnement d’un SPLD
Deux types de PLD Simple (SPLD) ou PLA (programmable logic array): programmable array, deux matrices ET et OU. Complexe (CPLD) ou FPGA (field-programmable gate array) : forme plus complexe que les PLA, plus de degrés de liberté dans les connections, ex peuvent contenir des bascules. Par rapport au curcuits complétement dédiés (Full Custum), les FPGA sont plus complexes et consomment plus, mais coûtent moins cher.
CPLD Augmenter la puissance des PLD sans augmenter la complexité de programmation ni la puissance consommé (réseau d’interco) et garder une vitesse de fonctionnement (réduire les distances dans le réseau d’interco) Les FPGA Field Programmable Gate Array; répondent à ce besoin Un FPGA = plusieurs blocs logiques programmable + plusieurs réseaux d’interconnection programmable
Structure Générale d’un FPGA Figure 3-20
Un exemple de bloc de logique programme simple LUT : LookUp Table (voir après) Flip Flop : bascule D Figure 3-19
Programmation de la LUT a | b = a ou b, a&b = a et b !c = Inverse de c, ou c bar Figure 3-18
Structure d’un FPGA chez Xilinx
FPGA + microprocesseur uP Four embedded cores
Procédé de conception d’un CI Plusieurs phases de conceptions top-down: système, comportementale, niveau transfert de registre RT, logique. Compilation/synthèse : passage d’un niveau d’abstraction au niveau suivant exemple : convertir une expression booléenne en description d’un réseau logique ET/OU (netlist ou liste de connection). x = a et b; convertit en entrée1 = a, entrée2=b; connecté entrée1 et entrée2 au ET; connecté sortie du ET à sortie1, x= sortie1;
Utilisation des librairies IP Permet la réutilisation de blocs fonctionnelles existants (reusing). Ces IP sont données sous formes électronique (masque) intégrable directement dans le produit. Niveau logique (portes); Niveau RT (registres, multiplexeurs), Niveau comportementales (contrôleur d’affichage, compresseurs JPEG, convertisseur N/A, interface bus, …), Niveau système (blocs pour remplir une fonction complète, exemple un processeur complet (core) avec le noyau OS.
Deux types d’IP Hardware IP Software IP Client achète un bloc (core de processeur) comme boite noire Ajoute d’autre IP ou d’autres blocs spécifique décrits par SystemC Hardware IP pour les processeurs (exemple ARM et MIPS) Software IP Le client achète la description sous forme de programme de haut niveau ou HDL du composant Il réalise l’intégration avec d’autres composants Exemple : ARC core
Test et Vérification But : s’assurer que le produit réalise la fonction désiré dans conditions de fonctionnement prévues et qu’il ne provoque pas de conséquences graves dans les autres conditions. La prise en compte a chaque niveau, réduit le temps de conception et évite les boucles dans la conception (time to market réduit). Hardware/software co-simulation Specification Automation Blocs IP Verification Reuse Implementation
Résumé Compilation/synthèse Libraire/IP Test et vérification Spécifications Système Synthèse système Blocs HW/SW/OS cores Simulateurs et vérificateurs de models Spécification comportemental Synthèse comportementale Composants complexes/cores Co-simulation HW SW (systemC, specC) Spécifications transfert de reg. Synthèse RTL Composants niveau registre Simulateurs HDL: VHDL, verilog Spécification logique Synthèse logique Portes, PLA, FPGA Simulateur niveau porte
La consommation de puissance D’où cela vient ? Lorsque la sortie d’un circuit logique commute entre 0 <-> 1. ‘0’ : 0 volt, ‘1’ = 5 V La capacitance de la sortie peut correspondre à d’autres portes logiques ou aux fils (bus) de connexion. Porte NON IN OUT 1 1
La consommation de puissance dans les processeurs embarqués La consommation de puissance facteur aussi important que le MIPS (million d’instructions exécutées par sec). Critère de 1ière Importance (GSM) Certains fabricants proposent la mesure Mips/W Différence entre Puissance (Watt) et Énergie (en Joule) J = P * temps i.e 1 W = 1 J/1 sec La puissance c’est la vitesse avec laquelle est consommée l’énergie. Pour les systèmes haute performance, P est important mais pas J. Pour les SE, J est important. On peut accepter un temps plus long s’il y a un gain important dans J
Puissance….suite P = C*A*F*V2 Puissance consommée = Dynamique + Statique Réduire consommation = réduire les deux Partie Dynamique = surface * Fréquence * Tension2 P = C*A*F*V2 Surface = complexité du circuit, nombre de transistors Réduction : Archi simple, RISC, VLIW, cache et DRAM interne. Fréquence en Mhz Réduction : Lorsque c’est possible, réduire la fréquence. Donner juste ce qu’il faut. Adapter selon besoin. Tension d’alimentation en V Réduire l’alimentation = circuit sensible (sol VLSI) Fréquence et Tension sont liées : Grande vitesse = Haute tension
Puissance…… Partie Statique dépend de la complexité Réduction : Déconnecté (ne pas alimenter) les unités fonctionnelles non nécessaires. Pourcentage du temps où les unités ne sont pas utilisés PowerPc603 unité Specint92 Specfp92 D cache 29% 28% I cache 29% 17% load/store 35% 17% fixed-point 38% 76% floating-point 99% 30% system register 89% 97%
Gestion Dynamique de la consommation de puissance dans le StronArm SA-1100 Run : mode normale toutes les unités actives Idle : horloge arrêtée (f=0), le contexte (valeur des registres) sauvegardé et interruptions actives. L’entrée par séquence instructions Sleep : Repos, garder en activité uniquement la logique de réveil Prun = 400 mW run 10 ms 160 ms 90 ms 10 ms Psleep = 0.16 mW Pidle = 50 mW 90 ms idle sleep
Gestion de la consommation dans les processeurs mobiles INTEL Enhanced Intel SpeedStep (EIST) Adjust processor voltage and core frequency: decreased power consumption & heat production Allows the processor performance and power consumption levels to be modified while a system is functioning. Accomplished via application software, changes : bus-to-core frequency ratio and the processor core voltage (Vcc). Inputs to determine the proper operating state system power source, processor thermal state, or operating system policy are used. The software has ultimate control over the frequency and voltage transitions. Centralization of the control Reduced hardware overhead processor core unavailability time 10 µs
Enhanced Intel SpeedStep
Le processeur Crusoe de Transmeta www.transmeta.com un processeur à mot très long VLIW (128 bits) compatible X86 seulement 2 watts à 700 MHz contre 14 watt pour Pentium III mobile à 650 MHz.
La traduction du code X86/Crusoe par logiciel ( Morphing) meilleure efficacité, code plus compacte, Solution flexible
Gestion de la consommation dynamiquement (LongRun) Puissance de calcul = f (fréquence Horloge) Puissance de Calcul = f (tension d ’alim 2) LongRun réduit les deux facteurs Analyse dynamiquement la charge de travail et ajuste dynamiquement la vitesse du processeur en Mhz sans intervention de l ’OS, user, … La vitesse est adapter juste aux besoins de l utilisateur, pas de perte
Implémentation de LonRun Exemple le TMS5400: l ’horloge est réduite par des incréments de 33Mhz Gain: 666Mhz 1.65 volts , 633Mhz 1.6 V Le changement peut s ’opérer entre application (passage d ’une appli à une autre) ou dans l ’application. Exemple : DVD : Exige 400 Mhz pour démarrer et seulement 200Mhz après
Que faut il retenir? Deux types de transistors dans les CI : nMos et pMos Les systèmes reconfigurables sont à base de PLD : Simple (PLA) et complexes (FPGA) Un Fpga est composé de réseau d’interc et de cellules programmables (SRAM)
Au menu de la semaine prochaine Architecture ARM pour les systèmes embarqués Structure d’une carte à puce Sécurité dans les cartes à puce Réutilisation de blocs fonctionnelles existants (reusing) par l ’approche IP (soft et hard) Puissance consommée = Dynamique + Statique Réduire consommation = réduire les deux P = C*A*F*V2
Bon Appétit