[email protected] Version 2013 ARCHITECTURE EMBARQUÉE ET PROCESSEURS RISC Architecture enfouis 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 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 Complémentarité HW/SW 100% SW Contraintes physiques performance XXX consommation XXX intégration XX Cout de production Contraintes économique du produit XXX XXX (si fort volume de production) flexibilité XX Protection industrielle Contraintes économique du développement 100% HW XXX Cout de développement XX Cout de production XX Prise de risque XXX Exemple de SOC Exemple de répartition HW/SW Très grandes diversité des composants Les systèmes embarqués deviennent de plus en plus complexes. Grande variété de composants disponibles : Cœurs de processeurs 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) Intellectuel property (IP) ASIP et ASSP ASIP : Application Specific Instruction set Processor 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 ASSP : Application Specific Standard Product Composant complexe qui réalise une fonction spécifique (compression vidéo, modem) ASSP et interface standardisée : IP PROCESSEUR RISC 9 Jeu d’instructions Ensemble des commandes primitives que le programmeur peut utiliser sur une machine. Deux écoles RISC et CISC. 10 Critères La complexité du jeu d'instruction 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. 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 12 Conséquences Un grand nombre de registres 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. 13 Apparition des RISC Premier article en 1980 (Patterson et Ditzel) Implantation sur un seul chip Temps de conception réduit Horloge rapide Meilleur utilisation du VLSI 14 Première réalisation Papier de MIPS en 1983 Introduction du pipeline et du multiple unités fonctionnelles Premier prototype en 1985 15 Propriétés Architecture Load/store avec un ensemble de registres orthogonal Simples modes d’adressage Contrôle des délais de pipeline 16 Succès des RISC Horloge rapide (temps/cycle) Peu de cycles par instruction : par le fonctionnement pipeline (cycle/inst) Faible augmentation du nombre d’instructions par tâche : optimisation du compilateur (inst/tâche) 17 Approches de mise en oeuvre IBM / Standford Un ensemble de registre unique 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 18 Appel de procédure Diminuer le coût de l’appel de procédure Passage de paramètres Sauvegarde des registres Adresse de retour 19 Fenêtre de registres Un grand nombre de registres Seul un sous ensemble est visible à un instant donné (par ex 32) Chaque ensemble est divisé en groupes. Pointeur de fenêtre courante CWP 20 Groupes de registres R31 Paramètres reçus R26 R25 Variables locales 6 10 R16 R15 R10 R9 Paramètres envoyés Variables globales R0 6 10 21 Recouvrement des fenêtres n-1 26-31 "n 16-25 n 0-9 10-15 26-31 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 22 Fonctionnement 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 23 Allocation des registres Les instructions RISC sont registre à 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 24 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; 25 Les processeurs embarqué RISC Processeurs embarqués RISC et mémoire cache : recherche de compromis Les processeurs de traitement du signal 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 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) Usage et format des IPs Les fournisseurs d’IPs Sociétés d’études et de conception 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,… 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 SoC : ensemble d’unités interconnectées 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: Contrôle (Q bits) - Des drivers de courants de l’IP - Des dimensions des fils - Du nombre d’IPs sur le bus Synchrone ou asynchrone 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 IP1 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 IP3 IP1 et IP2 des maitres (e.g. CPUs) IP3 est un esclave (e.g. Périphérique) Arbitre de bus 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 Timer GPIO Bus APB Interfaces entre bus : Bridges 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