Die 8080-CPU der Firma Intel kann als der Stammvater der sogenannten 80er Familie bezeichnet werden. Diese CPU ist seit 1974 lieferbar. Die Z80-CPU wurde von der Firma Zilog entwickelt und wird seit 1977 vertrieben. Dieser Mikroprozessor ist als konsequente Weiterentwicklung des 8080 Mikroprozessors zu sehen. Der Z80 ist aufwärtskompatibel zum 8080, das heißt er "versteht" alle Befehle des 8080 und besitzt darüber hinaus einen stark erweiterten Befehlssatz. Dieser erweiterte Befehlssatz sollte aber für CP/M-Anwenderprogramme nicht genutzt werden, da Programme dann nicht mehr auf allen CP/M-Rechnern laufen würden (keine Kompatibilität mehr). Die Nutzung des erweiterten Befehlssatzes ist also auf Einzelanwendungen beschränkt, oder man setzt eben einen Z80 voraus.
Wer nun glaubt, er könne einen defekten Z80 durch einen 8080 austauschen, der irrt gewaltig. Die Kompatibilität dieser beiden Prozessoren beschränkt sich auf den Befehlssatz des 8080, das heißt, der Z80 versteht die Opcodes des 8080. Hardwaremäßig besteht keine Kompatibilität. Der 8080 (und die 8080-Nachfolger der Firma Intel) benutzt einen gemultiplexten Datenbus, das heißt auf den Adreßleitungen A0-A7 werden abwechselnd Adressen und Daten "transportiert", während beim Z80 alle Anschlüsse einzeln herausgeführt werden.
Normalerweise kann ein 8-Bit Prozessor maximal 256 Befehle haben. Durch einen Trick kann der Z80 aber wesentlich mehr verwalten. Mittels spezieller Opcodes wird zwischen den Befehlssätzen einfach umgeschaltet. So sind theoretisch über 1000 Befehle möglich, tatsächlich genutzt werden etwa 700.
Obwohl ein Z80 mit wesentlich höherer Taktfrequenz als etwa ein 6502 betrieben wird, ist er etwa gleich schnell. Das kommt daher, dass beim Z80 die einzelnen Maschinenbefehle mehr Taktzyklen beanspruchen. Das Taktverhältnis ist etwa 1:3 bis 1:4 zwischen 6502 und Z80. Durch Pipelining (der Prozessor lädt schon den nächsten Befehl, während der aktuelle noch bearbeitet wird) wird die Arbeitsgeschwindigkeit jedoch noch einmal gesteigert.
Die Technik
Der Z80-Mikroprozessor besitzt einen 8 Bit breiten Datenbus (deshalb 8-Bit Prozessor), einen 16 Bit breiten Adressbus und einen Steuerbus. Der Systemtakt muss extern von einem separaten Taktgenerator erzeugt werden. Der prinzipielle interne Aufbau des Z80-Prozessors sieht wie folgt aus:
Im Inneren befinden sich:
- eine Arithmetik-Logik-Einheit (ALU)
- ein Steuerwerk, das die internen Abläufe steuert sowie den Steuerbus verwaltet
- interne Daten- Adress und Steuerbusse. Diese internen Busse sind durch Puffer von den äußeren Bussen getrennt.
- vier reine Adressregister:
- der Befehlszähler (PC, 16 Bit)
- der Stapelzeiger (SP, 16 Bit)
- die Indexregister (IX und IY, jeweils 16 Bit)
- ein Interrupt-Register (I, 8 Bit), welches bei der Interruptverarbeitung mithilft
- ein Refresh-Register (R, 8 Bit), das dazu dient, dynamische Speicher aufzufrischen
- zwei Arbeitsregistersätze, von denen jedoch nur einer zur Zeit benutzt werden kann..
Jeder der beiden Arbeitsregistersätze enthält:
- Einen Akkumulator (A, 8 Bit)
- Sechs Arbeitsregister (B,C,D,E,H und L, jeweils 8 Bit)
- Ein Flagregister (F, 8 Bit)
Die Arbeitsregister können paarweise zu 16 Bit Registern zusammengefaßt werden. Die möglichen Kombinationen sind AF, BC, DE und HL. Der zweite Arbeitsregistersatz arbeitet genau wie der erste, um die Register auseinanderhalten zu können, werden sie mit einem ' (Hochkomma) versehen, also beispielsweise A'.
Es existieren noch weitere interne Register, die jedoch für den Programmierer nicht direkt erreichbar sind.
Der Z80 benutzt zur Ein- und Ausgabe eine besondere Input/Output Request-Line (IORQ) und besondere Befehle, und wickelt den Kontakt zur Außenwelt nicht wie der 6502 über den "normalen" Adressbereich ab. Hierbei wird über die untere Hälfte des Adressbusses adressiert (A0 - A7)
- Commodore 128
- CBM 600 (Optional)
Datenblatt: | Zilog Z80 |
---|---|
Erscheinungsjahr : | 1977 |
Ca. Neupreis : | ? |
Taktfrequenz : | Üblicherweise 4 Mhz |
Adreßbereich : | Maximal 16 Bit (65536 Byte) |
Datenbusbreite : | 8 Bit |
Befehle : | Mehr als 700 |
Adressierungsmodi : | 13 |
Register : | - 2x Akkumulator, 8 Bit - IX und IY : zwei Index Register, 8 Bit - Stapelzeiger, 8 Bit - Sechs normale Register, 8 Bit, zusammenfassbar in drei 16 Bit Register - Befehlszähler, 16 Bit |
Stromaufnahme : | 5 V |
Anzahl Pins : | 40 |
Gehäuseform : | DIP (Dual Inline Package) |
Transistoren : | 8.500 |
Strukturgröße : | 4.000 nm (18 mm²) |