1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφαλαίο Δεύτερο Αρχιτεκτονική Βασικού Συνόλου Εντολών Μέρος Δεύτερο Καθηγητής: Α. Βαφειάδης 2008
2 Οργάνωση και Αρχιτεκτονική Υπολογιστών Διευθυνσιοδότηση(Addressing) Υπολογισμός της τελική διεύθυνσης Συμβολική διεύθυνση (Πηγαίο πρόγραμμα) Μεταγλωττιστής Αρχική αριθμητική διεύθυνση (εκτελέσιμο πρόγραμμα) Hardware(ΚΜΕ) Τελική ή φυσική διεύθυνση (Διεύθυνση Μνήμης)
3 Οργάνωση και Αρχιτεκτονική Υπολογιστών Διευθυνσιοδότηση(Addressing) Μέθοδοι Υπολογισμού της τελική διεύθυνσης Χωρίς Αναφορά (immediate addressing) Άμεσος ή Απόλυτος (Direct) Έμμεσος υπολογισμός (Indirect) Έμμεσος υπολογισμός με καταχωρητή (Register-indirect) Υπολογισμός με δείκτη (indexed) Pre-index-indirection Post index-indirection Μετατόπιση μέσω καταχωρητή (base-displacement) Segment register PC relative
4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί της τελικής διεύθυνσης /1 Άμεσος Έμμεσος Χωρίς Αναφορά
5 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί της τελικής διεύθυνσης /2 Υπολογισμός με καταχωρητή δείκτη Έμμεσος με καταχωρητή
6 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί της τελικής διεύθυνσης /3 Μετατόπιση μέσω καταχωρητή
7 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί της τελικής διεύθυνσης /4 Μετατόπιση μέσω segment
8 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί τελικής διεύθυνσης (συνοπτικά) Χωρίς αναφορά Άμεσος Έμμεσος Έμμεσος με καταχωρητή Με δείκτη Μετατόπιση μέσω καταχωρητή Μετατόπισης μέσω τμήματος(Intel) PC-relative ΤΔ = 0 ΤΔ = Η Διεύθυνση Παράγοντα ΤΔ = Το περιεχόμενο της διεύθυνσης του παράγοντα ΤΔ = Το περιεχόμενο ενός καταχωρητή ΤΔ = Το Άθροισμα της διεύθυνσης του παράγοντα και ενός καταχωρητή δείκτη ΤΔ = Το άθροισμα της μετατόπισης και ενός καταχωρήτη βάσης ΤΔ = Το άθροισμα της μετατόπισης και ενός καταχωρήτη τμήματος χ 2 4 ΤΔ = Το άθροισμα της μετατόπισης και του Program Counter
9 Οργάνωση και Αρχιτεκτονική Υπολογιστών Υπολογισμοί τελικής διεύθυνσης σε INTEL 80x86 ΜέθοδοςΤύπος ImmediateΤΔ = παράγοντας (operant) RegisterTΔ = register PC-relativeTΔ = PC + displacement DisplacementΤΔ = Segment + displacement BaseΤΔ = Segment + Base Base-displacementΤΔ = Segment + Base + displacement index-displacementΤΔ = Segment + Index + displacement Base-index-displacementΤΔ = Segment + Base + Index + displacement
10 Οργάνωση και Αρχιτεκτονική Υπολογιστών Τύποι δεδομένων Διευθύνσεις Αριθμοί Ακέραιοι Κινητής υποδιαστολής Binary Code decimal Λογικά δεδομένα Χαρακτήρες ASCII EBSDIC
11 Οργάνωση και Αρχιτεκτονική Υπολογιστών Τύποι λειτουργιών συνόλου εντολών Μεταφοράς δεδομένων Move, Store, load, Exchange, clear or reset Set, Push, Pop Αριθμητικές Add, subtract, Multiply, Divide. Absolute Negate, increment, Decrement Λογικές AND, OR, NOT, Exclusive-OR, test, compare Set control variables, shift, rotate Αλλαγής ροής Jump, jump conditional, call, return, skip, skip conditional Halt, wait, no operation Εισόδου/Εξόδου Input, output, start i/o, test i/o Μετατροπής Translate, convert
12 Οργάνωση και Αρχιτεκτονική Υπολογιστών Συχνότητα εμφάνισης εντολών (INTEL 80x86) ΣειράΕντολήΜέσος όρος % 1 Load 22% 2 Conditional Branch 20% 3 Compare 16% 4 Store 12% 5 Add 8% 6 and 6% 7 sub 5% 8 Move reg to reg 4% 9 call 1% 10 return 1% total 96% Πηγή : Patterson-Hennessy
13 Οργάνωση και Αρχιτεκτονική Υπολογιστών Η κωδικοποίηση του Instruction Set – Μήκος εντολών Προβλήματα σχεδιασμού Το πλήθος των πεδίων που απαιτούνται Ένα ή πολλαπλά σχήματα εντολών; Σταθερό ή μεταβλητό μήκος εντολής; Λύσεις Της αρχιτεκτονικής που επιλέχθηκε(accumulator, load-store, register- memory, stack) Τη σχέση μεταξύ κωδικού και παραγόντων Το πλήθος των μεθόδων υπολογισμού της τελικής διεύθυνσης Το πλήθος των καταχωρητών Του πλήθους των παραγόντων που επιθυμεί ο αρχιτέκτονας να συμπεριλάβει σε μια εντολή
14 Οργάνωση και Αρχιτεκτονική Υπολογιστών Τύποι σχεδιασμού Εντολή μεταβλητού μήκους Εντολή σταθερού μήκους Εντολές πολλαπλού μήκους
15 Οργάνωση και Αρχιτεκτονική Υπολογιστών Γιατί οδηγηθήκαμε στον μικροπρογραμματισμό; Η μεγάλη διαφορά ταχύτητας μεταξύ κυρίας μνήμης και ΚΜΕ, η οποία απαιτούσε λιγότερες αναφορές στη μνήμη, αρά πιο σύνθετες εντολές. Η πολυπλοκότητα των νέων γλωσσών προγραμματισμού απομάκρυνε ακόμα περισσότερο της ανώτερες γλώσσες προγραμματισμού από την γλώσσα μηχανής(εννοιολογικό χάσμα) και δυσκόλευε την συγγραφή μεταγλωττιστών. Το χαμηλό κόστος υλοποίησης της μικροπρογραμματιζόμενης ΚΜΕ σε σχέση με αυτό της καλωδιωμένης Η δυνατότητα προσθήκης νέων εντολών ή διόρθωση των λανθασμένων.
16 Οργάνωση και Αρχιτεκτονική Υπολογιστών RISC εναντίον CISC RISCCISC Όλες οι εντολές απαιτούν μόνο ένα κύκλο μνήμης για να υλοποιηθούν, εκτός από τις εντολές LOAD και STORE Οι σύνθετες εντολές (και αυτές είναι οι περισσότερες)χρειάζονται πολλούς κύκλους Μόνο οι εντολές LOAD και STORE αναφέρονται στη μνήμη Όλες οι εντολές αναφέρονται στη μνήμη Μικρό πλήθος εντολώνΜεγάλο πλήθος εντολών Ένα και μοναδικό σχήμα εντολήςΠολλά σχήματα εντολής Μικρός αριθμός μεθόδων Διευθυνσιοδότησης Μεγάλος αριθμός μεθόδων Διευθυνσιοδότησης Οι εντολές εκτελούνται από το υλικόΟι εντολές ερμηνεύονται από τoν ερμηνευτή μικροκώδικα Υψηλό επίπεδο διοχέτευσης (Pipeline)Χωρίς διοχέτευση ή χαμηλό επίπεδο διοχέτευσης Εντολές σταθερού μήκους και μορφής με μόνο μια αναφορά στη μνήμη Εντολές μεταβλητής μορφής και μήκους πολλές αναφορές στη μνήμη Πολλά σύνολα καταχωρητώνΈνα σύνολο καταχωρητών
17 Οργάνωση και Αρχιτεκτονική Υπολογιστών Συγκριτικός πίνακας μηχανών RISC και CISC