Ce texte a été recopié d'une mémofiche publiée par la revue minis & micros numéro 198, parue en Novembre 1983, ce qui ne nous rajeunit pas... Les éventuelles fautes d'orthographe sont ©tth 2007. Voir aussi le z80.

Zilog Z80000

Le Z80000 dispose d'une architecture avec bus de 32 bits qui permet d'adresser quatre espaces mémoire d'au maximum 4 M octets chacun, espaces réservés aux programmes et aux données "système" et "utilisateur". Il accepte trois modes d'adressage : non segmenté court ou compact sur 16 bits ; segmenté court avec déplacement sur 16 bits (compatible avec l'adressage segmenté du Z8000) ; segmenté long avec déplacement sur 24 bits. De plus, il peut travailler sur un espace linéaire de 4 M octets. Les logiciels d'application développés pour le Z8000 tournent sur le Z80000, sans ré-assemblage ni compilation, à condition que ces programmes n'utilisent pas les unités de gestion de mémoire Z8010 ni Z8015.

Organisation interne

Seize registres généaux de 32 bits ; un compteur ordinal (PC) de 32 bits ; un registre de commande et détat (FCW) de 16 bits; neuf registres spécialisés.

Les registres généraux

Les quatre premiers peuvent se comporter comme seize registres 8 bits (RL0, RH0...) ; ils servent alors d'accumulateurs. Les huit premiers registres peuvent être divisés en seize registres de 16 bits (R0, R1...) utilsables comme accumulateurs, index ou pointeurs d''adresse (excepté R0) dans un espace d'adressage court de 64 M octets. N'importe quel registre 32 bits (RR0...) peut se comporter en accumulateur, index ou pointeur d'adresse (excepté RR0) dans un espace d'adressage linéaire ou segmenté. Les registres peuvent être associés par groups de deux pour former hui registres de 64 bits (RQ0...) utilisables comme accumulateurs avec des instructions de multiplicatio, de division et d'extension de signe.

Deux registres servent de pointeur de pile (SP) et de pointeur de contexte (FP) intervenant lors de l'exécution d'instructions d'appel (Enter) et de retour (Exit) d'une procédure, d'appel (Call) et de retour (Exit) d'un sous-programme. En mode d'adressage court ou compact, R15 est le pointeur de pile et R14 le pointeur de contexte. En mode d'adressage linéaire, RR14 est le pointeur de pile et RR12 le pointeur de contexte.

Les espaces d'adressage

La sélection d'un mode d'adressage se fait par deux bits du registre FCW : E/C (étendu 32 bits / compact 16 bits), L/S (linéaire/segmenté). L'adressage segmenté existe sous deux formes : numéro de segment sur 15 bits et déplacement sur 16 bits ; numéro de segment sur 7 bits et déplacement sur 24 bits.

L'unité de gestion mémoire

Intégrée sur la puce, elle traduit une adresse logique en adresse physique, tout en assurant la protection de la mémoire contre les accès abusifs. Elle opère sur une mémoire virtuelle avec des pages de 1 K octet.

Le mécanisme de traduction de l'adresse consiste à vérifier que l'adresse de la page concernée est contenue dans un tampon de traduction, implantée dans le Z80000. Ce tampon est une mémoire associative qui stocke les adresse logiques et physiques des seize dernières pages utilisées. Si l'adresse logique de la page appartient au tampon, l'adresse physique est disponible très rapidement, sinon la MMU effectue la traduction en consultant des tables implémentées en mémoire centrale. Quatre types de tables existent, suivant que l'adresse concernée appartient aux espaces systèmes ("code" ou "données") ou en espace utilisateur ("code" ou "données"). Quatre pointeurs implantés dans la MMU pointent vers les tables de traduction. Lors de la traduction, la MMU examine si la position est en mémoire centrale : dans l'affirmative, elle vérifie que l'accès est autorisé ; dans la négative, elle interrompt le processeur et va chercher sur disque la page concernée qu'elle stocke en mémoire centrale, puis elle effectue la traduction.

La mémoire cache

Elle comporte seize blocs de 16 octets chacun. Cette mémoire est associative, si bien qu'un bloc dont on a souvent besoin, non présent en mémoire, peut remplacer n'importe quel bloc du cache. La mémoire cache stocke à la fois les données et les instructions.

Autres caractéristiques

Avec des vitesse d'horloge comprises entre 10 et 25 MHz, le Z80000 sera capable de fonctionner directement avec des bus fonctionnants à la même vitesse, à la moitié ou au quart de celle-ci. Le jeu d'instruction peut opérer sur des bits, champs de bits, valeur logiques, entiers (signés ou non), adresses, piles et données décimales. Les instructions logiques et arithmétiques fonctionnent sur des mots de 8, 16 ou 32 bits. Le Z80000 peut aussi travailler avec des coprocesseurs.

<tth> Il y a aussi un diagramme d'organisation interne/externe mais, là, j'ai la flemme de le re-dessiner... Faut pas m'en vouloir.