Les systèmes mono-puce Steven Derrien IRISA, équipe R2D2
Plan de la présentation Introduction au SoC Technologies Méthodologies de conception La consommation électrique Les systèmes d’interconnexion Thèmes de recherches émergents Conclusion Journées pédagogiques 2006 - Vannes
Système mono-puce : kesako ? Système mono-puce = System on a Chip (SoC) Système éléctronique complet intégré dans une puce Circuit STM8000 (STMicro) Décodeur multi-standards pour lecteurs DVD (audio+vidéo) Intègre processeurs, RAM, coprocesseurs dédiés, etc. Circuit mixte = numérique + analogique Journées pédagogiques 2006 - Vannes
Système mono-puce : pourquoi ? Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes
Lexique : parlez-vous le SoC ? SoC = System on a Chip DSP = Digital Signal Processor NoC = Network on a chip IP = Cœur de propriété intellectuelle ASIC : Application Specific Integrated Circuit RTL = Register To Logic MCU = micro-contrôleur DRAM = RAM dynamique (dense, accès lents) SRAM = RAM statique (rapide, chère) CNA/CAN : convertisseur analogique/numérique Journées pédagogiques 2006 - Vannes
DSP : Digital Signal Processors Processeurs orientés vers le traitement de signal Conçu pour des traitements « flot de données » Essentiellement en arithmétique entière Unités de calcul fonctionnant en parallèle Traitements à base de MAC : Multiply ACcumulate : Adressage circulaire, boucles sans pénalités Algorithmes type : filtres numérique RIF/RII, FFT, DCT, etc. Dans les SoC on intègre des « cœurs » de DSP Il faut les intégrer au reste su système Fabricants : Texas Instrument, STMicro, Motorola Journées pédagogiques 2006 - Vannes
Cœurs IP (Intellectual Property) IP = « bloc » matériel préconçu qui peut être intégré dans un circuit Cœur pour PCIe (IP) => 50000 $ Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Lexique : suite… MCU : Micro contrôleurs Processeurs orientés vers le « contrôle » À l’origine des processeurs très simples (PIC, 8051) Aujourd’hui essentiellement des RISC 16/32 bits NoC : Network on a Chip Micro réseau intégré On va en parler plus en détail … RTL : Register to Logic Niveau de description d’un circuit = blocs combinatoires connectés par des registres Journées pédagogiques 2006 - Vannes
Les systèmes mono-puce Les technologies …
Journées pédagogiques 2006 - Vannes Les ASICs Approche « full custom » Conception au niveau transistor Permet des circuits mixtes analogique/numérique Effort de conception très important Surface réduite, performance très importantes Approche « standard cell» Utilise des librairies de cellules primitives Portes AND, OR, registres, SRAM, etc. Effort de conception réduit, performances souvent proches du full-custom Journées pédagogiques 2006 - Vannes
Flot de conception ASIC Journées pédagogiques 2006 - Vannes
Coût de conception d’un ASIC De plus en plus élevés, à la fois en production et en conception En 2001, moins de 10% des design d’ ASIC avaient des volumes justifiant l’utilisation d’une techno 0.13 micron Technologie 0.8 0.35 0.18 0.13 NRE: $40k $100k $350k $1,000k Délai 42 days 49 days 56 days 76 days Marché $3.5B $6B $12B $18B Source: DAC’01 panel on embedded programmable logic Journées pédagogiques 2006 - Vannes
La logique programmable : les FPGA Matrice de blocs logiques reliés par un réseau d’interconnexion programmable Fonctions logiques Blocs logiques élémentaires Circuit placé-routé Fichier de configuration (bitstream) 0100101001 011001010 Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes La technologie FPGA en 2006 Jusqu’à 200 000 cellules logiques élémentaires Cellule = Look-up-Table + registre Blocs mémoire configurables Blocs de 18kbits, au total jusqu’à 1Mo Structures dédiées pour les traitements arithmétique 512 multiplieurs 18x18 bits embarqués Processeurs embarqués Jusqu’à 4 PowerPC en « dur » Soft-Core : processeurs utilisant les cellules logique Liaisons séries haut débit Jusqu’à 10 Gbits MAC Ethernet intégrée Reconfigurable dynamiquement Technologie encore immature Journées pédagogiques 2006 - Vannes
Exemple : FPGA Xilinx Virtex4 Cellule logique ROM programmable permettant d’émuler des fonction combinatoires de 1 à 4 entrées registres Journées pédagogiques 2006 - Vannes
Flot de conception FPGA Placement routage bitstream Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes FPGA versus ASIC Surface silicium d’un FPGA Entre 3% et 5% du budget silicium utile Consommation électrique ~3 et 10 fois supérieure en mode fonctionnement ~100 fois supérieure en mode veille Performances (fclk) ~3 et 10 fois plus lents Intérêt des FPGA ? Time to market Petit/Moyen volume (<100.000 unités) Journées pédagogiques 2006 - Vannes
Les systèmes mono-puces Les méthodologies de conception
Productivity GAP évolution comparée du temps de conception d’un circuit et du nombre de portes disponible Design productivity gap 10,000 100,000 1,000 10,000 100 1000 Capacité des circuits intégrés Gap Transistors par puce (en millions) 10 100 Productivité (K)Transistors par Homme-Mois. 1 10 0.1 1 productivité 0.01 0.1 0.001 0.01 1981 1983 1985 1987 1989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009 Journées pédagogiques 2006 - Vannes
Ou va l’effort de conception ? Source : IBS 2002 Journées pédagogiques 2006 - Vannes
Exemple d’application : MPEG 7% 44% 2% 3% 8% zigzag scan - DCT Q Flux d’images IQ VLC Informations de profilage IDCT Flux compréssé + DCT : transformée en cosinus IDCT : DCT inverse Q : Quantification IQ : Quantification inverse VLC : Variable length coding Motion Estimation Journées pédagogiques 2006 - Vannes
Définition d’une architecture Timer UART IDE DRAM DSP DSP Bus ADC Video input Bridge Bus CPU1 Cache SRAM application specific hardware Cache MCU CPU2 Journées pédagogiques 2006 - Vannes
Mise en œuvre - Partitionnement logiciel/matériel + IDCT Q Bus IQ DCT application specific hardware Bridge MCU ADC CPU1 Cache Video input Timer UART CPU2 SRAM DRAM DSP IDE DSP IDCT DSP Q Bus IQ DCT Bus Motion Estimation Contrôle VLC - + zigzag scan Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Mise en œuvre Gestion des communications et du stockage des données application specific hardware Bridge MCU ADC CPU1 Cache Video input Timer UART CPU2 SRAM DRAM DSP IDE DSP IDCT DSP Q Bus IQ DCT Bus Motion Estimation Contrôle VLC - + zigzag scan Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Remarques Architecture parallèle et hétérogène Un air de déjà vu …. Il y a deux sous problèmes Définition de l’architecture Mise en œuvre sur l’architecture Ils ne sont pas indépendants Le choix de l’architecture impose des contraintes sur la mise en œuvre et ses caractéristiques. On va devoir explorer l’espace des solutions… Quelle est l’étape qui doit bénéficier du plus gros effort de conception? Journées pédagogiques 2006 - Vannes
Conception basée plate-forme Notion de généricité et de réutilisation Plate-forme orientée vers un domaine d’application Traitement de paquets, multimédia,vidéo … Base d’utilisation la + large possible Permet la différenciation des produits Concrètement ? Assemblage de plusieurs CPU ISA/microarchitecture génériques Bus d’interconnexion standardisé OS temps réels et pilotes « génériques » Journées pédagogiques 2006 - Vannes
Conception basée plate-forme Architecture finale Approche « plate-forme » Approche descendante Journées pédagogiques 2006 - Vannes
Exemple d’outil : SOPCBuilder Permet de concevoir rapidement un modèle de plate-forme pour FPGA (Altera) Famille de processeurs NIOS, RISC 32 bits qui peut être dérivé en plusieurs configurations Ensemble de périphériques standards Timer, UART, DMA, etc. avec pilotes logiciels « Wizard » pour l’intégration d’accélérateurs matériels Génère un squelette d’interface matérielle et de pilote Systèmes d’exploitation temps-réel disponibles uCLinux, uC-OSII, etc. Support pour multiprocesseurs Journées pédagogiques 2006 - Vannes
Exemple d’outil : SOPCBuilder Journées pédagogiques 2006 - Vannes
Les systèmes mono-puces Les langages de conception matériels
Journées pédagogiques 2006 - Vannes VHDL Langages de description de matériel On décrit un circuit, on ne « programme » pas Initialement prévu pour modéliser et simuler des circuits Moteur de simulation (événements discrets) Extension pour la gestion de modules analogique (VHDL-AMS) Utilisé pour la synthèse logique de circuits Produire une représentation au niveau « porte logique » Sémantique trop « générale » pour cette utilisation Sous-ensemble synthétisable (également appelé RTL). En pratique : essentiellement des circuits synchrones Problème d’apprentissage, beaucoup de « savoir- faire » Il faut 3-4 ans pour devenir un « bon « concepteur de circuit Journées pédagogiques 2006 - Vannes
VHDL : exemple (niveau RTL) Filtrage numérique non récursif Entity FIR is port ( clk : in std_logic; rst : in std_logic; Xin : in std_logic_vector(15 downto 0); Yout : out std_logic_vector(15 downto 0)); End FIR; Architecture RTL of FIR is type TCoef is array (0 to 7) of integer; constant C : TCoef := (-75,133,-387,626,-865,1345,-2234,4234,16); signal x : is array (0 to 15) of std_logic_vector(15 downto 0); Begin P_FIR : process (clk) variable tmp : std_logic_vector(47 downto 0); begin if rising_edge(clk) then sum := 0; for i in 0 to 7 loop sum := sum + int2slv(c(i),16)*(x(i)+x(15-i)); end loop; -- i yout <= tmp(31 downto 16); x <= x(14 downto 0) & Xin; end if; End process; End RTL; Définition de l’interface du composant Processus décrivant les opérations effectuées à chaque front d’horloge L’affectation des variable est « séquentielle » L’affectation des signaux est « parallèle » Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes VHDL : limites Niveau de modélisation trop fin Difficile d’explorer l’espace de conception en RTL Vitesse de simulation très lente Rédhibitoire pour de la co-simulation (soft+hard) Simuler le démarrage d’un OS = 10 heures Autres critères ? VHDL offre peu d’interopérabilité Les spécifications « système » sont souvent en C Banc de tests difficiles à intégrer… Langage difficile à maîtriser Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes System-C : Langage de description « système » Standard « ouvert », pas besoin de simulateur Basé sur des classes C++ Processus, type de données spécifiques Interaction avec le système plus facile Orienté simulation de systèmes Plus rapide que VHDL ? Langage pas/peu orienté synthèse logique Encore peu utilisé par les concepteurs de circuits Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes SystemC : modèle TLM TLM : Transaction Level Modeling Modèle = ensemble de tâches communicantes Permet d’explorer différents schéma d’allocation Abstraction fonctionnelle des communications Essentiellement utile pour modéliser des « bus » Pas d’information temporelle associée au modèle Pas de prise en compte de la congestion Exemple … int paquet[]={1,2,3,4}; bus->burst_write(0x1200,paquet,4); Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes SystemC : niveau CABA CABA : Cycle Accurate Bit Accurate Modèle d’exécution + précis Simulateur de jeux d’instruction pour les processeurs (précis au niveau cycle). Modèle comportementaux des mémoire (latence, etc.), du système d’interconnexion. Modèle comportementaux/RTL des co-processeurs matériels spécialisés. Estimation relativement précise Exploration de l’espace de conception se fait entre les niveau TLM et CABA Journées pédagogiques 2006 - Vannes
Les systèmes mono-puce La consommation électrique
Pourquoi s’y intéresser ? Pour les dispositifs mobiles Maximiser l’autonomie Diminuer la taille de la batterie Fiabiliser les circuits Éviter les « hotspot » dans un circuit intégré Réduire le coût des produits Systèmes d’alimentation Part important du coût d’un système électronique Coût de conditionnement Boîtiers, radiateurs, ventilateurs… Journées pédagogiques 2006 - Vannes
Tendance technologiques Journées pédagogiques 2006 - Vannes
Consommation en logique CMOS Circuits intégrés conçus en technologie CMOS Ces transistors dissipent de l’énergie Tout le temps (puissance statique) Quand ils changent d’état (puissance dynamique) Inverseur en logique CMOS Journées pédagogiques 2006 - Vannes
La puissance dynamique Causée par les commutations successives On charge/décharge la capacité Cload La valeur de la puissance dissipée dépend : De la fréquence de changement d’état (a) De la capacité équivalente du transistor (Cload) De la tension d’alimentation (Vdd) Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes La Puissance statique Causée par les courants de fuites La valeur de la puissance dissipée dépend : Des tensions de seuil et d’alimentation (Vth,Vdd) De la technologie CMOS utilisée (k) De la température absolue (T) Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Comment réduire Pdyn Domaine de recherche actif depuis 10 ans … Réduire le taux de commutation des transistors Encodage/arithmétique spécifique (gray, etc.) Input gating et clock gating : gèl des entrées d’un bloc quand c’est possible Limiter les glitch (régimes transitoires) Réduire la fréquence (fclk) Ne doit pas se faire au détriment de la surface Réduire la tension Vdd Journées pédagogiques 2006 - Vannes
Choix des tensions Vth et Vdd Réduction de Vdd Diminue la consommation dynamique (facteur Vdd2) Augmente le délai de commutation des transistors. Un circuit alimenté en 1,4V fonctionne 2x plus lentement qu’un circuit en 2,5V, mais consomme 3x moins Comment tirer profit de ce compromis ? Journées pédagogiques 2006 - Vannes
Choix des tensions Vth et Vdd Réduction de Vth (tension de seuil) Réduit le délai de commutation (seuil + faible) Augmente la puissance statique (exponentielle) Doit être fait conjointement avec Vdd Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Compromis Pstat/Pdyn Globalement on a un compromis entre La rapidité de commutation du transistor La consommation du circuit Peut-on s’accommoder de transistors + lents ? Oui, si on utilise + de pipeline dans les processeurs On conserve la même fréquence de fonctionnement avec un Vdd réduit. Oui, en exploitant du parallélisme Deux processeurs cadencés à f/2 consomment 1,5 fois moins de puissance statique. Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Compromis Pstat/Pdyn Puissance dynamique dominante Puissance statique dominante Source : C. Piguet Journées pédagogiques 2006 - Vannes
Lien entre logiciel et consommation ? Efficacité du code code + rapide = f processeur ↓ = Vdd ↓ Taille du code et des données code + gros = mémoire de code ↑= Cequ ↑ Idem données Nombre d’accès à la mémoire Les accès bus sont coûteux en énergie Importance de la hiérarchie mémoire Journées pédagogiques 2006 - Vannes
Tendances technologiques Puissance statique source : ITRS Puissance dynamique À l’avenir, faible consommation = peu de transistors, mais très bien utilisés… Journées pédagogiques 2006 - Vannes
Les systèmes mono-puce Systèmes d’interconnexion
Interconnexion de type bus Système d’interconnexion à temps partagé Relier le processeur à la mémoire + périphériques Exemple : le bus ISA (circa 1980) On retrouve la même chose dans un SoC Adresses UC Vidéo Audio Mémoire Disquette Données Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Les bus « on-chip » Conçus pour les SoC Toutes les transactions se font en interne Moins de contraintes extérieures (connecteurs,etc.) Plusieurs standards existent Les principaux standards La norme AMBA (essentiellement autour des processeurs ARM) La norme CoreConnect définie par IBM pour ses PowerPC La norme STBus, définie par STMicro (usage +/- interne) La norme Avalon utilisée par Altera (SOPCBuilder) Caractéristiques Protocoles complexes, avec plusieurs maîtres Bus orienté haute performances (transferts « en rafale ») Protocole simplifié si la performance n’est pas une contrainte Journées pédagogiques 2006 - Vannes
Connexions point à point Utilisé pour relier des blocs qui effectuent des traitements de type flot de données. Utilisation de mémoires tampons (FIFO) matérielles Synchronisation par les données beaucoup + simple Exemple : MPEG zigzag scan Q IDCT DCT IQ VLC Flux compréssé Journées pédagogiques 2006 - Vannes
Interconnexions Crossbar Très utilisé dans les routeurs haute performance Très coûteux en ressources s I M I I S I Arbitre s Journées pédagogiques 2006 - Vannes
Les interconnexions :besoins Passage à l’échelle Pour la bande passante/latence la taille du système Flexible Plusieurs configurations, bandes passantes réglables Offre un connectivité entre chaque paire d’IPs Compositionnel Permet l’assemblage de sous-systèmes Efficace Coût (en silicium) Dissipation d’énergie Pérenne pour les futures technologies (l<45nm) Bruit, interférences, baisses de courant, « soft errors » Gestion de plusieurs domaines d’horloge (e.g. GALS) Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Aujourd’hui s interface Emetteur Récepteur I Master I Arbiter Master I M I I S I Slave Master I I Arbiter s Point à point dédié Bus partagé Réseau cross-bar Passage à l’échelle Flexible Compositionnel Efficace De plus, ces solutions ne sont pas adaptées aux futures technologie sub-microniques (45nm et moins) Source : Phillips Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Demain … Des centaines de blocs IP interconnectés en 2012 ? Taille des blocs ~ constante, mais leur nombre va augmenter Des schémas d’interconnexion dynamiques. Algorithmes dont les comportement dépendent des données Plus de 100 cycles horloge pour traverser le circuit Aller-retour = 200 cycles, sans arbitrage gagner de la BP → augmenter le grain de communication Les connexions directes ont des taux d’erreur élevés. Gestion des erreurs par le système d’interconnexion. Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Solution : Networks on Chip (NoC) NoC = réseau sur puce, micro réseau, etc. Communications entre IP sont gérées par un réseau Réseau multi saut : routeurs connectés en Point à Point Routeurs retransmettent les paquets de données Un routeur est un bloc IP du système comme les autre cross-bar switch Stockage des paquets Réseau sur puce arbitre router node Blocs IP fonctionnels Source : Phillips Journées pédagogiques 2006 - Vannes
Coût des interconnexions Les solutions extrêmes ne sont pas intéressantes pour des communications globales Bon compromis = PàP + Multiplexage temporel high utilization, few wires high frequency, pipelining & repeater insertion possible Congestion BP partagée Coût Souplesse Interférences Délais de propagation Sur utilisation de la surface Point à point dédié Temps partagé Source : Phillips Journées pédagogiques 2006 - Vannes
Probablement la solution à retenir Bilan … Intéressant, mais Encore trop coûteux Réseau routé Trop coûteux en surface Point à point dédié Probablement la solution à retenir Approche hybride routeurs + bus Performance trop faibles Bus partagé Source : Phillips Journées pédagogiques 2006 - Vannes
Les systèmes mono-puce À surveiller …
Journées pédagogiques 2006 - Vannes La variabilité Cas d’un transistor en techno 130nm 1.4 Fréquence ~30% Courant De fuite ~5-10X 1.3 30% 1.2 Fréquence maximum ~1000 échantillons 1.1 1.0 5X 0.9 1 2 3 4 5 Courants de fuite Journées pédagogiques 2006 - Vannes
Journées pédagogiques 2006 - Vannes Conclusions ? Journées pédagogiques 2006 - Vannes