Zilog Z80000

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 31 août 2017 à 22:25 et modifiée en dernier par Zetud (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Le Z80000 est le microprocesseur 32 bits lancé par la société Zilog en 1986. Sa version CMOS était le Z320.

Éléments d'architecture

Un sous-ensemble de l'architecture du Z80000 était implémenté dès 1979 dans le processeur 16 bits Z8000, ce qui permettait d'utiliser avec un Z80000 les périphériques conçus pour le Z8000, tels que le contrôleur de communication série Z8030 et le contrôleur DMA Z8016. Le Z80000 pouvait exécuter un code compilé pour le Z8000[1], mais pas d'un Zilog Z80, et n'était donc pas compatible avec l'architecture x86 d'Intel. Remarquablement économe en silicium (à peine 91 000 transistors), il était conceptuellement assez en avance sur ses concurrents d'Intel mais sa commercialisation échoua complètement en raison des retards pris pour le finaliser (annoncé dès 1983, il ne fut mis sur le marché qu'à partir de 1986), des difficultés à fiabiliser son prédécesseur Z8000 qui avait été commercialisé prématurément avec de nombreux bugs, et surtout, de son incompatibilité avec les processeurs x86 d'Intel qui étaient l'architecture de référence.

Les caractéristiques avancées du Z80000 étaient les suivantes :

  • L'exécution des instructions était entièrement pipelinée[2] sur six niveaux, permettant un certain parallélisme dans l'utilisation des ressources câblées du circuit :
  1. INSTRUCTION FETCH :
    • Incrémentation du compteur ordinal (pointeur d'instruction).
    • Comparaison des étiquettes (tags) du cache intégré.
  2. INSTRUCTION DECODING :
  3. ADDRESS CALCULATION :
    • Calcul des adresses logiques.
    • Comparaison des étiquettes du cache de conversion d'adresses (Translation Lookaside Buffer).
    • Détermination des adresses physiques à partir du cache de conversion d'adresses.
  4. OPERAND FETCH :
    • Comparaison des étiquettes du cache intégré.
    • Lecture des données cachées.
  5. EXECUTION :
    • Lecture des registres.
    • Calculs arithmétiques et logiques.
    • Écriture des registres.
  6. OPERAND STORE :
    • Mise à jour des indicateurs binaires.
    • Écriture des données en cache.
    • Écriture des données en mémoire.
  • Comme le Z8000, ce processeur pouvait fonctionner selon un mode système et un mode normal (contrôlés par le bit #14 du FLAGS & CONTROL WORD) afin d'isoler les applications des fonctions du système d'exploitation. Seuls les codes s'exécutant en mode système pouvaient accéder aux fonctions d'entrée/sortie et aux registres de contrôle, ainsi qu'à l'espace mémoire en mode système. Une pile séparée pour les modes système et normal sécurisait encore davantage l'architecture.
  • Le Z80000 utilisait des adresses logiques sur 32 bits, lui permettant d'adresser jusqu'à 4 Gio de mémoire vive. La conversion des adresses logiques en adresses physiques était gérée par une unité de gestion mémoire intégrée[3] qui supportait également la pagination de la mémoire vive en pages de 1 Kio. Trois formats d'adressage pouvaient être sélectionnés à l'aide de deux bits du FLAGS & CONTROL WORD (bits #15 Étendu/Compact et #10 Linéaire/Segmenté) :
  1. Compact : un espace d'adressage uniforme de 64 Kio sur 16 bits équivalent au mode non-segmenté du Z8000
  2. Segmenté : un espace d'adressage segmenté de 2 Gio sur 32 bits, et non 4 Gio car le bit de poids fort de l'adresse logique était utilisé pour spécifier la taille du segment :
  3. Linéaire : un espace d'adressage uniforme de 4 Gio sur 32 bits
  • Les seize registres généraux 32 bits (RR0, RR2 .. RR28, RR30) pouvaient être accédés comme huit registres 64 bits (RQ0, RQ4 .. RQ24, RQ28). Les huit premiers registres généraux 32 bits (RR0, RR2 .. RR12, RR14) pouvaient également être accédés comme seize registres 16 bits (R0, R1 .. R14, R15), dont les huit premiers (R0, R1 .. R6, R7) pouvaient à leur tour être accédés comme seize registres 8 bits (RH0, RL0, RH1, RL1 .. RH6, RL6, RH7, RL7).
  • Un cache associatif de 256 octets structuré en seize blocs de 16 octets était intégré au circuit du processeur et servait de cache de niveau 1 à la fois pour les instructions et les données.
  • Le Z80000 était conçu pour supporter les configurations multiprocesseurs, à l'aide d'un registre dédié (le HARDWARE INTERFACE CONTROL REGISTER) qui permettait de spécifier certains aspects de la configuration matérielle environnant le Z80000 tels que la cadence d'un processeur, sa largeur de bus et le nombre d'états d'attente par défaut.

Notes et références

  1. À condition qu'il n'y ait pas d'appel aux unités de gestion mémoire Z010 et Z015.
  2. Pour mémoire, il fallut attendre 1989 et 1990 pour voir arriver sur le marché respectivement l'Intel 80486 et le Motorola 68040 entièrement pipelinés.
  3. Motorola sortit une MMU intégrée en 1987 avec le 68030.
  4. Le Z8070 n'a jamais été finalisé, et sa conception a été abandonnée avant terme.

Voir aussi

Articles connexes

Liens externes

Bibliographie