12/10/2012 Complémentarité HW/SW 100% SW Contraintes physiques XXX consommation XXX intégration Cout de production [email protected] Version 2013 ARCHITECTURE EMBARQUÉE ET PROCESSEURS RISC Architecture enfouis Contraintes économique du produit XX XXX XXX (si fort volume de production) flexibilité XX Protection industrielle Contraintes économique du développement 100% HW performance XXX Cout de développement XX Cout de production XX Prise de risque XXX Exemple de SOC systèmes embarqués/enfouis ou System on Chip (SOC) Ces systèmes impliquent des contraintes : • produits largement diffusés : coûts réduits • contraintes temporelles strictes • sûreté de fonctionnement (e.g. aéronautique) • taille, poids • consommation d’énergie Mais il faut aussi privilégier : • la réutilisation • la flexibilité : modifications tardives, correction d’erreurs Architecture enfouis Exemple de répartition HW/SW logicielle (SW) : processeur + Logiciel flexibilité faible temps de conception Faible cout matérielle (HW) : ASIC et FPGA performances consommation protection industrielle Cout élevé Mixte Tire profit des 2 approches => cas d’un SoC 1 12/10/2012 Très grandes diversité des composants Jeu d’instructions Les systèmes embarqués deviennent de plus en plus complexes. Grande variété de composants disponibles : Cœurs de processeurs Ensemble des commandes primitives ASIP : Application Specific Instruction-set Processor ASSP : Application Specific Standard Product Microcontroleurs DSP : Digital Signal Processors RISC Fonctions logicielles Bus standardisés Fonctions matérielles (ASIC) Composants reconfigurables SPGA : System Programmable Gate Array - FPGA + IP) que le programmeur peut utiliser sur une machine. Deux écoles RISC et CISC. Intellectuel property (IP) 10 ASIP et ASSP Critères ASIP : Application Specific Instruction set Processor La complexité du jeu d'instruction Processeur spécialisé à l’exécution d’une (ou quelques) application (par exemple Modem) Jeu d’instruction et ensemble des ressources adaptés à l’application Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC et DSP Mais compilateur plus délicat, time-to-market plus long qu’avec des processeurs standards dépend du format de l'instruction et des données, des modes d'adressage, du jeu de registres, des instructions de contrôle de flot. ASSP : Application Specific Standard Product Composant complexe qui réalise une fonction spécifique (compression vidéo, modem) ASSP et interface standardisée : IP 11 Caractéristiques des RISC Le RISC est composé d'environ 100 instructions dans un format fixe 3 à 5 modes d'adressage les accès mémoire sont réservés aux instructions de Load/Store PROCESSEUR RISC 9 12 2 12/10/2012 Conséquences Propriétés Un grand nombre de registres Architecture Load/store avec un améliore le changement de contexte. La plupart des instructions s'exécutent en un cycle. L'intégration sur un seul chip permet d'augmenter la fréquence d'horloge. ensemble de registres orthogonal Simples modes d’adressage Contrôle des délais de pipeline 13 16 Apparition des RISC Succès des RISC Premier article en 1980 (Patterson et Horloge rapide (temps/cycle) Peu de cycles par instruction : par le Ditzel) Implantation sur un seul chip Temps de conception réduit Horloge rapide Meilleur utilisation du VLSI fonctionnement pipeline (cycle/inst) Faible augmentation du nombre d’instructions par tâche : optimisation du compilateur (inst/tâche) 14 17 Première réalisation Approches de mise en oeuvre Papier de MIPS en 1983 IBM / Standford Introduction du pipeline et du Un ensemble de registre unique multiple unités fonctionnelles Premier prototype en 1985 Load/store efficace, optimisation des délais par le compilateur Berkeley Multiple ensemble de registres gérés en fenêtre Load/store de 2 cycles ou plus 15 18 3 12/10/2012 Appel de procédure Recouvrement des fenêtres n-1 Diminuer le coût de l’appel de 26-31 "n procédure Passage de paramètres Sauvegarde des registres Adresse de retour 16-25 n 10-15 26-31 0-9 16-25 n+1 10-15 26-31 16-25 10-15 Recouvrement des fenêtres lors de chaque appel Evite le passage sur la pile 19 22 Fenêtre de registres Fonctionnement Un grand nombre de registres Seul un sous ensemble est visible à un A chaque appel on met à jour le CWP vers la nouvelle fenêtre. Diminution du trafic mémoire En cas de débordement, les fenêtres sont recopiées en mémoire (trap sur CWP) Pourrait fonctionner sur un CISC avec beaucoup de registres instant donné (par ex 32) Chaque ensemble est divisé en groupes. Pointeur de fenêtre courante CWP 20 Groupes de registres Allocation des registres Les instructions RISC sont registre à R31 Paramètres reçus R26 R25 Variables locales registre L’accès aux registres est beaucoup plus rapide que la mémoire L’allocation optimisée des registres peut réduire le nombre d’accès mémoire 6 10 R16 R15 R10 R9 Paramètres envoyés Variables globales R0 23 6 10 21 24 4 12/10/2012 Les processeurs de traitement du signal Exemple 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 function MostlyZero(n:integer):boolean; var num,ones,zeros,half:integer; res:boolean; begin num:= n*n; ones:=0; zeros:=0; while num>0 do begin half:=num div 2; if 2*half=num then zeros:=zeros+1 else ones:=ones+1; num:=half end; if zeros>ones then res:=true else res:=false; MostlyZero:=res end; Les processeurs embarqué RISC 25 Il existe de nombreux constructeurs : nombreux DSP et leurs variantes chez chacun d’eux - Un DSP peut être particulièrement adapté à un type d’application (exemple : DSP56009, TMS320C54x) - Les performances des DSP peuvent varier significativement : exemple : localisation des données en mémoire, localisation du code Design Reuse : IP Il devient de moins en moins possible de concevoir un SoC entièrement. Des parties déjà conçues doivent être réutilisées Développer des « composants virtuels » réutilisables Problèmes : Une compagnie seule ne peut pas toujours concevoir tous les composants dont elle a besoin Commerce de composants virtuels Nécessité d’instaurer une protection juridique => « intellectual Property » Nécessité d’utiliser un même formalisme pour la modélisation et l’utilisation pour l’adaptation rapide au système Processeurs embarqués RISC et mémoire cache : recherche de compromis Niveaux des IPs matérielle « Soft» IP Modèle de description de matériel. Peut être non synthétisable pour la validation purement fonctionnelle. Flexible, paramétrable Indépendant de la technologie Difficile à protéger « Firm» IP Liste d’équipotentielles post synthèse logique Dépend de la technologie Assez difficile à protéger « Hard» IP Liste d’équipotentielles placée et routée Contient les temps de propagation Facile à protéger (boîte noire avec uniquement les E/S) 5 12/10/2012 SoC : ensemble d’unités interconnectées Usage et format des IPs La conception de SoC: approche classique de type CPU-centric L’accent est mis pendant la conception sur le ou les CPUs et les IPs de calcul Puis on cherche à les connecter Or les performances dépendent de l’interconnexion La structure la plus simple à utiliser : les bus Un bus : ensemble de fils IP Data (N bits) L’IP force l’état du fils à 0 ou à 1 Adresse (P bits) Le temps de changement d’état dépend: - Des drivers de courants de l’IP Contrôle (Q bits) - Des dimensions des fils - Du nombre d’IPs sur le bus Les fournisseurs d’IPs Synchrone ou asynchrone Sociétés d’études et de conception Bus synchrone Dans les signaux de contrôle, un signal d’horloge fixe les instants de changement d’états Simple et rapide si : Tous les IPs sur le bus ont la même vitesse d’horloge La longueur du bus sur le chip est limitée (clock skew) Bus asynchrone Dans les signaux de contrôle, des signaux permettent une synchronisation des échanges Overhead du à la synchronisation (handshake) Adapté à connecter des IPs de types/vitesses différents Req Sociétés sans fonderie (« fab ») dont le profit vient des droits sur les licences DSP Group (IP pour les télécoms), ARM (processeurs RISCs), offre incluant des IPs SOFT, de simulation et synthèse. Sociétés de semi-conducteurs Peuvent fournir des Ips HARD en plus des Ips SOFT TI, Motorola, Lucent, Altera, Xilinx, LSI Logic, STM Fournisseurs d’outils de CAO Fournissent des Ips SOFT uniquement Mentor Graphics, Cadence, Synopsys,… IP1 Les types d’IPs Processeurs: Picoblaze, microblaze, Leon, Nios, LSI logic CW4001/4010/4100, ARM 7TDMI, ARM 810,NEC 85x, Motorola 680x0, IBM PPC,… DSPs: TI TMS320C54X, Pine, Oak,… Composants de traitement spécialisés Cryptographie, traitement d’images, multimédia : JPEGcodec, MPEGdecoder. Contrôleurs mémoire et bus : SDRAM, USB, PCI, UART,AMBA Réseaux : ATM, Ethernet Pointeurs : IP commerciales www.design-reuse.com IP « libres » www.opencore.org Ack IP2 Bus avec Arbitrage cours sur les communications…. Problème: IP1 et IP2 veulent utiliser en même temps le bus pour accéder à IP3 Data Adresse contrôle IP1 IP2 IP3 Les requêtes sont adressées à l’arbitre de bus qui alloue le bus (e.g. suivant une priorité) Data Adresse contrôle IP1 IP2 Arbitre de bus IP3 IP1 et IP2 des maitres (e.g. CPUs) IP3 est un esclave (e.g. Périphérique) 6 12/10/2012 Bus pour l‘embarqué Les constructeurs de SOC s’orientent depuis quelques années vers l’utilisation de bus génériques : protocoles de transferts de données bien définis. Les grands acteurs du système sur puce emploient ce type d’architecture avec chacun une solution propriétaire : Core Connect d’IBM, AMBA d’ARM, AVALON d’ALTERA, WHISBONE d’openCores Exemple la proposition AMBA de ARM : Advanced Microcontroller Bus Architecture Bus AMBA Bus Système : AHB ou ASB bus rapide, multi-maître, transferts pipelines ou en mode burst, priorité sur les transferts RAM On chip ARM Bus AHB DMA Bus Périphérique : APB bus adapté à la connexion de périphériques “lents”, non-pipeline, pas de priorité, optimisé en consommation Bridge UART Interfaces entre bus : Bridges Timer GPIO Bus APB Conclusion Concevoir les architectures embarquées à partir des composants les mieux adaptés vis à vis des traitements à exécuter Objectifs : performances, consommation, time-to-market Hétérogénéité et évolution des composants : microcontroleur, DSP, ASSP, ASIP Des constructeurs proposent des architectures mixtes Optimiser l’organisation et l’utilisation de la mémoire des composants La mémoire sur le composant : rapide mais coûteuse en surface Défaut de cache : consomme environ 6 fois plus d’énergie qu’une opération ALU Accès en mémoire externe au composant : moins cher mais plus lent et plus coûteux en énergie 7