ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Σχετικά έγγραφα
ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

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

Περιεχόµενα. I Βασικές Γνώσεις 1

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

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

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

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

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

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

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

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

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

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

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

Μάθημα 7: Μικροϋπολογιστικό Σύστημα και Μνήμες

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

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

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

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

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

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

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

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

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

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

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

Συστήματα Μικροϋπολογιστών

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

Εγχειρίδιο χρήσης του Άβακα

Α. Ερωτήσεις Ανάπτυξης

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

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

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

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

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

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

MICROBOT SERVER MICROBOT MONITOR ΕΦΑΡΜΟΓΕΣ ΕΛΕΓΧΟΥ ΚΑΙ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ MICROBOT

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Εξωτερικές συσκευές Οδηγός χρήσης

Εξωτερικές συσκευές. Οδηγός χρήσης

Εξωτερικές συσκευές. Οδηγός χρήσης

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Εξωτερικές συσκευές. Οδηγός χρήσης

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

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

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

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

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Εξωτερικές συσκευές Οδηγός χρήσης

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες Εισαγωγή... 19

Ενότητα 1η. Εισαγωγή στην Πληροφορική

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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 9

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

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

Καλαντζόπουλος Αθανάσιος

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξοµοίωση σε πραγµατικό χρόνο εκπαιδευτικού µικροϋπολογιστικού συστήµατος ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΚΥΡΙΑΚΟΥ Α. ΣΤΑΥΡΟΥ Επιβλέπων : Κιαµάλ Πεκµεστζή Καθηγητής Ε.Μ.Π. Αθήνα, Οκτώβριος 2003

Η σελίδα αυτή είναι σκόπιµα λευκή.

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τοµέας Τεχνολογίας πληροφορικής και υπολογιστών Εξοµοίωση σε πραγµατικό χρόνο εκπαιδευτικού µικροϋπολογιστικού συστήµατος ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΚΥΡΙΑΚΟΥ Α. ΣΤΑΥΡΟΥ Επιβλέπων : Κιαµάλ Πεκµεστζή Καθηγητής Ε.Μ.Π. Εγκρίθηκε από την τριµελή εξεταστική επιτροπή την 7 η Οκτωβρίου 2003. (Υπογραφή) (Υπογραφή) (Υπογραφή) Κιαµάλ Πεκµεστζή Νικόλαος Μήτρου Ανδρέας- Γεώργιος Σταφυλοπάτης Καθηγητής Ε.Μ.Π Καθηγητής Ε.Μ.Π Καθηγητής Ε.Μ.Π Αθήνα, Οκτώβριος 2003

(Υπογραφή)... ΚΥΡΙΑΚΟΣ Α. ΣΤΑΥΡΟΥ ιπλωµατούχος Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Ε.Μ.Π. 2003 All rights reserved

Αφιερώνεται εξαιρετικά σε ένα άγγελο που ακούει στο όνοµα Γιάννα

Περίληψη Ο σκοπός της παρούσας διπλωµατικής εργασίας είναι η εξοµοίωση σε πραγµατικό χρόνο ενός ολοκληρωµένου µικροϋπολογιστικού συστήµατος. Αναπτύσσεται η βασική µεθοδολογία εξοµοίωσης σε πραγµατικό χρόνο µε έµφαση στη µοντελοποίηση του επεξεργαστή και των περιφερειακών του µικροϋπολογιστικού συστήµατος. Συγκεκριµένα εξοµοιώθηκε το Microlab (HP 5036A ) που είναι ένα εκπαιδευτικό µικροϋπολογιστικό σύστηµα που βασίζεται στον επεξεργαστή 8085 της Intel. Το Microlab χρησιµοποιείται στο µάθηµα Εργαστήριο Μικροϋπολογιστών που διδάσκεται ως υποχρεωτικό µάθηµα στη Ροή Υ. Θα ήθελα να ευχαριστήσω τον Κύριο Κιαµάλ Πεκµεστζή που ήταν ο επιβλέπων καθηγητής και τον Κύριο Κώστα Γκότση για τις καίριες παρατηρήσεις του όσον αφορά τόσο στην ανάπτυξη του προγράµµατος όσο και στην αντιµετώπιση προβληµάτων κατά τη µοντελοποίηση του Microlab. Λέξεις Κλειδιά : 8085 Microlab HP 5036A Μικροϋπολογιστικό σύστηµα Μοντελοποίηση επεξεργαστή Εξοµοίωση σε πραγµατικό χρόνο i

Η σελίδα αυτή είναι σκόπιµα λευκή. - ii -

Abstract The purpose of the present diploma thesis is the real time simulation of o complete microprocessor system. The basic methodology of real time simulation with focus on processor and peripherals is discussed here. The system that was simulated is Microlab (HP 5036A ) witch is an educational microprocessor system based on Intel 8085 processor. Microlab is used for the course Microprocessors laboratory of the Computer Engineering Department - National Technical University of Athens. I would like to thank mister Kiamal Pekmestzi who supervised my thesis and mister Kostas Gotsis for his advises during the development of the software and the modeling procedure. Keywords : 8085 Microlab HP 5036A Microprocessor System Processor Modeling Real Time Simulation iii

Η σελίδα αυτή είναι σκόπιµα λευκή. - iv -

Πίνακας περιεχόµενων 1. Εισαγωγή...1 1.1 Αντικείµενο της διπλωµατικής...1 1.2 Στόχοι...1 1.3 Η χρησιµότητα του εξοµοιωτή...1 1.4 Η οργάνωση του τόµου...1 1.5 Τα περιεχόµενα του CD...2 2. Το microlab...3 2.1 Μικρούπολογιστικά συστήµατα...3 2.1.1. Η έννοια του µικροϋπολογιστικού συστήµατος...3 2.2 Το microlab...3 2.2.1. Η διεπαφή (interface) του microlab...4 2.2.2. Το πρόγραµµα επόπτη (monitor program)...4 2.3 Προηγούµενες υλοποιήσεις εξοµοιωτών...5 2.3.1. Microlab Simulator για DOS...5 2.3.2. µlab 5036a Simulator Ver 1.0...6 2.4 Οι στόχοι που τέθηκαν Προδιαγραφές...7 3. Ανάλυση και σχεδίαση...11 3.1 Η έννοια της εξοµοίωσης...11 3.1.1. Τα πλεονεκτήµατα των εξοµοιωτών...11 3.1.2. Τα µειονεκτήµατα των εξοµοιωτών...12 3.1.3. Προδιαγραφές των εξοµοιωτών...12 3.2 Εξοµοίωση πραγµατικού χρόνου...12 3.2.1. Εξοµοίωση ηλεκτρονικών συστηµάτων...13 3.2.2. Ανάλυση της εξοµοίωσης...13 3.3 Η δοµή του εξοµοιωτή του microlab...13 3.4 Εξοµοίωση υλικού πλην των συσκευών εισόδου / εξόδου...14 3.4.1. Εξοµοίωση του επεξεργαστή Intel 8085...15 3.4.2. Εξοµοίωση της µνήµης και θυρών εισόδου / εξόδου...18 3.4.2.1. Προστασία µνήµης και θύρα ελέγχου...20 3.4.2.2. Οι υπόλοιπες θύρες...23 3.4.2.3. Τελική υλοποίηση της µνήµης...23 3.5 Εξοµοίωση συσκευών εισόδου εξόδου...23 3.5.1. Οθόνη...23 3.5.2. Πληκτρολόγιο...26 3.5.2.1. Πλήκτρο Instruction Step...27 3.5.3. Λυχνίες εξόδου (LED s)...27 3.5.4. ιακόπτες εισόδου (Dip Switches)...28 3.5.5. Μεγάφωνο...28 4. Υλοποίηση...31 4.1 Πλατφόρµες και προγραµµατιστικά εργαλεία...31 4.2 Λεπτοµέρειες υλοποίησης...31 v

4.3 Οι κλάσεις του προγράµµατος...31 4.3.1. Κλάση aboutclass...31 4.3.2. Κλάση assemblerclass...32 4.3.3. Κλάση auxiliaryclass...34 4.3.4. Κλάση converterform...36 4.3.5. Κλάση compilationerrorexception...36 4.3.6. Κλάση cpuinmainform...37 4.3.7. Κλάση executionclass...37 4.3.8. Κλάση fileclass...39 4.3.9. Κλάση instructionexecution...40 4.3.10. Κλάση instructionsopcode Class...56 4.3.11. Κλάση keyboard Class...63 4.3.12. Κλάση loadsavesettingsclass...63 4.3.13. Κλάση main Class...64 4.3.14. Κλάση memoryclass Class...66 4.3.15. Κλάση microlabbeeper Class...67 4.3.16. Κλάση NotEnoughMemoryException Class...68 4.3.17. Κλάση registers Class...68 4.3.18. Κλάση SearchForm Class...69 4.3.19. Κλάση settingsclass...70 4.3.20. Κλάση sevensegments...70 4.3.21. Κλάση splashscreenclass...70 4.3.22. Κλάση Synchronizer Class...71 5. Εγχειρίδιο χρήσης...72 5.1 Τι είναι το Microlab Simulator TSIK...72 5.2 Απαιτήσεις του προγράµµατος...72 5.2.1. Προδιαγραφές υλικού...72 5.2.2. Προδιαγραφές λογισµικού...72 5.3 Εγκατάσταση του προγράµµατος...73 5.3.1. Εγκατάσταση του Microlab Simulator TSIK...73 5.3.2. Εγκατάσταση του Microsoft.NET Framework 1.1...76 5.3.3. Εγκατάσταση του Internet Explorer 6.0...77 5.4 Αρχεία και συντοµεύσεις...79 5.5 Βασικές λειτουργίες...79 5.5.1. Κειµενογράφος (Text Editor)...79 5.5.1.1. ηµιουργία νέου αρχείου (New File)...79 5.5.1.2. Άνοιγµα αρχείου (Open File)...79 5.5.1.3. Αποθήκευση αρχείου (Save File)...80 5.5.1.4. Αποθήκευση αρχείου ως (Save File as)...81 5.5.1.5. Ρύθµιση σελίδας εκτύπωσης (Page Setup)...82 5.5.1.6. Εκτύπωση (Print)...82 5.5.1.7. Επισκόπηση Εκτύπωσης (Print Preview)...83 5.5.1.8. Αποκοπή (Cut)...83 5.5.1.9. Αντιγραφή (Copy)...83 5.5.1.10. Επικόλληση (Paste)...83 5.5.1.11. Αναίρεση (Undo)...84 5.5.1.12. Εύρεση και αντικατάσταση (Find and replace)...84 5.5.1.13. Μεγέθυνση γραµµατοσειράς...84 5.5.1.14. Σµίκρυνση γραµµατοσειράς...84 5.5.1.15. Ένδειξη µη αποθήκευσης...85 5.5.2. Βοηθητικά εργαλεία...85 5.5.2.1. Μετατροπέας µεταξύ συστηµάτων...85 - vi -

5.5.2.2. Περί (About)...86 5.5.3. Μεταφραστής (assembler)...86 5.5.3.1. Μετάφραση του προγράµµατος...87 5.5.3.2. Μνήµη και εντολές...87 5.5.3.3. Οδηγία END...90 5.5.3.4. Οδηγία DB...91 5.5.3.5. Οδηγία EQU...92 5.5.3.6. Οδηγία ORG...93 5.5.3.7. Σχόλια...94 5.5.3.8. εκαεξαδικές τιµές...95 5.5.3.9. Εντολές άλµατος...96 5.5.3.10. Το πρόγραµµα δεν µπορεί να έχει αυθαίρετο µέγεθος...99 5.6 Ο εξοµοιωτής...99 5.6.1. Πλήκτρα χειρισµού του microlab...99 5.6.1.1. Έναρξη της λειτουργίας του microlab...99 5.6.1.2. Τερµατισµός λειτουργίας του microlab...100 5.6.1.3. Παύση λειτουργίας του microlab...100 5.6.1.4. Συνέχιση λειτουργίας του microlab...100 5.6.1.5. Καθαρισµός καταχωρητών και µνήµης...100 5.6.1.6. Ρύθµιση ταχύτητας εκτέλεσης...100 5.6.2. Συσκευές εισόδου / εξόδου...101 5.6.3. Εργαλεία επόπτευσης των καταχωρητών και της µνήµης...102 5.6.3.1. Επόπτευση της µνήµης...102 5.6.3.2. Επόπτευση των καταχωρητών...102 5.7 Άλλα βοηθητικά εργαλεία...103 5.7.1. Βηµατική εκτέλεση του προγράµµατος χρήστη...103 5.7.2. ιακοπή RST 6.5...105 5.8 Σύνοψη συντοµεύσεων πληκτρολογίου...106 5.8.1. Εργασίες εξοµοιωτή...106 5.8.2. Εργασίες συστήµατος εισόδου / εξόδου του microlab...106 Ευρετήριο... 107 Γλωσσάριο... 108 Συντοµογραφίες... 109 Παράρτηµα Α...111 Το πρόγραµµα επόπτη (monitor program) του microlab...111 vii

Ευρετήριο εικόνων Ευρετήριο Εικόνα 5-1: Το εικονίδιο του προγράµµατος...79 Ευρετήριο οθονών Οθόνη 2-1 : Microlab Simulator για DOS...6 Οθόνη 2-2 : µlab 5036a Simulator Ver 1.0...7 Οθόνη 5-1 : Οθόνη που εµφανίζεται όταν δεν υπάρχει εγκατεστηµένο το Microsoft.NET Framework 1.1...73 Οθόνη 5-2 : Πρώτη οθόνη εγκατάστασης του Microlab Simulator TSIK...73 Οθόνη 5-3 : Καθορισµός παραµέτρων εγκατάστασης του Microlab Simulator TSIK...74 Οθόνη 5-4 : Επιβεβαίωση παραµέτρων εγκατάστασης του Microlab Simulator TSIK...74 Οθόνη 5-5 : Οθόνη συµφωνίας χρήσης του Microlab Simulator TSIK...75 Οθόνη 5-6 : Ολοκλήρωση εγκατάστασης του Microlab Simulator TSIK...75 Οθόνη 5-7 : Εγκατάσταση του Microsoft.NET Framework 1.1...76 Οθόνη 5-8 : Οθόνη που εµφανίζεται όταν δεν υπάρχει εγκατεστηµένη η κατάλληλη έκδοση του Internet Explorer...76 Οθόνη 5-9 : Οθόνη Update Microsoft Windows Installer Components...76 Οθόνη 5-10 : License Agreement για το Microsoft.NET Framework 1.1...77 Οθόνη 5-11 : Οθόνη τέλους εγκατάστασης του Microsoft.NET Framework 1.1...77 Οθόνη 5-12 : Πρώτη οθόνη εγκατάστασης του Internet Explorer 6.0...77 Οθόνη 5-13 : Επιλογή τύπου εγκατάστασης του Internet Explorer 6.0...78 Οθόνη 5-14 : Για την ολοκλήρωση της εγκατάστασης του Internet Explorer 6.0 απαιτείται επανεκκίνηση...78 Οθόνη 5-15 : Πλήκτρο Νέο αρχείο µε µη αποθηκευµένα δεδοµένα στο χώρο κειµένου...79 Οθόνη 5-16 : Πλήκτρο Άνοιγµα αρχείου µε µη αποθηκευµένα δεδοµένα στο χώρο κειµένου...80 Οθόνη 5-17 : ιάλογος για το άνοιγµα αρχείου...80 Οθόνη 5-18 : ιάλογος για αποθήκευση αρχείου...81 Οθόνη 5-19 : ιάλογος για αποθήκευση αρχείου ως...81 Οθόνη 5-20 : Ρύθµιση σελίδας εκτύπωσης...82 Οθόνη 5-21 : ιάλογος Εκτύπωσης...82 Οθόνη 5-22 : Παράδειγµα οθόνης επισκόπησης εκτύπωσης...83 Οθόνη 5-23 : Οθόνης εύρεσης και αντικατάστασης...84 Οθόνη 5-24 : Οθόνης ένδειξης µη αποθήκευσης...85 Οθόνη 5-25 : Οθόνη µετατροπέα συστηµάτων...85 Οθόνη 5-26 : Οθόνη περί (About)...86 Οθόνη 5-27 : Πρόγραµµα Μνήµη και εντολές (1)...87 Οθόνη 5-28 : Πρόγραµµα Μνήµη και εντολές (2)...88 Οθόνη 5-29 : Μήνυµα λάθους κατά τη µετατροπή...88 Οθόνη 5-30 : Κάθε πρόγραµµα πρέπει να περιέχει τουλάχιστον µια οδηγία END (1)...90 Οθόνη 5-31 : Κάθε πρόγραµµα πρέπει να περιέχει τουλάχιστον µια οδηγία END (2)...90 Οθόνη 5-32 : Οτιδήποτε βρίσκεται µετά την οδηγία END δεν λαµβάνεται υπόψη κατά τη µετάφραση...91 Οθόνη 5-33 : Μήνυµα λάθους για την οδηγία ORG...94 - viii -

Οθόνη 5-34 : Ο µεταφραστής ΕΝ αντιλαµβάνεται δεκαδικές τιµές (1)...95 Οθόνη 5-35 : Ο µεταφραστής ΕΝ αντιλαµβάνεται δεκαδικές τιµές (2)...95 Οθόνη 5-36 : Οθόνη ορθού προγράµµατος µε εντολή άλµατος...96 Οθόνη 5-37 : Η ετικέτα της εντολής άλµατος δεν υπάρχει...96 Οθόνη 5-38 : εν µπορούν να υπάρχουν δύο ετικέτες µε το ίδιο όνοµα...97 Οθόνη 5-39 : Μια ετικέτα ενδέχεται να χρησιµοποιείται ήδη στο πρόγραµµα επόπτη (monitor program).97 Οθόνη 5-40 : Μήνυµα λάθους όταν το πρόγραµµα του χρήστη δεν χωρά στη RAM...99 Οθόνη 5-41 : Χώρος απεικόνισης µνήµης...102 Οθόνη 5-42 : Χώρος απεικόνισης καταχωρητών...102 Οθόνη 5-43 : Πρόσθετες λειτουργίες στο Instruction Step (1)...103 Οθόνη 5-44 : Πρόσθετες λειτουργίες στο Instruction Step (2)...104 Οθόνη 5-45 : Πρόσθετες λειτουργίες στο Instruction Step (3)...104 Ευρετήριο πινάκων Πίνακας 3-1: Χάρτης διευθύνσεων του microlab...18 Πίνακας 3-2: Τελική υλοποίηση της µνήµης...23 Πίνακας 3-3: Πίνακας για την εξοµοίωση του πληκτρολογίου...26 Πίνακας 5-1: Έγκυρες εντολές για τον µεταφραστή (assembler)...89 Πίνακας 5-2: Εξήγηση των ορισµών byte doublebyte label και name)...89 Πίνακας 5-3: Ετικέτες που χρησιµοποιούνται από το πρόγραµµα επόπτη (monitor program)...98 Πίνακας 5-4: Πίνακας συντοµεύσεων πληκτρολογίου για τις συσκευές εισόδου του εξοµοιωµένου microlab...101 Ευρετήριο σχηµάτων Σχήµα 2-1 : Οι συσκευές εισόδου του microlab....4 Σχήµα 2-2 : Οι συσκευές εξόδου του microlab...5 Σχήµα 3-1 : Υποσυστήµατα εξοµοιωτή...14 Σχήµα 3-2 : Πρώτη προσέγγιση εξοµοίωσης του microlab...14 Σχήµα 3-3 : Εξοµοίωση υλικού πλην των συσκευών εισόδου / εξόδου...15 Σχήµα 3-4 : Απλοποιηµένο διάγραµµα εσωτερικής αρχιτεκτονικής του επεξεργαστή Intel 8085...16 Σχήµα 3-5 : ιάγραµµα του επεξεργαστή Intel 8085 όπως είναι υλοποιηµένος στον εξοµοιωτή...17 Σχήµα 3-6 : Καταχωρητής σηµαιών...17 Σχήµα 3-7 : Σύστηµα διακοπών...18 Σχήµα 3-8 : Χάρτης µνήµης του microlab...19 Σχήµα 3-9 : Θύρες του microlab...20 Σχήµα 3-10 : Θύρα ελέγχου του microlab...21 Σχήµα 3-11 : Ανάθεση τιµών στα σήµατα της θύρας ελέγχου του microlab...22 Σχήµα 3-12 : ίαυλος διευθύνσεων κατά την εκτέλεση της εντολή IN 10H ή της εντολής OUT 10H...22 Σχήµα 3-13 : ίαυλος διευθύνσεων κατά την εκτέλεση της εντολή IN 11H ή της εντολής OUT 11H...22 Σχήµα 3-14 : Θύρα οθόνης (3800) του microlab...23 Σχήµα 3-15 : Θύρα σάρωσης (2800) του microlab...24 Σχήµα 3-16 : Εξοµοίωση ψηφίου επτά τµηµάτων (seven segment)...25 Σχήµα 3-17 : Το πληκτρολόγιο του microlab...26 ix

Σχήµα 3-18 : Θύρα εξόδου (3000)...28 Σχήµα 3-19 : Θύρα εισόδου (2000)...28 Σχήµα 3-20 : Κύκλωµα µεγαφώνου του microlab...29 Σχήµα 3-21 : Εξοµοίωση της ρουτίνας Beep του προγράµµατος επόπτη (monitor program)...29 Σχήµα 5-1 : Συσκευές εισόδου / εξόδου του microlab µέσα από τον εξοµοιωτή...101 - x -

Κεφάλαιο 1 : Εισαγωγή 1. Εισαγωγή 1.1 Αντικείµενο της διπλωµατικής Η παρούσα εργασία πραγµατεύεται την εξοµοίωση σε πραγµατικό χρόνο (real time simulation) ενός ολοκληρωµένου µικροϋπολογιστικού συστήµατος. Εξηγούνται οι βασικές αρχές της εξοµοίωσης σε πραγµατικό χρόνο και της µοντελοποίησης του επεξεργαστή και των περιφερειακών ενός πραγµατικού συστήµατος. Το σύστηµα που εξοµοιώθηκε είναι το Microlab (HP 5036A ) που είναι βασισµένο στον επεξεργαστή 8085 της Intel. Το Microlab χρησιµοποιείται κατά τη διδασκαλεία του µαθήµατος Εργαστήριο Μικροϋπολογιστών που διδάσκεται ως υποχρεωτικό µάθηµα της Ροής Υ. 1.2 Στόχοι Ο στόχος που τέθηκε από την αρχή ήταν η κατασκευή ενός εργαλείου το οποίο θα εξοµοιώνει το Microlab σε τέτοιο βαθµό ώστε όλες οι λειτουργίες του πραγµατικού συστήµατος να είναι διαθέσιµες στο χρήστη. Το πρόγραµµα επόπτη (monitor program) έπρεπε να παραµείνει ως είχε. Όσον αφορά τον τρόπο χειρισµού του microlab, ο εξοµοιωτής θα έπρεπε να ήταν τουλάχιστον το ίδιο εύχρηστος. Ορισµένες λειτουργίες του πραγµατικού συστήµατος που θεωρήθηκαν δύσχρηστες, όπως για παράδειγµα η επισκόπηση της τιµής των καταχωρητών και της µνήµης, κρίθηκε σκόπιµο να υλοποιηθούν µε τρόπο που να τις κάνει περισσότερο εύχρηστες, χωρίς όµως να καταργεί την αρχική τους µορφή. Το πρόγραµµα έπρεπε να αναπτυχθεί µε τρόπο ώστε να είναι δυνατή η επέκταση και συντήρησή του. Έτσι θεωρήθηκε αναγκαίο να περιγραφεί αναλυτικά η µορφή του κώδικα του προγράµµατος και να δοθούν οδηγίες για την τροποποίησή του. Τέλος είναι σαφές ότι θα έπρεπε να υπάρχει και ένα αναλυτικό εγχειρίδιο που θα επιτρέπει στο χρήστη να εξοικειωθεί µε τον εξοµοιωτή. 1.3 Η χρησιµότητα του εξοµοιωτή Η χρήση του microlab είναι εν γένει µια επίπονη εργασία ιδίως όταν είναι επιθυµητή η ανάπτυξη µεγάλων προγραµµάτων. Ο προγραµµατισµός του συστήµατος γίνεται εισάγοντας ένα προς ένα τα bytes της κάθε εντολής σε δεκαεξαδική µορφή. Η µετατροπή ενός προγράµµατος από συµβολική γλώσσα σε γλώσσα µηχανής είναι µια διαδικασία που εκτός από χρονοβόρα σπάνια γίνεται σωστά από την πρώτη προσπάθεια. Ο εντοπισµός και η διόρθωση πιθανού λάθους δεν είναι καθόλου εύκολη υπόθεση αφού ο χρήστης βλέπει µόνο δεκαεξαδικά ψηφία τα οποία δεν φανερώνουν εύκολα τη δοµή του υπό ανάπτυξη προγράµµατος. Ένα άλλο πολύ σηµαντικό πρόβληµα είναι η αποθήκευση ενός προγράµµατος. Όταν το microlab κλείσει τότε όλη η δουλειά έχει χαθεί. Προκειµένου να είναι δυνατόν το πρόγραµµα να ξανατρέξει πρέπει να γραφεί και πάλι εντολή προς εντολή. Ο εξοµοιωτής σκοπό έχει να ευκολύνει το χρήστη όσο αυτό είναι δυνατόν χωρίς όµως να του στερεί την αµεσότητα της χρήσης του πραγµατικού microlab. Κάποιος που γνωρίζει τη λειτουργία του microlab θα εκπλαγεί ευχάριστα όταν χρησιµοποιήσει τον εξοµοιωτή και κάποιος που µπορεί να χειριστεί καλά τον εξοµοιωτή δεν θα έχει κανένα πρόβληµα να δουλέψει στο πραγµατικό microlab. 1.4 Η οργάνωση του τόµου Στο κεφάλαιο 2 περιγράφεται το microlab και οι προηγούµενες υλοποιήσεις εξοµοιωτών. Στο τέλος καθορίζονται οι προδιαγραφές του υπό ανάπτυξη εξοµοιωτή. - 1-

Κεφάλαιο 1 : Εισαγωγή Στο κεφάλαιο 3 αναπτύσσονται οι έννοιες της εξοµοίωσης και της εξοµοίωσης σε πραγµατικό χρόνο. Ως υπόδειγµα εξοµοίωσης σε πραγµατικό χρόνο µελετάται αναλυτικά η σχεδίαση του εξοµοιωτή για το µικροϋπολογιστικό σύστηµα Microprocessor Laboratory HP5036a που είναι γνωστό και ως microlab. Το κεφάλαιο 4 πραγµατεύεται την υλοποίηση του εξοµοιωτή. Εξηγεί δηλαδή συνοπτικά τον τρόπο µε τον οποίο αναπτύχθηκε προγραµµατιστικά ο εξοµοιωτής καθώς και τα εργαλεία που χρησιµοποιήθηκαν για το σκοπό αυτό. Στη συνέχεια του κεφαλαίου αυτού γίνεται µια σύντοµη αναφορά σε κάθε µία από τις κλάσεις του προγράµµατος. Στο κεφάλαιο 5 δίδεται το εγχειρίδιο χρήσης του προγράµµατος. Εξηγείται η διαδικασία εγκατάστασης βήµα προς βήµα και δίδεται µια αναλυτική περιγραφή κάθε λειτουργίας του. Επίσης υπάρχει ένα αναλυτικό παράδειγµα για την κατασκευή ενός προγράµµατος, τη µετάφραση και την εκτέλεση αυτού. 1.5 Τα περιεχόµενα του CD Το CD που συνοδεύει το βιβλίο περιέχει τα εξής : 1. Το project του προγράµµατος. 2. Τον κώδικα του προγράµµατος. 3. Την τεκµηρίωση (documentation) του προγράµµατος. 4. Το πρόγραµµα εγκατάστασης. 5. Το βιβλίο σε ηλεκτρονική µορφή (PDF). 6. Το εγχειρίδιο χρήσης του προγράµµατος σε ηλεκτρονική µορφή (PDF). - 2 -

Κεφάλαιο 2 : Το microlab 2. Το microlab Στο κεφάλαιο αυτό γίνεται µια σύντοµη παρουσίαση της έννοιας του µικροϋπολογιστικού συστήµατος µε κύριο άξονα το microlab. 2.1 Μικρούπολογιστικά συστήµατα Σκοπός της παραγράφου αυτής δεν είναι να εµβαθύνει στη θεωρία που κρύβεται πίσω από τα µικροϋπολογιστικά συστήµατα, αλλά να εξοικειώσει το χρήστη µε την έννοια αυτή. Σαν παράδειγµα µικροϋπολογιστικού συστήµατος θα µελετηθεί συνοπτικά το microlab. 2.1.1. Η έννοια του µικροϋπολογιστικού συστήµατος Αρχικά πρέπει να γίνει κατανοητή η έννοια του µικροϋπολογιστικού συστήµατος. Όπως είναι γνωστό το λογισµικό (software) από µόνο του δεν είναι παρά µια αφηρηµένη οντότητα που δεν µπορεί να δώσει χειροπιαστά αποτελέσµατα. Το ίδιο ισχύει και για το υλικό (hardware). Προκειµένου να µπορεί να περατωθεί µια λογισµική εργασία είναι απαραίτητη η συνδυασµένη χρήση υλικού (hardware) και λογισµικού (software). Ένα σύστηµα που διαθέτει υλικό και λογισµικό και µπορεί να περατώσει λογισµικές εργασίες ονοµάζεται υπολογιστικό σύστηµα. Με τον όρο λογισµικές εργασίες εννοούµε προγράµµατα που παίρνουν ως είσοδο δεδοµένα και δίνουν ως έξοδο πάλι δεδοµένα, τα οποία προκύπτουν από επεξεργασία των δεδοµένων εισόδου. Κλασσικά παραδείγµατα είναι τα προγράµµατα υπολογισµού µισθοδοσίας, διαχείρισης βάσεων δεδοµένων οι ηλεκτρονικοί κειµενογράφοι και αναρίθµητα άλλα. Το πιο γνωστό παράδειγµα υπολογιστικού συστήµατος είναι οι προσωπικοί υπολογιστές (Personal Computers - PC). ιαθέτουν τόσο το υλικό (επεξεργαστή, µνήµη, σκληρό δίσκο) όσο και λογισµικό (λειτουργικό πρόγραµµα, προγράµµατα εφαρµογής) που τα καθιστά ικανά να εκτελούν λογισµικές εργασίες. Ένας επεξεργαστής, µια µνήµη, µια συσκευή εισόδου / εξόδου δεν είναι κάτι που έχει άµεση χρησιµότητα σαν οντότητα, όταν υπάρχει δηλαδή µόνο του. Ας πάρουµε για παράδειγµα ένα ηχείο, µόνο του δεν µπορεί να παράγει µουσική. Το ίδιο συµβαίνει αν έχουµε ένα στερεοφωνικό χωρίς ηχεία. Αν όµως συνδέσουµε το στερεοφωνικό µε τα ηχεία τότε θα έχουµε το επιθυµητό αποτέλεσµα. Ένα µικροϋπολογιστικό σύστηµα είναι µια µικρογραφία ενός υπολογιστικού συστήµατος. ιαθέτει µόνο τα απολύτως απαραίτητα ώστε να είναι δυνατή η επικοινωνία του χρήστη µε τη µηχανή. Πρέπει να διαθέτει συσκευές εισόδου / εξόδου ώστε να είναι δυνατή η αλληλεπίδραση χρήστη - µηχανής αλλά και ένα στοιχειώδες λειτουργικό σύστηµα που να διευκολύνει τη χρήση και να επιτρέπει την καλύτερη αξιοποίηση του υλικού. Απαραίτητα στοιχεία υλικού είναι ο επεξεργαστής, η µνήµη και οι συσκευές εισόδου / εξόδου. 2.2 Το microlab Το microlab είναι ένα µικροϋπολογιστικό σύστηµα κτισµένο γύρω από τον µικροεπεξεργαστή Intel 8085. Έχει εκπαιδευτικό χαρακτήρα και στοχεύει στην εξοικείωση του χρήστη µε την έννοια του ολοκληρωµένου υπολογιστικού συστήµατος. Με το microlab µπορεί κάποιος να γράψει ένα πρόγραµµα σε γλώσσα µηχανής και να το εκτελέσει. Κατά τη διάρκεια της εκτέλεσης του προγράµµατος υπάρχει δυνατότητα αλληλεπίδρασης µε αυτό, καθώς και δυνατότητα απεικόνισης αποτελεσµάτων στις συσκευές εξόδου. Προκειµένου να επιτρέψει την αλληλεπίδραση χρήστη και συστήµατος διαθέτει συσκευές εισόδου / εξόδου καθώς και ένα πρόγραµµα επόπτη (monitor) που σκοπό έχει να ευκολύνει το χρήστη. - 3-

Κεφάλαιο 2 : Το microlab 2.2.1. Η διεπαφή (interface) του microlab Με την έννοια της διεπαφής (interface) εννοούµε τα εργαλεία εκείνα που παρέχει το υπολογιστικό σύστηµα προκειµένου να καταστήσει δυνατή την χρήση του. Για παράδειγµα στους προσωπικούς υπολογιστές (personal computers) µέρος της διεπαφής αποτελούν το πληκτρολόγιο, το ποντίκι και η οθόνη. Ο επεξεργαστής για παράδειγµα δεν αποτελεί µέρος της διεπαφής γιατί δεν είναι κάτι µε το οποίο ο χρήστης µπορεί άµεσα να ελέγξει τη λειτουργία του υπολογιστικού συστήµατος. Η διεπαφή (interface) του microlab αποτελείται από δύο οµάδες συσκευών. Τις συσκευές εισόδου που επιτρέπουν στο χρήστη να ελέγξει το microlab και τις συσκευές εξόδου µε τις οποίες το microlab µπορεί να ενηµερώσει το χρήστη για την κατάσταση στην οποία βρίσκεται. Συσκευές εισόδου Πληκτρολόγιο : Υπάρχει ένα πλήκτρο για κάθε δεκαεξαδικό αριθµό και δέκα πλήκτρα ελέγχου που επιτελούν ειδικές λειτουργίες. ιακόπτες εισόδου : Υπάρχουν 8 διακόπτες εισόδου που επιτρέπουν την είσοδο ισάριθµων δυαδικών ψηφίων στη θύρα εισόδου Πλήκτρο διακοπής : Ένα από τα πλήκτρα του ελέγχου, το INTRP, έχει ειδική λειτουργία καθώς είναι συνδεδεµένο σε µια διακοπή υλικού (hardware interrupt). RESET RUN D E F HWDR STEP INSTR STEP A B C INTRPT FETCH PC 7 8 9 Πληκτρολόγιο (Keyboard) FETCH ADDRS FETCH REG 4 5 6 DECR STORE / INCR 0 1 2 3 ιακόπτες (dip Switches) Σχήµα 2-1 : Οι συσκευές εισόδου του microlab. Συσκευές εξόδου - 4 - Οθόνη : Μπορεί να απεικονίσει 6 δεκαεξαδικά ψηφία. Λυχνίες : Υπάρχουν 8 λυχνίες (LED s) που επιτρέπουν την απεικόνιση ισάριθµων δυαδικών ψηφίων της θύρας εξόδου. Μεγάφωνο : Το µεγάφωνο είναι συνδεδεµένο στην σειριακή θύρα εξόδου του επεξεργαστή 2.2.2. Το πρόγραµµα επόπτη (monitor program) Το πρόγραµµα επόπτη (monitor program) σκοπό έχει να διευκολύνει το χρήστη µε διάφορες λειτουργίες που παρέχει. Μερικές από αυτές είναι : Η δυνατότητα επισκόπησης των περιεχοµένων της µνήµης Η δυνατότητα επισκόπησης των περιεχοµένων των καταχωρητών

Κεφάλαιο 2 : Το microlab Η δυνατότητα εκτέλεσης προγράµµατος το οποίο µπορεί να εισαχθεί από το χρήστη µε τη βοήθεια του πληκτρολογίου Η δυνατότητα βηµατικής εκτέλεσης προγράµµατος Το πρόγραµµα επόπτη (monitor program) παρέχεται σε παράρτηµα στο τέλος του βιβλίου. Ενδείκτες επτά τµηµάτων (Seven Segment Displays) Λυχνίες (LEDs) Μεγάφωνο (Speaker) Σχήµα 2-2 : Οι συσκευές εξόδου του microlab. Ένα από τα βασικά µειονεκτήµατα του microlab είναι ότι δεν δίνεται η δυνατότητα στο χρήστη να αποθηκεύσει το πρόγραµµα του. Κάθε φορά που επιθυµεί να το εκτελέσει πρέπει να το ξαναγράψει από την αρχή. Όπως όµως ειπώθηκε και πριν το microlab είναι ένα εργαλείο µε καθαρά εκπαιδευτικό χαρακτήρα και όχι µια πλατφόρµα µε επαγγελµατικές προδιαγραφές, κάτι που δικαιολογεί το µειονέκτηµα αυτό. 2.3 Προηγούµενες υλοποιήσεις εξοµοιωτών Στο παρελθόν έχουν γίνει δύο προσπάθειες εξοµοίωσης του microlab στο χώρο του Εθνικού Μετσόβιου Πολυτεχνείου. Αν και έγινε µια επισταµένη έρευνα στο διαδίκτυο δεν ήταν δυνατόν να εντοπιστεί κάποιος άλλος εξοµοιωτής του microlab πέραν των δύο που αναφέρθηκαν πριν. Οι προηγούµενοι εξοµοιωτές µελετήθηκαν σε βάθος προκειµένου να εντοπιστούν τόσο οι αδυναµίες τους όσο και τα καλά τους στοιχεία. Τα λάθη πρέπει να αποφευχθούν, οι αδυναµίες να διορθωθούν αλλά τα καλά στοιχεία δίνουν ιδέες για ένα καλύτερο αποτέλεσµα. Πρέπει εδώ να τονίσω ότι το πρόγραµµα Microlab Simulator TSIK, που είναι το αποτέλεσµα της διπλωµατικής µου εργασίας, δεν είναι κάποια τροποποίηση ή βελτίωση ενός εκ των ήδη υπαρχόντων εξοµοιωτών. Είναι ένα πρόγραµµα που δηµιουργήθηκε από το µηδέν. 2.3.1. Microlab Simulator για DOS Το πρόγραµµα εξοµοιώνει σε ικανοποιητικό βαθµό τη λειτουργία του microlab χωρίς να παρατηρούνται ιδιαίτερα προβλήµατα πέραν της αδυναµίας εξοµοίωσης του µεγαφώνου. Υπάρχουν όµως αρκετά και σηµαντικά µειονεκτήµατα που κάνουν το συγκεκριµένο πρόγραµµα ακατάλληλο. Το πρόγραµµα είναι γραµµένο ως εφαρµογή του DOS κάτι που κάνει τη χρήση του αδύνατη στα σύγχρονα λειτουργικά συστήµατα. Στα Windows 2000 και στα Windows XP, που είναι πλέον εγκατεστηµένα στην πλειονότητα των υπολογιστών, το DOS υπολειτουργεί και πολλές φορές η εκτέλεση προγραµµάτων σε αυτό δηµιουργεί προβλήµατα. - 5-

Κεφάλαιο 2 : Το microlab Στο πρόγραµµα δεν υπάρχει ούτε κειµενογράφος (text editor) ούτε µεταφραστής (assembler) και έτσι αναγκαστικά ο χρήστης πρέπει να µεταφράσει µε το χέρι το πρόγραµµά του σε δεκαεξαδική µορφή και να το περάσει στη συνέχεια στη µνήµη του εξοµοιωτή byte προς byte. εν υπάρχει δυνατότητα αποθήκευσης του προγράµµατος και έτσι κάθε φορά που είναι επιθυµητή η εκτέλεση του πρέπει αυτό να ξαναγραφτεί από την αρχή, κάτι που είναι ιδιαίτερα κοπιαστικό όταν υπάρχει ανάγκη συχνής επανάληψής της διαδικασίας. εν υπάρχει δυνατότητα εκτύπωσης των περιεχοµένων της µνήµης, οπότε ούτε και του µεταφρασµένου προγράµµατος. εν υπάρχει τρόπος ελέγχου της ταχύτητας του εξοµοιωτή. Αυτό έχει ως αποτέλεσµα οι ρουτίνες καθυστέρησης του προγράµµατος επόπτη (monitor program) να µην ανταποκρίνονται σε πραγµατικούς χρόνους. Τέλος όπως αναφέρθηκε και πριν η εξοµοίωση του µεγαφώνου είναι ανεπιτυχής. Ένα αξιοσηµείωτο χαρακτηριστικό του προγράµµατος αυτού είναι η λειτουργικότητα του περιβάλλοντος χρήστη (user interface). Για όλες τις λειτουργίες υπάρχουν συντοµεύσεις πληκτρολογίου (keyboard shortcuts) που επιτρέπουν στον εξοικειωµένο χρήστη να χειρίζεται το πρόγραµµα µε µεγαλύτερη ταχύτητα. Αυτό το χαρακτηριστικό κρίθηκε σκόπιµο να διατηρηθεί και στον υπό ανάπτυξη εξοµοιωτή. Οθόνη 2-1 : Microlab Simulator για DOS 2.3.2. µlab 5036a Simulator Ver 1.0 Η δεύτερη υλοποίηση είναι γραµµένη για τα λειτουργικά συστήµατα Microsoft Windows 95 και Microsoft Windows 98. Στα σύγχρονα λειτουργικά συστήµατα όπως τα Windows 2000 και τα Windows XP µπορεί να εκτελεστεί µόνο σε κατάσταση συµβατότητας (compatibility mode) κάτι που περιορίζει αρκετά την ταχύτητα εκτέλεσής του. Το πρόγραµµα αυτό διορθώνει κάποιες από τις αδυναµίες του προκατόχου του δηµιουργώντας όµως αρκετά νέα προβλήµατα µε τα σηµαντικά λάθη που έχει. Οι διορθώσεις και τα πλεονεκτήµατά συνοψίζονται ως εξής : Επιτρέπει την αποθήκευση και ανάκτηση του προγράµµατος του χρήστη κάτι που είναι σηµαντικό για τους λόγους που αναφέρθηκαν σε προηγούµενη παράγραφο. Η µετάφραση του προγράµµατος του χρήστη από συµβολική γλώσσα (assembly) σε γλώσσα µηχανής γίνεται αυτόµατα. Αυτό είναι κάτι πολύ σηµαντικό αφού η µετάφραση µε το χέρι εκτός από χρονοβόρα σπάνια γίνεται σωστά από την πρώτη φορά. υστυχώς όµως το πρόγραµµα αυτό έχει πάρα πολλά µειονεκτήµατα. Στην πραγµατικότητα δηµιούργησε περισσότερα προβλήµατα από όσα έλυσε. Συγκεκριµένα : - 6 -

Κεφάλαιο 2 : Το microlab Το περιβάλλον χρήστη (user interface) του προγράµµατος είναι κάθε άλλο παρά εύχρηστο. εν υπάρχουν καθόλου συντοµεύσεις πληκτρολογίου (keyboard shortcuts) µε αποτέλεσµα όλες οι λειτουργίες να γίνονται υποχρεωτικά µε το ποντίκι (mouse). Ακόµη και η εισαγωγή των δεκαεξαδικών ψηφίων πρέπει να γίνεται µε το ποντίκι (mouse). Ο κειµενογράφος (text editor) είναι δύσχρηστος και δεν επιτρέπει συνήθεις λειτουργίες όπως αποκοπή, αντιγραφή, επικόλληση ή αναίρεση (cut, copy, paste, undo). εν υπάρχει δυνατότητα εύρεσης τµήµατος κειµένου και αντικατάστασή του (find and replace). εν επιτρέπει την εισαγωγή σχολίων στον κώδικα. Τα σηµαντικότερα και πιο ουσιαστικά όµως προβλήµατα παρουσιάζονται κατά την εξοµοίωση. Το πρόγραµµα επόπτη (monitor program) του microlab δεν εκτελείται συνεχώς όπως θα έπρεπε αλλά αγνοείται µε τις λειτουργίες του απλά να εξοµοιώνονται. Οι διακοπές υλικού (hardware interrupts) υπολειτουργούν την ίδια στιγµή που το µεγάφωνο δεν λειτουργεί καθόλου. Οθόνη 2-2 : µlab 5036a Simulator Ver 1.0 Πρόκειται για µια λειψή υλοποίηση που µάλλον αποτελεί παράδειγµα προς αποφυγή. 2.4 Οι στόχοι που τέθηκαν Προδιαγραφές Όπως αναφέρθηκε και προηγούµενα η µελέτη των προηγούµενων υλοποιήσεων έγινε προκειµένου να αποφευχθούν λάθη αλλά και να κρατηθούν τα καλά στοιχεία. Οι προδιαγραφές που τέθηκαν συνοψίζονται ως εξής : Εξοµ οίωση Πρόγραµµα επόπτη (monitor program) Ο εξοµοιωτής πρέπει να είναι σε θέση να µιµείται µε ακρίβεια όλες τις λειτουργίες του microlab όπως αυτές τις αντιλαµβάνεται ο χρήστης µέσω της διεπαφής του (interface), δηλαδή µέσω των συσκευών εισόδου εξόδου. Η µόνη λειτουργία που αποφασίστηκε από την αρχή ότι δεν θα εξοµοιωθεί ήταν αυτή της βηµατικής εκτέλεσης υλικού (Hardware Step). Η λειτουργία αυτή εκτελεί µια εντολή σε κύκλους του επεξεργαστή, επιτρέποντας στο χρήστη να δει τι γίνεται σε κάθε κύκλο. Η λειτουργία κρίθηκε ιδιαίτερα δύσκολο να εξοµοιωθεί και έτσι αποφασίστηκε να αγνοηθεί. - 7-

Κεφάλαιο 2 : Το microlab Όσον αφορά το πρόγραµµα επόπτη (monitor program) ο εξοµοιωτής πρέπει να είναι σε θέση να το εκτελεί ως έχει και καµία αλλαγή σε αυτό δεν είναι αποδεκτή. Μεταφραστής (Assembler) Ο µεταφραστής πρέπει να είναι σε θέση να µετατρέπει κάθε πρόγραµµα γραµµένο σε συµβολική γλώσσα (assembly) σε γλώσσα µηχανής, και να τοποθετεί τα κατάλληλα δεδοµένα στη µνήµη. Σε περίπτωση συντακτικού λάθους πρέπει να είναι σε θέση να ενηµερώνει µε κατάλληλο µήνυµα το χρήση, δείχνοντάς του την ακριβή θέση του συντακτικού λάθους. Κρίθηκε επίσης αναγκαία η υποστήριξη των ψευδοεντολών (οδηγιών στο µεταφραστή) : EQU : ήλωση σταθεράς ORG : Θέση µετάφρασης END : Τέλος µετάφρασης DB : Τοποθέτηση δεδοµένων σε συγκεκριµένη θέση µνήµης Εργαλεία επισκόπησης Πρέπει να υπάρχουν εύχρηστα εποπτικά στοιχεία που να δίνουν στο χρήστη πληροφορίες για την κατάσταση του microlab. Αυτά τα στοιχεία δείχνουν : Τα περιεχόµενα της µνήµης τυχαίας προσπέλασης (RAM) του microlab. Τα περιεχόµενα των καταχωρητών γενικού σκοπού (registers) Το περιεχόµενο του καταχωρητή σηµαιών (flags register) Το περιεχόµενο του µετρητή προγράµµατος (program counter) Το περιεχόµενο του καταχωρητή στοίβας (stack pointer) Το περιεχόµενο της µάσκας διακοπών (Interrupt mask) Κατά την βηµατική εκτέλεση εντολής (Instruction Step) πρέπει να δείχνεται στο χρήστη εποπτικά η εκτελούµενη εντολή. Ρύθµιση ταχύτητας Ως γνωστό οι ταχύτητες των ήδη εγκατεστηµένων προσωπικών υπολογιστών ποικίλλουν και έτσι η πραγµατική ταχύτητα εξοµοίωσης δεν θα ήταν ίδια σε κάθε υπολογιστή. Αυτό θα προκαλούσε ανόµοια καθυστέρηση, αντιστρόφως ανάλογη των δυνατοτήτων του εκάστοτε υπολογιστή. Πρέπει λοιπόν να είναι δυνατή η ρύθµιση της ταχύτητας του εξοµοιωτή προκειµένου οι ρουτίνες καθυστέρησης του προγράµµατος επόπτη (monitor program) να αντιστοιχούν σε πραγµατική χρονική καθυστέρηση. Συµβατότητα µε λειτουργικά συστήµατα Ο εξοµοιωτής πρέπει να είναι συµβατός µε όλα τα υπάρχοντα λειτουργικά συστήµατα και να έχει προοπτικές συµβατότητας µε τα επερχόµενα. Περιβάλλον χρήστη (User interface) Ο εξοµοιωτής πρέπει να παρέχει φιλικό προς το χρήστη περιβάλλον µε όλες τις λειτουργίες να µπορούν να εκτελεστούν τόσο µε χρήση του ποντικιού όσο και µε χρήση του πληκτρολογίου. - 8 -

Κειµ ενογράφος (Text editor) Κεφάλαιο 2 : Το microlab Ο κειµενογράφος (text editor) πρέπει να παρέχει λειτουργίες όπως : δυνατότητα αποκοπής, αντιγραφής, επικόλλησης, αναίρεσης (cut, copy, paste, undo) δυνατότητα εύρεσης και αντικατάστασης τµήµατος κειµένου (find and replace) δυνατότητα αποθήκευσης και ανάκτησης του αρχείου στο οποίο περιέχεται το πρόγραµµα του χρήστη. δυνατότητα εκτύπωσης του προγράµµατος του χρήστη Εγχειρίδιο χρήσης (manual) Πρέπει να υπάρχει αναλυτικό εγχειρίδιο χρήσης (manual) του προγράµµατος ικανό να εξοικειώσει το χρήστη µε τον εξοµοιωτή και να λύσει οποιαδήποτε απορία του. Πρόγραµµα εγκατάστασης (Installer) Η εγκατάσταση του εξοµοιωτή πρέπει να είναι εύκολη µε καθοδηγούµενα βήµατα. - 9-

Κεφάλαιο 3 : Ανάλυση και σχεδίαση 3. Ανάλυση και σχεδίαση Στο κεφάλαιο αυτό θα δοθεί µια συνοπτική περιγραφή της έννοιας της εξοµοίωσης σε πραγµατικό χρόνο (real time simulation) και στη συνέχεια θα µελετηθεί ο τρόπος µε τον οποίο εξοµοιώθηκε το microlab. 3.1 Η έννοια της εξοµοίωσης Η εξοµοίωση στη γενική της µορφή σκοπό έχει να προσεγγίσει κάποια από τα συστατικά ενός πραγµατικού συστήµατος µε καθορισµένο βαθµό ακρίβειας. Είναι ένα εργαλείο χρήσιµο για την κατανόηση του πραγµατικού συστήµατος χωρίς να σκοπεύει να το αντικαταστήσει και χωρίς να µπορεί να το µιµηθεί µε απόλυτη ακρίβεια. Είναι γνωστό ότι στους διαστηµικούς σταθµούς υπάρχουν εξοµοιωτές για την προετοιµασία των αστροναυτών για το περιβάλλον που θα αντιµετωπίσουν. Υπάρχουν για παράδειγµα χώροι που εξοµοιώνουν την έλλειψη βαρύτητας, και άλλοι που µιµούνται τις ατµοσφαιρικές συνθήκες. Ένας εκπαιδευόµενος που είναι απόλυτα εξοικειωµένος µε τους εξοµοιωτές δεν είναι εξασφαλισµένο ότι δεν θα αντιµετωπίσει πρόσθετα προβλήµατα όταν βρεθεί στο πραγµατικό περιβάλλον, και αυτό γιατί η εξοµοίωση κρύβει ένα µεγάλο τµήµα του πραγµατικού κόσµου. 3.1.1. Τα πλεονεκτήµατα των εξοµοιωτών Το βασικό πλεονέκτηµα της χρήσης εξοµοιωτών είναι η δυνατότητα µελέτης ενός υποσυνόλου των χαρακτηριστικών του πραγµατικού συστήµατος χωρίς αυτό να είναι παρόν. Όταν τα πραγµατικά συστήµατα είναι λίγα και ακριβά η ύπαρξη εξοµοιωτών κρίνεται απαραίτητη. Για παράδειγµα ένας εκπαιδευόµενος πιλότος µαθαίνει τα βασικά σε ένα εξοµοιωτή και µετά έρχεται σε επαφή µε το πραγµατικό σύστηµα. Με τη χρήση του εξοµοιωτή οι λανθασµένοι χειρισµοί δεν έχουν συνέπειες, και οι πειραµατισµοί δεν περιέχουν καθόλου ρίσκο. Σε καταστάσεις που οι οικονοµικές συνέπειες ενός αποτυχηµένου πειράµατος είναι µεγάλες οι εξοµοιωτές είναι πάντα παρόντες. Όταν ένας εξοµοιωτής έχει φτάσει σε ώριµο στάδιο µπορεί να χρησιµοποιηθεί για εξαγωγή συµπερασµάτων όσον αφορά το πραγµατικό σύστηµα. Κλασσικό παράδειγµα είναι οι εξοµοιωτές του πλανητικού συστήµατος µε χρήση των οποίων προβλέπονται οι µελλοντικές θέσεις των πλανητών. Στην προκειµένη περίπτωση είναι δυνατόν να εκτελεστούν πειράµατα τα οποία θα ήταν αδύνατον να γίνουν στο πραγµατικό σύστηµα λόγω της αδυναµίας αλληλεπίδρασης µε αυτό. Οι εξοµοιωτές χρησιµοποιούνται κατά κόρον στη φάση του σχεδιασµού και της ανάπτυξης του πραγµατικού συστήµατος. Μελετούνται οι δυνατές τροποποιήσεις µε ελάχιστο κόστος τόσο σε χρόνο όσο και σε πρώτες ύλες. Ένας αρχιτέκτονας εύκολα αλλάζει τη µορφή ενός δωµατίου στη µακέτα χωρίς να µπορεί µε την ίδια ευκολία να κάνει το ίδιο στην υπό ανέγερση οικοδοµή. Για να έλθουµε τώρα στη δική µας περίπτωση καλό θα ήταν να µπορούσε ο κάθε ενδιαφερόµενος να έχει ένα microlab διαθέσιµο, κάτι όµως που έχει σηµαντικό οικονοµικό κόστος. Η ύπαρξη όµως του εξοµοιωτή δίνει την ευκαιρία της ενασχόλησης µε το microlab χωρίς αυτό να είναι παρόν. Επί πλέον ο εξοµοιωτής δίνει στο χρήστη εργαλεία που κάνουν την ενασχόλησή του µε το microlab ευκολότερη. Η ανάπτυξη ενός προγράµµατος είναι σηµαντικά πιο εύκολη στον εξοµοιωτή παρά στο πραγµατικό σύστηµα αφού υπάρχουν εργαλεία όπως ο µεταφραστής (assembler), ο κειµενογράφος (text editor) καθώς και στοιχεία που επιτρέπουν την ευκολότερη επόπτευση της κατάστασης του συστήµατος, δηλαδή της µνήµης και των καταχωρητών του επεξεργαστή. - 11-

Κεφάλαιο 3 : Ανάλυση και σχεδίαση 3.1.2. Τα µειονεκτήµατα των εξοµοιωτών Η χρήση εξοµοιωτών δεν έχει µόνο πλεονεκτήµατα. Όπως αναφέρθηκε και πριν οι εξοµοιωτές δεν δίνουν την πλήρη εικόνα του πραγµατικού συστήµατος, αλλά µόνο ένα τµήµα αυτής. Οι συνιστώσες που κρίθηκαν αδιάφορες κατά το σχεδιασµό του εξοµοιωτή δεν θα είναι ορατές στον χρήστη του, τη στιγµή που εκείνες που υπάρχουν µπορεί να µην είναι απόλυτα αξιόπιστες. Ο χρήστης του εξοµοιωτή δεν έχει επαφή µε το πραγµατικό σύστηµα αλλά µε ένα εργαλείο που εν µέρει το µιµείται. Το πραγµατικό σύστηµα πάντα διαφέρει και αυτό δεν είναι ασήµαντο. Στην περίπτωση του εξοµοιωτή του microlab η θερµοκρασία του επεξεργαστή δεν είναι µια παράµετρος που εξετάζεται. Είναι γνωστό ότι τα ηλεκτρονικά κυκλώµατα συµπεριφέρονται απρόβλεπτα όταν η θερµοκρασία τους είναι µεγαλύτερη από κάποια τιµή µε τις συνέπειες να είναι συχνά καταστροφικές. Έτσι θα ήταν τουλάχιστον αφελές να ισχυριστεί κάποιος ότι επειδή ένα πρόγραµµα τρέχει επί ώρες κανονικά στον εξοµοιωτή θα τρέχει κανονικά και στο microlab σε ένα χώρο όπου ο 8085 δεν θα ψύχεται ικανοποιητικά και η θερµοκρασία του θα αυξάνεται συνεχώς. Το συµπέρασµα είναι λοιπόν ότι οι εξοµοιωτές δίνουν µόνο ένα τµήµα της αλήθειας και δεν µπορούν σε καµία περίπτωση να αντικαταστήσουν το πραγµατικό σύστηµα. 3.1.3. Προδιαγραφές των εξοµοιωτών ύο είναι τα ζητήµατα που χρήζουν ιδιαίτερης µελέτης κατά το σχεδιασµό ενός εξοµοιωτή. Καταρχήν πρέπει να εντοπιστούν τα συστατικά του πραγµατικού συστήµατος που θα εξοµοιωθούν και κατά δεύτερο λόγο να καθοριστεί ο βαθµός ακρίβειας µε τον οποίο θα γίνει αυτό. Ας πάρουµε για παράδειγµα ένα εξοµοιωτή ρολογιού. Σε µια πρώτη προσέγγιση µπορεί να είναι αποδεκτό ένα πρόγραµµα γραµµένο σε υπολογιστή που να δείχνει απλά την ώρα µε ακρίβεια δευτερολέπτου. Μπορεί, σε µια άλλη υλοποίηση, να υπάρχει επιπλέον η απαίτηση εξοµοίωσης της κίνησης των δεικτών. Σε µια άλλη περίπτωση µπορεί να είναι αναγκαίο να εξοµοιωθεί το ηλεκτροµαγνητικό πεδίο που αναπτύσσεται κατά την κίνηση των δεικτών του ρολογιού. Υπάρχουν όµως και στοιχεία µε τα οποία δεν ασχολείται ο εξοµοιωτής. Για παράδειγµα στην προηγούµενη περίπτωση το χρώµα των δεικτών του ρολογιού δεν είναι κάτι που ενδιαφέρει. Κατά τη µελέτη και ανάπτυξη του εξοµοιωτή είναι απαραίτητο να καθοριστούν οι συνιστώσες αυτές από νωρίς. Έτσι θα καθοριστεί τόσο το επίπεδο στο οποίο θα γίνει η εξοµοίωση όσο και η δοµή του εξοµοιωτή. Μιλώντας για το επίπεδο της εξοµοίωσης εννοούµε το φυσικό επίπεδο στο οποίο γίνεται η ανάπτυξη του εξοµοιωτή. Για παράδειγµα για να είναι δυνατή η εξοµοίωση του αναπτυσσόµενου ηλεκτροµαγνητικού πεδίου ο εξοµοιωτής θα πρέπει να µελετά το υλικό από το οποίο είναι κατασκευασµένοι οι δείκτες, το ρεύµα τροφοδοσίας του πηνίου και άλλες παρόµοιες συνιστώσες. Αν ο εξοµοιωτής το µόνο που πρέπει να κάνει είναι να δείχνει σωστά την ώρα, µπορεί να µελετηθεί µόνο η ακρίβεια του ρολογιού και να γίνει η εξοµοίωση χωρίς να λαµβάνεται υπόψη τίποτε από αυτά που περιγράφηκαν πριν. 3.2 Εξοµοίωση πραγµατικού χρόνου Η εξοµοίωση σε πραγµατικό χρόνο (real time simulation) έχει ως πρόσθετη συνιστώσα τον χρόνο. Πρέπει δηλαδή να µιµηθεί το πραγµατικό σύστηµα όπως αυτό εξελίσσεται στην πορεία του χρόνου. Η παρουσία της συνιστώσας του χρόνου αλλάζει κατά πολύ τις προδιαγραφές που πρέπει να ικανοποιεί ο εξοµοιωτής. Ένα κλασσικό παράδειγµα είναι αυτό της ρίψης ενός ζαριού µε στόχο τη µελέτη της στατιστικής κατανοµής των αποτελεσµάτων. Αν δεν ενδιαφέρει ο χρόνος τότε είναι αρκετό ο εξοµοιωτής να δίνει την ίδια στατιστική κατανοµή µε το πραγµατικό ζάρι µετά από ένα αριθµό ρίψεων. Στην περίπτωση όµως που η συνιστώσα του χρόνου είναι παρούσα ο - 12 -

Κεφάλαιο 3 : Ανάλυση και σχεδίαση εξοµοιωτής πρέπει να δίνει ίδια αποτελέσµατα µε το πραγµατικό ζάρι σε κάθε ρίψη. Είναι λοιπόν σαφές ότι η χρονική συνιστώσα αυξάνει σηµαντικά την πολυπλοκότητα. 3.2.1. Εξοµοίωση ηλεκτρονικών συστηµάτων Η εξοµοίωση ενός ηλεκτρονικού κυκλώµατος είναι ένα κλασσικό παράδειγµα εξοµοίωσης πραγµατικού χρόνου (real time simulation). εν ενδιαφέρουν µόνο τα τελικά αποτελέσµατα δεδοµένης της εισόδου αλλά και η χρονική εξέλιξη της κατάστασης του συστήµατος µέχρι να παραχθούν αυτά. Το επίπεδο στο οποίο θα γίνει η εξοµοίωση είναι µια κρίσιµη σχεδιαστική παράµετρος. Το ένα άκρο είναι να εξοµοιωθούν οι κινήσεις των ηλεκτρονίων µέσα από το σύστηµα, τη στιγµή που στο άλλο άκρο βρίσκεται η απλή αντιστοίχιση όλων των πιθανών εισόδων µε τις πραγµατικές εξόδους χωρίς να γίνεται κανένας εσωτερικός υπολογισµός ή επεξεργασία. Η πρώτη περίπτωση είναι ίσως αναγκαία για εργαστήρια που κατασκευάζουν τρανζίστορ ή ολοκληρωµένα κυκλώµατα αλλά µάλλον ακατάλληλη για το σχεδιασµό µιας κάρτας ήχου. Το άλλο άκρο, αυτό της απλής αντιστοίχισης των εξόδων µε τις εισόδους, είναι συχνό όταν εξοµοιώνονται συνδυαστικά ψηφιακά ολοκληρωµένα κυκλώµατα όπως µνήµες, πολυπλέκτες, αποπλέκτες, ή πύλες για να χρησιµοποιηθούν ως τµήµατα ενός µεγαλύτερου ψηφιακού συστήµατος. Όσο πιο χαµηλό είναι το επίπεδο στο οποίο γίνεται η εξοµοίωση τόσο µεγαλύτερη είναι η πολυπλοκότητα του εξοµοιωτή. Η επιλογή του επιπέδου εξοµοίωσης γίνεται βάση των προδιαγραφών του εξοµοιωτή, δηλαδή των συνιστωσών του πραγµατικού συστήµατος που πρέπει να εξοµοιώνονται, και τον απαιτούµενο βαθµό ακρίβειας. Η εξοµοίωση µιας µνήµης ανάγνωσης µόνο (ROM) µε απλή αντιστοίχιση διεύθυνσης και περιεχοµένου δεν µπορεί να δώσει καµιά πληροφορία για τη θερµοκρασία της ψηφίδας (chip). 3.2.2. Ανάλυση της εξοµοίωσης Για τις συνιστώσες του πραγµατικού συστήµατος που επιλέχθηκε να εξοµοιωθούν ο εξοµοιωτής πρέπει να είναι σε θέση να µιµείται το πραγµατικό σύστηµα σύµφωνα µε τον καθορισµένο βαθµό ακρίβειας. Θεωρώντας ότι οι συνιστώσες και ο βαθµός ακρίβειας έχουν ήδη βρεθεί είναι απαραίτητος ο καθορισµός µιας συστηµατικής διαδικασίας που θα επιτρέπει τον εύκολο και σωστό καθορισµό της δοµής του εξοµοιωτή. Η διαδικασία που χρησιµοποιείται είναι πάντα ιεραρχικής µορφής. Αρχικά πρέπει να εντοπιστούν και να εξοµοιωθούν αυτόνοµα οι δοµικές µονάδες του συστήµατος. Στην περίπτωση των ψηφιακών ηλεκτρονικών συστηµάτων οι µονάδες αυτές είναι είτε αποµονωµένα ολοκληρωµένα κυκλώµατα (Integrated Circuit - IC) είτε οµάδες είτε τµήµατα αυτών. Στη συνέχεια γίνεται η σύνδεση των εξοµοιωµένων τµηµάτων µεταξύ τους µε παρόµοιο τρόπο όπως στο πραγµατικό σύστηµα. Με αυτή την ιεραρχική µοντελοποίηση, από κάτω προς τα πάνω, καθορίζεται τελικά η δοµή του εξοµοιωτή. Η παράγραφος που ακολουθεί µελετά την πορεία καθορισµού της δοµής του εξοµοιωτή του microlab και βοηθά στην καλύτερη κατανόηση όσων αναφέρθηκαν µέχρι τώρα. 3.3 Η δοµή του εξοµοιωτή του microlab Όπως αναφέρθηκε σε προηγούµενη παράγραφο στόχος είναι να παραµείνει ως έχει η διεπαφή (interface) µεταξύ χρήστη και microlab. Τα υποσυστήµατα του microlab που εξοµοιώνονται χωρίζονται σε δύο κατηγορίες : 1. Στα υποσυστήµατα που επιτελούν λειτουργίες που δεν βλέπει άµεσα ο χρήστης, όπως η εκτέλεση µιας εντολής ή το διάβασµα µιας θέσης µνήµης, χρησιµοποιείται µόνο κώδικας που υλοποιεί ένα αλγόριθµο. - 13-

Κεφάλαιο 3 : Ανάλυση και σχεδίαση 2. Στα υποσυστήµατα που προσφέρουν αλληλεπίδραση µε το χρήστη, όπως οι συσκευές εισόδου εξόδου, χρησιµοποιείται επιπλέον του κώδικα και µια γραφική διεπαφή χρήστη (Graphical User Interface - GUI). Εξοµοιωτής του microlab Λειτουργίες µη ορατές στο χρήστη Λειτουργίες ορατές στο χρήστη Μόνο κώδικας που υλοποιεί κατάλληλο αλγόριθµο Κώδικας που υλοποιεί τον κατάλληλο αλγόριθµο και γραφική διεπαφή χρήστη (GUI) Σχήµα 3-1 : Υποσυστήµατα εξοµοιωτή Τα πιο προφανή στοιχεία που πρέπει να εξοµοιωθούν είναι οι συσκευές εισόδου εξόδου, αφού µέσω αυτών είναι που ο χρήστης παρατηρεί την κατάσταση του microlab. Προκειµένου οι συσκευές αυτές να δίνουν τα αναµενόµενα αποτελέσµατα είναι απαραίτητο να υπάρχει πίσω από αυτές εξοµοιωµένο το υπόλοιπο υλικό (hardware) του microlab. Συσκευές εισόδου Συσκευές εξόδου Υπόλοιπο υλικό του microlab - 14 - Σχήµα 3-2 : Πρώτη προσέγγιση εξοµοίωσης του microlab 3.4 Εξοµοίωση υλικού πλην των συσκευών εισόδου / εξόδου Τα βασικά δοµικά στοιχεία του microlab είναι : Ο επεξεργαστής Intel 8085 Κυκλώµατα διαχείρισης διακοπών Η µνήµη ανάγνωσης µόνο (ROM) Η µνήµη τυχαίας προσπέλασης (RAM) Πόρτες εισόδου / εξόδου (input output ports) για σύνδεση των αντίστοιχων συσκευών

Στο σχήµα που ακολουθεί φαίνονται τα προαναφερθέντα στοιχεία. Κεφάλαιο 3 : Ανάλυση και σχεδίαση Κυκλώµατα διαχείρισης διακοπών ROM RAM Πόρτες εισόδου / εξόδου Επεξεργαστής Intel 8085 Σχήµα 3-3 : Εξοµοίωση υλικού πλην των συσκευών εισόδου / εξόδου Στη συνέχεια θα αναφερθεί συνοπτικά ο τρόπος µε τον οποίο εξοµοιώθηκε το κάθε στοιχείο του προηγούµενου σχήµατος. 3.4.1. Εξοµοίωση του επεξεργαστή Intel 8085 Ο επεξεργαστής Intel 8085 κρύβει στο εσωτερικό του πολλά υποσυστήµατα. Τα κυριότερα από αυτά είναι : Η αριθµητική λογική µονάδα (Arithmetic Logic Unit ALU) στην οποία εκτελούνται οι αριθµητικές και λογικές πράξεις. Ο συσσωρευτής (accumulator) A στον οποίο αποθηκεύονται τα αποτελέσµατα των αριθµητικών πράξεων. Επίσης χρησιµοποιείται για να κρατά τα δεδοµένα που κινούνται από και προς τη µνήµη. Οι καταχωρητές γενικού σκοπού (B, C, D, E, H, L). Οι καταχωρητές ειδικού σκοπού (µετρητής προγράµµατος και δείκτης στοίβας). Ο καταχωρητής εντολών που κρατά την υπό εκτέλεση εντολή. Η µονάδα ελέγχου για την παραγωγή σηµάτων ελέγχου. ιάδροµος διευθύνσεων και δεδοµένων. Εσωτερικός διάδροµος δεδοµένων επεξεργαστή Αποµονωτής (buffer) διευθύνσεων / δεδοµένων Ο τρόπος µε τον οποίο εξοµοιώθηκε ο επεξεργαστής διαφέρει από την πραγµατική αρχιτεκτονική του. Ο λόγος είναι ότι ο επεξεργαστής είναι κατασκευασµένος ως υλικό (hardware) ενώ ο εξοµοιωτής ως λογισµικό (software). Οι τροποποιήσεις συνοψίζονται ως εξής : Μονάδα ελέγχου Η µονάδα ελέγχου του επεξεργαστή δεν υπάρχει αφού τα σήµατα που δέχεται και παράγει δεν χρησιµοποιούνται κατά την εξοµοίωση. Για παράδειγµα το σήµα RD χρησιµοποιείται για την ενεργοποίηση της ψηφίδας (chip) της µνήµης κάτι που δεν είναι απαραίτητο όταν η µνήµη υλοποιείται ως λογισµικό. Αριθµ ητική λογική µονάδα (ALU) Η αριθµητική λογική µονάδα χρησιµοποιεί ειδικά κυκλώµατα όπως αθροιστές, αφαιρέτες, πολλαπλασιαστές και διάφορα άλλα προκειµένου να υλοποιήσει τις αριθµητικές και λογικές πράξεις. - 15-

Κεφάλαιο 3 : Ανάλυση και σχεδίαση Στην περίπτωση όµως που η εξοµοίωση γίνεται µε χρήση λογισµικού, η εκτέλεση των αριθµητικών και λογικών πράξεων µπορεί να γίνει µε σηµαντικά πιο απλό τρόπο. Αυτό γιατί όλες οι γλώσσες προγραµµατισµού παρέχουν τους απαιτούµενους τελεστές για την εκτέλεση των εν λόγω πράξεων. ιάδροµος διευθύνσεων δεδοµένων Αποµονωτής διευθύνσεων δεδοµένων Εσωτερικός διάδροµος δεδοµένων επεξεργαστή ALU Καταχωρητής Εντολών Μονάδα ελέγχου Β D H C E L είκτες Στοίβας (SP) Μετρητής προγράµµατος (PC) - 16 - Εξωτερικά σήµατα ελέγχου (Clock, Reset, RD, WR, IO/M Int, κλπ) Καταχωρητές γενικής και ειδικής χρήσης Σχήµα 3-4 : Απλοποιηµένο διάγραµµα εσωτερικής αρχιτεκτονικής του επεξεργαστή Intel 8085 Καταχωρητής εντολών Στην περίπτωση του επεξεργαστή Intel 8085 ο καταχωρητής εντολών χρησιµοποιείται για την αποκωδικοποίηση της υπό εκτέλεση εντολής και την παραγωγή των απαιτούµενων σηµάτων ελέγχου. ηλαδή το περιεχόµενο του καταχωρητή εντολών καθορίζει την ακολουθία των µικρολειτουργιών (µικροπρόγραµµα) που απαιτούνται για την εκτέλεση της συγκεκριµένης εντολής. Στην περίπτωση του εξοµοιωτή αυτό δεν είναι αναγκαίο αφού για την εκτέλεση της κάθε εντολής υπάρχει µια ξεχωριστή συνάρτηση η οποία αναλαµβάνει όλες τις λεπτοµέρειες της υλοποίησης. Αποµ ονωτής διευθύνσεων / δεδοµ ένων Στον επεξεργαστή Intel 8085 ο αποµονωτής διευθύνσεων / δεδοµένων χρησιµοποιείται προκειµένου να επιτευχθεί συγχρονισµός µεταξύ του επεξεργαστή και της µνήµης. Για την εξοµοίωση κάτι τέτοιο δεν είναι απαραίτητο αφού τα προγράµµατα εκτελούνται σειριακά στους υπολογιστές µε αποτέλεσµα να µην προκύπτει ανάγκη συγχρονισµού.

Εσωτερικός διάδροµ ος δεδοµ ένων επεξεργαστή Κεφάλαιο 3 : Ανάλυση και σχεδίαση Όπως φαίνεται από το προηγούµενο σχήµα ο διάδροµος δεδοµένων συνδέει µεταξύ τους την αριθµητική λογική µονάδα (ALU), τον καταχωρητή εντολών τον αποµονωτή διεύθυνσης / δεδοµένων και τους καταχωρητές γενικής και ειδικής χρήσης. εδοµένου ότι από τα προηγούµενα στοιχεία υπάρχουν µόνο οι καταχωρητές γενικής και ειδικής χρήσης ο εσωτερικός διάδροµος δεδοµένων επεξεργαστή δεν είναι πλέον απαραίτητος. ιάδροµος διευθύνσεων και δεδοµ ένων Στον επεξεργαστή Intel 8085 ο διάδροµος αυτός χρησιµοποιείται για τη µεταφορά δεδοµένων από και προς τη µνήµη του υπολογιστικού συστήµατος. Στον εξοµοιωτή τη λειτουργία αυτή αναλαµβάνουν οι συναρτήσεις που υλοποιούν τις εντολές, µε αποτέλεσµα η ύπαρξη του εν λόγω διαδρόµου στον εξοµοιωτή να µην είναι απαραίτητη. Πρέπει εδώ να τονιστεί ότι οι προηγούµενες παρατηρήσεις προκύπτουν από το επίπεδο στο οποίο επιλέγηκε να γίνει η εξοµοίωση. Αν η εξοµοίωση θα γινόταν σε χαµηλότερο επίπεδο, σε επίπεδο πυλών ή ολοκληρωµένων κυκλωµάτων, τότε αρκετά από τα προηγούµενα στοιχεία θα ήταν απαραίτητα και δεν θα µπορούσαν να παραληφθούν. Στο σχήµα που ακολουθεί φαίνεται η δοµή του επεξεργαστή όπως αυτός είναι υλοποιηµένος στον εξοµοιωτή. Συναρτήσεις εκτέλεσης εντολών Σύστηµα διακοπών Καταχωρητής σηµαιών Α. Β D H C E L είκτες Στοίβας (SP) Μετρητής προγράµµατος (PC) Καταχωρητές γενικής και ειδικής χρήσης Σχήµα 3-5 : ιάγραµµα του επεξεργαστή Intel 8085 όπως είναι υλοποιηµένος στον εξοµοιωτή Στο σχήµα φαίνονται ο καταχωρητής σηµαιών και η µάσκα διακοπών που δεν υπήρχαν στο σχήµα που περιέγραφε το απλοποιηµένο διάγραµµα εσωτερικής αρχιτεκτονικής του επεξεργαστή Intel 8085. Αυτό οφείλεται στο γεγονός ότι τα δύο αυτά στοιχεία είναι ενσωµατωµένα στη µονάδα ελέγχου. Καταχωρητής σηµαιών Ο καταχωρητής σηµαιών εξοµοιώνεται από 7 µεταβλητές τύπου Boolean, όσες είναι δηλαδή και οι σηµαίες που χρησιµοποιεί εσωτερικά ο επεξεργαστής Intel 8085. S Z X5 AC P V CY Σχήµα 3-6 : Καταχωρητής σηµαιών - 17-

Κεφάλαιο 3 : Ανάλυση και σχεδίαση Σύστηµ α διακοπών Το σύστηµα διακοπών αποτελείται από δύο τµήµατα. Τη µάσκα διακοπών και τον καταχωρητή επίτρεψης διακοπών (Enable Interrupt Flip Flop). Η µάσκα διακοπών καθορίζει ανά πάσα στιγµή τις διακοπές που επιτρέπεται να εκτελεστούν στον επεξεργαστή τη στιγµή που ο καταχωρητής επίτρεψης διακοπών (Enable Interrupt Flip Flop) δείχνει κατά πόσο το σύστηµα διακοπών είναι ενεργοποιηµένο. Υπάρχει µια µεταβλητή του ενός byte που εξοµοιώνει τη µάσκα διακοπών και µια Boolean µεταβλητή για την εξοµοίωση του καταχωρητή επίτρεψης διακοπών. Enable Interrupts Flip Flop (EI) Καταχωρητής µάσκας διακοπών Σχήµα 3-7 : Σύστηµα διακοπών 3.4.2. Εξοµοίωση της µνήµης και θυρών εισόδου / εξόδου Η µνήµη του microlab αποτελείται από 2 Kbytes µνήµης ανάγνωσης µόνο (ROM), στην οποία είναι αποθηκευµένο το πρόγραµµα επόπτη (monitor program), και από 1 Kbytes µνήµης τυχαίας προσπέλασης (RAM), στην οποία αποθηκεύεται το πρόγραµµα του χρήστη καθώς και προσωρινά δεδοµένα του προγράµµατος επόπτη (monitor program). Ο επεξεργαστής Intel 8085 έχει δίαυλο διευθύνσεων των 16 bit, που σηµαίνει ότι µπορεί να απευθυνθεί σε 2 16 =65536 θέσεις µνήµης, µε κάθε θέση µνήµης να είναι του ενός byte. Πρέπει να σηµειωθεί ότι ο τρόπος µε τον οποίο είναι υλοποιηµένο το σύστηµα µνήµης του microlab έχει ορισµένες ιδιοµορφίες. Στον πίνακα που ακολουθεί στη συνέχεια φαίνεται ο χάρτης διευθύνσεων του microlab. Bit διεύθυνσης ιεύθυνση 15 14 13 12 11 10 9 8 HEX Συσκευή 0 0 0 0 0 0 0 0 0000 ROM 0 0 0 0 0 1 1 1 07FF 0 0 0 0 1 0 0 0 0800 0 0 0 0 1 1 1 1 0FFF 0 0 0 1 0 0 0 0 1000 0 0 0 1 0 1 1 1 17FF 0 0 0 1 1 0 0 0 1800 0 0 0 1 1 1 1 1 1FFF 0 0 1 0 0 0 0 0 2000 0 0 1 0 0 1 1 1 27FF 0 0 1 0 1 0 0 0 2800 0 0 1 0 1 1 1 1 2FFF 0 0 1 1 0 0 0 0 3000 0 0 1 1 0 1 1 1 37FF 0 0 1 1 1 0 0 0 3800 0 0 1 1 1 1 1 1 3FFF 0 1 0 0 0 0 0 0 4000 1 1 1 1 1 1 1 1 FFFF Πίνακας 3-1: Χάρτης διευθύνσεων του microlab RAM Έλεγχος εδοµένα Πληκτρολογίου Θύρα Εισόδου Σάρωση (Keyboard+Display) Θύρα Εξόδου Τµήµα Απεικόνισης Αχρησιµοποίητα - 18 -