1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Τέταρτο Ο Υποθετικός Υπολογιστής ΜΙΧ 1009 Μέρος Δεύτερο Εξάμηνο: Δεύτερο Καθηγητής: Α. Βαφειάδης 2004
2 Οργάνωση και Αρχιτεκτονική Υπολογιστών Διαδικασία Σύνταξης σε γλώσσα μηχανής Το πρόβλημα Διάβασε από μια εγγραφή εισόδου μήκους 80 χαρακτήρων δύο θετικούς ακέραιους αριθμούς Κ και L που είναι τοποθετημένοι στα πεδία 1-10 και αντίστοιχα. Οι αριθμοί μέσα στα πεδία είναι δεξιά προσανατολισμένοι. Να βρεθεί ο μεγαλύτερος από αυτούς και να τυπωθεί στον εκτυπωτή στις στήλες 1-10 μιας γραμμής μήκους 120 χαρακτήρων». Οι αλγόριθμοι Β1: Διάβασε τους δύο αριθμούς. Β2:Βρες τον μεγαλύτερο. Β3: Τύπωσε το αποτέλεσμα. Β4: Σταμάτησε το πρόγραμμα. Β1: READ (5,1) K,L 1 FORMAT (2I10) B2: IF (L.LT.K) L=K B3: WRITE (6,2) L 2 FORMAT (1H5,I9) B4: STOP
3 Οργάνωση και Αρχιτεκτονική Υπολογιστών Ο χάρτης μνήμης
4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Μέρος Α - εισαγωγή δεδομένων 0041 Άρχισε την διαδικασία ανάγνωσης λέγοντας στην μονάδα εισόδου να μεταφέρει μια εγγραφή εισόδου (80 χαρακτήρες) στις διευθύνσεις (IN) 0042 Περίμενε το τέλος της ανάγνωσης (JBUS) α) Χρήση της εντολής JBUS Τ1 ΙΝ Τ2 JBUS Τ3 NUM Τ4 ALU T1 Τ2 Εκτέλεση ΙΝ Τ3 T4 Ι/Ο β) Χωρίς χρήση της εντολής JBUS Τ1 ΙΝ Τ2 NUM T4 ALU T1 Τ2 Εκτέλεση ΙΝ Τ3 Ι/Ο
5 Οργάνωση και Αρχιτεκτονική Υπολογιστών Εικόνα δεδομένων πριν και μετά Πριν Μετά
6 Οργάνωση και Αρχιτεκτονική Υπολογιστών Λειτουργία εντολής ΝUM
7 Οργάνωση και Αρχιτεκτονική Υπολογιστών Λειτουργία της εντολής CHAR
8 Οργάνωση και Αρχιτεκτονική Υπολογιστών Ψευτοκώδικας 0041 Άρχισε την διαδικασία ανάγνωσης λέγοντας στην μονάδα εισόδου να μεταφέρει μια εγγραφή εισόδου (80 χαρακτήρες) στις διευθύνσεις (IN) 0042 Περίμενε το τέλος της ανάγνωσης (JBUS) Φόρτωσε το περιεχόμενο της θέσης 0000 στον rA (LDA) Φόρτωσε το περιεχόμενο της θέσης 0001 στον rX (LDX) Μετέτρεψε σε δυαδική μορφή τον πρώτο αριθμό (NUM) Αποθήκευσε το περιεχόμενο του rA στη διεύθυνση 0016 (STA) Φόρτωσε το περιεχόμενο της θέσης 0002 στον rA (LDA) Φόρτωσε το περιεχόμενο της θέσης 0003 στον rΧ (LDΧ) Μετέτρεψε σε δυαδική μορφή τον δεύτερο αριθμό (NUM) Αποθήκευσε το περιεχόμενο του rA στη διεύθυνση 0017 (STA) Φόρτωσε το περιεχόμενο της διεύθυνσης 0017 στον rA (LDA) 0052 Συνέκρινε το περιεχόμενο του rA με αυτό της θέσης 0016 (CMPA) 0053 Αν η τιμή του ΣΣ είναι EQUAL ή GREATER πήγαινε στην εντολή που βρίσκεται στη διεύθυνση 0055 (JGE).
9 Οργάνωση και Αρχιτεκτονική Υπολογιστών Ψευτοκώδικας (συνέχεια) 0054 Φόρτωσε το περιεχόμενο της θέσης 0016 στον rA (LDA) Μετέτρεψε το αποτέλεσμα που βρίσκεται στον rΑ σε χαρακτήρες(CHAR) 0056 Αποθήκευσε το περιεχόμενο του rA στη θέση 0018 ( τα πρώτα 5 bytes της εικόνας του αποτελέσματος) (STA) Αποθήκευσε το περιεχόμενο του rX στη θέση 0019 (τα επόμενα 5 bytes του αποτελέσματος) (STX) Άρχισε την διαδικασία εκτύπωσης λέγοντας τον εκτυπωτή να τυπώσει σε μια γραμμή του εκτυπωτή τις 24 θέσεις μνήμης που βρίσκονται στις διευθύνσεις (OUT) Περίμενε το τέλος της εκτύπωσης (JBUS) Σταμάτησε το πρόγραμμα (HLT).
10 Οργάνωση και Αρχιτεκτονική Υπολογιστών Συμβολικός Πίνακας Συμβολικό όνομα Κωδικός F-πεδίο Σημασία F-πεδίου IN μονάδα εισόδου JBUS μονάδα εισόδου LDA πεδίο (0:5) LDX πεδίο (0:5) NUM τροποποιητής STA πεδίο (0:5) STΧ πεδίο (0:5) CMPA πεδίο (0:5) JGE τροποποιητής CHAR τροποποιητής OUT μονάδα εξόδου JBUS μονάδα εξόδου HLT τροποποιητής
11 Οργάνωση και Αρχιτεκτονική Υπολογιστών Συμβολικός-εκτελέσιμος κώδικας(οκταδικό) (Διευθ.)8 m Ι F C Σύμβολα (Διευθ.) ΙΝ 0(16) JBUS 42(16) LDA LDX NUM STA LDA LDX NUM STA LDA CMPA JGE LDA CHAR STA STX OUT 18(18) JBUS HLT 0060
12 Οργάνωση και Αρχιτεκτονική Υπολογιστών Τελικός κώδικας σε γλώσσα μηχανής Διεύθυνση Εντολή σε γλώσσα μηχανής
13 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κύκλος Ανάκλησης-Εκτέλεσης εντολής Βήμα Ι Ανάκληση εντολής : Βήμα Ι.1. Το περιεχόμενο του PC αντιγράφεται στον ΜAR. Βήμα Ι.2. Η μνήμη εκτελεί ένα κύκλο μνήμης και φέρνει στον MDR το περιεχόμενο της θέσης μνήμης, της οποίας η διεύθυνση υπάρχει στον MAR, δηλαδή την εντολή. Βήμα ΙΙ Αποκωδικοποίηση εντολής : Βήμα ΙΙ.1. Αποκωδικοποίηση της εντολής από την μονάδα ελέγχου. Βήμα ΙΙ.2. Αύξηση κατά 1 του απαριθμητή εντολών (PC). Βήμα ΙΙΙ Εκτέλεση της εντολής : Εντολές στις οποίες ο παράγοντας λειτουργεί σαν δεδομένο. Βήμα ΙΙΙ.1. Η διεύθυνση του παράγοντα αποθηκεύεται στον MAR Βήμα ΙΙΙ.2. Κύκλος μνήμης (ανάγνωση). Βήμα ΙΙΙ.3. Παράγοντας στον MDR. Βήμα ΙΙΙ.4 Εκτέλεση της εντολής Εντολές στις οποίες ο παράγοντας λειτουργεί σαν αποτέλεσμα. Βήμα ΙΙΙ.1 Εκτέλεση της εντολής. Βήμα ΙΙΙ.2 H διεύθυνση του παράγοντα αποθηκεύεται στον MAR Bήμα ΙΙΙ.3 Το περιεχόμενο του παράγοντα αποθηκεύεται στον MDR Bήμα ΙΙΙ.4 Εκτελείται ο κύκλος μνήμης (εγγραφή). Εντολές που δεν έχουν παράγοντα ή έχουν σταθερά. Βήμα ΙΙΙ.1 Εκτέλεση της εντολής χωρίς αναφορά στη μνήμη
14 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμός της τελικής διεύθυνσης Άμεσος υπολογισμός (Direct Addressing). Κωδικός I = 00 Υπολογισμός με καταχωρητών δείκτη (indexing). Κωδικός I = 01, 02, 03, 04, 05, 06 Έμμεσος υπολογισμός (Indirect Addressing). Κωδικός I = 07
15 Οργάνωση και Αρχιτεκτονική Υπολογιστών Άμεσος Υπολογισμός (Direct addressing ) m I F C V
16 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμός με δείκτη (Indexing ) Ι1= Ι2= I3= I4= m I F C V Μέθοδος με rI rI rI rI4
17 Οργάνωση και Αρχιτεκτονική Υπολογιστών Έμμεσος Υπολογισμός (Indirection) V = MEM[m](0:2) (0:2)
18 Οργάνωση και Αρχιτεκτονική Υπολογιστών Παραδείγματα έμμεσου υπολογισμού
19 Οργάνωση και Αρχιτεκτονική Υπολογιστών Σύνθετος υπολογισμός της τελικής διεύθυνσης (a=0,b=0) Άμεσος υπολογισμός (direct addressing). (a=0,b=i) Υπολογισμός με ενός δείκτη (single indexing). (a=j,b=i) Yπολογισμός με δύο δεικτών (double indexing). (a=0,b=7) Έμμεσος υπολογισμός (indirection). (a=i,b=7) Yπολογισμός με δείκτη και μετά έμμεσος υπολογισμός (preindexed indirection). (a=7,b=i) Έμμεσος υπολογισμός και μετά υπολογισμός με δείκτη (postindexed inderection).
20 Οργάνωση και Αρχιτεκτονική Υπολογιστών Σύνθετος υπολογισμός της τελικής διεύθυνσης 0:00:10:20:30:40:50:60:7 1:01:11:21:31:41:51:61:7 2:02:12:22:32:42:52:62:0 3:03:13:23:33:43:53:63:7 4:04:14:24:34:44:54:64:7 5:05:15:25:35:45:55:65:7 6:06:16:26:36:46:56:66:7 7:07:17:27:37:47:57:67:7 Απλοί μέθοδοι υπολογισμού Με δύο δείκτες Δείκτης – Έμμεσος Έμμεσος – Δείκτης Άχρηστος κωδικός