Mικροεπεξεργαστές
-
Upload
spyridon-athanasiadis -
Category
Documents
-
view
65 -
download
4
Transcript of Mικροεπεξεργαστές
Mικροεπεξεργαστές
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Σχολή Θετικών Επιστηµών και Τεχνολογίας
Πρόγραµµα Σπουδών
ΠΛΗΡΟΦΟΡΙΚΗ
Θεµατική Eνότητα
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Tόµος Γ'
MικροεπεξεργαστέςΓEΩPΓIOΣ AΛEΞIOY
Kαθηγητής Tµήµατος Mηχανικών H/Y & Πληροφορικής Πανεπιστηµίου Πατρών
ΠATPA 2001
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Σχολή Θετικών Επιστηµών και Τεχνολογίας
Πρόγραµµα Σπουδών
ΠΛHPOΦOPIKH
Θεµατική Ενότητα
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Τόµος Γ'
Mικροεπεξεργαστές
Συγγραφή
ΓEΩPΓIOΣ AΛEΞIOY
Kαθηγητής Tµήµατος Mηχανικών H/Y & Πληροφορικής Πανεπιστηµίου Πατρών
Κριτική Ανάγνωση
ANTΩNHΣ ΠAΣXAΛHΣ
Eπίκουρος Kαθηγητής Tµήµατος Πληροφορικής & Tηλεπικοινωνιών
Πανεπιστηµίου Aθηνών
Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου
ΣΩKPATHΣ KATΣIKAΣ
Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Aιγαίου
Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση
ΓEPAΣIMOΣ MΩPAΊTHΣ
Γλωσσική Επιµέλεια
EΛΠI∆A BAKAΛOΓΛOY
Τεχνική Επιµέλεια
ΕΣΠΙ ΕΚ∆ΟΤΙΚΗ Ε.Π.Ε.
Καλλιτεχνική Επιµέλεια – Σελιδοποίηση
TYPORAMA
Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων
ΟΜΑ∆Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 2001
ISBN: 960–538–197–4
Kωδικός Έκδοσης: ΠΛH 21/3
Copyright 2000 για την Ελλάδα και όλο τον κόσµο
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα – Τηλ: (0610) 314094, 314206 Φαξ: (0610) 317244
Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού
ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.
¶ÂÚȯfiÌÂÓ·
K ∂ º ∞ § ∞ π √ 1
EÈÛ·ÁˆÁ‹
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................... 11
1.1 H ανάγκη: Έξυπνα, ευέλικτα συστήµατα µε µικρό µέγεθος .............. 13
1.2 O τρόπος: Oλοκληρωµένα κυκλώµατα ................................................................ 13
1.3 Tο αποτέλεσµα: H εµφάνιση των µικρο–επεξεργαστών ....................... 18
1.4 Mικροϋπολογιστές και µικροεπεξεργαστές ...................................................... 19
1.5 Iστορική αναδροµή ................................................................................................................ 24
Σύνοψη .............................................................................................................................................................. 26
Bιβλιογραφία ................................................................................................................................................ 27
K ∂ º ∞ § ∞ π √ 2
OÈ MÈÎÚÔÂÂÍÂÚÁ·ÛÙ¤˜
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................... 29
2.1 H Aρχιτεκτονική των µικροεπεξεργαστών......................................................... 31
2.1.1 Aριθµητική και λογική µονάδα ..................................................................... 31
2.1.2 Mονάδα ελέγχου ......................................................................................................... 33
2.1.3 Kαταχωρητές ................................................................................................................. 35
2.2 Oι δίαυλοι διευθύνσεων/δεδοµένων/ελέγχου .................................................. 37
2.3 O χρονισµός των εντολών (κύκλος εντολής–µηχανής–ρολογιού) 41
2.4 Tο σύνολο εντολών του µικροεπεξεργαστή ..................................................... 46
2.5 Oι τρόποι διευθυνσιοδότησης των εντολών
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........... 53
Σύνοψη .............................................................................................................................................................. 58
2.6 Tι πρέπει να γνωρίζουµε για ένα µικροεπεξεργαστή ................................ 63
Σύνοψη .............................................................................................................................................................. 65
Bιβλιογραφία ................................................................................................................................................ 67
6 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
K ∂ º ∞ § ∞ π √ 3
O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8080/8085
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................... 69
3.1 H αρχιτεκτονική του 8080................................................................................................. 71
3.1.1 Γενικά χαρακτηριστικά ......................................................................................... 71
3.1.2 Oι καταχωρητές του 8080 .................................................................................. 73
3.1.3 Aκροδέκτες και σήµατα ....................................................................................... 75
3.2 Kύκλοι µηχανής και σήµατα κατάστασης .......................................................... 78
3.3 H χρονική ακολουθία εκτέλεσης εντολών
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........... 82
3.4 Oι καταστάσεις Wait, Hold & Halt
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........... 87
3.5 H αρχικοποίηση του 8080 ................................................................................................ 92
3.6 Oι διακοπίες στον 8080 ...................................................................................................... 92
3.7 Tρόποι διευθυνσιοδότησης – Σύνολο εντολών ............................................. 96
3.8 Συσκευές υποστήριξης ........................................................................................................ 97
3.9 ∆ιαφορές του 8080 µε τον 8085 .............................................................................. 100
Σύνοψη ........................................................................................................................................................... 102
Bιβλιογραφία ............................................................................................................................................. 104
K ∂ º ∞ § ∞ π √ 4
O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Motorola 6800
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................ 105
4.1 H αρχιτεκτονική του 6800 ............................................................................................ 107
4.1.1 Γενικά χαρακτηριστικά ...................................................................................... 107
4.1.2 Oι καταχωρητές του 6800 ............................................................................... 109
4.1.3 Aκροδέκτες και σήµατα .................................................................................... 111
4.2 Xρονισµός του 6800 – Xρονική ακολουθία εκτέλεσης εντολών
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........ 115
4.3 Oι καταστάσεις Wait, Hold & Halt ........................................................................ 119
4.4 Oι διακοπές στον 6800 ..................................................................................................... 123
4.5 Σύνολο εντολών – Tρόποι διευθυνσιοδότησης .......................................... 125
4.6 Σύγκριση του 6800 µε τον 8080/8085 ................................................................ 128
Σύνοψη ........................................................................................................................................................... 130
Bιβλιογραφία ............................................................................................................................................. 132
K ∂ º ∞ § ∞ π √ 5
O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8086/8088
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................ 133
5.1 H αρχιτεκτονική του 8086
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........ 135
5.1.1 Γενικά χαρακτηριστικά ...................................................................................... 135
5.1.2 H οργάνωση της µνήµης .................................................................................. 138
5.1.3 Oι καταχωρητές του 8086 ............................................................................... 140
5.1.4 Aκροδέκτες και σήµατα .................................................................................... 142
Σύνοψη ........................................................................................................................................................... 144
5.2 O χρονισµός του 8086 ...................................................................................................... 145
5.3 H αρχικοποίηση και οι διακοπές του 8086 ..................................................... 147
5.4 Tο σύνολο εντολών και οι τρόποι διευθυνσιοδότησης
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........ 149
Σύνοψη ........................................................................................................................................................... 152
Bιβλιογραφία ............................................................................................................................................. 154
K ∂ º ∞ § ∞ π √ 6
OÏÔÎÏËڈ̤ӷ MÈÎÚÔ¸ÔÏÔÁÈÛÙÈο ™˘ÛÙ‹Ì·Ù·
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................ 155
6.1 Bασικές αρχές – Συσκευές διασύνδεσης .......................................................... 157
6.2 ∆ιασύνδεση µνηµών Rom ............................................................................................. 158
6.3 ∆ιασύνδεση µνηµών Ram ............................................................................................. 161
6.4 ∆ιασύνδεση συσκευών εισόδου / εξόδου
Σκοπός, Προσδοκώµενα αποτελέσµατα, Eισαγωγικές παρατηρήσεις ........ 163
6.5 Συστήµατα ανάπτυξης µικροϋπολογιστικών συστηµάτων .............. 170
Σύνοψη ........................................................................................................................................................... 170
Bιβλιογραφία ............................................................................................................................................. 172
7¶ E P I E X O M E N A
K ∂ º ∞ § ∞ π √ 7
E›ÏÔÁÔ˜: ™‡Á¯ÚÔÓ˜ T¿ÛÂȘ ™¯Â‰È·ÛÌÔ‡ MÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ
Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................ 173
7.1 H εξέλιξη των µικροεπεξεργαστών – Σύγχρονα κυκλώµατα ......... 174
Σύνοψη ........................................................................................................................................................... 176
Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης ..................................................................... 177
Eνδεικτικές Aπαντήσεις ∆ραστηριοτήτων ..................................................................... 203
Γλωσσάρι ..................................................................................................................................................... 208
¶ÚfiÏÔÁÔ˜
Tο βιβλίο αυτό γράφτηκε για να καλύψει τις ανάγκες του µαθήµατος
«Mικροεπεξεργαστές» του Eλληνικού Aνοικτού Πανεπιστηµίου.
Bασίστηκε κυρίως στη σειρά των περισσότερων από δέκα χρόνων διδασκα-
λίας του αντίστοιχου µαθήµατος στο τµήµα Mηχανικών Hλεκτρονικών Yπο-
λογιστών και Πληροφορικής του Πανεπιστηµίου Πατρών και επιπλέον στις
αρχές της «Aνοικτής και εξ αποστάσεως Eκπαίδευσης», όπως αυτές έχουν
διαµορφωθεί τα τελευταία χρόνια στην Eλληνική πραγµατικότητα µε βάση
και τη διεθνή εµπειρία και πρακτική.
Στο βιβλίο περιλαµβάνεται αρχικά µια εισαγωγική ιστορική αναδροµή για
τους Mικροεπεξεργαστές και τη Mικροηλεκτρονική από την εµφάνισή τους
µέχρι σήµερα. Aκολουθούν βασικά στοιχεία αρχιτεκτονικής και προγραµ-
µατισµού των Mικροεπεξεργαστών.
Στη συνέχεια παρατίθενται, όσο γίνεται πιο αναλυτικά, οι δύο κυριότερες
οικογένειες µικροεπεξεργαστών των 8 bits, της INTEL και της
MOTOROLA. Στο επόµενο κεφάλαιο ασχολούµαστε µε τους µικροεπεξερ-
γαστές των 16 bits µε την παρουσίαση του αντιπροσωπευτικότερου του
είδους 8086 της INTEL. Στο τελευταίο κεφάλαιο δίνονται οι βασικές αρχές
και η µεθοδολογία σχεδιασµού συστηµάτων βασισµένων στους µικροεπε-
ξεργαστές και τις περιφερειακές συσκευές τους.
Tο βιβλίο έχει σαν επίλογο µια σύντοµη αναφορά στις σύγχρονες τάσεις σχε-
διασµού µικροεπεξεργαστών.
Tελειώνοντας, θέλω να ευχαριστήσω όλους όσους, έµµεσα ή άµεσα, βοή-
θησαν στο γράψιµο αυτού του βιβλίου, τους φοιτητές µου, τους κριτικούς
αναγνώστες και ιδιαίτερα τον συνεργάτη µου ∆ηµήτρη Mπακάλη, Mηχανι-
κό H/Y και Πληροφορικής, για την πολύ σηµαντική του βοήθεια σε όλο το
διάστηµα των σχεδόν δύο χρόνων ενασχόλησης µε αυτό το βιβλίο.
Γ.Φ. Aλεξίου
Πάτρα 2000
EÈÛ·ÁˆÁ‹
™ÎÔfi˜
Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε τις ανάγκες που επέβαλαν την
εµφάνιση των µικροεπεξεργαστών, τις τεχνολογικές εξελίξεις, που έκαναν
εφικτή αυτή την εµφάνιση, καθώς και τη ραγδαία εξέλιξή τους µέσα από µία
µικρή ιστορική αναδροµή από τον πρώτο µικροεπεξεργαστή µέχρι σήµερα.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• αναφέρετε τη βασική ανάγκη, η οποία οδήγησε στην ανάπτυξη των µικρο-
επεξεργαστών.
• δώσετε τουλάχιστον τρία παραδείγµατα εφαρµογών, τα οποία απαιτούν τη
χρήση µικροεπεξεργαστή.
• ορίσετε τι είναι και από τι αποτελούνται τα ολοκληρωµένα κυκλώµατα.
• περιγράψετε πέντε κατηγορίες των ολοκληρωµένων κυκλωµάτων ως προς
το µέγεθός τους και το πλήθος των τρανσίστορς, που περιέχουν.
• δώσετε τα τέσσερα κυριότερα πλεονεκτήµατα, που έχουν τα ολοκληρωµέ-
να κυκλώµατα.
• περιγράψετε τα έξι βασικά βήµατα που απαιτούνται για την κατασκευή τους.
• απαριθµήσετε τις βασικές χρονολογίες–σταθµούς στην ιστορία των µικρο-
επεξεργαστών.
• δώσετε τον ορισµό ενός µικροϋπολογιστικού συστήµατος και να περιγρά-
ψετε τα τρία βασικά τµήµατα, από τα οποία αποτελείται.
• δώσετε τον ορισµό ενός µικροεπεξεργαστή και να αναφέρετε τα τρία βασι-
κά του τµήµατα.
• περιγράψετε τους τρεις διαύλους επικοινωνίας, που συναντάµε σ’ ένα
µικροϋπολογιστικό σύστηµα.
• ορίσετε τη γενική µορφή των εντολών, τις οποίες καταλαβαίνει ένας µικρο-
επεξεργαστής.
ŒÓÓÔȘ ÎÏÂȉȿ
1∫ ∂ º ∞ § ∞ π √
• ∆ίαυλος ∆εδοµένων
• ∆ίαυλος ∆ιευθύνσεων
• ∆ίαυλος Ελέγχου.
• Μικροεπεξεργαστής
• Μικροϋπολογιστής
• Ολοκληρωµένο Κύκλωµα
1 2 K E º A § A I O 1 : E I ™ A ° ø ° H
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Το πρώτο κεφάλαιο του βιβλίου αποτελεί µια µικρή εισαγωγή στον κόσµο των
µικροϋπολογιστών και των µικροεπεξεργαστών. Ως τέτοιο, δεν περιέχει
δυσκολονόητες έννοιες, αλλά σας προετοιµάζει για τα κεφάλαια που θα ακο-
λουθήσουν.
Θα πρέπει να δώσετε ιδιαίτερη προσοχή στην ενότητα 1.4, στην οποία ανα-
φέρονται βασικές έννοιες, οι οποίες θα αναλυθούν µε µεγάλη λεπτοµέρεια
στο κεφάλαιο 2.
1.1 H AÓ¿ÁÎË: ŒÍ˘Ó·, ¢¤ÏÈÎÙ· Û˘ÛÙ‹Ì·Ù· Ì ÌÈÎÚfi ̤ÁÂıÔ˜
Καθώς οι υπολογιστές εξελίσσονταν, ένα από τα πιο σηµαντικά προβλήµα-
τα που παρουσιάστηκαν ήταν το πώς θα µπορούσαν να χρησιµοποιηθούν σε
όσο το δυνατόν περισσότερες καθηµερινές εφαρµογές. Πολλές συσκευές
(ηλεκτρικές συσκευές, συσκευές ελέγχου µηχανών, συστήµατα σηµατοδό-
τησης) θα µπορούσαν να γίνουν πολύ πιο αποδοτικές και λειτουργικές, εάν
µπορούσαν να χρησιµοποιήσουν την «ευφυΐα» και την ευκολία, µε την οποία
κάνουν πράξεις οι υπολογιστές. Φυσικά, ήταν αδύνατο να δεσµευτεί ένας
µεγάλος ή έστω ένας µεσαίων δυνατοτήτων υπολογιστής σ’ αυτού του είδους
τις εφαρµογές κυρίως λόγω του υπερβολικού τους µεγέθους και κόστους.
Το ζητούµενο, λοιπόν, ήταν να κατασκευασθεί ένα σύστηµα που να περιέ-
χει τόσο τα κυκλώµατα όσο και τη βασική λογική (πρόγραµµα) έτσι ώστε
να µπορεί να αντεπεξέλθει στο σύνολο των απαιτούµενων εφαρµογών.
Συνεπώς, η λύση θα ήταν ένας ολοκληρωµένος αυτοδύναµος υπολογιστής
µέσα σ’ ένα µοναδικό ολοκληρωµένο κύκλωµα, ο οποίος θα έπρεπε να είχε
τη δυνατότητα αποθήκευσης προγραµµάτων και εκτέλεσης σύνθετων µαθη-
µατικών πράξεων.
Βέβαια, όπως συνήθως γίνεται, οι απαιτήσεις της βιοµηχανίας και οι δυνα-
τότητες των σχεδιαστών υπολογιστών ήταν αδύνατο να γεφυρωθούν. Φυσι-
κά ήταν δυνατό να δοθεί λύση σε µερικές από τις απαιτήσεις, αλλά η κατα-
σκευή ενός υπολογιστή πάνω σ’ ένα µοναδικό ολοκληρωµένο κύκλωµα φαι-
νόταν σαν µία µακρινή επιδίωξη. Τη λύση φάνηκε να τη δίνει η τεχνολογία
ολοκληρωµένων κυκλωµάτων, όταν µπόρεσε να τοποθετήσει χιλιάδες
κυκλώµατα πάνω σε µια πολύ µικρή επιφάνεια.
1.2 O TÚfiÔ˜: OÏÔÎÏËڈ̤ӷ ΢ÎÏÒÌ·Ù·
Όλα τα λογικά κυκλώµατα σήµερα κατασκευάζονται µε τη µορφή ολοκλη-
ρωµένων κυκλωµάτων (integrated circuits, ICs). Τα ολοκληρωµένα κυκλώ-
µατα αποτελούνται από ένα κοµµάτι αγώγιµου υλικού (πυριτίου), πάνω στο
οποίο έχει δηµιουργηθεί το κύκλωµα, το οποίο επιθυµούµε, µε τρανσίστορς
(transistors), διόδους, αντιστάσεις και πυκνωτές. Το κοµµάτι αυτό του πυρι-
τίου προστατεύεται από πλαστικό ή κεραµικό περίβληµα, ενώ οι είσοδοι και
οι έξοδοι του κυκλώµατος καταλήγουν σε µεταλλικές επαφές εκτός περι-
βλήµατος, που ονοµάζονται ακροδέκτες (pins). Η µορφή ενός ολοκληρωµέ-
νου κυκλώµατος φαίνεται στο σχήµα 1.1.
1 31 . 1 H A ¡ ∞ ° ∫ ∏ : ∂ • À ¶ ¡ ∞ , ∂ À ∂ § π ∫ ∆∞ ™ À ™ ∆ ∏ ª ∞∆∞ ª ∂ ª π ∫ ƒ √ ª ∂ ° ∂ £ √ ™
1 4 K E º A § A I O 1 : E I ™ A ° ø ° H
Τα κυριότερα πλεονεκτήµατα, που έχουν τα ολοκληρωµένα κυκλώµατα, είναι
το µικρό µέγεθός τους, η µικρή κατανάλωση ισχύος, το µικρό κόστος και η
µεγάλη αξιοπιστία τους.
∆είκτης αρίθµησης∆είκτες αρίθµησης
(α)v
Mικροεπεξεργαστής 40-pin DIPv
σε πλαστικό περίβληµα
(β)v
Mικροεπεξεργαστής 40-pin DIPv
σε κεραµικό περίβληµα
(γ)v
H αρίθµηση των ακροδεκτώνv
σε πλαστικό περίβληµα
(δ)v
H αρίθµηση των ακροδεκτώνv
σε κεραµικό περίβληµα
40 21
1 20
40 21
1 20
™¯‹Ì· 1.1
Η µορφή
των ολοκληρωµένων
κυκλωµάτων
των µικροεπεξεργαστών
Τα ολοκληρωµένα κυκλώµατα χωρίζονται σε κατηγορίες ανάλογα µε τον
αριθµό των τρανσίστορς, που περιέχονται πάνω στην επιφάνεια του αγώγι-
µου υλικού. Σε γενικές γραµµές διαχωρίζονται ως εξής:
• Κυκλώµατα µικρής κλίµακας ολοκλήρωσης (Small Scale Integration ή SSI),
που περιέχουν µερικά µόνο τρανσίστορς.
• Κυκλώµατα µεσαίας κλίµακας ολοκλήρωσης (Medium Scale Integration ή
MSI), που περιέχουν από µερικές δεκάδες µέχρι εκατοντάδες τρανσίστορς.
• Κυκλώµατα µεγάλης κλίµακας ολοκλήρωσης (Large Scale Integration ή
LSI), που περιέχουν από µερικές εκατοντάδες έως χιλιάδες τρανσίστορς.
• Κυκλώµατα πολύ µεγάλης κλίµακας ολοκλήρωσης (Very Large Scale
Integration ή VLSI), που περιέχουν από µερικές χιλιάδες έως εκατοντά-
δες χιλιάδες τρανσίστορς.
• Κυκλώµατα εξαιρετικά υψηλής κλίµακας ολοκλήρωσης (Ultra Large Scale
Integration ή ULSI), που περιέχουν από ένα εκατοµµύριο τρανσίστορς και
πάνω.
Καθώς ο αριθµός των τρανσίστορς, που περικλείονται σε µια επιφάνεια ενός
ολοκληρωµένου κυκλώµατος, είναι τροµακτικά µεγάλος, είναι αδύνατη
πλέον η σχεδίασή του χωρίς τη χρήση υπολογιστή. Κατά τη διάρκεια σχε-
δίασης, ο σχεδιαστής χρησιµοποιεί έναν τερµατικό σταθµό για να σχεδιάσει
σε αυτόν το γράφηµα του λογικού κυκλώµατος, που θα αποτυπωθεί πάνω
στην επιφάνεια πυριτίου. Κατόπιν, µε τη βοήθεια ειδικών προγραµµάτων
αποθηκευµένων στον υπολογιστή και ειδικών εργαλείων, το γράφηµα αυτό
θα σχηµατιστεί πάνω στην επιφάνεια του ολοκληρωµένου κυκλώµατος.
Μετά το τέλος της διαδικασίας σχεδιασµού, ακολουθεί η διαδικασία παρα-
γωγής και ελέγχου ορθής λειτουργίας του ολοκληρωµένου κυκλώµατος. Τα
ολοκληρωµένα κυκλώµατα κατασκευάζονται σε δεκάδες ή εκατοντάδες, ανά-
λογα µε το µέγεθός τους, πάνω σε ένα δίσκο πυριτίου, ο οποίος ονοµάζεται
wafer (παρατηρήστε το σχήµα 1.2). Το wafer περιέχει εκτός από τα κυκλώ-
µατα, τα οποία επιθυµούµε να κατασκευάσουµε, και κυκλώµατα ελέγχου της
διαδικασίας (test structures). Τα κυκλώµατα αυτά έχουν ως στόχο την παρα-
κολούθηση της διαδικασίας παραγωγής από τον κατασκευαστή και τον έλεγ-
χο ποιότητας του αποτελέσµατος. Σε περίπτωση, που κάποια κυκλώµατα
ελέγχου δείξουν προβληµατική συµπεριφορά, αυτόµατα σταµατάει η διαδι-
κασία και o δίσκος πυριτίου απορρίπτεται.
Το πρώτο βήµα που έχουµε εποµένως είναι η κατασκευή του δίσκου πυριτί-
ου. Η διαδικασία αποτύπωσης των κυκλωµάτων πάνω σε αυτόν ακολουθεί
διάφορα στάδια. Αρχικά έχουµε την κατασκευή µιας απόλυτα καθαρής ηµια-
γώγιµης επιφάνειας, στην οποία υπεισάγονται προσµίξεις µε τη βοήθεια ενός
µονωτικού επιστρώµατος οξειδίου για να αποδοθούν οι απαραίτητες ηλε-
κτρικές ιδιότητες. Πάνω στην επιφάνεια αυτή επιτίθεται προστατευτικό επί-
χρισµα και εκτίθεται σε ακτινοβολία µέσω µασκών, µετά καθαρίζεται,
χαράσσεται µε οξέα, προστίθενται καινούργιες προσµίξεις και η διαδικασία
αυτή επαναλαµβάνεται µέχρις ότου χαραχτούν όλα τα κυκλώµατα.
Το επόµενο βήµα είναι ο έλεγχος των πλακιδίων (dies), που παράγονται. Η
διαδικασία ελέγχου βασίζεται στην εφαρµογή σηµάτων ελέγχου στα σηµεία
των εξωτερικών συνδεσµολογιών κάθε πλακιδίου. Όσα δεν έχουν σωστή
απόκριση, σηµειώνονται ως ελαττωµατικά.
1 51 . 2 O T ƒ √ ¶ √ ™ : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ ∫ À ∫ § ø ª ∞∆∞
1 6 K E º A § A I O 1 : E I ™ A ° ø ° H
Στη συνέχεια, όπως φαίνεται στο σχήµα 1.3, οι δίσκοι πυριτίου κόβονται στα
επιµέρους τµήµατα, που είναι τα ολοκληρωµένα κυκλώµατα, και τα ελατ-
τωµατικά απορρίπτονται. Το κάθε ολοκληρωµένο κύκλωµα, που προκύπτει,
™¯‹Ì· 1.2
Η διαδικασία
κατασκευής των
ολοκληρωµένων
κυκλωµάτων
τοποθετείται σε µία βάση (πλαστικό ή κεραµικό περίβληµα) και οι γραµµές,
που έχει, συνδέονται µε χρυσά σύρµατα στους ακροδέκτες της βάσης. Τέλος
τοποθετείται το πάνω µέρος του περιβλήµατος και τα ολοκληρωµένα κυκλώ-
µατα είναι έτοιµα.
1 71 . 2 O T ƒ √ ¶ √ ™ : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ ∫ À ∫ § ø ª ∞∆∞
™¯‹Ì· 1.3
Η κοπή των πλακιδίων
από το δίσκο πυριτίου
Μετά από το σηµείο αυτό γίνεται και ο τελικός έλεγχος των ολοκληρωµένων
κυκλωµάτων σχετικά µε την τήρηση των προδιαγραφών λειτουργίας τους
και την τήρηση των ζητούµενων χαρακτηριστικών.
Τι είναι τα ολοκληρωµένα κυκλώµατα; Από τι αποτελούνται; ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.1
1 8 K E º A § A I O 1 : E I ™ A ° ø ° H
1.3 TÔ AÔÙ¤ÏÂÛÌ·: H ÂÌÊ¿ÓÈÛË ÙˆÓ ÌÈÎÚÔ–ÂÂÍÂÚÁ·ÛÙÒÓ
Το αποτέλεσµα της εµφάνισης της τεχνολογίας των ολοκληρωµένων κυκλω-
µάτων ήταν η ενσωµάτωση σε ένα µόνο ολοκληρωµένο κύκλωµα όλης της
κεντρικής µονάδας επεξεργασίας, η οποία βέβαια θα έπρεπε να προγραµµα-
τίζεται για να περιέχει τις βασικότερες λειτουργίες ενός ψηφιακού υπολογι-
στή. Το κύκλωµα αυτό ονοµάστηκε µικροεπεξεργαστής. Η µνήµη του βρί-
σκεται σε αρκετά ολοκληρωµένα κυκλώµατα περιορισµένων αποθηκευτι-
κών δυνατοτήτων, τα οποία το συνοδεύουν. Επίσης υποστηρίζεται και από
µια πλειάδα α) ολοκληρωµένων κυκλωµάτων για να διασυνδέεται κατάλλη-
λα και µε τον εξωτερικό κόσµο µια και δεν έχει ενσωµατωµένες αυτές τις
δυνατότητες και β) ολοκληρωµένων κυκλωµάτων, που επιτελούν τις λει-
τουργίες χρονισµού και προώθησης δεδοµένων στον τελικό τους προορισµό.
Η ανάπτυξη της τεχνολογίας των ολοκληρωµένων κυκλωµάτων τις τελευταίες
δεκαετίες έδωσε τη δυνατότητα να µπορούν να ενσωµατωθούν σε ένα ολο-
κληρωµένο κύκλωµα όλο και πιο πολύπλοκα κυκλώµατα (από τον πρώτο
Αντιστοιχίστε τις κατηγορίες των ολοκληρωµένων κυκλωµάτων µε τον
αριθµό των τρανσίστορς, τα οποία περιέχουν:
SSI µεταξύ 10 και 100
MSI λιγότερα από 10
LSI µεταξύ 10.000 και 1.000.000
VLSI πάνω από 1.000.000
ULSI µεταξύ 100 και 10.000
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.2
Αναφέρετε ποια είναι τα τέσσερα κυριότερα πλεονεκτήµατα των ολοκλη-
ρωµένων κυκλωµάτων.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.3
Απαριθµήστε τα βασικά βήµατα στη διαδικασία κατασκευής ενός ολο-
κληρωµένου κυκλώµατος.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.4
µικροεπεξεργαστή, που είχε 2 χιλιάδες τρανσίστορς, έχουµε φτάσει πλέον σε
επεξεργαστές µε πάνω από 7 εκατοµµύρια τρανσίστορς σε ένα και µόνο ολο-
κληρωµένο κύκλωµα) µε αποτέλεσµα τη γρήγορη ανάπτυξη των µικροεπεξερ-
γαστών και την ολοένα και πιο συχνή χρήση τους τόσο σε πολύπλοκες υπολο-
γιστικές συσκευές όσο και σε απλές οικιακές συσκευές ή συστήµατα ελέγχου.
1.4 MÈÎÚÔ¸ÔÏÔÁÈÛÙ¤˜ Î·È ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙ¤˜
Η οργάνωση των µικροϋπολογιστικών συστηµάτων είναι παρόµοια µε εκεί-
νη των κλασικών υπολογιστικών συστηµάτων (main frame, mini). Αποτε-
λούνται, όπως µπορείτε να παρατηρήσετε στο σχήµα 1.4, από τις παρακάτω
λειτουργικές µονάδες:
• Mονάδες εισόδου/εξόδου, µε τις οποίες το σύστηµα επικοινωνεί µε το εξω-
τερικό του περιβάλλον.
• Tο µικροεπεξεργαστή (ή αλλιώς κεντρική µονάδα επεξεργασίας), η οποία
περιλαµβάνει την αριθµητική και λογική µονάδα, που επεξεργάζεται τα
δεδοµένα, τη µονάδα ελέγχου, που είναι υπεύθυνη για τον έλεγχο και το
συντονισµό όλων των µονάδων του συστήµατος, και τους καταχωρητές,
που χρησιµεύουν για προσωρινή αποθήκευση.
• Tην κύρια µνήµη, που χρησιµεύει για την αποθήκευση των εντολών του προ-
γράµµατος, των αρχικών δεδοµένων και των ενδιάµεσων αποτελεσµάτων.
1 91 . 4 M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ ∂ ™ ∫ ∞ π ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
EIΣO∆OΣv
INPUT
EΞO∆OΣv
OUTPUT
KME (CPU)v
Mονάδα ελέγχουv
+v
Aριθµητική λογική µονάδαv
(Control + arithmetic)
Mνήµηv
προγράµµατος
Mνήµηv
δεδοµένων
Mνήµη (Memory)
™¯‹Ì· 1.4
Ένα τυπικό µικροϋπολογι-
στικό σύστηµα
Τα µηχανικά και ηλεκτρονικά µέρη του µικροϋπολογιστικού συστήµατος
αποτελούν το υλικό (hardware), ενώ το σύνολο των προγραµµάτων και εντο-
2 0 K E º A § A I O 1 : E I ™ A ° ø ° H
λών που κατευθύνουν τη λειτουργία του αποτελούν το λογισµικό (software).
Ο συνδυασµός υλικού και λογισµικού αναφέρεται µερικές φορές σαν υλικο-
λογισµικό (firmware).
Το ιδιαίτερο χαρακτηριστικό σε σχέση µε άλλα υπολογιστικά συστήµατα
είναι ότι ολόκληρη η µονάδα επεξεργασίας περιέχεται σε ένα ολοκληρωµέ-
νο κύκλωµα, που κατασκευάζεται σε ένα µικρό κοµµάτι πυριτίου και ανα-
φέρεται σαν µικροεπεξεργαστής. Η ενσωµάτωση όλων των στοιχείων της
κεντρικής µονάδας επεξεργασίας σε ένα µόνο ολοκληρωµένο κύκλωµα, συν-
δυάζει τα πλεονεκτήµατα του µικρού µεγέθους, της υψηλής αξιοπιστίας και
του χαµηλού κόστους. Ο µικροεπεξεργαστής συνδέεται κατάλληλα µε τα
ολοκληρωµένα κυκλώµατα της µνήµης και των µονάδων εισόδου/εξόδου,
για να αποτελέσει το υπολογιστικό σύστηµα που ονοµάζουµε µικροϋπολογι-
στή ή µικροϋπολογιστικό σύστηµα.
Eίσοδοιv
Input(s)
Έξοδοιv
Output(s)
Mικροεπεξεργαστήςv
CPUv
control + arithmetic
Mνήµηv
προγράµµατος
Mνήµηv
δεδοµένων
Γρα
µµ
ές ε
λέγ
χου
∆ία
υλος
διε
υθύνσ
εων (
16 γ
ρα
µµ
ές)
∆ία
υλος
διε
δοµ
ένω
ν (
8 γ
ρα
µµ
ές)
™¯‹Ì· 1.5
Οι δίαυλοι επικοινωνίας
του µικροϋπολογιστή
Θα πρέπει να αναφέρουµε επίσης ότι και οι µικροεπεξεργαστές, όπως άλλω-
στε και όλα τα λογικά κυκλώµατα, λειτουργούν µε βάση τη δυαδική λογική,
όπου µε τη βοήθεια δύο µόνο λογικών καταστάσεων (λογικό 0 και λογικό 1),
που αναπαρίστανται µε επίπεδα ηλεκτρικών τάσεων, εκτελούν όλες τις αριθ-
µητικές πράξεις. Η τεχνική αυτή επιβλήθηκε για λόγους τεχνολογικής αξιο-
πιστίας. Έτσι οι πληροφορίες που ανταλλάσσει ο µικροεπεξεργαστής µε τη
µνήµη και τις µονάδες εισόδου/εξόδου είναι συνδυασµοί δυαδικών ψηφίων.
Η µεταφορά της δυαδικής πληροφορίας ανάµεσα στις διάφορες µονάδες του
µικροϋπολογιστή γίνεται παράλληλα από ένα σύνολο γραµµών, που αναφέ-
ρονται σαν δίαυλος δεδοµένων (data bus). Οι γραµµές αυτές αναφέρονται
σαν γραµµές δεδοµένων (data lines). Ο δίαυλος δεδοµένων δεν λύνει όλα τα
προβλήµατα µεταφοράς της πληροφορίας. Ο µικροεπεξεργαστής θα πρέπει
να έχει τη δυνατότητα επιλογής της µονάδας, µε την οποία θα επικοινωνή-
σει, και να µπορεί να την ειδοποιήσει ότι θα στείλει ή θα πάρει δεδοµένα από
αυτή. Για το λόγο αυτό διαθέτει δύο ακόµα διαύλους, το δίαυλο διευθύνσε-
ων (address bus) και το δίαυλο ελέγχου (control bus). Οι γραµµές των διαύ-
λων αυτών λέγονται αντίστοιχα γραµµές διευθύνσεων (address lines) και
γραµµές ελέγχου (control lines). Με τις γραµµές διευθύνσεων ο µικροεπε-
ξεργαστής στέλνει τη δυαδική διεύθυνση της θέσης µνήµης ή της µονάδας
εισόδου/εξόδου, µε την οποία θέλει να επικοινωνήσει, και µε τις γραµµές
ελέγχου τα κατάλληλα ηλεκτρικά σήµατα για την ενεργοποίηση των επιθυ-
µητών λειτουργιών της µνήµης ή των µονάδων εισόδου/εξόδου. Παρατηρή-
στε στο σχήµα 1.5 τον τρόπο µε τον οποίο συνδέονται οι δίαυλοι επικοινω-
νίας σε ένα τυπικό µικροϋπολογιστικό σύστηµα.
Η απαίτηση της ενεργοποίησης στοιχειωδών λειτουργιών σε προκαθορι-
σµένα χρονικά διαστήµατα, δηµιουργεί την ανάγκη ύπαρξης µιας βάσης χρό-
νου, που αναφέρεται ως κύκλωµα χρονισµού (clock). Το κύκλωµα χρονισµού
αποτελείται συνήθως από ένα κρυσταλλικό ταλαντωτή, που παράγει τετρα-
γωνικούς παλµούς σταθερής συχνότητας. Η συχνότητα αυτή του ταλαντω-
τή καθορίζει και τη συχνότητα λειτουργίας του µικροεπεξεργαστή.
Σε κάθε υπολογιστή η κύρια µνήµη αποτελείται από ένα σύνολο θέσεων,
καθεµία από τις οποίες περιλαµβάνει ένα ή περισσότερα αποθηκευτικά κύτ-
ταρα (storage cells) ικανά να αποθηκεύσουν πληροφορία ενός δυαδικού
ψηφίου 0 ή 1 (binary digit – bit). Η διάκριση µεταξύ δύο θέσεων γίνεται από
ένα χαρακτηριστικό αριθµό, που ονοµάζεται διεύθυνση. Η αρίθµηση των
θέσεων µνήµης αρχίζει από τον αριθµό 0 και είναι συνεχής. Ο αριθµός, που
2 11 . 4 M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ ∂ ™ ∫ ∞ π ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 2 K E º A § A I O 1 : E I ™ A ° ø ° H
αντιστοιχεί στην τελευταία θέση µνήµης, το πλήθος δηλαδή των θέσεων µνή-
µης, διαφέρει από σύστηµα σε σύστηµα και εξαρτάται αποκλειστικά από την
κατασκευή της κεντρικής µονάδας επεξεργασίας και τον τρόπο σύνδεσής της
µε την κύρια µνήµη.
Στην περίπτωση που κάθε θέση µνήµης περιέχει ένα µόνο αποθηκευτικό κύτ-
ταρο, λέµε ότι είναι οργανωµένη σε δυαδικά ψηφία, ενώ, όταν περιέχει περισ-
σότερα από ένα αποθηκευτικά κύτταρα, λέµε ότι είναι οργανωµένη σε λέξεις.
Το πλήθος των αποθηκευτικών κυττάρων της λέξης είναι δύναµη του δύο.
Μια οµάδα από 8 δυαδικά ψηφία ονοµάζεται ψηφιολέξη (byte). Συνήθως η
ψηφιολέξη χωρίζεται σε δύο οµάδες των 4 δυαδικών ψηφίων, καθεµία από τις
οποίες ονοµάζεται ηµιψηφιολέξη (nibble). Η πρώτη από τα αριστερά συµβο-
λίζεται µε NBH (Nibble Byte High) και η δεύτερη µε NBL (Nibble Byte Low).
Kωδικόςv
λειτουργίαςΈντελο 1 Έντελο 2
Πεδίοv
πηγής
Πεδίοv
προορισµού™¯‹Ì· 1.6
Η µορφή των εντολών
Όπως είπαµε και νωρίτερα, ο µικροεπεξεργαστής δέχεται και εκτελεί οδη-
γίες. Οι οδηγίες αυτές βρίσκονται συνήθως αποθηκευµένες στη µνήµη µε τη
µορφή εντολών.
Κάθε εντολή αποτελείται συνήθως από τρία πεδία:
• το πεδίο του κωδικού λειτουργίας (operation code), το οποίο περιέχει τον
κωδικό της εντολής και υπαγορεύει στην κεντρική µονάδα επεξεργασίας
την εκτέλεση της συγκεκριµένης λειτουργίας,
• το έντελο ή αλλιώς πεδίο πηγής (source operand field), που περιέχει τα
δεδοµένα ή τη διεύθυνση των δεδοµένων, τα οποία θα χειριστεί η κεντρι-
κή µονάδα επεξεργασίας κατά την εκτέλεση της εντολής,
• το έντελο ή αλλιώς πεδίο προορισµού (destination operand field), που
δηλώνει τη θέση όπου θα αποθηκευτεί το αποτέλεσµα.
Ανάλογα µε την εσωτερική οργάνωση, που έχει ο κάθε µικροεπεξεργαστής,
εµφανίζονται πολλές φορές διαφοροποιήσεις από τη γενική περίπτωση, που
αναφέραµε παραπάνω. Έτσι π.χ. µπορεί να υπάρχουν εντολές µε τρία έντε-
λα (όπως συµβαίνει στην περίπτωση µιας εντολής πρόσθεσης δύο αριθµών)
ή µε ένα έντελο ή µε κανένα (στην περίπτωση αυτή ο κωδικός λειτουργίας
περιέχει και το πού θα εφαρµοστεί η εντολή).
2 31 . 4 M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ ∂ ™ ∫ ∞ π ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Προσπαθήστε να εξηγήσετε ποια απαίτηση των κατασκευαστών συστηµά-
των οδήγησε στην εµφάνιση των µικροεπεξεργαστών. Σκεφτείτε παραδείγ-
µατα από την καθηµερινή ζωή και από τις συσκευές, τις οποίες χρησιµοποι-
είτε συχνά, και αναφέρετε τρία παραδείγµατα συσκευών ή γενικότερα συστη-
µάτων, που να χρησιµοποιούν µικροεπεξεργαστές. Για να οδηγηθείτε σε
σωστό δρόµο σκεφτείτε ενέργειες, που κάνουν οι σύγχρονες συσκευές και
δεν υπήρχαν στις παλαιότερες. Προσπαθήστε σε κάθε παράδειγµα να προσ-
διορίσετε α) ποια είναι η πληροφορία, την οποία επεξεργάζεται ο µικροεπε-
ξεργαστής, β) ποια είναι η είσοδος σε αυτόν και γ) ποια είναι η έξοδος της
επεξεργασίας. Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της
δραστηριότητας εκτιµάµε πως δεν θα ξεπεράσει τα 30 περίπου λεπτά.
¢Ú·ÛÙËÚÈfiÙËÙ· 1.1
Ποια είναι τα τρία βασικά τµήµατα, από τα οποία αποτελείται ένα µικρο-
ϋπολογιστικό σύστηµα;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.5
Τα µικροϋπολογιστικά συστήµατα επικοινωνούν µεταξύ τους µέσω τριών
διαύλων. Αντιστοιχίστε το όνοµα του καθενός από αυτούς µε τις ενέργειες
που εµφανίζονται στη δεξιά στήλη:
∆ίαυλος ∆εδοµένων Mεταφέρει τη διεύθυνση της θέσης µνή-
µης ή της συσκευής Ι/Ο, µε την οποία
ανταλλάσσονται δεδοµένα.
∆ίαυλος ∆ιευθύνσεων Mεταφέρει τη χρήσιµη πληροφορία,
δηλαδή τα δεδοµένα.
∆ίαυλος Ελέγχου Eνεργοποιεί ή απενεργοποιεί τη µνήµη
και τις συσκευές Ι/Ο, επιλέγει εάν θα
γίνει ανάγνωση ή εγγραφή στη µνήµη.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.6
2 4 K E º A § A I O 1 : E I ™ A ° ø ° H
1.5 IÛÙÔÚÈ΋ ·Ó·‰ÚÔÌ‹
Ο πρώτος µικροεπεξεργαστής έκανε την εµφάνιση του στις αρχές του 1972,
σχεδόν τρεις δεκαετίες µετά από τους πρώτους ηλεκτρονικούς υπολογιστές. Η
εξέλιξη των µικροεπεξεργαστών θυµίζει πολύ την αντίστοιχη εξέλιξη των
µεσαίων υπολογιστών. Όπως δηλαδή οι σχεδιαστές των µεσαίων υπολογιστών
µετέφεραν σε αυτούς τις ιδέες τους από τη σχεδίαση µεγάλων συστηµάτων,
έτσι και οι σχεδιαστές των µικροεπεξεργαστών υιοθέτησαν πολλά στοιχεία της
οργάνωσης και της αρχιτεκτονικής των µεσαίων και µεγάλων συστηµάτων.
Στους µικροεπεξεργαστές της τελευταίας γενιάς άρχισαν ήδη να εφαρµόζο-
νται προχωρηµένα στοιχεία αρχιτεκτονικής, µε αποτέλεσµα σήµερα να είναι
ασαφής ο διαχωρισµός ανάµεσα στους µεσαίους υπολογιστές και σε συστή-
µατα βασισµένα σε µικροεπεξεργαστές.
Ποια είναι τα τρία πεδία, από τα οποία αποτελείται, στη γενική περίπτω-
ση, µία εντολή;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.7
™¯‹Ì· 1.7
Γνωστοί µικροεπεξεργαστές:
α) 8080Α,
β) 80868088 και
γ) PentiumII
Χρονολογίες–σταθµοί στην ιστορία των (µικρο)επεξεργαστών µπορούν να
θεωρηθούν οι παρακάτω:
• 1971: Η Intel παρουσιάζει τον πρώτο µικροεπεξεργαστή, τον 4004. Έχει
δίαυλο δεδοµένων πλάτους 4 bit, κατασκευάζεται µε 2.300 τρανσίστορς
και έχει συχνότητα λειτουργίας 108 kHz. Μέσα στην επόµενη χρονιά
εµφανίζεται ο διάδοχος του 8008.
• 1974: Εµφάνιση του 8–bit µικροεπεξεργαστή Intel 8080 ως αποτέλεσµα
της εξέλιξης του 8008. Έχει συχνότητα λειτουργίας 2 MHz και η κατα-
σκευή του απαιτεί 6.000 τρανσίστορς. Απάντηση της Zilog µε τον Z80
και της Motorola µε τον 6800, o οποίος έχει 4.000 τρανσίστορς και ίδια
συχνότητα λειτουργίας µε τον 8080.
• 1975: Η Intel αναβαθµίζει τον 8080 σε 8085.
• 1978: Εµφανίζονται οι πρώτοι 16–bit µικροεπεξεργαστές (δηλαδή ο δίαυ-
λος δεδοµένων τους έχει πλάτος 16 bit). H Intel παρουσιάζει τον
8086/8088, του οποίου η συχνότητα λειτουργίας έχει ανέβει πλέον στα 10
MHz και η κατασκευή του απαιτεί 29.000 τρανσίστορς. Η Motorola εµφα-
νίζει τον 68000 µε συχνότητα λειτουργίας 8 MHz, ο οποίος περιέχει
68.000 τρανσίστορς (από αυτό το γεγονός πήρε και το όνοµά του).
• 1982: Εµφανίζεται ο Intel 80286, ο οποίος περιέχει 134.000 τρανσίστορς
και έχει συχνότητα λειτουργίας 12,5 MHz. Αντίστοιχα η Motorola εµφα-
νίζει τον 68010.
• 1985: Εµφανίζονται οι πρώτοι 32–bit µικροεπεξεργαστές. Από τη µια ο
Intel 80386, ο οποίος περιέχει 275.000 τρανσίστορς και συχνότητα λει-
τουργίας 33 MHz και από την άλλη ο Motorola 68020 µε 200.000 τραν-
σίστορς και 16 MHz. Οι εξελίξεις πλέον είναι ραγδαίες.
• 1989: Εµφανίζεται ο 32–bit µικροεπεξεργαστής Intel 80486, ο οποίος έχει
1.200.000 τρανσίστορς και συχνότητα λειτουργίας 50 MHz.
• 1993: Εµφανίζεται ο Intel Pentium, ο οποίος περιέχει 3.100.000 τρανσί-
στορς και η συχνότητα λειτουργίας του έχει φτάσει στα 166 MHz.
• 1993: H Digital παρουσιάζει τον πρώτο 64–bit µικροεπεξεργαστή Alpha.
• 1997: H Intel ανακοινώνει τον Pentium II. Η συχνότητα λειτουργίας του
βρίσκεται στα 300 MHz και το ολοκληρωµένο κύκλωµά του αποτελεί-
ται από 7.700.000 τρανσίστορς.
• 1999: H Intel ανακοινώνει τον Pentium III µε συχνότητα λειτουργίας 450
MHz (σήµερα έχει φτάσει στο 1.13 GHz). Tο ολοκληρωµένο κύκλωµα
αποτελείται από 9.500.000 τρανσίστορς.
2 51 . 5 I ™ ∆ √ ƒ π ∫ ∏ ∞ ¡ ∞ ¢ ƒ √ ª ∏
Στην ενότητα 1.5 κάναµε µια ιστορική αναδροµή και είδαµε πώς εξελί-
χθηκαν οι µικροεπεξεργαστές µέχρι σήµερα. Τα κυριότερα χαρακτηριστι-
κά, στα οποία αναφερθήκαµε, ήταν το µήκος λέξης του µικροεπεξεργαστή
¢Ú·ÛÙËÚÈfiÙËÙ· 1.2
2 6 K E º A § A I O 1 : E I ™ A ° ø ° H
(δηλαδή το πλήθος των γραµµών δεδοµένων), η χρονιά εµφάνισής του, η
συχνότητα λειτουργίας του και ο αριθµός των τρανσίστορς, που περιέχει.
∆ηµιουργήστε ένα συγκεντρωτικό πίνακα µε όλα αυτά τα χαρακτηριστικά
για κάθε επεξεργαστή της Intel, τον οποίο γνωρίζετε. Ο χρόνος απασχόλη-
σής σας για την ολοκλήρωση αυτής της δραστηριότητας εκτιµάµε πως δεν
θα ξεπεράσει τα 30 περίπου λεπτά.
Ετοιµάστε µε τα στοιχεία, τα οποία έχετε από την ενότητα 1.5 είτε από
τη δραστηριότητα 2 του κεφαλαίου 1, µία γραφική παράσταση µε τον
αριθµό των τρανσίστορς στα ολοκληρωµένα κυκλώµατα σε σχέση µε τις
χρονολογίες εµφάνισης τους. Παρατηρήστε τη γραφική παράσταση και
βρείτε τη σχέση που συνδέει τις δύο παραµέτρους (είναι γραµµική;
πολυωνυµική; εκθετική;).
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.8
™‡ÓÔ„Ë
Η επιθυµία των κατασκευαστών συστηµάτων να δηµιουργήσουν όλο και πιο
έξυπνα συστήµατα µε περισσότερες δυνατότητες και µε µικρότερο µέγεθος
οδήγησε στην ανάγκη για ενσωµάτωση όλων των λειτουργιών ενός ολόκλη-
ρου υπολογιστή σε ένα ή µερικά ολοκληρωµένα κυκλώµατα.
Η ανάπτυξη της τεχνολογίας κατασκευής των τελευταίων µε την συνεχή αύξη-
ση του αριθµού των τρανσίστορς, που θα µπορούσαν να αποθηκευτούν σε
αυτά, µε το µικρό κόστος, τη µικρή κατανάλωση ισχύος και την αξιόπιστη
λειτουργία τους παρείχε αυτή τη δυνατότητα. Έτσι σήµερα η χρήση µικροε-
πεξεργαστών σε συσκευές της καθηµερινής µας ζωής, σε βιοµηχανικά συστή-
µατα ελέγχου και σε πολλά άλλα συστήµατα είναι πλέον δεδοµένη.
Όλα τα συστήµατα, τα οποία περιέχουν κάποιο µικροεπεξεργαστή, ονοµάζο-
νται µικροϋπολογιστές ή µικροϋπολογιστικά συστήµατα. Τα συστήµατα αυτά
περιέχουν ακόµα µονάδες εισόδου/εξόδου για να επικοινωνούν µε το περι-
βάλλον και την κύρια µνήµη για να αποθηκεύουν τα δεδοµένα και τις εντο-
λές του προγράµµατος, το οποίο εκτελεί ο µικροεπεξεργαστής. Οι εντολές
είναι αποθηκευµένες στην κύρια µνήµη και αποτελούνται από τον κωδικό
λειτουργίας, που καθορίζει τι πρέπει να κάνει η κάθε εντολή, και τα έντελα
πηγής και προορισµού, που περιέχουν είτε τις διευθύνσεις, στις οποίες βρί-
σκονται τα δεδοµένα, είτε τα ίδια τα δεδοµένα.
Η επικοινωνία µεταξύ των διαφόρων µονάδων ενός µικροϋπολογιστή γίνε-
ται µέσω τριών διαύλων, του διαύλου δεδοµένων για τη µεταφορά των δεδο-
µένων, του διαύλου διευθύνσεων για την επιλογή της θέσης µνήµης ή µονά-
δας εισόδου/εξόδου, από την οποία θα µεταφερθούν τα δεδοµένα, και του
διαύλου ελέγχου για τον έλεγχο των διαφόρων λειτουργιών του συστήµατος.
Οι γραµµές, που περιέχουν οι δίαυλοι αυτοί, ονοµάζονται αντίστοιχα γραµ-
µές δεδοµένων, γραµµές διευθύνσεων και γραµµές ελέγχου.
Η ανάπτυξη των µικροεπεξεργαστών ήταν ραγδαία. Από τον πρώτο µικροε-
πεξεργαστή (Intel 4004), ο οποίος εµφανίστηκε το 1971 µε 2.300 τρανσίστορς
και συχνότητα λειτουργίας 108 kHz, έχουµε φτάσει σήµερα σε επεξεργαστές
(Intel Pentium III), που περιέχουν 9.500.000 τρανσίστορς και συχνότητες λει-
τουργίας µέχρι 1.13 MHz, µε αποτέλεσµα να δηµιουργούνται όλο και πιο
ισχυρά και γρήγορα µικροϋπολογιστικά συστήµατα.
BÈ‚ÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε µε το εισαγωγικό κεφάλαιο, εάν µπορείτε να διαθέσετε
κάποιον επιπλέον χρόνο, καλό θα ήταν να µελετήσετε τα παρακάτω κείµενα:
Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 1. Στο κεφάλαιο αυτό θα βρείτε ένα
πολύ ωραίο παράδειγµα, το οποίο περιγράφει πώς λειτουργεί ένας µικρο-
ϋπολογιστής.
Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 3. Το κεφάλαιο αυτό θα σας θυµίσει
βασικά κυκλώµατα σχεδιασµού, όπως τις βασικές πύλες AND, OR, NOT,
τα flip–flops, τους κωδικοποιητές και αποκωδικοποιητές, τους αποµονω-
τές και τις µνήµες. Όλα αυτά τα κυκλώµατα θα µας είναι χρήσιµα στο σχε-
διασµό µικροϋπολογιστικών συστηµάτων, που θα δούµε στο κεφάλαιο 7.
Εάν πάλι δεν έχετε χρόνο, µην ανησυχείτε. Στα επόµενα κεφάλαια θα ανα-
λύσουµε ένα προς ένα τα θέµατα που µας χρειάζονται, για να αποκτήσε-
τε µια ολοκληρωµένη άποψη για τους µικροεπεξεργαστές.
2 7B π µ § π √ ° ƒ∞ º π ∞
OÈ MÈÎÚÔÂÂÍÂÚÁ·ÛÙ¤˜
™ÎÔfi˜
Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε ένα γενικό µικροεπεξεργαστή,
τα βασικά τµήµατα, από τα οποία αυτός αποτελείται, καθώς επίσης και τις
βασικές αρχές και χαρακτηριστικά λειτουργίας του χωρίς να αναφερόµαστε
σε κάποιο συγκεκριµένο µικροεπεξεργαστή.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• εξηγήσετε σε µία παράγραφο τις βασικές λειτουργίες που επιτελούν τα τρία
τµήµατα, από τα οποία αποτελείται ένας µικροεπεξεργαστής.
• ορίσετε ποιες είναι οι αριθµητικές και ποιες οι λογικές πράξεις, που γίνο-
νται µέσα στην αριθµητική και λογική µονάδα.
• αναφέρετε τα πέντε βασικά κυκλώµατα, από τα οποία αποτελείται η αριθ-
µητική και λογική µονάδα.
• ορίσετε τι είναι ένας καταχωρητής και πού µας χρησιµεύει.
• αναφέρετε τους έξι βασικούς τύπους καταχωρητών και τη λειτουργία που
επιτελεί ο καθένας από αυτούς.
• καταγράψετε τον τρόπο, µε τον οποίο οι µικροεπεξεργαστές µας δείχνουν
την κατάσταση, στην οποία βρίσκονται µετά από την εκτέλεση µιας εντο-
λής ή λειτουργίας.
• διαχωρίσετε τους τρεις διαύλους επικοινωνίας µε βάση την πληροφορία,
την οποία µεταφέρουν.
• ορίσετε µε ποιόν τρόπο αρχικοποιούµε ένα µικροεπεξεργαστή.
• χωρίσετε το χρόνο, που απαιτείται για την εκτέλεση µιας εντολής, σε µικρό-
τερα τµήµατα.
• αναφέρετε τις έξι βασικές κατηγορίες, στις οποίες χωρίζεται το σύνολο
εντολών ενός µικροεπεξεργαστή.
• ορίσετε τους εφτά διαφορετικούς τρόπους, µε τους οποίους µια εντολή καθο-
ρίζει πού βρίσκονται τα δεδοµένα, τα οποία αυτή χρειάζεται για να εκτελεστεί.
2∫ ∂ º ∞ § ∞ π √
3 0 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Το κεφάλαιο αυτό αποτελεί ίσως το σηµαντικότερο κεφάλαιο του βιβλίου και
γι’ αυτό θα πρέπει να το µελετήσετε µε ιδιαίτερη προσοχή. Αναπτύσσονται
πολλές νέες έννοιες, οι οποίες θα χρησιµεύσουν στα επόµενα κεφάλαια, και
γι’ αυτό χρειάζονται ίσως αρκετές αναγνώσεις του κειµένου από σας για να
τις καταλάβετε πλήρως. Μην προχωρήσετε στο κεφάλαιο 3 πριν κατανοήσε-
τε τα περιεχόµενα του κεφαλαίου αυτού.
• Αριθµητική και Λογική Μονάδα
• ∆είκτης Σωρού
• ∆ίαυλος ∆εδοµένων
• ∆ίαυλος ∆ιευθύνσεων
• ∆ίαυλος Ελέγχου
• Ενεργή ∆ιεύθυνση
• Καταχωρητής
• Καταχωρητής Γενικού Σκοπού
• Καταχωρητής Εντολών
• Kαταχωρητής Κατάστασης Επε-
ξεργαστή
• Κύκλος Εντολής
• Κύκλος Μηχανής
• Κύκλος Ρολογιού
• Κύκλωµα Χρονισµού
• Μετρητής Προγράµµατος
• Μικροεπεξεργαστής
• Μικροϋπολογιστής
• Μονάδα Ελέγχου
• Σύνολο Εντολών
• Συσσωρευτής
• Τρόποι ∆ιευθυνσιοδότησης
ŒÓÓÔȘ ÎÏÂȉȿ
2.1 H AÚ¯ÈÙÂÎÙÔÓÈ΋ ÙˆÓ ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ
Στο κεφάλαιο 1 είδαµε ότι η κεντρική µονάδα επεξεργασίας (ΚΜΕ) ή µικρο-
επεξεργαστής (microprocessor) είναι αυτή που ρυθµίζει όλες τις ενέργειες,
που επιτελούνται στο µικροϋπολογιστικό σύστηµα.
3 12 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ ø ¡ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡
Eίσοδος
∆εδοµένα
Eντολές
Eντολές Aποτελέσµατα
Aριθµητικήv
λογική µονάδα
Eνεργοποίηση
Έξοδος
Aποτελέσµατα
KME
∆ιεύθυνση
∆εδοµέναv
MNHMH
∆εδοµένα
Έλεγχος
Eντολές
Mονάδα ελέγχου
™¯‹Ì· 2.1
Ο µικροεπεξεργαστήςΟ µικροεπεξεργαστής καθορίζει τη σειρά εκτέλεσης των εντολών. Κατά τη
διάρκεια εκτέλεσης των εντολών συντονίζει τη µεταφορά των δεδοµένων
από τις εισόδους προς αυτόν και προς την κύρια µνήµη. Επεξεργάζεται τα
δεδοµένα σύµφωνα µε το πρόγραµµα επεξεργασίας του µικροϋπολογιστικού
συστήµατος ώστε να ανταποκρίνονται στη ζητούµενη εφαρµογή. Επίσης
κατευθύνει τη µεταφορά δεδοµένων από τον ίδιο ή από την κύρια µνήµη
προς τις εξόδους του.
Οι µικροεπεξεργαστές αποτελούνται βασικά από τρία τµήµατα (δείτε το
σχήµα 2.1), τα οποία συνεργάζονται αρµονικά µεταξύ τους: την αριθµητι-
κή και λογική µονάδα (arithmetic and logic unit, ALU), τη µονάδα ελέγχου
(control unit, CU) και τους καταχωρητές (registers). Ας δούµε το κάθε
τµήµα ξεχωριστά.
2.1.1 AÚÈıÌËÙÈ΋ Î·È ÏÔÁÈ΋ ÌÔÓ¿‰·
Η εκτέλεση των διαφόρων λογικών και αριθµητικών πράξεων, που απαι-
τούνται από το σύνολο εντολών ενός µικροεπεξεργαστή, πραγµατοποιείται
σ’ αυτό το τµήµα του, που καλείται αριθµητική και λογική µονάδα (ALU).
3 2 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Ως αριθµητικές πράξεις εννοούµε την πρόσθεση και την αφαίρεση δύο αριθ-
µών, την αύξηση και την ελάττωση ενός αριθµού κατά ένα, το συµπλήρωµα
ενός αριθµού ως προς 1 ή ως προς 2.
Οι λογικές πράξεις εφαρµόζονται κατά κύριο λόγο σε δυαδικά δεδοµένα και
δεν είναι άλλες από τις γνωστές µας ΚΑΙ (AND), Ή (OR) και ΟΧΙ (NOT).
Εκτός από αυτές, λογικές πράξεις θεωρούνται και η ολίσθηση ή η περι-
στροφή ενός αριθµού και η σύγκριση δύο αριθµών.
Η εκτέλεση καθεµιάς από τις πράξεις αυτές µπορεί να υπάρχει είτε αυτούσια
ενσωµατωµένη µέσα στο µικροεπεξεργαστή µε τη µορφή µίας εντολής (π.χ.
πρόσθεση) είτε να απαιτεί την εκτέλεση µιας ακολουθίας πολλών εντολών.
Είναι ευνόητο ότι πράξεις, όπως είναι ο πολλαπλασιασµός, η διαίρεση, η εύρε-
ση ρίζας, η διαφόριση, ολοκλήρωση και διάφορες άλλες, που απαιτούν πολύ-
πλοκους υπολογισµούς µε πολλές µετακινήσεις δεδοµένων, το υλικό του
µικροεπεξεργαστή δεν είναι σε θέση από µόνο του να τις αντιµετωπίσει. Αντί-
θετα, επειδή όλες αυτές οι πράξεις αναλύονται σε συνδυασµό βασικών αριθ-
µητικών εντολών (π.χ. η εύρεση ρίζας αριθµού µπορεί να γίνει µε διαδοχικές
αφαιρέσεις), µπορούν πολύ εύκολα να υλοποιηθούν ως ακολουθία βασικών
εντολών, που µπορούν να εκτελεστούν στην αριθµητική και λογική µονάδα.
Φυσικά, όταν χρησιµοποιείται το υλικό για να εκτελέσει ακόµα και τις πιο
πολύπλοκες πράξεις, η ταχύτητα εκτέλεσής τους είναι πολύ µεγαλύτερη.
Σε πολλές περιπτώσεις οι λογικές και αριθµητικές πράξεις είναι µικροπρο-
γραµµατιζόµενες. Ο µικροπρογραµµατισµός αποβλέπει στη γρηγορότερη εκτέ-
λεση των πράξεων και στην επίτευξη µεγαλύτερων ταχυτήτων. Με βάση αυτόν,
χωριστές µνήµες ελέγχου (control memories) περιέχουν το µικροπρόγραµµα,
OλισθητήςAθροιστής
Συγκριτής
Aριθµητική λογική µονάδα
Tελεστής AΈλεγχος
Tελεστής B
Kρατούµενο
Kατάσταση Aποτέλεσµα™¯‹Ì· 2.2
Η αριθµητική και
λογική µονάδα
το οποίο ανταποκρίνεται στις γενικές εντολές του χρήστη και καθοδηγεί την
αριθµητική και λογική µονάδα ώστε να εκτελέσει τις απαιτούµενες λειτουργίες.
Τα δεδοµένα, πάνω στα οποία θα πρέπει να λειτουργήσει η αριθµητική και
λογική µονάδα, είναι αποθηκευµένα στη µνήµη σαν τµήµα της εντολής. Η
αποκωδικοποίηση της εντολής καταλήγει στην εκποµπή ενός σήµατος από
τη µονάδα ελέγχου προς την αριθµητική και λογική µονάδα, ενεργοποιώντας
τα κατάλληλα κυκλώµατα της µονάδας αυτής. Μετά την εκτέλεση της απαι-
τούµενης πράξης, η µονάδα ελέγχου προωθεί την επόµενη εντολή, που πρό-
κειται να εκτελεστεί, και έτσι επαναλαµβάνεται ο κύκλος αυτός, εφόσον
βέβαια απαιτείται ξανά η ενεργοποίηση της αριθµητικής µονάδας.
Τα κυκλώµατα, τα οποία περιέχονται σε µια αριθµητική και λογική µονάδα
(δείτε το σχήµα 2.2), διαφέρουν από µικροεπεξεργαστή σε µικροεπεξεργα-
στή, αλλά συνήθως υπάρχουν τα ακόλουθα κυκλώµατα:
1. Ένας αθροιστής (adder) για να εκτελεί τις βασικές αριθµητικές πράξεις.
2. Ένας συγκριτής (comparator), ο οποίος µπορεί να συγκρίνει τους αριθ-
µούς που τοποθετούνται στους καταχωρητές εντέλων.
3. Ένας ολισθητής (shifter), ο οποίος εκτελεί την ολίσθηση ή περιστροφή
ενός αριθµού.
4. Μία µονάδα λογικής επεξεργασίας, που εκτελεί λογικές πράξεις πάνω
στους αριθµούς, που τοποθετούνται στους καταχωρητές εντέλων.
5. Κάποιοι καταχωρητές για να αποθηκεύονται οι αριθµοί και τα αποτελέ-
σµατα των πράξεων (µην ανησυχείτε, για τους καταχωρητές θα µιλή-
σουµε στην υποενότητα 2.1.3).
Με βάση τα παραπάνω βασικά κυκλώµατα µπορούν να υλοποιηθούν και
όλες οι υπόλοιπες πράξεις, π.χ. η αφαίρεση δύο αριθµών µπορεί να υλοποι-
ηθεί ως πρόσθεση του πρώτου µε το συµπλήρωµα του δεύτερου (εποµένως
δεν απαιτείται η ύπαρξη ενός αφαιρέτη), ο πολλαπλασιασµός και η διαίρε-
ση απαιτούν διαδοχικές αυξήσεις και ολισθήσεις, ενώ η τετραγωνική ρίζα
µπορεί να υλοποιηθεί µε διαδοχικές αφαιρέσεις, κ.ο.κ.
2.1.2 MÔÓ¿‰· ÂϤÁ¯Ô˘
Όπως είναι ήδη γνωστό, ο µικροεπεξεργαστής λειτουργεί µε σειριακό τρόπο
ανάλογα µε τις υποδείξεις των εντολών του αποθηκευµένου προγράµµατος.
Αλλά βέβαια το πρόγραµµα από µόνο του δεν είναι αρκετό για να κατευθύ-
νει τη λειτουργία του. Για παράδειγµα ο µικροεπεξεργαστής θα πρέπει να
3 32 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ ø ¡ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡
3 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
γνωρίζει πού είναι αποθηκευµένη (σε ποια διεύθυνση) µέσα στη µνήµη η
πρώτη εκτελέσιµη εντολή του προγράµµατος. Θα πρέπει ακολούθως ν’ ανα-
πτύξει τα κατάλληλα σήµατα ελέγχου, που θα αποσπάσουν την εντολή από
τη µνήµη και έπειτα θα πρέπει να εξετάσει το περιεχόµενο της εντολής αυτής
για να αποφασίσει για τις ενέργειες, που αυτή απαιτεί.
Η µνήµη, οι µονάδες εισόδου/εξόδου, καθώς και η αριθµητική και λογική
µονάδα, θα πρέπει να ενεργοποιηθούν στα κατάλληλα χρονικά διαστήµατα
ώστε να εκτελέσουν την αποκωδικοποιηµένη εντολή µε τέτοιο τρόπο ώστε
οι λειτουργίες αυτές να µην παρεµβάλλονται µεταξύ τους και να µην δηµι-
ουργούν ανεπιθύµητα αποτελέσµατα.
Όλες αυτές οι απαιτήσεις οδηγούν στην ανάγκη της παρουσίας της µονάδας
ελέγχου (ΜΕ). Σε γενικές γραµµές, η µονάδα ελέγχου είναι το κατευθυντήριο
κέντρο του µικροεπεξεργαστή και παρέχει τις λειτουργίες χρονισµού, αποκω-
δικοποίησης και ενεργοποίησης για όλα τα τµήµατα του µικροϋπολογιστή. Στο
σχήµα 2.3 φαίνεται το λειτουργικό διάγραµµα µιας τυπικής µονάδας ελέγχου.
Η βασική πηγή για όλα τα σήµατα ελέγχου, που κατευθύνουν τις συσκευές
του συστήµατος, είναι το ρολόι. Οι απαιτήσεις για χρονισµό σ’ ένα µικροϋ-
πολογιστικό σύστηµα ποικίλλουν από σχετικά µεγάλης διάρκειας παλµούς
(secs ή msecs) µέχρι πολύ µικρής διάρκειας (nsecs). Η φύση των σηµάτων
χρονισµού είναι τέτοια ώστε οι παλµοί να εµφανίζονται και να διαρκούν µόνο
για ένα απαιτούµενο χρονικό διάστηµα, να επαναλαµβάνονται µε µια καθο-
ρισµένη ακολουθία ή να εµφανίζονται µετά από απαίτηση.
Είναι γνωστό ότι µια εντολή χωρίζεται σε δύο τµήµατα: στον κώδικα λει-
τουργίας (operation code) και στο έντελο (operand), δηλαδή τη διεύθυνση του
δεδοµένου, πάνω στο οποίο θα επενεργήσει ο κώδικας λειτουργίας. Ο κώδι-
κας λειτουργίας εξετάζεται από τον αποκωδικοποιητή εντολών για να αποφα-
σίσει ποιες λειτουργίες θα πρέπει να ακολουθήσουν. Για να µπορέσει να εκτε-
λεστεί αυτή η διαδικασία θα πρέπει πρώτα ο κώδικας λειτουργίας της εντολής
να µεταφερθεί στον καταχωρητή εντολής της µονάδας ελέγχου. Ο καταχωρη-
τής εντολής χρησιµοποιείται για να διαφυλάσσει τον κώδικα λειτουργίας, ενώ
αυτή αποκωδικοποιείται. Ο αποκωδικοποιητής εντολών είναι κατασκευασµέ-
νος από πύλες, έτσι ώστε να αναγνωρίζει µόνο συγκεκριµένους συνδυασµούς
δυαδικών συµβόλων, αυτούς που αντιστοιχούν σε πραγµατικές εντολές. Ένας
ξεχωριστός συνδυασµός πυλών χρησιµοποιείται συνήθως για την αναγνώρι-
ση κάθε κώδικα λειτουργίας και η έξοδος του αποκωδικοποιητή εντολών είναι
ένα ξεχωριστό σήµα, που ενεργοποιεί το κατάλληλο κύκλωµα της γεννήτριας
ελέγχου, που αντιστοιχεί στο συγκεκριµένο κώδικα λειτουργίας.
Η γεννήτρια ελέγχου (control generator) αποτελείται επίσης από πύλες, που
συνδυάζουν την έξοδο του αποκωδικοποιητή εντολών µε τα κυκλώµατα χρο-
νισµού έτσι ώστε να κατευθύνονται τα υπόλοιπα τµήµατα του µικροϋπολο-
γιστή και να ενεργοποιούνται πάντα µε τη σωστή σειρά λειτουργίας. Θα πρέ-
πει να αναφερθεί επίσης ότι η µονάδα ελέγχου συνήθως περιέχει και άλλους
ειδικούς καταχωρητές, όπως το µετρητή προγράµµατος, τον καταχωρητή
κατάστασης επεξεργαστή (processor status word ή PSW) και το δείκτη
σωρού (stack pointer), για τους οποίους θα µιλήσουµε στη συνέχεια.
2.1.3 K·Ù·¯ˆÚËÙ¤˜
Οι καταχωρητές (registers) χρησιµεύουν για την αποθήκευση προσωρινών
αποτελεσµάτων ή δεδοµένων, που έχουν σηµασία για το µικροεπεξεργαστή.
Παρά το γεγονός ότι το πλήθος και το είδος των καταχωρητών είναι διαφο-
ρετικό σε κάθε µικροεπεξεργαστή, συνήθως συναντάµε τους παρακάτω:
3 52 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ ø ¡ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡
Pολόι
Γεννήτριαv
χρονισµού
Γεννήτριαv
ελέγχου
Aποκωδικο-v
ποιητήςv
εντολών
Kαταχωρητήςv
εντολών
Kαταχωρητήςv
δεδοµένων
Mετρητήςv
προγράµµατος
Προς δίαυλοv
διευθύνσεωνAπό και προςv
δίαυλοv
δεδοµένων
Σήµατα χρονισµούv
και ελέγχου
™¯‹Ì· 2.3
Η µονάδα ελέγχου
3 6 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Συσσωρευτής (accumulator): Bρίσκεται στην αριθµητική και λογική µονάδα
και χρησιµοποιείται για να αποθηκεύει (α) τον έναν από τους αριθµούς που
απαιτούνται για να εκτελεστεί η πράξη και (β) το αποτέλεσµα της πράξης.
Καταχωρητής γενικού σκοπού (general purpose register): Bρίσκεται στην
αριθµητική και λογική µονάδα και χρησιµοποιείται για να αποθηκεύει τον
άλλο αριθµό που απαιτείται για να εκτελεστεί µία πράξη, καθώς και ως απο-
θηκευτικός χώρος για ενδιάµεσα αποτελέσµατα. Οι καταχωρητές αυτοί µπο-
ρούν να αποθηκεύσουν επίσης τη διεύθυνση της θέσης µνήµης, όπου βρί-
σκονται οι αριθµοί, ή τη διεύθυνση της θέσης µνήµης, όπου θα αποθηκευτεί
το αποτέλεσµα. Σε πολλούς επεξεργαστές η ύπαρξη πολλών καταχωρητών
γενικού σκοπού καθιστά περιττή την ύπαρξη του συσσωρευτή.
Kαταχωρητής κατάστασης επεξεργαστή (processor status word): Bρίσκεται
και αυτός στην αριθµητική και λογική µονάδα. Συνήθως αποτελείται από ένα
σύνολο από δυαδικά ψηφία (bits), που ονοµάζονται δείκτες (flags) ή σηµαί-
ες κατάστασης. Αυτά χρησιµοποιούνται για να δείχνουν στο χρήστη την
παρούσα κατάσταση του µικροεπεξεργαστή, καθώς επίσης και χαρακτηρι-
στικά γνωρίσµατα των αποτελεσµάτων της προηγούµενης πράξης. Όλοι οι
µικροεπεξεργαστές είναι σε θέση µέσω του καταχωρητή κατάστασης να υπο-
δείξουν ένα µηδενικό αποτέλεσµα (zero), ένα αρνητικό αποτέλεσµα
(negative), ένα κρατούµενο (carry), µία υπερχείλιση (overflow), κ.λπ.
Καταχωρητής εντολών (instruction register): Bρίσκεται στη µονάδα ελέγχου
του µικροεπεξεργαστή και χρησιµοποιείται για να αποθηκεύει τον κώδικα
λειτουργίας της εντολής, ενώ αυτή αποκωδικοποιείται για να εκτελεστεί.
S Z … O C
∆ιακόπτης κρατούµενουv
(Carry flag)
∆ιακόπτης υπερχείλησηςv
(Overflow flag)
∆ιακόπτης µηδενικούv
αποτελέσµατοςv
(Zero flag)
∆ιακόπτης προσήµουv
(Sign flag)
™¯‹Ì· 2.4
Ο καταχωρητής κατάστα-
σης επεξεργαστή
Μετρητής προγράµµατος (program counter): Bρίσκεται και αυτός στη µονά-
δα ελέγχου και αποθηκεύει τη διεύθυνση της θέσης µνήµης, στην οποία βρί-
σκεται η επόµενη προς εκτέλεση εντολή, έτσι ώστε να ανακληθεί από τη
µνήµη, όταν τελειώσει η εκτέλεση της τρέχουσας εντολής.
∆είκτης σωρού (stack pointer): Όλοι οι µικροεπεξεργαστές χρησιµοποιούν
µια περιοχή για αποθήκευση δεδοµένων. Η περιοχή αυτή ονοµάζεται σωρός
(stack). Ο σωρός µπορεί να είναι ένα σύνολο από καταχωρητές µέσα στο
µικροεπεξεργαστή είτε ένα τµήµα της κύριας µνήµης (RAM). Ο σωρός χρη-
σιµοποιείται για να αποθηκεύει ενδιάµεσα αποτελέσµατα αλλά και πληρο-
φορίες, που αφορούν συνήθως στο µικροεπεξεργαστή. Συνήθως ο σωρός
είναι της µορφής Last In First Out (LIFO), όπου η τελευταία πληροφορία,
που τοποθετείται στο σωρό, είναι και η πρώτη που θα πρέπει να αποσπαστεί.
O δείκτης σωρού δείχνει πάντα στην κορυφή του σωρού, η οποία περιέχει
την τελευταία πληροφορία, που τοποθετήθηκε στο σωρό.
3 72 . 2 O π ¢ π ∞ À § √ π ¢ π ∂ À £ À ¡ ™ ∂ ø ¡ / ¢ ∂ ¢ √ ª ∂ ¡ ø ¡ / ∂ § ∂ ° Ã √ À
Ένας µικροεπεξεργαστής αποτελείται από τα εξής τρία τµήµατα:
α) …
β) …
γ) …
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘2.1
Οι διάφορες πράξεις µεταξύ των δεδοµένων γίνονται στο τµήµα εκείνο του
µικροεπεξεργαστή που ονοµάζεται ……………………………………
Απαριθµήστε τα κυκλώµατα, τα οποία υπάρχουν συνήθως στο τµήµα αυτό.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘2.2
Ποιοι καταχωρητές βρίσκονται στην αριθµητική και λογική µονάδα, ποιοι
στη µονάδα ελέγχου και τι λειτουργία επιτελεί ο καθένας από αυτούς;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘2.3
2.2 OÈ ¢›·˘ÏÔÈ ‰È¢ı‡ÓÛˆÓ/‰Â‰Ô̤ӈÓ/ÂϤÁ¯Ô˘
Οι περισσότεροι µικροϋπολογιστές αναπτύσσονται γύρω από ένα δίαυλο
(bus). Ο δίαυλος αυτός είναι ένα σύνολο από γραµµές (καλώδια), που συν-
δέουν τα διάφορα τµήµατα του µικροϋπολογιστή. Για παράδειγµα συνδέουν
όλα τα σήµατα ελέγχου, δεδοµένων και διευθύνσεων από το ένα τµήµα του
3 8 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
στο άλλο. Η λειτουργία του διαύλου είναι να παρέχει ένα µονοπάτι επικοι-
νωνίας µεταξύ δύο ή περισσότερων τµηµάτων του µικροϋπολογιστή.
KME Σύστηµα µνήµηςΣύστηµαv
εισόδου–εξόδου
∆ίαυλος ελέγχου
∆ίαυλος διευθύνσεων
∆ίαυλος δεδοµένων
™¯‹Ì· 2.5
Οι δίαυλοι διευθύνσεων
δεδοµένων ελέγχουΤο τµήµα του µικροεπεξεργαστή, που αποτελεί τη µονάδα ελέγχου, αποφα-
σίζει για το ποιο από τα τµήµατα του µικροϋπολογιστή πρόκειται να προω-
θήσει µια πληροφορία και ποια άλλα τµήµατα πρόκειται να χρησιµοποιή-
σουν την πληροφορία αυτή. Στο σχήµα 1.5 του προηγούµενου κεφαλαίου
είδαµε την οργάνωση ενός µικροϋπολογιστικού συστήµατος, που αναπτύσ-
σεται γύρω από ένα δίαυλο. Μερικές από τις γραµµές του διαύλου είναι αφιε-
ρωµένες µόνο στη µεταφορά διευθύνσεων µνήµης, άλλες στη µεταφορά
δεδοµένων, ενώ άλλες µεταφέρουν µόνο σήµατα ελέγχου. Όλα συνεπώς τα
τµήµατα του µικροϋπολογιστή, όπως άλλωστε φαίνεται και στο σχήµα 2.5,
χρησιµοποιούν αυτές τις γραµµές διευθύνσεων, δεδοµένων και ελέγχου, που
σχετίζονται άµεσα µε τη λειτουργία που εκτελούν.
Ο δίαυλος δεδοµένων µεταφέρει είτε εντολές, που πρόκειται να αποκωδικο-
ποιηθούν, είτε πληροφορίες, που πρόκειται να επεξεργαστούν. Είναι ένας
δίαυλος διπλής κατεύθυνσης (bidirectional), πράγµα το οποίο σηµαίνει ότι
µπορεί να µεταφέρει πληροφορίες από το µικροεπεξεργαστή στα άλλα τµή-
µατα του µικροϋπολογιστή σε µία χρονική περίοδο (π.χ. όταν αποθηκεύο-
νται τα αποτελέσµατα µιας αριθµητικής πράξης στην κύρια µνήµη), ενώ σε
άλλες περιόδους οι πληροφορίες µπορεί να µεταφέρονται από διάφορα τµή-
µατα του µικροϋπολογιστή προς το µικροεπεξεργαστή (π.χ. όταν µεταφέρο-
νται δύο αριθµοί στην αριθµητική και λογική µονάδα για να γίνει µια αριθ-
µητική πράξη). Η κατεύθυνση που θα ακολουθήσουν τα δεδοµένα πάνω στο
δίαυλο δεδοµένων εξαρτάται από τη µονάδα ελέγχου.
Το µήκος της λέξης, την οποία διαχειρίζεται ο µικροεπεξεργαστής, ορίζει και
τον αριθµό των γραµµών του διαύλου (ένας µικροεπεξεργαστής µε µήκος
λέξης 8 bits θα έχει 8 γραµµές διασύνδεσης στο δίαυλο δεδοµένων, ενώ ένας
µικροεπεξεργαστής µε µήκος λέξης 16 bits θα έχει 16 γραµµές δεδοµένων).
Ο δίαυλος διευθύνσεων είναι µοναδικής κατεύθυνσης (unidirectional) και
µεταφέρει το δυαδικό κώδικα, που αναπαριστά τη διεύθυνση µνήµης, από
την οποία θα αποσπασθούν ή στην οποία θα τοποθετηθούν τα δεδοµένα. Σε
πολλούς µικροεπεξεργαστές ο δίαυλος διευθύνσεων χρησιµοποιείται για να
ορίσει, εκτός από την κύρια µνήµη, και ποιες συσκευές εισόδου/εξόδου πρό-
κειται να χρησιµοποιηθούν. Η µονάδα ελέγχου του µικροεπεξεργαστή υπο-
δεικνύει κάθε φορά αν θα πρέπει ο δυαδικός κώδικας, που µεταφέρει ο δίαυ-
λος διευθύνσεων, να επενεργήσει πάνω σε µία συσκευή εισόδου/εξόδου ή
πάνω στη µνήµη. Η µέγιστη ποσότητα µνήµης, που µπορεί να διαχειριστεί
ένας µικροεπεξεργαστής, καθορίζει και τον αριθµό των γραµµών διασύνδε-
σης του διαύλου διευθύνσεων. Μία µνήµη µε 65536 (64 Κ) µονάδες αποθή-
κευσης χρειάζεται 16 γραµµές (216= 65536) στο δίαυλο δεδοµένων.
Ο δίαυλος ελέγχου είναι ένας δίαυλος µοναδικής κατεύθυνσης και µεταφέρει
πληροφορίες, που περιγράφουν το είδος της λειτουργίας, που πρόκειται να
εκτελεστεί (π.χ. εάν θα γίνει ανάγνωση ή εγγραφή στη µνήµη), ποιες συσκευ-
ές θα πρέπει να ανταποκριθούν (π.χ. ανάγνωση από θέση µνήµης ή από
µονάδα εισόδου/εξόδου) κ.λπ. Το πλήθος των γραµµών του διαύλου ελέγχου
εξαρτάται από τον αριθµό των σηµάτων ελέγχου που χρειάζεται ο µικροε-
πεξεργαστής για τις λειτουργίες του και έχει άµεση σχέση µε το σχεδιασµό
και τον τρόπο κατασκευής του.
Σε γενικές γραµµές ένα πλήθος πληροφοριών θα πρέπει να ανταλλαγεί µετα-
ξύ του µικροεπεξεργαστή και της µνήµης ή των περιφερειακών συσκευών,
έτσι ώστε να αποκατασταθεί µία πλήρης επικοινωνία µεταξύ τους. Οι πλη-
ροφορίες, που ανταλλάσσονται µεταξύ των µικροεπεξεργαστών και των
άλλων συσκευών, προέρχονται από τη µονάδα ελέγχου και κατευθύνονται
προς αυτήν και περιλαµβάνουν ένα συνδυασµό των ακόλουθων:
1. Απαιτήσεις για χρήση του διαύλου δεδοµένων, που προέρχονται από τις
διάφορες συσκευές συνδεµένες στο δίαυλο.
3 92 . 2 O π ¢ π ∞ À § √ π ¢ π ∂ À £ À ¡ ™ ∂ ø ¡ / ¢ ∂ ¢ √ ª ∂ ¡ ø ¡ / ∂ § ∂ ° Ã √ À
4 0 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2. Παραχωρήσεις του διαύλου δεδοµένων, που γίνονται σύµφωνα µε µια
προαποφασισµένη προτεραιότητα παροχής σύµφωνα µε ειδικό αλγόριθ-
µο ή και µε χρήση ειδικών κυκλωµάτων. Αυτό το τµήµα πολλές φορές
είναι µέρος του µικροεπεξεργαστή ή µπορεί ακόµα και να αποτελείται
από ένα σύνολο από ολοκληρωµένα κυκλώµατα.
3. Σήµατα διακοπής (interrupt signals), τα οποία υποδεικνύουν ότι διάφορα
γεγονότα απαιτούν τάχιστη εξυπηρέτηση.
4. Σήµατα χρονισµού για να συντονίζουν τη µεταφορά των δεδοµένων ή
διευθύνσεων πάνω στα αντίστοιχα τµήµατα του διαύλου.
5. Σήµατα που να υποδεικνύουν την εµφάνιση παρενεργειών ή και την
έλλειψη ισχύος.
Η ταξινόµηση αυτών των γραµµών ελέγχου διαφέρει αισθητά από µικροε-
πεξεργαστή σε µικροεπεξεργαστή, αλλά καθένας είναι απαραίτητο να χρη-
σιµοποιεί τις παραπάνω γραµµές ελέγχου, καθώς επίσης και γραµµές ελέγ-
χου για επιλογή ανάγνωσης ή εγγραφής µνήµης και ανάγνωσης ή εγγραφής
συσκευής εισόδου/εξόδου.
Το πώς ενεργοποιούνται τα διάφορα τµήµατα ενός µικροϋπολογιστικού συστή-
µατος δίχως να υπάρχουν παρεµβολές από άλλα είναι ένα πρόβληµα αρκετά
σύνθετο. Γεγονός είναι πάντως ότι οι διάφορες συσκευές έχουν δικές τους διευ-
θύνσεις και προτεραιότητες και η επιλογή τους γίνεται µέσω συνδυαστικών
κυκλωµάτων, που υλοποιούνται µε πύλες. Η περιγραφή της επιλογής και ο
σχεδιασµός των κυκλωµάτων θα συζητηθεί εκτενέστερα στο κεφάλαιο 7.
∆ίνεται µικροεπεξεργαστής µε µήκος λέξης 4 bytes, ο οποίος µπορεί να
διαχειριστεί 16.777.216 θέσεις µνήµης και 65.536 θέσεις συσκευών εισό-
δου/εξόδου.
Βρείτε από πόσες γραµµές αποτελείται ο δίαυλος δεδοµένων και ο δίαυλος
διευθύνσεων.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.4
Ο Motorola 6800 είναι ένας µικροεπεξεργαστής των 8 bits. Το ολοκληρω-
µένο κύκλωµα του έχει 40 ακροδέκτες, από τους οποίους 16 αποτελούν το
δίαυλο διευθύνσεων και 8 αποτελούν το δίαυλο δεδοµένων. Ποια είναι η
µέγιστη µνήµη, την οποία µπορούµε να συνδέσουµε στον επεξεργαστή αυτό;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.5
2.3 O ¯ÚÔÓÈÛÌfi˜ ÙˆÓ ÂÓÙÔÏÒÓ (K‡ÎÏÔ˜ ÂÓÙÔÏ‹˜–Ì˯·Ó‹˜–ÚÔÏÔÁÈÔ‡)
Οι απαιτήσεις για χρονισµό σε ένα µικροϋπολογιστικό σύστηµα ποικίλλουν
από σχετικά µεγάλης διάρκειας παλµούς µέχρι πολύ µικρής διάρκειας. Η
βασική πηγή για όλες τις λειτουργίες του µικροεπεξεργαστή είναι το ρολόι
(ή αλλιώς κύκλωµα χρονισµού). Πολλές φορές σε διάφορες διατάξεις µικρο-
επεξεργαστών το ρολόι είναι ανεξάρτητο του µικροεπεξεργαστή και αυτό
γίνεται για να µπορέσει ο κατασκευαστής ή σχεδιαστής να διαλέξει ένα ρολόι
µε την ακολουθία παλµών που τον ενδιαφέρει παρ’ όλα αυτά, ακόµα και όταν
το ρολόι είναι ενσωµατωµένο στο µικροεπεξεργαστή, δεν σηµαίνει ότι ο σχε-
διαστής δεν µπορεί να αποφασίζει για την ακολουθία παλµών.
Συνήθως, ο κατασκευαστής δίνει τη δυνατότητα να συνδεθεί ο µικροεπε-
ξεργαστής µε ένα κατάλληλο κρύσταλλο (ή κρυσταλλικό ταλαντωτή), RC ή
LC κύκλωµα, το οποίο θα του αποδώσει τους απαραίτητους παλµούς. Η
ταχύτητα, µε την οποία λειτουργεί ο µικροεπεξεργαστής, εξαρτάται βέβαια
από τους παλµούς του ρολογιού. Όλοι οι µικροεπεξεργαστές έχουν µια ανώ-
τατη και µια κατώτατη τιµή για την ακολουθία παλµών, η οποία επιφέρει και
ένα όριο για την ανώτατη και κατώτατη ταχύτητά του.
Εκτός από το σήµα ρολογιού, το οποίο συναντάµε σε κάθε µικροεπεξεργα-
στή, απαιτείται και η ύπαρξη ενός σήµατος αρχικοποίησής του. Φανταστεί-
τε τι γίνεται κάθε φορά που δίνουµε τροφοδοσία σε ένα µικροεπεξεργαστή.
Οι εσωτερικοί καταχωρητές του περιέχουν απροσδιόριστες τιµές. Ο µετρη-
τής προγράµµατος εποµένως θα περιέχει µια τυχαία τιµή, η οποία θα ανα-
γκάζει το σύστηµα να ξεκινάει την εκτέλεση του προγράµµατος από διαφο-
ρετική εντολή κάθε φορά. Το πρόβληµα αυτό έρχεται να λύσει το σήµα αρχι-
κοποίησης, το οποίο κάθε φορά που ενεργοποιείται επαναφέρει το µικροε-
πεξεργαστή σε µία γνωστή αρχική κατάσταση. Στο παράδειγµα 1 µπορείτε
να βρείτε πληροφορίες για το χρονισµό του επεξεργαστή Intel 8088.
Ο µικροεπεξεργαστής λειτουργεί εκτελώντας µία σειρά από εντολές του
τύπου ανάγνωσης ή εγγραφής, καθεµία από τις οποίες µεταφέρει µια λέξη
(η οποία µπορεί να είναι ένα ή δύο bytes) πληροφοριών µεταξύ του µικροε-
πεξεργαστή και µιας συγκεκριµένης θέσης µνήµης ή µονάδας εισόδου/εξό-
δου. Αυτές οι εντολές του τύπου ανάγνωσης (read)/εγγραφής (write) είναι
το µόνο µέσο επικοινωνίας µεταξύ του µικροεπεξεργαστή και των άλλων
συσκευών του µικροϋπολογιστή και είναι αναγκαίες για την εκτέλεση µιας
οποιασδήποτε εντολής ή προγράµµατος.
4 12 . 3 O Ã ƒ √ ¡ π ™ ª √ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡ ( K À ∫ § √ ™ ∂ ¡ ∆ √ § ∏ ™ – ª ∏ Ã ∞ ¡ ∏ ™ – ƒ √ § √ ° π √ À )
4 2 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Όπως αναφέρθηκε προηγουµένως, ο µικροεπεξεργαστής χρησιµοποιεί ένα
ρολόι για να συγχρονίζει τις διάφορες λειτουργίες των συσκευών του. Το
ρολόι είναι µια γεννήτρια παλµών, που παράγει παλµούς της ίδιας συχνότη-
τας, αλλά µε διαφορετικές φάσεις (συνήθως δύο). Κάθε παλµός ονοµάζεται
κύκλος ρολογιού (clock cycle) και κατά τη διάρκειά του µπορούν να γίνουν
στοιχειώδεις λειτουργίες.
Ο χρόνος που απαιτείται για το συνδυασµό των λειτουργιών, που χρειάζονται
κατά την εκτέλεση µιας εντολής, λέγεται κύκλος εντολής (instruction cycle).
Επειδή µερικές εντολές απαιτούν πολύ περισσότερες λειτουργίες από άλλες,
κάθε κύκλος εντολής διαιρείται σε τµήµατα, που ονοµάζονται κύκλοι µηχα-
νής (machine cycles). Κάθε κύκλος εντολής συνήθως αποτελείται από ένα
µέχρι πέντε κύκλους µηχανής. Ο κύκλος µηχανής είναι ο χρόνος που χρειά-
ζεται ο µικροεπεξεργαστής για να εκτελέσει µια βασική λειτουργία, όπως µια
λειτουργία τύπου ανάγνωσης/εγγραφής. Σε όλους τους µικροεπεξεργαστές
παρατηρούµε τουλάχιστον τους παρακάτω τύπους κύκλων µηχανής:
• κύκλος προσκόµισης ή ανάκλησης εντολής
• κύκλος ανάγνωσης από µνήµη ή µονάδα εισόδου/εξόδου
• κύκλος εγγραφής σε µνήµη ή µονάδα εισόδου/εξόδου
• κύκλος εκτέλεσης εσωτερικής λειτουργίας
Με τη σειρά του ο κάθε κύκλος µηχανής αποτελείται από τρεις έως έξι
κύκλους ρολογιού. Ο πρώτος κύκλος µηχανής κάθε εντολής καλείται κύκλος
προσκόµισης ή αλλιώς κύκλος ανάκλησης (fetch cycle) και κατά τη διάρκειά
του µεταφέρεται η εντολή από τη θέση µνήµης στον καταχωρητή εντολής.
I1
M1 M2 M3 M4 M5
T1 T2 T3 T4 T5
I1:v
Kύκλος εντολής
M1–5:v
Kύκλοι µηχανής
T1–5:v
Kύκλοι ρολογιού
™¯‹Ì· 2.6
Κύκλοι εντολής, µηχανής
και ρολογιού
Κατά τη διάρκεια του πρώτου κύκλου ρολογιού του κύκλου προσκόµισης
µετακινούνται τα περιεχόµενα του µετρητή προγράµµατος στο δίαυλο διευ-
θύνσεων ώστε να µεταφερθεί η εντολή από τη µνήµη. Κατά τη διάρκεια του
δεύτερου κύκλου ρολογιού του κύκλου προσκόµισης ο µετρητής προγράµ-
µατος αυξάνεται κατάλληλα, ώστε να δείχνει την επόµενη θέση µνήµης που
πρόκειται να προσπελαστεί. Ο τρίτος κύκλος ρολογιού του κύκλου προσκό-
µισης αντιστοιχεί στη µετακίνηση του κώδικα λειτουργίας της εντολής από
τη συγκεκριµένη θέση µνήµης στον καταχωρητή εντολής του µικροεπεξερ-
γαστή. Ο τελευταίος κύκλος ρολογιού του κύκλου προσκόµισης αντιστοιχεί
σε εσωτερικές λειτουργίες του µικροεπεξεργαστή, όπως µεταφορά πληρο-
φοριών µεταξύ των καταχωρητών του και άλλες. Στο σχήµα 2.6 µπορείτε να
δείτε το παράδειγµα µιας εντολής, που αποτελείται από πέντε κύκλους µηχα-
νής και ο Μ3 κύκλος µηχανής αποτελείται από πέντε κύκλους ρολογιού. Στο
παράδειγµα 2 αναλύουµε τον τρόπο, µε τον οποίο ένας κύκλος εντολής χωρί-
ζεται σε κύκλους µηχανής.
¶·Ú¿‰ÂÈÁÌ· 2.1
Μελέτη των κυκλωµάτων χρονισµού του επεξεργαστή Intel 8088.
∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 2.1
Ο επεξεργαστής Intel 8088 διαθέτει ένα σήµα (CLK), το οποίο χρησιµοποι-
είται ως είσοδος ρολογιού. Στον ακροδέκτη αυτό εισάγουµε παλµούς ρολο-
γιού µε duty cycle 33% (δηλαδή το πλάτος του παλµού ρολογιού στη λογι-
κή κατάσταση “1” µε το πλάτος του παλµού στη λογική κατάσταση “0” έχει
µια σχέση 1 προς 2).
Επίσης διαθέτει ένα σήµα µε όνοµα RESET, το οποίο είναι το σήµα αρχικο-
ποίησης. Εάν το σήµα, που θα εφαρµόσουµε στον ακροδέκτη αυτό, µείνει
στη λογική κατάσταση “1” για χρόνο µεγαλύτερο από τέσσερις παλµούς
ρολογιού, τότε µε την κάθοδο του σήµατος αυτού στη λογική κατάσταση “0”
ο επεξεργαστής αρχικοποιείται.
Για να µπορέσουµε να δηµιουργήσουµε τα δύο σήµατα, που αναφέραµε παρα-
πάνω, χρειαζόµαστε τη βοήθεια ενός ολοκληρωµένου κυκλώµατος, που ονο-
µάζεται γεννήτρια χρονισµού. Για την περίπτωση του Intel 8088 η γεννήτρια
χρονισµού έχει την κωδική ονοµασία 8284. Παρατηρήστε, µε τη βοήθεια του
σχήµατος 2.7, τον τρόπο µε τον οποίο αυτή συνδέεται µε τον επεξεργαστή.
4 32 . 3 O Ã ƒ √ ¡ π ™ ª √ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡ ( K À ∫ § √ ™ ∂ ¡ ∆ √ § ∏ ™ – ª ∏ Ã ∞ ¡ ∏ ™ – ƒ √ § √ ° π √ À )
4 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Η γεννήτρια χρονισµού χρησιµοποιεί έναν κρύσταλλο (ή κρυσταλλικό ταλα-
ντωτή) συγκεκριµένης συχνότητας ως είσοδο στους ακροδέκτες της Χ1 και
Χ2 και δίνει στην έξοδο το σήµα CLK, το οποίο εφαρµόζεται στον επεξερ-
γαστή. Επίσης µε τη βοήθεια του κυκλώµατος της αντίστασης, της διόδου
και του πυκνωτή, που εφαρµόζονται στο σήµα RES, παράγεται το σήµα αρχι-
κοποίησης RESET του Intel 8088.
32
29
25
24
26
27
28
34
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
39
38
37
36
35
X1
U1
X2
READYAD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
A8
A9
A10
A11
A12
A13
A14
A15
A16/S3
A17/S4
A18/S5
A19/S6
RD
LOCK
QS0
QS1
S0
S1
S2
BME
RESET
INTR
U2
CLK
RDY1
VCC
READY
CLK
RESET
RDY2AEN1
AEN2EFI
CSYNCASYNC
F/C
RES
8284
8088MAX
RQ/GT0
RQ/GT1
NMITESTMX
16
4
6
3
5
8
10
22
19
21
PCLK
OSC
2
12
7141
15
13
17
18
31
30
1723
33™¯‹Ì· 2.7
Τα κυκλώµατα χρονισµού
του 8088
Ελέγχοντας τα βιβλία του κατασκευαστή, διαβάζουµε ότι για τη σωστή λει-
τουργία του επεξεργαστή απαιτείται η περίοδος ρολογιού να είναι µεταξύ 200
ns και 500 ns. Εποµένως, η συχνότητα λειτουργίας του κρυσταλλικού ταλα-
ντωτή, που συνδέουµε στη γεννήτρια χρονισµού, θα κυµαίνεται από 2 MHz
έως 5 MHz (θυµηθείτε ότι η περίοδος είναι το αντίστροφο της συχνότητας).
¶·Ú¿‰ÂÈÁÌ· 2.2
Χωρισµός ενός κύκλου εντολής σε κύκλους µηχανής και ρολογιού.
∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 2.2
4 52 . 3 O Ã ƒ √ ¡ π ™ ª √ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡ ( K À ∫ § √ ™ ∂ ¡ ∆ √ § ∏ ™ – ª ∏ Ã ∞ ¡ ∏ ™ – ƒ √ § √ ° π √ À )
Kύκλος εντολής
Kύκλοςv
προσκόµισηςv
εντολής
M1
T1 T2 T3 T4
Kύκλοςv
ανάγνωσηςv
µνήµης
M1
T1 T2 T3
Eκτέλεσηv
εντολής
M3
T1 T2 T3 ™¯‹Ì· 2.8
Οι κύκλοι µηχανής και
ρολογιού της εντολής
ADD
Η κάθε εντολή, ανάλογα µε τη λειτουργία που επιτελεί, τον αριθµό των εντέ-
λων και τον αριθµό των bytes, που έχει το κάθε έντελο, αποτελείται από δια-
φορετικό αριθµό κύκλων µηχανής.
Έστω ότι χρησιµοποιούµε το µικροεπεξεργαστή Intel 8086. Αυτός διαθέτει
µια εντολή πρόσθεσης (µε όνοµα ADD), η οποία προσθέτει την τιµή που
δίνουµε µε τα περιεχόµενα του συσσωρευτή και αποθηκεύει το αποτέλεσµα
στο συσσωρευτή. Η εντολή συντάσσεται ως εξής: ADD <data>, όπου <data>
είναι η τιµή που θέλουµε να προσθέσουµε στο συσσωρευτή. Η εντολή αυτή
αποθηκεύεται στη µνήµη σε δύο bytes. Το πρώτο byte περιέχει τον κωδικό
λειτουργίας της εντολής (στην συγκεκριµένη περίπτωση περιέχει το 0416) και
το δεύτερο byte την τιµή που θέλουµε να προσθέσουµε (έστω ότι περιέχει
την τιµή 2F16).
Η εντολή αυτή αποτελείται από τρεις κύκλους µηχανής, όπως µπορείτε να
παρατηρήσετε στο σχήµα 2.8. O πρώτος κύκλος µηχανής αποτελεί τον κύκλο
προσκόµισης της εντολής. Ο κωδικός λειτουργίας της εντολής (0416) µετα-
4 6 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
φέρεται από τη µνήµη στον επεξεργαστή (και συγκεκριµένα στον αποκωδι-
κοποιητή εντολών) και αποκωδικοποιείται.
Από τον κωδικό λειτουργίας ο επεξεργαστής καταλαβαίνει ότι απαιτείται στη
συνέχεια ένας κύκλος µηχανής για την ανάγνωση της τιµής, που θέλουµε να
προσθέσουµε. Για το λόγο αυτό ο δεύτερος κύκλος µηχανής αποτελεί έναν
κύκλο ανάγνωσης από τη µνήµη. Κατά τη διάρκεια αυτού η τιµή 2F16 µετα-
φέρεται από τη µνήµη στον επεξεργαστή και αποθηκεύεται σε κάποιον προ-
σωρινό καταχωρητή της αριθµητικής και λογικής µονάδας.
Στον τρίτο κύκλο µηχανής γίνεται η λειτουργία της πρόσθεσης. Η αριθµητι-
κή και λογική µονάδα προσθέτει τις δύο τιµές και αποθηκεύει το αποτέλε-
σµα στο συσσωρευτή.
(α) Τι εκφράζουν ο κύκλος εντολής, ο κύκλος µηχανής και ο κύκλος ρολογιού;
(β) Κατατάξτε τους από το µικρότερο σε χρονική διάρκεια έως το µεγαλύτερο.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.6
2.4 TÔ Û‡ÓÔÏÔ ÂÓÙÔÏÒÓ ÙÔ˘ ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹
Όπως θα θυµάστε από την Ενότητα 1.4, οι µικροϋπολογιστές λειτουργούν
µε βάση κάποιο πρόγραµµα, το οποίο είναι αποθηκευµένο στην κύρια µνήµη
(που µπορεί να αποτελείται από διάφορες µνήµες ROM, EPROM, RAM,
κ.α.). Το πρόγραµµα αυτό αποτελείται από εντολές, οι οποίες αποθηκεύο-
νται η µία µετά την άλλη.
Οι διάφορες εντολές, τις οποίες µπορεί να εκτελέσει κάποιος µικροεπεξερ-
γαστής, καθορίζουν το σύνολο εντολών του. Ανάλογα µε την τεχνολογία και
το σχεδιασµό του, ο κάθε µικροεπεξεργαστής διαθέτει το δικό του σύνολο
εντολών. Το πλήθος των εντολών αυτών διαφέρει και µπορεί να είναι από
πολύ µικρό, όπως λίγες δεκάδες εντολών, έως πολύ µεγάλο, όπως µερικές
εκατοντάδες εντολές. Για παράδειγµα ο µικροεπεξεργαστής 6502, που
παρουσιάστηκε από την εταιρία MOS Technology το 1975, διαθέτει 151 δια-
φορετικές εντολές, ενώ ο 8085 της Intel διαθέτει 239 εντολές.
Το µήκος των εντολών εξαρτάται από τον αριθµό των εντέλων και συνήθως είναι
µεταξύ ενός και τριών bytes. Το πρώτο byte αποτελεί πάντα τον κωδικό λει-
τουργίας της εντολής. Για το λόγο αυτό το σύνολο εντολών των µικροεπεξερ-
γαστών αποτελείται από λιγότερες από 255 εντολές. Τα υπόλοιπα bytes περιέ-
χουν είτε δεδοµένα είτε διευθύνσεις καταχωρητών είτε διευθύνσεις µνήµης.
Μπορούµε µε διάφορους τρόπους να χωρίσουµε το σύνολο εντολών ενός
µικροεπεξεργαστή σε κατηγορίες. Στη γενική περίπτωση µπορούµε να δια-
κρίνουµε τις παρακάτω κατηγορίες:
• Aριθµητικές εντολές: Στην κατηγορία αυτή ανήκουν όλες οι εντολές, οι
οποίες έχουν σχέση µε αριθµητικές πράξεις, όπως για παράδειγµα εντο-
λές πρόσθεσης ή αφαίρεσης δύο αριθµών, εντολές αύξησης ή ελάττωσης
ενός αριθµού κατά ένα, εντολές µετατροπής αριθµού σε µορφή συµπλη-
ρώµατος ως προς 1 ή ως προς 2. Σε πιο πρόσφατους µικροεπεξεργαστές
συναντάµε επίσης πιο πολύπλοκες εντολές, όπως εντολές πολλαπλασια-
σµού ή διαίρεσης.
• Λογικές εντολές: Στην κατηγορία αυτή βρίσκουµε εντολές που έχουν σχέση
µε λογικές πράξεις, όπως εντολές λογικού KAI (AND), OXI (NOT), Ή
(OR), ΑΠΟΚΛΕΙΣΤΙΚΟΥ Ή (XOR), εντολές ολίσθησης ενός αριθµού
προς τα αριστερά ή προς τα δεξιά, εντολές περιστροφής ενός αριθµού,
εντολές σύγκρισης δύο αριθµών.
• Eντολές µετακίνησης δεδοµένων: H κατηγορία αυτή περιέχει τις εντολές,
οι οποίες µετακινούν δεδοµένα. Πριν εκτελέσουµε µια αριθµητική ή λογι-
κή πράξη θα πρέπει να έχουµε µεταφέρει τα δεδοµένα, που θα πάρουν
µέρος στην πράξη είτε στο συσσωρευτή είτε στους καταχωρητές γενικού
σκοπού. Επίσης µετά από µια τέτοια ενέργεια θα πρέπει να µπορούµε να
µεταφέρουµε τα αποτελέσµατα της πράξης είτε στην κύρια µνήµη είτε σε
άλλους καταχωρητές. Εντολές που µας δίνουν αυτή τη δυνατότητα είναι,
π.χ., οι εντολές φόρτωσης αριθµού στο συσσωρευτή ή στους καταχωρητές
γενικού σκοπού, εντολές αποθήκευσης αριθµού στην κύρια µνήµη ή στους
καταχωρητές, εντολές µετακίνησης δεδοµένων µεταξύ της µνήµης, εντο-
λές ανάγνωσης ή εγγραφής δεδοµένων στις συσκευές εισόδου/εξόδου.
• Eντολές διακλάδωσης: Όπως γνωρίζετε, ένα πρόγραµµα αποτελείται από
εντολές που βρίσκονται αποθηκευµένες σειριακά στη µνήµη και εκτε-
λούνται η µία µετά την άλλη. Ο µετρητής προγράµµατος είναι αυτός που
καθορίζει ποια θα είναι η επόµενη εντολή που θα εκτελεστεί. Υπάρχουν
περιπτώσεις, όµως, (π.χ. όταν θέλουµε να εκτελέσουµε διαφορετικές εντο-
λές ανάλογα µε το αποτέλεσµα µιας πράξης), όπου θα πρέπει να µπορού-
µε να αλλάξουµε τη σειρά εκτέλεσης των εντολών και να µεταβάλλουµε
τα περιεχόµενα του µετρητή προγράµµατος. Οι εντολές που µας δίνουν
4 72 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∆ √ À ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏
4 8 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
αυτή τη δυνατότητα ονοµάζονται εντολές διακλάδωσης και χωρίζονται σε
δύο υποκατηγορίες: (α) στις εντολές διακλάδωσης χωρίς συνθήκη, οι οποί-
ες µεταφέρουν πάντα την εκτέλεση των εντολών στο σηµείο που περι-
γράφει το έντελό τους, και (β) στις εντολές διακλάδωσης υπό συνθήκη,
όπου ο έλεγχος της συνθήκης θα κρίνει κατά πόσο θα µεταφερθεί ή όχι η
εκτέλεση των εντολών σε άλλο σηµείο ή όχι. Στην πρώτη περίπτωση ανή-
κουν οι εντολές JUMP, ενώ στη δεύτερη περίπτωση ανήκουν οι εντολές
διακλάδωσης σε περίπτωση µηδενικού ή όχι αποτελέσµατος, οι εντολές
διακλάδωσης σε περίπτωση θετικού ή αρνητικού αποτελέσµατος κ.ά.
• Eντολές κλήσης και επιστροφής από υπορουτίνα: Όπως και στις σύγχρονες
γλώσσες προγραµµατισµού, έτσι και στις εντολές του µικροεπεξεργαστή,
όταν µια ακολουθία εντολών χρησιµοποιείται σε πολλά σηµεία του προ-
γράµµατος, την οµαδοποιούµε και την ονοµάζουµε υπορουτίνα (subroutine).
Οι µικροεπεξεργαστές διαθέτουν µια εντολή κλήσης υπορουτίνας (συνήθως
ονοµάζεται CALL), η οποία, όταν εκτελείται, µεταφέρει το µετρητή προ-
γράµµατος στο σηµείο όπου βρίσκονται οι εντολές της υπορουτίνας. Η τελευ-
ταία εντολή της υπορουτίνας ονοµάζεται εντολή επιστροφής από υπορουτί-
να (συνήθως ονοµάζεται RETURN) και επαναφέρει το µετρητή προγράµ-
µατος στο σηµείο όπου βρισκόταν όταν έγινε η κλήση της υπορουτίνας για
να συνεχίσει την εκτέλεση του προγράµµατος µε την επόµενη εντολή.
• Γενικές εντολές: Oι µικροεπεξεργαστές διαθέτουν και διάφορες άλλες
εντολές γενικού σκοπού. Τέτοιες εντολές είναι οι εντολές διαχείρισης
σωρού (PUSH, POP), εντολές διακοπής λειτουργίας (HALT, BReaK), κ.ά.
Στην κατηγορία αυτή ανήκει επίσης και η εντολή NOP (Νo operation), η
οποία δεν εκτελεί καµία λειτουργία, αλλά µπορεί να φανεί πολύ χρήσιµη,
ειδικά σε περιπτώσεις όπου µέσα στο πρόγραµµα θα πρέπει να περιµέ-
νουµε κάποιο χρονικό διάστηµα µέχρι να προχωρήσουµε στην εκτέλεση
της επόµενης εντολής.
Στο παράδειγµα 3 µπορείτε να βρείτε ένα µικρό πρόγραµµα, τον τρόπο µε
τον οποίο αποθηκεύεται στην κύρια µνήµη του µικροϋπολογιστικού συστή-
µατος, καθώς και τον τρόπο µε τον οποίο εκτελείται.
¶·Ú¿‰ÂÈÁÌ· 2.3
Έστω ότι θέλουµε να φτιάξουµε στο µικροεπεξεργαστή 80196 της Intel ένα
µικρό πρόγραµµα, το οποίο να αποθηκεύει σε έναν καταχωρητή διαδοχικά
τις τιµές από το 0 µέχρι το 5.
∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 2.3
Από το εγχειρίδιο του κατασκευαστή βρίσκουµε ότι ο µικροεπεξεργαστής
αυτός διαθέτει µεταξύ άλλων τις παρακάτω εντολές:
• LDB (load byte), η οποία αποθηκεύει την τιµή που θέλουµε σε κάποιον
καταχωρητή. Η εντολή συντάσσεται ως εξής:
LDB <ηٷ¯ˆÚËÙ‹˜> , #<·ÚÈıÌfi˜> ,
όπου <καταχωρητής> είναι ο αριθµός του καταχωρητή, που θέλουµε να
χρησιµοποιήσουµε, και <αριθµός> είναι τα δεδοµένα (byte), που θέλου-
µε να φορτώσουµε στον καταχωρητή. Η εντολή αποθηκεύεται στην κύρια
µνήµη σε τρία bytes (ένα για τον κωδικό λειτουργίας που είναι η τιµή Β116,
ένα για τον καταχωρητή και ένα για τον αριθµό).
• ADDB (add byte), η οποία προσθέτει τα περιεχόµενα ενός καταχωρητή µε
την τιµή, που θέλουµε, και αποθηκεύει το αποτέλεσµα πίσω στον κατα-
χωρητή. Η εντολή συντάσσεται ως εξής:
ADDB <ηٷ¯ˆÚËÙ‹˜> , #<·ÚÈıÌfi˜> ,
όπου <καταχωρητής> είναι ο αριθµός του καταχωρητή, που θέλουµε να
χρησιµοποιήσουµε, και <αριθµός> είναι τα δεδοµένα (byte), που θέλου-
µε να προσθέσουµε στον καταχωρητή. Η εντολή αποθηκεύεται στην κύρια
µνήµη, όπως και η LDB, σε τρία bytes, ενώ ο κωδικός λειτουργίας της
είναι το 7516.
• CMPB (compare byte), η οποία συγκρίνει τα περιεχόµενα ενός καταχω-
ρητή µε µία τιµή. Η εντολή συντάσσεται ως εξής:
CMPB <ηٷ¯ˆÚËÙ‹˜> , #<·ÚÈıÌfi˜>,
όπου <καταχωρητής> είναι ο αριθµός του καταχωρητή, που θέλουµε να
χρησιµοποιήσουµε, και <αριθµός> είναι τα δεδοµένα (byte), που θέλου-
µε να συγκρίνουµε µε τον καταχωρητή. Η εντολή αυτή, όπως και οι προη-
γούµενες, αποθηκεύεται στην κύρια µνήµη σε τρία bytes, ενώ ο κωδικός
λειτουργίας της είναι το 9916.
• JNE (jump if not equal), η οποία, εάν οι δύο αριθµοί της προηγούµενης
πράξης είναι ίσοι, τότε µεταφέρει την εκτέλεση του προγράµµατος στο
σηµείο του προγράµµατος, που θέλουµε. Η εντολή συντάσσεται ως εξής:
JNE <ÂÙÈΤٷ>,
4 92 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∆ √ À ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏
5 0 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
όπου <ετικέτα> είναι το σηµείο του προγράµµατος, στο οποίο θα µετα-
φερθούµε εάν ισχύει η συνθήκη ισότητας. Η εντολή αποθηκεύεται στην
κύρια µνήµη σε δύο bytes (ένα για τον κωδικό λειτουργίας που είναι το
D716 και ένα για τον αριθµό που δείχνει πόσα bytes µπροστά ή πίσω από
την τρέχουσα εντολή θα πρέπει να µεταφερθούµε).
• BRK (break), η οποία τερµατίζει την εκτέλεση του προγράµµατος. Η εντο-
λή συντάσσεται ως εξής:
BRK
χωρίς να έχει κάποιο έντελο. Η εντολή αποθηκεύεται στην κύρια µνήµη
σε τρία bytes και ο κωδικός λειτουργίας της είναι το Ε716. Στην πραγµα-
τικότητα η εντολή BRK είναι µία εντολή διακλάδωσης χωρίς συνθήκη, η
οποία αποθηκεύει στο µετρητή προγράµµατος εκείνη τη διεύθυνση της
µνήµης, όπου υπάρχουν ειδικές εντολές, που τερµατίζουν την εκτέλεση
του προγράµµατος. Έχουµε όµως συνηθίσει να τη θεωρούµε ως µία γενι-
κή εντολή και όχι ως εντολή διακλάδωσης.
Έστω ότι χρησιµοποιούµε τον καταχωρητή γενικού σκοπού 8016 (ο συγκε-
κριµένος µικροεπεξεργαστής περιέχει πολλούς καταχωρητές) και ότι το πρό-
γραµµά µας αποθηκεύεται στην κύρια µνήµη ξεκινώντας από τη θέση µνή-
µης 500016 (µην ξεχνάτε ότι οι αριθµοί µας βρίσκονται στο δεκαεξαδικό
σύστηµα αρίθµησης).
Ένα πρόγραµµα, το οποίο αποθηκεύει στον καταχωρητή 8016 διαδοχικά τις
τιµές από το 0 έως το 5 και χρησιµοποιεί τις εντολές, που είδαµε έως τώρα,
είναι το παρακάτω:
LDB 80, #00
C: ADDB 80, #01
CMPB 80, #05
JNE C
BRK
Ας παρακολουθήσουµε τη λογική του προγράµµατος για να καταλάβουµε
πώς λειτουργεί. Αφού, όπως είπαµε, χρησιµοποιούµε τον καταχωρητή µε
αριθµό 8016 για να αποθηκεύουµε τους αριθµούς από το 0 έως το 5, το
πρώτο βήµα είναι να τον αρχικοποιήσουµε µε την τιµή 0016 (εντολή LDB).
Στην συνέχεια πρέπει να αυξάνουµε τα περιεχόµενα του 8016 κάθε φορά
κατά ένα µέχρι να φτάσουµε στην τελευταία τιµή, που είναι το 5. Για το
σκοπό αυτό προσθέτουµε την τιµή 0116 στα περιεχόµενα του καταχωρητή
(εντολή ADDB) και στη συνέχεια ελέγχουµε µήπως έχουµε φτάσει ήδη
στην τελευταία τιµή (εντολή σύγκρισης CMPB). Εάν δεν έχουµε φτάσει
(εντολή JNE), επιστρέφουµε στο σηµείο C και επαναλαµβάνουµε την πρό-
σθεση µέχρι ο καταχωρητής 8016 να περιέχει την τιµή 0516. Τότε η εντολή
JNE δεν θα επιστρέψει στο σηµείο C, αλλά η εκτέλεση του προγράµµατος
θα συνεχιστεί µε την επόµενη εντολή, η οποία και τερµατίζει το πρόγραµ-
µα. (εντολή BRK).
Εάν παρατηρήσουµε την κύρια µνήµη, θα δούµε ότι το πρόγραµµά µας έχει
αποθηκευτεί όπως φαίνεται στο σχήµα 2.9.
Στις πρώτες τρεις θέσεις µνήµης έχει αποθηκευτεί η εντολή LDB. Το πρώτο
byte αποτελεί τον κωδικό λειτουργίας της, το δεύτερο byte (0016) τον αριθ-
µό, τον οποίο φορτώνουµε, και το τρίτο byte (8016) τον καταχωρητή, τον
οποίο χρησιµοποιούµε. Με αντίστοιχο τρόπο στις επόµενες έξι θέσεις µνή-
µης έχουν αποθηκευτεί οι δύο επόµενες εντολές του προγράµµατός µας.
Η εκτέλεση του προγράµµατος ξεκινάει µε τη βοήθεια του µετρητή προ-
γράµµατος από τη θέση µνήµης 500016. Ο µικροεπεξεργαστής διαβάζει το
πρώτο byte και το αποκωδικοποιεί µε βάση τον κωδικό λει-
τουργίας του. Από αυτόν καταλαβαίνει ότι ακολουθούν
άλλα δύο bytes µε τα έντελα της εντολής, τα οποία διαβά-
ζει από τη µνήµη και στη συνέχεια εκτελεί την εντολή. Στη
συνέχεια διαβάζει το περιεχόµενο της θέσης µνήµης 500316,
που περιέχει την επόµενη εντολή, την αποκωδικοποιεί, την
εκτελεί κ.ο.κ. µέχρι να φτάσει στη θέση µνήµης 500916.
Στις θέσεις µνήµης 500916 και 500Α16 βρίσκουµε αποθη-
κευµένη την εντολή JNE. Το πρώτο byte είναι ο κωδικός
λειτουργίας. Το δεύτερο byte περιέχει τον αριθµό F816, ο
οποίος αναπαριστά τον αριθµό –810 σε µορφή συµπληρώ-
µατος ως προς 2. Όταν εκτελείται αυτή η εντολή, ο µετρη-
τής προγράµµατος δείχνει στην επόµενη εντολή, δηλαδή
στην BRK, η οποία ξεκινάει στη θέση µνήµης 500Β16. Εάν
ισχύει η συνθήκη της ισότητας στην εντολή σύγκρισης, τότε
το πρόγραµµα συνεχίζεται µε την εκτέλεση της εντολής
BRK. Εάν όµως δεν ισχύει η συνθήκη της ισότητας, τότε
προστίθεται στο µετρητή προγράµµατος ο αριθµός –810,
5 12 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∆ √ À ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏
™¯‹Ì· 2.9
Το πρόγραµµα αποθηκευ-
µένο στην κύρια µνήµη
B1
00
80
75
01
80
99
05
80
D7
F8
E7
F2
DF
5000
LDB 80, #00
ADDB 80, #01
CMPB 80, #05
JNE C
BRK
5001
5002
5003
5004
5005
5006
5007
5008
5009
500A
500B
500C
500D
5 2 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
οπότε αυτός δείχνει πλέον στη θέση µνήµης 500316, στην οποία ξεκινάει η
εντολή ADDB. Με τον τρόπο αυτό, δηλαδή την πρόσθεση κάποιας προση-
µασµένης τιµής στο περιεχόµενο του µετρητή προγράµµατος, υλοποιούνται
οι εντολές διακλάδωσης (είτε υπό συνθήκη είτε χωρίς).
Τέλος, στις θέσεις µνήµης 500Β16 έως και 500D16 βρίσκεται αποθηκευµένη
η τελευταία εντολή του προγράµµατός µας, η οποία, όταν εκτελείται, τερ-
µατίζει τη λειτουργία του.
Ποιες κατηγορίες εντολών γνωρίζετε;ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.7
Κατατάξτε τις εντολές του προγράµµατος του παραδείγµατος 2.3 στις κατη-
γορίες εντολών που περιγράφονται στην ενότητα 2.4.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.9
∆ίνεται το παρακάτω πρόγραµµα, το οποίο έχει γραφτεί για το µικροεπε-
ξεργαστή 80196 της Intel:
LDB 8C, #0A
A: ADDB 8C, #05
CMPB 8C, #64
JNE A
BRK
(α)Υποθέτοντας ότι το πρόγραµµα αποθηκεύεται στην κύρια µνήµη ξεκι-
νώντας από τη θέση µνήµης 300016, βρείτε τα περιεχόµενα της µνήµης
από τη θέση 300016 έως και την 300D16. Ποιο είναι το µέγεθος του προ-
γράµµατος σε bytes;
(β)Ποια είναι η λειτουργία του προγράµµατος;
(γ) Εάν εκτελέσουµε το πρόγραµµα, πόσες φορές θα εκτελεστεί η πρώτη
εντολή (LDB) και πόσες φορές η δεύτερη εντολή (ADDB);
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.8
2.5 OÈ TÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘ ÙˆÓ ÂÓÙÔÏÒÓ
™ÎÔfi˜
Στην προηγούµενη ενότητα είδαµε τις διάφορες κατηγορίες εντολών, που συν-
θέτουν το σύνολο εντολών ενός µικροεπεξεργαστή. Τα δεδοµένα, που χρειά-
ζεται η κάθε εντολή για να εκτελεστεί η λειτουργία της, µπορεί να βρίσκονται
είτε µετά από τον κωδικό λειτουργίας της εντολής είτε σε κάποια θέση µνή-
µης είτε σε κάποιον καταχωρητή. Στην ενότητα αυτή θα µάθετε τους διαφο-
ρετικούς τρόπους, µε τους οποίους ένας µικροεπεξεργαστής σηµατοδοτεί τη
θέση, στην οποία βρίσκονται τα δεδοµένα αυτά (οι τρόποι αυτοί ονοµάζονται
τρόποι διευθυνσιοδότησης ή αλλιώς τρόποι προσπέλασης).
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν ολοκληρώσετε τη µελέτη της ενότητας αυτής, θα είστε σε θέση να ορί-
σετε επτά διαφορετικούς τρόπους διευθυνσιοδότησης, που χρησιµοποιούν οι
εντολές για να προσδιορίσουν το σηµείο, στο οποίο βρίσκονται τα δεδοµένα
που χρειάζονται.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Η ενότητα αυτή είναι σχετικά µεγάλη σε µέγεθος. Μελετήστε, µε τη σειρά,
έναν–έναν τους διαφορετικούς τρόπους διευθυνσιοδότησης και προσπαθήστε
5 32 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡
Έστω ότι δεν γνωρίζουµε την ύπαρξη της εντολής ADDB στο µικροεπε-
ξεργαστή 80196. Γνωρίζουµε όµως ότι αυτός διαθέτει µία εντολή µε όνοµα
INCB, η οποία αυξάνει τα περιεχόµενα ενός καταχωρητή κατά ένα. Η εντο-
λή αυτή συντάσσεται ως εξής:
INCB <ηٷ¯ˆÚËÙ‹˜>
και αποθηκεύεται στην κύρια µνήµη σε δύο bytes (το πρώτο περιέχει τον
κωδικό λειτουργίας µε τιµή 1716, ενώ το δεύτερο περιέχει τον καταχωρητή).
(α)Ποιες αλλαγές πρέπει να κάνουµε στο πρόγραµµα του παραδείγµατος
3 ώστε να µην χρησιµοποιεί την εντολή ADDB;
(β)Πώς αποθηκεύεται το νέο πρόγραµµα στη µνήµη;
Ποιο είναι το µέγεθός του;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘2.10
5 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
να διακρίνετε τις διαφορές του καθενός από αυτούς µε τους προηγούµενους,
που έχετε ήδη µελετήσει. Για κάθε τρόπο διευθυνσιοδότησης θα βρείτε ενδει-
κτικά σχήµατα και παραδείγµατα ώστε να τους κατανοήσετε καλύτερα. Αφού
τελειώσετε µε τη µελέτη της θεωρίας, που περιέχει η ενότητα, θα πρέπει να
διαβάσετε προσεκτικά το παράδειγµα 2.4, το οποίο είναι αρκετά αναλυτικό.
Οι µέθοδοι, που χρησιµοποιεί ο κάθε µικροεπεξεργαστής για να «δείξει» το
πού βρίσκονται τα δεδοµένα, που χρειάζεται η κάθε εντολή, ονοµάζονται
µέθοδοι διευθυνσιοδότησης ή αλλιώς τρόποι διευθυνσιοδότησης (addressing
modes). Πολλές φορές, επειδή τα δεδοµένα βρίσκονται συνήθως στην κύρια
µνήµη, ονοµάζονται και τρόποι προσπέλασης. Η φυσική διεύθυνση της µνή-
µης, η οποία προκύπτει από την εφαρµογή του τρόπου διευθυνσιοδότησης
σε µία εντολή, ονοµάζεται ενεργή διεύθυνση (effective address). Μια εντολή
(π.χ. πρόσθεσης) µπορεί να χρησιµοποιηθεί µε πολλούς τρόπους διευθυν-
σιοδότησης και φυσικά πολλές εντολές µπορούν να έχουν τον ίδιο τρόπο
διευθυνσιοδότησης.
Οι τρόποι διευθυνσιοδότησης διαφέρουν από µικροεπεξεργαστή σε µικροε-
πεξεργαστή, καθώς εξαρτώνται από τον τρόπο σχεδιασµού του. Σε κάθε
µικροεπεξεργαστή όµως µπορούµε να διακρίνουµε όλους ή µερικούς από
τους τρόπους που περιγράφονται εδώ.
• Υπονοούµενη διευθυνσιοδότηση (implied or register addressing)
Στην περίπτωση αυτή τα δεδοµένα, τα οποία χρειάζεται η εντολή, βρίσκο-
νται αποθηκευµένα σε κάποιον καταχωρητή και το όνοµα αυτού του κατα-
χωρητή προσδιορίζεται από τον κωδικό λειτουργίας. Για παράδειγµα στο
µικροεπεξεργαστή 6502, ο οποίος διαθέτει δύο καταχωρητές Χ και Υ, υπάρ-
χει µια εντολή µε όνοµα DEΥ (DEcrement Y), η οποία ελαττώνει τα περιε-
χόµενα του καταχωρητή Υ κατά ένα. Η εντολή αυτή χρησιµοποιεί τον υπο-
νοούµενο τρόπο διευθυνσιοδότησης, καθώς η διεύθυνση, στην οποία υπάρ-
χουν τα δεδοµένα (καταχωρητής Υ), «υπονοείται» από την εντολή.
• Άµεση διευθυνσιοδότηση (immediate addressing)
Στην άµεση διευθυνσιοδότηση (βλέπε σχήµα 2.10) τα δεδοµένα, που χρειά-
ζονται για να εκτελεστεί η εντολή, βρίσκονται στο έντελο, που συνοδεύει
την εντολή, και αποθηκεύονται αµέσως µετά τον κωδικό λειτουργίας. Παρά-
δειγµα τέτοιας εντολής είναι η εντολή ADDB 80, #01 που είδαµε στο παρά-
δειγµα 2.3. Στην εντολή αυτή τα δεδοµένα, που θέλουµε να προσθέσουµε
(τιµή 0116), αποθηκεύονται στο δεύτερο έντελο της εντολής. Αντίστοιχα στον
Kωδικόςv
λειτουργίας
∆εδοµένα
™¯‹Ì· 2.10
Η άµεση διευθυνσιοδότη-
ση (immediate)
6502 συναντάµε την εντολή LDX #55, η οποία µεταφέρει την τιµή 5516 στον
καταχωρητή Χ. Για να υποδηλώσουµε άµεση διευθυνσιοδότηση χρησιµο-
ποιούµε συνήθως το σύµβολο # πριν από τα δεδοµένα.
• Απευθείας ή απόλυτη διευθυνσιοδότηση (direct or absolute addressing)
Στην απευθείας ή απόλυτη διευθυνσιοδότηση τα
δεδοµένα, που χρειάζεται η εντολή, βρίσκονται
σε κάποια θέση της κύριας µνήµης. Το έντελο
της εντολής, όπως φαίνεται στο σχήµα 2.11,
περιέχει τη διεύθυνση της µνήµης όπου υπάρ-
χουν τα δεδοµένα αυτά. Το µέγεθος του εντέλου
είναι µια λέξη (δύο bytes) ώστε να µπορεί να
διευθυνσιοδοτήσει όλη την κύρια µνήµη, που
συνήθως είναι 64 KB.
Παράδειγµα τέτοιου τρόπου διευθυνσιοδότησης
στον 6502 αποτελεί η εντολή LDX $DC00. Η
εντολή αυτή µεταφέρει τα δεδοµένα, τα οποία
βρίσκονται στη θέση µνήµης µε διεύθυνση
DC0016, στον καταχωρητή Χ. Συνήθως, όταν αναφερόµαστε σε θέσεις µνή-
µης, χρησιµοποιούµε το σύµβολο $ πριν από τη διεύθυνση.
5 52 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡
Kωδικόςv
λειτουργίας
∆ιεύθυνσηv
µνήµηςv
(2 bytes)
•v
•v
•
∆εδοµέναEνεργήv
διεύθυνση
™¯‹Ì· 2.11
Η απευθείας ή απόλυτη
διευθυνσιοδότηση
(direct or absolute)
• Σχετική διευθυνσιοδότηση (relative addressing)
Η σχετική διευθυνσιοδότηση είναι ο τρόπος διευθυνσιο-
δότησης, που χρησιµοποιούν οι εντολές διακλάδωσης. Το
έντελο των εντολών αυτών, όπως φαίνεται στο σχήµα
2.12, περιέχει µια τιµή, η οποία προστίθεται στο περιεχό-
µενο του µετρητή προγράµµατος για να προκύψει η ενερ-
γή διεύθυνση ή αλλιώς η διεύθυνση στόχος. Η τιµή αυτή
είναι συνήθως ένας προσηµασµένος αριθµός. Εποµένως,
το έντελο περιέχει το πόσο προς τα πάνω ή προς τα κάτω
πρέπει να µετακινηθούµε στην κύρια µνήµη σε σχέση µε
το σηµείο, στο οποίο βρισκόµαστε τώρα για να βρούµε
την επόµενη εντολή.
Όπως είδαµε και στο προηγούµενο παράδειγµα (παρά-
δειγµα 2.3), η εντολή JNE C περιέχει ως έντελο την τιµή
–810, η οποία προστιθέµενη στον µετρητή προγράµµατος
Kωδικόςv
λειτουργίας
Έντελο
Mετρητήςv
προγράµµατος
•v
•v
•
EντολήEνεργήv
διεύθυνση
+
™¯‹Ì· 2.12
Η σχετική διευθυνσιοδότηση (relative)
5 6 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
• Έµµεση διευθυνσιοδότηση (indirect addressing)
Στην έµµεση διευθυνσιοδότηση τα δεδοµένα, που χρειάζε-
ται η εντολή, βρίσκονται σε κάποια θέση της κύριας µνή-
µης. Η ενεργή διεύθυνση σχηµατίζεται από το περιεχόµε-
νο του καταχωρητή ή της θέσης µνήµης, την οποία περιέ-
χει η εντολή στο έντελό της. Το σχήµα 2.13 παρουσιάζει
σχηµατικά τον τρόπο αυτό διευθυνσιοδότησης.
Για παράδειγµα έστω ότι σε έναν υποθετικό υπολογιστή,
που διαθέτει έναν καταχωρητή µε όνοµα Υ, υπάρχει η εντο-
λή INC (Y), η οποία αυξάνει το περιεχόµενο µιας θέσης
µνήµης κατά ένα. Η εντολή αυτή χρησιµοποιεί τον έµµεσο
τρόπο διευθυνσιοδότησης. Έστω επίσης ότι ο καταχωρη-
τής Υ περιέχει την τιµή 8D0016. Όταν εκτελεστεί η εντολή
αυτή, η ενεργή διεύθυνση, που θα σχηµατιστεί, θα είναι το
περιεχόµενο του καταχωρητή Υ, που είναι η τιµή 8D0016, εποµένως θα δια-
βάσει το περιεχόµενο της κύριας µνήµης µε διεύθυνση 8D0016, θα αυξήσει
το περιεχόµενο αυτό κατά ένα και θα αποθηκεύσει το αποτέλεσµα πίσω στη
διεύθυνση της κύριας µνήµης.
Παρατηρήστε ότι, ενώ στους προηγούµενους τρόπους διευθυνσιοδότησης το
έντελο της εντολής περιείχε είτε τα δεδοµένα είτε τη διεύθυνση, στην οποία
βρίσκονται, στην έµµεση διευθυνσιοδότηση το έντελο περιέχει έναν ενδιά-
µεσο καταχωρητή ή θέση µνήµης, ο οποίος περιέχει τη διεύθυνση της κύριας
µνήµης, στην οποία βρίσκονται τα δεδοµένα (γι’ αυτό ακριβώς ονοµάζεται
και έµµεση, επειδή εισάγει ένα ενδιάµεσο βήµα).
µας οδηγεί στη διεύθυνση της µνήµης, στην οποία υπάρχει η εντολή ADDB.
Το µέγεθος του εντέλου είναι συνήθως ένα byte µε αποτέλεσµα να µπορού-
µε να µετακινηθούµε κατά –127 έως +128 θέσεις µνήµης. Σε µερικούς µικρο-
επεξεργαστές υπάρχουν και εντολές σχετικής διευθυνσιοδότησης, όπου το
µέγεθος του εντέλου είναι µια λέξη (δύο bytes), ώστε να µπορούµε να µετα-
κινηθούµε σε µεγαλύτερο µέρος της κύριας µνήµης.
Kωδικόςv
λειτουργίας
∆ιεύθυνση
•v
•v
•
∆εδοµένα
Eνεργήv
διεύθυνση
Kαταχωρητήςv
προσδιορισµένοςv
από τον κωδικόv
λειτουργίας
™¯‹Ì· 2.13
Η έµµεση διευθυνσιοδότη-
ση (indirect)
• ∆εικτοδοτηµένη διευθυνσιοδότηση (indexed addressing)
Στον τρόπο αυτό διευθυνσιοδότησης, η ενεργή διεύθυνση
είναι το αποτέλεσµα που προκύπτει από το άθροισµα της
τιµής που περιέχει το έντελο και του περιεχοµένου ενός
καταχωρητή. Ο καταχωρητής στην περίπτωση αυτή ονο-
µάζεται καταχωρητής δείκτη.
Έστω η εντολή φόρτωσης τιµής στο συσσωρευτή LOAD
$5000,X, η οποία χρησιµοποιεί αυτόν τον τρόπο προσπέ-
λασης. Έστω ότι ο καταχωρητής Χ περιέχει την τιµή 0516
και ότι η θέση µνήµης 500516 περιέχει την τιµή ΒΒ16. Εκτε-
λώντας αυτή την εντολή προστίθεται το περιεχόµενο του
καταχωρητή Χ µε την τιµή 500016 και προκύπτει η ενεργή
διεύθυνση, η οποία είναι το 500516. Εποµένως, ο µικροε-
πεξεργαστής µεταφέρει το περιεχόµενο της θέσης µνήµης
500516, δηλαδή την τιµή ΒΒ16, στο συσσωρευτή.
Η δεικτοδοτηµένη προσπέλαση χρησιµοποιείται συνήθως, όταν θέλουµε να
επεξεργαστούµε πολλά δεδοµένα, τα οποία είναι σε διαδοχικές θέσεις µνή-
µης, όπως π.χ. στην περίπτωση ενός µονοδιάστατου πίνακα. Εάν θέλουµε να
φορτώσουµε στο συσσωρευτή το n–οστό στοιχείο του πίνακα, τότε χρησι-
µοποιούµε την εντολή LOAD $BASE,X, όπου BASE είναι η αρχή του πίνα-
κα (δηλαδή η διεύθυνση του πρώτου στοιχείου του πίνακα), ενώ στον κατα-
χωρητή Χ έχουµε αποθηκεύσει την τιµή n.
5 72 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡
Kωδικόςv
λειτουργίας
Έντελο
Kαταχωρητήςv
δείκτη
•v
•v
•
∆εδοµέναEνεργήv
διεύθυνση
+
™¯‹Ì· 2.14
Η δεικτοδοτηµένη διευ-
θυνσιοδότηση (indexed)
• ∆ιευθυνσιοδότηση µηδενικής σελίδας (zero page addressing)
Η διευθυνσιοδότηση µηδενικής σελίδας είναι
όµοια µε την απόλυτη προσπέλαση µε τη µόνη
διαφορά ότι το µέγεθος του εντέλου είναι ένα
byte και όχι δύο. Με τον τρόπο αυτό µπορούµε
να διευθυνσιοδοτήσουµε µόνο τα πρώτα 256
bytes της κύριας µνήµης, δηλαδή αυτά που
έχουν διεύθυνση από 000016 έως και 00FF16.
Στο σχήµα 2.15 φαίνεται σχηµατικά η διευθυν-
σιοδότηση µηδενικής σελίδας.
Παράδειγµα τέτοιας εντολής είναι η LDX $CC του
6502, η οποία µεταφέρει το περιεχόµενο της διεύ-
θυνσης 00CC16 της µνήµης στον καταχωρητή X.
Kωδικόςv
λειτουργίας
∆ιεύθυνσηv
µνήµηςv
(1 byte)
•v
•v
•
∆εδοµέναEνεργήv
διεύθυνση
™¯‹Ì· 2.15
Η διευθυνσιοδότηση µηδε-
νικής σελίδας (zero page)
5 8 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
Ανάλογα µε το σχεδιασµό τους, οι διάφοροι µικροεπεξεργαστές είναι πιθα-
νό να διαθέτουν και κάποιους επιπλέον τρόπους διευθυνσιοδότησης, οι οποί-
οι δεν αναφέρθηκαν παραπάνω. Επίσης, επειδή δεν υπάρχει κάποια κοινή
ονοµατολογία για τους τρόπους διευθυνσιοδότησης, πολλές φορές αναφέ-
ρονται µε διαφορετικά ονόµατα και µπορεί να προκαλέσουν σύγχυση. Για
παράδειγµα στο µικροεπεξεργαστή 6800 της Motorola, η διευθυνσιοδότηση
µηδενικής σελίδας αναφέρεται από τον κατασκευαστή σαν απόλυτη διευ-
θυνσιοδότηση (direct addressing), ενώ η απόλυτη διευθυνσιοδότηση αναφέ-
ρεται σαν extended addressing. Στο υπόλοιπο κείµενο θα χρησιµοποιούµε
τις ονοµασίες τις οποίες ορίσαµε παραπάνω, ενώ θα κάνουµε αναφορά όπου
υπάρχουν διαφοροποιήσεις από τους κατασκευαστές στα ονόµατα των τρό-
πων προσπέλασης.
Στο παράδειγµα 2.4 µπορείτε να βρείτε παραδείγµατα ορισµένων τρόπων
διευθυνσιοδότησης που διαθέτει ο µικροεπεξεργαστής 6800.
™‡ÓÔ„Ë
Οι διαφορετικοί τρόποι που χρησιµοποιούµε σε ένα µικροεπεξεργαστή για να
δηλώσουµε εάν τα δεδοµένα που απαιτεί µία εντολή ακολουθούν την εντολή
ή βρίσκονται σε κάποιο καταχωρητή ή θέση µνήµης ονοµάζονται τρόποι διευ-
θυνσιοδότησης ή τρόποι προσπέλασης. Η κάθε εντολή περιέχει στον κωδικό
λειτουργίας της και τον τρόπο διευθυνσιοδότησής της. Οι µικροεπεξεργαστές
περιέχουν συνήθως όλους ή τους περισσότερους από τους παρακάτω τρόπους
διευθυνσιοδότησης: (α) υπονοούµενη διευθυνσιόδοτηση, (β) άµεση, (γ) απευ-
θείας ή απόλυτη, (δ) σχετική, (ε) έµµεση, (στ) δεικτοδοτηµένη και (ζ) διευ-
θυνσιόδοτηση µηδενικής σελίδας.
¶·Ú¿‰ÂÈÁÌ· 2.4
Από το βιβλίο του κατασκευαστή βλέπουµε πως ο µικροεπεξεργαστής
Motorola 6800 διαθέτει την εντολή ADD_A, η οποία προσθέτει το περιεχό-
µενο του καταχωρητή Α µε το περιεχόµενο της θέσης µνήµης και αποθηκεύει
το αποτέλεσµα στον καταχωρητή Α.
Θεωρούµε ότι ο καταχωρητής Α περιέχει την τιµή 0Α16, η θέση µνήµης
200016 την τιµή Α016, η θέση µνήµης 00DF16 την τιµή 0616 και η θέση µνή-
µης 100216 την τιµή 1616 και ο καταχωρητής δείκτη Χ την τιµή 100016.
Βρείτε ποιό θα είναι το περιεχόµενο του καταχωρητή Α µετά την εκτέλεση
των παρακάτω εντολών.:
(α) ADD_A #32 (κωδικός λειτουργίας εντολής 8Β)
(β) ADD_A $DF (κωδικός λειτουργίας εντολής 9Β)
(γ) ADD_A $2000 (κωδικός λειτουργίας εντολής ΒΒ)
(δ) ADD_A $02,X (κωδικός λειτουργίας εντολής ΑΒ)
∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 2.4
Η πρώτη εντολή, όπως µπορούµε να καταλάβουµε από τον κωδικό λειτουρ-
γίας της, χρησιµοποιεί την άµεση διευθυνσιοδότηση εποµένως το έντελο
(#32) περιέχει τα δεδοµένα τα οποία θα προστεθούν στον καταχωρητή. Μετά
την εκτέλεση της εντολής ο καταχωρητής Α θα περιέχει την τιµή 3C16 (
0A16+3216 = 3C16 ). Η εντολή αποθηκεύεται στην κύρια µνήµη σε δύο bytes,
ένα για τον κωδικό λειτουργίας 8B16 και ένα για τα δεδοµένα 3216 όπως φαί-
νεται και στο σχήµα 2.16
5 92 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡
Όνοµα εντολής Κώδικας λειτουργίας Τρόπος προσπέλασης
ADD_A
8B Άµεση
διευθυνσιοδότηση
9B ∆ιευθυνσιοδότηση
µηδενικής σελίδας
AB ∆εικτοδοτηµένη
διευθυνσιοδότηση
BB Απόλυτη
διευθυνσιοδότηση
6 0 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
H εντολή ADD_A $DF χρησιµοποιεί προσπέλαση µηδενικής σελίδας. Επο-
µένως, το έντελο περιέχει την θέση µνήµης στην οποία βρίσκονται τα δεδο-
µένα που θέλουµε να προσθέσουµε. Εκτελώντας την εντολή, ο µικροεπε-
ξεργαστής θα προσπελάσει τη θέση µνήµης 00DF16, θα προσθέσει τα περιε-
χόµενά της µε αυτά του καταχωρητή A και θα αποθηκεύσει την τιµή 1016
στον καταχωρητή Α (αφού 0Α16+0616 = 1016). Η εντολή (βλέπε σχήµα 2.17)
αποθηκεύεται στην κύρια µνήµη σε δύο bytes, ένα για τον κωδικό λειτουρ-
γίας 9B16 και ένα για τη διεύθυνση DF16 (το 00 εννοείται).
H τρίτη εντολή (ADD_A $2000) χρησιµοποιεί απόλυτη προσπέλαση. Επο-
µένως, το έντελο περιέχει τη θέση µνήµης στην οποία βρίσκονται τα δεδο-
µένα που θέλουµε να προσθέσουµε. Εκτελώντας την εντολή, ο µικροεπε-
ξεργαστής θα προσπελάσει τη θέση µνήµης 200016, θα προσθέσει τα περιε-
χόµενά της µε αυτά του καταχωρητή A και θα αποθηκεύσει την τιµή ΑΑ16
8B
0A
3C
32
32
3000
3001
•v
•v
•
A
3001
+
A
™¯‹Ì· 2.16
Παράδειγµα άµεσης διευ-
θυνσιοδότησης
06
0A
10
069B
00DF
3000
DF3001
•v
•v
•
A
00DF
+
A
™¯‹Ì· 2.17
Παράδειγµα
διευθυνσιοδότησης
µηδενικής σελίδας
στον καταχωρητή Α (αφού 0Α16+Α016 = ΑΑ16). Η εντολή αποθηκεύεται στην
κύρια µνήµη σε τρία bytes, ένα για τον κωδικό λειτουργίας ΒB16 και δύο για
τη διεύθυνση 200016. Παρατηρήστε ότι πρώτα αποθηκεύεται το λιγότερο
σηµαντικό byte της διεύθυνσης (00) και στη συνέχεια αποθηκεύεται το
περισσότερο σηµαντικό byte (20).
6 12 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡
0A
AA
A0
A
2000
+
A
A0
BB
2000
3000
003001
•v
•v
•
•v
•v
•
203002
™¯‹Ì· 2.18
Παράδειγµα απόλυτης
διευθυνσιοδότησης
0A
20
16
A
1002
1000
X
+
+A
A0
AB
1002
3000
023001
•v
•v
•
•v
•v
• ™¯‹Ì· 2.19
Παράδειγµα δεικτοδοτη-
µένης διευθυνσιοδότησης
Η εντολή ADD_A $02,X χρησιµοποιεί δεικτοδοτηµένη προσπέλαση. Στις
εντολές αυτές ο 6800 χρησιµοποιεί ως καταχωρητή δείκτη τον 16–bit κατα-
6 2 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
χωρητή Χ στον οποίο προσθέτει το έντελο για να σχηµατίσει την ενεργή
διεύθυνση. Στην συγκεκριµένη εντολή προστίθεται το περιεχόµενο του κατα-
χωρητή Χ µε το 0216 και προκύπτει η ενεργή διεύθυνση 100216, η οποία
περιέχει την τιµή 1616. Η τιµή αυτή προστίθεται µε την τιµή 0Α16 και το απο-
τέλεσµα (1616+0Α16 = 2016) αποθηκεύεται πίσω στον καταχωρητή Α. Η εντο-
λή αποθηκεύεται στην κύρια µνήµη σε δύο bytes, ένα για τον κωδικό λει-
τουργίας ΑB16 και ένα για την τιµή 0216, η οποία προστίθεται στον καταχω-
ρητή δείκτη, όπως µπορείτε να παρατηρήσετε και στο σχήµα 2.19.
Ποιες µεθόδους διευθυνσιοδότησης συναντάµε συνήθως
στους µικροεπεξεργαστές;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.11
Ποια µέθοδος διευθυνσιοδότησης χρησιµοποιείται
στις εντολές διακλάδωσης;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.12
Ο µικροεπεξεργαστής 6502 έχει µία εντολή αποθήκευσης του περιεχοµέ-
νου του συσσωρευτή Α σε µία θέση µνήµης. Μεταξύ άλλων διαθέτει τους
παρακάτω τρόπους διευθυνσιοδότησης:
Υποθέτουµε ότι το περιεχόµενο της θέσης µνήµης 323216 είναι η τιµή
121216. Σε ποια θέση µνήµης θα αποθηκευτεί το περιεχόµενο του Α εκτε-
λώντας καθεµία από τις παρακάτω εντολές;
(α) STA $1234 (κωδικός λειτουργίας 8D16)
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
2.13
Όνοµα εντολής Κώδικας λειτουργίας Τρόπος προσπέλασης
STA
8D Απόλυτη
διευθυνσιοδότηση
85 ∆ιευθυνσιοδότηση
µηδενικής σελίδας
92 Έµµεση
διευθυνσιοδότηση
2.6 TÈ Ú¤ÂÈ Ó· ÁÓˆÚ›˙Ô˘Ì ÁÈ· ¤Ó· ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹
Τελειώνοντας το κεφάλαιο αυτό θα πρέπει να συνοψίσουµε τα πράγµατα, τα
οποία θα πρέπει να προσέχουµε, καθώς µελετάµε κάποιον µικροεπεξεργαστή.
Ένα από τα πρώτα σηµεία στα οποία θα πρέπει να σταθεί η προσοχή µας
είναι στην αρχιτεκτονική του µικροεπεξεργαστή. Η οργάνωση της µονάδας
ελέγχου και της αριθµητικής και λογικής µονάδας µας δείχνει την φιλοσο-
φία σχεδιασµού του. Το σύνολο των ακροδεκτών του µας προδίδει τις γραµ-
µές διευθύνσεων/δεδοµένων/ελέγχου, ενώ το σύνολο και η µορφή των κατα-
χωρητών µας προϊδεάζει για το είδος και τη µορφή των εντολών του.
Η κατανόηση των γραµµών δεδοµένων/διευθύνσεων/ελέγχου είναι απαραί-
τητη για να µπορέσουµε να καταλάβουµε µε ποιο τρόπο µπορεί να συνδεθεί
ο µικροεπεξεργαστής µε τη µνήµη ή διάφορες µονάδες εισόδου/εξόδου.
Το επόµενο σηµείο είναι ο χρονισµός του µικροεπεξεργαστή, δηλαδή τα εξω-
τερικά εκείνα κυκλώµατα που απαιτεί για τη γεννήτρια χρονισµού του. Επί-
σης, απαιτείται η γνώση του χρονισµού των διαφόρων εντολών και του τρό-
που µε τον οποίο αυτές χωρίζονται σε κύκλους µηχανής και ρολογιού. Τα
διαγράµµατα χρονισµού των διαφόρων εντολών είναι απαραίτητα ώστε να
µπορέσουµε να διασυνδέσουµε το µικροεπεξεργαστή µε περιφερειακές
συσκευές ή µνήµες. Ενδιαφέρον παρουσιάζει επίσης ο τρόπος µε τον οποίο
ο µικροεπεξεργαστής µπορεί να διασυνδεθεί µε αργές µνήµες (δηλαδή µνή-
µες που απαιτούν µεγαλύτερο χρόνο για να ανταποκριθούν σε αυτό που ζητά-
ει ο µικροεπεξεργαστής – εγγραφή ή ανάγνωση – από το χρόνο που καθορί-
ζει η περίοδος χρονισµού του µικροεπεξεργαστή).
Σε ένα µικροϋπολογιστικό σύστηµα, θα πρέπει οι εξωτερικές συσκευές να
έχουν κάποιο τρόπο να ζητήσουν την «προσοχή» του µικροεπεξεργαστή. Ο
τρόπος αυτός είναι τα σήµατα διακοπής που διαθέτουν οι µικροεπεξεργαστές.
Οι εξωτερικές συσκευές, χρησιµοποιώντας τα σήµατα αυτά, διακόπτουν το
πρόγραµµα που εκτελείται εκείνη την στιγµή. Ο µικροεπεξεργαστής τότε
εκτελεί τη ρουτίνα εξυπηρέτησης της διακοπής (ένα µικρό πρόγραµµα που
βρίσκεται αποθηκευµένο σε κάποιες θέσεις στη µνήµη) µε την οποία εξυ-
6 32 . 6 T π ¶ ƒ ∂ ¶ ∂ π ¡ ∞ ° ¡ ø ƒ π ∑ √ À ª ∂ ° π ∞ ∂ ¡ ∞ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏
(β) STA $34 (κωδικός λειτουργίας 8516)
(γ) STA $3232 (κωδικός λειτουργίας 9216)
6 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
πηρετεί την εξωτερική συσκευή και στη συνέχεια συνεχίζει µε την εκτέλε-
ση του προγράµµατος. Η γνώση των σηµάτων διακοπής ενός µικροεπεξερ-
γαστή και του τρόπου µε τον οποίο αυτός εξυπηρετεί τις διακοπές είναι απα-
ραίτητα στο σχεδιασµό ενός µικροϋπολογιστικού συστήµατος.
Επίσης, σε πολλά συστήµατα θα βρείτε λειτουργίες απευθείας προσπέλασης
της µνήµης (Direct Memory Access – DMA). Ο κάθε µικροεπεξεργαστής
παρέχει τρόπους (µε κάποιους ακροδέκτες ή κάποιες εντολές) µε τους οποί-
ους απελευθερώνει τους διαύλους του συστήµατος ώστε να µπορεί να τους
χρησιµοποιήσει µία εξωτερική συσκευή για να µεταφέρει δεδοµένα µεταξύ
αυτής και της µνήµης. Οι µεταφορές αυτές γίνονται χωρίς τη βοήθεια του
µικροεπεξεργαστή και γι’ αυτό η λειτουργία αυτή ονοµάζεται λειτουργία
απευθείας προσπέλασης της µνήµης. Μελετώντας διάφορους µικροεπεξερ-
γαστές, θα βρείτε πολλούς και διαφορετικούς τρόπους µε τους οποίους µπο-
ρείτε να σχεδιάσετε µία τέτοια λειτουργία.
Απαραίτητη για τη συγγραφή προγραµµάτων για ένα συγκεκριµένο επεξερ-
γαστή είναι επίσης η γνώση και η κατανόηση του συνόλου εντολών που αυτός
διαθέτει, καθώς και των διαφόρων τρόπων διευθυνσιοδότησης που διαθέτει
η κάθε εντολή. Η γνώση των παραπάνω βοηθάει τον προγραµµατιστή ώστε
να παράγει προγράµµατα µικρά σε µέγεθος και µε µεγάλη ταχύτητα εκτέλε-
σης, καθώς εκµεταλλεύεται τα ιδιαίτερα χαρακτηριστικά της κάθε εντολής.
Τέλος απαιτείται η γνώση του ελάχιστου αριθµού των κυκλωµάτων που απαι-
τούνται ώστε ένας µικροεπεξεργαστής να αποτελέσει ένα µικροϋπολογιστι-
κό σύστηµα, καθώς και γνώση των διαφόρων συσκευών υποστήριξης, οι
οποίες τον συνοδεύουν. Οι συσκευές υποστήριξης είναι όλα εκείνα τα ολο-
κληρωµένα κυκλώµατα, τα οποία µπορούν να διασυνδεθούν χωρίς ιδιαίτε-
ρη δυσκολία σε κάποιο επεξεργαστή και καλύπτουν πολλές περιπτώσεις
εφαρµογών, όπως κυκλώµατα µνήµης RAM, ROM, PROM, κυκλώµατα δια-
χείρισης διακοπών, κυκλώµατα απεικόνισης δεδοµένων σε κάποιο display
κ.ο.κ. Προφανώς, ο κάθε µικροεπεξεργαστής διαθέτει και τη δική του οικο-
γένεια συσκευών υποστήριξης και σπανίως ολοκληρωµένα κυκλώµατα µιας
οικογένειας µπορούν να χρησιµοποιηθούν µε άλλο µικροεπεξεργαστή. Το
πλήθος των ολοκληρωµένων κυκλωµάτων σε µία οικογένεια έχει αποδειχτεί
πολλές φορές στο παρελθόν καθοριστικός παράγοντας για την εµπορική ή
όχι επιτυχία του µικροεπεξεργαστή, καθώς η ύπαρξη λίγων συσκευών υπο-
στήριξης για έναν πολύ καλό µικροεπεξεργαστή µετριάζει τη χρήση του, ενώ
ανάποδα η ύπαρξη πολλών συσκευών υποστήριξης µπορεί να δώσει µεγάλη
ώθηση σε ένα µέτριο µικροεπεξεργαστή, καθώς αυτός µπορεί να χρησιµο-
ποιηθεί σε πολλές εφαρµογές.
™‡ÓÔ„Ë
Ο µικροεπεξεργαστής αποτελεί την καρδιά ενός µικροϋπολογιστικού συστή-
µατος. Με τη βοήθεια του προγράµµατος, που βρίσκεται στην κύρια µνήµη,
ελέγχει τα διάφορα τµήµατα του συστήµατος και συντονίζει τις λειτουργίες
τους.
Ο µικροεπεξεργαστής αποτελείται από τρία τµήµατα:
(α) Tην αριθµητική και λογική µονάδα, που είναι υπεύθυνη για τις αριθµητι-
κές και λογικές πράξεις. Τα κυκλώµατα, που συναντάµε στη µονάδα αυτή,
είναι αθροιστές, συγκριτές, ολισθητές, µονάδες και µονάδες λογικής επε-
ξεργασίας, µε βάση τα οποία µπορεί να γίνει οποιαδήποτε πράξη, καθώς
ακόµα και οι πιο σύνθετες πράξεις (πολ/σµοί, διαιρέσεις, κ.ά.) αναλύο-
νται σε συνδυασµό των βασικών πράξεων.
(β) Tη µονάδα ελέγχου, η οποία είναι υπεύθυνη για τη σωστή λειτουργία του
µικροεπεξεργαστή και παρέχει λειτουργίες χρονισµού, αποκωδικοποίη-
σης των εντολών, καθώς αυτές µεταφέρονται σε αυτόν από τη µνήµη, και
ενεργοποίησης των κατάλληλων τµηµάτων του µικροεπεξεργαστή σε κάθε
χρονική στιγµή.
(γ) Tους διάφορους καταχωρητές, οι οποίοι χρησιµοποιούνται είτε για τις λει-
τουργίες της αριθµητικής και λογικής µονάδας (συσσωρευτής, καταχω-
ρητές γενικού σκοπού, καταχωρητής κατάστασης επεξεργαστή) είτε χρη-
σιµοποιούνται ως ειδικοί καταχωρητές και επιτελούν συγκεκριµένη λει-
τουργία, π.χ. ο καταχωρητής εντολών περιέχει τον κώδικα λειτουργίας της
εντολής καθώς αυτή αποκωδικοποιείται, ο µετρητής προγράµµατος περιέ-
χει τη διεύθυνση της κύριας µνήµης, όπου υπάρχει η επόµενη προς εκτέ-
λεση εντολή κ.ο.κ.
Κατά την εκτέλεση µίας εντολής, ο µετρητής προγράµµατος µεταφέρει τη διεύ-
θυνση της κύριας µνήµης, στην οποία είναι αποθηκευµένη η εντολή στις γραµ-
µές διευθύνσεων. Με τη βοήθεια των σηµάτων ελέγχου, η εντολή µεταφέρε-
ται στο µικροεπεξεργαστή µέσω των γραµµών δεδοµένων και αποθηκεύεται
στον καταχωρητή εντολής, όπου και αποκωδικοποιείται. Με την αποκωδι-
κοποίηση η µονάδα ελέγχου ενεργοποιεί τα κατάλληλα κυκλώµατα για την
εκτέλεση της εντολής. Εάν η εντολή απαιτεί την ανάγνωση ή εγγραφή δεδο-
6 5™ Y N O æ H
6 6 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
µένων στη µνήµη, τότε αυτό γίνεται µε τη βοήθεια των τριών διαύλων (διευ-
θύνσεων, δεδοµένων και ελέγχου).
Όλοι οι µικροεπεξεργαστές λειτουργούν µε βάση κάποιους παλµούς, οι οποίοι
προκύπτουν από το ρολόι του συστήµατος. H χρονική διάρκεια ενός παλµού
αποτελεί τον κύκλο ρολογιού. Ο χρόνος εκτέλεσης µιας εντολής ονοµάζεται
κύκλος εντολής, ενώ ο χρόνος εκτέλεσης µιας βασικής λειτουργίας (ανάγνωση
ή εγγραφή στην µνήµη, προσκόµιση εντολής) ονοµάζεται κύκλος µηχανής.
Οι διάφορες εντολές, τις οποίες µπορεί να εκτελέσει ένας µικροεπεξεργαστής,
αποτελούν το σύνολο εντολών του. Οι εντολές χωρίζονται σε οµάδες ανάλο-
γα µε τη λειτουργία που επιτελούν. Έτσι µπορούµε να διακρίνουµε:
(α) αριθµητικές εντολές, όπως εντολές πρόσθεσης ή αύξησης,
(β)λογικές εντολές, όπως εντολές λογικού ΚΑΙ/Ή/ΟΧΙ ή εντολές ολίσθησης,
(γ) εντολές µετακίνησης δεδοµένων, όπως εντολές µεταφοράς δεδοµένων από
τη µνήµη σε καταχωρητές ή και το ανάποδο,
(δ) εντολές διακλάδωσης, οι οποίες µπορούν να αλλάξουν τη σειριακή εκτέλε-
ση των εντολών είτε πάντα (εντολές διακλάδωσης χωρίς συνθήκη) είτε µε
βάση το αποτέλεσµα µιας συνθήκης (εντολές διακλάδωσης υπό συνθήκη),
(ε) εντολές κλήσης και επιστροφής από υπορουτίνα, όπως οι εντολές CALL
και RETURN, και
(στ) γενικές εντολές, όπως οι εντολές διαχείρισης σωρού και η εντολή NOP.
Η κάθε εντολή χρησιµοποιεί διάφορους τρόπους διευθυνσιοδότησης για να
προσδιορίσει εάν τα δεδοµένα, που χρειάζεται, ακολουθούν την εντολή ή βρί-
σκονται σε κάποιο καταχωρητή ή θέση µνήµης. Έτσι, σε κάθε µικροεπεξερ-
γαστή, ανάλογα µε τη φιλοσοφία σχεδιασµού του, συναντάµε διάφoρους τρό-
πους διευθυνσιοδότησης. Οι πιο συνηθισµένοι είναι (α) η υπονοούµενη διευ-
θυνσιοδότηση, (β) η άµεση διευθυνσιοδότηση, (γ) η απευθείας ή απόλυτη
διευθυνσιοδότηση, (δ) η σχετική διευθυνσιοδότηση, (ε) η έµµεση διευθυν-
σιοδότηση, (στ) η δεικτοδοτηµένη διευθυνσιοδότηση και (ζ) η διευθυνσιοδό-
τηση µηδενικής σελίδας.
Για να γνωρίσουµε κάποιο µικροεπεξεργαστή, θα πρέπει να µελετήσουµε την
αρχιτεκτονική του, τους ακροδέκτες, που διαθέτει, και τη λειτουργία του καθε-
νός από αυτούς, το χρονισµό των διαφόρων σηµάτων ελέγχου, τον τρόπο µε
τον οποίο χωρίζονται οι εντολές σε κύκλους ρολογιού/µηχανής/εντολής, το
σύνολο των εντολών και τους διάφορους τρόπους προσπέλασης, τα ελάχιστα
κυκλώµατα, που απαιτούνται, ώστε να είναι λειτουργικός και φυσικά τις διά-
φορες συσκευές υποστήριξης, µε τις οποίες µπορεί να διασυνδεθεί.
BÈ‚ÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε την ανάγνωση του δεύτερου κεφαλαίου, καλό είναι
να διαθέσετε κάποιον επιπλέον χρόνο για να µελετήσετε τα παρακάτω κεί-
µενα:
1. Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 4, Ενότητα 4.4. Η ενότητα αυτή ανα-
φέρει τις κατηγορίες εντολών ενός µικροεπεξεργαστή και διαθέτει πολ-
λές ερωτήσεις και απαντήσεις, που θα σας βοηθήσουν να εξασκηθείτε.
2. Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 6. Ακόµα περισσότερο θα σας βοη-
θήσει να εξασκηθείτε το κεφάλαιο 6. Το κεφάλαιο αυτό, οργανωµένο σε
µικρές ενότητες, αναλύει την κάθε κατηγορία εντολών ξεχωριστά καθώς
και τους τρόπους διευθυνσιοδότησής τους και διαθέτει σχηµατικά παρα-
δείγµατα και πολλές ερωτήσεις µαζί µε τις απαντήσεις τους.
Εάν πάλι δεν µπορείτε να διαθέσετε πολύ χρόνο, µην ανησυχείτε. Στα επό-
µενα κεφάλαια θα αναλύσουµε παραδείγµατα γνωστών µικροεπεξεργαστών
και θα κατανοήσετε καλύτερα τις βασικές αρχές τους (άλλωστε ο καλύτερος
τρόπος εκµάθησης της θεωρίας είναι µέσα από παραδείγµατα).
6 7B I B § I O ° PA º I A
O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8080/8085
™ÎÔfi˜
Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε έναν από τους πρώτους, αλλά
πολύ δηµοφιλή µέχρι πριν από µερικά χρόνια µικροεπεξεργαστή, και συγκε-
κριµένα τον 8080/8085 της Intel.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• εξηγήσετε τη λειτουργία του καθενός από τους σαράντα ακροδέκτες του
µικροεπεξεργαστή 8080.
• ορίσετε το πλήθος των γραµµών των τριών διαύλων επικοινωνίας, που
διαθέτει.
• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή και να
αναφέρετε τη λειτουργία του καθενός από αυτούς.
• χωρίσετε µία εντολή του 8080 σε κύκλους µηχανής και ρολογιού.
• αναφέρετε τις λειτουργίες, που επιτελούνται σε κάθε κύκλο ρολογιού του
πρώτου κύκλου µηχανής µιας εντολής, καθώς και το χρονισµό των σηµά-
των ελέγχου.
• αναφέρετε τον τρόπο, µε τον οποίο ο µικροεπεξεργαστής ενηµερώνει τις υπό-
λοιπες συσκευές του συστήµατος για τον κύκλο µηχανής, που θα ακολουθήσει.
• διακρίνετε τρεις ειδικές καταστάσεις λειτουργίας του 8080.
• περιγράψετε τον τρόπο, µε τον οποίο ικανοποιούνται οι αιτήσεις διακοπής
της λειτουργίας του µικροεπεξεργαστή.
• ορίσετε τους τρόπους διευθυνσιοδότησης, που υπάρχουν στο σύνολο των
εντολών του.
• περιγράψετε τις δύο συσκευές υποστήριξης, που συµπληρώνουν τον 8080.
• καταγράψετε τις διαφορές µεταξύ του 8080 και του 8085.
ŒÓÓÔȘ ÎÏÂȉȿ
3∫ ∂ º ∞ § ∞ π √
• Γεννήτρια Ρολογιού
• ∆ιαχείριση ∆ιακοπών
• Ελεγκτής Συστήµατος
• Intel 8080/8085
• Καταστάσεις WAIT/HOLD/HALT
• Κύκλος προσκόµισης εντολής
7 0 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
• Πολύπλεξη διαύλου διευθύνσεων /
δεδοµένων
• Σήµατα Κατάστασης
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Μέχρι τώρα µιλούσαµε γενικά για τους µικροεπεξεργαστές και τις αρχές λει-
τουργίας τους. Στο κεφάλαιο αυτό εξετάζουµε πρώτα το µικροεπεξεργαστή
Intel 8080 και µετά τον Intel 8085. Οι δύο αυτοί επεξεργαστές ανήκουν στην
ίδια οικογένεια, έχουν παρόµοια φιλοσοφία σχεδιασµού και ελάχιστες δια-
φορές. Στο µεγαλύτερο µέρος του κεφαλαίου αναφερόµαστε στον 8080, ενώ
στο τέλος θα αναφέρουµε τις διαφορές του µε τον 8085. Οι έννοιες, οι οποί-
ες χρησιµοποιούνται, έχουν αναλυθεί στα προηγούµενα δύο κεφάλαια και γι’
αυτό δεν θα πρέπει να έχετε πρόβληµα στην κατανόησή τους. Προσοχή θα
πρέπει να δώσετε στις ενότητες 3.3, 3.4 και 3.6, που αναφέρουν την ακο-
λουθία καταστάσεων των διαφόρων σηµάτων ελέγχου κατά τη διάρκεια ενός
κύκλου µηχανής, τις καταστάσεις αναµονής και τον τρόπο αντιµετώπισης των
αιτήσεων διακοπής, καθώς αναφέρονται σε έννοιες, τις οποίες δεν είχαµε τη
δυνατότητα να εξετάσουµε µε λεπτοµέρεια έως τώρα. Η ενότητα 3.1 είναι
σχετικά µεγάλη σε µέγεθος. Έχει όµως χωριστεί σε τρεις ανεξάρτητες υποε-
νότητες, ώστε να µπορείτε να τη µελετήσετε τµηµατικά.
3.1 H AÚ¯ÈÙÂÎÙÔÓÈ΋ ÙÔ˘ 8080
Ο 8080 είναι από τους πιο διαδεδοµένους µικροεπεξεργαστές των 8 δυαδι-
κών ψηφίων. Πρωτοεµφανίστηκε από την Intel και αποτελεί τον άµεσο από-
γονο του 8008, ο οποίος είχε κατασκευαστεί για να διευκολύνει την επεξερ-
γασία δεδοµένων σε τερµατικές συσκευές.
Ο 8080 σχεδιάστηκε σε µια εποχή, όπου η τεχνολογία των µικροεπεξεργα-
στών έκανε τα πρώτα της βήµατα. Το γεγονός αυτό δικαιολογεί πολλά πρω-
τόγονα χαρακτηριστικά του, όπως τα τρία επίπεδα τάσης τροφοδοσίας και
το γεγονός ότι τα κυκλώµατα χρονισµού δεν περιλαµβάνονται στο ίδιο ολο-
κληρωµένο κύκλωµα. Η µεγάλη επιτυχία, που γνώρισε, οφείλεται κατά πολύ
σε θέµατα χαµηλού κόστους και διαθεσιµότητας πολλών συσκευών υπο-
στήριξής του.
Μια βελτιωµένη έκδοση του 8080 είναι ο 8085. Σε πολλές περιπτώσεις οι
συσκευές υποστήριξης του 8080 είναι δυνατό να χρησιµοποιηθούν µε την
CPU του 8085, αλλά είναι απίθανο να χρησιµοποιηθούν οι συσκευές υπο-
στήριξης του 8085 µε τον 8080.
Ο 8080 έχει περισσότερες συσκευές υποστήριξης από κάθε άλλο µικροεπε-
ξεργαστή των 8 δυαδικών ψηφίων. Μερικές από αυτές τις συσκευές υπο-
στήριξης είναι ειδικές για τον 8080, αλλά στην πλειοψηφία τους µπορούν να
χρησιµοποιηθούν µε οποιοδήποτε µικροεπεξεργαστή.
3.1.1 °ÂÓÈο ¯·Ú·ÎÙËÚÈÛÙÈο
Ο 8080 κατασκευάστηκε αρχικά από την Intel, αλλά αργότερα παράχθηκε και
από άλλους κατασκευαστές. Τα κυριότερα χαρακτηριστικά του είναι τα εξής:
• Aπαιτεί τρία επίπεδα τάσης τροφοδοσίας (–5V, +5V, +12V).
• Tα κυκλώµατα χρονισµού και διασύνδεσης των διαύλων του µε µνήµες
και άλλες συσκευές εισόδου/εξόδου δεν εµπεριέχονται στο ολοκληρωµέ-
νο κύκλωµά του.
• Xρησιµοποιεί TTL–συµβατά επίπεδα δυναµικού.
• ∆ιαθέτει απλό τρόπο χειρισµού των σηµάτων διακοπής.
• ∆ιαθέτει 72 εντολές του ενός, δύο ή τριών bytes.
• O χρόνος εκτέλεσης των εντολών, µε σήµα χρονισµού περιόδου 500 ns
(δηλαδή συχνότητας 2 MHz), ποικίλλει από 2 µsec µέχρι 9 µsec.
7 13 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 0
7 2 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Οι βασικές λειτουργίες του µικροεπεξεργαστή φαίνονται στο σχήµα 3.1. Ο
8080 αποτελείται από µια αριθµητική και λογική µονάδα, µια µονάδα ελέγ-
χου και αρκετούς καταχωρητές. Η επικοινωνία του µε τις υπόλοιπες µονά-
δες του συστήµατος γίνεται µέσα από τους τρεις δίαυλους επικοινωνίας.
Aριθµητική καιv
λογική µονάδαΣυσσωρευτής
Kαταχωρητές
Kαταχωρητήςv
σωρού
Mετρητήςv
προγράµµατος
Kαταχωρητήςv
εντολών
Λογικήv
διασύνδεσης µεv
τους διαύλους
Λογικήv
ρολογιού
Λογικήv
εξυπηρέτησηςv
διακοπών
Mονάδα ελέγχου
∆ίαυλοι του συστήµατος
8080
8224
8228
™¯‹Ì· 3.1
Το λειτουργικό διάγραµµα
του 8080Ο δίαυλος διευθύνσεων (Α15 – Α0) αποτελείται από 16 γραµµές και χρησι-
µεύει για τη διακίνηση διευθύνσεων µεταξύ του µικροεπεξεργαστή και των
µονάδων µνήµης και εισόδου/εξόδου. Οι µεγέθους 16 bits διευθύνσεις µνή-
µης επιτρέπουν στον 8080 την απευθείας διευθυνσιοδότηση µνήµης χωρη-
τικότητας 64 KB.
Η είσοδος/έξοδος γίνεται µέσω ειδικών εντολών. Οι εντολές αυτές περιέχουν
µια 8–bit διεύθυνση, που ονοµάζεται διεύθυνση συσκευής ή αριθµός συσκευ-
ής (device number ή device address) και τοποθετείται ταυτόχρονα τόσο στις
8 πιο σηµαντικές (Α15 – Α8) όσο και στις 8 λιγότερο σηµαντικές (Α7 – Α0)
γραµµές του διαύλου διευθύνσεων. Με τον αριθµό συσκευής ο χρήστης µπο-
ρεί να επιλέξει µέχρι 256 πόρτες εισόδου ή 256 πόρτες εξόδου.
Όλα τα δεδοµένα αποθηκεύονται στη µνήµη σαν αριθµοί των 8 δυαδικών
ψηφίων και διατηρούν τη µορφή τους αυτή σε όλες τις µετακινήσεις τους
πάνω στο δίαυλο δεδοµένων.
Ο 8080 εκπέµπει 6 διαφορετικά σήµατα χρονισµού και ελέγχου (τα SYNC,
DBIN, WAIT, WR~, HLDA, INTE), ενώ δέχεται σαν είσοδο τέσσερα σήµα-
τα (τα READY, HOLD, INT, RESET). Για τη δηµιουργία όλων των απα-
ραίτητων σηµάτων ελέγχου, που απαιτεί ένα πλήρες σύστηµα, χρησιµοποι-
ούνται συνήθως επιπρόσθετα εξωτερικά κυκλώµατα, που συνδυάζουν τα 6
αυτά σήµατα ελέγχου µε τα σήµατα κατάστασης της εκτελούµενης εντολής.
Όλα αυτά τα σήµατα ελέγχου αποτελούν το δίαυλο ελέγχου.
Ο δίαυλος δεδοµένων (D7 – D0), πάνω στον οποίο κινούνται τα δεδοµένα, είναι
διπλής κατεύθυνσης και αποτελείται από 8 γραµµές. Ο δίαυλος αυτός λει-
τουργεί µε τέτοιο τρόπο (πολυπλεξία) ώστε κάποιες χρονικές στιγµές να µετα-
φέρει αντί δεδοµένων σήµατα κατάστασης της εκτελούµενης εντολής (status).
Η αριθµητική και λογική µονάδα εκτελεί όλες τις αριθµητικές, λογικές και
πράξεις ολίσθησης. Το αποτέλεσµα της κάθε πράξης µεταβιβάζεται είτε στον
εξωτερικό δίαυλο δεδοµένων είτε στο συσσωρευτή. Επίσης τροφοδοτεί τον
καταχωρητή κατάστασης επεξεργασίας ανάλογα µε το αποτέλεσµα των πρά-
ξεων ή διαβάζει τα περιεχόµενα του καταχωρητή κατάστασης επεξεργαστή
και εκτελεί ή δεν εκτελεί µια λογική πράξη ανάλογα µε την τιµή της αντί-
στοιχης σηµαίας κατάστασης.
Οι αριθµητικές δυνατότητες της αριθµητικής και λογικής µονάδας περιλαµ-
βάνουν δυαδικές πράξεις των 8 bit (χρησιµοποιεί το συµπλήρωµα ως προς
2 για τους αρνητικούς αριθµούς), δεκαδικές πράξεις (πράξεις αριθµών σε
παράσταση BCD), καθώς και πράξεις διπλής ακρίβειας.
3.1.2 OÈ Î·Ù·¯ˆÚËÙ¤˜ ÙÔ˘ 8080
Η υπολογιστική δύναµη ενός µικροεπεξεργαστή εξαρτάται άµεσα από τον
αριθµό και από την οργάνωση των καταχωρητών, που διαθέτει. Ο 8080 περιέ-
χει επτά 8–bit καταχωρητές, ένα 16–bit µετρητή προγράµµατος, ένα 16–bit
καταχωρητή δείκτη σωρού και έναν καταχωρητή κατάστασης επεξεργαστή.
7 33 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 0
7 4 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Ο µετρητής προγράµµατος (PC) περιέχει την 16–bit διεύθυνση µνήµης της
επόµενης εντολής του προγράµµατος και αυξάνεται αυτόµατα µε κάθε προ-
σκόµιση µιας εντολής από τη µνήµη.
Ο καταχωρητής δείκτη σωρού χρησιµοποιείται για να διευθυνσιοδοτεί τη
µνήµη σωρού, δηλαδή την περιοχή της µνήµης, η οποία χρησιµοποιείται για
προσωρινή αποθήκευση ενδιάµεσων αποτελεσµάτων.
Οι 6 καταχωρητές γενικού σκοπού µπορούν να χρησιµοποιηθούν είτε σαν
έξι καταχωρητές των 8–bit (B, C, D, E, H, L) είτε σαν τρεις καταχωρητές
των 16–bit δηλαδή (BC, DE, HL).
O καταχωρητής κατάστασης επεξεργαστή περιέχει τους ακόλουθους δείκτες
ή αλλιώς σηµαίες κατάστασης (status flags): µηδενικού αποτελέσµατος (Zero
– Z), πρόσηµου (Sign – S), ισοτιµίας (Parity – P), βοηθητικού κρατούµενου
(Auxiliary Carry – AC) και κρατούµενου (Carry – C).
Η έννοια των σηµαιών κατάστασης είναι ήδη γνωστή. Εάν π.χ. εκτελέσου-
µε µια εντολή πρόσθεσης και το αποτέλεσµα είναι αρνητικός αριθµός, τότε
η σηµαία κατάστασης πρόσηµου θα πάρει την τιµή 1. Σε αντίθετη περίπτω-
ση θα πάρει την τιµή 0.
Η σηµαία ισοτιµίας παίρνει την τιµή 1, όταν το αποτέλεσµα της τελευταίας
πράξης έχει άρτια ισοτιµία, ενώ παίρνει την τιµή 0, όταν το αποτέλεσµα έχει
περιττή ισοτιµία.
S Z AC P C
b7
b6
b5
b3
b1
b4
b2
b0
PSW
A
C
E
L
B
D
H
SP
PC
Kαταχωρητής κατάστασης επεξεργαστή
Συσσωρευτής
Kαταχωρητές γενικού σκοπού
Kαταχωρητές γενικού σκοπού
Kαταχωρητές γενικού σκοπού
Kαταχωρητής δείκτη σωρού
Mετρητής προγράµµατος
Kαταχωρητής κατάστασης επεξεργαστή
™¯‹Ì· 3.2
Οι καταχωρητές του 8080
Το βοηθητικό κρατούµενο χρησιµοποιείται στην εκτέλεση δεκαδικών αριθ-
µητικών πράξεων, που βρίσκονται σε κωδικοποίηση BCD. Επειδή σε ένα
byte αποθηκεύονται δύο BCD αριθµοί (αφού ο κάθε αριθµός απαιτεί 4 δυα-
δικά ψηφία), απαιτείται η διαφύλαξη του κρατούµενου, που πιθανόν δηµι-
ουργείται από τα δεξιότερα 4 bits του αποτελέσµατος. Η σηµαία AC ισού-
ται µε την τιµή του κρατούµενου αυτού.
3.1.3 AÎÚÔ‰¤ÎÙ˜ Î·È Û‹Ì·Ù·
7 53 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 0
1v
2v
3v
4v
5v
6v
7v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17v
18v
19v
20
A11v
A14v
A13v
A12v
A15v
A9v
A8v
A7v
A6v
A5v
A4v
A3v
+12V(VDD)v
A2v
A1v
A0v
WAITv
READYv
Φ1v
HLDA
40v
39v
38v
37v
36v
35v
34v
33v
32v
31v
30v
29v
28v
27v
26v
25v
24v
23v
22v
21
A10v
(VSS)GNDv
D4v
D5v
D6v
D7v
D3v
D2v
D1v
D0v
(VBB)–5Vv
RESETv
HOLDv
INTv
Φ2v
INTEv
DBINv
WR~v
SYNCv
(VCC)+5V
8080
™¯‹Ì· 3.3
Τα σήµατα του 8080
Ακροδέκτης Περιγραφή Τύπος
Α0–Α15 Γραµµές διευθύνσεων Έξοδος, τριών καταστάσεων
D0–D7 Γραµµές δεδοµένων ∆ιπλής κατεύθυνσης, τριών καταστάσεων
SYNC ∆είκτης πρώτου κύκλου ρολογιού Έξοδος
DBIN Σήµα εισόδου δεδοµένων Έξοδος
READY Είσοδος δεδοµένων έτοιµη Είσοδος
WAIT Κατάσταση αναµονής Έξοδος
WR~ Σήµα εξόδου δεδοµένων Έξοδος
HOLD Εισαγωγή σε κατάσταση HOLD Είσοδος
7 6 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
HLDA Αναγνώριση κατάστασης HOLD Έξοδος
INT Σήµα διακοπής Είσοδος
INTE Ενεργοποίηση διακοπής Έξοδος
RESET Σήµα αρχικοποίησης Είσοδος
Φ1, Φ2 Σήµατα χρονισµού Είσοδος
VSS, VDD, VCC, VBB Σήµατα τροφοδοσίας και γείωσης
Το ολοκληρωµένο κύκλωµα του 8080 αποτελείται από 40 ακροδέκτες όπως
φαίνεται στο σχήµα 3.3. Oι ακροδέκτες του 8080 λειτουργούν ως εξής
• Α0–Α15: Aποτελούν το δίαυλο διευθύνσεων. Είναι τριών καταστάσεων,
δηλαδή οι γραµµές του µπορούν να µεταβούν σε λογική τιµή “1”, σε λογι-
κή τιµή “0” και σε κατάσταση υψηλής εµπέδησης. Η κατάσταση υψηλής
εµπέδησης χρησιµοποιείται για να απελευθερώνει ο µικροεπεξεργαστής
το δίαυλο διευθύνσεων, ώστε να µπορούν οι υπόλοιπες συσκευές του
συστήµατος (µνήµη, συσκευές εισόδου/εξόδου) να το χρησιµοποιήσουν
για µεταφορά δεδοµένων.
• D0–D7: Aποτελούν το δίαυλο δεδοµένων, µε τη βοήθεια του οποίου ο επε-
ξεργαστής αφενός ενηµερώνει τις περιφερειακές συσκευές για το είδος
του κύκλου µηχανής, που θα ακολουθήσει (δίνοντας τα σήµατα κατάστα-
σής του) και αφετέρου µετακινεί δεδοµένα προς και από τις περιφερεια-
κές συσκευές. Όπως ο δίαυλος διευθύνσεων, έτσι και ο δίαυλος δεδοµέ-
νων είναι τριών καταστάσεων.
• GND, +5V, –5V, +12V: Oι ακροδέκτες τροφοδοσίας του ολοκληρωµένου
κυκλώµατος.
• Φ1, Φ2: Eίναι οι είσοδοι χρονισµού του ολοκληρωµένου κυκλώµατος. Ο
χρονισµός αυτός συνήθως επιτυγχάνεται µε τη χρήση της 8224 γεννήτριας
χρονισµού.
• READY, WAIT: Όταν η µνήµη λάβει ένα σήµα ανάγνωσης/εγγραφής και
δεν µπορεί να ανταποκριθεί εντός µιας περιόδου ρολογιού, θέτει τη γραµ-
µή READY στο λογική κατάσταση “0” και έτσι ειδοποιεί τον 8080 ότι
πρέπει να αδρανήσει προσωρινά. Αυτός αντιδρά θέτοντας το WAIT στη
λογική κατάσταση “1”. Όταν η µνήµη ανταποκριθεί, τότε ο 8080 απελευ-
θερώνει τη γραµµή WAIT και ο κύκλος της εντολής προχωρεί.
• HOLD, HLDA: Η λειτουργία του 8080 µπορεί να σταµατήσει µεταξύ
του τέλους εκτέλεσης µιας εντολής και την αρχή εκτέλεσης της επόµε-
νης εντολής, εάν θέσουµε τη γραµµή HOLD σε λογική κατάσταση “1”.
Ο 8080 τότε οδηγεί τους διαύλους δεδοµένων και διευθύνσεων σε κατά-
σταση υψηλής εµπέδησης και θέτει σε λογική κατάσταση “1” το σήµα
HLDA. Με τον τρόπο αυτό µπορούν εξωτερικές συσκευές να πάρουν τον
έλεγχο των διαύλων και να υλοποιήσουν λειτουργίες µεταφοράς δεδο-
µένων (λειτουργίες DMA).
• RESET: Είναι ένα σήµα που για να εκτελεστεί θα πρέπει να παραµείνει
στη λογική κατάσταση “1” για τουλάχιστον τρεις περιόδους ρολογιού.
Κατά τη διάρκεια αυτών των περιόδων µηδενίζονται όλοι οι καταχωρητές
(εκτός του καταχωρητή κατάστασης επεξεργαστή), γεγονός που οδηγεί το
µικροεπεξεργαστή να ξεκινήσει µε την εκτέλεση της εντολής που βρί-
σκεται στη θέση 000016 της µνήµης.
• DBIN, WR~: Kαθορίζουν την κατάσταση του διαύλου δεδοµένων. Όταν
το DBIN είναι στη λογική κατάσταση “1”, θα πρέπει να τοποθετηθούν
δεδοµένα στο δίαυλο δεδοµένων από κάποια µνήµη ή συσκευή εισό-
δου/εξόδου. Όταν το WR~ είναι στη λογική κατάσταση “0”, τότε ο επε-
ξεργαστής εξάγει δεδοµένα στο δίαυλο δεδοµένων.
• INT, INTE: Ο επεξεργαστής 8080 έχει δύο γραµµές ελέγχου διακοπής,
τις INT και INTE. Μια εξωτερική συσκευή απαιτεί διακοπή εισάγοντας
το INT στη λογική κατάσταση “1”. Ο 8080 χρησιµοποιεί το INTE για να
δείξει εάν υπάρχει δυνατότητα εξυπηρέτησης διακοπής ή όχι.
• SYNC: Είναι ενεργό για µια περίοδο ρολογιού και σηµατοδοτεί το τέλος
του πρώτου (Τ1) και την αρχή του δεύτερου (Τ2) κύκλου ρολογιού.
7 73 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 0
7 8 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
3.2 K‡ÎÏÔÈ Ì˯·Ó‹˜ Î·È Û‹Ì·Ù· ηٿÛÙ·Û˘
Κάθε εντολή του 8080 εκτελείται ως µια ακολουθία από κύκλους µηχανής,
οι οποίοι διαιρούνται σε κύκλους ρολογιού.
Κάθε κύκλος εντολής αποτελείται από έναν έως πέντε κύκλους µηχανής, που
συµβολίζονται µε MC1, MC2, MC3, MC4, MC5. Για κάθε byte, που φέρνει ο
επεξεργαστής από τη µνήµη, χρειάζεται έναν κύκλο µηχανής. Ο αριθµός των
κύκλων µηχανής εξαρτάται από το είδος της εντολής. Μερικές εντολές χρει-
άζονται µόνο έναν κύκλο µηχανής για να φέρουν όλη την εντολή στο µικρο-
επεξεργαστή. Άλλες εντολές, στις οποίες γράφονται ή διαβάζονται δεδοµέ-
να από τη µνήµη ή τις εξωτερικές συσκευές, χρειάζονται περισσότερους
κύκλους µηχανής.
Ο 8080 οδηγείται από δύο µη επικαλυπτόµενα σήµατα χρονισµού, Φ1 και Φ2,
τα οποία παρέχουν στο µικροεπεξεργαστή τον απαραίτητο χρονισµό.
Τα σήµατα χρονισµού χρησιµοποιούνται για να παράγουν έναν κύκλο µηχα-
νής, ο οποίος αποτελείται από 5 κύκλους ρολογιού, που συµβολίζονται Τ1,
Τ2, Τ3, Τ4, Τ5, όπως φαίνεται στο σχήµα 3.4. Το σήµα SYNC καθορίζει την
πρώτη περίοδο ρολογιού κάθε κύκλου µηχανής, στην οποία ο 8080 εξάγει
στο δίαυλο δεδοµένων τα σήµατα κατάστασης.
Απαριθµήστε τα σήµατα ελέγχου που περιέχει ο 8080.ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.3
Ποιους καταχωρητές διαθέτει ο µικροεπεξεργαστής 8080;ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.1
Έστω ότι ο συσσωρευτής Α έχει την τιµή 6016. Εκτελώντας την εντολή
ADD_A του µικροεπεξεργαστή, η οποία προσθέτει τα περιεχόµενα του Α
στον Α και αποθηκεύει το αποτέλεσµα πίσω στον Α (δηλαδή διπλασιάζει
την τιµή του Α), ποιες θα είναι οι τιµές των σηµαιών κατάστασης του κατα-
χωρητή κατάστασης επεξεργαστή;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.2
Οι κύκλοι ρολογιού Τ1, Τ2, Τ3 κάθε κύκλου µηχανής χρησιµοποιούνται για
λειτουργίες αναφοράς στη µνήµη. Κατά τη διάρκεια των κύκλων Τ4, Τ5 εκτε-
λούνται εσωτερικές λειτουργίες στο µικροεπεξεργαστή. Αυτοί οι δύο κύκλοι
ρολογιού µπορούν να χρησιµοποιηθούν και από κάποιο εξωτερικό κύκλω-
µα για έναν περιορισµένο αριθµό λειτουργιών, όπου δεν εµπλέκεται ο µικρο-
επεξεργαστής.
7 93 . 2 K À ∫ § √ π ª ∏ Ã ∞ ¡ ∏ ™ ∫ ∞ π ™ ∏ ª ∞∆∞ ∫ ∞∆∞ ™ ∆∞ ™ ∏ ™
T1
Φ1
Φ2
SYNC
∆ίαυλοςvδεδοµένων
Όταν τα σήµατα Φ1 και SYNC είναι στην λογική vκατάσταση 1 τότε µια εξωτερική συσκευή µπορεί να vδιαβάσει τα σήµατα κατάστασης από τον δίαυλο δεδοµένων
T2 T3
Kατάσταση
™¯‹Ì· 3.4
Κύκλος µηχανής και
χρονισµός στον 8080
T1
MC1
T2 T3 T4 T5
Aύξηση του µετρητήv
προγράµµατος
Eσωτερικές λειτουργίες
Προσκόµιση εντολής
T1 T2 T3 T4 T5
Eσωτερικές λειτουργίες
Λειτουργίες αναφοράς στη µνήµη
™¯‹Ì· 3.5
Κύκλοι µηχανής και
λειτουργίες
8 0 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Οι πρώτοι τρεις κύκλοι ρολογιού του πρώτου κύκλου µηχανής χρησιµοποι-
ούνται για τη µεταφορά µιας εντολής από τη µνήµη και για την αποθήκευ-
σή της στον καταχωρητή εντολών του 8080. O πρώτος κύκλος µηχανής
(MC1) έχει πάντα τουλάχιστον 4 κύκλους ρολογιού µε το µετρητή προ-
γράµµατος (PC) να αυξάνεται κατά τη διάρκεια του Τ4 (βλέπε σχήµα 3.5).
Ο 8080 καθορίζει τις λειτουργίες, που θα συµβούν κατά τη διάρκεια ενός
κύκλου µηχανής, εξάγοντας τα σήµατα κατάστασης (status) στο δίαυλο δεδο-
µένων κατά τον κύκλο ρολογιού Τ2. Τα εξωτερικά κυκλώµατα χρησιµοποιούν
τα σήµατα SYNC και Φ1 στο ξεκίνηµα του κύκλου Τ2 για να διαβάσουν τις
γραµµές του δίαυλου δεδοµένων. Οι λειτουργίες που καθορίζει είναι οι εξής:
• INTA – D0 bit: Με αυτό το σήµα κατάστασης ο επεξεργαστής αναγνωρί-
ζει ότι έχει λάβει αίτηση διακοπής, θέτοντας το bit D0 στην τιµή 1. Το
σήµα θα πρέπει να χρησιµοποιηθεί ώστε να τοποθετηθεί εντολή στο δίαυ-
λο δεδοµένων, όταν το DBIN είναι ενεργό, δηλαδή σε λογική τιµή “1”.
• WO~ – D1 bit: Όταν το WO~ είναι ίσο µε την τιµή 0, τότε η τρέχουσα
λειτουργία του κύκλου µηχανής του επεξεργαστή είναι εγγραφή στη
µνήµη ή λειτουργία εξόδου. Όταν το WO~ είναι ίσο µε την τιµή 1, τότε
θα εκτελεστεί λειτουργία ανάγνωσης µνήµης, λειτουργία εισόδου ή δια-
κοπή ή στάση.
• STACK – D2 bit: Όταν το σήµα STACK είναι ίσο µε την τιµή 1, τότε ο
δίαυλος διευθύνσεων έχει πάρει τη διεύθυνση του σωρού από το δείκτη
σωρού (SP).
• HLTA – D3 bit: Είναι το σήµα που εµφανίζεται, όταν εκτελείται η εντο-
λή στάσης HALT.
• OUT – D4 bit: Όταν το OUT είναι ίσο µε την τιµή 1, ο δίαυλος διευθύν-
σεων έχει τη διεύθυνση µιας εξωτερικής συσκευής και θα µεταφέρει σε
αυτήν ένα byte δεδοµένων, όταν ενεργοποιηθεί το σήµα WR~.
• M1 – D5 bit: Όταν το Μ1 είναι ίσο µε την τιµή 1, τότε ο 8080 είναι στον
κύκλο προσκόµισης του πρώτου byte µιας εντολής, δηλαδή του κωδικού
λειτουργίας.
• INP – D6 bit: ∆ηλώνει ότι ο δίαυλος διευθύνσεων έχει τη διεύθυνση µιας
συσκευής εισόδου και ότι θα µεταφερθεί από αυτήν ένα byte δεδοµένων
στο δίαυλο δεδοµένων, όταν ενεργοποιηθεί το σήµα DBIN.
• MEMR – D7 bit: ∆ηλώνει ότι ο δίαυλος δεδοµένων θα χρησιµοποιηθεί
ΙΝΤΑ WO~ STACK HLTA OUT M1 INP MEMR
(D0) (D1) (D2) (D3) (D4) (D5) (D6) (D7)
Προσκόµιση εντολής 0 1 0 0 0 1 0 1
Ανάγνωση µνήµης 0 1 0 0 0 0 0 1
Εγγραφή µνήµης 0 0 0 0 0 0 0 0
Ανάγνωση σωρού 0 1 1 0 0 0 0 1
Εγγραφή σωρού 0 0 1 0 0 0 0 0
Ανάγνωση εισόδου/εξόδου 0 1 0 0 0 0 1 0
Εγγραφή εισόδου/εξόδου 0 0 0 0 1 0 0 0
Αναγνώριση διακοπής 1 1 0 0 0 1 0 0
Αναγνώριση HALT 0 1 0 1 0 0 0 1
Αναγνώριση διακοπής εν µέσω HALT 1 1 0 1 0 1 0 0
8 13 . 2 K À ∫ § √ π ª ∏ Ã ∞ ¡ ∏ ™ ∫ ∞ π ™ ∏ ª ∞∆∞ ∫ ∞∆∞ ™ ∆∞ ™ ∏ ™
™¯‹Ì· 3.6
Οι κύκλοι µηχανής του
8080
για ανάγνωση δεδοµένων από τη µνήµη.
Υπάρχουν δέκα διαφορετικά είδη κύκλων µηχανής, που µπορούν να εµφανι-
στούν σε έναν κύκλο εντολής. Οι συνδυασµοί των οκτώ σηµάτων κατάστα-
σης ορίζουν τα δέκα είδη των κύκλων µηχανής, όπως φαίνεται στο σχήµα 3.6.
8 2 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
3.3 H ¯ÚÔÓÈ΋ ·ÎÔÏÔ˘ı›· ÂÎÙ¤ÏÂÛ˘ ÂÓÙÔÏÒÓ
™ÎÔfi˜
Στο κεφάλαιο 2 µάθαµε ότι κάθε εντολή χωρίζεται σε κύκλους µηχανής και
ότι κάθε κύκλος µηχανής χωρίζεται σε κύκλους ρολογιού. Σκοπός της ενό-
τητας αυτής είναι να γνωρίσετε τον τρόπο, µε τον οποίο αλληλεπιδρούν τα
διάφορα σήµατα ελέγχου µε τους διαύλους διευθύνσεων και δεδοµένων σε
κάθε κύκλο µηχανής και κάθε κύκλο ρολογιού.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Με την ολοκλήρωση της ενότητας αυτής θα είστε σε θέση να χωρίσετε κάθε
εντολή του 8080/8085 σε κύκλους µηχανής και κύκλους ρολογιού και να περι-
γράψετε τον τρόπο, µε τον οποίο µεταβάλλονται τα σήµατα χρονισµού σε κάθε
περίπτωση.
Από πόσους κύκλους µηχανής αποτελείται ένας κύκλος εντολής; Από τι
εξαρτάται το πλήθος των κύκλων µηχανής; Βρείτε το πλήθος των κύκλων
µηχανής για τις παρακάτω εντολές:
(α)ANA_register: Λογικό ΚΑΙ µεταξύ του συσσωρευτή Α και ενός κατα-
χωρητή (εντολή ενός byte). Το αποτέλεσµα αποθηκεύεται πίσω στο συσ-
σωρευτή.
(β)ANA_Memory: Λογικό ΚΑΙ µεταξύ του συσσωρευτή Α και µίας θέσης
µνήµης (εντολή ενός byte – η διεύθυνση της θέσης µνήµης βρίσκεται
στον καταχωρητή HL). Το αποτέλεσµα αποθηκεύεται πίσω στο συσ-
σωρευτή.
(γ) ANI_data: Λογικό ΚΑΙ µεταξύ του συσσωρευτή Α και µιας τιµής (εντο-
λή δύο bytes – η τιµή ακολουθεί τον κωδικό λειτουργίας της εντολής).
Το αποτέλεσµα αποθηκεύεται πίσω στο συσσωρευτή.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.4
Τι είναι τα σήµατα κατάστασης του 8080; Ποια η χρησιµότητά τους;ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.5
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Επειδή δεν έχουµε ασχοληθεί έως τώρα µε κάτι παρόµοιο, είναι επόµενο ότι
θα συναντήσετε δυσκολίες κατά τη µελέτη της ενότητας αυτής. Μην απογοη-
τεύεστε όµως. ∆ιαβάστε προσεκτικά το κείµενο, χρησιµοποιείτε ως οδηγό σας
το αντίστοιχο σχήµα (σχήµα 3.7 ή σχήµα 3.8) και γρήγορα θα κατανοήσετε
την αντίστοιχη ύλη.
Ο κύκλος προσκόµισης εντολής αρχίζει πάντα µε τον πρώτο κύκλο ρολο-
γιού Τ1 του πρώτου κύκλου µηχανής Μ1. Για µια απλή εντολή ενός byte απαι-
τείται ένας µόνο κύκλος µηχανής Μ1, που αποτελείται από τις τέσσερις κατα-
στάσεις Τ1, Τ2, Τ3, Τ4. Η χρονική ακολουθία των σηµάτων για τον κύκλο Μ1,
που γίνεται ανάκληση ενός byte εντολής, δίνονται στο σχήµα 3.7.
8 33 . 3 H Ã ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡
Φ1
Φ2
SYNC
READY
WAIT
DBIN
Di
A0 – A15
WR
T1 T2 T3 T4 T5
Kατάσταση Eντολή
Floating
Aνάγνωση σηµάτωνvκατάστασης από vεξωτερική συσκευή
Προσκόµιση vεντολής
™¯‹Ì· 3.7 Ο κύκλος προσκόµισης εντολής
8 4 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Κατάσταση Τ1: Κατά την κατάσταση Τ1, το θετικό µέτωπο του σήµατος Φ2
προκαλεί την ενεργοποίηση του σήµατος SYNC. Το σήµα αυτό, που εκπέ-
µπει ο 8080, ειδοποιεί όλες τις άλλες µονάδες του συστήµατος ότι ο µικρο-
επεξεργαστής βρίσκεται στην πρώτη κατάσταση Τ1 του κύκλου µηχανής.
Το σήµα WAIT είναι στη λογική κατάσταση “0”, ενώ το WR~ στη λογική
κατάσταση “1”, αφού είµαστε σε κύκλο προσκόµισης εντολής (µην ξεχνάτε
ότι ένας κύκλος προσκόµισης εντολής δεν παύει να είναι ένας κύκλος ανά-
γνωσης από τη µνήµη µε την ιδιαιτερότητα ότι τα δεδοµένα που µεταφέρο-
νται στο δίαυλο δεδοµένων αποτελούν τον κωδικό λειτουργίας µίας εντολής).
Κατά τη διάρκεια του Τ1 ο 8080 χρησιµοποιεί το δίαυλο δεδοµένων για να
στείλει τη λέξη κατάστασης, µε την οποία ενηµερώνει όλες τις υπόλοιπες
µονάδες του συστήµατος για το είδος του κύκλου µηχανής, που αρχίζει. Στην
περίπτωση του κύκλου µηχανής για την ανάκληση εντολής, η αντίστοιχη
λέξη κατάστασης έχει την τιµή 1 στα δυαδικά ψηφία WO~ (D1), M1 (D5) και
MEMR (D7).
Το θετικό µέτωπο του Φ2 είναι αυτό που προκαλεί την τοποθέτηση της λέξης
κατάστασης πάνω στο δίαυλο δεδοµένων. Επιπλέον, ο µικροεπεξεργαστής τοπο-
θετεί τα περιεχόµενα του µετρητή προγράµµατος στο δίαυλο διευθύνσεων.
Οι γραµµές του δίαυλου διευθύνσεων διατηρούν τις λογικές τιµές, που παίρ-
νουν, µέχρις ότου εµφανιστεί ο πρώτος παλµός Φ2 µετά την κατάσταση Τ3.
Αυτό παρέχει στο µικροεπεξεργαστή αρκετό χρόνο ώστε να µπορέσει να δια-
βάσει το byte εντολής, που του στέλνει η µνήµη.
Κατάσταση Τ2: Τα εξωτερικά κυκλώµατα διαβάζουν τη λέξη κατάστασης
που έστειλε ο µικροεπεξεργαστής, όταν τα σήµατα Φ1 και SYNC έχουν τη
λογική τιµή “1”. Ας υποθέσουµε εδώ ότι κατά τη διάρκεια της Τ2 το εξωτε-
ρικό σήµα READY, που δέχεται ο µικροεπεξεργαστής, έχει τη λογική τιµή
“1”. Αυτό σηµαίνει ότι η µνήµη έχει αρκετό χρόνο ώστε να προσπελάσει και
να εξάγει τον κωδικό λειτουργίας της εντολής.
Με τη θετική ακµή του Φ2 παύει το σήµα SYNC, ενεργοποιείται το σήµα
DBIN και αποσύρεται η λέξη κατάστασης από το δίαυλο δεδοµένων. Το
σήµα DBIN εξάγεται από το µικροεπεξεργαστή για να ειδοποιήσει τις άλλες
µονάδες του συστήµατος ότι ο δίαυλος δεδοµένων είναι τώρα ελεύθερος να
δεχθεί από αυτές δεδοµένα. Η διάρκεια του σήµατος DBIN είναι ακριβώς
ένας κύκλος ρολογιού.
Στην περίπτωση της προσκόµισης εντολής, η µνήµη θα πρέπει να τοποθετήσει
στο δίαυλο δεδοµένων τον κωδικό λειτουργίας της εντολής που έχει εξάγει.
Κατάσταση Τ3: Εφόσον το READY ήταν σε λογική τιµή “1”, το σύστηµα θα
εισέλθει πλέον στην κατάσταση Τ3. Οι συγκεκριµένες λειτουργίες, που θα εκτε-
λεστούν κατά τη διάρκεια της κατάστασης αυτής, εξαρτώνται από τον αντίστοιχο
κύκλο µηχανής. Εφόσον εδώ πρόκειται για τον πρώτο κύκλο Μ1 ανάκλησης
εντολής, ο µικροεπεξεργαστής διαβάζει τη λέξη, που βρίσκεται στο δίαυλο δεδο-
µένων, την τοποθετεί στο καταχωρητή εντολών και την αποκωδικοποιεί.
Η θετική ακµή του Φ2 οδηγεί το δίαυλο δεδοµένων σε κατάσταση υψηλής
εµπέδησης και το σήµα DBIN στη λογική τιµή “0”.
Κατάσταση Τ4: Στη θετική ακµή του Φ2 στον κύκλο ρολογιού Τ4, ο δίαυ-
λος διευθύνσεων επανέρχεται σε κατάσταση υψηλής εµπέδησης, ενώ ο
µικροεπεξεργαστής αυξάνει εσωτερικά το µετρητή προγράµµατος
Στην περίπτωση κύκλου µηχανής ανάγνωσης από τη µνήµη, η ακολουθία
χρονισµού είναι ίδια µε αυτή του σχήµατος 3.7 (δηλ. όσον αφορά στα εξωτε-
ρικά λογικά κυκλώµατα, δεν υπάρχει διαφορά µεταξύ αυτών των δύο κύκλων
µηχανής) εκτός ότι στην περίπτωση αυτή το σήµα κατάστασης Μ1 (D5 στο
δίαυλο δεδοµένων) έχει την τιµή 0 και τα δεδοµένα, που µεταφέρονται στο
δίαυλο δεδοµένων, δεν αποτελούν τον κωδικό λειτουργίας κάποιας εντολής.
Στην περίπτωση κύκλου µηχανής εγγραφής στη µνήµη, η ακολουθία χρο-
νισµού παραµένει όπως πριν, µε τη µόνη διαφορά ότι εξάγεται διαφορετική
λέξη κατάστασης στη διάρκεια του Τ1, το σήµα DBIN παραµένει συνέχεια
στη λογική τιµή “0”, ενώ το σήµα WR~ βρίσκεται στη λογική τιµή “0” για
όλο το Τ3. (βλέπε σχήµα 3.8)
8 53 . 3 H Ã ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡
8 6 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
™¯‹Ì· 3.8 Ο κύκλος µηχανής εγγραφής
Φ1
Φ2
SYNC
READY
WAIT
DBFL
Di
A0 – A15
WR
T1 T2 T3 T4 T5
Floating
FloatingKατάσταση ∆εδοµένα
Aνάγνωση σηµάτωνvκατάστασης από vεξωτερική συσκευή
Περιγράψτε τη χρονική ακολουθία εκτέλεσης ενός κύκλου µηχανής εγγρα-
φής στη µνήµη.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.6
Σε ποιες χρονικές περιόδους κατά τη διάρκεια ενός κύκλου προσκόµισης
εντολής είναι το σήµα DBIN ενεργό (δηλαδή στη λογική “1”);
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.7
3.4 OÈ Î·Ù·ÛÙ¿ÛÂȘ Wait, Hold Î·È Halt
™ÎÔfi˜
Ο κάθε επεξεργαστής διαθέτει διάφορες ειδικές καταστάσεις λειτουργίας. Οι
WAIT, HOLD και HALT είναι καταστάσεις του 8080, που χρησιµοποιούνται
για λειτουργίες, όπως διασύνδεση αργών µνηµών και αναστολή επεξεργασίας
του µικροεπεξεργαστή.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Τελειώνοντας τη µελέτη αυτής της ενότητας, θα είστε σε θέση να διακρίνετε
τα ιδιαίτερα χαρακτηριστικά των τριών διαφορετικών τρόπων λειτουργίας
του 8080.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Μελετήστε την ενότητα δίνοντας µεγαλύτερη προσοχή στο κείµενο και λιγό-
τερη στις ακολουθίες χρονισµού, που εµφανίζονται στα σχήµατα. Προσπα-
θήστε να καταλάβετε σε ποια χρονική στιγµή µπορεί να εµφανιστεί η κάθε
κατάσταση και ποια µπορεί να είναι η χρησιµότητά της.
Η κατάσταση WAIT µπορεί να συµβεί µεταξύ των Τ2 και Τ3 κύκλων ρολογι-
ού. Χρησιµοποιείται για να καθυστερούµε τον 8080 όσο χρόνο χρειάζεται η
µνήµη ή µια εξωτερική συσκευή για να ανταποκριθεί σε µια εγγραφή ή ανά-
γνωση.
Εάν κατά τη διάρκεια του Φ2 του Τ2 το σήµα READY είναι στη λογική τιµή
“0”, τότε ο 8080 εισέρχεται σε κατάσταση WAIT. Αυτή αποτελείται από ακέ-
ραιους κύκλους ρολογιού, στους οποίους ο 8080 διατηρεί τα σήµατα εξόδου
του. Η κατάσταση WAIT τελειώνει, όταν το READY πάρει τη λογική τιµή
“1”. Ο µικροεπεξεργαστής ελέγχει τη γραµµή READY κάθε φορά κατά τη
διάρκεια του Φ2 και, εάν αυτή έχει την τιµή 1, τότε εισέρχεται στο επόµενο
κύκλο ρολογιού (Τ3) µε τον επόµενο παλµό Φ1.
8 73 . 4 O π ∫ ∞∆∞ ™ ∆∞ ™ ∂ π ™ WA I T, H O L D ∫ ∞ π H A L T
8 8 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
T5T4T3WAITT2T1
Φ1
Φ2
SYNC
READY
WAIT
WR
Φ1
Φ2
SYNC
READY
WAIT
WR
T5T4T3T2T1
Kατάσταση
™¯‹Ì· 3.9 Ένας κύκλος µηχανής µε χρήση κατάστασης WAIT
™¯‹Ì· 3.10 Ένας κύκλος µηχανής χωρίς κατάσταση WAIT
Με τον τρόπο αυτό µπορούµε να διασυνδέσουµε οποιαδήποτε µνήµη ή άλλη
συσκευή στον 8080. Εάν αυτή είναι αρκετά γρήγορη και µπορεί να ανταπο-
κρίνεται σε ρυθµούς ίδιους µε αυτούς του µικροεπεξεργαστή, τότε διατη-
ρούµε το σήµα READY συνεχώς στη λογική τιµή 1. Εάν η µνήµη είναι πιο
αργή από το µικροεπεξεργαστή, τότε εισάγουµε ακέραιο αριθµό από κατα-
στάσεις WAIT για να καθυστερήσουµε τον 8080.
Έχοντας συζητήσει την κατάσταση WAIT θα πρέπει να δούµε και δύο άλλες
καταστάσεις, κατά τη διάρκεια των οποίων δεν εκτελούνται εντολές. Αυτές
είναι οι καταστάσεις HOLD και HALT.
Όπως έχουµε ήδη αναφέρει, η κατάσταση WAIT αποτελείται από ένα ή
περισσότερους κύκλους ρολογιού, οι οποίοι εισάγονται µέσα στον κύκλο
µηχανής, δίνοντας χρόνο στο εξωτερικό κύκλωµα να ανταποκριθεί σε µια
προσπέλαση µνήµης. Έτσι, η κατάσταση WAIT αποτελείται από ένα µη
καθορισµένο αριθµό περιόδων ρολογιού, οι οποίες συµβαίνουν µέσα σε έναν
κύκλο µηχανής και αυξάνουν τη διάρκεια αυτού του κύκλου µηχανής.
Ο σκοπός της κατάστασης HOLD είναι να οδηγεί σε κατάσταση υψηλής
εµπέδησης τους διαύλους του µικροεπεξεργαστή έτσι ώστε εξωτερικές
συσκευές να υλοποιούν λειτουργίες µεταφοράς δεδοµένων χωρίς τη βοήθειά
του. Έτσι, η κατάσταση HOLD αποτελείται από οποιονδήποτε αριθµό
κύκλων ρολογιού, οι οποίοι βρίσκονται µεταξύ δύο κύκλων µηχανής, που
καθορίζουν το τέλος της εκτέλεσης µιας εντολής και την αρχή εκτέλεσης της
επόµενης εντολής.
Η κατάσταση HOLD µπορεί να θεωρηθεί σαν µια περίοδος χρόνου, όπου ο
µικροεπεξεργαστής µπαίνει σε µια κατάσταση αναστολής δραστηριότητας.
H κατάσταση HALT προκύπτει από την εκτέλεση της εντολής HALT. Κατά
τη διάρκεια της κατάστασης HALT ο 8080 απλώς µετράει χρόνο. Ο σκοπός
της κατάστασης αυτής είναι να καθορίσει εκείνα τα διαστήµατα χρόνου, στα
οποία δεν υπάρχει τίποτα να εκτελέσει ο µικροεπεξεργαστής. Είναι λογικό
να υποθέσουµε ότι ο µικροεπεξεργαστής δεν µπορεί να ξέρει πόσο θα διαρ-
κέσει ο χρόνος αυτός µέχρι να έχει κάτι να κάνει.
Η κατάσταση HALT τελειώνει, όταν κάποια εξωτερική συσκευή απαιτήσει
εξυπηρέτηση από το µικροεπεξεργαστή. Έτσι, ο 8080 απαιτεί µια αίτηση
διακοπής για να τελειώσει η κατάσταση HALT.
8 93 . 4 O π ∫ ∞∆∞ ™ ∆∞ ™ ∂ π ™ WA I T, H O L D ∫ ∞ π H A L T
9 0 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Η κατάσταση HOLD ξεκινά µε το σήµα εισόδου HOLD. Ο 8080 αναγνωρί-
ζει το ξεκίνηµα της κατάστασης HOLD εξάγοντας το HLDA στη λογική τιµή
“1”. Αν η αίτηση του HOLD γίνει κατά τη διάρκεια µίας ανάγνωσης ή λει-
τουργίας εισόδου, τότε το HLDA τοποθετείται στη λογική τιµή “1” στη θετι-
κή ακµή του Φ1 στο Τ3. Αν το HOLD απαιτηθεί κατά τη διάρκεια µίας εγγρα-
φής ή λειτουργίας εξόδου, τότε το HLDA τοποθετείται στη λογική τιµή “1”
στη θετική ακµή του Φ1 στον κύκλο, που ακολουθεί το Τ3.
Aς σηµειωθεί ότι ακόµα και αν το HOLD έχει αναγνωριστεί και η HOLD
κατάσταση έχει ξεκινήσει στο Τ3, κατά τη διάρκεια ενός κύκλου µηχανής
ανάγνωσης από τη µνήµη ή µονάδα εισόδου/εξόδου, τα δεδοµένα θα πρέπει
να κρατηθούν σταθερά στο δίαυλο δεδοµένων µέχρι τη θετική ακµή του Φ2
στο Τ3. Αυτό γιατί οι λειτουργίες του µικροεπεξεργαστή θα εκτελεστούν
φυσιολογικά κατά τη διάρκεια ενός HOLD.
Η µετάβαση του σήµατος HOLD στη λογική τιµή “0” θα οδηγήσει στο τέλος
της κατάστασης HOLD. Η µετάβαση αυτή θα πρέπει να συµπέσει µε τη θετι-
κή ακµή του Φ1 της Τ1 περιόδου ρολογιού του επόµενου κύκλου µηχανής.
Στην περίπτωση αυτή ο 8080 σηµατοδοτεί το τέλος του HOLD θέτοντας το
σήµα HLDA στη λογική τιµή “0”.
T1TWTWTWTWTWT3T2T1
Floating
Kατάσταση HOLD
Kύκλος µηχανής N Kύκλος µηχανής N + 1
Φ1
Φ2
SYNC
HOLD
HLDA
D0 – D7
A0 – A15
WR
∆εδοµέναKατάσταση
™¯‹Ì· 3.11 Η κατάσταση HOLD µετά από κύκλο ανάγνωσης
Κατά τη διάρκεια του HOLD οι δίαυλοι διευθύνσεων και δεδοµένων βρί-
σκονται σε κατάσταση υψηλής εµπέδησης. Αυτή ξεκινά στο Φ2 του Τ3 για
µια λειτουργία ανάγνωσης µνήµης και στο Φ2 της περιόδου ρολογιού που
ακολουθεί την Τ3 στις υπόλοιπες περιπτώσεις.
H κατάσταση HALT είναι ίδια µε την WAIT εκτός του ότι ξεκινά µε την
εντολή HALT. Η κατάσταση αυτή δεν ξεκινά µε το σήµα READY στη λογι-
κή τιµή “0”, παρά το γεγονός ότι αυτό είναι αναγκαία προϋπόθεση. Αυτό
σηµαίνει ότι το READY στη λογική τιµή “1” δεν µπορεί να χρησιµοποιηθεί
για να σταµατήσει την κατάσταση HALT. Για να σταµατήσει η κατάσταση
HALT, απαιτείται αίτηση διακοπής (δηλαδή το σήµα INT θα πρέπει να µετα-
βεί στη λογική τιµή “1”).
Εάν οι διακοπές έχουν κατασταλεί, η αίτηση διακοπής δεν πρόκειται να ανα-
γνωριστεί ποτέ και ο µόνος τρόπος για έξοδο από την κατάσταση HALT είναι
να κλείσουµε το διακόπτη τροφοδοσίας στο µικροεπεξεργαστή.
9 13 . 4 O π ∫ ∞∆∞ ™ ∆∞ ™ ∂ π ™ WA I T, H O L D ∫ ∞ π H A L T
™¯‹Ì· 3.12 Η κατάσταση HOLD µετά από κύκλο εγγραφής
T1TWT1WTWTWTWT3T2T1
Floating
Floating
Kατάσταση HOLD
Kύκλος µηχανής N Kύκλος µηχανής N + 1
Φ1
Φ2
SYNC
HOLD
HLDA
D0 – D7
A0 – A15
WR
∆εδοµέναKατάσταση
Ποια η διαφορά ανάµεσα στις καταστάσεις WAIT, HOLD και HALT; Σε
ποια περίπτωση θα χρησιµοποιούσατε την καθεµία από αυτές;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘3.8
9 2 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
3.5 H ·Ú¯ÈÎÔÔ›ËÛË ÙÔ˘ 8080
Η είσοδος του σήµατος RESET στη λογική τιµή “1” θα καθαρίσει το µετρη-
τή προγράµµατος και θα απενεργοποιήσει τις διακοπές.
Για να εκτελεστεί η λειτουργία RESET, το αντίστοιχο σήµα θα πρέπει να
τοποθετηθεί στη λογική τιµή “1” για τρεις τουλάχιστον περιόδους ρολογιού.
Κατά τη διάρκεια των τριών αυτών περιόδων οι λειτουργίες που εκτελούνται
είναι οι εξής: (α) Mηδενίζεται ο µετρητής προγράµµατος, (β) απενεργοποι-
ούνται όλες οι αιτήσεις διακοπής, (γ) αρχικοποιείται η λογική αναγνώρισης
διακοπών (τα κυκλώµατα που είναι σχετικά µε το σήµα INTE) και τέλος (δ)
αρχικοποιείται η λογική αναγνώρισης του HOLD (τα κυκλώµατα που είναι
σχετικά µε το σήµα HLDA).
Όσο το RESET είναι στη λογική τιµή “1”, όλες οι λειτουργίες του 8080 είναι
σε αναµονή. Όταν το RESET µεταβεί στη λογική τιµή “0”, αρχίζει πάλι η
εκτέλεση εντολών µε τον κύκλο ρολογιού Τ1 στον επόµενο παλµό Φ1. Εφό-
σον ο µετρητής προγράµµατος έχει µηδενιστεί, η πρώτη εντολή που εκτε-
λείται µετά το RESET είναι η εντολή που έχει αποθηκευτεί στη θέση της
µνήµης µε διεύθυνση 000016. Οι διακοπές παραµένουν απενεργοποιηµένες,
όταν ξεκινά η εκτέλεση του προγράµµατος.
Όταν ανοίγουµε (τροφοδοτούµε µε ρεύµα) ένα σύστηµα βασισµένο στον
8080, θα πρέπει ταυτόχρονα να τον αρχικοποιούµε εκτελώντας τη λειτουρ-
γία RESET. Αν δεν εκτελέσουµε την λειτουργία RESET, τότε οι καταχωρη-
τές περιλαµβανόµενου και του µετρητή προγράµµατος θα περιέχουν ακαθό-
ριστα δεδοµένα µε αποτέλεσµα η εκτέλεση του προγράµµατος να ξεκινήσει
αµέσως, αλλά λανθασµένα από κάποια τυχαία θέση της µνήµης.
Μετά από µία διακοπή ρεύµατος, ποια είναι τα περιεχόµενα του µετρητή
προγράµµατος; Είναι πάντα τα ίδια;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.9
3.6 OÈ ‰È·ÎÔ¤˜ ÛÙÔÓ 8080
Ο µηχανισµός της διακοπής δίνει τη δυνατότητα σε µια εξωτερική συσκευή
(εξωτερικό κύκλωµα) να διακόψει την εκτέλεση του προγράµµατος και να
ζητήσει εξυπηρέτηση από τον επεξεργαστή. Όπως όλοι οι µικροεπεξεργαστές,
έτσι και ο 8080 έχει τη δυνατότητα να χειριστεί εξωτερικά σήµατα διακοπής.
Μια εξωτερική συσκευή µπορεί να απαιτήσει εξυπηρέτηση οποιαδήποτε
στιγµή τοποθετώντας το σήµα εισόδου INT στη λογική τιµή “1”. Η αίτηση
διακοπής θα αναγνωριστεί µόνο αν υπάρχει δυνατότητα διακοπών. Οι εντο-
λές ΕΙ (Enable Interrupt) και (Disable Interrupt) χρησιµοποιούνται για ενερ-
γοποίηση ή απενεργοποίηση των διακοπών. Παρ’ όλα αυτά οι διακοπές απε-
νεργοποιούνται αυτόµατα από τον 8080 κατά τη διάρκεια της εκτέλεσης της
αρχικοποίησης και κατά την αναγνώριση µιας διακοπής.
9 33 . 6 O π ¢ π ∞ ∫ √ ¶ ∂ ™ ™ ∆ √ ¡ 8 0 8 0
Floating
T1T5T4T3T2T1
Kύκλος µηχανής N + 1N N + 2
Φ1
Φ2
SYNC
READY
WAIT
INT
INTE
DBIN
D0 – D7
A0 – A15
WR
Aρχή διακοπής
Kατάσταση ∆εδοµένα
Aνάγνωση σηµάτωνvκατάστασης από vεξωτερική συσκευή
™¯‹Ì· 3.13
Ακολουθία αναγνώρισης
διακοπής
Ο 8080 εξάγει στο σήµα εξόδου INTE τη λογική τιµή “1”, όταν έχουν ενερ-
γοποιηθεί οι διακοπές, και τη λογική τιµή “0”, όταν έχουν απενεργοποιηθεί
οι διακοπές.
Όταν οι διακοπές είναι ενεργοποιηµένες, τότε ο 8080 θα αναγνωρίσει την
αίτηση διακοπής κατά τον επόµενο κύκλο ρολογιού Τ1 στη θετική ακµή του
Φ2. Τη στιγµή αυτή το INTE µεταβαίνει στη λογική τιµή “0” ώστε να αντα-
9 4 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
νακλά το γεγονός ότι αναγνωρίστηκε η διακοπή και αυτόµατα απενεργοποι-
εί τις διακοπές ώστε να µην δεχτεί νέα αίτηση διακοπής (βλέπε σχήµα 3.13).
Ο 8080 πληροφορεί την εξωτερική συσκευή ότι µια διακοπή έχει αναγνωρι-
στεί εξάγοντας την κατάσταση αυτή στο δίαυλο δεδοµένων µε τον επόµενο
κύκλο µηχανής, δηλαδή θέτει σε τιµή 1 τα D0–INTA, D1–R1/WO, D5–M1.
Το INTA είναι η κυριότερη κατάσταση αναγνώρισης διακοπής. Η κατάστα-
ση αυτή µετατρέπεται σε ένα ξεχωριστό σήµα ελέγχου αναγνώρισης διακο-
πής στα µικροϋπολογιστικά συστήµατα, που χρησιµοποιούν τον ελεγκτή
συστήµατος 8228 (περισσότερες λεπτοµέρειες θα δούµε στην ενότητα 3.8).
Εφόσον έχει αναγνωριστεί µια διακοπή, ο µικροεπεξεργαστής εισάγει µια
σειρά κύκλων προσκόµισης εντολής, αλλά µε δύο διαφορές:
• η λογική της αύξησης του µετρητή προγράµµατος έχει κατασταλεί,
• εξάγονται διαφορετικές καταστάσεις στο δίαυλο δεδοµένων. Έτσι µπο-
ρούµε να διακρίνουµε έναν κύκλο προσκόµισης εντολής από έναν κύκλο
µηχανής, που ακολουθεί την αναγνώριση µιας διακοπής
Για να µπορούµε, µετά το τέλος της εξυπηρέτησης της διακοπής, να συνεχί-
σουµε µε την εκτέλεση του προγράµµατος, η πρώτη εντολή, που εκτελείται
ακολουθώντας την αναγνώριση µιας διακοπής, θα πρέπει να αποθηκεύσει το
περιεχόµενο του µετρητή προγράµµατος (συνήθως στο σωρό), ενώ η τελευ-
ταία εκτελούµενη εντολή µέσα στη ρουτίνα εξυπηρέτησης της διακοπής θα
πρέπει να το επαναφέρει στο µετρητή προγράµµατος.
Κατά τη διάρκεια της προσκόµισης εντολής, που ακολουθεί την αναγνώρι-
ση διακοπής, η λογική της αύξησης του µετρητή προγράµµατος έχει κατα-
σταλεί, γιατί ο 8080 αναµένει να του δοθεί ο κώδικας λειτουργίας της πρώ-
της εντολής εξυπηρέτησης της διακοπής από την εξωτερική συσκευή, που
προκάλεσε τη διακοπή, και όχι από τη µνήµη.
Ο κώδικας λειτουργίας, που παρέχεται από την εξωτερική συσκευή, θα πρέπει
να είναι ο κώδικας λειτουργίας µιας εντολής, που θα αποθηκεύει το περιεχό-
µενο του µετρητή προγράµµατος για επακόλουθη ανάκτηση. Η µόνη εντολή
που µπορεί να εκτελέσει τα παραπάνω είναι µία εντολή κλήσης υπορουτίνας.
Η εντολή αυτή αποθηκεύει το περιεχόµενο του µετρητή προγράµµατος στο
σωρό και µετά αποθηκεύει µια νέα διεύθυνση στο µετρητή προγράµµατος.
Ο κανονικός τρόπος για να τελειώσει µια υπορουτίνα είναι διαµέσου της
εντολής RETURN. Αυτή η εντολή µεταφέρει τα δεδοµένα, που βρίσκονται
στην κορυφή του σωρού στο µετρητή προγράµµατος.
Υπάρχουν δύο τύποι εντολής για κλήση ρουτίνας εξυπηρέτησης στον 8080,
ο τύπος RESTART (RST) και ο τύπος CALL.
Η εντολή CALL είναι µια τυπική εντολή των τριών bytes µε άµεση διευ-
θυνσιοδότηση. Η διεύθυνση της εντολής, που θα εκτελεστεί µετά την εξυ-
πηρέτηση της διακοπής, αποθηκεύεται στο σωρό ώστε να ανακληθεί ακο-
λούθως. Το δεύτερο και τρίτο byte του κώδικα λειτουργίας της εντολής
CALL παρέχει τη διεύθυνση της πρώτης εντολής της υπορουτίνας εξυπηρέ-
τησης και αποθηκεύεται στο µετρητή προγράµµατος.
Στην περίπτωση της εντολής CALL, το σήµα κατάστασης INTA χρησιµο-
ποιείται στην καταστολή των κανονικών προσπελάσεων στη µνήµη για τους
επόµενους τρεις κύκλους µηχανής, αφού η εξωτερική συσκευή θα πρέπει να
παρέχει τα τρία διαδοχικά bytes του κώδικα λειτουργίας µιας CALL εντολής.
H RST εντολή είναι µεγέθους ενός byte. Η ανταπόκριση στην αναγνώριση δια-
κοπής µε εισαγωγή µιας εντολής RST είναι πολύ πιο απλή. Το σήµα κατάστα-
σης INTA µπορεί να χρησιµοποιηθεί για την επιλογή της εξωτερικής συσκευ-
ής, ενώ η έλλειψη του σήµατος MEMR µπορεί να χρησιµοποιηθεί στην κατα-
στολή ενός κανονικού κύκλου προσκόµισης εντολής, ο οποίος θα συνέβαινε
από τη µνήµη. Εποµένως, ένας προσωρινός 8–bit καταχωρητής εισόδου/εξό-
δου µπορεί να παράγει τον κωδικό λειτουργίας µιας RESTART εντολής.
Σε ένα µικροϋπολογιστικό σύστηµα που περιέχει τον ελεγκτή συστήµατος
8228, όταν το byte του κώδικα λειτουργίας που λαµβάνεται ακολουθώντας το
INTA είναι ένα CALL (CD16), ο 8228 εξάγει δύο ακόµα καταστάσεις INTA
για τους επόµενους δύο κύκλους µηχανής. Έτσι, η εξωτερική συσκευή µπορεί
να χρησιµοποιήσει το INTA σαν σήµα, που καταστέλλει τις κανονικές προ-
σπελάσεις στη µνήµη, ώστε να στείλει η ίδια τα τρία bytes της CALL εντολής.
Εάν το µικροϋπολογιστικό σύστηµα δεν περιλαµβάνει ελεγκτή συστήµατος
8228, τότε η διαδικασία είναι αρκετά πολύπλοκη. Οι λειτουργίες, που µια
εξωτερική συσκευή θα πρέπει να εκτελέσει, είναι οι εξής:
1) Σε ανταπόκριση του σήµατος INTA θα πρέπει να καταστέλλει τις κανο-
νικές αναφορές στη µνήµη και να µεταφέρει τον κώδικα λειτουργίας της
εντολής CALL (CD16) στο µικροεπεξεργαστή. Ο κώδικας λειτουργίας θα
πρέπει να µεταφερθεί στον κατάλληλο χρόνο στο δίαυλο δεδοµένων,
όπως συµβαίνει µε όλες τις υπόλοιπες εντολές.
9 53 . 6 O π ¢ π ∞ ∫ √ ¶ ∂ ™ ™ ∆ √ ¡ 8 0 8 0
9 6 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
2) Θα πρέπει να καταστέλλει τις κανονικές προσπελάσεις µνήµης για τους
επόµενους δύο κύκλους µηχανής. Κατά τη διάρκεια των κύκλων αυτών,
θα πρέπει να µεταφέρει το λιγότερο και περισσότερο σηµαντικό µέρος
της διεύθυνσης της ρουτίνας εξυπηρέτησης της διακοπής στο δίαυλο
δεδοµένων. Ο χρονισµός τους στο δίαυλο δεδοµένων θα πρέπει να συµπί-
πτει µε αυτόν µίας κανονικής εντολής µεγέθους τριών bytes.
3.7 TÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘ – ™‡ÓÔÏÔ ÂÓÙÔÏÒÓ
Οι τρόποι διευθυνσιοδότησης, που χρησιµοποιούνται από τον 8080, είναι ο
άµεσος, ο υπονοούµενος, ο έµµεσος και η απόλυτη διευθυνσιοδότηση.
Στην άµεση διευθυνσιοδότηση τα δεδοµένα ακολουθούν τον κωδικό λει-
τουργίας της εντολής. Οι εντολές αυτές έχουν µέγεθος δύο bytes.
Ο υπονοούµενος τρόπος διευθυνσιοδότησης είναι ο συχνότερα χρησιµοποι-
ούµενος. Κατ' αυτόν ο καταχωρητής, στον οποίο είναι αποθηκευµένα τα
δεδοµένα, ορίζεται από την ίδια την εντολή. ∆ηλαδή η διεύθυνση (ο αριθ-
µός) του καταχωρητή περιέχεται στον κωδικό λειτουργίας της εντολής.
Ο έµµεσος τρόπος διευθυνσιοδότησης χρησιµοποιεί το ζεύγος των καταχω-
ρητών HL, που η βασική τους χρήση είναι να περιέχουν διευθύνσεις µνήµης.
Υπάρχουν βέβαια και άλλα ζεύγη καταχωρητών BC, DE, που χρησιµοποι-
ούνται για αναφορά στη µνήµη, αλλά από περιορισµένο αριθµό εντολών.
Ένας άλλος τρόπος διευθυνσιοδότησης, που χρησιµοποιεί ο 8080, είναι η
απόλυτη διευθυνσιοδότηση. Η ύπαρξή της είναι αναγκαία, γιατί είναι ο µόνος
τρόπος διευθυνσιοδότησης που παρέχεται για τις εντολές διακλάδωσης.
Όπως οι περισσότεροι µικροεπεξεργαστές των 8–bits, έτσι και ο 8080 δια-
θέτει εντολές µεταβλητού µήκους του ενός, των δύο, και των τριών bytes.
Το πρώτο byte αντιπροσωπεύει πάντα τον κώδικα λειτουργίας.
Το σύνολο εντολών του 8080 περιέχει τις κατηγορίες εντολών, που γνωρίσα-
µε στο προηγούµενο κεφάλαιο. Έτσι, θα βρούµε σε αυτόν εντολές µεταφοράς
δεδοµένων, αριθµητικές εντολές, λογικές εντολές, εντολές διακλάδωσης, εντο-
λές κλήσης υπορουτίνας (CALL), επιστροφής από υπορουτίνα (RETURN) και
γενικές εντολές, όπως διαχείρισης σωρού, και εντολές εισόδου/εξόδου.
3.8 ™˘Û΢¤˜ ˘ÔÛÙ‹ÚÈ͢
Ο 8080 έχει τόσες πολλές συσκευές υποστήριξης ώστε σπάνια χρησιµοποι-
εί συσκευές άλλων µικροεπεξεργαστών.
Η γεννήτρια ρολογιού 8224 (clock generator) και ο ελεγκτής συστήµατος
8228 (system controller) είναι δύο συσκευές που χρησιµοποιούνται τόσο
συχνά µε τον 8080 ώστε συχνά να θεωρούνται σαν ένας µικροεπεξεργαστής
τριών ολοκληρωµένων κυκλωµάτων (three chip microprocessor).
Ο κύριος σκοπός της γεννήτριας ρολογιού 8224 είναι να παρέχει στον 8080
τα απαιτούµενα σήµατα ρολογιού Φ1 και Φ2. Επίσης δηµιουργεί τα σήµατα
εισόδου READY και RESET του 8080 µε σωστό συγχρονισµό, καθώς τα
δύο αυτά σήµατα πρέπει να είναι συγχρονισµένα µε το Φ2.
Η συχνότητα του ρολογιού ελέγχεται από έναν κρύσταλλο συνδεµένο στους
ακροδέκτες XTAL1 και XTAL2. Η συχνότητα του κρυστάλλου πρέπει να
είναι ακριβώς εννέα φορές µεγαλύτερη της απαιτούµενης συχνότητας ρολο-
γιού. Συνήθως, η περίοδος ρολογιού του 8080 ισούται µε 500 ns (εποµένως
η συχνότητά του είναι 2 MHz). Εφόσον η συχνότητα του κρυστάλλου πρέ-
πει να είναι εννέα φορές µεγαλύτερη της συχνότητας του ρολογιού, το σύνη-
θες ρολόι των 500 ns απαιτεί συχνότητα κρυστάλλου 18 MHz.
Η γεννήτρια ρολογιού 8224 δέχεται µια είσοδο, όπως φαίνεται στο RESIN,
και δηµιουργεί ένα σήµα εξόδου RESET µε τα χαρακτηριστικά που απαιτεί
ο 8080. Το RESET συχνά συνδέεται και µε χειροκίνητους διακόπτες, που
επιτρέπουν στο µικροϋπολογιστικό σύστηµα να αρχικοποιηθεί και µε ανθρώ-
πινη παρέµβαση.
Το κύκλωµα του σχήµατος 3.14 δηµιουργεί την κατάλληλη είσοδο RESIN
στην 8224 γεννήτρια ρολογιού έτσι ώστε είτε πτώση ισχύος είτε εξωτερικός
διακόπτης να µπορούν να επαναφέρουν το µικροεπεξεργαστή σε κατάστα-
ση αρχικοποίησης.
9 73 . 8 ™ À ™ ∫ ∂ À ∂ ™ À ¶ √ ™ ∆ ∏ ƒ π • ∏ ™
Τι τρόπο διευθυνσιοδότησης χρησιµοποιεί η καθεµία από τις εντολές που
αναφέρονται στην άσκηση αυτοαξιολόγησης 3.4;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘3.10
9 8 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Επίσης η γεννήτρια ρολογιού 8224 δέχεται ένα µη συγχρονισµένο RDYIN
σήµα από µία αργή µνήµη και δηµιουργεί ένα συγχρονισµένο σήµα εισόδου
READY για τον 8080.
Στο σχήµα 3.15 βλέπουµε τον τρόπο, µε τον οποίο συνδέονται ο 8080 µε τη
γεννήτρια ρολογιού 8224 και τον ελεγκτή συστήµατος 8228. Ο ελεγκτής
συστήµατος 8228 αποτελείται από ένα διπλής κατεύθυνσης οδηγό διαύλου
(bus driver) και από ένα κύκλωµα παραγωγής των σηµάτων ελέγχου.
VCC
v
RESIN~
™¯‹Ì· 3.14
Αρχικοποίηση του 8224
™¯‹Ì· 3.15
∆ιασύνδεση των 8080,
8224 και 8228
HOLDv
INTv
INTE
A0v
A1v
A2v
A3v
A4v
A5v
A6v
A7v
A8v
A9v
A10v
A11v
A12v
A13v
A14v
A15v
WR~v
DBINv
HLDA
A0v
A1v
A2v
A3v
A4v
A5v
A6v
A7v
A8v
A9v
A10v
A11v
A12v
A13v
A14v
A15
D0v
D1v
D2v
D3v
D4v
D5v
D6v
D7
D0v
D1v
D2v
D3v
D4v
D5v
D6v
D7
INTA~v
MEMR~v
MEMW~v
I/OR~v
I/OW~
Φ1v
Φ2v
WAITv
READYv
RESET
SYNC
8080
DMA REQUESTv
INT REQUESTv
INT ENABLE
TANKv
OSCv
Φ2(TTL)v
RDYINv
RESIN~
8228
8224
BUSEN~
XTAL
STATUS STROBE~
∆ία
υλοςU
ελέγ
χου
∆ία
υλοςU
δεδ
οµ
ένω
ν
∆ία
υλοςU
διε
υθ
ύνσ
εων
Ένας µεγάλος αριθµός µνηµών και συσκευών Ι/Ο µπορούν να συνδεθούν
απευθείας µε το δίαυλο δεδοµένων του 8228, ενώ τέτοιες συνδέσεις µε το
δίαυλο δεδοµένων του 8080 δεν είναι εφικτές, καθώς ο δίαυλος του 8080
έχει µικρή οδηγητική ικανότητα (fanout).
O 8228 συνδυάζει τα τρία σήµατα ελέγχου του 8080 WR~, DBIN και HLDA
µε τα σήµατα κατάστασης που υπάρχουν στο δίαυλο δεδοµένων κατά τη
διάρκεια του κύκλου Τ2 προκειµένου να παράγει το δίαυλο των σηµάτων
ελέγχου του συστήµατος ως εξής:
MEMR~ : ανάγνωση από µνήµη.
MEMW~ : εγγραφή σε µνήµη.
I/OR~ : ανάγνωση από εξωτερική Ι/Ο συσκευή.
I/OW~ : εγγραφή σε εξωτερική Ι/Ο συσκευή.
INTA~ : αναγνώριση διακοπής.
Το σήµα αναγνώρισης διακοπής INTA~ έχει δύο ειδικά χαρακτηριστικά, που
θα πρέπει να εξηγήσουµε. Αυτό το σήµα µπορεί να συνδεθεί σε δυναµικό
+12 V διαµέσου µιας αντίστασης 1kΩ, οπότε ο 8228 υποθέτει ότι υπάρχει
µόνο µια πιθανή πηγή διακοπής µέσα στον µικροϋπολογιστή. Ο 8228 εισά-
γει αυτόµατα τον κώδικα λειτουργίας µιας εντολής RST σε ανταπόκριση της
αναγνώρισης εντολής. Αυτό σηµαίνει ότι η εξωτερική συσκευή δεν χρειά-
ζεται να παρέχει τον κώδικα λειτουργίας της πρώτης εντολής µετά τη δια-
κοπή και ότι οι ρουτίνες εξυπηρέτησης της διακοπής ξεκινάνε µε την εκτέ-
λεση της εντολής RST.
Εάν η εξωτερική συσκευή ανταποκρίνεται στο χαµηλό παλµό INTA~ παρέ-
χοντας το πρώτο byte του κώδικα λειτουργίας της εντολής CALL
(110011012), τότε ο 8228 αυτόµατα παράγει δύο άλλα χαµηλού παλµού
INTA~ για τους δύο επόµενους κύκλους µηχανής.
Τα εξωτερικά κυκλώµατα µπορούν να χρησιµοποιήσουν τους παλµούς
INTA~ σαν ένα σήµα απενεργοποίησης της µνήµης (memory deselect) και
σαν σήµα επιλογής της εξωτερικής συσκευής που προκάλεσε τη διακοπή.
9 93 . 8 ™ À ™ ∫ ∂ À ∂ ™ À ¶ √ ™ ∆ ∏ ƒ π • ∏ ™
Περιγράψτε τη διασύνδεση του 8080 µε τη γεννήτρια ρολογιού 8224 και
τον ελεγκτή συστήµατος 8228.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘3.11
1 0 0 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
3.9 ¢È·ÊÔÚ¤˜ ÙÔ˘ 8080 Ì ÙÔÓ 8085
H βασική φιλοσοφία πίσω από τον 8085 είναι η ύπαρξη της εξέλιξης της
τεχνολογίας, χωρίς όµως την απώλεια των ήδη υπαρχόντων επενδύσεων σε
λογισµικό και σε υλικό. Για το λόγο αυτό ο 8085 παρέχει σε κάποιο χρήστη
του 8080, που θα αποφασίσει ν' αλλάξει τον εξοπλισµό του, µια σαφή αύξη-
ση της απόδοσης, µια µείωση του αριθµού των ολοκληρωµένων κυκλωµά-
των του συστήµατος, καθώς και λειτουργία µε µια µόνο πηγή τροφοδοσίας
(+5 V). Από την άλλη πλευρά, για κάποιον καινούριο χρήστη ο 8085 παρου-
σιάζεται ως η εκλέπτυνση του πιο δηµοφιλούς µικροεπεξεργαστή, του 8080.
Τα ίδια εργαλεία, που η Intel παρουσίασε για τον 8080, µπορούν να χρησι-
µοποιηθούν και από τον 8085.
Ο 8085 περιλαµβάνει ενσωµατωµένες τις λειτουργίες της γεννήτριας ρολο-
γιού και του ελεγκτή συστήµατος, λειτουργίες που στον 8080 απαιτούσαν
ξεχωριστά ολοκληρωµένα κυκλώµατα.
Ο 8085 είναι 100% συµβατός σε ό,τι αφορά το λογισµικό µε τον 8080. H
συµβατότητα αυτή είναι στο επίπεδο του κώδικα µηχανής, έτσι ώστε υπάρ-
χοντα προγράµµατα του 8080 να µπορούν να εκτελεστούν στον 8085, χωρίς
να απαιτούνται αλλαγές. Τα οφέλη από τη συµβατότητα είναι, αναµφισβή-
τητα, πολύ µεγάλα. Το σηµαντικότερο όµως από όλα είναι το ότι µε τον
τρόπο αυτό αποφεύγεται ένα αρκετά µεγάλο κόστος: αυτό της "εκπαίδευ-
σης" των προγραµµατιστών. Ένα καινούριο ή τροποποιηµένο σύνολο εντο-
λών θα απαιτούσε από τους προγραµµατιστές να µάθουν το νέο σύνολο των
εντολών, µε συνέπεια τη µείωση της παραγωγικότητάς τους. H συµβατότη-
τα εξασφαλίζει ότι τέτοιες απώλειες δεν θα συµβούν ποτέ. H πρόσθεση δύο
επιπλέον εντολών στο ρεπερτόριο του 8085 γίνεται χρησιµοποιώντας δύο
από τους αχρησιµοποίητους κωδικούς λειτουργίας του 8080, και έτσι επι-
τυγχάνεται η επιθυµητή συµβατότητα χωρίς προβλήµατα.
Στον τοµέα του υλικού, ο 8085 προσφέρει όλες τις λειτουργίες του 8080. Επι-
πλέον, το γεγονός ότι στον 8085 η τροφοδοσία παρέχεται από µια µόνο πηγή των
+5 V µειώνει σηµαντικά τον αριθµό των απαιτούµενων εξαρτηµάτων για τα πιο
πολλά συστήµατα και απλουστεύει την εξέλιξη και το σχεδιασµό του υλικού.
Βρείτε τις λογικές σχέσεις, που συνδέουν το κάθε σήµα ελέγχου, που παρά-
γει ο ελεγκτής συστήµατος 8228 µε τα σήµατα ελέγχου και κατάστασης,
που παράγει ο 8080.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
3.12
Μία από τις σηµαντικότερες αλλαγές σε σχέση µε τον 8080 είναι η πολυπλεξία
µέρους του διαύλου διευθύνσεων µε το δίαυλο δεδοµένων. Αυτό σηµαίνει ότι
στους 8 ακροδέκτες διευθύνσεων/δεδοµένων εµφανίζονται τα 8 λιγότερο σηµα-
ντικά δυαδικά ψηφία της διεύθυνσης κατά τη διάρκεια του πρώτου κύκλου
ρολογιού του κάθε κύκλου µηχανής ενώ εµφανίζονται τα δυαδικά ψηφία των
δεδοµένων κατά την διάρκεια του δεύτερου και τρίτου κύκλου ρολογιού. Με
τον τρόπο αυτό καταφέρνουµε να µειώσουµε τον αριθµό των ακροδεκτών, που
απαιτούνται για το δίαυλο δεδοµένων και το δίαυλο διευθύνσεων.
Μια άλλη διαφοροποίηση εµφανίζεται στο θέµα της διαχείρισης διακοπών,
στο οποίο ο 8080 υστερούσε σηµαντικά. Στον 8085 υπάρχουν πέντε ακρο-
δέκτες για σήµατα διακοπής. Το ένα σήµα διακοπής (INTR) είναι συµβατό
µε το αντίστοιχο του 8080 και πρέπει τα εξωτερικά κυκλώµατα να παρά-
σχουν τη διεύθυνση της ρουτίνας εξυπηρέτησης της διακοπής µέσω µιας
εντολής CALL, ενώ τα υπόλοιπα τέσσερα (RST 5.5, RST 6.5, RST 7.5 και
TRAP) παρέχουν σταθερή διεύθυνση.
Τέλος, ο 8085 διαθέτει δύο ακροδέκτες (SID, SOD), οι οποίοι µπορούν να χρη-
σιµοποιηθούν για σειριακή µετάδοση δεδοµένων µε τη βοήθεια των επιπλέον
εντολών RIM και SIM, που δεν υπάρχουν στο σύνολο εντολών του 8080.
Σε ό,τι αφορά τα ολοκληρωµένα κυκλώµατα των 8080 και 8085, δεν έχουν
την ίδια διάταξη στους ακροδέκτες τους. Αυτό συµβαίνει γιατί µε τον 8085
έχει επέλθει µείωση στις πηγές τροφοδοσίας και γιατί έχουν προστεθεί και-
νούριες λειτουργίες. O σχεδιασµός του 8085 έγινε έτσι ώστε να µειωθεί ο
χώρος του, µε συνέπεια ένα πιο αποδοτικό και βολικό "σχήµα". H µείωση
του χώρου της πλακέτας και η απαίτηση µικρού αριθµού εξαρτηµάτων
ξεπερνούν κατά πολύ αυτή την ασυµβατότητα.
1 0 13 . 9 ¢ π ∞ º √ ƒ ∂ ™ ∆ √ À 8 0 8 0 ª ∂ ∆ √ ¡ 8 0 8 5
Ο Ζ80 είναι ένας µικροεπεξεργαστής των 8 δυαδικών ψηφίων. Παρουσιά-
στηκε το 1974 από την εταιρία Zilog. Η φιλοσοφία σχεδιασµού του είναι
παρόµοια µε αυτή του Intel 8080/8085.
Ανατρέχοντας στη βιβλιογραφία που υπάρχει στο τέλος του κεφαλαίου ή σε
οποιοδήποτε άλλο βιβλίο γνωρίζετε, µελετήστε το µικροεπεξεργαστή Z80.
Αφού συγκεντρώσετε αρκετά στοιχεία, κάνετε µια σύγκριση του µικροεπε-
ξεργαστή αυτού µε τον 8080/8085 και παρουσιάστε τις διαφορές τους.
Συγκεντρώστε το ενδιαφέρον σας στα παρακάτω σηµεία:
¢Ú·ÛÙËÚÈfiÙËÙ· 3.1
1 0 2 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
™‡ÓÔ„Ë
Ο 8080 της Intel είναι ένας από τους πρώτους µικροεπεξεργαστές που κατα-
σκευάστηκαν. Απαιτεί τρία επίπεδα τάσης (–5 V, +5 V, +12 V) και αποτελεί-
ται από 40 ακροδέκτες. Ο δίαυλος διευθύνσεων µπορεί να προσπελάσει
64 KB µνήµης, ενώ ο δίαυλος δεδοµένων αποτελείται από 8 γραµµές. Ο δίαυ-
λος ελέγχου αποτελείται από 10 γραµµές ελέγχου.
Ο 8080 αποτελείται από έναν συσσωρευτή, τρεις 16–bit καταχωρητές γενι-
κού σκοπού, οι οποίοι µπορούν να προσπελαστούν και σαν έξι 8–bit κατα-
χωρητές, τον καταχωρητή κατάστασης επεξεργαστή, το µετρητή προγράµµα-
τος και το δείκτη σωρού. Ο καταχωρητής κατάστασης περιέχει πέντε δείκτες
κατάστασης (µηδενικού αποτελέσµατος, πρόσηµου, κρατουµένου, ισοτιµίας
και βοηθητικού κρατουµένου).
Ο κύκλος εντολής του 8080 χωρίζεται σε ένα έως πέντε κύκλους µηχανής, οι
οποίοι διαρκούν από τρεις έως πέντε κύκλους ρολογιού. Το πλήθος των
κύκλων µηχανής και ρολογιού εξαρτάται από το µήκος της κάθε εντολής και
την πολυπλοκότητά της.
Κατά τη διάρκεια του Τ1 κύκλου ρολογιού ενός κύκλου προσκόµισης εντολής,
ο 8080 εξάγει στο δίαυλο δεδοµένων τα σήµατα κατάστασης, τα οποία υπο-
δηλώνουν το είδος του κύκλου µηχανής που θα ακολουθήσει. Επίσης τα
περιεχόµενα του µετρητή προγράµµατος µεταφέρονται στο δίαυλο διευθύν-
σεων για να προσδιορίσουν τη θέση µνήµης, από όπου θα µεταφερθεί ο κωδι-
κός λειτουργίας της εντολής. Κατά τη διάρκεια του κύκλου Τ2, το σήµα DBIN
γίνεται ενεργό και ο δίαυλος δεδοµένων µεταβαίνει σε κατάσταση υψηλής
εµπέδησης ώστε να µπορεί η µνήµη να γράψει τα δεδοµένα. Στον κύκλο Τ3 ο
• ακροδέκτες του ολοκληρωµένου κυκλώµατος
• πλήθος και είδος καταχωρητών
• σηµαίες κατάστασης του καταχωρητή κατάστασης επεξεργαστή
• σήµατα διακοπής
• µέθοδοι διευθυνσιοδότησης
• κατηγορίες εντολών
Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της δραστηριότη-
τας εκτιµάµε πως δεν θα ξεπεράσει τις τρεις ώρες.
µικροεπεξεργαστής διαβάζει τη λέξη, που βρίσκεται στο δίαυλο δεδοµένων,
την τοποθετεί στον καταχωρητή εντολών και την αποκωδικοποιεί. Το σήµα
DBIN γίνεται ανενεργό και ο δίαυλος δεδοµένων µεταβαίνει σε κατάσταση
υψηλής εµπέδησης. Κατά τη διάρκεια του κύκλου Τ4, αυξάνεται το περιεχό-
µενο του µετρητή προγράµµατος και ο δίαυλος διευθύνσεων µεταβαίνει σε
κατάσταση υψηλής εµπέδησης.
Εάν η µνήµη δεν προλαβαίνει να µεταφέρει τα περιεχόµενα µιας θέσης µνή-
µης στο δίαυλο δεδοµένων, µπορεί χρησιµοποιώντας το σήµα READY να
εισαγάγει µεταξύ του Τ2 και του Τ3 κύκλου ρολογιού κύκλους αναµονής (wait
cycles). Επίσης µε τη βοήθεια του σήµατος HOLD µπορεί µια εξωτερική
συσκευή να απαιτήσει από το µικροεπεξεργαστή να απελευθερώσει τους διαύ-
λους δεδοµένων και διευθύνσεων ώστε να τους χρησιµοποιήσει για µεταφο-
ρά δεδοµένων. Τέλος η εντολή HALT θέτει τον επεξεργαστή σε κατάσταση
αναµονής µέχρι να συµβεί µία αίτηση διακοπής.
Το σήµα INT του 8080 δίνει τη δυνατότητα σε µια εξωτερική συσκευή να
ζητήσει από τον 8080 να διακόψει την εκτέλεση του προγράµµατος για να την
εξυπηρετήσει. Στην περίπτωση αυτή θα πρέπει η συσκευή αυτή να φροντίσει
η επόµενη εντολή, που θα εκτελέσει ο µικροεπεξεργαστής, να είναι είτε η
CALL είτε η RESTART για να αποθηκευτούν τα περιεχόµενα του µετρητή
προγράµµατος στο σωρό, ώστε µετά την εκτέλεση της ρουτίνας εξυπηρέτη-
σης της διακοπής ο µικροεπεξεργαστής να µπορεί να επανέλθει στην εκτέλε-
ση του προγράµµατος από το σηµείο που σταµάτησε προηγούµενα.
Ο 8080 περιέχει όλες τις γνωστές κατηγορίες εντολών. Οι εντολές του χρη-
σιµοποιούν την άµεση, την έµµεση, την απόλυτη και την υπονοούµενη διευ-
θυνσιοδότηση.
Σε όλα σχεδόν τα µικροϋπολογιστικά συστήµατα, ο 8080 συνοδεύεται από τη
γεννήτρια χρονισµού 8224, που είναι υπεύθυνη για την παραγωγή των σηµά-
των χρονισµού του µικροεπεξεργαστή, και από τον ελεγκτή συστήµατος 8228,
που είναι υπεύθυνος για την παραγωγή των σηµάτων χρονισµού του συστή-
µατος. Τα τρία αυτά ολοκληρωµένα κυκλώµατα πολλές φορές αναφέρονται
ως µικροεπεξεργαστής τριών ολοκληρωµένων κυκλωµάτων.
Η εξέλιξη του 8080 είναι ο µικροεπεξεργαστής 8085. Ο µικροεπεξεργαστής
αυτός περιλαµβάνει στο σύνολο εντολών του όλες τις εντολές του 8080 και
είναι απόλυτα συµβατός σε επίπεδο κώδικα λειτουργίας µε τον 8080, ώστε
όλα τα προγράµµατα του 8080 να µπορούν να εκτελεστούν χωρίς αλλαγές.
1 0 3™ Y N O æ H
1 0 4 K E º A § A I O 3 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 0 / 8 0 8 5
Σε επίπεδο υλικού, ο 8085 περιέχει τα ίδια κυκλώµατα χρονισµού και ελέγ-
χου, πολυπλέκει το δίαυλο δεδοµένων µε τις 8 λιγότερο σηµαντικές γραµµές
του διαύλου διευθύνσεων και διαθέτει τέσσερις νέους ακροδέκτες για αίτηση
διακοπής. Τέλος διαθέτει δύο ακροδέκτες και τις αντίστοιχες εντολές για σει-
ριακή µετάδοση δεδοµένων.
Οι συσκευές υποστήριξης, που διαθέτουν οι 8080 και 8085, είναι πάρα πολ-
λές και καλύπτουν πολλούς τοµείς εφαρµογών.
Στους 8080 και 8085 βασίστηκαν και οι επόµενες γενιές των x86 επεξεργα-
στών της Intel, που αποτέλεσαν τον πυρήνα των IBM συµβατών προσωπι-
κών υπολογιστών και εµφάνισαν µεγάλη επιτυχία.
BÈ‚ÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε µε την ανάγνωση του τρίτου κεφαλαίου, καλό είναι να
διαθέσετε κάποιον επιπλέον χρόνο για να µελετήσετε τα παρακάτω κείµενα:
1) Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 8. Το κεφάλαιο αυτό αναφέρεται
στους µικροεπεξεργαστές 8080/8085 δίνοντας έµφαση περισσότερο στον
8085, αναλύει την αρχιτεκτονική, τους τρόπους προσπέλασης και το
σύνολο εντολών τους και διαθέτει πολλά παραδείγµατα και ασκήσεις, οι
οποίες θα σας βοηθήσουν να κατανοήσετε καλύτερα την ύλη του τρίτου
κεφαλαίου του βιβλίου αυτού και να εξασκηθείτε.
2) Microprocessor Technology and Microcomputers, McGraw Hill, Edward
J. Pasahow, Κεφάλαιο 4. Στις σελίδες 54–61 θα βρείτε πληροφορίες για
τον 8085, τα σήµατα που διαθέτει, τα διαγράµµατα χρονισµού του και τις
διάφορες ειδικές καταστάσεις (WAIT, HOLD, HALT). Στις σελίδες 69–72
θα βρείτε παραδείγµατα εντολών και απλά προγράµµατα. Επίσης, στο
παράρτηµα (σελίδες 382–393) θα βρείτε µια περιγραφή του 8080 και του
Ζ80 που έχει παρόµοια φιλοσοφία σχεδιασµού µε τον 8085.
3) OSBORNE 4 & 8–Bit Microprocessor Handbook, A. Osborne, G. Kane,
Osborne/McGraw Hill, Κεφάλαιο 4. Στο κεφάλαιο αυτό θα βρείτε περι-
γραφή του µικροεπεξεργαστή 8080, πίνακες µε το σύνολο εντολών του
και διαγράµµατα χρονισµού για καθεµία από τις εντολές
Εάν πάλι νοιώθετε ότι έχετε κατανοήσει αρκετά τον 8080 και τον 8085, µπο-
ρείτε να προχωρήσετε στο επόµενο κεφάλαιο για να ανακαλύψετε ένα νέο
µικροεπεξεργαστή.
O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Motorola 6800
™ÎÔfi˜
Μελετώντας το κεφάλαιο αυτό θα γνωρίσετε έναν ακόµα µικροεπεξεργαστή
µε µήκος λέξης 8 δυαδικών ψηφίων, τον 6800 της Motorola. Ο µικροεπε-
ξεργαστής αυτός ήταν η απάντηση της Motorola στον 8080 της Intel.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• εξηγήσετε τη λειτουργία του καθενός από τους σαράντα ακροδέκτες του
µικροεπεξεργαστή 6800.
• ορίσετε το πλήθος των γραµµών των τριών διαύλων επικοινωνίας που δια-
θέτει.
• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή, καθώς
και τη λειτουργία του καθενός.
• χωρίσετε µία εντολή του 6800 σε κύκλους µηχανής και ρολογιού.
• αναφέρετε τις λειτουργίες που επιτελούνται σε κάθε κύκλο µηχανής (κύκλο
ρολογιού) µιας εντολής, καθώς και το χρονισµό των σηµάτων ελέγχου.
• διακρίνετε τρεις ειδικές καταστάσεις λειτουργίας του 6800.
• περιγράψετε τον τρόπο, µε τον οποίο ικανοποιούνται οι αιτήσεις διακοπής
της λειτουργίας του µικροεπεξεργαστή.
• ορίσετε τους πέντε τρόπους διευθυνσιοδότησης που υπάρχουν στο σύνολο
εντολών του.
• καταγράψετε τις διαφορές µεταξύ του 6800 και του 8080/8085.
ŒÓÓÔȘ ÎÏÂȉȿ
• Αρχικοποίηση
• Γεννήτρια Ρολογιού
• ∆ιαχείριση ∆ιακοπών
• Καταστάσεις WAIT/HOLD/HALT
• Κύκλος προσκόµισης εντολής
• Motorola 6800
4∫ ∂ º ∞ § ∞ π √
1 0 6 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Στο κεφάλαιο αυτό εξετάζουµε έναν ακόµα µικροεπεξεργαστή, τον Motorola
6800. Ο επεξεργαστής αυτός ακολουθεί παρόµοια φιλοσοφία σχεδιασµού µε
τον 8080/8085. Εάν έχετε κατανοήσει τον 8080/8085, τότε θα είναι εύκολο
να κατανοήσετε και τον 6800. Εάν πάλι δεν είστε και τόσο σίγουροι, µελετώ-
ντας το κεφάλαιο αυτό και ανατρέχοντας, όπου χρειάζεται, στην αντίστοιχη
παράγραφο του προηγούµενου κεφαλαίου, θα µπορέσετε να κατανοήσετε πλή-
ρως και τους δύο µικροεπεξεργαστές. Κατά τη διάρκεια της µελέτης σας, θα
πρέπει να έχετε υπόψη σας τα χαρακτηριστικά του 8080/8085, ώστε να µπο-
ρείτε να τα συγκρίνετε µε αυτά του 6800. Η ενότητα 4.1 έχει χωριστεί σε τρεις
ανεξάρτητες υποενότητες ώστε να µπορείτε να τη µελετήσετε τµηµατικά.
4.1 H aÚ¯ÈÙÂÎÙÔÓÈ΋ ÙÔ˘ 6800
O 6800 παρουσιάστηκε από την Motorola ως ανταγωνιστής του 8080 της
Intel, του αντικαταστάτη δηλαδή του 8008. O σχεδιασµός του είναι φανερά
εµπνευσµένος από τον 8008 και τη φιλοσοφία των mini υπολογιστών. Με
µια πρώτη µατιά παρατηρούµε ότι το πιο σηµαντικό χαρακτηριστικό του
6800 είναι η σχετική απλότητά του. H Motorola παρουσίασε τον 6800 στα
µέσα της δεκαετίας του '70 (1974). Από τότε ανέπτυξε την οικογένεια 6800
µε νεότερα µέλη, που γενικά είναι συµβατά από πλευράς λογισµικού – και
λιγότερο από πλευράς υλικού – µε τον 6800.
Οι 6800, 6802 (6800 µε εσωτερικό κύκλωµα χρονισµού και RAM) και ο πιο
ισχυρός 6809 είναι µικροεπεξεργαστές µε µήκος λέξης 8 δυαδικών ψηφίων,
που έχουν το χαρακτηριστικό της εύκολης χρήσης. Ειδικές εκδόσεις της οικο-
γένειας 6800, όπως οι 6801, 6804, 68HC04, 6805, 68HC05, 68HC11, επει-
δή περιέχουν ενσωµατωµένη την κύρια µνήµη και άλλα κυκλώµατα µέσα
στο ολοκληρωµένο κύκλωµα του µικροεπεξεργαστή, περιγράφονται συχνά
ως Single–Chip Computers.
4.1.1 °ÂÓÈο ¯·Ú·ÎÙËÚÈÛÙÈο
Το διάγραµµα της εσωτερικής οργάνωσης του 6800 φαίνεται στο σχήµα 4.1.
Οι αριθµοί που αναγράφονται δίπλα στις εισόδους ή εξόδους είναι οι αριθ-
µοί των αντίστοιχων ακροδεκτών του 6800. Όπως είναι γνωστό, ο 6800 έχει
δίαυλο δεδοµένων των 8 δυαδικών ψηφίων, ο οποίος µπορεί να βρίσκεται
σε τρεις καταστάσεις (υψηλό δυναµικό, χαµηλό δυναµικό και κατάσταση
υψηλής εµπέδησης). Ο δίαυλος διευθύνσεων αποτελείται από 16 γραµµές,
γεγονός που οδηγεί στο συµπέρασµα ότι µπορεί να διευθυνσιοδοτήσει µέχρι
64 KB µνήµης.
H κεντρική µονάδα επεξεργασίας περιέχει έναν 16–bit µετρητή προγράµµα-
τος, έναν 16–bit δείκτη σωρού, έναν 16–bit καταχωρητή δείκτη, δύο 8–bit συσ-
σωρευτές A, B και έναν 8–bit καταχωρητή κατάστασης επεξεργαστή. Τα εννέα
σήµατα ελέγχου, που ο 6800 διαθέτει, είναι RESET~, NMI~, HALT~, IRQ~,
TSC, DBE (είσοδοι) και BA, VMA, R/W~ (έξοδοι). Ο χρονισµός του µικρο-
επεξεργαστή επιτυγχάνεται µε τη βοήθεια των εισόδων ρολογιού Φ1 και Φ2.
O 6800 αποτελείται από τα εξής κύρια δοµικά στοιχεία: την αριθµητική και
λογική µονάδα, τη µονάδα ελέγχου µε τον αποκωδικοποιητή εντολών και
τους καταχωρητές.
1 0 74 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 6 8 0 0
1 0 8 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
A15v
25
A14v
24
A13v
23
A12v
22
A11v
20
A10v
19
A9v
18
A8v
17
26v
D7
27v
D6
28v
D5
29v
D4
30v
D3
31v
D2
32v
D1
33v
D0
Aποµονωτής διευθύνσεων
Aποµονωτής δεδοµένων
Aποµονωτής διευθύνσεων
A7v
16
A6v
15
A5v
14
A4v
13
A3v
12
A2v
11
A1v
10
A0v
9
Mετρητήςv
προγράµµατοςv
H
Mετρητήςv
προγράµµατοςv
L
Kαταχωρητήςv
σωρούv
H
Kαταχωρητήςv
σωρούv
L
Kαταχωρητήςv
δείκτηv
H
Kαταχωρητήςv
δείκτηv
L
Kαταχωρητήςv
κατάστασηςv
επεξεργαστή
Aριθµητικήv
λογικήv
µονάδα
Συσσωρευτήςv
A
Συσσωρευτήςv
B
Kαταχωρητήςv
εντολών
Clock, Φ1 3v
Clock, Φ2 37v
RESET~ 40v
NMI~ 6v
HALT~ 2v
IRQ~ 4v
TSC 9v
DBE 36v
BA 7v
VMA 5v
R/W~ 34
Aποκωδικοποίησηv
εντολών καιv
έλεγχος
Vcc = Pin 8v
Vss = Pins 1, 21
™¯‹Ì· 4.1Το λειτουργικό διάγραµµα του 6800
1 0 94 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 6 8 0 0
H αριθµητική και λογική µονάδα εκτελεί όλες τις αριθµητικές και λογικές
λειτουργίες. Τα αποτελέσµατα αποθηκεύονται συνήθως σ' έναν από τους δύο
συσσωρευτές.
O καταχωρητής εντολής τροφοδοτεί τον αποκωδικοποιητή εντολών στη
µονάδα ελέγχου. O αποκωδικοποιητής εντολών καθορίζει τη διαδικασία που
θα πρέπει να ακολουθηθεί για την εκτέλεση µίας εντολής και κατευθύνει τη
µονάδα ελέγχου για τη δηµιουργία των κατάλληλων εσωτερικών και εξωτε-
ρικών σηµάτων για το σωστό χρονισµό της εντολής.
O 6800 απαιτεί ένα ρολόι µε δύο µη επικαλυπτόµενες φάσεις. Το κύκλωµα του
ρολογιού είναι τοποθετηµένο έξω από το ολοκληρωµένο κύκλωµα του 6800 και
τροφοδοτεί τις εισόδους ρολογιού Φ1 και Φ2. Το ρολόι συγχρονίζει τις εσωτερι-
κές λειτουργίες του µικροεπεξεργαστή και τις εξωτερικές συσκευές. H διάρκεια
του κύκλου ρολογιού µπορεί να είναι από 1 έως 10 µs. O κύκλος ρολογιού δεν
µπορεί να είναι µεγαλύτερος από 10 µs, καθώς σε µία τέτοια περίπτωση κάποι-
οι από τους εσωτερικούς καταχωρητές χάνουν τα δεδοµένα τους, επειδή ο 6800
αποτελείται από δυναµικά (dynamic) και όχι στατικά (static) κυκλώµατα.
4.1.2 OÈ Î·Ù·¯ˆÚËÙ¤˜ ÙÔ˘ 6800
Ο 6800 διαθέτει τους παρακάτω καταχωρητές:
• ∆ύο 8–bit συσσωρευτές A, B, οι οποίοι χρησιµεύουν για εκτέλεση αριθ-
µητικών και λογικών πράξεων, για προσωρινή αποθήκευση ή µεταφορά
δεδοµένων ή σαν µετρητές. Και στους δύο συσσωρευτές εφαρµόζονται
όλες οι εντολές µε µία και µόνη εξαίρεση: εντολές που µεταφέρουν κατα-
στάσεις από τον συσσωρευτή στον καταχωρητή κατάστασης επεξεργαστή
και εντολές προσαρµογής δεκαδικών αριθµών (DAA) εφαρµόζονται µόνο
στον A και όχι στον Β.
• Έναν 16–bit καταχωρητή δείκτη, ο οποίος χρησιµεύει είτε για να απλοποιεί
την προσπέλαση σε διαδοχικές θέσεις µνήµης (π.χ. επεξεργασία στοιχεί-
ων πινάκων) είτε σαν µετρητής είτε για προσωρινή αποθήκευση ή µετα-
φορά δεδοµένων.
• Έναν 16–bit µετρητή προγράµµατος, που χρησιµεύει για να ελέγχει τη ροή
του προγράµµατος. Το περιεχόµενό του αυξάνεται έτσι ώστε, όταν εκτε-
λεστεί µια εντολή, να δείχνει τη διεύθυνση της επόµενης εντολής, που πρέ-
πει να ανακληθεί από τη µνήµη, για να εκτελεστεί.
• Έναν 8–bit καταχωρητή κατάστασης επεξεργαστή, του οποίου το περιεχόµενο
1 1 0 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
παρέχει πληροφορίες σχετικές µε το αποτέλεσµα αριθµητικών ή λογικών πρά-
ξεων ή µε την ύπαρξη ή απουσία ειδικών σηµάτων (π.χ. αιτήσεις διακοπής).
• Έναν 16–bit καταχωρητή σωρού, ο οποίος δείχνει κάθε φορά τη διεύθυν-
ση της κορυφής του σωρού στη µνήµη. Λόγω της φύσης των εντολών του
6800 είναι πιο λογικό να θεωρούµε τον καταχωρητή αυτόν ως κάτι ανά-
µεσα σε καταχωρητή σωρού και µετρητή δεδοµένων. Είναι επίσης πολύ
εύκολο, µε χρήση κατάλληλων εντολών, να αποθηκεύουµε το περιεχόµε-
νο του δείκτη σωρού και του καταχωρητή δείκτη στην κύρια µνήµη και
να τους χρησιµοποιούµε όπου χρειάζονται.
O καταχωρητής κατάστασης επεξεργαστή του 6800 χρησιµοποιεί 6 δυαδικά
ψηφία ως σηµαίες κατάστασης (flags). Τα δύο περισσότερο σηµαντικά δυα-
δικά ψηφία του καταχωρητή κατάστασης είναι µόνιµα στη λογική τιµή 1. Οι
εντολές διακλάδωσης ελέγχουν τις σηµαίες κατάστασης για να αποφασίσουν
αν ικανοποιούνται οι συνθήκες διακλάδωσης ή όχι.
Οι σηµαίες κατάστασης πρόσηµου (Negative – N), κρατούµενου (Carry – C),
βοηθητικού κρατούµενου (Half Carry – H) και µηδενικού αποτελέσµατος (Zero
– Z) έχουν όµοια λειτουργία µε τους αντίστοιχους του 8080/8085.
1 1 I Z C
b7
b6
b5
b3
b1
b4
b2
b0
H N V
PSW
A
B
X
SP
PC
Kαταχωρητής κατάστασης επεξεργαστή
Συσσωρευτής
Συσσωρευτής
Kαταχωρητής δείκτη
Kαταχωρητές σωρού
Mετρητής προγράµµατος
Kαταχωρητής κατάστασης επεξεργαστή
™¯‹Ì· 4.2
Οι καταχωρητές του 6800
Η σηµαία υπερχείλισης (Overflow – V) υποδηλώνει υπερχείλιση σε αριθµητική
συµπληρώµατος ως προς 2. Όπως γνωρίζετε, στην αριθµητική συµπληρώµατος
ως προς δύο, σε ένα byte µπορούµε να αποθηκεύσουµε τους προσηµασµένους
αριθµούς από +128 έως –127. Εάν το αποτέλεσµα µιας αριθµητικής πράξης ξεπε-
ράσει το διάστηµα αυτό (π.χ. όπως συµβαίνει στην περίπτωση µίας πρόσθεσης
του δεκαδικού αριθµού +80 µε το δεκαδικό αριθµό +60), τότε η σηµαία υπερ-
χείλισης (V) τίθεται στην τιµή 1, για να προειδοποιήσει ότι το αποτέλεσµα της
πρόσθεσης δεν είναι σωστό, αφού δεν µπορεί να αποθηκευτεί σε ένα byte.
Η σηµαία διακοπής (Interrupt – I) ελέγχει την ικανότητα του µικροεπεξεργα-
στή να δέχεται ή όχι αιτήσεις διακοπής. Όταν η τιµή της σηµαίας αυτής είναι
1, τότε καµία αίτηση διακοπής δεν γίνεται δεκτή. Όταν η σηµαία έχει την τιµή
0, τότε µπορεί να δεχτεί αιτήσεις διακοπής (για τη διαδικασία και τον τρόπο
διαχείρισης των διακοπών θα µιλήσουµε αναλυτικότερα στην ενότητα 4.4).
4.1.3 AÎÚÔ‰¤ÎÙ˜ Î·È Û‹Ì·Ù·
O 6800 είναι ένας 8–bit επεξεργαστής σε DIP (Dual In–line Package)
συσκευασία των 40 ακροδεκτών, όπως δείχνει το σχήµα 4.3. Ο 6800 πρω-
τοεµφανίστηκε µε συχνότητα ρολογιού 1,0 MHz, ενώ αργότερα εµφανίστη-
καν και ταχύτερες εκδόσεις του.
Οι ακροδέκτες του 6800 µπορούν να οµαδοποιηθούν ως δεχόµενοι σήµατα
χρονισµού, σήµατα τροφοδοσίας, είσοδοι/έξοδοι διαύλου δεδοµένων, έξο-
δοι διαύλου διευθύνσεων και σήµατα ελέγχου. Τα βέλη στους ακροδέκτες
του 6800 δείχνουν τη φορά ροής των σηµάτων.
• Σήµατα χρονισµού (Φ1, Φ2): Οι ακροδέκτες αυτοί δέχονται τα σήµατα
χρονισµού από το εξωτερικό κύκλωµα ρολογιού.
• Tροφοδοσία (VCC, VSS): Οι ακροδέκτες τροφοδοσίας του ολοκληρωµέ-
νου κυκλώµατος. Παρατηρήστε ότι απαιτείται µία µόνο τάση τροφοδο-
σίας (+5 V) και όχι τρεις, όπως στην περίπτωση του 8080.
• ∆ίαυλος δεδοµένων (D0–D7): Οι 8 γραµµές δεδοµένων D0–D7 του 6800
είναι τριών καταστάσεων και συνδέονται στο δίαυλο δεδοµένων του
συστήµατος. Οι γραµµές αυτές χρησιµοποιούνται για τη µεταφορά δεδο-
µένων από και προς τη µνήµη και τις συσκευές εισόδου/εξόδου.
• Read/Write Control (R/W~): H έξοδος R/W~ είναι µια γραµµή ελέγχου
που δηλώνει ότι ο µικροεπεξεργαστής πρόκειται να κάνει ανάγνωση ή εγγρα-
φή. Μία υψηλή κατάσταση της γραµµής αυτής (λογική τιµή “1”) σηµατο-
δοτεί ότι εκτελείται λειτουργία ανάγνωσης, ενώ αντίστοιχα µια χαµηλή κατά-
σταση (λογική τιµή “0”) σηµατοδοτεί ότι εκτελείται λειτουργία εγγραφής.
• Data Bus Enable (DBE): H είσοδος αυτή ελέγχει τις γραµµές του διαύ-
λου δεδοµένων του µικροεπεξεργαστή. Μία λογική τιµή “1” ενεργοποιεί
1 1 14 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 6 8 0 0
1 1 2 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
τις γραµµές δεδοµένων, ενώ µια λογική τιµή “0” τις απενεργοποιεί (δηλα-
δή τις πηγαίνει σε κατάσταση υψηλής εµπέδησης). Επειδή η µεταφορά
δεδοµένων από ή προς τη µνήµη και τις συσκευές εισόδου/εξόδου γίνεται
όταν το σήµα Φ2 είναι σε λογική τιµή “1”, το σήµα DBE εµφανίζεται πολ-
λές φορές συνδεµένο µε το σήµα Φ2.
• ∆ίαυλος διευθύνσεων (A0–A15): Οι 16 έξοδοι των γραµµών διευθύνσε-
ων του µικροεπεξεργαστή συνδέονται στο δίαυλο διευθύνσεων του συστή-
µατος. Οι γραµµές αυτές χρησιµοποιούνται για τη διευθυνσιοδότηση των
µνηµών και των συσκευών εισόδου/εξόδου.
• Valid Memory Address (VMA): Όταν η έξοδος VMA τεθεί στη λογική
τιµή “1”, πληροφορεί τις άλλες συσκευές του συστήµατος ότι η διεύθυν-
ση που βρίσκεται στο δίαυλο διευθύνσεων είναι έγκυρη.
• Three State Control (TSC): Όταν το σήµα TSC οδηγείται στη λογική τιµή
“1” από µια εξωτερική συσκευή, όλες οι γραµµές διευθύνσεων και το σήµα
ανάγνωσης/εγγραφής (R/W~) πηγαίνουν σε κατάσταση υψηλής εµπέδη-
σης. H γραµµή TSC χρησιµοποιείται σε λειτουργίες µεταφοράς δεδοµένων
χωρίς τη βοήθεια του µικροεπεξεργαστή (λειτουργίες απευθείας προσπέ-
λασης της µνήµης, DMA). Όταν το µικροϋπολογιστικό σύστηµα δεν περιέ-
χει τέτοιες λειτουργίες, το σήµα TSC οδηγείται σε λογική τιµή “0”.
• Bus available (BA): Όταν η έξοδος BA βρίσκεται στη λογική τιµή “1”
πληροφορεί τις εξωτερικές συσκευές ότι ο µικροεπεξεργαστής έχει στα-
µατήσει να εκτελεί εντολές. O µικροεπεξεργαστής σταµατά να εκτελεί
εντολές είτε λόγω της εντολής αναµονής WAIT (WAI) είτε λόγω της ενερ-
γοποίησης της εισόδου HALT. H γραµµή ελέγχου BA παρέχει µια µέθο-
δο "ειδοποίησης" των εξωτερικών συσκευών ότι ο δίαυλος δεδοµένων
είναι σε κατάσταση υψηλής εµπέδησης και µπορεί να χρησιµοποιηθεί για
λειτουργίες απευθείας προσπέλασης της µνήµης.
• Halt (HALT~): Όταν η είσοδος αυτή βρίσκεται στη λογική τιµή “0”, ο
µικροεπεξεργαστής µεταβαίνει σε κατάσταση στάσης επεξεργασίας. Οι
γραµµές τριών καταστάσεων πηγαίνουν σε κατάσταση υψηλής εµπέδη-
σης, ενώ ο µικροεπεξεργαστής σταµατά. Η είσοδος αυτή µπορεί να χρη-
σιµοποιηθεί στη βήµα προς βήµα εκτέλεση ενός προγράµµατος κατά τη
διαδικασία εύρεσης πιθανών λογικών λαθών (debugging). Πολλές φορές
η είσοδος αυτή απενεργοποιείται οδηγώντας τη στη λογική τιµή “1”.
Ακροδέκτης Περιγραφή Τύπος
Α0–Α15 Γραµµές διευθύνσεων Έξοδος, τριών καταστάσεων
D0–D7 Γραµµές δεδοµένων ∆ιπλής κατεύθυνσης, τριών καταστάσεων
HALT~ Σήµα στάσης επεξεργασίας Είσοδος
TSC Σήµα ελέγχου δίαυλου διευθύνσεων Είσοδος
R/W~ Σήµα ανάγνωσης/εγγραφής Έξοδος, τριών καταστάσεων
VMA Σήµα έγκυρης διεύθυνσης Έξοδος
DBE Σήµα ελέγχου δίαυλου δεδοµένων Είσοδος
BA Σήµα κατάστασης διαύλων Έξοδος
IRQ~ Σήµα ενεργοποίησης διακοπής IRQ Είσοδος
RESET Σήµα αρχικοποίησης Είσοδος
NMI~ Ενεργοποίηση διακοπής ΝΜΙ Είσοδος
Φ1, Φ2 Σήµατα χρονισµού Είσοδος
VSS, VCC Σήµατα τροφοδοσίας και γείωσης
1 1 34 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 6 8 0 0
1v
2v
3v
4v
5v
6v
7v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17v
18v
19v
20
RESET~v
TSCv
v
Φ2v
DBEv
v
R/W~v
D0v
D1v
D2v
D3v
D4v
D5v
D6v
D7v
A15v
A14v
A13v
A12v
Vss
40v
39v
38v
37v
36v
35v
34v
33v
32v
31v
30v
29v
28v
27v
26v
25v
24v
23v
22v
21
Vssv
HALT~v
Φ1v
IRQ~v
VMAv
NMI~v
BAv
Vccv
A0v
A1v
A2v
A3v
A4v
A5v
A6v
A7v
A8v
A9v
A10v
A11
MC6800
™¯‹Ì· 4.3 Οι ακροδέκτες του 6800
1 1 4 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
• Interrupt request line (IRQ~): Η είσοδος αυτή αποτελεί την είσοδο δια-
κοπής του µικροεπεξεργαστή. Όταν η είσοδος αυτή βρίσκεται στη λογική
τιµή “0”, ο µικροεπεξεργαστής ολοκληρώνει την τρέχουσα εντολή, απο-
θηκεύει τους καταχωρητές στο σωρό, θέτει τη σηµαία I του καταχωρητή
κατάστασης επεξεργασίας στην τιµή 1, ώστε να απορρίψει επόµενες αιτή-
σεις διακοπής, και µεταβαίνει στη ρουτίνα εξυπηρέτησης διακοπών, που
βρίσκεται στη διεύθυνση της µνήµης, που περιέχεται στις θέσεις µνήµης
FFF816 και FFF916. H διακοπή αυτή µπορεί να ενεργοποιηθεί και να απε-
νεργοποιηθεί από τον προγραµµατιστή κατά βούληση.
• Non maskable interrupt (NMI~): Η αίτηση αυτή διακοπής αντιµετωπίζεται
όπως και στην προηγούµενη περίπτωση. Η µόνη διαφορά είναι ότι η διακο-
πή αυτή δεν ελέγχεται προγραµµατιστικά και εποµένως εκτελείται πάντα µετά
το τέλος της τρέχουσας εντολής. Οι θέσεις µνήµης FFFC16 και FFFD16 περιέ-
χουν τη διεύθυνση της µνήµης, όπου ξεκινά η ρουτίνα εξυπηρέτησης της δια-
κοπής. H διακοπή NMI~ έχει µεγαλύτερη προτεραιότητα από την IRQ~.
• Reset line (RESET~): Η µετάβαση του σήµατος αυτού από τη λογική τιµή
“1” στη λογική τιµή “0” οδηγεί το µικροεπεξεργαστή στη ρουτίνα εξυπη-
ρέτησης Reset ή Restart, η αρχή της οποίας βρίσκεται στη διεύθυνση που
υποδεικνύεται από τις θέσεις µνήµης FFFE16 και FFFF16. H είσοδος αυτή
χρησιµοποιείται για την αρχικοποίηση του µικροεπεξεργαστή.
Ποιους καταχωρητές διαθέτει ο µικροεπεξεργαστής 6800;ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
4.1
Έστω ότι ο συσσωρευτής Α περιέχει την τιµή 4616 και το περιεχόµενο
της θέσης µνήµης 011216 είναι 3C16. Εάν εκτελέσουµε την εντολή
ADDA $0112 του µικροεπεξεργαστή, η οποία προσθέτει τα περιεχόµενα
του Α και της θέσης µνήµης 011216 και αποθηκεύει το αποτέλεσµα πίσω
στον Α, ποιες θα είναι οι τιµές των σηµαιών κατάστασης του καταχωρητή
κατάστασης επεξεργαστή;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
4.2
Απαριθµήστε τα σήµατα ελέγχου που περιέχει ο 6800.ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
4.3
4.2 XÚÔÓÈÛÌfi˜ ÙÔ˘ 6800 – XÚÔÓÈ΋ ·ÎÔÏÔ˘ı›· ÂÎÙ¤ÏÂÛ˘ ÂÓÙÔÏÒÓ
™ÎÔfi˜
Ο 6800 χρησιµοποιεί µια εντελώς διαφορετική φιλοσοφία όσον αφορά στο
χρονισµό των σηµάτων ελέγχου µε τους διαύλους διευθύνσεων και δεδοµέ-
νων, η οποία είναι πολύ πιο απλή. Σκοπός της ενότητας αυτής είναι να σας
παρουσιάσει αυτές τις ακολουθίες χρονισµού.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα έχετε ολοκληρώσει τη µελέτη αυτής της ενότητας θα µπορείτε να
περιγράψετε πώς µεταβάλλονται τα σήµατα χρονισµού κατά τη διάρκεια ενός
κύκλου µηχανής του 6800.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Εάν έχετε κατανοήσει τις αντίστοιχες ακολουθίες χρονισµού του 8080/8085,
προχωρήστε άφοβα. Εάν σας έχουν δηµιουργηθεί κάποιες απορίες από το
προηγούµενο κεφάλαιο, ίσως το κείµενο που ακολουθεί σας βοηθήσει να τις
λύσετε.
O 6800 χρησιµοποιεί ένα συνδυασµό δύο σηµάτων ρολογιού για το χρονι-
σµό των λειτουργιών µέσα στο µικροεπεξεργαστή και γενικότερα στο µικρο-
ϋπολογιστικό σύστηµα. Αυτά τα δύο σήµατα φαίνονται στο σχήµα 4.4.
Παρατηρούµε ότι τα σήµατα Φ1 και Φ2 είναι συµπληρωµατικά, δηλαδή όταν
το Φ1 είναι σε υψηλή κατάσταση (λογική τιµή “1”), τότε το Φ2 είναι σε χαµη-
λή (λογική τιµή “0”) και αντίστροφα.
Τα σήµατα χρονισµού Φ1, Φ2 δηµιουργούνται από ξεχωριστά ολοκληρωµέ-
να κυκλώµατα (γεννήτριες χρονισµού – σειρά 6870), ειδικά κατασκευασµέ-
να για το µικροεπεξεργαστή 6800. Ένα επιπλέον σήµα χρονισµού, που έχει
το σύµβολο E, χρησιµοποιείται για συγχρονισµό από τις διάφορες συσκευ-
ές υποστήριξης, που υπάρχουν µέσα στο µικροϋπολογιστικό σύστηµα. Κάθε
κύκλος ρολογιού των Φ1 και Φ2 αποτελεί έναν κύκλο µηχανής, όπως φαίνε-
ται και στο σχήµα 4.4.
Οι εντολές του 6800 απαιτούν από δύο έως οκτώ κύκλους µηχανής για να
εκτελεσθούν. Οι εντολές διακοπών αποτελούν εξαίρεση απαιτώντας µεγα-
λύτερο αριθµό κύκλων για την εκτέλεσή τους.
1 1 54 . 2 X ƒ √ ¡ π ™ ª √ ™ ∆ √ À 6 8 0 0 – X ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡
1 1 6 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
Υπάρχουν τρεις τύποι κύκλων µηχανής που µπορούν να λάβουν χώρα κατά
την εκτέλεση µιας εντολής:
Κύκλος ανάγνωσης: Kατά τη διάρκεια του κύκλου αυτού ένα byte δεδοµέ-
νων µεταφέρεται από τη µνήµη ή µία µονάδα εισόδου/εξόδου προς το µικρο-
επεξεργαστή.
Κύκλος εγγραφής: Kατά τη διάρκεια του κύκλου αυτού ένα byte δεδοµένων
µεταφέρεται από το µικροεπεξεργαστή προς τη µνήµη η µία µονάδα εισό-
δου/εξόδου.
Κύκλος εσωτερικής λειτουργίας: Kατά τη διάρκεια του κύκλου αυτού γίνο-
νται εσωτερικές λειτουργίες του µικροεπεξεργαστή και δεν έχουµε δραστη-
ριότητα στους διαύλους του συστήµατος.
Όλες οι εντολές του 6800 αποτελούν σύνθεση των τριών παραπάνω βασι-
κών κύκλων µηχανής.
Κύκλος ανάγνωσης
Ένας τυπικός κύκλος ανάγνωσης από τη µνήµη παρουσιάζεται στο σχήµα
4.5. Κατά τη µετάβαση του σήµατος Φ1 στη λογική τιµή “1”, το σήµα R/W~
µεταβαίνει στη λογική τιµή “1” σηµατοδοτώντας ότι πρόκειται για λειτουρ-
γία ανάγνωσης δεδοµένων από τη µνήµη και το σήµα VMA µεταβαίνει στη
λογική τιµή “1” δηλώνοντας ότι η διεύθυνση, στην οποία βρίσκονται τα
δεδοµένα, έχει τοποθετηθεί στο δίαυλο δεδοµένων.
Το σήµα αυτό, όπως και το σήµα R/W~, παραµένει στη λογική τιµή “1” µέχρι
το τέλος του κύκλου µηχανής, δηλαδή µέχρι την αρνητική ακµή του σήµατος
Φ2. Η µνήµη θα πρέπει να φροντίσει ώστε τα δεδοµένα να τοποθετηθούν στο
δίαυλο δεδοµένων το συντοµότερο δυνατό και πριν το τέλος του κύκλου µηχα-
νής. Ο µικροεπεξεργαστής µεταφέρει τα δεδοµένα στους εσωτερικούς κατα-
χωρητές του µε την αρνητική ακµή του Φ2. Τα δεδοµένα θα πρέπει να είναι
σταθερά για µια ελάχιστη περίοδο χρόνου στο τέλος του κύκλου µηχανής.
Φ1
Φ2
Kύκλοςvµηχανής
Kύκλοςvµηχανής
™¯‹Ì· 4.4
Χρονισµός στον 6800
Παρατηρούµε ότι κατά την παραπάνω διαδικασία η διεύθυνση είναι σταθε-
ρή κατά το µεγαλύτερο µέρος του κύκλου µηχανής και ότι ο δίαυλος διευ-
θύνσεων δεν µεταβαίνει ούτε στιγµή σε κατάσταση υψηλής εµπέδησης. Έτσι
λειτουργίες απευθείας προσπέλασης της µνήµης (λειτουργίες DMA) είναι
δύσκολο να υλοποιηθούν.
Κύκλος εγγραφής
Το σχήµα 4.6 παρουσιάζει έναν τυπικό κύκλο εγγραφής. H διεύθυνση, στην
οποία εγγράφονται τα δεδοµένα, είναι σταθερή στο δίαυλο διευθύνσεων καθ’
όλη τη διάρκεια του κύκλου και σηµατοδοτείται από το σήµα VMA. Τα δεδο-
µένα τοποθετούνται από το µικροεπεξεργαστή στο δίαυλο δεδοµένων µε τη θετι-
κή ακµή του σήµατος DBE κατά το πρώτο µισό του κύκλου µηχανής και παρα-
µένουν σε αυτόν µέχρι το τέλος του κύκλου µηχανής. Στο χρόνο αυτό τα δεδο-
µένα θα πρέπει να αποθηκευθούν στη µνήµη ή στη µονάδα εισόδου/εξόδου.
1 1 74 . 2 X ƒ √ ¡ π ™ ª √ ™ ∆ √ À 6 8 0 0 – X ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡
Φ1
Φ2
R/W
VMA
A0 – A15
D0 – D7
∆ιεύθυνση
∆εδοµένα
™¯‹Ì· 4.5
Κύκλος ανάγνωσης
™¯‹Ì· 4.6
Κύκλος εγγραφής
VMA
DBE
A0 – A15
D0 – D7
∆ίαυλος δεδοµένωνvσε υψηλή εµπέδηση
Φ1
Φ2
R/W
∆ιεύθυνση
∆εδοµένα
1 1 8 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
Στο χρονικό διάστηµα, στο οποίο το σήµα DBE είναι στη λογική τιµή “0”,
ο δίαυλος δεδοµένων είναι σε κατάσταση υψηλής εµπέδησης. Σε πολλές
περιπτώσεις µικροϋπολογιστικών συστηµάτων βασισµένων στον 6800, το
σήµα DBE είναι ενωµένο µε το σήµα ρολογιού Φ2.
Αν ο χρόνος, όπου το DBE είναι στη λογική τιµή “1” είναι πολύ µικρός και
δεν προλαβαίνει η µνήµη (ή η µονάδα εισόδου/εξόδου) να ανταποκριθεί στην
εγγραφή, τότε µπορούµε να τον αυξήσουµε µε δύο διαφορετικούς τρόπους:
• Mεγαλώνοντας το διάστηµα του χρόνου, όπου το DBE είναι στη λογική
τιµή “1”, και µειώνοντας το διάστηµα του χρόνου, όπου είναι στη λογική
τιµή “0” (διατηρώντας κατά τα άλλα την ίδια περίοδο ρολογιού). Στην
περίπτωση αυτή βέβαια τα σήµατα DBE και Φ2 δεν είναι πλέον τα ίδια,
ενώ θα πρέπει να λάβουµε υπόψη µας ότι υπάρχει ένας ελάχιστος χρόνος,
όπου το σήµα DBE θα πρέπει να βρίσκεται στη λογική τιµή “0”. Η περί-
πτωση αυτή φαίνεται στο σχήµα 4.7.
Φ2
DBE
™¯‹Ì· 4.7
Αλλάζοντας το DBE
Φ2
Φ1
Eπιµήκυνσηvρολογιού
™¯‹Ì· 4.8
Εκτείνοντας το χρονισµό
• Eπιµηκύνοντας την περίοδο του ρολογιού κατά τον κύκλο εγγραφής (ή
ανάγνωσης αντίστοιχα) της µνήµης. Η περίπτωση αυτή φαίνεται στο σχήµα
4.8. Η επιµήκυνση αυτή δεν µπορεί να είναι όσο µεγάλη θέλουµε, καθώς
ο 6800 αποτελείται από δυναµικά κυκλώµατα και µεγάλα στατικά χρονι-
κά διαστήµατα ρολογιού έχουν ως αποτέλεσµα την απώλεια των δεδοµέ-
νων των εσωτερικών καταχωρητών του. Τα σήµατα Φ1 και Φ2 δεν µπορούν
να διατηρηθούν σταθερά για χρονικό διάστηµα µεγαλύτερο των 9,5 µs.
Κύκλος εσωτερικής λειτουργίας
Κατά τη διάρκεια ενός κύκλου εσωτερικής λειτουργίας δεν υπάρχει καµία
δραστηριότητα στους διαύλους του µικροεπεξεργαστή. Το σήµα R/W~ βρί-
σκεται σε υψηλό δυναµικό, ενώ το σήµα VMA σε χαµηλό δυναµικό.
4.3 OÈ 4.3 OÈ Î·Ù·ÛÙ¿ÛÂȘ Wait, Hold Î·È Halt
Όπως στον 8080/8085, έτσι και στον 6800 µπορούµε να εισάγουµε το µικρο-
επεξεργαστή σε ειδικές καταστάσεις που χρησιµοποιούνται σε συγκεκριµέ-
νες περιπτώσεις.
Με την εντολή WAIT ο 6800 τίθεται σε κατάσταση αναµονής διακοπής. H
εντολή αυτή εκτελείται όταν ο µικροεπεξεργαστής δεν έχει καµία εργασία
να εκτελέσει και εποµένως περιµένει κάποια διακοπή. Κατά την εκτέλεση
της εντολής WAIT τα περιεχόµενα των καταχωρητών αποθηκεύονται στο
σωρό και ο µικροεπεξεργαστής αναµένει µία διακοπή στους ακροδέκτες
IRQ~, NMI~ ή RESET~, όπως φαίνεται στο σχήµα 4.9. Όταν τα περιεχόµε-
να όλων των καταχωρητών αποθηκευτούν στο σωρό, ο 6800 θέτει το δίαυ-
λο διευθύνσεων και το δίαυλο δεδοµένων σε κατάσταση υψηλής εµπέδησης.
1 1 94 . 3 O π ∫ ∞∆∞ ™ ∆∞ ™ ∂ π ™ WA I T, H O L D ∫ ∞ π H A L T
Περιγράψτε τη χρονική ακολουθία εκτέλεσης ενός κύκλου µηχανής εγγρα-
φής στη µνήµη.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘4.4
Σε ποιες χρονικές περιόδους κατά τη διάρκεια ενός κύκλου εγγραφής ή
ανάγνωσης είναι το σήµα VMA ενεργό (δηλαδή στη λογική τιµή “1”);
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘4.5
Φ2
Cyclev
#1
v
#2
v
#3
v
#4
v
#5
v
#6
v
#7
v
#8
v
#9
v
#10
v
n
v
n + 1
v
n + 2
v
n + 3
v
n + 4
v
n + 5
VMA
∆ίαυλοι σεvυψηλήv
εµπέδηση
Data Bus
BA
AddressvBus
Instruction
WaitvInst
PC 0-7 PC 8-15 New PC 8-15vAddress
New PC 0-7vAddress
IX0 - 7 IX8 - 15 Accumv
A
Accumv
B
SR
SP(n) SP(n-1) SP(n-2) SP(n-3) SP(n-4) SP(n-5) SP(n-6)
New PCvAddress
Πρώτη εντολή vτης ρουτίνας vεξυπηρέτησης διακοπής
FFF8 FFF9
InterruptvMask
R/W
IRQ orv
NMI
™¯‹Ì· 4.9 Η εντολή WAI
1 2 0 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
Μια συχνή χρήση της εντολής WAIT είναι για τη µεταφορά δεδοµένων µε
απευθείας προσπέλαση της µνήµης (λειτουργία DMA). Το γεγονός ότι οι
δίαυλοι του µικροεπεξεργαστή είναι σε κατάσταση υψηλής εµπέδησης µας
δίνει τη δυνατότητα να χρησιµοποιήσουµε τους δίαυλους του µικροϋπολο-
γιστικού συστήµατος για να µεταφέρουµε δεδοµένα µεταξύ δύο περιφερει-
ακών συσκευών. Επίσης, η αποθήκευση των καταχωρητών στο σωρό µας
διευκολύνει, αφού το τέλος της µεταφοράς των δεδοµένων συνήθως γνω-
στοποιείται µε µία αίτηση διακοπής,.
Εάν λοιπόν χρησιµοποιούµε τον 6800, το µόνο που χρειάζεται να κάνουµε
είναι να ξεκινήσουµε τη µεταφορά δεδοµένων µε χρήση απευθείας προσπέ-
λασης της µνήµης εκτελώντας µία εντολή WAIT. Με το τέλος της µεταφο-
ράς των δεδοµένων, δηµιουργείται µία διακοπή και συνεχίζεται η εκτέλεση
του προγράµµατος.
Μια άλλη κατάσταση, την οποία θα πρέπει να αναφέρουµε, είναι η κατά-
σταση HOLD. Με βάση την κατάσταση αυτή, µπορούµε να θέσουµε το δίαυ-
λο δεδοµένων και το δίαυλο διευθύνσεων του µικροεπεξεργαστή σε κατά-
σταση υψηλής εµπέδησης έτσι ώστε να µπορέσουν να τους χρησιµοποιή-
σουν κάποιες από τις υπόλοιπες συσκευές του µικροϋπολογιστή µας (π.χ.
υλοποιώντας µεταφορά δεδοµένων από και προς τη µνήµη).
Οι δίαυλοι διευθύνσεων και δεδοµένων µπορούν να τεθούν σε κατάσταση
υψηλής εµπέδησης χρησιµοποιώντας τα σήµατα TSC και DBE.
Το σήµα TSC ελέγχει το δίαυλο διευθύνσεων και τα σήµατα VMA και R/W~
του µικροεπεξεργαστή. Όταν το σήµα αυτό µεταβεί στη λογική τιµή “1”,
θέτει σε κατάσταση υψηλής εµπέδησης τις γραµµές του διαύλου διευθύνσε-
ων και το σήµα R/W~. Τότε τα σήµατα VMA και BA υποχρεωτικά µετα-
βαίνουν στη λογική τιµή “0”.
Το τµήµα TSC έχει όµως το επιπλέον χαρακτηριστικό ότι, όταν µεταβεί στη
λογική τιµή “1”, θα πρέπει ταυτόχρονα να σταµατήσει και το ρολόι κρατώ-
ντας το Φ1 στη λογική τιµή “1” και το Φ2 στη λογική τιµή “0”. O χρονισµός
αυτός φαίνεται καθαρά στο σχήµα 4.10. Έχουµε όµως αναφέρει ήδη ότι δεν
θα πρέπει το ρολόι του 6800 να µείνει σταθερό για περισσότερο από 9,5 µs,
γιατί αλλιώς ο µικροεπεξεργαστής χάνει όλα τα δεδοµένα των εσωτερικών
καταχωρητών του. Μπορούµε εποµένως να θέτουµε σε κατάσταση υψηλής
εµπέδησης το δίαυλο διευθύνσεων για µικρό µόνο χρονικό διάστηµα.
Μόλις η είσοδος TSC θέσει σε κατάσταση υψηλής εµπέδησης το δίαυλο διευ-
θύνσεων, η είσοδος DBE µπορεί να θέσει σε αντίστοιχη κατάσταση το δίαυ-
λο δεδοµένων του µικροεπεξεργαστή. Όταν η είσοδος DBE είναι στη λογική
τιµή “0”, ο δίαυλος δεδοµένων τίθεται σε κατάσταση υψηλής εµπέδησης.
Υπάρχουν δύο σηµαντικά σηµεία που αφορούν στη χρήση των σηµάτων TSC
και DBE. Το πρώτο είναι ότι το σήµα BA µεταβαίνει στη λογική τιµή “1”,
όταν οι δίαυλοι του µικροεπεξεργαστή έχουν τεθεί σε κατάσταση υψηλής
εµπέδησης από τα σήµατα TSC, DBE. Με τον τρόπο αυτό, το σήµα ΒΑ δεί-
χνει ότι οι δίαυλοι είναι διαθέσιµοι κατά τη διάρκεια αναµονής (WAIT State)
ή στάσης (HALT State), όπως θα περιγράψουµε παρακάτω.
Το δεύτερο σηµείο είναι ότι τα σήµατα TSC και DBE θέτουν σε κατάσταση
υψηλής εµπέδησης το δίαυλο του µικροεπεξεργαστή σε δύο ίσα µέρη. Επει-
δή, όµως, σε πολλά συστήµατα βασισµένα στον 6800 τα σήµατα Φ2 και DBE
είναι όµοια, η µετάβαση σε κατάσταση υψηλής εµπέδησης του δίαυλου διευ-
θύνσεων θέτει σε αντίστοιχη κατάσταση και το δίαυλο δεδοµένων. Η διαδι-
κασία αυτή φαίνεται στο σχήµα 4.10.
Η επόµενη κατάσταση, µε την οποία θα ασχοληθούµε, είναι η κατάσταση
HALT. Η κατάσταση HALT του 6800 είναι ισοδύναµη µε την κατάσταση
HOLD του 8080. Όταν η είσοδος HALT~ του 6800 µεταβεί στη λογική τιµή
“0”, τότε µε την ολοκλήρωση της εκτέλεσης της τρέχουσας εντολής ο δίαυ-
1 2 14 . 3 O π ∫ ∞∆∞ ™ ∆∞ ™ ∂ π ™ WA I T, H O L D ∫ ∞ π H A L T
∆ίαυλος δεδοµένωνvσε υψηλή εµπέδηση
DBE – Φ2
TSC
A0 – A15
D0 – D7
Φ1
Φ2
∆ίαυλος διευθύνσεων,v
R/W και VMAv
σε υψηλή εµπέδηση
™¯‹Ì· 4.10
Οι δίαυλοι σε κατάσταση
υψηλής εµπέδησης
1 2 2 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
λος του µικροεπεξεργαστή τίθεται σε κατάσταση υψηλής εµπέδησης. Η κατά-
σταση αυτή φαίνεται στο σχήµα 4.11. Παρατηρούµε ότι το σήµα BA έχει
λογική τιµή “1”, το VMA λογική τιµή “0”, ενώ το σήµα R/W~ και οι δίαυλοι
διευθύνσεων και δεδοµένων τίθενται σε κατάσταση υψηλής εµπέδησης.
Tελευταίος κύκλος µηχανήςvτης τρέχουσας εντολής
Kατάσταση HALT όπου v
οι δίαυλοι είναι σε v
κατάσταση υψηλής εµπέδησης
HALT
VMA
BA
A0 – A15
D0 – D7
Φ1
Φ2
Προσκόµισηvεπόµενης εντολής
R/W
™¯‹Ì· 4.11
Η κατάσταση HALT
Συνοψίζοντας, διαπιστώνουµε ότι ο 6800 παρέχει δύο τρόπους για να εκτε-
λέσει απευθείας προσπέλαση της µνήµης (DMA). Είτε µπορούν να χρησι-
µοποιηθούν τα σήµατα TSC και DBE για να αποκτηθεί έλεγχος των διαύ-
λων του συστήµατος για το χρόνο που απαιτείται για µια και µόνο µια προ-
σπέλαση (DMA) είτε µπορεί να χρησιµοποιηθεί η είσοδος HALT~, ακο-
λουθώντας την όποια εξωτερική λογική µπορεί να αποκτήσει έλεγχο του
διαύλου δεδοµένων για όσο χρόνο θέλουµε.
Επίσης επιµηκύνοντας τα σήµατα ρολογιού Φ1 και Φ2 µπορούµε να µεταφέ-
ρουµε και διευθύνσεις, που δηµιουργούνται στο µικροεπεξεργαστή, καθώς
και διευθύνσεις DMA κατά τη διάρκεια ενός κύκλου µηχανής. Το σήµα VMA
αναγνωρίζει τις διευθύνσεις που δηµιουργούνται από το µικροεπεξεργαστή.
Ο τρόπος, µε τον οποίο µπορεί να γίνει αυτό, φαίνεται στο σχήµα 4.12.
1 2 34 . 4 √ π ¢ π ∞ ∫ √ ¶ ∂ ™ ™ ∆ √ ¡ 6 8 0 0
VMA
DBE
A0 – A15
D0 – D7
Φ1
Φ2
DMA Address Normal Address
DMA Data Normal Data
™¯‹Ì· 4.12
Λειτουργία DMA
Παρατηρούµε βέβαια ότι εµφανίζονται κάποιες ιδιαίτερα πολύπλοκες από-
ψεις σχεδιασµού. Οι δυσκολίες όµως αυτές εξαφανίζονται, όταν χρησιµο-
ποιούνται οι βασικές συσκευές υποστήριξης του 6800, για να επιτευχθεί λογι-
κή απευθείας προσπέλασης της µνήµης. Ειδικότερα µπορεί να χρησιµοποι-
ηθεί το 6875 κύκλωµα χρονισµού σε συνδυασµό µε τον 6844 ελεγκτή λει-
τουργιών DMA.
Ποια η διαφορά ανάµεσα στις καταστάσεις WAIT, HOLD και HALT; Σε
ποια περίπτωση θα χρησιµοποιούσατε την καθεµία από αυτές;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘4.6
4.4 √È ‰È·ÎÔ¤˜ ÛÙÔÓ 6800
O 6800 διαθέτει τρία είδη διακοπών µε βάση το υλικό. Αυτές είναι oι εξής:
1. H αρχικοποίηση RESET~.
2. ∆ιακοπή χωρίς µάσκα (NMI~).
3. Αίτηση διακοπής (IRQ~).
Επίσης διαθέτει και µια εντολή για διακοπή µε βάση το λογισµικό (SWI).
Όταν το σήµα RESET~ διατηρείται στη λογική τιµή “0” για κάποιο χρονικό
διάστηµα και µετά µεταβαίνει στη λογική τιµή “1”, ο επεξεργαστής αυτό-
µατα µεταπηδά σε µια διαδικασία εξυπηρέτησης της διακοπής αρχικοποίη-
σης (Reset Interrupt service).
1 2 4 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
Η σηµαία I του καταχωρητή κατάστασης επεξεργαστή γίνεται 1 ώστε να
απαγορεύσει νέες διακοπές και µετά ο µετρητής προγράµµατος φορτώνεται
µε τη διεύθυνση που περιέχεται στις θέσεις µνήµης FFFE16 και FFFF16. Οι
δύο αυτές θέσεις µνήµης είναι δεσµευµένες για το διάνυσµα αρχικοποίησης
(reset vector). Το διάνυσµα αυτό περιέχει τη διεύθυνση της µνήµης, όπου
ξεκινά η ρουτίνα εξυπηρέτησης της διακοπής αρχικοποίησης.
H είσοδος διακοπής χωρίς µάσκα (NMI~) στον 6800 ενεργοποιείται, όταν το
σήµα NMI~ µεταβεί στη λογική τιµή “0”. Στην περίπτωση αυτή ο µικροε-
πεξεργαστής µεταπηδά στη διαδικασία εξυπηρέτησης της διακοπής χωρίς
µάσκα. H τρέχουσα εντολή ολοκληρώνεται, τα περιεχόµενα των καταχωρη-
τών αποθηκεύονται στο σωρό, η σηµαία I του καταχωρητή κατάστασης επε-
ξεργαστή γίνεται 1 και στο µετρητή προγράµµατος µεταφέρεται η διεύθυν-
ση που περιέχει το διάνυσµα διακοπής, που βρίσκεται στις θέσεις µνήµης
FFFC16 και FFFD16. O µικροεπεξεργαστής τότε ξεκινά την εκτέλεση της ρου-
τίνας εξυπηρέτησης της διακοπής χωρίς µάσκα.
H είσοδος αίτησης διακοπής (IRQ~) ενεργοποιείται, όταν το σήµα IRQ~ µετα-
βεί σε χαµηλή κατάσταση. Τότε ο µικροεπεξεργαστής µεταπηδά στη διαδι-
κασία εξυπηρέτησης της αίτησης διακοπής. H τρέχουσα εντολή ολοκληρώ-
νεται και ελέγχεται η σηµαία I του καταχωρητή κατάστασης επεξεργαστή.
Αν η σηµαία I έχει την τιµή 1, ο µικροεπεξεργαστής αγνοεί την αίτηση δια-
κοπής και συνεχίζει µε την εκτέλεση της επόµενης εντολής του κανονικού
προγράµµατος. Αν η σηµαία I έχει την τιµή 0, τότε ο µικροεπεξεργαστής
αποθηκεύει το περιεχόµενο των καταχωρητών στο σωρό.
Στη συνέχεια θέτει τη σηµαία I στην τιµή 1 και µεταφέρει στο µετρητή προ-
γράµµατος τη διεύθυνση που περιέχει το διάνυσµα αίτησης διακοπής, που
βρίσκεται αποθηκευµένο στις θέσεις µνήµης FFF816 και FFF916. O µικροε-
πεξεργαστής, τότε, ξεκινά την εκτέλεση της ρουτίνας εξυπηρέτησης της αίτη-
σης διακοπής.
Τα διανύσµατα διακοπών των συστηµάτων, που βασίζονται στον 6800, φαί-
νονται στο σχήµα 4.13. Οι διευθύνσεις που περιέχονται σε αυτές τις θέσεις
µνήµης αναγκάζουν τον επεξεργαστή να µεταβεί στην κατάλληλη ρουτίνα
εξυπηρέτησης διακοπής. H είσοδος αίτησης διακοπής έχει χαµηλότερη προ-
τεραιότητα και από την είσοδο RESET~ και από την είσοδο NMI~. Η χρήση
των διευθύνσεων FFF816 έως FFFF16 δεν είναι τυχαία. Συνήθως στα µικροϋ-
πολογιστικά συστήµατα, τα οποία είναι βασισµένα στον 6800, η µνήµη ROM,
η οποία περιέχει το πρόγραµµα του συστήµατος, είναι τοποθετηµένη στις
υψηλότερες θέσεις της µνήµης, ενώ η µνήµη RAM, η οποία περιέχει προσω-
ρινά αποτελέσµατα, είναι τοποθετηµένη στις χαµηλότερες θέσεις της µνήµης.
1 2 54 . 5 ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ – T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™
MSB
LSB
MSB
LSB
MSB
LSB
MSB
LSB
FFF8
∆ιάνυσµα επανεκκίνησης
∆ιάνυσµα Nonmaskable διακοπής
∆ιάνυσµα software διακοπής
∆ιάνυσµα αίτησης διακοπήςFFF9
FFFA
FFFB
FFFC
FFFD
FFFE
FFFF
™¯‹Ì· 4.13
∆ιανύσµατα διακοπών
(τα MSB και LSB
αποτελούν το σηµαντικό-
τερο και το λιγότερο
σηµαντικό byte αντίστοιχα
της διεύθυνσης)
Αρχικοποίηση του 6800
Όταν συνδέεται µε την τροφοδοσία ο 6800, αυτόµατα πυροδοτείται η αρχι-
κοποίηση του, µόλις η τάση ανέβει πάνω από τα +4.75 V. Το γεγονός ότι η
αρχικοποίηση αναπαριστά αρχικές συνθήκες εξηγεί επίσης και το λόγο για
τον οποίο δεν σώζονται τα περιεχόµενα των καταχωρητών του µικροεπε-
ξεργαστή, όπως συµβαίνει µε κάθε άλλου είδους διακοπή. Είναι φανερό ότι
όταν ξεκινάµε τη λειτουργία του συστήµατος δεν µπορεί να υπάρχουν χρή-
σιµα δεδοµένα στους καταχωρητές.
4.5 ™‡ÓÔÏÔ ÂÓÙÔÏÒÓ – TÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘
Οι εντολές του προγράµµατος αποθηκεύονται σε bytes στην κύρια µνήµη.
Ο 6800 χρησιµοποιεί εντολές των 1, 2 ή 3 bytes. Το πρώτο byte της εντολής
είναι πάντα ο κωδικός λειτουργίας και διακρίνει µια από τις 197 εντολές, που
ο µικροεπεξεργαστής µπορεί να εκτελέσει.
H Motorola οµαδοποιεί τις εντολές του 6800 στις ακόλουθες οµάδες:
1. Εντολές συσσωρευτή και µνήµης.
2. Εντολές καταχωρητή δείκτη και δείκτη σωρού.
1 2 6 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
3. Εντολές αλµάτων και διακλαδώσεων.
4. Εντολές καταχωρητή κατάστασης επεξεργαστή.
Η πρώτη οµάδα περιέχει αριθµητικές, λογικές, ελέγχου δεδοµένων και µετα-
φοράς δεδοµένων εντολές.
Η δεύτερη οµάδα περιέχει εντολές αύξησης ή ελάττωσης, φόρτωσης ή απο-
θήκευσης και µεταφοράς, που χρησιµοποιούν τον καταχωρητή δείκτη και το
δείκτη σωρού. Σ' αυτό το σηµείο θυµίζουµε ότι ο 16–bit καταχωρητής δεί-
κτης του 6800 χρησιµοποιείται όταν εκτελούµε εντολές µε τη µέθοδο διευ-
θυνσιοδότησης καταχωρητή δείκτη.
Οι εντολές άλµατος και διακλάδωσης χρησιµοποιούνται για τον έλεγχο της
µεταφοράς της εκτέλεσης του προγράµµατος από ένα σηµείο σε κάποιο
άλλο. Όλες οι εντολές διακλάδωσης χρησιµοποιούν τη µέθοδο σχετικής διευ-
θυνσιοδότησης. H εντολή "No OPeration" (NOP) (καµία λειτουργία) αυξά-
νει απλώς το µετρητή προγράµµατος κατά ένα και δεν έχει καµία επίπτωση
ούτε στις σηµαίες κατάστασης του καταχωρητή κατάστασης επεξεργασίας
ούτε στους καταχωρητές ούτε στις θέσεις µνήµης.
Οι εντολές καταχωρητή κατάστασης επεξεργαστή είναι διαθέσιµες στο χρή-
στη για απευθείας διαχείριση των σηµαιών του καταχωρητή κατάστασης επε-
ξεργαστή.
Οι τρόποι διευθυνσιοδότησης που χρησιµοποιεί ο 6800 είναι οι παρακάτω:
1. Υπονοούµενη διευθυνσιοδότηση
2. Άµεση διευθυνσιοδότηση
3. Μηδενικής σελίδας & απόλυτη διευθυνσιοδότηση
4. ∆εικτοδοτηµένη διευθυνσιοδότηση
5. Σχετική διευθυνσιοδότηση
Πολλές εντολές του 6800 χρησιµοποιούν την υπονοούµενη διευθυνσιοδό-
τηση. Οι εντολές αυτές χρησιµοποιούνται όταν δεν χρειάζεται να µεταφερ-
θούν έντελα εκτός του επεξεργαστή και είναι εντολές µεγέθους ενός byte.
Μερικά παραδείγµατα τέτοιων εντολών είναι ο µηδενισµός και η αύξηση ή
ελάττωση κατά 1 των συσσωρευτών.
Μερικά βιβλία αναφερόµενα στον 6800 παρουσιάζουν ξεχωριστά και τη
µέθοδο διευθυνσιοδότησης συσσωρευτή. Αυτή µπορεί να θεωρηθεί ως ειδι-
κή περίπτωση της υπονοούµενης διευθυνσιοδότησης.
Στις εντολές που χρησιµοποιούν άµεση διευθυνσιοδότηση, το έντελο βρί-
σκεται αµέσως µετά τον κωδικό λειτουργίας της εντολής στη µνήµη. Οι
περισσότερες άµεσες εντολές του 6800 είναι µεγέθους δύο bytes, ενώ υπάρ-
χουν και µερικές εντολές µεγέθους 3 bytes.
Οι εντολές µηδενικής σελίδας έχουν µέγεθος δύο bytes. Το πρώτο περιέχει
τον κωδικό λειτουργίας της εντολής, ενώ το δεύτερο περιέχει το λιγότερο
σηµαντικό byte της 16–bit διεύθυνσης, που περιέχει τα δεδοµένα. Το περισ-
σότερο σηµαντικό byte είναι πάντα το 00. Εκτός από τις εντολές αυτές, υπάρ-
χουν και οι εντολές που χρησιµοποιούν απόλυτη διευθυνσιοδότηση. Οι εντο-
λές αυτές έχουν µέγεθος τριών bytes, όπου το πρώτο περιέχει τον κωδικό λει-
τουργίας, ενώ τα υπόλοιπα δύο τη διεύθυνση όπου βρίσκονται τα δεδοµένα,
που απαιτεί η εντολή. Το δεύτερο byte περιέχει το περισσότερο σηµαντικό
byte της διεύθυνσης, ενώ το επόµενο το λιγότερο σηµαντικό byte της διεύ-
θυνσης. Με τον τρόπο αυτό ο 6800 µπορεί να διευθυνσιοδοτήσει όλη την
κύρια µνήµη (64 KB).
O 6800, όπως έχει ήδη αναφερθεί, περιέχει έναν 16 bit καταχωρητή δείκτη.
Οι εντολές που χρησιµοποιούν δεικτοδοτηµένη προσπέλαση έχουν µέγεθος
δύο bytes. Το πρώτο byte περιέχει τον κωδικό λειτουργίας της εντολής. Το
δεύτερο byte περιέχει µια τιµή, η οποία προστίθεται στα περιεχόµενα του
καταχωρητή δείκτη για να καθορίσει τη διεύθυνση της µνήµης, όπου υπάρ-
χουν τα δεδοµένα που απαιτεί η εντολή.
H σχετική διευθυνσιοδότηση χρησιµοποιείται στις εντολές διακλάδωσης του
6800. Οι εντολές αυτές έχουν µέγεθος δύο bytes. Το πρώτο byte περιέχει τον
κωδικό λειτουργίας της εντολής, ενώ το δεύτερο byte περιέχει την τιµή (προ-
σηµασµένος αριθµός), η οποία προστίθεται στο περιεχόµενο του µετρητή
προγράµµατος για να καθορίσει τη διεύθυνση, στην οποία θα συνεχιστεί η
εκτέλεση του προγράµµατος, εάν ισχύει η συνθήκη της εντολής.
1 2 74 . 5 ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ – T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™
Σε ένα υποθετικό µικροϋπολογιστικό σύστηµα βασισµένο στον 6800, γνω-
ρίζουµε ότι στη διεύθυνση 001216 της µνήµης είναι αποθηκευµένη η τιµή
5016, στη διεύθυνση 123316 η τιµή 2016, στη διεύθυνση 123416 η τιµή 1516,
ενώ ο καταχωρητής δείκτη X περιέχει την τιµή 122316 και ο συσσωρευτής
Α την τιµή 0516.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘4.7
1 2 8 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
4.6 ™‡ÁÎÚÈÛË ÙÔ˘ 6800 Ì ÙÔÓ 8080/8085
Συγκρίνοντας τον 6800 µε τον 8080 µπορούµε να παρατηρούµε τα εξής:
O 6800 έχει πολύ πιο απλό χρονισµό σε σχέση µε τον 8080. Ο κύκλος ρολο-
γιού στην περίπτωση του 6800 ταυτίζεται µε τον κύκλο µηχανής, ενώ στον
8080 ο κάθε κύκλος µηχανής αποτελείται από τρεις έως πέντε κύκλους ρολο-
γιού.
Ο 8080 διαθέτει διαφορετικές εντολές για ανάγνωση ή εγγραφή σε συσκευ-
ές εισόδου/εξόδου και διαφορετικές για ανάγνωση ή εγγραφή της µνήµης.
Στον 6800 όλες οι συσκευές εισόδου/εξόδου είναι προσπελάσιµες σαν θέσεις
µνήµης µε αποτέλεσµα να µην χρειάζονται ειδικές εντολές για την προσπέ-
λασή τους.
O 6800 έχει πιο απλό σύνολο σηµάτων ελέγχου, δεν πολυπλέκει το δίαυλο
δεδοµένων µε το δίαυλο διευθύνσεων ούτε χρησιµοποιεί το δίαυλο δεδοµέ-
νων για να εξάγει σήµατα κατάστασης, µε αποτέλεσµα να µην χρειάζεται
κάποια συσκευή υποστήριξης αντίστοιχη του ελεγκτή συστήµατος 8228.
O 8080 έχει τρεις τάσεις τροφοδοσίας (+5 V, –5 V, +12 V), ενώ ο 6800 µόνο
µία (+5 V).
Επίσης το σύνολο εντολών του 6800 είναι πιο κατανοητό από αυτό του 8080.
O 6800 έχει λιγότερους βασικούς τύπους εντολών, ενώ έχει περισσότερες
µεθόδους διευθυνσιοδότησης.
Η εντολή ADDA προσθέτει τα περιεχόµενα του συσσωρευτή Α µε τα δεδο-
µένα που ορίζει το έντελο και αποθηκεύει τα αποτελέσµατα πίσω στο συσ-
σωρευτή.
Εάν η τιµή που περιέχει ο Α µετά την εκτέλεση των παρακάτω εντολών
είναι αντίστοιχα (α) 0416, (β) 5516, (γ) 1Α16 και (δ) 2516, τι τρόπο διευθυν-
σιοδότησης χρησιµοποιεί η καθεµία από τις παρακάτω εντολές,
(α) ADDA #FF
(β) ADDA $12
(γ) ADDA $1234
(δ) ADDA $10,X
Στη συνέχεια η Intel παρουσίασε τον 8085 προσπαθώντας να διορθώσει
κάποια ελαττώµατα που υπήρχαν στον 8080 και τον έφεραν σε µειονεκτική
θέση σε σχέση µε τον 6800. Από την άλλη µεριά οι βελτιώσεις που θα έπρε-
πε να κάνει η Motorola στις επόµενες εκδόσεις του 6800 είναι οι εξής:
• Το κύκλωµα χρονισµού έπρεπε να ενσωµατωθεί στο ολοκληρωµένο
κύκλωµα.
• Έπρεπε να αναπτύξει πολλές συσκευές υποστήριξης του 6800, ώστε να
είναι δυνατή η υλοποίηση µικροϋπολογιστικών συστηµάτων βασισµένων
στον 6800 µε µικρό αριθµό από ολοκληρωµένα κυκλώµατα (low chip
count).
Επιπλέον αδυναµίες του 6800, που παρουσιάστηκαν µε το πέρασµα του χρό-
νου, είναι οι εξής:
• Το σύνολο εντολών του απαιτεί εκτεταµένη χρήση της µνήµης ως αποτέ-
λεσµα των λίγων καταχωρητών δείκτη και έλλειψη ικανότητας µετακίνη-
σης δεδοµένων ανάµεσα στους καταχωρητές της κεντρικής µονάδας επε-
ξεργασίας.
• Το σήµα συγχρονισµού Ε, που απαιτείται από τις συσκευές υποστήριξης
του 6800, τις καθιστά άχρηστες για οποιοδήποτε άλλο µικροϋπολογιστι-
κό σύστηµα εκτός του 6800.
1 2 94 . 6 ™ À ° ∫ ƒ π ™ ∏ ∆ √ À 6 8 0 0 ª ∂ ∆ √ ¡ 8 0 8 0 / 8 0 8 5
Ο 6502 είναι ένας µικροεπεξεργαστής των 8 δυαδικών ψηφίων, ο οποίος
παρουσιάστηκε το 1975 από την εταιρία MOS Technology. Η φιλοσοφία
σχεδιασµού του είναι παρόµοια µε αυτή του Motorola 6800.
Ανατρέχοντας στη βιβλιογραφία που υπάρχει στο τέλος του κεφαλαίου ή
σε οποιοδήποτε άλλο βιβλίο γνωρίζετε, µελετήστε το µικροεπεξεργαστή
6502. Αφού συγκεντρώσετε αρκετά στοιχεία, κάνετε µια σύγκριση του
µικροεπεξεργαστή αυτού µε τον 6800 και παρουσιάστε τις διαφορές τους.
Συγκεντρώστε το ενδιαφέρον σας στα παρακάτω σηµεία:
• ακροδέκτες του ολοκληρωµένου κυκλώµατος
• πλήθος και είδος καταχωρητών
• σηµαίες κατάστασης του καταχωρητή κατάστασης επεξεργαστή
• σήµατα διακοπής
¢Ú·ÛÙËÚÈfiÙËÙ· 4.1
1 3 0 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
™‡ÓÔ„Ë
Ο µικροεπεξεργαστής 6800 ήταν η απάντηση της Motorola στον 8080 της
Intel. Απαιτεί µία τάση τροφοδοσίας (+5 V) και το ολοκληρωµένο κύκλωµά
του αποτελείται από 40 ακροδέκτες. Ο µήκους 16–bit δίαυλος διευθύνσεων
µπορεί να προσπελάσει 64 KB µνήµης, ενώ ο δίαυλος δεδοµένων αποτελεί-
ται από 8 γραµµές. Ο δίαυλος ελέγχου περιλαµβάνει 9 γραµµές ελέγχου.
Αποτελείται από δύο συσσωρευτές, τον καταχωρητή κατάστασης επεξεργαστή,
έναν καταχωρητή δείκτη, το µετρητή προγράµµατος και το δείκτη σωρού. Ο
καταχωρητής κατάστασης περιέχει έξι σηµαίες (µηδενικού αποτελέσµατος, πρό-
σηµου, υπερχείλισης, κρατούµενου, διακοπής και βοηθητικού κρατούµενου).
Ο κύκλος εντολής του 6800 χωρίζεται σε δύο έως οκτώ κύκλους µηχανής, οι
οποίοι διαρκούν έναν κύκλο ρολογιού. Το πλήθος των κύκλων µηχανής εξαρ-
τάται από το µήκος της κάθε εντολής και την πολυπλοκότητά της.
Ο χρονισµός των κύκλων µηχανής του 6800 είναι πολύ απλός. Καθ’ όλη τη
• µέθοδοι διευθυνσιοδότησης
• κατηγορίες εντολών
Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της δραστηριότη-
τας εκτιµάµε πως δεν θα ξεπεράσει τις τρεις ώρες.
Βρείτε για τις διάφορες ηλεκτρονικές συσκευές που έχετε στο σπίτι σας,
όπως τηλεφωνικές συσκευές, συσκευές video, παλιοί µικροϋπολογιστές
(home computers), κονσόλες ηλεκτρονικών παιχνιδιών (game consoles),
τα εγχειρίδια του κατασκευαστή. Σε πολλές από αυτές υπάρχουν αναφορές
στον τρόπο που είναι σχεδιασµένες και στα ολοκληρωµένα κυκλώµατα που
χρησιµοποιούν.
Προσπαθήστε να εντοπίσετε κάποια συσκευή, που να βασίζεται σε κάποιο
µικροεπεξεργαστή όµοιο µε κάποιον από αυτούς που γνωρίσατε έως τώρα
(Intel 8080/8085, Motorola 6800, Zilog Z80, MOS 6502).
Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της δραστηριότη-
τας εκτιµάµε πως δεν θα ξεπεράσει τις δύο ώρες.
¢Ú·ÛÙËÚÈfiÙËÙ· 4.2
διάρκεια ενός κύκλου ρολογιού το σήµα VMA είναι ενεργό και στο δίαυλο
διευθύνσεων βρίσκεται η διεύθυνση της µνήµης, που θα πρέπει να προσπε-
λαστεί. Κατά τη λειτουργία της εγγραφής δεδοµένων, τα δεδοµένα βρίσκονται
στο δίαυλο δεδοµένων για το χρονικό διάστηµα που το σήµα DBE είναι ενερ-
γό (συνήθως το DBE ταυτίζεται µε το Φ2). Κατά τη λειτουργία της ανάγνω-
σης δεδοµένων, ο µικροεπεξεργαστής µεταφέρει την τιµή του διαύλου δεδο-
µένων στους εσωτερικούς του καταχωρητές κατά την αρνητική ακµή του Φ2
στο τέλος του κύκλου µηχανής, ενώ η µνήµη θα πρέπει να έχει τοποθετήσει
τα δεδοµένα στο δίαυλο πριν από την ακµή και να κρατήσει σταθερά τα δεδο-
µένα για κάποιο µικρό χρονικό διάστηµα µετά την ακµή αυτή.
Στην περίπτωση που η µνήµη δεν προλαβαίνει να µεταφέρει τα περιεχόµενα µιας
θέσης µνήµης στο δίαυλο δεδοµένων, τότε µπορούµε είτε να επεκτείνουµε το
σήµα ρολογιού Φ1 και Φ2 είτε να µεγαλώσουµε τη διάρκεια του παλµού DBE.
Η εντολή WAIT του 6800 θέτει το µικροεπεξεργαστή σε κατάσταση αναµο-
νής διακοπής, αποθηκεύει τους καταχωρητές στο σωρό και θέτει τους διαύ-
λους του µικροεπεξεργαστή σε κατάσταση υψηλής εµπέδησης.
Επίσης, χρησιµοποιώντας τα σήµατα TSC και VMA ή το σήµα HALT~,
µπορούµε να οδηγήσουµε τους δίαυλους δεδοµένων και διευθύνσεων σε
κατάσταση υψηλής εµπέδησης, επιτρέποντας έτσι σε άλλες συσκευές να
κάνουν µεταφορά δεδοµένων από και προς τη µνήµη χωρίς τη βοήθεια του
µικροεπεξεργαστή.
O 6800 διαθέτει, εκτός από τη διακοπή λογισµικού SWI, τριών ειδών σήµα-
τα διακοπής. Η δυνατότητα διακοπής µέσω του σήµατος INT µπορεί να ενερ-
γοποιηθεί και να απενεργοποιηθεί µε ειδικές εντολές. Η αίτηση διακοπής
µέσω του σήµατος NMI~ εξυπηρετείται πάντα. Το ίδιο συµβαίνει και µε την
αίτηση αρχικοποίησης RESET, µε τη µόνη διαφορά ότι δεν σώζονται στο
σωρό τα περιεχόµενα των καταχωρητών, καθώς χρησιµοποιείται για την
αρχικοποίηση του µικροεπεξεργαστή. Με την εµφάνιση µίας αίτησης διακο-
πής σταµατά η εκτέλεση του προγράµµατος από το µικροεπεξεργαστή, απο-
θηκεύονται τα περιεχόµενα των καταχωρητών στο σωρό (όταν χρειάζεται)
και φορτώνεται στο µετρητή προγράµµατος η διεύθυνση της πρώτης εντολής
της ρουτίνας εξυπηρέτησης της διακοπής µε τη βοήθεια του ανύσµατος δια-
κοπής. Μετά την εκτέλεση της ρουτίνας εξυπηρέτησης της διακοπής, ο µικρο-
επεξεργαστής συνεχίζει µε την εκτέλεση του προγράµµατος από το σηµείο που
σταµάτησε προηγούµενα.
1 3 1™ Y N O æ H
1 3 2 K E º A § A I O 4 : O M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ M O T O R O L A 6 8 0 0
Ο 6800 περιέχει όλες τις γνωστές κατηγορίες εντολών. Οι εντολές του χρη-
σιµοποιούν άµεση, υπονοούµενη, απόλυτη, δεικτοδοτηµένη, σχετική και διευ-
θυνσιοδότηση µηδενικής σελίδας.
Συγκρίνοντας τον 6800 µε τον 8080/8085 µπορούµε να παρατηρήσουµε ότι
διαθέτει απλούστερα σήµατα ελέγχου και χρονισµό από τον 8080/8085, δεν
διαχωρίζει την κύρια µνήµη από τις συσκευές εισόδου/εξόδου, δεν απαιτεί
ξεχωριστά ολοκληρωµένα κυκλώµατα για τον έλεγχο του συστήµατος, ενώ
διαθέτει λιγότερες εντολές µε περισσότερους τρόπους διευθυνσιοδότησης.
BÈ‚ÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε την ανάγνωση του τετάρτου κεφαλαίου, καλό είναι να
διαθέσετε κάποιον επιπλέον χρόνο για να µελετήσετε τα παρακάτω κείµενα:
1. Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαια 10 & 11. Τα κεφάλαια αυτά αναφέ-
ρονται στο µικροεπεξεργαστή 6800, αναλύουν την αρχιτεκτονική, τους
τρόπους προσπέλασης και το σύνολο εντολών του και διαθέτουν πολλά
παραδείγµατα και ασκήσεις, οι οποίες θα σας βοηθήσουν να κατανοήσε-
τε καλύτερα την ύλη του τετάρτου κεφαλαίου και να εξασκηθείτε.
2. Microprocessor Technology and Microcomputers, McGraw Hill, Edward
J. Pasahow, Κεφάλαιο 5. Στις σελίδες 74–79 θα βρείτε πληροφορίες για
τον 6800, τα σήµατα και τους καταχωρητές που διαθέτει, τα διαγράµµα-
τα χρονισµού του και τις διάφορες ειδικές καταστάσεις (WAIT, HOLD,
HALT, RESET). Στις σελίδες 85–89 θα βρείτε παραδείγµατα εντολών και
απλά προγράµµατα.
3. OSBORNE 4 & 8–Bit Microprocessor Handbook, A. Osborne, G. Kane,
Osborne/McGraw Hill, Κεφάλαιο 9. Στο κεφάλαιο αυτό θα βρείτε περι-
γραφή του µικροεπεξεργαστή 6800 και πίνακες µε το σύνολο εντολών
του. Το κεφάλαιο αυτό περιέχει και πολλές συσκευές υποστήριξης του
6800, κάποιες από τις οποίες θα αναλύσουµε στο κεφάλαιο 7.
Εάν πάλι νοιώθετε ότι έχετε κατανοήσει τα χαρακτηριστικά του 6800, µπο-
ρείτε να προχωρήσετε στο επόµενο κεφάλαιο για να ανακαλύψετε ένα νέο
µικροεπεξεργαστή.
√ MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8086/8088
™ÎÔfi˜
Μελετώντας το κεφάλαιο αυτό θα γνωρίσετε τον πιο δηµοφιλή ίσως από τους
µικροεπεξεργαστές της Intel, τον 8086/8088. Ο µικροεπεξεργαστής αυτός υιο-
θετήθηκε από την ΙΒΜ στους προσωπικούς υπολογιστές PC, οι οποίοι γνώ-
ρισαν µεγάλη εµπορική επιτυχία, που συνεχίζεται µέχρι σήµερα.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• ορίσετε τα δύο ανεξάρτητα τµήµατα, από τα οποία αποτελείται ο 8086
καθώς και τη λειτουργία του καθενός από αυτά.
• καθορίσετε τον τρόπο µε τον οποίο γίνεται η προσκόµιση των εντολών.
• περιγράψετε την οργάνωση µνήµης που υποστηρίζει.
• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή, καθώς
και τη λειτουργία του καθενός.
• συγκρίνετε τους καταχωρητές του 8086 µε τους αντίστοιχους του
8080/8085.
• εξηγήσετε ποια είναι η χρησιµότητα του ελάχιστου και του µέγιστου τρό-
που λειτουργίας του µικροεπεξεργαστή.
• δώσετε τη βασική ακολουθία χρονισµού για έναν κύκλο ανάγνωσης και
έναν κύκλο εγγραφής.
• εξηγήσετε τον τρόπο µε τον οποίο ο 8086 διαχειρίζεται τις αιτήσεις διακοπής.
• περιγράψετε τους διαφορετικούς τρόπους διευθυνσιοδότησης που υπο-
στηρίζει.
ŒÓÓÔȘ ÎÏÂȉȿ
5∫ ∂ º ∞ § ∞ π √
• Intel 8086/8088
• Καταχωρητές Τµήµατος
• Μονάδα ∆ιασύνδεσης ∆ιαύλου
• Μονάδα Εκτέλεσης
• Πίνακας ∆ιευθύνσεων ∆ιακοπών
1 3 4 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Στο κεφάλαιο αυτό εξετάζουµε τον Intel 8086. Ο µικροεπεξεργαστής αυτός
ήταν ο πρώτος που εµφανίστηκε µε µήκος λέξης 16 bits. Για λόγους συµβα-
τότητας ακολουθεί παρόµοια φιλοσοφία σχεδιασµού µε τον 8080/8085. Θα
επικεντρώσουµε την προσοχή µας κυρίως στα νέα χαρακτηριστικά, που εισή-
γαγε ο µικροεπεξεργαστής αυτός. Ο 8086 διαφέρει από τον 8088 στο ότι ο
τελευταίος, αν και µικροεπεξεργαστής των 16–bits, διαθέτει 8 γραµµές δεδο-
µένων και όχι 16.
5.1 H aÚ¯ÈÙÂÎÙÔÓÈ΋ ÙÔ˘ 8086
™ÎÔfi˜
Η πρώτη ενότητα του κεφαλαίου αυτού παρουσιάζει τα αρχιτεκτονικά χαρα-
κτηριστικά του 8086, δηλαδή τη γενική φιλοσοφία σχεδιασµού του για την
εκτέλεση των εντολών και τον τρόπο οργάνωσης της µνήµης. Παρουσιάζει
επίσης τους καταχωρητές και τους ακροδέκτες, που ο µικροεπεξεργαστής
αυτός διαθέτει.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Ολοκληρώνοντας τη µελέτη αυτής της ενότητας, θα µπορείτε να περιγράψε-
τε τα δύο βασικά τµήµατα που αποτελούν τον 8086, να καθορίσετε τον τρόπο
µε τον οποίο γίνεται η προσκόµιση και εκτέλεση των εντολών, να ορίσετε την
οργάνωση µνήµης, την οποία διαθέτει, και να απαριθµήσετε τους καταχω-
ρητές και τους ακροδέκτες του µικροεπεξεργαστή.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Η ενότητα αυτή είναι αρκετά µεγάλη σε µέγεθος. Για την καλύτερη ανάγνω-
σή της έχει χωριστεί σε µικρότερες υποενότητες. Μελετήστε καθεµία από τις
υποενότητες αυτές µε τη σειρά και αφιερώστε αρκετό χρόνο ώστε να τις κατα-
νοήσετε. Μπορείτε, ανά πάσα στιγµή, να κάνετε συγκρίσεις µε την αρχιτε-
κτονική του 8080, ανατρέχοντας στην Ενότητα 3.1, για να µπορέσετε να κατα-
νοήσετε καλύτερα τα νέα στοιχεία που εισήγαγε ο 8086.
O µικροεπεξεργαστής 8086 παρουσιάστηκε από την Intel το 1978 ως η εξέ-
λιξη του ήδη πετυχηµένου 8080. Είναι ο πρώτος µικροεπεξεργαστής που
εµφανίζεται µε µήκος λέξης 16 δυαδικών ψηφίων και διαθέτει αρκετά νέα
χαρακτηριστικά. Ο σχεδιασµός του έχει γίνει µε τέτοιο τρόπο ώστε να δια-
τηρείται η συµβατότητα σε επίπεδο κώδικα µηχανής µε τον 8080. Το 1980
η Intel παρουσίασε ως µια φυσική επέκταση του τον 8087, ένα µαθηµατικό
συνεπεξεργαστή για πράξεις κινητής υποδιαστολής.
5.1.1 °ÂÓÈο ¯·Ú·ÎÙËÚÈÛÙÈο
Στους µικροεπεξεργαστές που είδαµε έως τώρα, η εκτέλεση ενός προγράµ-
µατος γινόταν επαναλαµβάνοντας κάποια βασικά βήµατα: προσκόµιση µιας
εντολής από τη µνήµη, αποκωδικοποίηση της εντολής, ανάγνωση των έντε-
1 3 55 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 6
λων της εντολής από τη µνήµη, εάν απαιτείται, εκτέλεση της εντολής και
αποθήκευση των αποτελεσµάτων, όποτε χρειάζεται, στη µνήµη. Τα παρα-
πάνω βήµατα εκτελούνται πάντοτε ακολουθιακά το ένα µετά το άλλο. Η
εκτέλεση µίας εντολής θα πρέπει να ολοκληρωθεί πριν προχωρήσουµε στην
επόµενη εντολή. Στον 8086 παρατηρούµε µια διαφορετική προσέγγιση.
1 3 6 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
Kαταχωρητέςv
δεδοµένων &v
δείκτη
Mονάδα ελέγχου και χρονισµού
Aριθµητική &v
λογική µονάδα
Σηµαίεςv
κατάστασης
Kαταχωρητέςv
τµήµατος καιv
µετρητήςv
προγράµµατος
Oυράv
εντολών
Mονάδαv
διασύνδεσηςv
διαύλου
Mονάδα εκτέλεσης Mονάδα διασύνδεσης διαύλου
LOCK~v
QS0v
QS1v
S2~, S1~, S0~
BHE~/S7v
A19… A16v
S6… S3v
AD15… AD0v
INTA~v
RD~, WR~v
DT/R~v
DEN~, ALE
TEST~
INT
NMI
RQ~/GT0~
RQ~/GT1~
HOLD
HLDA
CLK RESET READY MNv
MX~
GND Vcc
™¯‹Ì· 5.1
Το λειτουργικό διάγραµµα
του 8086
1 3 75 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 6
Το σχηµατικό διάγραµµα της εσωτερικής οργάνωσης του 8086 φαίνεται στο
σχήµα 5.1. Παρατηρούµε ότι αποτελείται από δύο ανεξάρτητα τµήµατα: τη
µονάδα εκτέλεσης (execution unit – EU) και τη µονάδα διασύνδεσης διαύλου
(bus interface unit – BIU). Η µονάδα εκτέλεσης είναι υπεύθυνη για την εκτέ-
λεση των εντολών του προγράµµατος, ενώ η µονάδα διασύνδεσης διαύλου
είναι υπεύθυνη για την προσκόµιση του κώδικα λειτουργίας και των εντέ-
λων κάθε εντολής και την αποθήκευση των αποτελεσµάτων. Με το διαχω-
ρισµό αυτό η προσκόµιση µιας εντολής µπορεί να γίνεται παράλληλα µε την
εκτέλεση κάποιας προηγούµενης εντολής.
H µονάδα διασύνδεσης διαύλου περιέχει µία ουρά εντολών (instruction
queue) µήκους 6 bytes. Κάθε φορά που η ουρά εντολών έχει χώρο τουλάχι-
στον 2 bytes, η µονάδα διασύνδεσης διαύλου πραγµατοποιεί µία προσκόµι-
ση λέξης από τη µνήµη. Με αυτό τον τρόπο η ουρά εντολών περιέχει κάθε
φορά τις επόµενες εντολές του προγράµµατος.
Σε περίπτωση που έχουµε εντολή διακλάδωσης, ο µικροεπεξεργαστής δεν
µπορεί να γνωρίζει ποια θα είναι η επόµενη εντολή που θα εκτελέσει, καθώς
αυτή εξαρτάται από το εάν ικανοποιείται ή όχι η συνθήκη διακλάδωσης.
Είναι πιθανό εποµένως οι εντολές που περιέχει η ουρά εντολών να µην αντι-
στοιχούν στις επόµενες προς εκτέλεση εντολές. Στην περίπτωση αυτή (όταν
εκτελείται δηλαδή µία εντολή διακλάδωσης), η ουρά εντολών αδειάζει και
ξεκινά από την αρχή η προσκόµιση εντολών από τη µνήµη µε τις επόµενες
εντολές και η αποθήκευσή τους στην ουρά εντολών.
Κάθε φορά που η µονάδα εκτέλεσης απαιτεί µία εντολή, αυτή µπορεί να βρε-
θεί στη µονάδα διασύνδεσης διαύλου. Αντίστοιχα, κάθε φορά που η µονάδα
εκτέλεσης απαιτεί την ανάγνωση κάποιου εντέλου ή δεδοµένου ή την απο-
θήκευση κάποιου αποτελέσµατος στη µνήµη, αναθέτει αυτή την εργασία στη
µονάδα διασύνδεσης διαύλου. Με τον τρόπο αυτό ο 8086 προσπαθεί να
εκµεταλλευτεί το χρόνο που απαιτείται για την εκτέλεση µίας εντολής, ώστε
να προσκοµίσει την επόµενη εντολή από τη µνήµη, µειώνοντας έτσι το συνο-
λικό χρόνο εκτέλεσης ενός προγράµµατος
Στη µονάδα διασύνδεσης διαύλου µπορούµε να παρατηρήσουµε επίσης και
κάποιους καταχωρητές που έχουν σχέση µε τη διαχείριση της µνήµης (όπως
ο µετρητής προγράµµατος και κάποιοι άλλοι για τους οποίους θα µιλήσου-
µε στην υποενότητα 5.1.2), καθώς και µία µονάδα ελέγχου του διαύλου που
παράγει τα απαραίτητα σήµατα χρονισµού.
Η µονάδα εκτέλεσης, από την άλλη µεριά, αποτελείται από µία αριθµητική
και λογική µονάδα, τους καταχωρητές δεδοµένων (θα παρατηρήσετε ότι πολ-
λοί από αυτούς είναι όµοιοι µε αυτούς του 8080) και τον καταχωρητή κατά-
στασης επεξεργαστή. Η µονάδα εκτέλεσης δεν έχει απευθείας πρόσβαση
στην κύρια µνήµη, αλλά δέχεται τα δεδοµένα που χρειάζεται από την µονά-
δα διασύνδεσης διαύλου.
1 3 8 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
Ποιο είναι το πλεονέκτηµα που οδήγησε τους σχεδιαστές του 8086 στην
απόφαση να χωρίσουν το µικροεπεξεργαστή σε δύο ανεξάρτητα τµήµατα;
Ποια είναι αυτά τα τµήµατα;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
5.1
5.1.2 H ÔÚÁ¿ÓˆÛË Ù˘ ÌÓ‹Ì˘
Ο µετρητής προγράµµατος, που διαθέτει ο 8086, έχει µέγεθος 16 bits. Παρό-
λα αυτά ο µικροεπεξεργαστής διαθέτει 20 γραµµές στο δίαυλο διευθύνσεων,
γεγονός που σηµαίνει ότι µπορεί να διευθυνσιοδοτήσει µέχρι 220 = 1 ΜΒ δια-
κριτές θέσεις µνήµης. Ας δούµε µε ποιον τρόπο: Η µνήµη που µπορεί να δια-
χειριστεί ο µικροεπεξεργαστής χωρίζεται σε λογικά τµήµατα (segments),
µεγέθους 64 KB το καθένα. Ο µετρητής προγράµµατος δείχνει τη διεύθυν-
ση της µνήµης σε σχέση µε την αρχή του τµήµατος. Η αρχή του τµήµατος
είναι αποθηκευµένη σ’ έναν από τους τέσσερις καταχωρητές τµήµατος
(segment registers), που διαθέτει ο µικροεπεξεργαστής. Για να υπολογίσου-
µε τη φυσική διεύθυνση της µνήµης, αρκεί να προσθέσουµε την αρχή του
τµήµατος, που βρίσκεται αποθηκευµένη (τα 16 περισσότερο σηµαντικά δυα-
δικά ψηφία αυτής) στον καταχωρητή τµήµατος, µε τα περιεχόµενα του
µετρητή προγράµµατος. Προφανώς τα 4 λιγότερο σηµαντικά ψηφία της
αρχής του τµήµατος είναι πάντοτε 0, δηλαδή η αρχή ενός τµήµατος είναι
πάντοτε πολλαπλάσιο του 16. Σχηµατικά µπορείτε να παρατηρήσετε τον
τρόπο µε τον οποίο σχηµατίζεται η φυσική διεύθυνση στο σχήµα 5.2.
1 3 95 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 6
Με τον τρόπο αυτό ο 8086 µπορεί να προσπελαύνει απευθείας 64 Kbyte
µνήµης, αλλά µπορεί να διαχειριστεί 1 MB µνήµης. Η λύση αυτή της οργά-
νωσης της µνήµης επιβλήθηκε για σχεδιαστικούς λόγους, αλλά αποτελεί ένα
από τα αδύνατα σηµεία του συγκεκριµένου µικροεπεξεργαστή, καθώς είναι
µάλλον πολύπλοκη.
x
15
x x x x x x x x x x x x x x x
0
15 0
19 0
Kαταχωρητής τµήµατος
y y y y y y y y y y y y y y y y Mετρητής προγραµµατος
z z z zz z z z z z z z z z z z z z z z Φυσική διεύθυνση
+
=
™¯‹Ì· 5.2
Η οργάνωση µνήµης του
8086
(α)Με ποιον τρόπο σχηµατίζεται η διεύθυνση της µνήµης που πρέπει να
προσπελάσει κάθε φορά ο 8086;
(β)Ο µετρητής προγράµµατος περιέχει την τιµή 001216. Ο αντίστοιχος
καταχωρητής τµήµατος (καταχωρητής τµήµατος κώδικα) περιέχει την
τιµή FEDC16. Ποια είναι η φυσική διεύθυνση της µνήµης, στην οποία
βρίσκεται η επόµενη προς εκτέλεση εντολή;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.2
5.1.3 OÈ Î·Ù·¯ˆÚËÙ¤˜ ÙÔ˘ 8086
Οι καταχωρητές του 8086 αποτελούν ένα υπερσύνολο των καταχωρητών που
είχαµε παρουσιάσει για τον 8080/8085. Παρατηρήστε στο σχήµα 5.3 τους
καταχωρητές που διαθέτει ο 8086. Τα γραµµοσκιασµένα τµήµατα δείχνουν
τους αντίστοιχους καταχωρητές του 8080/8085.
Στον 8086 µπορούµε να βρούµε, εκτός από τους καταχωρητές του
8080/8085, τους παρακάτω καταχωρητές:
1 4 0 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
AH AL
15 0
BH BL
CH CL
DH DL
AX
BX
CX
DX
Kαταχωρητές δεδοµένων
SP
BP
SI
DI
15 0
Kαταχωρητές δείκτη
CS
DS
ES
SS
15 0
Kαταχωρητές τµηµάτων
15
Mετρητής προγράµµατος
Σηµαίες κατάστασης
0
Mετρητής προγράµµατος καιv
Kαταχωρητής κατάστασης επεξεργαστή
™¯‹Ì· 5.3
Οι καταχωρητές του 8086
Σύγκριση µε τον
8080/8085
• Ο συσσωρευτής ΑΧ είναι πλέον ένας 16–bit καταχωρητής. Θεωρείται ο
βασικότερος καταχωρητής του 8086. Μπορεί να χρησιµοποιηθεί είτε ως
ένας καταχωρητής των 16–bits είτε ως δύο καταχωρητές των 8–bits (µε
ονόµατα AH και AL).
• O 16–bit καταχωρητής βάσης (Base Pointer – BP), ο 16–bit καταχωρητής
1 4 15 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 6
δείκτη πηγής (Source Index Register – SI) και ο 16–bit καταχωρητής δεί-
κτη προορισµού (Destination Index Register – DI) είναι τρεις καταχωρη-
τές που χρησιµοποιούνται συνήθως σε εντολές επεξεργασίας πινάκων
χαρακτήρων (strings) και αριθµητικές/λογικές πράξεις για να υποστηρί-
ξουν νέους ευέλικτους τρόπους διευθυνσιοδότησης.
• Στον 8086 µπορούµε να βρούµε επίσης και τους καταχωρητές τµηµάτων
(segment registers). Οι καταχωρητές αυτοί σχετίζονται µε το σχήµα οργά-
νωσης µνήµης που διαθέτει ο µικροεπεξεργαστής και είναι ο καταχωρη-
τής τµήµατος κώδικα (code segment register – CS), που ορίζει το τµήµα
της µνήµης, όπου υπάρχουν οι εντολές του προγράµµατος, ο καταχωρη-
τής τµήµατος δεδοµένων (data segment register – DS), που ορίζει το τµήµα
εκείνο της µνήµης, όπου υπάρχουν τα δεδοµένα του προγράµµατος, ο
καταχωρητής τµήµατος σωρού (stack segment register – SS), που ορίζει τη
µνήµη του σωρού και ο καταχωρητής επιπλέον τµήµατος (extra segment
register – ES), που χρησιµοποιείται ως επιπλέον χώρος αποθήκευσης.
O καταχωρητής κατάστασης επεξεργαστή του 8086 περιέχει, εκτός από τις
σηµαίες κατάστασης που βρίσκουµε στον 8080/8085, τις παρακάτω σηµαίες:
• Σηµαία υπερχείλισης (overflow flag), η οποία δηλώνει κατά πόσο µία αριθ-
µητική πράξη οδήγησε σε υπερχείλιση ή όχι.
• Σηµαία διακοπής (interrupt flag), η οποία ενεργοποιεί ή απενεργοποιεί τις
αιτήσεις διακοπής.
• Σηµαία παγίδας (trap flag), η οποία επιτρέπει τη βηµατική εκτέλεση ενός
προγράµµατος.
• Σηµαία κατεύθυνσης (direction flag), η οποία χρησιµοποιείται για τις λει-
τουργίες των εντολών επεξεργασίας πινάκων χαρακτήρων (strings).
Συγκρίνετε τους καταχωρητές του 8086 µε τους αντίστοιχους του
8080/8085. Υπάρχουν οµοιότητες µεταξύ τους;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.3
1 4 2 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
1v
2v
3v
4v
5v
6v
7v
8v
9v
10v
11v
12v
13v
14v
15v
16v
17v
18v
19v
20
Vccv
AD15v
A16/S3v
A17/S4v
A18/S5v
A19/S6v
BHE~/S7v
MN/MX~v
RD~v
RQ~/GT0~v
RQ~/GT1~v
LOCK~v
S2~v
S1~v
S0~v
QS0v
QS1v
TEST~v
READYv
RESET
40v
39v
38v
37v
36v
35v
34v
33v
32v
31v
30v
29v
28v
27v
26v
25v
24v
23v
22v
21
GNDv
AD14v
AD13v
AD12v
AD11v
AD10v
AD9v
AD8v
AD7v
AD6v
AD5v
AD4v
AD3v
AD2v
AD1v
AD0v
NMIv
INTRv
CLKv
GND
8086
(HOLD)v
(HOLDA)v
(WR~)v
(M/IO~)v
(DT/R~)v
(DEN~)v
(ALE)v
(INTA~)
Eλάχιστοςv
τρόπος
Mέγιστοςv
τρόπος
Ακροδέκτης Περιγραφή Τύπος
VCC, GND Σήµατα τροφοδοσίας και γείωσης
ΑD0–ΑD15 Γραµµές διευθύνσεων/δεδοµένων Είσοδοι/Έξοδοι
Α16–Α19/S3–S6 Γραµµές διευθύνσεων/κατάστασης Έξοδοι
BHE~/S7 Γραµµή επίτρεψης διαύλου δεδοµένων/Γραµµή κατάστασης Έξοδος
NMI Γραµµή διακοπής (Non Maskable Interrupt) Είσοδος
INTR Γραµµή διακοπής Είσοδος
CLK Σήµα χρονισµού Είσοδος
READY Σήµα ολοκλήρωσης της µεταφοράς των δεδοµένων Είσοδος
RESET Σήµα αρχικοποίησης Είσοδος
5.1.4 AÎÚÔ‰¤ÎÙ˜ Î·È Û‹Ì·Ù·
O 8086 είναι ένας 16–bit επεξεργαστής σε DIP (Dual In–line Package)
συσκευασία των 40 ακροδεκτών, όπως δείχνει το σχήµα 5.4. Είναι διαθέσι-
µος µε τρεις διαφορετικές συχνότητες ρολογιού: 5, 8 και 10 MHz.
1 4 35 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ √ À 8 0 8 6
TEST~ Σήµα αναµονής κατά την WAIT εντολή Είσοδος
RD~ Σήµα ανάγνωσης δεδοµένων Έξοδος
MN/MX~ Σήµα επιλογής τρόπου λειτουργίας Είσοδος
Ελάχιστος τρόπος λειτουργίας
HOLD Εισαγωγή σε κατάσταση HOLD Είσοδος
HOLDA Αναγνώριση κατάστασης HOLD Έξοδος
WR~ Σήµα εγγραφής δεδοµένων Έξοδος
M/IO~ Σήµα λειτουργίας µνήµης–συσκευής εισόδου/εξόδου Έξοδος
DT/R~ Σήµα κατεύθυνσης του διαύλου δεδοµένων Έξοδος
DEN~ Σήµα επίτρεψης δεδοµένων Έξοδος
ALE Σήµα έγκυρης διεύθυνσης Έξοδος
INTA~ Σήµα αναγνώρισης διακοπής Έξοδος
Μέγιστος τρόπος λειτουργίας
RG~/GT0~,RG~/GT1~ Σήµατα αίτησης/απόκτησης των διαύλων Είσοδος/Έξοδος
LOCK~ Σήµα απαγόρευσης απελευθέρωσης των διαύλων Έξοδος
S0~–S2~ Σήµατα κατάστασης κύκλου µηχανής Έξοδος
QS0,QS1 Σήµατα κατάστασης της ουράς εντολών Έξοδος
™¯‹Ì· 5.4 Οι ακροδέκτες του 8086
O 8086 µπορεί να χρησιµοποιηθεί µε δύο διαφορετικούς τρόπους, οι οποίοι
διαφοροποιούν τα σήµατα χρονισµού που παράγει ο µικροεπεξεργαστής: το
µέγιστο τρόπο λειτουργίας (maximum mode) και τον ελάχιστο τρόπο λειτουρ-
γίας (minimum mode). Η επιλογή του ενός από αυτούς καθορίζεται από την
τιµή του ακροδέκτη ΜΝ/ΜΧ~.
Στον ελάχιστο τρόπο λειτουργίας, τα σήµατα χρονισµού είναι παρόµοια µε
αυτά που συναντούµε στον 8085: ALE, M/IO~, WR~, DT/R~, DEN~,
INTA~, HOLD, HOLDA.
Στο µέγιστο τρόπο λειτουργίας οι παραπάνω ακροδέκτες περιέχουν τα σήµα-
τα S2~, S1~, S0~, RG~/GT0~, RG~/GT1~, LOCK~, QS1, QS0, τα οποία
χρησιµοποιούνται σε περιπτώσεις πολυεπεξεργαστικών συστηµάτων, όπου
απαιτούνται πιο πολύπλοκα σήµατα ελέγχου.
Ο σχεδιασµός δύο διαφορετικών τρόπων λειτουργίας στο ίδιο ολοκλη-
ρωµένο οφείλεται στην επιθυµία να µπορεί ο µικροεπεξεργαστής να ικα-
νοποιεί πολλαπλές απαιτήσεις. Έτσι, σε απλά συστήµατα, στα οποία
συνήθως απαιτείται ο µικρότερος δυνατός αριθµός από ολοκληρωµένα,
ο 8086 µπορεί να λειτουργήσει σε ελάχιστο τρόπο λειτουργίας, παρέχο-
ντας ο ίδιος τα σήµατα χρονισµού για το σύστηµα, ενώ σε πιο πολύπλο-
κα συστήµατα, όπου υπάρχει η δυνατότητα ο επεξεργαστής να πλαισιω-
θεί από άλλα ολοκληρωµένα, ο 8086 µπορεί να λειτουργήσει στο µέγι-
στο τρόπο λειτουργίας.
Στον 8086 παρατηρούµε ότι ο δίαυλος διευθύνσεων (A19–A0) είναι πολυ-
πλεγµένος µε το δίαυλο δεδοµένων (D15–D0), καθώς και µε κάποια σήµα-
τα κατάστασης (S3–S6). Έτσι, κατά τον πρώτο κύκλο ρολογιού ενός
κύκλου µηχανής, στις γραµµές αυτές εµφανίζεται η διεύθυνση της µνή-
µης ή µιας µονάδας εισόδου/εξόδου, ενώ κατά τους υπόλοιπους κύκλους
στις γραµµές αυτές εµφανίζονται τα δεδοµένα, καθώς και τα σήµατα κατά-
στασης.
Ενδιαφέρον παρουσιάζει το γεγονός ότι, αν και ο δίαυλος δεδοµένων απο-
τελείται από 16 bits, µπορούν να γίνουν µεταφορές δεδοµένων από τη µνήµη
µεγέθους είτε 1 είτε 2 bytes. Το πόσα bytes θα µεταφερθούν ορίζεται από τις
τιµές των BHE~ και A0. Όταν BHE~=0 και Α0=0, τότε µεταφέρονται δύο
bytes, όταν BHE~=0 και Α0=1 µεταφέρεται µόνο το περισσότερο σηµαντι-
κό byte, ενώ, όταν BHE~=1 και Α0=1, τότε µεταφέρεται µόνο το λιγότερο
σηµαντικό byte από τη µνήµη.
Εκτός από τα παραπάνω σήµατα, συναντάµε, όπως και σε όλους τους µικρο-
επεξεργαστές άλλωστε, σήµατα τροφοδοσίας, σήµατα χρονισµού (CLK),
σήµατα διακοπών (INTR, NMI, RESET) και σήµατα σχετικά µε τη µνήµη
(RD~, που υποδηλώνει ανάγνωση δεδοµένων από τη µνήµη, και READY,
που υποδηλώνει ότι η µνήµη είναι έτοιµη να ολοκληρώσει τη µεταφορά των
δεδοµένων).
™‡ÓÔ„Ë
Ο µικροεπεξεργαστής 8086 αποτελείται από τη µονάδα εκτέλεσης µε την αριθ-
µητική και λογική µονάδα και τους καταχωρητές, που είναι υπεύθυνη για την
εκτέλεση των εντολών, και από τη µονάδα διασύνδεσης διαύλου µε την ουρά
εντολών, που είναι υπεύθυνη για την προσκόµιση των εντολών και των δεδο-
µένων από τη µνήµη.
1 4 4 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
1 4 55 . 2 O Ã ƒ √ ¡ π ™ ª √ ™ ∆ √ À 8 0 8 6
Ο 8086 µπορεί να διευθυνσιοδοτήσει µέχρι 1 ΜΒ διακριτών θέσεων µνήµης.
Η µνήµη χωρίζεται σε λογικά τµήµατα µεγέθους 64 ΚΒ το καθένα και κάθε
θέση µνήµης προσδιορίζεται από το λογικό τµήµα, στο οποίο βρίσκεται, και
την απόσταση της θέσης αυτής από την αρχή του τµήµατος.
Οι καταχωρητές του 8086 είναι το σύνολο των αντίστοιχων καταχωρητών
που διαθέτει ο 8080 µαζί µε κάποιες νέες σηµαίες κατάστασης, κάποιους
νέους καταχωρητές δείκτη και κάποιους καταχωρητές τµήµατος απαραίτη-
τους για την οργάνωση της µνήµης.
Ο µικροεπεξεργαστής µπορεί να χρησιµοποιηθεί µε δύο διαφορετικούς τρό-
πους λειτουργίας: τον ελάχιστο τρόπο λειτουργίας, στον οποίο τα σήµατα
ελέγχου είναι παρόµοια µε τα αντίστοιχα του 8080/8085, και το µέγιστο τρόπο
λειτουργίας, που διαθέτει πιο πολύπλοκα σήµατα ελέγχου.
Ποια είναι η χρησιµότητα των δύο διαφορετικών τρόπων λειτουργίας; ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.4
5.2 O ¯ÚÔÓÈÛÌfi˜ ÙÔ˘ 8086
Κάθε κύκλος µηχανής του 8086 αποτελείται από τουλάχιστον 4 κύκλους
ρολογιού. Αυτοί ονοµάζονται T1, T2, T3, T4. Ο µικροεπεξεργαστής παρέχει
τη διεύθυνση κατά τη διάρκεια του πρώτου κύκλου ρολογιού Τ1. Κατά τη
διάρκεια του κύκλου αυτού τα σήµατα S0–S2 σηµατοδοτούν κατά πόσο ο
κύκλος µηχανής είναι κύκλος προσκόµισης εντολής, κύκλος εγγραφής ή ανά-
γνωσης από τη µνήµη ή µία µονάδα εισόδου/εξόδου κ.λπ.
Τα δεδοµένα µεταφέρονται κατά τη διάρκεια των κύκλων ρολογιού Τ3 και
Τ4. Ο κύκλος ρολογιού Τ2 χρησιµοποιείται για τη µετάβαση του πολυπλεγ-
µένου δίαυλου διευθύνσεων/δεδοµένων από τη µία κατάσταση (αυτή στην
οποία συµπεριφέρεται ως δίαυλος διευθύνσεων) στην άλλη (αυτή όπου
συµπεριφέρεται ως δίαυλος δεδοµένων). Εάν η µνήµη δεν µπορεί να παρά-
σχει τα δεδοµένα στον απαιτούµενο χρόνο, τότε µέσω του σήµατος READY
εισάγονται κύκλοι καθυστέρησης (Wait states – Tw). Κάθε τέτοιος κύκλος
έχει διάρκεια ίση µε τη διάρκεια ενός κύκλου ρολογιού.
Κατά τη διάρκεια των κύκλων Τ2 έως Τ4 εµφανίζονται και τα σήµατα κατά-
στασης S3–S7. Τα σήµατα S3 και S4 ορίζουν ποιος καταχωρητής τµήµατος θα
χρησιµοποιηθεί για το σχηµατισµό της διεύθυνσης, το σήµα S5 δείχνει την
τιµή της σηµαίας διακοπής του καταχωρητή κατάστασης επεξεργαστή, ενώ
το S6 έχει µόνιµα την τιµή 0. Το σήµα S7 δεν παρέχει χρήσιµη πληροφορία.
Στο σχήµα 5.5 µπορείτε να δείτε το βασικό διάγραµµα χρονισµού για µία
λειτουργία ανάγνωσης ή εγγραφής σε ένα 8086, που λειτουργεί στον ελάχι-
στο τρόπο λειτουργίας.
1 4 6 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
(4 + NWAIT) = TCY
CLK
ALE
S2 – S0
ADDR/vSTATUS
ADDR/vDATA
READY
T1
(4 + NWAIT) = TCY
T2 T3 TWAIT T4 T1 T2 T3 TWAIT T4
READY
BHE,A19 -A16
A15-A0 A15-A0 Data out (D15-D0)D15-D0v
Valid
Bus reservedvfor Data in
S7-S3 S7-S3
WAIT
READY
WAIT
RD, INTA
DT/R
DEN
WP
BHE,A19-A16
™¯‹Ì· 5.5 Ο κύκλος ανάγνωσης και ο κύκλος εγγραφής στον 8086
1 4 75 . 3 ∏ ∞ ƒ Ã π ∫ √ ¶ √ π ∏ ™ ∏ ∫ ∞ π √ π ¢ π ∞ ∫ √ ¶ ∂ ™ ∆ √ À 8 0 8 6
5.3 ∏ ·Ú¯ÈÎÔÔ›ËÛË Î·È ÔÈ ‰È·ÎÔ¤˜ ÙÔ˘ 8086
Στην ενότητα αυτή θα αναφερθούµε στον τρόπο µε τον οποίο γίνεται η
αρχικοποίηση του 8086, καθώς και στους διαφόρους τύπους διακοπών που
υποστηρίζει.
Η αρχικοποίηση του 8086 γίνεται µε τη βοήθεια του σήµατος RESET. Το
σήµα αυτό συνήθως παράγεται µε τη βοήθεια της 8284 γεννήτριας χρονι-
σµού. Η µετάβαση του σήµατος RESET σε υψηλό δυναµικό για διάστηµα
µεγαλύτερο των 4 κύκλων ρολογιού (ή για χρόνο µεγαλύτερο των 50 µs κατά
την εκκίνηση του συστήµατος) υποχρεώνει το µικροεπεξεργαστή να σταµα-
τήσει τις λειτουργίες του για όσο διάστηµα διαρκεί το σήµα αυτό. Κατά τη
µετάβαση του σήµατος RESET από το υψηλό στο χαµηλό δυναµικό, ξεκινά
µια ακολουθία αρχικοποίησης, η οποία διαρκεί περίπου 10 κύκλους ρολογι-
ού και αρχικοποιεί τους καταχωρητές του µικροεπεξεργαστή. Στη συνέχεια
ξεκινά η λειτουργία του µικροεπεξεργαστή µε την εντολή που βρίσκεται απο-
θηκευµένη στη διεύθυνση FFFF016, όπως προκύπτει από τις τιµές αρχικο-
ποίησης του µετρητή προγράµµατος (000016) και του καταχωρητή τµήµατος
κώδικα (FFFF16).
Οι διακοπές έχουν ως αποτέλεσµα την παύση της εκτέλεσης του κανονικού
προγράµµατος και την εκτέλεση ενός άλλου, το οποίο ονοµάζεται ρουτίνα
εξυπηρέτησης της διακοπής. Το πρώτο 1 ΚΒ µνήµης ενός συστήµατος βασι-
σµένου στον 8086 χρησιµοποιείται για τις 256 διαφορετικές διακοπές που
αυτός µπορεί να υποστηρίξει. Σε αυτές τις θέσεις µνήµης είναι αποθηκευ-
µένος ο πίνακας των διευθύνσεων, όπου ξεκινάει η ρουτίνα εξυπηρέτησης
διακοπής για καθεµία από τις διακοπές. Οι διευθύνσεις ορίζονται από την
τιµή του µετρητή προγράµµατος και το περιεχόµενο του καταχωρητή τµή-
µατος κώδικα και γι’ αυτό καταλαµβάνουν χώρο 4 bytes. Όταν συµβεί µία
διακοπή, τότε η συσκευή που την προκάλεσε είναι υποχρεωµένη να δώσει
τον αριθµό της διακοπής (έναν αριθµό από το 0 εώς το 255), ο οποίος σηµα-
τοδοτεί µονοσήµαντα µέσα στον πίνακα διευθύνσεων το σηµείο όπου βρί-
σκεται η ρουτίνα εξυπηρέτησης της διακοπής.
Από πόσους κύκλους ρολογιού αποτελείται ένας κύκλος ανάγνωσης του
8086; Πότε εµφανίζεται η διεύθυνση και πότε τα δεδοµένα στον πολυ-
πλεγµένο δίαυλο;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.5
Οι διακοπές αυτές χωρίζονται σε καθορισµένες διακοπές (predefined
interrupts), όπως π.χ. η πρώτη διακοπή που γίνεται αυτόµατα σε περίπτωση
διαίρεσης µε το µηδέν, σε διακοπές λογισµικού (software interrupts) και σε
διακοπές υλικού (hardware interrupts), οι οποίες µπορεί να απενεργοποιού-
νται ή όχι (maskable or non–maskable interrupts).
Έτσι για παράδειγµα, η διακοπή 0 αντιστοιχεί στην περίπτωση που έχουµε
διαίρεση µε το µηδέν. Η διακοπή 1 αντιστοιχεί στην περίπτωση που θέλου-
µε να κάνουµε βηµατική εκτέλεση του προγράµµατος και έχουµε θέσει τη
σηµαία κατάστασης trap στη λογική τιµή 1. Όταν τεθεί η σηµαία αυτή στην
τιµή 1, τότε µετά την ολοκλήρωση της εκτέλεσης της τρέχουσας εντολής
εκτελείται η διακοπή και ο µικροεπεξεργαστής συνεχίζει µε την εκτέλεση
της ρουτίνας εξυπηρέτησης. Η διακοπή 2 προκαλείται από µια µετάβαση από
χαµηλό σε υψηλό του σήµατος NMI και ικανοποιείται πάντα. Χρησιµοποι-
είται κυρίως για να ειδοποιήσει το µικροεπεξεργαστή για ένα γεγονός µεγά-
λης σηµασίας, π.χ. µία απώλεια τροφοδοσίας. Εκτός από την ΝΜΙ διακοπή,
έχουµε και τις διακοπές, οι οποίες προκαλούνται από το σήµα INTR. Η εξυ-
πηρέτηση τέτοιων διακοπών επιτρέπεται ή απαγορεύεται ανάλογα µε την
τιµή της σηµαίας κατάστασης διακοπής, η οποία ορίζεται µε κάποιες εντο-
1 4 8 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
0000016∆ιακοπή 0: διαίρεση µε το µ
Mετρητής προγράµµατος
Kαταχωρητής τµήµατος κώδικα
0000416∆ιακοπή 1: βηµατική εκτέλε
Mετρητής προγράµµατος
Kαταχωρητής τµήµατος κώδικα
0000816∆ιακοπή 2: NMI
Mετρητής προγράµµατος
0000C16 ∆είκτης ρουτίνας εξυπηρέτησηςv
διακοπής µε αριθµό 3
003F816 ∆είκτης ρουτίνας εξυπηρέτησηςv
διακοπής µε αριθµό 254
003FC16 ∆είκτης ρουτίνας εξυπηρέτησηςv
διακοπής µε αριθµό 255
•v
•v
•
Kαταχωρητής τµήµατος κώδικα
™¯‹Ì· 5.6
Η περιοχή µνήµης
που δεσµεύεται
για τις διακοπές
1 4 95 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∫ ∞ π √ π ∆ ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™
λές του µικροεπεξεργαστή. Για να γίνει µία τέτοια αίτηση διακοπής, θα πρέ-
πει το σήµα INTR να τεθεί σε υψηλό δυναµικό στον τελευταίο κύκλο ρολο-
γιού της τρέχουσας εντολής. Εάν η σηµαία κατάστασης διακοπής το επιτρέ-
πει, τότε ο µικροεπεξεργαστής παρέχει δύο κύκλους µηχανής αναγνώρισης
διακοπής. Η εξωτερική συσκευή που παρήγαγε τη διακοπή είναι υποχρεω-
µένη κατά το δεύτερο κύκλο να παρέχει στο µικροεπεξεργαστή τον αριθµό
της διακοπής. Ο αριθµός αυτός πολλαπλασιάζεται µε το 4 για να διευθυν-
σιοδοτήσει τον πίνακα διευθύνσεων διακοπών, ώστε να ξεκινήσει η εκτέλε-
ση της αντίστοιχης ρουτίνας εξυπηρέτησης.
Σχετική επίσης µε τις διακοπές είναι και η εντολή HALT. Με την εκτέλεση
µίας τέτοιας εντολής, ο µικροεπεξεργαστής µπαίνει σε κατάσταση αναµονής
και, για να συνεχίσει την εκτέλεση του προγράµµατος, απαιτείται µία αίτη-
ση διακοπής ή η επανεκκίνησή του.
Μετά από την εµφάνιση µίας αίτησης διακοπής, µε ποιον τρόπο ο µικροε-
πεξεργαστής βρίσκει τη διεύθυνση της µνήµης, στην οποία αρχίζει η ρου-
τίνα εξυπηρέτησης;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.6
5.4 TÔ Û‡ÓÔÏÔ ÂÓÙÔÏÒÓ Î·È ÔÈ ÙÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘
™ÎÔfi˜
Η ενότητα αυτή έχει ως στόχο να παρουσιάσει το σύνολο εντολών και τους
τρόπους διευθυνσιοδότησης που διαθέτει ο 8086.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Ολοκληρώνοντας τη µελέτη αυτής της ενότητας, θα µπορείτε να περιγράψε-
τε τους βασικούς τρόπους διευθυνσιοδότησης του 8086 και τους καταχωρη-
τές που χρησιµοποιεί ο καθένας από αυτούς.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Η ενότητα αυτή περιέχει γνωστές έννοιες, καθώς έχετε γνωρίσει, στα προη-
γούµενα κεφάλαια, τους τρόπους διευθυνσιοδότησης αρκετών µικροεπεξερ-
γαστών. Είναι ίσως σκόπιµο, πριν από τη µελέτη της, να επαναλάβετε την
ανάγνωση της Ενότητας 2.5 ή να χρησιµοποιήσετε τα σχήµατα της Ενότητας
2.5, για να κατανοήσετε καλύτερα το κείµενο αυτής της ενότητας.
Οι εντολές του 8086 έχουν µεταβλητό µήκος. Έτσι µία εντολή µπορεί να απο-
τελείται από 6 bytes έως 1 byte στην περίπτωση που δεν περιέχει έντελα.
Ο 8086 έχει επίσης διάφορους τρόπους διευθυνσιοδότησης. Έτσι π.χ. µπορούµε
να βρούµε εντολές που χρησιµοποιούν υπονοούµενη διευθυνσιοδότηση, δηλαδή
εντολές που έχουν ως έντελα κάποιους από τους καταχωρητές του µικροεπε-
ξεργαστή. Οι εντολές αυτές έχουν µικρό µέγεθος και µικρό χρόνο εκτέλεσης. Επί-
σης µπορούµε να βρούµε εντολές που χρησιµοποιούν άµεση διευθυνσιοδότηση.
Σε αυτήν τα δεδοµένα της εντολής ακολουθούν τον κωδικό λειτουργίας της εντο-
λής. Τα δεδοµένα αυτά µπορεί να έχουν µέγεθος 8 ή 16 bits.
Ένας άλλος τρόπος διευθυνσιοδότησης είναι αυτός της άµεσης προσπέλα-
σης. Σε αυτόν η ενεργή διεύθυνση, στην οποία βρίσκονται τα δεδοµένα,
µήκους 16–bits, ακολουθεί τον κωδικό λειτουργίας της εντολής. Η ενεργή
διεύθυνση περιέχει µόνο τη µετατόπιση από την αρχή του τµήµατος και
ενώνεται µε τον καταχωρητή τµήµατος (συνήθως είναι ο καταχωρητής τµή-
µατος δεδοµένων) για να προσδιορίσει τη φυσική διεύθυνση των δεδοµέ-
νων. Υπάρχει επίσης η δυνατότητα το έντελο της εντολής να έχει µέγεθος
32–bits, δηλαδή να περιέχει και τη θέση στην οποία ξεκινάει το τµήµα αλλά
και τη µετατόπιση µέσα σε αυτό. Προφανώς, οι εντολές αυτές έχουν µεγα-
λύτερο µήκος από τις προηγούµενες και εποµένως µεγαλύτερο χρόνο εκτέ-
λεσης.
Οι εντολές διακλάδωσης χρησιµοποιούν τη σχετική διευθυνσιοδότηση. Το έντε-
λο µίας τέτοιας εντολής περιέχει το ποσό της µετατόπισης του µετρητή προ-
γράµµατος.
Οι εντολές έµµεσης διευθυνσιοδότησης βασίζονται στους καταχωρητές ΒΧ, SI
και DI. Η ενεργή διεύθυνση σε αυτές τις εντολές ορίζεται ως η τιµή που περιέ-
χουν οι παραπάνω καταχωρητές. Οι καταχωρητές αυτοί χρησιµοποιούνται µαζί
µε τον καταχωρητή τµήµατος δεδοµένων για να σχηµατίσουν τη φυσική διεύ-
θυνση. Μια παραλλαγή του παραπάνω τρόπου διευθυνσιοδότησης, που µπο-
ρούµε να την ονοµάσουµε δεικτοδοτηµένη διευθυνσιοδότηση, είναι αυτή που
εκτός από τον καταχωρητή δείκτη (BX, BP, SI, DI) περιέχει και κάποιο έντε-
λο, το οποίο προστίθεται στην τιµή του καταχωρητή για να σχηµατίσει την ενερ-
γή διεύθυνση.
Επίσης σε έναν άλλο τρόπο διευθυνσιοδότησης που διαθέτει ο 8086, η ενεργή
διεύθυνση σχηµατίζεται αθροίζοντας την τιµή ενός καταχωρητή βάσης (BX ή
BP) µε την τιµή ενός καταχωρητή δείκτη (SI ή DI) και ενδεχόµενα προσθέτο-
1 5 0 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
1 5 15 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∫ ∞ π √ π ∆ ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™
ντας και το έντελο που ακολουθεί τον κωδικό λειτουργίας της εντολής. Στην
περίπτωση του BX χρησιµοποιείται ο καταχωρητής τµήµατος δεδοµένων, ενώ
στην περίπτωση του BP χρησιµοποιείται ο καταχωρητής τµήµατος σωρού για
το σχηµατισµό της φυσικής διεύθυνσης.
Οι σχεδιαστές του 8086 έδωσαν µεγάλη σηµασία στη διαχείριση πινάκων χαρα-
κτήρων (strings). Έτσι ο µικροεπεξεργαστής περιέχει εντολές φόρτωσης, απο-
θήκευσης και µεταφοράς πινάκων χαρακτήρων από κάποιο σηµείο της µνή-
µης σε κάποιο άλλο. Η λεγόµενη διευθυνσιόδοτηση πινάκων χαρακτήρων
(string addressing) χρησιµοποιεί τους καταχωρητές SI και DI ως δείκτες της
αρχής των strings. Κατά τη διάρκεια εκτέλεσης µίας εντολής πίνακα χαρα-
κτήρων, οι τιµές των καταχωρητών SI και DI αυξάνονται ή µειώνονται ανά-
λογα µε την τιµή της σηµαίας κατεύθυνσης (Direction Flag).
Ο 8086 µπορεί να διευθυνσιοδοτήσει 64 Κ θέσεις συσκευών εισόδου/εξόδου.
Η διευθυνσιόδοτηση στις εντολές εισόδου/εξόδου γίνεται µε τη βοήθεια του
καταχωρητή AX και DX. Έτσι, η διεύθυνση της συσκευής εισόδου/εξόδου µπο-
ρεί είτε να ακολουθεί τον κωδικό λειτουργίας της εντολής είτε να βρίσκεται
αποθηκευµένη στον καταχωρητή DX.
Παρατηρήστε ότι παρά το γεγονός ότι οι περισσότεροι από τους καταχωρητές
του 8086 µπορούν να θεωρηθούν ως καταχωρητές γενικού σκοπού, καθένας
από αυτούς χρησιµοποιείται σε κάποιες περιπτώσεις εντολών µε αρκετά συγκε-
κριµένο τρόπο. Οι παραπάνω τρόποι διευθυνσιοδότησης δίνουν αρκετά µεγά-
λη ευελιξία στον προγραµµατιστή κατά τη συγγραφή ενός προγράµµατος.
Κάποιοι τρόποι διευθυνσιοδότησης χρησιµοποιούν καταχωρητές του 8086
στον προσδιορισµό της ενεργής διεύθυνσης. Ποιους καταχωρητές χρησι-
µοποιούν συνήθως;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.7
Στις προηγούµενες ενότητες µάθατε τα κύρια χαρακτηριστικά του µικροε-
πεξεργαστή 8086 της Intel. Στις σελίδες 2–60 έως 2–70 του βιβλίου 4 της
βιβλιογραφίας µπορείτε να βρείτε µία αναλυτική περιγραφή του 8088.
Αφού µελετήσετε τα κύρια χαρακτηριστικά του, αναφέρατε τις κυριότερες
διαφορές που παρουσιάζει σε σύγκριση µε τον 8086.
Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της δραστηριότη-
τας εκτιµάµε πως δεν θα ξεπεράσει τις τρεις ώρες.
¢Ú·ÛÙËÚÈfiÙËÙ· 5.1
™‡ÓÔ„Ë
Ο 8086 παρουσιάστηκε το 1978 από την Intel και είναι ο πρώτος µικροεπε-
ξεργαστής µε µήκος λέξης 16 bits. Είναι οργανωµένος σε δύο ανεξάρτητα
τµήµατα: τη µονάδα εκτέλεσης, που είναι υπεύθυνη για την εκτέλεση όλων
των εντολών του µικροεπεξεργαστή, και τη µονάδα διασύνδεσης διαύλου, που
είναι υπεύθυνη για τη διασύνδεσή του µε τη µνήµη και τις άλλες συσκευές του
µικροϋπολογιστικού συστήµατος, στο οποίο ανήκει. Η µονάδα διασύνδεσης
διαύλου τροφοδοτεί τη µονάδα εκτέλεσης µε εντολές µέσα από µία ουρά εντο-
λών µήκους 6 bytes.
Ο 8086 µπορεί να διευθυνσιοδοτήσει 1 ΜΒ διακριτές θέσεις µνήµης και 64 ΚΒ
θέσεις συσκευών εισόδου/εξόδου. Η µνήµη είναι οργανωµένη σε λογικά τµή-
µατα (segments) µεγέθους 64 ΚΒ το καθένα. Η φυσική διεύθυνση της µνήµης,
στην οποία βρίσκεται η επόµενη εντολή, υπολογίζεται αθροίζοντας την αρχή
του τµήµατος, που βρίσκεται αποθηκευµένη σε κάποιον καταχωρητή τµήµα-
τος (µετατοπισµένη κατά 4 bits), µε την τιµή του µετρητή προγράµµατος.
Οι καταχωρητές του 8086 αποτελούν υπερσύνολο των καταχωρητών του
8080/8085. Με τον τρόπο αυτό διατηρείται η συµβατότητα µε τον παλαιότε-
ρο µικροεπεξεργαστή και τα συστήµατα που έχουν αναπτυχθεί σε αυτόν.
Εκτός από τους καταχωρητές του 8080/8085, στον 8086 µπορούµε να βρού-
µε τους καταχωρητές τµηµάτων, καθώς επίσης τον καταχωρητή βάσης (BP)
και τους καταχωρητές δείκτη πηγής και προορισµού (SI και DI), που χρησι-
µοποιούνται για να υποστηρίξουν νέους ευέλικτους τρόπους διευθυνσιοδό-
τησης. Τέλος, εµφανίζονται και κάποιες νέες σηµαίες στον καταχωρητή κατά-
στασης επεξεργαστή (σηµαία υπερχείλισης, σηµαία διακοπής, σηµαία παγί-
δας και σηµαία κατεύθυνσης).
Ο 8086 διαθέτει 40 ακροδέκτες. Ο δίαυλος διευθύνσεων είναι πολυπλεγµένος
µε το δίαυλο δεδοµένων και µε κάποια σήµατα κατάστασης. Ο δίαυλος δεδο-
µένων, αν και µεγέθους 16 bits, µπορεί να υποστηρίξει µεταφορές δεδοµένων
µεγέθους 8 και 16 bits. Ο ακροδέκτης ΜΝ/ΜΧ~ επιλέγει τον τρόπο λειτουρ-
γίας του 8086. Στον ελάχιστο τρόπο λειτουργίας, που συνήθως χρησιµοποιεί-
ται σε απλά µονοεπεξεργαστικά συστήµατα βασισµένα στον 8086, τα σήµατα
χρονισµού συµπεριφέρονται παρόµοια µε αυτά του 8085. Στο µέγιστο τρόπο
λειτουργίας, τα σήµατα χρονισµού συµπεριφέρονται µε διαφορετικό τρόπο
ώστε να διευκολύνουν την ανάπτυξη πολυεπεξεργαστικών συστηµάτων.
Κάθε κύκλος µηχανής ανάγνωσης ή εγγραφής στον 8086 αποτελείται από του-
1 5 2 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
1 5 3™ Y N O æ H
λάχιστον τέσσερις κύκλους ρολογιού. Στον πρώτο κύκλο ρολογιού εµφανίζε-
ται η διεύθυνση, ενώ στον τρίτο και τέταρτο κύκλο ρολογιού γίνεται η µετα-
φορά των δεδοµένων. Ο δεύτερος κύκλος ρολογιού χρησιµοποιείται για να
αλλάξει κατεύθυνση ο πολυπλεγµένος δίαυλος διευθύνσεων/δεδοµένων. Κατά
τη διάρκεια του πρώτου κύκλου εµφανίζονται επίσης τα σήµατα κατάστασης
S0–S2, που καθορίζουν το είδος του κύκλου µηχανής, ενώ κατά τους επόµε-
νους κύκλους εµφανίζονται τα σήµατα κατάστασης S3–S7, που περιέχουν επι-
πλέον πληροφορίες. Στην περίπτωση που η µνήµη δεν µπορεί να ανταποκρι-
θεί στις απαιτήσεις του µικροεπεξεργαστή στον επιθυµητό χρόνο, τότε εισά-
γει κύκλους αναµονής (wait states).
Η αρχικοποίηση του 8086 γίνεται µε τη βοήθεια του σήµατος RESET. Όταν
αυτό µεταβεί σε υψηλό δυναµικό για τουλάχιστον τέσσερις κύκλους ρολογι-
ού, ξεκινά η διαδικασία αρχικοποίησης του µικροεπεξεργαστή, η οποία διαρ-
κεί περίπου 10 κύκλους ρολογιού. Με το τέλος της αρχικοποίησης ξεκινά η
εκτέλεση του προγράµµατος από την εντολή που βρίσκεται αποθηκευµένη στη
θέση µνήµης µε διεύθυνση FFFF016.
Ο 8086 χρησιµοποιεί το πρώτο 1 ΚΒ της µνήµης ως πίνακα διευθύνσεων δια-
κοπών. Κάθε στοιχείο του πίνακα περιέχει την τιµή του καταχωρητή τµήµα-
τος και του µετρητή προγράµµατος και διευθυνσιοδοτεί τη θέση της µνήµης,
στην οποία ξεκινά η ρουτίνα εξυπηρέτησης της συγκεκριµένης διακοπής. Ο
8086 µπορεί να υποστηρίξει 256 διακοπές. Κάποιες από αυτές είναι καθορι-
σµένες, όπως π.χ η διακοπή 0 που αντιστοιχεί στην περίπτωση που γίνεται
διαίρεση µε το 0 ή η διακοπή 2 που αντιστοιχεί στην αίτηση διακοπής NMI.
Η διακοπή NMI είναι µια διακοπή που ικανοποιείται πάντα σε αντίθεση µε
αυτές που δηµιουργούνται µε το σήµα INTR, οι οποίες µπορούν να επιτρέ-
πονται ή να απαγορεύονται µε τη βοήθεια της σηµαίας διακοπής του κατα-
χωρητή κατάστασης επεξεργαστή.
Ο 8086 διαθέτει, πέρα από τους κλασικούς τρόπους διευθυνσιοδότησης που
συναντάµε και σε άλλους επεξεργαστές, αρκετούς τρόπους διευθυνσιοδότη-
σης που χρησιµοποιούν τους καταχωρητές βάσης και δείκτη για τον καθορι-
σµό της ενεργής διεύθυνσης και παρέχουν ευελιξία στον προγραµµατιστή κατά
την ανάπτυξη προγραµµάτων.
BÈ‚ÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε την ανάγνωση του πέµπτου κεφαλαίου, καλό είναι να
διαθέσετε κάποιον επιπλέον χρόνο για να µελετήσετε τα παρακάτω κείµενα, τα
οποία περιέχουν µία πιο αναλυτική παρουσίαση των χαρακτηριστικών του 8086:
1. 16–Bit Microprocessors, Collins Professional and Technical Books, Ian
R. Whitworth, Ενότητα 4.2. Η ενότητα αυτή περιέχει µια συνοπτική περι-
γραφή του µικροεπεξεργαστή 8086.
2. 16–Bit Microprocessors, Collins Professional and Technical Books, Ian
R. Whitworth, Ενότητα 6.2.1. Η υποενότητα αυτή περιέχει µία περιγρα-
φή των τρόπων διευθυνσιοδότησης του 8086. Αρκετά ενδεικτικό είναι το
σχήµα της σελίδας 189.
3. Mastering the 8088 microprocessor, Tab Books Inc., Lanny V. Dao, Κεφά-
λαιο 2. Στο κεφάλαιο αυτό θα βρείτε µια αναλυτική περιγραφή του 8088.
∆ώστε ιδιαίτερη προσοχή στην ενότητα µε τους τρόπους διευθυνσιοδό-
τησης.
4. Microprocessors, Intel, Κεφάλαιο 2. Στο κεφάλαιο αυτό θα βρείτε την
περιγραφή του 8086, όπως δίνεται από την κατασκευάστρια εταιρία Intel.
1 5 4 K E º A § A I O 5 : √ M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏ ™ I N T E L 8 0 8 6 / 8 0 8 8
OÏÔÎÏËڈ̤ӷ MÈÎÚÔ¸ÔÏÔÁÈÛÙÈο ™˘ÛÙ‹Ì·Ù·
™ÎÔfi˜
Μελετώντας το κεφάλαιο αυτό, θα γνωρίσετε τις βασικές αρχές και µεθοδο-
λογίες σχεδιασµού συστηµάτων, που βασίζονται σε µικροεπεξεργαστές, και
τις περιφερειακές τους συσκευές.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• ορίσετε την έννοια της διασύνδεσης ενός µικροεπεξεργαστή µε µία ή περισ-
σότερες περιφερειακές συσκευές.
• καθορίσετε τον τρόπο µε τον οποίο ο µικροεπεξεργαστής επιλέγει καθεµία
από τις συσκευές που βρίσκονται σε ένα σύστηµα είτε πρόκειται για µνή-
µες είτε για συσκευές εισόδου/εξόδου.
• καθορίσετε τα τέσσερα βασικά σήµατα ελέγχου του µικροεπεξεργαστή, που
χρησιµοποιούνται στη µεταφορά δεδοµένων µεταξύ αυτού και των µνη-
µών ή των περιφερειακών συσκευών.
• διασυνδέσετε µία µνήµη ROM ή µία µνήµη RAM στους διαύλους ενός
µικροϋπολογιστικού συστήµατος.
• ορίσετε τους δύο διαφορετικούς τρόπους µε τους οποίους µπορούµε να
συνδέσουµε µία συσκευή εισόδου ή µία συσκευή εξόδου στους διαύλους
ενός µικροεπεξεργαστή.
• διασυνδέσετε απλές συσκευές εισόδου, όπως διακόπτες, και απλές συσκευ-
ές εξόδου, όπως µονάδες απεικόνισης, σε ένα µικροϋπολογιστικό σύστηµα.
ŒÓÓÔȘ ÎÏÂȉȿ
6∫ ∂ º ∞ § ∞ π √
• ∆ιασύνδεση
• Ελεγκτές
• I/O–mapped I/O
• Κύκλωµα αποκωδικοποίησης
• Memory–mapped I/O
• Μικροϋπολογιστικά συστήµατα
• Μνήµες ROM/RAM
• Συσκευές ∆ιασύνδεσης
• Συσκευές Εισόδου/Εξόδου
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Στο κεφάλαιο αυτό παρέχουµε τους τρόπους, µε τους οποίους µπορείτε να
διασυνδέσετε µικροεπεξεργαστές, όπως αυτούς που µάθατε στα προηγούµε-
να κεφάλαια, µε διάφορες συσκευές, όπως µνήµες ή συσκευές εισόδου/εξό-
δου, ώστε να κατασκευάσετε ένα ολοκληρωµένο µικροϋπολογιστικό σύστη-
µα. Χρησιµοποιώντας επιπλέον τις γνώσεις που αποκτήσατε στα προηγούµε-
να κεφάλαια, θα µπορείτε πλέον να σχεδιάσετε µόνοι σας κάποιο µικροϋπο-
λογιστικό σύστηµα, διασυνδέοντας µεταξύ τους τα βασικά κοµµάτια, από τα
οποία αποτελείται. Κατά τη µελέτη αυτού του κεφαλαίου, είναι πιθανό να
χρειαστεί να ανατρέξετε σε προηγούµενα κεφάλαια, για να θυµηθείτε κάποια
από τα χαρακτηριστικά των µικροεπεξεργαστών, οι οποίοι παρουσιάστηκαν.
1 5 6 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
6.1 B·ÛÈΤ˜ ·Ú¯¤˜ – ™˘Û΢¤˜ ‰È·Û‡Ó‰ÂÛ˘
Θυµηθείτε τον ορισµό του µικροϋπολογιστικού συστήµατος που δώσαµε στο
κεφάλαιο 1: είναι ένα σύστηµα που δέχεται κάποια είσοδο και µετά από
κάποιας µορφής επεξεργασία παρέχει κάποια έξοδο. Στο ευρύτερο περιβάλ-
λον µας µπορούµε να ανακαλύψουµε πολλά παραδείγµατα συσκευών, οι
οποίες ανήκουν στο παραπάνω µοντέλο. Πολλές από αυτές τις συσκευές
βασίζονται στη χρήση µικροεπεξεργαστών.
Εποµένως, οι µικροεπεξεργαστές αποτελούν τµήµατα ευρύτερων συστηµά-
των, ενώ από µόνοι τους συνήθως δεν έχουν καµία χρησιµότητα. Η ανάπτυ-
ξη των µικροεπεξεργαστών δεν ήταν αυτοσκοπός. Ήταν το αποτέλεσµα της
ανάγκης για την ανάπτυξη ολοκληρωµένων συστηµάτων, που θα έκαναν τη
ζωή µας ευκολότερη. Η γνώση των βασικών χαρακτηριστικών κάποιου ή
κάποιων µικροεπεξεργαστών δεν είναι χρήσιµη, εάν δεν συνοδεύεται από
επιπλέον γνώση για τον τρόπο µε τον οποίο µπορούν αυτοί οι µικροεπεξερ-
γαστές να χρησιµοποιηθούν για το σχεδιασµό ολοκληρωµένων µικροϋπο-
λογιστικών συστηµάτων.
Συχνά στο σχεδιασµό τέτοιων συστηµάτων εµφανίζεται η έννοια της δια-
σύνδεσης. Γενικότερα, όταν λέµε διασύνδεση (interface) µεταξύ δύο αντι-
κειµένων, εννοούµε τον τρόπο µε τον οποίο πρέπει να συνδεθούν αυτά τα
αντικείµενα, ώστε να είναι εφικτή η µεταξύ τους επικοινωνία. Η διασύνδε-
ση, στις περιπτώσεις µικροϋπολογιστικών συστηµάτων, µπορεί είτε να ανα-
φέρεται σε φυσικό επίπεδο (hardware interfacing) και να αφορά στον τρόπο,
µε τον οποίο πρέπει να συνδέσουµε τους διαύλους των δύο συσκευών, όπως
π.χ. στην περίπτωση της διασύνδεσης µίας συσκευής εισόδου/εξόδου ή ενός
ελεγκτή συστήµατος µε κάποιον µικροεπεξεργαστή, είτε να αναφέρεται σε
λογικό επίπεδο (software interfacing) και να αφορά στον ορισµό του τρόπου,
µε τον οποίο µπορούν να επικοινωνήσουν δύο προγράµµατα, όπως π.χ. στην
περίπτωση ορισµού του πρωτόκολλου επικοινωνίας µεταξύ µίας εφαρµογής
βάσης δεδοµένων µε τον αντίστοιχο οδηγό δίσκου (hard disk driver) για την
εγγραφή ή ανάγνωση των δεδοµένων της βάσης στο δίσκο.
Ένας µικροϋπολογιστής τυπικά αποτελείται από κάποιο µικροεπεξεργαστή,
µνήµη ROM, στην οποία είναι αποθηκευµένο το πρόγραµµα, το οποίο εκτε-
λείται στο µικροεπεξεργαστή, µνήµη RAM για την αποθήκευση προσωρινών
δεδοµένων και κάποιες περιφερειακές συσκευές (συσκευές εισόδου/εξόδου),
όπως πληκτρολόγια, µονάδες απεικόνισης δεδοµένων, µονάδες δίσκων ή δισκε-
1 5 76 . 1 B ∞ ™ π ∫ ∂ ™ ∞ ƒ Ã ∂ ™ – ™ À ™ ∫ ∂ À ∂ ™ ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™
1 5 8 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
τών κ.λπ. Οι κατασκευαστές µικροεπεξεργαστών παρέχουν συνήθως ολοκλη-
ρωµένα κυκλώµατα ειδικού σκοπού, τα οποία διευκολύνουν τη διασύνδεση
τέτοιων περιφερειακών συσκευών. Τέτοια ολοκληρωµένα κυκλώµατα ονοµά-
ζονται συνήθως συσκευές διασύνδεσης (interface circuits) ή ελεγκτές
(controllers) και σχεδιάζονται συνήθως για συγκεκριµένο µικροεπεξεργαστή.
Τα τµήµατα ενός µικροϋπολογιστικού συστήµατος διασυνδέονται µεταξύ
τους µε τη βοήθεια των τριών βασικών διαύλων:
(α)του διαύλου διευθύνσεων, που χρησιµοποιείται για την παραγωγή των
διευθύνσεων της µνήµης ή των συσκευών εισόδου/εξόδου,
(β)του διαύλου δεδοµένων, που χρησιµοποιείται για τη µεταφορά των δεδο-
µένων από και προς το µικροεπεξεργαστή, και
(γ) του διαύλου ελέγχου, που χρησιµοποιείται για την παραγωγή των κατάλ-
ληλων σηµάτων χρονισµού του όλου συστήµατος.
Οι µεταφορές δεδοµένων συνήθως έχουν τη µορφή κύκλων ανάγνωσης ή
εγγραφής µνήµης στην περίπτωση της µνήµης του συστήµατος ή την µορφή
κύκλων ανάγνωσης ή εγγραφής συσκευής εισόδου/εξόδου ή εξυπηρέτησης
διακοπών στην περίπτωση των περιφερειακών συσκευών.
Στις επόµενες ενότητες θα µελετήσουµε διάφορες τεχνικές διασύνδεσης των
διαφόρων τµηµάτων ενός µικροϋπολογιστικού συστήµατος.
Ποια είναι τα βασικά τµήµατα που συναντάµε συνήθως σ’ ένα µικροϋ-
πολογιστή;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘
6.1
6.2 ¢È·Û‡Ó‰ÂÛË ÌÓËÌÒÓ ROM
Οι µνήµες ROM (Read Only Memories) είναι οι µνήµες που τα περιεχόµε-
νά τους είναι µόνιµα γραµµένα και δεν µπορούν να σβηστούν ή να αλλα-
χτούν. Χρησιµοποιούνται συνήθως για την αποθήκευση των προγραµµάτων
που εκτελούν οι µικροϋπολογιστές.
Οι µνήµες ROM είναι ολοκληρωµένα κυκλώµατα µε διάφορες χωρητικότη-
τες. Στους ακροδέκτες κάθε τέτοιου ολοκληρωµένου κυκλώµατος µπορού-
µε να βρούµε:
• τα σήµατα διευθύνσεων, το πλήθος των οποίων ορίζει το πλήθος των θέσε-
ων της µνήµης,
• τα σήµατα δεδοµένων, το πλήθος των οποίων ορίζει το µέγεθος της λέξης
της µνήµης,
• ένα σήµα ενεργοποίησης της µνήµης CS~ (Chip Select). Όταν το σήµα
αυτό είναι ενεργό (δηλαδή σε χαµηλό δυναµικό), τότε η µνήµη ενεργο-
ποιείται,
• ένα σήµα επίτρεψης εξόδου OE~ (output enable). Για να τοποθετηθούν τα
δεδοµένα στο δίαυλο δεδοµένων, το σήµα αυτό θα πρέπει να είναι ενερ-
γό. Στην περίπτωση που το σήµα αυτό είναι ανενεργό, τότε οι γραµµές
δεδοµένων της µνήµης βρίσκονται σε κατάσταση υψηλής εµπέδησης.
Η διασύνδεση µίας µνήµης ROM µε κάποιο µικροεπεξεργαστή γίνεται µε
βάση τα παρακάτω: Τα λιγότερο σηµαντικά σήµατα του δίαυλου διευθύν-
σεων του µικροεπεξεργαστή συνδέονται απευθείας µε τα αντίστοιχα σήµα-
τα διευθύνσεων της µνήµης. Επίσης, τα σήµατα δεδοµένων της µνήµης συν-
δέονται αντίστοιχα στο δίαυλο δεδοµένων του συστήµατος. Το σήµα OE~
συνδέεται συνήθως στο σήµα ανάγνωσης δεδοµένων µνήµης του µικροεπε-
ξεργαστή (ονοµάζεται RD~ ή MEMR), ώστε, όταν αυτός επιθυµεί ανάγνω-
ση δεδοµένων, να επιτρέπει την τοποθέτηση των δεδοµένων της µνήµης στα
σήµατα δεδοµένων.
Ένα τυπικό µικροϋπολογιστικό σύστηµα αποτελείται από αρκετά ολοκληρω-
µένα κυκλώµατα µνηµών ή συσκευών εισόδου/εξόδου, τα οποία συνδέονται
στο δίαυλο δεδοµένων. Είναι προφανές ότι ο µικροεπεξεργαστής θα πρέπει µε
κάποιο τρόπο να µπορεί να υποδείξει τη µνήµη ή τη συσκευή εισόδου/εξόδου,
από την οποία θέλει να διαβάσει ή να γράψει δεδοµένα. Για το λόγο αυτό µοι-
ράζει τα διάφορα ολοκληρωµένα κυκλώµατα στο χώρο διευθύνσεων που µπο-
ρεί να διαχειριστεί. Αυτό γίνεται µε τη βοήθεια του σήµατος CS~. Το σήµα
αυτό δηµιουργείται από τα περισσότερο σηµαντικά σήµατα του δίαυλου διευ-
θύνσεων, τα οποία δεν συνδέονται στα σήµατα διευθύνσεων της µνήµης µε τη
βοήθεια ενός κυκλώµατος αποκωδικοποίησης διευθύνσεων.
Στο σχήµα 6.1 δίνεται για παράδειγµα η διασύνδεση µίας µνήµης 8Κx8 µε
έναν υποθετικό µικροεπεξεργαστή µε µήκος λέξης 8 bit, που διαθέτει 16
γραµµές διευθύνσεων. Η µνήµη διαθέτει 13 γραµµές διευθύνσεων (αφού
8K=213), οι οποίες συνδέονται στις 13 λιγότερο σηµαντικές γραµµές του
διαύλου διευθύνσεων. Οι 8 γραµµές δεδοµένων της µνήµης συνδέονται αντί-
1 5 96 . 2 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ª ¡ ∏ ª ø ¡ R O M
1 6 0 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
στοιχα στις 8 γραµµές δεδοµένων του συστήµατος. Το σήµα ανάγνωσης µνή-
µης του µικροεπεξεργαστή (RD~) συνδέεται στο σήµα OE~, ώστε η µνήµη
να καταλαµβάνει το δίαυλο δεδοµένων µόνο όταν ο µικροεπεξεργαστής επι-
θυµεί την ανάγνωση δεδοµένων.
∆ίαυλοςv
διευθύνσεων
∆ίαυλοςv
δεδοµένων
Kύκλωµαv
αποκωδικοποίησης
A15v
•v
•v
•v
A0
D7v
•v
•v
•v
D0
RD~
KME
A0v
•v
•v
•v
A12
D0v
•v
•v
•v
D7
CS~
OE~
ROMU
8Kx8
138
™¯‹Ì· 6.1
Η διασύνδεση
µίας µνήµης ROM
Ο µικροεπεξεργαστής επιλέγει τη µνήµη ROM µε τη βοήθεια ενός συνδυα-
στικού κυκλώµατος αποκωδικοποίησης, η έξοδος του οποίου συνδέεται στο
σήµα CS~ της µνήµης. Εάν υποθέσουµε ότι το κύκλωµα αυτό αποτελείται
από µία NAND πύλη τριών εισόδων και παίρνει σαν είσοδο τα τρία πιο
σηµαντικά σήµατα του δίαυλου διευθύνσεων (A13–A15), τότε το σήµα CS~
γίνεται ενεργό, όταν ο µικροεπεξεργαστής επιθυµεί την ανάγνωση κάποιας
θέσης µνήµης µε διεύθυνση E00016–FFFF16.
Παρατηρήστε ότι, όταν ο µικροεπεξεργαστής επιθυµεί την ανάγνωση µίας
θέσης µνήµης µε διεύθυνση 000016–DFFF16, τότε η µνήµη ROM είναι ανε-
νεργή (τότε µε κάποιο αντίστοιχο κύκλωµα αποκωδικοποίησης έχει ενεργο-
ποιηθεί κάποιο άλλο ολοκληρωµένο κύκλώµα), καθώς επίσης και ότι ακόµα
και όταν το σήµα CS~ είναι ενεργό, η µνήµη θα τοποθετήσει τα δεδοµένα
στο δίαυλο δεδοµένων µόνο κατά το χρονικό διάστηµα στο οποίο το σήµα
RD~ του µικροεπεξεργαστή είναι ενεργό.
Οι µνήµες PROM (Programmable ROM), EPROM (Erasable PROM),
E2PROM (Electrically EPROM) έχουν τα ίδια ακριβώς χαρακτηριστικά µε
τις µνήµες ROM, µε τη µόνη διαφορά ότι µπορούν µε τη βοήθεια υπεριώδους
ακτινοβολίας και ηλεκτρικού φορτίου να σβηστούν και να ξαναγραφτούν. Η
τοποθέτηση τέτοιων µνηµών σε κάποιο µικροϋπολογιστικό σύστηµα γίνεται
µε τους ίδιους κανόνες διασύνδεσης που περιγράψαµε προηγούµενα.
1 6 16 . 3 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ª ¡ ∏ ª ø ¡ R A M
Έχουµε ένα µικροεπεξεργαστή µε 16 γραµµές διευθύνσεων και θέλουµε
να συνδέσουµε σε αυτόν µία µνήµη ROM 4Kx8.
(α)Πόσες γραµµές διευθύνσεων χρειαζόµαστε για να διευθυνσιοδοτήσου-
µε όλες τις θέσεις της µνήµης;
(β)Πόσες γραµµές χρησιµοποιούµε για το κύκλωµα αποκωδικοποίησης;
(γ) Εάν θέλουµε η µνήµη να αποκωδικοποιείται στις διευθύνσεις
000016–0FFF16, ποιο θα πρέπει να είναι το κύκλωµα αποκωδικοποίησης;
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘6.2
6.3 ¢È·Û‡Ó‰ÂÛË ÌÓËÌÒÓ RAM
Σε αντίθεση µε τις µνήµες ROM, στις οποίες η µόνη λειτουργία που έχουµε
είναι η ανάγνωση των δεδοµένων, στις µνήµες RAM (Random Access
Memories), εκτός από ανάγνωση, µπορούµε να κάνουµε και εγγραφή δεδο-
µένων. Οι µνήµες αυτές χρησιµοποιούνται από τα προγράµµατα για την απο-
θήκευση των δεδοµένων.
Τα ολοκληρωµένα κυκλώµατα των µνηµών RAM περιέχουν παρόµοια σήµα-
τα µε αυτά που είδαµε στις µνήµες ROM: Έτσι, θα βρούµε τα σήµατα δεδο-
µένων και διευθύνσεων, καθώς και τα σήµατα CS~ και OE~. Εκτός από αυτά
όµως υπάρχει και το σήµα ανάγνωσης/εγγραφής (R/W~), το οποίο καθορίζει
εάν η λειτουργία που θα επιτελέσει η µνήµη θα είναι ανάγνωση ή εγγραφή.
Η διασύνδεση µίας τέτοιας µνήµης γίνεται µε τους ίδιους κανόνες που είδα-
µε στις µνήµες ROM. Το σήµα εγγραφής µνήµης του µικροεπεξεργαστή
(συνήθως ονοµάζεται WR~ ή MEMW) οδηγεί το σήµα R/W~. Όταν ο µικρο-
επεξεργαστής επιθυµεί την ανάγνωση ή εγγραφή δεδοµένων στη µνήµη αυτή,
η διεύθυνση που παράγει αποκωδικοποιείται από το κύκλωµα αποκωδικο-
ποίησης και ενεργοποιεί µέσω του σήµατος CS~ τη µνήµη. Τα λιγότερο
σηµαντικά ψηφία της διεύθυνσης καθορίζουν τη θέση της µνήµης, όπου θα
1 6 2 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
γίνει η εγγραφή ή η ανάγνωση. Σε περίπτωση εγγραφής το σήµα WR~ του
µικροεπεξεργαστή επιλέγει τη λειτουργία εγγραφής στη µνήµη. Σε περί-
πτωση ανάγνωσης το σήµα R/W~ της µνήµης είναι στη λογική κατάσταση
1, ενώ το σήµα OE~ είναι στη λογική κατάσταση 0, επιτρέποντας έτσι την
εµφάνιση των δεδοµένων της µνήµης στο δίαυλο δεδοµένων.
∆ίαυλοςv
διευθύνσεων
∆ίαυλοςv
δεδοµένων
Kύκλωµαv
αποκωδικοποίησης
A15v
•v
•v
•v
A0
D7v
•v
•v
•v
D0
RD~
WR~
KME
A0v
•v
•v
•v
A13
D0v
•v
•v
•v
D7
CS~
OE~
R/W~
RAMU
16Kx8
14
2
8
™¯‹Ì· 6.2
Η διασύνδεση
µίας µνήµης RΑM
Στο σχήµα 6.2 δίνεται για παράδειγµα η διασύνδεση µίας µνήµης RAM 16Kx8
στον υποθετικό µικροεπεξεργαστή που είδαµε προηγούµενα. Για να µπορούµε
να διευθυνσιοδοτήσουµε όλες τις θέσεις µνήµης της RAM συνδέουµε τις γραµ-
µές διευθύνσεων που έχει µε τις 14 λιγότερο σηµαντικές γραµµές του διαύλου
διευθύνσεων του συστήµατος. Οι 8 γραµµές δεδοµένων συνδέονται αντίστοι-
χα στο δίαυλο δεδοµένων. Το σήµα RD~ επιτρέπει τη µεταφορά των δεδοµέ-
νων στο δίαυλο δεδοµένων µόνο στην περίπτωση που έχουµε ανάγνωση της
µνήµης, ενώ το σήµα WR~ χρησιµοποιείται για να επιλέξει µια λειτουργία ανά-
γνωσης ή εγγραφής. Η µνήµη ενεργοποιείται, όταν το κύκλωµα αποκωδικο-
ποίησης διευθύνσεων, που χρησιµοποιεί τις 2 πιο σηµαντικές γραµµές του δίαυ-
λου διευθύνσεων, παράγει ένα ενεργό σήµα CS~. Εάν π.χ. το κύκλωµα απο-
κωδικοποίησης αποτελείται από µια OR δύο εισόδων, τότε η µνήµη αντιστοι-
χεί στις διευθύνσεις 000016–3FFF16, αφού για να επιλεγεί η µνήµη θα πρέπει τα
δύο σηµαντικότερα ψηφία της διεύθυνσης να είναι στην τιµή 0.
1 6 36 . 4 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™ À ™ ∫ ∂ À ø ¡ ∂ π ™ √ ¢ √ À / ∂ • √ ¢ √ À
Σχεδιάστε το κύκλωµα αποκωδικοποίησης στην περίπτωση της διασύνδε-
σης µίας µνήµης RAM 16Κx8 µε τον 8086. Η µνήµη καλύπτει τις θέσεις
FC00016–FFFFF16 του χώρου διευθύνσεων του µικροεπεξεργαστή. Πώς θα
συνδέσουµε τα σήµατα OE~ και R/W~ της µνήµης; Θεωρήστε ότι ο 8086
λειτουργεί στον ελάχιστο τρόπο λειτουργίας.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘6.3
6.4 ¢È·Û‡Ó‰ÂÛË Û˘Û΢ÒÓ ÂÈÛfi‰Ô˘/ÂÍfi‰Ô˘
™ÎÔfi˜
Στις προηγούµενες ενότητες γνωρίσατε τον τρόπο µε τον οποίο µπορείτε να
διασυνδέσετε µία µνήµη σ’ ένα µικροεπεξεργαστή. Στην ενότητα αυτή θα γνω-
ρίσετε τον τρόπο µε τον οποίο µπορούµε να συνδέσουµε συσκευές εισόδου ή
εξόδου στους διαύλους ενός µικροϋπολογιστικού συστήµατος.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Ολοκληρώνοντας τη µελέτη αυτής της ενότητας, θα είστε σε θέση να περι-
γράψετε τους δύο τρόπους διασύνδεσης µίας συσκευή εισόδου ή εξόδου σε
ένα σύστηµα, καθώς και να σχεδιάσετε κυκλώµατα διασύνδεσης απλών περι-
φερειακών συσκευών.
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Η ενότητα αυτή έχει αρκετά µεγάλο µέγεθος. Αφιερώστε αρκετό χρόνο ώστε
να κατανοήσετε τα παραδείγµατα, τα οποία παρουσιάζονται σε αυτή. Τελει-
ώνοντας, θα πρέπει να µελετήσετε προσεκτικά το Παράδειγµα 1, το οποίο
παρουσιάζει έναν ολοκληρωµένο µικροϋπολογιστή και συνοψίζει τα όσα έχετε
µάθει στις προηγούµενες ενότητες. Εάν έχετε δυσκολίες στην κατανόηση του
παραδείγµατος αυτού, θα πρέπει να επαναλάβετε τη µελέτη του κεφαλαίου µε
µεγαλύτερη προσοχή.
1 6 4 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
Όπως γνωρίσαµε σε προηγούµενα κεφάλαια, υπάρχουν µικροεπεξεργαστές,
οι οποίοι έχουν διαφορετικό χώρο διευθύνσεων για τη µνήµη και διαφορετι-
κό χώρο διευθύνσεων για τις συσκευές εισόδου/εξόδου. Έτσι, για παράδειγ-
µα µάθαµε ότι ο 8086 µπορεί να διευθυνσιοδοτήσει 1 ΜΒ θέσεις κύριας µνή-
µης και 64 ΚΒ θέσεις συσκευών εισόδου/εξόδου. Οι εντολές που χρησιµο-
ποιούνται για την ανάγνωση και εγγραφή δεδοµένων στις συσκευές εισό-
δου/εξόδου ονοµάζονται συνήθως IN και OUT. Κάθε φορά που το σύστηµα
επιθυµεί τη µεταφορά δεδοµένων από και προς αυτές τις συσκευές, εκτελεί
την αντίστοιχη εντολή. Κατά την εκτέλεση των εντολών αυτών, ο µικροε-
πεξεργαστής παράγει αντίστοιχα τα σήµατα ανάγνωσης συσκευής εισό-
δου/εξόδου (I/OR~) και εγγραφής συσκευής εισόδου/εξόδου (I/OW~), τα
οποία χρησιµοποιούνται για να επιλέγουν την αντίστοιχη λειτουργία.
Όταν θέλουµε να διασυνδέσουµε κάποια περιφερειακή συσκευή µε κάποιο
µικροεπεξεργαστή, έχουµε δύο εναλλακτικές λύσεις: Η πρώτη ονοµάζεται
I/O–mapped Ι/Ο και χρησιµοποιεί το χώρο διευθύνσεων των συσκευών εισό-
δου/εξόδου που διαθέτει ο µικροεπεξεργαστής. Η µεταφορά δεδοµένων γίνε-
ται µε τις εντολές IN και OUT, ενώ η διασύνδεση µε τη βοήθεια των σηµά-
των I/OR~ και I/OW~ του µικροεπεξεργαστή. Η δεύτερη εναλλακτική λύση
ονοµάζεται memory–mapped I/O. Στην περίπτωση αυτή χρησιµοποιούµε τις
συσκευές εισόδου/εξόδου, όπως τις µνήµες. Μπορούµε να χρησιµοποιήσουµε
όλες τις εντολές και τους τρόπους διευθυνσιοδότησης που χρησιµοποιούµε
για τη µνήµη, ενώ η διασύνδεση γίνεται µε τη βοήθεια των σηµάτων
MEMR~ και MEMW~ του µικροεπεξεργαστή.
Σε κάθε περίπτωση θα πρέπει να αντιστοιχήσουµε κάθε περιφερειακή
συσκευή (η οποία µπορεί να απαιτεί µία ή περισσότερες διευθύνσεις) σε
συγκεκριµένο σηµείο του χώρου διευθύνσεων του µικροεπεξεργαστή µε τη
βοήθεια κάποιου κυκλώµατος αποκωδικοποίησης διευθύνσεων παρόµοιου
µε αυτά που είδαµε στις προηγούµενες ενότητες.
Έστω ότι έχουµε ένα µικροϋπολογιστικό σύστηµα, στο οποίο θέλουµε να
έχουµε τη δυνατότητα να οδηγούµε κάποια LEDs (Light Emitting Diodes),
όπως για παράδειγµα συµβαίνει σε ένα σύστηµα προβολής ανακοινώσεων.
Στο σχήµα 6.3 µπορείτε να δείτε τον τρόπο µε τον οποίο µπορούµε να συν-
δέσουµε τα LEDs στους διαύλους του µικροεπεξεργαστή. Τα LEDs συνδέ-
ονται σε µανταλωτές (latch), οι οποίοι, όταν λάβουν παλµό στην είσοδο χρο-
νισµού τους, αποθηκεύουν τα δεδοµένα που βρίσκονται στο δίαυλο δεδοµέ-
νων σε αυτά. Ο παλµός χρονισµού του µανταλωτή δηµιουργείται από το
Όταν το µικροϋπολογιστικό σύστηµα επιθυµεί να αλλάξει την κατάσταση κάποι-
ων LEDs, εκτελείται µία εντολή OUT µε διεύθυνση τη διεύθυνση, στην οποία
αποκωδικοποιούνται οι µανταλωτές, και µε αυτά τα δεδοµένα που θα προκαλέ-
σουν τις επιθυµητές αλλαγές καταστάσεων. Κατά την εκτέλεση της εντολής
OUT στο δίαυλο διευθύνσεων εµφανίζεται η διεύθυνση των µανταλωτών και ο
µικροεπεξεργαστής παράγει, τη στιγµή που τοποθετεί τα δεδοµένα στο δίαυλο
δεδοµένων, ένα σήµα I/OW~, το οποίο µαζί µε τη διεύθυνση δηµιουργεί έναν
παλµό χρονισµού στους µανταλωτές, µε αποτέλεσµα να αποθηκεύονται τα νέα
δεδοµένα σε αυτούς και να αλλάζουν οι καταστάσεις των LEDs.
Έστω τώρα ότι έχουµε ένα µικροϋπολογιστικό σύστηµα, το οποίο χρησιµο-
ποιείται σ’ ένα εργοστάσιο παρασκευής χηµικών, και θέλουµε να ελέγχου-
µε την κατάσταση, στην οποία βρίσκεται ένας διακόπτης που ελέγχει τη ροή
κάποιου χηµικού στοιχείου. Ο διακόπτης έχει τη δυνατότητα να µας δίνει µία
λογική τιµή 0 ή 1, ανάλογα µε το αν είναι ανοικτός ή κλειστός. Στο σχήµα
6.4 µπορούµε να δούµε τον τρόπο µε τον οποίο µπορούµε να διασυνδέσου-
µε το διακόπτη µε κάποιο µικροεπεξεργαστή έτσι ώστε να µπορούµε ανά
1 6 56 . 4 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™ À ™ ∫ ∂ À ø ¡ ∂ π ™ √ ¢ √ À / ∂ • √ ¢ √ À
Kύκλωµαv
αποκωδικοποίησης
A15v•v
•v
•vA0
D7v•v
•v
•vD0
I/OW~
KME
∆ίαυλοςv
διευθύνσεων
∆ίαυλοςv
δεδοµένων
D0D Q
CLK
D1
D Q
CLK
D7
D Q
CLK
•v
•v
•
™¯‹Ì· 6.3 Η διασύνδεση µιας συστοιχίας από LEDs σε ένα µικροεπεξεργαστή
κύκλωµα αποκωδικοποίησης και το σήµα I/OW~ που παράγει ο µικροεπε-
ξεργαστής (έστω ότι χρησιµοποιούµε I/O–mapped I/O τρόπο διασύνδεσης).
1 6 6 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
πάσα στιγµή να γνωρίζουµε την κατάσταση του διακόπτη. Το πρόγραµµα
του µικροεπεξεργαστή εκτελεί σε τακτά χρονικά διαστήµατα µία εντολή IN
µε διεύθυνση τη διεύθυνση στην οποία έχει αντιστοιχιστεί ο διακόπτης (στην
πραγµατικότητα το D flip–flop, στο οποίο έχει συνδεθεί). Κατά την εκτέλε-
ση της εντολής στο δίαυλο διευθύνσεων εµφανίζεται η διεύθυνση του δια-
κόπτη και το σήµα I/OR~ γίνεται ενεργό, µε αποτέλεσµα να παράγεται ένας
παλµός χρονισµού στο D flip–flop. Η τιµή του διακόπτη µεταφέρεται δια-
µέσου του D flip–flop και του tri–state buffer στο δίαυλο δεδοµένων και
καταλήγει τελικά στο µικροεπεξεργαστή. Ο tri–state buffer χρησιµοποιείται
ώστε τα δεδοµένα του D flip–flop να βρίσκονται στο δίαυλο δεδοµένων µόνο
κατά το χρονικό διάστηµα όπου ο µικροεπεξεργαστής ζητάει την ανάγνωση
των δεδοµένων της συσκευής µε τη διεύθυνση του διακόπτη. Σε οποιαδή-
ποτε άλλη χρονική στιγµή η έξοδος του tri–state buffer βρίσκεται σε κατά-
σταση υψηλής εµπέδησης για να µην παρενοχλεί τις µεταφορές δεδοµένων
µε τις άλλες συσκευές ή µε τη µνήµη.
Kύκλωµαv
αποκωδικοποίησης
A15v•v
•v
•vA0
D7v•v
•v
•vD0
I/OW~
KME
∆ίαυλοςv
διευθύνσεων
∆ίαυλοςv
δεδοµένων
D0Q D
CLK
D1
D7
+5V
Q D
CLK
+5V
Q D
CLK
+5V
•v
•v
•
™¯‹Ì· 6.4 Η διασύνδεση µίας
συστοιχίας από διακόπτες
σε ένα µικροεπεξεργαστή
Μέχρι τώρα είδαµε ένα παράδειγµα διασύνδεσης µίας απλής συσκευής εισό-
δου (µίας συσκευής που συµπεριφερόταν ως απλός διακόπτης) και ένα παρά-
δειγµα διασύνδεσης µίας απλής συσκευής εξόδου (κάποιων LEDs) σε ένα
µικροεπεξεργαστή. Φυσικά σε µικροϋπολογιστικά συστήµατα µπορούµε να
βρούµε πιο πολύπλοκες συσκευές από αυτές που αναφέραµε προηγούµενα.
Όλες οι συσκευές όµως ακολουθούν παρόµοιους κανόνες διασύνδεσης µε
αυτούς που είδαµε προηγούµενα. Σε περιπτώσεις πιο πολύπλοκων συστη-
µάτων η διασύνδεση των περιφερειακών συσκευών γίνεται µε τη βοήθεια
ελεγκτών, ολοκληρωµένων κυκλωµάτων ειδικά κατασκευασµένων ώστε να
διευκολύνουν τη διασύνδεση των συσκευών µε τους διαύλους κάποιου
µικροεπεξεργαστή.
¶·Ú¿‰ÂÈÁÌ· 6.1
Μελέτη ενός ολοκληρωµένου µικροϋπολογιστικού συστήµατος.
∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 6.1
Ας υποθέσουµε ότι έχουµε το µικροϋπολογιστικό σύστηµα που βλέπετε στο
σχήµα 6.5. Αποτελείται από ένα µικροεπεξεργαστή, µνήµη ROM 8Κx8, στην
οποία είναι αποθηκευµένο το πρόγραµµα που εκτελεί τις λειτουργίες του
συστήµατος, και µνήµη RAM 16Kx8 για την αποθήκευση δεδοµένων. Περιέ-
χει επίσης µία µονάδα εισόδου, που είναι ένα απλό πληκτρολόγιο (keypad),
µία µονάδα εξόδου, που είναι µία µονάδα απεικόνισης (seven segment
display), και συσκευές διασύνδεσης (8212) για να συνδέονται οι συσκευές
αυτές στους διαύλους του συστήµατος.
Ο 8212 είναι µία απλή συσκευή διασύνδεσης για περιφερειακές συσκευές.
Μπορεί να χρησιµοποιηθεί είτε µε συσκευές εισόδου είτε µε συσκευές εξόδου.
Το σήµα MD καθορίζει τον τρόπο λειτουργίας της συσκευής. Όταν το MD
είναι στη λογική κατάσταση 0, τότε ο 8212 διασυνδέει κάποια συσκευή εισό-
δου, ενώ όταν το MD είναι στη λογική κατάσταση 1, τότε ο 8212 διασυνδέει
κάποια συσκευή εξόδου. Τα σήµατα DI7–DI0 αποτελούν το δίαυλο δεδοµένων
εισόδου, ενώ τα σήµατα DO7–DO0 αποτελούν το δίαυλο δεδοµένων εξόδου.
Τα σήµατα DS1~ και DS2 είναι τα σήµατα επιλογής της συσκευής (αντιστοι-
χούν στα σήµατα CS~ που είχαµε δει στις µνήµες). Επίσης υπάρχει το σήµα
STB, που χρησιµοποιείται για να ειδοποιεί η συσκευή εισόδου τον 8212, όταν
έχει έτοιµα τα δεδοµένα, και µία γραµµή ΙΝΤ~, µε την οποία ο 8212 µπορεί
να προκαλέσει κάποια αίτηση διακοπής στον µικροεπεξεργαστή.
Το σύστηµά µας χρησιµοποιεί ένα κύκλωµα αποκωδικοποίησης διευθύνσε-
ων, το οποίο αποτελείται από έναν αποκωδικοποιητή 2–σε–4 (2–4 decoder),
ο οποίος παράγει τα κατάλληλα σήµατα επιλογής DS, στην περίπτωση του
πληκτρολογίου και της µονάδας απεικόνισης, και CS στην περίπτωση των
1 6 76 . 4 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™ À ™ ∫ ∂ À ø ¡ ∂ π ™ √ ¢ √ À / ∂ • √ ¢ √ À
∆ίαυλοςv
διευθύνσεων
∆ίαυλοςv
δεδοµένων
Kύκλωµαv
αποκωδικοποίησης
Πληκτρολόγιο
A15v•v
•v
•vA0
D7v•v
•v
•vD0
RD~
WR~
KME
INTR
A0v•v
•v
•vA12
D0v•v
•v
•vD7
OE~
ROMU
8Kx8
CS~
DI0v
•v
•v
•vDI7
DI0••• DI7
DS~
MD
DS1~
8212U
I/O port
Mονάδαv
απεικόνισης
DO0v•v
•v
•vDO7
DI0••• DI7
DS2
MD
DS1~
STB
8212U
I/O port
INT~
A0v•v
•v
•vA13
D0v•v
•v
•vD7
OE~R/W~
RAMU
16Kx8
CS~
Λογικό 0
Λογικό 1
1 6 8 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
™¯‹Ì· 6.5
Ένα ολοκληρωµένο
µικροϋπολογιστικό
σύστηµα
µνηµών ROM και RAM. Με τη βοήθεια του κυκλώµατος αποκωδικοποίη-
σης, οι µνήµες, το πληκτρολόγιο και η µονάδα απεικόνισης απεικονίζονται
σε διαφορετικά σηµεία του χώρου διευθύνσεων του µικροεπεξεργαστή. Τα
σήµατα ανάγνωσης και εγγραφής δεδοµένων (MEMR~, MEMW~) συνδέο-
νται στη µνήµη και στους 8212 µε τον τρόπο που είδαµε στις προηγούµενες
ενότητες.
Όταν ο µικροεπεξεργαστής επιθυµεί να απεικονίσει κάποια πληροφορία στη
µονάδα απεικόνισης, εκτελεί µία εντολή αποθήκευσης δεδοµένων στη διεύ-
θυνση που βρίσκεται ο 8212, στον οποίο είναι συνδεµένη. Με τον τρόπο αυτό
επιλέγεται ο 8212 και τα δεδοµένα µεταφέρονται, µέσω του διαύλου δεδοµέ-
νων του συστήµατος, στον 8212 και από εκεί στη µονάδα απεικόνισης.
Η είσοδος δεδοµένων από το πληκτρολόγιο διαφέρει λίγο από τον τρόπο που
είδαµε προηγούµενα. Όταν πατηθεί κάποιο πλήκτρο, το σήµα STB ειδοποιεί
τον 8212 για τα νέα δεδοµένα. Ο 8212 µεταφέρει τα δεδοµένα σε αυτόν και
ταυτόχρονα δηµιουργεί µία αίτηση διακοπής προς το µικροεπεξεργαστή µέσω
του σήµατος INT~. Ο µικροεπεξεργαστής, αναγνωρίζοντας την αίτηση δια-
κοπής, θα πρέπει να ελέγξει ποια ήταν η συσκευή που προκάλεσε τη διακο-
πή και να εκτελέσει την αντίστοιχη ρουτίνα εξυπηρέτησης (στη συγκεκριµέ-
νη περίπτωση βέβαια η µόνη συσκευή που υπάρχει είναι το πληκτρολόγιο).
Παρατηρήστε ότι στο συγκεκριµένο παράδειγµα στη διασύνδεση του πλη-
κτρολογίου και της µονάδας απεικόνισης µε το σύστηµα χρησιµοποιούµε
memory–mapped I/O και γι' αυτό χρησιµοποιούµε τα σήµατα ΜΕMR~ και
MEMW~ για να οδηγήσουµε τα 8212 αντί για τα σήµατα I/OR~ και I/OW~
που χρησιµοποιούµε στην περίπτωση του I/O–mapped Ι/Ο. Εποµένως, οι
συσκευές αυτές αποκωδικοποιούνται στο χώρο διευθύνσεων της µνήµης και
όχι στον I/O χώρο διευθύνσεων του µικροεπεξεργαστή.
1 6 96 . 4 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™ À ™ ∫ ∂ À ø ¡ ∂ π ™ √ ¢ √ À / ∂ • √ ¢ √ À
Θεωρήστε το σχεδιασµό του παραδείγµατος 1. Έστω ότι θέλουµε η µνήµη
ROM να αποκωδικοποιείται στις διευθύνσεις 000016–1FFF16, η µνήµη
RAM να αποκωδικοποιείται στις διευθύνσεις 800016–AFFF16, το πληκτρο-
λόγιο στη θέση 400016, ενώ η µονάδα απεικόνισης στη θέση C00016. Σχε-
διάστε το κύκλωµα αποκωδικοποίησης.
ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘6.4
1 7 0 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞
6.5 ™˘ÛÙ‹Ì·Ù· ·Ó¿Ù˘Í˘ ÌÈÎÚÔ¸ÔÏÔÁÈÛÙÈÎÒÓ Û˘ÛÙËÌ¿ÙˆÓ
Η κατασκευή ενός µικροϋπολογιστικού συστήµατος περνάει από διάφορα
στάδια: στην αρχή έχουµε την καταγραφή των προδιαγραφών που θα πρέπει
να πληρεί το σύστηµα. Στη συνέχεια γίνεται ο σχεδιασµός του συστήµατος.
Ακολουθεί η κατασκευή του πρωτότυπου και ο έλεγχος του κατά πόσο πλη-
ρεί τις προδιαγραφές που έχουν τεθεί. Τα βήµατα αυτά επαναλαµβάνονται
ξανά από την αρχή για να διορθωθούν τυχόν ατέλειες µέχρι να προκύψει το
τελικό σύστηµα.
Είναι προφανές ότι ο χρόνος που περνάει από τη στιγµή της σύλληψης µιας
ιδέας µέχρι την υλοποίησή της και την κατασκευή του επιθυµητού συστή-
µατος είναι κρίσιµος για την εµπορική επιτυχία του συστήµατος και θα πρέ-
πει να διατηρείται όσο το δυνατό µικρότερος. Οι κατασκευαστές, για να βοη-
θήσουν την ανάπτυξη µικροϋπολογιστικών συστηµάτων, παρέχουν µαζί µε
τους µικροεπεξεργαστές και συστήµατα ανάπτυξης µικροϋπολογιστικών
συστηµάτων (development kits), τα οποία έχουν ως σκοπό να διευκολύνουν
τη διαδικασία ανάπτυξης τέτοιων συστηµάτων.
Τα συστήµατα ανάπτυξης µικροϋπολογιστικών συστηµάτων µπορούν να
περιέχουν είτε υλικό (όπως ειδικές συσκευές εξοµοίωσης της λειτουργίας
του µικροεπεξεργαστή) είτε λογισµικό (συµβολοµεταφραστές, λογισµικό για
εκσφαλµάτωση του προγράµµατος του συστήµατος κ.λπ.) και διευκολύνουν
σηµαντικά τη δουλειά του σχεδιαστή.
™‡ÓÔ„Ë
Τα µικροϋπολογιστικά συστήµατα αποτελούνται συνήθως από ένα µικροε-
πεξεργαστή, ολοκληρωµένα κυκλώµατα µνήµης ROM ή/και RAM και περι-
φερειακές συσκευές συνδεµένα στους διαύλους του συστήµατος. Η διασύν-
δεση ορίζει τους κανόνες, µε τους οποίους µπορούν να συνδεθούν δυο
συσκευές µεταξύ τους.
Ένα από τα πρώτα βήµατα στο σχεδιασµό του συστήµατος είναι η αντιστοί-
χηση των συσκευών του συστήµατος στο χώρο διευθύνσεων, που µπορεί να
διαχειριστεί ο µικροεπεξεργαστής. Η αντιστοίχηση αυτή γίνεται µε τη βοή-
θεια κάποιων κυκλωµάτων αποκωδικοποίησης, τα οποία αποκωδικοποιούν
τη διεύθυνση, την οποία ορίζει ο µικροεπεξεργαστής και, εάν αυτή συµφωνεί
µε τη διεύθυνση της συσκευής, ενεργοποιούν τη συσκευή αυτή. Τα κυκλώµα-
τα αποκωδικοποίησης είναι συνήθως απλά συνδυαστικά κυκλώµατα και απο-
τελούνται από απλά στοιχεία, όπως πύλες και αποκωδικοποιητές.
Οι µνήµες ROM και RAM έχουν ένα συγκεκριµένο πλήθος θέσεων µνήµης
και διευθυνσιοδοτούνται από ένα υποσύνολο των γραµµών διευθύνσεων. Οι
υπόλοιπες γραµµές διευθύνσεων οδηγούνται στο κύκλωµα αποκωδικοποίη-
σης για να παράγουν το αντίστοιχο σήµα επιλογής της µνήµης. Όλα τα µικρο-
ϋπολογιστικά συστήµατα παράγουν κάποιο σήµα ανάγνωσης µνήµης
(MEMR~) και κάποιο σήµα εγγραφής στη µνήµη (π.χ. MEMW~). Στην περί-
πτωση µίας µνήµης ROM, το σήµα ανάγνωσης οδηγείται στην είσοδο OE~
της µνήµης, ώστε η µνήµη να τοποθετεί τα δεδοµένα στο δίαυλο δεδοµένων,
όταν πρόκειται για κύκλο ανάγνωσης. Στην περίπτωση µίας µνήµης RAM,
εκτός από το σήµα MEMR~, χρησιµοποιείται και το σήµα MEMW~, που οδη-
γείται στην είσοδο R/W~ και καθορίζει τη λειτουργία της µνήµης.
Η διασύνδεση περιφερειακών συσκευών µπορεί να γίνει είτε µε τη βοήθεια
των σηµάτων ανάγνωσης και εγγραφής στη µνήµη, οπότε στην περίπτωση
αυτή οι περιφερειακές συσκευές αντιστοιχίζονται στο χώρο διευθύνσεων µνή-
µης του µικροεπεξεργαστή (memory–mapped Ι/Ο), είτε µε τη βοήθεια των
σηµάτων ανάγνωσης και εγγραφής σε συσκευή εισόδου/εξόδου, που περιέ-
χουν συνήθως οι µικροεπεξεργαστές, οπότε οι περιφερειακές συσκευές αντι-
στοιχίζονται στο χώρο διευθύνσεων συσκευών εισόδου/εξόδου του µικροε-
πεξεργαστή (I/O–mapped I/O). Στην πρώτη περίπτωση µπορούν να χρησι-
µοποιηθούν όλοι οι τρόποι προσπέλασης της µνήµης και όλες οι εντολές για
να προσπελαστεί κάποια περιφερειακή συσκευή, ενώ στη δεύτερη περίπτωση
χρησιµοποιούνται οι εντολές IN και OUT.
Η διασύνδεση απλών συσκευών, όπως µονάδων απεικόνισης (LEDs,
seven–segment displays) και διακοπτών, µπορεί να γίνει µε τρόπο παρόµοιο
µε αυτό των µνηµών. Η διασύνδεση πιο πολύπλοκων συσκευών γίνεται µε τη
βοήθεια ειδικών ολοκληρωµένων κυκλωµάτων, που έχουν σχεδιαστεί γι’ αυτό
το σκοπό και ονοµάζονται συνήθως ελεγκτές.
Πολλές φορές επίσης στη διασύνδεση περιφερειακών συσκευών χρησιµοποι-
ούνται οι αιτήσεις διακοπής. Όταν µια περιφερειακή συσκευή επιθυµεί τη
µεταφορά δεδοµένων από ή προς το µικροεπεξεργαστή, δηµιουργεί µία αίτη-
ση διακοπής. Ο µικροεπεξεργαστής εξυπηρετεί αυτή την αίτηση και µεταφέ-
ρει τα δεδοµένα.
Σε κάθε περίπτωση ο σχεδιασµός των συστηµάτων θα πρέπει να γίνεται µε
προσοχή, ώστε κάθε φορά µόνο µία συσκευή να µεταφέρει δεδοµένα από και
1 7 1™ Y N O æ H
1 7 2 B I B § I O ° PA º I A
προς το µικροεπεξεργαστή µέσω του διαύλου δεδοµένων, ενώ όλες οι άλλες
συσκευές θα πρέπει να είναι απενεργοποιηµένες.
Η ανάπτυξη ολοκληρωµένων συστηµάτων βασισµένων σε µικροεπεξεργα-
στές είναι µία αρκετά σύνθετη και επίπονη διαδικασία και βασίζεται συνή-
θως στην εµπειρία και εφευρετικότητα του σχεδιαστή. Παρά το γεγονός αυτό
όµως, οι κατασκευαστές µικροεπεξεργαστών παρέχουν διάφορα εργαλεία
ανάπτυξης µικροϋπολογιστικών συστηµάτων για να διευκολύνουν τη διαδι-
κασία σχεδιασµού.
BÈÏÈÔÁÚ·Ê›·
Τώρα που τελειώσατε την ανάγνωση του έκτου κεφαλαίου, καλό είναι να
διαθέσετε κάποιον επιπλέον χρόνο για να µελετήσετε τα παρακάτω κείµενα,
τα οποία περιέχουν πληροφορίες για τον τρόπο µε τον οποίο κατασκευάζουµε
ολοκληρωµένα µικροϋπολογιστικά συστήµατα:
1. Theory and Problems of Microprocessor Fundamentals, Schaum’s Outline
Series, Roger L. Tokheim, Κεφάλαιο 7. Στο κεφάλαιο αυτό θα βρείτε
παραδείγµατα και ασκήσεις, που αφορούν στη διασύνδεση µνηµών και
περιφερειακών σε κάποιο γενικό µικροεπεξεργαστή.
2. Handbook of Software & Hardware Interfacing for IBM PCs, Jeffrey P.
Royer, Prentice–Hall, Inc, Κεφάλαια 14–15. Στα κεφάλαια αυτά θα βρεί-
τε την περιγραφή του τρόπου, µε τον οποίο είναι φτιαγµένοι οι IBM PC
συµβατοί προσωπικοί υπολογιστές, και κάποια παραδείγµατα διασύνδε-
σης συσκευών εισόδου/εξόδου.
E›ÏÔÁÔ˜: ™‡Á¯ÚÔÓ˜ T¿ÛÂȘ ™¯Â‰È·ÛÌÔ‡ MÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ
Στα προηγούµενα κεφάλαια του βιβλίου αυτού γνωρίσατε:
(α) τα βασικά σηµεία, τα οποία απαρτίζουν κάθε µικροεπεξεργαστή (ή του-
λάχιστον ήταν τα βασικά στοιχεία κάθε µικροεπεξεργαστή για πολλά
χρόνια στο παρελθόν),
(β) τη δοµή και φιλοσοφία σχεδιασµού κάποιων από τους πρώτους µικροεπε-
ξεργαστές, όπως οι Intel 8080/8085 και 8086/8088 και ο Motorola 6800, και
(γ) τον τρόπο µε τον οποίο µπορούµε να διασυνδέσουµε κάποιο µικροεπε-
ξεργαστή µε κυκλώµατα µνηµών ή περιφερειακών συσκευών για να
κατασκευάσουµε ολοκληρωµένα µικροϋπολογιστικά συστήµατα.
™ÎÔfi˜
Τελειώνοντας το βιβλίο µε το κεφάλαιο αυτό, θα περιγράψουµε σε συντοµία
κάποια βασικά στοιχεία της εξέλιξης των µικροεπεξεργαστών µέχρι σήµερα, καθώς
και τα χαρακτηριστικά που διακρίνουν τους σύγχρονους µικροεπεξεργαστές.
¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·
Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:
• ορίσετε τις βασικές κατευθύνσεις πάνω στις οποίες κινήθηκε η εξέλιξη των
µικροεπεξεργαστών.
• καθορίσετε τις αιτίες, οι οποίες οδήγησαν σε αυτή την εξέλιξη.
ŒÓÓÔȘ ÎÏÂȉȿ
7∫ ∂ º ∞ § ∞ π √
• ∆ιοχέτευση
• Ιεραρχία Μνήµης
• Μήκος λέξης
• Σύγχρονοι Μικροεπεξεργαστές
• Ταχύτητα Χρονισµού
∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ
Το 7ο κεφάλαιο αποτελεί τον επίλογο του βιβλίου αυτού. Στις επόµενες σελί-
δες θα βρείτε σε συντοµία ποια ήταν τα κύρια σηµεία εξέλιξης των µικροε-
πεξεργαστών µέχρι σήµερα, καθώς και τις αιτίες που προκάλεσαν αυτή την
εξέλιξη. Πριν προχωρήσετε, όµως, στη µελέτη του κεφαλαίου αυτού, θα ήταν
καλό να επαναλάβετε την ανάγνωση της Ενότητας 1.5, η οποία περιέχει µία
ιστορική αναδροµή στους κυριότερους µικροεπεξεργαστές.
7.1 H ÂͤÏÈÍË ÙˆÓ ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ – ™‡Á¯ÚÔÓ· ΢ÎÏÒÌ·Ù·
Οι µικροεπεξεργαστές, στα περίπου 30 χρόνια εξέλιξής τους, πέρασαν από
πολλά στάδια. Ο σχεδιασµός των πρώτων µικροεπεξεργαστών ήταν προσα-
νατολισµένος στο σκοπό για τον οποίο είχαν αυτοί κατασκευαστεί: τη δηµι-
ουργία απλών συστηµάτων αυτοµάτου ελέγχου και τη χρήση τους σε
συσκευές, όπως εκτυπωτές, τερµατικές συσκευές, αριθµοµηχανές κ.ά. Στη
συνέχεια οι σχεδιαστές µικροεπεξεργαστών στράφηκαν στην ανάπτυξη ολο-
κληρωµένων κυκλωµάτων, τα οποία θα ήταν γενικού σκοπού και θα µπο-
ρούσαν να χρησιµοποιηθούν σε πολλές εφαρµογές µε τη βοήθεια συµπλη-
ρωµατικών ολοκληρωµένων κυκλωµάτων, που κατασκευάζονταν ειδικά για
κάθε εφαρµογή.
Η εξέλιξη στο σχεδιασµό των µικροεπεξεργαστών δεν θα µπορούσε να είναι
ανεξάρτητη από τις ανάγκες των χρηστών. Έτσι, οι αυξανόµενες απαιτήσεις
για σύγχρονες εφαρµογές, όπως π.χ. φορητές συσκευές, ή για δικτυακές
εφαρµογές µε µετάδοση εικόνας και video οδηγούσαν την εξέλιξη των µικρο-
επεξεργαστών, ενώ οι νέοι µικροεπεξεργαστές έδιναν τη δυνατότητα για την
ανάπτυξη ακόµα πιο πολύπλοκων και "έξυπνων" συσκευών.
Το παραπάνω γεγονός σε συνδυασµό µε την εξέλιξη της τεχνολογίας των
ολοκληρωµένων κυκλωµάτων, που έδωσε τη δυνατότητα για την ενσωµά-
τωση εκατοµµυρίων τρανσίστορς µέσα σ’ ένα ολοκληρωµένο κύκλωµα, οδή-
γησαν στην ανάπτυξη νέων και ισχυρών µικροεπεξεργαστών.
Όλες οι προσπάθειες των σχεδιαστών µικροεπεξεργαστών από τους πρώτους
16–bit µέχρι τους σύγχρονους µικροεπεξεργαστές των 64–bits κινήθηκαν
πάνω στους ίδιους άξονες: οι νέοι µικροεπεξεργαστές θα πρέπει να είναι πιο
γρήγοροι σε ταχύτητα, να έχουν µεγαλύτερες δυνατότητες επεξεργασίας, να
έχουν µικρότερη κατανάλωση από τους προγενέστερούς τους και να µπο-
ρούν να καλύψουν τις απαιτήσεις των σύγχρονων εφαρµογών. Αν παρατη-
ρήσουµε την εξέλιξη των µικροεπεξεργαστών από την εµφάνιση του 8086
µέχρι τους σηµερινούς µικροεπεξεργαστές, µπορούµε να παραθέσουµε
κάποια στοιχεία, τα οποία είναι ενδεικτικά της εξέλιξής τους.
Το µήκος λέξης του µικροεπεξεργαστή µεγάλωσε από 16 δυαδικά ψηφία σε 32
και σήµερα στα 64 δυαδικά ψηφία. Έτσι, οι σηµερινοί µικροεπεξεργαστές µπο-
ρούν να υλοποιούν άµεσα και γρήγορα µεγάλους αριθµητικούς υπολογισµούς.
Ταυτόχρονα µε το µήκος λέξης, αυξήθηκε και το πλήθος των θέσεων µνή-
µης, που µπορεί να προσπελάσει ο µικροεπεξεργαστής. Έτσι σήµερα συνα-
1 7 4 K E º A § A I O 7 : E ¶ π § √ ° √ ™ / ™ À ° Ã ƒ √ ¡ ∂ ™ T∞ ™ ∂ π ™ ™ Ã ∂ ¢ π ∞ ™ ª √ À M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡
1 7 57 . 1 H ∂ • ∂ § π • ∏ ∆ ø ¡ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡ – ™ À ° Ã ƒ √ ¡ ∞ ∫ À ∫ § ø ª ∞∆∞
ντάµε µικροεπεξεργαστές µε δίαυλο διευθύνσεων µεγέθους 64 δυαδικών
ψηφίων µε δυνατότητα διευθυνσιοδότησης πολλών GB θέσεων µνήµης.
Εκτός αυτού, όλοι οι σύγχρονοι µικροεπεξεργαστές υποστηρίζουν συστή-
µατα ιεραρχίας µνήµης µε κρυφές µνήµες, ενώ πολλοί από αυτούς ενσωµα-
τώνουν κάποια από τα επίπεδα αυτά (συνήθως το πρώτο επίπεδο κρυφής
µνήµης) στο ολοκληρωµένο κύκλωµα του µικροεπεξεργαστή. Για παρά-
δειγµα, ο µικροεπεξεργαστής Intel Pentium III διαθέτει ενσωµατωµένη την
κρυφή µνήµη πρώτου επιπέδου µεγέθους 32ΚΒ και την κρυφή µνήµη δευ-
τέρου επιπέδου µεγέθους 512ΚΒ.
Ταυτόχρονα η εξέλιξη της τεχνολογίας έδωσε τη δυνατότητα για µεγαλύτε-
ρες ταχύτητες χρονισµού των ολοκληρωµένων κυκλωµάτων µε αποτέλεσµα
την αύξηση της ταχύτητας της εκτέλεσης των προγραµµάτων του µικροεπε-
ξεργαστή. Από την ταχύτητα χρονισµού του 1 MHz του 8080, των 10 ΜΗz
που γνωρίσαµε στον Intel 8086, βρισκόµαστε σήµερα σε ταχύτητες χρονι-
σµού της τάξης των 500 MHz, όπως για παράδειγµα ο Intel Pentium III.
Η αύξηση στην ταχύτητα εκτέλεσης δεν ήταν αποτέλεσµα µόνο της αύξη-
σης της ταχύτητας χρονισµού. Σήµερα όλοι οι µικροεπεξεργαστές διαθέτουν
στο εσωτερικό τους πολύπλοκα κυκλώµατα που διευκολύνουν τις λειτουρ-
γίες τους, όπως π.χ. µονάδες αριθµητικής κινητής υποδιαστολής για πράξεις
κινητής υποδιαστολής ή µονάδες διαχείρισης της µνήµης για τη γρήγορη
προσπέλαση σε αυτήν.
Ταυτόχρονα ανακαλύψεις στην αρχιτεκτονική υπολογιστών βρίσκουν πεδίο
εφαρµογής στους µικροεπεξεργαστές. Έτσι, οι σύγχρονοι µικροεπεξεργα-
στές προσπαθούν να παραλληλίσουν την εκτέλεση των εντολών των προ-
γραµµάτων (Instruction Level Parallelism) µε σκοπό να πετύχουν την πιο
γρήγορη εκτέλεσή τους. Για το σκοπό αυτό π.χ. πολλοί µικροεπεξεργαστές
εφαρµόζουν διοχέτευση (pipeline) ή διαθέτουν πολλαπλούς καταχωρητές και
αριθµητικές και λογικές µονάδες (multiple execution units) και εποµένως
µπορούν να εκτελέσουν περισσότερες από µία εντολές ταυτόχρονα (πολλές
από αυτές τις έννοιες θα πρέπει να έχετε ήδη γνωρίσει στο µάθηµα "Αρχι-
τεκτονική Υπολογιστών").
Επίσης πολλές αλλαγές έχουν γίνει στα σύνολα εντολών και στους τρόπους
διευθυνσιοδότησης. Οι σύγχρονες εφαρµογές, όπως π.χ. οι εφαρµογές πολυ-
µέσων, έχουν µεγάλες απαιτήσεις σε υπολογιστική ισχύ, καθώς ασχολούνται
µε ήχο, εικόνα και video. Αυτό είχε σαν αποτέλεσµα τον εµπλουτισµό των
συνόλων εντολών µε εντολές που να µπορούν να διαχειριστούν αποτελε-
σµατικά τη νέα µορφή αυτή πληροφορίας (οι απαιτήσεις των γλωσσών προ-
γραµµατισµού της δεκαετίας του 1980 ήταν η αιτία για την οποία αντίστοι-
χα είχαν εισαχθεί εντολές διαχείρισης πινάκων χαρακτήρων στον 8086).
Από τα παραπάνω στοιχεία γίνεται φανερό πως οι σύγχρονοι µικροεπεξερ-
γαστές απέχουν πολύ από τους προγενέστερούς τους του 1970 και 1980. Εάν
θελήσουµε να κάνουµε µία σύγκριση, µπορούµε να πούµε πως οι σηµερινοί
µικροεπεξεργαστές είναι 100.000 φορές γρηγορότεροι από τους πρώτους
µικροεπεξεργαστές, ενώ κοστίζουν περίπου 1.000 φορές λιγότερο.
Οι µικροεπεξεργαστές συνεχίζουν να εξελίσσονται µε αµείωτους ρυθµούς.
Έτσι στα επόµενα χρόνια περιµένουµε να δούµε νέες τεχνολογικές ανακα-
λύψεις να ενσωµατώνονται σε αυτούς και να αποκτούν ακόµα µεγαλύτερες
δυνατότητες επεξεργασίας. Ταυτόχρονα η χρήση τους θα επεκτείνεται σε όλο
και περισσότερες εφαρµογές, κάνοντας τη ζωή µας πιο εύκολη.
™‡ÓÔ„Ë
Οι ανάγκες των χρηστών για εύκολες και έξυπνες λύσεις και η ολοένα και
µεγαλύτερη εµφάνιση των υπολογιστών στην καθηµερινή µας ζωή δηµιούρ-
γησε την ανάγκη για τη συνεχή εξέλιξη των µικροεπεξεργαστών.
Η εξέλιξη αυτή βασίστηκε σε τρεις κατευθύνσεις: (α) στην εξέλιξη της τεχνο-
λογίας των ολοκληρωµένων κυκλωµάτων, η οποία οδήγησε σε µικροεπεξερ-
γαστές µε µεγαλύτερες ταχύτητες χρονισµού, µε περισσότερα και πιο πολύ-
πλοκα κυκλώµατα επεξεργασίας, όπως µονάδες αριθµητικής κινητής υπο-
διαστολής, και µε περισσότερους ακροδέκτες µε αποτέλεσµα µεγαλύτερες ικα-
νότητες στη διαχείριση της µνήµης ή στο µήκος της λέξης µνήµης, (β) στις
εξελίξεις σε επίπεδο αρχιτεκτονικής, που οδήγησαν σε µικροεπεξεργαστές µε
συστήµατα ιεραρχίας µνήµης, που χρησιµοποιούν διοχέτευση ή παραλληλι-
σµό των εντολών, διαθέτοντας πολλαπλές µονάδες εκτέλεσης και (γ) στις ανά-
γκες των σύγχρονων πολυµεσικών εφαρµογών, που οδήγησαν σε µικροεπε-
ξεργαστές µε νέα σύνολα εντολών και τρόπους διευθυνσιοδότησης για την πιο
αποτελεσµατική διαχείριση των νέων µορφών πληροφορίας, όπως είναι ο
ήχος και η εικόνα.
Οι µικροεπεξεργαστές θα συνεχίσουν να εξελίσσονται µε τους ίδιους ρυθµούς
και στα επόµενα χρόνια, παρέχοντας έτσι ένα εργαλείο για την ανάπτυξη σύγ-
χρονων και ευέλικτων συστηµάτων.
1 7 6 K E º A § A I O 7 : E ¶ π § √ ° √ ™ / ™ À ° Ã ƒ √ ¡ ∂ ™ T∞ ™ ∂ π ™ ™ Ã ∂ ¢ π ∞ ™ ª √ À M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡
A·ÓÙ‹ÛÂȘ AÛ΋ÛÂˆÓ A˘ÙÔ·ÍÈÔÏfiÁËÛ˘
1.1
Τα ολοκληρωµένα κυκλώµατα αποτελούν τον τρόπο, µε τον οποίο κατασκευ-
άζουµε σήµερα τα λογικά κυκλώµατα. Αποτελούνται από ένα κοµµάτι πυριτί-
ου, το οποίο περιβάλλεται από πλαστικό ή κεραµικό περίβληµα για προστασία,
ενώ οι είσοδοι και έξοδοι του λογικού κυκλώµατος βρίσκονται σε µορφή µεταλ-
λικών επαφών και ονοµάζονται ακροδέκτες. Το κοµµάτι του πυριτίου είναι αυτό
που περιέχει τα τρανσίστορς, που υλοποιούν τη λογική του κυκλώµατος.
1.2
Όπως µάθατε και στην αντίστοιχη παράγραφο, ο κύριος παράγοντας για το
διαχωρισµό των ολοκληρωµένων κυκλωµάτων σε κατηγορίες είναι ο αριθ-
µός των τρανσίστορς, τα οποία αυτά περιέχουν στο κοµµάτι πυριτίου. Ο δια-
χωρισµός αυτός δεν είναι πάντα εύκολος, π.χ. εάν έχουµε δύο κυκλώµατα µε
100 τρανσίστορς, µπορεί το ένα να θεωρείται ότι ανήκει στα ΜSI, ενώ το
άλλο να θεωρείται ότι ανήκει στα LSI.
Ένας εύκολος τρόπος για να θυµάστε τις κατηγορίες είναι από τα ονόµατά
τους (πρώτα είναι τα Small, µετά τα Medium, µετά τα Large, Very Large και
Ultra Large).
Η σωστή απάντηση είναι η παρακάτω:
SSI µεταξύ 10 και 100
MSI λιγότερα από 10
LSI µεταξύ 10.000 και 1.000.000
VLSI πάνω από 1.000.000
ULSI µεταξύ 100 και 10.000
1.3
Τα βασικότερα πλεονεκτήµατα, που προκύπτουν από τη χρήση ενός ολο-
κληρωµένου κυκλώµατος, είναι:
• µικρό µέγεθος
• µικρή κατανάλωση ισχύος
• µικρό κόστος
• µεγάλη αξιοπιστία
Ο 8086, ένας πολύ διαδεδοµένος µικροεπεξεργαστής των 16–bits, ο οποίος
έφερε την επανάσταση στο χώρο των προσωπικών IBM συµβατών υπολο-
γιστών, έχει διαστάσεις περίπου 6 cm µήκος επί 2 cm πλάτος επί 0,5 cm
ύψος, απαιτεί ρεύµα περίπου 350 mA, το κόστος αγοράς του είναι πολύ
µικρό, ενώ µπορεί να λειτουργήσει χωρίς πρόβληµα για χρόνια.
1.4
Η κατασκευή ενός ολοκληρωµένου κυκλώµατος απαιτεί (α) το σχεδιασµό
του κυκλώµατος µε τη βοήθεια υπολογιστή, (β) την κατασκευή του δίσκου
πυριτίου (wafer), (γ) τον έλεγχο των πλακιδίων (dies), (δ) την κοπή των πλα-
κιδίων από το δίσκο πυριτίου, (ε) την τοποθέτηση των πλακιδίων σε πλα-
στικό ή κεραµικό περίβληµα (packaging) και (στ) τον τελικό έλεγχο των ολο-
κληρωµένων κυκλωµάτων, που προκύπτουν για την εύρεση και αποµά-
κρυνση των ελαττωµατικών.
Εάν δώσατε τη σωστή απάντηση, µπράβο σας! Αλλιώς θα πρέπει να επανα-
λάβετε τη µελέτη της ενότητας 1.2.
1.5
Όπως µπορείτε να παρατηρήσετε στο σχήµα 1.4, ένας µικροϋπολογιστής
αποτελείται:
(α)από τις µονάδες εισόδου/εξόδου για να επικοινωνεί µε τον εξωτερικό
κόσµο,
(β)από το µικροεπεξεργαστή, ο οποίος αναλαµβάνει την επεξεργασία της
πληροφορίας και το συντονισµό του όλου συστήµατος, και
(γ) την κύρια µνήµη, όπου αποθηκεύεται το πρόγραµµα, τα δεδοµένα και τα
ενδιάµεσα αποτελέσµατα.
Το µοντέλο αυτό (είσοδος, επεξεργασία, έξοδος) αποτελεί το βασικό µοντέ-
λο αναπαράστασης των υπολογιστικών συστηµάτων από τα πρώτα χρόνια
εµφάνισης των υπολογιστών µέχρι και σήµερα.
1 7 8 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 7 9A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
1.6
Σ’ αυτό το σηµείο πρέπει να ξεκαθαρίσουµε ότι µέσα από το δίαυλο διευ-
θύνσεων δεν περνούν δεδοµένα. Στο δίαυλο αυτό µεταφέρονται µόνο οι διευ-
θύνσεις, δηλαδή το σηµείο από το οποίο θα µεταφερθούν τα δεδοµένα προς
ή από τον µικροεπεξεργαστή.
Αν, ωστόσο, µέχρι τώρα θεωρούσατε πως ο δίαυλος διευθύνσεων χρησιµο-
ποιείται και για µεταφορά δεδοµένων, µην ανησυχείτε, στο επόµενο κεφάλαιο
θα αναφερθούµε αναλυτικά στους διαύλους επικοινωνίας των µικροεπεξερ-
γαστών και θα διακρίνετε καλύτερα τον τρόπο µε τον οποίο χρησιµοποιούνται.
Η σωστή απάντηση είναι η παρακάτω:
∆ίαυλος ∆εδοµένων Mεταφέρει τη διεύθυνση της
θέσης µνήµης ή της συσκευής
Ι/Ο, µε την οποία ανταλλάσσο-
νται δεδοµένα.
∆ίαυλος ∆ιευθύνσεων Mεταφέρει τη χρήσιµη πληροφο-
ρία, δηλαδή τα δεδοµένα.
∆ίαυλος Ελέγχου Eνεργοποιεί ή απενεργοποιεί τη
µνήµη και τις συσκευές Ι/Ο, επι-
λέγει εάν θα γίνει ανάγνωση ή
εγγραφή στη µνήµη.
1.7
Οι εντολές των µικροεπεξεργαστών συνήθως αποτελούνται από:
(α) τον κωδικό λειτουργίας,
(β) το έντελο πηγής και
(γ) το έντελο προορισµού.
Υπάρχουν επίσης εντολές, οι οποίες αποτελούνται από περισσότερα από ένα
έντελα πηγής ή εντολές, όπου το έντελο προορισµού αποτελεί ταυτόχρονα
και έντελο πηγής, ή τέλος εντολές, όπου δεν υπάρχουν καθόλου έντελα. Στην
περίπτωση αυτή η λειτουργία της εντολής καθορίζεται αποκλειστικά από τον
κωδικό λειτουργίας.
Στο επόµενο κεφάλαιο (κεφάλαιο 2) θα µάθουµε πολύ περισσότερα για τη
µορφή και το είδος των εντολών, που διαθέτει ο κάθε µικροεπεξεργαστής.
Εποµένως, ακόµα κι αν δεν καταφέρατε να απαντήσετε επακριβώς στην
άσκηση αυτή, µην απογοητεύεστε. Θα σας δοθεί η ευκαιρία στο επόµενο
κεφάλαιο να επεκτείνετε τις γνώσεις σας πάνω στο συγκεκριµένο θέµα και
να αναπληρώσετε σηµεία, που τυχόν δεν έχετε καταλάβει.
1.8
Η σχέση µεταξύ του αριθµού των τρανσίστορς σε ένα ολοκληρωµένο κύκλω-
µα και της χρονολογίας εµφάνισής του εκφράζεται από το νόµο του Moore,
ο οποίος διατυπώθηκε το 1965 (πολύ πριν εµφανιστούν οι πρώτοι µικροε-
πεξεργαστές) και ισχυρίζεται ότι: «ο αριθµός των τρανσίστορς, που περι-
κλείονται σε ένα ολοκληρωµένο κύκλωµα, θα διπλασιάζεται κάθε 18 µήνες».
Είναι γεγονός ότι ο νόµος αυτός αποδείχτηκε προφητικός και δεν έχει ξεπε-
ραστεί ακόµα, όπως µπορείτε να παρατηρήσετε και από τη γραφική παρά-
σταση, που ακολουθεί:
1 8 0 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
0
1.000.000
2.000.000
3.000.000
4.000.000
5.000.000
6.000.000
7.000.000
8.000.000
1971
1974
1977
1980
1983
1986
1989
1992
1995
1998
Xρονιά εµφάνισης
Aρ
ιθµ
ός
τρ
ανσ
ίστορ
ς
Mικροεπεξεργαστές
Nόµος Moore
Η άσκηση αυτή ήταν όντως από τις πιο δύσκολες έως τώρα, εποµένως µην
ανησυχείτε, εάν δεν κατορθώσατε να φτάσετε σε σωστό αποτέλεσµα. Αυτό
που θα πρέπει να κρατήσετε σαν συµπέρασµα είναι ότι ο ρυθµός, µε τον
οποίο µεγαλώνει ο αριθµός των τρανσίστορς, που περικλείονται σε ένα ολο-
κληρωµένο κύκλωµα, γίνεται όλο και µεγαλύτερος.
1 8 1A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
2.1
Όπως µπορείτε να παρατηρήσετε και στο σχήµα 2.1, τα τρία τµήµατα ενός
µικροεπεξεργαστή είναι (α) η αριθµητική και λογική µονάδα, (β) η µονάδα
ελέγχου και (γ) οι διάφοροι καταχωρητές.
2.2
Όλες οι πράξεις γίνονται στην αριθµητική και λογική µονάδα. Τα κυκλώµα-
τα, που περιέχει αυτή συνήθως (αθροιστής, συγκριτής, ολισθητής, µονάδα
λογικής επεξεργασίας, καταχωρητές) επιτρέπουν να εκτελεστούν οι πράξεις
είτε σε µία είτε σε περισσότερες εντολές.
Οι σύγχρονοι επεξεργαστές πάντως, στους οποίους η ταχύτητα παίζει σηµαντι-
κό ρόλο, διαθέτουν περισσότερα και πιο πολύπλοκα κυκλώµατα (όπως πολλα-
πλασιαστές, διαιρέτες, κυκλώµατα πράξεων αριθµητικής κινητής υποδιαστο-
λής), ώστε να µπορούν να εκτελούν πολύπλοκες πράξεις σε πολύ µικρό χρόνο.
Ο λόγος, για τον οποίο δεν υπήρχαν αυτά τα κυκλώµατα στους παλαιότερους
µικροεπεξεργαστές, είναι ότι η υλοποίησή τους απαιτούσε πολλά τρανσίστορς
και η τεχνολογία των ολοκληρωµένων κυκλωµάτων δεν είχε αναπτυχθεί τόσο.
2.3
Στην αριθµητική και λογική µονάδα συναντάµε συνήθως (α) το συσσωρευ-
τή, (β) καταχωρητές γενικού σκοπού, οι οποίοι περιέχουν τα δεδοµένα που
συµµετέχουν στις αριθµητικές και λογικές πράξεις και (γ) τον καταχωρητή
κατάστασης επεξεργαστή, που περιέχει τους δείκτες, που υποδεικνύουν το
αποτέλεσµα της προηγούµενης πράξης.
Στη µονάδα ελέγχου συναντάµε (α) τον καταχωρητή εντολών, που περιέχει
τον κώδικα λειτουργίας της εντολής, που εκτελείται εκείνη τη στιγµή και (β)
το µετρητή προγράµµατος, που περιέχει τη διεύθυνση της επόµενης προς
εκτέλεση εντολής.
2.4
Ο δίαυλος δεδοµένων, όπως έχουµε πει, µεταφέρει τα δεδοµένα από το
µικροεπεξεργαστή προς τις συσκευές εισόδου/εξόδου και τη µνήµη. Εποµέ-
νως, αφού ο µικροεπεξεργαστής µας διαχειρίζεται δεδοµένα µε µήκος λέξης
4 bytes = 32 bits (κάθε byte ισούται µε 8 bits), ο δίαυλος δεδοµένων αποτε-
λείται από 32 γραµµές.
Ο δίαυλος διευθύνσεων θα πρέπει να περιέχει τόσες γραµµές διευθύνσεων
ώστε να µπορεί να διευθυνσιοδοτήσει όλες τις θέσεις µνήµης ή τις θέσεις
εισόδου/εξόδου. Εποµένως, ο δίαυλος διευθύνσεων θα πρέπει να αποτελεί-
ται από τουλάχιστον 16 γραµµές για να διαχειριστεί τις συσκευές εισό-
δου/εξόδου, αφού 216 = 65.536 και τουλάχιστον από 24 γραµµές, αφού 224 =
16.777.216 για να µπορέσει να διαχειριστεί όλες τις θέσεις µνήµης. Προφα-
νώς, επειδή ο δίαυλος διευθύνσεων είναι ένας και µοναδικός, ο µεγαλύτερος
από τους δύο αριθµούς ορίζει και το πλήθος των γραµµών διευθύνσεων.
Εάν βρήκατε το σωστό αποτέλεσµα, µπράβο σας! Έχετε κατανοήσει τον
τρόπο, µε τον οποίο υπολογίζουµε το πλήθος των γραµµών δεδοµένων και
διευθύνσεων. Εάν πάλι δεν βρήκατε το σωστό αποτέλεσµα, µην απελπίζε-
στε. Μελετήστε ξανά µε προσοχή την ενότητα 2.2., στην οποία αναλύονται
οι δίαυλοι επικοινωνίας ενός µικροεπεξεργαστή.
2.5
Με 16 γραµµές διευθύνσεων, ο επεξεργαστής µπορεί να διευθυνσιοδοτήσει
µέχρι 216 δηλαδή 65.536 θέσεις µνήµης, εποµένως µπορούµε να συνδέσου-
µε σε αυτόν µνήµη µε µέγιστη χωρητικότητα 64 KB.
Ο τύπος της µνήµης αυτής µπορεί να είναι οποιοσδήποτε από τους γνωστούς
τύπους µνηµών που γνωρίζετε, όπως µνήµες RAM, ROM, PROM, EPROM κ.ά.
Εάν δώσατε τη σωστή απάντηση, συγχαρητήρια! Εάν όµως αντιµετωπίσατε
δυσκολίες, µελετήστε πάλι την ενότητα 2.2 και µην ξεχνάτε ότι το πλήθος
των γραµµών του δίαυλου δεδοµένων ορίζει το µήκος της κάθε λέξης στη
µνήµη, ενώ το πλήθος των γραµµών του δίαυλου διευθύνσεων ορίζει το πλή-
θος των λέξεων στη µνήµη, δηλαδή το µέγεθος της µνήµης.
2.6
Ο χρόνος, που απαιτείται για την εκτέλεση µιας εντολής σε ένα µικροεπε-
ξεργαστή, χωρίζεται σε µικρότερες χρονικές περιόδους. Έτσι προκύπτουν οι
κύκλοι εντολής, µηχανής και ρολογιού.
Ο κύκλος εντολής εκφράζει το χρόνο που απαιτείται για την εκτέλεση µιας
εντολής.
Ο κύκλος µηχανής εκφράζει το χρόνο που απαιτείται για την εκτέλεση µιας βασι-
κής λειτουργίας, όπως π.χ. µιας λειτουργίας εγγραφής/ανάγνωσης της µνήµης.
1 8 2 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 8 3A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
Ο κύκλος ρολογιού εκφράζει την περίοδο του ρολογιού και αποτελεί τη µονά-
δα χρόνου του µικροεπεξεργαστή.
1. Κύκλος ρολογιού,
2. Κύκλος µηχανής,
3. Κύκλος εντολής
2.7
Στην ενότητα 2.4 είδαµε ότι µπορούµε να χωρίσουµε το σύνολο εντολών ενός
µικροεπεξεργαστή σε κατηγορίες µε βάση τη λειτουργία, που επιτελεί η κάθε
εντολή. Με βάση το κριτήριο αυτό έχουµε (α) αριθµητικές εντολές, (β) λογι-
κές εντολές, (γ) εντολές µετακίνησης δεδοµένων, (δ) εντολές διακλάδωσης,
(ε) εντολές κλήσης και επιστροφής από υπορουτίνα και (στ) γενικές εντολές.
2.8
(α) Με βάση τα στοιχεία του µικροεπεξεργαστή, που διαθέτουµε από το
παράδειγµα 3 του κεφαλαίου αυτού, τα περιεχόµενα της µνήµης θα είναι
αυτά που δίνονται στο σχήµα 2.20.
B1
0A
8C
75
05
8C
99
64
8C
D7
F8
E7
F2
DF
3000
LDB 8C, #0A
ADDB 8C, #05
CMPB 8C, #64
JNE A
BRK
3001
3002
3003
3004
3005
3006
3007
3008
3009
300A
300B
300C
300D
™¯‹Ì· 2.20
Τα περιεχόµενα
της µνήµης
Το µέγεθος του προγράµµατος είναι 14 bytes, αφού αποτελείται από πέντε
εντολές, από τις οποίες τέσσερις έχουν µήκος τρία bytes και µία έχει µήκος
δύο bytes.
(β) Από τις εντολές του προγράµµατος παρατηρούµε ότι o καταχωρητής 8C16
αρχικοποιείται στην τιµή 1010 (0A16 στο δεκαεξαδικό σύστηµα αρίθµησης),
στη συνέχεια προστίθεται η τιµή 05 κάθε φορά µέχρι το περιεχόµενο του
8C16 να γίνει ίσο µε 10010, οπότε ικανοποιείται η συνθήκη της ισότητας στην
εντολή σύγκρισης και τερµατίζεται η λειτουργία του προγράµµατος. Επο-
µένως, το πρόγραµµα αυτό µετράει από το 10 µέχρι το 100 µε βήµα 5 κάθε
φορά, δηλαδή µετράει τους αριθµούς 10, 15, 20, …, 100.
(γ) Εάν ακολουθήσουµε την πορεία εκτέλεσης του προγράµµατος, παρατη-
ρούµε ότι στην αρχή εκτελείται η εντολή φόρτωσης LDB. Στη συνέχεια εκτε-
λούνται οι εντολές πρόσθεσης ADDB, της σύγκρισης CMPB και της δια-
κλάδωσης JNE µέχρι το περιεχόµενο του καταχωρητή 8C16 να γίνει ίσο µε
τον αριθµό 10010 και τέλος εκτελείται η εντολή τερµατισµού BRK. Εποµέ-
νως, οι εντολές LDB και BRK εκτελούνται µία φορά, ενώ οι υπόλοιπες εντο-
λές ADDB, CMPB και JNE εκτελούνται δεκαοκτώ φορές (αφού ξεκινάµε
από τον αριθµό 10 και αυξάνουµε κάθε φορά κατά 5 για να φτάσουµε στον
αριθµό 100 χρειαζόµαστε (100–10)/5 = 18 επαναλήψεις).
Εάν καταλήξατε στα σωστά αποτελέσµατα, συγχαρητήρια! Εάν όµως αντι-
µετωπίσατε δυσκολίες, µην προχωρήσετε παρακάτω. Μελετήστε πάλι το
παράδειγµα 2.3. Το πρόγραµµα, το οποίο αναφέρεται στο παράδειγµα αυτό,
είναι παρόµοιο µε το ζητούµενο στην άσκηση. Μην ξεχνάτε ότι οι αριθµοί
που χρησιµοποιούµε στα προγράµµατα ενός µικροεπεξεργαστή δίνονται
συνήθως στο δεκαεξαδικό σύστηµα αρίθµησης (κάτι που δεν είναι τόσο
εµφανές στο παράδειγµα, καθώς οι αριθµοί είναι µικροί και ταυτίζονται στο
δεκαδικό και στο δεκαεξαδικό σύστηµα αρίθµησης).
2.9
Η εντολή LDB µεταφέρει µια τιµή σε έναν καταχωρητή, εποµένως πρόκειται
για εντολή µετακίνησης δεδοµένων. Η εντολή ADDB ανήκει στις αριθµητικές
εντολές, αφού προσθέτει µια τιµή σε έναν καταχωρητή. Η εντολή CMPB είναι
µια εντολή σύγκρισης και γι’ αυτό ανήκει στις λογικές εντολές. Η εντολή JNE
αλλάζει τη ροή εκτέλεσης του προγράµµατος ανάλογα µε το αν ικανοποιείται
η συνθήκη ισότητας ή όχι. Εποµένως, πρόκειται για µία εντολή διακλάδωσης
υπό συνθήκη. Τέλος η εντολή τερµατισµού BRK ανήκει στις γενικές εντολές.
1 8 4 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 8 5A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
Εάν δώσατε τη σωστή απάντηση, είστε άξιοι συγχαρητηρίων. Έχετε κατα-
λάβει τις κατηγορίες, στις οποίες χωρίζουµε ένα σύνολο εντολών. Εάν πάλι
η απάντησή σας δεν ήταν ολοκληρωτικά σωστή, τότε θα πρέπει να µελετή-
σετε ακόµη µία φορά την ενότητα 2.4.
™¯‹Ì· 2.21
Τα περιεχόµενα της µνή-
µης µε την προσθήκη της
INCB
B1
00
80
17
80
99
05
80
D7
F9
E7
F2
DF
3000
LDB 80, #00
CMPB 80, #05
JNE C
INCB 80
BRK
3001
3002
3003
3004
3005
3006
3007
3008
3009
300A
300B
300C
2.10
(α)Είναι προφανές ότι µια εντολή πρόσθεσης του περιεχόµενου ενός κατα-
χωρητή µε την τιµή 1 είναι ισοδύναµη µε µια εντολή αύξησης του περιε-
χόµενου του καταχωρητή κατά ένα. Έτσι, η εντολή ADDB 80, #01 είναι
ισοδύναµη µε την εντολή INCB 80. Εποµένως, µε τη χρήση της εντολής
INCB, το πρόγραµµα γίνεται όπως παρακάτω:
LDB 80, #00
C:INCB 80
CMPB 80, #05
JNE C
BRK
(β)Η εντολή INCB αποθηκεύεται σε δύο bytes και όχι σε τρία, όπως στην
περίπτωση της εντολής ADDB. Έτσι, αποθηκεύεται στις θέσεις µνήµης
500316 και 500416, ενώ στις θέσεις µνήµης 500516 έως και 500716 αποθη-
κεύεται η εντολή CMPB, στις 500816 και 500916 η εντολή JNE και στις
500Α16 έως και 500C16 αποθηκεύεται η εντολή BRK.
Το πρόγραµµα, που προκύπτει, έχει ένα byte λιγότερο από το αρχικό πρό-
γραµµα και το συνολικό του µέγεθος είναι 13 bytes.
Τα περιεχόµενα της κύριας µνήµης είναι αυτά που φαίνονται στο σχήµα 2.21.
Συγκρίνοντας τον παραπάνω πίνακα µε τον αντίστοιχο πίνακα του παρα-
δείγµατος 2.3 παρατηρούµε ότι στη θέση µνήµης 500316 έχει αποθηκευτεί ο
κωδικός λειτουργίας της INCB. Παρατηρούµε όµως ότι έχει αλλάξει και το
δεύτερο byte της εντολής JNE, το οποίο τώρα βρίσκεται αποθηκευµένο στη
θέση µνήµης 500916 και περιέχει την τιµή F916. Αυτό εξηγείται ως εξής:
Ο αριθµός που βρίσκεται στη θέση αυτή, όπως είπαµε, προστίθεται στο
µετρητή προγράµµατος για να δείξει τη θέση µνήµης, όπου θα µας οδηγήσει
η εντολή διακλάδωσης. Στο παράδειγµα 3 µεταξύ της θέσης αυτής και της
θέσης, που έδειχνε ο µετρητής προγράµµατος, υπήρχαν 8 bytes. Στο πρό-
γραµµά µας όµως και επειδή η εντολή INCB έχει ένα byte λιγότερο από την
εντολή ADDB, µεταξύ της θέσης µνήµης 500A16, όπου δείχνει ο µετρητής
προγράµµατος, και της θέσης µνήµης 500316, όπου δείχνει ο δείκτης C, υπάρ-
χουν 7 bytes. Για το λόγο αυτό η τιµή, που θα πρέπει να έχει το δεύτερο byte,
είναι η τιµή –710, η οποία αναπαρίσταται µε το δεκαεξαδικό αριθµό F916 σε
µορφή συµπληρώµατος ως προς 2.
Εάν δεν τα καταφέρατε να απαντήσετε σωστά, µην απογοητεύεστε. Η άσκη-
ση αυτή οµολογουµένως είχε κάποια δύσκολα σηµεία, τα οποία είναι εύκο-
λο να µην τα προσέξει κανείς. Μην ξεχνάτε δύο βασικά πράγµατα:
(α)Oι εντολές ενός προγράµµατος αποθηκεύονται στην κύρια µνήµη σει-
ριακά, δηλαδή η µία µετά την άλλη, εποµένως εάν αντικαταστήσουµε µια
εντολή µε µία άλλη, που αποθηκεύεται σε λιγότερα bytes, οι εντολές που
την ακολουθούν θα αλλάξουν θέση στην κύρια µνήµη.
(β)Tο έντελο µιας εντολής διακλάδωσης περιέχει τη σχετική απόσταση µετα-
ξύ της εντολής, που βρισκόµαστε, και της διεύθυνσης στόχος, στην οποία
πρέπει να µεταφερθεί η ροή του προγράµµατος, εάν ικανοποιείται η συν-
θήκη (στην περίπτωση των εντολών διακλάδωσης υπό συνθήκη). Επο-
1 8 6 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 8 7A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
µένως, η αντικατάσταση µίας εντολής µε µία άλλη µπορεί να µεταβάλει
την απόσταση αυτή και εποµένως την τιµή του εντέλου της εντολής.
Εάν πάλι δώσατε ολοκληρωµένη και σωστή απάντηση, µπράβο σας!
2.11
Όπως µπορείτε να διαβάσετε στην ενότητα 2.5, οι κυριότεροι τρόποι διευ-
θυνσιοδότησης, που διαθέτει συνήθως ένας µικροεπεξεργαστής, είναι οι εξής:
(α) υπονοούµενη διευθυνσιοδότηση
(β) άµεση διευθυνσιοδότηση
(γ) απευθείας ή απόλυτη διευθυνσιοδότηση
(δ) σχετική διευθυνσιοδότηση
(ε) έµµεση διευθυνσιοδότηση
(στ) δεικτοδοτηµένη διευθυνσιοδότηση
(ζ) διευθυνσιοδότηση µηδενικής σελίδας
Οι τρόποι αυτοί καθορίζουν πώς θα βρεθεί η ενεργή διεύθυνση, δηλαδή η
διεύθυνση εκείνη της κύριας µνήµης ή του συνόλου των καταχωρητών στην
οποία είναι αποθηκευµένα τα δεδοµένα, που απαιτούνται για την εκτέλεση
της εντολής.
2.12
Οι εντολές διακλάδωσης, όπως γνωρίζετε ήδη, µπορούν να µεταφέρουν την
εκτέλεση ενός προγράµµατος από ένα σηµείο του σε ένα άλλο. Εποµένως,
εξαρτώνται άµεσα από το περιεχόµενο του µετρητή προγράµµατος. Για το
λόγο αυτό χρησιµοποιούν τη σχετική διευθυνσιοδότηση. Με βάση αυτή, ένας
προσηµασµένος αριθµός προστίθεται στο περιεχόµενο του µετρητή προ-
γράµµατος και προκύπτει έτσι η διεύθυνση, στην οποία µεταφέρεται η εκτέ-
λεση του προγράµµατος.
2.13
Το ζητούµενο είναι να ορίσουµε την ενεργή διεύθυνση σε καθεµία από τις
εντολές
(α) Η πρώτη εντολή χρησιµοποιεί απόλυτη διευθυνσιοδότηση, εποµένως το
έντελό της αποτελεί και την ενεργή διεύθυνση, η οποία, όπως φαίνεται στο
σχήµα 2.22, είναι η διεύθυνση 123416 της κύριας µνήµης.
(β) Στη δεύτερη εντολή χρησιµοποιούµε διευθυνσιοδότηση µηδενικής σελί-
δας, εποµένως το έντελο αποτελεί το λιγότερο σηµαντικό byte της ενεργής
διεύθυνσης, ενώ το περισσότερο σηµαντικό byte είναι το 00. Εποµένως, η
διεύθυνση της µνήµης, στην οποία θα αποθηκευτεί το περιεχόµενο του Α,
όπως µπορείτε να δείτε στο σχήµα 2.23, είναι η 003416.
1 8 8 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
XX
8D
1234
3000
343001
•v
•v
•
123002
STA $1234
™¯‹Ì· 2.22
Τα περιεχόµενα της µνή-
µης στην πρώτη εντολή
XX
8D
0034
3000
343001
•v
•v
•STA $34
™¯‹Ì· 2.23
Τα περιεχόµενα της µνή-
µης στη δεύτερη εντολή)
(γ) Η τρίτη εντολή χρησιµοποιεί έµµεση διευθυνσιοδότηση. Με βάση αυτή
το έντελο περιέχει τη διεύθυνση της µνήµης ή τον καταχωρητή, στον οποίο
βρίσκεται η ενεργή διεύθυνση της εντολής µας. Έτσι, η ενεργή διεύθυνση
είναι το περιεχόµενο της θέσης µνήµης 323216 και η διεύθυνση της µνήµης,
στην οποία θα αποθηκευτεί το περιεχόµενο του Α, όπως φαίνεται στο σχήµα
2.24, είναι η 121216.
1 8 9A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
Η απάντηση στην άσκηση αυτή προκύπτει εύκολα, εάν έχετε κατανοήσει τους
τρόπους διευθυνσιοδότησης. Πολύ κατατοπιστικό είναι επίσης το παράδειγ-
µα 4 του κεφαλαίου αυτού. Εάν πάλι δεν καταφέρατε να δώσετε τη σωστή
απάντηση, µια πιο προσεκτική ανάγνωση της ενότητας 2.5 και του παρα-
δείγµατος 2.4 θα σας βοηθήσει να ξεκαθαρίσετε πλήρως τις έννοιες αυτές.
XX
92
1234
3000
323001
•v
•v
•
•v
•v
•
323002
123232
123233
STA $3232
™¯‹Ì· 2.24
Τα περιεχόµενα της µνή-
µης στην τρίτη εντολή
3.1
Όπως µπορείτε να διαβάσετε και στην υποενότητα 3.1.2, ο 8080 διαθέτει (α)
έναν 8–bit συσσωρευτή (Α), (β) τρεις 16–bit καταχωρητές (BC, DE, HL), οι
οποίοι µπορούν να χρησιµοποιηθούν και σαν έξι καταχωρητές των 8–bit (B,
C, D, E, H, L), (γ) τον 8–bit καταχωρητή κατάστασης επεξεργαστή (PSW),
(δ) τον 16–bit µετρητή προγράµµατος (PC) και (ε) τον 16–bit καταχωρητή
σωρού (SP).
3.2
Το αποτέλεσµα της εκτέλεσης της εντολής είναι ο διπλασιασµός του περιε-
χόµενου του συσσωρευτή, δηλαδή η τιµή C016 (6016+6016=C016). Οι σηµαί-
ες κατάστασης παίρνουν τις παρακάτω τιµές (α) Ζ = 0, αφού το αποτέλεσµα
είναι διάφορο του µηδενός, (β) S = 1, αφού το περισσότερο σηµαντικό δυα-
δικό ψηφίο του αποτελέσµατος είναι ίσο µε 1, (γ) AC = 0, αφού δεν προέ-
κυψε κρατούµενο από την πρόσθεση των πρώτων 4 bits των αριθµών, (δ) C
= 0, αφού δεν προέκυψε κρατούµενο κατά την πρόσθεση των δύο αριθµών
και (ε) P = 1 ώστε το αποτέλεσµα µαζί µε τη σηµαία κατάστασης να έχει
περιττό αριθµό από άσους, δηλαδή περιττή ισοτιµία.
Εάν απαντήσατε σωστά στην άσκηση αυτή, σας αξίζουν συγχαρητήρια! Εάν
όχι, προσπαθήστε πάλι. Μην ξεχνάτε ότι οι σηµαίες κατάστασης παίρνουν
τις τιµές τους ανάλογα µε το αποτέλεσµα της τελευταίας πράξης, που γίνε-
ται στην αριθµητική και λογική µονάδα.
3.3
Στον 8080 µπορούµε να διακρίνουµε 10 σήµατα ελέγχου (1) READY, (2)
WAIT, (3) HOLD, (4) HOLDA, (5) RESET, (6) DBIN, (7) WR~, (8) INT,
(9) INTE και (10) SYNC. Η λειτουργία του κάθε σήµατος περιγράφεται στην
υποενότητα 3.1.3 και η γνώση τους είναι απαραίτητη, όταν σχεδιάζουµε ένα
µικροϋπολογιστικό σύστηµα βασισµένο στον 8080.
3.4
Ένας κύκλος εντολής αποτελείται από έναν έως πέντε κύκλους µηχανής. Ο
αριθµός αυτός εξαρτάται (α) από το πλήθος των bytes της εντολής, καθώς
κάθε byte απαιτεί έναν κύκλο ανάγνωσης από τη µνήµη και (β) από το
πόσους κύκλους µηχανής χρειάζεται η εντολή µετά την ανάγνωση των bytes
της εντολής για να εκτελεστεί.
Εάν υποθέσουµε ότι η λειτουργία της λογικής πράξης και της αποθήκευσης
του αποτελέσµατος µπορούν να γίνουν στον ίδιο κύκλο µηχανής µε τη λει-
τουργία ανάγνωσης από τη µνήµη, τότε η κάθε εντολή απαιτεί τους παρα-
κάτω κύκλους µηχανής:
(α) Έναν κύκλο µηχανής για την προσκόµιση της εντολής. Επειδή δεν απαι-
τείται άλλη λειτουργία αναφοράς στη µνήµη, η λειτουργία της πράξης
και της αποθήκευσης του αποτελέσµατος γίνεται µαζί µε την προσκόµι-
ση της εντολής. Εποµένως, συνολικά χρειάζεται ένας κύκλος µηχανής
για την εκτέλεση της εντολής.
(β) Έναν κύκλο µηχανής για την προσκόµιση της εντολής και έναν κύκλο
µηχανής για την προσκόµιση της τιµής από τη θέση µνήµης, τη διεύ-
1 9 0 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 9 1A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
θυνση της οποίας περιέχει ο HL καταχωρητής. Η εκτέλεση της πράξης
και η αποθήκευση του αποτελέσµατος γίνεται στο δεύτερο κύκλο µηχα-
νής. Εποµένως, συνολικά χρειάζονται δύο κύκλοι µηχανής για την εκτέ-
λεση της εντολής.
(γ) Έναν κύκλο µηχανής για την προσκόµιση της εντολής και έναν κύκλο
µηχανής για την προσκόµιση του εντέλου της εντολής, δηλαδή της τιµής
που θα συµµετάσχει στη λογική πράξη. Εποµένως, αφού η εκτέλεση της
πράξης και η αποθήκευση του αποτελέσµατος γίνονται µαζί µε την ανά-
γνωση του εντέλου στο δεύτερο κύκλο µηχανής, απαιτούνται συνολικά
δύο κύκλοι µηχανής για την εκτέλεση της εντολής.
3.5
Τα σήµατα κατάστασης εξάγονται από τον 8080 στο δίαυλο δεδοµένων κατά
τη χρονική περίοδο όπου το σήµα SYNC είναι ενεργό (κύκλος ρολογιού T1
και T2) και ειδοποιούν τις υπόλοιπες συσκευές του συστήµατος για τον τύπο
του κύκλου µηχανής, που ξεκινά εκείνη τη στιγµή.
3.6
Κατά τη διάρκεια του T1 και µε τη θετική ακµή του Φ2 ενεργοποιείται το
σήµα SYNC και στο δίαυλο δεδοµένων εξάγονται τα σήµατα κατάστασης.
Ταυτόχρονα στο δίαυλο διευθύνσεων εµφανίζεται η διεύθυνση της µνήµης,
στην οποία θα πρέπει να αποθηκευτούν τα δεδοµένα. Στο Φ2 του κύκλου Τ2
το σήµα SYNC γίνεται ανενεργό και στο δίαυλο δεδοµένων εµφανίζονται τα
δεδοµένα προς εγγραφή. Στον κύκλο Τ3, και µε δεδοµένο ότι το σήµα
READY είναι σε λογική τιµή “1”, το σήµα WR~ µεταβαίνει σε λογική τιµή
“0” και ειδοποιεί τη µνήµη ότι τα δεδοµένα είναι έτοιµα προς εγγραφή. Η
µνήµη έχει χρονικό περιθώριο ενός κύκλου ρολογιού (όσο το σήµα WR~
είναι ενεργό) για να αποθηκεύσει τα δεδοµένα στη διεύθυνση, που προσ-
διορίζει ο δίαυλος διευθύνσεων. Με την έναρξη του Τ4 το σήµα WR~ µετα-
βαίνει ξανά σε λογική τιµή “1” και µε τη θετική ακµή του Φ2 ο δίαυλος διευ-
θύνσεων και ο δίαυλος δεδοµένων µεταβαίνουν σε κατάσταση υψηλής εµπέ-
δησης. Το διάγραµµα χρονισµού φαίνεται στο σχήµα 3.8.
Εάν δώσατε τη σωστή απάντηση, µπράβο! Έχετε καταλάβει τον τρόπο, µε
τον οποίο λειτουργεί ο 8080. Εάν πάλι δεν καταφέρατε να απαντήσετε
σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 3.3 και των σχηµάτων
που περιέχει θα σας βοηθήσει να λύσετε όποιες απορίες έχετε.
3.7
Το σήµα DBIΝ γίνεται ενεργό (δηλαδή µεταβαίνει στη λογική τιµή “1”) µε
τη θετική ακµή του Φ2 κατά τη διάρκεια του κύκλου ρολογιού T2 και παρα-
µένει στην κατάσταση αυτή για χρόνο ίσο µε τη διάρκεια ενός κύκλου ρολο-
γιού (εκτός εάν παρεµβληθούν καταστάσεις WAIT µεταξύ του Τ2 και του Τ3,
οπότε παραµένει ενεργό για µεγαλύτερο αριθµό κύκλων ρολογιού).
Το σήµα αυτό ενηµερώνει τη µνήµη ή τις συσκευές εισόδου/εξόδου ότι ο
µικροεπεξεργαστής είναι έτοιµος και περιµένει στο δίαυλο δεδοµένων τα
δεδοµένα και γι’ αυτό ενεργοποιείται, όταν ο δίαυλος διευθύνσεων περιέχει
τη διεύθυνση και ο δίαυλος δεδοµένων βρίσκεται σε κατάσταση υψηλής
εµπέδησης (δηλαδή µετά την απενεργοποίηση του σήµατος SYNC).
3.8
Η κατάσταση WAIT παρεµβάλλει ακέραιο αριθµό από κύκλους ρολογιού
µεταξύ του Τ2 και του Τ3 ώστε η µνήµη να προλάβει να ανταποκριθεί στην
αίτηση ανάγνωσης ή εγγραφής των δεδοµένων σε αυτή. Η κατάσταση WAIT
ενεργοποιείται και απενεργοποιείται µε το σήµα READY. Χρησιµοποιείται
συνήθως όταν θέλουµε σε ένα µικροϋπολογιστικό σύστηµα να διασυνδέ-
σουµε µνήµες, οι οποίες είναι πιο αργές από το µικροεπεξεργαστή.
Η κατάσταση HOLD οδηγεί τους διαύλους του µικροεπεξεργαστή σε κατά-
σταση υψηλής εµπέδησης ώστε εξωτερικές συσκευές να χρησιµοποιήσουν
τους διαύλους του συστήµατος για µεταφορά δεδοµένων. Ενεργοποιείται και
απενεργοποιείται µε τη χρήση του σήµατος HOLD και παρεµβάλλει ακέραιο
αριθµό κύκλων ρολογιού µεταξύ του τέλους εκτέλεσης µιας εντολής και της
αρχής εκτέλεσης της επόµενης.
Η κατάσταση HALT σηµατοδοτεί περιόδους χρόνου, όπου ο µικροεπεξερ-
γαστής δεν εκτελεί εντολές. Ενεργοποιείται µε τη χρήση της εντολής HALT
και τελειώνει µε µία αίτηση διακοπής από µια εξωτερική συσκευή. Χρησι-
µοποιείται κυρίως σε περιπτώσεις µικροϋπολογιστών, όπου πρέπει να ανα-
σταλεί η λειτουργία του µικροεπεξεργαστή µέχρι να συµβεί ένα εξωτερικό
γεγονός (π.χ. µία αίτηση εξυπηρέτησης διακοπής).
Οι καταστάσεις HALT και HOLD µπορούν να συµβούν και παράλληλα.
∆ηλαδή ενόσω είµαστε σε κατάσταση HALT µπορούµε να µπαίνουµε και να
βγαίνουµε σε καταστάσεις HOLD.
1 9 2 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 9 3A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
3.9
Μια διακοπή ρεύµατος και η επαναφορά της τροφοδοσίας στον 8080 έχει ως
αποτέλεσµα οι καταχωρητές να πάρουν τυχαίες και µη προβλέψιµες τιµές. Για
το λόγο αυτό απαιτείται η ύπαρξη ενός κυκλώµατος αρχικοποίησης, το οποίο να
ενεργοποιεί, σε κάθε περίπτωση επαναφοράς της τροφοδοσίας, το σήµα RESET
του µικροεπεξεργαστή ώστε να µηδενίζεται ο µετρητής προγράµµατος και να
ξεκινά η εκτέλεση των εντολών από τη θέση µνήµης µε διεύθυνση 000016.
3.10
Η πρώτη εντολή χρησιµοποιεί τον υπονοούµενο τρόπο προσπέλασης, καθώς
ο κωδικός λειτουργίας της περιέχει το όνοµα του καταχωρητή (Α), στον
οποίο βρίσκονται τα δεδοµένα.
Η δεύτερη εντολή χρησιµοποιεί τον έµµεσο τρόπο προσπέλασης. Ο κώδικας
λειτουργίας της εντολής περιέχει τον καταχωρητή (HL), στον οποίο βρίσκεται
η διεύθυνση της µνήµης, στην οποία βρίσκονται αποθηκευµένα τα δεδοµένα.
Η τρίτη εντολή χρησιµοποιεί την άµεση διευθυνσιοδότηση, καθώς τα δεδο-
µένα ακολουθούν τον κωδικό λειτουργίας της εντολής.
Τα παραπάνω προκύπτουν άµεσα από τους ορισµούς των τρόπων διευθυν-
σιοδότησης που δώσαµε στο προηγούµενο κεφάλαιο. Εάν δεν καταφέρατε
να φτάσετε στη σωστή απάντηση, θα πρέπει να επαναλάβετε την ενότητα
2.5. Εάν πάλι δώσατε σωστή απάντηση, σας αξίζουν συγχαρητήρια!
3.11
Η γεννήτρια χρονισµού 8224 παίρνει σαν είσοδο έναν κρυσταλλικό ταλα-
ντωτή και τα σήµατα RDYIN και RESIN~ και παράγει στην έξοδο τα σήµα-
τα χρονισµού του 8080 (Φ1 και Φ2), και τα σήµατα READY και RESET συγ-
χρονισµένα µε το ρολόι. Επίσης, από το σήµα SYNC του 8080 παράγει το
σήµα STSTB~, το οποίο χρησιµοποιείται από τον 8228 για την ανάκτηση
των σηµάτων κατάστασης του µικροεπεξεργαστή.
Ο ελεγκτής συστήµατος 8228 παίρνει ως είσοδο τα σήµατα WR~, DBIN και
HLDA, καθώς και τα σήµατα κατάστασης από το δίαυλο δεδοµένων και
παράγει στην έξοδο τα σήµατα ελέγχου του συστήµατος INTA~, MEMR~,
MEMW~, I/OR~ και I/OW~ και το δίαυλο δεδοµένων µε µεγαλύτερη οδη-
γητική ικανότητα.
Αρκετά παραστατικό είναι το σχήµα 3.15.
3.12
Συνδυάζοντας τους διάφορους τύπους κύκλων µηχανής, τα σήµατα κατά-
στασης και τα σήµατα ελέγχου του µικροεπεξεργαστή, µπορούµε να παρα-
τηρήσουµε τα εξής:
(α)Tο σήµα MEMR~ γίνεται αληθές, όταν έχουµε κύκλο ανάγνωσης από τη
µνήµη (είτε κύκλο προσκόµισης εντολής είτε κύκλο ανάγνωσης δεδοµέ-
νων είτε κύκλο ανάγνωσης από το σωρό), δηλαδή όταν το DBIN είναι
αληθές και το MEMR (D7) είναι αληθές.
(β)Tο σήµα MEMW~ γίνεται αληθές, όταν έχουµε κύκλο εγγραφής στη
µνήµη, δηλαδή όταν το WR~ είναι αληθές και το OUT (D4) είναι ψευδές.
(γ) Tο σήµα I/OR~ γίνεται αληθές, όταν έχουµε κύκλο ανάγνωσης από
συσκευή εισόδου/εξόδου, δηλαδή όταν το DBIN είναι αληθές και το INP
(D6) είναι αληθές.
(δ) Tο σήµα I/OW~ γίνεται αληθές, όταν έχουµε κύκλο εγγραφής σε συσκευή
εισόδου/εξόδου, δηλαδή όταν το WR~ είναι αληθές και το OUT είναι
αληθές.
(ε) Tο σήµα INTA~ γίνεται αληθές, όταν το INTA (D0) γίνεται αληθές.
4.1
Όπως µπορείτε να διαβάσετε και στην υποενότητα 4.1.2, ο 8080 διαθέτει (α)
δύο 8–bit συσσωρευτές (Α, Β), (β) έναν 16–bit καταχωρητή δείκτη (Χ), (γ)
τον 8–bit καταχωρητή κατάστασης επεξεργαστή (PSW), (δ) τον 16–bit
µετρητή προγράµµατος (PC) και (ε) τον 16–bit καταχωρητή σωρού (SP).
4.2
Το αποτέλεσµα της εκτέλεσης της εντολής είναι το άθροισµα του περιεχοµέ-
νου του συσσωρευτή Α µε το περιεχόµενο της θέσης µνήµης, δηλαδή η τιµή
8216 (4616+3C16=8216). Οι σηµαίες κατάστασης (δείκτες κατάστασης) παίρ-
νουν τις παρακάτω τιµές: (α) Ζ = 0, αφού το αποτέλεσµα είναι διάφορο του
µηδενός, (β) Ν =1, αφού το περισσότερο σηµαντικό bit του αποτελέσµατος
είναι ίσο µε 1, (γ) Η = 1, αφού προέκυψε κρατούµενο από την πρόσθεση των
πρώτων λιγότερο σηµαντικών 4 bits των αριθµών, (δ) C = 0, αφού δεν προέ-
κυψε κρατούµενο κατά την πρόσθεση των δύο αριθµών και (ε) V = 1, αφού,
εάν θεωρήσουµε τους αριθµούς ως προσηµασµένους σε µορφή συµπληρώ-
1 9 4 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 9 5A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
µατος ως προς δύο, τότε αναπαριστούν τους αριθµούς +7010 και +6010. Το
αποτέλεσµα της άθροισης θα πρέπει να είναι ο θετικός αριθµός +13010, ο οποί-
ος όµως δεν µπορεί να αποθηκευτεί σε ένα byte. Εποµένως έχουµε υπερχεί-
λιση. Το αποτέλεσµα που προέκυψε όµως από την πρόσθεση των δύο αριθ-
µών (8216) στο µικροεπεξεργαστή αναπαριστά σε µορφή συµπληρώµατος ως
προς δύο τον αρνητικό αριθµό –12610. Η υπερχείλιση χρησιµοποιείται από το
µικροεπεξεργαστή για να δείξει ότι το αποτέλεσµα µίας πράξης δεν είναι
σωστό, καθώς δεν µπορεί να αναπαρασταθεί σε ένα byte.
Η τιµή της σηµαίας I δεν αλλάζει µετά την εκτέλεση της εντολής ADDA.
Όπως µάθαµε, η σηµαία αυτή χρησιµοποιείται για να απαγορεύει ή να επι-
τρέπει αιτήσεις διακοπής µέσω του σήµατος IRQ~ και εποµένως διατηρεί
την τιµή που είχε πριν από την εκτέλεση της εντολής ADDA.
Εάν απαντήσατε σωστά στην άσκηση αυτή, σας αξίζουν συγχαρητήρια! Εάν
όχι, προσπαθήστε πάλι. H έννοια της υπερχείλισης είναι πράγµατι µια δύσκο-
λη έννοια. Θα πρέπει να έχετε πάντα υπόψη σας ότι δεν είναι απαραίτητο µία
εντολή να επηρεάζει όλες τις σηµαίες κατάστασης. Στο βιβλίο του κατα-
σκευαστή µπορούµε να βρίσκουµε για κάθε εντολή ποιες σηµαίες κατάστα-
σης επηρεάζει και ποιες όχι.
4.3
Στον 8080 µπορούµε να διακρίνουµε εννέα σήµατα ελέγχου: (1) R/W~, (2)
DBE, (3) VMA, (4) TSC, (5) BA, (6) HALT~, (7) IRQ~, (8) NMI~ και (9)
RESET~. Η λειτουργία του κάθε σήµατος περιγράφεται αναλυτικότερα στην
υποενότητα 4.1.3. Η γνώση τους είναι απαραίτητη στο σχεδιασµό ενός
µικροϋπολογιστικού συστήµατος.
4.4
Η θετική ακµή του σήµατος Φ1 οδηγεί το σήµα VMA στη λογική τιµή “1”
και στο δίαυλο διευθύνσεων εξάγεται η διεύθυνση της θέσης µνήµης, στην
οποία θα γίνει η εγγραφή. Η διεύθυνση παραµένει στις γραµµές του διαύλου
µέχρι την επόµενη θετική ακµή του Φ1, που σηµατοδοτεί το τέλος του
κύκλου µηχανής εγγραφής και την αρχή του επόµενου κύκλου µηχανής. Το
σήµα R/W~ παραµένει στη λογική τιµή “0” για όλη τη διάρκεια του κύκλου
µηχανής δείχνοντας ότι πρόκειται για λειτουργία εγγραφής.
Για όσο διάστηµα το σήµα DBE βρίσκεται στη λογική τιµή “0”, ο δίαυλος
δεδοµένων βρίσκεται σε κατάσταση υψηλής εµπέδησης. Μόλις το σήµα DBE
µεταβεί στη λογική τιµή “1”, ο µικροεπεξεργαστής τοποθετεί στις γραµµές
δεδοµένων τα προς εγγραφή δεδοµένα. Τα δεδοµένα θα παραµείνουν εκεί
µέχρι την αρνητική ακµή του Φ2, οπότε το σήµα DBE µεταβαίνει στη λογι-
κή τιµή “0” και ο δίαυλος δεδοµένων σε κατάσταση υψηλής εµπέδησης. Η
µνήµη θα πρέπει να έχει προλάβει να αποθηκεύσει τα δεδοµένα µέχρι αυτά
να εξαφανιστούν από το δίαυλο δεδοµένων.
Εάν δώσατε τη σωστή απάντηση, µπράβο! Εάν πάλι δεν καταφέρατε να απα-
ντήσετε σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 4.2 και των σχη-
µάτων που περιέχει θα σας βοηθήσει να λύσετε όποιες απορίες έχετε.
4.5
Το σήµα VMA γίνεται ενεργό µε τη θετική ακµή του Φ1 κατά τη διάρκεια
ενός κύκλου µηχανής και παραµένει ενεργό µέχρι το τέλος του κύκλου
αυτού.
Το σήµα αυτό ενηµερώνει τη µνήµη ή τις συσκευές εισόδου/εξόδου ότι ο
µικροεπεξεργαστής έχει τοποθετήσει στο δίαυλο διευθύνσεων τη διεύθυνση
της µνήµης που θα λάβει µέρος στη λειτουργία ανάγνωσης ή εγγραφής.
4.6
Η κατάσταση WAIT προκύπτει από την εκτέλεση της εντολής WAI και θέτει
το µικροεπεξεργαστή σε κατάσταση αναµονής διακοπής. Κατά την κατά-
σταση αυτή αποθηκεύονται οι καταχωρητές στο σωρό και οι δίαυλοι του
µικροεπεξεργαστή µεταβαίνουν σε κατάσταση υψηλής εµπέδησης. Η έξο-
δος από την κατάσταση αυτή γίνεται όταν εµφανιστεί µία αίτηση διακοπής.
Η κατάσταση HOLD, που προκύπτει µε τα σήµατα TSC και DBE, οδηγεί
τους διαύλους διευθύνσεων και δεδοµένων του µικροεπεξεργαστή σε κατά-
σταση υψηλής εµπέδησης ώστε εξωτερικές συσκευές να µπορούν να πάρουν
τον έλεγχο των διαύλων αυτών και να υλοποιήσουν λειτουργίες απευθείας
προσπέλασης της µνήµης.
Η κατάσταση HALT προκύπτει µε εφαρµογή της λογικής τιµή “0” στον
ακροδέκτη HALT~ και οδηγεί το µικροεπεξεργαστή µετά την εκτέλεση της
τρέχουσας εντολής σε κατάσταση αναστολής επεξεργασίας. Κατά την κατά-
σταση αυτή οι δίαυλοι του µικροεπεξεργαστή µεταβαίνουν σε κατάσταση
υψηλής εµπέδησης.
Και οι τρεις αυτές ειδικές καταστάσεις χρησιµοποιούνται κυρίως σε περι-
1 9 6 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 9 7A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
πτώσεις όπου θέλουµε να κάνουµε λειτουργίες απευθείας προσπέλασης της
µνήµης (λειτουργίες DMA). Μία χρήση της κατάστασης HALT είναι επίσης
για τη βηµατική εκτέλεση των εντολών του προγράµµατος κατά τη φάση
εκσφαλµάτωσής του.
4.7
(α)Το αποτέλεσµα 0416 προκύπτει από την πρόσθεση του 0516, που περιέχε-
ται στον συσσωρευτή Α, µε την τιµή FF16. Παρατηρούµε ότι η τιµή FF16
βρίσκεται αµέσως µετά από τον κωδικό λειτουργίας της εντολής, εποµέ-
νως η εντολή αυτή χρησιµοποιεί την άµεση διευθυνσιοδότηση.
(β)Το αποτέλεσµα 5516 προκύπτει από την πρόσθεση του 0516 µε την τιµή
5016. Η τιµή αυτή υπάρχει στη θέση µνήµης 001216. Παρατηρούµε ότι το
έντελο της εντολής περιέχει µόνο το 1216, δηλαδή το λιγότερο σηµαντι-
κό byte της διεύθυνσης, ενώ το περισσότερο σηµαντικό byte είναι το 0016.
Η διευθυνσιοδότηση που χρησιµοποιεί η εντολή είναι µηδενικής σελίδας.
(γ) Το αποτέλεσµα 1A16 προκύπτει από την πρόσθεση του 0516 µε την τιµή
1516. Η τιµή αυτή υπάρχει στη θέση µνήµης 123416. Το έντελο της εντο-
λής περιέχει τη διεύθυνση της µνήµης, στην οποία βρίσκονται τα δεδο-
µένα, εποµένως η εντολή αυτή χρησιµοποιεί την απευθείας ή απόλυτη
διευθυνσιοδότηση.
(δ) Το αποτέλεσµα 2516 προκύπτει από την πρόσθεση του 0516 µε την τιµή
2016. Η τιµή αυτή υπάρχει στη θέση µνήµης 123316. Το έντελο της εντο-
λής περιέχει την τιµή 1016 και τον καταχωρητή δείκτη Χ. Εάν προσθέ-
σουµε την τιµή 1016 µε το περιεχόµενο του Χ (122316), προκύπτει η διεύ-
θυνση της µνήµης που θέλουµε, εποµένως η εντολή αυτή χρησιµοποιεί
δεικτοδοτηµένη διευθυνσιοδότηση.
5.1
Στους µικροεπεξεργαστές που γνωρίσαµε µέχρι τώρα, η εκτέλεση µίας εντο-
λής χωριζόταν σε τρία στάδια: (α) το στάδιο της προσκόµισης της εντολής
και των εντέλων, (β) το στάδιο της εκτέλεσης της εντολής και (γ) το στάδιο
της αποθήκευσης των αποτελεσµάτων, όποτε χρειαζόταν. Τα στάδια αυτά
εκτελούνταν σειριακά το ένα µετά το άλλο. Ο 8086 προσπαθεί να παραλλη-
λίσει την εκτέλεση µίας εντολής και την προσκόµιση/αποθήκευση των δεδο-
µένων από τη µνήµη. Στην ιδανική περίπτωση, τόσο η µονάδα εκτέλεσης
όσο και η µονάδα διασύνδεσης διαύλου θα βρίσκονται συνεχώς σε λειτουρ-
γία, χωρίς να περιµένει η µία να ολοκληρώσει η άλλη τις εργασίες της. Με
τον τρόπο αυτό ο 8086 επιτυγχάνει µεγαλύτερες ταχύτητες επεξεργασίας.
Εάν απαντήσατε σωστά, σας αξίζουν συγχαρητήρια. Εάν πάλι όχι, µάλλον
θα πρέπει να επαναλάβετε τη µελέτη της υποενότητας 5.1.1. Στη σελίδα 43
του δεύτερου βιβλίου, που αναφέρεται στη βιβλιογραφία, µπορείτε να βρεί-
τε ένα παράδειγµα που δείχνει την αποτελεσµατικότητα του παραλληλισµού
του 8086.
5.2
(α)Λόγω της τµηµατοποίησης της µνήµης (segmentation), που υποστηρίζει
ο 8086, η φυσική διεύθυνση της µνήµης, που πρόκειται να προσπελαστεί
κάθε φορά, υπολογίζεται ως το άθροισµα του καταχωρητή τµήµατος, που
έχει µήκος 16 bits, µετατοπισµένο κατά 4 bits προς τα αριστερά ώστε να
αποκτήσει µέγεθος 20 bits, µε το µετρητή προγράµµατος. Ανάλογα µε το
εάν πρόκειται για λειτουργία που αφορά εντολές, δεδοµένα ή το σωρό
χρησιµοποιείται και ο αντίστοιχος καταχωρητής τµήµατος (καταχωρητής
τµήµατος κώδικα, δεδοµένων, σωρού και καταχωρητής επιπλέον τµήµα-
τος).
(β)Με βάση το (α) µπορείτε εύκολα να υπολογίσετε ότι η διεύθυνση της µνή-
µης, στην οποία βρίσκεται η εντολή, είναι η FEDC016 + 001216 =
FEDD216.
Η τµηµατοποίηση της µνήµης, που βρίσκουµε στον 8086, µάλλον περισσό-
τερα προβλήµατα δηµιούργησε, λόγω της πολυπλοκότητάς της, παρά απο-
τελέσµατα. Μην ξεχνάτε, όµως, το γεγονός ότι οι σχεδιαστές του 8086 έπρε-
πε να διατηρήσουν τη συµβατότητα µε τον 8085 και ότι την εποχή που σχε-
διαζόταν ο 8086 δεν υπήρχε κάποιος αντίστοιχος 16–bit επεξεργαστής.
5.3
Οι καταχωρητές του 8086 αποτελούν υπερσύνολο των καταχωρητών του
8080/8085. Ο 8080/8085 είχε το συσσωρευτή Α, τους 16–bit καταχωρητές
BX, CX, DX, τον καταχωρητή σωρού (SP), το µετρητή προγράµµατος (IP)
και ένα 8–bit καταχωρητή κατάστασης επεξεργαστή.
Ο 8086 εκτός από τους παραπάνω:
• επεκτείνει το συσσωρευτή Α σε 16–bit καταχωρητή,
1 9 8 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
1 9 9A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
• διαθέτει τέσσερις καταχωρητές τµήµατος (CS, DS, SS, ES),
• διαθέτει έναν 16–bit καταχωρητή βάσης (BP),
• διαθέτει δύο 16–bit καταχωρητές δείκτη (SI και DI),
• επεκτείνει τον καταχωρητή κατάστασης επεξεργαστή σε 16–bit, προσθέ-
τοντας επιπλέον σηµαίες κατάστασης.
Οι επιπλέον καταχωρητές χρησιµοποιούνται στην οργάνωση της µνήµης και
στους διάφορους τρόπους διευθυνσιοδότησης, που περιέχει ο 8086.
5.4
Οι δηµιουργοί του 8086 θέλησαν να σχεδιάσουν ένα µικροεπεξεργαστή, ο
οποίος να έχει ευρύ φάσµα εφαρµογών. Έτσι, ανάλογα µε την τιµή ενός
ακροδέκτη του ολοκληρωµένου κυκλώµατος, ο µικροεπεξεργαστής µπορεί
να λειτουργήσει είτε στον ελάχιστο είτε στο µέγιστο τρόπο λειτουργίας.
Στον ελάχιστο τρόπο λειτουργίας, ο µικροεπεξεργαστής παρέχει όλα εκείνα
τα σήµατα χρονισµού, τα οποία χρειάζονται για την ανάπτυξη ενός απλού
µικροϋπολογιστικού συστήµατος µ’ ένα µικροεπεξεργαστή. Στα συστήµατα
αυτά είναι σηµαντικό, για λόγους κόστους, ο συνολικός αριθµός των ολο-
κληρωµένων να είναι ο ελάχιστος δυνατός.
Στο µέγιστο τρόπο λειτουργίας, ο µικροεπεξεργαστής παρέχει πιο πολύπλο-
κα σήµατα χρονισµού, τα οποία όµως είναι απαραίτητα για την ανάπτυξη
πολυεπεξεργαστικών συστηµάτων. Στην περίπτωση τέτοιων συστηµάτων
απαιτείται η ύπαρξη επιπλέον ολοκληρωµένων κυκλωµάτων, όπως π.χ. ο
8288 ελεγκτής διαύλου για την αποτελεσµατική διαχείριση των διαύλων του
συστήµατος.
5.5
Ένας κύκλος ανάγνωσης στον 8086 αποτελείται από τουλάχιστον τέσσερις
κύκλους ρολογιού. Στον πρώτο κύκλο ρολογιού στον πολυπλεγµένο δίαυλο
διευθύνσεων/δεδοµένων εµφανίζεται η διεύθυνση της µνήµης, από όπου θα
γίνει η ανάγνωση των δεδοµένων. Τα δεδοµένα µεταφέρονται στο δίαυλο
κατά τη διάρκεια του τρίτου και τέταρτου κύκλου ρολογιού. Στην περίπτω-
ση που ο χρόνος δεν είναι αρκετός και η µνήµη δεν προλαβαίνει να παρά-
σχει να δεδοµένα, τότε εισάγει επιπλέον κύκλους αναµονής.
Εάν δώσατε τη σωστή απάντηση, µπράβο! Εάν πάλι δεν καταφέρατε να απα-
ντήσετε σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 5.2 και των σχη-
µάτων που περιέχει θα σας βοηθήσει να λύσετε όποιες απορίες έχετε.
5.6
Με την εµφάνιση µιας αίτησης διακοπής, ο µικροεπεξεργαστής εξετάζει κατά
πόσο πρέπει να την ικανοποιήσει ή όχι. Στην περίπτωση που η διακοπή πρέ-
πει να εξυπηρετηθεί, τότε ο µικροεπεξεργαστής απαντά µε δύο κύκλους ανα-
γνώρισης διακοπής. Η συσκευή που προκάλεσε τη διακοπή είναι υποχρεω-
µένη κατά τη διάρκεια του δεύτερου κύκλου να τοποθετήσει στο δίαυλο
δεδοµένων τον αριθµό της διακοπής.
Με βάση τον αριθµό αυτό, ο 8086 ανατρέχει στον πίνακα διευθύνσεων δια-
κοπών για να βρει την αρχή της ρουτίνας εξυπηρέτησης διακοπής. Φορτώ-
νει το µετρητή προγράµµατος και τον καταχωρητή τµήµατος κώδικα µε τις
νέες τιµές και ξεκινά την εκτέλεση της ρουτίνας εξυπηρέτησης.
5.7
Στον 8086 συναντάµε τρόπους διευθυνσιοδότησης, οι οποίοι χρησιµοποιούν
κάποιους από τους καταχωρητές του µικροεπεξεργαστή για να καθορίσουν
την ενεργή διεύθυνση. Έτσι π.χ. στην περίπτωση εντολών έµµεσης διευθυν-
σιοδότησης, οι καταχωρητές BX, SI και DI περιέχουν την ενεργή διεύθυν-
ση. Στην περίπτωση της δεικτοδοτηµένης προσπέλασης, το έντελο που ακο-
λουθεί την εντολή προστίθεται στην τιµή ενός από τους καταχωρητές BX,
BP, SI, DI για να καθορίσει την ενεργή διεύθυνση. Τέλος υπάρχουν και εντο-
λές, στις οποίες προστίθενται τα περιεχόµενα των BX ή BP µε τα περιεχό-
µενα των SI ή DI και ενδεχόµενα µε την τιµή του εντέλου, που ακολουθεί η
εντολή. Το αποτέλεσµα καθορίζει την ενεργή διεύθυνση, η οποία συνδυάζε-
ται µε τον αντίστοιχο καταχωρητή τµήµατος για το σχηµατισµό της φυσικής
διεύθυνσης, όπου βρίσκονται τα δεδοµένα.
6.1
Κάθε µικροϋπολογιστικό σύστηµα είναι σχεδιασµένο µε τέτοιο τρόπο ώστε
να δέχεται κάποια είσοδο από συσκευές, όπως πληκτρολόγια, αισθητήρες,
κ.λπ, να την επεξεργάζεται µε τη βοήθεια κάποιου µικροεπεξεργαστή και να
παρέχει κάποια έξοδο, η οποία µπορεί να είναι είτε η απεικόνιση κάποιων
πληροφοριών είτε ο έλεγχος κάποιων µηχανικών συστηµάτων (διακοπτών,
αντλιών, κ.λπ.).
2 0 0 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 0 1A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™
Έτσι, σε κάθε τέτοιο σύστηµα αναµένουµε να βρούµε ένα µικροεπεξεργα-
στή, κάποια µνήµη ROM, που περιέχει το πρόγραµµα επεξεργασίας, κάποια
µνήµη RAM για την αποθήκευση προσωρινών δεδοµένων και κάποιες περι-
φερειακές συσκευές, που χρησιµοποιούνται τόσο για την είσοδο όσο και για
την έξοδο δεδοµένων από και προς το µικροεπεξεργαστή.
6.2
(α)Aφού η µνήµη έχει µέγεθος 4 Κ (=212), απαιτούνται οι 12 λιγότερο σηµα-
ντικές γραµµές διευθύνσεων του µικροεπεξεργαστή για να έχουµε τη
δυνατότητα να προσπελάσουµε όλες τις θέσεις της µνήµης.
(β)Oι υπόλοιπες τέσσερις (4) γραµµές διευθύνσεων, οι οποίες είναι και οι
περισσότερο σηµαντικές, θα χρησιµοποιηθούν από το κύκλωµα αποκω-
δικοποίησης για να παράγουν το σήµα επίτρεψης CS~ της µνήµης.
(γ) Για να αποκωδικοποιείται η µνήµη στις θέσεις 000016–0FFF16, θα πρέπει,
όταν οι τέσσερις περισσότερο σηµαντικές γραµµές του διαύλου διευθύν-
σεων έχουν τη λογική τιµή 0000, το σήµα CS~ της µνήµης να παίρνει τη
λογική τιµή 0, ενώ, όταν οι τέσσερις περισσότερο σηµαντικές γραµµές
του διαύλου διευθύνσεων έχουν οποιαδήποτε άλλη τιµή, το σήµα CS~ να
παίρνει τη τιµή 1. Η λογική πύλη που δίνει το ζητούµενο αποτέλεσµα
είναι µία πύλη OR τεσσάρων εισόδων. Οι είσοδοι της πύλης αυτής είναι
οι τέσσερις περισσότερο σηµαντικές γραµµές του διαύλου διευθύνσεων,
ενώ η έξοδος της πύλης οδηγείται στο σήµα CS~ της µνήµης.
Εάν δώσατε τη σωστή απάντηση, µπράβο! Εάν πάλι δεν καταφέρατε να απα-
ντήσετε σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 6.2 θα σας βοη-
θήσει να λύσετε όποιες απορίες έχετε.
6.3
Οι 14 λιγότερο σηµαντικές γραµµές του διαύλου διευθύνσεων οδηγούνται στις
γραµµές διευθύνσεων της µνήµης, ενώ οι υπόλοιπες 6 γραµµές οδηγούν το
κύκλωµα αποκωδικοποίησης και οδηγούν το σήµα CS~ της µνήµης. Για να επι-
λέγεται η µνήµη RAM κάθε φορά που ο µικροεπεξεργαστής επιθυµεί την ανά-
γνωση/εγγραφή κάποιας θέσης µεταξύ FC00016 και FFFFF16, θα πρέπει το
κύκλωµα αποκωδικοποίησης να αποτελείται από µία πύλη NAND έξι εισόδων.
Όταν ο 8086 λειτουργεί στον ελάχιστο τρόπο λειτουργίας, µας παρέχει τα
σήµατα RD~ και WR~, που γίνονται ενεργά, όταν έχουµε λειτουργία ανά-
γνωσης ή εγγραφής αντίστοιχα, και το σήµα M/IO~, το οποίο σε περιπτώ-
σεις προσπέλασης της µνήµης έχει τη λογική τιµή 1, ενώ σε περιπτώσεις προ-
σπέλασης συσκευής εισόδου/εξόδου έχει την τιµή 0.
Το σήµα R/W~ της RAM θα πρέπει να είναι στη λογική τιµή 0, όταν έχου-
µε λειτουργία εγγραφής δεδοµένων στη µνήµη, δηλαδή όταν το σήµα WR~
του 8086 έχει τη λογική τιµή 0 και το σήµα M/IO~ έχει τη λογική τιµή 1.
Αντίστοιχα το σήµα OE~ της µνήµης θα πρέπει να έχει την τιµή 0, όταν έχου-
µε λειτουργία ανάγνωσης δεδοµένων από τη µνήµη, δηλαδή στην περίπτω-
ση που το σήµα RD~ του 8086 έχει τη λογική τιµή 0 και το σήµα M/IO~ έχει
τη λογική τιµή 1. Εάν δηµιουργήσετε τους αντίστοιχους πίνακες αλήθειας,
θα διαπιστώσετε ότι η υλοποίηση των σηµάτων R/W~ και OE~ της µνήµης
µπορεί να γίνει µε τη βοήθεια αντιστροφέων και πυλών NAND.
6.4
Το κύκλωµα αποκωδικοποίησης χρησιµοποιεί τις 2 περισσότερο σηµαντικές
γραµµές του διαύλου διευθύνσεων και παράγει τέσσερα σήµατα επιλογής
των τεσσάρων συσκευών που συστήµατός µας. Ένας απλός τρόπος κατα-
σκευής του είναι µε τη βοήθεια ενός αποκωδικοποιητή 2–σε–4. Ο αποκωδι-
κοποιητής παίρνει σαν είσοδο τις δύο γραµµές διευθύνσεων και ανάλογα µε
την τιµή που έχουν αυτές παράγει µία λογική τιµή 0 σε µία από τις τέσσερις
εξόδους και τη λογική τιµή 1 στις υπόλοιπες εξόδους.
Παρατηρήστε ότι µε αυτή την υλοποίηση η µνήµη ROM αντιστοιχεί όχι µόνο
στις διευθύνσεις που θέλαµε (000016–1FFF16), αλλά και στις 200016–3FFF16,
αφού και σε αυτή την περίπτωση οι δύο σηµαντικότερες γραµµές διευθύν-
σεων θα έχουν τη λογική τιµή 00. Στην περίπτωση που δεν έχουµε πολλές
συσκευές στο σύστηµά µας, ώστε να έχουµε περιορισµένο χώρο διευθύνσε-
ων, αυτό δεν αποτελεί πρόβληµα. Εάν όµως αυτό δεν είναι επιθυµητό, τότε
θα πρέπει να διορθώσουµε το κύκλωµα αποκωδικοποίησης, ώστε στην περί-
πτωση της ROM να λαµβάνει υπόψη της τις 3 περισσότερες σηµαντικές
γραµµές διευθύνσεων.
Το ίδιο συµβαίνει και µε τις συσκευές εισόδου/εξόδου. Παρά το γεγονός ότι
απαιτούν µόνο µία διεύθυνση, µε τον αποκωδικοποιητή 2–σε–4 καταλαµ-
βάνουν όλες τις διευθύνσεις 400016–7FFF16 και C00016–FFFF16. Προκειµέ-
νου να επιλέγονται οι συσκευές εισόδου/εξόδου µόνο µε µια διεύθυνση, θα
πρέπει να κατασκευάσουµε ένα κύκλωµα αποκωδικοποίησης που θα παίρ-
νει ως εισόδους όλες τις γραµµές διευθύνσεων.
2 0 2 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
EÓ‰ÂÈÎÙÈΤ˜ A·ÓÙ‹ÛÂȘ ¢Ú·ÛÙËÚÈÔًوÓ
1.1
Οι µικροεπεξεργαστές εµφανίστηκαν κάτω από την ανάγκη να κάνουµε τη
ζωή µας πιο εύκολη. Την ανάγκη αυτή φρόντισαν να µας ικανοποιήσουν οι
κατασκευαστές συστηµάτων προσφέροντάς µας έξυπνες συσκευές µε πολ-
λές δυνατότητες και µε µικρό µέγεθος.
Οι κατασκευαστές επιθυµούν να φτιάχνουν όλο και περισσότερο έξυπνα συστή-
µατα. Κλασικό παράδειγµα είναι οι κατασκευαστές αυτοκινήτων. Θέλοντας να
κάνουν όλο και πιο ξεκούραστη και πιο ασφαλή την οδήγηση, ανέπτυξαν διά-
φορα συστήµατα ελέγχου της οδικής συµπεριφοράς. Οι µικροεπεξεργαστές τους
έδωσαν τα µέσα για να το πετύχουν χωρίς επιβάρυνση σε όγκο ή βάρος.
Ένα παράδειγµα είναι το σύστηµα ABS. Τα σύγχρονα αυτοκίνητα µπορούν να
ελέγχουν τη συµπεριφορά τους στο δρόµο και να απελευθερώνουν τους τροχούς,
όταν αυτοί µπλοκάρουν. Πώς γίνεται αυτό; Χρησιµοποιώντας αισθητήρες στους
τροχούς (αποτελεί την είσοδό µας προς το µικροεπεξεργαστή), ο µικροεπεξερ-
γαστής γνωρίζει (αυτή είναι η επεξεργασία που γίνεται) πότε αυτοί περιστρέ-
φονται και πότε όχι. Στη δεύτερη περίπτωση οι διατάξεις ελέγχου των τροχών
απελευθερώνουν τα φρένα (αυτό είναι και η έξοδος του µικροεπεξεργαστή).
1.2
Ακολουθεί ο συγκεντρωτικός πίνακας µε τα κυριότερα χαρακτηριστικά των
επεξεργαστών της Intel:
Έτος Μικρο– Μήκος λέξης Συχνότητα Αριθµός
επεξεργαστής (σε bits) λειτουργίας τρανσίστορς
1971 4004 4 108 kHz 2.300
1974 8080 8 2 MHz 6.000
1978 8086/8088 16 10 MHz 29.000
1982 80286 16 12,5 MHz 134.000
1985 80386 32 33 MHz 275.000
1989 80486 32 50 MHz 1.200.000
1993 Pentium 32 166 MHz 3.100.000
1997 Pentium II 64 300 MHz 7.700.000
1999 Pentium III 64 450 MHz 9.500.000
3.1
Συνδυάζοντας τη σύντοµη περιγραφή του Ζ80, που ακολουθεί, µε τα όσα
διαβάσατε στο κεφάλαιο αυτό, µπορείτε να παρουσιάσετε τις διαφορές µετα-
ξύ του Ζ80 και του 8080/8085.
Ο Ζ80 κατασκευάζεται σε ολοκληρωµένο κύκλωµα των 40 ακροδεκτών. Η
συχνότητα χρονισµού του είναι συνήθως 2,5MHz.
Στο ολοκληρωµένο κύκλωµά του βρίσκουµε τους ακροδέκτες τροφοδοσίας
(απαιτεί µία µόνο τάση τροφοδοσίας +5 V), τις 8 γραµµές του διαύλου δεδο-
µένων και τις 16 γραµµές του διαύλου διευθύνσεων.
Επίσης υπάρχει ο ακροδέκτης χρονισµού (Φ), στον οποίο συνδέουµε το σήµα
χρονισµού του µικροεπεξεργαστή. Η γραµµή RESΕΤ~ χρησιµοποιείται για
την αρχικοποίηση του µικροεπεξεργαστή, ενώ τα σήµατα IΝΤ~ και NMI~
αποτελούν τις γραµµές (σήµατα) διακοπής. Η γραµµή Μ1~ σηµατοδοτεί τους
κύκλους, στους οποίους ο µικροεπεξεργαστής βρίσκεται σε φάση προσκό-
µισης του κώδικα λειτουργίας µίας εντολής.
Τα σήµατα RD~ και WD~ χρησιµοποιούνται για τις λειτουργίες ανάγνωσης
και εγγραφής στη µνήµη, ενώ το σήµα WAIT~ χρησιµοποιείται για να διευ-
κολύνει τη σύνδεση αργών µνηµών σε Ζ80, ενώ τα σήµατα MREQ~ και
IORQ~ δηλώνουν ότι η διεύθυνση, που υπάρχει στο δίαυλο διευθύνσεων,
µπορεί να χρησιµοποιηθεί για την προσπέλαση της µνήµης ή µίας συσκευ-
ής εισόδου/εξόδου.
Το σήµα BUSRQ~ αποτελεί µία αίτηση προς το µικροεπεξεργαστή ώστε να απε-
λευθερώσει τους διαύλους του συστήµατος. Όταν η αίτηση γίνει δεκτή, τότε
ενεργοποιείται το σήµα BUSAK~. Το σήµα RFSH~ χρησιµοποιείται για την
ανανέωση των κυκλωµάτων των δυναµικών µνηµών (οι δυναµικές µνήµες έχουν
το χαρακτηριστικό ότι πρέπει να ανανεώνονται τα περιεχόµενά τους κατά τακτά
χρονικά διαστήµατα), ενώ το σήµα HALT~ εισάγει το µικροεπεξεργαστή σε
κατάσταση αναστολής λειτουργίας µέχρι να συµβεί κάποια αίτηση διακοπής.
Ο Ζ80 διαθέτει τους καταχωρητές που έχει και ο 8080/8085, αλλά διαθέτει
άλλους τόσους συσσωρευτές και καταχωρητές γενικού σκοπού. Έτσι περιέχει
τους A, BC, DE, HL, αλλά και τους Α', B'C', D'Ε', Η'L'. Περιέχει επίσης και
δύο καταχωρητές δείκτη (X,Y), έναν καταχωρητή για το άνυσµα εξυπηρέτη-
σης διακοπής και έναν καταχωρητή για την ανανέωση της δυναµικής µνήµης.
Ο Ζ80 διαθέτει τέσσερα είδη διακοπών: µία διακοπή, που ενεργοποιείται από
2 0 4 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 0 5E ¡ ¢ ∂ π ∫ ∆ π ∫ ∂ ™ A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ ¢ ƒ∞ ™ ∆ ∏ ƒ π √ ∆ ∏ ∆ ø ¡
το λογισµικό, µία διακοπή αρχικοποίησης (RESΕΤ~), µία διακοπή ελεγχό-
µενη (IRQ~) και µία διακοπή µη ελεγχόµενη (NMI~).
Οι εντολές του Ζ80 αποτελούν ένα υπερσύνολο των εντολών του 8080/8085.
Για το λόγο αυτό προγράµµατα γραµµένα για τον 8080/8085 µπορούν να
εκτελεστούν από τον Ζ80, χωρίς να απαιτούνται αλλαγές. Ανάµεσα στους
τρόπους διευθυνσιοδότησης, που διαθέτει, µπορούµε να βρούµε αυτούς του
8080/8085, αλλά και τη σχετική και τη δεικτοδοτηµένη διευθυνσιοδότηση.
4.1
Συνδυάζοντας τη σύντοµη περιγραφή του 6502, που ακολουθεί, µε τα όσα
διαβάσατε στο κεφάλαιο αυτό, µπορείτε να δηµιουργήσετε µία ολοκληρω-
µένη απάντηση.
Ο 6502, όπως και ο 6800, κατασκευάζεται σε ολοκληρωµένο κύκλωµα των
40 ακροδεκτών. Η συχνότητα χρονισµού του είναι από 1 έως 2 MHz, ενώ το
κύκλωµα χρονισµού συµπεριλαµβάνεται στο ολοκληρωµένο κύκλωµα του
µικροεπεξεργαστή.
Σε αυτό βρίσκουµε τους ακροδέκτες τροφοδοσίας (απαιτεί µία µόνο τάση
τροφοδοσίας +5 V), τις 8 γραµµές του διαύλου δεδοµένων και τις 16 γραµ-
µές του διαύλου διευθύνσεων.
Επίσης υπάρχουν δύο σήµατα χρονισµού (φ0,φ2), στα οποία συνδέουµε τον κρυ-
σταλλικό ταλαντωτή, ενώ το σήµα φ1 εξάγει το σήµα χρονισµού του µικροεπε-
ξεργαστή ώστε να µπορούν να το χρησιµοποιήσουν οι εξωτερικές συσκευές.
Η γραµµή RES~ χρησιµοποιείται για την αρχικοποίηση του µικροεπεξεργαστή,
ενώ τα σήµατα IRQ~ και NMI~ αποτελούν τις γραµµές (σήµατα) διακοπής.
Η γραµµή SYNC σηµατοδοτεί τους κύκλους, στους οποίους ο µικροεπεξερ-
γαστής βρίσκεται σε φάση προσκόµισης του κώδικα λειτουργίας µίας εντολής.
Το σήµα R/W~ διαχωρίζει κατά πόσο ο 6502 βρίσκεται σε λειτουργία ανά-
γνωσης ή εγγραφής στη µνήµη, ενώ το σήµα RDY χρησιµοποιείται για να
διευκολύνει τη σύνδεση αργών µνηµών σε αυτόν.
Το σήµα SO~, τέλος , θέτει στη λογική τιµή “1” τη σηµαία υπερχείλισης στον
καταχωρητή κατάστασης επεξεργαστή.
Ο 6502 διαθέτει έναν 8–bit συσσωρευτή (Α), δύο 8–bit καταχωρητές δεί-
κτη (X,Y), έναν 16–bit µετρητή προγράµµατος και έναν 16–bit καταχωρη-
τή σωρού (µόνο που το λιγότερο σηµαντικό byte έχει πάντα την τιµή 0116,
εποµένως ο σωρός θα βρίσκεται µεταξύ των θέσεων µνήµης µε διεύθυνση
010016 και 01FF16).
Επίσης, υπάρχει ο καταχωρητής κατάστασης επεξεργαστή, που περιέχει 7
σηµαίες κατάστασης. Οι τέσσερις από αυτές µας είναι ήδη γνωστές (σηµαία
κρατούµενου, µηδενικού αποτελέσµατος, αρνητικού αποτελέσµατος και
υπερχείλισης). Η σηµαία Ι ενεργοποιεί ή απενεργοποιεί τις αιτήσεις διακο-
πής IRQ. Η σηµαία B (Break) είναι στη λογική τιµή “1”, όταν η τελευταία
διακοπή που σηµειώθηκε ήταν διακοπή προερχόµενη από το λογισµικό
(δηλαδή από την εντολή BRK). Η σηµαία δεκαδικού (D) ορίζει κατά πόσο
τα δεδοµένα είναι δυαδικοί αριθµοί ή δεκαδικοί σε παράσταση BCD.
Ο 6502 διαθέτει τέσσερα είδη διακοπών: µία διακοπή που ενεργοποιείται από
το λογισµικό (εντολή BRK), µία διακοπή αρχικοποίησης (RES~), µία διακοπή
ελεγχόµενη από την σηµαία Ι (IRQ~) και µία διακοπή µη ελεγχόµενη (NMI~).
Ο 6502 διαθέτει 151 διαφορετικούς κωδικούς λειτουργίας στις εντολές του.
Αυτοί χωρίζουν τις εντολές σε αριθµητικές, λογικές, εντολές διακλάδωσης,
κ.λπ. Επίσης διαθέτει 14 διαφορετικούς τρόπους διευθυνσιοδότησης. Εκτός
από τους ήδη γνωστούς (υπονοούµενη, άµεση, απόλυτη, σχετική, µηδενικής
σελίδας διευθυνσιοδότηση), διαθέτει και κάποιους άλλους που κάνουν χρήση
των καταχωρητών δείκτη και είναι συνδυασµοί των προηγούµενων µεθόδων
µε την έµµεση και δεικτοδοτηµένη διευθυνσιοδότηση.
4.2
Μπορούµε να βρούµε πάρα πολλά παραδείγµατα µικροϋπολογιστικών συστη-
µάτων που να βασίζονται σε µικροεπεξεργαστές των 8 δυαδικών ψηφίων.
Πολλοί από εσάς θα πρέπει να ήρθατε σε επαφή µε κάποιον από τους πρώ-
τους προσωπικούς υπολογιστές στα µέσα της δεκαετίας του 80, όταν έκαναν
την εµφάνισή τους στην ελληνική αγορά (ZX Spectrum, Commodore,
Amstrad, Apple II). Οι υπολογιστές αυτοί είχαν σχεδιαστεί είτε µε τη βοή-
θεια του Z80 (Spectrum και Amstrad) είτε µε τη βοήθεια µικροεπεξεργαστών
της οικογένειας του 6502 (Commodore και Apple II).
Οι σύγχρονες συσκευές πιθανότατα χρησιµοποιούν κάποιον πιο καινούριο µικρο-
επεξεργαστή (π.χ. των 16 ή 32 δυαδικών ψηφίων). Σε εφαρµογές, όµως, όπου
απαιτείται µικρό κόστος κατασκευής και δεν υπάρχουν µεγάλες απαιτήσεις σε
επεξεργαστική ισχύ, η χρήση ενός µικροεπεξεργαστή των 8–bits (ο οποίος µπο-
2 0 6 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 0 7E ¡ ¢ ∂ π ∫ ∆ π ∫ ∂ ™ A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ ¢ ƒ∞ ™ ∆ ∏ ƒ π √ ∆ ∏ ∆ ø ¡
ρεί να είναι πιο σύγχρονος, αλλά ανήκει στην ίδια οικογένεια µε κάποιον από
τους µικροεπεξεργαστές που γνωρίσαµε µέχρι τώρα) αποτελεί ιδανική λύση.
5.1
Από τη µελέτη του 8088 προκύπτει ότι έχει πάρα πολλές οµοιότητες µε τον
8086. Οι δύο µικροεπεξεργαστές είναι 100% συµβατοί σε επίπεδο συνόλου
εντολών και τρόπων διευθυνσιοδότησης. Για το λόγο αυτό προγράµµατα του
πρώτου µπορούν να εκτελεστούν στο δεύτερο, χωρίς να απαιτούνται µετα-
τροπές. Είναι γεγονός άλλωστε ότι η συµβατότητα στους µικροεπεξεργαστές
της Intel, που χρησιµοποιούνται για τους προσωπικούς υπολογιστές IBM PC
συµβατούς, έχει διατηρηθεί από τον 8086 έως και τους σύγχρονους Pentium.
Οι δύο µικροεπεξεργαστές παρουσιάζουν πολλές οµοιότητες και σε επίπεδο
αρχιτεκτονικής και λειτουργιών. ∆ιαθέτουν σε µεγάλο βαθµό τα ίδια σήµα-
τα χρονισµού, ενώ διαθέτουν ακόµα την ίδια οργάνωση µνήµης και το ίδιο
σύνολο καταχωρητών. Μπορούν να λειτουργήσουν µε δύο τρόπους: τον ελά-
χιστο και το µέγιστο τρόπο λειτουργίας.
Οι κυριότερες διαφορές τους, οι οποίες επηρεάζουν περισσότερο την ταχύ-
τητα εκτέλεσης ενός προγράµµατος και όχι τη λειτουργία τους, εστιάζονται
στα παρακάτω σηµεία.
Ο 8088 διαθέτει 8 µόνο γραµµές δεδοµένων. Παρά το γεγονός αυτό είναι
οργανωµένος εσωτερικά µε µήκος λέξης 16–bits. Έτσι, η µεταφορά µίας
λέξης γίνεται µε δύο συνεχόµενους κύκλους µηχανής (8–bits κάθε φορά).
Επίσης, η ουρά εντολών του 8088 έχει µέγεθος 4 bytes σε αντίθεση µε τον
8086, ο οποίος διαθέτει ουρά εντολών µήκους 6 bytes. Η µονάδα διασύνδε-
σης διαύλου ανακτά µία εντολή από τη µνήµη κάθε φορά που στην ουρά
εντολών του 8088 υπάρχει ένα byte διαθέσιµο (αντίστοιχα στον 8086 έπρε-
πε να υπάρχουν 2 bytes διαθέσιµα).
Επίσης υπάρχουν διαφορές σε κάποια σήµατα ελέγχου των δύο µικροεπε-
ξεργαστών. Για παράδειγµα στον 8088 απουσιάζει το σήµα BHE, αφού η
ύπαρξή του δεν έχει κανένα νόηµα.
Μία πιο αναλυτική σύγκριση µεταξύ του 8086 και του 8088 µπορείτε να
βρείτε στη σελίδα 2–73 του βιβλίου 4 της βιβλιογραφίας.
°ÏˆÛÛ¿ÚÈ
Αίτηση ∆ιακοπής (interrupt request)
Aίτηση των περιφερειακών συσκευών προς το µικροεπεξεργαστή για να
αποκτήσουν την προσοχή του.
Άµεση διευθυνσιοδότηση (immediate addressing)
Tρόπος προσπέλασης, στον οποίο τα δεδοµένα βρίσκονται στο έντελο
που ακολουθεί τον κωδικό λειτουργίας της εντολής.
Απευθείας ή απόλυτη διευθυνσιοδότηση (direct or absolute addressing)
Tρόπος προσπέλασης, στον οποίο τα δεδοµένα, που χρειάζεται η εντολή,
βρίσκονται σε κάποια θέση της κύριας µνήµης, η οποία προσδιορίζεται
από το έντελο της εντολής.
Απευθείας προσπέλαση µνήµης από περιφερειακό
(direct memory access – DMA)
Tεχνική για τη µεταφορά δεδοµένων στην κύρια µνήµη χωρίς την παρεµ-
βολή του µικροεπεξεργαστή.
Αριθµητική & Λογική Μονάδα (arithmetic & logic unit – ALU)
Tµήµα του µικροεπεξεργαστή, στο οποίο εκτελούνται οι διάφορες λογι-
κές και αριθµητικές πράξεις.
Γραµµή δεδοµένων (data line)
Mία γραµµή του διαύλου δεδοµένων.
Γραµµή διευθύνσεων (address line)
Mία γραµµή του διαύλου διευθύνσεων.
Γραµµή ελέγχου (control line)
Mία γραµµή του διαύλου ελέγχου
∆είκτης κατάστασης
∆υαδικό ψηφίο του καταχωρητή κατάστασης που υποδηλώνει την ύπαρ-
ξη ή όχι κάποιας κατάστασης (π.χ. µηδενικού αποτελέσµατος σε περί-
πτωση µιας αριθµητικής πράξης).
∆είκτης σωρού (stack pointer)
Kαταχωρητής που περιέχει την κορυφή του σωρού.
2 0 9° § ø ™ ™ ∞ ƒ π
∆εικτοδοτηµένη διευθυνσιοδότηση (indexed addressing)
Tρόπος προσπέλασης, στον οποίο η ενεργή διεύθυνση είναι το αποτέλε-
σµα, που προκύπτει από το άθροισµα της τιµής, που περιέχει το έντελο,
και του περιεχόµενου ενός καταχωρητή.
∆ιακοπή (interrupt)
H προσωρινή διακοπή της εκτέλεσης των εντολών του προγράµµατος του
µικροεπεξεργαστή για την εξυπηρέτηση των αναγκών των περιφερεια-
κών συσκευών.
∆ίαυλος (bus)
Mία ή περισσότερες γραµµές, οι οποίες χρησιµοποιούνται για την επι-
κοινωνία των διαφόρων τµηµάτων ενός υπολογιστή.
∆ίαυλος δεδοµένων (data bus)
Ένα σύνολο γραµµών, που χρησιµοποιούνται για τη µεταφορά των δεδο-
µένων ανάµεσα στις διάφορες µονάδες ενός υπολογιστή.
∆ίαυλος διευθύνσεων (address bus)
Ένα σύνολο γραµµών, που χρησιµοποιούνται για τη µεταφορά διευθύν-
σεων ανάµεσα στις διάφορες µονάδες ενός υπολογιστή (συνήθως από το
µικροεπεξεργαστή προς τις υπόλοιπες µονάδες).
∆ίαυλος ελέγχου (control bus)
Ένα σύνολο γραµµών, που χρησιµοποιούνται για την ενεργοποίηση των
λειτουργιών του µικροεπεξεργαστή, της µνήµης και των περιφερειακών
συσκευών, που αποτελούν ένα µικροϋπολογιστή.
∆ιευθυνσιοδότηση µηδενικής σελίδας (zero page addressing)
Tρόπος προσπέλασης των πρώτων 256 θέσεων της κύριας µνήµης.
Έµµεση διευθυνσιοδότηση (indirect addressing)
Tρόπος προσπέλασης, στον οποίο η ενεργή διεύθυνση σχηµατίζεται από
το περιεχόµενο του καταχωρητή ή της θέσης µνήµης, την οποία περιέχει
η εντολή στο έντελό της.
Ενεργή διεύθυνση (effective address)
H φυσική διεύθυνση της µνήµης, που προκύπτει από την εφαρµογή του
τρόπου διευθυνσιοδότησης σε µία εντολή.
Έντελο (operand)
Tο δεύτερο µέρος της κάθε εντολής. Περιέχει τα δεδοµένα ή τη διεύθυν-
ση, στην οποία αυτά βρίσκονται, τα οποία θα χρειαστεί η κεντρική µονά-
δα επεξεργασίας κατά την εκτέλεση της εντολής.
Εντολή (instruction)
Ένα σύνολο από δυαδικά ψηφία, που ορίζουν τη λειτουργία που θα πρέ-
πει να εκτελέσει ο µικροεπεξεργαστής. Η κάθε εντολή περιέχει τον κωδι-
κό λειτουργίας και ένα ή περισσότερα έντελα.
Καταχωρητής (register)
Tµήµατα του µικροεπεξεργαστή που χρησιµοποιούνται για την αποθή-
κευση δεδοµένων.
Καταχωρητής γενικού σκοπού (general purpose register)
Kαταχωρητής που µπορεί να χρησιµοποιηθεί είτε ως συσσωρευτής είτε
ως καταχωρητής δείκτη ανάλογα µε τις εκάστοτε ανάγκες.
Καταχωρητής δείκτη (index register)
Kαταχωρητής, τα περιεχόµενα του οποίου µπορούν να προστεθούν σε µία
διεύθυνση και να δηµιουργήσουν µια νέα ενεργή διεύθυνση.
Καταχωρητής εντολών (instruction register)
Kαταχωρητής της µονάδας ελέγχου, στον οποίο αποθηκεύεται ο κωδικός
λειτουργίας της εντολής, που πρόκειται να εκτελεστεί.
Καταχωρητής κατάστασης (status register)
Ένα σύνολο από δυαδικά ψηφία, που ονοµάζονται δείκτες ή σηµαίες
κατάστασης, που υποδηλώνουν τα χαρακτηριστικά των αποτελεσµάτων
της προηγούµενης πράξης της αριθµητικής και λογικής µονάδας.
Καταχωρητής τµήµατος (segment register)
Περιέχει την αρχική διεύθυνση ενός τµήµατος µνήµης. Χρησιµοποιείται
στον 8086/8088 της Intel.
Κεντρική µονάδα επεξεργασίας (central Processing Unit – CPU)
Aποτελεί την καρδιά του κάθε υπολογιστικού συστήµατος. Εκτελεί τις
αριθµητικές και λογικές λειτουργίες και ελέγχει και συντονίζει τη λει-
τουργία του συστήµατος.
2 1 0 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 1 1° § ø ™ ™ ∞ ƒ π
Κύκλος ανάκλησης εντολής (instruction fetch cycle)
Aποτελεί τον πρώτο κύκλο µηχανής κάθε εντολής. Κατά τη διάρκεια του
κύκλου αυτού, µεταφέρεται η εντολή από τη µνήµη στην CPU.
Κύκλος εντολής (instruction cycle)
O χρόνος που απαιτείται για το συνδυασµό των λειτουργιών, που χρειά-
ζονται κατά την εκτέλεση µιας εντολής.
Κύκλος µηχανής (machine cycle)
O χρόνος που απαιτείται για την εκτέλεση µιας βασικής λειτουργίας, όπως
π.χ. µια λειτουργία ανάγνωσης/εγγραφής στη µνήµη.
Κύκλος προσκόµισης εντολής (instruction fetch cycle)
Bλέπε κύκλο προσκόµισης εντολής.
Κύκλος ρολογιού (clock cycle)
Aποτελεί τη µονάδα χρόνου του µικροεπεξεργαστή και εκφράζει την
περίοδο του σήµατος χρονισµού.
Κυκλώµατα εξαιρετικά υψηλής κλίµακας ολοκλήρωσης
(ultra large scale of integration – ULSI)
Oλοκληρωµένα κυκλώµατα που αποτελούνται από εκατοµµύρια τρανσίστορς.
Κυκλώµατα µεγάλης κλίµακας ολοκλήρωσης (large scale of integration – LSI)
Oλοκληρωµένα κυκλώµατα που αποτελούνται από µερικές εκατοντάδες
έως µερικές χιλιάδες τρανσίστορς.
Κυκλώµατα µεσαίας κλίµακας ολοκλήρωσης (medium scale of integration
– MSI)
Oλοκληρωµένα κυκλώµατα µε µερικές δεκάδες έως εκατοντάδες τραν-
σίστορς.
Κυκλώµατα µικρής κλίµακας ολοκληρωσης (small scale of integration – SSI)
Oλοκληρωµένα κυκλώµατα που περιέχουν µερικά µόνο τρανσίστορς.
Κυκλώµατα πολύ µεγάλης κλίµακας ολοκλήρωσης (very large scale of
integration – VLSI)
Oλοκληρωµένα κυκλώµατα που αποτελούνται από µερικές χιλιάδες έως
εκατοντάδες χιλιάδες τρανσίστορς.
Κύρια µνήµη (main memory)
Ένα σύνολο από ολοκληρωµένα κυκλώµατα, που χρησιµοποιούνται για
την αποθήκευση των εντολών του προγράµµατος, των αρχικών δεδοµέ-
νων και των ενδιάµεσων αποτελεσµάτων.
Κωδικός λειτουργίας (operation code – opcode)
Mέρος της εντολής. Περιέχει τον κωδικό της εντολής και υπαγορεύει στην
κεντρική µονάδα επεξεργασίας την εκτέλεση της συγκεκριµένης λειτουργίας.
Μέθοδοι διευθυνσιοδότησης (addressing modes)
Bλέπε τρόπους προσπέλασης
Μετρητής προγράµµατος (program counter)
Aποθηκεύει τη διεύθυνση της θέσης µνήµης, στην οποία βρίσκεται η επό-
µενη προς εκτέλεση εντολή.
Μικροεπεξεργαστής (microprocessor)
H κεντρική µονάδα επεξεργασίας ενσωµατωµένη σε ένα ολοκληρωµένο
κύκλωµα.
Μικροϋπολογιστής (microcomputer)
Yπολογιστικό σύστηµα που χρησιµοποιεί µικροεπεξεργαστή ως κεντρι-
κή µονάδα επεξεργασίας.
Μικροϋπολογιστικό σύστηµα
Bλέπε µικροϋπολογιστής.
Μνήµη µόνο ανάγνωσης (Read Only Memory – ROM)
Mνήµη, τα περιεχόµενα της οποίας δεν µπορούν να διαγραφούν ή να
αλλαχθούν.
Μνήµη τυχαίας προσπέλασης (Random Access Memory – RAM)
Mνήµη, στην οποία µπορούµε να κάνουµε τόσο ανάγνωση όσο και εγγρα-
φή δεδοµένων.
Μονάδα ελέγχου (control unit)
Tµήµα του µικροεπεξεργαστή, το οποίο παρέχει λειτουργίες χρονισµού,
αποκωδικοποίησης εντολών και ενεργοποίησης/απενεργοποίησης των
µονάδων του µικροεπεξεργαστή.
2 1 2 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™
2 1 3° § ø ™ ™ ∞ ƒ π
Ολοκληρωµένο κύκλωµα (integrated circuit – IC)
Ένα κοµµάτι ηµιαγωγού (π.χ. πυριτίου), τοποθετηµένο σε πλαστικό ή
κεραµικό περίβληµα, στο οποίο έχει δηµιουργηθεί, µε τρανσίστορς, διό-
δους, αντιστάσεις και πυκνωτές, το επιθυµητό κύκλωµα.
Πρόγραµµα (program)
Ένα σύνολο από εντολές που υλοποιούν µια επιθυµητή λειτουργία.
Σήµα χρονισµού (clock signal)
Σήµα που χρησιµοποιείται για το χρονισµό των διαφόρων λειτουργιών
του υπολογιστικού συστήµατος. Συνήθως, παράγεται µε τη βοήθεια κρυ-
σταλλικών ταλαντωτών.
Σηµαία ισοτιµίας (parity flag)
Σηµαία κατάστασης που ορίζει άρτια ή περιττή ισοτιµία των δυαδικών
ψηφίων που βρίσκονται αποθηκευµένα στο συσσωρευτή.
Σηµαία κατάστασης (status flag)
Bλέπε διακόπτης κατάστασης
Σηµαία κρατούµενου (carry flag)
Σηµαία κατάστασης, που υποδηλώνει τη δηµιουργία κρατούµενου κατά
την εκτέλεση της τελευταίας πράξης.
Σηµαία µηδενικού αποτελέσµατος (zero flag)
Σηµαία κατάστασης, που δείχνει εάν το αποτέλεσµα της τελευταίας πρά-
ξης ήταν µηδενικό ή όχι.
Σηµαία προσήµου (sign flag)
Σηµαία κατάστασης, που υποδηλώνει το πρόσηµο του αποτελέσµατος της
τελευταίας πράξης.
Σηµαία υπερχείλισης (overflow flag)
Σηµαία κατάστασης, που υποδηλώνει τη δηµιουργία υπερχείλισης κατά
την εκτέλεση της τελευταίας πράξης.
Συνεπεξεργαστής (coprocessor)
Kεντρική µονάδα επεξεργασίας, η οποία έχει δηµιουργηθεί για να εκτελεί
ειδικές λειτουργίες, όπως π.χ. πράξεις αριθµητικής κινητής υποδιαστολής.
Ο ρόλος του είναι να βοηθά την κεντρική µονάδα επεξεργασίας. Ο 8087
είναι ο πιο δηµοφιλής συνεπεξεργαστής και συνεργάζεται µε τον 8086.
Συσσωρευτής (accumulator)
Kαταχωρητής της αριθµητικής και λογικής µονάδας, στον οποίο αποθη-
κεύεται είτε ένας από τους αριθµούς που απαιτείται για την πράξη είτε το
αποτέλεσµα της πράξης.
Σχετική διευθυνσιοδότηση (relative addressing)
Tρόπος προσπέλασης, στον οποίο η ενεργή διεύθυνση προκύπτει από την
πρόσθεση της τιµής του εντέλου της εντολής στο περιεχόµενο του µετρη-
τή προγράµµατος. Χρησιµοποιείται στις εντολές διακλάδωσης.
Τρόποι προσπέλασης (addressing modes)
Oι διαφορετικοί τρόποι, που χρησιµοποιεί ο µικροεπεξεργαστής, για να δηλώ-
σει τη θέση των δεδοµένων που απαιτούνται για την εκτέλεση µίας εντολής.
Υπονοούµενη διευθυνσιοδότηση (implied or register addressing)
Tρόπος προσπέλασης, στον οποίο η θέση των δεδοµένων προσδιορίζεται
από τον κωδικό λειτουργίας της εντολής.
2 1 4 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™