Architecture de processeur - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Une architecture externe de processeur ou architecture de jeu d'instructions (ISA, de l'anglais instruction set architecture), ou tout simplement architecture (de processeur), est la spécification fonctionnelle d'un processeur, du point de vue du programmeur en langage machine. L'architecture comprend notamment la donnée d'un jeu d'instructions, d'un ensemble de registres visibles par le programmeur, d'une organisation de la mémoire et des entrées sorties, des modalités d'un éventuel support multiprocesseurs, etc.

Le terme externe employé ici permet de bien faire la différence avec la microarchitecture ou architecture interne, qui s'intéresse à l'implémentation pratique du comportement spécifié par une architecture externe. Une architecture externe donnée peut être implémentée sous forme de plusieurs microarchitectures.

Définitions

Une architecture externe de processeur est le modèle du processeur vu de l'extérieur, c'est-à-dire par le programmeur en langage machine, le compilateur ou le noyau du système d'exploitation. Il s'agit de l'interface entre le matériel et le logiciel.

Cette interface peut être implémentée dans divers processeurs. L'organisation pratique de ces derniers est appelée micro-architecture ou architecture interne. Par opposition à l'architecture qui correspond au modèle de la machine vu par le programmeur, les spécificités d'une micro-architecture sont invisibles pour ce dernier. Par exemple, la micro-architecture peut spécifier l'existence de mémoires cache, de renommage de registres, de pipelines, de prédiction de branchement, etc. Une micro-architecture peut ensuite donner lieu à une ou plusieurs réalisations matérielles.

Pour résumer, Tanenbaum distingue trois niveaux matériels dans un ordinateur :

  • niveau n° 2 — architecture externe ou de jeu d'instruction (ISA),
  • niveau n° 1 — micro-architecture,
  • niveau n° 0 — réalisation en logique numérique.

Exemple (fictif) :

  • niveau architecture externe : il existe huit registres d'usage général. L'instruction ADD effectue une addition entre deux quelconques de ces registres et met le résultat dans un quelconque troisième.
  • niveau micro-architecture (architecture interne) : le traitement des instructions est pipeliné et deux unités arithmétiques et logiques sont capables d'effectuer l'addition de l'instruction ADD.
  • niveau réalisation : le processeur est réalisé dans une technologie CMOS avec trois niveaux de métaux et une finesse de gravure de 130 nanomètres.

Pour une architecture donnée, on peut avoir plusieurs micro-architectures, et une micro-architecture donnée peut servir de base à plusieurs réalisations. Par exemple l'architecture System 360 d'IBM a été disponible dès le départ en cinq micro-architectures différentes ayant naturellement des performances et un coût différent (c'est d'ailleurs dans le contexte de la définition de cette architecture que la nomenclature ci-dessus a été raffinée). Chez Intel, l'architecture IA-32, implémentée pour la première fois dans le 80386, possède des implémentations ultérieures très différentes : par exemple, le Pentium a introduit une micro-architecture pipelinée de type superscalaire avec prédiction de branchement. En outre, l'architecture IA-32 a été implémentée par d'autres fondeurs, en particulier AMD.

Naturellement les interactions entre les trois niveaux sont complexes. Les contraintes de réalisation limitent les choix micro-architecturaux et le désir de pouvoir choisir une micro-architecture donnée influence la définition de l'architecture. Si les avantages de la compatibilité forcent à vouloir garder l'architecture constante, vouloir avoir une micro-architecture et une réalisation efficace pousse vers une évolution, soit par extension compatible (ajout d'instructions par exemple), soit en précisant des zones floues ou même en invalidant ce qui autrefois était autorisé.

Page générée en 0.081 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise