1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Τέταρτο Ο Υποθετικός Υπολογιστής ΜΙΧ 1009 Μέρος Πρώτο Καθηγητής: Α. Βαφειάδης 2008
2 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Ο Υποθετικός Υπολογιστής ΜΙΧ 1009 Περιεχόμενα Γιατί Υποθετικός Υπολογιστής Η Αρχιτεκτονική του ΜΙΧ Περιγραφή του Βασικού Συνόλου Εντολών Διαδικασία Σύνταξης Προγράμματος Γλώσσας Μηχ. Κύκλος Ανάκλησης - Εκτέλεσης Εντολής Μέθοδοι Υπολογισμού της Τελικής Διεύθυνσης
3 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Γιατί Υποθετικός Υπολογιστής Απλοποιημένη Δομή Εύκολη κατανόηση των βασικών χαρακτηριστικών Διαχρονικότητα
4 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Γιατί Υποθετικός Υπολογιστής Ο Donald E. Knuth με αφορμή τη συγγραφή ενός τρίτομου έργου με τίτλο “The art of Computer Programming” στο οποίο περίγραφε αλγορίθμους χρήσιμους στους System programmers, χρησιμοποίησε μια υποθετική Μηχανή. Στην εισαγωγή αυτού του έργου έγραψε: " Όταν αποφάσισα να γράψω το παραπάνω έργο έπρεπε να απαντήσω στην ερώτηση, ποια συμβολική γλώσσα μηχανής να χρησιμοποιήσω; Αν επέλεγα τη γλώσσα μίας συγκεκριμένης μηχανής Χ, τότε οι άνθρωποι που δεν χρησιμοποιούσαν την μηχανή Χ, θα υπέθεταν ότι το έργο μου απευθύνεται μόνο σε αυτούς που την χρησιμοποιούν. Επί πλέον η μηχανή Χ θα είχε ένα σωρό ιδιαιτερότητες που δεν θα αφορούσαν τον σκοπό του βιβλίου μου. Επίσης σε δύο χρόνια ο κατασκευαστής της μηχανής Χ θα παρουσίαζε την μηχανή Χ+1 ή τη μηχανή 10Χ, και κανένας ποια δεν θα ενδιαφερόταν για τη μηχανή Χ."
5 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Ο Υπολογιστής ΜΙΧ
6 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Δομές δεδομένων του ΜΙΧ Θέση μνήμης Ακέραιος Πραγματικός Χαρακτήρες
7 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Σύστημα κωδικοποίησης χαρακτήρων ΧαρΜΙΧΧαρΜΙΧΧαρΜΙΧΧαρΜΙΧΧαρΜΙΧ SP00Μ16Υ34(52Γ70 A01N17Z35)53Δ71 Β02O Λ72 C03P Ξ7373 D04Q22240*56Σ7474 E05R23341/57Ψ75 F06Φ24442=60Ω76 G07Π25543$6177 H10S26644<62 I11T27745>63 J13V31947;65 K14W32.50:66 L15X33,51‘67
8 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Καταχωρητές - Σηματοδότες Καταχωρητές συστήματος Καταχωρητής διευθύνσεων μνήμης (Memory Address Register) (MAR) Καταχωρητής αποθήκευσης δεδομένων (Memory Data Register) (MDR) Απαριθμητής εντολών (Program Counter) (PC) Καταχωρητής εντολών (Instruction Register) (IR) Καταχωρητές εργασίας Συσσωρευτής (Accumulator) (rΑ) Καταχωρητής επέκτασης (Extension Register). (rΧ) Καταχωρητές δεικτών (Ιndex registers) (rΙ1, rΙ2, rΙ3, rΙ4, rΙ5, rΙ6) Καταxωρητής αλλαγής ροής) (Jump register) (rJ) Σηματοδότες κατάστασης Σηματοδότης σύγκρισης (Comparison flag) Σηματοδότης υπερπλήρωσης (overflow flag)
9 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Δομή εντολής γλώσσας μηχανής mΑρχική διεύθυνση ΙΠεδίο δείκτη FΠεδίο τριπλής ενέργειας Μερικό πεδίο Κωδικός μονάδας Ι/Ο Συμπληρωματικός κωδικός Cκωδικός εντολής
10 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Σύμβολο C F NOP ADD 01 L:R FADD SUB 02 L:R FSUB MUL 03 L:R FMUL DIV 04 L:R FDIV NUM CHAR HLT AND ORR XOR FLOT SLA SRA SLAX SRAX SLC SRC SLB SRB Σύμβολο C F MOVE 07 N LDA 10 L:R LD1 11 L:R LD2 12 L:R LD3 13 L:R LD4 14 L:R LD5 15 L:R LD6 16 L:R LDX 17 L:R JBUS 42 N IOC 43 N IN 44 N JRED 46 N JMP JSJ JOV JNOV JL JE JG JGE JNE Σύμβολο C F LDAN 20 L:R LD1N 21 L:R LD2N 22 L:R LD3N 23 L:R LD4N 24 L:R LD5N 25 L:R LD6N 26 L:R LDXN 27 L:R STA 30 L:R ST1 31 L:R ST2 32 L:R ST3 33 L:R ST4 34 L:R ST5 35 L:R ST6 36 L:R STX 37 L:R STJ 40 L:R STZ 41 L:R
11 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Δομή συμβολικής εντολής γλώσσας μηχανής ΟΡCODE ADDRESS, I(F) LDA +1024,3(4:5) Σύμβολα-Δεκαδικό Οκταδικό Δυαδικό
12 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Παράδειγμα αντιστοιχίας συμβολικής και γλώσσας μηχανής Συμβολική Περιγραφή Κωδικοποιημένη περιγραφή opcode address,I(L:R) m I F C LDA 1024,3(4:5) LDA 1024(1:3) LDA 1024,2(1:3) LDA LDA -1024, IN 1024(16) HLT
13 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Βασικό σύνολο εντολών/1 Εντολές φόρτωσης καταχωρητών (Loading instructions) LDA, LD1, LD2, LD3, LD4, LD5, LD6, LDX LDAN, LD1N, LD2N, LD3N, LD4N, LD5N, LD6N, LDXN Εντολές αποθήκευσης (Storing Instructions) STA, ST1, ST2, ST3, ST4, ST5, ST6, STX,STJ,STZ Αριθμητικές εντολές (Arithmetic Instructions) ADD, SUB, MUL, DIV FADD, FSUB, FMUL, FDIV Εντολές Σύγκρισης (comparison operators) CMPA, CMP1, CMP2, CMP3, CMP4, CMP5, CMP6, CMPX
14 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Βασικό σύνολο εντολών/2 Εντολές αλλαγής ροής (Jump instructions) JAN, JAZ, JAP, JANN, JANZ, JANP J1N, J1Z, J1P, J1NN, J1NZ, J1NP J2N, J2Z, J2P, J2NN, J2NZ, J2NP J6N, J6Z, J6P, J6NN, J6NZ, J6NP JXN, JXZ, JXP, JXNN, JXNZ, JXNP JMP Εντολές αλλαγής ροής (Jump instructions) σε συνδυασμό με εντολές Compare JL, JE, JG, JGE, GNE, JLE
15 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Βασικό σύνολο εντολών/3 Εντολές αμέσου ενέργειας (no memory access) ENTA, ENT1, ENT2,.... ENT6, ENTX ENNA, ENN1, ENN2,.... ENN6, ENNX DECA, DEC1, DEC2,..... DEC6, DECX INCA, INC1, INC2,... ….INC6, INCX Εντολές εισόδου εξόδου (I/O instructions) JBUS, IOC, IN, OUT, JRED Εντολές μετατόπισης (Shift Instructions) SLA, SRA, SLAX, SRAX, SLC, SRC Δυαδικές Εντολές AND, OR, XOR, SLB, SRB, JAE, JAO, JXE, JXO Διάφορες εντολές NUM, CHAR, HLT, MOVE, NOP