1. ÅéóáãùãÞ

201
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (2 η Έκδοση) Παναγιώτης Ε. Φουληράς Διδάκτωρ Πληροφορικής Παν/μίου Λονδίνου ΘΕΣΣΑΛΟΝΙΚΗ 1996

Transcript of 1. ÅéóáãùãÞ

Page 1: 1. ÅéóáãùãÞ

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

(2η Έκδοση)

Παναγιώτης Ε. Φουληράς

Διδάκτωρ Πληροφορικής Παν/μίου Λονδίνου

ΘΕΣΣΑΛΟΝΙΚΗ 1996

Page 2: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 2

Page 3: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 3

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

1. ΕΙΣΑΓΩΓΗ..................................................................................................................................................7

2. ΥΠΟΛΟΓΙΣΤΙΚΑ ΣΥΣΤΗΜΑΤΑ ..........................................................................................................11

2.1 ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΥΠΟΛΟΓΙΣΤΕΣ VON NEUMANN ...................................................................................112.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΨΗΦΙΑΚΏΝ ΣΥΣΤΗΜΑΤΩΝ ........................................................................................122.3 ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΏΜΑΤΑ ............................................................................................13

2.3.1 Τεχνολογίες Ψηφιακών Κυκλωμάτων.............................................................................................142.3.2 Βασικά Συνδυαστικά Ψηφιακά Κυκλώματα....................................................................................182.3.3 Βασικά Ακολουθιακά Ψηφιακά Κυκλώματα...................................................................................24

3. ΚΕΝΤΡΙΚΗ ΜΟΝΑΔΑ ΕΠΕΞΕΡΓΑΣΙΑΣ ............................................................................................29

3.1 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΏΝ..............................................................................................323.2 8086 - ΕΝΑΣ ΧΑΡΑΚΤΗΡΙΣΤΙΚΟΣ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΗΣ ........................................................................33

3.2.1 Εσωτερική Αρχιτεκτονική του 8086 ...............................................................................................343.2.2 Διασύνδεση του 8086 με το Υπολογιστικό Σύστημα........................................................................393.2.3 Διακοπές ........................................................................................................................................453.2.4 Δίαυλοι και Θύρες Επέκτασης ........................................................................................................46

4. 8086 ASSEMBLY......................................................................................................................................51

4.1 ΠΡΟΤΑΣΕΙΣ.............................................................................................................................................514.2 ΔΕΔΟΜΕΝΑ ΚΑΙ Η ΑΝΑΠΑΡΑΣΤΑΣΗ ΤΟΥΣ ΣΤΟΝ 8086.............................................................................524.3 ΕΝΤΟΛΕΣ ΜΕΤΑΚΙΝΗΣΗΣ ΔΕΔΟΜΕΝΩΝ..................................................................................................554.4 ΑΡΙΘΜΗΤΙΚΕΣ ΚΑΙ ΛΟΓΙΚΕΣ ΕΝΤΟΛΕΣ ...................................................................................................56

4.4.1 Αύξηση και Μείωση .......................................................................................................................574.4.2 Πρόσθεση και Αφαίρεση ................................................................................................................574.4.3 Πολλαπλασιασμός και Διαίρεση .....................................................................................................584.4.4 Πράξεις Λογικής.............................................................................................................................584.4.5 Πράξεις Ολίσθησης ........................................................................................................................59

4.5 ΤΡΟΠΟΙ ΠΡΟΣΒΑΣΗΣ ΣΕ ΔΕΔΟΜΕΝΑ ΑΠΟ ΤΟΝ 8086 ...............................................................................624.6 ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ ΚΑΙ ΕΠΑΝΑΛΗΨΗΣ.................................................................................................64

4.6.1 CMP και TEST...............................................................................................................................644.6.2 ¢λματα...........................................................................................................................................654.6.3 Εντολές Επανάληψης .....................................................................................................................66

4.7 ΜΑΚΡΟΕΝΤΟΛΕΣ....................................................................................................................................684.8 ΣΩΡΟΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΕΣ.........................................................................................................................69

4.8.1 Σωρός ............................................................................................................................................694.8.2 Διαδικασίες ....................................................................................................................................704.8.3 Πέρασμα Παραμέτρων σε Διαδικασία ............................................................................................71

4.9 ΥΛΟΠΟΙΗΣΗ ΔΟΜΏΝ ΕΛΕΓΧΟΥ ΣΕ 8086 ASSEMBLY..............................................................................734.10 ΕΝΤΟΛΕΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΣΥΜΒΟΛΟΣΕΙΡΏΝ ........................................................................................74

4.10.1 Μετακίνηση Συμβολοσειρών ........................................................................................................764.10.2 Σύγκριση Συμβολοσειρών ............................................................................................................774.10.3 Επανάληψη Εντολών Επεξεργασίας Συμβολοσειρών ...................................................................77

4.11 ΕΝΤΟΛΕΣ ΕΙΣΟΔΟΥ / ΕΞΟΔΟΥ ΣΤΟΝ 8086 ............................................................................................794.12 ΕΝΤΟΛΕΣ ΔΙΑΚΟΠΏΝ ...........................................................................................................................79

5. ΚΥΡΙΑ ΜΝΗΜΗ ΚΑΙ ΠΕΡΙΦΕΡΕΙΑΚΑ..............................................................................................83

5.1 ΚΑΤΗΓΟΡΙΕΣ ΜΝΗΜΗΣ ..........................................................................................................................835.2 ΟΡΓΑΝΩΣΗ ΜΝΗΜΗΣ ΚΑΙ ΠΡΟΣΠΕΛΑΣΗ ΤΩΝ ΠΕΡΙΕΧΟΜΕΝΩΝ ΤΗΣ .......................................................855.3 ΣΥΣΧΕΤΙΣΤΙΚΗ ΚΑΙ ΛΑΝΘΑΝΟΥΣΑ ΜΝΗΜΗ ...........................................................................................875.4 DMA.....................................................................................................................................................895.5 ΑΛΛΑ ΠΕΡΙΦΕΡΕΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ................................................................................................91

Page 4: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 4

5.5.1 Προγραμματιζόμενος Χρονοδιακόπτης/Μετρητής - το 8254 .......................................................... 915.5.2 Γενικός Ελεγκτής Περιφερειακών - το 8255 .................................................................................. 92

6. ΜΙΚΡΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ........................................................................................................... 95

6.1 ΜΙΚΡΟΑΡΧΙΤΕΚΤΟΝΙΚΗ .......................................................................................................................... 966.2 ΜΙΚΡΟΕΝΤΟΛΕΣ ΚΑΙ ΜΟΝΑΔΑ ΕΛΕΓΧΟΥ............................................................................................... 996.3 ΜΑΚΡΟΕΝΤΟΛΕΣ ΚΑΙ ΣΤΡΑΤΗΓΙΚΗ ΣΧΕΔΙΑΣΜΟΎ ΜΙΚΡΟΕΝΤΟΛΏΝ ..................................................... 103

7. ΕΞΕΛΙΞΕΙΣ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΕΠΕΞΕΡΓΑΣΤΩΝ ................................................................... 107

7.1 ΠΑΡΑΓΟΝΤΕΣ ΣΤΟΝ ΣΧΕΔΙΑΣΜΟ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΏΝ ...................................................................... 1077.2 ΚΑΤΗΓΟΡΙΕΣ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΏΝ .................................................................................................... 1077.3 ΟΙ ΠΡΏΤΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ........................................................................................................ 1087.4 ΣΥΓΚΡΙΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΟΡΙΣΜΕΝΩΝ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΏΝ ........................................................... 109

7.4.1 6502............................................................................................................................................. 1097.4.2 8086............................................................................................................................................. 1107.4.3 68000........................................................................................................................................... 1117.4.4 T800 ............................................................................................................................................ 112

7.5 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ RISC....................................................................................................................... 1147.5.1 Αρχές Σχεδίασης Επεξεργαστών RISC......................................................................................... 1157.5.2 Προσπέλαση στην Κύρια Μνήμη και ¢λματα............................................................................... 1167.5.3 Κατάχωρητές και Κλήση Διαδικασιών με Παραμέτρους .............................................................. 117

7.6 ΑΛΛΟΙ ΕΠΕΞΕΡΓΑΣΤΕΣ ........................................................................................................................ 1197.6.1 80286........................................................................................................................................... 1197.6.2 80386........................................................................................................................................... 1217.6.3 80486........................................................................................................................................... 1227.6.4 Pentium ....................................................................................................................................... 122

8. ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ........................................................................................................... 123

8.1 ΤΎΠΟΙ ΠΑΡΑΛΛΗΛΩΝ Η/Υ .................................................................................................................. 1248.1.1 Η Ταξινόμηση του Flynn.............................................................................................................. 1258.1.2 Ταξινόμηση κατά την Κατανομή της Κύριας Μνήμης................................................................... 1268.1.3 Ταξινόμηση κατά το Δίκτυο Ενδοσύνδεσης .................................................................................. 126

8.2 ΑΠΟΔΟΣΗ ............................................................................................................................................ 128

9. ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ................................................................ 131

9.1 ΙΣΤΟΡΙΚΗ ΕΞΕΛΙΞΗ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΑΤΩΝ ....................................................................... 1319.2 ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΑΤΩΝ ................................................................................................. 1329.3 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΜΙΑΣ ΔΙΕΡΓΑΣΙΑΣ - ΜS-DOS.................................................................... 1339.4 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΑΠΛΏΝ ΔΙΕΡΓΑΣΙΏΝ ........................................................................ 136

9.4.1 Αύξηση Χώρου Μνήμης ............................................................................................................... 1369.4.2 Μηχανισμοί Προστασίας Περιοχών Μνήμης ............................................................................... 1379.4.3 Μηχανισμοί Διαχείρισης Σειράς Εκτελέσεως Διεργασιών............................................................ 1389.4.4 Mηχανισμοί Επικοινωνίας Συνεργαζομένων Διεργασιών ............................................................ 139

10. ΟΘΟΝΕΣ ΚΑΙ ΚΑΡΤΕΣ ΓΡΑΦΙΚΩΝ............................................................................................... 141

10.1 ΟΘΟΝΕΣ Η/Υ..................................................................................................................................... 14110.2 ΚΑΡΤΕΣ ΓΡΑΦΙΚΏΝ ............................................................................................................................ 144

11. ΜΕΣΑ ΜΑΖΙΚΗΣ ΑΠΟΘΗΚΕΥΣΗΣ ............................................................................................... 149

11.1 ΜΑΓΝΗΤΙΚΕΣ ΔΙΣΚΕΤΕΣ..................................................................................................................... 14911.1.1 Φυσική και Λογική Οργάνωση των Δισκετών ............................................................................ 14911.1.2 Οδηγοί Δισκετών ....................................................................................................................... 15211.1.3 Συμπεράσματα ........................................................................................................................... 153

11.2 ΣΚΛΗΡΟΙ ΔΙΣΚΟΙ ................................................................................................................................ 15411.2.1 Δομή Σκληρών Δίσκων .............................................................................................................. 15411.2.2 Ορολογία και Τύποι Σκληρών Δίσκων ....................................................................................... 155

11.3 ΜΑΓΝΗΤΙΚΕΣ ΤΑΙΝΙΕΣ ....................................................................................................................... 15711.3.1 Παλιές Μονάδες Μαγνητικών Ταινιών ...................................................................................... 158

Page 5: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 5

11.3.2 Σημερινά Στάνταρ σε Μικρο-υπολογιστές ..................................................................................158

12. ΕΚΤΥΠΩΤΙΚΕΣ ΣΥΣΚΕΥΕΣ ............................................................................................................163

12.1 ΕΚΤΥΠΩΤΕΣ ΠΡΟΣΚΡΟΥΣΗΣ ...............................................................................................................16412.1.1 Εκτυπωτές Πρόσκρουσης με ¸τοιμες Μήτρες Χαρακτήρων......................................................16412.1.2 Εκτυπωτές Πίνακα Ακίδων ........................................................................................................166

12.2 ΕΚΤΥΠΩΤΕΣ LASER............................................................................................................................16812.3 EΚΤΥΠΩΤΕΣ ΨΕΚΑΣΜΟΎ ...................................................................................................................16912.4 ΣΥΜΠΕΡΑΣΜΑΤΑ ...............................................................................................................................17012.5 ΟΠΤΙΚΟΙ ΔΙΣΚΟΙ.................................................................................................................................171

13. ΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ .................................................................................................175

13.1 ΑΣΎΓΧΡΟΝΗ ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ.................................................................................................17613.1.1 Το Στάνταρ RS-232C .................................................................................................................17713.1.2 Modem.......................................................................................................................................179

13.2 ΣΎΓΧΡΟΝΗ ΣΕΙΡΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ...................................................................................................18113.3 ΤΟΠΙΚΑ ΔΙΚΤΥΑ ................................................................................................................................182

14. ΕΠΙΛΟΓΟΣ ...........................................................................................................................................187

15. ΣΥΝΗΘΙΣΜΕΝΕΣ ΔΙΕΘΝΕΙΣ ΣΥΝΤΟΜΟΓΡΑΦΙΕΣ....................................................................189

16. ΕΥΡΕΤΗΡΙΟ .........................................................................................................................................195

17. ΒΙΒΛΙΟΓΡΑΦΙΑ...................................................................................................................................201

Page 6: 1. ÅéóáãùãÞ
Page 7: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 7

1. ΕΙΣΑΓΩΓΗ

Οι Ηλεκτρονικοί Υπολογιστές (Η/Υ από εδώ και μετά) παίζουν πλέον πολύ σημαντικόρόλο στην καθημερινή μας ζωή. Από τον έλεγχο των φάσεων πλύσης ενός πλυντηρίου,στον έλεγχο των λογαριασμών και την πρόγνωση του καιρού. Επειδή δε όλες σχεδόν οιμορφές οργάνωσης των καθημερινών ενεργειών μας απαιτούν υπολογισμούς οι Η/Υ δεναποτελούν παρά εργαλεία που βοηθούν με αυτόν τον τρόπο.

Κάθε κατηγορία προβλημάτων απαιτεί και διαφορετική κατηγορία υπολογισμών. Γιααυτό, ο τομέας της ανάλυσης ενός προβλήματος, καθώς και της εύρεσης καικωδικοποίησης της γενικής του λύσης ώστε να το επεξεργαστεί στην συνέχεια ο Η/Υ,αποτελεί πλέον μία ολόκληρη επιστήμη, που ονομάζεται Επιστήμη Υπολογιστών ήΠληροφορική. Στενά συνδεδεμένη με αυτήν (ώστε πλέον να αποτελεί τμήμα της) είναι καιο σχεδιασμός και επιλογή των κατάλληλων υπολογιστικών συστημάτων, που θαχρησιμοποιηθούν για την λειτουργία αυτή.

Επειδή η επιστήμη αυτή χωρίζεται πλέον σε πολλούς κλάδους, που μεταβάλλονται πάραπολύ γρήγορα, είναι φυσικό να μην μπορεί κανείς να εμβαθύνει πλήρως σε όλους. Παρ’όλα αυτά, είναι αναγκαίο να έχει μία καλή ιδέα των βασικών αρχών των διαφόρωνυπολογιστικών συστημάτων, ώστε να μπορεί να καταλάβει το τι μπορεί να κάνει με αυτά,αλλά και να είναι σε θέση να σχεδιάσει ή να επιλέξει το σύστημα εκείνο το οποίοεξυπηρετεί καλύτερα τις ανάγκες του.

Οι σημειώσεις αυτές παρέχονται προσπαθώντας να επιτύχουν ακριβώς αυτόν τον σκοπό.Αν και η προσέγγιση που ακολουθείται είναι κυρίως από την πλευρά του υλικού(hardware) υπάρχουν αρκετές πληροφορίες για να δείξουν πώς αυτό συνδέεται με τιςαρχές του λογισμικού (software) - τουλάχιστον στο χαμηλότερο δυνατό επίπεδο.Περισσότερα επάνω σε αυτό το θέμα, όπως Λειτουργικά Συστήματα, ΓλώσσεςΠρογραμματισμού, επί μέρους τομείς εφαρμογών όπως Γραφικά και Βάσεις Δεδομένων,καθώς και η τέχνη (και όχι απλά επιστήμη) της ανάλυσης και σχεδιασμού συστημάτωναναπτύσσεται σε άλλα μαθήματα του Τμήματος Πληροφορικής.

Αν και τα όσα αναπτύσσονται εδώ έχουν εφαρμογή σε όλα σχεδόν τα υπολογιστικάσυστήματα, ιδιαίτερη έμφαση δίνεται σε εκείνα που βασίζονται σε Η/Υ συμβατούς μετους προσωπικούς Η/Υ της ΙΒΜ. Ο λόγος είναι ότι αυτοί οι Η/Υ έχουν ουσιαστικάεπικρατήσει σε επίπεδο όχι μόνον προσωπικό, αλλά και σε επίπεδο μικρομεσαίωνεπιχειρήσεων, που είναι και η πλειοψηφία των περιπτώσεων στην καθημερινήπραγματικότητα.

Για να είναι ο αναγνώστης σε θέση να παρακολουθήσει τις έννοιες που ακολουθούν δενχρειάζονται ιδιαίτερες γνώσεις πέρα από αυτές που έχει ήδη αποκομίσει από την εμπειρίαπρογραμματισμού με μία ή περισσότερες γλώσσες προγραμματισμού και μερικώνβασικών γνώσεων σε αριθμητικά συστήματα.

Page 8: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 8

Οι σημειώσεις αυτές ξεκινούν (Κεφάλαιο 2) με μία μικρή ιστορική αναδρομή στον τρόποοργάνωσης των περισσοτέρων Η/Υ, που ισχύει από την δεκαετία του '40 (von Neumann),καθώς και την σημαντική έννοια του αλγόριθμου. Στην συνέχεια παρουσιάζουν τακυριότερα αριθμητικά συστήματα που επικρατούν στον χώρο των Η/Υ, ακολουθούμενααπό μία εισαγωγή στα ψηφιακά ηλεκτρονικά και τις κυριότερες τεχνολογίες στον τομέααυτόν, αφού κάθε Η/Υ αποτελείται από τέτοια ολοκληρωμένα κυκλώματα. Το κεφάλαιοαυτό έχει επεκταθεί στην παρούσα έκδοση, ώστε να περιλαμβάνει όλα τα στοιχειώδηψηφιακά κυκλώματα, που αποτελούν τα δομικά υλικά για την κατασκευή επεξεργαστώνκαι άλλων ολοκληρωμένων.

Στο Κεφάλαιο 3 γίνεται μία συστηματική παρουσίαση της καρδιάς ενός Η/Υ: τουμικροεπεξεργαστή, χρησιμοποιώντας πρωταρχικά τον 8086. Αυτή η περιγραφή γίνεται σεδύο βήματα. Πρώτα παρουσιάζεται η εσωτερική αρχιτεκτονική του 8086 και μετά ηδιασύνδεσή του με το υπόλοιπο υπολογιστικό σύστημα. Σε αυτό το σημείο δίδεταιέμφαση στην πρόσβαση του 8086 στην κύρια μνήμη, μια και είναι η πιο συχνάαπαιτούμενη λειτουργία, καθώς και στις Διακοπές, λόγω της σπουδαιότητάς τους. Επίσηςδίδεται έμφαση στην περιγραφή των διαφόρων χαρακτηριστικών που διέπουν τονσχεδιασμό μοντέρνων διαύλων.

Στο Κεφάλαιο 4 παρουσιάζεται μία σύντομη εισαγωγή στην γλώσσα Assembly του 8086,ώστε να συνδυασθεί και με τα αντίστοιχα εργαστήρια. �λες οι σημαντικές εντολέςπαρουσιάζονται και αναλύονται, με διαγράμματα και παραδείγματα, όπου η απλήπαρουσίαση δεν είναι αρκετή.

Στο Κεφάλαιο 5 παρουσιάζονται τα οι διάφορες άμεσα περιφερειακές (ως προς τονεπεξεργαστή) συσκευές, όπως η κύρια μνήμη, η MMU, η λανθάνουσα μνήμη, η DMA,κλπ. Επίσης περιγράφονται συνοπτικά οι θύρες επέκτασης ενός συμβατού ΙΒΜ PC, μέσωτων οποίων είναι δυνατόν να προστεθούν και άλλες συσκευές στον κυρίως Η/Υ.

Στο Κεφάλαιο 6 (καινούργιο) παρουσιάζεται ο τρόπος σχεδιασμού μοντέρνωνεπεξεργαστών, με εκτενή αναφορά στον Μικροπρογραμματισμό και όλα τα συναφήπροβλήματα.

Στο Κεφάλαιο 7 παρουσιάζονται οι διάφοροι παράγοντες σχεδιασμού, οι κατηγορίεςεπεξεργαστών και μία συγκριτική παρουσίαση της εξέλιξης των κυριοτέρωνεπεξεργαστών. Σημαντικό μέρος του κεφαλαίου αυτού καταλαμβάνει πλέον μία εκτενήςεισαγωγή σε επεξεργαστές τύπου RISC.

Στο Κεφάλαιο 8 προχωρούμε πλέον στα καθ' εαυτού περιφερειακά. Εδώ γίνεταιπαρουσίαση των βασικών αρχών απεικόνισης σε οθόνη. Πρώτα αναλύονται οι παράγοντεςπου χαρακτηρίζουν την ποιότητα μίας οθόνης Η/Υ και μετά οι διάφορες κάρτες-οδηγοί(κάρτες γραφικών), που ελέγχουν απ' ευθείας τον τρόπο απεικόνισης των διαφόρωνδεδομένων στην οθόνη.

Στο Κεφάλαιο 8 υπάρχει μία σύντομη εισαγωγή στις κατηγορίες παράλληλων Η/Υ. Τοκεφάλαιο αυτό πρόκειται να επεκταθεί σύντομα.

Page 9: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 9

Στο Κεφάλαιο 9 γίνεται μία παρουσίαση του βασικότερου συνόλου προγραμμάτων πουβρίσκεται σε κάθε έναν Η/Υ: το Λειτουργικό Σύστημα. Παρουσιάζονται τα κυριότεραπροβλήματα και απαιτήσεις που επηρέασαν την εξέλιξη των υπολογιστικών συστημάτων,καθώς και οι λύσεις που έχουν προταθεί για αυτά.

Στο Κεφάλαιο 10 παρουσιάζονται οι κυριότερες τεχνολογίες εκτυπωτικών συσκευών,όπως η τεχνολογία πρόσκρουσης, ψεκασμού και Laser.

Στο Κεφάλαιο 11 γίνεται μία σύντομη και επιλεκτική παρουσίαση του τεράστιου τομέατων ψηφιακών επικοινωνιών και των διαφόρων τύπων δικτύων Η/Υ.

Το Κεφάλαιο 12 αποτελεί και τον επίλογο του παρόντος συγγράμματος, με μία σύντομηαναφορά όχι στο τι υπάρχει σε αυτές τις σημειώσεις, αλλά στο τι υπολείπεται ακόμη ωςπρος τις καινούργιες τεχνολογίες που αναπτύσσονται πέραν της ηλεκτρονικής, όπωςοπτικοί και βιολογικοί Η/Υ.

Είναι φυσικό πως οι σημειώσεις αυτές δεν αποτελούν παρά μία σύντομη μονάχα αναφοράστον τομέα της Τεχνολογίας Η/Υ και είτε περιέχουν ατέλειες, είτε ελλείψεις πουοφείλονται στην ραγδαία τεχνολογική εξέλιξη. Οποιαδήποτε σχόλια ή διορθώσεις που θαήθελε να κάνει ο αναγνώστης είναι ευπρόσδεκτα και θα πρέπει να απευθύνονται στονλογαριασμό:

[email protected]

Page 10: 1. ÅéóáãùãÞ
Page 11: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 11

2. ΥΠΟΛΟΓΙΣΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Οι υπολογιστές γενικής χρήσεως υπάρχουν σε διάφορα μεγέθη και δυνατότητες. Έτσι, οιπιο μεγάλοι και ισχυροί ονομάζονται συνήθως mainframes. Από πλευράς μεγέθους μπορείκαι να γεμίσουν ένα ολόκληρο δωμάτιο. Είναι σχεδιασμένοι να δουλεύουν με μεγάλεςταχύτητες και έχουν μεγάλη μνήμη. Χρησιμοποιούνται κυρίως όπου υπάρχουν εφαρμογέςπου απαιτούν μεγάλη ταχύτητα ή πολλοί χρήστες (όπως μεγάλοι οργανισμοί,πανεπιστήμια, κλπ) και για αυτό είναι εφοδιασμένοι με λειτουργικά συστήματα πουεπιτρέπουν την ταυτόχρονη εκτέλεση πολλών προγραμμάτων.

Οι minicomputers ανήκουν στην δεύτερη κατηγορία υπολογιστών και αποτελούνουσιαστικά λιγότερο ισχυρές εκδόσεις της πρώτης κατηγορίας. Συνήθωςχρησιμοποιούνται σε εταιρείες ή ιδρύματα μεσαίου μεγέθους.

Στην τελευταία κατηγορία ανήκουν οι λεγόμενοι μικροϋπολογιστές (microcomputers).Συνήθως χρησιμοποιούνται στο προσωπικό επίπεδο, αλλά με το πέρασμα του χρόνου οιδυνατότητές τους έχουν αυξηθεί τόσο πολύ, ώστε να είναι δύσκολο να τοποθετήσει πλέονκάποιος το διαχωριστικό σημείο ανάμεσα σε αυτούς και την προηγούμενη κατηγορία. Στιςσημειώσεις αυτές δίδεται περισσότερο βάρος στους Η/Υ αυτής της κατηγορίας.

2.1 Αλγόριθμοι και Υπολογιστές von Neumann

Σε όλες τις περιπτώσεις ο Η/Υ εκτελεί ένα σύνολο εντολών (που είναι αντιληπτές σεαυτόν), που αποτελούν ένα πρόγραμμα. Το τελευταίο δεν αποτελεί παρά τηνκωδικοποίηση ενός αλγορίθμου. Ουσιαστικά ένας αλγόριθμος αποτελείται από έναπεπερασμένο σύνολο εντολών που συνθέτουν την γενική λύση ενός προβλήματος. Επίπλέον, ένας αλγόριθμος παρέχει την εγγύηση ότι ο Η/Υ θα βρει πάντοτε μία λύση, εάν μίατέτοια λύση υπάρχει.

Η ιδέα είναι ότι ο προγραμματιστής παρέχει τον αλγόριθμο και ένα κατάλληλο σύνολοδεδομένων, ώστε ο Η/Υ να βρει μία τουλάχιστον λύση στην ειδική πλέον μορφή τουπροβλήματος (για τα συγκεκριμένα δεδομένα). Π.χ. παρατίθεται ο αλγόριθμοςυπολογισμού του μέσου όρου δύο αριθμών και σαν δεδομένα δύο συγκεκριμένοι αριθμοί.Ο Η/Υ υπολογίζει τότε τον μέσο όρο των αριθμών αυτών.

Αν και υπήρξαν υπολογιστικά συστήματα και παλαιότερα, η πρώτη γενεά Η/Υ μπορεί νατοποθετηθεί στην δεκαετία του ‘40. Τότε τέθηκαν και οι βάσεις για τους περισσότερουςΗ/Υ, που ακολουθούν πλέον το λεγόμενο μοντέλο του von Neumann. Ένας τέτοιος Η/Υαποτελείται από μία συσκευή Εισόδου / Εξόδου (I/O = Input/Output), μία μόνον Μνήμηγια να αποθηκεύει και εντολές προγράμματος και δεδομένα, μία Μονάδα Ελέγχου (CU =Control Unit) για να διερμηνεύει τις εντολές και μία Aριθμητική και Λογική μονάδα(ALU = Arithmetic & Logic Unit) για να επεξεργάζεται τα δεδομένα. Οι τελευταίες δύομονάδες αναφέρονται ως η Κεντρική Μονάδα Επεξεργασίας (CPU).

Page 12: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 12

2.2 Βασικές Έννοιες Ψηφιακών Συστημάτων

Όπως υποδηλώνει και η ονομασία του ένας Η/Υ χρησιμοποιείται για υπολογισμούς,χρησιμοποιώντας ψηφιακά ηλεκτρονικά εξαρτήματα για τον σκοπό αυτό. Η διαφοράανάμεσα στα ψηφιακά και τα αναλογικά ηλεκτρονικά είναι ότι στα πρώτα υπάρχει έναςπεπερασμένος αριθμός διακεκριμένων καταστάσεων. Κάθε μία κατάσταση εκφράζει καιμία τιμή. Το σύνολο των διαθεσίμων καταστάσεων καθορίζει το αριθμητικό σύστημα, πουακολουθείται.

Αν και υπάρχουν διάφορα ψηφιακά συστήματα, το πιο συνηθισμένο είναι τα δυαδικό.Αυτό σημαίνει, πως κάθε ηλεκτρονικό σήμα μπορεί να βρίσκεται σε τέτοια κατάστασηπου να εκφράζει μόνον μία από τις δύο δυνατές τιμές: 0 ή 1. Στα περισσότερα ψηφιακάσυστήματα, κάθε δυαδικό ψηφίο ή bit (=Binary digIT) εκφράζεται με επίπεδα τάσεως. Γιαπαράδειγμα, 0 Volts αντιστοιχούν στην τιμή bit 0 και 5 Volts στην τιμή bit 1.

Επειδή είναι δύσκολο για τους ανθρώπους να δουλεύουν στο δυαδικό σύστημα,χρησιμοποιείται το οκταδικό και πλέον συνηθέστερα το δεκαεξαδικό σύστημα, αφού έναδεκαεξαδικό ψηφίο αντιστοιχεί σε τέσσερα δυαδικά. Τέλος, κάθε αρνητικός αριθμόςεκφράζεται στο λεγόμενο 2-συμπλήρωμα ώστε η πρόσθεση μεταξύ δύο αριθμών(ανεξαρτήτως πρόσημου) να απαιτεί μόνον ένα βήμα (δεν απαιτούνται μετατροπές).

Εκτενής ανάλυση για το δυαδικό, οκταδικό και δεκαεξαδικό σύστημα, καθώς καιμετατροπές αριθμών μεταξύ τους και του δεκαδικού συστήματος, και άλλων εννοιώνόπως το 2-συμπλήρωμα, έχει ήδη γίνει αλλού [ΒΑΦ93] και για αυτό δεν θα επεκταθούμεπερισσότερο σε αυτό το σημείο. Απλά είναι σκόπιμο να επαναληφθεί ότι ένας τυπικόςυπολογιστής δουλεύει με ομάδες από bits, προκειμένου να σχηματίσει αριθμούςμεγαλύτερους του 1 (ή μικρότερους του 0). Οι καθιερωμένες ομάδες περιλαμβάνουν 8 bits(= 1 byte), 16 bits (= word), 32 bits (= long word) και 64 bits (= double word).

Σχ. 2.1 Αντιστοιχία Περιοχών Τάσεων για Δυαδικό 0 και 1

Η αιτία όμως που χρησιμοποιούνται ψηφιακά ηλεκτρονικά στους Η/Υ και που μάλισταακολουθούν το δυαδικό σύστημα, είναι ότι στην πράξη δεν είναι σχεδόν ποτέ δυνατόν ναεπιτύχουμε ακριβή επίπεδα τάσεως. Για να φθάσουμε επομένως σε αποδεκτό επίπεδοαξιοπιστίας, είναι αναγκαίο να υιοθετήσουμε περιοχές τάσεων για κάθε τιμή bit. Ένα

Page 13: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 13

τέτοιο παράδειγμα φαίνεται στο Σχ. 2.1, όπου το bit 1 αντιστοιχεί στην περιοχή τιμώντάσεως από 2 - 5 Volts και το bit 0 στην περιοχή τιμών τάσεως από 0 - 0,8 Volts. Ηπεριοχή ανάμεσα στα 0,8 και 2 V θεωρείται περιοχή αβεβαιότητος και δεν αντιστοιχεί σεκαμία δυαδική τιμή.

Από την άλγεβρα του Bool είναι γνωστό ότι οι διάφορες λογικές πύλες λειτουργούν επάνωστις λογικές αξίες 1 (αληθές) και 0 (ψευδές) [ΒΑΦ93]. Όπως φαίνεται και από τοτελευταίο παράδειγμα, όταν κατασκευάζονται λογικές πύλες σαν ηλεκτρονικάκυκλώματα, είναι αναγκαίο να υπάρξει αντιστοίχηση ανάμεσα στις περιοχές τάσεων καιτις δυνατές λογικές τιμές (0 και 1). Εάν χρησιμοποιούνται χαμηλές τιμές τάσεως για τολογικό 0 και υψηλές για το λογικό 1, έχουμε την λεγόμενη θετική λογική (positive logic).Στην αντίθετη περίπτωση, έχουμε την αρνητική λογική (negative logic).

Κάτι που επίσης είναι χρήσιμο για την παρουσίαση των διαφόρων είναι το γεγονός ότι οιαλλαγές καταστάσεων στα ψηφιακά κυκλώματα δεν συμβαίνουν ακαριαία. Ο χρόνος πουαπαιτείται για να πάει κάποιο σήμα από 0 σε 1 ονομάζεται χρόνος ανύψωσης (rise time),ενώ ο χρόνος που απαιτείται για να πάει από 1 σε 0 ονομάζεται χρόνος πτώσης (fall time).Επίσης ορίζεται και η καθυστέρηση ή ταχύτητα διάδοσης (propagation delay) ενόςκυκλώματος, που αντιπροσωπεύει τον χρόνο διάδοσης ενός σήματος μέσα από αυτό.

Εξ αιτίας των παραπάνω, αλλά και άλλων καθυστερήσεων είναι δυνατόν ναδημιουργηθούν σοβαρά προβλήματα αξιοπιστίας ενός ψηφιακού συστήματος. Για αυτόντον λόγο, εκτός από τα λεγόμενα ασύγχρονα συστήματα, υπάρχουν και τα σύγχρονασυστήματα, στα οποία υπάρχει ένα τουλάχιστον ψηφιακό σήμα (το σήμα ρολογιού - clocksignal), για το οποίο υποτίθεται ότι δεν υπάρχει (σημαντική) καθυστέρηση στην διάδοσήτου σε οποιοδήποτε μέρος του κυκλώματος και χρησιμοποιείται για να ελέγχει τιςδιάφορες φάσεις εκτελέσεως λειτουργιών στο κύκλωμα.

2.3 Ψηφιακά Ολοκληρωμένα Κυκλώματα

Όλα τα ηλεκτρονικά κυκλώματα που χρησιμοποιούνται στους Η/Υ έχουν σαν βάση τουςτρανζίστορ, που έχουν κάποια συγκεκριμένα γενικά χαρακτηριστικά, ανάλογα με τηντεχνολογία που χρησιμοποιείται. Αυτά χρησιμοποιούνται για να κατασκευαστούν οιδιάφορες λογικές πύλες, που με την σειρά τους συνθέτουν τα flip-flop, που αποτελούν τιςμονάδες μνήμης των Η/Υ, αφού μπορούν να αποθηκεύσουν από ένα bit το καθένα.

Με την πρόοδο της τεχνολογίας, κατορθώθηκε να τοποθετείται μεγάλος αριθμός απόπύλες με τις απαιτούμενες διασυνδέσεις σε μία μικροσκοπική συσκευή,πραγματοποιώντας ένα ή περισσότερα ηλεκτρονικά κυκλώματα. Αυτό ονομάστηκεολοκλήρωση (integration) και τα αντίστοιχα κυκλώματα ολοκληρωμένα (ICs =Integrated Circuits) ή τσιπ (chips). Ανάλογα με τον αριθμό των πυλών που μπορούσαν νατοποθετηθούν σε ένα τέτοιο ολοκληρωμένο, δημιουργήθηκε και η παρακάτω ταξινόμησηγια να εκφράσει το μέγεθος της ολοκλήρωσης:

1. SSI (Small Scale Integration): 10 ή λιγότερες πύλες σε ένα τσιπ.

Page 14: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 14

2. MSI (Medium Scale Integration): 10 - 100 πύλες.

3. LSI (Large Scale Integration): 100 - 10.000 πύλες.

4. VLSI (Very Large Scale Integration): 10.000 ή περισσότερες πύλες.

Ο σχεδιασμός ενός λογικού κυκλώματος σήμερα συνήθως γίνεται σε κάποιο υψηλότεροεπίπεδο περιγραφής και κατεβαίνει μέχρι το επίπεδο πύλης (gate level), όπου η πύληαποτελεί την μικρότερη λογική μονάδα. Ο λόγος για κάτι τέτοιο είναι ότι έτσι τοοποιοδήποτε σχέδιο είναι ανεξάρτητο (όσον αφορά την λογική του λειτουργία) από τηνσυγκεκριμένη τεχνολογία.

Ουσιαστικά, κάθε ψηφιακό ολοκληρωμένο κύκλωμα πραγματοποιεί μία λογικήσυνάρτηση. Υπάρχουν δύο μεγάλες κατηγορίες τέτοιων συναρτήσεων και επομένωςψηφιακά κυκλώματα:

1. Συνδυαστικά Κυκλώματα (Combinational Circuits): Η αντίστοιχησυνάρτηση εξαρτάται μόνον από τις τρέχουσες τιμές των γραμμών εισόδωνστο κύκλωμα

2. Ακολουθιακά Κυκλώματα (Sequential Circuits): Η αντίστοιχη

συνάρτηση εξαρτάται όχι μόνον από τις τρέχουσες τιμές των γραμμώνεισόδων, αλλά και από την προηγούμενη(ες) κατάσταση(εις) τουκυκλώματος.

2.3.1 Τεχνολογίες Ψηφιακών Κυκλωμάτων

Ένα από τα σημαντικότερα προβλήματα που αντιμετωπίζει ένας σχεδιαστής κυκλωμάτωνσήμερα, είναι να επιλέξει τα διάφορα ολοκληρωμένα που θα συνθέσουν το κύκλωμα πουσχεδίασε. Και αυτό γιατί ανάλογα με την οικογένεια στην οποία ανήκουν, έχουν καιδιαφορετικά χαρακτηριστικά που επηρεάζουν το τελικό αποτέλεσμα. Τα πιο σημαντικάχαρακτηριστικά συνήθως είναι η ταχύτητα διάδοσης σήματος (μέσα από μία λογική πύληαυτής της οικογένειας), η κατανάλωση ισχύος και το fan-out.

Τα παραπάνω χαρακτηριστικά είναι συνήθως αντικρουόμενα. Έτσι, όσο πιο μεγάληταχύτητα διάδοσης έχει ένα ολοκληρωμένο (ή τα σήματα που μπορούν να διοχετευθούνέχουν πολύ μεγάλη συχνότητα), τόσο περισσότερο μεγαλώνει η κατανάλωση ισχύος.

Τέλος το λεγόμενο fan-out ενός στοιχείου αντιπροσωπεύει τον μέγιστο αριθμό εισόδωναπό στοιχεία της ίδιας οικογένειας τα οποία μπορεί να τροφοδοτήσει η έξοδος τουπρώτου, χωρίς προβλήματα. Αυτό οφείλεται στο γεγονός ότι το ρεύμα που μπορεί ναδώσει στην έξοδό του κάθε στοιχείο (πύλη ή τρανζίστορ) του κυκλώματος είναιπεπερασμένο.

Οι κυριότερες οικογένειες ολοκληρωμένων κυκλωμάτων σήμερα είναι οι εξής:

Page 15: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 15

1. ΤΤL (Transistor Transistor Logic) - Εδώ χρησιμοποιούνται διπολικά (bipolar)τρανζίστορ NPN ή PNP. Αυτά έχουν την ιδιότητα να συμπεριφέρονται σε ορισμένεςπεριοχές λειτουργίας τους σαν περίπου ιδανικοί διακόπτες. Όπως φαίνεται και από το Σχ.2.2 (α), υπάρχουν τρεις διαφορετικοί ακροδέκτες σε κάθε διπολικό τρανζίστορ: η Βάση, οΣυλλέκτης και ο Εκπομπός. Η λειτουργία του τρανζίστορ αυτού ελέγχεται από την τάσηπου εφαρμόζεται στην Βάση. Εάν αυτή η τάση είναι πολύ μικρή (0 - 1 Volts), τότε τοτρανζίστορ εμφανίζεται σαν μία άπειρη αντίσταση και επομένως ο Συλλέκτης βρίσκεταισε τάση ίση με του Vcc (συνήθως +5 V). Εάν όμως αυτή η τάση είναι αρκετά μεγάλη (2 -5 Volts), τότε το τρανζίστορ λειτουργεί περίπου σαν τέλειος αγωγός (αμελητέααντίσταση) και ο Συλλέκτης βρίσκεται σε τάση ίση με του Εκπομπού (σχεδόν 0 Volts).Τάσεις έξω από τις παραπάνω περιοχές δεν επιτρέπεται να εφαρμόζονται στην Βάση,επειδή το τότε το τρανζίστορ λειτουργεί σαν γραμμικός ενισχυτής τάσεως και όχι σανδιακόπτης. Στο Σχ. 2.2 βλέπετε παραδείγματα βασικής υλοποίησης ορισμένων λογικώνπυλών.

Σχ. 2.2 TTL: (α) Αντιστροφέας (ΝΟΤ), (β) Πύλη ΝAND, (γ) Πύλη NOR

Όπως φαίνεται από το Σχ. 2.2 (α), το βασικό ηλεκτρονικό στοιχείο είναι το διπολικότρανζίστορ (εδώ τύπου NPN). Ένα μικρό σήμα εφαρμόζεται στην Βάση του τρανζίστορ.Εάν αυτό το σήμα είναι κάτω από κάποιο προκαθορισμένο όριο, το τρανζίστορ δενεπιτρέπει την διέλευση ρεύματος από τον Συλλέκτη προς τον Εκπομπό και επομένως ητάση στον Συλλέκτη είναι περίπου Vcc (~ 5 V). Eάν όμως το σήμα στην Βάση ξεπεράσειτο απαιτούμενο όριο, το τρανζίστορ επιτρέπει την διέλευση ρεύματος προς τον Εκπομπόκαι επομένως η τάση στον Συλλέκτη γίνεται περίπου 0 V. Στην πράξη όμως υπάρχουν καιάλλοι παράγοντες που πρέπει να ληφθούν υπ’ όψιν, όπως η μεταβολή τωνχαρακτηριστικών λειτουργίας του τρανζίστορ λόγω θερμότητας, η δυνατότητα οδήγησηςπερισσοτέρων του ενός τρανζίστορ από την έξοδο ενός, κλπ. Για αυτούς τους λόγους,ένας αναστροφέας, σε TTL, αποτελείται στην πράξη από περισσότερα τρανζίστορ, όπωςφαίνεται και από το Σχ. 2.3.

Page 16: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 16

Σχ. 2.3 Αντιστροφέας (Inverter) Σχεδιασμένος σε TTL (SN7404)

Συνήθως θα δείτε τέτοια τσιπ μέσα σε έναν Η/Υ για τα οποία ο αναγραφόμενος κωδικόςαρχίζει από 74 ή 54. Το πρώτο σημαίνει κανονική χρήση (0 έως 70 oC), ενώ το δεύτεροστρατιωτική (-55 έως 125 oC). Ένα ή δύο γράμματα στην μέση του κωδικού εκφράζουντην υπο-οικογένεια ως εξής:

74xx = Κανονική TTL74Lxx = Low-power (χαμηλής κατανάλωσης ισχύος)74Sxx = Schottky74LSxx = Low-power Schottky74ASxx = Advanced Schottky74ALSxx = Advanced Low-power Schottky

Ο τύπος και το πλήθος των λογικών πυλών εκφράζεται από τον υπόλοιπο κωδικό (2 - 4ψηφία). Τα κυριότερα χαρακτηριστικά ανά υπο-οικογένεια της TTL φαίνονται στονΠίνακα 2-1.

Πίνακας 2-1 Κυριότερα Χαρακτηριστικά Υπο-οικογενειών TTL

Υπο-οικογένειαTTL

ΚαθυστέρησηΔιάδοσης

Κατανάλωση Ισχύος(ανά πύλη)

Μέγιστη ΑποδεκτήΣυχνότητα

Fan-out

Στάνταρ 10 ns 10 mW 35 MHz 10L 33 ns 1 mW 3 MHz 9S 3 ns 19 mW 125 MHz 10LS 9,5 ns 2 mW 45 MHz 10AS 1,5 ns 10 mW 175 MHz 25ALS 4 ns 1 mW 50 MHz 10

2. ECL (Emitter-Coupled Logic) - Ολοκληρωμένα αυτής της οικογένειαςχρησιμοποιούν διπολικά τρανζίστορ, αλλά αναπτύσσουν εξαιρετικά μεγάλες ταχύτητεςκαι μπορούν να λειτουργήσουν σε συχνότητες 1,2 GΗz ή και μεγαλύτερες. Πάντοτε στηνέξοδο δίνουν δύο σήματα, το κανονικό και το ανεστραμμένο. Καταναλώνουν εξαιρετικάμεγάλη ισχύ και είναι πιο ακριβά από ολοκληρωμένα άλλων οικογενειών. Η χρήσηψυκτικού μηχανισμού είναι κάτι το συνηθισμένο. Όλα αυτά τα χαρακτηριστικά τα κάνουννα χρησιμοποιούνται μόνον σε πολύ γρήγορους υπολογιστές και για αυτό είναι απίθανο νατα συναντήσετε στην καθημερινή πρακτική.

Page 17: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 17

3. CMOS (Complementary Metal-Oxide Semiconductor) - Χαρακτηριστικό όλωντων ΜΟS κυκλωμάτων είναι ότι χρησιμοποιούνται FET (Field Effect Tracnsistor), αντίγια τα διπολικά NPN και PNP. Λόγω του μικρού μεγέθους τους είναι δυνατόν ναεπιτευχθεί μεγάλος βαθμός ολοκλήρωσης. Αν και υπάρχουν υπο-οικογένειες όπως ηPMOS και η NMOS, σήμερα έχουν ξεπεραστεί τα εμπόδια της κατασκευήςολοκληρωμένων CMOS και για αυτό θα αναφερθούμε μόνον σε αυτά.

Τα κυριότερα πλεονεκτήματα (εκτός του μικρού μεγέθους) είναι ο χαμηλός θόρυβος και ηχαμηλή κατανάλωση ισχύος που είναι μικρότερη από 1 mW, όταν αλλάζει λογικήκατάσταση και σχεδόν μηδενική, όταν η πύλη δεν αλλάζει κατάσταση. Για αυτόν τον λόγοχρησιμοποιούνται σήμερα κατά κόρον σε τυπικούς Η/Υ. Ένα παράδειγμα σχεδιασμούαντιστροφέα (Inverter) σε CMOS, φαίνεται στο Σχ. 2.4.

Σχ. 2.4 Αντιστροφέας (Inverter) σε CMOS

Οι διάφορες CMOS υπο-οικογένειες είναι οι εξής:

1. 4000 - Στάνταρ CMOS.

2. 74Cxx - Xαμηλής κατανάλωσης ισχύος συμβατά με TTL (μόνον στουςακροδέκτες - pins). Συνήθως 50% ταχύτερα από τα ολοκληρωμένα τηςπροηγούμενης κατηγορίας.

3. 74HCxx - Συμβατά με TTL χαμηλής ισχύος και χαμηλού θορύβου.

4. 74ΗCTxx - Για διασύνδεση CMOS με TTL.

5. 74ACxxxxx - Advanced CMOS. Υψηλότερη ταχύτητα, fan-out και δυνατότητα γιασήματα με μεγαλύτερη συχνότητα από ότι τα στάνταρ CMOS.

6. 74ACTxxxxx - Advanced TTL-compatible CMOS. Ουσιαστικά η προηγούμενηυπο-οικογένεια, αλλά συμβατή με ΤΤL.

Σε γενικές γραμμές οι πύλες τεχνολογίας MOS είναι 10 φορές πιο αργές από τιςαντίστοιχες TTL και 100 φορές πιο αργές από τις αντίστοιχες ECL, αλλά ο ελάχιστος

Page 18: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 18

χώρος και η ελάχιστη κατανάλωση ισχύος τις κάνουν εξαιρετικά ελκυστικές για τουςκατασκευαστές.

Για περισσότερες πληροφορίες για κάθε μία οικογένεια, αλλά και τρόπους διασύνδεσης θαπρέπει να ανατρέξετε στα εγχειρίδια δεδομένων (data books) των αντίστοιχωνοικογενειών.

Τέλος θα πρέπει να γνωρίζετε ότι οι περισσότερες οικογένειες ολοκληρωμένων (και στηνπράξη και οι δύο που θα συναντήσετε) έχουν και μία τρίτη κατάσταση, που ονομάζεταιHigh Impedance State (Κατάσταση Υψηλής Αντιστάσεως) κατά την οποία δεν στέλνουνκανένα σήμα στην έξοδό τους. Επιτρέπεται έτσι η χρήση ενός κοινού αγωγού στην έξοδοπολλών τσιπ, εφ όσον μόνον ένα από αυτά στέλνει κάποιο σήμα (λογικό 0 ή 1) και ταάλλα βρίσκονται στην κατάσταση υψηλής αντιστάσεως. Τέτοια παραδείγματα φαίνονταιστο Σχ. 2.5.

Σχ. 2.5 (α) Μη-Αναστρεφόμενος Απομονωτής, (β) Αναστρεφόμενος Απομονωτής

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

2.3.2 Βασικά Συνδυαστικά Ψηφιακά Κυκλώματα

Με την χρήση των πινάκων αληθείας είναι δυνατόν να υπολογισθούν οι αντίστοιχεςλογικές συναρτήσεις και στην συνέχεια να γίνει ο σχεδιασμός του επιθυμητούκυκλώματος. Στην πράξη όμως σήμερα, λίγα κυκλώματα κατασκευάζονται με τέτοιοτρόπο. Αντιθέτως, υπάρχουν κάποια κυκλώματα που αποτελούνται από ομάδες πυλών καιπαίζουν τον ρόλο δομικών υλικών. Τα κυριότερα βασικά συνδυαστικά κυκλώματαπαρουσιάζονται στην συνέχεια, ενώ τα ακολουθιακά θα παρουσιασθούν σε επόμενοκεφάλαιο.

Ο Πολυπλέκτης (Multiplexer) είναι ένα κύκλωμα με 2n εισόδους δεδομένων και nεισόδους ελέγχου, οι οποίες και επιλέγουν μόνον μία από τις εισόδους και αποστέλλουν τοσήμα της στην μοναδική έξοδο. Η βασική χρήση ενός τέτοιου κυκλώματος είναιπροφανής και ένα παράδειγμα υλοποίησής του φαίνεται στο Σχ. 2.6, με έξι εισόδους

Page 19: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 19

δεδομένων και τρεις ελέγχου. Μία άλλη πιθανή χρήση είναι η μετατροπή δεδομένων απόπαράλληλη μορφή (π.χ. 8-bit) σε σειριακή, με το επιλέγεται κάθε φορά διαδοχικά μία απότις γραμμές εισόδου.

Το αντίστροφο του κυκλώματος αυτού είναι ο Αποπολυπλέκτης (Demultiplexer), οοποίος έχει μόνον μία γραμμή εισόδου δεδομένων και n γραμμές ελέγχου, πουσχηματίζουν έναν δυαδικό αριθμού ίσου μήκους. Αντί για μία έξοδο, τώρα υπάρχουν 2n

γραμμές εξόδου, μία μόνον εκ των οποίων επιλέγεται βάσει του δυαδικού αριθμού πουσχηματίζεται από τις γραμμές ελέγχου.

Σχ. 2.6 Πολυπλέκτης 8 Εισόδων

Παρόμοιος με τον Αποπολυπλέκτη είναι ο Αποκωδικοποιητής (Decoder). Αυτός έχει nγραμμές ελέγχου μέσω των οποίων επιλέγει μία μόνον από τις 2n γραμμές εξόδου,κάνοντας την τιμή του σήματος σε αυτήν λογικό 1, ενώ σε όλες τις άλλες γραμμές εξόδουη λογική τιμή του σήματος είναι 0. Παράδειγμα αυτού του κυκλώματος φαίνεται στο Σχ.2.7.

Page 20: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 20

Σχ. 2.7 Αποκωδικοποιητής 3 σε 8

Σχ. 2.8 Συγκριτής 4-bit

Ο Συγκριτής (Comparator) είναι ένα ακόμη χρήσιμο κύκλωμα, σκοπός του οποίου είναιη σύγκριση δύο δυαδικών αριθμών Α και Β. Στην βασική του έκδοση που φαίνεται στοΣχ. 2.8, στην μοναδική του έξοδο παράγεται 0 εάν οι δύο προς σύγκριση αριθμοί είναιίσοι και 1 εάν είναι άνισοι. Στην πράξη υπάρχει και άλλη μία έξοδος ώστε να μπορεί ναδείχνει εάν Α > Β ή Β < Α.

Page 21: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 21

Σχ. 2.9 PLA 12 Εισόδων και 6 Εξόδων

Για την περίπτωση που είναι επιθυμητή η υλοποίηση πολλών αυθαίρετων λογικώνσυναρτήσεων μπορεί να χρησιμοποιηθεί ο Προγραμματιζόμενος Λογικός Πίνακας(PLA - Programmable Logic Array), παράδειγμα του οποίου φαίνεται στο Σχ. 2.9.Προϋπόθεση για την χρήση ενός τέτοιου κυκλώματος είναι η έκφραση της κάθε μίαςλογικής συνάρτησης ως άθροισμα γινομένων των μεταβλητών εισόδων και τωναντίστροφών τους. Οι αντίστροφες τιμές των μεταβλητών εισόδων παράγονται εσωτερικά(από τους αντιστροφείς του σχήματος), τα γινόμενα από τις πύλες AND και τα τελικάαθροίσματα από τις πύλες OR. Ουσιαστικά υπάρχουν δύο πίνακες γραμμών για τηνδρομολόγηση των σημάτων από όλα τα επιμέρους λογικά στοιχεία σε όλα τα στοιχεία τουεπόμενου σταδίου.

Μέσω των μικροσκοπικών ασφαλειών που παρεμβάλλονται είναι δυνατή η μηδρομολόγηση κάποιου στοιχείου σε κάποιο άλλο, που μπορούν να καούν από μία ειδικήσυσκευή (όπως και οι PROM) από τον τελικό σχεδιαστή. Υπάρχουν όμως και εκδόσειςστις οποίες δεν υπάρχουν ασφάλειες, αλλά ο σχεδιαστής είναι σε θέση να "σβήσει" την

Page 22: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 22

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

Σχ. 2.10 Κύκλωμα Ολίσθησης κατά 1 bit προς Αριστερά ή Δεξιά

Το Κύκλωμα Ολίσθησης (Shift Circuit) είναι ένα χρήσιμο κύκλωμα για ολίσθησηδυαδικών αριθμών - κάτι που είναι χρήσιμο για αριθμητικές κυρίως πράξεις. Παράδειγματου κυκλώματος αυτού φαίνεται στο Σχ. 2.10, όπου ένας αριθμός των 8 bit, ολισθαίνεικατά ένα bit προς τα αριστερά ή προς τα δεξιά, παράγοντας το αποτέλεσμα στις οκτώεξόδους του S0, ..., S7. Η επιλογή της κατεύθυνσης ολίσθησης γίνεται μέσω της γραμμήςελέγχου C (0 για αριστερά και 1 για δεξιά).

Ειδικά για την πραγματοποίηση αριθμητικών πράξεων είναι αναγκαία η ύπαρξηκυκλώματος που να είναι σε θέση να προσθέσει δύο αριθμούς. Εκ πρώτης όψεως, αυτό τοβασικό κύκλωμα φαίνεται να είναι ο Ημιαθροιστής (Half-Adder), παράδειγμα τουοποίου παρουσιάζεται στο Σχ. 2.11. Αυτός είναι σε θέση να προσθέσει δύο bit και ναδώσει στην έξοδο ένα bit για το άθροισμα και ένα για το πιθανό κρατούμενο. Τοπρόβλημα όμως είναι ότι δεν μπορεί να χρησιμοποιήσει προηγούμενο κρατούμενο ωςείσοδο για την πρόσθεση.

Σχ. 2.11 Ημιαθροιστής (Half-Adder)

Page 23: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 23

Το πρόβλημα αυτό έρχεται να επιλύσει ο Πλήρης Αθροιστής (Full Adder), ο οποίοςεπιτρέπει και την συμμετοχή κρατουμένου από προηγούμενο στάδιο (bit χαμηλότερηςτάξης) στον υπολογισμό του αθροίσματος, όπως φαίνεται από το Σχ. 2.12. Για νασχηματισθεί ένας αριθμός εύρους 16 bit, δεν έχουμε παρά να τοποθετήσουμε δεκαέξιτέτοιους πλήρεις αθροιστές, τον έναν δίπλα στον άλλο.

Σχ. 2.12 Πλήρης Αθροιστής

Έτσι σχηματίζεται ο λεγόμενος Αθροιστής Κυματοειδούς Διέλευσης Κρατουμένου (RippleCarry Adder), στον οποίο απαιτείται ο υπολογισμός κρατουμένου του bit προηγούμενηςτάξης, πριν να είναι δυνατή η άθροιση των bit της επόμενης τάξης με την συμμετοχή τουκρατουμένου. Αυτό το πρόβλημα, το οποίο δημιουργεί σημαντική καθυστέρηση, λύνεταιμε την χρήση Αθροιστών Πρόβλεψης Κρατουμένου (Carry Lookahead Adders).

Τα παραπάνω βασικά δομικά στοιχεία μπορούν να χρησιμοποιηθούν για τον σχεδιασμόμεγαλύτερων βασικών μονάδων σε έναν Η/Υ, όπως η Αριθμητική Λογική Μονάδα(ALU), παράδειγμα της οποίας φαίνεται στο Σχ. 2.13.

Page 24: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 24

Σχ. 2.13 Παράδειγμα Αριθμητικής και Λογικής Μονάδας (ALU)

2.3.3 Βασικά Ακολουθιακά Ψηφιακά Κυκλώματα

Όπως αναφέρθηκε προηγουμένως, στα ακολουθιακά κυκλώματα η τιμή της κάθε εξόδουδεν είναι συνάρτηση μόνον των τρεχουσών τιμών των εισόδων, αλλά και των εξόδωντους. Η ιδιότητα αυτή είναι εξαιρετικά χρήσιμη, δεδομένου ότι ένα κύκλωμα μνήμης,πρέπει να "θυμάται" την προηγούμενη τιμή του. Στην πιο απλή περίπτωση η μονάδαπληροφορίας είναι το 1 bit, άρα ένα βασικό κύκλωμα μνήμης θα πρέπει να είναι σε θέσηνα διατηρήσει μία τέτοια πληροφορία.

Παράδειγμα τέτοιου κυκλώματος φαίνεται στο Σχ. 2.16 (α). Το συγκεκριμένο κύκλωμααποτελείται από δύο πύλες NOR, δύο εισόδους (S = Set, R = Reset) και μία έξοδο (Q) καιτο αντίστροφό της (/Q) και ονομάζεται SR Latch. Δημιουργώντας τον πίνακα αληθείαςγια το κύκλωμα αυτό, παρατηρούμε ότι η επόμενη τιμή εξόδου εξαρτάται όχι μόνον απότην τιμή των S και R, αλλά και από την τρέχουσα τιμή εξόδου Q.

Page 25: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 25

Σχ. 2.14 (α) SR Latch, (β) Clocked SR Latch

Πιο συγκεκριμένα, εάν S = R = 0, το κύκλωμα δίνει στην έξοδο την τιμή του Q, άρα"θυμάται" την τρέχουσα τιμή εξόδου. Εάν S = 1 και R = 0, η έξοδος γίνεται 1 (Set) και εάνσυμβαίνει S = 0 και R = 1, η έξοδος γίνεται 0 (Reset). Ο συνδυασμός S = 1 και R = 1οδηγεί σε μη σταθερή κατάσταση της τιμής εξόδου και για αυτό δεν επιτρέπεται.

Το παραπάνω κύκλωμα θεωρείται ασύγχρονο, επειδή η έξοδος του κυκλώματος δεναλλάζει τιμή σε αυστηρά καθορισμένη χρονική στιγμή, αλλά σε χρόνο ανάλογο τηςταχύτητας διάδοσης των σημάτων μέσα από τα επιμέρους στοιχεία που συνθέτουν τοκύκλωμα. Επειδή όμως συνήθως απαιτείται η μεταβολή αυτή να λάβει χώρα σε αυστηράκαθορισμένη χρονική στιγμή, είναι αναγκαία η παραλλαγή του Σχ. 2.16 (β). Σε αυτήν τηνπερίπτωση έχουμε ένα σύγχρονο κύκλωμα, μια και οι οποιεσδήποτε τιμές στις εισόδους Sκαι R αγνοούνται εφόσον το ρολόι (Clock) βρίσκεται σε λογικό 0. Επομένως το κύκλωμααυτό συγχρονίζεται με την βοήθεια του σήματος ρολογιού για τις οποιεσδήποτελειτουργίες του.

Επειδή η περίπτωση S = R = 1 οδηγεί σε μη σταθερή κατάσταση, είναι αναγκαία ηαποφυγή της. Για αυτόν τον λόγο ένας συνηθισμένος τρόπος είναι η συνένωση των S καιR, όπως στο Σχ. 2.17, σχηματίζοντας το λεγόμενο Clocked D Latch.

Σχ. 2.15 Clocked D-Latch

Είναι επίσης χρήσιμο να τονισθεί ότι στα παραπάνω σύγχρονα κυκλώματα η μετάβασηαπό την μία κατάσταση στην άλλη γίνεται όταν το σήμα ρολογιού βρίσκεται είτε σε

Page 26: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 26

υψηλή, είτε σε χαμηλή κατάσταση. Για αυτόν τον λόγο τα παραπάνω σύγχρονακυκλώματα ονομάζονται και Κυκλώματα Επιλογής Εξόδου. Αντιθέτως, όταν απαιτείταιη μετάβαση από μία κατάσταση σε μία άλλη, υπάρχουν και τα Κυκλώματα ΔύοΚαταστάσεων (flip-flops), στα οποία η μετάβαση αυτή γίνεται κατά την μετάβαση τουρολογιού από το λογικό 0 στο λογικό 1 ή από το λογικό 1 στο λογικό 0, δηλαδή μόνονστις αιχμές (edges) του παλμού του ρολογιού. Το πλεονέκτημα μίας τέτοιας μεθόδου είναιότι η παραπάνω μετάβαση διαρκεί πολύ λιγότερο χρόνο, από ό,τι στα ΚυκλώματαΕπιλογής Εξόδου. Η διαφορά αυτή τονίζεται στα λογικά διαγράμματα με την τοποθέτησηενός βέλους στο σημείο εφαρμογής του παλμού του ρολογιού για τα Κυκλώματα ΔύοΚαταστάσεων, όπως φαίνεται στο Σχ. 2.18.

Σχ. 2.16 Clocked D-Latch (Επιλογής Εξόδου) και D Flip-flop (Δύο Καταστάσεων)

Συνηθέστερα όμως, ο σχηματισμός ενός D Flip-flop, γίνεται με την χρήση δύο ClockedD-Latch, όπως φαίνεται και από το Σχ. 2.19. Το πρώτο D-Latch ονομάζεται Master και"διαβάζει" την είσοδο D, όταν το ρολόι (CLK) είναι λογικό 0. Όταν το ρολόι γίνει λογικό1, τότε το Master D-Latch κλείνει και ανοίγει το δεύτερο D-Latch, που ονομάζεται Slave.Το Slave D-Latch "διαβάζει" την έξοδο του Master D-Latch και την μεταφέρει στην έξοδότου. Το σημαντικό σημείο εδώ είναι ότι παρ’ ότι το Slave D-Latch είναι ανοικτό όταν τορολόι είναι λογικό 1, εν τούτοις το συνολικό D-Flip-flop φαίνεται να "διαβάζει" τηνείσοδό του μόνον όταν το ρολόι μεταβαίνει από λογικό 0 σε λογικό 1 (άρα στην αιχμήανόδου του ρολογιού). Λόγω της χρήσεως δύο D-Latch, το κύκλωμα αυτό ονομάζεται καιMaster-Slave D-Flip-flop.

Σχ. 2.17 Master-Slave D-Flip-Flop

Από τα παραπάνω είναι επομένως προφανές ότι το σήμα του ρολογιού θα πρέπει να είναιαπόλυτα ακριβές και ίδιας μορφής σε όλο το ψηφιακό κύκλωμα, ώστε να υπάρχεισυγχρονισμός μεταξύ των επιμέρους στοιχείων. Για αυτόν τον λόγο χρησιμοποιούνταικρύσταλλοι χαλαζία, ώστε να επιτευχθεί η μεγαλύτερη δυνατή ακρίβεια.

Page 27: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 27

Σχ. 2.18 Σχηματισμός Μη Συμμετρικού Παλμού Ρολογιού

Το χρονικό διάστημα μεταξύ των αντιστοίχων αιχμών δύο διαδοχικών παλμών,ονομάζεται χρόνος κύκλου ρολογιού (clock cycle time). Αν και ο κύκλος του ρολογιούμπορεί να θεωρηθεί ως το μικρότερο δυνατό χρονικό διάστημα μέσα στο οποίο μπορεί νασυμβούν διάφορες λειτουργίες του ψηφιακού κυκλώματος, είναι επίσης δυνατόν ναυποδιαιρέσουμε αυτό το χρονικό διάστημα σε τέσσερα επιμέρους χρονικά συμβάντα:

1. Ακμή Ανόδου του ρολογιού

2. Ρολόι σε υψηλό επίπεδο (λογικό 1)

3. Ακμή Καθόδου του ρολογιού

4. Ρολόι σε χαμηλό επίπεδο (λογικό 0)

Τέλος, είναι δυνατόν να έχουμε όχι μόνο συμμετρικούς παλμούς ρολογιού, αλλά και μησυμμετρικούς. Για παράδειγμα, εάν πάρουμε δύο αντίγραφα του σήματος ρολογιού, Cl1και Cl2, και "εισάγουμε" μία χρονική καθυστέρηση στο δεύτερο από αυτά και ταανασυνθέσουμε, είναι δυνατόν να πάρουμε έναν μη συμμετρικό παλμό ρολογιού, όπωςφαίνεται στο Σχ. 2.20, όπου ο μη συμμετρικός παλμός ρολογιού Cl σχηματίζεται από τουςCl1 και Cl2.

Page 28: 1. ÅéóáãùãÞ
Page 29: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 29

3. ΚΕΝΤΡΙΚΗ ΜΟΝΑΔΑ ΕΠΕΞΕΡΓΑΣΙΑΣ

Ως γνωστόν, ένας τυπικός Η/Υ αποτελείται από μία Κεντρική Μονάδα Επεξεργασίας ήΚΜΕ (CPU), Κεντρική ή Κύρια Μνήμη (με την μορφή ROM ή RAM) και κάποιες ΘύρεςΕισόδου / Εξόδου (I/O) για να επικοινωνεί με περιφερειακές συσκευές. Οι τελευταίεςμπορεί να παίζουν τον ρόλο βοηθητικής ή δευτερεύουσας μνήμης (π.χ. δίσκοι, μαγνητικέςταινίες) ή να είναι το μέσον επικοινωνίας με το περιβάλλον (π.χ. πληκτρολόγιο, οθόνη,εκτυπωτής, κάρτα δικτύου).

Σχ. 3.1 Γενικό Διάγραμμα Οργάνωσης ενός Η/Υ

Η επικοινωνία μεταξύ των διαφόρων επιμέρους τμημάτων ενός Η/Υ γίνεται μέσωδιαφόρων διαύλων (buses). Γενικά, κάθε δίαυλος αποτελείται από τρεις διαφορετικούςδιαύλους, όπως φαίνεται και από το Σχ. 3.1: Δίαυλο Ελέγχου, Δίαυλο Διευθύνσεων καιΔίαυλο Δεδομένων. Αυτός ο διαχωρισμός είναι μάλλον λογικός, παρά φυσικός. Σε κάθεδίαυλο περιλαμβάνεται και ένας αριθμός από γραμμές καθαρά ηλεκτρικής μορφής (π.χ. +5V και γείωση).

Μέσω του Διαύλου Ελέγχου κυκλοφορούν τα σήματα ελέγχου, τα οποία μπορούν ναομαδοποιηθούν στις παρακάτω κατηγορίες:

1. Έλεγχος Διαύλου: Σκοπός τους είναι βασικά να ενημερώσουν εάν οεπεξεργαστής θέλει να προσπελάσει περιφερειακά ολοκληρωμένα.

2. Διακοπές: Συνήθως είναι είσοδοι από περιφερειακά ολοκληρωμένα προςτον επεξεργαστή, με σκοπό να τον ενημερώσουν ότι κάποια περιφερειακήσυσκευή έχει ανάγκη εξυπηρετήσεως, καθώς και έξοδοι για επιβεβαίωσητης εξυπηρέτησης διακοπής.

3. Διαιτησία Διαύλου (Bus Arbitration): Απαιτούνται για την διαιτησία τηςκυριότητας του (κοινού) διαύλου, ώστε να μην είναι δυνατή η ταυτόχρονηχρήση του τελευταίου από δύο ή περισσότερες συσκευές.

Page 30: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 30

4. Σηματοδότηση Συνεπεξεργαστή: Σκοπός τους είναι η συγχρονισμένηχρήση των δυνατοτήτων που παρέχει ένας συνεπεξεργαστής, όταν κάτιτέτοιο απαιτείται.

5. Κατάσταση Επεξεργαστή: Δείχνουν την τρέχουσα κατάσταση τουεπεξεργαστή.

6. Διάφορα.

Αν και είναι δυνατόν να σχεδιασθεί οποιοδήποτε είδος διαύλου, στην πράξη η μορφή καιοι κανόνες λειτουργίας ενός διαύλου είναι αυστηρώς καθορισμένες, ώστε να είναι δυνατήη σύνδεση σε αυτών καρτών επέκτασης που είναι σχεδιασμένες από άλλουςκατασκευαστές. Το σύνολο των παραπάνω κανόνων ονομάζεται Πρωτόκολλο τουΔιαύλου.

Υπάρχουν πολλοί διαφορετικοί δίαυλοι Η/Υ, τους οποίους μπορούμε να κατατάξουμε σεδύο μεγάλες κατηγορίες ανάλογα με τον τρόπο χρονισμού των λειτουργιών που εκτελούν:

1. Σύγχρονοι Δίαυλοι: Εδώ όλες οι δραστηριότητες του διαύλουκαταλαμβάνουν ακέραιο αριθμό κύκλων ενός κεντρικού ρολογιού, πουονομάζεται Κύριο Ρολόι (Master Clock).

2. Ασύγχρονοι Δίαυλοι: Εδώ δεν υπάρχει κύριο ρολόι και επομένως οικύκλοι διαύλου μπορεί να έχουν οποιοδήποτε μήκος.

Το πλεονέκτημα των συγχρόνων διαύλων είναι ότι είναι πιο εύκολοι στον σχεδιασμό τους,αφού όλες οι δραστηριότητες παίρνουν χρόνο ίσο με κάποιο πολλαπλάσιο του κύκλου τουΚυρίου ρολογιού. Το πρόβλημα σχεδίασης εστιάζεται πλέον στην σωστή επιλογή τουκύκλου ρολογιού: Πολύ μικρός κύκλος ρολογιού μπορεί να οδηγήσει σε μη σωστήλειτουργία, επειδή όλα τα σήματα δεν ταξιδεύουν παντού με την ίδια ταχύτητα - έναφαινόμενο γνωστό και ως Στρέβλωση Διαύλου (bus skew), παρόμοιο με τηνΣτρέβλωση Ρολογιού (clock skew). Αυτό αντιμετωπίζεται με την επιμήκυνση τουκύκλου ρολογιού, ώστε ο τελευταίος να είναι μεγαλύτερος από την στρέβλωση διαύλου.

Το μειονέκτημα των συγχρόνων διαύλων όμως είναι η καθυστέρηση, μια και λειτουργίεςπου π.χ. θα απαιτούσαν 3,1 κύκλους ρολογιού, τώρα απαιτούν 4 κύκλους. Επίσης, δενμπορούν να ανταποκριθούν εύκολα στις εξελίξεις της τεχνολογίας. Εάν, π.χ., απαιτούντανένας κύκλος ρολογιού των 100 ns για προσπέλαση της κύριας μνήμης, αλλά τώραυπάρχουν μνήμες των 20 ns, η χρήση των τελευταίων δεν θα δημιουργούσε κανέναπλεονέκτημα, αφού η προσπέλαση κύριας μνήμης θα απαιτούσε και πάλι 1 κύκλο διαύλου= 1 κύκλος ρολογιού = 100 ns. Τα μειονεκτήματα του σύγχρονου διαύλου είναι βέβαιαπλεονεκτήματα του ασύγχρονου και αντίστροφα. Στην πράξη όμως οι περισσότεροιδίαυλοι είναι σύγχρονοι.

Επιπλέον οι συσκευές που συνδέονται σε έναν δίαυλο (συμπεριλαμβανομένου και τουεπεξεργαστή) μπορούν να διακριθούν σε Κυρίους (Masters) και Υπηρέτες (Slaves). Οιμεν πρώτες μπορούν να προκαλέσουν αιτήσεις για εξυπηρέτηση από άλλες συσκευές

Page 31: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 31

μέσω του διαύλου, ενώ οι δεύτερες περιμένουν παθητικά για αιτήσεις εξυπηρέτησης απόάλλες συσκευές.

Τέλος μπορεί να έχουμε δύο τύπους διαιτησίας διαύλου (bus arbitration), ανάλογα μετο αν ο μηχανισμός διαιτησίας είναι κεντρικός ή αποκεντρωμένος.

Στην πρώτη περίπτωση υπάρχει ένα ολοκληρωμένο κύκλωμα που παίζει τον ρόλο τουδιαιτητή διαύλου. Οι αιτήσεις από όλες τις συσκευές αποστέλλονται προς αυτόν και αυτόςκαθορίζει ποια θα γίνει κύριος του διαύλου. Στην απλούστερη έκδοση όλες οι συσκευέςείναι συνδεδεμένες σε μία λογική αλυσίδα. Ο διαιτητής ελέγχει την πλησιέστερη προςαυτόν συσκευή για πιθανή αίτηση και εάν δεν υπάρχει τέτοια αίτηση, την επόμενησυσκευή, κ.ο.κ. Κατ’ αυτόν τον τρόπο η πλησιέστερη συσκευή πάντοτε κερδίζει. Για νααποφευχθεί κάτι τέτοιο είναι δυνατή και η υιοθέτηση πολλαπλών επιπέδων, όπου οιπεριφερειακές συσκευές είναι χωρισμένες σε ομάδες με διαφορετική προτεραιότητα, έτσιώστε εκείνες που βρίσκονται στο υψηλότερο επίπεδο να εξυπηρετούνται πάντοτε πρώτες.

Στην περίπτωση του αποκεντρωμένου μηχανισμού διαιτησίας διαύλου δεν υπάρχειδιαιτητής. Στην απλούστερη έκδοση (π.χ. Multibus) υπάρχουν μόνον τρεις γραμμές. Ηπρώτη είναι μια καλωδιωμένη OR (wired OR) για τις αιτήσεις διαύλου (Αίτηση Διαύλου),η δεύτερη είναι η BUSY (Aπασχολημένος δίαυλος) και η Τρίτη είναι η Γραμμή Διαιτησίας,η οποία είναι αλυσιδωτά συνδεδεμένη με όλες τις συσκευές στον δίαυλο (Σχ. 3.2), έχονταςτην τιμή του λογικού 1 όταν δεν υπάρχει αίτηση κυριότητας από καμία συσκευή.

Σχ. 3.2 Αποκεντρωμένος Μηχανισμός Διαύλου με 3 Γραμμές

Για την απόκτηση κυριότητας στον δίαυλο από μία συσκευή πρώτα ελέγχεται εάν οδίαυλος είναι αδρανής (από την δεύτερη γραμμή) και εάν καμία συσκευή δεν έχειπρολάβει να κάνει αίτηση κυριότητας (οπότε το OUT της προηγούμενης και άρα το INαυτής της συσκευής θα ήταν λογικό 0). Εάν τα παραπάνω είναι αληθή, τότε η συσκευήαυτή κάνει λογικό το OUT της εμποδίζοντας όλες τις συσκευές που είναι "δεξιά" της νακάνουν αίτηση για όσο διάστημα αυτή είναι κύριος του διαύλου.

Μητρική Κάρτα (Motherboard)

Τα πιο βασικά τμήματα (ΚΜΕ, κύρια μνήμη, βοηθητικοί ελεγκτές) είναι συνήθωςτοποθετημένα σε μία μεγάλη ηλεκτρονική κάρτα, που λέγεται Μητρική Κάρτα(Μotherboard). Ένα παράδειγμα τέτοιας μητρικής κάρτας με όλα τα είδη βασικώνδιαύλων φαίνεται στο Σχ. 3.3. Τα περισσότερα περιφερειακά συνδέονται με την μητρικήκάρτα, μέσω των υπαρχουσών θυρών επέκτασης (Slots), που για το συγκεκριμένο

Page 32: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 32

παράδειγμα - μητρική "80486 VIP" - είναι τύπων VESA, ISA και PCI. Η κύρια μνήμητοποθετείται στις θέσεις SIMM (RAM) και BIOS (ROM). Υπάρχει ακόμα μία μπαταρίαμακράς διαρκείας (BATT) και άλλες "πρίζες" και διακόπτες (JP).

Σχ. 3.3 Σχεδιάγραμμα Τυπικής Μητρικής με όλα τα Είδη Βασικών Διαύλων

3.1 Βασικές Έννοιες Μικροεπεξεργαστών

Γενικά ένας σύγχρονος μικροεπεξεργαστής παίζει τον ρόλο της ΚΜΕ σε έναν Η/Υ.Αποτελείται συνήθως από την Αριθμητική και Λογική Μονάδα (ALU), την ΜονάδαΔιασύνδεσης με τον Εξωτερικό Δίαυλο (BIU = Bus Interface Unit) και την ΜονάδαΕλέγχου (Control Unit).

Λόγω αυξημένης απόδοσης και μειωμένου κόστους υπάρχει η τάση για ενσωμάτωσηπερισσοτέρων μονάδων του Η/Υ στην ΚΜΕ. Έτσι, μπορεί να περιλαμβάνει και τηνΜονάδα Διαχείρισης Μνήμης (ΜΜU), τον Μαθηματικό Συνεπεξεργαστή (FPU) και κάποιαποσότητα Λανθάνουσας Μνήμης (Cache Memory).

Page 33: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 33

Λόγω της πληθώρας τύπων επεξεργαστών που έχουν κυκλοφορήσει, είναι δύσκολη ηταξινόμησή τους σε κατηγορίες. Ένας όχι ακριβής τρόπος ταξινόμησης είναι ο αριθμόςτων bits που μπορεί να επεξεργάζεται η ALU ταυτόχρονα. Έτσι, μπορεί να έχουμεεπεξεργαστές των 1, 4, 8, 16, 32 ή 64 bits. Ο πλέον δημοφιλής τρόπος ταξινόμησηςσήμερα όμως είναι ο μέγιστος αριθμός των bits δεδομένων, που μπορεί να "δει" οεπεξεργαστής από τον δίαυλο δεδομένων, σε ένα βήμα. Για αυτό ο 8086 θεωρείταιεπεξεργαστής των 16 bits, ενώ ο όμοιός του 8088, επεξεργαστής των 8 bits.

Εδώ είναι σημαντικό να κάνουμε την διάκριση ανάμεσα στους μικροεπεξεργαστές(microprocessors) και μικροελεγκτές (microcontrollers). Η έμφαση του σχεδιασμούστους πρώτους είναι η απόδοσή τους, ενώ στους τελευταίους η ενσωμάτωση όσο τοδυνατόν περισσοτέρων μονάδων, για την "έξυπνη" οδήγηση συσκευών όπως πλυντήρια,φούρνοι μικροκυμάτων και μηχανισμοί αυτόματης ανάφλεξης σε μηχανές αυτοκινήτων.Ένα χαρακτηριστικό παράδειγμα αποτελεί ο 8048 της INTEL (1976), που ενσωματώνειμία ΚΜΕ των 8 bits, RAM, ROM και κάποιες θύρες εισόδου/εξόδου, σε έναολοκληρωμένο των 40 ακίδων (pins). Εννοείται πως η ικανότητα για επικοινωνία με τοπεριβάλλον και το χαμηλό κόστος είναι οι πιο σημαντικοί παράγοντες σχεδιασμού.

Επίσης υπάρχουν μικροεπεξεργαστές, που χρησιμοποιούνται ως μονάδες για τονσχηματισμό επεξεργαστών με ειδικό μήκος bits. Αυτοί ονομάζονται bit-slice (φέτες απόbits). Ένα τέτοιο παράδειγμα αποτελεί η οικογένεια 2900 της AMD (Advanced MicroDevices), όπου κάθε μέλος περιλαμβάνει ALUs των 4 bits, πολυπλέκτες και άλλα στοιχείααπαραίτητα για την σύνθεση της επιθυμητής ΚΜΕ. Επί πλέον, ο σχεδιαστής σχεδιάζει καιτο σύνολο των εντολών, χρησιμοποιώντας μικροκώδικα.

Το 1978 η INTEL παρουσίασε τον 8086, ο οποίος αποτέλεσε την καρδιά του προσωπικούΗ/Υ της ΙΒΜ με τον εξάδελφό του 8088. Υπήρξαν και άλλοι επεξεργαστές από τηνΙΝΤΕL στην συνέχεια, αλλά και από άλλους κατασκευαστές. Εν τούτοις, το μεγαλύτερομέρος του λογισμικού που κυκλοφορεί σήμερα για προσωπικούς Η/Υ έχει γραφεί με βάσητον 8086 και τα παράγωγά του. Για αυτόν τον λόγο και θα περιγραφεί ο 8086 μεμεγαλύτερη λεπτομέρεια, σαν υπόδειγμα για την δομή ενός μικρο-επεξεργαστή.

3.2 8086 - Ένας Χαρακτηριστικός Μικροεπεξεργαστής

Ο 8086 είναι ένας επεξεργαστής των 16 bits σχεδιασμένος από την αρχή για ναχρησιμοποιηθεί σαν ΚΜΕ σε έναν προσωπικό Η/Υ. Η ΑLU, οι καταχωρητές και οιπερισσότερες εντολές του δουλεύουν με λέξεις των 16 bits. Επίσης ο δίαυλος δεδομένων(Data Bus) είναι των 16 bits, ώστε να είναι σε θέση να διαβάσει από ή να γράψει δεδομέναστην μνήμη ή θύρες, σε λέξεις των 8 ή 16 bits. Ο δίαυλος διευθύνσεων είναι των 20 bits,πράγμα που σημαίνει ότι συνολικά μπορεί να "δει" 220 ή 1.048.576 διαφορετικέςδιευθύνσεις, κάθε μία εκ των οποίων αντιστοιχεί σε ένα byte. Παράλληλα έχει καιδιαφορετικό χώρο διευθύνσεων για τις εξωτερικές θύρες εισόδου / εξόδου οι οποίες είναισυνολικά 216 = 65.536.

Page 34: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 34

Ειδικά για τις λέξεις των 16 bits, πρέπει να τοποθετούνται σε διαδοχικές διευθύνσεις, μετην πρώτη σε "ζυγή" διεύθυνση, επειδή τότε ο 8086 μπορεί να διαβάσει όλη την λέξη μεέναν κύκλο ανάγνωσης. Η βασική διαφορά του 8088 με τον 8086 είναι ότι έχει δίαυλοδεδομένων των 8 bit και επομένως μπορεί να διαβάζει ή να γράφει δεδομένα μόνον ενόςbyte κάθε φορά. Εάν χρησιμοποιηθεί εντολή για διάβασμα δύο byte (με τους όρους πουπροαναφέρθηκαν για τον 8086), ο 8088 θα την εκτελέσει σε δύο βήματα.

Αν και όλες οι λειτουργίες αποτελούνται από ένα σύνολο ψηφιακών ηλεκτρονικώνσημάτων, ο προγραμματισμός του 8086 γίνεται στην λεγόμενη Γλώσσα Μηχανής. Στηνπράξη κάτι τέτοιο είναι πολύ δύσκολο και επίπονο. Για αυτό και χρησιμοποιείται έναειδικό πρόγραμμα - ο Assembler - που αναλαμβάνει να μετατρέψει ένα πρόγραμμα πουέχει γραφεί σε Αssembly, σε γλώσσα μηχανής.

Σε ανώτερο επίπεδο υπάρχουν άλλες γλώσσες, όπως η C, PASCAL, κλπ, αλλά η γλώσσαAssembly είναι η πιο εύκολη γλώσσα που ταυτόχρονα εκφράζει πλήρως την δομή καιλειτουργία του 8086. Για αυτόν τον λόγο και θα αναπτυχθεί σε επόμενο κεφάλαιο στηνσυνέχεια.

3.2.1 Εσωτερική Αρχιτεκτονική του 8086

Όπως κάθε ΚΜΕ, έτσι και ο 8086 χρειάζεται τρία τουλάχιστον βασικά τμήματα για ναλειτουργήσει. Αυτά είναι η ΑLU για να εκτελεί πράξεις, Μνήμη (με την μορφήκαταχωρητών) για να αποθηκεύει ενδιάμεσα δεδομένα ή αποτελέσματα και η ΜονάδαΕλέγχου που αποκωδικοποιεί κάθε εντολή και γενικά κατευθύνει την όλη λειτουργία τουεπεξεργαστή. Πιο συγκεκριμένα, ο 8086 αποτελείται από δύο κύρια τμήματα όπωςφαίνεται και από το Σχ. 3.4: Την Μονάδα Διασύνδεσης με τον εξωτερικό Δίαυλο (ΒΙU =Bus Interface Unit) και την Μονάδα Εκτέλεσης εντολών (EU = Execution Unit).

Page 35: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 35

Σχ. 3.4 Εσωτερική Αρχιτεκτονική 8086

Ο σκοπός της πρώτης μονάδας είναι η επικοινωνία με τον "έξω κόσμο", όπως αυτόςφαίνεται από την πλευρά του 8086. Στις περισσότερες περιπτώσεις πρόκειται για τηνκύρια μνήμη. Τα τμήματα που αποτελούν την μονάδα αυτή είναι η Ουρά (Queue), οιΚαταχωρητές Τμημάτων (Segment Registers) και ο Δείκτης Εντολών (Instruction Pointer).

Η Ουρά χρησιμεύει στο να αποθηκεύει έως και έξι bytes από εντολές, που προ-διαβάζονται από την BIU, μέσα από τις αντίστοιχες επόμενες διαδοχικές διευθύνσεις τηςμνήμης. Η μέθοδος αυτή - που ονομάζεται Διοχέτευση (Pipelining) - χρησιμοποιείται,ώστε η Μονάδα Εκτέλεσης (ΕU) να έχει διαθέσιμη την αμέσως επόμενη εντολή, μόλιςολοκληρώσει την εκτέλεση της τρέχουσας εντολής, αντί να χρειάζεται να περιμένει τηνπροσπέλαση της κύριας μνήμης.

Page 36: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 36

Σχ. 3.5 Κατανομή Μνήμης σε Μη-Επικαλυπτόμενα Τμήματα

Οι Καταχωρητές Τμημάτων είναι τέσσερις (4): CS, DS, ES και SS - των 16 bits οκαθένας. Αν και ο 8086 έχει δίαυλο δεδομένων 20 bits, δεν "βλέπει" την μνήμη ως ένασυνεχές σύνολο, αλλά σαν Τμήματα (Segments) των 64 ΚΒ το κάθε ένα, όπως φαίνεται καιαπό το Σχ. 3.5. Εφ’ όσον υπάρχουν τέσσερις καταχωρητές τμημάτων, το πολύ 4 x 64 =256 ΚΒ μπορούν να προσπελαθούν ανά πάσα στιγμή από τον 8086. Κάθε καταχωρητήςτμήματος περιέχει μόνον τα πιο σημαντικά 16 bits, από τα συνολικά 20 bits πουαπαιτούνται για να σχηματισθεί η πλήρης διεύθυνση της μνήμης που απαιτείται κάθεφορά. Υποθέτοντας ότι τα υπόλοιπα bits είναι 0, η διεύθυνση που προκύπτει είναι η πρώτηδιεύθυνση ή Βάση του Τμήματος (Segment Base).

Eιδικότερα, ο καταχωρητής CS (Code Segment) χρησιμοποιείται για να δείχνει στην αρχήτου τμήματος του προγράμματος που εκτελεί ο 8086. Για να σχηματισθεί η πλήρηςδιεύθυνση (ή απόλυτη διεύθυνση) της επόμενης προς εκτέλεση εντολής, παίρνονται τα 16bits του CS, τοποθετούνται 0 στα τέσσερα τελευταία bits και προστίθενται τα 16 bits τουκαταχωρητή ΙΡ (Σχ. 3.6).

Page 37: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 37

Σχ. 3.6 Πρόσθεση CS και ΙΡ για Σχηματισμό Απόλυτης Διεύθυνσης

Ο DS (Data Segment) δείχνει την αρχή του τμήματος δεδομένων, ο ΕS την αρχή τουτμήματος δευτερευόντων δεδομένων και ο SS την αρχή του τμήματος της σωρού (stack).Ο τελευταίος συνδυάζεται μόνον με τον SP. Γενικά, κάθε φυσική διεύθυνση σχηματίζεταιαπό τον συνδυασμό <Βάση:Απόσταση>, με την βάση να εμπεριέχεται στον αντίστοιχοκαταχωρητή τμήματος.

H Μονάδα Εκτελέσεως (ΕU) υποδεικνύει στην ΒΙU από πού να φέρει εντολές. Επίσηςαποκωδικοποιεί και εκτελεί τις εντολές. Ειδικότερα, στο Σχ. 3.4, φαίνεται η ΜονάδαΕλέγχου (Control Unit), η οποία περιλαμβάνει ανάμεσα στα άλλα και έναναποκωδικοποιητή (decoder). Ο τελευταίος διερμηνεύει κάθε εντολή που έρχεται προςεκτέλεση από την μνήμη, σε μία σειρά από ενέργειες που η Μονάδα Εκτέλεσης φέρνει ειςπέρας.

Στην Μονάδα Εκτέλεσης υπάρχει μία ALU των 16 bits, που μπορεί να προσθέτει, αφαιρεί,αυξάνει ή μειώνει (κατά ένα), συμπληρώνει, ολισθαίνει και να εκτελεί τις λογικές πράξειςAND, OR και XOR. Για περισσότερες λεπτομέρειες σχετικά με τον τρόπο πουπραγματοποιούνται αυτές οι πράξεις, ανατρέξτε στο [ΒΑΦ93].

Κάθε αποτέλεσμα από μία πράξη στην ALU, ανάλογα με την εντολή, πληροί κάποιεςλογικές συνθήκες - π.χ. ότι το αποτέλεσμα είναι αρνητικός αριθμός. Αυτές μπορούν ναχρησιμοποιηθούν από κάποιες εντολές, ώστε να αλλαχθεί η ροή του προγράμματος. Κάτιτέτοιο είναι εξαιρετικά χρήσιμο, επειδή ο μικροεπεξεργαστής μπορεί πλέον να "πάρει"αποφάσεις με δυναμικό τρόπο. Για τον σκοπό αυτό υπάρχει ένας καταχωρητής πουαποτελείται από ένα σύνολο Σημαιών (Flag Register). Κάθε σημαία είναι ένα flip-flop πουμπορεί να κρατήσει μόνον ένα bit. Ονομάζεται έτσι, επειδή οι δυνατές τιμές είναι δύο (0και 1). Οι Σημαίες του 8086 φαίνονται στο Σχ. 3.7.

Page 38: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 38

Σχ. 3.7 Καταχωρητής Σημαιών του 8086

Συνολικά υπάρχουν εννέα (9) σημαίες, από τις οποίες οι έξι (6) ονομάζονται ΣημαίεςΣυνθήκης (Conditional Flags), επειδή το περιεχόμενό τους εξαρτάται από την εκπλήρωσηκάποιας συνθήκης, που προκύπτει από το αποτέλεσμα της τελευταίας πράξης. Αυτές είναι:CF (Carry Flag), Parity Flag (PF), AF (Auxilliary Carry Flag), ZF (Zero Flag), SF (SignFlag) και OF (Overflow Flag). Οι υπόλοιπες τρεις ονομάζονται Σημαίες Ελέγχου (ControlFlags), επειδή ανάλογα με την τιμή τους, μεταβάλλεται ο τρόπος εκτέλεσης των διαφόρωνεντολών. Αυτές είναι: TF (Trap Flag), IF (Interrupt Flag) και DF (Direction Flag). Γιαπαράδειγμα, όταν η ΤF είναι 1, ο 8086 εκτελεί το πρόγραμμα μόνον κατά μία εντολή κάθεφορά - κάτι που είναι χρήσιμο για αποσφαλμάτωση (debugging).

Τέλος υπάρχουν και οι καταχωρητές οι οποίοι είναι γενικού ή ειδικού σκοπού. Στηνπρώτη κατηγορία ανήκουν οι ΑΧ, ΒΧ, CX και DX. Χρησιμοποιούνται για να κρατούναριθμούς στους οποίους και πρόκειται να εκτελεσθούν κάποιες πράξεις ή για προσωρινήαποθήκευση. Άλλωστε όπως θα δούμε και παρακάτω η πρόσβαση σε καταχωρητές είναιταχύτερη από την πρόσβαση στην κύρια μνήμη. Ειδικότερα ο ΑΧ ονομάζεταιΣυσσωρευτής (Accumulator), επειδή το αποτέλεσμα πράξεων με άλλους καταχωρητέςσυνήθως τοποθετείται σε αυτόν, όπως και τα δεδομένα από και προς την μνήμη. Όλοιαυτοί οι καταχωρητές μπορούν να προσπελαθούν και σαν επί μέρους καταχωρητές των 8bits. Έτσι, ο ΑΧ αποτελείται από τους ΑΗ και ΑL, ο BX από τους BH και BL, κ.ο.κ.

Page 39: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 39

Σχ. 3.8 Παράδειγμα Σχηματισμού Φυσικής Διεύθυνσης Κορυφής Σωρού

Από τους ειδικούς καταχωρητές, ο SP (Stack Pointer) συνδυάζεται με τον SS για να δείξειστην κορυφή του σωρού. Ένα παράδειγμα φαίνεται στο Σχ. 4.8, όπου η κορυφή τουσωρού βρίσκεται στην φυσική διεύθυνση 5000:FFE0h (ή 5FFE0h). Οι ΒΡ, SI και DI,χρησιμοποιούνται σε ορισμένες εντολές, αλλά μπορούν να χρησιμοποιηθούν και γιαπροσωρινή αποθήκευση δεδομένων.

3.2.2 Διασύνδεση του 8086 με το Υπολογιστικό Σύστημα

Εκτός από το προγραμματιστικό, είναι απαραίτητο να περιγραφούν και τα πιο σημαντικάσημεία του υλικού (hardware) μοντέλου του 8086, ώστε να γίνει αντιληπτός ο τρόποςσύνδεσης με το υπόλοιπο υπολογιστικό σύστημα και τα προβλήματα που δημιουργούνται.

Όπως φαίνεται από το Σχ. 3.9, ο 8086 έρχεται σε μία συσκευασία με 40 ακροδέκτες(pins), από τους οποίους οι 1 και 20 αποτελούν γείωση και ο 1 τροφοδοσία με +5V. Οακροδέκτης 19 χρησιμοποιείται από τον 8086 για να παίρνει ένα σήμα ρολογιού από μίαεξωτερική πηγή (π.χ. γεννήτρια σήματος ρολογιού ελεγχόμενη από κρύσταλλο). Ανάλογαμε την έκδοση του 8086 η συχνότητα του ρολογιού είναι από 5 έως 10 ΜΗz.

Οι επόμενοι ενδιαφέροντες ακροδέκτες είναι εκείνοι που μεταφέρουν τα δεδομένα και τιςδιευθύνσεις. Από την παρουσίαση της εσωτερικής αρχιτεκτονικής του 8086, θυμηθείτε ότικάθε δεδομένο είναι των 16 bits και κάθε διεύθυνση των 20 bits. Συνεπώς απαιτούνται 36ακροδέκτες, που όμως δεν φαίνονται να είναι διαθέσιμοι. Η απάντηση σε αυτήν τηναπορία είναι ότι οι ακροδέκτες 2 έως 16 καθώς και ο 39 είναι πολυπλεγμένοι(multiplexed). Ο 8086 στέλνει μέσω του ακροδέκτη 25, το σήμα ΑLΕ (Address LatchEnable) για να πληροφορήσει τα εξωτερικά κυκλώματα ότι έχει τοποθετήσει μίαδιεύθυνση στους παραπάνω ακροδέκτες. Κατ’ αυτόν τον τρόπο μειώνονται οι συνολικοίακροδέκτες που θα απαιτούνταν από 36 σε 22.

Page 40: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 40

Σχ. 3.9 Διάγραμμα Ακροδεκτών του 8086

Θα έχετε παρατηρήσει μέχρι τώρα ότι τα ονόματα κάποιων σημάτων έχουν μία οριζόντιαγραμμή από επάνω τους. Αυτό σημαίνει ότι το αντίστοιχο σήμα είναι "ενεργό" όταν στονακροδέκτη αυτόν υπάρχει λογικό 0 (ή "χαμηλό"). Ένας άλλος τρόπος συμβολισμού είναινα τοποθετηθεί ένα (/) μπροστά από το όνομα του σήματος, π.χ. /ΑLΕ.

Ακολουθούν μερικές γραμμές από τον δίαυλο ελέγχου (control bus), όπως οι /RD, /WR,και M ή /IO. Το πρώτο από αυτά γίνεται 0 όταν ο 8086 διαβάζει δεδομένα από την κύριαμνήμη ή κάποια θύρα, ενώ στην αντίθετη περίπτωση είναι το /WR που γίνεται 0. Οακροδέκτης 28 γίνεται 1 για προσπέλαση στην κύρια μνήμη και 0 για προσπέλαση σεκάποια θύρα εισόδου/εξόδου.

Ο ακροδέκτης 33 είναι μία ιδιαιτερότητα του 8086, που δουλεύει σε μία από δύοκαταστάσεις: Την "Ελάχιστη" (Minimum Mode) και την "Μέγιστη" (MaximumMode). Εάν ο ακροδέκτης 33 είναι σε λογικό 1, τότε ο 8086 δουλεύει σε Ελάχιστηκατάσταση, που είναι και ο συνηθέστερος τρόπος λειτουργίας του, όταν βρίσκεται σεπολύ μικρά συστήματα με λίγες περιφερειακές συσκευές - π.χ. όταν ο 8086 παίζει τονρόλο ελεγκτή πλυντηρίου. Τότε ισχύουν τα σήματα που είναι αναγραμμένα σεπαρενθέσεις στο Σχ. 3.9.

Όταν ο 8086 βρεθεί στην Μέγιστη κατάσταση, τότε μπορεί να συνυπάρχει στον ίδιοδίαυλο με άλλους επεξεργαστές. Αυτή είναι και η κατάσταση λειτουργίας που μαςενδιαφέρει, μια και είναι εκείνη που συναντάται σε Η/Υ. Περισσότερα για αυτό το θέμαθα αναφερθούν σε επόμενο κεφάλαιο.

Οι ακροδέκτες 26, 27 και 28 αντιστοιχούν στα σήματα /S0, /S1 και /S2, τα οποία καιπληροφορούν σχετικά με τον τύπο κύκλου διαύλου (άρα και λειτουργίας διαύλου) τονοποίο εκτελεί σε δεδομένη χρονική στιγμή ο 8086. Οι τύποι αυτοί είναι οκτώ καιπεριγράφονται στον Πίνακα 3.1.

Page 41: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 41

Πίνακας 3-1 Τύποι Κύκλων Διαύλου του 8086

/S2 /S1 /S0 Τύπος Κύκλου Διαύλου0 0 0 Επιβεβαίωση Διακοπής0 0 1 Ανάγνωση Θύρας Εισόδου / Εξόδου0 1 0 Εγγραφή σε Θύρα Εισόδου / Εξόδου0 1 1 Σταμάτημα1 0 0 Προσπέλαση Κωδικού1 0 1 Ανάγνωση Μνήμης1 1 0 Εγγραφή στην Μνήμη1 1 1 Απελευθέρωση Διαύλου

Από τους υπόλοιπους ακροδέκτες, ο 21 φέρει το σήμα εισόδου RESET. Όταν ηαντίστοιχη λογική τιμή του είναι 1, τότε ο 8086, ανεξάρτητα από το τι έκαμνε εκείνη τηνστιγμή, θα μηδενίσει τα περιεχόμενα των καταχωρητών Σημαιών, DS, SS, ES, και IP καιθα τοποθετήσει στον CS την τιμή FFFFh. Μόλις παύσει το σήμα RESET (γίνει λογικό 0),ο 8086 θα πάρει την εντολή που βρίσκεται στην φυσική διεύθυνση FFFF0h. Για αυτόάλλωστε ο κάθε κατασκευαστής ενός συμβατού ΙΒΜ PC, τοποθετεί εκεί την πρώτηεντολή του BIOS.

Οι ακροδέκτες των σημάτων ΝΜΙ (17) και ΙΝΤR (18), χρησιμοποιούνται για ναπροξενούν διακοπή στην τρέχουσα λειτουργία του 8086 και την εκτέλεση κάποιαςδιαδικασίας εξυπηρέτησης. Π.χ., έστω ότι βράζει τσάι στην κουζίνα και ότι υπάρχει έναςαισθητήρας θερμοκρασίας συνδεδεμένος με τον Η/Υ σας, στον οποίο διαβάζετε κάποιαμηνύματα μέσω ηλεκτρονικού ταχυδρομείου. Μόλις το νερό έχει βράσει αρκετά, οαισθητήρας στέλνει ένα σήμα διακοπής στον 8086 και σταματά προσωρινά την ανάγνωσημηνυμάτων για να σας ειδοποιήσει ότι το τσάι είναι έτοιμο. Σε επόμενη ενότητα θααναφερθούμε στις διακοπές πιο λεπτομερειακά.

Page 42: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 42

Σχ. 3.10 Τμήμα από το Βασικό Διάγραμμα Χρονισμού του 8086

Ένα τμήμα από το διάγραμμα χρονισμού του 8086 φαίνεται ενδεικτικά στο Σχ. 3.10.Παρατηρείστε την κυματομορφή του ρολογιού (CLK) στην κορυφή. Όπως θυμάστε απότις διαφορές ενός συγχρόνου και ενός ασύγχρονου κυκλώματος, το πρώτο είναιευκολότερο στον σχεδιασμό και με λιγότερα προβλήματα, επειδή ακριβώς υπάρχει οπαλμός του ρολογιού για να συγχρονίζει με ακρίβεια τα εκτελούμενα βήματα.

Επίσης, όπως βλέπετε, η κυματομορφή του ρολογιού χωρίζεται σε κύκλους ή περιόδους.Στα διαγράμματα συγχρόνων κυκλωμάτων, κάθε κύκλος του ρολογιού αποτελεί μίακατάσταση (state). Αυτή μετράται από την μέση της πλευράς της κυματομορφής που"πέφτει" (falling edge), έως την μέση της πλευράς που "πέφτει" από τον αμέσως επόμενουπαλμού. Έτσι, τα Τ1, T2, κλπ, αποτελούν καταστάσεις.

Παρατηρείστε ότι η πλευρά του παλμού που "ανεβαίνει", όπως και η πλευρά του παλμούπου "κατεβαίνει" δεν είναι κατακόρυφες. Αυτό, όπως θυμάστε (βλ. ενότητα 2.2),οφείλεται στο ότι κάθε ηλεκτρονικό στοιχείο που συνθέτει ένα ψηφιακό κύκλωμαπαρουσιάζει κάποια χρονική καθυστέρηση στην διάδοση του σήματος που περνά μέσααπό αυτό.

Κάθε βασική λειτουργία που λαμβάνει χώρα στον δίαυλο (bus) απαιτεί έναν ορισμένοαριθμό από καταστάσεις. Μπορούμε επομένως να πούμε ότι ένας "κύκλος διαύλου" - ή

Page 43: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 43

συνηθέστερα κύκλος μηχανής (machine cycle) - αντιστοιχεί σε έναν ή περισσότερουςκύκλους ρολογιού. Ο συνολικός χρόνος που απαιτείται για την ολοκλήρωση μίας εντολήςτου 8086, ονομάζεται κύκλος εντολής (instruction cycle) και αποτελείται από έναν ήπερισσότερους κύκλους μηχανής.

Για να γίνουν αντιληπτές οι ενέργειες που λαμβάνουν χώρα στον δίαυλο, θα περιγραφείσυνοπτικά ο τρόπος εκτέλεσης της ανάγνωσης (από την μνήμη) μίας λέξεως δεδομένων.Υπ’ όψιν ότι σε κάθε Η/Υ, τα σήματα που συνθέτουν την διεύθυνση και τα δεδομένα,περνούν μέσω αποθηκευτικών ολοκληρωμένων, που μπορεί να είναι είτε Latches (απλάεκπομποί-ενισχυτές), είτε Τrasceivers (πομποδέκτες). Οι μεν πρώτοι "διαβάζουν"δεδομένα από μία ομάδα ακροδεκτών και τα παρέχουν αυτούσια από την άλλη, ενώ οιδεύτεροι επιτρέπουν ανάγνωση/εγγραφή και προς τις δύο κατευθύνσεις. Ο σκοπόςχρήσεώς τους είναι να επιτρέπουν την διακίνηση σημάτων - με αυστηρά καθορισμένοτρόπο - στο κοινό για όλα τα ολοκληρωμένα μέσο μεταβίβασης, που είναι ο δίαυλος.

Όπως βλέπετε και από το Σχ. 3.10, κατά την διάρκεια του κύκλου Τ1, ο 8086 κάνει τοσήμα στον ακροδέκτη Μ/ΙΟ λογικό 1 ή 0. Για το παράδειγμά μας (ανάγνωση από τηνκύρια μνήμη) έχουμε λογικό 1.

Λίγο μετά, ο 8086 κάνει λογικό 1 την έξοδο του ακροδέκτη ALE. Με αυτόν τον τρόπο"ειδοποιεί" το αντίστοιχο(α) Latch(es) ότι θα αρχίσει να στέλνει την επιθυμητή διεύθυνσηστους ακροδέκτες ΑD15 έως AD0 και Α19 έως Α16, που είναι συνδεδεμένοι με τουςαντίστοιχους του Latch (βλέπετε ολοκληρωμένο 8282 στο Σχ. 3.11). Στην συνέχεια ο 8086στέλνει την διεύθυνση - βλέπετε ADDR/STATUS και ΑDDR/DATA στο Σχ. 3.10 - καιλίγο μετά ξανακάνει το ALE λογικό 0. Συνεπώς το Latch διατηρεί πλέον και συνεχίζει ναστέλνει την επιθυμητή διεύθυνση, ενώ ο 8086 απελευθερώνεται από αυτήν τηνυποχρέωση. Όπως λέγεται, με αυτόν τον τρόπο γίνεται Aπόπλεξη (Demultiplexing)διευθύνσεων και δεδομένων.

Page 44: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 44

Σχ. 3.11 Λογικό Διάγραμμα 8086 για Ανάγνωση από Κύρια Μνήμη

Προς το τέλος του κύκλου ρολογιού Τ2 ο 8086 κάνει το σήμα /RD λογικό 0,υποδεικνύοντας στην κύρια μνήμη ότι είναι έτοιμος να διαβάσει τα δεδομένα. Το βέλοςπου φαίνεται στο Σχ. 3.10 από το /RD στο ADDR/DATA δείχνει αυτήν την επίδραση. Ηκύρια μνήμη τοποθετεί τα δεδομένα στον υπο-δίαυλο δεδομένων. Ο αντίστοιχοςTransceiver (ο 8286 του Σχ. 3.11) ενεργοποιείται από το γεγονός ότι το /DEN έχει γίνειλογικό 0 και ότι το /R είναι λογικό 0 για να διαβάσει δεδομένα από την μνήμη.

Παρατηρείστε το σήμα READY και το Twait στο Σχ. 3.10. Αυτό το σήμα χρησιμοποιείταιώστε όταν είναι λογικό 1 (κατά το τέλος ανάγνωσης ή εγγραφής) να "παγώνει" τιςυπόλοιπες λειτουργίες του διαύλου (και του 8086), ώστε να δώσει περισσότερο χρόνο σεμία αργή μνήμη να τοποθετήσει τα δεδομένα που ζητήθηκαν. Εάν χρειαστεί εισχωρούνταιπερισσότεροι τέτοιοι κύκλοι ρολογιού που συνήθως ονομάζονται Καταστάσεις Αναμονής(Wait States).

Προς το τέλος (T4), τα δεδομένα έχουν διαβαστεί από τον 8086 (το READY έγινε λογικό1), οπότε ο τελευταίος ολοκληρώνει τον κύκλο ανάγνωσης με το να κάνει τα σήματα /RD,/R και /DEN λογικό 1. Άρα ο Transceiver δεδομένων ούτε δέχεται ούτε και στέλνειδεδομένα (αφού το /DEN είναι 1). Η εγγραφή (WRITE) δεδομένων είναι παρόμοια.

Συνοψίζοντας, είναι φανερό πως ο 8086 (και κάθε επεξεργαστής) λειτουργεί με σαφώςκαθορισμένα βήματα από χρονικής πλευράς. Κάθε κύκλος εντολής (instrcution cycle)αποτελείται από έναν ή περισσότερους κύκλους διαύλου (bus cycle), που και αυτόςαποτελείται από έναν ή περισσότερους κύκλους ρολογιού (clock cycle) ή καταστάσεις(states). Κάθε εξωτερική ως προς τον 8086 συσκευή, όπως η κύρια μνήμη, μπορεί να είναιτης ιδίας ή χαμηλότερης ταχύτητας, οπότε χρειάζεται η εισαγωγή μίας ή περισσοτέρωνΚαταστάσεων Αναμονής (wait states). Στην πράξη όμως δεν ξεπερνούν τις δύο.

Page 45: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 45

Σε καμία περίπτωση δεν επιτρέπεται η χρησιμοποίηση του κοινού διαύλου απόπερισσότερες της μίας συσκευής, για να αποφευχθεί μπέρδεμα μεταξύ τους ή καικαταστροφή κάποιας από αυτές. Η διαδοχή και η χρήση των σημάτων ελέγχου, καθώς καιτων Latches και Transceivers που είδαμε παραπάνω, εξυπηρετούν αυτόν τον σκοπό.

3.2.3 Διακοπές

Οι διακοπές (interrupts) είναι ένας αποδοτικός τρόπος για εξυπηρέτηση αναγκών αργώνπεριφερειακών, αλλά και εκτάκτων γεγονότων. Γενικά υπάρχουν δύο τύποι διακοπών.Αυτοί που οφείλονται στο υλικό (hardware) και στο λογισμικό (software).

Ειδικότερα για τον 8086 υπάρχουν 256 διακοπές (0-255), κάθε μία εκ των οποίωνπροκαλεί την αποθήκευση στην Σωρό τα περιεχόμενα των παρακάτω (με την σειρά με τηνοποία σπρώχνονται):

1. Καταχωρητή Σημαιών (flag register)2. CS3. ΙΡ

Στην συνέχεια, μηδενίζει τις σημαίες (flags) TF και IF, και πηγαίνει στην διεύθυνση:

0000:<Αύξων Αριθμός Διακοπής> * 4

από όπου και βρίσκει την διεύθυνση της πρώτης εντολής της διαδικασίας εξυπηρέτησης,που έχει προηγουμένως γραφεί για αυτήν την διακοπή. Κάθε μία τέτοια διαδικασίατελειώνει με την εντολή ΙRET, που επαναφέρει από την σωρό τις αρχικές τιμές του IP, τουCS και του Καταχωρητή Σημαιών (Flags), επιστρέφοντας έτσι στο σημείο του αρχικούπρογράμματος όπου έλαβε χώρα η διακοπή.

Οι διακοπές λογισμικού ονομάζονται μερικές φορές και Εξαιρέσεις (Exceptions), για νατις διακρίνουμε από τις διακοπές υλικού. Τέτοιες διακοπές παρέχονται από τον 8086 μετην εντολή:

INT <Αύξων Αριθμός Διακοπής>

Αντίθετα στην περίπτωση διακοπής υλικού, ο αύξων αριθμός παρέχεται από τηνπεριφερειακή συσκευή (π.χ. το ολοκληρωμένο 8259Α - Priority Interrupt Controller). Εδώστέλνεται το κατάλληλο σήμα στον ακροδέκτη ΙΝΤR του 8086 και η Σημαία Διακοπής(ΙF) μηδενίζεται μη επιτρέποντας την αποδοχή άλλης, εάν δεν ολοκληρωθεί η διαδικασίαεξυπηρέτησης της διακοπής. Στην συνέχεια ο 8086 ενεργοποιεί το σήμα /ΙΝΤΑ,υποδεικνύοντας ότι προετοιμάζεται να δεχθεί τον αύξοντα αριθμό της διακοπής και μετάέναν ακόμα παλμό στο /ΙΝΤΑ για να δείξει ότι είναι έτοιμος. Η εξωτερική συσκευήστέλνει τον αύξοντα αριθμό της διακοπής στους ακροδέκτες των σημάτων AD7-AD0 του8086 και εκτελεί τα ίδια βήματα όπως παραπάνω.

Page 46: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 46

Όλες οι διακοπές μπορούν να αγνοηθούν (Μasked) με μία εντολή του 8086 (CLI) πουμηδενίζει την Σημαία Διακοπών (IF). Υπάρχει μία εξαίρεση όμως. Εάν ενεργοποιηθεί τοσήμα /ΝΜΙ (= Non-Maskable Interrupt) του 8086, εκτελείται πάντοτε η ΙΝΤ 2. Τέτοιαρύθμιση είναι κοινή στους μικροεπεξεργαστές, επιτρέποντας διακοπές που δεν μπορούννα αγνοηθούν. Για παράδειγμα, εάν υπάρξει διακοπή ρεύματος, ενεργοποιείται αυτή ηδιακοπή και μπορούν να αποθηκευθούν κάποια απαραίτητα στοιχεία στον ελάχιστοεναπομένοντα χρόνο.

3.2.4 Δίαυλοι και Θύρες Επέκτασης

Εκτός από την ΚΜΕ και τα άλλα περιφερειακά βοηθητικά ολοκληρωμένα που μπορείτενα δείτε στην μητρική κάρτα ενός ΙΒΜ ΡC, υπάρχουν και οι λεγόμενες Θύρες Επέκτασης(Expansion Slots). Η ύπαρξή τους οφείλεται στο γεγονός ότι μπορεί κανείς με τον τρόποαυτό να επεκτείνει το ήδη υπάρχον υπολογιστικό σύστημα κατά βούληση, προσθέτονταςτις περιφερειακές συσκευές που εκείνος επιθυμεί κάθε φορά. Για παράδειγμα μπορεί ναπροσθέσει μία κάρτα ήχου, μία κάρτα γραφικών υψηλής ανάλυσης, κλπ.

Για να γίνει δυνατή η σύνδεση διαφόρων τέτοιων καρτών και η ενσωμάτωσή τους στουπάρχον σύστημα, είναι αναγκαία η τυποποίηση του τρόπου διασύνδεσης και η αποδοχήτου από τους διάφορους κατασκευαστές. Αυτό γίνεται με όλα τα λεγόμενα "ΑνοικτάΣυστήματα" (Open Systems). Έτσι δημιουργήθηκε το λεγόμενο στάνταρ ISA από την ΙΒΜγια τον δίαυλο στο ομώνυμο μικροϋπολογιστή, που απαιτείται για την απρόσκοπτηδιασύνδεση καρτών στις θύρες επέκτασης. Τα σήματα των επαφών σε κάθε μία από τιςθύρες επέκτασης φαίνονται στο Σχ. 3.12.

Page 47: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 47

Σχ. 3.12 Θύρα Επέκτασης ISA (8 bits) με Περιγραφή των Επαφών της

Επειδή υπάρχουν περισσότερες της μίας θύρες επέκτασης, υπάρχει ένα ειδικόολοκληρωμένο, που παίζει τον ρόλο ελεγκτή διαύλου (το 8288). Όπως φαίνεται και απότην ονομασία των σημάτων στις επαφές, κάθε περιφερειακή συσκευή που συνδέεται μέσωμίας θύρας επέκτασης (π.χ. ελεγκτής δίσκου), μπορεί να στείλει μία διακοπή (interrupt)στον 8086/8 ή να ζητήσει μεταφορά bytes μέσω DMA. Οι δυνατές διακοπές είναι απόIRQ2 έως και IRQ7, ενώ οι δυνατές αιτήσεις μεταφοράς μέσω DMA είναι τρεις: DRQ1έως και DRQ3. Τέλος το σήμα I/O CH RDY χρησιμοποιείται από το περιφερειακό για νααναγκάσει τον 8086 να εισάγει καταστάσεις αναμονής (WAIT States), όταν αυτό είναιαναγκαίο.

Γενικά, κάθε κάρτα επέκτασης χρησιμοποιεί κάποια διακοπή (ενίοτε και κανάλια DMA)και διευθύνσεις θυρών εισόδου/εξόδου (Ι/Ο ports) του 8086. Eίναι εξαιρετικά σημαντικόνα προσέχει ο χρήστης κατά την εγκατάσταση μίας κάρτας επέκτασης, ώστε να μηνσυμπίπτουν τα παραπάνω με κάποια από τα χαρακτηριστικά άλλων συσκευών που ήδηυπάρχουν στο σύστημα. Διαφορετικά υπάρχει σύγκρουση των συσκευών αυτών και στηνκαλύτερη περίπτωση ο Η/Υ δεν είναι σε θέση να λειτουργήσει.

Με την έλευση του IBM PC AT, ο δίαυλος τύπου ΙSA επεκτάθηκε, ώστε να υπάρχουνθύρες επέκτασης όχι μόνον με 8, αλλά και με 16 data bits. Παράλληλα, η συχνότηταλειτουργίας (που διαφέρει πλέον από εκείνη της ΚΜΕ) αυξάνεται από 4,77 MΗz σε 8ΜΗz. Η ΙΒΜ προχώρησε στην συνέχεια στην δημιουργία του διαύλου MicroChannel γιατην σειρά PS/2, ενώ οι αντίπαλοί της στον δίαυλο EISA. Ο μεν πρώτος εξαφανίσθηκε με

Page 48: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 48

την εμπορική αποτυχία των PS/2, ενώ ο δίαυλος ΕΙSA χρησιμοποιείται λόγω κόστουςμόνον σε Η/Υ που παίζουν τον ρόλο Εξυπηρετών (Servers).

Λίγο μετά προτάθηκε το VLB, κυρίως για υποστήριξη σε κάρτες γραφικών μεγάληςταχύτητας. Πρόσφατα προτάθηκε ο τύπος διαύλου PCI, που είναι και ο μόνονχρησιμοποιούμενος σε Η/Υ με επεξεργαστή Pentium. Στην συνέχεια παρατίθενταισυνοπτικά τα χαρακτηριστικά των διαύλων, που αναφέρθηκαν έως εδώ.

1. Δίαυλος ΡC-XT (ISA 8-bits):8 data bits, 20 address bits, 4,77 MHzΟυσιαστικά εξαφανίσθηκε με τα ΧΤ. Πολλές XT κάρτες δουλεύουνσε ISA slots.

2. Δίαυλος ISA (ο δίαυλος στον ΡC-AT):8/16 data bits, 24 address bits (16 MB addressable), 8 - 8,33 MHz,ασύγχρονο. Ταχύτητα μεταφοράς δεδομένων 5,55MB/sec burstΥποστήριξη bus master. Εdge triggered TTL interrupts (IRQs) - όχικοινές διακοπές για δύο ή περισσότερες συσκευές/κάρτες. Χαμηλόκόστος. Ιδεώδης για κάρτες επέκτασης με χαμηλό προς μεσαίομέγεθος ταχύτητας μεταφοράς δεδομένων.

3. Δίαυλος MCA (Micro Channel Architecture):16/32 data bit, 32 address bits. Ταχύτητα μεταφοράς δεδομένων80MΒ/sec burst. Σύγχρονος. Πλήρης δυνατότητα bus master. Καλήδιαχείριση διαύλου σε περίπτωση πολλών αιτήσεων χρήσεως.Αυτόματα ρυθμιζόμενος, μη συμβατός με κανέναν άλλο.

Αφού ο MCA μπορούσε να χρησιμοποιηθεί μόνον από την ΙΒΜ,δημιουργήθηκε ο EISA για να τον ανταγωνισθεί. Έτσι ο EISAυπάρχει ακόμα, ενώ ο MCA ουσιαστικά καταργήθηκε.

4. Δίαυλος EISA (Enhanced Industry Standard Architecture):32 data bits, 32 address bits, 8 - 8, 33 MHz, Σύγχρονος. Ταχύτηταμεταφοράς δεδομένων 32 MΒ/sec burst (διατηρήσιμη). Πλήρηςικανότητα bus master. Καλή διαχείριση διαύλου σε περίπτωσηπολλών αιτήσεων χρήσεως. Επιτρέπεται η κοινή χρήση IRQs καικαναλιών DMA. Συμβατός με τον ISΑ, αλλά και υψηλό κόστος.

5. Δίαυλος VLB (VESA Local Bus):32 data bits, 32 address bits, 25 - 40 MHz, ασύγχρονος. Ταχύτηταμεταφοράς δεδομένων 130 MB/sec burst (διατηρήσιμο γίνεταιπερίπου 32 MΒ/sec). Δυνατότητα bus master. Μπορεί νασυνυπάρχει στην μητρική κάρτα με ISA/EISA. Συνήθως μόνον 2 ή3 θύρες επέκτασης. Συμβατός με ISA και μέτριο κόστος.

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

Page 49: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 49

6. Δίαυλος PCI (Peripheral Component Interconnect):32 data bits (64 bit option), 32 address bits (64 bit option). Έως 33MHz, Σύγχρονος (έως 66 MΗz για την επιλογή PCI 2.1). Ταχύτηταμεταφοράς δεδομένων 132 MΒ/sec (burst) στα 33 MHz(διατηρήσιμη). 264 MΒ/sec με την παραλλαγή των 64 bit. Πλήρηςδυνατότητα bus master. Καλή διαχείριση διαύλου σε περίπτωσηπολλών αιτήσεων χρήσεώς του. Συνήθως 3 με 4 θύρες επέκτασης.Αυτορυθμιζόμενο. Μπορεί να συνυπάρχει με ISA/EISA/MCA καιάλλη παραλλαγή διαύλου PCI. Υποστήριξη περιφερειακών καρτών5V και 3,3V. Μέτριο κόστος, συνδυάζοντας την ταχύτητα του VLBμε την υψηλή ποιότητα διαχείρισης του EISA. Εξαιρετικός γιακάρτες γραφικών, SCSI και κάρτες δικτύων.

Page 50: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 50

Page 51: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 51

4.4.4.4. 8086 ASSEMBLY8086 ASSEMBLY8086 ASSEMBLY8086 ASSEMBLY

Η γλώσσα Assembly (ή στα Ελληνικά Συμβολική Γλώσσα) ουσιαστικά αποτελεί μίασυμβολική αναπαράσταση της γλώσσας μηχανής. Ο προγραμματιστής γράφει έναπρόγραμμα σε Assembly, το οποίο αποτελεί το Πηγαίο πρόγραμμα. Το τελευταίοδιοχετεύεται σε ένα ειδικό πρόγραμμα που ονομάζεται Assembler (ήΣυμβολομεταφραστής), το οποίο αναλαμβάνει την δημιουργία ενός καινούργιουπρογράμματος σε γλώσσα μηχανής, που ονομάζεται και Αντικείμενο πρόγραμμα. Η αιτίατης προτίμησης προγραμματισμού σε γλώσσα Assembly, αντί σε γλώσσα μηχανής είναι ηχρήση συμβόλων, τα οποία είναι πιο εύκολο για τους ανθρώπους να τα θυμούνται έναντιαριθμητικών κωδικών.

Γιατί όμως είναι ανάγκη να προγραμματίζει κανείς σε γλώσσα Assembly, όταν οπρογραμματισμός σε κάποια γλώσσα υψηλού επιπέδου είναι ακόμα ευκολότερος; Ηαπάντηση έγκειται στο ότι μόνον στο επίπεδο της γλώσσας Assembly είναι διαθέσιμεςστον προγραμματιστή όλες οι δυνατότητες του υλικού.

Στο κεφάλαιο αυτό θα δούμε τον τρόπο προγραμματισμού σε γλώσσα Assemblyχρησιμοποιώντας ένα μάλλον πολύπλοκο - στον προγραμματισμό - επεξεργαστή (8086),που όμως είναι σήμερα ο πλέον δημοφιλής λόγω της διάδοσης των συμβατών με IBM PCυπολογιστών. Σαν υπόδειγμα θα χρησιμοποιηθεί ο MASM (Macro Assembler τηςMicrosoft), με τον οποίο μπορείτε να πάρετε ένα πηγαίο αρχείο (συνήθως με το επίθεμα.ASM) και να δημιουργήσετε ένα αντικείμενο αρχείο (επίθεμα .OBJ) και με ένανσυνδέτη (linker) το τελικό εκτελέσιμο αρχείο (επίθεμα .EXE).

4.1 Προτάσεις

Κάθε πρόγραμμα γραμμένο σε Assembly αποτελείται από Προτάσεις (Statements).Κάθε πρόταση μπορεί να αποτελεί είτε Εντολή (Instruction), είτε Οδηγία (Directive). ΟιΕντολές αντιστοιχούν σε εντολές της γλώσσας μηχανής και άρα υπάρχουν με την μορφήαυτή στο τελικό εκτελέσιμο πρόγραμμα. Οι Οδηγίες αντιθέτως αποτελούν διαταγές προςτον Assembler και δεν έχουν άμεση αντιστοιχία με τις εντολές της γλώσσας μηχανής.

Γενικά, κάθε πρόταση σε Assembly έχει τέσσερα πεδία (fields):

1. Πεδίο Ετικέτας (Label)2. Πεδίο Τελεστού (Operator ή Opcode = Operator Code)3. Πεδίο Τελεστέων (Operand)4. Πεδίο Σχολίων (Comments)

Οι ετικέτες χρησιμεύουν στο να αποδίδουν διευθύνσεις κύριας μνήμης με συμβολικότρόπο. Ο τελεστής δεν είναι παρά το όνομα της επιθυμητής πράξης (π.χ. ADD ή NOT),που επιδρά σε έναν ή δύο τελεστέους και το πεδίο σχολίων δεν έχει καμία χρησιμότητα

Page 52: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 52

για το τελικό εκτελέσιμο πρόγραμμα - τοποθετείται στο πηγαίο πρόγραμμα για να κάνειπιο εμφανές το σκεπτικό του προγραμματιστή.

Σε αυτό το κεφάλαιο θα χρησιμοποιηθεί ο όρος "Όνομα οριζόμενο από τον χρήστη" ή"User-defined name", για να υποδηλώνει οποιαδήποτε λέξη η οποία:

1. Δεν είναι δεσμευμένη λέξη (όνομα καταχωρητή, εντολής ή ψευδο-εντολής)

2. Αρχίζει από γράμμα ή κάποιον από τους χαρακτήρες "?", ".", "@", "_" και"$".

3. Αποτελείται στην συνέχεια από οποιονδήποτε συνδυασμό τωνπροαναφερθέντων ή και ψηφίων.

Επίσης ο χαρακτήρας ";" έχει ειδικό νόημα, ήτοι αποτελεί την αρχή του πεδίου σχολίωνσε μία πρόταση. Ο,τιδήποτε τον ακολουθεί, αυτόματα θεωρείται ως σχόλιο έως το τέλοςτης τρέχουσας γραμμής και ως εκ τούτου αγνοείται από τον Συμβολομεταφραστή. Μπορείνα τοποθετηθεί οπουδήποτε - ακόμη και στην αρχή μίας γραμμής.

Όλα τα παραπάνω στοιχεία εμφανίζονται στο παράδειγμα του Σχ. 4.1, το οποίο καιαποτελεί ένα απλό πρόγραμμα σε Assembly. Από το σχήμα αυτό φαίνεται ότι υπάρχουνοδηγίες για την διάρθρωση του τελικού αρχείου (DOSSEG), τον τύπο μοντέλου μνήμηςπου πρέπει να υποτεθεί κατά την γένεση του κώδικα (.MODEL SMALL) και τα τρίαβασικά τμήματα κάθε τέτοιου πηγαίου προγράμματος, ήτοι: το Τμήμα Σωρού, το ΤμήμαΔεδομένων και το Τμήμα Κώδικα. Η οδηγία END σκοπό έχει να δηλώσει στον Assemblerτην ετικέτα της εντολής του προγράμματος που πρέπει να εκτελεσθεί πρώτη (εδώ η Start).Κάθε ετικέτα αποτελείται από ένα όνομα καθορισμένο από τον χρήστη, ακολουθούμενοαπό τον χαρακτήρα ":".

DOSSEG ; Use Microsoft Segment Convention.MODEL SMALL; Stack Segment.STACK 100h; Data Segment.DATAA DW 2.CODE; Main ProgramStart: MOV AX, @DATA

MOV DS, AXMOV AH, 4ChINT 21h

END Start

Σχ. 4.1 Παράδειγμα Απλού Προγράμματος σε 8086 Assembly

4.2 Δεδομένα και η Αναπαράστασή τους στον 8086

Όπως σε οποιαδήποτε γλώσσα, έτσι και στην Assembly υπάρχουν δύο ειδών αξίες:Σταθερές και Μεταβλητές. Εξ ορισμού όλες οι αριθμητικές σταθερές που δηλώνονται

Page 53: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 53

είναι στο δεκαδικό σύστημα. Εάν επιθυμείτε την χρήση του δεκαεξαδικού συστήματοςπρέπει να το καταστήσετε σαφές με το γράμμα "h" ή "Η" στο τέλος της σταθεράς και μεένα "0" στην αρχή εάν το πρώτο ψηφίο είναι μεγαλύτερο του 9. Για το δυαδικό σύστημα ηκατάσταση είναι ίδια, αλλά το τελικό γράμμα τώρα είναι το "b" ή το "B". Π.χ.:

23 - Δεκαδικό23h - Δεκαεξαδικό01111000B - ΔυαδικόF5h - Λάθος!0F5h - Δεκαεξαδικό (σωστό)

Επιπλέον, όλα τα δεδομένα πρέπει να έχουν κάποιο από τα επιτρεπτά μεγέθη. Η πιο μικρήμορφή δεδομένων είναι το bit. Δεδομένου όμως ότι η κύρια μνήμη αποτελείται από 220

διευθύνσεις, που η κάθε μία αντιστοιχεί σε ένα byte, και η προσπέλασή της γίνεται κατά 1ή δύο byte κάθε φορά, η βασική μονάδα πληροφορίας είναι το byte. Αυτό αποτελείται από8 bit, αριθμημένα από το 7 (το πιο σημαντικό) έως το 0 (το λιγότερο σημαντικό). Το μισόενός byte (= 4 bit) ονομάζεται nibble. Εάν ο 8086 εργάζεται με δεδομένο των 16 bit (= 2byte), το τελευταίο ονομάζεται λέξη ή word. Εάν το δεδομένο αποτελείται από 32 bit (= 4byte), τότε ονομάζεται διπλή λέξη ή double word. Παράδειγμα της διάρθρωσης ενός byteφαίνεται στο Σχ. 4.2.

Σχ. 4.2 Διάρθρωση Ενός Byte

Για ευκολία στον χειρισμό σταθερών, υπάρχει η δυνατότητα αναπαράστασής τους μέσωσυμβολικών ονομάτων τα οποία είναι ευκολότερα στην απομνημόνευση και κατανόηση.Για τον σκοπό αυτό μπορούμε να χρησιμοποιήσουμε την οδηγία EQU. Π.χ.:

Α EQU 2

Το παραπάνω σημαίνει: "Από εδώ και στο εξής, οπουδήποτε συναντήσεις το συμβολικόόνομα Α, αυτόματα θα το αντικαταστήσεις με την αριθμητική σταθερά 2". Η EQU όμωςμπορεί να χρησιμοποιηθεί και για οποιαδήποτε άλλη αντικατάσταση. Π.χ.:

Page 54: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 54

Copy EQU Mov.....Copy AX, 2

Οι ίδιοι περιορισμοί ισχύουν και για τις μεταβλητές, που δεν είναι παρά 1 ή περισσότεραδιαδοχικά byte στην μνήμη. Προκειμένου όμως να δεσμεύσουμε τον απαραίτητο χώροστην μνήμη για κάποια μεταβλητή, πρέπει να χρησιμοποιήσουμε μία ομάδα από οδηγίεςτου Assembler, οι οποίες είναι οι παρακάτω για δεδομένα τύπου byte, word και doubleword, αντιστοίχως:

DB DW DD

Έτσι, για να δεσμεύσουμε ένα δεδομένο του ενός byte στην κύρια μνήμη, πρέπει ναδηλώσουμε ένα συμβολικό όνομα (ετικέτα) για την διεύθυνση, την οδηγία DB και τηναρχική του τιμή (συνήθως μία σταθερά). Π.χ.:

A DB 33

Αυτό σημαίνει: "Δέσμευσε ένα byte στην κύρια μνήμη, με συμβολική διεύθυνση A και μεαρχική τιμή 33 (δεκαδικό)".

A1 DW 25h

Αυτό σημαίνει: "Δέσμευσε ένα word στην κύρια μνήμη, με συμβολική διεύθυνση A1 και μεαρχική τιμή 25 (δεκαεξαδικό)". Εφόσον όμως η μία διεύθυνση κύριας μνήμης αντιστοιχείσε ένα byte, γεννάται το ερώτημα πώς αποθηκεύεται η παραπάνω αρχική τιμή. Ηαπάντηση είναι ότι δεσμεύονται 2 διαδοχικά byte, το πρώτο εκ των οποίων βρίσκεται στηνδιεύθυνση A1 και το δεύτερο στην διεύθυνση A1+1, με το λιγότερο σημαντικό (LSB),τοποθετημένο πρώτο. Για το παράδειγμά μας αυτό σημαίνει:

Διεύθυνση Μνήμης Περιεχόμενο ByteΑ1+1 00hΑ1 25h

Είναι δυνατόν να ορίσουμε περισσότερες από μία μεταβλητές του ιδίου τύπου στην ίδιαγραμμή. Π.χ.:

Α2 DB 21, 21h, ?

Εδώ έχουμε δεσμεύσαμε 3 διαδοχικά byte στην μνήμη, αρχής γενομένης από τηνδιεύθυνση A2, και με αρχικές τιμές 21-δεκαδικό, 21-δεκαεξαδικό και χωρίς αρχική τιμή,όπως υποδηλώνεται από την τοποθέτηση του ?. Είναι δυνατόν να έχουμε και κωδικούςASCII ως αρχικές τιμές για να αναπαραστήσουμε μία συμβολοσειρά. Σε αυτήν τηνπερίπτωση, μπορούμε να δώσουμε τους χαρακτήρες αντί των ASCII κωδικών τους γιαευκολία, περικλείοντάς τους μέσα σε ένα ζευγάρι από " (quote) ή ' (single quote). ΟAssembler αναλαμβάνει να κάνει αυτόματα την αντικατάσταση. Π.χ.:

Page 55: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 55

String1 DB "hello", 32, "friend"

Εδώ έχουμε δέσμευση 12 byte με αρχικές τιμές τους ASCII κωδικούς των αντιστοίχωνχαρακτήρων. Προσέξτε ότι ο 6ος χαρακτήρας αρχικοποιείται απ' ευθείας με τον ASCIIκωδικό 32, που αντιστοιχεί στο κενό.

Σε περίπτωση που επιθυμούμε την δέσμευση πολλών δεδομένων του ιδίου τύπου με ίδιααρχική τιμή (ή καμία για όλα), μπορούμε να χρησιμοποιήσουμε τον τελεστή DUP. Π.χ.:

Array DB 100 DUP (0)

Εδώ δεσμεύονται 100 διαδοχικά byte στην μνήμη, από την διεύθυνση Array έως και τηνδιεύθυνση Array+99, με αρχική τιμή 0.

Υπάρχουν πολλές ακόμη οδηγίες, οι οποίες εξυπηρετούν πολλούς διαφορετικούς σκοπούς.Ορισμένες μόνον θα παρουσιασθούν στην συνέχεια. Ο ενδιαφερόμενος αναγνώστης θαπρέπει να ανατρέξει στις εργαστηριακές σημειώσεις ή την βιβλιογραφία για πιο πλήρηενημέρωση.

4.3 Εντολές Μετακίνησης Δεδομένων

Μία απλή αλλά σημαντική λειτουργία η οποία απαιτείται από έναν σύγχρονομικροεπεξεργαστή είναι η μετακίνηση δεδομένων από ένα τμήμα του Η/Υ στο άλλο.Βασικά, τα τμήματα τα οποία μπορούν να κρατήσουν δεδομένα σε έναν Η/Υ είναι οικαταχωρητές και η κύρια μνήμη. Υπάρχουν και άλλα δύο λογικά τμήματα τα οποία θαδούμε παρακάτω: Οι Θύρες Εισόδου / Εξόδου και η Σωρός (Stack). Η τελευταία αποτελείτμήμα της κύριας μνήμης, αλλά λόγω της ιδιαιτερότητάς της εξετάζεται ξεχωριστά.

Ο 8086 είναι χαρακτηριστικό παράδειγμα συμβιβασμών κατά τον σχεδιασμό του. Αυτόφαίνεται και στο σύνολο των εντολών του για μετακίνηση δεδομένων, δεδομένου ότι δενείναι δυνατή η μετακίνηση καθ' οιονδήποτε συνδυασμό. Ιδίως η μετακίνηση (άμεση) απόδιεύθυνση μνήμης σε διεύθυνση μνήμης δεν είναι δυνατή.

Για να διευκολυνθεί η παρουσίαση των εντολών, θα χρησιμοποιηθούν οι παρακάτωσυντομογραφίες:

Reg: Ένας καταχωρητήςMem: Μία θέση μνήμηςReg8: Το υψηλό ή χαμηλό τμήμα ενός από τους καταχωρητές δεδομένων,

ήτοι ένας από τους AL, AH, BL, BH, CL, CH, DL, DHReg16: Ένας καταχωρητής 16 bit γενικής χρήσης, ήτοι ένας από τους AX,

BX, CX, DX, SP, BP, SI, DIMem8: Μία θέση μνήμης του 1 byteMem16: Μία θέση μνήμης του 1 wordImm: Μία σταθερά (άμεση αξία), ήτοι ένας αριθμός ή σύμβολο που έχει

ορισθεί με την βοήθεια της οδηγίας EQU.

Page 56: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 56

SR: Ένας από τους καταχωρητές τμημάτων, ήτοι ένας από τους CS, DS,ES, SS

Όλες οι εντολές ή οδηγίες μπορούν να γραφούν είτε με κεφαλαία, είτε με μικρά γράμματα.Δεν υπάρχει καμία διαφορά.

Η βασική εντολή για μετακίνηση δεδομένων είναι η:

MOV <Προορισμός>, <Προέλευση>

όπου Προορισμός μπορεί να είναι Reg8, Reg16, Mem8, Mem16, ή SR, εκτός από τονCS. Προέλευση μπορεί να είναι Reg8, Reg16, Mem8, Mem16, Imm ή SR. Άλλεςεξαιρέσεις είναι ότι δεν μπορούν ο Προορισμός και η Προέλευση να είναιταυτόχρονα θέσεις μνήμης και όταν η Προέλευση είναι τύπου Imm, τότε δεν είναιδυνατόν ο Προορισμός να είναι τύπου SR. Π.χ.:

MOV AX, 345h ; Φόρτωσε τον AX με την τιμή 345hMOV SI, DI ; Περιεχόμενα του DI στον SIMOV AL, loc ; Περιεχόμενα θέσης μνήμης loc στον ALMOV AX, loc ; Περιεχόμενα θέσεων μνήμης loc και loc+1

στον AX.MOV AL, DX ; Λάθος! DX είναι καταχωρητής 16 bit

Για να τοποθετήσουμε την διεύθυνση (offset μόνον) μίας θέσεως μνήμης σε ένανκαταχωρητή, υπάρχουν δύο τρόποι:

LEA <Reg16>, <Mem16>MOV <Reg16>, OFFSET <Mem16>

Η πρώτη είναι εντολή, ενώ η δεύτερη χρησιμοποιεί και ένα ειδικό πρόθεμα (OFFSET).Π.χ.:

Array DB 5, 4, 3, 2, 1, 0..LEA BX, ArrayMOV DX, OFFSET Array

4.4 Αριθμητικές και Λογικές Εντολές

Οι αριθμητικές εντολές που υποστηρίζονται από τον 8086 είναι: πρόσθεση, αφαίρεση,πολλαπλασιασμός και διαίρεση, ενώ οι λογικές εντολές είναι: AND, OR, NOT και ΧΟR.Σε αυτές μπορούν να προστεθούν και η NEG, καθώς και οι εντολές ολίσθησης.

Page 57: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 57

4.4.1 Αύξηση και Μείωση

Οι εντολές αυτές έχουν την παρακάτω μορφή:

INC <Τελεστέος>DEC <Τελεστέος>

όπου Τελεστέος μπορεί να είναι: Reg8, Reg16, Mem8 ή Mem16. Με την πρώτη εντολήαυξάνεται το περιεχόμενο του τελεστέου κατά 1 Με την δεύτερη μειώνεται τοπεριεχόμενο του τελεστέου κατά 1. Οι σημαίες δεν επηρεάζονται. Π.χ.:

INC AXDEC Array ; Array είναι μία διεύθυνση μνήμης

4.4.2 Πρόσθεση και Αφαίρεση

ADD <Προορισμός>, <Προέλευση>SUB <Προορισμός>, <Προέλευση>ADC <Προορισμός>, <Προέλευση>SBB <Προορισμός>, <Προέλευση>

όπου Προορισμός και Προέλευση είναι Reg8, Reg16, Mem8, Mem16, αλλά όχι και οιδύο ταυτόχρονα Mem8 ή Mem16. Επίσης η Προέλευση μπορεί να είναι και τύπου Imm.Η πρώτη από τις παραπάνω εντολές παίρνει την Προέλευση και την προσθέτει στοπεριεχόμενο του Προορισμού, τοποθετώντας το τελικό αποτέλεσμα στον Προορισμό. Τοίδιο κάνει η δεύτερη εντολή, αλλά για αφαίρεση.

Οι δύο τελευταίες εντολές πραγματοποιούν και πάλι πρόσθεση και αφαίρεση αντίστοιχα,αλλά χρησιμοποιούν και μία τρίτη παράμετρο, που είναι το περιεχόμενο της ΣημαίαςΚρατουμένου (CF = Carry Flag), σαν κρατούμενο για πρόσθεση (carry) ή αφαίρεση(borrow). Δηλαδή:

ADC: <Προορισμός> ! <Προορισμός> + <Προέλευση> + CFSBB: <Προορισμός> ! <Προορισμός> - <Προέλευση> - CF

Είναι προφανές ότι για προσθαφαιρέσεις αριθμών μεγαλυτέρων των 16 bit είναι αναγκαίαη χρήση κρατουμένου, κάτι που οι παραπάνω δύο εντολές χρησιμοποιούν αυτομάτως. Τοαποτέλεσμα επηρεάζει τις CF, OF, SF, ZF. Π.χ. για αφαίρεση 32 bit:

A DW ...RestA DW ...

.

.SUB AX, ASBB BX, RestA

Page 58: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 58

4.4.3 Πολλαπλασιασμός και Διαίρεση

Εδώ διακρίνουμε δύο είδη για κάθε πράξη: Χρήση Προσημασμένων και Μη-Προσημασμένων αριθμών.

MUL <Τελεστέος> ; Μη-προσημασμένοςDIV <Διαιρέτης> ; Μη-προσημασμένοςIMUL <Τελεστέος> ; ΠροσημασμένοςIDIV <Διαιρέτης> ; Προσημασμένος

Στα παραπάνω ο Τελεστέος και ο Διαιρέτης μπορεί να είναι Mem8, Mem16, Reg8ή Reg16. Το σημαντικό είναι ότι για πολλαπλασιασμό κατά 1 byte ή 2 byte υπονοείται:

1 byte: AX ! AL x Τελεστέος2 byte: DX:AX ! AX x Τελεστέος ; DX περιέχει τα υψηλά

2 byte

δεδομένου ότι ο πολλαπλασιασμός στην χειρότερη περίπτωση απαιτεί διπλάσιο μέγεθοςγια να αποθηκευθεί το γινόμενο. Παρόμοια έχουμε για την διαίρεση:

1 byte: AX / Διαιρέτης " Πηλίκο στον AL, Υπόλοιπο στον AH2 byte: DX:AX / Διαιρέτης " Πηλίκο στον ΑΧ, Υπόλοιπο στον DX

Μερικά παραδείγματα:

Array DB 2, 3, 4, 5..MOV AL, 8MOV BL, Array+1MUL BL ; Γινόμενο (3x8 = 24) στον AX

4.4.4 Πράξεις Λογικής

AND <Τελεστέος1>, <Τελεστέος2>ΟR <Τελεστέος1>, <Τελεστέος2>ΧΟR <Τελεστέος1>, <Τελεστέος2>NOT <Τελεστέος>

Οι Τελεστέος1 και Τελεστέος2 μπορεί να είναι Reg8, Reg16, Mem8 ή Mem16,αλλά ποτέ τύπου Mem και οι δύο ταυτόχρονα. To ίδιο και ο Τελεστέος, ενώ ειδικά οΤελεστέος2 μπορεί να είναι και τύπου Imm. Αν και η επόμενη εντολή ανήκει στιςαριθμητικές, παρουσιάζεται εδώ λόγω ομοιότητας με την NOT:

NEG <Τελεστέος>

Page 59: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 59

Η μεν NOT αντιστρέφει κάθε bit από τον αντίστοιχο τελεστέο, ουσιαστικά παράγοντας το1-συμπλήρωμα του αριθμού αυτού. Η NEG κάνει ό,τι και η NOT, αλλά προσθέτει και τηντιμή 1 σε στο 1-συμπλήρωμα, ουσιαστικά παράγοντας το 2-συμπλήρωμα του αρχικούαριθμού. Για τον λόγο αυτό, η NEG χρησιμοποιείται για να παράγει τον αρνητικό ενόςαριθμού. Μερικά παραδείγματα:

XOR AX, AX ; AX !!!! 0XOR AL, BLNOT BXOR DL, ArrayAND AH, 00001111B ; Το πιο σημαντικό nibble του AH μηδενίζεται

4.4.5 Πράξεις Ολίσθησης

Διακρίνουμε δύο κατηγορίες ολίσθησης: Απλή ολίσθηση και Κυκλική ολίσθηση. Οιεντολές απλής ολίσθησης αρχίζουν με το πρόθεμα S (= Shift), ενώ οι εντολές κυκλικήςολίσθησης με το πρόθεμα R (= Rotate).

Shift (Arithmetic) Left

SAL <Τελεστέος>, <Πλήθος>SHL <Τελεστέος>, <Πλήθος>

Εδώ ο Τελεστέος μπορεί να είναι Reg8, Reg16, Mem8, Mem16, το δε ΠλήθοςΠλήθοςΠλήθοςΠλήθος είτε οαριθμός 1, είτε ο καταχωρητής CL. Το αποτέλεσμα της πράξεως είναι η ολίσθηση τουτελεστέου κατά τόσα bit όσα στο Πλήθος προς τα αριστερά. Το λιγότερο σημαντικό bitμηδενίζεται, ενώ το πιο σημαντικό bit τοποθετείται στην σημαία CF, όπως φαίνεται απότο Σχ. 4.3. Η εντολή SHL είναι ακριβώς ίδια με την SAL.

Σχ. 4.3 SAL

Shift Arithmetic Right

SAR <Τελεστέος>, <Πλήθος>

Και εδώ ισχύουν τα ίδια, αλλά η ολίσθηση γίνεται προς τα δεξιά, όπως φαίνεται και απότο Σχ. 4.4. Το λιγότερο σημαντικό bit τοποθετείται στην σημαία CF και το πιο σημαντικόbit μένει αναλλοίωτο. Με αυτόν τον τρόπο μπορούμε να ολισθήσουμε προσημασμένουςαριθμούς, αφού το πλέον σημαντικό bit (πρόσημο) διατηρείται.

Page 60: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 60

Σχ. 4.4 SAR

SHift Right

SΗR <Τελεστέος>, <Πλήθος>

Ίδια με την προηγούμενη, αλλά εδώ το πρόσημο δεν διατηρείται (βλ. Σχ. 4.5).

Σχ. 4.5 SHR

ROtate Left

ROL <Τελεστέος>, <Πλήθος>

Ισχύουν τα ίδια για τις παραμέτρους της εντολής, αλλά τώρα η ολίσθηση είναι κυκλικήπρος τα αριστερά, οπότε το πιο σημαντικό bit μεταφέρεται στην σημαία CF, αλλά καιστην θέση του λιγότερου σημαντικού bit (βλ. Σχ. 4.6).

Page 61: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 61

Σχ. 4.6 ROL

ROtate Right

ROR <Τελεστέος>, <Πλήθος>

Ίδια με την προηγούμενη, αλλά τώρα η ολίσθηση γίνεται κυκλικά προς τα δεξιά (βλ. Σχ.4.7).

Σχ. 4.7 ROR

Rotate through Carry Left

RCL <Τελεστέος>, <Πλήθος>

Παρόμοια με την προηγούμενη, αλλά τώρα συμμετέχει άμεσα και η σημαία CF (βλ. Σχ.4.8).

Σχ. 4.8 RCL

Page 62: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 62

Rotate through Carry Right

RCR <Τελεστέος>, <Πλήθος>

Παρόμοια με την προηγούμενη. Η φορά της ολίσθησης είναι τώρα προς τα δεξιά (βλ. Σχ.4.9).

Σχ. 4.9 RCR

4.5 Τρόποι Πρόσβασης σε Δεδομένα από τον 8086

Για να μπορέσει ο 8086 (και κάθε επεξεργαστής) να εκτελέσει διάφορες χρήσιμεςλειτουργίες πρέπει να είναι σε θέση να προσπελαύνει δεδομένα. Αυτά μπορεί να είναι σετρία μέρη: Στους καταχωρητές του 8086, στην κύρια μνήμη ή σε κάποια από τις θύρεςεισόδου/εξόδου. Ο τρόπος πρόσβασης ονομάζεται Τρόπος Διευθυνσιοποίησης(Addressing Mode). Σε γλώσσα Assembly η πιο συνηθισμένη εντολή μετακίνησηςδεδομένων είναι η παρακάτω:

MOV <Προορισμός>, <Προέλευση>

Όταν η εντολή αυτή εκτελείται, ο 8086 αντιγράφει μία λέξη (16 bits) ή ένα byte από τηνΠροέλευση στον Προορισμό. Υπάρχουν 24 διαφορετικοί δυνατοί συνδυασμοί πηγήςπροορισμού, στους οποίους δεν περιλαμβάνεται η περίπτωση και οι δύο να είναι θέσειςμνήμης που δεν υποστηρίζεται από τον επεξεργαστή. Οι διάφοροι τρόποιδιευθυνσιοποίησης (Addressing Modes) είναι οι εξής πέντε:

1. Απ' ευθείας (Direct) - Εδώ και η Προέλευση και ο Προορισμός είναιένας καταχωρητής ή θέση μνήμης, που περιέχουν τα δεδομένα που μαςενδιαφέρουν. Είναι η πιο απλή κατηγορία διευθυνσιοδότησης. Π.χ.

MOV BX, AXMOV Store, CX

Page 63: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 63

2. Άμεσος (Immediate) - Εδώ η Προέλευση είναι μία σταθερά (αριθμός)και ο Προορισμός ένας καταχωρητής ή μία διεύθυνση μνήμης. Γιααριθμούς 16 bits με προορισμό την μνήμη, το πρώτο byte αποθηκεύεταιστην θέση μνήμης που δίνεται στην εντολή και το δεύτερο στην αμέσωςεπόμενη. Υπάρχει φυσικά και η παραλλαγή για αριθμούς των 8 bits. Μηνξεχνάτε ότι η διεύθυνση μνήμης που δίνεται είναι μόνον η απόσταση(offset) από την βάση τμήματος (συνήθως δεδομένων οπότε συνδυάζεταιμε τον DS). Παραδείγματα:

MOV CX, 43B1h - Σταθερά 43Β1h στον CXMOV AL, 2Ah - Σταθερά 2Αh στον ALmov byte ptr [3212h], 45h - Βάλε την σταθερά 45h

στην διεύθυνση μνήμηςDS:3212h

mov word ptr [3212h], 45h - Βάλε την σταθερά 45hστην διεύθυνση μνήμηςDS:3212h και DS:3213h(45h και 00, αντιστοίχως).

3. Έμμεσος (Indirect) - Αυτός ο τρόπος διευθυνσιοδότησης χρησιμοποιείταιόταν χρησιμοποιούμε έναν καταχωρητή, που περιέχει την θέση μνήμηςόπου βρίσκονται τα δεδομένα που μας ενδιαφέρουν και όχι τα δεδομένααυτά καθ' αυτά. Μόνον οι καταχωρητές BX, BP, SI και DI μπορούν ναχρησιμοποιηθούν με αυτόν τον τρόπο διευθυνσιοδότησης και σε αυτήν τηνπερίπτωση θα πρέπει να περικλείονται σε ένα ζευγάρι από αγκύλες. Π.χ.:

List DW 14, 4, 10, 6, 4..LEA BX, ListMOV AX, [BX]

4. Με Μετάθεση (Displacement) - Εδώ τα δεδομένα βρίσκονται στην θέσημνήμης που δείχνει ο χρησιμοποιούμενος καταχωρητής συν ή πλην κάποιασταθερή απόσταση από την θέση αυτή. Η τελική θέση μνήμης είναι Π.χ.:

List DB 15, 4, 10, 6, 4..LEA BX, ListMOV AX, [BX+4] ; 4[BX] και [BX]+4 είναι

ισοδύναμα

5. Με Δεικτοδότηση (Index) - Αυτός ο τρόπος διευθυνσιοδότησης πηγαίνειτον προηγούμενο τρόπο ένα βήμα παρά πέρα, ακολουθώντας το παρακάτωγενικό σχήμα:

[<καταχ_δείκτης> + <καταχ_βάσης> + <απόσταση>]

Page 64: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 64

όπου καταχ_δείκτης ο SI ή ο DI, καταχ_βάσης είναι ο ΒΧ ή ο ΒΡ,και απόσταση οποιαδήποτε σταθερά 16 bits. Συνήθως χρησιμοποιείταιγια την προσπέλαση στοιχείων ενός πίνακα. Λιγότερο γενικές περιπτώσειςδεν περιλαμβάνουν όλους τους παραπάνω παράγοντες. Παραδείγματα:

MOV AH, [BΧ+SI+123h] - Αντίγραψε στον ΑΗ τοπεριεχόμενο της διεύθυνσης, τηςοποίας η μετατόπιση προκύπτει απότο άθροισμα του 123h με τοπεριεχόμενο του ΒΧ και τοπεριεχόμενο του SI

MOV 43h[SI][ΒP], DH - Αντίγραψε το περιεχόμενο του DH,στην διεύθυνση μνήμης μεμετατόπιση που προκύπτει από τοάθροισμα του περιεχομένου του SIμε το 43h.

4.6 Εντολές Ελέγχου και Επανάληψης

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

4.6.1 CMP και TEST

CMP <Τελεστέος1>, <Τελεστέος2>

Εδώ Τελεστέος1 είναι ένας κατάχωρητής του 1 ή 2 byte ή μία θέση μνήμης.Τελεστέος2 είναι ένας κατάχωρητής του 1 ή 2 byte ή μία θέση μνήμης ή ακόμα μίασταθερά. Οπωσδήποτε όμως ένας από τους δύο τελεστέους πρέπει να είναι κάποιοςκαταχωρητής. Στην πραγματικότητα αυτό που συμβαίνει είναι αφαίρεση των δύοτελεστέων και ενημέρωση των αντιστοίχων σημαιών βάσει του αποτελέσματος.Παραδείγματα:

CMP AL, 34CMP BYTE PTR [3221h], 34CMP AX, DXCMP AX, [SI]

Page 65: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 65

Η εντολή TEST είναι παρόμοια με την CMP. Η μόνη διαφορά έγκειται στο γεγονός ότιαντί για αφαίρεση των δύο τελεστέων, τώρα πραγματοποιείται ένα λογικό AND μεταξύτους. Χρησιμοποιείται μάλλον σπάνια.

4.6.2 Άλματα

Υπάρχουν δύο είδη εντολών αλμάτων σε διευθύνσεις: Χωρίς συνθήκη και Υπό συνθήκη.Στην πρώτη κατηγορία ανήκει η εντολή JMP, ενώ στην δεύτερη κατηγορία όλες οιυπόλοιπες.

JMP

JMP <Τελεστέος>

όπου Τελεστέος είτε μία διεύθυνση μνήμης (16 bit για μετατόπιση μόνον, 32 bit γιατμήμα και μετατόπιση), είτε μία ετικέτα (συμβολική διεύθυνση μνήμης), είτε έναςκαταχωρητής 16 . Στην τελευταία περίπτωση ο καταχωρητής θεωρείται ότι περιέχει τηντελική διεύθυνση στην οποία θέλουμε να μεταφέρουμε τον έλεγχο. Παραδείγματα:

JMP There..

There:..MOV AX, OFFSET ThereJMP AX

Είναι δυνατόν να πραγματοποιηθούν και σχετικά άλματα (δηλαδή έως +127 byte και έως-128 byte από την τρέχουσα διεύθυνση). Όλες οι παρακάτω εντολές εκτελούν άλματα υπόσυνθήκη τα οποία μπορούν να γίνουν μόνον με τον σχετικό τρόπο που μόλις περιγράφηκε.

Η μορφή τους είναι:

<Άλμα_Υπό_Συνθήκη> <Μικρή_Ετικέτα>

όπου Μικρή_Ετικέτα είναι συμβολική διεύθυνση έως +127 byte και -128 byte από τηντρέχουσα διεύθυνση. Οι εντολές αυτής της μορφής παρουσιάζονται συνοπτικά παρακάτω:

Εντολή Νόημα

Page 66: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 66

JNP Jump if No ParityJPO Jump if Parity OddJO Jump if OverflowJNO Jump if No OverflowJB Jump if Below (για μη-προσημασμένους αριθμούς)JNAE Jump if Not Above or Equal (για μη-προσημασμένους

αριθμούς)JC Jump if CarryJP Jump if ParityJPE Jump if Parity EvenJAE Jump if Above or Equal (για μη-προσημασμένους αριθμούς)JNB Jump if Not BelowJNC Jump if No CarryJE Jump if EqualJNE Jump if Not EqualJNZ Jump if Not Zero (ίδιο με προηγούμενο)JBE Jump if Below or Equal (για μη-προσημασμένους αριθμούς)JNA Jump if Not Above (για μη-προσημασμένους αριθμούς)JA Jump if Above (για μη-προσημασμένους αριθμούς)JNBE Jump if Not Below or Equal (για μη-προσημασμένους)JS Jump if SignJNS Jump if Not SignJL Jump if Less thanJNGE Jump if Not Greater than or EqualJNL Jump if Not Less thanJGE Jump if Greater than or EqualJLE Jump if Less than or EqualJNG Jump if Not Greater thanJNLE Jump if Not Less than or EqualJG Jump if GreaterJCXZ Jump if CX is Zero

Όπως είναι φανερό πάρα πολλές από αυτές είναι ισοδύναμες. Βασίζονται δε σταπεριεχόμενα πέντε σημαιών: ZF, CF, SF, OF και PF.

4.6.3 Εντολές Επανάληψης

Οι εντολές επανάληψης βασίζονται στην LOOP, η οποία έχει την μορφή:

LOOP <Μικρή_Ετικέτα>

όπου Μικρή_Ετικέτα μία συμβολική διεύθυνση μνήμης σε απόσταση έως +127 byte ή-128 byte από την τρέχουσα διεύθυνση. Η LOOP και όλες οι παραλλαγές της ουσιαστικάυλοποιούν την γνωστή δομή:

Page 67: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 67

REPEAT..

UNTIL <συνθήκη>;

χρησιμοποιώντας έναν καταχωρητή ως μετρητή για το μέγιστο πλήθος επαναλήψεων.Αυτός ο καταχωρητής είναι πάντοτε ο CX (Counter). Επομένως είναι απαραίτητο νααρχικοποιηθεί ο CX πριν από την είσοδο στο κυρίως τμήμα του βρόχου επανάληψης.Κάθε φορά που εκτελείται η LOOP μειώνεται ο CX κατά 1 και ελέγχεται εάν είναι ίσος μετο 0. Εάν ο CX δεν έχει μηδενισθεί, ο έλεγχος μεταφέρεται στην Μικρή_Ετικέτα ηοποία αποτελεί άλλωστε και την αρχή του βρόχου επανάληψης.

LOOP

Έστω ότι θέλετε να πραγματοποιήσετε τον παρακάτω βρόχο επανάληψης (γραμμένος σεPASCAL), ώστε να υπολογίσετε το:

fact := 1;for i := 5 downto 1 do

fact := fact * i;

Χρησιμοποιώντας την εντολή LOOP ο βρόχος αυτός μπορεί να γραφεί ως εξής:

fact DW ?..MOV fact, 1MOV AX, fact ; Προετοιμασία για πολλαπλασιασμόMOV CX, 5 ; CX ταυτόσημο με i

Loop1:MUL CX ; fact := fact * iLOOP Loop1MOV fact, AX ; fact :==== Τελικό Αποτέλεσμα

LOOPZ (LOOPE)

Ουσιαστικά δύο διαφορετικές συμβολικές ονομασίες για την ίδια εντολή. Η μορφή τηςείναι:

LOOPE <Μικρή_Ετικέτα>

και επαναλαμβάνει τον βρόχο για όσο διάστημα ο CX ≠ 0 και η σημαία ZF = 1(προηγούμενη εντολή δημιούργησε μηδενικό αποτέλεσμα). Π.χ. ο παρακάτω βρόχοςεπαναλαμβάνεται το πολύ 10 φορές, για όσο διάστημα ο AX = 0:

MOV CX, 10

Page 68: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 68

StartLoop: ....CMP AX, 0LOOPE StartLoop

LOOPNZ (LOOPNE)

LOOPNE <Μικρή_Ετικέτα>

Αυτή η εντολή επαναλαμβάνει τον βρόχο για όσο διάστημα ο CX ≠ 0 και η σημαία ZF = 0(προηγούμενη εντολή δημιούργησε μη-μηδενικό αποτέλεσμα). Π.χ. ο παρακάτω βρόχοςεπαναλαμβάνεται το πολύ 10 φορές, για όσο διάστημα ο AX ≠ 0:

MOV CX, 10StartLoop: ....

CMP AX, 0LOOPΝE StartLoop

4.7 Μακροεντολές

Πολλές φορές είναι δυνατόν μία σειρά από διαδοχικές εντολές να απαντάται πολλές φορέςμέσα σε ένα πρόγραμμα. Σε αυτήν την περίπτωση είναι ευκολότερο να ομαδοποιήσουμεαυτές τις εντολές και να τις αντικαταστήσουμε με μία που να τις εκφράζει όλες. Ειδικάστην 8086 Assembly υπάρχει η δυνατότητα ο προγραμματιστής να δημιουργήσει τέτοιες"εντολές". Μία τέτοια "εντολή" ονομάζεται MACRO (ή μακροεντολή) και δεν αποτελείεντολή του 8086, αλλά μία δυνατότητα που παρέχει ο Assembler.

Ο τρόπος για να ορίσουμε μία MACRO είναι ο εξής:

<Όνομα_macro> MACRO <Λίστα_Παραμέτρων><Σώμα της macro>

ENDM <Όνομα_macro>

όπου Όνομα_macro είναι ένα όνομα που ορίζει ο χρήστης, Λίστα_Παραμέτρων είναιμία λίστα από τυπικές παραμέτρους (επίσης ονόματα που ορίζει ο χρήστης, χωριζόμενα μεκενό, tab ή κόμμα) και Σώμα της macro είναι οι εντολές που πρόκειται νααναπαρασταθούν συλλογικά από την MACRO. Π.χ.:

Abs MACRO XLOCAL PosCMP X, 0JGE PosNEG X

Pos: NOP ; Αυτή η εντολή δεν κάνει τίποτε

Page 69: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 69

ENDM Abs

Στο παράδειγμα αυτό, το όνομα της μακροεντολής είναι AbsAbsAbsAbs. Επίσης προσέξτε τηνοδηγία LOCALLOCALLOCALLOCAL. Η τελευταία χρησιμοποιείται όταν επιθυμούμε την ύπαρξη συμβολικώνδιευθύνσεων ως ετικέτες για άλματα σε αυτές, μέσα στην ομάδα των επιμέρους εντολώντης μακροεντολής. Όλες οι τοπικές συμβολικές διευθύνσεις της μακροεντολής πρέπει ναδηλώνονται ως παράμετροι της LOCALLOCALLOCALLOCAL, ώστε να μην υπάρχουν περισσότεροι της μίαςεμφάνισης των τοπικών ετικετών, κάτι που θα ήταν λάθος.

Για να χρησιμοποιήσουμε μία μακροεντολή (μετά τον ορισμό της), δεν έχουμε παρά νααναγράψουμε το όνομά της, ακολουθούμενο από μία λίστα με τα ονόματα τωνπαραμέτρων, που θα αντικαταστήσουν τις τυπικές παραμέτρους της μακροεντολής. Εδώπρέπει να τονισθεί ότι η μακροεντολή "εκτελείται" από τον Assembler, ο οποίος κατά τηνσυμβολομετάφραση του πηγαίου προγράμματος απλά αντικαθιστά κάθε στιγμιότυπο(κλήσης) της μακροεντολής με το σύνολο των επιμέρους (πραγματικών) εντολών που τηναποτελούν. Π.χ.:

....Swap MACRO X, Y

MOV AX, XMOV DX, YMOV X, DXMOV Y, AXENDM Swap

.

.Swap [BX] [DI], [BX][SI]

Εδώ η τυπική παράμετρος X αντικαθίσταται κατά την κλήσης της Swap με τα[BX][DI] και η Y με τα [BX][SI].

4.8 Σωρός και Διαδικασίες

4.8.1 Σωρός

Ο κανονικός τρόπος πρόσβασης στο τμήμα Σωρού (Stack) της κύριας μνήμης διαφέρειαπό τα παραπάνω, επειδή γίνεται μέσω της οικογένειας των εντολών PUSH και POP, μετην πρώτη να χρησιμοποιείται για αντιγραφή δεδομένων προς την σωρό και την δεύτερηαπό την σωρό. Πάντα η αντιγραφή αναφέρεται σε δεδομένα των 16 bits και αντιστοιχεί σεμείωση (PUSH) ή αύξηση (POP) του καταχωρητή SP (ο οποίος δείχνει την κορυφή τουσωρού), κατά δύο. Η μορφή των εντολών αυτών είναι η εξής:

PUSH <Τελεστέος>POP <Τελεστέος>

Page 70: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 70

όπου Τελεστέος είναι ένας καταχωρητής ή διεύθυνση μνήμης. Η μόνη εξαίρεση είναιη μη-ύπαρξη της POP CS και οι ειδικές εκδόσεις για τον καταχωρητή σημαιών:

PUSHFPOPF

Αν και η σωρός μπορεί να παίξει τον ρόλο προσωρινής αποθήκευσης δεδομένων στηνκύρια μνήμη στην οποία και υλοποιείται, η κύριος λόγος ύπαρξής της είναι η διευκόλυνσητης πραγματοποίησης διαδικασιών (procedures).

4.8.2 Διαδικασίες

Από άλλες γλώσσες προγραμματισμού ανωτέρου επιπέδου είναι γνωστό ότι μίαδιαδικασία (ή υπορουτίνα) είναι μία διαδοχή από εντολές, που μπορούν να κληθούν απόάλλα τμήματα του προγράμματος, έξω από την διαδικασία. Επομένως, όπως και για τηνπερίπτωση των μακροεντολών, υπάρχει μία μοναδική διαδοχή από κώδικα, αλλά μπορείνα εκτελεσθεί πολλές φορές. Η διαφορά μίας διαδικασίας από μία μακροεντολή είναι ότι ηδιαδικασία γράφεται μόνον μία φορά και ότι κάθε φορά που καλείται στο πρόγραμμα,καλείται και στο εκτελέσιμο - δηλαδή ο Assembler δεν αντικαθιστά κάθε της κλήση με τιςαντίστοιχες εντολές, αλλά ο 8086 μεταφέρει τον έλεγχο στην πρώτη εντολή της. Στοιχίζειπερισσότερο σε χρόνο, αλλά πολύ λιγότερο σε μέγεθος κώδικα.

Μία διαδικασία ορίζεται ως εξής:

<Όνομα_Διαδικασίας> PROC { NEAR | FAR }<Σώμα_Διαδικασίας>

<Όνομα_Διαδικασίας> ENDP

όπου Όνομα_Διαδικασίας είναι ένα όνομα που ορίζεται από τον χρήστη καιΣώμα_Διαδικασίας η σειρά των εντολών που συνθέτουν την συγκεκριμένηδιαδικασία. Η τελευταία εντολή είναι η RET που σκοπό έχει την επιστροφή του ελέγχουστο σημείο από όπου έγινε η κλήση της διαδικασίας. Η σωρός χρησιμοποιείται αυτόματαγια να αποθηκεύονται όλες οι πληροφορίες σχετικά με την διεύθυνση του σημείου κώδικααπό το οποίο έγινε η κλήση της διαδικασίας. Η κλήση μίας διαδικασίας γίνεται με τηνεντολή CALL, η οποία έχει μία από τις ακόλουθες μορφές:

1. CALL <Όνομα_Διαδικασίας>2. CALL <Καταχωρητής>3. CALL WORD PTR [<Καταχωρητής>]4. CALL DWORD PTR [<Καταχωρητής>]

όπου οι μορφές <2> και <3> σημαίνουν το ίδιο πράγμα, δηλαδή καλείται μία διαδικασίατης οποίας η πρώτη εντολή βρίσκεται σε διεύθυνση με μετατόπιση που περιέχεται στονχρησιμοποιούμενο καταχωρητή.

Μία διαδικασία μπορεί να είναι τύπου NEAR ή τύπου FAR. Στην πρώτη περίπτωση ηδιεύθυνση της διαδικασίας είναι στο ίδιο τμήμα κώδικα με το σημείο κλήσεως, οπότε μετά

Page 71: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 71

την CALL στην σωρό αποθηκεύεται μόνον ο ΙΡ. Διαφορετικά αποθηκεύονται ο CS και οΙΡ. Μετά την ολοκλήρωση εκτέλεσης της διαδικασίας επιστρέφονται οι προηγούμενεςτιμές του ΙΡ και CS από την σωρό, μέσω της εντολής RET (για διαδικασίες τύπου FAR) ήμόνον η προηγούμενη τιμή του IP (για διαδικασίες τύπου NEAR). Το πρόγραμμασυνεχίζεται ακριβώς μετά από το σημείο κλήσεως της διαδικασίας. Παράδειγμα:

Sort PROC FARMOV AX, 34RET

.

.CALL Sort ; Κλήση της διαδικασίας SortADD BX, 12CALL DWORD PTR [BX] ; Κλήση της διαδικασίας (τύπου FAR) της

οποίας η διεύθυνση εκφράζεται από τα 4bytes που είναι τοποθετημένα στην κύριαμνήμη από την διεύθυνση στην οποία δείχνειο BX.

Προσοχή: Εάν δεν χρησιμοποιηθεί καταχωρητής τμήματος στην CALL (όπως σταπαραπάνω παραδείγματα) υπονοείται ότι όλες οι μετατοπίσεις γίνονται από την αρχή τουτμήματος δεδομένων. Αν κάτι τέτοιο δεν είναι επιθυμητό θα πρέπει να γράψετε και τονκαταχωρητή τμήματος για το τμήμα που θέλετε να χρησιμοποιήσετε. Π.χ.:

CALL WORD PTR ES:[BX]

Επίσης προσοχή χρειάζεται στην χρήση του BP, επειδή εξ ορισμού αυτός συνδυάζεται μετον SS. Εάν θέλετε οπωσδήποτε να τον χρησιμοποιήσετε, αλλά από την αρχή π.χ. τουτμήματος δεδομένων πρέπει να το γράψετε αναλυτικά. Π.χ.:

CALL WORD PTR DS: [BP]

4.8.3 Πέρασμα Παραμέτρων σε Διαδικασία

Εκτός από τις διαδικασίες χωρίς παραμέτρους, είναι δυνατόν να έχουμε διαδικασίες στιςοποίες περνάμε παραμέτρους. Γενικά υπάρχουν τέσσερις τρόποι για κάτι τέτοιο:

1. Τοποθέτηση της παραμέτρου σε κάποιον καταχωρητή2. Τοποθέτηση της παραμέτρου σε κάποια διεύθυνση μνήμης3. Τοποθέτηση της παραμέτρου στην Σωρό4. Τοποθέτηση της διεύθυνσης της παραμέτρου σε κάποιον καταχωρητή ή την

Σωρό

Η ιδέα είναι ότι τοποθετούνται οι απαραίτητες τιμές στους επιλεγμένους καταχωρητές,διευθύνσεις μνήμης ή στην Σωρό (με αντίστροφη σειρά από εκείνη της ανάγνωσης),καλείται η διαδικασία με μία CALL και διαβάζονται οι τιμές των παραμέτρων από τις

Page 72: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 72

προσυμφωνημένες θέσεις. Ο συνηθέστερος τρόπος είναι ο <3>, επειδή είναι ο πλέονγενικός, αν και πολύπλοκος. Το παρακάτω παράδειγμα περιέχει όλες τις περιπτώσεις:

Par1 DW 1Par2 DW 2Par3 DW 3Par4 DW 4..Calc PROC NEAR

PUSH BP ; Ανάγνωση Par3 από την ΣωρόMOV BP, SPMOV AX, [BP+6] ; και τοποθέτηση στον AXADD AX, DX ; AX ! Par3 + Par1ADD AX, Par2 ; AX ! Par3 + Par1 + Par2MOV BX, [BP+4] ; BX ! Διεύθυνση της Par4ADD AX, [BX] ; AX ! Par3+Par1+Par2+Par4POP BPRET 4

Calc ENDP..

MOV DX, Par1 ; Par1 μέσω καταχωρητή DXMOV AX, Par3 ; Par3 μέσω της ΣωρούPUSH AXMOV AX, offset Par4 ; Par4 μέσω δείκτη στην ΣωρόPUSH AXCALL Calc...

Για να διευκολυνθεί η κατανόηση του παραπάνω παραδείγματος πρέπει ναχρησιμοποιηθεί το Σχ. 4.10, στο οποίο φαίνεται η εικόνα της Σωρού μετά την κλήση τηςδιαδικασίας και αποθήκευσης των περιεχομένων του BP σε αυτήν (μετά την PUSH BP).Αφού ο BP γίνεται ίσος με τον SP, δείχνει και αυτός στην κορυφή της Σωρού. Οπότε ηδιεύθυνση BP+6 δείχνει 6 byte πιο "κάτω", ήτοι στην αρχή του αντιγράφου της Par3στην Σωρό. Επομένως η παράσταση [BP+6] είναι η τιμή της Par3.

Παρόμοια η BP+4 είναι η διεύθυνση (στην Σωρό) των byte που αντιστοιχούν στον δείκτηπρος την Par4. Επομένως η [BP+4] είναι η τιμή του δείκτη προς την Par4, που εδώτοποθετείται στον BX. Άρα αφού ο BX περιέχει την διεύθυνση της Par4, η παράσταση[BX] είναι η τιμή της Par4. Προσοχή: Εδώ [BX] δεν είναι αντίγραφο της τιμής τηςPar4. Εάν π.χ. γράψετε:

MOV [BX], 3

θα αλλοιώσετε την αρχική Par4 και όχι απλά ένα αντίγραφό της. Επομένως εδώ έχουμεκλήση διαδικασίας με αναφορά (call-by-reference), ενώ στην προηγούμενη περίπτωσηκλήση διαδικασίας με τιμή (call-by-value).

Page 73: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 73

Το πρόβλημα με την χρήση παραμέτρων είναι ότι μετά την επιστροφή από μία διαδικασίαθα πρέπει να καθαρίζουμε την Σωρό από τις άχρηστες (πλέον) παραμέτρους. Κάτι τέτοιομπορεί να γίνει με διαδοχικά POP. Ένας απλούστερος τρόπος είναι να χρησιμοποιηθεί ηRET με έναν αριθμό, όπως στο παραπάνω παράδειγμα. Ο αριθμός αυτός εκφράζει, σεπλήθος byte, το "καθάρισμα" της Σωρού από τις παραμέτρους που σπρώχθηκανπροηγουμένως σε αυτήν. Στο παράδειγμά μας σπρώχθηκαν 2 παράμετροι στην Σωρό πριντην CALL, άρα χρειάζεται επιπλέον αφαίρεση 4 byte, κάτι που υλοποιείται με την RET 4.

Σχ. 4.10 Σωρός μετά από PUSH BP στο προηγούμενο Παράδειγμα

Τα παραπάνω συνθέτουν έναν ισχυρό μηχανισμό για την κλήση διαδικασιών, ακόμα καιμε αναδρομικό τρόπο.

4.9 Υλοποίηση Δομών Ελέγχου σε 8086 Assembly

Για καλύτερη κατανόηση των εντολών που παρουσιάσθηκαν έως τώρα, παρουσιάζονταιμερικά παραδείγματα δομών ελέγχου σ ε 8086 Assembly. Ένας ακόμα λόγος για κάτιτέτοιο είναι το γεγονός ότι οποιοσδήποτε υπολογισμός σε έναν Η/Υ μπορεί να εκτελεσθείχρησιμοποιώντας μόνον τρεις δομές ελέγχου:

1. Διαδοχή (Sequencing)2. Επιλογή (Selection)3. Επανάληψη (Repetition)

Η πρώτη από τις παραπάνω δομές είναι εξαιρετικά απλή. Σημαίνει ότι δύο εντολές, οιοποίες ακολουθούν η μία την άλλη, εκτελούνται η μία μετά την άλλη.

Page 74: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 74

Η δεύτερη δομή ελέγχου σημαίνει ότι υπάρχει κάποιο πλήθος από εναλλακτικές εντολέςαπό τις οποίες μπορεί να επιλεγεί μία. Π.χ.:

PASCAL 8086 ASSEMBLY

if A < B then MOV AX, AMin := A CMP AX, B ; if A < B

else JGE Label1Min := B; MOV Min, AX ; then Min := A

JMP Label2Label1:

MOV AX, BMOV Min, AX ; else Min := B

Label2: .....

Τέλος, η τρίτη δομή ελέγχου επιτρέπει την επαναληπτική εκτέλεση μίας εντολής ή ομάδοςεντολών. Υπάρχουν δύο ομάδες τέτοιων επαναλήψεων: Απλή Επανάληψη (Iteration) καιΑναδρομή (Recursion). Παραδείγματα απλής επαναληπτικής εκτέλεσης εντολών έχουμεήδη εξετάσει προηγουμένως. Το παρακάτω αποτελεί παράδειγμα εκτέλεσης αναδρομής,όπου μία διαδικασία καλεί τον εαυτό της, με διαφορετική τιμή για την μοναδική τηςπαράμετρο κάθε φορά. Υποθέτουμε ότι το γινόμενο ποτέ δεν ξεπερνά τα 16 bit:

Result DW 1 ; Περιέχει το αποτέλεσμα..

FACT PROC NEARPUSH BPMOV BP, SPMOV AX, [BP+4]CMP AX, 1JLE TELOSDEC AXPUSH AXCALL FACTPOP AXINC AXMUL Result ; DX:AX ! AX * ResultMOV Result, AX ; Υποθέτοντας ότι πάντοτε DX = 0

TELOS:POP BPRET

4.10 Εντολές Επεξεργασίας Συμβολοσειρών

Εκτός από την επεξεργασία αριθμών, πολλές εφαρμογές βασίζονται στην επεξεργασίαχαρακτήρων και, κατ' επέκταση, συμβολοσειρών. Σε επίπεδο μηχανής κάθε χαρακτήραςαναπαρίσταται με έναν ακέραιο αριθμό. Ανάλογα με το σύστημα κωδικοποίησης κάθε

Page 75: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 75

χαρακτήρας μπορεί να έχει και διαφορετικό κωδικό. Το σύστημα που έχει κατ' εξοχήνδιαδοθεί παγκοσμίως είναι το ASCII και αυτό υπονοείται και σε αυτές τις σημειώσεις.

Αυτό όμως που έχει σημασία δεν είναι το σύστημα κωδικοποίησης, αλλά το γεγονός ότι ηφύση των συμβολοσειρών επιβάλει και διαφορετικές "πράξεις":

1. Μεταφορά μίας συμβολοσειράς από μία θέση σε άλλη.2. Σύγκριση μίας συμβολοσειράς με μία άλλη.3. Αναζήτηση ενός χαρακτήρα ή ομάδας χαρακτήρων σε μία συμβολοσειρά.4. Προσπέλαση ή μεταβολή κάποιου τμήματος μίας συμβολοσειράς.

Ειδικότερα στον 8086 κάθε μία συμβολοσειρά μπορεί να έχει μήκος έως και 65.536 byte -το μέγεθος ενός πλήρους τμήματος. Οι εντολές επεξεργασίας συμβολοσειρών του 8086είναι έτσι σχεδιασμένες ώστε να μην εξαρτώνται άμεσα από το περιεχόμενο αυτών τωνbyte, άρα και από το σύστημα κωδικοποίησης. Οι εντολές αυτές χωρίζονται σε δύομικρότερες ομάδες: Στις εντολές μετακίνησης χαρακτήρων και στις εντολές σύγκρισης.Επιπλέον όλες οι εντολές υπάρχουν σε δύο εκδόσεις: Σε εκείνες που επεξεργάζονται 1byte κάθε φορά και σε εκείνες που επεξεργάζονται 1 word (= 2 byte) κάθε φορά. Τογράμμα 'Β' στο τέλος της συγκεκριμένης εντολής υποδηλώνει την πρώτη κατηγορία,ενώ το γράμμα 'W' την δεύτερη.

Επιπλέον σε ορισμένες από τις εντολές αυτές συμμετέχει και ο ES εκτός από τον DS,δεδομένου ότι είναι δυνατόν να έχουμε δύο συμβολοσειρές των 64 KB η κάθε μία. Εδώπαίζουν ένα ειδικό ρόλο και οι καταχωρητές δείκτες SI και DI. Ο πρώτος δείχνει στο byteή word Προέλευσης (Source), ενώ ο δεύτερος στο αντίστοιχο του Προορισμού(Destination). Έτσι, στην γενική περίπτωση έχουμε ότι οι πλήρεις δείκτες είναι:

DS:[SI] " Δείκτης ΠροέλευσηςES:[DI] " Δείκτης Προορισμού

Επειδή δε η σάρωση των byte ή word που απαρτίζουν μία συμβολοσειρά μπορεί ναξεκινάει από χαμηλές διευθύνσεις και να προχωρά προς τις υψηλότερες διευθύνσειςμνήμης ή και αντίστροφα, είναι επόμενο να υπάρχει κάποιος τρόπος για να δηλωθεί μίατέτοια επιθυμία. Στον 8086 αυτό γίνεται μέσω της σημαίας DF (Direction Flag). Όταν,δηλαδή, DF = 0, τότε κάθε μία εκτέλεση κάποιας από τις εντολές επεξεργασίαςσυμβολοσειρών έχει ως αποτέλεσμα την αύξηση ενός ή και των δύο από τους παραπάνωδείκτες. Όταν όμως DF = 1, τότε μετά από κάθε εκτέλεση κάποιας εντολήςεπεξεργασίας συμβολοσειρών οδηγεί και στην μείωση των παραπάνω δεικτών. Η αύξησηή μείωση των δεικτών γίνεται κατά 1 byte ή 1 word, ανάλογα με τον έκδοση της εντολήςπου χρησιμοποιείται.

Οι εντολές για τοποθέτηση του 0 ή 1 στην σημαία DF είναι οι εξής:

CLD # CLear Direction flag " DF = 0STD # SeT Direction flag " DF = 1

Page 76: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 76

Η δυνατότητα προσπέλασης κατά word, επιτρέπει όχι μόνον πιο γρήγορη προσπέλασηστην μνήμη, αλλά και την άμεση προσπέλαση στοιχείων πινάκων ή κωδικών με 2 byte.

4.10.1 Μετακίνηση Συμβολοσειρών

LODSB/LODSW

LODSBLODSBLODSBLODSB " AL ! DS:[SI], SI ! SI ± 1LODSWLODSWLODSWLODSW " AX ! DS:[SI], SI ! SI ± 2

Με την εντολή αυτή φορτώνουμε το byte ή word που βρίσκεται στην θέση DS:SI (καιDS:SI+1 για την δεύτερη περίπτωση) στον συσσωρευτή AL ή ΑΧ. Αυτομάτως δεαυξάνεται ή μειώνεται ο δείκτης κατά 1 ή 2, ανάλογα με την τιμή της σημαίας DF.

STOSB/STOSW

STOSBSTOSBSTOSBSTOSB " ES:[DI] ! AL, DI ! DI ± 1STOSWSTOSWSTOSWSTOSW " ES:[DI] ! AX, DI ! DI ± 2

Με την εντολή αυτή φορτώνουμε το byte ή word που βρίσκεται στον συσσωρευτή AL ήΑΧ, στην θέση ES:DI (και ES:DI+1 για την δεύτερη περίπτωση). Αυτομάτως δεαυξάνεται ή μειώνεται ο δείκτης κατά 1 ή 2, ανάλογα με την τιμή της σημαίας DF.Ουσιαστικά αυτή η εντολή είναι η αντίστροφη της προηγούμενης.

MOVSB/MOVSW

MOVSBMOVSBMOVSBMOVSB " ES:[DI] ! DS:[SI], SI ! SI ± 1, DI !DI ± 1

MOVSWMOVSWMOVSWMOVSW " ES:[DI] ! DS:[SI], SI ! S2 ± 1, DI !DI ± 2

Με την εντολή αυτή φορτώνουμε το byte ή word που βρίσκεται στην θέση DS:SI (καιDS:SI+1 για την δεύτερη περίπτωση), στην θέση ES:DI (και ES:DI+1 για την δεύτερηπερίπτωση. Αυτομάτως δε αυξάνονται ή μειώνονται οι δύο δείκτες κατά 1 ή 2, ανάλογα μετην τιμή της σημαίας DF. Ουσιαστικά αυτή η εντολή είναι ο συνδυασμός των δύο

Page 77: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 77

προηγουμένων εντολών και η μόνη εντολή, η οποία (έστω και έμμεσα) επιτρέπει τηναντιγραφή από θέση μνήμης, σε θέση μνήμης.

4.10.24.10.24.10.24.10.2 �������� ��������������������� ��������������������� ��������������������� �������������

SCASB, SCASW

SCASBSCASBSCASBSCASB " CMP AL, ES:[DI], DI ! DI ± 1SCASWSCASWSCASWSCASW " CMP AX, ES:[DI], DI ! DI ± 2

Με την εντολή αυτή συγκρίνουμε το byte ή word που βρίσκεται στον συσσωρευτή AL ήΑΧ, με το byte ή word στην θέση ES:DI. Αυτομάτως δε αυξάνεται ή μειώνεται ο δείκτηςκατά 1 ή 2, ανάλογα με την τιμή της σημαίας DF και ενημερώνονται οι αντίστοιχεςσημαίες.

CMPSB, CMPSW

CMPSB " CMP ES:[DI], DS:[SI], SI ! SI ± 1, DI ! DI ± 1CMPSW " CMP ES:[DI], DS:[SI], SI ! S2 ± 1, DI ! DI ± 2

Με την εντολή αυτή συγκρίνουμε μεταξύ τους τα περιεχόμενα των θέσεων DS:SI καιES:DI, κατά byte ή κατά word και αυτόματα αυξάνονται ή μειώνονται οι αντίστοιχοιδείκτες κατά 1 ή 2.

4.10.3 Επανάληψη Εντολών Επεξεργασίας Συμβολοσειρών

Το σημαντικότερο γνώρισμα των παραπάνω εντολών είναι το ότι μπορούν ναεπαναληφθούν πολλές φορές με πολύ απλό τρόπο, παρόμοιο με αυτόν της εντολής LOOP.

REP

Πιο συγκεκριμένα, ο βασικός τρόπος επανάληψης γίνεται με το ειδικό πρόθεμα REP καιως μετρητής χρησιμοποιείται και πάλι ο καταχωρητής CX. Έτσι, μετά την αρχικοποίησητης σημαίας DF και των δεικτών, πρέπει να αρχικοποιηθεί και ο CX με το επιθυμητόπλήθος επαναλήψεων. Στην συνέχεια γράφεται η REP ακολουθούμενη από την εντολήπου θέλουμε να επαναληφθεί CX φορές. Κάθε φορά που εκτελείται η εντολή, ο CXμειώνεται αυτόματα κατά 1. Η μορφή της REP είναι η εξής:

REP <Εντολή_προς_επανάληψη>

Για παράδειγμα, έστω οι συμβολοσειρές που ξεκινούν από τις (συμβολικές διευθύνσεις)String1 και String2. Θέλουμε να αντιγράψουμε την δεύτερη επάνω στην πρώτη

Page 78: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 78

συμβολοσειρά και γνωρίζουμε ότι και οι δύο βρίσκονται στο ίδιο τμήμα, που είναι τοτμήμα δεδομένων και ότι το μήκος τους είναι 50 byte. Παρακάτω δίδεται ένα παράδειγμαγια το πώς είναι δυνατή μία τέτοια αντιγραφή:

PUSH DSPOP ES ; τρυκ ώστε ES ! DSMOV SI, offset String1MOV DI, offset String2CLDMOV CX, 50REP MOVSB

REPE/REPZ

Αυτό το πρόθεμα θυμίζει την LOOPE/LOOPZ. Επαναλαμβάνει την εντολή πουακολουθεί, μόνον εφ' όσον:

ZF = 1 (μηδενικό αποτέλεσμα) και CX ≠ 0

Συνήθως χρησιμοποιείται με την εντολή CMPS για να βρούμε πού διαφέρουν δύοσυμβολοσειρές. Π.χ.:

PUSH DSPOP ES ; τρυκ ώστε ES ! DSMOV SI, offset String1MOV DI, offset String2CLDMOV CX, 50REPΕ CMPSBMOV AX, 50SUB AX, CX ; AX ! Θέση διαφοράςCMP AX, 50JZ EQUAL ; Αφού AX = 50,

String1 = String2....

REPNE/REPNZ

Αυτό το πρόθεμα θυμίζει την LOOPNE/LOOPNZ. Επαναλαμβάνει την εντολή πουακολουθεί, μόνον εφ' όσον:

ZF = 0 (μη-μηδενικό αποτέλεσμα) και CX ≠ 0

Συνήθως χρησιμοποιείται με την εντολή SCASB για να βρούμε εάν κάποιος χαρακτήραςεμφανίζεται (και πού) σε μία συμβολοσειρά. Π.χ.:

Page 79: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 79

PUSH DSPOP ES ; τρυκ ώστε ES ! DSMOV AL, 'S'MOV DI, offset String2CLDMOV CX, 50REPNΕ SCASBMOV DX, 50SUB DX, CX ; DX ! Θέση ύπαρξης 'S'CMP DX, 50JZ EQUAL ; Αφού DX = 50, 'S' πουθενά!....

4.11 Εντολές Εισόδου / Εξόδου στον 8086

Αν και δεν ανήκει στους τρόπους πρόσβασης της κύριας μνήμης, η πρόσβαση σεδεδομένα (ή η εξαγωγή αποτελεσμάτων) μπορεί να γίνει από ή προς Θύρες (Ports) με τιςεντολές του 8086 ΙΝ και ΟUT, αντίστοιχα. Η γενική μορφή μίας εντολής ΙΝ και ΟUTείναι:

ΙΝ <Αριθμός_θύρας>, <ΑL ή AX>OUT <ΑL ή AX>, <Αριθμός_θύρας>

όπου Αριθμός_θύρας (port number) είναι ένας αριθμός των 16 bits (σύνολο 65.536δυνατές θύρες) και μπορεί να είναι μία σταθερά (έως 255) ή ο DX, που έχειπροηγουμένως φορτωθεί με τον αύξοντα αριθμό της προς προσπέλαση θύρας. Παραλλαγήτων παραπάνω εντολών αποτελούν οι ΙΝS και OUTS. Επομένως κάθε περιφερειακήσυσκευή είναι "ορατή" από τον 8086 σαν ένα σύνολο από μία ή περισσότερες ΘύρεςΕισόδου / Εξόδου. Π.χ.:

IN AL, 35hIN AL, 355h ; Λάθος! Αριθμός > 255MOV DX, 355h ; Ορθός τρόπος για Αριθμούς > 255IN AL, DX

4.12 Εντολές Διακοπών

Σε προηγούμενο κεφάλαιο έγινε εκτενής αναφορά στην σπουδαιότητα και το νόημα τωνδιακοπών σε έναν μοντέρνο Η/Υ. Η παρούσα ενότητα εστιάζεται στις σχετικές εντολέςκαι εν γένει το προγραμματιστικό τμήμα αυτής της μεθόδου στον 8086.

Page 80: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 80

Μία διαδικασία (ή ρουτίνα) διακοπών είναι παρόμοια με οποιαδήποτε κοινή διαδικασία,αφού και για τις δύο η εκτέλεση του προγράμματος διακλαδώνεται προς τον κώδικα τηςδιαδικασίας και στο τέλος της επιστρέφει στο πρόγραμμα αυτό. Η διαφορά έγκειται στοότι η διαδικασία διακοπών πρέπει να γραφθεί έτσι, ώστε (μετά την εκτέλεση τηςδιαδικασίας αυτής) το διακοπέν πρόγραμμα να συνεχίσει σαν να μην έχει συμβεί τίποτε.Οι επιπτώσεις αυτής της απαίτησης είναι ότι οι διάφορες σημαίες και καταχωρητές πουχρησιμοποιούνται σε μία τέτοια διαδικασία, θα πρέπει να αποθηκευθούν, ώστε ναμπορούν να επαναφερθούν στην αρχική τους κατάσταση (την στιγμή της διακοπής) και τοπρόγραμμα να συνεχίσει την εκτέλεσή του από το σημείο διακοπής.

Επειδή μία διακοπή μπορεί να συμβεί σε οποιαδήποτε χρονική στιγμή και εκτελώνταςοποιοδήποτε πρόγραμμα, η διαδικασία εξυπηρέτησής της δεν είναι άμεσα συνδεδεμένη μεκάποιο πρόγραμμα. Συνεπώς είναι συνηθισμένο να τοποθετείται σε ένα σαφώςκαθορισμένο (απόλυτο) χώρο στην μνήμη. Εάν η σημαία IF = 1 ή η διακοπή είναι μη-αγνοήσιμη, τότε ο 8086 ενεργεί ως εξής:

1. Ολοκληρώνει την εκτέλεση της εντολής που εκτελούσε την στιγμή τηςδιακοπής.

2. Σπρώχνει στην Σωρό τα περιεχόμενα του Καταχωρητή Σημαιών (FlagRegister), CS και IP.

3. Τοποθετεί στους CS και IP τα περιεχόμενα μίας Διπλής Λέξης (DoubleWord = 4 bytes), της οποίας η διεύθυνση καθορίζεται από τον τύπο τηςδιακοπής.

4. Καθαρίζει (μηδενίζει) τις σημαίες IF και TF, απενεργοποιώντας τιςαγνοήσιμες διακοπές.

Κατά την επιστροφή, τα παλιά περιεχόμενα των καταχωρητών Σημαιών, CS και IPπαίρνονται από την Σωρό και τοποθετούνται σε αυτούς.

Η Διπλή Λέξη που περιέχει τα καινούργια περιεχόμενα των CS και IP, όταν εξυπηρετείταιη διακοπή, ονομάζεται Δείκτης ή Διάνυσμα Διακοπής (Interrupt Vector). Κάθε τύποςδιακοπής χαρακτηρίζεται από έναν αριθμό μεταξύ 0 και 255, ενώ η διεύθυνση στην μνήμηόπου είναι αποθηκευμένο το αντίστοιχο Διάνυσμα Διακοπής μπορεί να βρεθείπολλαπλασιάζοντας τον αριθμό της διακοπής με το 4. Π.χ., εάν ο αριθμός της διακοπήςείναι 9, τότε το Διάνυσμα Διακοπής θα βρίσκεται στα bytes των διευθύνσεων από 00024hέως και 00027h. Για αυτόν τον λόγο σε κάθε Η/Υ με 8086, τα πρώτα 1.024 bytes τηςΚύριας Μνήμης καταλαμβάνονται από τα διανύσματα διακοπών (256 διακοπές x 4 bytes= 1.024 bytes), όπως φαίνεται και από το Σχ. 4.11.

Page 81: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 81

Σχ. 4.11 Πίνακας Διανυσμάτων Διακοπών στον 8086

Από αυτές τις 256 διακοπές οι πέντε πρώτες (0 - 4) είναι δεσμευμένες από τον 8086 καιμερικές άλλες μπορεί να χρησιμοποιούνται από το υπάρχον λειτουργικό σύστημα (π.χ.MS-DOS). Οι υπόλοιπες είναι διαθέσιμες στον προγραμματιστή εφαρμογών.

Επίσης είναι δυνατόν να χρησιμοποιηθεί η εντολή ΙΝΤ <n>, όπου n ο αριθμός τηςδιακοπής, προκειμένου να εκτελεσθεί η αντίστοιχη διαδικασία εξυπηρέτησης με τοντρόπο που αναφέρθηκε προηγουμένως. Το πλεονέκτημα της χρήσης αυτής της εντολήςείναι ότι μπορούν να αποσφαλματωθούν και ρουτίνες εξυπηρέτησης διακοπών που δενέχουν λάβει χώρα στην πραγματικότητα.

Ο προγραμματιστής διαδικασιών ρουτινών εξυπηρέτησης δεν θα πρέπει να ξεχνάει ότικατά την κλήση της ρουτίνας του στην Σωρό έχουν τοποθετηθεί όχι μόνον τα παλιάπεριεχόμενα του CS και του IP, αλλά και του καταχωρητή Σημαιών. Επομένως ένα RETστο τέλος της διαδικασίας δεν είναι αρκετό, αλλά απαιτείται μία ειδική εντολή, η IRET. Ητελευταία επαναφέρει από την Σωρό τις παλιές τιμές και των τριών καταχωρητών.

Τέλος όπως φαίνεται παραπάνω από την τέταρτη ενέργεια του 8086, η σημαία IFμηδενίζεται, πράγμα που σημαίνει ότι πλέον όλες οι αγνοήσιμες διακοπές μπλοκάρονται,μέχρι την επιστροφή από την ρουτίνα εξυπηρέτησης της διακοπής. Εν συντομία, η εντολήΙΝΤ <n> ισοδυναμεί με τις παρακάτω εντολές:

CLI ; Μπλοκάρισμα των αγνοήσιμων διακοπώνPUSHF ; Τοποθέτηση του καταχωρητή σημαιών στην

ΣωρόCALL DWORD PTR 4*n ; Κλήση της ρουτίνας εξυπηρέτησης με το

διάνυσμα διακοπής να βρίσκεται από την

Page 82: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 82

διεύθυνση μνήμης 4 x n

Page 83: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 83

5. ΚΥΡΙΑ ΜΝΗΜΗ ΚΑΙ ΠΕΡΙΦΕΡΕΙΑΚΑ

Όπως αναφέρθηκε και προηγουμένως, κάθε μικροεπεξεργαστής χρειάζεται μνήμη στηνοποία να αποθηκεύει τις εντολές του προγράμματος που εκτελεί, τα απαιτούμεναδεδομένα και τα αποτελέσματα (ενδιάμεσα ή τελικά). Η απαιτούμενη μνήμη για κάθεπρόγραμμα είναι τόσο μεγάλη, που δεν μπορεί να είναι διαθέσιμη στο ίδιο ολοκληρωμένομε τον επεξεργαστή και άρα πρέπει να είναι εξωτερική ως προς αυτόν.

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

5.1 Κατηγορίες Μνήμης

Εδώ πρέπει να κάνουμε την διάκριση ανάμεσα στην λεγόμενη Σειριακή μνήμη και τηνμνήμη Τυχαίας Προσπέλασης (RAM). Στην πρώτη κατηγορία ανήκει κάθε τύπος μνήμηςγια τον οποίο ο χρόνος προσπέλασης είναι ανάλογος της θέσης της αποθηκευμένηςπληροφορίας. Π.χ. για να προσπελαθεί ένα byte σε μία μαγνητική ταινία, θα πρέπει πρώτανα ξετυλιχθεί η ταινία έως το σημείο όπου αυτό είναι αποθηκευμένο. Όσο πιο “μακριά”βρίσκεται αυτό το byte, τόσο πιο πολύς χρόνος απαιτείται για την προσπέλασή του.Αντίθετα, για κάθε μνήμη τυχαίας προσπέλασης ο χρόνος πρόσβασης οποιασδήποτεπληροφορίας είναι σταθερός.

Επίσης, ανάλογα με την δυνατότητα ή μη εγγραφής, η μνήμη χωρίζεται σε ΜόνονΑνάγνωσης (ROM) ή Ανάγνωσης και Πολλαπλών Εγγραφών, που έχει επικρατήσει νααποκαλείται και αυτή RAM. Μνήμες Μόνον Ανάγνωσης (ROM) χρησιμοποιούνται γιατην αποθήκευση προγραμμάτων / δεδομένων που χρησιμοποιούνται πολύ συχνά. Τέτοιοσύνολο αποτελεί για παράδειγμα το ΒΙΟS ενός συμβατού με ΙΒΜ Η/Υ.

Γενικά, η κύρια μνήμη σήμερα αποτελείται από ομάδες ολοκληρωμένων κυκλωμάτων ταοποία έχουν αρκετά μεγάλη χωρητικότητα και ταχύτητα προσπέλασης. Ειδικότερα οιROM ουσιαστικά αποτελούνται από ασφάλειες οι οποίες καίγονται επιλεκτικά για ναδημιουργήσουν την αντίστοιχη πληροφορία. Σήμερα όμως χρησιμοποιούνται συχνότεραοι ΕPROM. Το πλεονέκτημά τους σε σχέση με την απλή ROM είναι ότι μπορεί ναδιαγραφεί η αποθηκευμένη πληροφορία με την χρήση ειδικής υπεριώδους ακτινοβολίας ήρεύματος. Έτσι, ένα λάθος ή η δημιουργία καλύτερου μόνιμου προγράμματος δεν οδηγείστην αχρήστευση του ολοκληρωμένου.

Page 84: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 84

Για την περίπτωση των RAM, ανάλογα με την τεχνολογία κατασκευής, κάθε bitαντιστοιχεί σε ένα ή περισσότερα τρανζίστορ, τα οποία ενεργούν ως διακόπτες και ωςενισχυτές για τις εξόδους τους, που αποτελούν μικροσκοπικούς πυκνωτές. Η τιμή τουκάθε bit εξαρτάται από το εάν είναι φορτισμένος ή όχι ο αντίστοιχος πυκνωτής. Επειδήόμως ο πυκνωτής αυτός χάνει με την πάροδο του χρόνου το φορτίο του - και επομένωςτην αποθηκευμένη πληροφορία - είναι αναγκαίο να επαναφορτίζεται σε τακτά χρονικάδιαστήματα. Αυτή η επαναφόρτιση (Refreshing) είναι χαρακτηριστικό της λεγόμενηςΔυναμικής (Dynamic) μνήμης.

Εάν η χρησιμοποιούμενη τεχνολογία για την κατασκευή του ολοκληρωμένου κυκλώματοςδεν επιβάλει την παραπάνω ενέργεια (refreshing), τότε η μνήμη ονομάζεται Στατική(Static). Υπάρχει και ο τύπος της λεγόμενης Ψευδο-Στατικής (Pseudo-Static) μνήμης, πουουσιαστικά είναι δυναμική μνήμη με ενσωματωμένο κύκλωμα αυτόματης επαναφόρτισης,έτσι ώστε να εμφανίζεται ως Στατική στον υπόλοιπο Η/Υ. Εννοείται βέβαια ότι σε όλες τιςπεριπτώσεις η αποθηκευμένη πληροφορία χάνεται με την διακοπή παροχής ρεύματος.

Η ταυτόχρονη ύπαρξη των τύπων Στατικής και Δυναμικής μνήμης οφείλεται στο ότι η μενπρώτη κατηγορία έχει μεγαλύτερη ταχύτητα προσπέλασης και δεν απαιτείται τακτικήεπαναφόρτιση (για αυτό είναι πιο πολύπλοκη και ακριβή), ενώ η δεύτερη απαιτεί τακτικήεπαναφόρτιση, αλλά είναι πιο φθηνή και έχει μεγάλη χωρητικότητα (ένα τρανζίστορ ανάbit). Για αυτό και σήμερα η Στατική μνήμη χρησιμοποιείται ως Λανθάνουσα (Cache)μνήμη όπως θα αναπτυχθεί σε επόμενη ενότητα, ενώ η Δυναμική ως κύρια μνήμηπολλαπλών εγγραφών.

Τα ολοκληρωμένα της (δυναμικής) μνήμης σήμερα κυκλοφορούν σε ομάδες των 8 ή 9(σχηματίζοντας έτσι ένα byte χωρίς ή με το bit Iσοτιμίας - Parity), που λέγονται modules.Η συνολική χωρητικότητα κάθε module εξαρτάται από την χωρητικότητα του κάθεολοκληρωμένου. Έτσι, ένα ολοκληρωμένο χωρητικότητας 1 Mbit συνθέτει ομάδα του 1MByte, με 4 Μbit ομάδα των 4 Mbit, με 16 MBit ομάδα των 16 MB και του 64 Mbitομάδα των 64 ΜB. Πρόσφατα κατασκευάστηκε και ολοκληρωμένο χωρητικότητας 256Mbit

Σχ. 5.1 Τρόπος Εγκαταστάσεως SIMM Modules

Οι παραπάνω ομάδες ολοκληρωμένων ανάλογα με τον τύπο συνδεσμολογίας τους, είναιτύπου SIPP (εξέχουν ακίδες που μπαίνουν σε ειδικές τρύπες στην μητρική κάρτα) ή πλέονσχεδόν αποκλειστικά SIMM (συνδέονται σε ειδικές υποδοχές στην μητρική κάρτα μέσω

Page 85: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 85

μεταλλικών επαφών στην πλακέτα όπου είναι κολλημένα). O τρόπος εγκαταστάσεώς τουςφαίνεται στο Σχ. 5.1.

Υπάρχουν τρία σημαντικά χαρακτηριστικά που πρέπει να έχει κανείς υπ’ όψιν, ότανεπιλέγει κάποιο SIMM module. Το πρώτο χαρακτηριστικό είναι εάν ο τύπος είναι των 8 ήτων 9 bits και η συνολική χρήσιμη χωρητικότητα που αντιπροσωπεύει. Το δεύτεροχαρακτηριστικό είναι ο συνολικός αριθμός επαφών του module: Τα παλαιότερα έχουν 30επαφές, ενώ τα πιο καινούργια 72. Το τελευταίο χαρακτηριστικό είναι η ταχύτηταπροσπέλασης που μετράται σε ns. Συνήθεις τιμές είναι 60 ή 70 ns. Τοποθετώντας πολλέςτέτοιες ομάδες από μνήμες μαζί (συνήθως τέσσερις) σχηματίζονται Συστοιχίες (Βanks)που επιτρέπουν την ταυτόχρονη προσπέλαση 32 bits.

5.2 Οργάνωση Μνήμης και Προσπέλαση των Περιεχομένων της

Όπως αναφέρθηκε παραπάνω, η βασική μονάδα πληροφορίας που αποθηκεύεται στηνμνήμη είναι το 1 bit. Συνεπώς απαιτείται κάποιο ψηφιακό κύκλωμα που να είναι σε θέσηνα "θυμάται" προηγούμενες τιμές εισόδου σε αυτό. Κυκλώματα αυτής της κατηγορίαςονομάζονται ακολουθιακά.

Παρά την παραπάνω συνοπτική παρουσίαση παραμένει ένα ακόμη ερώτημα: Πώς η ΚΜΕ(ή άλλοι μικροελεγκτές) προσπελαύνουν τις πληροφορίες που υπάρχουν στην μνήμη,αφού παρουσιάσθηκαν μόνον οι τρόποι αποθήκευσης και όχι ανάκτησής τους.

Σχ. 5.2 Λογικό Διάγραμμα μίας απλής ROM 8x4

Page 86: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 86

Όπως είδαμε παραπάνω ο 8086 (και κάθε ΚΜΕ) δηλώνει την διεύθυνση των δεδομένωντα οποία θέλει να διαβάσει (αντίστοιχα και για την εγγραφή). Για διεύθυνση 3 bits θααπαιτούνταν 8 διαφορετικές διευθύνσεις. Για να ενεργοποιηθεί κάθε μία και μόνον μίααπό τις διευθύνσεις αυτές, είναι απαραίτητη η ύπαρξη ενός Aποκωδικοποιητή (Decoder),ο οποίος παίρνει σαν είσοδο μία κωδικοποιημένη διεύθυνση (π.χ. 3 bits) και ενεργοποιείμία μόνον από τις (εδώ 8) εξόδους του. Σε αυτήν την περίπτωση ο αποκωδικοποιητήςονομάζεται 3 σε 8. Τα ολοκληρωμένα κυκλώματα μνημών περιέχουν έναν τέτοιοαποκωδικοποιητή - βλ. Σχ. 5.2 για μία απλή ROM 8x4 (δηλαδή 8 διευθύνσεις με 4 bits ηκάθε μία).

Σχ. 5.3 Εσωτερική Δομή μίας ROM 128x1 με Δισδιάστατη Αποκωδικοποίηση

Τι γίνεται όμως όταν η ROM (ή RAM) είναι του 1 Mbit; Σίγουρα η παραπάνω διευθέτησηδεν μπορεί να χρησιμοποιηθεί γιατί θα απαιτούνταν αποκωδικοποιητής από 20 σε1.048.576 γραμμές. Αντιθέτως χρησιμοποιείται μία διαφορετική δομή, που ονομάζεταιΔισδιάστατη Αποκωδικοποίηση (Two-Dimensional Decoding). Εδώ η κεντρική ιδέα είναινα τοποθετηθούν τα bits σε έναν πίνακα, που είναι όσο το δυνατόν τετράγωνος. Τα πιοσημαντικά bits της διεύθυνσης χρησιμοποιούνται ως είσοδος σε έναν αποκωδικοποιητήπου επιλέγει όλα τα bits μνήμης στην ίδια γραμμή του πίνακα. Τα υπόλοιπα bits τηςδιεύθυνσης χρησιμοποιούνται ως είσοδος σε έναν πολυπλέκτη (multiplexer) για ναεπιλεγεί μόνον ένα bit της μνήμης. Ένα τέτοιο παράδειγμα για μία ROM 128x1 φαίνεταιστο Σχ. 5.3.

Ενδεικτικά παρουσιάζεται στο Σχ. 5.4 και η εσωτερική διάταξη για μία μνήμη RAM64Κx1. Παρατηρείστε τα σήματα /RAS (Row Address Strobe) και /CAS (ColumnAddress Strobe). Όταν είναι ενεργοποιημένο το /RAS, στους ακροδέκτες Α0-Α7

Page 87: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 87

παρέχεται η γραμμή (μισή διεύθυνση 16 bits) και όταν είναι ενεργοποιημένο το /CAS,στους ακροδέκτες Α0-Α7 παρέχεται η στήλη (υπόλοιπη μισή διεύθυνση). Έτσιαπαιτούνται λιγότεροι ακροδέκτες, ανά ολοκληρωμένο, αφού γίνεται πολύπλεξη τηςδιεύθυνσης.

Σχ. 5.4 Εσωτερική Διάταξη σε μία Μνήμη RAM 64Kx1

Η επαναφόρτιση των μικροσκοπικών πυκνωτών που αντιστοιχούν στα bits της μνήμης σεδυναμικές RAM (Refreshing) γίνεται με 256 διαδοχικά βήματα (28 = 256), κατά τα οποίαεπαναφορτίζεται κάθε μία πλήρης γραμμή από 256 bits. Υπάρχουν διάφοροι μέθοδοιεισαγωγής τέτοιων κύκλων, που είτε παρεμβάλλονται σαν σύνολο μεταξύ των κανονικώνκύκλων λειτουργίας της κύριας μνήμης (εγγραφής / ανάγνωσης), είτε εκτελούνται κατάμικρότερες ομάδες ενδιάμεσα. Για πιο πολλές λεπτομέρειες ο ενδιαφερόμενοςαναγνώστης μπορεί να ανατρέξει στο [WAK90].

5.3 Συσχετιστική και Λανθάνουσα Μνήμη

Είναι ήδη γνωστή η έννοια της εικονικής (virtual) μνήμης, η σχέση της με την φυσική(πραγματική) μνήμη και η ανάγκη ύπαρξης και εναλλαγής, είτε τμημάτων (segments), είτε“σελίδων” (pages) μνήμης από την μονάδα διαχείρισης μνήμης (ανάλογα με την μέθοδοπου ακολουθείται). Η διαχείριση αυτή γίνεται δυνατή με την δημιουργία και έλεγχοειδικών δομών δεδομένων, όπως οι Πίνακες Περιγραφής (Descriptor Tables) σελίδωνμνήμης, ώστε κάθε φορά που απαιτείται πρόσβαση σε κάποια εικονική διεύθυνση, ναελέγχεται εάν η διεύθυνση αυτή αντιστοιχεί σε σελίδα που είναι φορτωμένη στην κύριαμνήμη.

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

Page 88: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 88

χρήση μίας γρήγορης Συσχετιστικής Μνήμης (Associative Memory), που είναιενσωματωμένη στο υλικό (στην μονάδα διαχείρισης μνήμης ή MMU).

Έστω η περίπτωση οργάνωσης της εικονικής μνήμης κατά τμήματα (segments). Τότε μίαδιεύθυνση (s, ο) αποτελείται από το τμήμα s και την απόσταση ο από την αρχή τουτμήματος. Κάθε καταχωρητής της συσχετιστικής μνήμης περιέχει τουλάχιστον τηνκαταχώρηση (s, a, b), όπου s το τμήμα της εικονικής μνήμης, a η βάση τουτμήματος και b το όριο του αντίστοιχου τμήματος στην φυσική μνήμη. Όταν λοιπόνζητηθεί η εικονική διεύθυνση (s, ο), το τμήμα s χρησιμοποιείται σαν κλειδί για τηνταυτόχρονη σύγκριση με όλες τις καταχωρήσεις στην συσχετιστική μνήμη. Εάν υπάρχεικαταχώρηση με το s, τότε η συσχετιστική μνήμη παρέχει τα πεδία a και b, που σεσυνδυασμό με την απόσταση ο, καθορίζουν την αντίστοιχη τελική διεύθυνση στην φυσικήμνήμη.

Όπως βλέπετε, η προσπέλαση στην συσχετιστική μνήμη δεν γίνεται με βάση κάποιαδιεύθυνση, αλλά με σύγκριση των περιεχομένων της με την ζητούμενη πληροφορία. Γιααυτόν τον λόγο ονομάζεται και συσχετιστική.

Στην περίπτωση που η ζητούμενη καταχώρηση δεν υπάρχει στην συσχετιστική μνήμη,γίνεται διακοπή του προγράμματος, φορτώνεται η αντίστοιχη πληροφορία στην φυσικήμνήμη, ενημερώνεται η συσχετιστική μνήμη και η διαδικασία επαναλαμβάνεται.

Επειδή η χωρητικότητα της συσχετιστικής μνήμης είναι πεπερασμένη, δεν είναι πάντοτεβέβαιο και ότι όλες οι δυνατές πληροφορίες είναι φορτωμένες σε αυτήν σε κάθε χρονικήστιγμή. Για τον λόγο αυτό, χρησιμοποιείται η μέθοδος της εγγραφής κάθε καινούργιαςπληροφορίας στην συσχετιστική μνήμη, επάνω από εκείνη που έχει χρησιμοποιηθείλιγότερο από όλες τις άλλες.

Η ίδια μέθοδος χρησιμοποιείται και στην Λανθάνουσα μνήμη (Cache memory), που έχεισχετικά (με την κύρια μνήμη) μικρό μέγεθος, αλλά είναι πολύ πιο γρήγορη (σε τυπικούςΗ/Υ έως τρεις φορές γρηγορότερη). Ο τύπος αυτής της μνήμης στηρίζεται στην εμπειρικήΑρχή της Τοπικότητας (Principle of Locality), σύμφωνα με την οποία η συντριπτικήπλειοψηφία των προγραμμάτων δεν προσπελαύνει ομοιόμορφα όλες τις περιοχές τηςμνήμης, αλλά τείνει να χρησιμοποιεί τις ίδιες περιοχές για μεγάλα χρονικά διαστήματα.Ένα απλό παράδειγμα αποτελεί η ύπαρξη βρόγχων επαναλήψεων (loops), όπου κώδικαςκαι δεδομένα επαναχρησιμοποιούνται πολλές φορές.

Έχοντας αντιγράψει τα περιεχόμενα αυτών των περιοχών μνήμης, μέσα στην γρήγορηλανθάνουσα μνήμη, τις περισσότερες φορές η ΚΜΕ δεν χρειάζεται να προσπελάσει τηνκύρια μνήμη, αλλά την λανθάνουσα. Η λανθάνουσα μνήμη δεν είναι τμήμα της κύριαςμνήμης. Ονομάζεται δε λανθάνουσα (ή και κρυφή), επειδή η ΚΜΕ την προσπελαύνειέχοντας την εντύπωση ότι διαβάζει από την κύρια μνήμη.

Η βασική ιδέα λειτουργίας είναι παρόμοια με εκείνη της συσχετιστικής μνήμης καιμάλιστα, μία λανθάνουσα μνήμη αποτελείται κατά βάση από μία συσχετιστική και μίαπολύ γρήγορη συμβατική μνήμη. Η πρώτη χρησιμοποιείται για να παραλαμβάνει τηνδιεύθυνση μνήμης που θέλει να προσπελάσει ο επεξεργαστής και να διαπιστώσει εάν ταπεριεχόμενά της βρίσκονται αντιγραμμένα στην γρήγορη συμβατική μνήμη. Εάν ναι, αυτά

Page 89: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 89

διαβάζονται (ή γράφονται) από την τελευταία και παραδίδονται στον επεξεργαστή. Έτσιδεν υπάρχει άμεση ανάγκη πρόσβασης στην κύρια μνήμη.

Εάν όμως τα περιεχόμενα της συγκεκριμένης διεύθυνσης δεν είναι αντιγραμμένα στηνλανθάνουσα μνήμη, δημιουργείται μία διακοπή έως ότου αυτά αντιγραφούν σε αυτήν, μετον ίδιο περίπου μηχανισμό που είδαμε παραπάνω. Στην πράξη, επειδή η διεύθυνσημνήμης που παρέχεται στην λανθάνουσα μνήμη, δεν είναι διεύθυνση φυσικής, αλλάεικονικής μνήμης, απαιτούνται δύο συσχετιστικές μνήμες. Η πρώτη που μετατρέπει τηνεικονική διεύθυνση σε φυσική και η δεύτερη που ψάχνει για να δει εάν τα περιεχόμενααυτής της φυσικής διεύθυνσης υπάρχουν μέσα στην λανθάνουσα μνήμη.

Προκειμένου για την εγγραφή πληροφορίας σε μία διεύθυνση μνήμης, που υπάρχει στηνλανθάνουσα, δημιουργείται το εξής ερώτημα. Πότε πρέπει να γίνει αυτή η εγγραφή στηνκύρια μνήμη; Υπάρχουν δύο στρατηγικές:

1. Copy-Back - Η εγγραφή γίνεται μόνον στην λανθάνουσα μνήμη. Ηενημέρωση της αντίστοιχης διεύθυνσης στην κύρια μνήμη γίνεται μόνονόταν αυτή η διεύθυνση σβήνεται από την λανθάνουσα. Εάν γίνουν πολλέςεγγραφές στην ίδια διεύθυνση, αυτή η στρατηγική οδηγεί σε κέρδοςχρόνου. Σε συστήματα με πολλούς επεξεργαστές και μία κοινή κύριαμνήμη, δημιουργείται μεγάλο πρόβλημα.

2. Write-Through - Eδώ η εγγραφή στην λανθάνουσα περνιέται αμέσωςστην αντίστοιχη κύρια μνήμη. Επομένως η κύρια μνήμη είναι πάντοτεενημερωμένη και δεν υπάρχει πρόβλημα σε περιπτώσεις πολλώνεπεξεργαστών ή αν “πέσει” ο Η/Υ (το τελευταίο για αρχεία σε δίσκους,όπως θα δούμε παρακάτω).

Η χρήση της λανθάνουσας μνήμης έχει χρησιμοποιηθεί με τέτοια επιτυχία, που έχειενσωματωθεί και σε μικροεπεξεργαστές (π.χ. 80486), ώστε να έχουμε σήμερα καιεσωτερική λανθάνουσα μνήμη (στον μικροεπεξεργαστή), αλλά και εξωτερική (έξω απότον επεξεργαστή), εφ όσον η πρώτη δεν θεωρείται αρκετή. Η επιλογή του μεγέθους της σεσχέση με το μέγεθος της κύριας μνήμης είναι αρκετά σημαντική, δεδομένου ότι κακόςσχεδιασμός οδηγεί σε πολλές "αστοχίες" της λανθάνουσας μνήμης, μειώνοντας τηνταχύτητα του συστήματος. Η ίδια περίπου αρχή χρησιμοποιείται και για προσπέλασηδεδομένων από δίσκους, μέσω ειδικών προγραμμάτων (π.χ. "SMARTDRV.EXE" στολειτουργικό σύστημα MS-DOS).

Για περισσότερες λεπτομέρειες ο ενδιαφερόμενος αναγνώστης μπορεί να απευθυνθεί σταάρθρα των [DEN70] και [SMI82].

5.45.45.45.4 DMADMADMADMA

Όπως είδαμε παραπάνω, ένας επεξεργαστής μπορεί να διαβάσει ή να στείλει δεδομένα σεμία εξωτερική θύρα με την χρήση κατάλληλων εντολών. Για τις περισσότερες περιπτώσειςκάτι τέτοιο είναι αρκετό. Εν τούτοις, όταν χρειάζεται για παράδειγμα η μεταφορά πολλών

Page 90: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 90

δεδομένων από κάποιον σκληρό δίσκο σε μία περιοχή μνήμης, η παραπάνω οργάνωση δενείναι αρκετή, αφού ο δίσκος μπορεί να στέλνει τα δεδομένα πιο γρήγορα από όσο μπορείνα τα διαβάζει η ΚΜΕ (αναλογιστείτε ότι χρειάζεται ένας βρόγχος επανάληψης με ΙΝ καιΜΟV).

Σε αυτές τις περιπτώσεις χρησιμοποιείται μία ειδική συσκευή (ολοκληρωμένο) πουλέγεται Ελεγκτής DMA (Direct Memory Transfer). Σε γενικές γραμμές, ο DMA γίνεταικύριος του διαύλου, παίρνοντας τον έλεγχο από τον μικροεπεξεργαστή και μεταφέρει απ’ευθείας bytes από την θύρα σε διαδοχικές θέσεις μνήμης και αντίστροφα. Επειδή ημεταφορά γίνεται απ' ευθείας σε υλικό (hardware), απαιτείται λιγότερος χρόνος για τηνολοκλήρωσή της. Υπάρχουν σήμερα και DMA που είναι σε θέση να μεταφέρουν γρήγοραομάδες byte, από μία περιοχή μνήμης στην άλλη. Ένα παράδειγμα συνδεσμολογίας DMA,φαίνεται στο Σχ. 5.5. Σε όλες τις περιπτώσεις ένας DMA έχει περισσότερα από έναΚανάλια (Channels) για να μπορεί να χρησιμοποιείται από περισσότερα του ενόςπεριφερειακά (όχι ταυτόχρονα).

Σχ. 5.5 Συνδεσμολογία και Λειτουργία DMA σε έναν Τυπικό Η/Υ

Εδώ ο χρησιμοποιούμενος ελεγκτής DMA είναι ο 8237 της INTEL, ο οποίος υπήρχεστους αρχικούς Η/Υ της ΙΒΜ. Όταν το σύστημα ξεκινάει, οι "διακόπτες" με τα βέλη τουΣχ. 5.5 είναι συνδεδεμένοι έτσι, ώστε ο 8086 να είναι σε επαφή με τον δίαυλο (Bus) καιεπομένως με την κύρια μνήμη και τα περιφερειακά (π.χ. με τον "έξυπνο" ελεγκτή δίσκων8272). Ο DMA φαίνεται στον 8086 σαν μία ακόμη θύρα (port), στην οποία μπορεί ναστέλνει bytes. Κατ’ αυτόν τον τρόπο ο προγραμματισμός ενός DMA είναι σχετικάεύκολος.

Έστω ότι σε κάποια στιγμή είναι ανάγκη να διαβαστούν τα περιεχόμενα κάποιου αρχείουαπό τον δίσκο στην μνήμη. Ο συνηθισμένος τρόπος είναι να αποσταλούν οι κατάλληλεςοδηγίες στον ελεγκτή δίσκου, ώστε να εντοπίσει την πρώτη ομάδα (block) από bytes τουαρχείου. Μόλις ο ελεγκτής διαβάσει το πρώτο byte της ομάδος στέλνει το σήμα DREQ(DMA Request) στον DMA. Eάν ο τελευταίος έχει το συγκεκριμένο κανάλι απαίτησης

Page 91: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 91

ενεργό (δηλ. δέχεται αιτήσεις για μεταφορά δεδομένων, γιατί δεν κάνει κάτι άλλο)ενεργοποιεί το σήμα HRQ που συνδέεται τελικά με το HOLD του 8086.

Ο 8086 με την σειρά του παύει να στέλνει σήματα στον δίαυλο ("floats the bus") καιστέλνει το σήμα HLDA (Hold Acknowledge) στον DMA, ειδοποιώντας τον ότι έχειπαύσει την χρήση του διαύλου. Tότε ο DMA στέλνει ένα σήμα ελέγχου που “μετακινεί”τους “διακόπτες” στις θέσεις που φαίνονται στο Σχ. 5.5, στέλνει (στον δίαυλοδιευθύνσεων) την διεύθυνση της πρώτης θέσης στην μνήμη όπου θα τοποθετηθούν ταδεδομένα και ενεργοποιεί το σήμα DACK0 (DMA-acknowledge), για να ειδοποιήσει τονελεγκτή δίσκου να ετοιμαστεί να στείλει το byte. Τέλος ενεργοποιεί τα σήματα /IOR γιανα στείλει ο ελεγκτής δίσκου το byte και /ΜΕΜW για να γίνει εγγραφή στην μνήμη.Μόλις η μεταφορά των bytes ολοκληρωθεί, ο DMA απενεργοποιεί το σήμα HRQ,παραδίδοντας τον έλεγχο του διαύλου στον 8086. Η μεταφορά μπορεί να γίνει γιαοποιονδήποτε αριθμό bytes (ακόμα και για ένα).

Η διαδικασία είναι παρόμοια για την περίπτωση της μεταφοράς bytes από την μνήμη στονδίσκο (μέσω του "έξυπνου" ελεγκτή που αναφέρθηκε παραπάνω). Επίσης, στον αρχικόΙΒΜ ΡC, η επαναφόρτιση της δυναμικής μνήμης (refreshing), γίνεται μέσω του DMA,κατά την οποία ο τελευταίος διαβάζει μία ομάδα bytes από την μνήμη (μία ολόκληρη"γραμμή") και τα στέλνει σε μία ανύπαρκτη θύρα. Με την λειτουργία αυτή γίνεται καιεπαναφόρτιση της μνήμης με τις υπάρχουσες πληροφορίες.

5.5 Άλλα Περιφερειακά Ολοκληρωμένα

Εκτός από τα ολοκληρωμένα που αναφέρθηκαν έως εδώ, στην μητρική κάρτα ενόςτυπικού μικροϋπολογιστή υπάρχουν και αρκετά άλλα τα οποία παίζουν βοηθητικό ρόλοελέγχοντας κάποιες απαραίτητες λειτουργίες και επιτρέποντας έτσι την ΚΜΕ νααφοσιωθεί στο καθαρά υπολογιστικό έργο της. Από αυτά, εδώ θα αναφερθούν τα 8253και 8255, ενώ οι θύρες επέκτασης θα παρουσιασθούν στην επόμενη ενότητα.

5.5.1 Προγραμματιζόμενος Χρονοδιακόπτης/Μετρητής - το 8254

Σε κάθε Η/Υ, αλλά κυρίως σε εκείνους που επιτρέπουν την ταυτόχρονη εκτέλεση πολλώνπρογραμμάτων, είναι αναγκαία ενός ή περισσοτέρων χρονοδιακοπτών. Ακόμη, υπάρχουνπολλές εφαρμογές που απαιτούν την χρήση χρονοδιακόπτη. Γνωστό παράδειγμααποτελούν όλες οι εφαρμογές σε MS-Windows 3.1, με μεγάλη διάρκεια επεξεργασίαςδεδομένων. Για να δώσουν την δυνατότητα και σε άλλες εφαρμογές να εκτελεσθούν,χρησιμοποιούν χρονοδιακόπτες που διακόπτουν προσωρινά την εκτέλεσή τους.

Για να μην απασχολείται με αυτό το καθήκον η ΚΜΕ, χρησιμοποιούνται ειδικάολοκληρωμένα όπως ο 8254. Όπως φαίνεται από το Σχ. 5.6, αυτός αποτελείται από έναναπομονωτή (buffer) για την μεταφορά δεδομένων, μία μονάδα ελέγχου, τον καταχωρητήλέξης ελέγχου για τον προγραμματισμό του ολοκληρωμένου και τρεις μετρητές των 16bits, για την μέτρηση του χρόνου.

Page 92: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 92

Σχ. 5.6 Εσωτερική Αρχιτεκτονική του 8254

Το πλεονέκτημα της χρήσης του 8254 έγκειται στο ότι είναι δυνατόν να τοποθετήσετε μίαχρονομέτρηση σε οποιονδήποτε από τους μετρητές, να τους ξεκινήσετε και να τουςσταματήσετε - όλα κάτω από τον έλεγχο του προγράμματός σας. Για αυτό και ο 8254θεωρείται προγραμματιζόμενος μέσω λογισμικού. Στον 8086 (ΙΒΜ PC) οι τρεις μετρητέςφαίνονται σαν θύρες εισόδου / εξόδου με διευθύνσεις 40h, 41h και 42h. Για να σταλεί μίατιμή 16 bits σε κάποιον από τους μετρητές, αποστέλλεται στην αντίστοιχη θύρα πρώτα τοbyte χαμηλότερης τάξεως και μετά το byte της υψηλότερης.

Ειδικότερα στον ΙΒΜ PC, ο μετρητής 0, χρησιμοποιείται σαν το ρολόι συστήματος,στέλνοντας έναν παλμό 18,2 φορές περίπου ανά δευτερόλεπτο. Ο μετρητής 1χρησιμοποιείται για να ειδοποιεί τον DMA, ώστε να αρχίσει την λειτουργίαεπαναφόρτισης της δυναμικής μνήμης. Τέλος, ο μετρητής 2 χρησιμοποιείται για τηνπαραγωγή ήχων στο μεγάφωνο του Η/Υ.

5.5.2 Γενικός Ελεγκτής Περιφερειακών - το 8255

Όπως είδαμε έως τώρα, υπάρχουν δύο τρόποι επικοινωνίας μεταξύ ΚΜΕ καιπεριφερειακών συσκευών. Είτε με την χρήση ειδικών ολοκληρωμένων που παίζουν τονρόλο ελεγκτή της περιφερειακής συσκευής, είτε με την απ’ ευθείας επικοινωνία της ΚΜΕμε την συσκευή, μέσω κάποιας θύρας εισόδου / εξόδου. Το ερώτημα είναι τι γίνεται στηνπερίπτωση που θέλουμε να συνδέσουμε περιφερειακές συσκευές που δεν είναι όμοιεςμεταξύ τους και που έχουν κάποια πολυπλοκότητα στην επικοινωνία τους, αν και όχιμεγάλη. Εάν δε το κόστος και η ευελιξία παίζουν σημαντικό ρόλο, τότε η λύση βρίσκεταιστην χρήση ολοκληρωμένων διασύνδεσης περιφερειακών, όπως το 8255.

Γενικά υπάρχουν τρεις κατηγορίες μεταφοράς δεδομένων κατά παράλληλο τρόπο (δηλαδήκατά byte και όχι κατά bit), τις οποίες θα πρέπει να ικανοποιεί ένα τέτοιο ολοκληρωμένο:

Page 93: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 93

1. Απλή Είσοδος και Έξοδος - Παράδειγμα είναι η είσοδος από ένανδιακόπτη, που είναι πάντοτε διαθέσιμος για ανάγνωση της κατάστασής του,ή ένα LED σαν έξοδος.

2. Απλό Strobe Εισόδου / Εξόδου - Σε πολλές εφαρμογές, ορθά δεδομέναείναι διαθέσιμα μόνον σε συγκεκριμένες χρονικές περιόδους και πρέπειεπομένως να διαβαστούν τότε και μόνον. Παράδειγμα αποτελεί το πάτημαενός πλήκτρου στο πληκτρολόγιο, το οποίο έχει ως συνέπεια την εκπομπήενός ΑSCII κώδικα. Αυτός ο κώδικας γεννάται μόνον σε μία συγκεκριμένηχρονική στιγμή και αποστέλλεται σαν ένα byte σε 8 παράλληλες γραμμές(bits). Ταυτόχρονα ενεργοποιείται και ένα ειδικό σήμα (strobe), για ναειδοποιήσει μέσω μίας διακοπής τον επεξεργαστή για την αποστολή αυτή.

3. Με Χειραψία (Handshake) - Σε περιπτώσεις που η ταχύτητα μεταφοράςδεδομένων είναι μάλλον μεγάλη, είναι αναγκαίος κάποιος έλεγχος, ώστε ναειδοποιεί την αποστέλλουσα συσκευή πότε είναι ασφαλές να στείλει τοεπόμενο byte. Η τελευταία στέλνει ένα byte και ενεργοποιεί ένα /STB σήμα(strobe), για να ειδοποιήσει τον αποδέκτη για την αποστολή αυτή. Μόλις οαποδέκτης μπορέσει να το δεχθεί, ενεργοποιεί ένα ACK (acknowledge)σήμα, για να ειδοποιήσει τον αποστολέα ότι διάβασε το byte. Έτσι οαποστολέας μπορεί να στείλει το επόμενο. Αυτή είναι η μέθοδος της απλήςχειραψίας.

Εάν απαιτείται ακόμη περισσότερος συγχρονισμός, τότε χρησιμοποιείται ημέθοδος της Διπλής Χειραψίας (Double Handshake). Πρώτα ο αποστολέαςενεργοποιεί το σήμα /STB (λογικό 0), για να ειδοποιήσει ότι έχει έτοιμοένα byte προς αποστολή. Ο αποδέκτης ενεργοποιεί το σήμα ACK (λογικό1), για να δείξει ότι είναι έτοιμος. Ο αποστολέας στέλνει το byte καιαπενεργοποιεί το σήμα /STB (λογικό 1) για να δείξει ότι το έστειλε. Τέλοςο αποδέκτης απενεργοποιεί το σήμα ACK (λογικό 0), για να δείξει ότι τοδιάβασε.

Το 8255 χρησιμοποιείται στον ΙΒΜ PC για τον έλεγχο του πληκτρολογίου και άλλωνπεριφερειακών. Έχει τρεις καταχωρητές του ενός byte, που είναι γνωστοί σανκαταχωρητές A, B και C. Στον ΙΒΜ PC αυτοί “βρίσκονται” στις διευθύνσεις θυρών 60h,61h και 62h αντίστοιχα. Οι Α και Β μπορούν να χρησιμοποιηθούν σαν θύρες εισόδου /εξόδου των 8 bits, ενώ ο C σαν θύρα εισόδου / εξόδου των 8 bits ή δύο θυρών των 4 bits ηκάθε μία ή για την εφαρμογή τρόπων χειραψίας για λογαριασμό των A και Β. Υπάρχουντρεις (προγραμματιζόμενοι) τρόποι λειτουργίας του κάθε καταχωρητή: Mode 0, Mode 1και Mode 2. Αυτοί οι τρόποι αντικατοπτρίζουν κατά προσέγγιση τις τρεις κατηγορίεςπαράλληλης μεταφοράς δεδομένων, που παρουσιάσθηκαν παραπάνω.

Page 94: 1. ÅéóáãùãÞ
Page 95: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 95

6. ΜΙΚΡΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Έως τώρα έχουμε δει ότι οι επεξεργαστές προγραμματίζονται σε γλώσσα μηχανής στο πιοχαμηλό επίπεδο, μια και αυτή είναι η γλώσσα την οποία "καταλαβαίνουν" άμεσα. Έτσι,φαίνεται για παράδειγμα ότι είναι δυνατή η άμεση εκτέλεση, από το υλικό, πράξεων όπωςη διαίρεση, η εκτέλεση βρόχου (loop), κλπ.

Στην πραγματικότητα όμως, στους περισσότερους μοντέρνους επεξεργαστές δενυπάρχουν τέτοια κυκλώματα. Αντιθέτως, υπάρχει συνήθως ένας διερμηνέας (interpreter)ενσωματωμένος στον επεξεργαστή, ο οποίος αναλαμβάνει να εκτελέσει όλες τιςπαραπάνω εντολές σε επίπεδο μικροπρογραμματισμού, βήμα προς βήμα. Τυπικήεξαίρεση αυτής της στρατηγικής αποτελούν οι επεξεργαστές τύπου RISC.

Ο λόγος για αυτήν την ρύθμιση είναι ότι σε επίπεδο υλικού μπορούν να εκτελεσθούν πολύγρήγορα βασικές λειτουργίες, η σύνθεση των οποίων δημιουργεί την εντύπωση ότι οεπεξεργαστής μπορεί άμεσα να εκτελέσει τις διάφορες εντολές της γλώσσας μηχανής.Εννοείται πως ο οποιοσδήποτε προγραμματιστής μπορεί να "δει" μόνον έως το επίπεδοτης γλώσσας μηχανής. Τον προγραμματισμό σε επίπεδο μικροπρογραμματισμούαναλαμβάνει ο μικροπρογραμματιστής, ο οποίος αποτελεί μέλος της σχεδιαστικής ομάδοςτου επεξεργαστή.

Φυσική συνέπεια των ανωτέρω είναι ότι η προσπάθεια του σχεδιαστή εστιάζεται σεβελτιστοποιημένη οργάνωση των βασικών λειτουργιών, που εκτελούνται άμεσα από τουλικό. Αυτές χονδρικά μπορούν να ταξινομηθούν στις παρακάτω κατηγορίες:

1. Προσκόμιση εντολών γλώσσας μηχανής (Fetching)

2. Αποκωδικοποίηση εντολών γλώσσας μηχανής (Decoding)

3. Εκτέλεση εντολών γλώσσας μηχανής (Execution)

Η αρχιτεκτονική στο επίπεδο μικροπρογραμματισμού ονομάζεται μικροαρχιτεκτονική καιείναι εξαιρετικά δύσκολη, λόγω των παραπάνω στόχων. Λόγω δε των απαιτήσεων γιαυψηλή ταχύτητα, ο συγχρονισμός των διαφόρων βασικών λειτουργιών καθίσταται από τασημαντικότερα προβλήματα.

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

1. Καταχωρητές (Registers): Κάθε καταχωρητής δεν είναι παρά μία θέσημνήμης και σκοπό έχει να αποθηκεύει πληροφορίες. Η διαφορά με τηνκύρια μνήμη είναι ότι οι καταχωρητές είναι ενσωματωμένοι στονεπεξεργαστή και επομένως η προσπέλασή τους είναι κατά πολύ ταχύτερη

Page 96: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 96

από εκείνη της κύριας μνήμης. Υπάρχουν καταχωρητές γενικής και ειδικήςχρήσεως, όπως επίσης και καταχωρητές οι οποίοι χρησιμοποιούνται ωςχώροι τοπικής αποθήκευσης, και ως εκ τούτου είναι εμφανείς μόνον στονμικροπρογραμματιστή.

2. Δίαυλοι (Buses): Η μόνη διαφορά από τους διαύλους που έχουμε εξετάσειέως τώρα εστιάζεται στο ότι αυτοί είναι τοποθετημένοι μέσα στονεπεξεργαστή και συνδέουν τα βασικά δομικά στοιχεία ενός επεξεργαστήμεταξύ τους. Μπορεί να είναι απλής ή διπλής κατευθύνσεως.

3. Πολυπλέκτες και Αποπολυπλέκτες (Multiplexers, Demultiplexers):Συνδυάζουν τις εξόδους πολλών δομικών στοιχείων στην είσοδο ενός ή τοαντίστροφο.

4. Κωδικοποιητές και Αποκωδικοποιητές (Encoders, Decoders): Οιπρώτοι έχουν 2n γραμμές εισόδου και n εξόδους. Μόνον μία γραμμήεισόδου ενεργοποιείται και ο αύξων αριθμός της δημιουργείται στις nεξόδους τους. Ο αποκωδικοποιητής αντίθετα έχει n εισόδους και 2n

γραμμές εξόδου. Εφαρμόζεται ένας αριθμός των n-bit στην είσοδο καιμόνον η γραμμή εξόδου με τον αυτό αύξοντα αριθμό ενεργοποιείται(λογικό 1).

5. ALU και Κύκλωμα Ολίσθησης: Ο σκοπός της πρώτης είναι η εκτέλεσηβασικών αριθμητικών και λογικών πράξεων. Για τον σκοπό αυτό έχει δύοεισόδους δεδομένων και μία είσοδο γραμμών ελέγχου. Ανάλογα με τηντιμή στις τελευταίας εφαρμόζεται η αντίστοιχη πράξη στα εισερχόμεναδεδομένα. Για λόγους ταχύτητας υπάρχει και ξεχωριστό κύκλωμαολίσθησης.

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

Επίσης, η επικοινωνία με τον εξωτερικό κόσμο προϋποθέτει την επιλογή διευθύνσεων(κύριας μνήμης και θυρών εισόδου / εξόδου) και ανάγνωση ή τοποθέτηση δεδομένωνστον εξωτερικό δίαυλο για μεγάλο χρονικό διάστημα. Για να αποφευχθεί αυτή ηκαθυστέρηση, υπάρχουν τουλάχιστον δύο καταχωρητές: Ο Καταχωρητής Διευθύνσεων καιο Καταχωρητής Δεδομένων.

6.1 Μικροαρχιτεκτονική

Σε αυτήν την ενότητα θα εξετάσουμε έναν απλό τρόπο με τον οποίο συνδέονται τα βασικάδομικά στοιχεία που παρουσιάσθηκαν προηγουμένως σε συντομία. Γενικά υπάρχουν δύολογικές ομάδες, που πρέπει να σχεδιασθούν προκειμένου να συντεθεί ένας επεξεργαστής:Η Μονάδα Διαδρομής Δεδομένων και η Μονάδα Ελέγχου.

Page 97: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 97

Εφόσον τα δεδομένα και τα αποτελέσματα των πράξεων τοποθετούνται σε καταχωρητέςκαι οι αριθμητικές και λογικές πράξεις εκτελούνται από την Αριθμητική & ΛογικήΜονάδα (ALU) είναι απαραίτητη η διασύνδεση καταχωρητή με καταχωρητή και δύο κάθεφορά καταχωρητών με την ALU (π.χ. για την πρόσθεση απαιτούνται δύο δεδομέναεισόδου). Επίσης η ALU χρειάζεται να συνδέεται στην έξοδό της με οποιονδήποτε απότους καταχωρητές, ώστε να είναι σε θέση να αποθηκεύσει αμέσως το αποτέλεσμα κάποιαςπράξεως. Επειδή δε θέλουμε να σχεδιάσουμε έναν "χρήσιμο" επεξεργαστή, όλοι οικαταχωρητές θα πρέπει να έχουν εύρος 16 bits. Εάν όλα τα δομικά στοιχεία τοποθετηθούνσε ένα σχεδιάγραμμα αντικατοπτρίζοντας την ροή που ακολουθούν τα δεδομένα, τότεπαίρνουμε την Διαδρομή Δεδομένων για την συγκεκριμένη αρχιτεκτονική - π.χ. Σχ. 6.1.

Από τις απαιτήσεις αυτές προκύπτει ότι θα πρέπει να έχουμε τουλάχιστον τρεις διαύλους,(ονόματι A, B και C, όπως φαίνεται και στο Σχ. 6.1). Κάθε ένας δίαυλος έχει εύρος 16bits, ώστε να μπορεί να μεταφέρει ταυτόχρονα όλα τα bit κάθε καταχωρητή. Στοπαράδειγμα που παρουσιάζεται εδώ, βλέπουμε ότι στους διαύλους A και B τοποθετούνταιτα περιεχόμενα των καταχωρητών που θέλουμε να χρησιμοποιήσει η ALU ώστε να κάνεικάποια πράξη. Επειδή όμως η ALU είναι συνδυαστικό κύκλωμα, εκτελεί την οποιαδήποτεπράξη διαρκώς και όχι μόνον όταν τα σωστά περιεχόμενα έχουν τοποθετηθεί στοναντίστοιχο δίαυλο.

Page 98: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 98

Σχ. 6.1 Παράδειγμα Διαδρομής Δεδομένων

Για να αντιμετωπισθεί αυτό το πρόβλημα υπάρχουν και δύο latch (εκπομποί), ονόματι Alatch και B latch, ώστε να εκπέμπουν προς την ALU διαρκώς τις επιθυμητές τιμές και νααλλάζουν περιεχόμενο μόνον σε αυστηρά καθορισμένες χρονικές στιγμές - κάτι πουελέγχουμε με τα σήματα L0 και L1. Έτσι, εάν επιθυμούμε την πρόσθεση του περιεχομένουτου καταχωρητή A με το περιεχόμενο του καταχωρητή B, με το αποτέλεσμα νατοποθετείται στον καταχωρητή A, δεν δημιουργείται πρόβλημα.

Επίσης βλέπουμε το κύκλωμα ολίσθησης να βρίσκεται μετά την ALU. Ο λόγος είναιπροφανής εάν σκεφθείτε την περίπτωση ολίσθησης ενός αριθμού K προς τα αριστερά

Page 99: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 99

κατά 3 bit. Πρώτα θα πάρουμε το αποτέλεσμα της άθροισης K + K, που ισοδυναμεί μεολίσθηση προς τα αριστερά κατά 1 bit. Το αποτέλεσμα θα οδηγηθεί στον ολισθητή, οοποίος και θα πραγματοποιήσει την τελική ολίσθηση κατά 2 bit, ολοκληρώνοντας τηνεπιθυμητή πράξη.

Για επικοινωνία με την κύρια μνήμη του Η/Υ, υπάρχουν άλλοι δύο ειδικοί καταχωρητές,ονόματι: MAR (Memory Address Register) για την αποστολή της απαιτούμενηςδιεύθυνσης και MBR (Memory Buffer Register) για την αποστολή ή λήψη δεδομένων προςή από την κύρια μνήμη. Είναι προφανές ότι ο πρώτος είναι ένα latch (εκπομπός μίαςκατεύθυνσης), ενώ ο δεύτερος transceiver (πομποδέκτης). Επίσης ότι αυτά βρίσκονται σεδιαφορετικό δίαυλο μια και είναι πληροφορίες διαφορετικού τύπου (διευθύνσεις στονπρώτο καταχωρητή, δεδομένα στον δεύτερο).

Το ερώτημα που γεννάται είναι το τι γίνεται κατά την ανάγνωση δεδομένων από την κύριαμνήμη. Είναι προφανές ότι αυτά φθάνουν ως τον καταχωρητή MBR, αλλά δεντοποθετούνται σε κανέναν από τους καταχωρητές PC έως και F. Η απάντηση σε αυτό τοερώτημα είναι ο πολυπλέκτης AMUX, ο οποίος ανάλογα με την τιμή της γραμμής ελέγχουA0, επιτρέπει την διέλευση προς την ALU είτε του περιεχομένου του MBR, είτε τουπεριεχομένου του A latch.

Τέλος ενδιαφέρουσες είναι οι τιμές των γραμμών εξόδου N και Z της ALU. Η πρώτηγίνεται λογικό 1 όταν το αποτέλεσμα της πράξης είναι αρνητικό, ενώ η δεύτερη γίνεταιλογικό 1 όταν το αποτέλεσμα της πράξης είναι μηδέν.

6.2 Μικροεντολές και Μονάδα Ελέγχου

Σύμφωνα με το παράδειγμα μικροαρχιτεκτονικής που παρουσιάσθηκε στην προηγούμενηενότητα (Σχ. 6.1) έχουμε συνολικά 16 κατάχωρητές των 16 bit ο κάθε ένας για γενικήχρήση. Επομένως απαιτούνται 16 σήματα για την αντιγραφή του περιεχομένου του κάθεενός στον δίαυλο A και άλλα 16 για την αντιγραφή του περιεχομένου του κάθε ενός στονδίαυλο B. Κάθε ένας από τους κατάχωρητές αυτούς μπορεί να φορτωθεί από τον δίαυλοC, άρα απαιτούνται άλλα 16 σήματα για τον σκοπό αυτό. Συνολικά λοιπόν 3x16 = 48σήματα.

Στην συνέχεια χρειαζόμαστε άλλα 2 σήματα για τα A latch και B latch, 2 σήματα (F0, F1 )για τον έλεγχο της ALU, 2 σήματα για τον έλεγχο του κυκλώματος ολίσθησης, 4 σήματαγια τον έλεγχο των κατάχωρητών MAR (Μ0 ) και MBR (Μ1, Μ2 και M3 , όπου το πρώτοελέγχει το εάν ο MBR φορτώνεται από το κύκλωμα ολίσθησης ή όχι, το δεύτερο εάν οMBR φορτώνεται από την κύρια μνήμη και το τελευταίο εάν γράφει σε αυτήν) και 1 σήμαγια τον πολυπλέκτη AMUX.

Page 100: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 100

Τέλος θα πρέπει να προστεθούν και άλλα 2 σήματα: Το πρώτο για το εάν η πληροφορίαγράφεται από τον επεξεργαστή στον "έξω" κόσμο ή διαβάζεται από αυτόν και το δεύτεροσήμα για το εάν ο "έξω" κόσμος αντιστοιχεί σε κύρια μνήμη ή άλλη συσκευή.

Συνολικά λοιπόν χρειαζόμαστε 61 σήματα και επομένως 61 bit για να δημιουργήσουμεμία λέξη μέσω της οποίας μπορούμε να ελέγχουμε πλήρως όλα τα επιμέρους στοιχεία τουπαραδείγματός μας. Κάτι τέτοιο όμως δημιουργεί σοβαρό πρόβλημα, δεδομένου ότιαπαιτείται τουλάχιστον ένας κατάχωρητής ελέγχου των 61 bit.

Παρατηρώντας όμως ότι για την μεταφορά δεδομένων από τους 16 κατάχωρητές σε κάθεέναν από τους διαύλους A και B μόνον ένας κατάχωρητής μπορεί να είναιενεργοποιημένος σε κάθε χρονική στιγμή, μπορούμε να περιορίσουμε κάθε μία δεκαεξάδασημάτων σε 4 (αφού 24 = 16) και να χρησιμοποιήσουμε έναν αποκωδικοποιητή για τηνδημιουργία της τελικής δεκαεξάδας, για κάθε έναν από τους τρεις διαύλους. Άρα από2x16 = 32 bit αρχικά, έχουμε κατεβεί στα 2x4 = 8 bit.

Αν και θα μπορούσαμε να έχουμε ταυτόχρονη φόρτωση πολλών κατάχωρητών από τονδίαυλο C, μπορούμε για ευκολία να θεωρήσουμε ότι μόνον ένας φορτώνεται κάθε φορά.Επομένως και εδώ εφαρμόζουμε την προηγούμενη μέθοδο και από 16 bit αρχικά,πέφτουμε στα 4 bit, ή συνολικά στα 25 bit για τον πλήρη έλεγχο των επιμέρους δομικώνστοιχείων. Είναι δυνατόν να περιορίσουμε λίγο ακόμη τον αριθμό των απαιτούμενων bit(π.χ. αντικατάσταση των σημάτων L0 και L1 με κατάλληλο σήμα ρολογιού, άρα τελικά 23bit), αλλά τα παραπάνω είναι αρκετά για να δώσουν μία καλή ιδέα των προβλημάτων πουδημιουργούνται.

Μετά όμως από τον περιορισμό του πλήθους των bit ελέγχου, είναι απαραίτητο νασχεδιάσουμε την μορφή της μικροεντολής με ανάλογο εύρος. Έτσι είναι δυνατόν ναπεριγράψουμε ένα πλήρη κύκλο δεδομένων μέσω των παραπάνω δομικών στοιχείων, μετην χρήση μίας μικροεντολής. Ένα παράδειγμα μορφής μικροεντολής για εύρος 22 bitφαίνεται στο Σχ. 6.2, όπου εκτός από τα 22 bit που προαναφέρθηκαν, υπάρχουν και δύοακόμη πεδία: το COND (για διακλάδωση) και - εφόσον απαιτείται διακλάδωση - το ADDRτο οποίο περιέχει την διεύθυνση της αντίστοιχης μικροεντολής. Το συνολικό εύρος είναιτώρα 32 bit.

Σχ. 6.2 Παράδειγμα Μορφής Μικροεντολής Εύρους 22 Bit

Αυτό όμως που λείπει είναι ο χρονισμός, ώστε κάθε ένα από τα ενεργοποιούμενα στοιχείανα ενεργοποιηθεί την κατάλληλη χρονική στιγμή. Π.χ. σκεφθείτε την περίπτωση της

Page 101: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 101

πρόσθεσης Α := Α + Β, όπου ο καταχωρητής Α φορτώνεται από τον δίαυλο C καιεκπέμπει τα καινούργια δεδομένα του μέσω του διαύλου Α στην ALU. Το αποτέλεσμαδεν θα ήταν φυσικά σωστό.

Για τον λόγο αυτό χρησιμοποιείται ένα ρολόι (όπως σε όλα τα σύγχρονα κυκλώματα), μετέσσερις φάσεις, που ονομάζονται υποκύκλοι (Σχ. 6.3). Αντιστοιχίζοντας τέσσερις το πολύυποκύκλους σε κάθε μικροεντολή, έχουμε συνολική διάρκεια εκτέλεσης έναν κύκλορολογιού ανά μικροεντολή. Αυτό που απομένει είναι να δούμε εάν οι τέσσερις υποκύκλοιείναι αρκετοί.

Σχ. 6.3 Δημιουργία Τεσσάρων Υποκύκλων από Ένα Σήμα Ρολογιού

Page 102: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 102

Σχ. 6.4 Πλήρες Διάγραμμα Μικροαρχιτεκτονικής για τον Επεξεργαστή μας

Παρατηρούμε ότι κάτι τέτοιο συμβαίνει, δεδομένου ότι στους τέσσερις υποκύκλουςλαμβάνουν χώρα οι εξής βασικές λειτουργίες:

1. Φόρτωση της επόμενης προς εκτέλεση μικροεντολής σε έναν καταχωρητήμικροεντολών, ονόματι MIR (MicroInstruction Register), στην ενότηταελέγχου.

2. Οδήγηση των περιεχομένων κάποιων καταχωρητών στα A latch και Βlatch, στους διαύλους Α και Β.

3. Ενεργοποίηση της ALU και του κυκλώματος ολίσθησης και φόρτωση τουMAR (latch διευθύνσεων κύριας μνήμης).

4. Οδήγηση του αποτελέσματος από το κύκλωμα ολίσθησης στον MBR ή καιαπό τον δίαυλο C σε κάποιον από τους 16 γενικούς καταχωρητές.

Το τελικό αποτέλεσμα της μικροαρχιτεκτονικής του επεξεργαστή μας φαίνεται στο Σχ.6.4. Εδώ βλέπουμε και την ενότητα ελέγχου (στα δεξιά), η οποία περιλαμβάνει τονκαταχωρητή μικροεντολών (MIR). Ο τελευταίος έχει εύρος 32 bit - όσο και το εύρος της

Page 103: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 103

μικροεντολής μας. Υπάρχει και ένας Μετρητής Μικροεντολών, ονόματι MPC(MicroProgram Counter), ο οποίος απλά αυξάνεται κατά 1, ώστε να δείχνει στην αμέσωςεπόμενη μικροεντολή, εφόσον δεν λάβει χώρα διακλάδωση. Υπάρχει ακόμη μία περιοχήμνήμης με 256 θέσεις για την αποθήκευση του μικροπρογράμματος (συνήθως ROM) καιένα κύκλωμα με την επωνυμία Λογική Ακολουθίας Μικροεντολών.

Το κύκλωμα αυτό παίρνει τις τιμές των N και Z από την ALU, καθώς και τα 2 bit τουπεδίου COND από την μικροεντολή και αντίστοιχα ενεργοποιεί τον πολυπλέκτη MUX,ώστε ο τελευταίος να επιτρέψει την φόρτωση του MPC, είτε με την τιμή (διεύθυνση) τουMPC+1, είτε με την (εναλλακτική) τιμή (διεύθυνση) από το πεδίο ADDR τηςμικροεντολής. Οι τιμές και τα αντίστοιχα νοήματα για το πεδίο COND φαίνονται στο Σχ.6.2.

6.3 Μακροεντολές και Στρατηγική Σχεδιασμού Μικροεντολών

Έχοντας καλύψει τα θέματα μικροαρχιτεκτονικής και μικροπρογραμματισμού, το επόμενοερώτημα είναι το πώς διασυνδέονται το πρόγραμμα του συνηθισμένου προγραμματιστή(σε γλώσσα μηχανής ή συνηθέστερα Assembly) και οι διαθέσιμες μικροεντολές.

Η απάντηση είναι ότι ο μικροπρογραμματιστής κατασκευάζει ένα μικροπρόγραμμα, τοοποίο εκτελείται συνέχεια από τον επεξεργαστή. Το μικροπρόγραμμα δεν είναι ορατό απότον προγραμματιστή, αλλά σκοπό έχει την εμφάνιση του επεξεργαστή σαν μίαδιαφορετική υπολογιστική μηχανή, ικανή να εκτελεί άμεσα όλες τις διαθέσιμες εντολέςγραμμένες σε γλώσσα Assembly.

Ουσιαστικά λοιπόν το μικροπρόγραμμα εκτελεί έναν ατέρμονο βρόχο από μικροεντολές.Σκοπός του είναι να παραλάβει μία εντολή γλώσσας μηχανής από την κύρια μνήμη, νατην τοποθετήσει σε έναν εσωτερικό κατάχωρητή (π.χ. τον IR), να την διερμηνεύσει και ναεκτελέσει εκείνο το τμήμα του, που αντιστοιχεί στο σύνολο των βασικών λειτουργιών πουαντιστοιχούν στην παραπάνω εντολή. Επειδή δε μία εντολή γλώσσας μηχανής αντιστοιχείσε πολλές μικροεντολές, η πρώτη ονομάζεται και μακροεντολή.

Μία μακροεντολή δεν είναι απαραίτητο να έχει το ίδιο εύρος σε bit, όπως και ημικροεντολή. Έτσι μπορεί να έχει εύρος μόνον 16 bit, ενώ κάθε μικροεντολή εύρος 32 bitγια το παράδειγμα, που είδαμε στις προηγούμενες ενότητες. Κατ' αυτόν τον τρόπο γίνεταιεξοικονόμηση χώρου στην κύρια μνήμη, επιτρέποντας την συγγραφή μεγαλυτέρωνπρογραμμάτων τα οποία εκτελούνται ταχύτερα. Το τελευταίο είναι συνέπεια τουγεγονότος ότι έτσι απαιτείται η μεταφορά λιγότερων byte από την κύρια μνήμη στονεπεξεργαστή.

Μετά από τα παραπάνω είναι φανερό ότι στο επίπεδο αυτό πρέπει να γίνει έναςσυμβιβασμός ανάμεσα στην ύπαρξη μικροεντολών με 1 bit για κάθε σήμα ελέγχου, όπωςείδαμε στην αρχή, και μικροεντολών με το ελάχιστο δυνατό εύρος πεδίων και υψηλόβαθμό κωδικοποίησης, μια και χρησιμοποιούνται αποκωδικοποιητές για να

Page 104: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 104

δημιουργήσουν τα τελικά σήματα ελέγχου. Στο πρώτο άκρο έχουμε τον λεγόμενοΟριζόντιο Μικροπρογραμματισμό, ενώ στο δεύτερο τον ΚατακόρυφοΜικροπρογραμματισμό. Φυσικό επακόλουθο της πρώτης προσέγγισης είναι ημεγαλύτερη ταχύτητα (λιγότερες μικροεντολές στο μικροπρόγραμμα) και η μεγαλύτερηπολυπλοκότητα και κόστος κατασκευής. Αντιθέτως, με την δεύτερη προσέγγιση έχουμεμικρότερη ταχύτητα (περισσότερες μικροεντολές στο μικροπρόγραμμα), αλλά μικρότερηπολυπλοκότητα, άρα και μικρότερος χώρος VLSI και χαμηλότερο κόστος κατασκευής.

Υπάρχουν και άλλοι τρόποι βελτιστοποίησης, αλλά με περισσότερη πολυπλοκότητα, όπωςο Νανοπρογραμματισμός, η Διοχέτευση (Pipelining) και η χρήση Λανθάνουσας Μνήμης,τα οποία δεν θα εξετάσουμε σε μεγάλη λεπτομέρεια.

Page 105: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 105

Page 106: 1. ÅéóáãùãÞ
Page 107: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 107

7. ΕΞΕΛΙΞΕΙΣ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΕΠΕΞΕΡΓΑΣΤΩΝ

Μέχρι σήμερα έχει προταθεί, σχεδιασθεί και κυκλοφορήσει μία πληθώρα απόμικροεπεξεργαστές. Πριν όμως παρουσιασθούν οι πιο σημαντικοί από αυτούς είναιχρήσιμο να παρουσιασθούν οι παράγοντες που επηρεάζουν τον σχεδιασμό τους.

7.1 Παράγοντες στον Σχεδιασμό Μικροεπεξεργαστών

Κάθε μικροεπεξεργαστής που κυκλοφορεί μαζικά στην αγορά έχει κάποιο κόστος τοοποίο πρέπει πάντοτε να ληφθεί υπ’ όψιν της εταιρείας, που τον σχεδίασε. �τσι, μπορεί οιοικονομικοί λόγοι να ρίξουν την ζυγαριά της επιλογής προς την συνέχιση ενός μάλλονάσχημου, παρά στην επιλογή ενός πολύ καλύτερου σχεδίου - π.χ. επειδή η αγορά έχειεπενδύσει σημαντικά σε λογισμικό για το παλιό σχέδιο, κανείς δεν θέλει ναδιακινδυνεύσει να επενδύσει σε προσπάθεια επάνω στο καινούργιο σχέδιο.

Επίσης η Τεχνολογία παραμένει ένας σοβαρός περιοριστικός παράγοντας. Οι επιλογές τουσχεδιαστή με ένα εκατομμύριο τρανζίστορ στην διάθεσή του είναι περισσότερες από ότανέχει μόλις 10.000. Επί πλέον η τεχνολογία και τα οικονομικά είναι αλληλένδετα, μια και οιπελάτες συνήθως επιθυμούν μία συνέχεια στα διαδοχικά μοντέλα επεξεργαστών. Έτσι,αποφάσεις που ίσως ήταν σωστές για σχέδια με λίγα τρανζίστορ, εξακολουθούν ναυπάρχουν ακόμα και σε σχέδια με περισσότερα.

Ο τομέας χρήσης παίζει επίσης σημαντικό ρόλο στον σχεδιασμό ενός επεξεργαστή. Γιαπαράδειγμα, ένας επεξεργαστής που είναι βέλτιστος σε εφαρμογές επεξεργασίας εικόνων,ίσως είναι ακατάλληλος σαν ΚΜΕ σε έναν Η/Υ, που “τρέχει” UNIX.

Τέλος ένας άλλος παράγοντας είναι το τι αρχιτεκτονική περιμένει η αγορά. Έτσι, άσχεταεάν υπάρχει ένα καλό σχέδιο επεξεργαστή των 64 bits, η αγορά περιμένει καλούςεπεξεργαστές των 32 bits και δεν είναι διατεθειμένη να πληρώσει το πρόσθετο κόστος.

7.2 Κατηγορίες Μικροεπεξεργαστών

Γενικά οι μικροεπεξεργαστές χωρίζονται σήμερα σε τρεις κατηγορίες,. ανάλογα με τηνπολυπλοκότητα των διαθέσιμων εντολών τους:

1. CISC (Complex Instruction Set Computer) - Σε αυτήν την κατηγορίαανήκουν οι περισσότεροι επεξεργαστές γενικής χρήσης, όπως ο 8086,80386, 80486, 68000, κλπ. Υπάρχει ένα διαθέσιμο στον προγραμματιστήένα ρεπερτόριο εντολών, που είναι αρκετό για τις πιο συνηθισμένεςεφαρμογές.

Page 108: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 108

2. RISC (Reduced Instruction Set Computer) - Εδώ η ιδέα είναι η παροχήενός πολύ περιορισμένου συνόλου εντολών, οι οποίες είναι πολύ απλές.Συνέπεια αυτού του γεγονότος είναι ταχύτατη εκτέλεσή τους από τονμικροεπεξεργαστή. Το πρόβλημα που δημιουργείται όμως είναι ότι τώρααπαιτούνται περισσότερες εντολές για να εκτελεσθεί κάποια λειτουργία.Επομένως ο αντίστοιχος Compiler πρέπει να χρησιμοποιεί όσο το δυνατόνλιγότερες και πιο αποδοτικό σύνολο εντολών. Τυπικά, ένα πρόγραμμα γιαεπεξεργαστές RISC είναι διπλάσιο σε μέγεθος από ότι σε CISC. Ο SPARCτης Sun Mircosystems και ο T800 της Inmos είναι τυπικά παραδείγματααυτής της κατηγορίας.

3. VLIW (Very Long Instruction Word) - Τα προβλήματα τωνεπεξεργαστών τύπου RISC, έχουν οδηγήσει σε διάφορες προτάσεις, ηκυριότερη εκ των οποίων είναι οι επεξεργαστές αυτής της κατηγορίας. Ηκεντρική ιδέα εδώ είναι ότι υπάρχει διαθέσιμο ένα πολύ μεγάλο σύνολοπολύπλοκων εντολών, που - ενώ δεν έχει η κάθε μία μεγάλη ταχύτηταεκτέλεσης - ωστόσο ισοδυναμεί με πάρα πολλές απλές εντολές των άλλωνκατηγοριών. Έτσι ένας “έξυπνος” Compiler θα πρέπει να συνδυάσειπολλές, απλές απαιτούμενες λειτουργίες από το πηγαίο πρόγραμμα τουχρήστη, για να δημιουργήσει κώδικα με ελάχιστες, αλλά κατάλληλεςεντολές. Αυτή η κατηγορία δεν έχει (τουλάχιστον προς το παρόν) γνωρίσεισημαντική επιτυχία και για αυτό δεν θα επεκταθούμε περισσότερο.

7.3 Οι Πρώτοι Μικροεπεξεργαστές

Ο πρώτος μικροεπεξεργαστής ήταν ο 4004 της ΙNTEL, το 1971, με 2300 PMOSτρανζίστορ. Ήταν των 4 bits και σχεδιάσθηκε για χρήση σε αριθμομηχανές. Επειδή όμωςμπορούσε να χρησιμοποιηθεί και σε άλλες συσκευές με αλλαγή του αντίστοιχουπρογράμματος και όχι του ηλεκτρονικού σχεδίου, έδωσε την ώθηση στην ανάπτυξη τωνμικροεπεξεργαστών.

Η Ιntel το 1972 παρουσίασε τον 8008, με 8 bits. Το μειονέκτημά του ήταν ότι ήθελε άλλα20 ολοκληρωμένα για να δουλέψει σαν μία ΚΜΕ και έτσι δεν είχε επιτυχία. Αυτόςαντικαταστάθηκε το 1974 από τον 8080, που ήθελε μόνον δύο επί πλέον τσιπ, μεπλουσιότερο ρεπερτόριο εντολών και ταχύτερος, μια και χρησιμοποιούσε NMOSτρανζίστορ. Ήθελε όμως τρεις παροχές τάσης για να λειτουργήσει (-5V, +5V και +12V).Η Μotorola παρουσίασε τον MC6800 των 8 bits, με μόνον μία απαιτούμενη τάσηλειτουργίας (+5V).

Αυτοί οι δύο μικροεπεξεργαστές ήταν οι πιο δημοφιλείς των 8 bits για αρκετά χρόνια,μέχρι την έλευση του 6502 της MOSTEK, που χρησιμοποιήθηκε στον γνωστό H/Y AppleII και του Ζ80 της ZILOG, που ήταν ένα καλύτερο υπερσύνολο του 8080 καιχρησιμοποιήθηκε στους γνωστούς Η/Υ της SINCLAIR (ZX80, ZX81, Spectrum).

Page 109: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 109

7.4 Συγκριτική Παρουσίαση Ορισμένων Μικροεπεξεργαστών

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

7.4.1 6502

Ας υποθέσουμε ότι έχουμε στην διάθεσή μας μία σχετικά πρωτόγονη τεχνολογία καιθέλουμε έναν επεξεργαστή γενικής χρήσης. Όπως ήδη γνωρίζουμε, θα χρειασθούμεκάποια μνήμη (για να κρατάει το πρόγραμμα και τα δεδομένα), μία Αριθμητική καιΛογική Μονάδα (ALU) για αριθμητικές / λογικές πράξεις και κάτι που θα μας λέει ποιαεντολή να εκτελέσουμε στην συνέχεια. Θα πρέπει να ορίσουμε και να κωδικοποιήσουμεκάθε μία από τις επιθυμητές εντολές, ώστε ο επεξεργαστής να εκτελεί ακριβώς τιςλειτουργίες που θέλουμε.

Το πρώτο μέρος από όπου μπορούμε να αρχίσουμε είναι η ALU. Π.χ. θέλουμε τηνδυνατότητα εκτέλεσης πρόσθεσης, αφαίρεσης (σε 2-συμπλήρωμα μια και ταιριάζει με τηντεχνολογία μας), σύγκρισης, ολίσθησης, κάποιων λογικών πράξεων (AND, OR, NOT,XOR), κλπ. Πολλαπλασιασμός και διαίρεση είναι πιο πολύπλοκα και τα αφήνουμε έξωαπό το ρεπερτόριο εντολών του επεξεργαστή μας. Μετρώντας όλες τις εντολές βρίσκουμεότι είναι περισσότερες από 16, αλλά λιγότερες από 256. Άρα ένα byte φθάνει για τηνκωδικοποίησή τους.

Έστω ότι λέμε add για να προσθέσουμε κάτι. Αλλά ποιόν με τι; Για ευκολία θαχρησιμοποιήσουμε έναν ειδικό καταχωρητή - με το όνομα Συσσωρευτής (Accumulator) -στην ALU, ώστε κάθε φορά που θα λέμε add <κάτι>, θα εννοούμε “πρόσθεσε το <κάτι>στο περιεχόμενο του συσσωρευτή, αφήνοντας το άθροισμα στον συσσωρευτή”. Και αφούέχουμε λίγα τρανζίστορ ο συσσωρευτής μας θα είναι των 8 bits.

Δεν μένει τώρα παρά να ορίσουμε το <κάτι>. Το πιο φυσιολογικό είναι να μπορούμε ναπροσθέσουμε το περιεχόμενο μίας θέσεως μνήμης με το περιεχόμενο του συσσωρευτή.Για αυτό εισάγουμε και τις εντολές load και store για μεταφορά bytes από και προς τηνμνήμη. Αφού όμως δεν έχουμε αρκετά τρανζίστορ για τον επεξεργαστή, δεν θα έχουμε καιμεγάλη μνήμη. Έστω ότι είναι το πολύ 64 KBytes. Άρα οποιαδήποτε διεύθυνση χωράει σε16 bits. Συν το ένα byte που περιέχει τον κωδικό λειτουργίας έχουμε 24 bits για τοσυνολικό μήκος κάθε εντολής του επεξεργαστή μας.

Αλλά 24 bits (= 3 bytes) για κάθε εντολή είναι πολύς χώρος στην μάλλον μικρή διαθέσιμημνήμη. Εξ άλλου όσο πιο πολλές προσβάσεις πρέπει να γίνουν στην μνήμη (τρεις εδώ),τόσο πιο πολύ καθυστερεί ο επεξεργαστής.

Υπάρχει μία λύση. Να χρησιμοποιηθεί ένας Καταχωρητής Διευθύνσεων. Πρώτατοποθετούμε την επιθυμητή διεύθυνση μνήμης σε αυτόν και μετά προσπελαύνουμε όχι το

Page 110: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 110

περιεχόμενο του καταχωρητή, αλλά το περιεχόμενο της διεύθυνσης μνήμης που είναιαποθηκευμένο στο καταχωρητή αυτόν. Αυτός ο τρόπος προσπέλασης λέγεται ΈμμεσηΠροσπέλαση (Indirect Access). Mάλιστα μεταβάλλοντας το περιεχόμενό του ΚαταχωρητήΔιευθύνσεων (π.χ. αυξάνοντάς το κατά 1), μπορούμε να προσπελάσουμε ολόκληρεςπεριοχές μνήμης.

Ο καταχωρητής αυτός πρέπει να είναι των 16 bits για να μπορεί να “δει” και τα 64 Κ τηςμνήμης. Δεν έχουμε όμως αρκετά τρανζίστορ και μπορεί να είναι μόνον 8 bits. Υπάρχειόμως μία λύση: Από τα απαιτούμενα 16 bits της κάθε διεύθυνσης, τα 8 να βρίσκονταιστον καταχωρητή διευθύνσεων και τα υπόλοιπα 8 στα πρώτα 256 bytes της μνήμης μας,που θα χρησιμοποιείται μόνον για αυτόν τον σκοπό. Έτσι, εάν η διεύθυνση μνήμης 90hπεριέχει τον αριθμό A6h και ο καταχωρητής διευθύνσεων τον αριθμό 15h, και δώσουμετην εντολή:

load #90

αυτό σημαίνει φόρτωσε στον συσσωρευτή το byte που βρίσκεται στην διεύθυνση μνήμηςA615h. Με αυτόν τον τρόπο ο καταχωρητής διευθύνσεων μένει στα 8 bits, αλλά και οιεντολές είναι τώρα μόνον 16 bits, κάνοντας οικονομία στην απαιτούμενη μνήμη κατά33%.

Ας προσθέσουμε και έναν καταχωρητή που αποτελείται από Σημαίες (Flags) για ναδείχνουν τα αποτελέσματα από συγκρίσεις, κλπ, για αλλαγή της ροής εκτέλεσης τωνπρογραμμάτων και έναν καταχωρητή των 16 bits για να δείχνει ποία εντολή πρέπει ναεκτελεσθεί στην συνέχεια. Αφού η μνήμη είναι περιορισμένη και ακριβή, ας δώσουμε τηνδυνατότητα χρησιμοποιήσεως του ίδιου κομματιού κώδικα πολλές φορές, γράφοντάς τονμόνον μία φορά. Πώς; Με υπορουτίνες ή διαδικασίες (procedures) που καλούμε με τηνεντολή call και από τις οποίες επιστρέφουμε με μία return.

Ας προσθέσουμε και κάποια άλλα στοιχεία και έχουμε τον 6502 της ΜΟSTEK μελιγότερα από 10.000 τρανζίστορ, που χρησιμοποιήθηκε στον Αpple II.

7.4.2 8086

Η τεχνολογία προχωράει και μετά από κάποιο διάστημα έχουμε περισσότερα τρανζίστορδιαθέσιμα. Τι θα μπορούσαμε να βελτιώσουμε στο προηγούμενο σχέδιο; Η πιο άμεσησκέψη είναι να αυξήσουμε το μήκος όλων των καταχωρητών σε 16 bits και ναπροσθέσουμε εντολές για πολλαπλασιασμό και διαίρεση, αντί να τις πραγματοποιούμε μεκλήση υπορουτινών που παίρνει πολύ χρόνο - και για οικονομικούς λόγους ας επιτρέπεταιη χρήση των καταχωρητών και σαν 8 και σαν 16 bits.

Τώρα που και η μνήμη είναι φθηνότερη θα πρέπει να μπορεί ο επεξεργαστής μας να “δει”περισσότερα από 64 ΚB - έστω 1 ΜB το πολύ. Αλλά 1 ΜB σημαίνει ότι κάθε διεύθυνσηείναι 20 bits, ενώ οι καταχωρητές μας είναι όλοι των 16 bits. Να πάμε τους καταχωρητέςμας στα 32 bits θα ήταν υπερβολικό αφού κανείς δεν χρειάζεται τόση μνήμη. Ναχρησιμοποιήσουμε έναν καταχωρητή των 20 bits δεν θα ταιριάζει με την υπόλοιπηαρχιτεκτονική.

Page 111: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 111

Ας έχουμε λοιπόν μόνον 16 bits για όλους τους καταχωρητές μας, με την διαφορά ότι θαχρησιμοποιήσουμε έναν καταχωρητή για να πάρουμε τα πρώτα 16 από τα 20 bits τηςδιευθύνσεως μνήμης (ολίσθηση προς τα αριστερά κατά 4 bits) και έναν καταχωρητή γιανα πάρουμε 16 bits, που προστίθενται στα προηγούμενα μετά την ολίσθηση, για ναπάρουμε την τελική διεύθυνση των 20 bits. Κάθε φορά αυξάνεται κατάλληλα ο δεύτεροςκαταχωρητής για να πάρουμε την επόμενη εντολή.

Το πρόβλημα που δημιουργείται είναι ότι ο επεξεργαστής “βλέπει” κάθε στιγμή μόνον 64Κ από το σύνολο του 1 Μ της μνήμης, εκτός αν πρώτα αλλάζει και ο πρώτοςκαταχωρητής, κάτι που δεν πρέπει να γίνεται συχνά, γιατί καθυστερεί η εκτέλεσηπρογραμμάτων. Έτσι έχουμε χωρισμό της μνήμης σε τμήματα (segments), με τον πρώτοκαταχωρητή να είναι ο Καταχωρητής Τμήματος (Segment) και τον δεύτερο οΚαταχωρητής Μετατόπισης (Οffset). Αλλά, ποιος θα γράψει προγράμματα με κώδικαμεγαλύτερο των 64 Κ; Και επί τέλους για να μπορούμε να έχουμε πρόσβαση σε πολλάδεδομένα, ας δημιουργήσουμε δύο ακόμα τμήματα για δεδομένα και ένα για Σωρό(Stack). Επιπρόσθετα θα μπορούμε να λέμε ότι είναι εύκολο να βάζουμε κάθε λογικήενότητα του προγράμματος του χρήστη σε διαφορετικό τμήμα και να εναλλασσόμαστεαπό το ένα τμήμα στο άλλο με σχετική ευκολία.

Υπάρχουν τώρα και αρκετοί χρήστες που κάνουν πολύπλοκους μαθηματικούςυπολογισμούς (π.χ. λογιστικά φύλλα) και είναι διατεθειμένοι να πληρώσουν για τηνπολλαπλάσια ταχύτητα που θα τους δοθεί, εάν οι αντίστοιχες απαιτούμενες εντολέςενσωματωθούν σε ένα ειδικό συν-επεξεργαστή (δεν υπάρχει χώρος στο ίδιοολοκληρωμένο), που να δουλεύει στενά συνδεδεμένος με τον επεξεργαστή μας. Για αυτόκαι ο συνδυασμός τους ονομάζεται Σφιχτής Σύνδεσης (Tightly Coupled). Λόγω κόστουςόμως, αυτή η δυνατότητα προσφέρεται μόνον σαν πρόσθετη επιλογή στους πελάτες μας.

Κάπως έτσι λέγεται από ορισμένους ότι δημιουργήθηκε ο γνωστός μας 8086/8 με τονμαθηματικό συνεπεξεργαστή 8087 της INTEL, που χρησιμοποιήθηκε στον πασίγνωστοπλέον ΙΒΜ ΡC. Ο 8086 χρησιμοποιεί περίπου 30.000 τρανζίστορ.

7.4.3 68000

Η τεχνολογία όμως συνεχίζει τον δρόμο της. ποία είναι τα μειονεκτήματα στοπροηγούμενο σχέδιό μας;

Το πρώτο μειονέκτημα είναι ότι ο επεξεργαστής χρησιμοποιεί πολύ συχνά την μνήμη καιγια αυτό καθυστερεί (ένας από τους βασικούς κανόνες σχεδιασμού επεξεργαστών). Αςτοποθετήσουμε λοιπόν μερικούς καταχωρητές δεδομένων. Αφού είναι ενσωματωμένοιστον επεξεργαστή, η πρόσβαση στα περιεχόμενά τους είναι ταχύτατη. Πόσους όμως; 16καταχωρητές δεδομένων πρέπει να είναι αρκετοί. Αλλά όταν θέλουμε για παράδειγμα ναπροσθέσουμε το περιεχόμενο του καταχωρητή 6 με το περιεχόμενο του καταχωρητή 4,χρειαζόμαστε να έχουμε εντολές με δύο διευθύνσεις και όχι μία όπως μέχρι τώρα (όπου τοδεύτερο δεδομένο ήταν πάντοτε στον συσσωρευτή). Με την αποφυγή χρήσης τουσυσσωρευτή σαν ενδιάμεσο στάδιο για πράξεις της παραπάνω μορφής, απαιτούνταιλιγότερες εντολές, άρα κερδίσαμε σε ταχύτητα και για αυτόν τον λόγο.

Page 112: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 112

Το δεύτερο μειονέκτημα έγκειται στο ότι επειδή υπήρχε πολλή μνήμη (1 Μb), οιπρογραμματιστές γράφουν μεγαλύτερα προγράμματα και μάλιστα σε γλώσσες ανωτέρουεπιπέδου, που δημιουργούν μέσω των Compilers που δεν είναι τόσο βελτιωμένοι και τωνπολλών διαδικασιών, ακόμα πιο μεγάλο κώδικα. Τα 64 Κ δεν είναι πλέον αρκετά. Αςκάνουμε όλους τους καταχωρητές μας 32 bits, καταργώντας πλέον τα τμήματα(segments).

Όλα φαίνονται εν τάξει, αλλά όταν καθόμαστε να κωδικοποιήσουμε τα παραπάνω σεεντολές, θέλουμε περισσότερα από 16 bits για την πλειοψηφία των εντολών. Κάνονταςαρκετά πειράματα με διάφορα προγράμματα, παρατηρούμε ότι οι καταχωρητές τουεπεξεργαστή μας κρατούν κατά μέσον όρο την μία χρονική στιγμή διευθύνσεις μνήμης καιτην άλλη δεδομένα. Οι δε απαιτούμενες λειτουργίες είναι διαφορετικές για τις διευθύνσειςμνήμης (πρόσβαση), σε σχέση με εκείνες για τα δεδομένα (π.χ. πρόσθεση). Εάνδιαιρέσουμε τους καταχωρητές μας σε Καταχωρητές Διευθύνσεων και ΚαταχωρητέςΔεδομένων, μπορούμε να κωδικοποιήσουμε τις πιο συχνά χρησιμοποιούμενες εντολές σε16 bits, χάνοντας ελάχιστα σε ταχύτητα. Έτσι μπορεί να έχουμε εντολές του τύπου:“Διάβασε από την διεύθυνση μνήμης που δείχνει ο Καταχωρητής Διεύθυνσης 4 καιαποθήκευσε το περιεχόμενό της στον Καταχωρητή Δεδομένων 2”.

Αυτές όμως οι λειτουργίες είναι εξαιρετικά πολύπλοκες, για να πραγματοποιηθούν σευλικό σε ένα βήμα. Αφού όμως τις θέλουμε διαθέσιμες σε μία εντολή, θα τοποθετήσουμεμία ROM στον επεξεργαστή μας. Όποτε ζητάμε την εκτέλεση μίας τέτοιας εντολής, οεπεξεργαστής μας θα λειτουργεί σαν Interpreter, εκτελώντας το σύνολο των απαιτουμένωνλειτουργιών σαν υπορουτίνα μέσα από την ROM. Αυτή το σύνολο των μικροσκοπικώνυπορουτινών ονομάζεται Μικροκώδικας (Microcode). Έτσι μπορούμε τώρα να βάλουμεκαι εξαιρετικά πολύπλοκες εντολές.

Αυτός ο επεξεργαστής είναι ο 68000, με 70.000 περίπου τρανζίστορ. Χρησιμοποιήθηκεκατά κόρον στους πρώτους Mac της ΑPPLE, Atari ST της ATARI και Amiga τηςCOMMODORE.

7.4.4 T800

Η τεχνολογία όμως και ο ανταγωνισμός δεν μένουν στάσιμοι. Έτσι πρέπει ναξανακοιτάξουμε το προηγούμενο σχέδιο και να δούμε, εάν μπορούμε να βελτιώσουμεκάτι από αυτό.

Μετά από μία προσεκτική ματιά παρατηρούμε ότι οι διάφοροι Compilers δεν κάνουνσωστή χρήση όλων αυτών των πολύπλοκων “έξυπνων” εντολών που φτιάξαμε. Μάλιστα οCompiler της PASCAL χρησιμοποιεί διαφορετικό υποσύνολο εντολών από τον Compilerτης COBOL. Επομένως δεν είναι οι compilers η ρίζα του προβλήματος. Από ότι φαίνεταιένας επεξεργαστής που προσπαθεί να δώσει μία γενική λύση σε οποιοδήποτε πρόβλημα,καταντάει στο να δώσει παντού μία μέτρια λύση.

Αλλά και οι εντολές που χρησιμοποιούν όλοι οι compilers είναι ακριβώς αυτές, πουεκτελούν λειτουργίες μεταξύ των διαφόρων καταχωρητών. Και αυτές οι εντολές δεν

Page 113: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 113

εκτελούνται πολύ γρήγορα, επειδή είναι γραμμένες σε μικροκώδικα και όχιπραγματοποιημένες απ’ ευθείας σε υλικό (hardware), λόγω της πολυπλοκότητάς τους. Γιααυτό και οι διαδικασίες (procedures) παίρνουν πολύ χρόνο για να εκτελεσθούν, αφούμόλις τοποθετηθούν τα ενδιαφέροντα δεδομένα σε καταχωρητές, καλείται μία άλληδιαδικασία. Ως συνέπεια αυτού του γεγονότος, τα περιεχόμενα των καταχωρητών πρέπεινα αποθηκευθούν στην μνήμη, να φορτώσουμε τους καταχωρητές με τα καινούργιαδεδομένα από την μνήμη, κ.ο.κ. Επιστρέφοντας από μία διαδικασία σε μία άλλη, όλεςαυτές οι ενέργειες πρέπει να επαναληφθούν (αντίστροφα).

Ένα ακόμα σφάλμα είναι η ιδέα ότι όλα τα ενδιαφέροντα προγράμματα Η/Υ μπορούν ναδιαιρεθούν σε διαδικασίες (procedures). Στην πραγματικότητα, οι διαδικασίεςχρησιμοποιούνται, όχι γιατί είναι χρήσιμες στον επεξεργαστή, αλλά επειδή είναι χρήσιμεςστον προγραμματιστή. Υπάρχει μία καλύτερη διαίρεση από την διαδικασία: Η Διεργασία(Process).

Μια διεργασία έχει τα δικά της τοπικά δεδομένα, που παραμένουν αμετάβλητα κατά τηνεκτέλεση των διαφόρων ενεργειών που συνθέτουν την διεργασία (εκτός εάν ο κώδικαςπου εκτελείται τα αλλάξει με ξεκάθαρο και συγκεκριμένο τρόπο). Επί πλέον είναι δυνατόνοι διεργασίες να κατανεμηθούν πολύ πιο εύκολα από τις διαδικασίες μεταξύ πολλώνεπεξεργαστών, ώστε να υπάρξει πραγματική επιτάχυνση στην συνολική απόδοση τουυπολογιστικού συστήματος.

Για να αποφευχθεί οποιοδήποτε σχετικό πρόβλημα, συνεργαζόμενες διεργασίες μπορούννα επικοινωνούν μεταξύ τους (π.χ. για να στείλουν ή να παραλάβουν κάποια δεδομένα)μόνον με κάποια συγκεκριμένη μορφή εισόδου / εξόδου. Επίσης, όταν μία διεργασίαπεριμένει δεδομένα από κάπου αλλού, θα πρέπει ο αντίστοιχος επεξεργαστής να εκτελείκάποια άλλη, ώστε να αυξάνεται περισσότερο η ταχύτητα του Η/Υ.

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

Άρα δεν χρειαζόμαστε τους πολλούς καταχωρητές που είχαμε πριν και οι εντολές θα είναιελάχιστες, με την ιδέα ενός κεντρικού συσσωρευτή, όπως στο αρχικό μας σχέδιο. Επειδήόμως προηγουμένως ο συσσωρευτής δούλευε πάντοτε με την κύρια μνήμη, εμείς θααλλάξουμε την ιδέα αυτήν, ώστε όλοι οι διαθέσιμοι συσσωρευτές να είναι οργανωμένοισαν μία Σωρός (Stack). Έτσι, μία πρόσθεση δύο αριθμών περιλαμβάνει την πρόσθεσηενός συσσωρευτή (κορυφή της Σωρού) σε έναν άλλον (αμέσως μετά την κορυφή τηςΣωρού), βάζοντας το αποτέλεσμα στον πρώτο (κορυφή). Οι εντολές load και store, τώραείναι απλά push και pop. Άρα και η πολυπλοκότητα του σχεδίου του επεξεργαστήμειώνεται δραματικά και μένει χώρος για πιο ενδιαφέροντα πράγματα.

Αλλαγή ανάμεσα σε διεργασίες (processes) είναι πολύ γρήγορη - αφού όλα τα δεδομέναείναι στην μνήμη δεν χρειάζονται οι αναρίθμητες load και store - και η εκτέλεσηδιαδικασιών (procedures) επιταχύνεται για τον ίδιο λόγο. Το ίδιο και οι διακοπές(interrupts).

Page 114: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 114

Και αφού πλέον δεν χρειάζεται να περιληφθούν σε μεγάλο βαθμό οι διευθύνσεις μνήμηςκατά την κωδικοποίηση των εντολών, έχουμε πολύ χώρο διαθέσιμο για να μικρύνουμε τομήκος της εντολής και να κάνουμε τον κώδικα πιο συμπυκνωμένο, αυξάνοντας ακόμαπερισσότερο τη ταχύτητα του επεξεργαστή μας. Άρα έχουμε μία μηχανή των 32 bits πουεκτελεί περιορισμένο αριθμό εντολών, αλλά είναι τρομερά γρήγορη (RISC).

Και αφού έχουμε αρκετό χώρο και απλή αρχιτεκτονική, μπορούμε να εισάγουμε μερικέςπολύπλοκες εντολές με την μορφή μικροκώδικα, χωρίς αξιοσημείωτη μείωση στηνταχύτητα. Μπορούμε ακόμα να έχουμε εντολές για χρονοδρομολόγηση της εκτέλεσηςδιεργασιών, πέρασμα μηνυμάτων από την μία στην άλλη, χειρισμό γεγονότων (και άραπυρήνα λειτουργικού συστήματος πραγματικού χρόνου), πολλαπλασιασμό, διαίρεση, κλπ.

Τα παραπάνω χαρακτηριστικά συνθέτουν τον Transputer T800 της INMOS, που ο κυρίωςεπεξεργαστής είναι μόλις το 1/6 του 68030 (για ίδια τεχνολογία) και συμπεριλαμβάνει σταπερίπου 200.000 τρανζίστορ του έναν μαθηματικό συνεπεξεργαστή (FPU) και 4 ΚBRAM. Μπορεί να “δει” συνολικά 4 GB μνήμης και είναι τόσο γρήγορος, ώστε ηπρόσθεση δύο πραγματικών αριθμών διπλού μήκους (64 bits) να απαιτεί μόλις 233 ns(T800-30). Επιπρόσθετα, μπορεί κανείς να προσθέσει σε σχήμα πλέγματος όσους T800θέλει, για να κατασκευάσει έναν πραγματικά παράλληλο Η/Υ.

7.5 Αρχιτεκτονικές RISC

Αρχικά όλοι οι Η/Υ είχαν επεξεργαστές τύπου RISC, υπό την έννοια ότι δεν υπήρχεκάποιος ενσωματωμένος διερμηνέας ώστε να διερμηνεύει κάθε εντολή γλώσσας μηχανήςσαν ένα σύνολο από μικροεντολές. Ο προγραμματιστής έπρεπε να γράφει το πρόγραμμάτου σε επίπεδο μικροεντολών.

Με την εμφάνιση της σειρά IBM 360 (1964) όλα αυτά άλλαξαν, με την υιοθέτηση τουμικροπρογραμματισμού και την ενσωμάτωσή του στους μικροεπεξεργαστές. Έτσιγεννήθηκαν οι πρώτοι CISC. Σημαντικό παράγοντα για αυτήν την επιτυχία έπαιξε και τογεγονός ότι η κύρια μνήμη ήταν κατά πολύ βραδύτερη σε ταχύτητα από τον επεξεργαστή.

Στην δεκαετία του '70 όμως, η πρόοδος της τεχνολογίας δημιούργησε μνήμες που δενήταν πλέον τόσο αργές σε σχέση με τον επεξεργαστή, ενώ η συγγραφή, αποσφαλμάτωσηκαι συντήρηση του μικροκώδικα γίνονταν όλο και πιο πολύπλοκη και δαπανηρή. Ηδιάθεση ισχυρότερων Η/Υ, οδήγησε στην δημιουργία πολυπλοκοτέρων προγραμμάτωνκαι οι προγραμματιστές εφαρμογών ζητούσαν ακόμα μεγαλύτερες ταχύτητες στηνεκτέλεση των προγραμμάτων τους από το υλικό.

Page 115: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 115

Όλα αυτά οδήγησαν αρκετούς ερευνητές στην μελέτη του κώδικα που δημιουργούνταναπό "πραγματικά" προγράμματα, ώστε να ανακαλύψουν ποια κατηγορία εντολώνεκτελούνταν πιο συχνά. Με τον τρόπο αυτό, θα ήταν δυνατόν να σχεδιασθούνεπεξεργαστές, οι οποίοι τις περισσότερες φορές θα εκτελούσαν ταχύτερα τα προγράμματατων χρηστών. Οι μελέτες αυτές κατέληξαν στα εξής μη αναμενόμενα αποτελέσματα:

1. Κατά 85% τα περισσότερα προγράμματα αποτελούνται από αναθέσειςτιμών (assignment), προτάσεις τύπου if-then-else και κλήσεις διαδικασιών.

2. Το 80% όλων των αναθέσεων είναι της μορφής:

<μεταβλητή> := <τιμή>,

όπου <τιμή> είναι μία σταθερά, μεταβλητή ή στοιχείο πίνακα.Παραστάσεις του τύπου a + b, για το δεξιό μέρος της παραπάνω σχέσης(δηλαδή όχι απλές αναθέσεις) αντιπροσωπεύουν μόλις το 15% όλων τωναναθέσεων.

3. Το 41% των διαδικασιών δεν έχουν καθόλου παραμέτρους, ενώ μόλις το8% έχουν πέντε ή και περισσότερες παραμέτρους.

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

Έτσι ξαναγεννήθηκε η ιδέα της σημαντικής συντόμευσης του μικροπρογραμματισμού απότον επεξεργαστή και η δημιουργία των επεξεργαστών τύπου RISC. Το κέρδος από τηνσυντόμευση αυτή είναι ταχύτητα κατά 10 περίπου φορές ανώτερη των αντιστοίχων CISC.

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

7.5.1 Αρχές Σχεδίασης Επεξεργαστών RISC

Ο πρώτος - επίσημα - επεξεργαστής τύπου RISC ήταν ο RISC I, από το Πανεπιστήμιοτου Berkeley (1980) και ο MIPS από το Πανεπιστήμιο του Stanford (1981). Παρά τιςοποιεσδήποτε διαφορές υπάρχουν αρκετές ομοιότητες και για αυτό θα ξεκινήσουμε με τηνπαρουσίαση των αρχών σχεδίασης για επεξεργαστές τύπου RISC:

1. Ανάλυση εφαρμογών για εύρεση των σημαντικότερων λειτουργιών, πουπρέπει να ενσωματωθούν στον επεξεργαστή.

Page 116: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 116

2. Σχεδίαση μίας διαδρομής δεδομένων, που να είναι η βέλτιστη για τιςσημαντικότερες λειτουργίες.

3. Σχεδίαση εντολών που πραγματοποιούν τις παραπάνω λειτουργίες,χρησιμοποιώντας την διαδρομή δεδομένων που σχεδιάσαμε.

4. Προσθήκη επιπλέον εντολών, μόνον εφ' όσον δεν επιβραδύνουν τηνταχύτητα του επεξεργαστή.

5. Επανάληψη των παραπάνω για άλλους πόρους, όπως η λανθάνουσα μνήμη,η μονάδα διαχείρισης μνήμης, ο συνεπεξεργαστής, κλπ.

7.5.2 Προσπέλαση στην Κύρια Μνήμη και Άλματα

Επομένως ο κύριος στόχος είναι η επίτευξη της συντομότερης διαδρομής δεδομένων, άραμέγιστη ταχύτητα εκτέλεσης κάθε μιας από τις βασικές εντολές, οι οποίεςολοκληρώνονται σε έναν και μόνο κύκλο διαδρομής δεδομένων. Κάτι τέτοιο ίσως είναιδυνατόν όταν τα δεδομένα τα οποία επιθυμούμε να χρησιμοποιήσει η συγκεκριμένηλειτουργία βρίσκονται σε καταχωρητές του επεξεργαστή. Στην πράξη βέβαια πάρα πολλάαπό αυτά θα βρίσκονται στην κύρια μνήμη. Για να μεταφερθούν από αυτήν σε κάποιονκαταχωρητή απαιτούνται περισσότεροι του ενός κύκλοι διαδρομής δεδομένων, μέσωκάποιας κατάλληλης εντολής LOAD (ή STORE για το αντίστροφο). Η λύση στοπρόβλημα αυτό είναι η υιοθέτηση δύο τεχνασμάτων.

Το πρώτο τέχνασμα είναι ότι δεν υπάρχουν διευθυνσιοδοτήσεις με αναφορά στην κύριαμνήμη. Έτσι δεν υπάρχει καθυστέρηση σε αυτόν τον τομέα.

Φυσικά το πρόβλημα δεν λύνεται τελείως, επειδή κάποτε θα χρειασθεί προσπέλαση στηνκύρια μνήμη (μέσω μίας LOAD ή STORE). Εδώ έρχεται αρωγός το δεύτερο τέχνασμα,που είναι η διοχέτευση εντολών. Δηλαδή δεν επιμένουμε στο να εκτελείται πλήρως μίαεντολή σε έναν κύκλο, αλλά να ξεκινάει κάθε εντολή στον αμέσως επόμενο κύκλο.Δηλαδή, εάν έχουμε ν διαδοχικές εντολές, θέλουμε να ξεκινήσουν στους επόμενους νκύκλους, ανεξάρτητα από τον χρόνο ολοκλήρωσής τους.

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

Το μόνο πρόβλημα που απομένει είναι να εξασφαλίσει ο μεταγλωττιστής, ότι η αμέσωςεπόμενη προς εκτέλεση εντολή, δεν χρησιμοποιεί το περιεχόμενο του καταχωρητή πουχρησιμοποίησε η αμέσως προηγούμενη LOAD, δεδομένου ότι ακόμα δεν περιέχει τοσωστό δεδομένο, αφού η LOAD δεν ολοκληρώθηκε. Εάν μία τέτοια εντολή δεν μπορεί ναβρεθεί, ο μεταγλωττιστής παρεμβάλει μία NOP (No OPeration), σπαταλώντας έναν κύκλογια να δοθεί χρόνος στην ολοκλήρωση της παραπάνω LOAD.

Οι περισσότεροι επεξεργαστές τύπου RISC, επιπρόσθετα έχουν έναν μηχανισμό (σευλικό) για κλείδωμα του υλικού (hardware interlock), για την σπάνια περίπτωση της

Page 117: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 117

επιχείρησης χρησιμοποίησης του περιεχομένου ενός κατάχωρητή, πριν ολοκληρωθεί ηφόρτωσή του με μία LOAD (ή η αποθήκευσή του με μία STORE).

Παρόμοιο πρόβλημα μπορεί να δημιουργηθεί και από άλματα υπό συνθήκη. Ηεφαρμοζόμενη λύση είναι παρόμοια - τα καθυστερούμενα άλματα (delayed jumps). Εδώ, ηεντολή που ακολουθεί μία JUMP εκτελείται πάντοτε, ανεξάρτητα από το εάν το άλματελικά πραγματοποιείται ή όχι, με την ελπίδα ότι το άλμα δεν θα πραγματοποιηθεί τελικά.Είναι επομένως δουλειά του μεταγλωττιστή να τοποθετήσει μία κατάλληλη εντολή μετάαπό ένα JUMP ή μία NOP, ώστε να μην δημιουργηθεί κανένα πρόβλημα.

7.5.3 Κατάχωρητές και Κλήση Διαδικασιών με Παραμέτρους

Ένα ακόμη ενδιαφέρον πρόβλημα είναι η κλήση διαδικασιών. Συνήθως τα δεδομένα πουαπαιτούνται για να εκτελεσθεί μία διαδικασία είναι:

1. Καθολικές Μεταβλητές

2. Εισερχόμενες Παράμετροι

3. Τοπικές Μεταβλητές

4. Εξερχόμενοι Παράμετροι

Εάν δε έχουμε διαδικασίες, οι οποίες καλούν άλλες διαδικασίες, είναι φανερό ότι θααπαιτείται μεγάλη κυκλοφορία από / προς την κύρια μνήμη, με αποτέλεσμα τηνεπιβράδυνση στην ταχύτητα εκτέλεσης του προγράμματος.

Η πρώτη ικανοποιητική λύση δόθηκε από τους σχεδιαστές του RISC I και έκτοτεχρησιμοποιείται σε όλους τους επεξεργαστές τύπου RISC. Αυτή ονομάζεταιΕπικαλυπτόμενα Παράθυρα Κατάχωρητών (Overlapping Register Windows). Πιοσυγκεκριμένα, ο επεξεργαστής έχει πολύ μεγάλο πλήθος από κατάχωρητές (π.χ. 512),αλλά κάθε στιγμή μόνον ένα υποσύνολο - π.χ. 32 - είναι ορατό.

Οι 32 αυτοί κατάχωρητές διαιρούνται σε τέσσερις διαφορετικές ομάδες, συνήθως τουιδίου πλήθους (άρα 8 ανά ομάδα) και έχουν όλοι το ίδιο μέγεθος. Όπως φαίνεται και απότο Σχ. 7.1, οι πρώτοι 8 κατάχωρητές χρησιμοποιούνται για καθολικές (global) μεταβλητέςκαι δείκτες. Οι επόμενοι 8 κατάχωρητές χρησιμοποιούνται για τις εισερχόμενεςπαραμέτρους. Άρα δεν απαιτείται Σωρός για το πέρασμά τους στην διαδικασία. Στηνσπάνια περίπτωση που δεν είναι αρκετοί (περισσότερες των 8 εισερχόμενες παράμετροι ήμέγεθος παραμέτρων πολύ μεγάλο), το πέρασμα παραμέτρων γίνεται με τον συμβατικότρόπο της τοποθέτησής τους στην Σωρό. Το ίδιο ισχύει και για τις τοπικές παραμέτρους,όπως και για τις εξερχόμενες παραμέτρους.

Page 118: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 118

Σχ. 7.1 Η Ομάδα των 32 Ορατών (κάθε φορά) Καταχωρητών

Τι γίνεται όμως κατά την κλήση μίας διαδικασίας από μία άλλη; Εδώ φαίνεται η ισχύς τηςπαραπάνω στρατηγικής. Υπάρχει ένας ακόμα ειδικός καταχωρητής, ονόματι CWP(Current Window Pointer) - Δείκτης Τρέχοντος Παραθύρου, ο οποίος δείχνει πάντοτεστο τρέχον παράθυρο καταχωρητών, που ορίζεται σαν το σύνολο των τριών τελευταίωνομάδων που είδαμε παραπάνω. Κάθε φορά που γίνεται κλήση μίας διαδικασίας, οικαταχωρητές που έπαιζαν τον ρόλο των παραμέτρων εξόδου, γίνονται καταχωρητέςπαραμέτρων εισόδου για την καινούργια διαδικασία, με επικάλυψη όπως φαίνεται από τοΣχ. 7.2. Έτσι, μειώνεται κατά πολύ η χρήση Σωρού, αλλά και η χρήση μνήμης, μεσημαντικό κέρδος στην ταχύτητα εκτέλεσης.

Page 119: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 119

Σχ. 7.2 Μέθοδος Επικαλυπτόμενων Παραθύρων Καταχωρητών

Εάν βέβαια το βάθος των διαδοχικών κλήσεων γίνει τόσο μεγάλο, ώστε να γεμίσει τοσύνολο των παραπάνω καταχωρητών, ο CWP θα αυξηθεί πέρα από το επιτρεπτό όριο,δημιουργώντας μία παγίδα (trap). Ο χειριστής της παγίδας αποθηκεύει το πρώτοπαράθυρο καταχωρητών στην μνήμη, για να δημιουργηθεί ένα ελεύθερο παράθυροκαταχωρητών, κ.ο.κ.

7.6 Άλλοι Επεξεργαστές

Εκτός από τους παραπάνω υπάρχουν ακόμα πάρα πολλοί επεξεργαστές. Από αυτούς θαπαρουσιασθούν σε συντομία μόνον ορισμένοι της INTEL, επειδή έγιναν πασίγνωστοι απότην εμπορική επιτυχία που είχαν ως η “καρδιά” των διαφόρων μοντέλων PC της IBM καισυμβατών, και όχι επειδή παρουσίασαν κάποιο ιδιαίτερα σημαντικό χαρακτηριστικό ωςπρος τον σχεδιασμό τους από τους άλλους.

7.6.1 80286

Ο 8086 (και ο 8088) ήταν ο σταθμός της εξέλιξης των γνωστών πλέον επεξεργαστώνγενικής χρήσης της INTEL. Αποτελούσε όμως τεχνολογία του τέλους της δεκαετίας του‘70. Με το πέρασμα όμως του χρόνου, δημιουργήθηκε η ανάγκη για έναν ταχύτερο και

Page 120: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 120

καλύτερο επεξεργαστή. Αν και το προγραμματιστικό μοντέλο του 8086, ποτέ δενθεωρήθηκε από τα καλύτερα, η επένδυση επάνω του σε λογισμικό ήταν τέτοια, που δενμπορούσε να αγνοηθεί. Έτσι η INTEL σχεδίασε τον 80286 - έναν επεξεργαστή των 16 bits- όπου οι δίαυλοι διευθύνσεων και δεδομένων είναι αποπλεγμένοι για απλότητα καιταχύτητα.

Σχ. 7.3 Διάγραμμα Εσωτερικής Αρχιτεκτονικής του 80286

Όπως φαίνεται και από το Σχ. 7.3, ο 80286 τέσσερις μονάδες επεξεργασίας αντί των δύοτου 8086. Η Μονάδα Διαύλου (BU = Bus Unit) εκτελεί όλες τις αναγνώσεις και εγγραφέςαπό/προς την μνήμη, τις θύρες εισόδου/εξόδου και συνεργάζεται με τον συν-επεξεργαστή(80287). Εάν δεν χρησιμοποιεί τον δίαυλο για άλλους σκοπούς, φορτώνει προκαταβολικά(με την ελπίδα ότι θα είναι αναγκαία αμέσως μετά) bytes εντολών, που τα βάζει στηνΟυρά (Queue). Η τελευταία χωράει έως και 6 bytes. Εάν (λόγω π.χ. κάποιου JUMP υπόσυνθήκη) δεν χρειάζονται αυτά τα bytes, η Ουρά καθαρίζεται και αρχίζει να γεμίζει απότην καινούργια διεύθυνση μνήμης.

Η Μονάδα Εντολών (ΙU = Instuction Unit) αποκωδικοποιεί έως και τρεις εντολές και τιςφυλάσσει σε μία ξεχωριστή ουρά, από όπου μπορούν να παραληφθούν από την ΜονάδαΕκτελέσεως. Αυτός ο σχεδιασμός αποτελεί ένα παράδειγμα της τεχνικής που είναι γνωστήμε το όνομα Pipelining, με κεντρική ιδέα να υπάρχει πάντοτε απασχόληση για τονεπεξεργαστή.

Η Μονάδα Εκτελέσεως (EU - Execution Unit) εκτελεί εντολές σειριακά όπως τις παίρνειαπό την Μονάδα Εντολών.

Τέλος η Μονάδα Διευθύνσεων (ΑU - Address Unit) υπολογίζει τις φυσικές διευθύνσεις,που αποστέλλονται για τα περαιτέρω στην Μονάδα Διαύλου.

Το χαρακτηριστικό γνώρισμα του 80286 είναι ότι λειτουργεί με δύο δυνατούς τρόπους. Οπρώτος ονομάζεται Real Address Mode. Σε αυτήν την περίπτωση ο 80286 συμπεριφέρεταισαν ένας 8086, με μέγιστη διαθέσιμη μνήμη 1 ΜByte.

Page 121: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 121

Στην δεύτερη περίπτωση - Protected Virtual Address Mode ή PVAM- η ΜονάδαΔιευθύνσεων του 80286 λειτουργεί σαν μία πλήρη ΜΜU. Τότε χρησιμοποιούνται οιπλήρεις δυνατότητες του επεξεργαστή, με αποτέλεσμα να μπορεί να χρησιμοποιεί 24 bitsγια διευθύνσεις "βλέποντας" συνολικά 16 Μb και να προσφέρει όλα σχεδόν τααπαιτούμενα χαρακτηριστικά προστασίας της μνήμης για περιβάλλον πολυεπεξεργασίας,που αναφέρθηκαν σε προηγούμενο κεφάλαιο.

Μόλις ξεκινήσει ο 80286 λειτουργεί σε Real Address mode, που συνήθως απαιτείται γιανα αρχικοποιηθούν κάποια περιφερειακά και το σύστημα. Στην συνέχεια συνήθωςλειτουργεί με PVAM τρόπο. Εδώ η κάθε φυσική διεύθυνση είναι 24 bits, αλλά οπρογραμματιστής βλέπει μία εικονική μνήμη και άρα εικονικές διευθύνσεις. Κάθε μίαεικονική διεύθυνση αποτελείται από δύο αριθμούς των 16 bits: Έναν Επιλογέα (Selector)και μία Μετατόπιση (Offset).

Χωρίς να μπούμε στις λεπτομέρειες του πολύπλοκου τρόπου υπολογισμού της φυσικήςδιεύθυνσης, αρκεί να πούμε ότι ο 80286 στο PVAM mode, “βλέπει” έως και 8.192εικονικά τμήματα (segments) μνήμης, όπου το κάθε ένα είναι το πολύ 64 ΚB. Επί πλέονυπάρχουν τέσσερα επίπεδα προστασίας της μνήμης.

7.6.2 80386

Ο 80286 γνώρισε μεγάλη επιτυχία σαν ένας ταχύτερος 8086. Ο δίαυλος διευθύνσεων των24 bits, ο δίαυλος δεδομένων των 16 bits και η χρήση τμημάτων το πολύ 64 ΚB, δεν τονέκαναν ιδιαίτερα δημοφιλή για λειτουργικά συστήματα πολυπρογραμματισμού όπως τοUNIX, αν και υπήρξαν εξαιρέσεις (XENIX, SCO-UNIX). Το κενό αυτό ήρθε νασυμπληρώσει ο 80386.

Σχ. 7.4 Διάγραμμα Εσωτερικής Αρχιτεκτονικής του 80386

Η πρώτη σημαντική διαφορά του 80386 με τους προκατόχους του έγκειται στο ότι είναιένας πλήρης μικροεπεξεργαστής των 32 bits, αφού και ο δίαυλος διευθύνσεων και οδίαυλος δεδομένων είναι πλέον εύρους 32 bits, ενώ και όλοι οι καταχωρητές του έχουνφθάσει σε αυτό το μέγεθος. Όλες οι μονάδες που τον αποτελούν (βλ. Σχ. 7.4), λειτουργούνπαράλληλα αυξάνοντας περισσότερο την ταχύτητά του. Η μέγιστη φυσική μνήμη είναι

Page 122: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 122

τώρα 4 GB (= 232), ενώ η μέγιστη εικονική μνήμη είναι 64 TB (= 246). Εξομοιώνει πλήρωςτον 80286, αν και το μέγεθος του κάθε τμήματος (segment) μνήμης έχει μεγαλώσει από 64ΚB, σε 4 GB. Επιτρέπει όμως και την χρήση Σελίδων μνήμης μεγέθους 4 KB. Κατά ταάλλα είναι όμοιος με τον 80286 και φυσικά συμβατός και με τον 8086.

7.6.3 80486

Ο 80386 αποδείχθηκε πολύ επιτυχημένος στις διάφορες εκδόσεις του. Όμως πίεση γιαέναν ταχύτερο επεξεργαστή και ο ανταγωνισμός, οδήγησαν στον 80486. Ο τελευταίος δεναποτελεί, παρά το τέλος της σειράς επεξεργαστών που στηρίχθηκαν στοπρογραμματιστικό μοντέλο του 8086. Ουσιαστικά είναι ένας ταχύς 80386 μαζί με ένανσυνεπεξεργαστή και 4 ΚB από λανθάνουσα μνήμη. Μη μπορώντας να προσφέρει τίποτεάλλο αυτό το σχέδιο, δημιουργήθηκαν οι λεγόμενες Overdrive παραλλαγές του μεκυριότεροι πλέον την DX4 στα 100 MHz.

Η βασική του ιδέα είναι ότι το υπόλοιπο σύστημα λειτουργεί στα 33 MHz, αλλάεσωτερικά λειτουργεί στα 100 ΜHz. Επομένως είναι 4 φορές ταχύτερος, εκτός από τιςπεριπτώσεις που χρειάζεται πρόσβαση στην κύρια μνήμη ή θύρες, οπότε εισάγεται κάποιακαθυστέρηση, αφού ο “έξω κόσμος” λειτουργεί στα 33 ΜΗz.

7.6.4 Pentium

O Pentium αποτελεί έναν ριζικό επανασχεδιασμό της προηγούμενης σειράςμικροεπεξεργαστών της INTEL, μια και στηρίζεται στην αρχή των επεξεργαστών RISC,με περισσότερα από 3 εκατομμύρια τρανζίστορ και 16 ΚB από λανθάνουσα μνήμη στοίδιο ολοκληρωμένο. Κυκλοφόρησε σε εκδόσεις από 75 - 133 ΜΗz. Την μεγάλη ταχύτητάτου επιτυγχάνει, όχι μόνον λόγω του ταχύτερου ρολογιού του, αλλά και λόγω της ύπαρξηςδύο pipeline ακεραίων, που επιτρέπουν την εκτέλεση δύο διαδοχικών εντολώνπαράλληλα, βάσει της ιδέας ότι συνήθως κάθε εντολή που εκτελείται, δεν εξαρτάταιάμεσα από το αποτέλεσμα της προηγούμενης.

Page 123: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 123

8. ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Ο όρος "Παράλληλη Επεξεργασία" αναφέρεται σε μία μεγάλη κατηγορία μεθόδων, πουπροσπαθούν να αυξήσουν την ταχύτητα επεξεργασίας, με το να εκτελούν περισσότερουςαπό έναν υπολογισμούς ταυτόχρονα. Όπως είναι δυνατόν κανείς να δει κάτω απόδιαφορετικά επίπεδα οποιανδήποτε κατηγορία υπολογισμού, έτσι μπορεί να δει και τηνπαράλληλη επεξεργασία. Για παράδειγμα, σε επίπεδο πύλης (gate) μπορεί να γίνειδιάκριση μεταξύ σειριακών αριθμητικών κυκλωμάτων και παράλληλων αριθμητικώνκυκλωμάτων, τα οποία επεξεργάζονται ταυτόχρονα πολλά bits των παραπάνω αριθμών.

Όλοι οι σύγχρονοι Η/Υ εμπεριέχουν κάποια μορφή παραλληλισμού. Χαρακτηριστικόπαράδειγμα αποτελεί το γεγονός ότι κάθε ΚΜΕ σήμερα περιέχει παράλληλα αριθμητικάκυκλώματα, που επιτρέπουν την εκτέλεση αριθμητικών πράξεων σε πλήρεις λέξεις(words) από δεδομένα. Γεννάται, συνεπώς, το ερώτημα ποιοι Η/Υ θεωρούνται σειριακοίκαι ποιοι παράλληλοι.

Γενικά έχει καθιερωθεί να θεωρείται ένας Η/Υ παράλληλος, εάν είναι δυνατόν ναεκτελέσει ταυτόχρονα περισσότερες από μία βασικές εντολές της ΚΜΕ του. Έχονταςόμως στην διάθεσή μας έναν παράλληλο Η/Υ, ο οποίος αποτελείται από ν σειριακούςεπεξεργαστές Ε, δεν σημαίνει ότι αυτομάτως αυξάνεται κατά ν φορές και η ταχύτηταεπεξεργασίας για κάθε πρόβλημα Π. Προκειμένου να επιτευχθεί μία τέτοια αύξηση στηνταχύτητα επεξεργασίας, απαραίτητες προϋποθέσεις είναι:

1. Να μπορεί να διαχωριστεί το αρχικό πρόβλημα Π, σε ν τουλάχιστονεπιμέρους προβλήματα Π1, Π2, ..., Πν, υποθέτοντας ότι κάθε ένα από αυτάέχει την ίδια πολυπλοκότητα με τα υπόλοιπα.

2. Κάθε ένα από τα επιμέρους προβλήματα είναι τελείως ανεξάρτητο από ταάλλα.

Είναι προφανές γιατί απαιτείται η πρώτη από τις παραπάνω προϋποθέσεις. Η αιτίαύπαρξης της δεύτερης όμως, ίσως δεν είναι και τόσο προφανής. Παρ’ όλ’ αυτά όμως είναιαναγκαία. Αυτό μπορεί να καταστεί σαφές από το παρακάτω παράδειγμα.

Page 124: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 124

Σχ. 8.1 Παράλληλος Η/Υ με Γραμμική Τοπολογία

Έστω ότι στον παράλληλο Η/Υ μας έχουμε ν σειριακούς επεξεργαστές και θέλουμε ναπάρουμε το άθροισμα από 2ν αριθμούς. Είναι προφανές ότι θα πρέπει να χωρίσουμε τουςαριθμούς σε ν ζευγάρια, κάθε ένα εκ των οποίων θα τοποθετηθεί σε έναν από τους νεπεξεργαστές. Αλλά ενώ ταυτόχρονα μπορούν να πραγματοποιηθούν ν προσθέσεις, ταμερικά αθροίσματα σε κάθε "μονό" επεξεργαστή θα πρέπει να μεταφερθούν στονγειτονικό "ζυγό" επεξεργαστή για το επόμενο βήμα, κ.ο.κ.

Είναι προφανές, ότι σε μία τέτοια περίπτωση απαιτείται χρόνος, όχι μόνον για επιμέρουςυπολογισμούς, αλλά και Χρόνος Επικοινωνίας (μεταφορά μερικών αθροισμάτων). Πολλέςφορές μάλιστα, ο χρόνος επικοινωνίας είναι μεγαλύτερος από τον χρόνο υπολογισμών.

Είναι όμως δυνατόν το πρόβλημα Π να είναι εκ φύσεως σειριακό και να μην μπορεί ναδιαιρεθεί σε επιμέρους ανεξάρτητα υποπροβλήματα. Σε αυτήν την περίπτωση η ύπαρξη /διάθεση ενός παράλληλου Η/Υ είναι άχρηστη.

Αντιθέτως η πρόσθεση δύο τετραγωνικών πινάκων Α και Β με νxν στοιχεία, σε ένανπαράλληλο Η/Υ με τοπολογία mesh (=τετραγωνικού πλέγματος) είναι πλήρωςπαραλληλοποιήσιμη, οδηγώντας σε αύξηση της ταχύτητας κατά ν.

Σε γενικές γραμμές είναι πολύ πιο δύσκολος ο προγραμματισμός παράλληλων Η/Υ, σεσχέση με τους σειριακούς συναδέλφους τους, επειδή θα πρέπει να είναι πλήρωςκατανοητά όχι μόνον τα ιδιαίτερα χαρακτηριστικά του συγκεκριμένου Η/Υ (π.χ.τοπολογία και ειδικές εντολές επικοινωνίας μεταξύ επεξεργαστών), αλλά και η φύση τουσυγκεκριμένου προβλήματος. Έτσι θα είναι δυνατόν το τελευταίο να περιγραφεί με τέτοιοτρόπο, ώστε να επιτυγχάνεται ο μεγαλύτερος δυνατός παραλληλισμός κατά την επίλυσήτου.

8.1 Τύποι Παράλληλων Η/Υ

Αν και έχουν προταθεί πολλοί τρόποι ταξινόμησης των διαφόρων Η/Υ, ανάλογα με τηνδομή ή την ιδιαίτερη συμπεριφορά τους, ο πιο δημοφιλής (και απλός) τρόπος ταξινόμησηςτους, είναι εκείνος που προτάθηκε από τον Michael J. Flynn. Άλλοι τρόποι ταξινόμησηςεστιάζονται στην μορφή σύνδεσης της κύριας μνήμης με τους επεξεργαστές και την

Page 125: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 125

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

8.1.1 Η Ταξινόμηση του Flynn

Σύμφωνα με αυτόν, κάθε επεξεργαστής "βλέπει" δύο οντότητες. Το ρεύμα εντολών(instruction stream) και το ρεύμα δεδομένων (data stream). Σε αυτήν την περίπτωση είναιδυνατόν να κατατάξουμε όλους τους υπάρχοντες Η/Υ σε τέσσερις βασικές κατηγορίες:

1. SISD: (Single Instruction, Single Data). Σε αυτήν την κατηγορία ανήκουνοι σειριακοί Η/Υ, δεδομένου ότι εκτελεί μία μόνον εντολή σε ένα δεδομένοανά κάθε χρονική στιγμή.

2. SIMD: (Single Instruction, Multiple Data). Παράλληλοι Η/Υ αυτής τηςκατηγορίας αποτελούνται από πολλούς επεξεργαστές, που εκτελούν τηνίδια εντολή σε κάθε χρονική στιγμή, αλλά σε διαφορετικά δεδομένα. Γιαπαράδειγμα, όλοι οι επεξεργαστές μπορεί να εκτελούν πρόσθεση, αλλά σεδιαφορετικά ζευγάρια αριθμών. Χαρακτηριστικά παραδείγματα αποτελούνο ICL DAP, η Connection Machine και ο MPP (=Massively ParallelProcessor).

3. MISD: (Multiple Instruction, Single Data). Ουσιαστικά οι Η/Υ μεδιοχέτευση (pipelining) μπορούν να θεωρηθούν ότι ανήκουν σε αυτήν τηνκατηγορία, εάν σαν δεδομένο στο οποίο επενεργούν θεωρηθεί ως διάνυσμα(vector). Π.χ. ο Cray-1. Επίσης Η/Υ που είναι ανθεκτικοί σε λάθη. Π.χ. τοσύστημα υπολογιστών στο Διαστημικό Λεωφορείο, αποτελείται από πέντεεπιμέρους Η/Υ, που εκτελούν την ίδια εντολή, στο ίδιο δεδομένο κάθεχρονική στιγμή και συγκρίνονται τα αποτελέσματα. Έτσι εάν ένας απόαυτούς πάθει κάποια βλάβη, δεν δημιουργεί σοβαρό πρόβλημα.

4. MIMD: (Multiple Instruction, Multiple Data). Σε αυτήν την κατηγορίαανήκουν συστήματα από Transputers, ο Sequent Balance 21000, κλπ.. Ανάκάθε χρονική στιγμή είναι δυνατή η εκτέλεση διαφορετικής εντολής απόκάθε επεξεργαστή και σε διαφορετικά δεδομένα.

Παρά το ότι η τελευταία κατηγορία φαίνεται η πιο γενική, η δυσκολία που παρουσιάζεταιστον προγραμματισμό της (π.χ. για πολλά προβλήματα απαιτείται συγχρονισμός μεταξύτων διαδοχικών φάσεων υπολογισμών, ώστε όλοι οι επεξεργαστές να επεξεργάζονται τασωστά επιμέρους αποτελέσματα), έχει κάνει από παλαιότερα ελκυστική την χρήση Η/Υτύπου SIMD, για ορισμένες κατηγορίες προβλημάτων.

Page 126: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 126

8.1.2 Ταξινόμηση κατά την Κατανομή της Κύριας Μνήμης

Ένας άλλος σημαντικός τρόπος ταξινόμησης είναι και η κατανομή της υπάρχουσαςμνήμης. Εάν αυτή χωρίζεται σε τμήματα κάθε ένα από τα οποία είναι τοπικό σε κάθεεπεξεργαστή, υπό την έννοια ότι μόνον ο συγκεκριμένος επεξεργαστής μπορεί να την"δει", τότε ο Η/Υ θεωρείται ότι ακολουθεί το μοντέλο της Κατανεμημένης Μνήμης(Distributed Memory model). Σε αυτήν την περίπτωση, προκειμένου οποιοσδήποτε άλλοςεπεξεργαστής να "δει" κάποιο δεδομένο που βρίσκεται στην μνήμη του αρχικούεπεξεργαστή, θα πρέπει αυτό πρώτα να φορτωθεί στον αρχικό επεξεργαστή και μετά ναμεταφερθεί καταλλήλως.

Σε αντίθετη περίπτωση έχουμε όλη την μνήμη άμεσα "ορατή" από όλους τουςεπεξεργαστές. Τότε ο Η/Υ θεωρείται ότι ακολουθεί το μοντέλο της Κοινής Μνήμης(Shared Memory model), ο κυριότερος εκπρόσωπος της οποίας είναι το μοντέλο PRAM(Parallel Random Access Memory). Είναι προφανές ότι σε αυτήν την περίπτωση ο χρόνοςεπικοινωνίας ελαχιστοποιείται, αλλά εισάγεται το πρόβλημα της ταυτόχρονης πρόσβασηςμίας περιοχής μνήμης από περισσότερους του ενός επεξεργαστές. Υπάρχουν διάφοραθεωρητικά μοντέλα για υποδιαιρέσεις αυτού του μοντέλου, όπως η CREW PRAM(=Concurrent Read, Exclusive Write PRAM), η CRCW PRAM (=Concurrent Read,Concurrent Write PRAM), κ.ο.κ.

8.1.3 Ταξινόμηση κατά το Δίκτυο Ενδοσύνδεσης

Η μορφή του Δικτύου Ενδοσύνδεσης (Interconnection Network), επίσης χρησιμοποιείταισαν χαρακτηριστικό για την ταξινόμηση παράλληλων Η/Υ. Το Δίκτυο Ενδοσύνδεσης ενπολλοίς καθορίζει και την ταχύτητα και ευχέρεια επικοινωνίας μεταξύ των επεξεργαστών,αλλά και των τμημάτων που συνθέτουν την κύρια μνήμη. Είναι, επομένως, φυσικό ναυπάρχουν πολλές τέτοιες μορφές δικτύων και να έχουν, κατά καιρούς, προταθεί ακόμαπερισσότερες.

Σχ. 8.2 Γενική Μορφή Δικτύου Ενδοσύνδεσης (Interconnection Network)

Page 127: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 127

Ένα δίκτυο ενδοσύνδεσης μπορεί να αναπαρασταθεί όπως στο παραπάνω Σχ. 8.2, με νεπεξεργαστές και κ μνήμες. Εννοείται πως εάν όλη η μνήμη είναι χωρισμένη σε ν ίσατμήματα, τοπικά σε κάθε επεξεργαστή (μοντέλο κατανεμημένης μνήμης), το δίκτυοενδοσύνδεσης διασυνδέει μόνον τους επεξεργαστές μεταξύ τους. Γενικά τα διάφοραδίκτυα ενδοσύνδεσης μπορούν να χωρισθούν σε τρεις μεγάλες ομάδες:

1. Μοναδικού Κοινού Διαύλου (Shared Bus): Παρουσιάζει ταπλεονεκτήματα της απλότητας, αλλά και της δυνατότητας άμεσηςεπικοινωνίας οποιουδήποτε επεξεργαστή με κάποιον άλλο. Τα κυριότεραμειονεκτήματά του είναι ότι μόνον ένας επεξεργαστής μπορεί να εκπέμπειδεδομένα ανά κάθε χρονική στιγμή και επομένως απαιτείται κάποιοςμηχανισμός διαχείρισης του κοινού διαύλου. Ο τελευταίος είναιαπαραίτητος ώστε να δίδεται η δυνατότητα επικοινωνίας σε όλους τουςεπεξεργαστές. Παραλλαγή του αποτελεί το δίκτυο τύπου ΠολλαπλώνΔιαύλων.

2. Σημείου-Προς-Σημείο (Point-to-Point): Σε αυτήν την ομάδα ανήκουνόλα τα δίκτυα ενδοσύνδεσης τα οποία συνδέουν άμεσα κάθε (συνδεόμενο)ζεύγος επεξεργαστών (ουσιαστικά η σύνδεση είναι ένα σύρμα). Σε αυτήντην ομάδα ανήκουν πάρα πολλές τοπολογίες, όπως η τοπολογία Δένδρου, ηΓραμμική, Δακτυλίου, Πλέγματος (Mesh), Δυαδικού Υπερκύβου, κ.α.

Σχ. 8.3 Στοιχείο Διακόπτη (Switching Element)

3. Πολλαπλών Βαθμίδων (Multistage): Σε αυτήν την ομάδα ανήκουν όλα ταδίκτυα ενδοσύνδεσης στα οποία το μέσον σύνδεσης μεταξύ δύο(συνδεόμενων) επεξεργαστών δεν είναι ένα απλό σύρμα, αλλάπαρεμβάλλεται ένα ή περισσότερα Στοιχεία Διακοπτών (SwitchingElements).

Η βασική ιδέα ενός τέτοιου στοιχείου φαίνεται στο Σχ. 8.3. Όταν ο επιλογέας-διακόπτης Δ=0, ο επεξεργαστής Χ1 στέλνει δεδομένα στον Ζ1 και ο Χ2 στον Ζ2 (α),ενώ όταν Δ=1, ο επεξεργαστής Χ1 στέλνει δεδομένα στον Ζ2 και ο Χ2 στον Ζ1 (β).Συνδυάζοντας πολλά τέτοια στοιχεία σε περισσότερες από μία βαθμίδες για κάθεδύο ζεύγη επεξεργαστών, είναι δυνατόν να κατασκευαστούν αρκετά πολύπλοκα

Page 128: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 128

δίκτυα που πραγματοποιούν μεγάλα σύνολα μορφών επικοινωνίας. Αυτά μπορούννα περιγραφούν από μία Συνάρτηση Διακοπτών.

Σχ. 8.4 Δίκτυο Ενδοσύνδεσης του Benes για 8 Επεξεργαστές

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

8.2 Απόδοση

Εκτός από τα παραπάνω ζητήματα, όταν πρόκειται να εκτιμήσει κανείς την χρησιμότηταενός παράλληλου Η/Υ (και ενδεχόμενα να τον συγκρίνει με κάποιον άλλο), πρέπει να έχειένα μέτρο σύγκρισης. Αυτό που συνήθως συγκρίνεται είναι η απόδοση (βασικά ηταχύτητα εκτέλεσης).

Συνήθως αυτό που αναφέρεται από τους κατασκευαστές είναι το πόσα MIPS η πόσαMFLOPS μπορεί να επιτύχει ο συγκεκριμένος Η/Υ. Η πρώτη μονάδα μέτρησης σημαίνειΕκατομμύρια Εντολές Ανά Δευτερόλεπτο (Million Instructions Per Second), ενώ ηδεύτερη Εκατομμύρια εντολές πράξεων σε Πραγματικούς Αριθμούς (Million Floatingpoint Operations Per Second). Είναι προφανές ότι εάν πάρουμε έναν σειριακόεπεξεργαστή, ο οποίος μπορεί να εκτελέσει k εκατομμύρια προσθέσεις ακεραίων αριθμώντων 32 bits σε ένα δευτερόλεπτο, και σχηματίσουμε έναν παράλληλο Η/Υ με ν τέτοιουςεπεξεργαστές, τότε η συνολική ταχύτητα είναι νk MIPS.

Κάτι τέτοιο όμως δεν είναι ορθό, επειδή αυτή η ταχύτητα προϋποθέτει ότι δεν χρειάζεταικαμία σημαντική (σε χρόνο) επικοινωνία μεταξύ των επεξεργαστών κατά την διάρκεια τηςεκτέλεσης του προγράμματος. Αυτή η επικοινωνία μπορεί να έχει την μορφή μετάδοσης

Page 129: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 129

ενδιάμεσων αποτελεσμάτων ή ακόμη και μηνυμάτων συγχρονισμού μεταξύ διεργασιώνπου εκτελούνται σε ισάριθμους επεξεργαστές. Επομένως είναι απαραίτητο να θεωρούνταιοι παραπάνω τιμές μόνον ως ενδεικτικές, οι οποίες μπορούν να επιτευχθούν υπό συνθήκεςμέγιστης απόδοσης (peak performance).

Προκειμένου να μετρηθεί σωστά η απόδοση ενός παράλληλου Η/Υ θα πρέπει νασυγκριθεί η ταχύτητα επίλυσης κάποιων προβλημάτων χαρακτηριστικών της ομάδας πουμας ενδιαφέρει στον υπολογιστή αυτόν, με την αντίστοιχη ταχύτητα σε έναν τυπικόσειριακό Η/Υ.

Page 130: 1. ÅéóáãùãÞ
Page 131: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 131

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

Μπορεί να έχει δοθεί η εντύπωση έως εδώ, ότι την μεγαλύτερη σημασία για την αξία ενόςυπολογιστικού συστήματος παίζει το υλικό (hardware). Μία τέτοια άποψη όμως είναιεσφαλμένη, γιατί αυτό που είναι σημαντικό για έναν Η/Υ είναι η ικανότητά του να εκτελείκάποιο σύνολο προγραμμάτων.

Ειδικότερα είναι δυνατόν να χωρίσουμε τα διάφορα προγράμματα που εκτελεί ένας Η/Υσε δύο γενικές κατηγορίες:

1. Προγράμματα Εφαρμογών (Application Programs)

2. Βοηθητικά Προγράμματα.

Το σημαντικότερο ίσως σύνολο προγραμμάτων που ανήκει στην δεύτερη κατηγορία είναιαυτό που αποτελεί το Λειτουργικό Σύστημα (Operating System) του Η/Υ, γιατί έναοποιοδήποτε πρόγραμμα εφαρμογής, δεν βλέπει άμεσα τον Η/Υ, αλλά μέσω τουλειτουργικού του συστήματος. Ουσιαστικά μπορούμε να πούμε ότι η κύρια λειτουργίατου λειτουργικού συστήματος είναι να παρουσιάσει στον χρήστη μία εικονική (virtual)μηχανή που είναι πιο εύκολο να προγραμματίσει από ότι το υλικό που βρίσκεται από κάτω[ΤΑΝ87]. Είναι σκόπιμο λοιπόν να παρουσιασθούν κάποια στοιχεία από αρχιτεκτονικέςλειτουργικών συστημάτων, ώστε στην συνέχεια να γίνει σαφής η επίδραση που είχανστην ανάπτυξη του υλικού.

9.1 Ιστορική Εξέλιξη των Λειτουργικών Συστημάτων

Η εξέλιξη των λειτουργικών συστημάτων είναι στενά συνδεδεμένη με την αρχιτεκτονικήτων Η/Υ. Oι Η/Υ κατατάσσονται ιστορικά σε οικογένειες και αυτήν την κατάταξη θαπαρουσιάσουμε και εδώ.

Η Πρώτη γενεά ( - 1955) περιλαμβάνει Η/Υ που αποτελούνται από χιλιάδες ηλεκτρονικέςλυχνίες, εξαιρετικά αργές με τα σημερινά δεδομένα. Ουσιαστικά δεν υπήρχαν λειτουργικάσυστήματα, αφού κάθε πρόγραμμα “γραφόταν” σε γλώσσα μηχανής, με την δημιουργίαηλεκτρικών συνδέσεων σε μία ειδική κάρτα ή προς το τέλος της περιόδου σε διάτρητεςκάρτες.

Η Δεύτερη γενεά (1955 - 1965) περιλαμβάνει Η/Υ που αντί να εκτελούν μόνον έναπρόγραμμα και να περιμένουν μετά την εισαγωγή άλλου προγράμματος από τον χρήστη,εισήγαγαν την έννοια της Ομαδικής Επεξεργασίας (Batch Processing). Ο κάθε χρήστηςετοίμαζε ένα σύνολο από διάτρητες κάρτες που περιείχαν το πρόγραμμά του. Κάθε ένατέτοιο σύνολο - που αντιπροσώπευε μία εργασία προς εκτέλεση (job) - διαβάζονταν απόέναν ειδικό αναγνώστη καρτών και πολλά προγράμματα μαζί αποθηκευόταν σε μίαμαγνητική ταινία.

Page 132: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 132

Στην συνέχεια ο Η/Υ μέσω ενός ειδικού προγράμματος (ένα πρώιμο λειτουργικόσύστημα) διάβαζε το πρώτο πρόγραμμα από την ταινία, το εκτελούσε, έγραφε τααποτελέσματα σε μία ταινία αποτελεσμάτων και διάβαζε το επόμενο πρόγραμμα, κ.ο.κ.Κατ’ αυτόν τον τρόπο ο χρόνος αναμονής του Η/Υ περιοριζόταν σημαντικά.

Η Τρίτη γενεά (1965 - 1980) περιλαμβάνει Η/Υ που χρησιμοποιούσαν SSI (Small ScaleIntegration) ολοκληρωμένα κυκλώματα. Για πρώτη φορά εδώ παρουσιάζονται λειτουργικάσυστήματα που επιτρέπουν πολυπρογραμματισμό (multiprogramming). Όταν δηλαδή μίαεργασία σταματούσε περιμένοντας πρόσβαση σε κάποια περιφερειακή συσκευή (π.χ.μαγνητική ταινία), ο Η/Υ άρχιζε την εκτέλεση της επόμενης εργασίας. Για τον σκοπό αυτόη μνήμη χωριζόταν σε τμήματα για να στεγάσει την κάθε εργασία σε διαφορετικό τμήμα.

Επί πλέον εισήχθη και η ιδέα της χρονοκατανομής (time-sharing). Εδώ επιτρέπεται ηύπαρξη τερματικών, από τα οποία οι χρήστες μπορούν να ελέγξουν, να εκτελέσουν και ναδιορθώσουν τα προγράμματά τους άμεσα, με το σύστημα να κατανέμει ισόποσα τον χρόνοπου αντιστοιχεί σε αυτούς. Επειδή όμως η διόρθωση και η πληκτρολόγηση προγραμμάτωνείναι συνήθως πολύ αργή διαδικασία, επιτρέπεται στον υπόλοιπο χρόνο να εκτελούνταιάλλες εργασίες. Αυτές μπορεί να προέρχονται, είτε από κάποιο άλλο τερματικό, είτε νααποτελούν τμήμα ομαδικής επεξεργασίας προγραμμάτων (προερχόμενα για παράδειγμααπό διάτρητες κάρτες).

Η Τέταρτη γενεά (1980 - ) έρχεται με την εμφάνιση των LSI και στην συνέχεια των VLSIολοκληρωμένων κυκλωμάτων. Με την πτώση του κόστους εμφανίζονται και οι πρώτοιΠροσωπικοί Η/Υ (PCs), που ο κάθε ένας έχει το δικό του λειτουργικό σύστημα, το οποίοεπιτρέπει την εκτέλεση ενός ή περισσοτέρων προγραμμάτων. Μετά το 1985 εμφανίζονταικαι τα πρώτα λειτουργικά συστήματα δικτύων και επίσης τα Κατανεμημένα ΛειτουργικάΣυστήματα (Distributed Operating Systems).

9.2 Αρχές Λειτουργικών Συστημάτων

Όπως αναφέρθηκε και παραπάνω, κάθε λειτουργικό σύστημα αποτελεί τον τρόποδιασύνδεσης μεταξύ Η/Υ και χρήστη (ο τελευταίος συνήθως παρουσιάζεται με την μορφήκάποιου προγράμματος εφαρμογής), προσφέροντας έναν εικονικό Η/Υ με απλούστερεςκαι περισσότερες λειτουργίες. Για να γίνει πρόσβαση στις “υπηρεσίες” που προσφέρει έναλειτουργικό σύστημα, πρέπει να υπάρχει ένα σαφώς καθορισμένο σύνολο από διαθέσιμες“εντολές”, που έχει επικρατήσει να ονομάζονται Κλήσεις Συστήματος (System Calls).

Σε κάθε λειτουργικό σύστημα για Η/Υ γενικής χρήσεως υπάρχουν δύο σημαντικέςοντότητες και επομένως και αντίστοιχες κλήσεις συστήματος που ενεργούν σε αυτές:Αρχεία (Files) και Διεργασίες (Processes).

Πιο Ειδικότερα, διεργασία είναι ένα πρόγραμμα σε εκτέλεση. Αυτό σημαίνει ότιαποτελείται από ένα αντίγραφο του (κώδικα του) προγράμματος, τα δεδομένα και τηνσωρό (stack) του προγράμματος, την τιμή του κάθε καταχωρητή, και οποιαδήποτε άλληαναγκαία πληροφορία για να εκτελεσθεί το πρόγραμμα.

Page 133: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 133

Ο λόγος της ύπαρξης διεργασιών είναι ότι (ιδίως στα συστήματα πολυπρογραμματισμού)είναι δυνατόν να διακοπεί η εκτέλεση ενός προγράμματος, να εκτελεσθεί για λίγο κάποιοάλλο και να επαναληφθεί η εκτέλεση του αρχικού προγράμματος. Για να συνεχίσει ηεκτέλεση ενός προγράμματος από το σημείο που είχε σταματήσει, απαιτούνται όλες οιπαραπάνω πληροφορίες, δηλαδή η πλήρης κατάσταση της διεργασίας που αντιστοιχεί στοσυγκεκριμένο πρόγραμμα.

Για να γίνει δυνατή η ταυτόχρονη (αλλά όχι κατ’ ανάγκην παράλληλη) εκτέλεση πολλώνπρογραμμάτων, είναι αναγκαία η αποθήκευση όλων των σχετικών πληροφοριών,οργανώνοντάς τες σε μία εύχρηστη δομή, που συνήθως είναι ένας πίνακας: ο ΠίνακαςΔιεργασιών.

Γενικά τα Λειτουργικά Συστήματα χωρίζονται σε δύο μεγάλες κατηγορίες, ανάλογα με τοπλήθος των διεργασιών που μπορούν να είναι σε κατάσταση εκτελέσεως την ίδια χρονικήστιγμή: Μίας Διεργασίας (Single Process) και Πολλαπλών Διεργασιών (Multiprocess).

9.3 Λειτουργικά Συστήματα Μίας Διεργασίας - ΜS-DOS

Σχ. 9.1 Τρόπος Oργάνωσης του MS-DOS

Ένα χαρακτηριστικό παράδειγμα λειτουργικού συστήματος μίας διεργασίας είναι τογνωστό ΜS-DOS, που χρησιμοποιείται στους προσωπικούς Η/Υ συμβατούς με τα αρχικάμοντέλα της ΙΒΜ. Εδώ μπορούμε να διακρίνουμε τρία επίπεδα (Σχ. 9.1). Επάνω από τουλικό υπάρχει το BIOS (Basic Input Output System) σε μορφή μόνιμων ρουτινών (σε μίαROM). Αυτό παρέχεται από τον συγκεκριμένο κατασκευαστή του υλικού προκειμένου ναγίνει η πρόσβαση στις διάφορες υπηρεσίες του Η/Υ πιο σαφής και πιο εύκολη.

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

Page 134: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 134

γραφεί η ρουτίνα διαφέρει από τον ένα υπολογιστή στον άλλο. Έτσι, οποιαδήποτεδιαφορά στο υλικό μεταξύ δύο Η/Υ, κρύβεται από τον υπόλοιπο κόσμο μέσω του ΒΙΟS.

Ακριβώς επάνω από το ΒΙΟS βρίσκεται το ΜS-DOS, το οποίο παρέχει ακόμηπερισσότερες λειτουργίες με την μορφή ρουτινών, που στηρίζονται κατά πολύ σευπηρεσίες του ΒΙΟS. Η γραμμή ανάμεσα στο ΒΙΟS και το ΜS-DOS του Σχ. 9.1 είναιδιακεκομμένη, επειδή το ΜS-DOS δεν κρύβει πλήρως την πρόσβαση στις υπηρεσίες τουΒΙΟS από ένα πρόγραμμα χρήστη.

Σχ. 9.2 Τυπικό Διάγραμμα Κατανομής Μνήμης κάτω από το ΜS-DOS

Η κατανομή της μνήμης (1 ΜΒ) κάτω από το MS-DOS φαίνεται στο Σχ. 9.2. Οιυπηρεσίες του BIOS και του MS-DOS είναι διαθέσιμες στο πρόγραμμα εφαρμογής τοοποίο φορτώνεται στην Περιοχή Προγραμμάτων (TPA = Transient Program Area). Εκτόςαπό το πρόγραμμα στον ίδιο χώρο φορτώνονται ή δημιουργούνται και όλες οι αναγκαίεςπληροφορίες για την εκτέλεσή του.

Επειδή όμως κάθε Η/Υ χρειάζεται πρόσβαση σε περιφερειακές συσκευές (π.χ.εκτυπωτής), υπάρχουν ειδικές διαδικασίες (procedures) και όχι προγράμματα πουαναλαμβάνουν την είσοδο ή έξοδο από/προς την συσκευή. Τέτοιες διαδικασίεςονομάζονται Οδηγοί (drivers) και αποτελούν προσθήκη στις υπηρεσίες του MS-DOS. Τοενδιαφέρον σημείο εδώ είναι ο τρόπος πρόσβασης στις περιφερειακές συσκευές μέσωτων οδηγών. Γενικά ο τρόπος εξυπηρέτησης μίας περιφερειακής συσκευής μπορεί να γίνειμε δύο τρόπους.

Κάτω από τον πρώτο τρόπο (polling), το σύστημα πραγματοποιεί συνεχείς ελέγχους στηνσυσκευή, ώστε να διαπιστώσει εάν η συσκευή έχει ανάγκη εξυπηρέτησης. Η μέθοδοςαυτή είναι απλή, αλλά έχει το μειονέκτημα ότι ένα μεγάλο ποσοστό του χρόνου του Η/Υαναλώνεται σε ελέγχους σε συσκευές που δεν έχουν ανάγκη εξυπηρέτησης.

Page 135: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 135

Ο δεύτερος τρόπος χρησιμοποιεί την έννοια των Διακοπών (Ιnterrupts). H ιδέα εδώ είναιακριβώς αντίθετη από την προηγούμενη. Όταν μία συσκευή χρειάζεται εξυπηρέτησηστέλνει ένα ειδικό σήμα που ονομάζεται διακοπή. Εφ’ όσον το λειτουργικό σύστημα δενεπιτρέπει αυτήν την στιγμή την εξυπηρέτηση απαιτήσεων που δηλώνονται με τέτοιοτρόπο, η συσκευή περιμένει. Διαφορετικά, το λειτουργικό σύστημα σταματά την εκτέλεσητου προγράμματος που εκτελούσε ο επεξεργαστής εκείνη την στιγμή, αποθηκεύοντάς τουπό την μορφή διεργασίας. Στην συνέχεια, ανάλογα με τον κωδικό της διακοπήςεκτελείται η αντίστοιχη ρουτίνα εξυπηρετήσεως της διακοπής και επαναλαμβάνεται ηεκτέλεση του αρχικού προγράμματος από το σημείο διακοπής του.

Το πλεονέκτημα των διακοπών έναντι της πρώτης μεθόδου είναι προφανές, αφού οεπεξεργαστής ασχολείται με τις (πολύ αργότερες) περιφερειακές συσκευές, μόνον ότανυπάρχει πραγματική ανάγκη για κάτι τέτοιο. Το MS-DOS, όπως και όλα σχεδόν ταπερισσότερα λειτουργικά συστήματα, χρησιμοποιούν διακοπές. Το πρόβλημα είναι πώς θαμπορούν να αποθηκευθούν οι αναγκαίες πληροφορίες της διεργασίας που διακόπηκε. Οτρόπος που ακολουθείται είναι παρόμοιος με την κλήση μίας διαδικασίας: Αποθηκεύονταιτα περιεχόμενα όλων των καταχωρητών την στιγμή της διακοπής και επαναφέρονται ότανολοκληρωθεί η εξυπηρέτηση της διακοπής.

Ο χώρος όπου αποθηκεύονται αυτές οι πληροφορίες είναι η κεντρική μνήμη του Η/Υ καιο τρόπος είναι με την χρήση σωρού (stack). Ως γνωστόν, χρησιμοποιώντας την Σωρόμπορούμε να αποθηκεύσουμε πληροφορίες για περισσότερες από μία λογικές οντότητες,με την χρήσιμη ιδιότητα ότι κατά την επαναφορά τους, επανέρχονται πρώτα οιπληροφορίες για την οντότητα (διεργασία) που αποθηκεύθηκαν τελευταία.

Παρά το ότι το MS-DOS σχεδιάσθηκε με σκοπό να εκτελεί μόνον μία διεργασία κάθεφορά, επιτρέπει την φόρτωση περισσοτέρων του ενός προγραμμάτων στην μνήμη (εφ’όσον υπάρχει χώρος), από τα οποία μόνον ένα εκτελείται κάθε φορά, όπως και στηνπερίπτωση εξυπηρέτησης διακοπών. Δημιουργούνται όμως τώρα δύο ερωτήματα:

1. Πού αποθηκεύονται ο κώδικας, τα δεδομένα και η σωρός της διεργασίαςπου διακόπτεται.

2. Εάν το MS-DOS επιτρέπει την φόρτωση και εκτέλεση περισσοτέρων τουενός προγραμμάτων (είτε με την μορφή διακοπών, είτε με κάποιον άλλοτρόπο), γιατί καλείται σύστημα μίας διεργασίας.

Η απάντηση στο πρώτο ερώτημα είναι ότι ο κώδικας, τα δεδομένα και η σωρός κάθεδιεργασίας βρίσκονται ήδη στην κύρια μνήμη του Η/Υ. Εφ’ όσον δεν μετακινούνται ήδιαγράφονται από κάποια άλλη διεργασία, δεν είναι ανάγκη να αποθηκευθούν. Εάν κάτιτέτοιο συμβεί, η διεργασία που διακόπηκε έχει αλλοιωθεί και το MS-DOS δεν μπορεί νακάνει τίποτε για αυτό.

Ως προς το δεύτερο ερώτημα θα πρέπει να τονισθεί ότι κάθε πρόγραμμα που εκτελείταιστο MS-DOS δεν είναι (εκτός από ένα και μόνον) διεργασία, αλλά διαδικασία. Το νόημααυτής της παρατήρησης είναι ότι κάθε πρόγραμμα που διακόπτει ένα άλλο, είναιυπεύθυνο για την σωστή αποθήκευση των αναγκαίων πληροφοριών εκείνου που διακόπτεικαι την επαναφόρτωσή τους πριν επιστρέψει τον έλεγχο. Το ίδιο το λειτουργικό σύστημα

Page 136: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 136

δεν επεμβαίνει σε αυτόν τον αναγκαίο μηχανισμό και μάλιστα ούτε καν τον γνωρίζει. Εάντα παραπάνω δεν συμβούν, το πιο πιθανό είναι και πάλι ότι το σύστημα θα γίνει ασταθέςκαι θα “καταστραφεί”.

9.4 Λειτουργικά Συστήματα Πολλαπλών Διεργασιών

Προκειμένου να δοθεί η δυνατότητα σε έναν Η/Υ να εκτελεί περισσότερα από έναπρογράμματα (επομένως και διεργασίες), πρέπει να ικανοποιηθούν τέσσερις τουλάχιστονσυνθήκες:

1. Να υπάρχει αρκετός χώρος στην μνήμη για να χωράν οι διεργασίες.

2. Να υπάρχει κάποιος μηχανισμός προστασίας των περιοχών μνήμης πουχρησιμοποιούνται από μία διεργασία, ώστε να μην είναι δυνατόν ναμεταβληθεί ανεξέλεγκτα από μία άλλη.

3. Nα υπάρχει κάποιος μηχανισμός διαχείρισης της σειράς εκτελέσεως τωνδιαφόρων διεργασιών.

4. Να υπάρχει κάποιος μηχανισμός επικοινωνίας μεταξύ των διεργασιών πουσυνεργάζονται.

9.4.1 Αύξηση Χώρου Μνήμης

Είναι φυσικό ότι στο πρώτο πρόβλημα δεν μπορεί να υπάρξει λύση που να εξασφαλίζειχώρο για όλα τα προγράμματα (ή για ένα πολύ μεγάλο), που θέλει κανείς να εκτελέσει σεέναν Η/Υ. Εν τούτοις, είναι φαινομενικά δυνατόν να αυξηθεί σημαντικά η χωρητικότητατης μνήμης, με την χρήση δευτερεύουσας μνήμης (π.χ. μαγνητικός δίσκος). Για αυτόν τονλόγο η μνήμη που "βλέπει" το πρόγραμμα ονομάζεται Εικονική Μνήμη (VirtualMemory).

Η αρχική μέθοδος ήταν να χωρίσει ο ίδιος ο προγραμματιστής το πρόγραμμά του σελογικές ενότητες, κάποιες από τις οποίες μένουν μόνιμα στην κύρια μνήμη και κάποιεςπου “μοιράζονται” την ίδια περιοχή της κύριας μνήμης. Οι τελευταίες τοποθετούνται σεπροσωρινά αρχεία στην δευτερεύουσα μνήμη και μόνον μία από αυτές βρίσκεται στηνκύρια μνήμη κάθε στιγμή. Λόγω αυτής της αλληλοεπικάλυψης, ονομάζονταιΑλληλεπικαλύψεις (Overlays). Όταν για κάποιο λόγο πρέπει να εκτελεσθεί κάποιοτμήμα του κώδικα που βρίσκεται στην δευτερεύουσα μνήμη, όλη η αντίστοιχη ενότηταπου βρίσκεται στην κύρια μνήμη αποθηκεύεται στην δευτερεύουσα, φορτώνεται ηαπαιτούμενη ενότητα στην κύρια μνήμη και η εκτέλεση του προγράμματος συνεχίζεταικανονικά.

Αυτός ο τρόπος είναι σχετικά απλός (και χρησιμοποιείται ακόμα και σήμερα), αλλά είναιεπίπονος, αφού όλη η ευθύνη της διαχείρισης ανήκει στον προγραμματιστή, χωρίς τολειτουργικό σύστημα να γνωρίζει ότι κάτι τέτοιο λαμβάνει χώρα.

Page 137: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 137

Ένας άλλος τρόπος για να μεγαλώσει η πραγματική μνήμη είναι η χρήση εικονικώνδιευθύνσεων. Η φυσική (πραγματική) μνήμη είναι τότε μικρότερη της εικονικής καισυνήθως χωρίζεται σε περιοχές ίσου μεγέθους, που ονομάζονται Σελίδες (Pages). Όταναπαιτείται η εκτέλεση κάποιας εντολής, ο Η/Υ πρέπει πρώτα να διαπιστώσει σε ποιασελίδα βρίσκεται αυτή η εντολή και εάν η σελίδα αυτή βρίσκεται στην φυσική μνήμη.Διαφορετικά θα πρέπει να αποθηκεύσει τα περιεχόμενα μίας σελίδας στην δευτερεύουσαμνήμη και να φορτώσει στην θέση της τα περιεχόμενα της επιθυμητής σελίδας. Αυτή ημέθοδος ονομάζεται Swapping.

Στην πράξη αυτή η μέθοδος απαιτεί την υποστήριξη του συστήματος εικονικώνδιευθύνσεων από το υλικό (βασικά τον επεξεργαστή) και το λειτουργικό σύστημα,μειώνοντας την ταχύτητα εκτέλεσης ενός προγράμματος. Παρ’ όλα αυτά είναι σαφώς πιοπλεονεκτική από την μέθοδο των αλληλοεπικαλύψεων, αφού όλη η ευθύνη για τηνδιαχείριση της μνήμης περνάει πλέον από τον χρήστη στο λειτουργικό σύστημα.Παράδειγμα τέτοιου συστήματος είναι το ΜS-Windows και το UNIX.

9.4.2 Μηχανισμοί Προστασίας Περιοχών Μνήμης

Η πρώτη ιδέα για προστασία των διαφόρων περιοχών μνήμης ήταν η χρησιμοποίησηΤμημάτων (Segments). Κατ’ αυτόν τον τρόπο, μία διεύθυνση αποτελείται από τονσυνδυασμό: <Αρχή Τμήματος> + <Απόσταση από Αρχή Τμήματος> και κάθε τμήμα έχεικαθορισμένο μέγεθος (το ίδιο για όλα). Για να καταστεί δυνατόν ένα τμήμα ναπροσπελάσει περιοχή μνήμης σε άλλο τμήμα, θα πρέπει να χρησιμοποιήσει κάποιακατάλληλη εντολή.

Αν και αυτή η μέθοδος είναι κατάλληλη για διαχωρισμό στατικών από δυναμικέςπληροφορίες (π.χ. κώδικας από σωρό), δεν μπορεί να αποτελέσει επαρκή προστασία γιαμία περιοχή μνήμης εφ’ όσον από λάθος μπορεί να εκτελεσθεί κάποια εντολή πρόσβασηςσε διαφορετικό τμήμα της. Για να είναι δε πρακτική, θα πρέπει να την υποστηρίζει ο ίδιοςο επεξεργαστής, αλλά τότε δεν είναι αρκετά ευέλικτη, αφού στην πράξη απαιτούνταιτόσες ομάδες καταχωρητών, όσα και τα διαθέσιμα τμήματα.

Μία άλλη μέθοδος είναι η διάκριση των διαθέσιμων εντολών ενός επεξεργαστή σεΚανονικές, που μπορούν να εκτελέσουν όλα τα προγράμματα και σε Προνομιακές(Privileged), τις οποίες μπορεί να εκτελέσει μόνον το λειτουργικό σύστημα. Σε αυτήν τηνπερίπτωση, ανεξάρτητα από τον τρόπο διαχωρισμού και γενικότερης οργάνωσης τηςμνήμης, είναι πλέον αδύνατον να εκτελεσθεί προνομιακή εντολή από κοινό πρόγραμμα.Εννοείται βέβαια πως η επιλογή των προνομιακών εντολών ενός επεξεργαστή και τηςοργάνωσης μνήμης είναι πλέον αλληλένδετα στοιχεία. Για αυτό άλλωστε ο συνηθέστεροςτρόπος οργάνωσης είναι η χρήση της εικονικής μνήμης.

Ο κάθε χρήστης (ή το πρόγραμμα εφαρμογής) έχει την εντύπωση πως του είναιδιαθέσιμος όλος ο χώρος δυνατών διευθύνσεων, χωρίς περιορισμούς από τμήματα ή άλλεςμορφές διαιρέσεων της μνήμης. Ακόμη και στην περίπτωση καταστροφής τηςσυγκεκριμένης διεργασίας, οι υπόλοιπες διεργασίες μπορούν να συνεχίσουν κανονικά.Αυτή η μέθοδος χρησιμοποιείται από το Unix και τα ΜS-Windows.

Page 138: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 138

9.4.3 Μηχανισμοί Διαχείρισης Σειράς Εκτελέσεως Διεργασιών

Για να μπορέσει ένα λειτουργικό σύστημα πολλαπλών διεργασιών να λειτουργήσει σωστάκαι αποδοτικά, πρέπει να έχει κάποιον μηχανισμό που επιτρέπει την εναλλαγή εκτέλεσηςτων διεργασιών. Με αυτόν τον τρόπο και περισσότερο αποδοτικό είναι, αλλά καιεμφανίζεται ότι μπορεί να εκτελέσει πολλές διεργασίες παράλληλα.

Αρκετοί μηχανισμοί διαχείρισης της σειράς εκτέλεσης διεργασιών έχουν προταθεί (εκτόςαπό την γνωστή χρoνοκατανομή ή time-sharing) και ο ενδιαφερόμενος αναγνώστης θαπρέπει να ανατρέξει στην πλούσια βιβλιογραφία για περαιτέρω μελέτη. Εδώ μαςενδιαφέρουν δύο τέτοιοι μηχανισμοί, επειδή πρόκειται να τους συναντήσετε στην πράξη.

Ο πρώτος μηχανισμός αποτελεί ένα μίγμα χρονοκατανομής και Μη-ΔιακοπτήςΧρονοδρομολόγησης (Νοn-Preemptive Scheduling). Αυτός ο μηχανισμός ακολουθείταιαπό τα MS-Windows 3.1. Για κάθε διεργασία ορίζεται ένας βαθμός προτεραιότητας καιένα ελάχιστο χρονικό διάστημα που της δίδεται όταν εκτελείται (π.χ. 20 ms). O χρήστηςμπορεί να μεταβάλει όλες τις παραμέτρους. Στην συνέχεια ο Χρονοδρομολογητής(Scheduler) αναλαμβάνει να κάνει την κατανομή του χρόνου μεταξύ των διεργασιών τουσυστήματος.

Το σημαντικό όμως σημείο είναι ότι η κάθε εφαρμογή που είναι "ενεργή" σε μία χρονικήστιγμή εκτελείται συνέχεια, έως ότου η ίδια κρίνει ότι πρέπει να σταματήσει προσωρινά,στέλνοντας ένα μήνυμα στον χρονοδρομολογητή, ο οποίος ξεκινάει την επόμενη. Αυτή ηεπιλογή έγινε γιατί μπορεί κάποια διεργασία να εκτελεί κρίσιμα καθήκοντα και να μηνπρέπει να διακοπεί. Για αυτό άλλωστε, εφαρμογές που απαιτούν μεγάλο χρονικό διάστημαγια να εκτελεσθούν χρησιμοποιούν χρονομέτρες (timers), ώστε περιοδικά (σεσυγκεκριμένα σημεία) να δίδεται η ευκαιρία παράδοσης του ελέγχου στονχρονοδρομολογητή.

Το μειονέκτημα μίας τέτοιας οργάνωσης είναι ότι ο προγραμματιστής παραμένειυπεύθυνος για τον σωστό χρονοκαταμερισμό της εφαρμογής του. Εάν για κάποιο λόγοκαταστραφεί η διεργασία (ή γενικά δεν στείλει το κατάλληλο μήνυμα στονχρονοδρομολογητή), καμία άλλη διεργασία δεν εκτελείται, ενώ είναι δυνατόν νακαταστραφεί το όλο σύστημα.

Ο δεύτερος μηχανισμός χρησιμοποιείται από πραγματικά λειτουργικά συστήματαπολλαπλών διεργασιών, όπως το Unix και βασίζεται στην ύπαρξη Ρολογιού ΠραγματικούΧρόνου (Real-Time Clock). Ο αλγόριθμος που ακολουθεί ο χρονοδρομολογητής είναιτύπου Διακοπτής Χρονοδρομολόγησης (Preemptive Scheduling), επιτρέποντας την διακοπήμίας διεργασίας όταν αυτό κρίνεται σκόπιμο από το σύστημα. Φυσικά το σύστημα είναιπιο πολύπλοκο, αλλά η ευθύνη μετατοπίζεται πλέον από τον προγραμματιστή/χρήστη στοσύστημα μειώνοντας τις πιθανότητες αστάθειας ή καταστροφής.

Page 139: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 139

9.4.4 Mηχανισμοί Επικοινωνίας Συνεργαζομένων Διεργασιών

Σε περιβάλλον πολλαπλών διεργασιών υπάρχει επί πλέον και η περίπτωση δύο ήπερισσότερες διεργασίες να συνεργάζονται με την μορφή ανταλλαγής μηνυμάτων ήδεδομένων. Τότε δημιουργούνται προβλήματα συγχρονισμού των διεργασιών.

Για παράδειγμα, φανταστείτε έναν Η/Υ σε μία τράπεζα ο οποίος ελέγχει τις μηχανές στιςαυτόματες χρηματοθυρίδες (μία διεργασία για κάθε χρηματοθυρίδα). Ο υπεύθυνος τουσυστήματος ζητάει με το κλείσιμο των τραπεζικών εργασιών ένα συνολικό άθροισμα τωνχρημάτων που δόθηκαν μέσω των χρηματοθυρίδων. Την ίδια στιγμή όμως έρχεται σε μίαχρηματοθυρίδα η κ. Τασχουνίδου και αρχίζει μία διεργασία ανάληψης χρημάτων. Επειδήο Η/Υ μπορεί να εκτελέσει ένα άθροισμα πολύ ταχύτερα από το διάστημα που χρειάζεταιη κ. Τασχουνίδου για να ολοκληρώσει την ανάληψή της, γεννάται το ερώτημα εάν ο Η/Υμπορεί να εκτελέσει την αρχική διεργασία άθροισης και εάν αυτό το άθροισμα είναισωστό.

Η βιβλιογραφία είναι πλούσια και σε αυτό το θέμα και δεν θα επεκταθούμε. Είναι σκόπιμονα γνωρίζετε την έννοια του Κρίσιμου Τμήματος μίας διεργασίας, που απλά είναι τοτμήμα εκείνο κατά την εκτέλεση του οποίου η διεργασία δεν θα πρέπει να διακοπεί. Εφ’όσον δε χρησιμοποιούνται δεδομένα (π.χ. τμήματα αρχείων), άλλες διεργασίες πουεπιθυμούν να τα μεταβάλουν θα πρέπει να περιμένουν έως ότου η αρχική διεργασίαολοκληρώσει την πρόσβασή της σε αυτά. Υπάρχει όμως και ο κίνδυνος του αδιεξόδου(deadlock), όταν δύο ή και περισσότερες διεργασίες αποκλείσουν η μία την άλληεμποδίζοντας την εκτέλεσή τους.

Υπάρχουν πολλοί μηχανισμοί που έχουν προταθεί και χρησιμοποιηθεί στην πράξη, όπως ηδομή MONITOR, οι Σηματοφορείς (Semaphors), κλειδιά διαφόρων τύπων, κλπ. Το σημείοπου ενδιαφέρει αυτές τις σημειώσεις είναι η υλοποίησή τους - ιδίως των σημαιοφόρων.Αυτή γίνεται είτε με την χρήση ειδικών εντολών σε ειδικές περιοχές μνήμης όταν αυτόυποστηρίζεται από το υλικό - π.χ. Sequent Balance 21000 - είτε με λογισμικό, όπουπρόσβαση στην περιοχή της μνήμης που αυτοί υλοποιούνται γίνεται μόνον από τολειτουργικό σύστημα με προνομιακές εντολές. Κάθε πραγματικό σύστημα πολλαπλώνδιεργασιών όπως το UNIX παρέχει τέτοιους μηχανισμούς.

Τα παραπάνω αποκτούν ιδιαίτερη σημασία σε συστήματα με περισσότερους του ενόςεπεξεργαστές, όπου η κύρια μνήμη είναι κοινή σε όλους. Για παράδειγμα, η εγγραφή απότον επεξεργαστή Α σε μία διεύθυνση μνήμης, την ώρα που ο επεξεργαστής Β προσπαθείνα διαβάσει το περιεχόμενό της, μπορεί να οδηγήσει σε τελείως λανθασμένααποτελέσματα, εάν δεν χρησιμοποιηθούν οι απαραίτητοι μηχανισμοί. Η ανάπτυξη όμωςτων διαφόρων προβλημάτων και οι αντίστοιχες - κατά καιρούς - προταθείσες λύσεις,ξεφεύγουν από τους σκοπούς αυτών των σημειώσεων και για αυτό δεν θα επεκταθούμεπερισσότερο σε αυτό το σημείο.

Έχοντας υπ’ όψιν τα παραπάνω προβλήματα και απαιτήσεις ενός σύγχρονουυπολογιστικού συστήματος, μπορούμε να δούμε πώς διαμόρφωσαν και συνεχίζουν ναδιαμορφώνουν την εξέλιξη στην τεχνολογία του υλικού.

Page 140: 1. ÅéóáãùãÞ
Page 141: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 141

10. ΟΘΟΝΕΣ ΚΑΙ ΚΑΡΤΕΣ ΓΡΑΦΙΚΩΝ

Η είσοδος και η επεξεργασία δεδομένων σε έναν Η/Υ είναι άχρηστη, εάν δεν είναι σεθέση να παραθέσει τα αποτελέσματα της επεξεργασίας του στον χρήστη, με μορφή που ναείναι άμεσα αντιληπτή από τον τελευταίο. Ειδικότερα για την περίπτωση που απαιτείταιταχεία απεικόνιση πληροφοριών που μπορεί να μεταβάλλονται με γρήγορους ρυθμούς, τοκαταλληλότερο μέσον είναι μία οθόνη. Για να μπορέσει όμως ο Η/Υ να απεικονίσει τιςεπιθυμητές πληροφορίες, θα πρέπει να είναι σε θέση να ελέγξει την οθόνη, κάτι πουγίνεται μέσω μίας ειδικής συσκευής, που λέγεται Κάρτα Γραφικών.. Λόγω κόστους,συνήθως είναι φυσικό να δίδεται περισσότερο βάρος στην επιλογή της κατάλληληςοθόνης. Στην συνέχεια θα εξετάσουμε και τις δύο αυτές συσκευές, που συνθέτουν αυτόντον τρόπο απεικόνισης

10.1 Οθόνες Η/Υ

Υπάρχουν διάφορες τεχνολογίες για απεικόνιση στην οθόνη αριθμών, γραμμάτων καιγραφικών. Ο πιο κοινός τύπος είναι ο Σωλήνας Καθοδικών Ακτινών (CRT). Για νακατανοήσετε όμως τους διάφορους τύπους οθονών και τα σχετικά μεγέθη, πρέπει πρώτανα έχετε γνώση του βασικού τρόπου λειτουργίας τους.

ένας σωλήνας καθοδικών Ακτινών είναι ένας σωλήνας κενού με σχήμα μπουκαλιού.Παράδειγμα αποτελεί ο σωλήνας που χρησιμοποιείται στις κοινές τηλεοράσεις. Υπάρχειένα “κανόνι” ηλεκτρονίων στο πίσω μέρος του σωλήνα, το οποίο και παράγει την δέσμηηλεκτρονίων την οποία κατευθύνει προς το μπροστινό μέρος του σωλήνα. Στην εσωτερικήεπιφάνεια του μπροστινού τμήματος του σωλήνα υπάρχει μία επίστρωση από φώσφορο, ηοποία έχει την ιδιότητα να αναδίδει φως όταν προσκρούουν ηλεκτρόνια επάνω της.Ανάλογα με την φύση της ουσίας, αναδίδεται διαφορετικό χρώμα.

Για την παραγωγή έγχρωμης εικόνας, κουκίδες από μείγματα φωσφόρου με την ικανότητανα αναδίδουν κόκκινο, πράσινο και μπλε χρώμα τοποθετούνται στην παραπάνω εσωτερικήεπιφάνεια σε ιδεατό σχήμα τριγωνιδίων. Για κάθε ένα από τα βασικά χρώματα υπάρχει καιδιαφορετική δέσμη ηλεκτρονίων και επομένως απαιτούνται τρία “κανόνια”. Ανάλογα μετην σχετική ένταση της κάθε δέσμης, συνδυασμός των τριών κουκίδων δημιουργεί μία(φαινομενικά) ψηφίδα με διαφορετικό χρώμα.

Η πιο κοινή μέθοδος παραγωγής εικόνων στην οθόνη είναι η πλήρης σάρωσή της από τηνδέσμη ηλεκτρονίων (δέσμες για έγχρωμη οθόνη). Η δέσμη ηλεκτρονίων ξεκινάει από τηνεπάνω αριστερή γωνία της οθόνης και σαρώνει όλη την γραμμή προς τα δεξιά. Ότανφθάσει στο δεξί άκρο, σβήνει και μεταφέρεται στο αριστερό άκρο της επόμενης γραμμής.Αυτή η διαδικασία επαναλαμβάνεται για κάθε γραμμή, έως ότου σαρωθεί και η τελευταίαγραμμή. Τότε η δέσμη (σβησμένη) μεταφέρεται στην επάνω αριστερή γωνία της οθόνης,για να επαναλάβει τον παραπάνω κύκλο εργασίας, όπως φαίνεται και από το Σχ. 10.1. Μίατέτοια (πλήρης) σάρωση της οθόνης ονομάζεται Kαρέ (Frame ή Field). Οι δε οθόνες

Page 142: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 142

αυτού του τύπου - που στηρίζονται στην δημιουργία εικόνας από ψηφίδες - ονομάζονταιOθόνες Σχάρας (Raster Displays).

Σχ. 10.1 Τρόπος Σάρωσης Οθόνης Καθοδικού Σωλήνα

Το πρόβλημα εδώ είναι να συγχρονισθούν σωστά η ένταση της δέσμης ηλεκτρονίων, μετην οριζόντια και κατακόρυφη συχνότητα σάρωσης, για να πάρουμε μία σταθερή εικόναστην οθόνη. Προκειμένου να επιτευχθεί αυτός ο σκοπός, είναι γνωστό ότι απαιτούνταιτουλάχιστον 30 καρέ/sec, με καλύτερη απόδοση γύρω στα 60-100 καρέ/sec. Διαφορετικάτο ανθρώπινο μάτι δεν ξεγελιέται αρκετά και η εικόνα φαίνεται να τρεμοπαίζει. Για ναγίνουν κατανοητά τα μεγέθη συχνοτήτων που απαιτούνται θα χρησιμοποιήσουμε έναπαράδειγμα.

Έστω ότι θέλουμε να έχουμε μία εικόνα που αποτελείται από 600 γραμμές των 800ψηφίδων, με 60 καρέ/sec. Αυτό σημαίνει ότι η κατακόρυφη συχνότητα είναι 60 Ηz, ενώ ηοριζόντια 600*60 = 36 KΗz. Δεδομένου ότι οι τηλεοράσεις στις ΗΠΑ π.χ. έχουνοριζόντια συχνότητα 15,6 ΚΗz, γίνεται κατανοητό ότι δεν μπορούν να παράγουν τέτοιαποιότητα εικόνας. Εάν πρόκειται για 1.024 γραμμές των 1280 ψηφίδων, με 60 καρέ/sec, ηοριζόντια συχνότητα γίνεται 1.024x60 = 61,440 ΚΗz.

Για να επιτευχθεί επομένως μεγάλη ταχύτητα σάρωσης και να κρατηθεί το κόστοςκατασκευής χαμηλά, στις τηλεοράσεις, όπως και στις φθηνότερες οθόνες τερματικώνχρησιμοποιείται η μέθοδος της Διάπλεξης (Interlace). Η ιδέα (βλ. Σχ. 10.1) είναι ναχωρισθούν οι γραμμές σε δύο ομάδες (μονές και ζυγές) και να σαρώνεται αρχικά η πρώτηομάδα και μετά η δεύτερη. Επειδή χρειάζονται δύο πλήρεις διαδρομές της δέσμηςηλεκτρονίων, η κατακόρυφη συχνότητα ουσιαστικά γίνεται η μισή της αρχικής. Σεμεγάλες αναλύσεις αυτό μπορεί να δημιουργήσει ένα “αναβοσβήσιμο” της εικόνας, μεαποτέλεσμα να κουράζεται ο χρήστης πολύ πιο γρήγορα. Σε αυτήν την περίπτωση έχουμετην διαπλεγμένη (interlaced) εικόνα, σε αντίθεση με την προηγούμενη περίπτωση της μη-διαπλεγμένης (non-interlaced) εικόνας.

Όπως για κάθε άλλο τύπο συσκευής, έτσι και για τις οθόνες υπολογιστών (monitors)έχουν ορισθεί στην πράξη κάποια χαρακτηριστικά ώστε να είναι δυνατή η περιγραφή καισύγκριση αναμεταξύ τους. Τα κυριότερα χαρακτηριστικά είναι τα εξής:

Page 143: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 143

1. Μέγεθος (Size) - Αυτό ορίζεται σαν το μήκος της διαγωνίου της οθόνης.Τα άκρα της διαγωνίου βρίσκονται στο “γυαλί” της οθόνης και όχι στοπροστατευτικό της περίβλημα. Η μέτρηση γίνεται σε ίντσες. Συνηθισμέναμεγέθη είναι 14’’, 15’’, 16’’ και 17’’.

2. Ευκρίνεια (Resolution) - Εκφράζει (εν μέρει) την ποιότητααναπαράστασης αντικειμένων από την οθόνη. Όσο πιο μεγάλη η ευκρίνεια,τόσο υψηλότερη και η ποιότητα. Η ευκρίνεια μετράται σε Kουκίδες ήΨηφίδες (Pixels) και δίδεται σαν το γινόμενο δύο παραγόντων, τουτ’ έστινο αριθμός των ψηφίδων στον άξονα των Χ (οριζόντιος), επί των αριθμότων ψηφίδων στον άξονα των Υ (κατακόρυφος). Συνηθισμένα μεγέθησήμερα είναι 640x480, 800x600, 1024x768 και 1280x1024.

3. Dot Pitch - Για να γίνει αυτή η μέτρηση αντιληπτή, θα πρέπει να γίνεικατανοητός ο τρόπος λειτουργίας της οθόνης. Πιο συγκεκριμένα, σε μίαέγχρωμη οθόνη κάθε ψηφίδα αποτελείται από τον χρωματικό συνδυασμότριών πραγματικών κουκίδων (dots) φωσφόρου, που η κάθε μία μπορεί ναπαράγει ένα από τα λεγόμενα τρία “βασικά” χρώματα (κόκκινο, πράσινο,μπλε), όταν πέφτει μία δέσμη ηλεκτρονίων επάνω της. Αυτές η κουκίδεςβρίσκονται τόσο κοντά μεταξύ τους, ώστε στο ανθρώπινο μάτι ναφαίνονται ως μία έγχρωμη ψηφίδα. Η απόσταση ανάμεσα στις κουκίδεςφωσφόρου ονομάζεται Dot Pitch και μετράται σε χιλιοστά του μέτρου.Όσο πιο μικρή αυτή η απόσταση τόσο υψηλότερη η ποιότητα της οθόνηςγια κάποιο συγκεκριμένο μέγεθος, επειδή η εικόνα είναι πιο ευκρινής.Δυστυχώς η προηγούμενη μέτρηση δεν αποτελεί από μόνη της ένα πλήρωςαξιόπιστο στοιχείο, επειδή υπεισέρχονται και άλλοι παράγοντες: ΗΣυμβολή (Convergence) και το Άνθισμα (Blooming).

4. Συμβολή (Convergence) - Κακή συμβολή εμφανίζεται σε οθόνες όπου οιτρεις δέσμες ηλεκτρονίων δεν έχουν ρυθμιστεί καλά, ώστε να πέφτουν μεακρίβεια επάνω στις αντίστοιχες κουκίδες φωσφόρου. Αυτό το φαινόμενοείναι περισσότερο εμφανές όταν έχετε άσπρους χαρακτήρες, που έχουνκάποιο στοιχείο από άλλα χρώματα και δεν είναι απόλυτα λευκοί. Πολύκακή συμβολή κάνει τους χαρακτήρες να φαίνονται ασαφείς ή και θολοί.

5. Άνθισμα (Blooming) - Μερικές οθόνες δεν μπορούν να διατηρήσουν καλήποιότητα με μεγάλη ένταση φωτεινότητας. Όσο αυξάνει η φωτεινότητα ηεικόνα φαίνεται να "σπάζει": οι χαρακτήρες θολώνουν και γίνονται όλο καιπερισσότερο δυσανάγνωστοι. Αυτό το φαινόμενο παρουσιάζεται λίγο-πολύσε όλες τις οθόνες, αλλά εκείνες με χαμηλή ποιότητα το εμφανίζουν πιοέντονα και από χαμηλά επίπεδα φωτεινότητας.

6. Flicker - Κάθε συνηθισμένη οθόνη εμφανίζει μία εικόνα με την πλήρηδημιουργία ενός συνόλου από πλήρως σχηματισμένα και πανομοιότυπακαρέ. Στην περίπτωση της διαπλεγμένης (interlaced) απεικόνισης, κάθεκαρέ σχηματίζεται από την σάρωση κάθε μίας από τις δύο ομάδες (μονές -ζυγές) των γραμμών των ψηφίδων. Λόγω της καθυστέρησης στην πλήρησάρωση, η εικόνα φαίνεται ότι “αναβοσβήνει” (flickers) λίγο ως πολύ.

Page 144: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 144

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

Εκτός από τα παραπάνω χαρακτηριστικά, τελευταία προστέθηκε και το ΜPR II, το οποίοχαρακτηρίζει το ποσό ηλεκτρομαγνητικής ακτινοβολίας, που εκπέμπει μια οθόνη Η/Υ καιμπορεί επάνω από κάποιο όριο να δημιουργήσει προβλήματα υγείας στον χρήστη.

Πιο συγκεκριμένα, στα 1988 μία επιτροπή στην Σουηδία υιοθέτησε ένα στάνταρ για τηνμέτρηση του ηλεκτροστατικού, και του εναλλασσόμενου ηλεκτρικού και μαγνητικούπεδίων σε εκπομπές από ηλεκτρικές συσκευές και αγωγούς. Τον Ιούλιο του 1990 ένασύνολο από στάνταρ εκδόθηκε στην Σουηδία καλύπτοντας Πολύ Χαμηλής Συχνότητας(VLF) εκπομπές. Τον Δεκέμβριο του 1990 υπήρξε ένα ακόμη σύνολο από οδηγίες τοοποίο και καλύπτει μαγνητικά πεδία Εξαιρετικά (ELF) και Πολύ Χαμηλών Συχνοτήτων(VLF)., που με ένα όνομα έγινε γνωστό ως MPR II. Αυτό επεκτάθηκε και καλύπτει πλέονηλεκτροστατικά και εναλλασσόμενα ηλεκτρικά πεδία. Χρησιμοποιείται από τουςκατασκευαστές οθονών Η/Υ ως μέτρο περιορισμού της ακτινοβολίας προς τους χρήστες.

10.2 Κάρτες Γραφικών

Η συσκευή με την οποία κάθε Η/Υ ελέγχει μία οθόνη είναι γνωστή με τον όρο ΚάρταΓραφικών, δεδομένου ότι συνήθως έχει την μορφή κάρτας που τοποθετείται σε κάποιααπό τις θύρες επέκτασης.

Άμεσος σκοπός της κάρτας αυτής είναι να στείλει τα κατάλληλα σήματα ελέγχου καιπληροφορίας στην γεννήτρια κουκίδων της οθόνης ώστε να δημιουργηθεί η συνολικήεικόνα. Επί πλέον, αφαιρεί ένα πολύ μεγάλο τμήμα εργασίας το οποίο διαφορετικά θα είχεη ΚΜΕ. Ας δούμε ποιο είναι αυτό.

Σε κάθε περίπτωση ο Η/Υ σχηματίζει την απεικόνιση της οποιασδήποτε πληροφορίαςστην οθόνη μέσω του συνόλου των διαθέσιμων κουκίδων, όπως είδαμε στην προηγούμενηενότητα. Έστω ότι η συνολική εικόνα σχηματίζεται από 800x600 = 480.000 κουκίδες, μετην κάθε μία να μπορεί να έχει κάποιο από 256 χρώματα. Σε αυτήν την περίπτωσηαπαιτείται ένα byte (28 = 256) για κάθε κουκίδα και επομένως 480.000 bytes μνήμηςσυνολικά, για να κρατήσουν τα δεδομένα για ολόκληρη την εικόνα.

Όλα αυτά τα δεδομένα πρέπει να σταλούν στην οθόνη, αφού μετατραπούν σε κατάλληλασήματα. Επί πλέον η οθόνη δεν έχει μνήμη και κάθε κουκίδα "σβήνει" μετά από κάποιοχρονικό διάστημα. Για να υπάρχει σταθερή εικόνα, θα πρέπει τα παραπάνω δεδομένα νααποστέλλονται στην οθόνη 60 φορές το δευτερόλεπτο (για οθόνη με VSYNC = 60 Hz).Αυτό σημαίνει μεταφορά 480.000x60 = 28.800.000 bytes/sec ή ενός byte κάθε 34 nsec.Προφανώς κάτι τέτοιο θα απαιτούσε σημαντικότατο ποσοστό του χρήσιμου χρόνου ενόςεπεξεργαστή.

Για αυτόν τον λόγο η κάρτα γραφικών μπορεί να θεωρηθεί ανάμεσα στα άλλα ότι είναιένας ξεχωριστός Η/Υ, αν και με ειδικές λειτουργίες. Περιλαμβάνει έναν ειδικόεπεξεργαστή και όση μνήμη απαιτείται για να αποθηκεύσει τις πληροφορίες για κάθε

Page 145: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 145

ψηφίδα που συνθέτει μία εικόνα. Ο ειδικός επεξεργαστής - συνήθως γνωστός σανΕπεξεργαστής Γραφικών - αναλαμβάνει τον έλεγχο όλων των παραπάνω διαδικασιών. ΗΚΜΕ απλά μπορεί να γράψει ή να διαβάσει κάποια πληροφορία για ένα σύνολο απόψηφίδες στην τοπική μνήμη της κάρτας, ώστε να μεταβάλει την τελική μορφή της εικόναςστην οθόνη. Εάν η ΚΜΕ επιθυμεί την εκτέλεση μίας πιο σύνθετης λειτουργίας μπορεί νακαλέσει μία από τις διαθέσιμες ρουτίνες επεξεργασίας γραφικών που βρίσκονταιενσωματωμένες στο ΒΙΟS της κάρτας (επέκταση του στάνταρ BIOS), για ταχύτερηεκτέλεση από τον ειδικό επεξεργαστή γραφικών.

Υπάρχει όμως ένα πρόβλημα ταχύτητας για τις μεγαλύτερες αναλύσεις. Υποθέστεανάλυση γραφικών 1280x1024 (συνήθως σε οθόνες 17’’) με 256 χρώματα. Τότεαπαιτούνται συνολικά 1,28 ΜB τα περιεχόμενα των οποίων θα πρέπει να διαβάζονται (γιαοθόνη με VSYNC 60 Hz) 60 φορές το δευτερόλεπτο. Μπορεί μεν ο ειδικός επεξεργαστήςνα είναι αρκετά γρήγορος, αλλά το ίδιο πρέπει να είναι και η τοπική μνήμη της κάρτας.Με τις παραμέτρους του παραδείγματος μας, βλέπουμε ότι κάθε byte της τοπικής μνήμηςπρέπει να διαβάζεται το πολύ μέσα σε 10 nsec περίπου.

Με ειδικές τεχνικές (χρησιμοποιώντας δίαυλο δεδομένων των 64 ή και 128 bits και άραδιαβάζοντας περισσότερα του ενός byte ταυτόχρονα) μπορεί να αυξηθεί ο ελάχιστοςχρόνος προσπέλασης στα 80 nsec περίπου, κάτι που πλησιάζει την ταχύτητα τωνσημερινών ολοκληρωμένων δυναμικής μνήμης (60 - 80 nsec). Εάν προστεθεί και ο χρόνοςπρόσβασης στην τοπική μνήμη από την ΚΜΕ, είναι φανερό ότι είναι αδύνατον να γίνουνόλες οι εργασίες χωρίς καθυστέρηση. Προκειμένου να μην υπάρξει πρόβλημα στηναπεικόνιση, προτιμάται η καθυστέρηση να "χρεωθεί" στην ΚΜΕ.

Για αυτόν τον λόγο προτάθηκε η χρήση των πιο ακριβών, αλλά πιο γρήγορωνολοκληρωμένων μνήμης Δύο Θυρών προσπέλασης (Dual Port). Εδώ η ιδέα είναι ότι ηπραγματική ταχύτητα προσπέλασης της τοπικής μνήμης παραμένει η ίδια, αλλά είναιδυνατόν να προσπελαύνει ένα τμήμα της ο τοπικός επεξεργαστής γραφικών, ενώ η ΚΜΕπροσπελαύνει κάποιο άλλο. Έτσι η συνολική ταχύτητα της τοπικής μνήμης φαίνεται νααυξάνει, αφού η καθυστέρηση της ΚΜΕ μειώνεται. Στον κόσμο των ΙΒΜ συμβατών ησυνηθισμένη μνήμη είναι ανακριβώς γνωστή σαν DRAM, ενώ η παραπάνω μνήμη σανVRAM (π.χ. κάρτες γραφικών από Diamond Stealth).

Εκτός από τα παραπάνω, είναι σκόπιμο να τονισθεί ότι το σύνολο των σημάτων πουαποστέλλονται από την κάρτα γραφικών πρέπει να ταιριάζουν στην φύση και ταχαρακτηριστικά τους με εκείνα της χρησιμοποιούμενης οθόνης. Στο Σχ. 10.2 φαίνονται ητυπική πρίζα υποδοχής σημάτων σε μία σημερινή αναλογική οθόνη (αναλογική γιατί τασήματα μετατρέπονται από την κάρτα γραφικών σε αναλογικά πριν αποσταλούν στηνοθόνη) και η περιγραφή του κάθε σήματος ανά ακροδέκτη.

Page 146: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 146

Σχ. 10.2 Τυπική Πρίζα Καλωδίου Σύνδεσης Οθόνης και Αντίστοιχα Σήματα

Ειδικά για τους συμβατούς με ΙΒΜ προσωπικούς Η/Υ υπάρχει το πρόβλημα χώρουμνήμης που δημιουργήθηκε από τους περιορισμούς του MS-DOS. Έτσι, υπάρχουν μόνον64 ΚBytes διαθέσιμα για την μνήμη γραφικών, ενώ σήμερα οι απαιτήσεις ξεπερνούνακόμα και τα 2 ΜB. Για τον λόγο αυτό, οι κατασκευαστές καρτών γραφικών για τουςσυγκεκριμένους Η/Υ χρησιμοποιούν μία μέθοδο, που ονομάζεται Bank Switching. Η ιδέαείναι ο διαχωρισμός της μνήμης σε ομάδες των 64 ΚB. Η ΚΜΕ μπορεί να “δει” μόνον 64ΚB από το σύνολο των π.χ. 1MB, αλλάζοντας ομάδα μνήμης με εγγραφή κάποιας τιμής σεμία συγκεκριμένη θύρα (port) του συστήματος.

Τέλος, ένα ακόμα πρόβλημα είναι ότι είτε η κάρτα γραφικών μπορεί να έχει μεγάλεςδυνατότητες που δεν υποστηρίζει η χρησιμοποιούμενη οθόνη, είτε το αντίστροφο. Έστωλοιπόν μία φθηνή κάρτα SVGA όπως η TRIDENT 8900B, με 1 Μb τοπικής μνήμης καιμία επίσης φθηνή έγχρωμη οθόνη 14’’, όπως η CVP-5468 της CTX. Κοιτώντας στοεγχειρίδιο της κάρτας γραφικών, βλέπουμε πως είναι δυνατή η ανάλυση 1024x768ψηφίδων στα 256 χρώματα. (mode 62h). Eπίσης παρατηρούμε πως κάθε ολοκληρωμένομνήμης είναι 256Κx4bits, πράγμα που υπονοεί πως με 8 ολοκληρωμένα (=1Μb) των 80nsec το κάθε ένα, έχουμε ένα τοπικό δίαυλο δεδομένων στην κάρτα γραφικών, που ίσωςέχει εύρος 32 bits.

Για να υποστηριχθεί η παραπάνω ανάλυση, είναι ανάγκη να υπάρχει VSYNC = 86Hz καιΗSYNC = 35,5ΚΗz για την περίπτωση απεικόνισης με διάπλεξη (interlaced) στην οθόνηή VSYNC = 60Hz και ΗSYNC = 47,8ΚΗz για την περίπτωση απεικόνισης χωρίςδιάπλεξη (non-interlaced). Διαβάζοντας το εγχειρίδιο της οθόνης μας, διαπιστώνουμε ότιμπορεί να απεικονίσει έως και 1024x768 ψηφίδες στην οθόνη για οποιονδήποτε αριθμό

Page 147: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 147

χρωμάτων. Το εύρος συχνοτήτων συγχρονισμού είναι όμως VSYNC: 50-90Ηz καιΗSYNC: 30-38kHz.

Για απεικόνιση χωρίς διάπλεξη (το επιθυμητό) το δημιουργούμενο από την κάρταVSYNC βρίσκεται μέσα στα όρια των δυνατοτήτων της οθόνης μας. Το ΗSYNC όμωςόχι. Άρα δεν μπορεί η οθόνη αυτή να απεικονίσει τίποτε σε αυτήν την ανάλυση, χωρίςδιάπλεξη. Παρατηρώντας τις αντίστοιχες τιμές για απεικόνιση με διάπλεξη βλέπουμε, πωςη οθόνη μας τα υποστηρίζει. Άρα για πολύ μεγάλη ανάλυση, αυτή η οθόνη δεν μαςεξυπηρετεί.

Page 148: 1. ÅéóáãùãÞ
Page 149: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 149

11. ΜΕΣΑ ΜΑΖΙΚΗΣ ΑΠΟΘΗΚΕΥΣΗΣ

Όπως είδαμε και σε προηγούμενο κεφάλαιο, ο μικροεπεξεργαστής δεν έχειενσωματωμένη αρκετή μνήμη για όλες τις απαιτούμενες εργασίες και για αυτόν τον σκοπόυπάρχει η κύρια μνήμη με την μορφή της ROM και RAM. Εν τούτοις, παραμένει τοπρόβλημα της αποθήκευσης αρχείων (προγραμμάτων και δεδομένων) που δεν χωράν μέσαστην κύρια μνήμη του υπολογιστή.

Είναι επόμενο ότι χρειάζεται κάποιο άλλο μέσο αποθήκευσης αρχείων που θα πρέπει ναέχει τέσσερα (4) τουλάχιστον χαρακτηριστικά:

1. Η αποθηκευμένη πληροφορία να αποθηκεύεται μόνιμα στο μέσον αυτό. Ηοποιαδήποτε πιθανή μεταβολή (εισαγωγή / διαγραφή) να γίνεται με έλεγχοτου χρήστη.

2. Μεγάλη σχετικά (με την κύρια μνήμη) χωρητικότητα.

3. Να είναι εύκολη η ανάληψη της αποθηκευμένης πληροφορίας όταν αυτόαπαιτείται.

4. Να έχει χαμηλό κόστος εγκατάστασης και διαχείρισης.

Για παράδειγμα, αν υποθέσουμε ότι το χαρτί καλύπτει σχεδόν τα παραπάνωχαρακτηριστικά <1>, <2> και <4>, οπωσδήποτε δεν καλύπτει το χαρακτηριστικό <3>,αφού η πληροφορία που τοποθετείται σε αυτό πρέπει να πληκτρολογηθεί για να εισαχθείεκ νέου στον Η/Υ.

Έχουν κυκλοφορήσει και χρησιμοποιούνται διάφορα τέτοια μέσα, τα οποία καλύπτουν ταπαραπάνω χαρακτηριστικά σε μεγάλο ή μικρό βαθμό. Τα πιο κοινά είναι οι μαγνητικέςδισκέτες (magnetic floppy disks), μαγνητικοί σκληροί δίσκοι (magnetic hard disks),μαγνητικές ταινίες (magnetic tapes) και οπτικοί δίσκοι (optical disks). Αυτά θαπαρουσιασθούν εκτενέστερα στην συνέχεια.

11.1 Μαγνητικές Δισκέτες

11.1.1 Φυσική και Λογική Οργάνωση των Δισκετών

Οι μαγνητικές δισκέτες ή απλά δισκέτες είναι εύκαμπτοι επίπεδοι δίσκοι,κατασκευασμένοι από ένα συνθετικό υλικό ("Mylar"), που έχει επιστρωθεί με μαγνητικόυλικό. Το πάχος τους είναι μικρότερο του ενός χιλιοστομέτρου (1 mm). Το μέγεθός τουςξεκίνησε από τις 8 ίντσες, για να πέσει στις 5,25 ίντσες και μετά στις 3.5 ίντσες. Για

Page 150: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 150

προστασία είναι τοποθετημένοι μέσα σε ένα προστατευτικό περίβλημα, όπως φαίνεται στοΣχ. 11.1 (5,25 ίντσες).

Σχ. 11.1 Δισκέτα μέσα στο Προστατευτικό της Περίβλημα

Η δισκέτα είναι οργανωμένη σε ομόκεντρους κύκλους που ονομάζονται tracks ή cylinders(= κύλινδροι). Οι πληροφορίες δεν αποθηκεύονται σε όλη την επιφάνεια της δισκέτας,αλλά στους κυλίνδρους. Οι δισκέτες 8’’ είχαν 77 κυλίνδρους, οι δισκέτες 5,25’’ είχαν 40κυλίνδρους/πλευρά και εκείνες των 3,5’’ 80 κυλίνδρους/πλευρά. Αρχικάχρησιμοποιούνταν μόνον η μία πλευρά (Single Sided). Σύντομα όμως άρχισαν ναχρησιμοποιούνται και οι δύο πλευρές της.

Όταν η δισκέτα τοποθετείται μέσα στον ειδικό οδηγό (drive), ένα έμβολο συσφίγγεταιεπάνω της στην περιφέρεια της μεγάλης τρύπας και η δισκέτα περιστρέφεται με ταχύτητα300 ή 360 rpm (περιστροφών το λεπτό). Οι δισκέτες 3,5’’ έχουν έναν μεταλλικό δίσκο μεεγκοπές στις οποίες εφαρμόζει το έμβολο, αντί της μεγάλης τρύπας στο κέντρο, καισκληρό πλαστικό προστατευτικό περίβλημα.

Η ιδέα είναι ότι υπάρχει μία ηλεκτρομαγνητική κεφαλή για ανάγνωση/εγγραφή τωνπληροφοριών, η οποία μετακινείται κατά μήκος της θυρίδας κεφαλής (βλ. Σχ. 11.1) για ναπροσπελάσει όλες τις πληροφορίες που βρίσκονται στους κυλίνδρους μίας πλευράς. Κάθεπεριοχή σε έναν κύλινδρο έχει μαγνητισθεί με μία συγκεκριμένη πολικότητα. Ανάλογα μετην κατεύθυνση της μαγνήτισης (πολικότητα), η "πληροφορία" αντιστοιχεί σε 0 ή 1(μέγεθος στοιχειώδους πληροφορίας 1 bit).

Για να γίνει μία εγγραφή πρέπει πρώτα να τοποθετηθεί η κεφαλή επάνω από τον σωστόκύλινδρο. Για τον σκοπό αυτό πρώτα ξεκινάει ο κινητήρας του οδηγού δισκέτας, ώστε ναεπιτευχθεί η απαιτούμενη ταχύτητα περιστροφής (τυπικά 250 ms). Στην συνέχειαχρησιμοποιείται ένας βηματικός κινητήρας (stepping motor) για να μετακινήσει τηνκεφαλή επάνω από τον επιθυμητό κύλινδρο. Για να βρεθεί ο σωστός κύλινδρος οβηματικός κινητήρας μετακινεί την κεφαλή στον πιο εξωτερικό κύλινδρο (κύλινδρος 0)και εκτελεί τόσα βήματα προς το κέντρο της δισκέτας, όσος και ο αύξων αριθμός από τονεπιθυμητό κύλινδρο. Τυπικός χρόνος για μία τέτοια ενέργεια είναι μερικά εκατοντάδες

Page 151: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 151

ms. Μία μικρή τρύπα-δείκτης επάνω στην επιφάνεια της δισκέτας υποδεικνύει την αρχήτων κυλίνδρων.

Στην συνέχεια διοχετεύεται ρεύμα στο πηνίο της κεφαλής για ένα συγκεκριμένο χρονικόδιάστημα προκαλώντας μαγνητική ροή στον σιδερένιο πυρήνα της κεφαλής,μαγνητίζοντας το μαγνητικό υλικό της δισκέτας που βρίσκεται κάτω από αυτήν εκείνηστην στιγμή προς μία συγκεκριμένη κατεύθυνση. Σημειώστε ότι υπάρχει μία ειδικήεγκοπή (τρύπα στις δισκέτες 3.5’’) που επιτρέπει την εγγραφή μόνον εάν περνάει φως απόένα LED (στην μία πλευρά) προς ένα φωτοτρανζίστορ (στην άλλη πλευρά).

Η ανάγνωση γίνεται με την ίδια κεφαλή και με τον ίδιο μηχανισμό, με την διαφορά ότιτώρα δεν διοχετεύεται ρεύμα στο πηνίο της κεφαλής από τον οδηγό της δισκέτας.Αντιθέτως, η μαγνητισμένη επιφάνεια της δισκέτας δημιουργεί (με το γνωστό φαινόμενοτης μαγνητικής επαγωγής) ηλεκτρικό ρεύμα στο πηνίο της κεφαλής - τυπικά μερικά mV.Το ρεύμα αυτό διοχετεύεται σε έναν ενισχυτή και σε έναν συγκριτή που το μετατρέπει στοσυνηθισμένο επίπεδο λογικού σήματος.

Επειδή πλέον έχουν επικρατήσει οι δισκέτες δύο πλευρών, ο τυπικός σημερινός οδηγόςδισκετών έχει δύο κεφαλές, ώστε να μπορεί να προσπελάσει ταυτόχρονα και τις δύοπλευρές της δισκέτας. Το πλεονέκτημα της χρήσης κυλίνδρων είναι ότι οι πληροφορίεςμπορούν να προσπελαθούν πιο γρήγορα, επειδή εφ όσον είναι γνωστός ο κύλινδρος όπουβρίσκεται η πληροφορία, μπορεί η κεφαλή να μετακινηθεί άμεσα σε αυτόν.

Η κωδικοποίηση ενός bit στον μαγνητικό δίσκο γίνεται με την διαμόρφωση FM(Frequency Modulation) για απλή πυκνότητα (Single Density) και ΜFM (ModifiedFrequency Modulation) για διπλή πυκνότητα. Οι δύο αυτοί τρόποι φαίνονται στο Σχ. 11.2.Κάθε ένας παλμός του διαγράμματος αντιπροσωπεύει στην πραγματικότητα μεταβολή τηςπολικότητας στην μαγνητισμένη επιφάνεια.

Σχ. 11.2 Κωδικοποίηση Bits σε Μαγνητικό Δίσκο με FM και MFM Διαμόρφωση

Στην διαμόρφωση FM υπάρχει πάντοτε μεταξύ δύο bits και ένας “παλμός” (συμβολίζεταιμε C στο Σχ. 11.2) ρολογιού. Ο λόγος ύπαρξής του είναι για περισσότερη αξιοπιστία,επειδή η ταχύτητα περιστροφής είναι ίδια, αλλά το μήκος των εξωτερικών κυλίνδρων

Page 152: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 152

είναι μεγαλύτερο από εκείνο των εσωτερικών. Όταν η τιμή του bit είναι 1, υπάρχει ένας“παλμός” (συμβολίζεται με D), διαφορετικά δεν υπάρχει. Η χρονική απόσταση ενός“παλμού” ρολογιού και ενός “παλμού” για τιμή bit 1, είναι 2 μs.

Στην διαμόρφωση ΜFΜ ο συγχρονισμός γίνεται όχι μόνον από τον “παλμό” ρολογιού,αλλά και από εκείνον για τιμή bit 1. Έτσι, ένας “παλμός” ρολογιού καταγράφεται μόνονόταν η τιμή του αμέσως προηγούμενου bit ήταν 0 και η τιμή του ακόλουθου bit είναιεπίσης 0 (όπως φαίνεται και από το Σχ. 11.2). Η χρονική απόσταση ανάμεσα σε δύο“παλμούς” D μειώνεται από 4 σε 2μs και επομένως η χωρητικότητα διπλασιάζεται.

Για ακόμα καλύτερη οργάνωση και ταχύτητα, κάθε κύλινδρος διαιρείται σε τομείς(sectors). Ο διαχωρισμός γίνεται μέσω τρυπών (hard sectoring) ή μέσω αποθήκευσηςειδικών bytes στα κατάλληλα σημεία των κυλίνδρων (soft sectoring). Λόγω ευελιξίας καιαξιοπιστίας σήμερα έχει επικρατήσει το soft sectoring.

Έτσι, ο πιο διαδεδομένος τύπος δισκέτας στους συμβατούς με ΙΒΜ Η/Υ είναι ο 3.5’’HD/DS (High Density/Double Sided), με 2 heads (συνεπώς 2 πλευρές), 80 tracks(κύλινδροι) και 18 sectors/track (18 τομείς / κύλινδρο). Η συνολική του χωρητικότητα (σεχρήσιμες πληροφορίες) είναι 1,44 Μb.

Το πώς γίνεται η λογική διαμόρφωση (formatting) μίας δισκέτας διαφέρει από σύστημα σεσύστημα, είναι αρκετά πολύπλοκο και ξεφεύγει από τους σκοπούς αυτών τωνσημειώσεων. Αρκεί μόνον να αναφερθεί ότι υπάρχει συνήθως μία περιοχή στον κύλινδρο0, που περιέχει πληροφορίες για την λογική οργάνωση της δισκέτας και ότι στην αρχήκάθε κυλίνδρου υπάρχουν: Λογικοί δείκτες με πληροφορίες για τους τομείς, ειδικοί"σημειωτές" στην αρχή κάθε τομέα (ταυτότητα του τομέα), στο τέλος κάθε τομέα για ναδείχνουν το τέλος τους και κάποια CRC bytes.

Τα CRC (Cyclic Redundancy Check) bytes υπολογίζονται και αποθηκεύονται μετά απόκάθε εγγραφή στον τομέα. Κατά την ανάγνωση (που γίνεται κατά τομέα),επαναϋπολογίζεται η τιμή για τα CRC bytes και συγκρίνεται με την αποθηκευμένη τιμή.Αν υπάρχει διαφορά, τότε υπάρχει κάποιο σφάλμα και η εγγραφή δεν είναι 100% σωστή.

11.1.2 Οδηγοί Δισκετών

Σε όλες τις περιπτώσεις δισκετών χρειάζεται και ένας κατάλληλος οδηγός (drive) γιαεγγραφή / ανάγνωση πληροφοριών από αυτές. Όπως και για άλλες περιφερειακέςσυσκευές, υπάρχουν συνήθως δύο "πρίζες". Η πρώτη είναι για σύνδεση τροφοδοσίαςηλεκτρικού ρεύματος από τον Η/Υ - παράδειγμα με το τυπικό φις φαίνεται στο Σχ. 11.3.Προσέξτε τις καμπυλωτές πλευρές του φις, που αποσκοπούν στην αποφυγή λανθασμένηςσύνδεσης.

Η δεύτερη θύρα συνδέεται με μία ομάδα-ταινία καλωδίων (ribbon cable) που μεταφέρουνόλα τα απαραίτητα λογικά σήματα μεταξύ οδηγού και Η/Υ - κοιτάξτε στο Σχ. 11.4 γιαπαράδειγμα. Στην πράξη, η σύνδεση αυτή γίνεται ουσιαστικά μεταξύ ενός ειδικούΕλεγκτή Δισκετών (Disket Controller) που είναι ενσωματωμένος σε μίας κάρτα επέκτασηςτου Η/Υ. Αυτή ελέγχει τις περισσότερες από τις περιφερειακές συσκευές ενός τυπικού

Page 153: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 153

Η/Υ. Σήμερα αυτή η κάρτα ονομάζεται "Πολλαπλή Εισόδου / Εξόδου" (Multi I/O), γιαευνόητους λόγους, αν και υπάρχει η τάση να ενσωματωθούν οι λειτουργίες της επάνωστην μητρική κάρτα (motherboard) του Η/Υ.

Σχ. 11.3 Φις Τροφοδοσίας Ρεύματος για Οδηγό Δισκέτας σε Τυπικό Η/Υ

Σχ. 11.4 Τυπικό Ribon Cable

Ο κυριότερος λόγος ύπαρξης της κάρτας αυτής είναι ότι η κύρια δίαυλος (Bus) ενός Η/Υδεν μπορεί να δεχθεί πληροφορίες από περισσότερες από μία πηγές. Επομένως πρέπει ηπρόσβαση κάθε περιφερειακού σε αυτήν να γίνεται με αυστηρά καθοριζόμενο τρόπο.

11.1.3 Συμπεράσματα

Γενικά οι δισκέτες αποτελούν σήμερα ένα εύχρηστο, αρκετά αξιόπιστο και εξαιρετικάφθηνό μέσον αποθήκευσης και μεταφοράς πληροφοριών από έναν Η/Υ σε άλλον. Επίπλέον η δυνατότητα Τυχαίας Προσπέλασης (Random Access) τις καθιστά εύχρηστες γιαεφαρμογές όπου κάτι τέτοιο απαιτείται (π.χ. Βάσεις Δεδομένων). Έχουν όμως δύο βασικάμειονεκτήματα:

1. Μικρή χωρητικότητα - τυπικά 1,44Μb.

2. Σχετικά μικρή ταχύτητα προσπέλασης των δεδομένων - τυπικά περίπου35Κb/sec.

Page 154: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 154

11.2 Σκληροί Δίσκοι

Οι λεγόμενοι σκληροί δίσκοι (Hard Disks - από το γεγονός ότι δεν είναι εύκαμπτοι) έχουνεισαχθεί λόγω της μεγάλης χωρητικότητας και ταχύτητάς τους, έναντι των δισκετών. Οιβασικές αρχές λειτουργίας τους είναι παρόμοιες με εκείνες των δισκετών, όπως και ησυνδεσμολογία τους Για αυτό εδώ θα αναφερθούν μόνον οι διαφορές τους.

11.2.1 Δομή Σκληρών Δίσκων

Λόγω της φύσεώς τους μπορούν να έχουν ταχύτητες περιστροφής έως και 5.400 στροφέςτο λεπτό, που είναι περισσότερο από δέκα (10) φορές μεγαλύτερη εκείνης των δισκετών.Αυτό έχει ως συνέπεια να αυξάνεται ανάλογα και η ταχύτητα ανάγνωσης / εγγραφής.Επειδή η ταχύτητα είναι μεγαλύτερη οι κύλινδροι, αλλά και γειτονικά bits μπορούν νατοποθετηθούν πλησιέστερα μεταξύ τους. Για να αυξηθεί όμως η αξιοπιστία μίας τέτοιαςοργάνωσης οι δίσκοι είναι κλεισμένοι αεροστεγώς σε μεταλλικό περίβλημα, που εμποδίζεισκόνη και άλλα σωματίδια να καθίσουν στην μαγνητική επιφάνεια.

Το πρόβλημα είναι ότι η χωρητικότητα αυξάνει μέχρις ενός ορισμένου σημείου για ένανδίσκο. Για να αυξηθεί η χωρητικότητα, συνήθως τοποθετούνται πολλοί επιμέρους δίσκοιμέσα σε έναν σκληρό δίσκο (όπως φαίνεται και από το Σχ. 11.5). Αυτοί τοποθετούνταιστον ίδιο άξονα περιστροφής σε κάποια απόσταση μεταξύ τους, ώστε να μπορεί ναεισχωρήσει στο διάκενο μία κεφαλή ανάγνωσης / εγγραφής για κάθε έναν.

Μία σημαντική διαφορά με τις δισκέτες είναι ότι οι κεφαλές ποτέ δεν ακουμπούν στηνεπιφάνεια των δίσκων (εκτός εάν υπάρξει κάποια βλάβη). Η ροή αέρα που δημιουργείταιαπό την μεγάλη ταχύτητα περιστροφής εξασφαλίζει μία απόσταση της τάξης των 10εκατομμυριοστών της ίντσας μεταξύ της κεφαλής και του κάθε δίσκου. Έτσι αυξάνεται ηταχύτητα και μειώνεται η φθορά τους. Για αυτόν τον λόγο σωματίδια όπως οι σκόνη δενεπιτρέπεται να εισχωρήσουν γιατί η διάμετρός τους μπορεί να είναι μεγαλύτερη από τηνπαραπάνω απόσταση. Για λόγους ασφαλείας άλλωστε, όταν δεν γίνεται προσπέλασηδεδομένων οι κεφαλές τοποθετούνται σε μία ζώνη σταθμεύσεως (parking zone) όπου δεντοποθετούνται δεδομένα.

Σχ. 11.5 Τυπικός Σκληρός Δίσκος με πολλούς επιμέρους Δίσκους

Page 155: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 155

Ο τρόπος εγγραφής bits στην επιφάνειά τους είναι ο MFM που παρουσιάσθηκε στηνπροηγούμενη ενότητα ή συνηθέστερα ο RLL (Run Length Limited). Κυκλοφορούν σεδιάφορα μεγέθη, αλλά έχουν πλέον επικρατήσει οι δίσκοι 3,5’’. Και για αυτούς απαιτείταιένας ειδικός ελεγκτής (σε μορφή ολοκληρωμένου κυκλώματος - π.χ. ο 82064 της Intel),που αναλαμβάνει και τις περισσότερες εργασίες. Αυτός, ανάλογα με τον τύπο του δίσκουμπορεί να είναι ενσωματωμένος στον δίσκο ή στην ενδιάμεση κάρτα επέκτασης εισόδου /εξόδου του Η/Υ. Για να αυξηθεί η ταχύτητα προσπέλασης ακόμα περισσότερα, αρκετάμοντέλα σήμερα διαθέτουν και κάποιο ποσό λανθάνουσας (cache) μνήμης.

Στον υπόλοιπο Η/Υ βέβαια ένας σκληρός δίσκος εμφανίζεται σαν μία λογική οντότηταπου αποτελείται από κεφαλές, κυλίνδρους και τομείς. Κατ’ αυτόν τον τρόπο είναιπαρόμοιος με μία δισκέτα, αλλά με μεγαλύτερη χωρητικότητα και ταχύτητα. Και εδώυπάρχουν διαφορετικοί τρόποι για την λογική τους οργάνωση που εξαρτώνται όχι μόνοναπό τον τύπο του Η/Υ, αλλά και από το λειτουργικό σύστημα που χρησιμοποιείται. Είναιεπίσης δυνατό να χωρισθεί ο δίσκος λογικά σε μικρότερους “δίσκους” για καλύτερηοργάνωση των αρχείων ενός Η/Υ.

Επίσης έχουν κυκλοφορήσει και “μετακινούμενοι” (removable) σκληροί δίσκοι μεχωρητικότητες (σήμερα) περίπου 270 Μb (Syquest), που χρησιμοποιούνται κυρίως απόεπαγγελματίες που πρέπει να μεταφέρουν μεγάλα αρχεία. Τέτοιο παράδειγμα είναι οιμακετίστες που θέλουν να μεταφέρουν σύνθετες έγχρωμες εικόνες στο τυπογραφείο γιαεκτύπωση. Αρχεία της τάξης των 80 MB θα απαιτούσαν τουλάχιστον 25 δισκέτες για ναμεταφερθούν.

11.2.2 Ορολογία και Τύποι Σκληρών Δίσκων

Η επιλογή δισκετών σήμερα δεν είναι κάτι το εξαιρετικά δύσκολο αφού τα διάφοραχαρακτηριστικά τους είναι ουσιαστικά σταθερά. Υπάρχει όμως μία πληθώρα απόσκληρούς δίσκους με διαφορετικά τεχνικά χαρακτηριστικά, που αρκετές φορές έχουνδιαφορετικές απαιτήσεις προκειμένου να λειτουργήσουν σωστά μέσα σε έναν Η/Υ. Είναιλοιπόν σκόπιμο να γίνει μία παρουσίαση των διαφόρων αυτών χαρακτηριστικών.

1. Χωρητικότητα: Όπως αναφέρθηκε και για τις δισκέτες, ένα τμήμα τουσκληρού δίσκου καταλαμβάνεται από ειδικές πληροφορίες όπως η αρχήκαι το τέλος ενός τομέα, τα CRC bytes, κλπ. Τυπικά αυτές οι πληροφορίεςκαταλαμβάνουν το 15% της συνολικής χωρητικότητας του δίσκου,αφήνοντας μόνον το υπόλοιπο για χρήσιμες πληροφορίες. Επομένως θαπρέπει κανείς να προσέχει την χωρητικότητα του δίσκου μετά από τηνλογική του διαμόρφωση (formatting = φορμάρισμα). Για να τηνυπολογίσετε μόνοι σας, εφαρμόστε τον παρακάτω τύπο σε φορμαρισμένοδίσκο:

<κεφαλές> x <κύλινδροι> x <τομείς ανά κύλινδρο> = Χ bytes

2. Ταχύτητα: Η ταχύτητα ενός δίσκου είναι κάτι σύνθετο που απαρτίζεταιαπό ορισμένες άλλες ταχύτητες ή παράγοντες. Η πρώτη ταχύτητα είναι ο

Page 156: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 156

Ρυθμός Μεταφοράς Δεδομένων (Disk Transfer Rate), που εκφράζει τοπόσο γρήγορα περνούν τα δεδομένα κάτω από οποιαδήποτε κεφαλή. Πιοσυγκεκριμένα είναι το γινόμενο:

<bytes ανά κύλινδρο> x <περιστροφές ανά δευτερόλεπτο> = Χ bytes/sec

Ο παραπάνω τύπος είναι το θεωρητικό άνω όριο, επειδή υποτίθεται δενυπάρχουν ανασταλτικοί παράγοντες όπως ο κατακερματισμός αρχείων(fragmentation), μόνον ένας κύλινδρος και μία κεφαλή χρειάζεται ναχρησιμοποιηθούν, κλπ.

Η δεύτερη ταχύτητα είναι η Μέση Ταχύτητα Προσπέλασης (Average Access Time) καιεκφράζει το άθροισμα του μέσου χρόνου που χρειάζεται για την μετακίνηση των κεφαλώναπό το ένα σημείο στο άλλο (Seek Time) και ο χρόνος που χρειάζεται ο επιθυμητόςτομέας για να περάσει κάτω από την αντίστοιχη κεφαλή μόλις αυτή τοποθετηθεί στοσωστό σημείο από το προηγούμενο βήμα (Latency Time). Οι κατασκευαστές δίνουν τονχρόνο Seek Time σαν την μέση ταχύτητα προσπέλασης, αλλά στην πραγματικότηταπρέπει να προσθέσετε και το Latency Time, το οποίο για ένα δίσκο με 3.600 rpm, είναιπερίπου 8,33 ms.

Υπάρχουν και άλλοι σημαντικοί παράγοντες που επηρεάζουν την ταχύτητα ενός δίσκου,όπως ο λεγόμενος Interleave - δηλ. η αρίθμηση των τομέων με τέτοιο τρόπο (όχι κατ’ανάγκην διαδοχικό), ώστε ο ελεγκτής δίσκου να διαβάζει σχεδόν αμέσως τον επόμενοτομέα μόλις του επιτραπεί κάτι τέτοιο από το σύστημα (σήμερα συνήθως 1:1, συνεπώςδεν υπάρχει) - το λεγόμενο Τrack Buffering, όπου διαβάζεται μετά από μία ανάγνωση οεπόμενος κύλινδρος, με την ελπίδα ότι οι πληροφορίες του θα είναι οι επόμενες που θαζητηθούν, ο Κατακερματισμός (Fragmentation) των αρχείων όπου ένα αρχείο είναιαποθηκευμένο σε απομακρυσμένους μεταξύ τους τομείς ή κυλίνδρους, κλπ.

Τύποι / Στάνταρ Σκληρών Δίσκων

Μία ταξινόμηση των σκληρών δίσκων γίνεται συνήθως, ανάλογα με τον τρόποδιασύνδεσης με το υπόλοιπο υπολογιστικό σύστημα, το λεγόμενο Interface. Στον κόσμοτων προσωπικών Η/Υ, που κυρίως ενδιαφέρει αυτές τις σημειώσεις, κυκλοφόρησαν οιτύποι: ST506/ST412 (από δύο μοντέλα δίσκων της Seagate), ESDI (Enhanced SmallDevice Interface), ΙDE (Intelligent Device Electronics), SCSI (Small Computer SystemInterface) και πρόσφατα το ΕΙDE (Enhanced IDE). Ουσιαστικά οι δύο πρώτοι τύποι έχουνεκλείψει και δεν πρόκειται να αναφερθούμε σε αυτούς.

Ο τύπος SCSI έχει τον ελεγκτή του δίσκου ενσωματωμένο στον τελευταίο, καθιστώνταςτον έναν “έξυπνο” δίσκο. Ένας τέτοιος δίσκος μπορεί να “καταλάβει” άμεσα ένανσημαντικό αριθμό από ισχυρές εντολές. Το μεγαλύτερο όμως πλεονέκτημα του λεγόμενουSCSI Interface είναι ότι σε μία κάρτα-ελεγκτή SCSI μπορούν να τοποθετηθούν (σε σειρά)έως και επτά (7) δίσκοι (διαφορετικών χαρακτηριστικών αλλά τύπου SCSI) ή άλλεςπεριφερειακές συσκευές όπως σαρωτές (scanners), οδηγοί ταινιών (tape streamers), κλπ.Επίσης μπορεί να υπάρχει εντολή ανάγνωσης στην μία συσκευή, ενώ υπάρχει εντολήεγγραφής σε μία άλλη.

Page 157: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 157

Η χωρητικότητά τους φθάνει (σήμερα) ακόμα και τα 10 GB, με Seek Time 10 ms ήμικρότερο και το ίδιο το στάνταρ δεν επιβάλει κανέναν ουσιαστικό περιορισμό, ούτεδημιουργείται κανένα πρόβλημα από τυχόν περιορισμούς του BIOS ή του MS-DOS. Γιααυτούς τους λόγους χρησιμοποιείται κατ' εξοχήν σήμερα για δίσκους και άλλαπεριφερειακά Η/Υ που αποτελούν τους εξυπηρέτες (servers) τοπικών δικτύων. Φυσικά ητιμή τους είναι και η υψηλότερη. Υπάρχουν σε δύο παραλλαγές: Fast SCSI και WideSCSI.

Ο τύπος IDE έχει και αυτός τον ελεγκτή του δίσκου ενσωματωμένο στον δίσκο, αλλάείναι απλούστερος από εκείνον του SCSI με κύριο μέλημα την συμβατότητα με το BIOSτων προσωπικών Η/Υ της ΙΒΜ. Μπορούν δε συνήθως να λειτουργήσουν στις φυσικέςτους παραμέτρους ή με μεταφραστικό τρόπο (translate mode) οπότε προσομοιώνουνδίσκους με τα πλησιέστερα δυνατά χαρακτηριστικά που αναγνωρίζονται από το BIOS.Επιπλέον είναι δυνατή η ύπαρξη έως δύο το πολύ σκληρών δίσκων αυτού του τύπου μεέναν Κύριο (Master) και έναν Σκλάβο (Slave). Η χωρητικότητά τους μέχρι πρόσφαταέφθανε τα 512 Μb. Όλα αυτά, σε συνδυασμό με το χαμηλό τους κόστος τα έχουν κάνειεξαιρετικά δημοφιλή.

Περιορισμοί του ΒΙΟS στα 512 Μb και εφαρμογές που διαρκώς απαιτούν περισσότεροχώρο στον δίσκο, έκαναν την Western Digital να προτείνει έναν τύπο παρόμοιο με τοSCSI που επιτρέπει έως και τέσσερα (4) περιφερειακά και όχι μόνον δίσκους. Τοκαινούργιο στάνταρ ονομάσθηκε EIDE και σύντομα υιοθετήθηκε από όλους τουςκατασκευαστές δίσκων. Αυτό αποτελεί επέκταση του IDE.

Δίσκοι τύπου IDE (και άρα EIDE) με μεγαλύτερες χωρητικότητες έχουν κάνει τηνεμφάνισή τους και φθάνουν σήμερα τα 1,6 GB με Seek Time 10 ms ή χαμηλότερο.Γενικά, αυτοί οι δίσκοι έχουν επικρατήσει στους Η/Υ όπου το χαμηλό κόστος αποτελείσημαντικό παράγοντα. Εάν χρειάζονται περισσότερες λειτουργίες, περιφερειακά,ταχύτητα και επεκτασιμότητα, τότε η επιλογή είναι σχεδόν πάντοτε ο τύπος SCSI.

11.3 Μαγνητικές Ταινίες

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

Η αρχή λειτουργίας τους είναι παρόμοια με εκείνη και των άλλων μαγνητικών μέσων, μετην βασική διαφορά ότι μία ταινία δεν μπορεί να χωρισθεί σε φυσικά και λογικά τμήματα,κάθε ένα από τα οποία μπορεί να προσπελασθεί σχεδόν άμεσα. Έτσι, για να αρχίσει ηκεφαλή να διαβάζει ή να γράφει στο μέσον μίας ταινίας ή τελευταία πρέπει να ξετυλιχθείέως εκείνο το σημείο, κάτι που κάνει πρακτικά αδύνατη την λεγόμενη "τυχαίαπροσπέλαση" (random access). Οι πληροφορίες μπορούν να διαβαστούν μόνον σειριακάστην πράξη.

Page 158: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 158

Για τον λόγο αυτό οι μαγνητικές ταινίες χρησιμοποιούνται σήμερα κυρίως ως εφεδρικόμέσο για σκληρούς δίσκους και γενικά αποθήκευση δεδομένων, που είτε δεν χρειάζονταιάμεσα, είτε είναι πολύ σημαντικά. Η αξιοπιστία τους θεωρείται χαμηλότερη από εκείνητων σκληρών δίσκων, επειδή η ποσότητα του επιστρωμένου μαγνητικού υλικού είναιχαμηλότερη, αλλά και λόγω του "τυλίγματος" και "ξετυλίγματος" της ταινίας πουτυλίγεται μηχανικά γύρω από τον εαυτό της.

Υπάρχουν δύο μορφές με τις οποίες υπάρχουν μαγνητικές ταινίες σήμερα. Η πρώτη καιπαλαιότερη μορφή είναι το γνωστό "καρούλι", ενώ η δεύτερη είναι η "κασέτα".

11.3.1 Παλιές Μονάδες Μαγνητικών Ταινιών

Μαγνητικές ταινίες αυτού του τύπου χρησιμοποιούνται πλέον μόνον σε παλαιότερασυστήματα mainframe ή mini-υπολογιστών. Η ταινία αυτή καθαυτή έχει πλάτος μισήςίντσας και μήκος 600 - 2.400 πόδια. Ο πιο συνηθισμένος τύπος οργάνωσης των εγγραφώνείναι των 9 tracks (ίχνη). Από αυτά τα 8 αντιπροσωπεύουν τα 8 bits πληροφορίας και τοένατο το parity bit (ισοτιμίας). Για περισσότερες πληροφορίες, ανατρέξτε στο [ΒΑΦ93] ήστα αντίστοιχα εγχειρίδια των κατασκευαστών.

Η χωρητικότητά τους μετράται συνήθως σε ΒΡΙ (= Bits Per Inch) και συνηθισμένες τιμέςείναι από 800 - 6250 ΒΡΙ. Επειδή οι πληροφορίες εγγράφονται κατά ομάδες (blocks) μεμεσοδιαστήματα ομάδων (InteRblock Gaps) για συγχρονισμό του μηχανισμού ανάγνωσης/ εγγραφής, περίπου το 80-90% της ταινίας έχει χρήσιμες πληροφορίες. Τυπικές τιμές γιατις ταινίες αυτές είναι περίπου 150 - 500 ΜΒ, με ταχύτητες ανάγνωσης από 15 - 1250 ΚΒ/ sec.

Υπάρχουν τουλάχιστον τρία σοβαρά μειονεκτήματα αυτών των ταινιών. Το πρώτομειονέκτημά τους είναι το μέγεθός τους, που κάνει τους μηχανισμούς οδήγησης τουςογκώδεις, δύσχρηστους και ακριβούς.

Το δεύτερο μειονέκτημα είναι ότι για να επιτευχθεί η σωστή εγκατάσταση της ταινίας, θαπρέπει να καταστεί βέβαιο ότι η αρχή της ταινίας (που τυλίγεται σε ένα δεύτερο καρούλι)διαβάζεται σωστά. Για τον σκοπό αυτόν χρησιμοποιείται συνήθως πεπιεσμένος αέρας πουπαράγεται από την μονάδα οδήγησης και “σπρώχνει” την άκρη της ταινίας στο δεύτεροκαρούλι στο οποίο και την τυλίγει, στερεώνοντάς την και στην συνέχεια βρίσκει τηνλογική αρχή της ταινίας, που συνήθως είναι ένα μεταλλικό φύλλο. Αυτός ο μηχανισμόςανεβάζει το κόστος.

Το τρίτο μειονέκτημα είναι η μικρή (πλέον) χωρητικότητα αυτών των ταινιών, ότανκυκλοφορούν σκληροί δίσκοι 10 GB.

11.3.2 Σημερινά Στάνταρ σε Μικρο-υπολογιστές

Page 159: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 159

Σήμερα έχει πλέον καθιερωθεί οι μαγνητικές ταινίες να κυκλοφορούν σε μορφή μικρώνκαρουλιών (ένα που τυλίγεται και το άλλο που ξετυλίγεται) εγκλεισμένα σε ειδικόπροστατευτικό περίβλημα, όπως οι κοινές κασέτες.

Τα χαρακτηριστικά τους ποικίλουν και για αυτό είναι σκόπιμο να εξετασθούν για να γίνειστην συνέχεια δυνατή η σύγκρισή τους. Τα χαρακτηριστικά αυτά είναι:

1. Το στάνταρ εγγραφής στην ταινία. Αυτό σχετίζεται με την αξιοπιστία τηςεγγραφής και την χωρητικότητα της ταινίας.

2. Το στάνταρ της ίδιας της κασέτας, που αντιστοιχεί στο πλάτος και μήκοςτης μαγνητικής ταινίας και επομένως και στην χωρητικότητά της.

Επί πλέον θα αναφερθεί ο τρόπος διασύνδεσης του οδηγού ταινιών που χρησιμοποιείταιμε τον υπόλοιπο Η/Υ και η ταχύτητα μεταφοράς δεδομένων από/προς την ταινία. Σε όλεςτις περιπτώσεις, χρησιμοποιούνται αλγόριθμοι συμπίεσης αρχείων, ώστε η χωρητικότητατων κασετών να αυξάνει. Ο τυπικός παράγοντας συμπίεσης για αρχεία όλων των τύπων(κειμένου και κώδικα) είναι 1,6. Έτσι, εάν η χωρητικότητα (χωρίς συμπίεση) μίας κασέταςείναι 100 ΜΒ, με συμπίεση η αναμενόμενη χωρητικότητα είναι περίπου 160 ΜΒ.

Πίνακας 11-1 Στάνταρ Μαγνητικών Ταινιών

ΣτάνταρΕγγραφής

Τύποςκασέτας

Μήκος(Πόδια)

Πλάτος(Ίντσες)

Χωρητικότητα(Ασυμπίεστη)

QIC-3080Wide

QW3080XLF 400 0,315 2,0 GB

QIC-3080 QD3080XLF 400 0,250 1,6 GBQIC-3020 Wide QW3020XLF 400 0,315 850 MB

QIC-3020 QIC-3020 400 0,250 680 MBQIC-3010

WideQW3010XLF 400 0,315 425 MB

QIC-3010 MC3000XL 400 0,250 340 MBQIC-80Wide

QW5122F 400 0,315 200 MB

QIC-80 DC-2120XL 425 0,250 170 MBQIC-80 DC-2120 307,5 0,250 120 MB

DAT DDS-2 DAT 120M 4 GBDAT DDS-2 DAT 90M 2 GBDAT DDS DAT 90M 2 GB

Βασικά, έχουν επικρατήσει δύο οικογένειες από τρόπους εγγραφής δεδομένων σε μίαταινία: DAT και QIC (Quarter Inch Cartridge). Η πρώτη δίνει και την μεγαλύτερηχωρητικότητα (4 GB), αλλά η πιο νεώτερη μορφή της QIC (QIC-3080 Wide) είναι πολύκοντά με χωρητικότητα 2 GB. Γενικά, οι ταινίες και οδηγοί τύπου DAT θεωρούνταιταχύτεροι και πιο αξιόπιστοι, αλλά φυσικά είναι και ακριβότεροι.

Οι ταινίες της οικογένειας QIC έχουν όπως φαίνεται και από τον Πίνακα 11.1 πολλές επίμέρους διαφορές. Οι οδηγοί των περισσοτέρων ταινιών αυτής της κατηγορίας έχουν τοπλεονέκτημα ότι μπορούν να διαβάσουν ταινίες άλλων τύπων της ίδιας οικογένειας.

Page 160: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 160

Η λογική αρχή της ταινίας ορίζεται με δύο διαδοχικές τρύπες, που ανιχνεύονται από τονμηχανισμό του οδηγού όταν τοποθετείται η ταινία σε αυτόν. Εάν για κάποιο λόγο (π.χ.σκόνη) ο μηχανισμός δεν "διακρίνει" αυτές τις τρύπες, η ταινία συνεχίζει να τυλίγεταιπρος την ίδια πλευρά έως ότου ξετυλιχθεί πλήρως από το ένα καρούλι, οπότε σχεδόνπάντοτε μπορεί να καταστραφεί. Αυτό συμβαίνει τουλάχιστον στις ταινίες τύπου DC-2120.

Αρχικά οι οδηγοί ταινιών της οικογένειας QIC, διασυνσυνδέονταν με τον Η/Υ εσωτερικάμέσω του ελεγκτή οδηγού δισκετών. Η ταχύτητα μεταφοράς δεδομένων επομένως ήτανχαμηλή (500 ΚΒ/sec, χρόνος formatting μίας DC-2120 1,5 ώρα), αλλά το κόστος αρκετάχαμηλό ώστε να γίνουν εξαιρετικά δημοφιλείς, με κύριους εκπροσώπους τα μοντέλαJumbo 120 και Jumbo 250 (με QIC-40 και QIC-80) της Colorado. Για μεγαλύτερηταχύτητα (και κόστος) χρειάζεται στα περισσότερα μοντέλα ειδική κάρτα που τα συνδέεισε θύρα επέκτασης του Η/Υ. Η ταχύτητα ανεβαίνει στις περισσότερες περιπτώσεις 2-3φορές.

Επειδή πουλήθηκαν πολλές μονάδες εφεδρείας τύπου QIC-80 ήταν φυσικό να γίνειπροσπάθεια αύξησης της χωρητικότητας των ταινιών DC-2120. Αυτό μπορούσε να γίνειμόνον με την αύξηση του μήκους της ταινίας μέσα στην κασέτα και έτσι προέκυψε οτύπος DC-2120XL. Εν τούτοις, δεδομένου του πλάτους, του τρόπου εγγραφής και τουμεγέθους της κασέτας, για να αυξηθεί το μήκος της ταινίας, πρέπει να μικρύνει το πάχοςτης. Κάτι τέτοιο μπορεί να γίνει μόνον ως ένα σημείο, γιατί έτσι μειώνεται η αντοχή της(περιστρέφεται μηχανικά) και η αξιοπιστία της (μπορεί να “γλιστρήσει” πιο εύκολα καιαυξάνεται η αλληλεπίδραση των μαγνητικών πεδίων). Για αυτό και προτάθηκαν άλλαστάνταρ, με αύξηση του πλάτους, κλπ της ταινίας.

Σύντομα αναμένονται να κυκλοφορήσουν οδηγοί ταινιών QIC, που δεν θα χρειάζονταιειδική κάρτα διασύνδεσης, αλλά θα είναι τύπου ΑΤΑΡΙ.

Η οικογένεια DAT έρχεται να καλύψει στις περισσότερες περιπτώσεις τις απαιτήσεις γιαμεγάλη χωρητικότητα, αξιοπιστία και ταχύτητα μεταφοράς δεδομένων. Λόγω αυξημένουκόστους σε σχέση με τους οδηγούς ταινιών τύπου QIC, χρησιμοποιείται κυρίως σεΥπηρέτες Αρχείων (File Servers) τοπικών δικτύων. Η μέγιστη χωρητικότητα (βλ. Πίνακα9.1) επί του παρόντος είναι 4 GB. Οι οδηγοί ταινιών αυτού του τύπου δεν απαιτούν καμίαειδική κάρτα ελέγχου για να επιτύχουν υψηλές ταχύτητες δεδομένων, αλλά διασυνδέονταιμέσω του ελεγκτή SCSI που πλέον υπάρχει σε κάθε υπηρέτη αρχείων. Η ταχύτητα αυτήφθάνει τα 21 ΜΒ/sec.

Παρ' όλο που δεν αναφέρονται στον Πίνακα 11.1, υπάρχουν και άλλα στάνταρμαγνητικών ταινιών, που όμως είναι ακριβότερες και όχι τόσο δημοφιλείς, όπως οι ταινίες8 mm (π.χ. από την Exabyte) με μέγιστη χωρητικότητα 8 GB. Σε όλες τις περιπτώσειςπρέπει να σταθμίζονται η απόδοση, το κόστος και η αξιοπιστία των μέσων εφεδρείας πουπρόκειται να χρησιμοποιηθούν, σε σχέση με την μορφή και το πλήθος των δεδομένων.

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

Page 161: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 161

απαιτείται η μεγαλύτερη δυνατή ευελιξία μία εξωτερική μονάδα (π.χ. JMC Trakker πούσυνδέεται στην παράλληλη θύρα του Η/Υ) είναι μία αξιοπρόσεκτη επιλογή.

Page 162: 1. ÅéóáãùãÞ
Page 163: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 163

12. ΕΚΤΥΠΩΤΙΚΕΣ ΣΥΣΚΕΥΕΣ

Παρά τις μεγάλες προόδους της πληροφορικής στον τομέα της οργάνωσης γραφείου, είναιακόμα και σήμερα απαραίτητη η αποτύπωση πληροφοριών (δεδομένων ή αποτελεσμάτων)επάνω σε χαρτί. Για τον σκοπό αυτόν έχει αναπτυχθεί μία παράλληλη κατηγορίασυσκευών: οι εκτυπωτικές συσκευές ή εκτυπωτές.

Όπως και σε όλες τις περιπτώσεις όπου είναι απαραίτητο να κάνουμε συγκρίσεις, έτσι καιεδώ είναι απαραίτητη η υιοθέτηση κάποιων μονάδων μέτρησης, με τις οποίες μπορούμενα μετρήσουμε κάποια χαρακτηριστικά. Αυτά τα χαρακτηριστικά, με τις αντίστοιχεςμονάδες μέτρησης είναι τα εξής:

1. Resolution (Ανάλυση) - DPI (Dots Per Inch) - Εκφράζει τον βαθμόανάλυσης τον οποίον μπορεί να πετύχει ο εκτυπωτής, μετρώντας τον σεκουκίδες ανά ίντσα. Όσο πιο μεγάλος ο αριθμός αυτός, τόσο πιο καλή ηποιότητα εκτυπώσεως που επιτυγχάνεται.

2. Ταχύτητα - CPS (Characters Per Second) / Pages Per Minute - Ηταχύτητα εκτυπώσεως είναι επίσης πολύ σημαντική, ιδίως για μακρέςεκτυπώσεις (πολλές σελίδες ή πολλά αντίτυπα). Συνήθως μετράται σεΧαρακτήρες ανά Δευτερόλεπτο (CPI), αλλά πολλές φορές και σε Σελίδεςανά Λεπτό (PPM), μια και σήμερα είναι δυνατή η εκτύπωση πολύπλοκωνγραφικών εικόνων που δεν περιέχουν κοινούς χαρακτήρες. Όσο πιομεγάλος ο αριθμός, τόσο μεγαλύτερη η ταχύτητα εκτύπωσης.

3. Κόστος Εκτύπωσης - Κόστος ανά Σελίδα - Αυτό το μέγεθος έχειεισαχθεί σχετικά πρόσφατα και εκφράζει το συνολικό κόστος μίας σελίδαςεκτύπωσης. Αυτό μπορεί (ανάλογα με το πλήθος των παραγόντων πουλαμβάνονται υπ’ όψιν) να περιλαμβάνει μόνον το κόστος των αναλωσίμωνυλικών διαιρεμένο με το πλήθος των σελίδων που τυπώθηκαν με αυτά.

Υπάρχουν επίσης και ορισμένα άλλα χαρακτηριστικά τα οποία όμως δεν είναι πάνταμετρήσιμα ή που η μέτρησή τους έχει μόνον ενδεικτικό νόημα. Π.χ. η δυνατότηταεκτύπωσης οποιασδήποτε Γραμματοσειράς (Font), η υποστήριξη της γλώσσαςPostscript, χρώματος, η υποστήριξη σελίδων διαφορετικού μεγέθους, το μέγεθος τουbuffer, ο τρόπος συνδεσμολογίας του εκτυπωτή με το υπόλοιπο σύστημα (Serial, Parallel,Ethernet), κλπ.

Ειδικά, κάθε γραμματοσειρά αποτελείται από ένα σύνολο χαρακτήρων το οποίο έχεισυγκεκριμένο σχήμα ή μορφή, αλλά όχι και μέγεθος, ενώ το χαρτί μπορεί να είναισυνεχούς τροφοδοσίας (ή “Μηχανογραφικό” όπως κοινώς είναι γνωστό στην Ελλάδα)με ειδικές τρύπες στις δύο άκρες του ή κοινό γραφείου (ή κοινώς “Ξηρογραφικό”μεγέθους Α4). Η κάθε σελίδα του Μηχανογραφικού χαρτιού συνήθως έχει μέγεθος (σε

Page 164: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 164

ίντσες με πρώτο το μήκος) 11’’ x 9’’, ενώ το Ξηρογραφικό 11,69’’ x 8,27’’. Στις ΗΠΑχρησιμοποιούνται άλλα μεγέθη.

Λόγω της πολυπλοκότητας των εγγράφων (κειμένων και γραφικών) οι περισσότεροι απότους σημερινούς εκτυπωτές έχουν πλέον ενσωματωμένο έναν ειδικό μικροεπεξεργαστήπου αναλαμβάνει το μεγαλύτερο τμήμα της εκτυπωτικής εργασίας, απελευθερώνοντας τονκύριο επεξεργαστή του υπολογιστή (που στέλνει το αρχείο που χρειάζεται να τυπωθεί).

Σημαντικό είναι επίσης να αναφερθεί ότι για ευκολία, αλλά και ακρίβεια εκτυπώσεως καισυμβατότητα ανάμεσα σε διαφορετικά μοντέλα εκτυπωτών, έχουν προταθεί καιχρησιμοποιούνται ειδικές γλώσσες για εκτύπωση χαρακτήρων και γραφικών. Με αυτόντον τρόπο, διαφορετικοί εκτυπωτές εμφανίζονται σαν ένας τύπος εκτυπωτή, κάνοντας τηνσυγγραφή drivers πιο εύκολη και με λιγότερα λάθη. Η πιο διαδεδομένη εμπορικά γλώσσαείναι η Postscript (και η διάδοχός της Postscript 2) και η PCL της Hewlett Packard (η πιονεώτερη έκδοση είναι η PCL 5e).

Ο τρόπος σύνδεσης ποικίλει ανάλογα με τον εκτυπωτή και τις ανάγκες στην συγκεκριμένηεγκατάσταση. Ο πλέον διαδεδομένος τρόπος είναι να χρησιμοποιηθεί μία παράλληλη θύρααπό τον υπολογιστή στον εκτυπωτή, αν και συνδέσεις μέσω μίας σειριακής θύρας (RS-232C) δεν είναι απίθανες. Πρόσφατα διατίθεται και η δυνατότητα σύνδεσης μέσω τουγνωστού μας SCSI. Τέλος για τοπικά δίκτυα υπολογιστών χρησιμοποιείται συνήθως ησύνδεση μέσω Ethernet, όπου αυτή είναι διαθέσιμη.

12.1 Εκτυπωτές Πρόσκρουσης

Η βασική ιδέα πίσω από τις τεχνικές εκτυπώσεως αυτής της κατηγορίας είναι ηχρησιμοποίηση κάποιου μηχανικού στελέχους (ή στελεχών) που απαρτίζει την μήτρα τουεπιθυμητού χαρακτήρα. Αυτό προσκρούει την κατάλληλη στιγμή σε μία μελανοταινία πουπαρεμβάλλεται ανάμεσα στο στέλεχος και το χαρτί, δημιουργώντας ένα "αποτύπωμα" τουχαρακτήρα στο χαρτί. Υπάρχουν δύο βασικές κατηγορίες εκτυπωτών πρόσκρουσης: ΜεΈτοιμες Μήτρες Χαρακτήρων και οι Εκτυπωτές Πίνακα Ακίδων (Dot Matrix).

12.1.1 Εκτυπωτές Πρόσκρουσης με Έτοιμες Μήτρες Χαρακτήρων

Οι πρώτοι εκτυπωτές προσομοίαζαν την λειτουργία των γραφομηχανών. Ως εκ τούτου,δεν υπήρχε η δυνατότητα για εκτύπωση γραφικών. Εδώ διακρίνουμε δύο παρόμοιουςτύπους:

1. IBM Selectric

2. Daisy-Wheel (Mαργαρίτα)

Page 165: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 165

Σχ. 12.1 Μηχανισμός IBM Selectric

Η IBM επινόησε τον μηχανισμό Selectric. Ουσιαστικά εδώ υπάρχει μία σφαίρα, κοινώςαποκαλούμενη "μπαλάκι του γκολφ", με όλους τις μήτρες των χαρακτήρων επάνω της -Σχ. 12.1. Η βάση της "κάθεται" στον εκτυπωτικό μηχανισμό, ο οποίος την περιστρέφει γιανα τοποθετήσει την μήτρα του επιθυμητού χαρακτήρα μπροστά από την μελανοταινία καιτην μετακινεί κατά μήκος του χαρτιού ώστε να τυπώσει τον χαρακτήρα στην σωστή θέση.Η εκτύπωση γίνεται με πίεση της σφαίρας στην μελανοταινία και στο χαρτί.

Ο μηχανισμός μαργαρίτας μοιάζει περισσότερο με γραφομηχανή. Εδώ οι μήτρες τωνχαρακτήρων βρίσκονται στα άκρα βραχιόνων, σχηματίζοντας την περιφέρεια ενόςκύκλου, στο μέσον του οποίου βρίσκεται ένας άξονας, όπως φαίνεται και στο Σχ. 12.2.

Για να επιλεγεί ο χαρακτήρας που πρέπει να εκτυπωθεί, ο άξονας αυτός περιστρέφεταιέως ότου η αντίστοιχη μήτρα έλθει στην κορυφή. Ένα σφυρί που οδηγείται απόηλεκτρομαγνήτη κτυπάει την μήτρα στο πίσω μέρος της την κατάλληλη στιγμή μεαποτέλεσμα αυτή να “πέσει” επάνω στην μελανοταινία και το χαρτί.

Page 166: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 166

Σχ. 12.2 Μηχανισμός Μαργαρίτας (Daisy-Wheel)

Πλεονεκτήματα

Η ποιότητα εκτυπώσεως είναι ίδια με εκείνη μίας γραφομηχανής και μάλιστα η τεχνικήτης ΙΒΜ είναι καλύτερη από εκείνη της μαργαρίτας. Η αλλαγή γραμματοσειράς είναιεύκολη για την τεχνική της ΙΒΜ - απλά αλλάζετε την σφαίρα εκτύπωσης και από δύσκοληέως αδύνατη για την τεχνική της μαργαρίτας.

Μειονεκτήματα

Τα μειονεκτήματα των τεχνικών αυτών είναι σοβαρά. Δεν μπορείτε να τυπώσετε κείμενομε πολλές γραμματοσειρές ταυτόχρονα, δεν μπορούν να τυπώσουν γραφικά, κάνουν πολύθόρυβο και η ταχύτητά τους είναι εξαιρετικά χαμηλή - μόλις 14 cps για την ΙΒΜ Selectricκαι έως 55 cps για την τεχνική μαργαρίτας. Παρόμοιες τεχνικές που προσομοιάζουν ταπαλιά τυπογραφεία εφημερίδων (με κυλίνδρους) μπορούν να φθάσουν μέχρι και 2700 cps,αλλά η φθορά τους είναι μεγάλη και η ποιότητα απλά υποφερτή. Για τους λόγους αυτούςοι παραπάνω τεχνικές έχουν σχεδόν εκλείψει.

12.1.2 Εκτυπωτές Πίνακα Ακίδων

Ένας άλλος τρόπος εκτύπωσης είναι η χρήση μικρών ακίδων διαταγμένες σε σχήμαορθογωνίου πίνακα. Αυτές οδηγούνται μέσω ηλεκτρομαγνητών έτσι ώστε την κατάλληληστιγμή να προσκρούουν στην μελανοταινία και στο χαρτί που βρίσκεται από πίσω τους.Με αυτόν τον τρόπο δημιουργείται ένας πίνακας από κουκίδες που αντιστοιχεί (σανσύνολο) σε έναν χαρακτήρα. Κάθε φορά τυπώνει μόνον μία από τις κατακόρυφες στήλεςστις οποίες είναι διατεταγμένες οι ακίδες (Σχ. 12.3), ενώ ταυτόχρονα φορτώνονται οιδιαταγές εκτύπωσης στον μηχανισμό ελέγχου των άλλων ακίδων για μεγαλύτερηταχύτητα.

Page 167: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 167

Οι αρχικές κεφαλές των εκτυπωτών αυτών είχαν μόνον επτά (7) ακίδες και έτσι ηποιότητα εκτύπωσης δεν ήταν πολύ καλή. Αργότερα κυκλοφόρησαν στο εμπόριοεκτυπωτές ακίδων με 9, 18 και 24 ακίδες. Όσο πιο μεγάλος ο αριθμός των ακίδων (έωςέναν ορισμένο βαθμό), τόσο πιο καλή είναι και η ανάλυση και άρα και η ποιότηταεκτύπωσης, που γίνεται ίδια με εκείνη των καλύτερων γραφομηχανών (για εκτυπωτές 24ακίδων).

Ένα άλλο σημαντικό στοιχείο είναι ότι τώρα είναι δυνατή και η εκτύπωση γραφικώνσχημάτων και εικόνων. Κάθε εικόνα αποτελείται από ένα σύνολο οριζοντίων γραμμώνκουκίδων. Ο κάθε εκτυπωτής αυτού του τύπου ουσιαστικά τυπώνει μία τέτοια οριζόντιαγραμμή κουκίδων σε κάθε πέρασμά του επάνω από το χαρτί. Χρησιμοποιώντας μάλιστακαι μελανοταινίες με πολλά χρώματα είναι δυνατόν να πάρετε έγχρωμες εκτυπώσεις.

Σχ. 12.3 Εκτυπωτής Πίνακα Ακίδων (Dot Matrix)

Παραλλαγές στην ίδια τεχνική αποτελούν οι εκτυπωτές ακίδων με θερμικά στοιχεία. Εδώαπαιτείται ειδικό χαρτί με επίστρωση από υλικό που όταν θερμανθεί (π.χ. από μία ακίδα)δημιουργεί μία σκούρα κουκίδα επάνω στην επιφάνεια του χαρτιού. Η ποιότηταεκτύπωσης όμως είναι πολύ χαμηλή και το κόστος του ειδικού χαρτιού υψηλό. Για αυτόντον λόγο δεν απαντώνται συνήθως σήμερα.

Πλεονεκτήματα

Ποιότητα εκτύπωσης που είναι παρόμοια με γραφομηχανές. Ανάλυση μέχρι και 360 DPIαν και ουσιαστικά έχουν την καλύτερη μέση απόδοση γύρω στα 200 DPI. Ικανότηταεκτύπωσης γραφικών και σε ορισμένες περιπτώσεις και εγχρώμων. Το πιο σημαντικόπλεονέκτημα ίσως είναι ότι μπορείτε να αλλάζετε γραμματοσειρές και στυλ εκτυπώσεωςελέγχοντας τα μέσα από πρόγραμμα. Χαμηλό κόστος ανά σελίδα (τρέχουσα τιμήσυνηθισμένης μελανοταινίας περί τις 2.500 δρχ - 1995). Τυπική διάρκεια ζωής μίας

Page 168: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 168

μελανοταινίας είναι 2 εκατομμύρια χαρακτήρες. Μπορεί δε να τυπώνει σε περισσότερατου ενός φύλλων χαρτιού ταυτόχρονα (π.χ. τιμολόγια και αντίγραφα αυτών).

Μειονεκτήματα

Μεγάλος θόρυβος. Χαμηλή ταχύτητα που κυμαίνεται (για τυπικούς εκτυπωτές 24 ακίδων)από 190 cps μέγιστο έως 65 cps για υψηλής ποιότητας εκτυπώσεις. Τυπικά για έναέγγραφο με πολλά γραφικά, χρειάζονται κατά μέσον όρο περίπου 2 λεπτά για κάθε σελίδακαι η ποιότητα εκτυπώσεως λόγω φθοράς της μελανοταινίας θα αρχίσει να μειώνεται μετάαπό 80 περίπου τέτοιες σελίδες.

Το πιο σημαντικό μειονέκτημα όμως είναι ότι η τεχνολογία τους δεν επιτρέπει ποιότηταεκτύπωσης με ανάλυση άνω των 360 DPI, γιατί κάτι τέτοιο θα απαιτούσε πολύ ψιλέςακίδες, που αντί να κτυπούν την μελανοταινία, θα λειτουργούσαν ως καρφίτσεςδιαπερνώντας την.

12.2 Εκτυπωτές Laser

Σχ. 12.4 Μηχανισμός Εκτυπωτή Laser

Οι εκτυπωτές Laser ακολουθούν τεχνική παρόμοια με εκείνη των ξηρογραφικώνμηχανών. Πρώτα δημιουργείται επάνω σε ένα φωτο-ευαίσθητο τύμπανο μέσα στονεκτυπωτή ένα είδωλο της σελίδας που πρόκειται να εκτυπωθεί.. Στην συνέχειατοποθετείται επάνω στο τύμπανο μία ποσότητα μελάνης σε μορφή σκόνης (κοινώς“τόνερ”). Τέλος το είδωλο αυτό μεταφέρεται ηλεκτροστατικά επάνω στην σελίδα τουχαρτιού και η μελάνη διαχέεται σε αυτό μέσω θερμότητας. Είναι συχνό το φαινόμενο ναμην έχει προλάβει να “καεί” το χαρτί (μετά από βλάβη) και οι χαρακτήρες ναεξαφανίζονται με ένα απλό σκούπισμα.

Page 169: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 169

Ειδικά για την δημιουργία του αρχικού ειδώλου επάνω στο τύμπανο, δεν χρησιμοποιείταικαθρέφτης όπως στα ξηρογραφικά μηχανήματα, αλλά μία ακτίνα laser, η οποία καιδημιουργεί κουκίδες, ελεγχόμενη από έναν διαμορφωτή δέσμης φωτός. Ο μηχανισμόςλειτουργίας φαίνεται πιο αναλυτικά στο Σχ. 12.4.

Πλεονεκτήματα αυτού του τύπου εκτυπωτών είναι η υψηλή ποιότητα εκτύπωσης(ανάλυση τυπικά τουλάχιστον 600 DPΙ και μεγάλη ταχύτητα (έως και 20.000 γραμμές τολεπτό), καθώς και η χρήση κοινού χαρτιού Α4.. Το μειονέκτημα είναι η υψηλή τιμή, ταακριβά αναλώσιμα και αρκετή συντήρηση.

12.3 Eκτυπωτές Ψεκασμού

Η ιδέα της δημιουργίας χαρακτήρων (αλλά και γραφικών) μέσω κουκίδων είναι τόσοκαλή που χρησιμοποιείται όχι μόνον στους εκτυπωτές ακίδων, αλλά και στους εκτυπωτέςinkjet, αν και με διαφορετικό τρόπο. Υπάρχουν σήμερα τουλάχιστον τέσσερις (4)διαφορετικές τεχνολογίες εκτυπωτών ψεκασμού: Liquid Inkjet, Thermal Wax Transfer,Dye Sublimation και Phase-Change Inkjet.

Η πρωταρχική τεχνική (Liquid Inkjet / Yγρός Inkjet) ήταν να χρησιμοποιείται μίααντλία για να αναρροφά μελάνι από ένα δοχείο και μέσω ενός ακροφύσιου να ψεκάζεταιεπάνω στο χαρτί. Το πρόβλημα είναι πώς να κατευθυνθεί η μελάνη με μεγάλη ακρίβειαστο χαρτί.

Ουσιαστικά η μελάνη μετατρέπεται σε μικρά σταγονίδια μελάνης που περνούν μέσα απόένα ηλεκτρικό πεδίο για να φορτιστούν. Στην συνέχεια η δέσμη αυτών των σταγονιδίωνεκτρέπεται με ηλεκτροστατικό τρόπο (όπως μία δέσμη ηλεκτρονίων από τον καθοδικόσωλήνα μίας τηλεόρασης) στο επιθυμητό σημείο. Η μελάνη που περισσεύει, μαζεύεται σεένα ειδικό χώρο και επιστρέφεται στο κυρίως δοχείο.

To πλεονέκτημα είναι η μεγάλη ταχύτητα (έως 60.000 cps ή 45.000 γραμμές το λεπτό, ανκαι η ταχύτητα ενός τυπικού εκτυπωτή ψεκασμού δεν ξεπερνά τα 1.500 cps ή 8 σελίδες /λεπτό) και η σχεδόν αθόρυβη λειτουργία. Επί πλέον η ανάλυση ξεκινάει από 300 DPI καιτυπικά φθάνει 600 DPI, ακόμα και για έγχρωμες εκτυπώσεις.

Το σημαντικό μειονέκτημα είναι ότι χρειάζονται συνήθως ειδικό χαρτί, γιατί διαφορετικά(ιδίως στις υψηλές αναλύσεις), τα σταγονίδια μελάνης είτε διαχέεται υπερβολικά στοχαρτί σμίγοντας με γειτονική κουκίδα, είτε δεν επικολλάται καλά στην επιφάνεια τουχαρτιού, με αποτέλεσμα να είναι δύσκολο να στεγνώσει και να δημιουργούνταιμουντζούρες.

Ένα άλλο πρόβλημα είναι ότι η μελάνη είναι συνήθως βασισμένη στο νερό. Αυτόεξατμίζεται πολλές φορές εύκολα με αποτέλεσμα να αφήνει ξηρά υπολείμματα σταακροφύσια και να δυσκολεύει την εκτύπωση. Σε αυτήν την περίπτωση τα ακροφύσιαπρέπει να καθαρίζονται συχνά.

Page 170: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 170

Η δεύτερη τεχνική εκτυπωτών Inkjet (Thermal Wax Transfer / Θερμική ΜεταφοράΚεριού) χρησιμοποιεί μία ειδική λωρίδα με κομμάτια από κατάλληλο τύπο κεριού.Χιλιάδες μικροστοιχεία στην κεφαλή του εκτυπωτή θερμαίνονται στους 70-80οC,λειώνοντας το τμήμα του κεριού που υπάρχει απέναντί τους εκείνη την στιγμή καιεπικολλώντας το σε ειδικό χαρτί. Κατά κάποιον τρόπο η λωρίδα του κεριού είναιισοδύναμη με την μελανοταινία των εκτυπωτών πρόσκρουσης. Αυτή η τεχνολογία είναιπιο “καθαρή” από την προηγούμενη, αλλά και πιο ακριβή.

Παραλλαγή της προηγούμενης τεχνικής αποτελεί η Dye Sublimation που είναι η πιοαργή, αλλά και εκείνη με την μεγαλύτερη ανάλυση, τυπώνοντας εικόνες με φωτογραφικήποιότητα. Το κερί θερμαίνεται σε θερμοκρασίες άνω των 400 οC, με αποτέλεσμα το κερίνα πηγαίνει σχεδόν ακαριαία από την στερεά στην αέρια κατάσταση, αποφεύγοντας ταπροβλήματα της υγρής φάσεως. Επί πλέον, το κερί ενσωματώνεται στο χαρτί και δενεπικολλάται απλά επάνω σε αυτό, όπως με την προηγούμενη τεχνική. Εννοείται πως τοκόστος είναι πολύ υψηλό και η ταχύτητά του πολύ χαμηλή για συνηθισμένες εκτυπώσεις.

Η Phase-Change (Αλλαγή Φάσεως) Inkjet αποτελεί την τελευταία τεχνική. Ονομάζεταιέτσι γιατί τοποθετούνται ειδικοί ράβδοι μελάνης που βρίσκονται σε στερεά κατάσταση σεθερμοκρασία δωματίου. Αυτοί θερμαίνονται στους 90 οC και δημιουργείται υγρή μελάνηπου αποθηκεύεται σε ένα δοχείο. Όταν χρειάζεται, ο εκτυπωτής αντλεί μικρή ποσότηταμελάνης που την θερμαίνει ξανά κοντά στο ακροφύσιο. Στην συνέχεια, όπως και στηνπρώτη τεχνική, ένας αριθμός από σταγονίδια μελάνης εκτοξεύεται στην επιθυμητήπεριοχή του χαρτιού. Επειδή όμως τα σταγονίδια ψύχονται γρήγορα κατά την επαφή τουςμε το χαρτί, στερεοποιούνται πολύ γρήγορα, προξενώντας ελάχιστη διάχυση.

Το κόστος της παραπάνω κατηγορίας εκτυπωτών inkjet είναι αρκετά υψηλό, αλλά όχι όσοτης δεύτερης και τρίτης κατηγορίας.

12.4 Συμπεράσματα

Όπως και σε κάθε άλλη περίπτωση, κάθε μία από τις παραπάνω τεχνολογίες έχει ταπλεονεκτήματα και τα μειονεκτήματά της, των οποίων το ειδικό βάρος μεταβάλλεταιανάλογα με τις ανάγκες του συγκεκριμένου περιβάλλοντος στο οποίο καλείται ναλειτουργήσει. Στον παρακάτω πίνακα παρατίθενται συγκριτικά ορισμένα στοιχεία. Ηπαράμετρος κόστος / σελίδα αναφέρεται μόνον στο κόστος των αναλωσίμων(μελανοταινία ή μελάνη ή τόνερ και τύμπανο).

Πίνακας 12-1 Συγκριτικά Στοιχεία Τεχνολογιών Εκτυπωτών

ΤύποςΕκτυπωτή

ΑπλόΧαρτί;

Μηχανο-γραφικόΧαρτί;

ΠολλαπλάΑντίγραφα;

Ανάλυση(DPI)

Κόστος(ΜέσηΤιμή)

Κόστος /Σελίδα

Dot Matrix24 Ακίδων

Ναι Ναι Ναι 180 - 360 85.000 2

Ψεκασμού Ναι Όχι Όχι 300 - 600 95.000 10Laser Ναι Όχι Όχι 600 - 1200 200.000 25

Page 171: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 171

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

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

Οι εκτυπωτές ψεκασμού βρίσκονται ανάμεσα στις δύο παραπάνω τεχνολογίες. Γιαποιότητα εκτύπωσης κοντά στους Laser, απαιτούν ειδικό χαρτί, αλλά είναι σαφώςκαλύτεροι από τους εκτυπωτές πρόσκρουσης, ακόμα και σε κοινό χαρτί για τιςπερισσότερες εφαρμογές. Εάν απαιτείται ικανοποιητική έγχρωμη εκτύπωση σε λογικόκόστος, τότε μόνον αυτοί μπορούν επί του παρόντος να αποτελέσουν την πρακτικότερηλύση.

12.5 Οπτικοί Δίσκοι

Οι οπτικοί δίσκοι είναι ένα μέσον το οποίο αρχικά χρησιμοποιήθηκε με επιτυχία για τηναποθήκευση μουσικής με την γνωστή μορφή των CD (Compact Disks), έναντι τηςχρησιμοποίησης δίσκων βινυλίου. Η ιδέα λειτουργίας τους είναι παρόμοια με εκείνη τωνσκληρών δίσκων, αλλά υπάρχουν και σημαντικές διαφορές που τυπικά προσδίδουν σεέναν οπτικό δίσκο χωρητικότητα της τάξεως των 600 Μb - 1000 MB, με ταχύτηταπρόσβασης (Access Time) 150 ms.

Αν και υπάρχουν δίσκοι ανάγνωσης / εγγραφής το κόστος τους είναι ακόμα αρκετάμεγάλο (αν και πέφτει συνεχώς) και μεγαλύτερη διάδοση έχουν τα λεγόμενα CD-ROMs(όπως οι μνήμες ROM) που επιτρέπουν μόνον ανάγνωση και οι δίσκοι τύπου WORM(Write Once Read Many) που επιτρέπουν μία και μόνη εγγραφή και κατά τα άλλα δενδιαφέρουν από τα CD-ROMs. Κυκλοφορούν σε διάφορα μεγέθη, αλλά το πιο διαδεδομένοείναι το μέγεθος 4,72 ιντσών (το μέγεθος των μουσικών οπτικών δίσκων).

Η πρώτη σημαντική διαφορά με τους σκληρούς δίσκους είναι ότι η κωδικοποίηση των bitsστηρίζεται στην ανάκλαση μίας φωτεινής ακτίνας που προέρχεται από ένα μικροσκοπικόLaser. Επίσης είναι πολύ φθηνοί (κόστος παραγωγής σήμερα < 1.000 δρχ) καιμετακινούμενοι όπως οι δισκέτες. Επιπλέον, τα "αυλάκια" δεν αποτελούν ξεχωριστούςκυλίνδρους όπως στους μαγνητικούς δίσκους, αλλά συνθέτουν ένα συνεχές σπειροειδέςίχνος. Ειδικά για τους οπτικούς δίσκους ανάγνωσης ή μίας μόνο εγγραφής, η εγγραφήγίνεται ως εξής (βλ. ενδεικτικό Σχ. 12.5).

Οι οπτικοί δίσκοι αυτής της κατηγορίας έχουν επίστρωμα από ένα υλικό που εάν δεχθείισχυρή δέσμη φωτός αλλοιώνεται. Ένα laser μεγάλης έντασης παίζει τον ρόλο αυτής τηςδέσμης για δύο λόγους: Επιτρέπει μεγάλη ένταση με μικρή ισχύ και μεγάλη ακρίβειαεστίασης στο επιθυμητό σημείο. Η ιδέα είναι παρόμοια με έναν μεγεθυντικό φακό που"καίει" ορισμένα σημεία σε ένα κομμάτι χαρτί. Το laser αυτό δημιουργεί καίει ένα σημείοτης επιφάνειας προξενώντας την δημιουργία αερίων, που με την σειρά τους δημιουργούνμικρές φυσαλίδες στην επιφάνεια του δίσκου που αντιστοιχούν σε λογικό 1.

Page 172: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 172

Σχ. 12.5 Τυπικός Μηχανισμός Ανάγνωσης / Εγγραφής Οπτικών Δίσκων

Όταν χρειαστεί να διαβαστεί η πληροφορία που αποθηκεύθηκε στον δίσκο,χρησιμοποιείται ένα διαφορετικό ή το ίδιο laser, αλλά με μικρότερη ισχύ. Εάν αντανακλάκανονικά το φως, ένας ανιχνευτής το "βλέπει" και καταλαβαίνει ότι σε εκείνο το σημείοείχε αποθηκευθεί ένα λογικό 0. Εάν λόγω της ύπαρξης φυσαλίδας η ακτίνα φωτόςδιαχέεται, δεν μπορεί να ανιχνευθεί και θεωρείται ότι σε αυτό το σημείο υπάρχει λογικό 1.Εννοείται πως οι συνηθισμένοι οδηγοί οπτικών δίσκων (CD-ROM Drives) έχουν μόνονένα ασθενές laser ανάγνωσης.

Η χρήση ακτίνας laser έχει ως αποτέλεσμα την τοποθέτηση γειτονικών αυλακιών πολύκοντά μεταξύ τους (τυπική απόσταση μεταξύ κέντρων γειτονικών αυλακιών 70εκατομμυριοστά της ίντσας), προσδίδοντας την μεγάλη χωρητικότητα τους. Απαιτείταιόμως μεγάλη ακρίβεια στον μηχανισμό περιστροφής και εστίασης της ακτίνας. Παρ’ όλααυτά υπάρχει σημαντικό ποσοστό λάθους που περιορίζεται στα επίπεδα των σκληρώνδίσκων με χρήση σημαντικού αριθμού από CRC bytes.

Επίσης η απόσταση ανάμεσα στην κεφαλή και τον δίσκο είναι αρκετά μεγάλη, οπότε δενυπάρχει φθορά από την μεταξύ τους τριβή, ενώ ο δίσκος δεν επηρεάζεται σημαντικά απόσκόνη ή θερμότητα, πράγμα που κάνει αυτό το μέσον εξαιρετικά αξιόπιστο, ιδίως γιααποθήκευση μεγάλου όγκου δεδομένων για τα οποία απαιτείται τυχαία πρόσβαση. Γιαπαράδειγμα, αντί οι ταχυδρομικές επιταγές που εκκαθαρίζονται να αποθηκεύονται γιατυχόν μελλοντική αναζήτηση (κάτι που καταλαμβάνει τεράστιο όγκο), είναι δυνατόν νααποθηκευθούν οι εικόνες τους κατά ψηφιακό τρόπο σε οπτικούς δίσκους, κάνοντας τηνπρόσβαση γρήγορη και εύκολη. Αυτή η μέθοδος έχει αρχίσει να εφαρμόζεται π.χ. σταΟυγγρικά ταχυδρομεία.

Επειδή υπάρχει μόνον μία κεφαλή οι οπτικοί δίσκοι έχουν εγγραφές μόνον στην μίαπλευρά τους. Εν τούτοις πρόσφατα έκαναν την εμφάνισή τους και δίσκοι διπλής όψεως. Ηαύξηση της χωρητικότητάς τους είναι ένας άλλος τομέας στον οποίο γίνονται σημαντικέςπρόοδοι με την εμφάνιση laser γαλάζιου χρώματος, που συνεπάγεται υψηλότερη

Page 173: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 173

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

Οι οδηγοί οπτικών δίσκων χωρίζονται σε κατηγορίες ανάλογα με τον τύποσυνδεσμολογίας (interface) με τον υπόλοιπο Η/Υ και την ταχύτητα μεταφοράς δεδομένων.Υπάρχουν σήμερα τρεις τύποι ανάλογα με την συνδεσμολογία τους:

1. SCSI - Ακριβώς το ίδιο με το αντίστοιχο για τους σκληρούς δίσκους.

2. Ειδικός - Σχεδιασμένο interface μόνο για ένα συγκεκριμένο μοντέλο γιανα μείνει χαμηλό το κόστος, χωρίς καμία άλλη χρησιμότητα. Π.χ. τοαντίστοιχο της Mitsumi.

3. ΑΤΑΡΙ - Ουσιαστικά πρόκειται για το στάνταρ EIDE, το οποίο επεκτάθηκεγια αργές περιφερειακές συσκευές όπως οδηγούς οπτικών δίσκων καιμαγνητικών ταινιών. Αποτελεί την παρούσα λύση για όσα συστήματα δενέχουν SCSI.

Η ταχύτητα των οδηγών οπτικών δίσκων τα κατατάσσει και αυτή σε κατηγορίες.Ουσιαστικά εδώ πρόκειται για την ταχύτητα περιστροφής του δίσκου που επηρεάζει τηνταχύτητα ανάγνωσης. Η κοινές ονομασίες των κατηγοριών είναι: Απλή, Διπλή, Τετραπλή,Εξαπλή και Οκταπλή ταχύτητα. Ουσιαστικά σήμερα έχουν επικρατήσει οι οδηγοίτετραπλής ταχύτητας (λόγω κόστους) και του ότι η ταχύτητα μεταφοράς δεδομένων τους(περίπου 500 KB/sec) είναι αρκετή για εφαρμογές πολυμέσων.

Page 174: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 174

Page 175: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 175

13. ΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ

Η επικοινωνία μεταξύ Η/Υ είναι ένας τεράστιος τομέας, που απαιτεί γνώσεις από πολλάάλλα θέματα, ώστε να γίνει πραγματικά κατανοητός. Για αυτόν τον λόγο εδώ δενπρόκειται να παρουσιασθεί διεξοδικά, αλλά θα γίνει μόνον μία εισαγωγή. Οενδιαφερόμενος αναγνώστης μπορεί να αναφερθεί στην πλούσια βιβλιογραφία πουυπάρχει στο θέμα αυτό. Στα παρακάτω όταν μιλάμε για επικοινωνία μεταξύ Η/Υ, θαεννοούμε από έναν Η/Υ Α, σε έναν Η/Υ Β ή και αντίστροφα, εκτός εάν αναφερθείσυγκεκριμένα κάποιο άλλο είδος επικοινωνίας.

Όπως ήδη είναι πλέον γνωστό τα δεδομένα μεταφέρονται παράλληλα μέσα σε έναν Η/Υ(σε ομάδες των 8, 16, 32 ή και 64 bits), απλά επειδή αυτός είναι και ο ταχύτερος τρόποςμεταφοράς τους. Για μεγάλες αποστάσεις όμως η εκπομπή δεδομένων με παράλληλοτρόπο παρουσιάζει το πρόβλημα ότι απαιτεί πολλά καλώδια.

Η πρώτη (και φυσιολογική) σκέψη είναι να μετατραπεί η εκπομπή δεδομένων απόπαράλληλη σε σειριακή και να χρησιμοποιηθούν ένα ή δύο καλώδια. Στο άλλο άκρο, μίασυσκευή τα μετατρέπει από σειριακά σε παράλληλα, ώστε να μπορούν ναχρησιμοποιηθούν (μέσω των τοπικών διαύλων) από τον αντίστοιχο Η/Υ.

Υπάρχουν τρεις κατηγορίες σειριακής μετάδοσης δεδομένων: simplex, half-duplex καιfull-duplex. Στην πρώτη κατηγορία τα δεδομένα εκπέμπονται μόνον προς την μίακατεύθυνση (π.χ. ένας τηλεοπτικός σταθμός). Στη δεύτερη κατηγορία τα δεδομέναεκπέμπονται μόνον προς μία κατεύθυνση κάθε χρονική στιγμή, αλλά μπορεί ναεκπέμπονται άλλοτε προς την μία και άλλοτε προς την άλλη (π.χ. η σηματοδότηση ενόςδρόμου με μία μόνον λωρίδα, από όπου μπορούν να περνάν αυτοκίνητα και προς τις δύοκατευθύνσεις). Στην τρίτη κατηγορία τα δεδομένα μπορούν να μεταδίδονται ταυτόχρονακαι προς τις δύο κατευθύνσεις (π.χ. μία τηλεφωνική συζήτηση).

Υπάρχουν βασικά τρεις κύριες τεχνολογίες μετάδοσης δεδομένων. Η πρώτη είναιενσύρματη και χρησιμοποιεί καλώδιο με πυρήνα από μέταλλο (συνήθως χαλκό) με ταελεύθερα ηλεκτρόνια να αποτελούν τον φορέα του εκπεμπόμενου σήματος. Είναι ηαπλούστερη και πιο ευρέως διαδεδομένη τεχνολογία.

Η δεύτερη είναι ενσύρματη, αλλά χρησιμοποιεί φωτόνια σαν φορείς μέσα σε καλώδια απόειδικό εύκαμπτο γυαλί με διάμετρο 2-1000 εκατομμυριοστά του μέτρου. Η ταχύτηταδιάδοσης δεδομένων είναι περίπου 1 Gbit/sec. Οι λεπτοί αυτοί γυάλινοι πυρήνες τωνκαλωδίων ονομάζονται Οπτικές Ίνες (Fiber Optics). Η τεχνολογία στηρίζεται στο γνωστόφαινόμενο της περίθλασης του φωτός, σύμφωνα με το οποίο εάν μία ακτίνα φωτός πουδιαδίδεται σε ένα μέσο (γυαλί), φθάσει σε ένα άλλο μέσον με γωνία μεγαλύτερη τηςγωνίας περίθλασης, αλλάζει πορεία και διαδίδεται στο αρχικό μέσον.

Page 176: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 176

Η τρίτη τεχνολογία αποτελείται από πολλές υποομάδες και είναι ασύρματη. Σε αυτήνανήκουν οι δέσμες μικροκυμάτων (π.χ. από τεχνητούς δορυφόρους), δέσμες Laser, ακτίνεςυπερύθρων, αλλά και άλλων συνηθισμένων συχνοτήτων (συνήθως VHF).

Τα σειριακά δεδομένα μπορούν να σταλούν με δύο τρόπους: Σύγχρονα (Synchronously)και Ασύγχρονα (Asynchronously). Στην περίπτωση της σύγχρονης επικοινωνίας, ταδεδομένα εκπέμπονται κατά ομάδες με σταθερό ρυθμό, με ειδικά bytes ή σύνολα από bitsγια να υποδεικνύουν την αρχή και το τέλος μίας ομάδας. Στην περίπτωση της ασύγχρονηςεπικοινωνίας κάθε εκπεμπόμενος χαρακτήρας έχει επί πλέον ένα bit για να δείχνει τηναρχή και 1 ή 2 bits για να δείχνει το τέλος του. Με αυτόν τον τρόπο μπορούμε ναδιακρίνουμε κάθε χαρακτήρα ξεχωριστά και επομένως κάθε χαρακτήρας μπορεί νααποσταλεί σε οποιαδήποτε χρονική στιγμή (ασύγχρονα), χωρίς να δημιουργείται κανέναπρόβλημα.

13.1 Ασύγχρονη Σειριακή Επικοινωνία

Ένα παράδειγμα ασύγχρονης επικοινωνίας (για ένα byte) φαίνεται στο Σχ. 13.1. Όταν δεναποστέλλεται κανένα δεδομένο η γραμμή βρίσκεται σε λογικό 1 (η σωστή έκφραση είναι"Υψηλή Κατάσταση" - ΗΙGH state - αλλά χάριν ευκολίας παραλείπεται στο παρόνσύγγραμμα). Όταν εκπέμπεται ένας χαρακτήρας, η αρχή του υποδεικνύεται από τηνύπαρξη ενός bit (Start bit), που είναι πάντοτε λογικό 0. Ακολουθούν τα 7 bits πουαντιστοιχούν στον κωδικό του χαρακτήρα και ένα bit Ισοτιμίας (Parity), για ανεύρεσηαπλών λαθών. Αυτά τα bits φαίνονται γραμμοσκιασμένα, επειδή μπορεί να έχουνοποιαδήποτε τιμή. Τέλος ακολουθούν 2 bits, που υποδεικνύουν το τέλος του χαρακτήρα(Stop bits).

Σχ. 13.1 Παράδειγμα Ασύγχρονης Σειριακής Επικοινωνίας (για ένα byte)

Όπως βλέπετε, χρειάζονται 11 bits από τα οποία μόνον τα 7 αντιστοιχούν σε χρήσιμοδεδομένο, κάτι που δεν είναι αποδοτικό. Γενικά χρησιμοποιείται ο όρος baud rate, για ναχαρακτηρίσει ποσοτικά την ταχύτητα μεταφοράς σειριακών δεδομένων και ορίζεται σαντο κλάσμα:

1 / (χρόνος μετάδοσης ενός από τα παραπάνω bits)

Για χρόνο 3,33 ms, το baud rate είναι 300 Baud. Το τελευταίο δεν είναι κατ’ ανάγκην ίσομε το 300 bits/sec, αφού σε αυτό συμπεριλαμβάνονται και bits που δεν είναι τμήμα τωνεκπεμπόμενων δεδομένων, ενώ είναι δυνατόν να κωδικοποιούνται 2 ή και 4 data bits σε

Page 177: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 177

ένα εκπεμπόμενο bit. Συνηθέστερες ταχύτητες είναι οι 300, 1200, 2400, 4800, 9600 και19.200 Baud.

Για να καταστεί δυνατή όμως η διασύνδεση ενός Η/Υ με μία σειριακή γραμμή, ταδεδομένα πρέπει να μετατραπούν από σειριακή μορφή σε παράλληλη και αντίστροφα. Γιατον σκοπό αυτό χρειάζονται τουλάχιστον δύο καταχωρητές ολίσθησης - ο πρώτος απόπαράλληλα δεδομένα τα μετατρέπει σε σειριακά και ο δεύτερος το αντίστροφο - καικάποιο κύκλωμα ελέγχου για εφαρμογή κάποιου πρωτοκόλλου χειραψίας (handshaking),ώστε να μην δημιουργηθεί πρόβλημα εάν ένας από τους δύο συμβαλλόμενους είναιταχύτερος από τον άλλο.

Σήμερα υπάρχουν αρκετά προγραμματιζόμενα ολοκληρωμένα που να ενσωματώνουν όλατα παραπάνω. Εάν ένα τέτοιο ολοκληρωμένο μπορεί να κάνει μόνον ασύγχρονηεπικοινωνία ονομάζεται UART (= Universal Asynchronous Receiver-Transmitter ήΓενικός Ασύγχρονος Δέκτης-Εκπομπός) - π.χ. το ΙΝS8250. Εάν μπορεί ναπρογραμματισθεί, ώστε να εκτελεί σύγχρονη ή ασύγχρονη επικοινωνία ονομάζεταιUSART (=Universal Synchronous-Asynchronous Receiver-Transmitter ή ΓενικόςΣύγχρονος-Ασύγχρονος Δέκτης-Εκπομπός) - π.χ. το 8251Α της INTEL, πουχρησιμοποιήθηκε στον ΙΒΜ ΡC.

Αφ’ ότου τα δεδομένα μετατραπούν σε σειριακή μορφή πρέπει να εκπεμφθούν με κάποιοτρόπο μέσα από το καλώδιο, από το ένα UART στο άλλο. Υπάρχουν διάφοροι τρόποι, πουεπιτρέπουν αυτήν την επικοινωνία έως το πολύ 1.000 μέτρα.

Για μεγαλύτερες αποστάσεις ένα βολικό μέσον διάδοσης είναι το κοινό τηλεφωνικόσύστημα, επειδή είναι φθηνό και ήδη εγκατεστημένο. Επί πλέον επιτρέπει την σύνδεσηοποιωνδήποτε δύο Η/Υ, εφ’ όσον υπάρχει εγκατεστημένη τηλεφωνική γραμμή. Τομειονέκτημά του όμως είναι ότι το εύρος συχνοτήτων που υποστηρίζει κυμαίνεται μεταξύ300 και 3.000 Ηz. Επομένως δεν επιτρέπει την απ’ ευθείας διάδοση ψηφιακών σημάτων.Υπάρχουν ειδικές ψηφιακές γραμμές που μπορούν να ναυλωθούν, αλλά περιορίζονται ωςπρος τον υπαρκτό αριθμό συνδέσεων και το υψηλό κόστος.

Η λύση στο πρόβλημα αυτό είναι η μετατροπή του ψηφιακού σήματος σε κατάλληλεςακουστικές συχνότητες. Η συσκευή που πραγματοποιεί αυτήν την μετατροπή (και τηναντίστροφη), ονομάζεται ΜΟDΕΜ (MOdulator-DEModulator = Διαμορφωτής-Αποδιαμορφωτής). Κάθε modem συνδέεται επομένως από την μία πλευρά στον Η/Υ καιαπό την άλλη στην τηλεφωνική γραμμή. Ο γενικός όρος για ένα modem στην ορολογίατων επικοινωνιών είναι DCE (Data Communication Equipment ή Συσκευή ΕπικοινωνίαςΔεδομένων) και για έναν συνδεόμενο Η/Υ είναι DΤE (Data Transmission Equipment ήΣυσκευή Εκπομπής Δεδομένων).

13.1.1 Το Στάνταρ RS-232C

Για να αποφευχθούν όμως οποιαδήποτε προβλήματα από μη συμβατότητες, η διασύνδεσηΗ/Υ και modem γίνεται μέσω ενός στάνταρ, που καθορίζει όχι μόνον τον τρόπο σύνδεσης,

Page 178: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 178

αλλά και το πρωτόκολλο επικοινωνίας μεταξύ τους. Το πλέον δημοφιλές σήμερα είναι τοRS-232C, τα κυριότερα σήματα του οποίου φαίνονται στο Σχ. 13.2.

Η διαδικασία επικοινωνίας μέσω του RS-232C είναι σχετικά απλή. Πρώτα ανάβουμε τοDTE (στην πράξη τον Η/Υ) A, ο οποίος μετά από κάποιους σχετικούς ελέγχουςενεργοποιεί το σήμα /DTR (Data-Terminal Ready), ειδοποιώντας το modem ότι είναιέτοιμος. Η ίδια διαδικασία για το modem έχει ως αποτέλεσμα την ενεργοποίηση τουσήματος /DSR (Data-Set Ready), για να ειδοποιήσει τον Η/Υ ότι είναι έτοιμο. Στηνσυνέχεια το modem καλεί (με διάφορους τρόπους) τον επιθυμητό τηλεφωνικό αριθμό.

Σχ. 13.2 Κυριότερα Σήματα στο RS-232C

Εάν ο Η/Υ Β είναι διαθέσιμος, το modem στέλνει πίσω στο modem του Η/Υ Α, ένανειδικό τόνο, για να δείξει ότι έχει επιτευχθεί σύνδεση. Το τελευταίο ενεργοποιεί το σήμα/CD (Carrier Detect), για να ειδοποιήσει τον Η/Υ A, ότι έχει επιτευχθεί σύνδεση με τοάλλο modem. Εάν σε οποιαδήποτε χρονική στιγμή το σήμα /CD παύσει να είναιενεργοποιημένο, ο Η/Υ αντιλαμβάνεται ότι η σύνδεση έχει διακοπεί..

Μόλις ο Η/Υ A, είναι έτοιμος να στείλει έναν χαρακτήρα, ενεργοποιεί το σήμα /RTS(Ready-To-Send) προς το modem. Εάν το τελευταίο είναι έτοιμο για λήψη δεδομένων,ενεργοποιεί το σήμα /CTS (Clear To Send) και ο Η/Υ στέλνει το δεδομένο και το modemμε την σειρά του τους στέλνει στο modem του Η/Υ Β. Παρόμοια διαδικασία λαμβάνει (μετην αντίστροφη σειρά) μεταξύ του modem και H/Y Β. Όπως έχετε ήδη αντιληφθεί έωςτώρα, εδώ έχουμε ένα πρωτόκολλο χειραψίας (handshaking).

Σχ. 13.3 Παράδειγμα Συνδέτη DB-25P (Θηλυκός)

Αν και δεν περιγράφεται στο στάνταρ του RS-232C, στην πράξη η “πρίζα” σύνδεσης είναιένας συνδέτης τύπου DB-25P, όπως φαίνεται στο Σχ. 13.3. Αυτός υπάρχει τοποθετημένοςσυνήθως στο πίσω μέρος του Η/Υ. Για μικρές αποστάσεις όμως (περίπου 15 μέτρα), τοRS-232C επιτρέπει την σύνδεση δύο Η/Υ, χωρίς την χρήση modem. Αυτός ο τρόποςσυνδεσμολογίας ονομάζεται Null-modem και παρουσιάζεται στο Σχ.13.4. Το πλεονέκτημά

Page 179: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 179

του (εκτός από την μη χρήση modems) είναι η ικανότητα επίτευξης της μέγιστης δυνατήςταχύτητας μεταφοράς δεδομένων με το RS-232C, που φθάνει τα 19.200 baud. Τομειονέκτημά του είναι πως για μεγαλύτερες αποστάσεις η ταχύτητα πέφτει σημαντικά.

Σχ. 13.4 Συνδεσμολογία Null-modem

Το ίδιο ισχύει και για την διασύνδεση Η/Υ με κάποιο περιφερειακό (π.χ. εκτυπωτή) μέσωRS-232C. Εάν απαιτείται σειριακή σύνδεση ενός Η/Υ με μία σειριακή συσκευή (π.χ. ένανεκτυπωτή) σε απόσταση μεγαλύτερη των 15 μέτρων, δημιουργείται πρόβλημα. Ταστάνταρ RS-422A, RS-432A και RS-449 έχουν προταθεί (αν και όχι ευρέωςχρησιμοποιηθεί) για να λύσουν αυτό το πρόβλημα για μεγαλύτερες αποστάσεις, χωρίς τηνχρήση modems. Ενδεικτικά οι αντίστοιχες ταχύτητες για το RS-422A είναι: 10 ΜΒaudστα 15 μέτρα ή 100 ΚBaud στα 1200 μέτρα.

13.1.2 Modem

Όπως αναφέρθηκε παραπάνω, η ταχύτητα της σειριακής επικοινωνίας, μέσω της απ’ευθείας χρήσης ψηφιακών σημάτων, μειώνεται σημαντικά με την απόσταση. Υπάρχουνβέβαια ειδικές τεχνικές για μετάδοση ψηφιακών σημάτων σε μεγάλη απόσταση, χωρίςσημαντική απώλεια στην ταχύτητα, αλλά απαιτούνται ειδικές διατάξεις, καλώδια, κλπ.Όλα αυτά ανεβάζουν κατά πολύ το κόστος και μειώνουν την ευελιξία σύνδεσης μεταξύδιαφορετικών κάθε φορά Η/Υ.

Από την άλλη πλευρά, το κοινό τηλεφωνικό δίκτυο επιτρέπει την μεγαλύτερη δυνατήευελιξία επικοινωνίας, αλλά η χρησιμότητά του περιορίζεται από το γεγονός ότι το εύροςσυχνοτήτων του περιορίζεται στα 4 ΚΗz περίπου. Επί πλέον μόνον ακουστικέςσυχνότητες ("τόνοι") μπορούν να αποσταλούν μέσω αυτού, αφού σχεδιάστηκε μόνο γιατην μετάδοση της ανθρώπινης φωνής.

Για να υπερπηδηθούν τα παραπάνω εμπόδια είναι αναγκαία η χρήση των modems. Όπωςαναφέρθηκε και προηγουμένως ένα modem στέλνει ψηφιακά 1 ή 0 μέσω τωντηλεφωνικών γραμμών, σαν διαμορφωμένους τόνους, των οποίων οι συχνότητεςβρίσκονται φυσικά μέσα στο εύρος των επιτρεπομένων συχνοτήτων από το δίκτυο.Υπάρχουν τρεις κύριοι τρόποι διαμορφώσεως: Πλάτους (Amplitude), ΜετατόπισηςΣυχνότητας (Frequency-Shift Keying ή FSK) και Μετατόπισης Φάσεως (Phase-ShiftKeying ή PSK).

Page 180: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 180

Σχ. 13.5 Παράδειγμα Διαμόρφωσης Πλάτους (Amplitude Modulation)

Με τον πρώτο τρόπο διαμόρφωσης χρησιμοποιείται μόνον μία συχνότητα. Εάν υπάρχειτόνος αυτής της συχνότητας σε κάποιο χρονικό διάστημα, τότε αυτός γίνεται αντιληπτόςσαν 1, ενώ αν δεν υπάρχει η έλλειψή του γίνεται αντιληπτή σαν 0. Ένα παράδειγμαφαίνεται στο Σχ. 13.5.

Σχ. 13.6 Παράδειγμα Διαμόρφωσης Συχνότητας (FSK)

Ο δεύτερος τρόπος χρησιμοποιεί έναν τόνο (μία συχνότητα) για να αναπαραστήσει το 0και έναν άλλον για να αναπαραστήσει το 1. Εννοείται πως για ταυτόχρονη επικοινωνίαπρος τις δύο πλευρές (full-duplex) χρειάζονται τέσσερις διαφορετικοί τόνοι.Χρησιμοποιώντας αυτήν την τεχνική ταχύτητες έως και 1.200 Baud είναι δυνατές. Ένατέτοιο παράδειγμα φαίνεται στο Σχ. 13.6.

Σχ. 13.7 Παράδειγμα Απλής Μετατόπισης Φάσης (PSK)

Για μεγαλύτερες ταχύτητες χρησιμοποιείται ο τρίτος τρόπος, όπου η βασική ιδέα είναι ναπαρασταθεί με μετατόπιση φάσεως 180ο η μεταβολή της αντίστοιχης ψηφιακής τιμής.Π.χ., εάν μέχρι την στιγμή της μετατόπισης φάσεως η ψηφιακή τιμή ήταν 0, τώρα γίνεται1. Εάν προστεθούν και άλλες γωνίες μετατόπισης φάσεως, 2 ή και 3 bits ταυτόχροναμπορούν να παρασταθούν σε ένα baud. Χρησιμοποιώντας οκτώ διαφορετικές γωνίες - για23 = 3 bits - και δύο διαφορετικά πλάτη (amplitudes) - για ένα bit - είναι δυνατόν ναέχουμε 4 bits σε ένα baud, με τελική ταχύτητα 9.600 bits/sec.

Με περισσότερους συνδυασμούς (παίρνοντας υπ’ όψιν και τις διαφορετικές δυνατέςσυχνότητες) και τεχνικές είναι σήμερα δυνατόν να επιτευχθούν ταχύτητες 14.400 ή και28.000 bits/sec σε συνηθισμένες τηλεφωνικές γραμμές. Αυτή ταχύτητα μπορεί να αυξηθεί

Page 181: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 181

εάν χρησιμοποιηθούν στάνταρ συμπίεσης των αποστελλομένων δεδομένων. Τα διάφοραστάνταρ προέρχονται από έναν διεθνή οργανισμό επικοινωνιών υπό την αιγίδα του ΟΗΕ,που ονομάζεται ITU (ο CCITT έχει πλέον καταργηθεί). Τα συνηθέστερα στάνταρ γιασύνδεση ψηφιακών συσκευών σε τηλεφωνικό δίκτυο με αναλογικό σήμα (το κοινότηλεφωνικό δίκτυο) αρχίζουν με το γράμμα V και παρατίθενται στον Πίνακα 13.1.

Πίνακας 13-1 Συνηθέστερα στάνταρ Ταχυτήτων για Επικοινωνίες με Μοdems

�νομα Στάνταρ Ταχύτητα (Bits/sec)V.21 300V.22 1200

V.22bis 2400V.25 9600

V.32bis 14.400V.34bis 28.000

Τα modem σήμερα χωρίζονται σε εξωτερικά, που συνδέονται με τον Η/Υ μέσω του RS-232C, ή εσωτερικά με την μορφή κάρτας, οπότε τοποθετούνται σε κάποια θύρα επέκτασηςτου Η/Υ. Η απόδοση είναι η ίδια, αλλά τα μεν πρώτα δίνουν την δυνατότητα εύκοληςμετακίνησης, ενώ τα δεύτερα είναι αρκετά φθηνότερα και καταλαμβάνουν λιγότερο χώροσε ένα γραφείο (αφού είναι τοποθετημένα μέσα στον Η/Υ).

Υπάρχουν πάρα πολλά modem σήμερα, αλλά τα περισσότερα δέχονται εντολές καιστέλνουν μηνύματα με ειδικούς κωδικούς, που χρησιμοποιήθηκαν πρώτα στα modems τηςεταιρείας Hayes. Επί πλέον σήμερα είναι συνηθισμένο να συνδυάζεται στην ίδια συσκευήένα modem, με δυνατότητα αυτόματης διόρθωσης και συμπύκνωσης, καθώς και ένα faxτύπου Group II ή και Group III. Για περισσότερες πληροφορίες αποταθείτε στηναντίστοιχη βιβλιογραφία.

13.2 Σύγχρονη Σειριακή Επικοινωνία

H ασύγχρονη σειριακή επικοινωνία είναι εξαιρετική στην περίπτωση χαμηλής αξιοπιστίαςτου μέσου διάδοσης. Εν τούτοις, είναι αρκετά “ακριβή”, μια και πρέπει να αποστέλλονται10 τουλάχιστον bits για κάθε 8 bits πληροφορίας (ένα start και ένα stop bit). Εάν το μέσονδιάδοσης είναι αξιόπιστο, είναι δυνατόν να αποφευχθεί η χρήση bits ελέγχου, αυξάνονταςτην ταχύτητα μετάδοσης σχεδόν στο 100%.

Στην σύγχρονη επικοινωνία υπάρχει συνήθως ένας ειδικός χαρακτήρας (byte)συγχρονισμού, που εκπέμπεται πριν από την αποστολή των δεδομένων. Σκοπός του είναινα χρησιμοποιηθεί από τον αποδέκτη, ώστε ο τελευταίος να συγχρονίσει τι ρολόι του μεεκείνο του αποστολέα. Εκτός από αυτό και κάποια σήματα χειραψίας (handshaking),χρησιμοποιούνται και κάποιοι συγκεκριμένοι κανόνες μεταφοράς, που ονομάζονταιπρωτόκολλα. Το πιο γνωστό από αυτά είναι το HDLC (High Level Data Link Controlprotocol) από τον οργανισμό ISO (Inetrnational Standards Organization).

Page 182: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 182

Η βασική ιδέα είναι πως υπάρχει ένα κοινό μέσον διάδοσης στο οποίο είναι συνδεδεμένοιδιάφοροι σταθμοί μετάδοσης (Η/Υ). Έστω ο Η/Υ Α θέλει να μεταδώσει ένα σύνολοδεδομένων στον Η/Υ Β. Χρησιμοποιώντας το πρωτόκολλο αυτό, θα στείλει πρώτα τα bits01111110 (η αρχή ενός μηνύματος), ακολουθούμενα από 8 bits με την διεύθυνση τουαποδέκτη, 8 bits ελέγχου, τα bits που αποτελούν το κυρίως μήνυμα, 16 bits ελέγχου γιατυχόν λάθος και στο τέλος τα bits 01111110, για να υποδηλώσει το τέλος του μηνύματος.Κάθε μήνυμα αυτής της μορφής ονομάζεται frame. Η επικοινωνία αρχίζει με ανταλλαγήframes μεταξύ των δύο Η/Υ (σε μορφή χειραψίας), ώστε να βεβαιωθεί ο Α ότι ο Βλειτουργεί χωρίς προβλήματα. Στην συνέχεια ο Α, αποστέλλει το μήνυμα ή μηνύματαστον Β. Για τις ακριβείς λεπτομέρειες λειτουργίας του πρωτοκόλλου, ο ενδιαφερόμενοςαναγνώστης μπορεί να ανατρέξει στην πλούσια βιβλιογραφία που υπάρχει.

13.3 Τοπικά Δίκτυα

Δύο Η/Υ, που είναι κοντά ο ένας με τον άλλον, μπορούν να επικοινωνήσουν μεταξύ τους,συνδεόμενοι με μία απλή σύνδεση RS-232C (Null Modem). Εάν πάλι είναιαπομακρυσμένοι, είναι δυνατή η μεταξύ τους σύνδεση με την χρήση μίας τηλεφωνικήςγραμμής και ενός modem για κάθε υπολογιστή.

Ας υποθέσουμε τώρα ότι έχουμε ένα συγκρότημα κτιρίων όπου στεγάζεται έναςοργανισμός ή ίδρυμα (π.χ. Πανεπιστήμιο ή ΤΕΙ) και είναι απαραίτητη η επικοινωνία 100τερματικών με έναν Η/Υ. Μία λύση είναι η χρησιμοποίηση 100 τηλεφωνικών γραμμών μεαντίστοιχα modems, αλλά κάτι τέτοιο δεν είναι αποδοτικό. Μία άλλη λύση είναι νααπλώσουμε καλώδια από όλα τα τερματικά προς ένα κεντρικό σημείο σε κάθε κτίριο καιμετά να χρησιμοποιήσουμε έναν πολυπλέκτη (multiplexer) με κάποιο σύστημαχρονοκατανομής ή χρήσης διαφορετικού εύρους συχνοτήτων για κάθε “κανάλι”επικοινωνίας. Στην άλλη άκρη του καλωδίου μεγάλου εύρους Συχνότητας έναςαποκωδικοποιητής δημιουργεί τα αρχικά “κανάλια” με τα οποία τροφοδοτείται ο Η/Υ.

Είναι φανερό από το παράδειγμά μας ότι απαιτείται ένα δίκτυο μεγάλης ταχύτητας, πουσυνήθως ονομάζεται Τοπικό Δίκτυο (LAN = Local Area Network).

Υπάρχουν πολλοί τρόποι φυσικής συνδεσμολογίας Η/Υ (και άλλων συσκευών) μεταξύτους, που κοινώς είναι γνωστοί σαν Τοπολογίες (Topologies). Οι πιο κοινές Τοπολογίεςφαίνονται στο Σχ. 13.8.

Στην Τοπολογία Αστέρος (Star), ένας κεντρικός ελεγκτής ρυθμίζει όλες τις επικοινωνίεςμεταξύ των συσκευών στο δίκτυο. Ένα χαρακτηριστικό παράδειγμα τέτοιου τρόπουλειτουργίας είναι ένα αυτόματο τηλεφωνικό κέντρο, το οποίο και ρυθμίζει την σύνδεσηκάθε τηλεφώνου με ένα άλλο, μέσω ενός κεντρικού πίνακα διακοπτών. Η τυπική ταχύτηταψηφιακών κέντρων είναι 100 ΚΒaud.

Page 183: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 183

Σχ. 13.8 Συνηθισμένες Τοπολογίες Δικτύων Η/Υ

Στην Τοπολογία Δακτυλίου (Ring), η ρύθμιση των επικοινωνιών είναι κατανεμημένημεταξύ όλων των συσκευών στο δίκτυο. Κάθε συσκευή λειτουργεί στον δακτύλιο και σανΕπαναλήπτης (Repeater), αφού παίρνει κάθε ομάδα δεδομένων που έρχεται σε αυτή καιτην στέλνει στην επόμενη συσκευή στο δίκτυο, εάν δεν αποτελεί τον αποδέκτη τωνδεδομένων. Τα δεδομένα κυκλοφορούν προς μία κατεύθυνση μόνον και κάθε συσκευήτου δικτύου μπορεί να εκπέμψει δεδομένα.

Το κυριότερο πρόβλημα είναι το πώς να βρεθεί μία μέθοδος ώστε να μην στέλνουν όλεςοι συσκευές δεδομένα ταυτόχρονα. Συνήθως χρησιμοποιείται ένα ειδικό byte, πουονομάζεται token, που κυκλοφορεί στο δίκτυο όταν δεν αποστέλλονται δεδομένα. Κάθεσυσκευή που θέλει να στείλει δεδομένα στον δακτύλιο, θα πρέπει πρώτα να γίνει κάτοχοςτου token, κατακρατώντας το. Στη συνέχεια στέλνει τα δεδομένα της και μετάεπανεκπέμπει το token, ώστε να δοθεί η ευκαιρία και σε άλλες συσκευές να εκπέμψουνδεδομένα.

Στην Τοπολογία Κοινού Διαύλου (Common Bus), η ρύθμιση της κυκλοφορίας τωνδεδομένων γίνεται και πάλι από όλες τις συσκευές που είναι συνδεδεμένες στον δίαυλο. Ησύνδεση γίνεται σε ένα κοινό καλώδιο (συνήθως ομοαξονικό) με το οποίο θεωρητικάμπορεί να συνδεθεί οποιοσδήποτε αριθμός συσκευών (ή κοινώς κόμβων). Τα δεδομέναεκπέμπονται σε ομάδες σταθερού μήκους, που ονομάζονται πακέτα. Είναι δυνατόν δύο ήκαι περισσότερες συσκευές να επιχειρήσουν την ταυτόχρονη εκπομπή δεδομένων. Τοσυνηθέστερο πρωτόκολλο που χρησιμοποιείται, ονομάζεται CSMA/CD (Carrier Sence,Multiple Access with Collision Detection). Αυτό έχει το χαρακτηριστικό ότι ανιχνεύειπεριπτώσεις συγκρούσεως μεταξύ συσκευών και επιλύει το πρόβλημα αυτό.

Page 184: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 184

Ο χαρακτηριστικότερος εκπρόσωπος αυτής της τοπολογίας είναι το στάνταρ διασύνδεσηςδικτύων Ethernet από την εταιρεία Xerox. Σήμερα αυτό είναι επίσημα γνωστό σανστάνταρ ΙΕΕΕ 802.3 και είναι το πλέον διαδεδομένο στα τοπικά δίκτυα Η/Υ. Ο κοινόςδίαυλος είναι ουσιαστικά ένα ομοαξονικό καλώδιο των 50 Ω. Η ταχύτητα μεταφοράςδεδομένων ήταν αρχικά 10 Μbits/sec, αν και στην πιο εξελιγμένη του μορφή σήμεραφθάνει τα 100 Mbits/sec. Σε κάθε άκρο του υπάρχει μία συσκευή που λέγεται Terminator,για να αποφευχθούν ανακλάσεις σημάτων.

Κάθε Η/Υ συνδέεται σε αυτό το καλώδιο μέσω ενός συνδέτη BNC σε σχήμα “Τ”, με τηνβάση του “Τ” να συνδέεται στην ειδική κάρτα ελεγκτή δικτύου του Η/Υ. Το κόστος μίαςτέτοιας κάρτας σήμερα είναι περίπου 10.000 δρχ, πράγμα που καθιστά αυτόν τον τύποδιασύνδεσης εξαιρετικά φθηνό.

Η κεντρική ιδέα πίσω από τον σχεδιασμό του είναι ότι την περισσότερη ώρα ο κάθε Η/Υδεν έχει να στείλει δεδομένα. Όταν κάτι τέτοιο είναι αναγκαίο, γίνεται κατά ομάδες(bursts) και σε ακανόνιστα χρονικά διαστήματα. Όλοι οι Η/Υ “ακούν” την κοινή γραμμήκαι στέλνουν δεδομένα, μόνον όταν αυτή είναι ελεύθερη. Είναι όμως δυνατόν δύο Η/Υπου επιθυμούν να στείλουν δεδομένα ταυτόχρονα, να συγκρουσθούν. Τότε και οι δύοαντιλαμβάνονται ότι μία τέτοια σύγκρουση συνέβη και περιμένουν ένα τυχαίο χρονικόδιάστημα πριν ξαναπροσπαθήσουν - εφ’ όσον η γραμμή είναι ελεύθερη. Όταν ο αριθμόςτων Η/Υ στην γραμμή είναι σχετικά μικρός, η μέθοδος αυτή λειτουργεί περίφημα. Ότανόμως μεγαλώσει, αρχίζει να πέφτει η απόδοση από τις πολλές συγκρούσεις ή μεταφορέςδεδομένων.

Παρόμοια ιδέα ακολουθείται και από ασύρματα δίκτυα, τα οποία και χρησιμοποιούν κατάκόρον οι ραδιοερασιτέχνες. Η μετάδοση δεδομένων γίνεται κατά πακέτα σε μία ή δύοσυχνότητες σε μία περιοχή μερικών δεκάδων χιλιομέτρων. Το συνηθέστερο πρωτόκολλοσε αυτήν την περίπτωση είναι το ΑΧ.25 [ΑRRL92].

Γενικά μπορεί να λεχθεί ότι σήμερα η διασύνδεση διαφόρων Η/Υ μέσω δικτύου μπορεί ναείναι τόσο πολύπλοκη, ώστε να οδηγήσει στον σχεδιασμό και εφαρμογή διαφόρωνΠρωτοκόλλων, αλλά και μοντέλων διασύνδεσης. Το πιο γνωστό είναι το OSI (OpenSystems Interconnection) από τον Διεθνή Οργανισμό στάνταρ (ISO), το οποίο θεωρεί ότιστην πλέον σύνθετη μορφή ένα δίκτυο Η/Υ αποτελείται από επτά επίπεδα (από τοχαμηλότερο στο ανώτερο) [ΑΛΕ94]:

1. Φυσικό Επίπεδο (Physical Layer) - στάνταρ μετάδοσης bits από φυσικάμέσα διασύνδεσης.

2. Επίπεδο Ζεύξης Δεδομένων (Data Link Layer) - στάνταρ λειτουργικώνχαρακτηριστικών προκειμένου να αρχίσει, υποστηριχθεί και τερματισθείμία σύνδεση.

3. Επίπεδο Δικτύου (Νetwork Layer) - στάνταρ για δρομολόγησηδεδομένων.

4. Eπίπεδο Μεταφοράς (Transport Layer) - στάνταρ για μεταφοράδεδομένων, απαλλαγμένων από τυχόν λάθη.

Page 185: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 185

5. Eπίπεδο Συνόδου (Session Layer) - στάνταρ για συγχρονισμό διαλόγουμεταξύ των επομένων δύο επιπέδων.

6. Επίπεδο Παρουσίασης (Presentation Layer) - στάνταρ για τηναναπαράσταση της πληροφορίας με τον επιθυμητό τρόπο.

7. Eπίπεδο Εφαρμογής (Application Layer) - Εφαρμογές και τρόποςσυνομιλίας μεταξύ τους.

Η βασική ιδέα αυτού του μοντέλου είναι ότι κάθε διεργασία που λαμβάνει χώρα σε ένααπό τα παραπάνω επίπεδα του Η/Υ Α, νομίζει ότι συνομιλεί με κάποια διεργασία τουιδίου επιπέδου στον Η/Υ Β.

Για περισσότερες πληροφορίες ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στηναντίστοιχη βιβλιογραφία.

Page 186: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 186

Page 187: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 187

14. ΕΠΙΛΟΓΟΣ

Στις σημειώσεις αυτές εξετάσθηκαν με συντομία οι πιο σημαντικές εξελίξεις στηντεχνολογία των Η/Υ. Όπως ήταν φυσικό, δεν ήταν δυνατόν να συμπεριληφθούν όλες οιεξελίξεις σε όλους τους τομείς και στο επιθυμητό βάθος.

Έτσι, δεν υπήρξε αναφορά στα επί μέρους ζητήματα, που συνθέτουν τον τομέα γνωστό ωςπολυμέσα και ο οποίος περιλαμβάνει τεχνολογία καρτών ήχου, video, ηχείων και στάνταρ(π.χ. GIF, TIFF, JPEG, MPEG).

Επίσης δεν υπήρξε αναφορά στην τεχνολογία συσκευών ελέγχου και απόκτησηςδεδομένων (Data Aquisition) και τα αντίστοιχα στάνταρ, κάτι πολύ σημαντικό σε λύσειςαυτοματισμού, καθώς και η ψηφιακή επεξεργασία σημάτων (DSP - Digital SignalProcessing).

Ένας ακόμη ενδιαφέρων τομέας είναι και η Οπτική Ανάγνωση Χαρακτήρων (OCR), μεόλα τις αντίστοιχες συσκευές, όπως Σαρωτές (Scanners) με δυνατότητα ΤυφλούΧρώματος (Blind Colour), Οπτικούς Αναγνώστες και Διερμηνείς (Oprical Readers, OCRInterpreters) και τις μεθόδους όπως χρήση ειδικών Λεξικών, συσχετισμούς, επιλογήκατάλληλου δείγματος, κλπ.

Επί πλέον δεν έγινε αναφορά σε άλλες τεχνολογίες - πλην της ηλεκτρονικής - για τηνπραγματοποίηση των διαφόρων λογικών εξαρτημάτων, που συνθέτουν έναν Η/Υ. Έτσι,δεν υπήρξε παρουσίαση των Οπτικών Υπολογιστών, που βασίζονται στην διάδοσηφωτονίων και όχι ελευθέρων ηλεκτρονίων ως φορείς πληροφοριών, ούτε και άλλωνεξωτικών τεχνολογιών, όπως οι λεγόμενοι Βιολογικοί Υπολογιστές, που βασίζονται σεελεγχόμενους μεταβολισμούς του DNA για την εκτέλεση "υπολογισμών", ή τουλεγόμενου Κβαντικού τρανζίστορ.

Ένας άλλος τεράστιος τομέας είναι οι λεγόμενοι Παράλληλοι Υπολογιστές, με πολλές επίμέρους παραμέτρους, όπως την μορφή και τον τρόπο συγχρονισμού των ΣτοιχείωνΕπεξεργασίας (Processing Elements), τον καταμερισμό και συγχρονισμό της κύριαςμνήμης, την Επικοινωνία μεταξύ των Στοιχείων Επεξεργασίας, την Τοπολογία Σύνδεσηςμεταξύ τους, κλπ.

Επίσης, υπάρχουν και άλλοι παράλληλοι Η/Υ, οι οποίοι δεν ακολουθούν το μοντέλο von-Neumann, όπως οι Data-Flow και Functional υπολογιστές, ή που δεν εργάζονταιπρωταρχικά με διακριτούς αριθμούς, αλλά με συνεχείς τιμές (Αναλογικοί Υπολογιστές), ήμε ποιοτικές και όχι ποσοτικές τιμές (π.χ. Υπολογιστές που αποτελούνται από ΝευρωνικάΔίκτυα).

Τα παραπάνω και άλλα θέματα δείχνουν ότι η τεχνολογία των Η/Υ, έχει γίνει πλέονεξαιρετικά σύνθετη και μεταβάλλεται με ραγδαίους ρυθμούς, κάνοντας τις γνώσεις τουχθες σχεδόν άχρηστες σήμερα. Για αυτό και είναι απόλυτη αναγκαία η διαρκής - και

Page 188: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 188

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

Page 189: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 189

15. ΣΥΝΗΘΙΣΜΕΝΕΣ ΔΙΕΘΝΕΙΣ ΣΥΝΤΟΜΟΓΡΑΦΙΕΣ

Page 190: 1. ÅéóáãùãÞ
Page 191: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 191

AC Alternating CurrentAI Artificial IntelligenceALU Arithmetic-Logic UnitAM Amplitude ModulatedAMD Advanced Micro Devices, Inc.AMI American Megatrends Inc.ANSI American National

Standards InstituteASCII American Standard Code for

Information InterchangeASIC Application Specific

Integrated CircuitASPI Advanced SCSI Programming

InterfaceATDM Asynchronous Time

Division MultiplexingATM Asynchronous Transfer

ModeBBS Bulletin Board SystemBCC Block Check CharacterBCD Binary Coded DecimalBiCMOS Bipolar Complementary

Metal-Oxide Semiconductor

BIOS Basic Input / Output System

BNC Bayonet Nut Connectorbps bits Per SecondBSD Berkeley Standard

DistributionCAD Computer Aided DesignCAM Computer Aided

ManufacturingCAS Column Address StrobeCCITT Consultative Committee of

International Telephony and Telegraphy

CD Carrier DetectCDROM Compact Disk Read Only

MemoryCGA Color Graphics AdaptorCISC Complex Instruction-Set

ComputerCMOS Complementary Metal-

Oxide SemiconductorCP/M Control Program /

MonitorCPI Characters Per InchCPU Central Processing UnitCR Carriage ReturnCRC Cyclical Redundancy checkCRT Cathode Ray TubeCS Chip SelectCSMA Carrier Sense Multiple-

Access

CSMA/CD Carrier Sense Multiple-Access with Collision Detect

CTS Clear To SendDAT Digital Audio TapeDC Direct CurrentDCD Data Carrier DetectDCE DataCircuit-terminating

EquipmentDD Double DensityDEC Digital Equipment

CorporationDES Data Encryption StandardDIN Deutsche Industrie NormDIP Dual-In-line PackageDMA Direct Memory AccessDOS Disk Operating SystemDPI Dots Per InchDPSK Differential Phase Shift

KeyingDRAM Dynamic Random Access

MemoryDS Double SidedDSP Digital Signal ProcessorDSR Data Set ReadyDTC Data Terminal ControllerDTE Data Terminating

EquipmentDTMF Dual-Tone

MultiFrequencyDTR Data Terminal ReadyEBCDIC Extended Binary Coded

Decimal Interchange CodeECC Error Correction CodeECL Emitter-Coupled LogicEEPROM Electrically Erasable

Programmable Read-Only Memory

EGA Enhanced Graphics Adaptor

EISA Enhanced Industry Standard Architecture

EMI Electro-Magnetic Interference

EMF Electro-Magnetic ForceEMS Expanded Memory

SpecificationEOF End Of FileEOL End Of LineEPROM Erasable Programmable

Read-Only MemoryESDI Enhanced Small Devices

InterfaceFAT File Allocation TableFCC Federal Communications

CommissionFDD Floppy Disk Drive

Page 192: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 192

FDDI Fiber Distributed Data Interface

FDM Frequency Division Multiplexing

FDX Full-Duplex TransmissionFF Form FeedFIFO First-In First-OutFM Frequency ModulationFPGA Field Programmable Gate

ArrayFPU Floating Point UnitFSF Free Software FoundationFSK Frequency Shifty KeyingFTP File Transfer ProgramGFLOPS Billions (10) of FLOating

Point Operations Per Second ("GigaFlops")

GNU Gnu's Not UnixGUI Graphical User InterfaceHD High DensityHDD Hard Disk DriveHDX Half-Duplex TransmissionI/O Input / OutputIBM International Business

Machines Corp.IC Integrated CircuitIDC Insulation Displacement

ConnectorIDE Integrated Device

ElectronicsIEEE Institute of Electrical and

Electronic EngineersIMP Interface Message

ProcessorIPC InterProcess

CommunicationIRQ Interrupt ReQuestISA Industry Standard

ArchitectureISDN Integrated Services Digital

NetworkISO International Standards

OrganizationLAN Local Area NetworkLCD Liquid Crystal DisplayLED Light Emitting DiodeLF Line FeedLRU Least-Recently UsedLSB/lsb Least Significant Byte/bitLSI Large Scale IntegrationMB/Mb Mega Bytes/bitsMBR Master Boot RecordMCA Micro Channel ArchitectureMCGA Multi-Color Graphics

Array

MFLOPS Millions of FLOating Point Operations per Second ("MegaFlops")

MFM Modified Frequency Modulated

MIDI Musical Instrument Digital Inface

MIMD Multiple-Instruction Multiple-Data

MIPS Millions of Instructions per Second

MISD Multiple-Instruction Single Data

MMU Memory Management UnitMNP Microcom Network

ProtocolMODEM MOdulator / DEModulatorMOPS Millions of Operations Per

SecondMOS Metal-Oxide

SemiconductorMPP Massively Parallel

ProcessorMSB/msb Most Significant Byte/bitMSDOS Microsoft Disk Operating

SystemMSI Medium Scale IntegrationMTBF Mean Time Between

FailureN/C No-ConnectNBS National Bureau of

StandardsNFS Network File SystemNMI Non-Maskable InterruptNMOS Negatively doped Metal-

Oxide SemiconductorNOP No OPerationNRU Not-Recently UsedOCR Optical Character

RecognitionODI Open Datalink InterfaceOEM Original Equipment

ManufacturerOS Operating SystemOSF Open Software FoundationOSI Open Systems InterconnectPAL/PLA Programmable Array

Logic (Logic Array)PBX Private Branch eXtenderPC Personal Computer,

Program CounterPCB Printed Circuit BoardPCI Peripheral Component

InterconnectPCM Pulse Code ModulationPE Processor ElementPIO Programmed Input/Output

Page 193: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 193

PLCC Plastic Leaded Chip Carrier

PLL Phase Locked LoopPMOS Positively doped Metal-

Oxide SemiconductorPOST Power On Self TestPPP Point-to-Point ProtocolPROM Programmable Read-Only

MemoryPSTN Public Switched Telephone

NetworkQAM Quadrature Amplitude

ModulationQIC Quarter Inch CartridgeRAID Redundant Arrays of

Inexpensive DisksRAM Random Access MemoryRAMDAC Random Access Memory

Digital to Analog Converter

RAS Row Address StrobeRCA Radio Corporation of

AmericaRCC Routing Control CenterRFI Radio Frequency InterferenceRISC Reduced Instruction-Set

ComputerRLL Run Length LimitedRMS Root Mean SquaredRMW Read Modify WriteROM Read-Only MemoryRPC Remote Procedure CallRPM Rotations Per MinuteRTC Real Time ClockRTS Request To SendSCSI Small Computer Systems

InterfaceSD Single DensitySIMD Single-Instruction

Multiple-DataSIMM Single Inline Memory

ModuleSIPP Single Inline Pinned

PackageSISD Single-Instruction Single- DataSLIP Serial Line Internet

ProtocolSMD Surface Mount DeviceSMT Surface Mount TechnologySNA System Network ArchitectureSNR Signal to Noise RatioSPOOL Simultaneous Peripheral

Operation On LineSS Single SidedSTDM Synchronous Time

Division Multiplexing

SVGA Super Video Graphics Array

TCP/IP Transmission Control Protocol / Internet Protocol

TDM Time Division MultiplexingTI Texas InstrumentsTLB Translation-Lookaside

BufferTPI Tracks Per InchTSR Terminate and Stay

ResidentTTL Transistor-Transistor

LogicUART Universal Asynchronous

Receiver/TransmitterUDP User Datagram ProtocolUMB Upper Memory BlockUPS Uninterruptible Power

SupplyUUCP Unix to Unix Copy

ProgramVESA Video Enhanced Standards

AssociationVGA Video Graphics ArrayVLB VESA Local BusVLIW Very Long Instruction

WordVLSI Very Large Scale

IntegrationVM Virtual MemoryVRAM Video Random Access

MemoryWAN Wide Area NetworkWD Western DigitalWORM Write-Once Read-ManyWS Wait StateXGA eXtended Graphics ArrayXMS Extended Memory

SpecificationZIF Zero Insertion Force

Page 194: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 194

Page 195: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 195

16. ΕΥΡΕΤΗΡΙΟ

88086Μονάδα Εκτελέσεως, 40

AADC, 63ADD, 63Addressing Modes, 69

Direct, 69Displacement, 71Immediate, 70Index, 71Indirect, 70

ALU, 110AND, 65Assembler, 55Assembler -, 37Assembly, 55

Bbaud rate, 201bit, 12Blooming, 164byte, 13

CCALL, 80CISC, 122CLD, 86CMOS, 18CMP, 72CMPSB, 88CMPSW, 88Convergence, 164

DDB, 59DCE, 202DD, 59DEC, 62DIV, 64Dot Pitch, 163double word, 58DW, 59DΤE, 202

EECL, 18EIDE, 179EISA, 52END, 56EQU, 58

Ffan-out, 15FAR, 80Flicker, 164flip-flop, 28

D, 29Master-Slave D-, 29

IIDE, 179IDIV, 64IMUL, 64INC, 62IRET, 93ISA, 50; 51

JJMP, 73

LLatch.

Clocked D, 28SR, 27

LEA, 62LOCAL, 77LODSB, 87LODSW, 87LOOP, 74; 75LOOPE, 76LOOPNE, 76LOOPNZ, 76LOOPZ, 76LSI, 14

MMACRO, 77mainframes, 11MASM, 55MCA, 52microcomputers, 11

Page 196: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 196

MIMD, 144minicomputers, 11MISD, 144modem

null-, 203MOV, 61; 69MOVSB, 87MOVSW, 87MSI, 14MUL, 64

NNEAR, 80NEG, 65nibble, 58NOT, 65

OOFFSET, 62OUT, 91Overlays, 156OθόνεςΣχάρας, 162

PPCI, 53PLA, 23polling, 154POP, 78POPF, 79PUSH, 78PUSHF, 79

RRCL, 68; 69RCR, 69REP, 88REPE, 89REPNE, 90REPNZ, 90REPZ, 89Resolution, 163RISC, 122; 131ROL, 67ROR, 68

SSAL, 65SAR, 66SBB, 63SCASB, 88SCASW, 88SCSI, 179SHL, 65SIMD, 143SIMM, 97SIPP, 97SISD, 143

SSI, 14STD, 86STOSB, 87STOSW, 87SUB, 63SΗR, 67

TTEST, 72

UUART, 201USART, 201User-defined name, 56

VVLB, 52VLIW, 122VLSI, 14von Neumann, 12

Wword, 13; 58

ΑΑθροιστήςΚυματοειδούς Διέλευσης Κρατουμένου, 25Πλήρης, 25

αλγόριθμος, 11Αναδρομή, 84Αποκωδικοποιητής, 21Αποπολυπλέκτης, 21Αρχή της Τοπικότητας, 102

ΔΔεδομένωνΔιαδρομή, 111

ΔιακοπέςΑγνοήσιμες, 49Μη-αγνοήσιμες, 49

Διακοπήμη-αγνοήσιμη, 92

ΔιακοπήςΔιάνυσμα, 92

Διάπλεξη, 163ΔίαυλοιΑσύγχρονοι, 32Σύγχρονοι, 32

ΔίαυλοςΕλέγχου, 31

ΔιαύλουΔιαιτησία, 33Στρέβλωση, 33τύπος κύκλου, 44

διεργασία, 151ΔιεργασίαςΚρίσιμο Τμήμα, 159

Page 197: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 197

ΔίκτυαΑσύγχρονα, 200Σύγχρονα, 200

ΔίκτυοΤοπικό, 208

ΔικτύωνΤοπολογίες, 208

ΔίσκωνΤαχύτητα, 177Χωρητικότητα, 177

δυαδικό, 12

ΕΕντολέςΚανονικές, 157Προνομιακές, 157

Εντολή, 55ΕπεξεργασίαΟμαδική, 150

ΗΗμιαθροιστής, 24

ΙΙΝ, 91ΙΝΤ, 94

Κκαθυστερούμενα άλματα, 134ΚάρταΜητρική, 34

κατανάλωσηισχύος, 15

ΚαταστάσειςΑναμονής, 48

ΚατάστασηΥψηλής Αντιστάσεως, 20

ΚαταχωρητέςΤμημάτων, 39

ΚυκλώματαΑκολουθιακά, 15; 98Συνδυαστικά, 15

Κύκλωμαασύγχρονο, 27Δύο Καταστάσεων, 28Επιλογής Εξόδου, 28Ολίσθησης, 24σύγχρονο, 27

κύλινδροι, 170

Λλογικήαρνητική, 13θετική, 13

ΜΜPR II, 165

μικροαρχιτεκτονικ, 109Μικροελεγκτές, 36ΜικροεντολώνΜετρητής, 117

μικροεπεξεργαστέςbit-slice, 36

ΜικροπρογραμματισμόςΟριζόντιος, 118

μικροπρογραμματιστής, 109μικροπρόγραμμα, 118μικροϋπολογιστές, 11μνήμη

Copy-Back, 103Write-Through, 103Δυναμική, 96εικονική, 149; 156Λανθάνουσα, 96; 102Σειριακή, 95Στατική, 96Συσχετιστικής, 101Τυχαίας Προσπέλασης, 95Ψευδο-Στατική, 96

Μνήμηςεπαναφόρτιση, 96Συστοιχίες, 97

ΜΟDΕΜ, 202ΜονάδαΔιαδρομής Δεδομένων, 111

Μονάδα.Ελέγχου, 111

ΟΟR, 65Οδηγία, 55ολίσθησηΑπλή, 65Κυκλική, 65

ΠΠολυπλέκτης, 21πολυπρογραμματισμός, 150ΠρογραμματισμόςΚατακόρυφος, 118

ΠρόγραμμαΑντικείμενο, 55Πηγαίο, 55

Προτάσεις, 55

ΡΡολογιούΣτρέβλωση, 33

ΣΣημαίεςΕλέγχου, 41Συνθήκης, 41

ΣήματοςΔιαμόρφωση, 205

Συγκριτής, 23

Page 198: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 198

Συσσωρευτής, 41συστήματαασύγχρονα, 14σύγχρονα, 14

Τταχύτηταδιάδοσης, 14; 15

τομείς, 173Τοπολογία

mesh, 142Multistage, 146Point-to-Point, 146Shared Bus, 146

τρανζίστορδιπολικά, 16

ΤΤL, 16

Υυλικούκλείδωμα του, 134

υποκύκλοι, 115

ΧΧΟR, 65ΧρονοδρομολόγησηΔιακοπτής, 159Μη-Διακοπτή, 158

χρονοκατανομή, 150χρόνοςκύκλου ρολογιού, 29

Page 199: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 199

Page 200: 1. ÅéóáãùãÞ
Page 201: 1. ÅéóáãùãÞ

Παναγιώτης Φουληράς Τεχνολογία Η/Υ Σελ. 201

17. ΒΙΒΛΙΟΓΡΑΦΙΑ

[ΑΛΕ94] “Τηλεπικοινωνίες και Δίκτυα Υπολογιστών”, Α. Αλεξόπουλος και Γ. Λαγογιάννης,Γραφικές Τέχνες, Αφοι Ροή Α.Ε., 3η �κδοση, 1994

[ΒΑΦ93] “Εισαγωγή στην Επιστήμη των Υπολογιστών”, Α. Βαφειάδης, Τμήμα Πληροφορικής,Τ.Ε.Ι. Θεσσαλονίκης, 1993

[ΠΑΠ86] “Λειτουργικά Συστήματα. Μέρος Ι: Αρχές Λειτουργίας”, Γ. Κ. Παπακωνσταντίνου, Ν. Α.Μπιλάλης, Π. Δ. Τσανάκας, Εκδόσεις Συμμετρία, Αθήνα 1986

[ΑRRL92] “The ARRL Handbook for Radio Amateurs”, American Radio Relay League, Newington,CT 06111 USA, 1992

[DEN70] “Virtual Memory”, Peter J. Denning, Computer Surveys, Vol. 2, No. 3, September 1970,pp. 153 - 187

[HAL86] “Microprocessors and Interfacing: Programming and Hardware”, Douglas V. Hall,McGraw-Hill, 1986

[MESS95] "The Indispensable PC Hardware Book", Hans-Peter Messmer, 2nd Edition, Addison-Wesley, 1995

[SMI82] “Cache Memories”, Alan J. Smith, Computing Surveys, Vol. 14, No. 3, September 1982

[ΤΑΝ87] “Οperating Systems: Design and Implementation”, A. S. Tanenbaum, Prentice HallInternational, 1987

[TAN95] "Η Αρχιτεκτονική των Υπολογιστών. Μια Δομημένη Προσέγγιση", A. S. Tanenbaum, 3η�κδοση, Μετάφραση από το Αμερικανικό Πρωτότυπο ("Structured ComputerOrganization", Prentice-Hall, 1990), Κλειδάριθμος, 1995

[WAK90] “Digital Design Principles and Practices”, J. F. Wakerly, Prentice Hall International,1990

[WIL88] “The CPU Wars: An overview of the microprocessor battlefield, and how it got that way”,Pete Wilson, BYTE, May 1988, pp. 213 - 234