INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

Électronique de base du processeur
PC / Traitement numérique / Contrôle Environnement logiciel
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Fonctionnement de l'unité centrale (rappels ? de 1ère Année)
Plan du cours : 2ème Partie
Objectif de l’exposé.
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Chapitre 8 : L’architecture de base des ordinateurs
Exercices sur la conception de processeurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Décrire un circuit numérique avec VHDL
Cours #9 Conception et réalisation de processeurs à usage général
Architecture de base d’un ordinateur
Architecture et technologie des ordinateurs II
Cours #6 Conception d’unités de contrôle
Cours #12: Exercices de révision
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Cours #8 Flot de conception d’un circuit numérique
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
Cours #7 Vérification d’un modèle VHDL
Cours #5 Conception de chemins des données
Chap. 2 - Structure d’un ordinateur
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Modélisation VHDL d’un chemin des données
Décodeurs et encodeurs : sujets de ce thème
CORDIC Sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
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 La technique du pipeline.
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 Implémentation d’un.
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.
Synthèse et implémentation de circuits arithmétiques sur FPGA
Processeurs et chemins des données
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
J.-M. ADAM – D. BARDOU Fonctionnement de l'unité centrale.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Encodage du jeu d’instructions.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Arithmétique entière.
3-Présentation d’un µP simple
Concepts intermédiaires de VHDL
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
Synthèse et implémentation d’un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Simulation d’un modèle.
Rappel - analyse et synthèse de fonctions combinatoires
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Banc d’essai pour un.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Objets des catégories.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse détaillée du.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Chemin des données d’un.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Architecture et technologie des ordinateurs II
INFOR 101 Chapitre 5 Marianne Morris.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
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.
BEP Electronique - Systèmes microprogrammés
Patricia Renault UPMC 2005/2006
Chapitre 3 L’accès aux données.
Architecture des ordinateurs
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Formations Système Embarqué & Informatique Industrielle
Transcription de la présentation:

INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de l’unité de contrôle d’un processeur à usage général

INF3500 : Conception et implémentation de systèmes numériques Modélisation VHDL de l’unité de contrôle d’un processeur à usage général Rappel: architecture du processeur PolyRISC et son chemin des données Modélisation du compteur de programme Modélisation de la mémoire des instructions Modélisation de l’unité de branchement Modélisation du décodage 2

INF3500 : Conception et implémentation de systèmes numériques Le processeur à usage général PolyRISC 3

INF3500 : Conception et implémentation de systèmes numériques Unité de contrôle du processeur à usage général L’unité de contrôle dirige le chemin des données. Les composantes de l’unité de contrôle sont : – un compteur de programme (Program Counter – PC) qui pointe à la prochaine instruction à exécuter; – une mémoire des instructions contenant le programme à exécuter; – un module pour décoder l’instruction à exécuter, c’est-à-dire de dériver les signaux de contrôle du chemin des données à partir de l’instruction; – un module pour déterminer si un branchement a lieu ou non; – deux additionneurs pour calculer l’adresse de la prochaine instruction. 4

INF3500 : Conception et implémentation de systèmes numériques Encodage des instructions en mémoire Considérations pour le format des instructions et de leur encodage en mémoire – C’est un problème à plusieurs solutions possibles. – On favorise la régularité, ce qui simplifie le décodage et accélère le processeur. – L’encodage, le jeux d’instructions et les modes d’adressage sont intimement liés. Choix effectués ici: – Encodage sur un seul mot de 32 bits: chaque instruction s’exécute en un seul cycle. – Le mot d’instruction est divisé en 6 champs. – Modes d’adressage limités conformément à la philosophie RISC. 5 Instruction bits catégorie bits 29:26 détails bits 25:21bits 20:16bits 15:5bits 4:0 RC := RA ◊ RB00code de ◊RCRA-RB RC := RA ◊ valeur01code de ◊RCRAvaleur(15:0) si (RA ◊ RB) goto (CP + valeur) 10code de ◊RBRAvaleur(15:0) RC := MD[RA + valeur]110000RCRAvaleur(15:0) MD[RA + valeur] := RB110001RBRAvaleur(15:0)

INF3500 : Conception et implémentation de systèmes numériques -- dans la partie déclarative de l’architecture signal CP : integer range 0 to (2 ** Mi - 1); -- le compteur de programme -- dans le corps de l’architecture process (CLK, reset) begin if rising_edge(CLK) then if reset = '1' then CP <= 0; else if brancher = '1' then CP <= CP + instruction.valeur; else CP <= CP + 1; end if; end process; Compteur de programme 6

INF3500 : Conception et implémentation de systèmes numériques -- structure pour l'encodage d'une instruction type instruction_type is record categorie : natural range 0 to 3; details : natural range 0 to 15; reg1 : natural range 0 to Nreg - 1; reg2 : natural range 0 to Nreg - 1; valeur : integer range -2 ** (WImm - 1) to 2 ** (WImm - 1) - 1; end record; signal instruction : instruction_type; -- instructions prédéfinies constant NOP : instruction_type := (branchement, jamais, 0, 0, 0); constant STOP : instruction_type := (branchement, toujours, 0, 0, 0); -- mémoire des instructions et définition du programme type memoireInstructions_type is array (0 to 2 ** Mi - 1) of instruction_type; constant memoireInstructions : memoireInstructions_type := ( (reg_valeur, passeB, 2, 0, 0),-- R2 := 0; (reg_valeur, passeB, 0, 0, 12),-- R0 := 12; (reg_valeur, passeB, 1, 0, 7),-- R1 := 7; (reg, AplusB, 0, 0, 1), -- R0 := R0 + R1; (reg, AouxB, 1, 0, 1), -- R1 := R0 OUX R1; (reg_valeur, AplusB, 1, 1, -3),-- R1 := R1 - 3; (branchement, pgq, 2, 1, -1), -- si R1 > 0 (R2) goto -1; STOP, others => NOP ); Mémoire des instructions 7 Une instruction est définie comme une structure à 5 champs. La mémoire des instructions est définie dans la partie déclarative de l’architecture comme un tableau constant dans lequel on place les valeurs des instructions du programme. Instruction bits catégorie bits 29:26 détails bits 25:21bits 20:16bits 15:5bits 4:0 RC := RA ◊ RB00code de ◊RCRA-RB RC := RA ◊ valeur01code de ◊RCRAvaleur(15:0) si (RA ◊ RB) goto (CP + valeur)10code de ◊RBRAvaleur(15:0) RC := MD[RA + valeur]110000RCRAvaleur(15:0) MD[RA + valeur] := RB110001RBRAvaleur(15:0)

INF3500 : Conception et implémentation de systèmes numériques Unité de branchement -- dans la partie déclarative de l’architecture signal condition : natural range 0 to 7; constant egal : natural := 0; constant diff : natural := 1; constant ppq : natural := 2; constant pgq : natural := 3; constant ppe : natural := 4; constant pge : natural := 5; constant toujours : natural := 6; constant jamais : natural := 7; signal brancher : std_logic; signal condition : conditionBranchement_type; -- dans le corps de l’architecture process(Z, N, condition) begin case condition is when egal => brancher <= Z; when diff => brancher <= not(Z); when ppq => brancher <= N; when pgq => brancher <= not(N) and not(Z); when ppe => brancher <= N or Z; when pge => brancher <= not(N) or Z; when toujours => brancher <= '1'; when jamais => brancher <= '0'; end case; end process; 8 process (instruction) begin if (instruction.categorie = branchement) then condition <= instruction.details; else condition <= jamais; end if; end process;

INF3500 : Conception et implémentation de systèmes numériques instruction <= memoireInstructions(CP); process (instruction) begin -- pour le bloc des registres if (instruction.categorie = reg or instruction.categorie = reg_valeur or (instruction.categorie = memoire and instruction.details = lirememoire)) then chargeBR <= '1'; else chargeBR <= '0'; end if; choixCharge <= instruction.reg1; -- etc pour l'UAL if (instruction.categorie = reg or instruction.categorie = reg_valeur) then op_UAL <= instruction.details; elsif (instruction.categorie = branchement) then -- pour faire la comparaison entre les opérandes op_UAL <= AmoinsB; else -- lire et écrire la mémoire, calcul de l'adresse effective op_UAL <= AplusB; end if; -- etc.... Décodage 9 Le décodage des instructions produit les signaux de contrôle: du bloc des registres; de l’UAL; de l’unité de branchement; de la mémoire des données; et, du multiplexeur de l’entrée du bloc des registres.

INF3500 : Conception et implémentation de systèmes numériques Vous devriez maintenant être capable de … Donner un diagramme montrant les composantes et leurs connexions de l’unité de contrôle d’un processeur à usage général. (B2) Donner le code VHDL pour le compteur de programme, la mémoire des instructions et l’unité de branchement d’un processeur à usage général. (B3) 10 CodeNiveau ( B1Connaissance – mémoriser de l’information. B2Compréhension – interpréter l’information. B3Application – confronter les connaissances à des cas pratiques simples. B4Analyse – décomposer un problème, cas pratiques plus complexes. B5Synthèse – expression personnelle, cas pratiques plus complexes.