INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.

Slides:



Advertisements
Présentations similaires
Eléments de Génie Logiciel
Advertisements

Test Intégré pour Convertisseurs Analogique/Numérique
People want to do X, but computers can only do Y. This leads to a problem. My job is to explain how this problem can be solved.
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Ing Mohamed MASMOUDI Cours VHDL Ing Mohamed MASMOUDI
Nous allons vous présenter: - Photoshop - Algorithme et programmation
Cours #9 Conception et réalisation de processeurs à usage général
Cours #6 Conception d’unités de contrôle
Le VHDL De nos jours, les circuits numériques de haute performance sont habituellement créés à partir de descriptions en langages de haut niveau. Nous.
Cours #8 Flot de conception d’un circuit numérique
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Électronique numérique Intervenants : Boitier V. / Perisse T.
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Présentation du mémoire
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Plan 1-Introduction. 2-Standard VHDL-AMS. Modélisations:
Cours #7 Vérification d’un modèle VHDL
Cours #5 Conception de chemins des données
COMPOSANTS PROGRAMMABLES
L’approche MAD* Par Sabrina Dubé-Morneau
Langage de modélisation graphique de systèmes
Introduction Un test sur les tests Ce que n’est pas le test
Informatique 1. Les applications de l’informatique
ANALYSE METHODE & OUTILS
Modélisation VHDL d’un chemin des données
Paradigmes des Langages de Programmation
Décodeurs et encodeurs : sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Le VHDL : SOMMAIRE I Introduction II Éléments généraux du langage
Chapitre 2: COMMUNICATION TECHNIQUE
Banc d’essai pour un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Synthèse d’un circuit.
Modélisation VHDL du chemin des données d’un processeur à usage général Sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Description d’un circuit.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Bonnes pratiques de.
Processeurs et chemins des données
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
Objectifs de vérification logiciels GEF492A 2014 Référence: [HvV §14.1] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et génie.
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
Méthodologie de conception Outils de conception
Architecture des ordinateurs cours 3 Micro-instructions et unité de contrôle, langage machine, langage d’assemblage, modes d’adressage Agata Savary, IUT.
Conception de processeurs – partie 1
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Processeurs configurables et traitement numérique des signaux
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Bienvenue.
Créer des packages.
INF8505: processeurs embarqués configurables
Un survol du language C.
Les systèmes mono-puce
Concepts intermédiaires de VHDL
L’architecture du processeur Xtensa de Tensilica
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Synthèse et implémentation d’un circuit combinatoire
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
Introduction au Génie Logiciel
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
Introduction au VHDL - R.WEBER - Polytech'Orleans
Steven Derrien Équipe R2D2
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Chemin des données d’un.
Implémentation de la division sur FPGA
VHDL pour circuits séquentiels
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
PROJET CAPS Compilation, Architecture, Processeurs Superscalaires et Spécialisées.
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel ASIP Design and Synthesis for Non Linear Filtering in.
ARPO: architecture des processeurs superscalaires,VLIW et optimisation André Seznec et François Bodin.
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
Transcription de la présentation:

INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale

Pourquoi parler de langages de description architecturale en INF8505?  La conception d’un processeur embarqué configurable est une tâche difficile.  On a besoin d’un mécanisme de description et modélisation du processeur afin de pouvoir:  expérimenter avec différentes options et obtenir des métriques de performance attendues;  produire une description synthétisable du processeur;  développer automatiquement des outils de support pour le processeur (vérification, compilation, débogage).  Les langages de programmation et les langages de description matérielle sont mal adaptés à la modélisation de processeurs.  Les langages de description architecturale (ADL) viennent combler ce vide. 2 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Survol de la présentation  Un exemple pour commencer  Langages de description architecturale (Architecture Description Languages – ADL): origines et besoins  ADL: exploration de l’espace de conception et vérification  Taxonomie des ADL et exemples:  ADL structurels;  ADL comportementaux;  ADL mixtes.  ADL LISA: un peu plus  Résumé, conclusion, références 3 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Exemple de description d’un processeur (0)  Considérons le problème de description d’un processeur pour une application embarquée.  Supposons qu’on adopte un modèle de processeur à usage général.  On veut pouvoir varier plusieurs paramètres et observer la performance et le coût dans chaque cas.  Supposons qu’on parte de rien (contrairement à utiliser un environnement comme celui offert par Tensilica). 4 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Exemple de description d’un processeur (1)  La description d’un processeur peut être divisée en deux parties:  le chemin des données; et,  l’unité de contrôle.  Le chemin des données comprend les registres et les unités fonctionnelles.  L’unité de contrôle détermine les opérations et micro-opérations à effectuer en fonction du programme. 5 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Exemple de description d’un processeur (2)  Pour la spécification du processeur via son jeu d’instructions, on doit en général considérer en premier son chemin des données. Celui-ci contient trois parties principales:  le bloc des registres;  l’unité fonctionnelle (e.g., UAL); et,  l’accès à la mémoire des données. 6 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Exemple de description d’un processeur (3)  Une possibilité pour décrire un processeur est d’utiliser un langage de description matérielle comme VHDL.  Par exemple, la description d’un bloc des registres peut se faire comme suit: 7 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel -- dans la partie déclarative de l’architecture type lesRegistres_type is array(0 to Nreg - 1) of signed(Wd - 1 downto 0); signal lesRegistres : lesRegistres_type; signal A : signed(Wd - 1 downto 0); signal choixA : integer range 0 to Nreg - 1; signal B : signed(Wd - 1 downto 0); signal choixB : integer range 0 to Nreg - 1; signal donnee : signed(Wd - 1 downto 0); signal choixCharge : integer range 0 to Nreg - 1; signal charge : std_logic; -- dans le corps de l’architecture process (CLK, reset) begin if rising_edge(CLK) then if reset = '1' then lesRegistres (others => '0')); else if charge = '1' then lesRegistres(choixCharge) <= donnee; end if; end process; -- signaux de sortie du bloc des registres A <= lesRegistres(choixA); B <= lesRegistres(choixB); sortieExterne <= B; À la place, on aimerait pouvoir écrire: « Je veux un bloc de 16 registres de 32 bits de type entiers-signés avec un port d’écriture et deux ports de lecture, et un signal de réinitialisation. »

Exemple de description d’un processeur (4)  Pour la partie fonctionnelle, la description en VHDL est plus efficace en termes du nombre de concepts représentés par ligne de code.  Il faut tout de même spécifier plusieurs détails, entre autre l’encodage numérique des opérations. 8 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel -- dans la partie déclarative de l’architecture signal F : signed(Wd - 1 downto 0); signal Z : std_logic; signal N : std_logic; signal op : integer range 0 to 7; -- dans le corps de l’architecture process(A, B, op) begin case op is when 0 => F <= A + B; when 1 => F <= A - B; when 2 => F <= shift_right(A, 1); when 3 => F <= shift_left(A, 1); when 4 => F <= not(A); when 5 => F <= A and B; when 6 => F <= A or B; when 7 => F <= A; when others => F 'X'); end case; end process;

Exemple de description d’un processeur (5)  Il faut (bien sûr) définir les instructions et les grouper par types.  Il faut spécifier leur encodage (on aimerait éviter d’avoir à le faire). 9 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel instructionbits 15-12bits 11-8bits 7-4bits 3-0 R dest ← R source1 ◊ R source2 {0|op 2 |op 1 |op 0 }destinationsource1source2 R dest ← MD[adresse]1000destinationadresse[7:4]adresse[3:0] MD[adresse] ← R source 1001sourceadresse[7:4]adresse[3:0] JUMP adresse1100conditionadresse[7:4]adresse[3:0] STOP

Exemple de description d’un processeur (6)  Les choses se gâtent quand vient le temps de décrire le cycle des instructions. 10 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel -- dans la partie déclarative de l’architecture type type_etat is (depart, querir, decoder, stop, ecrireMemoire, lireMemoire, opUAL, jump); signal etat : type_etat; signal PC : integer range 0 to (2 ** Mi - 1); -- compteur de programme signal IR : std_logic_vector(Wi - 1 downto 0); -- registre d'instruction -- dans le corps de l’architecture process (CLK, reset) begin if rising_edge(CLK) then if reset = '1' then etat <= depart; else case etat is when depart => PC <= 0; etat <= querir; when querir => IR <= memoireInstructions(PC); PC <= PC + 1; etat <= decoder; when decoder => if (IR(15) = '0') then etat <= opUAL; else case IR(14 downto 12) is when "000" => etat <= lireMemoire; when "001" => etat <= ecrireMemoire; when "100" => etat <= jump; when "111" => etat <= stop; when others => etat <= stop; end case; end if; when opUAL | lireMemoire | ecrireMemoire => -- etc. … end case; end if; end process;

Exemple de description d’un processeur (7)  En plus, il faut faire explicitement l’assignation de valeurs aux différents signaux de contrôle à l’aide d’énoncés concurrents  Les signaux de contrôle dépendent soit de l’état courant de la machine, de la valeur du registre des instructions, ou des deux. 11 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel adresseMemoireDonnees <= to_integer(unsigned(IR(7 downto 0))); lectureEcritureN <= '0' when etat = ecrireMemoire else '1'; choixSource <= 0 when etat = opUAL else 3; choixCharge <= to_integer(unsigned(IR(11 downto 8))); choixA <= to_integer(unsigned(IR(7 downto 4))); choixB <= to_integer(unsigned(IR(11 downto 8))) when etat = ecrireMemoire else to_integer(unsigned(IR(3 downto 0))); charge <= '1' when etat = opUAL or etat = lireMemoire else '0'; op <= to_integer(unsigned(IR(14 downto 12)));

Exemple de description d’un processeur (8)  On pourrait aussi utiliser un langage de haut niveau comme C, mais alors il est difficile (voir impossible) de modéliser la concurrence dans le processeur. 12 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Jeu d’instructions vs microarchitecture vs réalisation  Architecture du jeu d’instructions (Instruction Set Architecture – ISA)  Le contrat avec le programmeur et le compilateur.  Définit l’apparence fonctionnelle du processeur  Opérations, types de données, modes d’adressage, registres visibles, etc.  Implémentation ou microarchitecture  Point de vue du concepteur du processeur  Circuits logiques qui implémentent l’architecture  Pipelines, unités fonctionnelles, registres physiques  Réalisation  Point de vue du concepteur de circuit ou de la puce  Réalisation physique des circuits logiques  Portes, cellules, transistors, fils, etc. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel 13

Survol de la présentation  Un exemple pour commencer  Langages de description architecturale (Architecture Description Languages – ADL): origines et besoins  ADL: exploration de l’espace de conception et vérification  Taxonomie des ADL et exemples:  ADL structurels;  ADL comportementaux;  ADL mixtes.  ADL LISA: un peu plus  Résumé, conclusion, références 14 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

ADL: origines  Le concept d’ADL existe dans le domaine du logiciel depuis un certain temps (voir références à la fin).  Le terme architecture réfère au composantes du système:  leur comportement; et  leurs interactions.  L’architecture d’un système est souvent représentée par un diagramme de blocs. Un ADL vient formaliser la représentation.  Quelques besoins pour un ADL:  représenter les composantes du système;  représenter leurs interconnexions;  exploiter l’abstraction et l’encapsulation;  représenter le comportement dynamique;  permettre la production d’outils ou d’autres artéfacts à partir de la description. 15 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

ADL et autres langages  Pour un ADL qui décrit un processeur, on devrait pouvoir représenter:  les composantes du processeur;  leurs interconnexions;  le comportement du processeur via son jeu d’instructions.  La différence entre les ADL et les autres langages vient surtout:  du niveau d’abstraction désiré:  trop haut: on a le comportement global du système, mais pas de ses composantes;  trop bas: on est perdu dans les détails (e.g. VHDL).  de la possibilité d’illustrer la concurrence et la synchronisation. 16 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufmann, 2007.

Besoin pour des ADL  On a besoin d’un mécanisme de description et modélisation du processeur afin de pouvoir:  expérimenter avec différentes options et obtenir des métriques de performance et de coût;  produire une description synthétisable du processeur;  développer automatiquement des outils de support pour le processeur (vérification, compilation, simulation, débogage).  Les langages de programmation et les langages de description matérielle sont mal adaptés à la modélisation de processeurs.  Un ADL devrait:  permettre de décrire un processeur du plus haut niveau possible; et,  offrir une corrélation claire et directe entre la spécification et la description. 17 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

À quoi servent les ADL  Décrire un processeur n’est pas un but en soi. On a besoin:  d’une liste des interconnexions (netlist) afin de pouvoir implémenter le processeur en matériel;  de vérifier que la description est conforme aux spécifications;  des outils de développement: compilateur, simulateur, assembleur, débogueur. 18 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufmann, 2007.

Jeu d’instructions vs microarchitecture vs réalisation  Architecture du jeu d’instructions (Instruction Set Architecture – ISA)  Le contrat avec le programmeur et le compilateur.  Définit l’apparence fonctionnelle du processeur  Opérations, types de données, modes d’adressage, registres visibles, etc.  Implémentation ou microarchitecture  Point de vue du concepteur du processeur  Circuits logiques qui implémentent l’architecture  Pipelines, unités fonctionnelles, registres physiques  Réalisation  Point de vue du concepteur de circuit ou de la puce  Réalisation physique des circuits logiques  Portes, cellules, transistors, fils, etc. INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel 19

Survol de la présentation  Un exemple pour commencer  Langages de description architecturale (Architecture Description Languages – ADL): origines et besoins  ADL: exploration de l’espace de conception et vérification  Taxonomie des ADL et exemples:  ADL structurels;  ADL comportementaux;  ADL mixtes.  ADL LISA: un peu plus  Résumé, conclusion, références 20 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Exploration de l’espace de conception avec un ADL  Un processus de conception itératif peut être suivi à l’aide:  d’une description d’un processeur avec un ADL;  d’outils d’interprétation de la description pour produire des modèles et outils de conception et d’évaluation. 21 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufmann, 2007.

Flot de vérification avec un ADL (1)  À partir d’une spécification, on produit la description du processeur avec un ADL (idéalement: la même chose).  Il faut vérifier que la description correspond bien à la spécification.  À partir de la description, on produit le simulateur, la liste des interconnexions et des cas de test.  La liste des interconnexions est implémentée.  Le système implémenté est comparé à la liste des interconnexions, tout en vérifiant des propriétés spécifiques.  Les vecteurs de test sont appliqués au simulateur ainsi qu’au système implémenté, et on vérifie que la sortie est la même dans les deux cas.  On observe qu’on a effectivement deux chemins à partir de la description du processeur en ADL. 22 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufmann, 2007.

Flot de vérification avec un ADL (2) 23 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufmann, 2007.

Survol de la présentation  Un exemple pour commencer  Langages de description architecturale (Architecture Description Languages – ADL): origines et besoins  ADL: exploration de l’espace de conception et vérification  Taxonomie des ADL et exemples:  ADL structurels;  ADL comportementaux;  ADL mixtes.  ADL LISA: un peu plus  Résumé, conclusion, références 24 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Taxonomie des ADL  On peut classifier les ADL dans un espace à deux dimensions:  par le contenu: structurel, comportemental ou mixte;  par l’objectif: synthèse, validation, compilation, et simulation.  Pour la dimension du contenu, on détermine la nature de l’information capturée par l’ADL.  Pour la dimension de l’objectif, on détermine le produit principal obtenu de la description par ADL.  Il y a une certaine correspondance entre le contenu et l’objectif. 25 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel classification des ADL contenu structurelmixtecomportemental objectif synthèse MIMOLA LISA, EXPRESSION ? validation compilation ?ISDL, nML simulation

ADL structurels  Les ADL structurels représentent un processeur à un niveau proche du transfert par registre (Register Transfer Level – RTL).  Il est relativement facile d’obtenir une liste d’interconnections à partir d’une description en langage structurel.  Il est difficile d’obtenir le jeu d’instructions à partir de la structure.  Exemple: MIMOLA (Université Dortmund, début des années 1990):  grandes similarités avec VHDL et Verilog, syntaxe inspirée de Pascal. 26 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LOCATION_FOR_PROGRAMCOUNTER PCReg; LOCATION_FOR_INSTRUCTIONS IM[ ];... MODULE Alu (IN i1, i2: (15:0); OUT outp: (15:0)); IN ctr: (1:0)); CONBEGIN outp <− CASE ctr OF 0: i1 + i2 ; 1: i1 - i2 ; 2: i1 AND i2 ; 3: i1 ; END AFTER 1; CONEND;... CONNECTIONS ALU.outp -> ACC.inp ACC.outp -> ALU.inp

ADL structurels: exemple Mimola détaillé (1) 27 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel MODULE SimpleProcessor (IN inp:(7:0); OUT outp:(7:0)); STRUCTURE IS -- outermost module is a structural one TYPE InstrFormat = FIELDS bit horizontal instruction word imm: (20:13); RAMadr: (12:5); RAMctr: (4); mux: (3:2); alu: (1:0); END; Byte = (7:0); Bit = (0); -- scalar types PARTS -- instantiate behavioral modules IM: MODULE InstrROM (IN adr: Byte; OUT ins: InstrFormat); VAR storage: ARRAY[0..255] OF InstrFormat; CONBEGIN ins <- storage[adr]; CONEND; PC, REG: MODULE Reg8bit (IN data: Byte; OUT outp: Byte); VAR R: Byte; CONBEGIN R := data; outp <- R; CONEND; PCIncr: MODULE IncrementByte (IN data: Byte; OUT inc: Byte); CONBEGIN outp <- INCR data; CONEND;

ADL structurels: exemple Mimola détaillé (2) 28 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel RAM: MODULE Memory (IN data, adr: Byte; OUT outp: Byte; FCT c: Bit); VAR storage: ARRAY[0..255] OF Byte; CONBEGIN CASE c OF: 0: NOLOAD storage; 1: storage[adr] := data; END; outp <- storage[adr]; CONEND; ALU: MODULE AddSub (IN d0, d1: Byte; OUT outp: Byte; FCT c: (1:0)); CONBEGIN -- "%" denotes binary numbers outp <- CASE c OF %00: d0 + d1; %01: d0 - d1; %1x: d0; END; CONEND; MUX: MODULE Mux3x8 (IN d0,d1,d2: Byte; OUT outp: Byte; FCT c: (1:0)); CONBEGIN outp <- CASE c OF 0: d0; 1: d1; ELSE: d2; END; CONEND; CONNECTIONS -- controller: -- data path: PC.outp -> IM.adr; IM.ins.imm -> MUX.d0; PC.outp -> PCIncr.data; inp -> MUX.d1; -- primary input PCIncr.outp -> PC.data; RAM.outp -> MUX.d2; IM.ins.RAMadr -> RAM.adr; MUX.outp -> ALU.d1; IM.ins.RAMctr -> RAM.c; ALU.outp -> REG.data; IM.ins.alu -> ALU.c; REG.outp -> ALU.d0; IM.ins.mux -> MUX.c; REG.outp -> outp; -- primary output END; LOCATION_FOR_PROGRAMCOUNTER PC; LOCATION_FOR_INSTRUCTIONS IM; END; -- STRUCTURE

ADL comportementaux  Les ADL comportementaux représentent directement le jeu d’instructions du processeur et ignorent les ‘détails’ structurels.  En pratique, il faut quand même fournir un minimum d’information structurelle, comme par exemple le nombre de registres et la taille des mémoires.  Exemple: nML (Université Technique de Berlin, début des années 1990). 29 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel op num_instruction(a:num_action, src:SRC, dst:DST) action { temp_src = src; temp_dst = dst; a.action; dst = temp_dst; } op num_action = add | sub | mul | div op add() action = { temp_dst = temp_dst + temp_src }...

ADL mixtes  Les ADL mixtes représentent à la fois la structure et le comportement du processeur.  Exemple: LISA (Language for Instruction Set Architectures), développé à l’Université Technique de Aachen, au milieu des années  «The development of a new language was necessary in order to cover the gap between coarse ISA models used in compilers, and instruction-set simulators on the one hand, and detailed models used for hardware design on the other.» Zivojnovic et al., INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

Survol de la présentation  Un exemple pour commencer  Langages de description architecturale (Architecture Description Languages – ADL): origines et besoins  ADL: exploration de l’espace de conception et vérification  Taxonomie des ADL et exemples:  ADL structurels;  ADL comportementaux;  ADL mixtes.  ADL mixte LISA: un peu plus  Résumé, conclusion, références 31 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

LISA: un peu plus (1)  Le comportement du processeur est défini par:  son état interne;  les fonctions de transition entre les états; et,  les entrées et sorties. 32 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel

LISA: un peu plus (2)  Le langage décrit:  les éléments d’entreposage; et,  le comportement des instructions à exécuter. 33 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (3)  Le jeu d’instructions est représenté par une hiérarchie dans un graphe acyclique dirigé. 34 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (4)  La définition d’une instruction comporte trois composantes:  la syntaxe;  l’encodage; et,  le comportement. 35 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (5)  Les ‘ressources’ du processeur incluent les registres et les ports d’entrées et sorties.  La déclaration des ‘ressources’ utilise des mots clés du langage, comme REGISTER et PROGRAM_COUNTER. 36 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (6)  La mémoire est déclarée avec entre autres les mots clés RAM et MEMORY_MAP. 37 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (7)  Les instructions sont décrites par les mots clés OPERATION, SYNTAX, CODING et BEHAVIOR. 38 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (8)  On peut déclarer une hiérarchie d’opérations, ce qui a pour effet de simplifier leur encodage. 39 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (9)  Il est possible de déclarer des opérandes génériques (qui peuvent provenir de n’importe quel registre). 40 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

LISA: un peu plus (10)  Il est possible de forcer le partage de ressources entre différentes opérations, comme par exemple LOAD et ALU qui écrivent toutes deux dans un registre. 41 INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel LISA Modeling Fundamentals, CoWare inc., Dec

Quelques références  P. Mishra et N. Dutt, « Architecture Description Languages », dans P. Ienne et R. Leupers, Customizable Embedded Processors, Morgan Kaufman,  Clements, P.C., "A survey of architecture description languages," Proceedings of the 8th International Workshop on Software Specification and Design, pp.16-25, March  W. Qin, S. Malik, « Architecture Description languages for retargetable compilation, » in The Compiler Design Handbook: Optimizations & Machine Code Generation, CRC Press, 2002, Y. N. Srikant and Priti Shankar, Editors. [en ligne par la bibliothèque]  Zivojnovic, V.; Pees, S.; Meyr, H., "LISA-machine description language and generic machine model for HW/SW co-design," Workshop on VLSI Signal Processing, pp , INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel