Aller au contenu

Zilog Z80

Un article de Wikipédia, l'encyclopédie libre.
Z80
Description de cette image, également commentée ci-après
Copie dudied'un Z80A; les dimensions réelles sont 4 950 × 4 720µm
Informations générales
Production
Fabricant Zilog
Performances
Fréquence 2,5MHzà 8MHz
Largeur bus données 8 bits[1]
Largeur bus adresse 16 bits[1]
Spécifications physiques
Finesse de gravure 5µm
Socket(s) 1
Architecture et classification
Architecture 8080
Boutisme petit-boutiste

Un des premiers processeurs Z80 fabriqués en
La versionLQFPdu Z80.

LeZilog Z80est unmicroprocesseur8 bitsconçu et fabriqué parZilog.

Ceprocesseurfut commercialisé pour la toute première fois en. Au début desannées 1980il fut très populaire dans la conception desordinateurs8 bits comme leRadio Shack TRS-80,les SinclairZX80,ZX81,ZX Spectrum,le standardMSX,lesAmstradCPC,lePC-88et plus tard dans les systèmes embarqués. Avec la famille desMOS 6502,il domina le marché des ordinateurs 8 bits à partir de la fin desannées 1970jusqu’au milieu desannées 1980[2].

Le Z80 a été conçu pour être compatible avec l’Intel 8080:la majorité du code pour 8080 pouvait fonctionner sans grandes modifications sur le Z80.

Lesystème d’exploitationCP/Mfut conçu pour fonctionner sur les ordinateurs dotés d'un Intel 8080 et pouvait aussi fonctionner sans modification sur les ordinateurs doté d'un Z80.

Les ordinateurs dotés d'un Z80 étaient en général plus puissants et avaient plus de fonctionnalités que ceux dotés d'un 8080. Certaines versions de CP/M et beaucoup d’applications pour CP/M n’existaient qu’en version pour Z80.

Historique et vue d'ensemble

[modifier|modifier le code]
Brochage du Z80

Le Z80 a vu le jour lorsqueFederico Faggin,après avoir travaillé sur l'Intel 8080,quittaIntelà la fin de1974pour fonder Zilog avec Ralph Ungermann, pour, en,mettre le Z80 sur le marché[3],[4].Il a été conçu pour être compatible au niveau binaire avec l’Intel 8080 de sorte que la plus grande partie du code 8080, notamment le système d’exploitation CP/M, fonctionne sans modification dessus[5].

Le Z80 a rapidement pris la relève du 8080 sur le marché, et est devenu l’un des processeurs 8 bits les plus populaires. Peut-être une des clés de la réussite du Z80 fut-elle lerafraîchissementintégré de laDRAM,et d’autres caractéristiques qui permettaient aux systèmes d’être construits avec moins de puces annexes[6].

Pour la première générationNMOS,lafréquence d'horlogemaximale augmenta progressivement. Tout d’abord à 2,5MHz,puis par le bien connu 4MHz(Z80a), jusqu’à 6 (Z80b) et 8MHz(Z80h). Une versionCMOSfut développée avec des fréquences limites allant de 4MHzà 20MHz(pour la version vendue dans les années 2000). La version CMOS a également un mode veille de basse consommation, avec conservation de l’état du processeur (sans limite basse de fréquence). Les Z180 eteZ80,dérivés entièrement compatibles, sont actuellement spécifiés pour un maximum de 33 et 50MHzrespectivement.

Des utilisations du processeur comprennent descalculatricesTexas Instruments,la gammeAmstrad CPCetGX4000,lesconsoles de jeux vidéode salonMaster System,ou portablesgame Boy.Certaines consoles plus puissantes dotées d’autres processeurs centraux comme laNeo Geoou laMega Driveavec sonMotorola68000,utilisaient le Z80 comme processeur complémentaire afin de gérer le son ou les entrées/sorties du système.

En2007,le Z80 n’est plus utilisé que dans des systèmes embarqués, tels que des photocopieurs, des télécopieurs (fax), calculatrices et autres appareils de bureautique sous la forme de contrôleurs « tout en un », ceci, en raison de l’importante bibliothèque disponible pour ce processeur, et la facilité de son interfaçage avec les claviers matriciels et les afficheursLCD.

La fabrication du Z80 "standalone" est arrêtée en 2024[7],mais des dérivés du z80 sont toujours fabriqués en tant quemicrocontrôleurs[8].

Composition du Z80

[modifier|modifier le code]

Cemicroprocesseura 16 lignes d’adresse ce qui lui permet en théorie d’adresser 65536octets.

Il se compose de 5 parties:

  • une unité de contrôle;
  • un compteur de programme;
  • un registre d’instructions;
  • une unité arithmétique et logique;
  • 24 registres utilisateur.

Les registres

[modifier|modifier le code]
Les registres du Z80
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (positions des bits)
Principaux registres
A Drapeaux AF(accumulator andflags,
accumulateur et drapeaux)
B C BC
D E DE
H L HL(indirect address,
indirection d'adresse)
Registres alternatifs
A' Flags' AF'(accumulator andflags,
accumulateur et drapeaux)
B' C' BC'
D' E' DE'
H' L' HL'(indirect address,
indirection d'adresse)
Registres indexés
IX IndexX
IY IndexY
SP StackPointer,
pointeur de pile
Autres registres
I Interrupt vector,
vecteur d'interruption
R Refresh counter,
compteur de rafraîchissement
Compteur ordinal
PC ProgramCounter,
compteur ordinal
Regsitre d'état
S Z - H - P/V N C Flags, drapeaux

On distingue deux catégories deregistres:les principaux et les secondaires qui, contrairement à ce qu’indique leur nom, ont une réelle utilité car ils servent deregistresimage quand les échanges sont indispensables lors des calculs.

Lesregistresprincipaux sont composés de deux familles: desregistressimples 8 bits, pouvant être couplés en registrespairs16 bits et des registres IX, IY, SP 16 bits pouvant être dépareillés en registres 8 bits (sauf SP), servant à indexer la mémoire car contenant un I commeindex.Les registres comportant des L signifient Low et ceux comportant des H signifient High.

Le nom d’un registre de 8 bits est composé d’une seule lettre, tandis que celui d’un registre 16 bits est composé de deux lettres. Le couplage des registres de 8 bits se fait en nommant les deux registres, en commençant par celui de poids fort (par exemple, BC est le couplage 16 bits des registres B et C).

Le registre A, est le plus important, il est appelé aussi «accumulateur.» De très nombreusesinstructionsencode machinese servent de ce registre. Il est très utilisé dans les opérations de comparaisons.

Le registre F appelé « flag » (drapeau en anglais), contient 8 indicateurs (drapeaux) sur le résultat du dernier calcul effectué. On trouve notamment:

Les registres B et C sont utilisés comme compteurs et en conjonction avec les registres D et E dans des opérations simples. Les registres H et L ont les mêmes propriétés et ont un appareil d’instruction très riche, ils sont utilisés pour contenir desadresses mémoiremais leurs capacités sont inférieures à celles du registre A. Comme les registres I et R.

Les registres IX et IY sont des registres pairs, ils peuvent être indexés et sont utiles pour les travaux sur des listes de tables. Pour leZX 81,ils servaient à la gestion du système comme l’affichage, le programmeur enlangage machinedevait les restaurer après utilisation ce qui était un inconvénient sur cette machine.

Le registre SP, appelé stack pointer sert à ranger des résultats intermédiaires dans unepile.PUSH et POP sont deux instructions clé de ce registre qui permettent respectivement de placer et de retirer un élément de la pile.

Les familles d’instructions

[modifier|modifier le code]

La première famille se compose des octets de chargement LD (load) qui charge la mémoire dans un registre et inversement. Elle se compose aussi des instructions d’échange (EX) qui effectuent des échanges entre registres ou entre registres et valeurs.

La deuxième famille se compose d’instructions arithmétiques comme l’addition,lasoustraction,la décrémentation et l’incrémentation.

La troisième famille se compose d’instructions logiquescomme AND et OR qui effectuent des opérations en comparaison de deux registres bit à bit. AND transformera deux 1 en un seul 1, un 1 et un 0 en un 0, etc., XOR a une valeur de ou exclusif et CPN lève différents drapeaux du registre F selon les résultats.

La quatrième famille se compose d’instructions de branchements conditionnels et inconditionnels qui commandent des ruptures de séquence: JR (saut relatif), JP (saut simple), CALL, RST qui renvoient à un endroit du code machine comme les instructions en basic GOTO et GOSUB, RET qui ferme la boucle comme l’instruction basic RETURN. Le saut relatif a une portée limitée (256 octets de la position courante du pointeur-programme).

Enfin, il y a les familles d’instructions de pile (stockage sur pile et dépilage), les familles d’instructions de rotation qui modifient le décompte des bits dans un registre, les familles d’instructions de bit travaillant sur un bit particulier, les familles d’instructions d’entrée-sortie, les familles d’instructions d’interruption, les familles d’instructions de transfert,etc.

Notes et références

[modifier|modifier le code]
  1. aetb(en)Zilog,Z80 Family CPU User Manual,(lire en ligne),p.5.
  2. Dennis Longley et Michael Shain,Expanding and networking microcomputers: the complete and up to date guide to over 600 boards for Apple and IBM PCs,MacMillan Press,(ISBN978-0-333-38006-2),p.187.
  3. J. A. N. Lee, «Computer Pioneers: Frederico Faggin», surIEEE Computer Society History Committee(consulté le)
  4. (en)«Federico Faggin», surComputer History Museum(consulté le)
  5. (en)«Zilog Z-80 Microcomputer System», surCentre for computing history(consulté le)
  6. James R. Strickland,Junk Box Arduino: Ten Projects in Upcycled Electronics,Apress,(ISBN9781484214268),« 11. Z80 Explorer »,p.308.
  7. Zilog Calls Time on the Venerable Z80, Discontinues the Standalone Z84C00 CPU Family
  8. en 2024, le statut dans le catalogue zilog est toujours "actif" https:// zilog /index.php?option=com_product&Itemid=26&task=parts&BL=1&familyId=20&productId=Z84015&puqs=b3B0aW9uPWNvbV9wcm9kdWN0JnRhc2s9cHJvZHVjdCZidXNpbmVzc0xpbmU9MSZpZD0xMzkmcGFyZW50X2lkPTEzOSZJdGVtaWQ9NTk=

Sur les autres projets Wikimedia:

Articles connexes

[modifier|modifier le code]