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

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
GEF 435 Principes des systèmes d’exploitation
Architecture de machines Le microprocesseur
Architecture de machines Les entrées sorties Cours
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Est Ouest Sud 11 1 Nord 1 RondeNE SO
Formation Technique 6èmepartie.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Architecture de réseaux
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Les éléments de mémorisation
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Améliorer les performances du chiffrage à flot SYND
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
le profil UML en temps réel MARTE
Gestion des Périphériques
Synchronisation et communication entre processus
Serveurs Partagés Oracle
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Architecture des Ordinateurs
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Partie 1: Ondes et Particules.
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
La Saint-Valentin Par Matt Maxwell.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
PLD GHome H4214 Piccolo Thomas Gu Lei Deville Romain Huang Yachen
Notre calendrier français MARS 2014
C'est pour bientôt.....
Veuillez trouver ci-joint
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Systèmes d’exploitation
CALENDRIER-PLAYBOY 2020.
1. Présentation générale du système
Gérer la sécurité des mots de passe et les ressources
LES PILES ET FILES.
Projet de stage d’année IIR4 sous le thème:
Notions de pointeurs en C
Processeurs et chemins des données
Optimisation des performances
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
Cours de Structure et Technologie des composants d’ordinateurs
Conception de processeurs – partie 1
Processeurs configurables et traitement numérique des signaux
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
INF8505: processeurs embarqués configurables
Un survol du language C.
L’architecture du processeur Xtensa de Tensilica
Évolution des (micro)processeurs et des systèmes embarqués
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) www.tensilica.com INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel