Introduction
Le Z80000 est le microprocesseur 32 bits lancé par la société Zilog en 1986.
Le Z80000 est le microprocesseur 32 bits lancé par la société Zilog en 1986.
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, 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), et surtout des difficultés à fiabiliser son prédécesseur Z8000 qui avait été commercialisé prématurément avec de nombreux bugs.
Les caractéristiques avancées du Z80000 étaient les suivantes :
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 F & C W) 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 fonction 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 physique. La conversion des adresses logiques en adresses physiques était gérée par une unité de gestion mémoire intégrée qui supportait également la pagination de la mémoire physique en pages de 1 Kio. Trois formats d'adressage pouvaient être sélectionnés à l'aide de deux bits du F & C W (bits #15 Étendu/Compact et #10 Linéaire/Segmenté) :
Le banc de registres comprenait seize registres généraux de 32 bits qui pouvaient être utilisés comme accumulateurs, index ou pointeurs en mémoire. Deux autres registres (F P et S P, respectivement pointeurs de cadre et de pile) étaient utilisés pour chaîner les appels de procédures avec les instructions C, E, E et R. Un registre 32 bits était utilisé comme pointeur d'instruction tandis qu'un registre 16 bits contenait le mot d'état machine et les indicateurs binaires (F & C W), 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 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.
L'E P A était notamment conçue pour gérer une unité de calcul en virgule flottante Zilog Z8070.
Le Z80000 était conçu pour supporter les configurations multiprocesseurs, à l'aide d'un registre dédié (le H I C R) 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.