Copyright 2012 Γ. Αλεξίου, Ν. Πετρέλλης / Εκδόσεις Κλειδάριθμος Έδρα: Στουρνάρη 27Β Αθήνα 106 82



Σχετικά έγγραφα
ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Οργάνωση Υπολογιστών (ΙI)

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 4ο ΜΝΗΜΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Μνήμη και Προγραμματίσιμη Λογική

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Κεντρική Μονάδα Επεξεργασίας

Τεχνολογίες Κύριας Μνήμης

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

Δομή Ηλεκτρονικού υπολογιστή

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Βασίλειος Κοντογιάννης ΠΕ19

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

Μαλούτα Θεανώ Σελίδα 1

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Εφαρμογές μικροελεγκτών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

Εισαγωγή στην επιστήµη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Οργάνωση Υπολογιστών (Ι)

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

1.4 Κατάταξη των υπολογιστών

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Ψηφιακή Λογική Σχεδίαση

Βασικές Έννοιες της Πληροφορικής

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

Αρχιτεκτονικές Συνόλου Εντολών

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Αρχιτεκτονική υπολογιστών

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

Αρχιτεκτονική Μνήμης

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΩΤΑΠΑΝΤΗΣΕΙΣ

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Το υλικό του υπολογιστή

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 5 ο Οργάνωση Υπολογιστών. Δρ.

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Εισαγωγή στην πληροφορική

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Βασική δοµή και Λειτουργία Υπολογιστή

Αρχιτεκτονική υπολογιστών

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αρχιτεκτονική Μνήµης

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή

Αρχιτεκτονική υπολογιστών

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

ΕΙ Η ΜΝΗΜΩΝ ΠΤΥΤΙΚΕΣ ΜΗ ΠΤΥΤΙΚΕΣ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

Χρ. Καβουσιανός Επίκουρος Καθηγητής

.Λιούπης. Ψηφιακά Ηλεκτρονικά - Ηµιαγωγικές Μνήµες 1

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΗ

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

Transcript:

Τίτλος: Μικροεπεξεργαστές και σχεδιασμός μικροϋπολογιστικών συστημάτων Copyright 2012 Γ. Αλεξίου, Ν. Πετρέλλης / Εκδόσεις Κλειδάριθμος Έδρα: Στουρνάρη 27Β Αθήνα 106 82 Κεντρική Διάθεση: Δομοκού 4, Σταθμός Λαρίσης Αθήνα 104 40 Τηλ.: 210 52.37.635 Fax: 210 52.37.677 email: info@klidarithmos.gr www.klidarithmos.gr www.facebook.com/klidarithmos.gr Απαγορεύεται η αναπαραγωγή οποιουδήποτε τμήματος του βιβλίου με οποιοδήποτε μέσο (φωτοτυπία, εκτύπωση, μικροφίλμ, ή άλλη μηχανική ή ηλεκτρονική μέθοδο) χωρίς την άδεια του εκδότη. Εικόνα εξωφύλλου: Edelweiss - Fotolia.com ISBN: 978-960-461-500-1 Εκτύπωση: Α. Χονδρορίζος & Σια Ο.Ε., 210-5126233, lithoxon@otenet.gr

Περιεχόμενα Πρόλογος... 11 Εισαγωγή... 14 ΚΕΦΑΛΑΙΟ 1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων... 15 1.1 Δομή ηλεκτρονικού υπολογιστή...15 1.2 Δομή μικροϋπολογιστών...16 1.3 Η ΚΜΕ...19 1.4 Η μνήμη...23 1.4.1 Η στατική μνήμη ανάγνωσης/εγγραφής (SRAM)...23 1.4.2 Η μνήμη μόνο για ανάγνωση (ROM)...26 1.4.3 Η δυναμική μνήμη RAM (DRAM) και οι σύγχρονες δυναμικές RAM (SDRAM)...26 1.4.4 Αρχιτεκτονική χώρου διευθύνσεων...28 1.5 Ρολόι συστήματος...30 1.6 Κύκλοι εντολής, μηχανής, και ρολογιού...31 1.7 Θύρες εισόδου/εξόδου...32 1.8 Σειριακές θύρες...33 1.9 Χρονιστές/Μετρητές...34 1.10 Ελεγκτής διακοπών...35 1.11 Άμεση προσπέλαση μνήμης...36 Ερωτήσεις - Ασκήσεις...38

6 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΕΦΑΛΑΙΟ 2 Ο μικροεπεξεργαστής Ζ80... 41 2.1 Εισαγωγή...41 2.2 Προγραμματιζόμενοι καταχωρητές του Ζ80...42 2.2.1 Καταχωρητές ειδικής χρήσης...42 2.2.2 Καταχωρητές γενικής χρήσης...44 2.3 Αριθμητική και λογική μονάδα...45 2.4 Τρόποι διευθυνσιοδότησης...45 2.5 Ακροδέκτες και χρονισμοί...46 2.5.1 Εισαγωγή...46 2.5.2 Δίαυλος διευθύνσεων...46 2.5.3 Δίαυλος δεδομένων...47 2.5.4 Σήματα ελέγχου διαύλων...47 2.5.5 Σήματα ελέγχου συστήματος...48 2.5.6 Σήματα ελέγχου ΚΜΕ...49 2.5.7 Χρονισμοί...50 2.6 Οι εντολές του Ζ80...58 2.6.1 Εντολές φόρτωσης...58 2.6.2 Εντολές ανταλλαγής, μαζικής μεταφοράς, και αναζήτησης...59 2.6.3 Αριθμητικές και λογικές εντολές...60 2.6.4 Εντολές περιστροφής και ολίσθησης...61 2.6.5 Εντολές χειρισμού bit...62 2.6.6 Εντολές άλματος...62 2.6.7 Εντολές εισόδου και εξόδου...62 2.6.8 Εντολές γενικής χρήσης...63 2.7 Διακοπές...66 2.7.1 Γενικά...66 2.7.2 Διακοπές τύπου ΙΝΤ~ (Normal External Interrupt)...67 2.7.3 NMI~ (Non Maskable Interrupt)...68 2.8 Σύνοψη συνόλου εντολών...68 Ερωτήσεις - Ασκήσεις...73 2.9 Συσκευές υποστήριξης του Ζ80...75 2.9.1 Παράλληλη είσοδος/έξοδος του Z80...75 2.9.2 Κύκλωμα χρονομετρητή ρολογιού του Z80...88 Ερωτήσεις - Ασκήσεις...94 2.9.3 Σειριακή είσοδος/έξοδος του Z80...95 2.9.4 Άμεση προσπέλαση μνήμης...120 2.10 Παράδειγμα ολοκληρωμένου μικροϋπολογιστικού συστήματος με Ζ80...140 Ερωτήσεις - Ασκήσεις...145

Περιεχόμενα 7 ΚΕΦΑΛΑΙΟ 3 Οι μικροεπεξεργαστές της Intel... 149 3.1 Η εξέλιξη της αρχιτεκτονικής των επεξεργαστών Intel...149 3.2 Ο μικροεπεξεργαστής 8080Α...152 3.2.1 Γενικά χαρακτηριστικά...152 3.2.2 Οι καταχωρητές του 8080Α...154 3.2.3 Ακροδέκτες και σήματα του 8080Α...155 3.2.4 Κύκλοι μηχανής και σήματα κατάστασης...158 3.2.5 Η χρονική ακολουθία εκτέλεσης των εντολών...161 3.2.6 Οι καταστάσεις WAIT, HOLD και HALT...164 3.2.7 Η αρχικοποίηση του 8080Α...167 3.2.8 Οι διακοπές στον 8080Α...167 3.2.9 Τρόποι διευθυνσιοδότησης των εντολών του 8080Α...170 3.2.10 Συσκευές υποστήριξης του 8080Α...171 3.3 Ο μικροεπεξεργαστής 8085...173 3.4 Κοινές εντολές των 8080Α/8085...174 3.5 Σχεδίαση ολοκληρωμένου συστήματος με 8085...186 3.5.1 Στόχος...186 3.5.2 Μετρητές/Χρονιστές στο 8253...186 3.5.3 Ελεγκτής διακοπών 8259...188 3.5.4 Παράλληλες θύρες με μνήμη και χρονιστές/μετρητές (8x55)...189 3.5.5 Άμεση προσπέλαση μνήμης με το 8237...191 3.5.6 Υπολογιστικό σύστημα με 8085...195 Ερωτήσεις - Ασκήσεις...199 3.6 Ο μικροεπεξεργαστής 8086...201 3.6.1 Η αρχιτεκτονική του 8086...201 3.6.2 Ο χώρος διευθύνσεων του 8086...203 3.6.3 Οι καταχωρητές του 8086...204 3.6.4 Ακροδέκτες του 8086...206 3.6.5 Χρονισμός του 8086...208 3.6.6 Αρχικοποίηση και διακοπές του 8086...208 3.6.7 Το σύνολο εντολών του 8086...211 3.7 Η οικογένεια Pentium...217 3.7.1 Χρήση κρυφής μνήμης...217 3.7.2 Η αρχιτεκτονική του Pentium Pro...218 3.7.3. Λεπτομερέστερη περιγραφή του Pentium Pro...220 3.7.4 Καταστάσεις λειτουργίας από την πλευρά του προγραμματιστή...227 3.7.5 Αρχιτεκτονική μνήμης...228 3.7.6 Διευθύνσεις 32 και 16 bit...231 3.7.7 Καταχωρητές...232

8 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3.7.8 Μήκος ορισμάτων...238 3.7.9 Κλήση υπορουτινών...238 3.7.10 Διακοπές και εξαιρέσεις...243 3.7.11 Κλήσεις ρουτινών για δομημένες γλώσσες προγραμματισμού...246 3.7.12 Βασικοί τύποι...249 3.7.13 Τρόποι διευθυνσιοδότησης...250 3.7.14 Μονάδα κινητής υποδιαστολής...251 3.7.15 Είσοδος/Έξοδος...255 3.7.16 Εξελιγμένα χαρακτηριστικά των σύγχρονων Pentium 4...257 3.7.17 Ενδεικτικοί ακροδέκτες επεξεργαστή Intel Pentium...262 Ερωτήσεις - Ασκήσεις...264 3.8 945G: Σύνολα τσιπ για επεξεργαστές Intel Pentium...268 3.8.1 Γενικά...268 3.8.2 Ο ελεγκτής μνήμης γραφικών...270 3.8.3 Διασύνδεση με τον ελεγκτή ICH7...273 3.8.4 Διασύνδεση διαύλου PCI Express...273 3.8.5 Δομή και ακροδέκτες του GMCH...274 3.8.6 Προγραμματισμός του ελεγκτή GMCH...278 3.8.7 Καταχωρητές της συσκευής Device0...279 3.8.8 Καταχωρητές του ελεγκτή μνήμης...284 3.8.9 Καταχωρητές για το PCI Express...289 3.8.10 Καταχωρητές DMI...292 3.8.11 Ενσωματωμένα γραφικά...293 3.8.12 Χάρτης διευθύνσεων του GMCH...299 3.9 Ο ελεγκτής ICH7...305 3.9.1 PCI Express...311 3.9.2 Ο ελεγκτής διακοπών APIC...313 3.9.3 Ελεγκτής IDE...315 3.9.4 Ελεγκτής SATA...319 3.9.5 Ελεγκτής ήχου AC 97...327 Ερωτήσεις Ασκήσεις...332 ΚΕΦΑΛΑΙΟ 4 Μικροελεγκτές 8 bit... 337 4.1 Ο μικροελεγκτής ATMEL ATtiny2313...338 4.1.1 Γενικά χαρακτηριστικά του ATtiny2313...339 4.1.2 Η αρχιτεκτονική του ATtiny2313...340 4.1.3 Το ρολόι συστήματος...340 4.1.4 H μνήμη του συστήματος...342 4.1.5 Υποστηριζόμενοι τρόποι διευθυνσιοδότησης...345 4.1.6 Προσπέλαση μνήμης για εκτέλεση εντολών...349

Περιεχόμενα 9 4.1.7 O καταχωρητής κατάστασης (SREG)...349 4.1.8 Ο δείκτης στοίβας...350 4.1.9 Χειρισμός διακοπών και επανεκκίνησης...352 4.1.10 Χρονιστές/Μετρητές...358 4.1.11 Η μνήμη EEPROM...364 4.1.12 Σειριακή επικοινωνία USART...366 4.1.13 Αναλογικός συγκριτής...371 4.1.14 Θύρες με ακροδέκτες γενικού σκοπού...373 4.1.15 Παράλληλος προγραμματισμός μνημών Flash/EEPROM...376 4.1.16 Σειριακός προγραμματισμός της μνήμης...380 4.1.17 Επεξεργαστές RISC και CISC...384 4.1.18 Εντολές του ATtiny2313...384 Ασκήσεις - Ερωτήσεις...388 4.2 Ο μικροελεγκτής 6805...390 4.2.1 Η αρχιτεκτονική του MC68HC705C8...390 4.2.2 Οι ακροδέκτες του MC68HC705C8...393 4.2.3 Τρόποι διευθυνσιοδότησης...393 4.2.4 Χρονιστής Watchdog του COP...394 4.2.5 Θύρες Ι/Ο...395 4.2.6 Σειριακή Διασύνδεση Επικοινωνιών (SCI)...397 4.2.7 Σειριακή Διασύνδεση Περιφερειακών...401 4.2.8 Μετρητής/Χρονιστής του MC68HC705C8...404 4.2.9 Εντολές διακοπής/αναμονής...404 4.2.10 Σύνολο εντολών του 6805...405 Ερωτήσεις - Ασκήσεις...411 4.3 Ο μικροελεγκτής 8051...412 4.3.1 Αρχιτεκτονική του 8051...412 4.3.2 Οργάνωση μνήμης...415 4.3.3 Τρόποι διευθυνσιοδότησης...421 4.3.4 Σύνολο εντολών 8051...423 4.3.5 Κύκλοι μηχανής...425 Ερωτήσεις - Ασκήσεις...428 4.4 Ο μικροελεγκτής 16F690 της οικογένειας Microchip PIC...428 4.4.1 Η αρχιτεκτονική του PIC16F690...429 4.4.2 Οργάνωση μνήμης...431 4.4.3 Πίνακας εντολών του PIC16F690...441 4.4.4 Θύρες ακροδεκτών γενικού σκοπού του PIC16F690...443 4.4.5 Χρονομετρητές του PIC16F690...444 4.4.6 Αναλογικοψηφιακός μετατροπέας (ADC) 10 bit & 12 καναλιών.445 Ερωτήσεις - Ασκήσεις...449

10 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΕΦΑΛΑΙΟ 5 Ο μικροελεγκτής AT91RM9200 32 bit της Atmel... 451 5.1 Γενικά χαρακτηριστικά του AT91RM9200...452 5.1.1 Ο πυρήνας ARM920T...453 5.1.2 Κρυφή μνήμη...462 5.1.3 Μέθοδοι ελέγχου και αποσφαλμάτωσης...463 5.1.4 Πρόγραμμα εκκίνησης...464 5.1.5 Ελεγκτής μνήμης...464 Ερωτήσεις - Ασκήσεις...470 5.1.6 Διασύνδεση εξωτερικού διαύλου...472 5.1.7 Ελεγκτής άμεσης προσπέλασης μνήμης...484 5.1.8 Προηγμένος ελεγκτής διακοπών...485 5.1.9 Ελεγκτής τοπικού δικτύου επιπέδου ελέγχου προσπέλασης μέσου (MAC)...485 Ερωτήσεις - Ασκήσεις...514 ΠΑΡΑΡΤΗΜΑ A Σύγχρονες δυναμικές μνήμες διπλού ρυθμού δεδομένων... 519 ΠΑΡΑΡΤΗΜΑ B Σύνολο εντολών 80x86... 525 ΠΑΡΑΡΤΗΜΑ Γ Ο δίαυλος PCI... 559 ΠΑΡΑΡΤΗΜΑ Δ Σύνολο εντολών ARM και Thumb... 575

Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 1.1 Δομή ηλεκτρονικού υπολογιστή Η σημερινή ευρεία διάδοση των ηλεκτρονικών υπολογιστών (ΗΥ) οφείλεται στην εξέλιξη της τεχνολογίας των ημιαγωγών. Ολοκληρωμένα κυκλώματα διαστάσεων μερικών τετραγωνικών χιλιοστών αποτελούνται από πολλά εκατομμύρια τρανζίστορ τα οποία μπορούν να λειτουργούν σε υψηλές ταχύτητες. Όμως η φιλοσοφία της λειτουργίας των ΗΥ είχε ήδη περιγραφεί με ακρίβεια από τις αρχές του προηγούμενου αιώνα, πολύ πριν την αλματώδη εξέλιξη της τεχνολογίας των ημιαγωγών. Στις μηχανές Turing είναι κυρίαρχη η έννοια ενός εξαρτήματος το οποίο μπορεί να σκέφτεται και να λαμβάνει αποφάσεις (Κεντρική Μονάδα Επεξεργασίας ΚΜΕ, Central Processing Unit CPU) και ενός εξαρτήματος το οποίο να μπορεί να «θυμάται» (μνήμη). Την ΚΜΕ θα την καλούμε συχνά και ως «επεξεργαστή» ή «μικροπεξεργαστή» (microprocessor) από τον όρο που καθιερώθηκε όταν όλα τα κυκλώματα της ΚΜΕ μπόρεσαν να ενσωματωθούν σε ένα ολοκληρωμένο κύκλωμα στις αρχές της δε- ΚΜΕ Μονάδες εισόδου Μονάδες εξόδου Κύρια μνήμη Δευτερεύουσα μνήμη Σχήμα 1-1. Η βασική δομή ενός ΗΥ

16 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ καετίας του '70. Ένα ολοκληρωμένο κύκλωμα στο οποίο, εκτός από την ΚΜΕ, έχουν ενσωματωθεί και διάφορα περιφερειακά κυκλώματα ονομάζεται «μικροελεγκτής» (microcontroller). Στην μνήμη μπορούν να αποθηκεύονται τόσο οι πληροφορίες (δεδομένα) τις ο- ποίες επιθυμούμε να επεξεργάζεται ο ΗΥ για να παράγει αποτελέσματα, όσο και τις ο- δηγίες (κώδικας αποτελούμενος από εντολές) τις οποίες θα πρέπει να ακολουθεί η ΚΜΕ. Συχνά, η περιοχή μνήμης όπου αποθηκεύονται οι εντολές ονομάζεται μνήμη προγράμματος ενώ εκείνη στην οποία αποθηκεύονται τα δεδομένα ονομάζεται μνήμη δεδομένων. Σε συστήματα γενικής χρήσης όπως είναι οι προσωπικοί υπολογιστές (Personal Computers PCs), η μνήμη είναι πολυεπίπεδη και τα διάφορα επίπεδά της διαφέρουν ως προς την ταχύτητα προσπέλασης και το μέγεθός τους. Τα δύο αυτά μεγέθη είναι συνήθως αντιστρόφως ανάλογα μεταξύ τους. Έτσι, η ΚΜΕ μπορεί να προσπελάζει άμεσα μνήμη τύπου στατικής RAM (σε επίπεδο κρυφής ή κύριας μνήμης) αλλά για μόνιμη αποθήκευση δεδομένων και προγραμμάτων μεγάλου όγκου χρησιμοποιεί τις πιο αργές μονάδες αποθήκευσης της δευτερεύουσας μνήμης (σκληρός δίσκος, CD/DVD κ.λπ.). Μια ΚΜΕ έχει την ικανότητα να προσκομίζει διαφόρων τύπων εντολές από την μνήμη. Οι εντολές αυτές μπορεί να είναι απλές αριθμητικές πράξεις (προσθέσεις, αφαιρέσεις, πολλαπλασιασμοί, διαιρέσεις), λογικές πράξεις (ΚΑΙ, Ή, Αποκλειστικό Ή, ΌΧΙ, Ολισθήσεις ή Περιστροφές των δυαδικών ψηφίων ενός αριθμού), συγκρίσεις αριθμών, διακλαδώσεις με ή χωρίς συνθήκες, μεταφορά αριθμών μεταξύ θέσεων μνήμης και καταχωρητών κ.ά. Τα δεδομένα εισάγονται στον ΗΥ μέσω ειδικών περιφερειακών συσκευών που ο- νομάζονται μονάδες εισόδου (π.χ., πληκτρολόγιο, ποντίκι, μικρόφωνο, σαρωτής κ.λπ.), ενώ τα αποτελέσματα παρουσιάζονται μέσω των συσκευών εξόδου (οθόνη, εκτυπωτής, ηχεία κ.λπ.). Η αρχιτεκτονική όλων των παραπάνω μονάδων εξαρτάται συχνά από τις εφαρμογές για τις οποίες προορίζεται κάποιο υπολογιστικό σύστημα. Εκτός από τους προσωπικούς υπολογιστές, τους σταθμούς εργασίας, και τα μεγάλα κεντρικά συστήματα μηχανοργάνωσης, πλήθος μικροϋπολογιστών ειδικού σκοπού είναι σήμερα ενσωματωμένοι σε διάφορες συσκευές καθημερινής χρήσης (οικιακές συσκευές, αυτοκίνητα, κινητά τηλέφωνα κ.ά.). 1.2 Δομή μικροϋπολογιστών Αν συγκρίνουμε τις δυνατότητες των μικροεπεξεργαστών ή μικροελεγκτών που χρησιμοποιούνται σε μικροϋπολογιστικά συστήματα με τις αντίστοιχες των επεξεργαστών των μεγάλων συστημάτων (mainframes) ή ακόμα και των προσωπικών υπολογιστών (PC) θα εντοπίσουμε μεγάλες διαφορές σε πολλά επίπεδα. Οι ταχύτητες λειτουργίας

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 17 των μικροεπεξεργαστών είναι χαμηλότερες, τα μεγέθη μνήμης που μπορούν να διαχειριστούν πολύ περιορισμένα κλπ. Όμως, μια τέτοια σύγκριση είναι μάλλον άστοχη αφού δεν προορίζονται για τις ίδιες εφαρμογές. Παρότι πριν από 15-20 χρόνια χρησιμοποιούνταν ευρέως επεξεργαστές 8 bit σε προσωπικούς υπολογιστές, σήμερα η χρήση τους είναι τελείως διαφορετική. Υπάρχει μια σειρά από εφαρμογές ειδικού σκοπού που δεν απαιτούν τις επιδόσεις των εξελιγμένων επεξεργαστών των 32 ή και 64 bit. Ως τέτοιες εφαρμογές μπορεί να α- ναφέρει κανείς τους ενσωματωμένους μικροϋπολογιστές σε οικιακές συσκευές, συστήματα ασφαλείας, συστήματα ελέγχου αυτοκινήτων, ρομποτικά συστήματα, παραγωγικές μονάδες όπως θερμοκήπια και βιοτεχνίες, όργανα μετρήσεων όπως ιατρικά και ηλεκτρονικά όργανα, μετεωρολογικοί σταθμοί, παιχνιδομηχανές κλπ. Σε τέτοιες εφαρμογές η χρήση ισχυρότερων επεξεργαστών από αυτούς που πραγματικά χρειάζονται αυξάνει όχι μόνο το κόστος, που μπορεί να είναι πολύ σημαντικό για την ανταγωνιστικότητά τους, αλλά και την πολυπλοκότητα, την κατανάλωση ενέργειας, τις διαστάσεις κλπ. Για τον λόγο αυτό διατίθεται σήμερα μια πλειάδα μικροελεγκτών που ενσωματώνουν στο ίδιο ολοκληρωμένο κύκλωμα την ΚΜΕ μαζί με έναν αριθμό περιφερειακών μονάδων (μνήμη, χρονιστές/μετρητές, ακροδέκτες γενικής χρήσης, μετατροπείς αναλογικού σήματος σε ψηφιακό και αντίστροφα, σειριακές και παράλληλες θύρες επικοινωνίας κ.ά.). Με την επιλογή του κατάλληλου μικροελεγκτή για μια εφαρμογή μπορεί να ελαχιστοποιηθεί το πλήθος των απαιτούμενων εξωτερικών εξαρτημάτων. Σε εφαρμογές όπου οι ανάγκες μνήμης ξεφεύγουν πολύ από τα μεγέθη των ενσωματωμένων μνημών σε μικροελεγκτές, είναι δυνατή η χρήση κάποιου μικροεπεξεργαστή στους διαύλους όπου μπορεί να συνδεθεί μνήμη κατάλληλου μεγέθους, καθώς και τα απαραίτητα περιφερειακά. Αν ξεκινήσουμε από τα πιο στοιχειώδη τμήματα ενός υπολογιστή, μπορούμε να πούμε ότι, ανεξάρτητα από τα μεγέθη, όλα τα μικροϋπολογιστικά συστήματα καθώς και οι μεγαλύτεροι υπολογιστές αποτελούνται από τα ίδια βασικά τμήματα: KME, μονάδες εισόδου/εξόδου (E/Ε), μνήμη, και σύστημα χρονισμού (ρολόι). Η ΚΜΕ διαχειρίζεται τις πληροφορίες σύμφωνα με τις οδηγίες που ορίζουν οι εντολές ενός προγράμματος. Διαχειρίζεται επίσης ένα πλήθος γραμμών ελέγχου που της δίνουν τη δυνατότητα να ελέγχει τα περιφερειακά και να επικοινωνεί με τον έξω κόσμο. Μερικά περιφερειακά εισόδου χρειάζεται να μετατρέπουν αναλογικά σήματα σε δυαδικά ψηφία, τα οποία σε επίπεδο κυκλώματος αντιστοιχούν σε χαμηλή (π.χ., 0V) και υψηλή τάση (π.χ., 5V). Άλλες μονάδες εισόδου που στηρίζονται στη χρήση διακοπτών μπορούν να παράσχουν απευθείας τις δύο αυτές καταστάσεις, όπως ένα πληκτρολόγιο. Τις καταστάσεις αυτές τις δέχεται η ΚΜΕ ως είσοδο. Η ΚΜΕ στέλνει ψηφιακά δεδομένα στις συσκευές εξόδου οι οποίες μπορούν να τα μετατρέπουν σε σήματα άλλης μορφής για να δίνουν στον έξω κόσμο τα αποτελέσματα

18 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Πρόγραμμα Μνήμη Διακόπτες Οθόνη LCD 1 4 7 < 2 5 8 0 3 6 9 > A B C I Είσοδοι ΚΜΕ Έξοδοι Πλήκτρα Βομβητής F Ρολόι Αισθητήρες Ρελέ Κρύσταλλος Σχήμα 1-2. Αρχιτεκτονική ενός μικροϋπολογιστικού συστήματος (Πηγή: Freescale M68HC05 Applications Guide). της επεξεργασίας των δεδομένων εισόδου. Τέτοιες συσκευές είναι οθόνες, ηχεία, εκτυπωτές, beeper, ρελέ κλπ. Ένα υπολογιστικό σύστημα διαθέτει συνήθως περισσότερες από μία μονάδες εισόδου/εξόδου. Συχνά υπάρχουν σημαντικές διαφορές μεταξύ των μονάδων εισόδου και εξόδου ενός μικροϋπολογιστικού συστήματος και άλλων υπολογιστών, όπως για παράδειγμα ενός προσωπικού υπολογιστή. Σε έναν προσωπικό υπολογιστή, η βασική μονάδα εισόδου είναι το πληκτρολόγιο και το ποντίκι ενώ συμπληρωματική είσοδος μπορεί να δοθεί από συσκευές όπως ένας σαρωτής, μια κάμερα, ένα μικρόφωνο κλπ. Επίσης, σε έναν προσωπικό υπολογιστή η κύρια έξοδος είναι η οθόνη και ο εκτυπωτής. Από τη στιγμή όμως που ένα μικροϋπολογιστικό σύστημα προορίζεται σήμερα κυρίως για εφαρμογές ελέγχου, οι είσοδοι και έξοδοί του είναι σήματα από αισθητήρες (sensors) και ενεργοποιητές (actuators) ή διακόπτες. Για παράδειγμα, σε ένα σύστημα συναγερμού, ο ενσωματωμένος μικροεπεξεργαστής δέχεται είσοδο από αισθητήρες υπέρυθρων ακτίνων, θορύβου, καπνού, υγρασίας κλπ για να ανιχνεύσει αν παραβιάστηκε προστατευμένος χώρος ή αν έχει εκδηλωθεί πυρκαγιά/πλημμύρα κλπ. Η κύρια έξοδος ενός τέτοιου συστήματος είναι η σειρήνα, ο φάρος, και η κλήση τηλεφώνου (dialer). Στα περισσότερα συστήματα συναγερμού υπάρχει ένα μικρό πληκτρολόγιο (keypad) και μια οθόνη LCD, των οποίων όμως η χρήση είναι περισσότερο βοηθητική.

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 19 ΚΜΕ Μ ο ν ά δ α ε λ έ γ χ ο υ Αριθμητική και Λογική Μονάδα (ΑΛΜ) Μονάδα εκτέλεσης εντολών Μονάδα αποκωδικοποίησης εντολών Καταχωρητής εντολών Μονάδα ανάκλησης εντολών Καταχωρητές Συσσωρευτής Μετρητής προγράμματος Διευθύνσεις Εντολές Δεδομένα ΜΝΗΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΝΗΜΗ ΔΕΔΟΜΕΝΩΝ Σχήμα 1-3. Δομή της ΚΜΕ 1.3 Η ΚΜΕ Η γενική εσωτερική δομή της ΚΜΕ παρουσιάζεται στο Σχήμα 1-3. Οι εντολές προσκομίζονται από τη μνήμη προγράμματος στη μονάδα ανάκλησης εντολών (Instruction Fetch Unit) που είναι υπεύθυνη για την πρόβλεψη των επόμενων προς εκτέλεση εντολών και την ανάγνωσή τους από τη μνήμη. Ο μετρητής προγράμματος (Program Counter PC) είναι ένα κύκλωμα μετρητή με εισόδους παράλληλης φόρτωσης. Κάθε φορά που προσκομίζεται μια εντολή ο μετρητής αυξάνεται (συνήθως κατά 1), ενώ όταν εκτελούνται εντολές διακλάδωσης η διεύθυνση της νέας εντολής φορτώνεται στον μετρητή από τις παράλληλες εισόδους. Η μονάδα ανάκλησης αποθηκεύει τον κωδικό τής εντολής στον καταχωρητή εντολών (Instruction Register) του οποίου τα περιεχόμενα αποκωδικοποιεί η μονάδα αποκωδικοποίησης εντολών (Instruction Decode Unit). Ανάλογα με τα αποτελέσματα της αποκωδικοποίησης, και κατά συνέπεια της αναγνώρισης μιας εντολής, πιθανόν δρομολογείται η προσκόμιση ορισμάτων, η εκτέλεση κάποιας πράξης, η αποθήκευση αποτελεσμάτων κλπ. Την εκτέλεση των παραπάνω λειτουργιών αναλαμβάνει η μονάδα εκτέλεσης εντολών (Instruction Execution Unit) ενώ τα κυκλώματα που εκτελούν τις αριθμητικές και λογικές πράξεις βρίσκονται στην αριθμητική και λογική μονάδα (ΑΛΜ, Arithmetic Logic Unit ALU). Τον συντονισμό των παραπάνω μονάδων αναλαμβάνει η μονάδα ελέγχου (Control Unit).

20 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Τα ορίσματα των πράξεων βρίσκονται στη μνήμη δεδομένων και μπορούν να ληφθούν από την ΑΛΜ είτε απευθείας, είτε μέσω καταχωρητών (registers) που είναι χώροι προσωρινής αποθήκευσης. Πολλές ΚΜΕ διαθέτουν έναν ή περισσότερους καταχωρητές που χρησιμοποιούνται τόσο ως πηγές ορισμάτων όσο και ως προορισμοί των αποτελεσμάτων. Ένας τέτοιος καταχωρητής ονομάζεται συσσωρευτής (accumulator) και το όνομά του συχνά υπονοείται (όταν υπάρχει στο σύστημα μόνο ένας) στις εντολές από τις οποίες χρησιμοποιείται. Ένας άλλος συχνά χρησιμοποιούμενος ειδικός καταχωρητής είναι ο καταχωρητής κατάστασης (status) ο οποίος διαθέτει διάφορες σημαίες (flags) για τον έλεγχο των αποτελεσμάτων πράξεων καθώς και την κατάσταση του συστήματος. Για παράδειγμα, στον καταχωρητή κατάστασης υπάρχουν σημαίες που δείχνουν αν από την προηγούμενη πράξη προέκυψε κρατούμενο, δανεικό, αρνητικός αριθμός κλπ. Υπάρχουν και άλλες πιο εξειδικευμένες μονάδες και καταχωρητές τα οποία όμως θα συζητήσουμε στις διάφορες επιμέρους οικογένειες επεξεργαστών που θα εξετάσουμε. Τα βέλη μεταξύ ΚΜΕ και Μνήμης του Σχήματος 1-3 δηλώνουν την κατεύθυνση των εντολών, διευθύνσεων, και δεδομένων όταν η ΚΜΕ προσπελάζει τη μνήμη. Στην πράξη, η μεταφορά αυτή πραγματοποιείται με τη βοήθεια των εξωτερικών διαύλων του επεξεργαστή. Ένας δίαυλος είναι μια ομάδα αγωγών που μεταφέρει μία τιμή η οποία μπορεί να είναι διεύθυνση, εντολή, ή δεδομένα. Οι διευθύνσεις των θέσεων μνήμης που πρέπει να προσπελάσει η ΚΜΕ για εγγραφή ή ανάγνωση μεταφέρονται από την ΚΜΕ στη μνήμη μέσω του διαύλου διευθύνσεων ο οποίος μπορεί να αποτελείται από m αγωγούς. Επειδή υπάρχουν 2 ηλεκτρικές στάθμες σε κάθε αγωγό (που αντιστοιχούν στο λογικό 0 ή στο λογικό 1), το πλήθος των θέσεων μνήμης που μπορεί να προσπελάσει η ΚΜΕ είναι 2 m. Τα σήματα του διαύλου διευθύνσεων είναι έξοδοι από την ΚΜΕ και είσοδοι στη μνήμη. Ο δίαυλος δεδομένων χρησιμοποιείται για τη μεταφορά: εντολών από τη μνήμη προγράμματος στην ΚΜΕ δεδομένων από τη μνήμη δεδομένων στην ΚΜΕ κατά την ανάγνωση δεδομένων από την ΚΜΕ στη μνήμη δεδομένων κατά την εγγραφή Από τα παραπάνω γίνεται εμφανές ότι τα σήματα του διαύλου δεδομένων στις δύο πρώτες περιπτώσεις είναι είσοδοι στην ΚΜΕ και έξοδοι από τη μνήμη. Στην τρίτη περίπτωση τα σήματα αυτά έχουν αντίθετη φορά. Το Σχήμα 1-4 δείχνει τους τυπικούς α- κροδέκτες ενός μικροεπεξεργαστή των 8 bit. Το εύρος των 8 bit αντιπροσωπεύει το μήκος των ορισμάτων που μπορεί να διαχειριστεί η αριθμητική και λογική μονάδα. Συνήθως, το εύρος αυτό ταυτίζεται με το εύρος του διαύλου δεδομένων. Όσο πιο μεγάλο είναι αυτό, τόσο μεγαλύτερη ακρίβεια και ταχύτητα μπορεί να επιτευχθεί κατά τις διάφορες πράξεις. Επιπλέον, μεγαλύτερο εύρος διαύλου δεδομένων επιτρέπει τη μεταφορά πολλών δεδομένων ή εντολών με μία προσπέλαση της μνήμης (η οποία θεωρείται

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 21 χρονοβόρος λειτουργία). Το μειονέκτημα είναι ότι με μεγάλο εύρος διαύλου δεδομένων προκύπτουν προβλήματα δρομολόγησης αγωγών (routing) στις μητρικές πλακέτες, ενώ υπάρχουν και αυστηρότεροι περιορισμοί στην ταχύτητα του διαύλου λόγω αυξημένου θορύβου, παρεμβολών κλπ. Τα υπόλοιπα σήματα του Σχήματος 1-4, εκτός από την τροφοδοσία και τη γείωση, είναι κυρίως σήματα ελέγχου (μερικές φορές ονομάζονται συλλογικά δίαυλος ελέγχου): Το σήμα R/W~ δίνει ένδειξη στη μνήμη για το αν η ΚΜΕ επιχειρεί ανάγνωση (με 1) ή εγγραφή (με 0). Το σήμα RESET αρχικοποιεί ξανά το σύστημα (π.χ., επαναφέρει τον μετρητή προγράμματος στην αρχική του τιμή). Το σήμα ΙΝΤ (interrupt) χρησιμοποιείται για τη διακοπή της κανονικής ροής του προγράμματος λόγω εξωτερικής αιτίας. Η διακοπή αυτή μπορεί να γίνει δεκτή ή όχι από την ΚΜΕ με κατάλληλο προγραμματισμό κατά την αρχικοποίηση του συστήματος. Το ΝΜΙ (Non Maskable Interrupt) είναι παρόμοιο με το ΙΝΤ αλλά η διακοπή που προκαλεί γίνεται πάντα δεκτή. Χρησιμοποιείται συνήθως για τον χειρισμό σοβαρών καταστάσεων (ανεπανόρθωτα σφάλματα, πτώση τάσης κ.ά.). Η είσοδος CLK συνδέεται με το ρολόι του συστήματος. Η ταχύτητα εκτέλεσης των εντολών είναι ανάλογη της συχνότητας του ρολογιού. Vcc RESET Α0 D0...... D7.. A16 R/W~ INT NMI CLK GND Σχήμα 1-4. Ακροδέκτες εντός τυπικού μικροεπεξεργαστή 8 bit

22 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Παράδειγμα 1.1 Ως παράδειγμα, θα εξετάσουμε τα βήματα εκτέλεσης μιας γενικής εντολής συμβολικής γλώσσας, όπως η ADD A,3000h. Έστω ότι η εντολή αυτή προσθέτει τα περιεχόμενα του συσσωρευτή Α με τα περιεχόμενα της θέσης μνήμης 3000h. Έστω επίσης ότι η εντολή αυτή είναι αποθηκευμένη στη διεύθυνση 8000h της μνήμης προγράμματος. Ο κωδικός της εντολής καταλαμβάνει ένα byte και η διεύθυνση 3000h, άλλα 2 bytes. Αν το σύστημα είναι αρχιτεκτονικής Little Endian, τότε το λιγότερο σημαντικό byte ενός αριθμού αποθηκεύεται στην χαμηλότερη διεύθυνση και το περισσότερο σημαντικό στην αμέσως επόμενη (το αντίθετο συμβαίνει σε αρχιτεκτονικές Big Endian). Έτσι, ο κωδικός της εντολής αποθηκεύεται στην 8000h, το 00 στην 8001h και το 30h στην 8002h. Έ- στω επίσης ότι τα περιεχόμενα της θέσης 3000h είναι ο αριθμός F0h Η εκτέλεση της εντολής αυτής απαιτεί τα ακόλουθα βήματα: 1. Οδήγηση του διαύλου διευθύνσεων με την τιμή του μετρητή προγράμματος (8000h) για την προσκόμιση του κωδικού της εντολής ADD. 2. Αύξηση κατά 1 του μετρητή προγράμματος. 3. Η μνήμη τοποθετεί στον δίαυλο δεδομένων τον κωδικό της εντολής ADD. 4. Η μονάδα ανάκλησης εντολών αποθηκεύει τον κωδικό της εντολής αυτής στον καταχωρητή εντολών. 5. Η μονάδα αποκωδικοποίησης διακρίνει ότι πρόκειται για τη συγκεκριμένη ε- ντολή και οδηγεί κατάλληλα σήματα της μονάδας εκτέλεσης εντολών. 6. Η μονάδα εκτέλεσης εντολών αποφασίζει την προσκόμιση άλλων 2 byte, δηλαδή της διεύθυνσης του ορίσματος και κατόπιν του ίδιου του ορίσματος. 7. Ο μετρητής εντολών οδηγεί τον δίαυλο διευθύνσεων με την τιμή 8001h και κατόπιν αυξάνεται κατά 1. 8. Η μνήμη οδηγεί τον δίαυλο δεδομένων με τα περιεχόμενα της θέσης 8001h, δηλαδή την τιμή 00. 9. Ο μετρητής εντολών οδηγεί τον δίαυλο διευθύνσεων με την τιμή 8002h και κατόπιν αυξάνεται κατά 1. 10. Η μνήμη οδηγεί τον δίαυλο δεδομένων με τα περιεχόμενα της θέσης 8002h, δηλαδή την τιμή 30h. 11. Ο δίαυλος διευθύνσεων οδηγείται αυτή τη φορά με την τιμή 3000h, που είναι η διεύθυνση η οποία σχηματίστηκε εσωτερικά με τις 2 προηγούμενες προσπελάσεις. 12. Η μνήμη δεδομένων οδηγεί τον δίαυλο δεδομένων με τα περιεχόμενα της θέσης 3000h, δηλαδή την τιμή F0h. Η τιμή αυτή αποθηκεύεται σε κάποιο γενικό καταχωρητή.

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 23 13. Στο σημείο αυτό η αριθμητική και λογική μονάδα λαμβάνει εντολή από τη μονάδα εκτέλεσης να προσθέσει τα περιεχόμενα του συσσωρευτή με την τιμή F0h και να αποθηκεύσει το αποτέλεσμα πάλι στον συσσωρευτή. 14. Η τιμή του μετρητή εντολών (που έχει γίνει 8003h στο Βήμα 9) οδηγείται στον δίαυλο διευθύνσεων για την προσκόμιση του κωδικού της επόμενης εντολής. 1.4 Η μνήμη Στην παράγραφο αυτή κάνουμε μια σύντομη αναφορά στους κυριότερους τύπους μνήμης και στη χρήση τους. Δεν γίνεται λεπτομερής αναφορά στα ηλεκτρονικά κυκλώματα από τα οποία αποτελούνται οι διάφορες μνήμες αφού αυτό είναι έξω από τους σκοπούς του βιβλίου. 1.4.1 Η στατική μνήμη ανάγνωσης/εγγραφής (SRAM) Οι ακροδέκτες μιας στατικής μνήμης ανάγνωσης/εγγραφής (SRAM) έχουν τη μορφή που παρουσιάζεται στο Σχήμα 1-5. Μια τέτοια μνήμη αποτελείται από 2 m θέσεις μνήμης, κάθε μία από τις οποίες διαθέτει n bit. Για να επιλεγεί μία από αυτές τις θέσεις τίθεται η κατάλληλη τιμή στις γραμμές Α0-Α(m-1), ενώ η τιμή που θα γραφεί ή θα διαβαστεί μεταβιβάζεται μέσω του διαύλου δεδομένων (D0-D(n-1)). Η γραμμή ελέγχου R/W~ καθορίζει αν πρόκειται για εγγραφή (με 0) ή ανάγνωση (με 1), ενώ για να πραγματοποιηθεί μια τέτοια λειτουργία θα πρέπει ο ακροδέκτης Chip Enable (CE~) να είναι ενεργός. Κάποιες μνήμες διαθέτουν και σήμα Output Enable (OE~) για τον έλεγχο του πότε ακριβώς θα οδηγήσει η μνήμη τον δίαυλο δεδομένων με την τιμή που έχει αποθηκευμένη. D0 A0 D1 A1.... D(n-1).. A(m-1) R/W~ CE~ OE~ Σχήμα 1-5. Ακροδέκτες μιας μνήμης SRAM

24 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Παρότι οι χρονισμοί των παραπάνω σημάτων διαφέρουν από μνήμη σε μνήμη (θα συναντήσουμε κάποιους τέτοιους χρονισμούς και τρόπους διασύνδεσης σε επόμενα κεφάλαια) μπορούμε γενικά να επισημάνουμε ότι οι γραμμές D0-D(n-1) συνδέονται στις αντίστοιχες γραμμές του διαύλου δεδομένων της ΚΜΕ ενώ οι γραμμές Α0-Α(m-1) στις αντίστοιχες λιγότερο σημαντικές γραμμές του διαύλου διευθύνσεων της ΚΜΕ. Οι υπόλοιπες γραμμές του διαύλου διευθύνσεων συμμετέχουν σε ένα κύκλωμα αποκωδικοποίησης που οδηγεί τον ακροδέκτη επιλογής CE~. Κατά συνέπεια οι γραμμές Α0- Α(m-1) και CE~ αλλάζουν ταυτόχρονα τιμή. Αν ο χρησιμοποιούμενος επεξεργαστής διαθέτει γραμμή R/W~, αυτή συνδέεται στην αντίστοιχη γραμμή της μνήμης. Αν διαθέτει ξεχωριστές γραμμές για ανάγνωση (RD~) και εγγραφή (WR~) τότε η WR~ μπορεί να συνδεθεί στην R/W~ της μνήμης και η RD~ στην OE~ της μνήμης (αν υπάρχει). Το κλείδωμα των τιμών που εγγράφονται γίνεται είτε στην ανοδική είτε στην καθοδική ακμή του σήματος R/W~ (συνήθως γίνεται στην ανοδική). Αντίστοιχα, η ανάγνωση μιας τιμής από τον επεξεργαστή μπορεί να γίνει σε κάποια ακμή σήματος όπως το OE~. Οι πρώτες μνήμες RAM ήταν στατικές. Για την αποθήκευση ενός δυαδικού ψηφίου σε αυτές τις μνήμες απαιτείται ένα δισταθές (flip-flop). Η ταχύτητα αυτών των μνημών είναι υψηλή αλλά η πυκνότητα που μπορεί να επιτευχθεί είναι μικρή εξαιτίας του μεγάλου πλήθους τρανζίστορ που απαιτούνται για την αποθήκευση κάθε δυαδικού ψηφίου. Με αυτή την τεχνολογία υλοποιούνται οι σημερινές κρυφές μνήμες (cache memory) που είναι ενσωματωμένες στο ίδιο ολοκληρωμένο κύκλωμα με τον επεξεργαστή και χρησιμοποιούνται για την αποθήκευση μικρών περιοχών μνήμης οι οποίες προσπελάζονται κάθε δεδομένη στιγμή από τον επεξεργαστή. Μια εξελιγμένη παραλλαγή (υψηλότερου κόστους) μνήμης RAM είναι η μνήμη RAM δύο καναλιών (dual port RAM) που έχει διπλά όλα τα σήματα που περιγράφηκαν. Η RAM δύο καναλιών επιτρέπει ταυτόχρονα την εγγραφή σε μία θέση μνήμης από τη μία ομάδα σημάτων και την ανάγνωση από μια άλλη θέση με τη βοήθεια της δεύτερης ομάδας σημάτων. Η RAM δύο καναλιών χρησιμοποιείται ευρέως σήμερα στην υλοποίηση κρυφής μνήμης στους σύγχρονους επεξεργαστές. Παράδειγμα 1.2 Στο Σχήμα 1-6 παρουσιάζεται η σύνδεση δύο ολοκληρωμένων κυκλωμάτων στατικής μνήμης των 32 ΚΒ η κάθε μία. Η SRAM1 ενεργοποιείται όταν το Α15 είναι 0 ενώ η SRAM2 όταν το Α15 είναι 1, εφόσον το σήμα αυτό είναι συνδεδεμένο με τα CE~ των SRAM1/SRAM2 (με ή χωρίς αντιστροφή). Με άλλα λόγια, η πρώτη μνήμη καταλαμβάνει τις διευθύνσεις 0-7FFFh, ενώ η δεύτερη τις διευθύνσεις 8000h-FFFFh. Στην περίπτωση αυτή το σήμα Α15 καθορίζει κατ αποκλειστικότητα ποιο από τα δύο ολοκληρωμένα κυκλώματα μνήμης έχει επιλεγεί. Αν υπήρχαν περισσότερα από δύο τέτοια ολοκληρωμένα κυκλώματα (με μικρότερο μέγεθος φυσικά) τότε λιγότερες γραμμές του διαύλου

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 25 ΚΜΕ A15 D0-D7 Δίαυλος δεδομένων A0-A14 WR~ CE~ D0-D7 A0-A14 R/W~ CE~ D0-D7 A0-A14 R/W~ SRAM1 SRAM2 Σχήμα 1-6. Σύνδεση στατικής μνήμης σε ΚΜΕ διευθύνσεων θα συνδέονταν απευθείας με αντίστοιχες γραμμές μνήμης και οι υπόλοιπες γραμμές του διαύλου διευθύνσεων θα συμμετείχαν στην αποκωδικοποίηση κάθε ολοκληρωμένου κυκλώματος μνήμης σε διαφορετικές περιοχές διευθύνσεων. Υπάρχει ακόμα περίπτωση να μην αντιστοιχίζονται όλες οι διευθύνσεις σε πραγματική μνήμη ή να αντιστοιχίζονται περισσότερες από μία περιοχές διευθύνσεων στην ίδια πραγματική μνήμη. Παράδειγμα 1.3 Στο Σχήμα 1-7 παρουσιάζεται η σύνδεση δύο ολοκληρωμένων κυκλωμάτων στατικής μνήμης των 2 ΚΒ η κάθε μία. Αυτό σημαίνει ότι μένουν αχρησιμοποίητα 60 ΚΒ μνήμης στο σύστημα αυτό. Εντούτοις, για οικονομία στο κύκλωμα της αποκωδικοποίησης ΚΜΕ A15 D0-D7 Δίαυλος δεδομένων A0-A10 WR~ CE~ D0-D7 CE~ D0-D7 A0-A10 A0-A10 R/W~ R/W~ SRAM1 9 SRAM2 Σχήμα 1-7. Σύνδεση μνημών που δεν καλύπτουν όλες τις διαθέσιμες διευθύνσεις

26 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ χρησιμοποιείται μόνο το σήμα Α15 για την επιλογή ενός από τα δύο ολοκληρωμένα κυκλώματα. Οι διευθύνσεις των οποίων τα 5 πιο σημαντικά bit έχουν τιμή 0xxxx (όπου x μπορεί να είναι είτε 1 είτε 0) επιλέγουν την SRAM1, ενώ οι διευθύνσεις των οποίων τα πιο σημαντικά bits είναι 1xxxx επιλέγουν την SRAM2. Αυτό όμως σημαίνει ότι πολλές διευθύνσεις αναφέρονται την ίδια πραγματική θέση μνήμης, όπως για παράδειγμα οι 00000101 11110000b και 01010101 11110000b αφού και οι δύο ξεκινούν με 0 και τα 11 λιγότερο σημαντικά τους ψηφία είναι ταυτόσημα (101 1111 0000b). Και οι δύο αυτές διευθύνσεις επιλέγουν τη θέση με αύξοντα αριθμό 5F0h της SRAM1. 1.4.2 Η μνήμη μόνο για ανάγνωση (ROM) Η δομή των ακροδεκτών μιας μνήμης ROM (Read-Only Memory) είναι παρόμοια με το Σχήμα 1-5 με τη διαφορά ότι δεν υπάρχει σήμα R/W~ αφού αυτή δεν επιτρέπει εγγραφή. Σε μια απλή μνήμη ROM οι τιμές που είναι αποθηκευμένες έχουν εγγραφεί κατά την κατασκευή της μνήμης στο εργοστάσιο. Για τη δημιουργία πρωτότυπων συστημάτων σε ένα εργαστήριο χρησιμοποιούνται οι μνήμες PROM, EPROM, EEPROM και Flash: Η προγραμματίσιμη ROM (Programmable ROM ή PROM) μπορεί να προγραμματιστεί μία φορά. Η διαγράψιμη PROM (EPROM) μπορεί να σβηστεί αν το ολοκληρωμένο κύκλωμα εκτεθεί σε υπεριώδη ακτινοβολία για κάποια λεπτά (αυτό επιτυγχάνεται επειδή το ολοκληρωμένο διαθέτει ένα μικρό παράθυρο μέσω του οποίου ο πυρήνας είναι ορατός στο φως. Η μνήμη αυτή έχει πλέον αντικατασταθεί από τη μνήμη Flash. Η ηλεκτρικά διαγράψιμη PROM (EEPROM) μπορεί να σβηστεί με ηλεκτρικό τρόπο χωρίς έκθεση σε ακτινοβολία. Χρησιμοποιείται για την αποθήκευση τιμών διαμόρφωσης (configuration) σε μικροελεγκτές. Μπορεί να επανεγγραφεί είτε εσωτερικά με εκτέλεση κατάλληλων εντολών είτε από εξωτερικό κύκλωμα. Η μνήμη Flash είναι μια χαμηλότερου κόστους παραλλαγή της EEPROM και είναι το κύριο μέσο αποθήκευσης των προγραμμάτων στους μικροελεγκτές σήμερα μια και επιτρέπει την εύκολη επανεγγραφή της από κάποιο εξωτερικό κύκλωμα. 1.4.3 Η δυναμική μνήμη RAM (DRAM) και οι σύγχρονες δυναμικές RAM (SDRAM) Οι δυναμικές μνήμες τη δεκαετία του '70 επέτρεψαν την υλοποίηση μεγαλύτερων μεγεθών από τις στατικές αφού χρησιμοποιούν έναν μικρό πυκνωτή για την αποθήκευση ενός bit. Επειδή ο πυκνωτής εκφορτίζεται λόγω διαρροών είναι απαραίτητο να

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 27 ανανεώνεται (refresh) περιοδικά η τιμή των διαφόρων πυκνωτών. Για την επιλογή της λειτουργίας αυτής οι δυναμικές μνήμες διαθέτουν έναν ακόμα ακροδέκτη (RFSH). Η χρονική στιγμή της ανανέωσης επιλέγεται από τον μικροεπεξεργαστή. Κάποιοι επεξεργαστές όπως ο Ζ80 ενσωμάτωσαν μεθόδους για την αυτόματη ανανέωση των περιεχομένων της δυναμικής μνήμης ενώ παράλληλα εκτελείται κανονικά ο κώδικας χωρίς καθυστέρηση. Άλλες δυναμικές μνήμες ενσωμάτωσαν στο δικό τους ολοκληρωμένο κύκλωμα το κύκλωμα της ανανέωσης ώστε να μην απαιτείται εξωτερική παρέμβαση για τη διαδικασία αυτή. Τέτοιες μνήμες έχουν παρόμοιους ακροδέκτες με τις στατικές και ονομάζονται ψευδοστατικές. Στα εξελιγμένα υπολογιστικά συστήματα, όπως είναι οι προσωπικοί υπολογιστές, χρησιμοποιούνται οι μνήμες DDR και DDR2 λόγω της υψηλής ταχύτητας προσπέλασης και της μεγάλης πυκνότητάς τους. Οι μνήμες DDR2 αποτελούν εξέλιξη των DDR (Double Data Rate), οι οποίες είναι γρήγορες Σύγχρονες Δυναμικές RAM (SDRAM). Οι σημερινές ευφυείς μνήμες βασίζονται σε «συναλλαγές» (transactions). Οι συναλλαγές αρχικοποιούνται από μία αίτηση μεταφοράς που στέλνει ο επεξεργαστής στον ελεγκτή μνήμης. Ο ελεγκτής μνήμης δέχεται τέτοιες αιτήσεις όχι μόνο από τον ε- πεξεργαστή αλλά και από άλλα περιφερειακά (π.χ., για άμεση προσπέλαση μνήμης). Οι αιτήσεις ιεραρχούνται και δρομολογούνται στις μονάδες μνήμης με διαδικασίες που επιτρέπουν τη μαζική μεταφορά δεδομένων. Τα στάδια μιας μαζικής μεταφοράς περιλαμβάνουν κύκλους καθορισμού διεύθυνσης όπου αποστέλλεται στη μνήμη η αρχική διεύθυνση του μπλοκ που θα προσπελαστεί και από κύκλους μεταφοράς δεδομένων όπου μεταφέρονται δεδομένα από ή προς διαδοχικές διευθύνσεις. Αν παραλειφθεί η πλήρης δήλωση των επόμενων διευθύνσεων ελαχιστοποιείται η καθυστέρηση της μεταφοράς. Άλλοι παράγοντες που επιταχύνουν τις μεταφορές στις μνήμες αυτές είναι η χρήση ρολογιού μεγάλης συχνότητας (στις σύγχρονες μνήμες, synchronous memory) και η εκτέλεση διαφόρων φάσεων της μεταφοράς σε ανοδικές και καθοδικές ακμές σημάτων ενεργοποίησης (strobes) και παλμών ρολογιού. Οι περισσότερες δυναμικές μνήμες που χρησιμοποιούνται σήμερα δεν έχουν την κλασσική δομή μιας σειράς προσπελάσιμων θέσεων όπου τα χαμηλότερα ψηφία του διαύλου διευθύνσεων επιλέγουν τη θέση και τα υψηλότερα οδηγούν το σήμα Chip Enable της μνήμης. Αντίθετα, η προσπέλαση γίνεται με τον ορισμό όχι ενιαίας διεύθυνσης αλλά γραμμής, στήλης και υπομονάδας (row, column, bank). Στο Σχήμα 1-8 φαίνεται μια τέτοια δομή. Όσον αφορά τους ακροδέκτες της μνήμης, υπάρχουν ξεχωριστοί ακροδέκτες για την επιλογή της υπομονάδας ενώ στις γραμμές διευθύνσεων μεταφέρεται ο αριθμός γραμμής ή στήλης (το πλήθος των ακροδεκτών του διαύλου διευθύνσεων δεν θα επαρκούσε εξάλλου για να στέλνονται ταυτόχρονα ο αριθμός στήλης και ο αριθμός γραμμής). Το αν η τιμή του διαύλου διευθύνσεων δηλώνει γραμμή ή στήλη ορίζεται

28 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Υπομονάδα 3 Υπομονάδα 2 Υπομονάδα 1 Υπομονάδα 0 Στήλη Γραμμή κελί μνήμης Σχήμα 1-8. Δομή μνήμης με υπομονάδες, γραμμές, κελιά από δύο ξεχωριστούς ακροδέκτες που συνήθως έχουν τα ονόματα RAS (Row Address Select) και CAS (Column Address Select), αντίστοιχα. Το σημείο όπου τέμνονται η γραμμή και η στήλη ορίζει ένα κελί μνήμης (memory cell) μέσα στην υπομονάδα που μπορεί να είναι από 1 bit μέχρι 4, 8, 16, ή και 32 bit. Συνήθως προηγείται η φάση ενεργοποίησης υπομονάδας και γραμμής, η οποία ακολουθείται από επιλογή στήλης για την προσπέλαση συγκεκριμένου κελιού. Μαζική μεταφορά πραγματοποιείται αν το στάδιο επιλογής στήλης επαναληφθεί για κάποιο αριθμό γειτονικών στηλών, οπότε η φάση της ενεργοποίησης υπομονάδας και γραμμής δεν χρειάζεται να επαναληφθεί αφού αυτές δεν αλλάζουν. Με την ενεργοποίηση μόνο μίας γραμμής σε μία υπομονάδα οι υπόλοιπες γραμμές και υπομονάδες παραμένουν σε κατάσταση χαμηλής κατανάλωσης. Περισσότερες λεπτομέρειες για τη δομή και τη χρήση συγκεκριμένων μοντέλων μνήμης DDR2 παρουσιάζονται στο Παράρτημα Α. 1.4.4 Αρχιτεκτονική χώρου διευθύνσεων Η μνήμη ενός μικροϋπολογιστικού συστήματος φιλοξενεί τα προγράμματα και τα δεδομένα. Ο χώρος λογικών διευθύνσεων που καταλαμβάνουν οι μνήμες (στατικές και δυναμικές) είναι γραμμικός. Στην περίπτωση των στατικών μνημών και οι ίδιες οι φυσικές διευθύνσεις είναι γραμμικές αφού μέσω των γραμμών διευθύνσεων επιλέγεται μια διεύθυνση μεταξύ 0 και 2 m -1 (όπου m είναι το πλήθος των γραμμών διευθύν-

1 Γενική περιγραφή ΚΜΕ, μνήμης, και βασικών περιφερειακών κυκλωμάτων 29 σεων της μνήμης). Όπως είδαμε στην Ενότητα 1.4.3, οι φυσικές διευθύνσεις των σύγχρονων δυναμικών μνημών δεν είναι γραμμικές αφού αποτελούνται από ένα σύνολο τριών τιμών (υπομονάδα, γραμμή, στήλη). Όμως και τα τρία αυτά στοιχεία μπορούν να συνδυαστούν σε μία τιμή (καταλαμβάνοντας διαφορετικά πεδία στη δυαδική αναπαράσταση της τιμής) και να προκύψουν γραμμικές λογικές διευθύνσεις ανεξάρτητα από τον φυσικό χώρο αποθήκευσης. Η αρχιτεκτονική των γραμμικών διευθύνσεων δεν είναι κοινή σε όλους τους υπολογιστές. Μια μεγάλη διάκριση έχει να κάνει με το αν τα κυκλώματα μνήμης καταλαμβάνουν διευθύνσεις από ένα ενιαίο εύρος διευθύνσεων ή από ανεξάρτητους χώρους (οι οποίοι κατά συνέπεια θα πρέπει να προσπελάζονται και από διαφορετικούς διαύλους). Υπάρχουν δύο μοντέλα αρχιτεκτονικής διευθύνσεων μνήμης που περιγράφουν τις δύο αυτές περιπτώσεις: η αρχιτεκτονική Von Neumann και η αρχιτεκτονική Harvard. Στις αρχιτεκτονικές Von Neumann η μνήμη έχει έναν ενιαίο χώρο φυσικών διευθύνσεων. Για παράδειγμα, ένας μικροεπεξεργαστής με δίαυλο διευθύνσεων 16 bit μπορεί να «δει» μέχρι 65536 θέσεις μνήμης με ίδιο μήκος λέξης. Κάποια τμήματα αυτού του χώρου διευθύνσεων μπορούν να χρησιμοποιηθούν από μνήμη RAM, ROM ή και περιφερειακά. Η αρχιτεκτονική Harvard, που είναι πολύ δημοφιλής στους μικροελεγκτές, διαφέρει στο ότι ο χώρος διευθύνσεων προγράμματος είναι τελείως ανεξάρτητος από εκείνον των δεδομένων. Το μήκος των λέξεων στον χώρο προγράμματος μπορεί να είναι διαφορετικό από το μήκος των λέξεων στον χώρο δεδομένων. Οι εντολές (εκτός από τα άλματα) στα προγράμματα μπορούν να έχουν ως ορίσματα διευθύνσεις του χώρου των δεδομένων. Παραδείγματα των δύο αρχιτεκτονικών παρουσιάζονται στο Σχήμα 1-9. Μνήμη αρχιτεκτονικής Von Neumann Μνήμη αρχιτεκτονικής Harvard 0000h-3FFFh EPROM 4000h-DFFFh RAM Μνήμη flash 2 K των 13 bit για την αποθήκευση προγραμμάτων E000h-EFFFh Περιφερειακά 256 θέσεις δεδομένων των 8 bit F000h-FFFFh BOOT ROM Σχήμα 1-9. Παράδειγμα αρχιτεκτονικών Von Neumann και Harvard