Zilog Z80

thumb|right|280px|Ένας από τους πρώτους μικροπεξεργαστές '''Z80''', που κατασκευάστηκε τον Ιούνιο του 1976
Ο **Ζ80** είναι μικροεπεξεργαστής (*CPU*) 8-bit που σχεδιάστηκε από την εταιρεία ημιαγωγών Zilog και κυκλοφόρησε τον Ιούλιο του 1976. Είχε ευρεία χρήση σε ηλεκτρονικούς υπολογιστές για στρατιωτικές χρήσεις. Ο Z80 και οι κλώνοι του μαζί με την τεχνολογία της οικογένειας επεξεργαστών 6502 είχαν την πιο εμφανή παρουσία στην αγορά των 8-bit μικροϋπολογιστών από τα τέλη της δεκαετίας του '70 μέχρι τα μέσα της δεκαετίας του '80. Ο χρονισμός έφτανε στα 2,5 MHz στον απλό και 4Mhz στον Z80A. Ο Z80 αντιγράφηκε κατά κόρον, χωρίς άδεια από τη *Zilog*, από πολλούς κατασκευαστές από την ανατολική Ευρώπη και τη Ρωσία.

## Ιστορία
Οι *Federico Faggin* και ο *Ralph Ungermann* ήταν οι ιδρυτές της Zilog και στυλοβάτες του πλάνου για την κατασκευή του Z80 και την εμφάνιση του στην αγορά τον Ιούλιο του 1976. Είχε σχεδιαστεί να είναι συμβατός σε επίπεδο  εντολών (γλώσσας μηχανής) με τον Intel 8080.  Ο πρώτος εκ των δύο ήταν πρώην στέλεχος της Intel και συμμετείχε στο σχεδιασμό της Κεντρικής Μονάδας Επεξεργασίας 8080 της εν λόγω εταιρείας. Ο Z80 ήταν σχεδιασμένος να είναι ψηφιακά συμβατός με τον Intel *8080*, κυρίως επειδή έτσι θα εξασφάλιζε συμβατότητα με το  δημοφιλέστατο εκείνη την εποχή λειτουργικό σύστημα CP/M. Επίσης ο Masatoshi Shima πρώην συνσχεδιαστής των επεξεργαστών της Intel 4004 και 8080 βοήθησε σημαντικά στην ανάπτυξη του Z80. Οι δυνατότητες του επεξεργαστή της Zilog ήταν υπερσύνολο των δυνατοτήτων του *8080*.

## Τεχνικά χαρακτηριστικά
Ο δίαυλος δεδομένων (*data bus*) του Z80 είναι των *8-bits* και ο δίαυλος διευθύνσεων (*address bus*) είναι των 16-bits, ο τελευταίος δηλαδή μπορεί να διευθυνσιοδοτήσει ως 2^16 θέσεις μνήμης (64Kb). Οι καταχωρητές είναι οι **B**, **C**, **D**, **E**, **H** και **L** και οι συμμετρικοί **B**', **C**', **D**', **E**', **H**' και **L**'. Έχει επίσης δύο συσσωρευτές (*accumulators*) που ονομάζονται **A** και **A**' και δύο καταχωρητές δεικτών καταστάσεως (*status flags*), τους **F** και **F**'. Σε μια τυπική εφαρμογή, οι κανονικοί καταχωρητές χρησιμοποιούνται για τις διαδικασίες του κύριου προγράμματος, ενώ οι τονούμενοι καταχωρητές χρησιμοποιούνται για το χειρισμό διακοπών (*interrupts*). Οι τονούμενοι καταχωρητές μπορούν να γίνουν προσιτοί με μια σειρά εντολών ανταλλαγής (*exchange*) που ανταλλάσσουν τα περιεχόμενα ενός ζεύγους καταχωρητών με το αντίστοιχο τονούμενο ζεύγος. Επίσης υπάρχουν οι καταχωρητές απαριθμητή προγράμματος **PC** (*program counter*) και δείκτης σωρού **SP** (*stack pointer*). Η λειτουργία του stack είναι τύπου LIFO (*Last Input First Output*) δηλαδή η τελευταία εντολή είναι αυτή που εξέρχεται πρώτη. Δύο καταχωρητές ειδικής χρήσεως είναι οι καταχωρητές δείκτη (Index registers) **IX** και **IY**. Ο καθένας από αυτούς είναι των 16bits και δίνει την επιπλέον δυνατότητα να απευθύνεται κανείς στη μνήμη με τη βοήθεια μιας αρχικής διεύθυνσης και μετατόπισης (offset). Δύο ακόμη ειδικοί καταχωρητές είναι ο **I** (*interrupt vector register*) των 8bits που συγκρατεί το byte υψηλής τάξεως μιας διεύθυνσης διακοπής (vector address) και χρησιμοποιείται σε μια διακοπή (interrupt) και ο καταχωρητής ανανεώσεως της μνήμης **R**.

### Οι λειτουργίες του Z80
Οι λειτουργίες του Z80 μαζί με το εύρος λειτουργίας τους, όπου αυτό χρειάζεται, συνοψίζονται παρακάτω :  
* Αριθμητικές και λογικές λειτουργίες 8-bit
* Αριθμητικές λειτουργίες 16-bit
* Φόρτωση 8-bit
* Φόρτωση 16-bit
* Έλεγχος και μηδενισμός bit
* Κλήση, επιστροφή και επανεκκίνηση
* Αλλαγή, μεταφορά και εύρεση
* Γενικής χρήσης αριθμητική και έλεγχος της Κεντρικής Μονάδας Επεξεργασίας (CPU)
* Είσοδος και έξοδος
* Άλμα (*Jump*)
* Περιστροφή και Αλλαγή

## Χρήση σε υπολογιστές και εξομοιωτές
Από το 1976 ώς το 1990 ο Ζ80 χρησιμοποιήθηκε σε περίπου 200  ηλεκτρονικούς υπολογιστές, όλων των τύπων και ειδών. Ενδεικτική λίστα παρακάτω:
* Osborne στα μοντέλα *Vixen*, *Osborne 1* και *Executive*. 
* Kaypro στα μοντέλα *Robie*, *Kaypro 1*, II, 2X, 4, 10.
* Radio Shack στα μοντέλα TRS-80, Model II και Model III. 
* Commodore στο μοντέλο Commodore 128. 
* Sinclair Research στα μοντέλα ZX80, ZX81, ZX Spectrum, ZX Spectrum +
* Amstrad σε όλη τη σειρά Amstrad CPC, στα μοντέλα Spectrum +2, Spectrum +3 και σε όλη τη σειρά PCW
## Παραπομπές

## Πηγές
* Εισαγωγή στους μικροεπεξεργαστές και στον προγραμματισμό τους, ΤΟΥ ΝΙΚΟΛΑΟΥ ΒΟΥΛΓΑΡΗ (ΞΑΝΘΗ 1985) - Εκδόσεις: N.ΑΙΒΑΖΗΣ-Σ. ΖΟΥΜΠΟΥΛΗΣ.

## Εξωτερικοί σύνδεσμοι

* Zilog Z80 Product Family
* Z80-Family Official Support Page
* Z80 software emulators
* Yet Another Z80 Emulator by AG (YAZE-AG)
* DEEDS - Digital Electronics Education and Design Suite - Simulators for Digital Design Training - The suite covers also microprocessor systems based on the DMC8 (an 8 bit CPU derived from Z80), and exports projects in VHDL and on FPGA (free download)
* Flite Electronics: Manufacturer of the Z80 Microprofessor Training System
* Free Z80 CPU core (VHDL code), (Verilog code)
* The Undocumented Z80 Documented
* N8VEM SBC
* mdfs.net: Z80 opcode list
* Mostek Z80 Processor Technical Manual
* Sharp LH0080 at CPU World
* Z80 Bus Emulator for education purpose. Includes NEC's TK-80 Training-Kit-, ZX-80 Microcomputer-, CP/M 2.2 Emulator. 
* How the Z80's registers are implemented in silicon

Κατηγορία:Μικροεπεξεργαστές