한국   대만   중국   일본 
Zilog Z80 ? Wikipedia Aller au contenu

Zilog Z80

Un article de Wikipedia, l'encyclopedie libre.
Z80
Description de cette image, également commentée ci-après
Copie du die d'un Z80A ; les dimensions reelles sont 4 950 × 4 720  μm
Informations generales
Production
Fabricant Zilog
Performances
Frequence 2,5  MHz  a 8  MHz
Largeur bus donnees 8 bits [ 1 ]
Largeur bus adresse 16 bits [ 1 ]
Specifications physiques
Finesse de gravure μm
Socket(s) 1
Architecture et classification
Architecture 8080
Boutisme petit-boutiste

Un des premiers processeurs Z80 fabriques en
La version LQFP du Z80.

Le Zilog Z80 est un microprocesseur 8 bits concu et fabrique par Zilog .

Ce processeur fut commercialise pour la toute premiere fois en . Au debut des annees 1980 il fut tres populaire dans la conception des ordinateurs 8 bits comme le Radio Shack TRS-80 , les Sinclair ZX80 , ZX81 , ZX Spectrum , le standard MSX , les Amstrad CPC , le PC-88 et plus tard dans les systemes embarques. Avec la famille des MOS 6502 , il domina le marche des ordinateurs 8 bits a partir de la fin des annees 1970 jusqu’au milieu des annees 1980 [ 2 ] .

Le Z80 a ete concu pour etre compatible avec l’ Intel 8080  : la majorite du code pour 8080 pouvait fonctionner sans grandes modifications sur le Z80.

Le systeme d’exploitation CP/M fut concu pour fonctionner sur les ordinateurs dotes d'un Intel 8080 et pouvait aussi fonctionner sans modification sur les ordinateurs dote d'un Z80.

Les ordinateurs dotes d'un Z80 etaient en general plus puissants et avaient plus de fonctionnalites que ceux dotes 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 lorsque Federico Faggin , apres avoir travaille sur l' Intel 8080 , quitta Intel a la fin de 1974 pour fonder Zilog avec Ralph Ungermann, pour, en , mettre le Z80 sur le marche [ 3 ] , [ 4 ] . Il a ete concu pour etre compatible au niveau binaire avec l’Intel 8080 de sorte que la plus grande partie du code 8080, notamment le systeme d’exploitation CP/M, fonctionne sans modification dessus [ 5 ] .

Le Z80 a rapidement pris la releve du 8080 sur le marche, et est devenu l’un des processeurs 8 bits les plus populaires. Peut-etre une des cles de la reussite du Z80 fut-elle le rafraichissement integre de la DRAM , et d’autres caracteristiques qui permettaient aux systemes d’etre construits avec moins de puces annexes [ 6 ] .

Pour la premiere generation NMOS , la frequence d'horloge maximale augmenta progressivement. Tout d’abord a 2,5  MHz , puis par le bien connu 4  MHz (Z80a), jusqu’a 6 (Z80b) et 8  MHz (Z80h). Une version CMOS fut developpee avec des frequences limites allant de 4  MHz a 20  MHz (pour la version vendue dans les annees 2000). La version CMOS a egalement un mode veille de basse consommation, avec conservation de l’etat du processeur (sans limite basse de frequence). Les Z180 et eZ80 , derives entierement compatibles, sont actuellement specifies pour un maximum de 33 et 50  MHz respectivement.

Des utilisations du processeur comprennent des calculatrices Texas Instruments , la gamme Amstrad CPC et GX4000 , les consoles de jeux video de salon Master System , ou portables game Boy . Certaines consoles plus puissantes dotees d’autres processeurs centraux comme la Neo Geo ou la Mega Drive avec son Motorola 68000 , utilisaient le Z80 comme processeur complementaire afin de gerer le son ou les entrees/sorties du systeme.

En 2007 , le Z80 n’est plus utilise que dans des systemes embarques, tels que des photocopieurs, des telecopieurs (fax), calculatrices et autres appareils de bureautique sous la forme de controleurs ≪ tout en un ≫, ceci, en raison de l’importante bibliotheque disponible pour ce processeur, et la facilite de son interfacage avec les claviers matriciels et les afficheurs LCD .

La fabrication du Z80 "standalone" est arretee en 2024 [ 7 ] , mais des derives du z80 sont toujours fabriques en tant que microcontroleurs [ 8 ] .

Composition du Z80 [ modifier | modifier le code ]

Ce microprocesseur a 16 lignes d’adresse ce qui lui permet en theorie d’adresser 65536 octets .

Il se compose de 5 parties :

  • une unite de controle ;
  • un compteur de programme ;
  • un registre d’instructions ;
  • une unite arithmetique et logique ;
  • 24 registres utilisateur.

Les registres [ modifier | modifier le code ]

Les registres du Z80
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (positions des bits)
Principaux registres
A Drapeaux AF ( a ccumulator and f lags,
accumulateur et drapeaux)
B C BC
D E DE
H L HL (indirect address,
indirection d'adresse)
Registres alternatifs
A' Flags' AF' ( a ccumulator and f lags,
accumulateur et drapeaux)
B' C' BC'
D' E' DE'
H' L' HL' (indirect address,
indirection d'adresse)
Registres indexes
IX I ndex X
IY I ndex Y
SP S tack P ointer,
pointeur de pile
Autres registres
  I I nterrupt vector,
vecteur d'interruption
  R R efresh counter,
compteur de rafraichissement
Compteur ordinal
PC P rogram C ounter,
compteur ordinal
Regsitre d'etat
  S Z - H - P / V N C F lags, drapeaux

On distingue deux categories de registres  : les principaux et les secondaires qui, contrairement a ce qu’indique leur nom, ont une reelle utilite car ils servent de registres image quand les echanges sont indispensables lors des calculs.

Les registres principaux sont composes de deux familles : des registres simples 8 bits, pouvant etre couples en registres pairs 16 bits et des registres IX, IY, SP 16 bits pouvant etre depareilles en registres 8 bits (sauf SP), servant a indexer la memoire car contenant un I comme index . Les registres comportant des L signifient Low et ceux comportant des H signifient High.

Le nom d’un registre de 8 bits est compose d’une seule lettre, tandis que celui d’un registre 16 bits est compose de deux lettres. Le couplage des registres de 8 bits se fait en nommant les deux registres, en commencant 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 appele aussi ≪  accumulateur . ≫ De tres nombreuses instructions en code machine se servent de ce registre. Il est tres utilise dans les operations de comparaisons.

Le registre F appele ≪ flag ≫ (drapeau en anglais), contient 8 indicateurs (drapeaux) sur le resultat du dernier calcul effectue. On trouve notamment :

Les registres B et C sont utilises comme compteurs et en conjonction avec les registres D et E dans des operations simples. Les registres H et L ont les memes proprietes et ont un appareil d’instruction tres riche, ils sont utilises pour contenir des adresses memoire mais leurs capacites sont inferieures a celles du registre A. Comme les registres I et R.

Les registres IX et IY sont des registres pairs, ils peuvent etre indexes et sont utiles pour les travaux sur des listes de tables. Pour le ZX 81 , ils servaient a la gestion du systeme comme l’affichage, le programmeur en langage machine devait les restaurer apres utilisation ce qui etait un inconvenient sur cette machine.

Le registre SP, appele stack pointer sert a ranger des resultats intermediaires dans une pile . PUSH et POP sont deux instructions cle de ce registre qui permettent respectivement de placer et de retirer un element de la pile.

Les familles d’instructions [ modifier | modifier le code ]

La premiere famille se compose des octets de chargement LD (load) qui charge la memoire dans un registre et inversement. Elle se compose aussi des instructions d’echange (EX) qui effectuent des echanges entre registres ou entre registres et valeurs.

La deuxieme famille se compose d’instructions arithmetiques comme l’ addition , la soustraction , la decrementation et l’ incrementation .

La troisieme famille se compose d’ instructions logiques comme AND et OR qui effectuent des operations en comparaison de deux registres bit a 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 leve differents drapeaux du registre F selon les resultats.

La quatrieme famille se compose d’instructions de branchements conditionnels et inconditionnels qui commandent des ruptures de sequence : JR (saut relatif), JP (saut simple), CALL, RST qui renvoient a 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 portee limitee (256 octets de la position courante du pointeur-programme).

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

Notes et references [ modifier | modifier le code ]

  1. a et b (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, ( ISBN   978-0-333-38006-2 ) , p.  187 .
  3. J. A. N. Lee, ≪  Computer Pioneers: Frederico Faggin  ≫, sur IEEE Computer Society History Committee (consulte le )
  4. (en) ≪  Federico Faggin  ≫, sur Computer History Museum (consulte le )
  5. (en) ≪  Zilog Z-80 Microcomputer System  ≫, sur Centre for computing history (consulte le )
  6. James R. Strickland, Junk Box Arduino: Ten Projects in Upcycled Electronics , Apress, ( ISBN   9781484214268 ) , ≪ 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://www.zilog.com/index.php?option=com_product&Itemid=26&task=parts&BL=1&familyId=20&productId=Z84015&puqs=b3B0aW9uPWNvbV9wcm9kdWN0JnRhc2s9cHJvZHVjdCZidXNpbmVzc0xpbmU9MSZpZD0xMzkmcGFyZW50X2lkPTEzOSZJdGVtaWQ9NTk=

Annexes [ modifier | modifier le code ]

Sur les autres projets Wikimedia :

Sources [ modifier | modifier le code ]

Articles connexes [ modifier | modifier le code ]