ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΨΗΦΙΑΚΗΣ ΛΟΓΙΚΗΣ - ΙΙ Γ. Τσιατούχας 3 ο Κεφάλαιο 1. Γενική δομή CPU ιάρθρωση 2. Αριθμητική και λογική μονάδα 3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ 754 5. Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ 754 6. Μονάδα ελέγχου 2 1
Γενική οµή CPU Υποµονάδα Σταθερής Υποδιαστολής ALU CPU Υποµονάδα Κινητής Υποδιαστολής Αθροιστής Πολλαπλασιαστής Πολλαπλασιαστής Ολισθητής..... Καταχωρητές ιαιρέτης..... Καταχωρητές 3 ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ (ALU) 4 2
Γενική οµή ALU δοµένα δε Λογική Μονάδα -bit MUX m σήµατα ελέγχου Αριθµητική Μονάδα -bit k κρατούµενο εισόδου A/L 5 Λογική Μονάδα Ζεύγος λέξεων των -bit B -1 A -1 Σήµατα ελέγχου υαδική Μονάδα Ο µέγιστος αριθµός διακριτών λογικών πράξεων µεταξύ 2 bit εί 16. Συνεπώς απαιτούνται 4 σήµατα ελέγχου για την υλοποίηση όλων των λογικών πράξεων. 6 3
Κύκλωµα Αθροιστή/ΑφαιρέτηΑφαιρέτη Κρατούµενο εισόδου Κρατούµενο εξόδου Πλήρης Αθροιστής Σήµα υπερχείλισης Ζ Σήµα ισότητας µε 0 A B = A + B + 1 Αθροιστής/αφαιρέτης αριθµών σε παράσταση συµπληρώµατος ως προς 2. 7 Αθροιστής Πρόβλεψης Κρατουµένου Κύκλωµα Πρόβλεψης Κρατουµένου 8 4
Κύκλωµα Πολλαπλασιαστή 1001 101 1001 0000 1001 =Α 3 Α 2 Α 1 Α 0 =Β 3 Β 2 Β 1 Β 0 + 101101 =Γ 7 Γ 6...Γ 1 Γ 0 4 ο µερικό γινόµενο 3 ο µερικό γινόµενο 2 ο µερικό γινόµενο 1 ο µερικό γινόµενο 1 ο επίπεδο άθροισης 2 ο επίπεδο άθροισης 3 ο επίπεδο άθροισης Πλήρης αθροιστής Ηµιαθροιστής Πολλαπλασιαστής ιάδοσης Κρατουµένου 9 Πολλαπλασιασµός - ιαίρεση ίαυλος εισόδου Ολισθητές Καταχωρητές Καταχωρητής Κ3 bit κρατουµένου Κ0 Καταχωρητής Κ1 MSB Καταχωρητής Κ2 LSB Πρόσθεση / Αφαίρεση ALU Κρατούµενο Εξόδου ALU 2 ίαυλος εξόδου 10 5
Αρχή Πολλαπλασιασµός Μηδενισµός Κ1 & Κ0. Φόρτωση πολλαπλασιαστέου στον Κ3 και πολλαπλασιαστή στον Κ2 Πολλαπλασιασµός δυαδικών αριθµών χωρίς πρόσηµο LSB(K1 K2)=0? Ολίσθησε το περιεχόµενο των Κ1 Κ2 µια θέση προς τα δεξιά -οστή επανάληψη? Τέλος Πρόσθεσε τους Κ1 και Κ3 και αποθήκευσε το αποτέλεσµα στον Κ1. Αποθήκευσε το κρατούµενο στον Κ0 Κ3 πολλαπλασιαστέος πολλαπλασιαστής Κ2 αποτέλεσµα + 1 1 0 1 0 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 Κ1 Κ2 Το αποτέλεσµα προκύπτει από τα τελικά περιεχόµενα των Κ1 και Κ2 (Κ1 Κ2) που διαβάζονται ως ένας ενιαίος δυαδικός αριθµός! 11 Αρχή Φόρτωση του διαιρετέου στους Κ1 Κ2 και του διαιρέτη στον Κ3 K1 K3 < 0? Ολίσθησε το περιεχόµενο των Κ1 Κ2 µια θέση προς τα αριστερά K1 K3 < 0? Θέσε LSB(Κ1 Κ2) = 0 ιαίρεση Επισήµανση διαιρετέος < διαιρέτη 2 m m = # bit Κ2 Θέσε Κ1 = Κ1 Κ3 Θέσε LSB(Κ1 Κ2) = 1 ιαίρεση δυαδικών αριθµών χωρίς πρόσηµο Κ3 Κ1 Κ2 διαιρέτης διαιρετέος 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 πηλίκο 0 1 0 1 Κ2 1 0 1 0 1 0 0 1 0001 0 0 0 0 1 1 υπόλοιπο Κ1 -οστή επανάληψη? Τέλος Το αποτέλεσµα προκύπτει ως ακολούθως: στον Κ1 υπάρχει το υπόλοιπο και στον Κ2 το πηλίκο της διαίρεσης 12 6
Πρόσθεση ΙΕΕΕ 754 Αρχή Σύγκρινε τους εκθέτες των 2 αριθµών Κανονικοποίησε το νέο κλασµατικό µέρος Ολίσθησε τον µικρότερο αριθµό προς τα δεξιά ώστε ο εκθέτης του να γίνει ίσος µε του µεγαλύτερου. Στην πρώτη ολίσθηση, εισήγαγε έναν 1 αριστερά! Πρόσθεσε τα νέα κλασµατικά µέρη των δύο αριθµών Άνω ή κάτω υπερχείλιση? Στρογγυλοποίησε το κλασµατικό µέρος του αθροίσµατος Κανονικοποιηµένος? Επισήµανση Πρόσθεση στην Κινητή Υποδιαστολή Πρότυπο ΙΕΕΕ 754 Τέλος 13 Πολλαπλασιασµός ΙΕΕΕ 754 Αρχή Κανονικοποίησε το νέο κλασµατικό µέρος Πρόσθεσε τους πολωµένους µ εκθέτες των δύο αριθµών και αφαίρεσε από το άθροισµα την πόλωση για να υπολογιστεί ο νέος εκθέτης Άνω ή κάτω υπερχείλιση? Επισήµανση Πολλαπλασίασε τα κλασµατικά µέρη Στρογγυλοποίησε το κλασµατικό µέρος του γινοµένου Κανονικοποιηµένος? Πολλαπλασιαµός στην Κινητή Υποδιαστολή Πρότυπο ΙΕΕΕ 754 Αρχικοί αριθµοί µε ίδιο πρόσηµο νέο πρόσηµο θετικό αλλιώς αρνητικό Τέλος 14 7
ΜΟΝΑΔΑ ΕΛΕΓΧΟΥ 15 Κύκλος Εντολής Όπως έχουµε αναφέρει η εκτέλεση µιας εντολής γίνεται µε τα ακόλουθα βήµατα: 1. Προσκόµιση (fetch) της εντολής από τη µνήµη (δηλ. τη διεύθυνση µνήµης την οποία υποδεικνύει ο µετρητής προγράµµατος PC) στον καταχωρητή εντολών IR. 2. Μεταβολή του PC ώστε να δείχνει στην επόµενη θέση εντολής στη µνήµη. 3. Αποκωδικοποίηση (decode) της εντολής ώστε να ενεργοποιηθούν τα κατάλληλα σήµατα ελέγχου. 4. Προσκόµιση δεδοµένων (τελούµενων operads) που ενδεχόµενα χρειάζεται η εντολή από την κύρια µνήµη ή τους καταχωρητές. 5. Εκτέλεση (execute) της εντολής. 6. Αποθήκευση (store) αποτελέσµατος. 7. Επιστροφή στο 1 ο βήµα για την εκτέλεση της επόµενης εντολής. Τα βήµατα αυτά αποτελούν τον κύκλο εντολής. Ο κύκλος εντολής µπορεί να χωριστεί σε 2 φάσεις: τη φάση της προσκόµισης (βήµατα 1-2) που εί σταθερά και δεν εξαρτώνται από το είδος της εντολής τη φάση της εκτέλεσης (βήµατα 3-6) που εξαρτώνται από την κάθε εντολή. 16 8
Μονάδα Ελέγχου Η µονάδα ελέγχου παράγει σε κάθε κύκλο εντολής ένα σύνολο από κατάλληλα σήµατα (σήµατα ελέγχου) για την εκτέλεση της εντολής. Κατά τη φάση προσκόµισης παράγει σήµατα που επιφέρουν την προσκόµιση της εντολής (εδώ επιλέγεται η σειρά εκτέλεσης των εντολών). Κατά τη φάση εκτέλεσης αποκωδικοποιεί την εντολή και παράγει σήµατα που κατευθύνουν τα δεδοµένα στις κατάλληλες µονάδες και παράλληλα επιλέγουν τις λειτουργίες που θα πρέπει να εκτελεστούν σε συγκεκριµένες χρονικές περιόδους (εδώ ερµηνεύονται οι εντολές). Η σειρά εκτέλεσης των εντολών βασίζεται στη χρήση του µετρητή προγράµµατος, (program couter PC) ο οποίος περιέχει τη διεύθυνση της επόµενης προς εκτέλεση εντολής. Οι εντολές εκτελούνται συνήθως σειριακά. Υπάρχουν περιπτώσεις αλλαγής της σειράς εκτέλεσης: 1. Η εκτελούµενη εντολή εί εντολή άλµατος (jump) ή διακλάδωσης (brach). 2. Ηεκτελούµενη εντολή εί εντολή κλήσεως υποπρογράµµατος. 3. Έχει συµβεί µια ειδική περίπτωση (exceptio), π.χ. υπερχείλιση, διαίρεση µε 0... 4. Έχει ληφθεί σήµα διακοπής(iterrupt) για την εξυπηρέτηση κάποιας µονάδας. νής ενδογεν αιτία εξωγενής αιτία 17 Υλοποίηση Μονάδας Ελέγχου 1/2 CLK Μονάδα Ελέγχου σήµατα κατάστασης Μηχανή Πεπερασµένων Καταστάσεων... γραµµές ελέγχου IR Κωδικοποίηση καταστάσεων: Ελαχιστοποίηση # flip-flop µε τη χρήση log 2 flip-flop για καταστάσεις. Χρήση flip-flop για () καταστάσεις. 18 9
Υλοποίηση Μονάδας Ελέγχου 2/2 Μικροπρογραµµατιζόµενη Μονάδα Ελέγχου CLK Μονάδα Ελέγχου IR: ΜΙR: MPC: καταχωρητής εντολών καταχωρητής µικροεντολών µετρητής µικροπρογράµµατος ήµατα άστασης σή κατά κωδικός πράξης Κύκλωµα ιευθυνσιοδότησης MPC IR εύθυνση διε Μνήµη Ελέγχου MIR γραµµές ελέγχου Συνήθως, µία εντολή σε γλώσσα µηχανής αντιστοιχεί σε ένα σύνολο από µικροεντολές που εκτελούνται σειριακά. πεδίο είδους ή επόµενης µικροεντολής και επιλογής συνθήκης διεύθυνση άλµατος µικροεντολή πεδίο σηµάτων ελέγχου 19 Οργάνωση ύο Επιπέδων CLK σή ήµατα κατά άστασης.. Μονάδα Ελέγχου Κύκλωµα ιευθυνσιοδότησης.mpc εύθυνση διε Μνήµη Ελέγχου MIR διεύθυνση νανοµνήµης IR: καταχωρητής εντολών ΜΙR: καταχωρητής µικροεντολών Νανοµνήµη MPC: µετρητής µικροπρογράµµατος Καταχωρητής Νανοεντολών IR γραµµές ελέγχου 20 10
Κωδικοποίηση Σηµάτων Ελέγχου πεδίο σηµάτων ελέγχου MIR Χωρίς κωδικοποίηση σήµατα ελέγχου πεδίο σηµάτων ελέγχου πεδίο σηµάτων ελέγχου MIR Αποκωδικοποιητής σε m m σήµατα ελέγχου Πλήρους κωδικοποίησης σήµατα ελέγχου Μερικής κωδικοποίησης Αποκωδικοποιητής-1 Αποκωδικοποιητής-2 Αποκωδικοποιητής-3 Αποκωδικοποιητής-4 21 11