MOS Technology 6502

Ο MOS Technology 6502 είναι 8-bit-μικροεπεξεργαστής της MOS Technology, Inc., ο οποίος κυκλοφόρησε στην αγορά το 1975. Η μεγάλη του επιτυχία είχε να κάνει με την απλότητά του αλλά κυρίως με την υψηλή αποδοτικότητά του και την συγχρόνως χαμηλή του τιμή, σε σχέση με τους καθιερωμένους επεξεργαστές της Intel και της Motorola. Χρησιμοποιήθηκε σε πολυάριθμους οικιακούς υπολογιστές (π.χ. τους Commodore VC-20, PET 2001, Atari 400/800/1200 XL, Apple II και III). Ανάλογη επιτυχία είχαν επίσης και άλλοι µικροεπεξεργαστές της σειράς MOS 6500, όπως ο 6510 για τον Commodore 64 και ο 6507 για κονσόλες της Atari.

Γενικά 
Ο 6502 σχεδιάστηκε με βάση τον Motorola 6800. Στο σύνολο εντολών οι δυο επεξεργαστές μοιάζουν, αλλά αντί για 16-bit καταχωρητή (register) ο 6502 χρησιμοποιεί δυο 8-bit-καταχωρητές, η αξία των οποίων προστίθεται σε 16-bit διεύθυνση που προσδιορίζεται στη μνήμη. Για το λόγο αυτό οι εφαρμογές του 6502 έχουν διαφορετικό στιλ: για arrays άνω των 256 bytes πρέπει να γίνει επιπλέον προγραμματισμός. Από την άλλη μεριά οι 8-bit-μικροεπεξεργαστές τροποποιούν τις αξίες των 8 bit με πολύ μεγαλύτερη ταχύτητα. 

Τροποποιήσεις του επεξεργαστή 6502 κυκλοφορούσαν μέχρι και το 2009, μεταξύ άλλων ως εξαρτήματα της αριθμομηχανής HP-35s ή και ελεγκτών (controllers) διάφορων πληκτρολογίων.

Τεχνικά στοιχεία 
 Τεχνολογία: NMOS, HMOS, CMOS
 Αριθμός τρανζίστορ: περίπου 5.000
 Σήµα χρονισµού (clock signal): αρχικά 20 kHz μέχρι 4 MHz. Εκδοχή CMOS: 0 μέχρι 14 MHz
 Clock cyclus ανά εντολή: 2 με 7
 Χώρος διευθύνσεων: 64 KiByte, δίχως ξεχωριστό χώρο διευθύνσεων I/Ο (όπως π.χ. ο Intel 8080). Όλα δηλαδή τα I/Ο υλοποιούνται μέσω Memory Mapped I/O.
 Πλάτος διαύλου διευθύνσεων (address bus): 16 bit
 Πλάτος διαύλου δεδομένων (data bus): 8 bit
 Interrupts: ένα NMI, ένα IRQ, και software-interrupt μέσω εντολής BRK
 Εντολές: αρχικά 56, εκδοχή CMOS: 70
 Τρόποι διευθυνσιοδότησης: αρχικά 13, εκδοχή CMOS: 16
 Endianness: little endian
 Καταχωρητές (registers):
 Γενικός καταχωρητής (accumulator), 8 bit.
 2 καταχωρητές δείκτες (X και Y), 8 bit.
 Δείκτης στοίβας (stack pointer), 16 bit. 
 Καταχωρητής κατάστασης (status register), 7 bit (Ενδείκτες (Flags): Carry, Zero, Decimal, Interrupt Disable, Break*, Overflow, Negative).
 Μετρητής εντολών (instruction pointer), 16 bit.
 Η μηδενική σελίδα (zero page, στον χώρο διευθύνσεων $00xx) μπορεί να θεωρηθεί αρχείο καταχωρητών (register-file) λόγω των ειδικών και γρήγορων τρόπων διευθυνσιοδότησης της.

Παραπομπές

Βιβλιογραφία 
 Bagnall, Brian: On The Edge: The Spectacular Rise and Fall of Commodore, ISBN 0973864907
 Rodnay Zaks: Programming the 6502, ISBN 0895880288 
 Lance A. Leventhal: 6502 Assembly Language Programming, ISBN 007881216X
 Ekkehard Flögel: Programmieren in Maschinensprache mit dem 6502, ISBN 3921682614

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

6502.org - the 6502 microprocessor resource (αγγλικά)

Commodore
Μικροεπεξεργαστές