L’architecture du processeur Xtensa de Tensilica INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Processeurs configurables – pourquoi? (rappel) (1) Les processeurs sont au cœur de la plupart des applications embarquées à cause de la facilité relative de décrire un système en logiciel. La conception et la vérification d’un processeur sont des tâches complexes. Les processeurs traditionnels sont fixes: ils sont à prendre ou à laisser. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Processeurs configurables – pourquoi? (rappel) (2) Pour une application avec des contraintes de performance, de surface et de consommation de puissance exigeantes, on a besoin d’un ASIP (Application Specific Instruction-set Processor) Pour concevoir le ASIP, on aimerait pouvoir particulariser un processeur existant: processeur paramétrable: a une configuration de base, et on peut activer ou particulariser certaines caractéristiques comme des multiplicateurs, unités à point flottant, caches, nombre de registres, largeur de bus, etc. processeur extensible: a une configuration de base, et on peut modifier son jeu d’instructions, lui ajouter des blocs fonctionnels, des interfaces, etc. on a besoin d’outils de design (compilateur, assembleur, débogueur, simulateur, profileur) qui s’adaptent au paramètres choisis et aux extensions apportées. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Pourquoi parler de l’architecture du Xtensa en INF8505? (1) Il est pertinent d’étudier en détails une architecture de processeur configurables disponible sur le marché: Pour mieux comprendre les enjeux lors de la conception d’un processeur configurable Pour nous inspirer pour nos propres architectures Plusieurs compagnies offrent des processeurs configurables et outils: Altera (altera.com) « the pioneer of programmable logic solutions »: Nios II ARC (arc.com) « the world leader in configurable processor technology »: ARC 600, 700, etc. Derivation Systems (derivation.com) « a leading developer of formal verification systems »: LavaCORE Gaisler Research (gaisler.com) : LEON Target (retarget.com) « one of the pioneers of configurable processor technology » : outils Chess, Bridge, Darts, Checkers, Go, Risk. Tensilica (tensilica.com) « the leader and major innovator in configurable processor technology »: Xtensa Toshiba Semiconductor (www.semicon.toshiba.co.jp): MeP Xilinx (xilinx.com) « the worldwide leader of programmable logic solutions »: MicroBlaze INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Pourquoi parler de l’architecture du Xtensa en INF8505? (2) À Polytechnique nous avons accès aux outils de Tensilica. Dans les labos de INF8505, on utilise le Xtensa. On pourrait dire que le Xtensa est le plus populaire; il y a aussi des différences importantes avec les produits de Xilinx et d’Altera. Le Xtensa est intéressant parce qu’il offre les trois caractéristiques d’un processeur configurable: processeur paramétrable: a une configuration de base, et on peut activer ou particulariser certaines caractéristiques comme des multiplicateurs, unités à point flottant, caches, nombre de registres, largeur de bus, etc. processeur extensible: a une configuration de base, et on peut modifier son jeu d’instructions, lui ajouter des blocs fonctionnels, des interfaces, etc. on a besoin d’outils de design (compilateur, assembleur, débogueur, simulateur, profileur) qui s’adaptent au paramètres choisis et aux extensions apportées. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Xtensa LX2, vue d’ensemble INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com
L’Xtensa suit une architectures RISC: caractéristiques fondamentales Jeu d’instructions registre-registre (références à la mémoire avec chargement et sauvegarde seulement). Instructions à trois opérandes (2 sources et une destination). Grand bloc de registres à usage général. Pipeline menant à un débit de une instruction par cycle. Taille des instructions variable: 24 ou 16 bits (fixe à 32 bits habituellement pour RISC) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Bloc des registres du Xtensa Nombre fixe de 16 donc les instructions nécessitent 12 bits pour spécifier les trois opérandes Largeur fixe de 32 bits Utilisation de fenêtrage: un total de 32 ou 64 registres peuvent exister dans le processeur Un registre spécial distinct est utilisé pour spécifier les décalages – SAR (Shift Amount Register) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Fenêtrage du bloc des registres (1) Un nombre fixe de registres physiques existent. Une procédure n’a accès qu’à un sous ensemble de registres contigus. Lors d’un appel de procédure, la fenêtre de registres est décalée partiellement de façon à chevaucher la fenêtre précédente. Les registres partagés sont utilisés pour passer des paramètres et retourner des résultats. Si un grand nombre d’appels fait déborder la fenêtre, une exception est lancée et les registres sont alors sauvegardés sur la pile lors d’un appel de procédure. S. Leibson, « Designing SOCs with configured cores », © Elsevier, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Fenêtrage du bloc des registres (2) Le décalage de la fenêtre d’un appel à l’autre est spécifié par les 2 bits les plus significatifs de l’adresse: 0, 4, 8 ou 12 positions. Les appels de fonctions peuvent donc se faire uniquement à l’intérieur d’un espace de 1 Go (230). S. Leibson, « Designing SOCs with configured cores », © Elsevier, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Espace mémoire Architecture Harvard (mémoires des instructions et des données séparées). Options configurables: Mémoires locales Largeurs des bus aux mémoires INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Boutisme (Endianness) (1) On peut configurer le processeur en mode petit-boutiste (little endian) ou gros-boutiste (big-endian) S. Leibson, « Designing SOCs with configured cores », © Elsevier, 2006 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Boutisme (Endianness) (2) Exemple avec les nombres: le français s’écrit de gauche à droite, et les nombres sont écrits en mode petit-boutiste: les chiffres de poids forts sont écrits en premier l’arabe s’écrit de droite à gauche, et les nombres sont écrits en mode grand-boutiste: les chiffres de poids forts sont écrits en dernier et le résultat est le même! Exemple avec les dates: 2008/01/21: mode petit-boutiste 21/01/2008: mode grand-boutiste INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Boutisme (Endianness) (3) Le boutisme a surtout un impact concernant la lecture et l’écriture de la mémoire, en passant par exemple d’un registre de 32 bits à une mémoire à 8 bits. Différents formats de fichiers observent un boutisme différent: GIF, TGA: petit-boutistes JPEG, photoshop: grand-boutistes INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Catégories d’instructions Chargement de et entreposage vers la mémoire Branchements Déplacements entre registres (option conditionnelle) Opérations logiques et arithmétiques: add, sub, neg, abs, and, or, xor (combinaison avec décalages) Décalages INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Modes d’adressage Valeurs immédiates Directe (registre) Indirecte (registre) avec index Pas de post- ou pré- incrémentation ou décrémentation Opérations combinées (e.g. addition avec décalage) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Sommaire des instructions chargements et signés ou non (8, 16) ou de 32 bits entreposages branchements instructions combinées: comparaison et branchement déplacements entre registres option conditionnelle arithmétique de base addition et décalage combinés logique de base décalages utilisation d’un registre spécial autres Tensilica inc., Xtensa ISA Reference Manual, © 2006
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Encodage des instructions (1) Les processeurs RISC ont habituellement une taille fixe d’instructions (par exemple 32 bits). Xtensa offre des instructions encodées sur 24 et certaines sur 16 bits (option de configuration). L’avantage est une réduction de la taille d’un programme (par au moins 25%, intéressant pour une application embarquée). Les instructions sur 16 bits sont les plus simples, load, store, add, etc. Le désavantage est que les instructions ne sont pas en général alignées avec les mots en mémoire, donc il est nécessaire d’effectuer un réalignement. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Encodage des instructions (2) 4 bits Tensilica inc., Xtensa architecture and performance © 2005 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Tensilica inc., Xtensa ISA Reference Manual, © 2006 Pipeline Pipeline à 5 niveaux montré ici; 7 niveaux possibles INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Tensilica inc., Xtensa ISA Reference Manual, © 2006
Survol de la présentation Introduction Vue d’ensemble et caractéristiques fondamentales Registres Mémoire et données Sommaire des instructions Encodage des instructions Pipeline Conclusion INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel
Xtensa LX2, vue d’ensemble INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com