Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Copie du
die
d'un Z80A ; les dimensions reelles sont 4 950 × 4 720
μm
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
|
5
μm
|
Socket(s)
|
1
|
modifier
![Consultez la documentation du modèle](//upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/12px-Info_Simple.svg.png)
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.
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
]
.
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 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.
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.
- ↑
a
et
b
(en)
Zilog,
Z80 Family CPU User Manual
,
(
lire en ligne
)
,
p.
5
.
- ↑
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
.
- ↑
J. A. N. Lee, ≪
Computer Pioneers: Frederico Faggin
≫, sur
IEEE Computer Society History Committee
(consulte le
)
- ↑
(en)
≪
Federico Faggin
≫, sur
Computer History Museum
(consulte le
)
- ↑
(en)
≪
Zilog Z-80 Microcomputer System
≫, sur
Centre for computing history
(consulte le
)
- ↑
James R. Strickland,
Junk Box Arduino: Ten Projects in Upcycled Electronics
, Apress,
(
ISBN
9781484214268
)
, ≪ 11. Z80 Explorer ≫,
p.
308
.
- ↑
Zilog Calls Time on the Venerable Z80, Discontinues the Standalone Z84C00 CPU Family
- ↑
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=
Sur les autres projets Wikimedia :
- Rodnay
Zaks
,
Programming the Z 80
,
Sybex
,
(
reimpr.
1980, 1981), 630
p.
(
ISBN
0-89588-094-6
et
2-902414-20-X
,
lire en ligne
)
- Composition du Z80, les registres, les familles d’instructions :
La pratique du ZX 81
, 1984, editions du PSI