EN 2 : Conception d un processeur avec jeu d instructions élémentaires Contexte et projet D. Dallet, C. Leroux & C. Jego camille.leroux@enseirb-matmeca.fr D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 1 / 36 Solution d intégration en électronique numérique Machine programmable DSP µc Circuit reconfigurable généraux multimédias FPGA CPLD PLA ASIC Application Specific Integrated Circuits VLIW RISC ASIP (Application Specific Instruction set Processor) Custom Semi- Custom Flexibilité DSP µc Circuits sur mesure Circuits précaractérisés Circuits prédiffusés Full Custom Standard cell Gate array Sea of gates D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 2 / 36
Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 3 / 36 Caractéristiques d un processeur universel GPP : General Purpose Processor Format de 32 ou 64 bits Adapté aux langages évolués Bonnes performances en calcul numérique Instructions spécifiques (MMX, SSE, ) Évolution multicoeurs Intel pentium Motorola Power PC Digital Alpha Chip Nombreuses fonctionnalités Augmentation de la consommation de puissance Gestion matérielle de la mémoire virtuelle Nécessaire pour les OS avancés Fonctionnalités dynamiques qui compliquent l aspect temps réel Cache de Sun SPARC PXA250 (RISC) D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 4 / 36
Architecture de base : + à usage universel configurant les opérations de l unité opérative globale contenant le programme (séquencement des opérations) et les PC IR D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 5 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 6 / 36
Organisation de l unité opérative 3 phases clés LOAD : charger le registre avec la valeur qui se trouve en mémoire PC IR +1 11 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 7 / 36 Organisation de l unité opérative 3 phases clés EXECUTE : passer le contenu de certains registres à travers l, puis stocker le résultat dans un registre PC IR 11 +1 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 7 / 36
Organisation de l unité opérative 3 phases clés STORE : stocker la valeur du registre (résultat) dans un emplacement mémoire PC IR +1 11 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 7 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 8 / 36
Organisation de l unité de contrôle 5 cycles d instruction FETCH INSTRUCTION : lire l instruction suivante dans la mémoire pour la charger dans le registre IR PC IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 9 / 36 Organisation de l unité de contrôle 5 cycles d instruction DECODE : déterminer le type de l instruction qui a été chargée dans IR PC IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 9 / 36
Organisation de l unité de contrôle 5 cycles d instruction FETCH OPERANDS : transférer les de la mémoire vers les registres de l unité opérative PC IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 9 / 36 Organisation de l unité de contrôle 5 cycles d instruction EXECUTE : faire passer le contenu de certain registres à travers l PC IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 9 / 36
Organisation de l unité de contrôle 5 cycles d instruction STORE : stocker la valeur du registre(résultat) dans un emplacement mémoire PC IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 9 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur / 36
Organisatin de la mémoire : deux types HARVARD Accès simultané aux programme et ( inst. et oprd chevauchées) de programme Harvard de PRINCETON (Von Neumann) Peu de fil de connexion Implémentation simple (programme et ) Princeton (Von Neumann) Le modèle d architecture de Von Neumann est le modèle le plus utilisé actuellement D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 11 / 36 Organisation de la mémoire : architecture HARVARD Déclinaison de base Déclinaison 1 Déclinaison 1 programme programme/ programme Déclinaison 1 Déclinaison 1 programme programme D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 12 / 36
Organisation de la mémoire cache Accélérer l accès aux mémoires (programme et ) La mémoire cache est intégrée au processeur (au sein de la même puce) Petite taille (< 1MB) Accès très rapide Retient une copie d une petite partie de la mémoire Accès réussi ou manqué! Haute technologie (rapide et plutôt chère), généralement sur la même puce Cache Technologie moins rapide et moins chère, généralement séparée sur une autre puce D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 13 / 36 Cycles d instruction PC0 inst. clk Decode oprends. Exec. Store results PC 0 IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 14 / 36
Cycles d instruction PC0 inst. clk PC1 inst. Decode Decode oprends. oprends. Exec. Exec. Store results Store results +1 clk PC 1 IR R0 R1 0 1 2 load R0, M[500] Inc R1, R0 store [M501], R1 500 501 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 14 / 36 Cycles d instruction PC0 inst. clk Decode oprends. Exec. Store results PC1 inst. Decode oprends. Exec. Store results clk PC2 inst. clk Decode oprends. Exec. Store results PC 1 IR 0 load R0, M[500] 1 Inc R1, R0 2 store [M501], R1 500 501 11 R0 R1 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 14 / 36
Bus de communication BUS adresses contrôle Périphérique Périphérique Adresses : sélection du périphérique et d une donnée en son sein Données : valeur de la donnée à échanger Contrôle : lire / écrire / haute impédance. Le processeur est le maître du bus Il est le seul à écrire sur les bus adresse et contrôle. Le périphérique obtempère sur le bus Lecture : il fournit la donnée demandée. Écriture : il récupère la donnée fournie par le processeur. Haute impédance : il se déconnecte du bus. D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 15 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 16 / 36
Considérations architecturales s N-bits Chemin de (, registres, bus, interface mémoire) Systèmes embarqués : 8, 16 ou 32 bits DSPs : 16 ou 32 bits s universels : 32 ou 64 bits Taille du registre PC : détermine la taille de l espace d adressage Fréquence d horloge temps de propagation à travers le chemin critique de la partie opérative l accès mémoire est souvent plus lent Les performances peuvent être améliorées à travers : Organisation pipeline : découpage de l exécution d une instruction en plusieurs étapes superposables plusieurs s : parallélisation pour le cycle d Execute (architectures superscalaires et VLIW) Complexité du jeu d instructions architectures CISC architectures RISC D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 17 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 18 / 36
Principe du pipeline Exemple d illustration : Construction d une voiture en 6 sous-tâches D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 19 / 36 Principe du pipeline Exemple d illustration : Construction d une voiture en 6 sous-tâches D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 19 / 36
Organisation pipeline dans un processeur Exécution des instructions sans pipeline Exécution des instructions avec pipeline D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 20 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 21 / 36
Principe du parallélisme dans les processeurs Acronyme SISD Single Instruction, Single Data SIMD Single Instruction, Multiple Data MIMD Multiple Instruction, Multiple Data SISD Instruction ADD Données 1 A B SIMD Instruction ADD Données 1 Données 2 A1 B1 A2 B2 Instruction 1 ADD MIMD Instruction 2 MUL Données 1 Données 2 A1 B1 A2 B2 ALU1 ALU1 ALU2 ALU1 ALU2 R = A + B R1 = A1 + B1 R2 = A2 + B2 R1 = A1 + B1 R2 = A2 B2 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 22 / 36 Architecture superscalaire Superscalaire Opération scalaire : s exécute sur un ou deux nombres (à l opposé d une opération vectorielle ou matricielle) Lecture des instructions ( insts) en paquets Ordonnancement statique (compilation) ou dynamique (exécution) En cas d ordonnancement dynamique : nécessité d un bloc matériel supplémentaire (complexe) afin de détecter les instructions indépendantes D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 23 / 36
Architecture VLIW VLIW (Very Long Instruction Word) Longue instruction (128-24 bits) composée de plusieurs opérations indépendantes (au lieu d une) : Équivalente à une architecture superscalaire avec un ordonnancement statique De plus en plus répandue D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 24 / 36 Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 25 / 36
Evolution des processeurs universels (1/2) Tendance vers un langage machine de haut niveau comme le langage C instructions de plus en plus nombreuses instructions de plus en plus complexes difficulté pour décoder les instructions (tailles variables) augmentation de la complexité de la logique de contrôle limite l augmentation la fréquence d horloge contrôle très couteux donc peu de place pour le reste : taille des caches primaires, secondaires nombre de registres limité nombre d unités de calcul limité s à jeu d instructions étendu CISC (Complex Instruction Set Computer) D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 26 / 36 Evolution des processeurs universels (2/2) occurrence d apparition des instructions s à jeu d instructions étendu CISC (Complex instruction Set Computer) 23 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 27 / 36
Alternative : processeurs RISC Réduction du jeu d instructions aux instructions les plus couramment utilisées (instructions simples) décodage simple taille fixe latence d exécution tendant vers un temps de cycle pipeline aisé et contrôle simple architecture orthogonale (toute instruction peut utiliser tout registre) architecture de base compacte facilitant : augmentation du nombre de registres augmentation de la taille des caches augmentation du nombre des unités de calcul augmentation de la fréquence d horloge s à jeu d instructions réduit RISC (Reduced Instruction Set Computer) D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 28 / 36 Architecture RISC versus architecture CISC RISC CISC 25 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 29 / 36
Panorama des processeurs D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 30 / 36 Unités de mesure des performances de processeur avec d instructions MFLOPS MOPS MIPS MMACS MBPS Million Floating Point Operation Per Second Million Operation Per Second Million Instructions Per Second Million of MAC per Second Mega-Bytes Per Second Mesure le nombre d opérations arithmétiques à virgule flottante que le DSP à virgule flottante peut réaliser en une seconde Mesure le nombre total d opérations (calcul, accès DMA, transferts, etc.) que le DSP peut réaliser en une seconde Mesure le nombre de codes machine (instructions) que le DSP peut réaliser en une seconde Mesure le nombre d opérations MAC (Multiply+Accumulate) que le DSP peut réaliser en une seconde Mesure la bande passante d un bus particulier ou d un dispositif d D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 31 / 36
Plan 1 Architecture de base d un processeur universel 2 Considérations architecturales Principe du pipeline Principe du parallélisme architecture CISC /architecture RISC 3 Introduction au module EN216 D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 32 / 36 Présentation du processeur minimal 8 bits 8-bits à usage universel Basé sur un registre accumulateur appelé ACCU (8 bits) Quatre type d instructions Chaque instruction est codée sur 8 bits. Deux bits pour coder le type de l opération (code op) et 6 bits pour coder l opérande ou l adresse de l opérande dans la mémoire selon le type de l instruction. D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 33 / 36
Conception du processeur D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 34 / 36 Organisation du module Partie préliminaire (sur feuille) Compréhension du jeu d instructions Interprion du contenu de la mémoire Application sur un cas concret : PGCD de deux nombres entiers Définition du schéma bloc de l ensemble du processeur Partie opérative Partie mémorisation Partie contrôle Schéma bloc global Partie conception (sur machine) Description VHDL et validation fonctionnelle du : bloc de la partie opeérative, bloc de mémorisation, bloc de contrôle. Description VHDL et validation fonctionnelle du top level Partie implantation et prototypage (sur ordinateur et sur carte) Ajout d un bloc VHDL gérant les périphériques de la carte Synthèse logique, placement/routage et génération du fichier bitstream Chargement sur la carte et validation D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 35 / 36
Objectifs du module Conduire un projet de conception de ménière autonome et structurée de bout en bout Utiliser et assembler les fonctions élémentaires d électronique numérique Apprendre à respecter les règles régissant un circuit numérique synchrone Comprendre les principes de base de fonctionnement d un processeur avec jeu d instructions D. Dallet, C. Leroux & C. Jego (Bordeaux INP) EN2 - Conception processeur 36 / 36