Le Z80000 est le microprocesseur 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 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À condition qu'il n'y ait pas d'appel aux unités de gestion mémoire Z010 et Z015., mais pas d'un Zilog Z80, et n'était donc pas compatible avec l'architecture x86 d'Intel. Remarquablement économe en silicium (à peine ), 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éePour 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. sur six niveaux, permettant un certain parallélisme dans l'utilisation des ressources câblées du circuit :

Incrémentation du compteur ordinal (pointeur d'instruction). Comparaison des étiquettes () du cache intégré.

Lecture dans le cache d'instructions. Génération des micro-instructions.

Calcul des adresses logiques. Comparaison des étiquettes du cache de conversion d'adresses (). Détermination des adresses physiques à partir du cache de conversion d'adresses.

Comparaison des étiquettes du cache intégré. Lecture des données cachées.

Lecture des registres. Calculs arithmétiques et logiques. Écriture des registres.

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 ) 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 , lui permettant d'adresser jusqu'à 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éeMotorola sortit une MMU intégrée en 1987 avec le 68030. qui supportait également la pagination de la mémoire vive en pages de . Trois formats d'adressage pouvaient être sélectionnés à l'aide de deux bits du (bits #15 Étendu/Compact et #10 Linéaire/Segmenté) :

Compact : un espace d'adressage uniforme de sur équivalent au mode non-segmenté du Z8000 Segmenté : un espace d'adressage segmenté de sur , et non car le bit de poids fort de l'adresse logique était utilisé pour spécifier la taille du segment : ou bien segments de avec déplacements sur ou bien 128 segments de avec déplacements sur Linéaire : un espace d'adressage uniforme de sur

Le banc de registres comprenait seize registres généraux de qui pouvaient être utilisés comme accumulateurs, index ou pointeurs en mémoire. Deux autres registres ( et , respectivement pointeurs de cadre et de pile) étaient utilisés pour chaîner les appels de procédures avec les instructions CALL, ENTER, EXIT et RETURN. Un registre était utilisé comme pointeur d'instruction tandis qu'un registre contenait le mot d'état machine et les indicateurs binaires (), qui étaient sauvegardés implicitement lors des interruptions et des trappes. Neuf autres registres spéciaux étaient utilisés pour contrôler l'état du processeur, la configuration système et la gestion de la mémoire.

Les seize registres généraux (RR0, RR2 .. RR28, RR30) pouvaient être accédés comme huit registres (RQ0, RQ4 .. RQ24, RQ28). Les huit premiers registres généraux (RR0, RR2 .. RR12, RR14) pouvaient également être accédés comme seize registres (R0, R1 .. R14, R15), dont les huit premiers (R0, R1 .. R6, R7) pouvaient à leur tour être accédés comme seize registres (RH0, RL0, RH1, RL1 .. RH6, RL6, RH7, RL7).

Un cache associatif de structuré en seize blocs de était intégré au circuit du processeur et servait de cache de niveau 1 à la fois pour les instructions et les données.

L' était notamment conçue pour gérer une unité de calcul en virgule flottante Zilog Z8070Le Z8070 n'a jamais été finalisé, et sa conception a été abandonnée avant terme..

Le Z80000 était conçu pour supporter les configurations multiprocesseurs, à l'aide d'un registre dédié (le ) 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

Voir aussi Articles connexes Zilog Z80 Zilog Z8000 Zilog Z8070

Liens externes Manuel technique du Zilog Z80000 (1984)

Bibliographie

Catégorie:Microprocesseur Zilog Catégorie:Produit lancé en 1986 Catégorie:Processeur 32 bits