Distributed Architecture & Intensive Computing Presented by Dr. A. Djenadi 1 Distributed Architecture & Intensive Computing CHAPITRE 4: ILP DANS LES ARCHITECTURES CPU PIPELINING, SUPERSCALAIRE, VLIW ET COMPARAISON RISC VS CISC 2 Chapitre 4: ILP dans les Architectures CPU - Pipelining, Superscalaire, VLIW et Comparaison RISC vs CISC PARTIE 4: VLIW 3 Architecture VLIW Définition La VLIW (Very Large Instruction Word) a été développée pour exploiter le Parallélisme au Niveau de l'Instruction (Instruction-Level Parallelism) en utilisant un mot d'instruction long contenant un nombre fixe d'opérations multiples. Ces opérations peuvent être récupérées, décodées, émises et exécutées en même temps sans causer d’aléas (hazards) de données ou de contrôle. Les opérations sont regroupées ensemble par le compilateur au sein d'une seule instruction VLIW doivent être absolument indépendantes. Idée générale : Le compilateur trouve des instructions indépendantes et les planifie statiquement (c'est-à-dire les regroupe) dans une seule instruction VLIW. 4 Architecture VLIW Processeur VLIW de base On suppose un processeur de 8 unités d’exécution : • Deux unités de calcul entier E1 et E2, ayant une latence de 1 cycle. E2 est également utilisé pour gérer les compteurs de boucle. • Une unité de multiplication entière avec une latence de 2 cycles. 5 Architecture VLIW Processeur VLIW de base • Deux unités mémoires M1 et M2. Les instructions de chargement (lecture mémoire) ont une latence de 3 cycles, tant pour les données entières (instruction lw ) que pour les données flottantes (instruction lf ). • Deux unités de calcul flottant FA et FM pour les additions et les multiplications ayant une latence de 4 cycles. • Une unité de branchement. Les branchements sont supposés s’exécuter en 1 cycle (pas de branchements retardés). 6 Architecture VLIW Processeur VLIW de base Il possède deux ensembles de registres : • 32 registres de 32 bits (r0 à r31) pour les nombres entiers. • 32 registres de 32 bits (f0 à f31) pour les nombres flottants. • Ce choix sert à distinguer les calculs entiers et les calculs flottants. Un seul ensemble de 32 registres pourrait être utilisé. 7 Architecture VLIW Règle de l’exécution VLIW 1. Plusieurs opérations différentes sont effectuées par une instruction. 2. Chaque emplacement pour une opération est réservé à une classe définie d’opérations. 3. Des latences fixes sont définies pour les différentes opérations. 4. Le matériel exige que les opérations d’une instruction VLIW soient indépendantes. 5. Le hardware ne contrôle pas les dépendances de données entre les instructions longues. 8 Architecture VLIW VLIW vs. Superscalaire Les architectures superscalaire Les architectures VLIW utilisent le utilisent le hardware pour exécuter VS. compilateur pour présenter au hardware plusieurs instructions en parallèle à l’exécution. des instructions en parallèle. Exemple 1 : On suppose un code avec 8 instructions. La différence entre les deux architectures, en supposant des processeurs capables d’exécuter 4 instructions par cycle d’horloge est la suivante : Cycle C C+1 C+2 Superscalaire I1 I2 I3 I4 I5 I6 I8 I7 VLIW I1 NOP I4 I5 NOP NOP I2 I6 I8 I3 I7 NOP 9 Architecture VLIW VLIW vs. Superscalaire Dans le superscalaire, le hardware lance les Exemple 1 : instructions à exécuter en parallèle à chaque cycle lorsque les ressources nécessaires sont disponibles en tenant compte des dépendances de données et de contrôle. Cycle C C+1 C+2 Superscalaire I1 I2 I3 I4 I5 I6 I8 I7 VLIW I1 NOP I4 I5 NOP NOP I2 I6 I8 I3 I7 NOP Dans l’architecture VLIW, le compilateur génère pour chaque cycle d’horloge une instruction longue constituée de 4 instructions élémentaires, en tenant compte des ressources et des dépendances. Des instructions NOP (dummy) sont utilisées pour combler les trous lorsque 4 instructions élémentaires ne peuvent démarrer simultanément. 10 Architecture VLIW VLIW vs. Superscalaire Exemple 2 : Ci-après une comparaison entre un pipeline superscalaire de degré 3 et un pipeline VLIW de degré 3, Pipeline superscalaire Pipeline VLIW 11 Architecture VLIW VLIW vs. Superscalaire Remarque : 1. L'approche VLIW repose principalement sur le compilateur. 2. Dans une architecture VLIW pure, la partie hardware de contrôle du processeur est beaucoup plus simple, en comparaison à l’architecture superscalaire, car le hardware ne gère plus les dépendances de données et de contrôle. 3. Le processeur lui-même peut être conçu de manière plus simple. La simplification matérielle réduise la complexité du processeur, elle augmente la complexité du travail du compilateur. 12 Architecture VLIW VLIW vs. Superscalaire Remarque : 4. Dans une architecture VLIW, le compilateur ne peut tenir compte que des informations disponibles lors de la compilation. Code source Compilation (traduction du code ; construction des instructions VLIW) exécution Le compilateur ne peut pas prédire ou s'adapter dynamiquement aux conditions ou aux données rencontrées lors de l'exécution du programme. Il doit prendre ses décisions en fonction des informations qu'il a à sa disposition lors de la phase de compilation. 13 Architecture VLIW VLIW vs. Superscalaire Remarque : 5. Les processeurs VLIW sont efficaces pour les programmes à comportement déterministe, tels que le traitement du signal, où le flot d'exécution des instructions ne dépend pas des données. Exemple : Les convolutions, car elles effectuent le même traitement sur les pixels d'une image, et le nombre d'itérations est connu à la compilation. 6. Un inconvénient est que le code binaire peut varier d'une version de processeur VLIW à une autre si le nouveau processeur a un nombre différent d'unités fonctionnelles. Exemple : Deux VLIW processeur de longueurs différente (256 et 512 bits) rend impossible la compatibilité binaire entre les différentes versions. En comparaison, les processeurs superscalaires sont capables d'exécuter du code binaire ancien, ce qui est crucial pour les processeurs d'usage général. 14 Chapitre 4: ILP dans les Architectures CPU - Pipelining, Superscalaire, VLIW et Comparaison RISC vs CISC PARTIE 5: RISC VS. CISC 15 RISC vs. CISC Complex Instruction Set Computer (CISC) Définition: Le CISC (Complex Instruction Set Computer) est un type d'architecture informatique où les instructions machine disponibles pour un processeur sont complexes et variées en termes de fonctionnalités. 16 RISC vs. CISC Complex Instruction Set Computer (CISC) Motivation 1. Les programmeurs s’orientent vers les Langages de programmation de haut niveau (High Level Langages, HLL); en conséquence les architectes s’orientent vers le design de machine efficace pour supporter les HLL. 2. Rapproché le langage assembleur des langage HLL, ainsi les compilateurs bénéficient des instructions ressemblant aux instructions HLL, simplifiant la traduction 3. Simplifier les compilateurs en utilisant moins d’instructions et optimiser les performances des langages HLL. 4. Accomplir une tâche en utilisant le moins de lignes d'assemblage possible cela permet de réduire la mémoire utilisée. 17 RISC vs. CISC Complex Instruction Set Computer (CISC) Remarque • Le CISC offre une gamme étendue d'instructions, souvent capables d'effectuer des opérations complexes en une seule instruction. • Les architectures CISC ont été conçues pour faciliter la programmation en permettant l'accomplissement de tâches complexes avec moins de lignes de code. • Cela est réalisé en construisant du matériel processeur capable de comprendre et d'exécuter une série d'opérations. 18 RISC vs. CISC Complex Instruction Set Computer (CISC) Exemple : On suppose la commande du langage C suivante : π = π ∗ π Le compilateur dans une architecture CISC utilise une seule instruction : MULT c, a, b L’exécution effective de l’instruction suit les étapes suivantes : 1. Charger les deux valeurs dans des registres distincts : πΉπ ← π ; πΉπ ← π (deux fois load) 2. Multiplie les opérandes dans l'unité d'exécution: πΉπ ∗ πΉπ 3. Stocke le produit dans le registre approprié. πΉπ ← πΉπ ∗ πΉπ 19 RISC vs. CISC Complex Instruction Set Computer (CISC) Exemple : De l’exécution on peut conclure que : • La tâche entière de multiplier deux nombres peut être réalisée avec une seule instruction. • L’architecture CISC nécessite très peu de travail du compilateur pour traduire une instruction HLL en langage assembleur. • Le hardware fait le plus gros du travail. • Comme la longueur du code est relativement courte, très peu de RAM est nécessaire pour stocker les instructions. 20 RISC vs. CISC Complex Instruction Set Computer (CISC) CISC, solution efficace cependant, … Simplifier le compilateur en utilisant des instructions plus complexes. Cependant : les instructions de machine complexes peuvent être difficiles à exploiter efficacement car le compilateur doit trouver des cas précis qui correspondent exactement à la construction de l'instruction. Note : Les compilateurs sur les CISC ont tendance à privilégier les instructions plus simples, de sorte que la concision des instructions complexes entre rarement en jeu. 21 RISC vs. CISC Complex Instruction Set Computer (CISC) CISC, solution efficace cependant, … Exemple : ο Supposons une instruction complexe « SUB_Multi » qui peut effectuer à la fois une soustraction et une multiplication en une seule opération : SUB_Multi R1, R2, R3 Cette instruction soustraie le contenu du registre R2 au contenu du registre R3, puis multiplie le résultat par le contenu du registre R1, et enfin stocke le résultat dans le registre R1. ο Maintenant, supposons que dans une section de code, nous n'ayons besoin que de la soustraction des valeurs des registres R2 et R3, sans multiplication. L'instruction complexe « SUB_Multi » devient inefficace. Le compilateur doit donc être capable de reconnaître ces cas spécifiques où seule la soustraction est nécessaire et utiliser une instruction plus appropriée. 22 RISC vs. CISC Complex Instruction Set Computer (CISC) CISC, solution efficace cependant, … Les CISC conduisent à des programmes plus petits en utilisant moins d’instructions. Cependant : Les programmes CISC peuvent avoir un langage symbolique plus court mais le nombre de bits de mémoire occupés peut ne pas être significativement plus petits. Les CISC nécessite moins de mémoires Cependant : Avec les mémoires moderne si peu coûteuse, cet avantage potentiel n'est plus convaincant. 23 RISC vs. CISC Complex Instruction Set Computer (CISC) CISC, solution efficace cependant, … Dans les CISC l’exécution des instructions est supposée être plus rapide à cause des instructions uniques composé d’opérations complexes multi fonctionnelles. Cependant : L’unité de contrôle doit être plus complexe et le mémoire de stockage des instructions doit être plus large. Cela entraîne une augmentation du temps d'exécution des instructions simples. 24 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Définition: Le RISC (Reduced Instruction Set Computer) est un type d'architecture informatique qui se caractérise par l'utilisation d'un ensemble restreint et simple d'instructions. Cette simplicité permet d'exécuter chaque instruction en un seul cycle d'horloge. . 25 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Exemple : L’instruction de multiplication décrite avant (c=a*b) est devisée en trois commandes distinctes : 1. "LOAD", qui charge des données de la mémoire vers un registre. 2. "MUL", qui trouve le produit de deux opérandes situés dans les registres. 3. "STORE", qui stocke des données d'un registre vers la mémoire. Le code RISC résultant nécessite 4 ligne de code assembleur : LOAD R1, a LOAD R2, b MUL R1, R2 STORE R3 26 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Remarques: • On a des lignes de code supplémentaires. • Plus de mémoires est nécessaire pour stocker les instructions de l’assembleur. • Le compilateur travail plus afin de convertir les HLL. 27 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Caractéristiques DU RISC Une instruction par cycle : Un cycle machine est défini comme le temps nécessaire pour récupérer (fetch) deux opérandes depuis des registres, effectuer une opération ALU et stocker le résultat dans un registre. Remarque: • Les instructions machine RISC ne doivent pas être plus compliquées que, et s'exécuter environ aussi rapidement que, les micro-instructions sur les machines CISC. • Les instruction peuvent être « Hardwired ». • RISC évite le microcode en n’ayant que des instructions simples, câblées directement. 28 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Caractéristiques DU RISC Remarque: Hardwired vs Microcode Hardwired (câblé) : Les instructions sont exécutées par Microcode : Utilisé en CISC pour gérer des un circuit dédié, optimisé pour une vitesse maximale. instructions complexes. Chaque instruction est Typique des RISC (ex : ARM, RISC-V, MIPS), où décomposée en une séquence de micro- chaque instruction est simple et câblée directement. instructions stockées dans une ROM interne. Avantages : Inconvénients : • • Latence minimale (pas d’accès à une ROM de microcode). • Meilleure prédiction de branchement (flux d’instructions linéaire). Surcharge de décodage (temps supplémentaire pour accéder au microcode). • Moins flexible pour l’optimisation (le microcode est rarement modifiable). 29 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Caractéristiques DU RISC Opérations de registre à registre La majorité des opérations dans les RISC doivent être entre registres, avec deux instructions simple « LOAD » et « STORE » pour accéder à la mémoire. Formats d'instructions simples La longueur de l'instruction est fixe à un mot (word), La récupération des instructions est optimisée car des unités de longueur de mot sont récupérées. Les emplacements des champs, en particulier l'opcode, sont prédéterminés et ne change pas. Cela simplifie le processus de décodage de l'instruction, car le processeur sait toujours où trouver chaque champ d'instruction sans avoir besoin d'une logique supplémentaire pour rechercher leur emplacement. 30 RISC vs. CISC Reduced instruction set computers (RISC): L’alternative aux CISC Caractéristiques DU RISC Modes d'adressage simples Utilisation d’un adressage simple tel que : ο§ Adressage immédiat : Les données sont directement incluses dans l'instruction elle-même, sans nécessiter de référence à une adresse mémoire. ο§ Adressage registre à registre : Les opérandes sont spécifiés à l'aide de registres du processeur, sans référence directe à la mémoire. ο§ Adressage de déplacement : Les adresses des opérandes sont calculées en ajoutant un déplacement à une adresse de base stockée dans un registre. ο§ Adressage relatif : Les adresses des opérandes sont calculées par rapport à une adresse de base, généralement le PC (compteur de programme) actuel. 31 RISC vs. CISC CISC vs. RISC Comparaison CISC Focalisée sur le hadware Dispose d’une unité de microprogrammation RISC Focalisée sur le software Utilise uniquement des unité de programmation cablée (Hardwired) Nombre d’instruction réduits et de taille fixe Grand nombre d’instruction de taille variable. Dépend fortement de la Ram pour les calcule Requière moins de RAM Utilise les registres comme mémoire de stockage principale. Requière plus de RAM 32 RISC vs. CISC CISC vs. RISC L’équation de performance πΈπ₯πππ’π‘πππ π‘πππ = ππππ πΌππ π‘ππ’ππ‘ππππ πΆπ¦ππππ ππππ = × × πππππππ πππππππ πππ π‘ππ’ππ‘πππ πΆπ¦πππ L’architecture RISC réduit les cycles par instruction au détriment du nombre d'instructions par programme. L’architecture CISC tente de minimiser le VS. nombre d'instructions par programme, au détriment du nombre de cycles par instruction. 33 RISC vs. CISC CISC vs. RISC Remarque : Il est devenu évident qu'il y a des avantages à incorporer certaines caractéristiques des architectures CISC dans les conceptions RISC, et vice versa. Ainsi, les conceptions les plus récentes de RISC, ne sont plus exclusivement basées sur le modèle RISC, tandis que les conceptions récentes de CISC intègrent des éléments de l'architecture RISC. 34 RISC vs. CISC Architecture RISC-V RISC-V est une architecture de jeu d'instructions (ISA) basée sur le concept de RISC. Le RISC-V est libre et open source, ce qui signifie que son jeu d'instructions, son architecture et son logiciel associé sont disponibles en open-source. Cette ouverture permet une plus grande flexibilité et une adoption plus large de l'architecture, ce qui en fait un choix attrayant pour une variété d'applications, allant des microcontrôleurs aux supercalculateurs. 35
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )