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

216
Mικροεπεξεργαστές

Transcript of Mικροεπεξεργαστές

Page 1: Mικροεπεξεργαστές

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

Page 2: Mικροεπεξεργαστές
Page 3: Mικροεπεξεργαστές

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σχολή Θετικών Επιστηµών και Τεχνολογίας

Πρόγραµµα Σπουδών

ΠΛΗΡΟΦΟΡΙΚΗ

Θεµατική Eνότητα

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Tόµος Γ'

MικροεπεξεργαστέςΓEΩPΓIOΣ AΛEΞIOY

Kαθηγητής Tµήµατος Mηχανικών H/Y & Πληροφορικής Πανεπιστηµίου Πατρών

ΠATPA 2001

Page 4: Mικροεπεξεργαστές

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σχολή Θετικών Επιστηµών και Τεχνολογίας

Πρόγραµµα Σπουδών

ΠΛ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, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού

ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

Page 5: Mικροεπεξεργαστές

¶ÂÚȯ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

Page 6: Mικροεπεξεργαστές

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

Page 7: Mικροεπεξεργαστές

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

Page 8: Mικροεπεξεργαστές

K ∂ º ∞ § ∞ π √ 7

E›ÏÔÁÔ˜: ™‡Á¯ÚÔÓ˜ T¿ÛÂȘ ™¯Â‰È·ÛÌÔ‡ MÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ

Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιάEισαγωγικές παρατηρήσεις ............................................................................................................ 173

7.1 H εξέλιξη των µικροεπεξεργαστών – Σύγχρονα κυκλώµατα ......... 174

Σύνοψη ........................................................................................................................................................... 176

Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης ..................................................................... 177

Eνδεικτικές Aπαντήσεις ∆ραστηριοτήτων ..................................................................... 203

Γλωσσάρι ..................................................................................................................................................... 208

Page 9: Mικροεπεξεργαστές

¶Ú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

Page 10: Mικροεπεξεργαστές
Page 11: Mικροεπεξεργαστές

EÈÛ·ÁˆÁ‹

™ÎÔfi˜

Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε τις ανάγκες που επέβαλαν την

εµφάνιση των µικροεπεξεργαστών, τις τεχνολογικές εξελίξεις, που έκαναν

εφικτή αυτή την εµφάνιση, καθώς και τη ραγδαία εξέλιξή τους µέσα από µία

µικρή ιστορική αναδροµή από τον πρώτο µικροεπεξεργαστή µέχρι σήµερα.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• αναφέρετε τη βασική ανάγκη, η οποία οδήγησε στην ανάπτυξη των µικρο-

επεξεργαστών.

• δώσετε τουλάχιστον τρία παραδείγµατα εφαρµογών, τα οποία απαιτούν τη

χρήση µικροεπεξεργαστή.

• ορίσετε τι είναι και από τι αποτελούνται τα ολοκληρωµένα κυκλώµατα.

• περιγράψετε πέντε κατηγορίες των ολοκληρωµένων κυκλωµάτων ως προς

το µέγεθός τους και το πλήθος των τρανσίστορς, που περιέχουν.

• δώσετε τα τέσσερα κυριότερα πλεονεκτήµατα, που έχουν τα ολοκληρωµέ-

να κυκλώµατα.

• περιγράψετε τα έξι βασικά βήµατα που απαιτούνται για την κατασκευή τους.

• απαριθµήσετε τις βασικές χρονολογίες–σταθµούς στην ιστορία των µικρο-

επεξεργαστών.

• δώσετε τον ορισµό ενός µικροϋπολογιστικού συστήµατος και να περιγρά-

ψετε τα τρία βασικά τµήµατα, από τα οποία αποτελείται.

• δώσετε τον ορισµό ενός µικροεπεξεργαστή και να αναφέρετε τα τρία βασι-

κά του τµήµατα.

• περιγράψετε τους τρεις διαύλους επικοινωνίας, που συναντάµε σ’ ένα

µικροϋπολογιστικό σύστηµα.

• ορίσετε τη γενική µορφή των εντολών, τις οποίες καταλαβαίνει ένας µικρο-

επεξεργαστής.

ŒÓÓÔȘ ÎÏÂȉȿ

1∫ ∂ º ∞ § ∞ π √

• ∆ίαυλος ∆εδοµένων

• ∆ίαυλος ∆ιευθύνσεων

• ∆ίαυλος Ελέγχου.

• Μικροεπεξεργαστής

• Μικροϋπολογιστής

• Ολοκληρωµένο Κύκλωµα

Page 12: Mικροεπεξεργαστές

1 2 K E º A § A I O 1 : E I ™ A ° ø ° H

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Το πρώτο κεφάλαιο του βιβλίου αποτελεί µια µικρή εισαγωγή στον κόσµο των

µικροϋπολογιστών και των µικροεπεξεργαστών. Ως τέτοιο, δεν περιέχει

δυσκολονόητες έννοιες, αλλά σας προετοιµάζει για τα κεφάλαια που θα ακο-

λουθήσουν.

Θα πρέπει να δώσετε ιδιαίτερη προσοχή στην ενότητα 1.4, στην οποία ανα-

φέρονται βασικές έννοιες, οι οποίες θα αναλυθούν µε µεγάλη λεπτοµέρεια

στο κεφάλαιο 2.

Page 13: Mικροεπεξεργαστές

1.1 H AÓ¿ÁÎË: ŒÍ˘Ó·, ¢¤ÏÈÎÙ· Û˘ÛÙ‹Ì·Ù· Ì ÌÈÎÚfi ̤ÁÂıÔ˜

Καθώς οι υπολογιστές εξελίσσονταν, ένα από τα πιο σηµαντικά προβλήµα-

τα που παρουσιάστηκαν ήταν το πώς θα µπορούσαν να χρησιµοποιηθούν σε

όσο το δυνατόν περισσότερες καθηµερινές εφαρµογές. Πολλές συσκευές

(ηλεκτρικές συσκευές, συσκευές ελέγχου µηχανών, συστήµατα σηµατοδό-

τησης) θα µπορούσαν να γίνουν πολύ πιο αποδοτικές και λειτουργικές, εάν

µπορούσαν να χρησιµοποιήσουν την «ευφυΐα» και την ευκολία, µε την οποία

κάνουν πράξεις οι υπολογιστές. Φυσικά, ήταν αδύνατο να δεσµευτεί ένας

µεγάλος ή έστω ένας µεσαίων δυνατοτήτων υπολογιστής σ’ αυτού του είδους

τις εφαρµογές κυρίως λόγω του υπερβολικού τους µεγέθους και κόστους.

Το ζητούµενο, λοιπόν, ήταν να κατασκευασθεί ένα σύστηµα που να περιέ-

χει τόσο τα κυκλώµατα όσο και τη βασική λογική (πρόγραµµα) έτσι ώστε

να µπορεί να αντεπεξέλθει στο σύνολο των απαιτούµενων εφαρµογών.

Συνεπώς, η λύση θα ήταν ένας ολοκληρωµένος αυτοδύναµος υπολογιστής

µέσα σ’ ένα µοναδικό ολοκληρωµένο κύκλωµα, ο οποίος θα έπρεπε να είχε

τη δυνατότητα αποθήκευσης προγραµµάτων και εκτέλεσης σύνθετων µαθη-

µατικών πράξεων.

Βέβαια, όπως συνήθως γίνεται, οι απαιτήσεις της βιοµηχανίας και οι δυνα-

τότητες των σχεδιαστών υπολογιστών ήταν αδύνατο να γεφυρωθούν. Φυσι-

κά ήταν δυνατό να δοθεί λύση σε µερικές από τις απαιτήσεις, αλλά η κατα-

σκευή ενός υπολογιστή πάνω σ’ ένα µοναδικό ολοκληρωµένο κύκλωµα φαι-

νόταν σαν µία µακρινή επιδίωξη. Τη λύση φάνηκε να τη δίνει η τεχνολογία

ολοκληρωµένων κυκλωµάτων, όταν µπόρεσε να τοποθετήσει χιλιάδες

κυκλώµατα πάνω σε µια πολύ µικρή επιφάνεια.

1.2 O TÚfiÔ˜: OÏÔÎÏËڈ̤ӷ ΢ÎÏÒÌ·Ù·

Όλα τα λογικά κυκλώµατα σήµερα κατασκευάζονται µε τη µορφή ολοκλη-

ρωµένων κυκλωµάτων (integrated circuits, ICs). Τα ολοκληρωµένα κυκλώ-

µατα αποτελούνται από ένα κοµµάτι αγώγιµου υλικού (πυριτίου), πάνω στο

οποίο έχει δηµιουργηθεί το κύκλωµα, το οποίο επιθυµούµε, µε τρανσίστορς

(transistors), διόδους, αντιστάσεις και πυκνωτές. Το κοµµάτι αυτό του πυρι-

τίου προστατεύεται από πλαστικό ή κεραµικό περίβληµα, ενώ οι είσοδοι και

οι έξοδοι του κυκλώµατος καταλήγουν σε µεταλλικές επαφές εκτός περι-

βλήµατος, που ονοµάζονται ακροδέκτες (pins). Η µορφή ενός ολοκληρωµέ-

νου κυκλώµατος φαίνεται στο σχήµα 1.1.

1 31 . 1 H A ¡ ∞ ° ∫ ∏ : ∂ • À ¶ ¡ ∞ , ∂ À ∂ § π ∫ ∆∞ ™ À ™ ∆ ∏ ª ∞∆∞ ª ∂ ª π ∫ ƒ √ ª ∂ ° ∂ £ √ ™

Page 14: Mικροεπεξεργαστές

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), που περιέχουν από µερικές χιλιάδες έως εκατοντά-

δες χιλιάδες τρανσίστορς.

Page 15: Mικροεπεξεργαστές

• Κυκλώµατα εξαιρετικά υψηλής κλίµακας ολοκλήρωσης (Ultra Large Scale

Integration ή ULSI), που περιέχουν από ένα εκατοµµύριο τρανσίστορς και

πάνω.

Καθώς ο αριθµός των τρανσίστορς, που περικλείονται σε µια επιφάνεια ενός

ολοκληρωµένου κυκλώµατος, είναι τροµακτικά µεγάλος, είναι αδύνατη

πλέον η σχεδίασή του χωρίς τη χρήση υπολογιστή. Κατά τη διάρκεια σχε-

δίασης, ο σχεδιαστής χρησιµοποιεί έναν τερµατικό σταθµό για να σχεδιάσει

σε αυτόν το γράφηµα του λογικού κυκλώµατος, που θα αποτυπωθεί πάνω

στην επιφάνεια πυριτίου. Κατόπιν, µε τη βοήθεια ειδικών προγραµµάτων

αποθηκευµένων στον υπολογιστή και ειδικών εργαλείων, το γράφηµα αυτό

θα σχηµατιστεί πάνω στην επιφάνεια του ολοκληρωµένου κυκλώµατος.

Μετά το τέλος της διαδικασίας σχεδιασµού, ακολουθεί η διαδικασία παρα-

γωγής και ελέγχου ορθής λειτουργίας του ολοκληρωµένου κυκλώµατος. Τα

ολοκληρωµένα κυκλώµατα κατασκευάζονται σε δεκάδες ή εκατοντάδες, ανά-

λογα µε το µέγεθός τους, πάνω σε ένα δίσκο πυριτίου, ο οποίος ονοµάζεται

wafer (παρατηρήστε το σχήµα 1.2). Το wafer περιέχει εκτός από τα κυκλώ-

µατα, τα οποία επιθυµούµε να κατασκευάσουµε, και κυκλώµατα ελέγχου της

διαδικασίας (test structures). Τα κυκλώµατα αυτά έχουν ως στόχο την παρα-

κολούθηση της διαδικασίας παραγωγής από τον κατασκευαστή και τον έλεγ-

χο ποιότητας του αποτελέσµατος. Σε περίπτωση, που κάποια κυκλώµατα

ελέγχου δείξουν προβληµατική συµπεριφορά, αυτόµατα σταµατάει η διαδι-

κασία και o δίσκος πυριτίου απορρίπτεται.

Το πρώτο βήµα που έχουµε εποµένως είναι η κατασκευή του δίσκου πυριτί-

ου. Η διαδικασία αποτύπωσης των κυκλωµάτων πάνω σε αυτόν ακολουθεί

διάφορα στάδια. Αρχικά έχουµε την κατασκευή µιας απόλυτα καθαρής ηµια-

γώγιµης επιφάνειας, στην οποία υπεισάγονται προσµίξεις µε τη βοήθεια ενός

µονωτικού επιστρώµατος οξειδίου για να αποδοθούν οι απαραίτητες ηλε-

κτρικές ιδιότητες. Πάνω στην επιφάνεια αυτή επιτίθεται προστατευτικό επί-

χρισµα και εκτίθεται σε ακτινοβολία µέσω µασκών, µετά καθαρίζεται,

χαράσσεται µε οξέα, προστίθενται καινούργιες προσµίξεις και η διαδικασία

αυτή επαναλαµβάνεται µέχρις ότου χαραχτούν όλα τα κυκλώµατα.

Το επόµενο βήµα είναι ο έλεγχος των πλακιδίων (dies), που παράγονται. Η

διαδικασία ελέγχου βασίζεται στην εφαρµογή σηµάτων ελέγχου στα σηµεία

των εξωτερικών συνδεσµολογιών κάθε πλακιδίου. Όσα δεν έχουν σωστή

απόκριση, σηµειώνονται ως ελαττωµατικά.

1 51 . 2 O T ƒ √ ¶ √ ™ : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ ∫ À ∫ § ø ª ∞∆∞

Page 16: Mικροεπεξεργαστές

1 6 K E º A § A I O 1 : E I ™ A ° ø ° H

Στη συνέχεια, όπως φαίνεται στο σχήµα 1.3, οι δίσκοι πυριτίου κόβονται στα

επιµέρους τµήµατα, που είναι τα ολοκληρωµένα κυκλώµατα, και τα ελατ-

τωµατικά απορρίπτονται. Το κάθε ολοκληρωµένο κύκλωµα, που προκύπτει,

™¯‹Ì· 1.2

Η διαδικασία

κατασκευής των

ολοκληρωµένων

κυκλωµάτων

Page 17: Mικροεπεξεργαστές

τοποθετείται σε µία βάση (πλαστικό ή κεραµικό περίβληµα) και οι γραµµές,

που έχει, συνδέονται µε χρυσά σύρµατα στους ακροδέκτες της βάσης. Τέλος

τοποθετείται το πάνω µέρος του περιβλήµατος και τα ολοκληρωµένα κυκλώ-

µατα είναι έτοιµα.

1 71 . 2 O T ƒ √ ¶ √ ™ : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ ∫ À ∫ § ø ª ∞∆∞

™¯‹Ì· 1.3

Η κοπή των πλακιδίων

από το δίσκο πυριτίου

Μετά από το σηµείο αυτό γίνεται και ο τελικός έλεγχος των ολοκληρωµένων

κυκλωµάτων σχετικά µε την τήρηση των προδιαγραφών λειτουργίας τους

και την τήρηση των ζητούµενων χαρακτηριστικών.

Τι είναι τα ολοκληρωµένα κυκλώµατα; Από τι αποτελούνται; ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.1

Page 18: Mικροεπεξεργαστές

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

Page 19: Mικροεπεξεργαστές

µικροεπεξεργαστή, που είχε 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), ενώ το σύνολο των προγραµµάτων και εντο-

Page 20: Mικροεπεξεργαστές

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

Οι δίαυλοι επικοινωνίας

του µικροϋπολογιστή

Page 21: Mικροεπεξεργαστές

Θα πρέπει να αναφέρουµε επίσης ότι και οι µικροεπεξεργαστές, όπως άλλω-

στε και όλα τα λογικά κυκλώµατα, λειτουργούν µε βάση τη δυαδική λογική,

όπου µε τη βοήθεια δύο µόνο λογικών καταστάσεων (λογικό 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 π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ ∂ ™ ∫ ∞ π ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 22: 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), που

δηλώνει τη θέση όπου θα αποθηκευτεί το αποτέλεσµα.

Ανάλογα µε την εσωτερική οργάνωση, που έχει ο κάθε µικροεπεξεργαστής,

Page 23: Mικροεπεξεργαστές

εµφανίζονται πολλές φορές διαφοροποιήσεις από τη γενική περίπτωση, που

αναφέραµε παραπάνω. Έτσι π.χ. µπορεί να υπάρχουν εντολές µε τρία έντε-

λα (όπως συµβαίνει στην περίπτωση µιας εντολής πρόσθεσης δύο αριθµών)

ή µε ένα έντελο ή µε κανένα (στην περίπτωση αυτή ο κωδικός λειτουργίας

περιέχει και το πού θα εφαρµοστεί η εντολή).

2 31 . 4 M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ ∂ ™ ∫ ∞ π ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Προσπαθήστε να εξηγήσετε ποια απαίτηση των κατασκευαστών συστηµά-

των οδήγησε στην εµφάνιση των µικροεπεξεργαστών. Σκεφτείτε παραδείγ-

µατα από την καθηµερινή ζωή και από τις συσκευές, τις οποίες χρησιµοποι-

είτε συχνά, και αναφέρετε τρία παραδείγµατα συσκευών ή γενικότερα συστη-

µάτων, που να χρησιµοποιούν µικροεπεξεργαστές. Για να οδηγηθείτε σε

σωστό δρόµο σκεφτείτε ενέργειες, που κάνουν οι σύγχρονες συσκευές και

δεν υπήρχαν στις παλαιότερες. Προσπαθήστε σε κάθε παράδειγµα να προσ-

διορίσετε α) ποια είναι η πληροφορία, την οποία επεξεργάζεται ο µικροεπε-

ξεργαστής, β) ποια είναι η είσοδος σε αυτόν και γ) ποια είναι η έξοδος της

επεξεργασίας. Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της

δραστηριότητας εκτιµάµε πως δεν θα ξεπεράσει τα 30 περίπου λεπτά.

¢Ú·ÛÙËÚÈfiÙËÙ· 1.1

Ποια είναι τα τρία βασικά τµήµατα, από τα οποία αποτελείται ένα µικρο-

ϋπολογιστικό σύστηµα;

ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.5

Τα µικροϋπολογιστικά συστήµατα επικοινωνούν µεταξύ τους µέσω τριών

διαύλων. Αντιστοιχίστε το όνοµα του καθενός από αυτούς µε τις ενέργειες

που εµφανίζονται στη δεξιά στήλη:

∆ίαυλος ∆εδοµένων Mεταφέρει τη διεύθυνση της θέσης µνή-

µης ή της συσκευής Ι/Ο, µε την οποία

ανταλλάσσονται δεδοµένα.

∆ίαυλος ∆ιευθύνσεων Mεταφέρει τη χρήσιµη πληροφορία,

δηλαδή τα δεδοµένα.

∆ίαυλος Ελέγχου Eνεργοποιεί ή απενεργοποιεί τη µνήµη

και τις συσκευές Ι/Ο, επιλέγει εάν θα

γίνει ανάγνωση ή εγγραφή στη µνήµη.

ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘1.6

Page 24: Mικροεπεξεργαστές

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 ως αποτέλεσµα

Page 25: Mικροεπεξεργαστές

της εξέλιξης του 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

Page 26: Mικροεπεξεργαστές

2 6 K E º A § A I O 1 : E I ™ A ° ø ° H

(δηλαδή το πλήθος των γραµµών δεδοµένων), η χρονιά εµφάνισής του, η

συχνότητα λειτουργίας του και ο αριθµός των τρανσίστορς, που περιέχει.

∆ηµιουργήστε ένα συγκεντρωτικό πίνακα µε όλα αυτά τα χαρακτηριστικά

για κάθε επεξεργαστή της Intel, τον οποίο γνωρίζετε. Ο χρόνος απασχόλη-

σής σας για την ολοκλήρωση αυτής της δραστηριότητας εκτιµάµε πως δεν

θα ξεπεράσει τα 30 περίπου λεπτά.

Ετοιµάστε µε τα στοιχεία, τα οποία έχετε από την ενότητα 1.5 είτε από

τη δραστηριότητα 2 του κεφαλαίου 1, µία γραφική παράσταση µε τον

αριθµό των τρανσίστορς στα ολοκληρωµένα κυκλώµατα σε σχέση µε τις

χρονολογίες εµφάνισης τους. Παρατηρήστε τη γραφική παράσταση και

βρείτε τη σχέση που συνδέει τις δύο παραµέτρους (είναι γραµµική;

πολυωνυµική; εκθετική;).

ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘

1.8

™‡ÓÔ„Ë

Η επιθυµία των κατασκευαστών συστηµάτων να δηµιουργήσουν όλο και πιο

έξυπνα συστήµατα µε περισσότερες δυνατότητες και µε µικρότερο µέγεθος

οδήγησε στην ανάγκη για ενσωµάτωση όλων των λειτουργιών ενός ολόκλη-

ρου υπολογιστή σε ένα ή µερικά ολοκληρωµένα κυκλώµατα.

Η ανάπτυξη της τεχνολογίας κατασκευής των τελευταίων µε την συνεχή αύξη-

ση του αριθµού των τρανσίστορς, που θα µπορούσαν να αποθηκευτούν σε

αυτά, µε το µικρό κόστος, τη µικρή κατανάλωση ισχύος και την αξιόπιστη

λειτουργία τους παρείχε αυτή τη δυνατότητα. Έτσι σήµερα η χρήση µικροε-

πεξεργαστών σε συσκευές της καθηµερινής µας ζωής, σε βιοµηχανικά συστή-

µατα ελέγχου και σε πολλά άλλα συστήµατα είναι πλέον δεδοµένη.

Όλα τα συστήµατα, τα οποία περιέχουν κάποιο µικροεπεξεργαστή, ονοµάζο-

νται µικροϋπολογιστές ή µικροϋπολογιστικά συστήµατα. Τα συστήµατα αυτά

περιέχουν ακόµα µονάδες εισόδου/εξόδου για να επικοινωνούν µε το περι-

βάλλον και την κύρια µνήµη για να αποθηκεύουν τα δεδοµένα και τις εντο-

λές του προγράµµατος, το οποίο εκτελεί ο µικροεπεξεργαστής. Οι εντολές

είναι αποθηκευµένες στην κύρια µνήµη και αποτελούνται από τον κωδικό

λειτουργίας, που καθορίζει τι πρέπει να κάνει η κάθε εντολή, και τα έντελα

πηγής και προορισµού, που περιέχουν είτε τις διευθύνσεις, στις οποίες βρί-

σκονται τα δεδοµένα, είτε τα ίδια τα δεδοµένα.

Page 27: Mικροεπεξεργαστές

Η επικοινωνία µεταξύ των διαφόρων µονάδων ενός µικροϋπολογιστή γίνε-

ται µέσω τριών διαύλων, του διαύλου δεδοµένων για τη µεταφορά των δεδο-

µένων, του διαύλου διευθύνσεων για την επιλογή της θέσης µνήµης ή µονά-

δας εισόδου/εξόδου, από την οποία θα µεταφερθούν τα δεδοµένα, και του

διαύλου ελέγχου για τον έλεγχο των διαφόρων λειτουργιών του συστήµατος.

Οι γραµµές, που περιέχουν οι δίαυλοι αυτοί, ονοµάζονται αντίστοιχα γραµ-

µές δεδοµένων, γραµµές διευθύνσεων και γραµµές ελέγχου.

Η ανάπτυξη των µικροεπεξεργαστών ήταν ραγδαία. Από τον πρώτο µικροε-

πεξεργαστή (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 π µ § π √ ° ƒ∞ º π ∞

Page 28: Mικροεπεξεργαστές
Page 29: Mικροεπεξεργαστές

OÈ MÈÎÚÔÂÂÍÂÚÁ·ÛÙ¤˜

™ÎÔfi˜

Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε ένα γενικό µικροεπεξεργαστή,

τα βασικά τµήµατα, από τα οποία αυτός αποτελείται, καθώς επίσης και τις

βασικές αρχές και χαρακτηριστικά λειτουργίας του χωρίς να αναφερόµαστε

σε κάποιο συγκεκριµένο µικροεπεξεργαστή.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• εξηγήσετε σε µία παράγραφο τις βασικές λειτουργίες που επιτελούν τα τρία

τµήµατα, από τα οποία αποτελείται ένας µικροεπεξεργαστής.

• ορίσετε ποιες είναι οι αριθµητικές και ποιες οι λογικές πράξεις, που γίνο-

νται µέσα στην αριθµητική και λογική µονάδα.

• αναφέρετε τα πέντε βασικά κυκλώµατα, από τα οποία αποτελείται η αριθ-

µητική και λογική µονάδα.

• ορίσετε τι είναι ένας καταχωρητής και πού µας χρησιµεύει.

• αναφέρετε τους έξι βασικούς τύπους καταχωρητών και τη λειτουργία που

επιτελεί ο καθένας από αυτούς.

• καταγράψετε τον τρόπο, µε τον οποίο οι µικροεπεξεργαστές µας δείχνουν

την κατάσταση, στην οποία βρίσκονται µετά από την εκτέλεση µιας εντο-

λής ή λειτουργίας.

• διαχωρίσετε τους τρεις διαύλους επικοινωνίας µε βάση την πληροφορία,

την οποία µεταφέρουν.

• ορίσετε µε ποιόν τρόπο αρχικοποιούµε ένα µικροεπεξεργαστή.

• χωρίσετε το χρόνο, που απαιτείται για την εκτέλεση µιας εντολής, σε µικρό-

τερα τµήµατα.

• αναφέρετε τις έξι βασικές κατηγορίες, στις οποίες χωρίζεται το σύνολο

εντολών ενός µικροεπεξεργαστή.

• ορίσετε τους εφτά διαφορετικούς τρόπους, µε τους οποίους µια εντολή καθο-

ρίζει πού βρίσκονται τα δεδοµένα, τα οποία αυτή χρειάζεται για να εκτελεστεί.

2∫ ∂ º ∞ § ∞ π √

Page 30: Mικροεπεξεργαστές

3 0 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Το κεφάλαιο αυτό αποτελεί ίσως το σηµαντικότερο κεφάλαιο του βιβλίου και

γι’ αυτό θα πρέπει να το µελετήσετε µε ιδιαίτερη προσοχή. Αναπτύσσονται

πολλές νέες έννοιες, οι οποίες θα χρησιµεύσουν στα επόµενα κεφάλαια, και

γι’ αυτό χρειάζονται ίσως αρκετές αναγνώσεις του κειµένου από σας για να

τις καταλάβετε πλήρως. Μην προχωρήσετε στο κεφάλαιο 3 πριν κατανοήσε-

τε τα περιεχόµενα του κεφαλαίου αυτού.

• Αριθµητική και Λογική Μονάδα

• ∆είκτης Σωρού

• ∆ίαυλος ∆εδοµένων

• ∆ίαυλος ∆ιευθύνσεων

• ∆ίαυλος Ελέγχου

• Ενεργή ∆ιεύθυνση

• Καταχωρητής

• Καταχωρητής Γενικού Σκοπού

• Καταχωρητής Εντολών

• Kαταχωρητής Κατάστασης Επε-

ξεργαστή

• Κύκλος Εντολής

• Κύκλος Μηχανής

• Κύκλος Ρολογιού

• Κύκλωµα Χρονισµού

• Μετρητής Προγράµµατος

• Μικροεπεξεργαστής

• Μικροϋπολογιστής

• Μονάδα Ελέγχου

• Σύνολο Εντολών

• Συσσωρευτής

• Τρόποι ∆ιευθυνσιοδότησης

ŒÓÓÔȘ ÎÏÂȉȿ

Page 31: Mικροεπεξεργαστές

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).

Page 32: Mικροεπεξεργαστές

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

Η αριθµητική και

λογική µονάδα

Page 33: Mικροεπεξεργαστές

το οποίο ανταποκρίνεται στις γενικές εντολές του χρήστη και καθοδηγεί την

αριθµητική και λογική µονάδα ώστε να εκτελέσει τις απαιτούµενες λειτουργίες.

Τα δεδοµένα, πάνω στα οποία θα πρέπει να λειτουργήσει η αριθµητική και

λογική µονάδα, είναι αποθηκευµένα στη µνήµη σαν τµήµα της εντολής. Η

αποκωδικοποίηση της εντολής καταλήγει στην εκποµπή ενός σήµατος από

τη µονάδα ελέγχου προς την αριθµητική και λογική µονάδα, ενεργοποιώντας

τα κατάλληλα κυκλώµατα της µονάδας αυτής. Μετά την εκτέλεση της απαι-

τούµενης πράξης, η µονάδα ελέγχου προωθεί την επόµενη εντολή, που πρό-

κειται να εκτελεστεί, και έτσι επαναλαµβάνεται ο κύκλος αυτός, εφόσον

βέβαια απαιτείται ξανά η ενεργοποίηση της αριθµητικής µονάδας.

Τα κυκλώµατα, τα οποία περιέχονται σε µια αριθµητική και λογική µονάδα

(δείτε το σχήµα 2.2), διαφέρουν από µικροεπεξεργαστή σε µικροεπεξεργα-

στή, αλλά συνήθως υπάρχουν τα ακόλουθα κυκλώµατα:

1. Ένας αθροιστής (adder) για να εκτελεί τις βασικές αριθµητικές πράξεις.

2. Ένας συγκριτής (comparator), ο οποίος µπορεί να συγκρίνει τους αριθ-

µούς που τοποθετούνται στους καταχωρητές εντέλων.

3. Ένας ολισθητής (shifter), ο οποίος εκτελεί την ολίσθηση ή περιστροφή

ενός αριθµού.

4. Μία µονάδα λογικής επεξεργασίας, που εκτελεί λογικές πράξεις πάνω

στους αριθµούς, που τοποθετούνται στους καταχωρητές εντέλων.

5. Κάποιοι καταχωρητές για να αποθηκεύονται οι αριθµοί και τα αποτελέ-

σµατα των πράξεων (µην ανησυχείτε, για τους καταχωρητές θα µιλή-

σουµε στην υποενότητα 2.1.3).

Με βάση τα παραπάνω βασικά κυκλώµατα µπορούν να υλοποιηθούν και

όλες οι υπόλοιπες πράξεις, π.χ. η αφαίρεση δύο αριθµών µπορεί να υλοποι-

ηθεί ως πρόσθεση του πρώτου µε το συµπλήρωµα του δεύτερου (εποµένως

δεν απαιτείται η ύπαρξη ενός αφαιρέτη), ο πολλαπλασιασµός και η διαίρε-

ση απαιτούν διαδοχικές αυξήσεις και ολισθήσεις, ενώ η τετραγωνική ρίζα

µπορεί να υλοποιηθεί µε διαδοχικές αφαιρέσεις, κ.ο.κ.

2.1.2 MÔÓ¿‰· ÂϤÁ¯Ô˘

Όπως είναι ήδη γνωστό, ο µικροεπεξεργαστής λειτουργεί µε σειριακό τρόπο

ανάλογα µε τις υποδείξεις των εντολών του αποθηκευµένου προγράµµατος.

Αλλά βέβαια το πρόγραµµα από µόνο του δεν είναι αρκετό για να κατευθύ-

νει τη λειτουργία του. Για παράδειγµα ο µικροεπεξεργαστής θα πρέπει να

3 32 . 1 H A ƒ Ã π ∆ ∂ ∫ ∆ √ ¡ π ∫ ∏ ∆ ø ¡ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡

Page 34: Mικροεπεξεργαστές

3 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

γνωρίζει πού είναι αποθηκευµένη (σε ποια διεύθυνση) µέσα στη µνήµη η

πρώτη εκτελέσιµη εντολή του προγράµµατος. Θα πρέπει ακολούθως ν’ ανα-

πτύξει τα κατάλληλα σήµατα ελέγχου, που θα αποσπάσουν την εντολή από

τη µνήµη και έπειτα θα πρέπει να εξετάσει το περιεχόµενο της εντολής αυτής

για να αποφασίσει για τις ενέργειες, που αυτή απαιτεί.

Η µνήµη, οι µονάδες εισόδου/εξόδου, καθώς και η αριθµητική και λογική

µονάδα, θα πρέπει να ενεργοποιηθούν στα κατάλληλα χρονικά διαστήµατα

ώστε να εκτελέσουν την αποκωδικοποιηµένη εντολή µε τέτοιο τρόπο ώστε

οι λειτουργίες αυτές να µην παρεµβάλλονται µεταξύ τους και να µην δηµι-

ουργούν ανεπιθύµητα αποτελέσµατα.

Όλες αυτές οι απαιτήσεις οδηγούν στην ανάγκη της παρουσίας της µονάδας

ελέγχου (ΜΕ). Σε γενικές γραµµές, η µονάδα ελέγχου είναι το κατευθυντήριο

κέντρο του µικροεπεξεργαστή και παρέχει τις λειτουργίες χρονισµού, αποκω-

δικοποίησης και ενεργοποίησης για όλα τα τµήµατα του µικροϋπολογιστή. Στο

σχήµα 2.3 φαίνεται το λειτουργικό διάγραµµα µιας τυπικής µονάδας ελέγχου.

Η βασική πηγή για όλα τα σήµατα ελέγχου, που κατευθύνουν τις συσκευές

του συστήµατος, είναι το ρολόι. Οι απαιτήσεις για χρονισµό σ’ ένα µικροϋ-

πολογιστικό σύστηµα ποικίλλουν από σχετικά µεγάλης διάρκειας παλµούς

(secs ή msecs) µέχρι πολύ µικρής διάρκειας (nsecs). Η φύση των σηµάτων

χρονισµού είναι τέτοια ώστε οι παλµοί να εµφανίζονται και να διαρκούν µόνο

για ένα απαιτούµενο χρονικό διάστηµα, να επαναλαµβάνονται µε µια καθο-

ρισµένη ακολουθία ή να εµφανίζονται µετά από απαίτηση.

Είναι γνωστό ότι µια εντολή χωρίζεται σε δύο τµήµατα: στον κώδικα λει-

τουργίας (operation code) και στο έντελο (operand), δηλαδή τη διεύθυνση του

δεδοµένου, πάνω στο οποίο θα επενεργήσει ο κώδικας λειτουργίας. Ο κώδι-

κας λειτουργίας εξετάζεται από τον αποκωδικοποιητή εντολών για να αποφα-

σίσει ποιες λειτουργίες θα πρέπει να ακολουθήσουν. Για να µπορέσει να εκτε-

λεστεί αυτή η διαδικασία θα πρέπει πρώτα ο κώδικας λειτουργίας της εντολής

να µεταφερθεί στον καταχωρητή εντολής της µονάδας ελέγχου. Ο καταχωρη-

τής εντολής χρησιµοποιείται για να διαφυλάσσει τον κώδικα λειτουργίας, ενώ

αυτή αποκωδικοποιείται. Ο αποκωδικοποιητής εντολών είναι κατασκευασµέ-

νος από πύλες, έτσι ώστε να αναγνωρίζει µόνο συγκεκριµένους συνδυασµούς

δυαδικών συµβόλων, αυτούς που αντιστοιχούν σε πραγµατικές εντολές. Ένας

ξεχωριστός συνδυασµός πυλών χρησιµοποιείται συνήθως για την αναγνώρι-

ση κάθε κώδικα λειτουργίας και η έξοδος του αποκωδικοποιητή εντολών είναι

Page 35: Mικροεπεξεργαστές

ένα ξεχωριστό σήµα, που ενεργοποιεί το κατάλληλο κύκλωµα της γεννήτριας

ελέγχου, που αντιστοιχεί στο συγκεκριµένο κώδικα λειτουργίας.

Η γεννήτρια ελέγχου (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

Η µονάδα ελέγχου

Page 36: Mικροεπεξεργαστές

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

Ο καταχωρητής κατάστα-

σης επεξεργαστή

Page 37: Mικροεπεξεργαστές

Μετρητής προγράµµατος (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). Ο δίαυλος αυτός είναι ένα σύνολο από γραµµές (καλώδια), που συν-

δέουν τα διάφορα τµήµατα του µικροϋπολογιστή. Για παράδειγµα συνδέουν

όλα τα σήµατα ελέγχου, δεδοµένων και διευθύνσεων από το ένα τµήµα του

Page 38: Mικροεπεξεργαστές

3 8 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

στο άλλο. Η λειτουργία του διαύλου είναι να παρέχει ένα µονοπάτι επικοι-

νωνίας µεταξύ δύο ή περισσότερων τµηµάτων του µικροϋπολογιστή.

KME Σύστηµα µνήµηςΣύστηµαv

εισόδου–εξόδου

∆ίαυλος ελέγχου

∆ίαυλος διευθύνσεων

∆ίαυλος δεδοµένων

™¯‹Ì· 2.5

Οι δίαυλοι διευθύνσεων

δεδοµένων ελέγχουΤο τµήµα του µικροεπεξεργαστή, που αποτελεί τη µονάδα ελέγχου, αποφα-

σίζει για το ποιο από τα τµήµατα του µικροϋπολογιστή πρόκειται να προω-

θήσει µια πληροφορία και ποια άλλα τµήµατα πρόκειται να χρησιµοποιή-

σουν την πληροφορία αυτή. Στο σχήµα 1.5 του προηγούµενου κεφαλαίου

είδαµε την οργάνωση ενός µικροϋπολογιστικού συστήµατος, που αναπτύσ-

σεται γύρω από ένα δίαυλο. Μερικές από τις γραµµές του διαύλου είναι αφιε-

ρωµένες µόνο στη µεταφορά διευθύνσεων µνήµης, άλλες στη µεταφορά

δεδοµένων, ενώ άλλες µεταφέρουν µόνο σήµατα ελέγχου. Όλα συνεπώς τα

τµήµατα του µικροϋπολογιστή, όπως άλλωστε φαίνεται και στο σχήµα 2.5,

χρησιµοποιούν αυτές τις γραµµές διευθύνσεων, δεδοµένων και ελέγχου, που

σχετίζονται άµεσα µε τη λειτουργία που εκτελούν.

Ο δίαυλος δεδοµένων µεταφέρει είτε εντολές, που πρόκειται να αποκωδικο-

ποιηθούν, είτε πληροφορίες, που πρόκειται να επεξεργαστούν. Είναι ένας

δίαυλος διπλής κατεύθυνσης (bidirectional), πράγµα το οποίο σηµαίνει ότι

µπορεί να µεταφέρει πληροφορίες από το µικροεπεξεργαστή στα άλλα τµή-

µατα του µικροϋπολογιστή σε µία χρονική περίοδο (π.χ. όταν αποθηκεύο-

νται τα αποτελέσµατα µιας αριθµητικής πράξης στην κύρια µνήµη), ενώ σε

άλλες περιόδους οι πληροφορίες µπορεί να µεταφέρονται από διάφορα τµή-

µατα του µικροϋπολογιστή προς το µικροεπεξεργαστή (π.χ. όταν µεταφέρο-

Page 39: Mικροεπεξεργαστές

νται δύο αριθµοί στην αριθµητική και λογική µονάδα για να γίνει µια αριθ-

µητική πράξη). Η κατεύθυνση που θα ακολουθήσουν τα δεδοµένα πάνω στο

δίαυλο δεδοµένων εξαρτάται από τη µονάδα ελέγχου.

Το µήκος της λέξης, την οποία διαχειρίζεται ο µικροεπεξεργαστής, ορίζει και

τον αριθµό των γραµµών του διαύλου (ένας µικροεπεξεργαστής µε µήκος

λέξης 8 bits θα έχει 8 γραµµές διασύνδεσης στο δίαυλο δεδοµένων, ενώ ένας

µικροεπεξεργαστής µε µήκος λέξης 16 bits θα έχει 16 γραµµές δεδοµένων).

Ο δίαυλος διευθύνσεων είναι µοναδικής κατεύθυνσης (unidirectional) και

µεταφέρει το δυαδικό κώδικα, που αναπαριστά τη διεύθυνση µνήµης, από

την οποία θα αποσπασθούν ή στην οποία θα τοποθετηθούν τα δεδοµένα. Σε

πολλούς µικροεπεξεργαστές ο δίαυλος διευθύνσεων χρησιµοποιείται για να

ορίσει, εκτός από την κύρια µνήµη, και ποιες συσκευές εισόδου/εξόδου πρό-

κειται να χρησιµοποιηθούν. Η µονάδα ελέγχου του µικροεπεξεργαστή υπο-

δεικνύει κάθε φορά αν θα πρέπει ο δυαδικός κώδικας, που µεταφέρει ο δίαυ-

λος διευθύνσεων, να επενεργήσει πάνω σε µία συσκευή εισόδου/εξόδου ή

πάνω στη µνήµη. Η µέγιστη ποσότητα µνήµης, που µπορεί να διαχειριστεί

ένας µικροεπεξεργαστής, καθορίζει και τον αριθµό των γραµµών διασύνδε-

σης του διαύλου διευθύνσεων. Μία µνήµη µε 65536 (64 Κ) µονάδες αποθή-

κευσης χρειάζεται 16 γραµµές (216= 65536) στο δίαυλο δεδοµένων.

Ο δίαυλος ελέγχου είναι ένας δίαυλος µοναδικής κατεύθυνσης και µεταφέρει

πληροφορίες, που περιγράφουν το είδος της λειτουργίας, που πρόκειται να

εκτελεστεί (π.χ. εάν θα γίνει ανάγνωση ή εγγραφή στη µνήµη), ποιες συσκευ-

ές θα πρέπει να ανταποκριθούν (π.χ. ανάγνωση από θέση µνήµης ή από

µονάδα εισόδου/εξόδου) κ.λπ. Το πλήθος των γραµµών του διαύλου ελέγχου

εξαρτάται από τον αριθµό των σηµάτων ελέγχου που χρειάζεται ο µικροε-

πεξεργαστής για τις λειτουργίες του και έχει άµεση σχέση µε το σχεδιασµό

και τον τρόπο κατασκευής του.

Σε γενικές γραµµές ένα πλήθος πληροφοριών θα πρέπει να ανταλλαγεί µετα-

ξύ του µικροεπεξεργαστή και της µνήµης ή των περιφερειακών συσκευών,

έτσι ώστε να αποκατασταθεί µία πλήρης επικοινωνία µεταξύ τους. Οι πλη-

ροφορίες, που ανταλλάσσονται µεταξύ των µικροεπεξεργαστών και των

άλλων συσκευών, προέρχονται από τη µονάδα ελέγχου και κατευθύνονται

προς αυτήν και περιλαµβάνουν ένα συνδυασµό των ακόλουθων:

1. Απαιτήσεις για χρήση του διαύλου δεδοµένων, που προέρχονται από τις

διάφορες συσκευές συνδεµένες στο δίαυλο.

3 92 . 2 O π ¢ π ∞ À § √ π ¢ π ∂ À £ À ¡ ™ ∂ ø ¡ / ¢ ∂ ¢ √ ª ∂ ¡ ø ¡ / ∂ § ∂ ° Ã √ À

Page 40: Mικροεπεξεργαστές

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

Page 41: Mικροεπεξεργαστές

2.3 O ¯ÚÔÓÈÛÌfi˜ ÙˆÓ ÂÓÙÔÏÒÓ (K‡ÎÏÔ˜ ÂÓÙÔÏ‹˜–Ì˯·Ó‹˜–ÚÔÏÔÁÈÔ‡)

Οι απαιτήσεις για χρονισµό σε ένα µικροϋπολογιστικό σύστηµα ποικίλλουν

από σχετικά µεγάλης διάρκειας παλµούς µέχρι πολύ µικρής διάρκειας. Η

βασική πηγή για όλες τις λειτουργίες του µικροεπεξεργαστή είναι το ρολόι

(ή αλλιώς κύκλωµα χρονισµού). Πολλές φορές σε διάφορες διατάξεις µικρο-

επεξεργαστών το ρολόι είναι ανεξάρτητο του µικροεπεξεργαστή και αυτό

γίνεται για να µπορέσει ο κατασκευαστής ή σχεδιαστής να διαλέξει ένα ρολόι

µε την ακολουθία παλµών που τον ενδιαφέρει παρ’ όλα αυτά, ακόµα και όταν

το ρολόι είναι ενσωµατωµένο στο µικροεπεξεργαστή, δεν σηµαίνει ότι ο σχε-

διαστής δεν µπορεί να αποφασίζει για την ακολουθία παλµών.

Συνήθως, ο κατασκευαστής δίνει τη δυνατότητα να συνδεθεί ο µικροεπε-

ξεργαστής µε ένα κατάλληλο κρύσταλλο (ή κρυσταλλικό ταλαντωτή), RC ή

LC κύκλωµα, το οποίο θα του αποδώσει τους απαραίτητους παλµούς. Η

ταχύτητα, µε την οποία λειτουργεί ο µικροεπεξεργαστής, εξαρτάται βέβαια

από τους παλµούς του ρολογιού. Όλοι οι µικροεπεξεργαστές έχουν µια ανώ-

τατη και µια κατώτατη τιµή για την ακολουθία παλµών, η οποία επιφέρει και

ένα όριο για την ανώτατη και κατώτατη ταχύτητά του.

Εκτός από το σήµα ρολογιού, το οποίο συναντάµε σε κάθε µικροεπεξεργα-

στή, απαιτείται και η ύπαρξη ενός σήµατος αρχικοποίησής του. Φανταστεί-

τε τι γίνεται κάθε φορά που δίνουµε τροφοδοσία σε ένα µικροεπεξεργαστή.

Οι εσωτερικοί καταχωρητές του περιέχουν απροσδιόριστες τιµές. Ο µετρη-

τής προγράµµατος εποµένως θα περιέχει µια τυχαία τιµή, η οποία θα ανα-

γκάζει το σύστηµα να ξεκινάει την εκτέλεση του προγράµµατος από διαφο-

ρετική εντολή κάθε φορά. Το πρόβληµα αυτό έρχεται να λύσει το σήµα αρχι-

κοποίησης, το οποίο κάθε φορά που ενεργοποιείται επαναφέρει το µικροε-

πεξεργαστή σε µία γνωστή αρχική κατάσταση. Στο παράδειγµα 1 µπορείτε

να βρείτε πληροφορίες για το χρονισµό του επεξεργαστή Intel 8088.

Ο µικροεπεξεργαστής λειτουργεί εκτελώντας µία σειρά από εντολές του

τύπου ανάγνωσης ή εγγραφής, καθεµία από τις οποίες µεταφέρει µια λέξη

(η οποία µπορεί να είναι ένα ή δύο bytes) πληροφοριών µεταξύ του µικροε-

πεξεργαστή και µιας συγκεκριµένης θέσης µνήµης ή µονάδας εισόδου/εξό-

δου. Αυτές οι εντολές του τύπου ανάγνωσης (read)/εγγραφής (write) είναι

το µόνο µέσο επικοινωνίας µεταξύ του µικροεπεξεργαστή και των άλλων

συσκευών του µικροϋπολογιστή και είναι αναγκαίες για την εκτέλεση µιας

οποιασδήποτε εντολής ή προγράµµατος.

4 12 . 3 O Ã ƒ √ ¡ π ™ ª √ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡ ( K À ∫ § √ ™ ∂ ¡ ∆ √ § ∏ ™ – ª ∏ Ã ∞ ¡ ∏ ™ – ƒ √ § √ ° π √ À )

Page 42: Mικροεπεξεργαστές

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

Κύκλοι εντολής, µηχανής

και ρολογιού

Page 43: Mικροεπεξεργαστές

Κατά τη διάρκεια του πρώτου κύκλου ρολογιού του κύκλου προσκόµισης

µετακινούνται τα περιεχόµενα του µετρητή προγράµµατος στο δίαυλο διευ-

θύνσεων ώστε να µεταφερθεί η εντολή από τη µνήµη. Κατά τη διάρκεια του

δεύτερου κύκλου ρολογιού του κύκλου προσκόµισης ο µετρητής προγράµ-

µατος αυξάνεται κατάλληλα, ώστε να δείχνει την επόµενη θέση µνήµης που

πρόκειται να προσπελαστεί. Ο τρίτος κύκλος ρολογιού του κύκλου προσκό-

µισης αντιστοιχεί στη µετακίνηση του κώδικα λειτουργίας της εντολής από

τη συγκεκριµένη θέση µνήµης στον καταχωρητή εντολής του µικροεπεξερ-

γαστή. Ο τελευταίος κύκλος ρολογιού του κύκλου προσκόµισης αντιστοιχεί

σε εσωτερικές λειτουργίες του µικροεπεξεργαστή, όπως µεταφορά πληρο-

φοριών µεταξύ των καταχωρητών του και άλλες. Στο σχήµα 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 À ∫ § √ ™ ∂ ¡ ∆ √ § ∏ ™ – ª ∏ Ã ∞ ¡ ∏ ™ – ƒ √ § √ ° π √ À )

Page 44: Mικροεπεξεργαστές

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

Page 45: Mικροεπεξεργαστές

Ελέγχοντας τα βιβλία του κατασκευαστή, διαβάζουµε ότι για τη σωστή λει-

τουργία του επεξεργαστή απαιτείται η περίοδος ρολογιού να είναι µεταξύ 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) µετα-

Page 46: Mικροεπεξεργαστές

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 περιέ-

Page 47: Mικροεπεξεργαστές

χουν είτε δεδοµένα είτε διευθύνσεις καταχωρητών είτε διευθύνσεις µνήµης.

Μπορούµε µε διάφορους τρόπους να χωρίσουµε το σύνολο εντολών ενός

µικροεπεξεργαστή σε κατηγορίες. Στη γενική περίπτωση µπορούµε να δια-

κρίνουµε τις παρακάτω κατηγορίες:

• Aριθµητικές εντολές: Στην κατηγορία αυτή ανήκουν όλες οι εντολές, οι

οποίες έχουν σχέση µε αριθµητικές πράξεις, όπως για παράδειγµα εντο-

λές πρόσθεσης ή αφαίρεσης δύο αριθµών, εντολές αύξησης ή ελάττωσης

ενός αριθµού κατά ένα, εντολές µετατροπής αριθµού σε µορφή συµπλη-

ρώµατος ως προς 1 ή ως προς 2. Σε πιο πρόσφατους µικροεπεξεργαστές

συναντάµε επίσης πιο πολύπλοκες εντολές, όπως εντολές πολλαπλασια-

σµού ή διαίρεσης.

• Λογικές εντολές: Στην κατηγορία αυτή βρίσκουµε εντολές που έχουν σχέση

µε λογικές πράξεις, όπως εντολές λογικού KAI (AND), OXI (NOT), Ή

(OR), ΑΠΟΚΛΕΙΣΤΙΚΟΥ Ή (XOR), εντολές ολίσθησης ενός αριθµού

προς τα αριστερά ή προς τα δεξιά, εντολές περιστροφής ενός αριθµού,

εντολές σύγκρισης δύο αριθµών.

• Eντολές µετακίνησης δεδοµένων: H κατηγορία αυτή περιέχει τις εντολές,

οι οποίες µετακινούν δεδοµένα. Πριν εκτελέσουµε µια αριθµητική ή λογι-

κή πράξη θα πρέπει να έχουµε µεταφέρει τα δεδοµένα, που θα πάρουν

µέρος στην πράξη είτε στο συσσωρευτή είτε στους καταχωρητές γενικού

σκοπού. Επίσης µετά από µια τέτοια ενέργεια θα πρέπει να µπορούµε να

µεταφέρουµε τα αποτελέσµατα της πράξης είτε στην κύρια µνήµη είτε σε

άλλους καταχωρητές. Εντολές που µας δίνουν αυτή τη δυνατότητα είναι,

π.χ., οι εντολές φόρτωσης αριθµού στο συσσωρευτή ή στους καταχωρητές

γενικού σκοπού, εντολές αποθήκευσης αριθµού στην κύρια µνήµη ή στους

καταχωρητές, εντολές µετακίνησης δεδοµένων µεταξύ της µνήµης, εντο-

λές ανάγνωσης ή εγγραφής δεδοµένων στις συσκευές εισόδου/εξόδου.

• Eντολές διακλάδωσης: Όπως γνωρίζετε, ένα πρόγραµµα αποτελείται από

εντολές που βρίσκονται αποθηκευµένες σειριακά στη µνήµη και εκτε-

λούνται η µία µετά την άλλη. Ο µετρητής προγράµµατος είναι αυτός που

καθορίζει ποια θα είναι η επόµενη εντολή που θα εκτελεστεί. Υπάρχουν

περιπτώσεις, όµως, (π.χ. όταν θέλουµε να εκτελέσουµε διαφορετικές εντο-

λές ανάλογα µε το αποτέλεσµα µιας πράξης), όπου θα πρέπει να µπορού-

µε να αλλάξουµε τη σειρά εκτέλεσης των εντολών και να µεταβάλλουµε

τα περιεχόµενα του µετρητή προγράµµατος. Οι εντολές που µας δίνουν

4 72 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∆ √ À ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏

Page 48: Mικροεπεξεργαστές

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.

Page 49: Mικροεπεξεργαστές

∞¿ÓÙËÛË ¶·Ú·‰Â›ÁÌ·ÙÔ˜ 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 √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∆ √ À ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏

Page 50: Mικροεπεξεργαστές

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. Για το

Page 51: Mικροεπεξεργαστές

σκοπό αυτό προσθέτουµε την τιµή 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

Page 52: Mικροεπεξεργαστές

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

Page 53: Mικροεπεξεργαστές

2.5 OÈ TÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘ ÙˆÓ ÂÓÙÔÏÒÓ

™ÎÔfi˜

Στην προηγούµενη ενότητα είδαµε τις διάφορες κατηγορίες εντολών, που συν-

θέτουν το σύνολο εντολών ενός µικροεπεξεργαστή. Τα δεδοµένα, που χρειά-

ζεται η κάθε εντολή για να εκτελεστεί η λειτουργία της, µπορεί να βρίσκονται

είτε µετά από τον κωδικό λειτουργίας της εντολής είτε σε κάποια θέση µνή-

µης είτε σε κάποιον καταχωρητή. Στην ενότητα αυτή θα µάθετε τους διαφο-

ρετικούς τρόπους, µε τους οποίους ένας µικροεπεξεργαστής σηµατοδοτεί τη

θέση, στην οποία βρίσκονται τα δεδοµένα αυτά (οι τρόποι αυτοί ονοµάζονται

τρόποι διευθυνσιοδότησης ή αλλιώς τρόποι προσπέλασης).

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν ολοκληρώσετε τη µελέτη της ενότητας αυτής, θα είστε σε θέση να ορί-

σετε επτά διαφορετικούς τρόπους διευθυνσιοδότησης, που χρησιµοποιούν οι

εντολές για να προσδιορίσουν το σηµείο, στο οποίο βρίσκονται τα δεδοµένα

που χρειάζονται.

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Η ενότητα αυτή είναι σχετικά µεγάλη σε µέγεθος. Μελετήστε, µε τη σειρά,

έναν–έναν τους διαφορετικούς τρόπους διευθυνσιοδότησης και προσπαθήστε

5 32 . 5 O π T ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™ ∆ ø ¡ ∂ ¡ ∆ √ § ø ¡

Έστω ότι δεν γνωρίζουµε την ύπαρξη της εντολής ADDB στο µικροεπε-

ξεργαστή 80196. Γνωρίζουµε όµως ότι αυτός διαθέτει µία εντολή µε όνοµα

INCB, η οποία αυξάνει τα περιεχόµενα ενός καταχωρητή κατά ένα. Η εντο-

λή αυτή συντάσσεται ως εξής:

INCB <ηٷ¯ˆÚËÙ‹˜>

και αποθηκεύεται στην κύρια µνήµη σε δύο bytes (το πρώτο περιέχει τον

κωδικό λειτουργίας µε τιµή 1716, ενώ το δεύτερο περιέχει τον καταχωρητή).

(α)Ποιες αλλαγές πρέπει να κάνουµε στο πρόγραµµα του παραδείγµατος

3 ώστε να µην χρησιµοποιεί την εντολή ADDB;

(β)Πώς αποθηκεύεται το νέο πρόγραµµα στη µνήµη;

Ποιο είναι το µέγεθός του;

ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘2.10

Page 54: Mικροεπεξεργαστές

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)

Page 55: Mικροεπεξεργαστές

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)

Page 56: Mικροεπεξεργαστές

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)

Page 57: Mικροεπεξεργαστές

• ∆εικτοδοτηµένη διευθυνσιοδότηση (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)

Page 58: Mικροεπεξεργαστές

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.

Page 59: Mικροεπεξεργαστές

Βρείτε ποιό θα είναι το περιεχόµενο του καταχωρητή Α µετά την εκτέλεση

των παρακάτω εντολών.:

(α) 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 Απόλυτη

διευθυνσιοδότηση

Page 60: Mικροεπεξεργαστές

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

Παράδειγµα

διευθυνσιοδότησης

µηδενικής σελίδας

Page 61: Mικροεπεξεργαστές

στον καταχωρητή Α (αφού 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 κατα-

Page 62: Mικροεπεξεργαστές

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 Έµµεση

διευθυνσιοδότηση

Page 63: Mικροεπεξεργαστές

2.6 TÈ Ú¤ÂÈ Ó· ÁÓˆÚ›˙Ô˘Ì ÁÈ· ¤Ó· ÌÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹

Τελειώνοντας το κεφάλαιο αυτό θα πρέπει να συνοψίσουµε τα πράγµατα, τα

οποία θα πρέπει να προσέχουµε, καθώς µελετάµε κάποιον µικροεπεξεργαστή.

Ένα από τα πρώτα σηµεία στα οποία θα πρέπει να σταθεί η προσοχή µας

είναι στην αρχιτεκτονική του µικροεπεξεργαστή. Η οργάνωση της µονάδας

ελέγχου και της αριθµητικής και λογικής µονάδας µας δείχνει την φιλοσο-

φία σχεδιασµού του. Το σύνολο των ακροδεκτών του µας προδίδει τις γραµ-

µές διευθύνσεων/δεδοµένων/ελέγχου, ενώ το σύνολο και η µορφή των κατα-

χωρητών µας προϊδεάζει για το είδος και τη µορφή των εντολών του.

Η κατανόηση των γραµµών δεδοµένων/διευθύνσεων/ελέγχου είναι απαραί-

τητη για να µπορέσουµε να καταλάβουµε µε ποιο τρόπο µπορεί να συνδεθεί

ο µικροεπεξεργαστής µε τη µνήµη ή διάφορες µονάδες εισόδου/εξόδου.

Το επόµενο σηµείο είναι ο χρονισµός του µικροεπεξεργαστή, δηλαδή τα εξω-

τερικά εκείνα κυκλώµατα που απαιτεί για τη γεννήτρια χρονισµού του. Επί-

σης, απαιτείται η γνώση του χρονισµού των διαφόρων εντολών και του τρό-

που µε τον οποίο αυτές χωρίζονται σε κύκλους µηχανής και ρολογιού. Τα

διαγράµµατα χρονισµού των διαφόρων εντολών είναι απαραίτητα ώστε να

µπορέσουµε να διασυνδέσουµε το µικροεπεξεργαστή µε περιφερειακές

συσκευές ή µνήµες. Ενδιαφέρον παρουσιάζει επίσης ο τρόπος µε τον οποίο

ο µικροεπεξεργαστής µπορεί να διασυνδεθεί µε αργές µνήµες (δηλαδή µνή-

µες που απαιτούν µεγαλύτερο χρόνο για να ανταποκριθούν σε αυτό που ζητά-

ει ο µικροεπεξεργαστής – εγγραφή ή ανάγνωση – από το χρόνο που καθορί-

ζει η περίοδος χρονισµού του µικροεπεξεργαστή).

Σε ένα µικροϋπολογιστικό σύστηµα, θα πρέπει οι εξωτερικές συσκευές να

έχουν κάποιο τρόπο να ζητήσουν την «προσοχή» του µικροεπεξεργαστή. Ο

τρόπος αυτός είναι τα σήµατα διακοπής που διαθέτουν οι µικροεπεξεργαστές.

Οι εξωτερικές συσκευές, χρησιµοποιώντας τα σήµατα αυτά, διακόπτουν το

πρόγραµµα που εκτελείται εκείνη την στιγµή. Ο µικροεπεξεργαστής τότε

εκτελεί τη ρουτίνα εξυπηρέτησης της διακοπής (ένα µικρό πρόγραµµα που

βρίσκεται αποθηκευµένο σε κάποιες θέσεις στη µνήµη) µε την οποία εξυ-

6 32 . 6 T π ¶ ƒ ∂ ¶ ∂ π ¡ ∞ ° ¡ ø ƒ π ∑ √ À ª ∂ ° π ∞ ∂ ¡ ∞ ª π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∏

(β) STA $34 (κωδικός λειτουργίας 8516)

(γ) STA $3232 (κωδικός λειτουργίας 9216)

Page 64: Mικροεπεξεργαστές

6 4 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

πηρετεί την εξωτερική συσκευή και στη συνέχεια συνεχίζει µε την εκτέλε-

ση του προγράµµατος. Η γνώση των σηµάτων διακοπής ενός µικροεπεξερ-

γαστή και του τρόπου µε τον οποίο αυτός εξυπηρετεί τις διακοπές είναι απα-

ραίτητα στο σχεδιασµό ενός µικροϋπολογιστικού συστήµατος.

Επίσης, σε πολλά συστήµατα θα βρείτε λειτουργίες απευθείας προσπέλασης

της µνήµης (Direct Memory Access – DMA). Ο κάθε µικροεπεξεργαστής

παρέχει τρόπους (µε κάποιους ακροδέκτες ή κάποιες εντολές) µε τους οποί-

ους απελευθερώνει τους διαύλους του συστήµατος ώστε να µπορεί να τους

χρησιµοποιήσει µία εξωτερική συσκευή για να µεταφέρει δεδοµένα µεταξύ

αυτής και της µνήµης. Οι µεταφορές αυτές γίνονται χωρίς τη βοήθεια του

µικροεπεξεργαστή και γι’ αυτό η λειτουργία αυτή ονοµάζεται λειτουργία

απευθείας προσπέλασης της µνήµης. Μελετώντας διάφορους µικροεπεξερ-

γαστές, θα βρείτε πολλούς και διαφορετικούς τρόπους µε τους οποίους µπο-

ρείτε να σχεδιάσετε µία τέτοια λειτουργία.

Απαραίτητη για τη συγγραφή προγραµµάτων για ένα συγκεκριµένο επεξερ-

γαστή είναι επίσης η γνώση και η κατανόηση του συνόλου εντολών που αυτός

διαθέτει, καθώς και των διαφόρων τρόπων διευθυνσιοδότησης που διαθέτει

η κάθε εντολή. Η γνώση των παραπάνω βοηθάει τον προγραµµατιστή ώστε

να παράγει προγράµµατα µικρά σε µέγεθος και µε µεγάλη ταχύτητα εκτέλε-

σης, καθώς εκµεταλλεύεται τα ιδιαίτερα χαρακτηριστικά της κάθε εντολής.

Τέλος απαιτείται η γνώση του ελάχιστου αριθµού των κυκλωµάτων που απαι-

τούνται ώστε ένας µικροεπεξεργαστής να αποτελέσει ένα µικροϋπολογιστι-

κό σύστηµα, καθώς και γνώση των διαφόρων συσκευών υποστήριξης, οι

οποίες τον συνοδεύουν. Οι συσκευές υποστήριξης είναι όλα εκείνα τα ολο-

κληρωµένα κυκλώµατα, τα οποία µπορούν να διασυνδεθούν χωρίς ιδιαίτε-

ρη δυσκολία σε κάποιο επεξεργαστή και καλύπτουν πολλές περιπτώσεις

εφαρµογών, όπως κυκλώµατα µνήµης RAM, ROM, PROM, κυκλώµατα δια-

χείρισης διακοπών, κυκλώµατα απεικόνισης δεδοµένων σε κάποιο display

κ.ο.κ. Προφανώς, ο κάθε µικροεπεξεργαστής διαθέτει και τη δική του οικο-

γένεια συσκευών υποστήριξης και σπανίως ολοκληρωµένα κυκλώµατα µιας

οικογένειας µπορούν να χρησιµοποιηθούν µε άλλο µικροεπεξεργαστή. Το

πλήθος των ολοκληρωµένων κυκλωµάτων σε µία οικογένεια έχει αποδειχτεί

πολλές φορές στο παρελθόν καθοριστικός παράγοντας για την εµπορική ή

όχι επιτυχία του µικροεπεξεργαστή, καθώς η ύπαρξη λίγων συσκευών υπο-

στήριξης για έναν πολύ καλό µικροεπεξεργαστή µετριάζει τη χρήση του, ενώ

ανάποδα η ύπαρξη πολλών συσκευών υποστήριξης µπορεί να δώσει µεγάλη

Page 65: Mικροεπεξεργαστές

ώθηση σε ένα µέτριο µικροεπεξεργαστή, καθώς αυτός µπορεί να χρησιµο-

ποιηθεί σε πολλές εφαρµογές.

™‡ÓÔ„Ë

Ο µικροεπεξεργαστής αποτελεί την καρδιά ενός µικροϋπολογιστικού συστή-

µατος. Με τη βοήθεια του προγράµµατος, που βρίσκεται στην κύρια µνήµη,

ελέγχει τα διάφορα τµήµατα του συστήµατος και συντονίζει τις λειτουργίες

τους.

Ο µικροεπεξεργαστής αποτελείται από τρία τµήµατα:

(α) Tην αριθµητική και λογική µονάδα, που είναι υπεύθυνη για τις αριθµητι-

κές και λογικές πράξεις. Τα κυκλώµατα, που συναντάµε στη µονάδα αυτή,

είναι αθροιστές, συγκριτές, ολισθητές, µονάδες και µονάδες λογικής επε-

ξεργασίας, µε βάση τα οποία µπορεί να γίνει οποιαδήποτε πράξη, καθώς

ακόµα και οι πιο σύνθετες πράξεις (πολ/σµοί, διαιρέσεις, κ.ά.) αναλύο-

νται σε συνδυασµό των βασικών πράξεων.

(β) Tη µονάδα ελέγχου, η οποία είναι υπεύθυνη για τη σωστή λειτουργία του

µικροεπεξεργαστή και παρέχει λειτουργίες χρονισµού, αποκωδικοποίη-

σης των εντολών, καθώς αυτές µεταφέρονται σε αυτόν από τη µνήµη, και

ενεργοποίησης των κατάλληλων τµηµάτων του µικροεπεξεργαστή σε κάθε

χρονική στιγµή.

(γ) Tους διάφορους καταχωρητές, οι οποίοι χρησιµοποιούνται είτε για τις λει-

τουργίες της αριθµητικής και λογικής µονάδας (συσσωρευτής, καταχω-

ρητές γενικού σκοπού, καταχωρητής κατάστασης επεξεργαστή) είτε χρη-

σιµοποιούνται ως ειδικοί καταχωρητές και επιτελούν συγκεκριµένη λει-

τουργία, π.χ. ο καταχωρητής εντολών περιέχει τον κώδικα λειτουργίας της

εντολής καθώς αυτή αποκωδικοποιείται, ο µετρητής προγράµµατος περιέ-

χει τη διεύθυνση της κύριας µνήµης, όπου υπάρχει η επόµενη προς εκτέ-

λεση εντολή κ.ο.κ.

Κατά την εκτέλεση µίας εντολής, ο µετρητής προγράµµατος µεταφέρει τη διεύ-

θυνση της κύριας µνήµης, στην οποία είναι αποθηκευµένη η εντολή στις γραµ-

µές διευθύνσεων. Με τη βοήθεια των σηµάτων ελέγχου, η εντολή µεταφέρε-

ται στο µικροεπεξεργαστή µέσω των γραµµών δεδοµένων και αποθηκεύεται

στον καταχωρητή εντολής, όπου και αποκωδικοποιείται. Με την αποκωδι-

κοποίηση η µονάδα ελέγχου ενεργοποιεί τα κατάλληλα κυκλώµατα για την

εκτέλεση της εντολής. Εάν η εντολή απαιτεί την ανάγνωση ή εγγραφή δεδο-

6 5™ Y N O æ H

Page 66: Mικροεπεξεργαστές

6 6 K E º A § A I O 2 : O π M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

µένων στη µνήµη, τότε αυτό γίνεται µε τη βοήθεια των τριών διαύλων (διευ-

θύνσεων, δεδοµένων και ελέγχου).

Όλοι οι µικροεπεξεργαστές λειτουργούν µε βάση κάποιους παλµούς, οι οποίοι

προκύπτουν από το ρολόι του συστήµατος. H χρονική διάρκεια ενός παλµού

αποτελεί τον κύκλο ρολογιού. Ο χρόνος εκτέλεσης µιας εντολής ονοµάζεται

κύκλος εντολής, ενώ ο χρόνος εκτέλεσης µιας βασικής λειτουργίας (ανάγνωση

ή εγγραφή στην µνήµη, προσκόµιση εντολής) ονοµάζεται κύκλος µηχανής.

Οι διάφορες εντολές, τις οποίες µπορεί να εκτελέσει ένας µικροεπεξεργαστής,

αποτελούν το σύνολο εντολών του. Οι εντολές χωρίζονται σε οµάδες ανάλο-

γα µε τη λειτουργία που επιτελούν. Έτσι µπορούµε να διακρίνουµε:

(α) αριθµητικές εντολές, όπως εντολές πρόσθεσης ή αύξησης,

(β)λογικές εντολές, όπως εντολές λογικού ΚΑΙ/Ή/ΟΧΙ ή εντολές ολίσθησης,

(γ) εντολές µετακίνησης δεδοµένων, όπως εντολές µεταφοράς δεδοµένων από

τη µνήµη σε καταχωρητές ή και το ανάποδο,

(δ) εντολές διακλάδωσης, οι οποίες µπορούν να αλλάξουν τη σειριακή εκτέλε-

ση των εντολών είτε πάντα (εντολές διακλάδωσης χωρίς συνθήκη) είτε µε

βάση το αποτέλεσµα µιας συνθήκης (εντολές διακλάδωσης υπό συνθήκη),

(ε) εντολές κλήσης και επιστροφής από υπορουτίνα, όπως οι εντολές CALL

και RETURN, και

(στ) γενικές εντολές, όπως οι εντολές διαχείρισης σωρού και η εντολή NOP.

Η κάθε εντολή χρησιµοποιεί διάφορους τρόπους διευθυνσιοδότησης για να

προσδιορίσει εάν τα δεδοµένα, που χρειάζεται, ακολουθούν την εντολή ή βρί-

σκονται σε κάποιο καταχωρητή ή θέση µνήµης. Έτσι, σε κάθε µικροεπεξερ-

γαστή, ανάλογα µε τη φιλοσοφία σχεδιασµού του, συναντάµε διάφoρους τρό-

πους διευθυνσιοδότησης. Οι πιο συνηθισµένοι είναι (α) η υπονοούµενη διευ-

θυνσιοδότηση, (β) η άµεση διευθυνσιοδότηση, (γ) η απευθείας ή απόλυτη

διευθυνσιοδότηση, (δ) η σχετική διευθυνσιοδότηση, (ε) η έµµεση διευθυν-

σιοδότηση, (στ) η δεικτοδοτηµένη διευθυνσιοδότηση και (ζ) η διευθυνσιοδό-

τηση µηδενικής σελίδας.

Για να γνωρίσουµε κάποιο µικροεπεξεργαστή, θα πρέπει να µελετήσουµε την

αρχιτεκτονική του, τους ακροδέκτες, που διαθέτει, και τη λειτουργία του καθε-

νός από αυτούς, το χρονισµό των διαφόρων σηµάτων ελέγχου, τον τρόπο µε

τον οποίο χωρίζονται οι εντολές σε κύκλους ρολογιού/µηχανής/εντολής, το

Page 67: Mικροεπεξεργαστές

σύνολο των εντολών και τους διάφορους τρόπους προσπέλασης, τα ελάχιστα

κυκλώµατα, που απαιτούνται, ώστε να είναι λειτουργικός και φυσικά τις διά-

φορες συσκευές υποστήριξης, µε τις οποίες µπορεί να διασυνδεθεί.

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

Page 68: Mικροεπεξεργαστές
Page 69: Mικροεπεξεργαστές

O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8080/8085

™ÎÔfi˜

Μελετώντας αυτό το κεφάλαιο θα γνωρίσετε έναν από τους πρώτους, αλλά

πολύ δηµοφιλή µέχρι πριν από µερικά χρόνια µικροεπεξεργαστή, και συγκε-

κριµένα τον 8080/8085 της Intel.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• εξηγήσετε τη λειτουργία του καθενός από τους σαράντα ακροδέκτες του

µικροεπεξεργαστή 8080.

• ορίσετε το πλήθος των γραµµών των τριών διαύλων επικοινωνίας, που

διαθέτει.

• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή και να

αναφέρετε τη λειτουργία του καθενός από αυτούς.

• χωρίσετε µία εντολή του 8080 σε κύκλους µηχανής και ρολογιού.

• αναφέρετε τις λειτουργίες, που επιτελούνται σε κάθε κύκλο ρολογιού του

πρώτου κύκλου µηχανής µιας εντολής, καθώς και το χρονισµό των σηµά-

των ελέγχου.

• αναφέρετε τον τρόπο, µε τον οποίο ο µικροεπεξεργαστής ενηµερώνει τις υπό-

λοιπες συσκευές του συστήµατος για τον κύκλο µηχανής, που θα ακολουθήσει.

• διακρίνετε τρεις ειδικές καταστάσεις λειτουργίας του 8080.

• περιγράψετε τον τρόπο, µε τον οποίο ικανοποιούνται οι αιτήσεις διακοπής

της λειτουργίας του µικροεπεξεργαστή.

• ορίσετε τους τρόπους διευθυνσιοδότησης, που υπάρχουν στο σύνολο των

εντολών του.

• περιγράψετε τις δύο συσκευές υποστήριξης, που συµπληρώνουν τον 8080.

• καταγράψετε τις διαφορές µεταξύ του 8080 και του 8085.

ŒÓÓÔȘ ÎÏÂȉȿ

3∫ ∂ º ∞ § ∞ π √

• Γεννήτρια Ρολογιού

• ∆ιαχείριση ∆ιακοπών

• Ελεγκτής Συστήµατος

• Intel 8080/8085

• Καταστάσεις WAIT/HOLD/HALT

• Κύκλος προσκόµισης εντολής

Page 70: Mικροεπεξεργαστές

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 είναι

σχετικά µεγάλη σε µέγεθος. Έχει όµως χωριστεί σε τρεις ανεξάρτητες υποε-

νότητες, ώστε να µπορείτε να τη µελετήσετε τµηµατικά.

Page 71: Mικροεπεξεργαστές

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

Page 72: Mικροεπεξεργαστές

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)

Page 73: Mικροεπεξεργαστές

γραµµές του διαύλου διευθύνσεων. Με τον αριθµό συσκευής ο χρήστης µπο-

ρεί να επιλέξει µέχρι 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

Page 74: Mικροεπεξεργαστές

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

Page 75: Mικροεπεξεργαστές

Το βοηθητικό κρατούµενο χρησιµοποιείται στην εκτέλεση δεκαδικών αριθ-

µητικών πράξεων, που βρίσκονται σε κωδικοποίηση 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 Είσοδος

Page 76: Mικροεπεξεργαστές

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 και ο κύκλος της εντολής προχωρεί.

Page 77: Mικροεπεξεργαστές

• 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

Page 78: Mικροεπεξεργαστές

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

Page 79: Mικροεπεξεργαστές

Οι κύκλοι ρολογιού Τ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

Κύκλοι µηχανής και

λειτουργίες

Page 80: Mικροεπεξεργαστές

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: ∆ηλώνει ότι ο δίαυλος δεδοµένων θα χρησιµοποιηθεί

Page 81: Mικροεπεξεργαστές

ΙΝΤΑ 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.

Page 82: Mικροεπεξεργαστές

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

Page 83: Mικροεπεξεργαστές

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Επειδή δεν έχουµε ασχοληθεί έως τώρα µε κάτι παρόµοιο, είναι επόµενο ότι

θα συναντήσετε δυσκολίες κατά τη µελέτη της ενότητας αυτής. Μην απογοη-

τεύεστε όµως. ∆ιαβάστε προσεκτικά το κείµενο, χρησιµοποιείτε ως οδηγό σας

το αντίστοιχο σχήµα (σχήµα 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 Ο κύκλος προσκόµισης εντολής

Page 84: Mικροεπεξεργαστές

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 είναι ακριβώς

ένας κύκλος ρολογιού.

Page 85: Mικροεπεξεργαστές

Στην περίπτωση της προσκόµισης εντολής, η µνήµη θα πρέπει να τοποθετήσει

στο δίαυλο δεδοµένων τον κωδικό λειτουργίας της εντολής που έχει εξάγει.

Κατάσταση Τ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 Ã ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡

Page 86: Mικροεπεξεργαστές

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

Page 87: Mικροεπεξεργαστές

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

Page 88: Mικροεπεξεργαστές

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

Page 89: Mικροεπεξεργαστές

Με τον τρόπο αυτό µπορούµε να διασυνδέσουµε οποιαδήποτε µνήµη ή άλλη

συσκευή στον 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

Page 90: Mικροεπεξεργαστές

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 µετά από κύκλο ανάγνωσης

Page 91: Mικροεπεξεργαστές

Κατά τη διάρκεια του 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

Page 92: Mικροεπεξεργαστές

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 έχει τη δυνατότητα να χειριστεί εξωτερικά σήµατα διακοπής.

Page 93: Mικροεπεξεργαστές

Μια εξωτερική συσκευή µπορεί να απαιτήσει εξυπηρέτηση οποιαδήποτε

στιγµή τοποθετώντας το σήµα εισόδου 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” ώστε να αντα-

Page 94: Mικροεπεξεργαστές

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. Αυτή η εντολή µεταφέρει τα δεδοµένα, που βρίσκονται

Page 95: Mικροεπεξεργαστές

στην κορυφή του σωρού στο µετρητή προγράµµατος.

Υπάρχουν δύο τύποι εντολής για κλήση ρουτίνας εξυπηρέτησης στον 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

Page 96: Mικροεπεξεργαστές

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) και

γενικές εντολές, όπως διαχείρισης σωρού, και εντολές εισόδου/εξόδου.

Page 97: Mικροεπεξεργαστές

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

Page 98: Mικροεπεξεργαστές

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

διε

υθ

ύνσ

εων

Page 99: Mικροεπεξεργαστές

Ένας µεγάλος αριθµός µνηµών και συσκευών Ι/Ο µπορούν να συνδεθούν

απευθείας µε το δίαυλο δεδοµένων του 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

Page 100: Mικροεπεξεργαστές

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

Page 101: Mικροεπεξεργαστές

Μία από τις σηµαντικότερες αλλαγές σε σχέση µε τον 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

Page 102: Mικροεπεξεργαστές

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 ο

• ακροδέκτες του ολοκληρωµένου κυκλώµατος

• πλήθος και είδος καταχωρητών

• σηµαίες κατάστασης του καταχωρητή κατάστασης επεξεργαστή

• σήµατα διακοπής

• µέθοδοι διευθυνσιοδότησης

• κατηγορίες εντολών

Ο χρόνος απασχόλησής σας για την ολοκλήρωση αυτής της δραστηριότη-

τας εκτιµάµε πως δεν θα ξεπεράσει τις τρεις ώρες.

Page 103: Mικροεπεξεργαστές

µικροεπεξεργαστής διαβάζει τη λέξη, που βρίσκεται στο δίαυλο δεδοµένων,

την τοποθετεί στον καταχωρητή εντολών και την αποκωδικοποιεί. Το σήµα

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

Page 104: Mικροεπεξεργαστές

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, µπο-

ρείτε να προχωρήσετε στο επόµενο κεφάλαιο για να ανακαλύψετε ένα νέο

µικροεπεξεργαστή.

Page 105: Mικροεπεξεργαστές

O MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Motorola 6800

™ÎÔfi˜

Μελετώντας το κεφάλαιο αυτό θα γνωρίσετε έναν ακόµα µικροεπεξεργαστή

µε µήκος λέξης 8 δυαδικών ψηφίων, τον 6800 της Motorola. Ο µικροεπε-

ξεργαστής αυτός ήταν η απάντηση της Motorola στον 8080 της Intel.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• εξηγήσετε τη λειτουργία του καθενός από τους σαράντα ακροδέκτες του

µικροεπεξεργαστή 6800.

• ορίσετε το πλήθος των γραµµών των τριών διαύλων επικοινωνίας που δια-

θέτει.

• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή, καθώς

και τη λειτουργία του καθενός.

• χωρίσετε µία εντολή του 6800 σε κύκλους µηχανής και ρολογιού.

• αναφέρετε τις λειτουργίες που επιτελούνται σε κάθε κύκλο µηχανής (κύκλο

ρολογιού) µιας εντολής, καθώς και το χρονισµό των σηµάτων ελέγχου.

• διακρίνετε τρεις ειδικές καταστάσεις λειτουργίας του 6800.

• περιγράψετε τον τρόπο, µε τον οποίο ικανοποιούνται οι αιτήσεις διακοπής

της λειτουργίας του µικροεπεξεργαστή.

• ορίσετε τους πέντε τρόπους διευθυνσιοδότησης που υπάρχουν στο σύνολο

εντολών του.

• καταγράψετε τις διαφορές µεταξύ του 6800 και του 8080/8085.

ŒÓÓÔȘ ÎÏÂȉȿ

• Αρχικοποίηση

• Γεννήτρια Ρολογιού

• ∆ιαχείριση ∆ιακοπών

• Καταστάσεις WAIT/HOLD/HALT

• Κύκλος προσκόµισης εντολής

• Motorola 6800

4∫ ∂ º ∞ § ∞ π √

Page 106: Mικροεπεξεργαστές

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 έχει χωριστεί σε τρεις

ανεξάρτητες υποενότητες ώστε να µπορείτε να τη µελετήσετε τµηµατικά.

Page 107: Mικροεπεξεργαστές

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

Page 108: Mικροεπεξεργαστές

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

Page 109: Mικροεπεξεργαστές

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 καταχωρητή κατάστασης επεξεργαστή, του οποίου το περιεχόµενο

Page 110: Mικροεπεξεργαστές

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. Εάν το αποτέλεσµα µιας αριθµητικής πράξης ξεπε-

ράσει το διάστηµα αυτό (π.χ. όπως συµβαίνει στην περίπτωση µίας πρόσθεσης

Page 111: Mικροεπεξεργαστές

του δεκαδικού αριθµού +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

Page 112: Mικροεπεξεργαστές

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”.

Page 113: Mικροεπεξεργαστές

Ακροδέκτης Περιγραφή Τύπος

Α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

Page 114: Mικροεπεξεργαστές

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

Page 115: Mικροεπεξεργαστές

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 ƒ √ ¡ π ∫ ∏ ∞ ∫ √ § √ À £ π ∞ ∂ ∫ ∆ ∂ § ∂ ™ ∏ ™ ∂ ¡ ∆ √ § ø ¡

Page 116: Mικροεπεξεργαστές

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

Page 117: Mικροεπεξεργαστές

Παρατηρούµε ότι κατά την παραπάνω διαδικασία η διεύθυνση είναι σταθε-

ρή κατά το µεγαλύτερο µέρος του κύκλου µηχανής και ότι ο δίαυλος διευ-

θύνσεων δεν µεταβαίνει ούτε στιγµή σε κατάσταση υψηλής εµπέδησης. Έτσι

λειτουργίες απευθείας προσπέλασης της µνήµης (λειτουργίες 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

∆ιεύθυνση

∆εδοµένα

Page 118: Mικροεπεξεργαστές

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 σε χαµηλό δυναµικό.

Page 119: Mικροεπεξεργαστές

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

Page 120: Mικροεπεξεργαστές

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 θέσει σε κατάσταση υψηλής εµπέδησης το δίαυλο διευ-

Page 121: Mικροεπεξεργαστές

θύνσεων, η είσοδος 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

Οι δίαυλοι σε κατάσταση

υψηλής εµπέδησης

Page 122: Mικροεπεξεργαστές

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

Page 123: Mικροεπεξεργαστές

αναγνωρίζει τις διευθύνσεις που δηµιουργούνται από το µικροεπεξεργαστή.

Ο τρόπος, µε τον οποίο µπορεί να γίνει αυτό, φαίνεται στο σχήµα 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).

Page 124: Mικροεπεξεργαστές

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,

Page 125: Mικροεπεξεργαστές

η οποία περιέχει το πρόγραµµα του συστήµατος, είναι τοποθετηµένη στις

υψηλότερες θέσεις της µνήµης, ενώ η µνήµη 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. Εντολές καταχωρητή δείκτη και δείκτη σωρού.

Page 126: Mικροεπεξεργαστές

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 παρουσιάζουν ξεχωριστά και τη

µέθοδο διευθυνσιοδότησης συσσωρευτή. Αυτή µπορεί να θεωρηθεί ως ειδι-

κή περίπτωση της υπονοούµενης διευθυνσιοδότησης.

Page 127: Mικροεπεξεργαστές

Στις εντολές που χρησιµοποιούν άµεση διευθυνσιοδότηση, το έντελο βρί-

σκεται αµέσως µετά τον κωδικό λειτουργίας της εντολής στη µνήµη. Οι

περισσότερες άµεσες εντολές του 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

Page 128: Mικροεπεξεργαστές

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

Page 129: Mικροεπεξεργαστές

Στη συνέχεια η 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

Page 130: Mικροεπεξεργαστές

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

Page 131: Mικροεπεξεργαστές

διάρκεια ενός κύκλου ρολογιού το σήµα 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

Page 132: Mικροεπεξεργαστές

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, µπο-

ρείτε να προχωρήσετε στο επόµενο κεφάλαιο για να ανακαλύψετε ένα νέο

µικροεπεξεργαστή.

Page 133: Mικροεπεξεργαστές

√ MÈÎÚÔÂÂÍÂÚÁ·ÛÙ‹˜ Intel 8086/8088

™ÎÔfi˜

Μελετώντας το κεφάλαιο αυτό θα γνωρίσετε τον πιο δηµοφιλή ίσως από τους

µικροεπεξεργαστές της Intel, τον 8086/8088. Ο µικροεπεξεργαστής αυτός υιο-

θετήθηκε από την ΙΒΜ στους προσωπικούς υπολογιστές PC, οι οποίοι γνώ-

ρισαν µεγάλη εµπορική επιτυχία, που συνεχίζεται µέχρι σήµερα.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• ορίσετε τα δύο ανεξάρτητα τµήµατα, από τα οποία αποτελείται ο 8086

καθώς και τη λειτουργία του καθενός από αυτά.

• καθορίσετε τον τρόπο µε τον οποίο γίνεται η προσκόµιση των εντολών.

• περιγράψετε την οργάνωση µνήµης που υποστηρίζει.

• απαριθµήσετε το πλήθος των καταχωρητών του µικροεπεξεργαστή, καθώς

και τη λειτουργία του καθενός.

• συγκρίνετε τους καταχωρητές του 8086 µε τους αντίστοιχους του

8080/8085.

• εξηγήσετε ποια είναι η χρησιµότητα του ελάχιστου και του µέγιστου τρό-

που λειτουργίας του µικροεπεξεργαστή.

• δώσετε τη βασική ακολουθία χρονισµού για έναν κύκλο ανάγνωσης και

έναν κύκλο εγγραφής.

• εξηγήσετε τον τρόπο µε τον οποίο ο 8086 διαχειρίζεται τις αιτήσεις διακοπής.

• περιγράψετε τους διαφορετικούς τρόπους διευθυνσιοδότησης που υπο-

στηρίζει.

ŒÓÓÔȘ ÎÏÂȉȿ

5∫ ∂ º ∞ § ∞ π √

• Intel 8086/8088

• Καταχωρητές Τµήµατος

• Μονάδα ∆ιασύνδεσης ∆ιαύλου

• Μονάδα Εκτέλεσης

• Πίνακας ∆ιευθύνσεων ∆ιακοπών

Page 134: Mικροεπεξεργαστές

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.

Page 135: Mικροεπεξεργαστές

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

Page 136: Mικροεπεξεργαστές

λων της εντολής από τη µνήµη, εάν απαιτείται, εκτέλεση της εντολής και

αποθήκευση των αποτελεσµάτων, όποτε χρειάζεται, στη µνήµη. Τα παρα-

πάνω βήµατα εκτελούνται πάντοτε ακολουθιακά το ένα µετά το άλλο. Η

εκτέλεση µίας εντολής θα πρέπει να ολοκληρωθεί πριν προχωρήσουµε στην

επόµενη εντολή. Στον 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

Page 137: Mικροεπεξεργαστές

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), καθώς και µία µονάδα ελέγχου του διαύλου που

παράγει τα απαραίτητα σήµατα χρονισµού.

Page 138: Mικροεπεξεργαστές

Η µονάδα εκτέλεσης, από την άλλη µεριά, αποτελείται από µία αριθµητική

και λογική µονάδα, τους καταχωρητές δεδοµένων (θα παρατηρήσετε ότι πολ-

λοί από αυτούς είναι όµοιοι µε αυτούς του 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.

Page 139: Mικροεπεξεργαστές

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, τους παρακάτω καταχωρητές:

Page 140: Mικροεπεξεργαστές

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 καταχωρητής

Page 141: Mικροεπεξεργαστές

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

Page 142: Mικροεπεξεργαστές

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.

Page 143: Mικροεπεξεργαστές

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, τα οποία

χρησιµοποιούνται σε περιπτώσεις πολυεπεξεργαστικών συστηµάτων, όπου

απαιτούνται πιο πολύπλοκα σήµατα ελέγχου.

Ο σχεδιασµός δύο διαφορετικών τρόπων λειτουργίας στο ίδιο ολοκλη-

Page 144: Mικροεπεξεργαστές

ρωµένο οφείλεται στην επιθυµία να µπορεί ο µικροεπεξεργαστής να ικα-

νοποιεί πολλαπλές απαιτήσεις. Έτσι, σε απλά συστήµατα, στα οποία

συνήθως απαιτείται ο µικρότερος δυνατός αριθµός από ολοκληρωµένα,

ο 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

Page 145: Mικροεπεξεργαστές

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 δείχνει την

Page 146: Mικροεπεξεργαστές

τιµή της σηµαίας διακοπής του καταχωρητή κατάστασης επεξεργαστή, ενώ

το 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

Page 147: Mικροεπεξεργαστές

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

Page 148: Mικροεπεξεργαστές

Οι διακοπές αυτές χωρίζονται σε καθορισµένες διακοπές (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

Η περιοχή µνήµης

που δεσµεύεται

για τις διακοπές

Page 149: Mικροεπεξεργαστές

1 4 95 . 4 T √ ™ À ¡ √ § √ ∂ ¡ ∆ √ § ø ¡ ∫ ∞ π √ π ∆ ƒ √ ¶ √ π ¢ π ∂ À £ À ¡ ™ π √ ¢ √ ∆ ∏ ™ ∏ ™

λές του µικροεπεξεργαστή. Για να γίνει µία τέτοια αίτηση διακοπής, θα πρέ-

πει το σήµα INTR να τεθεί σε υψηλό δυναµικό στον τελευταίο κύκλο ρολο-

γιού της τρέχουσας εντολής. Εάν η σηµαία κατάστασης διακοπής το επιτρέ-

πει, τότε ο µικροεπεξεργαστής παρέχει δύο κύκλους µηχανής αναγνώρισης

διακοπής. Η εξωτερική συσκευή που παρήγαγε τη διακοπή είναι υποχρεω-

µένη κατά το δεύτερο κύκλο να παρέχει στο µικροεπεξεργαστή τον αριθµό

της διακοπής. Ο αριθµός αυτός πολλαπλασιάζεται µε το 4 για να διευθυν-

σιοδοτήσει τον πίνακα διευθύνσεων διακοπών, ώστε να ξεκινήσει η εκτέλε-

ση της αντίστοιχης ρουτίνας εξυπηρέτησης.

Σχετική επίσης µε τις διακοπές είναι και η εντολή HALT. Με την εκτέλεση

µίας τέτοιας εντολής, ο µικροεπεξεργαστής µπαίνει σε κατάσταση αναµονής

και, για να συνεχίσει την εκτέλεση του προγράµµατος, απαιτείται µία αίτη-

ση διακοπής ή η επανεκκίνησή του.

Μετά από την εµφάνιση µίας αίτησης διακοπής, µε ποιον τρόπο ο µικροε-

πεξεργαστής βρίσκει τη διεύθυνση της µνήµης, στην οποία αρχίζει η ρου-

τίνα εξυπηρέτησης;

ÕÛÎËÛË ∞˘ÙÔ·ÍÈÔÏfiÁËÛ˘5.6

5.4 TÔ Û‡ÓÔÏÔ ÂÓÙÔÏÒÓ Î·È ÔÈ ÙÚfiÔÈ ‰È¢ı˘ÓÛÈÔ‰fiÙËÛ˘

™ÎÔfi˜

Η ενότητα αυτή έχει ως στόχο να παρουσιάσει το σύνολο εντολών και τους

τρόπους διευθυνσιοδότησης που διαθέτει ο 8086.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Ολοκληρώνοντας τη µελέτη αυτής της ενότητας, θα µπορείτε να περιγράψε-

τε τους βασικούς τρόπους διευθυνσιοδότησης του 8086 και τους καταχωρη-

τές που χρησιµοποιεί ο καθένας από αυτούς.

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Η ενότητα αυτή περιέχει γνωστές έννοιες, καθώς έχετε γνωρίσει, στα προη-

γούµενα κεφάλαια, τους τρόπους διευθυνσιοδότησης αρκετών µικροεπεξερ-

γαστών. Είναι ίσως σκόπιµο, πριν από τη µελέτη της, να επαναλάβετε την

ανάγνωση της Ενότητας 2.5 ή να χρησιµοποιήσετε τα σχήµατα της Ενότητας

2.5, για να κατανοήσετε καλύτερα το κείµενο αυτής της ενότητας.

Page 150: Mικροεπεξεργαστές

Οι εντολές του 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

Page 151: Mικροεπεξεργαστές

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

Page 152: Mικροεπεξεργαστές

™‡ÓÔ„Ë

Ο 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

Page 153: Mικροεπεξεργαστές

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 διαθέτει, πέρα από τους κλασικούς τρόπους διευθυνσιοδότησης που

συναντάµε και σε άλλους επεξεργαστές, αρκετούς τρόπους διευθυνσιοδότη-

σης που χρησιµοποιούν τους καταχωρητές βάσης και δείκτη για τον καθορι-

σµό της ενεργής διεύθυνσης και παρέχουν ευελιξία στον προγραµµατιστή κατά

την ανάπτυξη προγραµµάτων.

Page 154: Mικροεπεξεργαστές

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

Page 155: Mικροεπεξεργαστές

OÏÔÎÏËڈ̤ӷ MÈÎÚÔ¸ÔÏÔÁÈÛÙÈο ™˘ÛÙ‹Ì·Ù·

™ÎÔfi˜

Μελετώντας το κεφάλαιο αυτό, θα γνωρίσετε τις βασικές αρχές και µεθοδο-

λογίες σχεδιασµού συστηµάτων, που βασίζονται σε µικροεπεξεργαστές, και

τις περιφερειακές τους συσκευές.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• ορίσετε την έννοια της διασύνδεσης ενός µικροεπεξεργαστή µε µία ή περισ-

σότερες περιφερειακές συσκευές.

• καθορίσετε τον τρόπο µε τον οποίο ο µικροεπεξεργαστής επιλέγει καθεµία

από τις συσκευές που βρίσκονται σε ένα σύστηµα είτε πρόκειται για µνή-

µες είτε για συσκευές εισόδου/εξόδου.

• καθορίσετε τα τέσσερα βασικά σήµατα ελέγχου του µικροεπεξεργαστή, που

χρησιµοποιούνται στη µεταφορά δεδοµένων µεταξύ αυτού και των µνη-

µών ή των περιφερειακών συσκευών.

• διασυνδέσετε µία µνήµη ROM ή µία µνήµη RAM στους διαύλους ενός

µικροϋπολογιστικού συστήµατος.

• ορίσετε τους δύο διαφορετικούς τρόπους µε τους οποίους µπορούµε να

συνδέσουµε µία συσκευή εισόδου ή µία συσκευή εξόδου στους διαύλους

ενός µικροεπεξεργαστή.

• διασυνδέσετε απλές συσκευές εισόδου, όπως διακόπτες, και απλές συσκευ-

ές εξόδου, όπως µονάδες απεικόνισης, σε ένα µικροϋπολογιστικό σύστηµα.

ŒÓÓÔȘ ÎÏÂȉȿ

6∫ ∂ º ∞ § ∞ π √

• ∆ιασύνδεση

• Ελεγκτές

• I/O–mapped I/O

• Κύκλωµα αποκωδικοποίησης

• Memory–mapped I/O

• Μικροϋπολογιστικά συστήµατα

• Μνήµες ROM/RAM

• Συσκευές ∆ιασύνδεσης

• Συσκευές Εισόδου/Εξόδου

Page 156: Mικροεπεξεργαστές

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Στο κεφάλαιο αυτό παρέχουµε τους τρόπους, µε τους οποίους µπορείτε να

διασυνδέσετε µικροεπεξεργαστές, όπως αυτούς που µάθατε στα προηγούµε-

να κεφάλαια, µε διάφορες συσκευές, όπως µνήµες ή συσκευές εισόδου/εξό-

δου, ώστε να κατασκευάσετε ένα ολοκληρωµένο µικροϋπολογιστικό σύστη-

µα. Χρησιµοποιώντας επιπλέον τις γνώσεις που αποκτήσατε στα προηγούµε-

να κεφάλαια, θα µπορείτε πλέον να σχεδιάσετε µόνοι σας κάποιο µικροϋπο-

λογιστικό σύστηµα, διασυνδέοντας µεταξύ τους τα βασικά κοµµάτια, από τα

οποία αποτελείται. Κατά τη µελέτη αυτού του κεφαλαίου, είναι πιθανό να

χρειαστεί να ανατρέξετε σε προηγούµενα κεφάλαια, για να θυµηθείτε κάποια

από τα χαρακτηριστικά των µικροεπεξεργαστών, οι οποίοι παρουσιάστηκαν.

1 5 6 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞

Page 157: Mικροεπεξεργαστές

6.1 B·ÛÈΤ˜ ·Ú¯¤˜ – ™˘Û΢¤˜ ‰È·Û‡Ó‰ÂÛ˘

Θυµηθείτε τον ορισµό του µικροϋπολογιστικού συστήµατος που δώσαµε στο

κεφάλαιο 1: είναι ένα σύστηµα που δέχεται κάποια είσοδο και µετά από

κάποιας µορφής επεξεργασία παρέχει κάποια έξοδο. Στο ευρύτερο περιβάλ-

λον µας µπορούµε να ανακαλύψουµε πολλά παραδείγµατα συσκευών, οι

οποίες ανήκουν στο παραπάνω µοντέλο. Πολλές από αυτές τις συσκευές

βασίζονται στη χρήση µικροεπεξεργαστών.

Εποµένως, οι µικροεπεξεργαστές αποτελούν τµήµατα ευρύτερων συστηµά-

των, ενώ από µόνοι τους συνήθως δεν έχουν καµία χρησιµότητα. Η ανάπτυ-

ξη των µικροεπεξεργαστών δεν ήταν αυτοσκοπός. Ήταν το αποτέλεσµα της

ανάγκης για την ανάπτυξη ολοκληρωµένων συστηµάτων, που θα έκαναν τη

ζωή µας ευκολότερη. Η γνώση των βασικών χαρακτηριστικών κάποιου ή

κάποιων µικροεπεξεργαστών δεν είναι χρήσιµη, εάν δεν συνοδεύεται από

επιπλέον γνώση για τον τρόπο µε τον οποίο µπορούν αυτοί οι µικροεπεξερ-

γαστές να χρησιµοποιηθούν για το σχεδιασµό ολοκληρωµένων µικροϋπο-

λογιστικών συστηµάτων.

Συχνά στο σχεδιασµό τέτοιων συστηµάτων εµφανίζεται η έννοια της δια-

σύνδεσης. Γενικότερα, όταν λέµε διασύνδεση (interface) µεταξύ δύο αντι-

κειµένων, εννοούµε τον τρόπο µε τον οποίο πρέπει να συνδεθούν αυτά τα

αντικείµενα, ώστε να είναι εφικτή η µεταξύ τους επικοινωνία. Η διασύνδε-

ση, στις περιπτώσεις µικροϋπολογιστικών συστηµάτων, µπορεί είτε να ανα-

φέρεται σε φυσικό επίπεδο (hardware interfacing) και να αφορά στον τρόπο,

µε τον οποίο πρέπει να συνδέσουµε τους διαύλους των δύο συσκευών, όπως

π.χ. στην περίπτωση της διασύνδεσης µίας συσκευής εισόδου/εξόδου ή ενός

ελεγκτή συστήµατος µε κάποιον µικροεπεξεργαστή, είτε να αναφέρεται σε

λογικό επίπεδο (software interfacing) και να αφορά στον ορισµό του τρόπου,

µε τον οποίο µπορούν να επικοινωνήσουν δύο προγράµµατα, όπως π.χ. στην

περίπτωση ορισµού του πρωτόκολλου επικοινωνίας µεταξύ µίας εφαρµογής

βάσης δεδοµένων µε τον αντίστοιχο οδηγό δίσκου (hard disk driver) για την

εγγραφή ή ανάγνωση των δεδοµένων της βάσης στο δίσκο.

Ένας µικροϋπολογιστής τυπικά αποτελείται από κάποιο µικροεπεξεργαστή,

µνήµη ROM, στην οποία είναι αποθηκευµένο το πρόγραµµα, το οποίο εκτε-

λείται στο µικροεπεξεργαστή, µνήµη RAM για την αποθήκευση προσωρινών

δεδοµένων και κάποιες περιφερειακές συσκευές (συσκευές εισόδου/εξόδου),

όπως πληκτρολόγια, µονάδες απεικόνισης δεδοµένων, µονάδες δίσκων ή δισκε-

1 5 76 . 1 B ∞ ™ π ∫ ∂ ™ ∞ ƒ Ã ∂ ™ – ™ À ™ ∫ ∂ À ∂ ™ ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™

Page 158: Mικροεπεξεργαστές

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 είναι ολοκληρωµένα κυκλώµατα µε διάφορες χωρητικότη-

τες. Στους ακροδέκτες κάθε τέτοιου ολοκληρωµένου κυκλώµατος µπορού-

µε να βρούµε:

Page 159: Mικροεπεξεργαστές

• τα σήµατα διευθύνσεων, το πλήθος των οποίων ορίζει το πλήθος των θέσε-

ων της µνήµης,

• τα σήµατα δεδοµένων, το πλήθος των οποίων ορίζει το µέγεθος της λέξης

της µνήµης,

• ένα σήµα ενεργοποίησης της µνήµης 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

Page 160: 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~ του µικροεπεξεργαστή είναι ενεργό.

Page 161: Mικροεπεξεργαστές

Οι µνήµες 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~ τη µνήµη. Τα λιγότερο

σηµαντικά ψηφία της διεύθυνσης καθορίζουν τη θέση της µνήµης, όπου θα

Page 162: Mικροεπεξεργαστές

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~. Εάν π.χ. το κύκλωµα απο-

Page 163: Mικροεπεξεργαστές

κωδικοποίησης αποτελείται από µια 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, το οποίο

παρουσιάζει έναν ολοκληρωµένο µικροϋπολογιστή και συνοψίζει τα όσα έχετε

µάθει στις προηγούµενες ενότητες. Εάν έχετε δυσκολίες στην κατανόηση του

παραδείγµατος αυτού, θα πρέπει να επαναλάβετε τη µελέτη του κεφαλαίου µε

µεγαλύτερη προσοχή.

Page 164: Mικροεπεξεργαστές

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), οι οποίοι, όταν λάβουν παλµό στην είσοδο χρο-

νισµού τους, αποθηκεύουν τα δεδοµένα που βρίσκονται στο δίαυλο δεδοµέ-

νων σε αυτά. Ο παλµός χρονισµού του µανταλωτή δηµιουργείται από το

Page 165: Mικροεπεξεργαστές

Όταν το µικροϋπολογιστικό σύστηµα επιθυµεί να αλλάξει την κατάσταση κάποι-

ων 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 τρόπο διασύνδεσης).

Page 166: Mικροεπεξεργαστές

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) σε ένα

µικροεπεξεργαστή. Φυσικά σε µικροϋπολογιστικά συστήµατα µπορούµε να

Page 167: Mικροεπεξεργαστές

βρούµε πιο πολύπλοκες συσκευές από αυτές που αναφέραµε προηγούµενα.

Όλες οι συσκευές όµως ακολουθούν παρόµοιους κανόνες διασύνδεσης µε

αυτούς που είδαµε προηγούµενα. Σε περιπτώσεις πιο πολύπλοκων συστη-

µάτων η διασύνδεση των περιφερειακών συσκευών γίνεται µε τη βοήθεια

ελεγκτών, ολοκληρωµένων κυκλωµάτων ειδικά κατασκευασµένων ώστε να

διευκολύνουν τη διασύνδεση των συσκευών µε τους διαύλους κάποιου

µικροεπεξεργαστή.

¶·Ú¿‰ÂÈÁÌ· 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 ¢ π ∞ ™ À ¡ ¢ ∂ ™ ∏ ™ À ™ ∫ ∂ À ø ¡ ∂ π ™ √ ¢ √ À / ∂ • √ ¢ √ À

Page 168: Mικροεπεξεργαστές

∆ίαυλος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

Ένα ολοκληρωµένο

µικροϋπολογιστικό

σύστηµα

Page 169: Mικροεπεξεργαστές

µνηµών 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

Page 170: Mικροεπεξεργαστές

1 7 0 K E º A § A I O 6 : O § √ ∫ § ∏ ƒ ø ª ∂ ¡ ∞ M π ∫ ƒ √ À ¶ √ § √ ° π ™ ∆ π ∫ ∞ ™ À ™ ∆ ∏ ª ∞∆∞

6.5 ™˘ÛÙ‹Ì·Ù· ·Ó¿Ù˘Í˘ ÌÈÎÚÔ¸ÔÏÔÁÈÛÙÈÎÒÓ Û˘ÛÙËÌ¿ÙˆÓ

Η κατασκευή ενός µικροϋπολογιστικού συστήµατος περνάει από διάφορα

στάδια: στην αρχή έχουµε την καταγραφή των προδιαγραφών που θα πρέπει

να πληρεί το σύστηµα. Στη συνέχεια γίνεται ο σχεδιασµός του συστήµατος.

Ακολουθεί η κατασκευή του πρωτότυπου και ο έλεγχος του κατά πόσο πλη-

ρεί τις προδιαγραφές που έχουν τεθεί. Τα βήµατα αυτά επαναλαµβάνονται

ξανά από την αρχή για να διορθωθούν τυχόν ατέλειες µέχρι να προκύψει το

τελικό σύστηµα.

Είναι προφανές ότι ο χρόνος που περνάει από τη στιγµή της σύλληψης µιας

ιδέας µέχρι την υλοποίησή της και την κατασκευή του επιθυµητού συστή-

µατος είναι κρίσιµος για την εµπορική επιτυχία του συστήµατος και θα πρέ-

πει να διατηρείται όσο το δυνατό µικρότερος. Οι κατασκευαστές, για να βοη-

θήσουν την ανάπτυξη µικροϋπολογιστικών συστηµάτων, παρέχουν µαζί µε

τους µικροεπεξεργαστές και συστήµατα ανάπτυξης µικροϋπολογιστικών

συστηµάτων (development kits), τα οποία έχουν ως σκοπό να διευκολύνουν

τη διαδικασία ανάπτυξης τέτοιων συστηµάτων.

Τα συστήµατα ανάπτυξης µικροϋπολογιστικών συστηµάτων µπορούν να

περιέχουν είτε υλικό (όπως ειδικές συσκευές εξοµοίωσης της λειτουργίας

του µικροεπεξεργαστή) είτε λογισµικό (συµβολοµεταφραστές, λογισµικό για

εκσφαλµάτωση του προγράµµατος του συστήµατος κ.λπ.) και διευκολύνουν

σηµαντικά τη δουλειά του σχεδιαστή.

™‡ÓÔ„Ë

Τα µικροϋπολογιστικά συστήµατα αποτελούνται συνήθως από ένα µικροε-

πεξεργαστή, ολοκληρωµένα κυκλώµατα µνήµης ROM ή/και RAM και περι-

φερειακές συσκευές συνδεµένα στους διαύλους του συστήµατος. Η διασύν-

δεση ορίζει τους κανόνες, µε τους οποίους µπορούν να συνδεθούν δυο

συσκευές µεταξύ τους.

Ένα από τα πρώτα βήµατα στο σχεδιασµό του συστήµατος είναι η αντιστοί-

χηση των συσκευών του συστήµατος στο χώρο διευθύνσεων, που µπορεί να

διαχειριστεί ο µικροεπεξεργαστής. Η αντιστοίχηση αυτή γίνεται µε τη βοή-

θεια κάποιων κυκλωµάτων αποκωδικοποίησης, τα οποία αποκωδικοποιούν

τη διεύθυνση, την οποία ορίζει ο µικροεπεξεργαστής και, εάν αυτή συµφωνεί

µε τη διεύθυνση της συσκευής, ενεργοποιούν τη συσκευή αυτή. Τα κυκλώµα-

τα αποκωδικοποίησης είναι συνήθως απλά συνδυαστικά κυκλώµατα και απο-

Page 171: Mικροεπεξεργαστές

τελούνται από απλά στοιχεία, όπως πύλες και αποκωδικοποιητές.

Οι µνήµες 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

Page 172: Mικροεπεξεργαστές

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

συµβατοί προσωπικοί υπολογιστές, και κάποια παραδείγµατα διασύνδε-

σης συσκευών εισόδου/εξόδου.

Page 173: Mικροεπεξεργαστές

E›ÏÔÁÔ˜: ™‡Á¯ÚÔÓ˜ T¿ÛÂȘ ™¯Â‰È·ÛÌÔ‡ MÈÎÚÔÂÂÍÂÚÁ·ÛÙÒÓ

Στα προηγούµενα κεφάλαια του βιβλίου αυτού γνωρίσατε:

(α) τα βασικά σηµεία, τα οποία απαρτίζουν κάθε µικροεπεξεργαστή (ή του-

λάχιστον ήταν τα βασικά στοιχεία κάθε µικροεπεξεργαστή για πολλά

χρόνια στο παρελθόν),

(β) τη δοµή και φιλοσοφία σχεδιασµού κάποιων από τους πρώτους µικροεπε-

ξεργαστές, όπως οι Intel 8080/8085 και 8086/8088 και ο Motorola 6800, και

(γ) τον τρόπο µε τον οποίο µπορούµε να διασυνδέσουµε κάποιο µικροεπε-

ξεργαστή µε κυκλώµατα µνηµών ή περιφερειακών συσκευών για να

κατασκευάσουµε ολοκληρωµένα µικροϋπολογιστικά συστήµατα.

™ÎÔfi˜

Τελειώνοντας το βιβλίο µε το κεφάλαιο αυτό, θα περιγράψουµε σε συντοµία

κάποια βασικά στοιχεία της εξέλιξης των µικροεπεξεργαστών µέχρι σήµερα, καθώς

και τα χαρακτηριστικά που διακρίνουν τους σύγχρονους µικροεπεξεργαστές.

¶ÚÔÛ‰ÔÎÒÌÂÓ· ·ÔÙÂϤÛÌ·Ù·

Όταν θα ολοκληρώσετε τη µελέτη αυτού του κεφαλαίου, θα είστε σε θέση να:

• ορίσετε τις βασικές κατευθύνσεις πάνω στις οποίες κινήθηκε η εξέλιξη των

µικροεπεξεργαστών.

• καθορίσετε τις αιτίες, οι οποίες οδήγησαν σε αυτή την εξέλιξη.

ŒÓÓÔȘ ÎÏÂȉȿ

7∫ ∂ º ∞ § ∞ π √

• ∆ιοχέτευση

• Ιεραρχία Μνήµης

• Μήκος λέξης

• Σύγχρονοι Μικροεπεξεργαστές

• Ταχύτητα Χρονισµού

∂ÈÛ·ÁˆÁÈΤ˜ ·Ú·ÙËÚ‹ÛÂȘ

Το 7ο κεφάλαιο αποτελεί τον επίλογο του βιβλίου αυτού. Στις επόµενες σελί-

δες θα βρείτε σε συντοµία ποια ήταν τα κύρια σηµεία εξέλιξης των µικροε-

πεξεργαστών µέχρι σήµερα, καθώς και τις αιτίες που προκάλεσαν αυτή την

εξέλιξη. Πριν προχωρήσετε, όµως, στη µελέτη του κεφαλαίου αυτού, θα ήταν

καλό να επαναλάβετε την ανάγνωση της Ενότητας 1.5, η οποία περιέχει µία

ιστορική αναδροµή στους κυριότερους µικροεπεξεργαστές.

Page 174: Mικροεπεξεργαστές

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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡

Page 175: 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. Αυτό είχε σαν αποτέλεσµα τον εµπλουτισµό των

Page 176: Mικροεπεξεργαστές

συνόλων εντολών µε εντολές που να µπορούν να διαχειριστούν αποτελε-

σµατικά τη νέα µορφή αυτή πληροφορίας (οι απαιτήσεις των γλωσσών προ-

γραµµατισµού της δεκαετίας του 1980 ήταν η αιτία για την οποία αντίστοι-

χα είχαν εισαχθεί εντολές διαχείρισης πινάκων χαρακτήρων στον 8086).

Από τα παραπάνω στοιχεία γίνεται φανερό πως οι σύγχρονοι µικροεπεξερ-

γαστές απέχουν πολύ από τους προγενέστερούς τους του 1970 και 1980. Εάν

θελήσουµε να κάνουµε µία σύγκριση, µπορούµε να πούµε πως οι σηµερινοί

µικροεπεξεργαστές είναι 100.000 φορές γρηγορότεροι από τους πρώτους

µικροεπεξεργαστές, ενώ κοστίζουν περίπου 1.000 φορές λιγότερο.

Οι µικροεπεξεργαστές συνεχίζουν να εξελίσσονται µε αµείωτους ρυθµούς.

Έτσι στα επόµενα χρόνια περιµένουµε να δούµε νέες τεχνολογικές ανακα-

λύψεις να ενσωµατώνονται σε αυτούς και να αποκτούν ακόµα µεγαλύτερες

δυνατότητες επεξεργασίας. Ταυτόχρονα η χρήση τους θα επεκτείνεται σε όλο

και περισσότερες εφαρµογές, κάνοντας τη ζωή µας πιο εύκολη.

™‡ÓÔ„Ë

Οι ανάγκες των χρηστών για εύκολες και έξυπνες λύσεις και η ολοένα και

µεγαλύτερη εµφάνιση των υπολογιστών στην καθηµερινή µας ζωή δηµιούρ-

γησε την ανάγκη για τη συνεχή εξέλιξη των µικροεπεξεργαστών.

Η εξέλιξη αυτή βασίστηκε σε τρεις κατευθύνσεις: (α) στην εξέλιξη της τεχνο-

λογίας των ολοκληρωµένων κυκλωµάτων, η οποία οδήγησε σε µικροεπεξερ-

γαστές µε µεγαλύτερες ταχύτητες χρονισµού, µε περισσότερα και πιο πολύ-

πλοκα κυκλώµατα επεξεργασίας, όπως µονάδες αριθµητικής κινητής υπο-

διαστολής, και µε περισσότερους ακροδέκτες µε αποτέλεσµα µεγαλύτερες ικα-

νότητες στη διαχείριση της µνήµης ή στο µήκος της λέξης µνήµης, (β) στις

εξελίξεις σε επίπεδο αρχιτεκτονικής, που οδήγησαν σε µικροεπεξεργαστές µε

συστήµατα ιεραρχίας µνήµης, που χρησιµοποιούν διοχέτευση ή παραλληλι-

σµό των εντολών, διαθέτοντας πολλαπλές µονάδες εκτέλεσης και (γ) στις ανά-

γκες των σύγχρονων πολυµεσικών εφαρµογών, που οδήγησαν σε µικροεπε-

ξεργαστές µε νέα σύνολα εντολών και τρόπους διευθυνσιοδότησης για την πιο

αποτελεσµατική διαχείριση των νέων µορφών πληροφορίας, όπως είναι ο

ήχος και η εικόνα.

Οι µικροεπεξεργαστές θα συνεχίσουν να εξελίσσονται µε τους ίδιους ρυθµούς

και στα επόµενα χρόνια, παρέχοντας έτσι ένα εργαλείο για την ανάπτυξη σύγ-

χρονων και ευέλικτων συστηµάτων.

1 7 6 K E º A § A I O 7 : E ¶ π § √ ° √ ™ / ™ À ° Ã ƒ √ ¡ ∂ ™ T∞ ™ ∂ π ™ ™ Ã ∂ ¢ π ∞ ™ ª √ À M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ø ¡

Page 177: 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

Τα βασικότερα πλεονεκτήµατα, που προκύπτουν από τη χρήση ενός ολο-

κληρωµένου κυκλώµατος, είναι:

• µικρό µέγεθος

Page 178: Mικροεπεξεργαστές

• µικρή κατανάλωση ισχύος

• µικρό κόστος

• µεγάλη αξιοπιστία

Ο 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 179: Mικροεπεξεργαστές

1 7 9A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™

1.6

Σ’ αυτό το σηµείο πρέπει να ξεκαθαρίσουµε ότι µέσα από το δίαυλο διευ-

θύνσεων δεν περνούν δεδοµένα. Στο δίαυλο αυτό µεταφέρονται µόνο οι διευ-

θύνσεις, δηλαδή το σηµείο από το οποίο θα µεταφερθούν τα δεδοµένα προς

ή από τον µικροεπεξεργαστή.

Αν, ωστόσο, µέχρι τώρα θεωρούσατε πως ο δίαυλος διευθύνσεων χρησιµο-

ποιείται και για µεταφορά δεδοµένων, µην ανησυχείτε, στο επόµενο κεφάλαιο

θα αναφερθούµε αναλυτικά στους διαύλους επικοινωνίας των µικροεπεξερ-

γαστών και θα διακρίνετε καλύτερα τον τρόπο µε τον οποίο χρησιµοποιούνται.

Η σωστή απάντηση είναι η παρακάτω:

∆ίαυλος ∆εδοµένων Mεταφέρει τη διεύθυνση της

θέσης µνήµης ή της συσκευής

Ι/Ο, µε την οποία ανταλλάσσο-

νται δεδοµένα.

∆ίαυλος ∆ιευθύνσεων Mεταφέρει τη χρήσιµη πληροφο-

ρία, δηλαδή τα δεδοµένα.

∆ίαυλος Ελέγχου Eνεργοποιεί ή απενεργοποιεί τη

µνήµη και τις συσκευές Ι/Ο, επι-

λέγει εάν θα γίνει ανάγνωση ή

εγγραφή στη µνήµη.

1.7

Οι εντολές των µικροεπεξεργαστών συνήθως αποτελούνται από:

(α) τον κωδικό λειτουργίας,

(β) το έντελο πηγής και

(γ) το έντελο προορισµού.

Υπάρχουν επίσης εντολές, οι οποίες αποτελούνται από περισσότερα από ένα

έντελα πηγής ή εντολές, όπου το έντελο προορισµού αποτελεί ταυτόχρονα

και έντελο πηγής, ή τέλος εντολές, όπου δεν υπάρχουν καθόλου έντελα. Στην

περίπτωση αυτή η λειτουργία της εντολής καθορίζεται αποκλειστικά από τον

κωδικό λειτουργίας.

Page 180: Mικροεπεξεργαστές

Στο επόµενο κεφάλαιο (κεφάλαιο 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ρονιά εµφάνισης

ιθµ

ός

τρ

ανσ

ίστορ

ς

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

Nόµος Moore

Η άσκηση αυτή ήταν όντως από τις πιο δύσκολες έως τώρα, εποµένως µην

ανησυχείτε, εάν δεν κατορθώσατε να φτάσετε σε σωστό αποτέλεσµα. Αυτό

που θα πρέπει να κρατήσετε σαν συµπέρασµα είναι ότι ο ρυθµός, µε τον

οποίο µεγαλώνει ο αριθµός των τρανσίστορς, που περικλείονται σε ένα ολο-

κληρωµένο κύκλωµα, γίνεται όλο και µεγαλύτερος.

Page 181: Mικροεπεξεργαστές

1 8 1A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™

2.1

Όπως µπορείτε να παρατηρήσετε και στο σχήµα 2.1, τα τρία τµήµατα ενός

µικροεπεξεργαστή είναι (α) η αριθµητική και λογική µονάδα, (β) η µονάδα

ελέγχου και (γ) οι διάφοροι καταχωρητές.

2.2

Όλες οι πράξεις γίνονται στην αριθµητική και λογική µονάδα. Τα κυκλώµα-

τα, που περιέχει αυτή συνήθως (αθροιστής, συγκριτής, ολισθητής, µονάδα

λογικής επεξεργασίας, καταχωρητές) επιτρέπουν να εκτελεστούν οι πράξεις

είτε σε µία είτε σε περισσότερες εντολές.

Οι σύγχρονοι επεξεργαστές πάντως, στους οποίους η ταχύτητα παίζει σηµαντι-

κό ρόλο, διαθέτουν περισσότερα και πιο πολύπλοκα κυκλώµατα (όπως πολλα-

πλασιαστές, διαιρέτες, κυκλώµατα πράξεων αριθµητικής κινητής υποδιαστο-

λής), ώστε να µπορούν να εκτελούν πολύπλοκες πράξεις σε πολύ µικρό χρόνο.

Ο λόγος, για τον οποίο δεν υπήρχαν αυτά τα κυκλώµατα στους παλαιότερους

µικροεπεξεργαστές, είναι ότι η υλοποίησή τους απαιτούσε πολλά τρανσίστορς

και η τεχνολογία των ολοκληρωµένων κυκλωµάτων δεν είχε αναπτυχθεί τόσο.

2.3

Στην αριθµητική και λογική µονάδα συναντάµε συνήθως (α) το συσσωρευ-

τή, (β) καταχωρητές γενικού σκοπού, οι οποίοι περιέχουν τα δεδοµένα που

συµµετέχουν στις αριθµητικές και λογικές πράξεις και (γ) τον καταχωρητή

κατάστασης επεξεργαστή, που περιέχει τους δείκτες, που υποδεικνύουν το

αποτέλεσµα της προηγούµενης πράξης.

Στη µονάδα ελέγχου συναντάµε (α) τον καταχωρητή εντολών, που περιέχει

τον κώδικα λειτουργίας της εντολής, που εκτελείται εκείνη τη στιγµή και (β)

το µετρητή προγράµµατος, που περιέχει τη διεύθυνση της επόµενης προς

εκτέλεση εντολής.

2.4

Ο δίαυλος δεδοµένων, όπως έχουµε πει, µεταφέρει τα δεδοµένα από το

µικροεπεξεργαστή προς τις συσκευές εισόδου/εξόδου και τη µνήµη. Εποµέ-

νως, αφού ο µικροεπεξεργαστής µας διαχειρίζεται δεδοµένα µε µήκος λέξης

4 bytes = 32 bits (κάθε byte ισούται µε 8 bits), ο δίαυλος δεδοµένων αποτε-

λείται από 32 γραµµές.

Page 182: Mικροεπεξεργαστές

Ο δίαυλος διευθύνσεων θα πρέπει να περιέχει τόσες γραµµές διευθύνσεων

ώστε να µπορεί να διευθυνσιοδοτήσει όλες τις θέσεις µνήµης ή τις θέσεις

εισόδου/εξόδου. Εποµένως, ο δίαυλος διευθύνσεων θα πρέπει να αποτελεί-

ται από τουλάχιστον 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 183: 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

Τα περιεχόµενα

της µνήµης

Page 184: Mικροεπεξεργαστές

Το µέγεθος του προγράµµατος είναι 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 185: 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

Page 186: Mικροεπεξεργαστές

(β)Η εντολή 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 187: Mικροεπεξεργαστές

1 8 7A ¶ ∞ ¡ ∆ ∏ ™ ∂ π ™ A ™ ∫ ∏ ™ ∂ ø ¡ AÀ ∆ √ ∞ • π √ § √ ° ∏ ™ ∏ ™

µένως, η αντικατάσταση µίας εντολής µε µία άλλη µπορεί να µεταβάλει

την απόσταση αυτή και εποµένως την τιµή του εντέλου της εντολής.

Εάν πάλι δώσατε ολοκληρωµένη και σωστή απάντηση, µπράβο σας!

2.11

Όπως µπορείτε να διαβάσετε στην ενότητα 2.5, οι κυριότεροι τρόποι διευ-

θυνσιοδότησης, που διαθέτει συνήθως ένας µικροεπεξεργαστής, είναι οι εξής:

(α) υπονοούµενη διευθυνσιοδότηση

(β) άµεση διευθυνσιοδότηση

(γ) απευθείας ή απόλυτη διευθυνσιοδότηση

(δ) σχετική διευθυνσιοδότηση

(ε) έµµεση διευθυνσιοδότηση

(στ) δεικτοδοτηµένη διευθυνσιοδότηση

(ζ) διευθυνσιοδότηση µηδενικής σελίδας

Οι τρόποι αυτοί καθορίζουν πώς θα βρεθεί η ενεργή διεύθυνση, δηλαδή η

διεύθυνση εκείνη της κύριας µνήµης ή του συνόλου των καταχωρητών στην

οποία είναι αποθηκευµένα τα δεδοµένα, που απαιτούνται για την εκτέλεση

της εντολής.

2.12

Οι εντολές διακλάδωσης, όπως γνωρίζετε ήδη, µπορούν να µεταφέρουν την

εκτέλεση ενός προγράµµατος από ένα σηµείο του σε ένα άλλο. Εποµένως,

εξαρτώνται άµεσα από το περιεχόµενο του µετρητή προγράµµατος. Για το

λόγο αυτό χρησιµοποιούν τη σχετική διευθυνσιοδότηση. Με βάση αυτή, ένας

προσηµασµένος αριθµός προστίθεται στο περιεχόµενο του µετρητή προ-

γράµµατος και προκύπτει έτσι η διεύθυνση, στην οποία µεταφέρεται η εκτέ-

λεση του προγράµµατος.

2.13

Το ζητούµενο είναι να ορίσουµε την ενεργή διεύθυνση σε καθεµία από τις

εντολές

(α) Η πρώτη εντολή χρησιµοποιεί απόλυτη διευθυνσιοδότηση, εποµένως το

έντελό της αποτελεί και την ενεργή διεύθυνση, η οποία, όπως φαίνεται στο

σχήµα 2.22, είναι η διεύθυνση 123416 της κύριας µνήµης.

Page 188: Mικροεπεξεργαστές

(β) Στη δεύτερη εντολή χρησιµοποιούµε διευθυνσιοδότηση µηδενικής σελί-

δας, εποµένως το έντελο αποτελεί το λιγότερο σηµαντικό 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.

Page 189: Mικροεπεξεργαστές

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, αφού το αποτέλεσµα

Page 190: Mικροεπεξεργαστές

είναι διάφορο του µηδενός, (β) 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 191: 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 και των σχηµάτων

που περιέχει θα σας βοηθήσει να λύσετε όποιες απορίες έχετε.

Page 192: Mικροεπεξεργαστές

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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 193: 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.

Page 194: Mικροεπεξεργαστές

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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 195: 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

Page 196: Mικροεπεξεργαστές

µεταβεί στη λογική τιµή “1”, ο µικροεπεξεργαστής τοποθετεί στις γραµµές

δεδοµένων τα προς εγγραφή δεδοµένα. Τα δεδοµένα θα παραµείνουν εκεί

µέχρι την αρνητική ακµή του Φ2, οπότε το σήµα DBE µεταβαίνει στη λογι-

κή τιµή “0” και ο δίαυλος δεδοµένων σε κατάσταση υψηλής εµπέδησης. Η

µνήµη θα πρέπει να έχει προλάβει να αποθηκεύσει τα δεδοµένα µέχρι αυτά

να εξαφανιστούν από το δίαυλο δεδοµένων.

Εάν δώσατε τη σωστή απάντηση, µπράβο! Εάν πάλι δεν καταφέρατε να απα-

ντήσετε σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 4.2 και των σχη-

µάτων που περιέχει θα σας βοηθήσει να λύσετε όποιες απορίες έχετε.

4.5

Το σήµα VMA γίνεται ενεργό µε τη θετική ακµή του Φ1 κατά τη διάρκεια

ενός κύκλου µηχανής και παραµένει ενεργό µέχρι το τέλος του κύκλου

αυτού.

Το σήµα αυτό ενηµερώνει τη µνήµη ή τις συσκευές εισόδου/εξόδου ότι ο

µικροεπεξεργαστής έχει τοποθετήσει στο δίαυλο διευθύνσεων τη διεύθυνση

της µνήµης που θα λάβει µέρος στη λειτουργία ανάγνωσης ή εγγραφής.

4.6

Η κατάσταση WAIT προκύπτει από την εκτέλεση της εντολής WAI και θέτει

το µικροεπεξεργαστή σε κατάσταση αναµονής διακοπής. Κατά την κατά-

σταση αυτή αποθηκεύονται οι καταχωρητές στο σωρό και οι δίαυλοι του

µικροεπεξεργαστή µεταβαίνουν σε κατάσταση υψηλής εµπέδησης. Η έξο-

δος από την κατάσταση αυτή γίνεται όταν εµφανιστεί µία αίτηση διακοπής.

Η κατάσταση HOLD, που προκύπτει µε τα σήµατα TSC και DBE, οδηγεί

τους διαύλους διευθύνσεων και δεδοµένων του µικροεπεξεργαστή σε κατά-

σταση υψηλής εµπέδησης ώστε εξωτερικές συσκευές να µπορούν να πάρουν

τον έλεγχο των διαύλων αυτών και να υλοποιήσουν λειτουργίες απευθείας

προσπέλασης της µνήµης.

Η κατάσταση HALT προκύπτει µε εφαρµογή της λογικής τιµή “0” στον

ακροδέκτη HALT~ και οδηγεί το µικροεπεξεργαστή µετά την εκτέλεση της

τρέχουσας εντολής σε κατάσταση αναστολής επεξεργασίας. Κατά την κατά-

σταση αυτή οι δίαυλοι του µικροεπεξεργαστή µεταβαίνουν σε κατάσταση

υψηλής εµπέδησης.

Και οι τρεις αυτές ειδικές καταστάσεις χρησιµοποιούνται κυρίως σε περι-

1 9 6 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 197: 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 προσπαθεί να παραλλη-

λίσει την εκτέλεση µίας εντολής και την προσκόµιση/αποθήκευση των δεδο-

µένων από τη µνήµη. Στην ιδανική περίπτωση, τόσο η µονάδα εκτέλεσης

όσο και η µονάδα διασύνδεσης διαύλου θα βρίσκονται συνεχώς σε λειτουρ-

Page 198: Mικροεπεξεργαστές

γία, χωρίς να περιµένει η µία να ολοκληρώσει η άλλη τις εργασίες της. Με

τον τρόπο αυτό ο 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 199: 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 αποτελείται από τουλάχιστον τέσσερις

κύκλους ρολογιού. Στον πρώτο κύκλο ρολογιού στον πολυπλεγµένο δίαυλο

διευθύνσεων/δεδοµένων εµφανίζεται η διεύθυνση της µνήµης, από όπου θα

γίνει η ανάγνωση των δεδοµένων. Τα δεδοµένα µεταφέρονται στο δίαυλο

κατά τη διάρκεια του τρίτου και τέταρτου κύκλου ρολογιού. Στην περίπτω-

ση που ο χρόνος δεν είναι αρκετός και η µνήµη δεν προλαβαίνει να παρά-

σχει να δεδοµένα, τότε εισάγει επιπλέον κύκλους αναµονής.

Εάν δώσατε τη σωστή απάντηση, µπράβο! Εάν πάλι δεν καταφέρατε να απα-

Page 200: Mικροεπεξεργαστές

ντήσετε σωστά, µια πιο προσεκτική ανάγνωση της ενότητας 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 201: 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~, που γίνονται ενεργά, όταν έχουµε λειτουργία ανά-

Page 202: Mικροεπεξεργαστές

γνωσης ή εγγραφής αντίστοιχα, και το σήµα 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 203: 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

Page 204: Mικροεπεξεργαστές

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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 205: 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 καταχωρη-

Page 206: Mικροεπεξεργαστές

τή σωρού (µόνο που το λιγότερο σηµαντικό 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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 207: 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 της βιβλιογραφίας.

Page 208: Mικροεπεξεργαστές

°ÏˆÛÛ¿ÚÈ

Αίτηση ∆ιακοπής (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αταχωρητής που περιέχει την κορυφή του σωρού.

Page 209: Mικροεπεξεργαστές

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 φυσική διεύθυνση της µνήµης, που προκύπτει από την εφαρµογή του

τρόπου διευθυνσιοδότησης σε µία εντολή.

Page 210: Mικροεπεξεργαστές

Έντελο (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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 211: 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λοκληρωµένα κυκλώµατα που αποτελούνται από µερικές χιλιάδες έως

εκατοντάδες χιλιάδες τρανσίστορς.

Page 212: Mικροεπεξεργαστές

Κύρια µνήµη (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 π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 213: 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εντρική µονάδα επεξεργασίας, η οποία έχει δηµιουργηθεί για να εκτελεί

ειδικές λειτουργίες, όπως π.χ. πράξεις αριθµητικής κινητής υποδιαστολής.

Page 214: Mικροεπεξεργαστές

Ο ρόλος του είναι να βοηθά την κεντρική µονάδα επεξεργασίας. Ο 8087

είναι ο πιο δηµοφιλής συνεπεξεργαστής και συνεργάζεται µε τον 8086.

Συσσωρευτής (accumulator)

Kαταχωρητής της αριθµητικής και λογικής µονάδας, στον οποίο αποθη-

κεύεται είτε ένας από τους αριθµούς που απαιτείται για την πράξη είτε το

αποτέλεσµα της πράξης.

Σχετική διευθυνσιοδότηση (relative addressing)

Tρόπος προσπέλασης, στον οποίο η ενεργή διεύθυνση προκύπτει από την

πρόσθεση της τιµής του εντέλου της εντολής στο περιεχόµενο του µετρη-

τή προγράµµατος. Χρησιµοποιείται στις εντολές διακλάδωσης.

Τρόποι προσπέλασης (addressing modes)

Oι διαφορετικοί τρόποι, που χρησιµοποιεί ο µικροεπεξεργαστής, για να δηλώ-

σει τη θέση των δεδοµένων που απαιτούνται για την εκτέλεση µίας εντολής.

Υπονοούµενη διευθυνσιοδότηση (implied or register addressing)

Tρόπος προσπέλασης, στον οποίο η θέση των δεδοµένων προσδιορίζεται

από τον κωδικό λειτουργίας της εντολής.

2 1 4 M π ∫ ƒ √ ∂ ¶ ∂ • ∂ ƒ °∞ ™ ∆ ∂ ™

Page 215: Mικροεπεξεργαστές
Page 216: Mικροεπεξεργαστές