La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le processeur Xtensa de Tensilica: paramétrage et extensibilité

Présentations similaires


Présentation au sujet: "Le processeur Xtensa de Tensilica: paramétrage et extensibilité"— Transcription de la présentation:

1 Le processeur Xtensa de Tensilica: paramétrage et extensibilité
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

2 Survol de la présentation
Introduction Paramétrage Boutisme: petit ou grand Instructions supplémentaires Interruptions et exceptions Mémoire interne Protection de mémoire Autres options Extension TIE FLIX Entrées/sorties INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

3 Processeurs configurables – rappel
Trois aspects: 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. attention: la distinction est parfois floue entre paramétrage et extensibilité …. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

4 Xtensa LX2, vue d’ensemble
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com

5 Flot de configuration du Xtensa
‘configuration’ = paramétrage S. Leibson, « Designing SOCs with configured cores », © Elsevier, 2006 sur le serveur de Tensilica INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

6 Sommaire des instructions de base (rappel)
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

7 Survol de la présentation
Introduction Paramétrage Boutisme: petit ou grand Instructions supplémentaires Interruptions et exceptions Mémoire interne Protection de mémoire Autres options Extension TIE FLIX Entrées/sorties INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

8 Options de paramétrage
Pour ces options, l’utilisateur n’a le choix que de les activer ou non; la gamme des paramètres pouvant être choisis est limitée. Boutisme: petit ou grand Instructions supplémentaires Interruptions et exceptions Mémoire interne Protection de mémoire Autres options INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

9 Options de paramétrage
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

10 Options de paramétrage: instructions supplémentaires (1)
« Densité du code »: active l’encodage de certaines instructions sur 16 bits au lieu de 24 Tensilica inc., Xtensa architecture and performance © 2005 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

11 Options de paramétrage: instructions supplémentaires (2)
Accélération de boucles ajoute trois registres: pointeurs de première et dernière instruction de la boucle et compteur de boucle (32 bits) permet d’effectuer une boucle sans opérations de décrémentation, de comparaison et de branchement conditionnel k = 10; while (k != 0) { // instructions… k = k – 1; } INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

12 Options de paramétrage: instructions supplémentaires (3)
Multiplication 16 bits (entiers signés ou non) Multiplication 32 bits (entiers signés ou non) (attention: le code synthétisable ne spécifie pas comment la multiplication doit être réalisée …) Multiplication-accumulation de 16 bit avec accumulation sur 40 bits int produitscalaire(int a, int b, int N) { sommeproduits = 0; for (k = 0; k < N; k++) { sommeproduits += a[k] * b[k]; } return sommeproduits; INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

13 Options de paramétrage: instructions supplémentaires (4)
opérations arithmétiques diverses: saturation max de deux valeurs min de deux valeurs décalage pour normalisation extension du signe option booléennes 16 registres de 1 bit 13 instructions remplace le registre d’état habituel d’un processeur INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

14 Options de paramétrage: instructions supplémentaires (5)
unité à virgule flottante 16 registres à virgule flottante de 32 bits 38 opérations à simple précision (IEEE 754) registre d’état spécial (underflow, overflow, division par zéro, etc.) synchronisation pour multi-processeurs pour opérations atomiques INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

15 Options de paramétrage: interruptions et exceptions
désalignement d’accès à la mémoire ajout d’interruptions de niveau 1 ajout d’interruptions de niveau 2-6, et interruption non masquable interruptions périodiques (compteur de 32 bits) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

16 Options de paramétrage: mémoire interne
cache d’instructions (taille [largeur et longueur], type d’associativité, détection d’erreurs) cache de données (taille [largeur et longueur], type d’associativité, détection d’erreurs) RAM et ROM d’instructions (taille [largeur et longueur], détection d’erreurs) RAM et ROM de données (taille [largeur et longueur], type d’associativité, détection d’erreurs) accès direct à un périphérique (XLMI) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

17 Options de paramétrage: protection de mémoire
protection de mémoire pour modes superviseur et utilisateur gestion de mémoire virtuelle et pagination pour supporter l’exécution de code de système d’exploitation INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

18 Options de paramétrage: autres options
nombre de registres physiques (32 ou 64) interface au bus du processeur (PIF) registres spéciaux utilisateur registre pour gestion des processus légers registre d’identification du processeur débogage et observation du processeur INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

19 Survol de la présentation
Introduction Paramétrage Boutisme: petit ou grand Instructions supplémentaires Interruptions et exceptions Mémoire interne Protection de mémoire Autres options Extension TIE FLIX Entrées/sorties INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

20 Extensions du processeur
Tensilica Instruction Extension (TIE) ajout d’instructions spécialisées ajout d’états (registres de contrôle) ajout de blocs de registres FLIX Entrées-sorties INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

21 Tensilica Instruction Extension (TIE)
But fondamental: ajouter des instructions sur mesure au processeur Nécessite un effort supplémentaire, donc il faut réserver cette approche aux parties problématiques de l’application: le profilage est essentiel. (Attention à la loi d’Amdhal!) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Tensilica inc., TIE Language User’s Guide, © 2007

22 TIE: principes de base Description de l’opération ou la structure matérielle dans un langage similaire à Verilog. L’opération peut ensuite être appelée du code C ou par une commande en assembleur. On peut ‘facilement’ obtenir un estimé de performance et de coût en surface. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

23 TIE: exemple inversion du boutisme d’un mot
se compile en 9 instructions une seule nouvelle instruction: byteswap ax, ay (assembleur) unsigned int byteswap(unsinged int arg1) (en C) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

24 TIE: flot de design (1): description fonctionnelle
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Tensilica inc., TIE Language User’s Guide, © 2007

25 TIE: flot de design (2): métriques de performance et de coût
attention: ‘optimize’ est utilisé à toutes les sauces INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Tensilica inc., TIE Language User’s Guide, © 2007

26 TIE: flot de design (3): implémentation du processeur
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Tensilica inc., TIE Language User’s Guide, © 2007

27 Tensilica Instruction Extension (TIE): impact sur la performance
Attention! Le fait d’ajouter des structures matérielles dans le pipeline du processeur peut très bien allonger le chemin critique et réduire la fréquence maximale d’horloge. Rappel: Tensilica inc., TIE Language User’s Guide, © 2007 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

28 FLIX: principes (1) Flexible-length instruction extensions
Version modifiée d’une architecture VLIW (Very Long Instruction Word) Le compilateur reconnaît les instructions pouvant être exécutées en parallèle et les combine en un très grand mot Les instructions sont lancées en parallèle et exécutées par des composantes distinctes, simultanément. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

29 FLIX: principes (2) INF8505: processeurs embarqués configurables
Tensilica inc., FLIX: Fast Relief for Performance-Hungry Embedded Applications, © 2005 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

30 Extension des entrées/sorties (1)
Deuxième unité de chargement/entreposage INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com

31 Extension des entrées/sorties (2)
Ports et files d’attente INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com

32 Xtensa LX2, vue d’ensemble
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel tensilica.com

33 Il y a trop de choix! Tensilica propose d’utiliser (ahem, acheter) un processeur pré-configuré, un « Diamond Core » 108Mini: usage général (!), minimal 212GP: usage général(!) , rapide, caches 232L: 212GP + MMU (Linux) 570T: 3-superscalaire 330HiFi: applications audio 545CK: processeur pour le traitement du signal, 3-superscalaire, SIMD, 8 MACs à 16 bits, etc . INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

34 Références utiles Xtensa Instruction Set Architecture Reference Manual (isa_rm.pdf) Xtensa TIE Language User’s Guide (tie_ug.pdf) Xtensa TIE Language Reference Manual (tie_rm.pdf) INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel


Télécharger ppt "Le processeur Xtensa de Tensilica: paramétrage et extensibilité"

Présentations similaires


Annonces Google