CHAPITRE 4 . Processeurs et jeux d’instructions
Processeurs et jeux d’instructions
5
4.2.1 Déroulement d’une instruction.
Le bus de données a une largeur de 8 bits et est bidirectionnel : c’est le même
chemin qui est utilisé pour les transferts en lecture ou en écriture. Les deux
opérations ne s’effectuant jamais en même temps, il n’y a pas de conflits sur le bus.
Le bus d’adresse a une largeur de 16 bits ce qui confère au processeur une capacité
maximale d’adressage de mémoire centrale de 64 Ko (65536 octets, 1K = 2
10 =
1024). Le bus d’adresse est unidirectionnel : seul le processeur peut déposer une
adresse sur ce bus et le tampon (buffer) en sortie de processeur permet de maintenir
une adresse vers l’extérieur tout en déterminant une nouvelle adresse en interne.
L’architecture présentée est simplifiée, c'est-à-dire réduite aux éléments minimaux
nécessaires à la compréhension du fonctionnement du processeur. Cela concerne en
particulier les registres. Le Z80 possède 8 registres 8 bits : A, F, B, C, D, E, H et L.
Le registre A (Accumulateur) est le registre privilégié pour les opérations
arithmétiques et logiques : toutes les opérations se font par ‘accumulation’ sur ce
registres. F est le registre des indicateurs d’opérations (flags ou drapeaux)
permettant de mémoriser de manière synthétique (1 seul bit) un résultat positif,
négatif, nul, débordement, … et ainsi servir de condition pour les instructions de
saut conditionnel. L’ensemble de ces registres est complété par des registres dits
alternés A’ à L’ permettant de permuter très rapidement, si nécessaire, les alternés
avec les primaires A à L.
Les registres (B, C), (D, E) et (H, L) peuvent être appariés pour réaliser quelques
opérations (addition, soustraction, incrémentation, décrémentation) sur les entiers
de 16 bits, ils sont alors dénommés BC, DE et HL. La paire HL joue un rôle
particulier comme pointeur (adresse) de données en mémoire centrale.
Il y a quatre registres strictement 16 bits et qui servent exclusivement à l’adressage.
IX et IY sont des registres d’index qui correspondent aux indices de données
structurées (tableaux) dans les langages de haut niveau. Ils servent de déplacement
La naissance du Z80 est étroitement liée à celle de son aîné, le 8080 d’Intel.
Federico Faggin, après son doctorat de physique à Padoue en Italie, est
embauché en 1968 par Fairchild pour développer les premiers circuits en
technologie MOS. Il participe ensuite, avec Tedd Hoff chez Intel, à la
conception du 4004, et devient l’architecte du 8080, sorti en 1974.
En 1975, il fonde, avec Masatoshi Shima (ancien de Busicom, la société japonaise
ayant commandé les circuits à l’origine du 4004), la société Zilog avec l’idée de
réaliser une version améliorée du 8080, ce qu’il n’avait pu faire chez Intel. Le Z80 doit
être compatible ascendant en exécutant toutes les 78 instructions du 8080 de la même
manière que ce dernier. L’amélioration portera sur un jeu d’instructions plus étendu
(120 instructions de plus), plus de registres, une gestion intégrée de la mémoire
(rafraîchissement dynamique), une amorce de pipeline et fonctionne à une fréquence
de 2,5 MHz. Il est mis sur le marché en juillet 1976 : une vraie réussite technique et
commerciale, il est toujours sur le marché et coûte ... 1 €.