ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΒΑΣΙΚΟΥ ΣΥΝΟΛΟΥ ΕΝΤΟΛΩΝ. Instruction Set Architecture-IAS



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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Εντολές γλώσσας μηχανής

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

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

Εισαγωγή στην πληροφορική -4

Στοιχεία από Assembly Γιώργος Μανής

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Εργαστήριο ΨΗΦΙΑΚΗ ΛΟΓΙΚΗ. Εισαγωγή

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο Σύντοµη Επανάληψη

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

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

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Σημειώσεις για τον 80x86

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 2 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

ΠΑΡΑ ΕΙΓΜΑ 8 ΓΕΝΝΗΤΡΙΑ ΨΕΥ ΟΤΥΧΑΙΩΝ ΑΡΙΘΜΩΝ (PSEUDORANDOM GENERATOR) 8.0 ΓΕΝΙΚΑ

3.1 εκαδικό και υαδικό

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

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

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

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

Αρχιτεκτονικές Συνόλου Εντολών

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

Αριθμητικά Συστήματα

Βασική δοµή και Λειτουργία Υπολογιστή

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Πράξεις με δυαδικούς αριθμούς

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 3. Αριθµητική για υπολογιστές

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

Παραλληλισµός Εντολών (Pipelining)

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

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

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKO MHXANIK I O I Η/ Η Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Γ. Τσιατούχας ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Εισαγωγή στην επιστήμη των υπολογιστών

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 7 και 8: Αναπαραστάσεις. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Θέµατα Φεβρουαρίου

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

ΑΡΙΘΜΗΤΙΚΗ ΓΙΑ ΥΠΟΛΟΓΙΣΤΕΣ

1. Βάσεις αριθμητικών συστημάτων 2. Μετατροπές μεταξύ ξύβάσεων 3. Αρνητικοί δυαδικοί αριθμοί 4. Αριθμητικές πράξεις δυαδικών αριθμών

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3

5.1 Θεωρητική εισαγωγή

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

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

Transcript:

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 33 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΒΑΣΙΚΟΥ ΣΥΝΟΛΟΥ ΕΝΤΟΛΩΝ Instruction Set rchitecture-is 2.1 Αρχιτεκτονική του συνόλου εντολών γλώσσας µηχανής...34 2.2 οµή εντολής γλώσσας µηχανής...34 2.3 Ταξινόµηση των αρχιτεκτονικών...35 2.4 ιευθυνσιοδότηση (addressing)...39 2.5 Τύποι δεδοµένων...46 2.6 Τύποι λειτουργιών συνόλου εντολών...46 2.7 H Κωδικοποίηση του Instruction Set και το µήκος των εντολών...49 2.8 Η εξέλιξη του σχεδιασµού του Instruction Set....51

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 34 2.1 Αρχιτεκτονική του συνόλου εντολών γλώσσας µηχανής Ο σχεδιασµός µιας γλώσσας µηχανής είναι στενά συνδεδεµένος µε τον σχεδιασµό της ΚΜΕ ή του επεξεργαστή. Αυτό είναι άλλωστε πολύ φυσικό µιας και ο επεξεργαστής θα κληθεί να ερµηνεύσει τις εντολές του συνόλου εντολών γλώσσας µηχανής. Ονοµάζουµε αρχιτεκτονική του συνόλου εντολών γλώσσας µηχανής (Instruction Set rchitecture ή IS) όλα εκείνα τα χαρακτηριστικά που έχουν σχέση : µε το σχήµα και τη δοµή (format) των εντολών και µήκος τους σε bits, τη χρήση των καταχωρητών από τις εντολές τις µεθόδους µε τις οποίες, οι εντολές αναφέρονται στη µνήµη και τους τρόπους υπολογισµού τις τελικής διεύθυνσης. το πλήθος των ενεργειών που πραγµατοποιούν οι διαφορετικές εντολές του συνόλου την παράσταση των δεδοµένων (ακέραιοι, κινητής υποδιαστολής, χαρακτήρες) Στόχος του αρχιτέκτονα είναι να δηµιουργήσει µια ευέλικτη γλώσσα, οι οποία: θα εκµεταλλεύεται τις δυνατότητες του υλικού θα διευκολύνει τη σύνταξη των προγραµµάτων συστήµατος και ιδίως των µεταγλωττιστών και θα λαµβάνει υπόψη του: τις νέες τεχνολογίες και ιδέες τις ανάγκες της αγοράς τον ανταγωνισµό. 2.2 οµή εντολής γλώσσας µηχανής Κάθε εντολή διαιρείτε σε µια σειρά από πεδία µέσα στα οποία περιγράφονται, όπως αναφέραµε στο κεφαλαίο 1, το ρήµα και τα αντικείµενο του ρήµατος. ηλαδή ο κωδικός λειτουργίας της εντολής και οι αναφορές στους παράγοντες της. Τα βασικά τµήµατα µιας εντολής γλώσσας µηχανής είναι: Ο κωδικός λειτουργίας, ο οποίος περιγράφει όλες τις διαφορετικές εντολές του συνόλου ή όπως συνηθίζεται να λέγεται, περιγράφει το ρεπερτόριο των εντολών της ΚΜΕ. Ο κωδικός λειτουργία καταλαµβάνει ένα πεδίο το µήκος του οποίου έχει σχέση µε το πλήθος των διαφορετικών εντολών του ρεπερτορίου. Το πεδίο αυτό είναι απαραίτητο. Οι αναφορές στους παράγοντες εισόδου. Το πλήθος των αναφορών αυτών εξαρτάται από την αρχιτεκτονική της µηχανής. Κάθε αναφορά καταλαµβάνει ένα πεδίο. Μια αναφορά µπορεί να είναι µια διεύθυνση µνήµης ή µια διεύθυνση καταχωρητή οι οποίες να περιέχουν τον παράγοντα εισόδου Μπορεί επίσης µέσα στο πεδίο αντί να τοποθετείται η διεύθυνση του παράγοντα να τοποθετείται ο ίδιος ο

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 35 παράγοντας, δηλαδή µια σταθερά. Οι παράγοντες εισόδου τροφοδοτούν τις εντολές µε τα στοιχεία τα οποία είναι απαραίτητα για την λειτουργία τους. Σε µερικές αρχιτεκτονικές, µια η περισσότερες αναφορές µπορεί να είναι υπονοούµενες(default). Στον υποθετικό υπολογιστή που περιγράψαµε πιο πάνω, η εντολή DD έχει µια αναφορά εισόδου φανερή και µια υπονοούµενη, τον συσσωρευτή Οι αναφορές στους παράγοντες εξόδου. Και εδώ το πλήθος εξαρτάται από την αρχιτεκτονική αλλά συνήθως είναι µόνο µια. Κάθε τέτοια αναφορά µπορεί να είναι µια διεύθυνση µνήµη ή µια διεύθυνση καταχωρητή στην οποία η εντολή θα τοποθετήσει το αποτέλεσµα. Μπορεί να έχουµε και υπονοούµενη αναφορά, όπως για παράδειγµα στην εντολή DD, όπου η εντολή θα τοποθετήσει το αποτέλεσµα του αθροίσµατος στον συσσωρευτή. Η διεύθυνση της επόµενης εντολής. Το πεδίο αυτό χρειάζεται σε µια εντολή αλλαγής ροής και περιέχει την διεύθυνση της εντολής που πρέπει µα εκτελεστεί. Σηµειώνουµε ότι δεν είναι απαραίτητο όλα τα πεδία που περιγράψαµε πιο πάνω να περιχέονται σε κάθε εντολή. Στο σχήµα 2.1 παρουσιάζουµε τους πιο συνηθισµένους τύπους εντολών γλώσσας µηχανής Κωδικός Λειτουργιάς Εντολή χωρίς αναφορές π.χ STOP Κωδικός Λειτουργιάς ιεύθυνση αναφοράς Εντολή µε µια αναφορά π.χ DD Κωδικός Λειτουργιάς ιεύθυνση αναφοράς 1 ιεύθυνση αναφοράς 2 Εντολή µε δύο αναφορές π.χ DD Κωδικός Λειτουργιάς ιεύθυνση αναφοράς 1 ιεύθυνση αναφοράς 2 Εντολή µε τρείς αναφορές π.χ DD ιεύθυνση αναφοράς 3 Σχήµα 2.1 Συνήθη σχήµατα εντολών 2.3 Ταξινόµηση των αρχιτεκτονικών Με βάση την χρήση των καταχωρητών από τις εντολές γλώσσας µηχανής έχουµε τις παρακάτω αρχιτεκτονικές: Με χρήση σωρού (Stack architecture) Με χρήση του µοναδικού συσσωρευτή (accumulator architecture)

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 36 Με χρήση καταχωρητών γενικού σκοπού (general-purpose register architecture) Στην αρχιτεκτονική σωρού η οποία παρουσιάστηκε στους πρώτους υπολογιστές οι εντολές ήταν χωρίς αναφορές. Η εντολή ανέσυρε τους παράγοντες εισόδου από την κορυφή του σωρού και τοποθετούσε το αποτέλεσµα στην κορυφή του σωρού. Αν η εντολή χρειάζεται δύο παράγοντες εισόδου, αυτές τις αποκτούσε από τις δύο πρώτες θέσεις του σωρού. Θα δείξουµε την πραγµατοποίηση της ενέργειας =+ σε υπολογιστή µε αρχιτεκτονική σωρού. Για τον χειρισµό του σωρού υπήρχαν οι εντολές PUSH και POP. Η εντολή PUSH µεταφέρει το περιεχόµενο µιας θέσης µνήµης στην κορυφή του σωρού, ενώ η εντολή POP µεταφέρει το περιεχόµενο της κορυφής του σωρού σε µια θέση µνήµης. Το πρόγραµµα σε συµβολική γλώσσα µηχανής έχει την µορφή: PUSH PUSH DD POP Στο σχήµα 2.2 παρουσιάζονται γραφικά, οι τέσσερις εντολές του προγράµµατος PUSH ΣΩΡΟΣ ΣΩΡΟΣ PUSH 2 1 00000101 ΣΩΡΟΣ 3 2 1 DD KME 00000101 POP ΣΩΡΟΣ 00000101 Σχήµα 2.2 Αρχιτεκτονική σωρού Στην αρχιτεκτονική συσσωρευτή έχουµε σχήµα εντολής µε µία µόνο αναφορά σε παράγοντα η οποία είναι η διεύθυνση µιας θέσης µνήµης(η διεύθυνση του

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 37 παράγοντα). Η αναφορά στον συσσωρευτή υπονοείται από τις εντολές. Την λειτουργία της αρχιτεκτονικής συσσωρευτή την δείξαµε στο κεφάλαιο 1. Στην αρχιτεκτονική µε χρήση καταχωρητών γενικού σκοπού έχουµε δυο υποαρχιτεκτονικές. Η πρώτη ονοµάζεται αρχιτεκτονική register-memory και η δεύτερη load-store. Στην αρχιτεκτονική register-memory όλες οι εντολές έχουν δύο αναφορές σε παράγοντες οι οποίοι µπορούν να είναι είτε καταχωρητές, είτε διευθύνσεις θέσεων µνήµης. Οι γενικής χρήσης καταχωρητές ονοµάζονται συνήθως R1, R2, R3 ή Α1, Α2, Α3 και ο χρήστης µπορεί να τους χρησιµοποιήσει κατά βούληση Το πρόγραµµα σε συµβολική γλώσσα µηχανής έχει την µορφή: LOD R1, DD R1, STORE, R1 Στο σχήµα 2.3 παρουσιάζονται γραφικά οι τρεις εντολές του προγράµµατος. Σηµειώνουµε ότι θα µπορούσε να χρησιµοποιηθεί και ο καταχωρητής R2 ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ LOD R1,. R1 R2 R3 Rn 00000101 STORE, R1 00000101. R1 R2 R3 Rn 3 2 DD 1 00000101. R1 R2 R3 Rn DD R1, ΚΑΤΑΧΩΡΗΤΕΣ Σχήµα 2.3 Αρχιτεκτονική register-memory Στην αρχιτεκτονική load-store έχουµε εντολές που έχουν αναφορές σε δύο παράγοντες και εντολές που έχουν αναφορές σε τρεις παράγοντες. Στις εντολές µε δύο παράγοντές, ο ένας είναι αναφορά σε καταχωρητή και ο άλλος σε θέση µνήµης,

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 38 Οι εντολές µε αυτή την ιδιότητα µπορεί να είναι µόνο οι εντολές LOD και STORE. Οι εντολές µε τρεις παράγοντές είναι συνήθως αναφορές σε τρεις καταχωρητές γενικής χρήσης Το πρόγραµµα σε συµβολική γλώσσα µηχανής έχει την µορφή: LOD R1, LOD R2, DD R1, R2, R3 STORE, R3 Στο σχήµα 2.4 παρουσιάζονται γραφικά οι τέσσερις εντολές του προγράµµατος. ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ LOD R1,. R1 R2 R3 Rn LOD R2,. R1 R2 R3 Rn ΚΑΤΑΧΩΡΗΤΕΣ ΚΑΤΑΧΩΡΗΤΕΣ DD 3 1 2 DD R1, R2, R3 00000101 00000101. R1 R2 R3 Rn 00000101 STORE, R3. 00000101 R1 R2 R3 Rn Σχήµα 2.4 Αρχιτεκτονική load-store Την αρχιτεκτονική load-store θα τη βρούµε σε υπολογιστές των οποίων ο σχεδιασµός έγινε µετά το 1980. Οι αρχιτέκτονες προτιµούν αυτή τη µέθοδο για τους παρακάτω λόγους: Μεγαλύτερη ταχύτητα στην εκτέλεση των προγραµµάτων: Αυτό οφείλετε στο ότι οι καταχωρητές βρίσκονται µέσα στην ΚΜΕ και η εκτέλεση των περισσότερων εντολών δεν απαιτεί αναφορά στη µνήµη. Οι µεταγλωττιστές παράγουν πιο γρήγορα προγράµµατα: Το πλήθος των καταχωρητών γενικής χρήσης έχει µεγάλη σηµασία στην ταχύτητα εκτέλεσης των προγραµµάτων. Το πλήθος τους εξαρτάται από την χρήση τους από τους µεταγλωττιστές. Πολλές υλοποιήσεις φτάνουν και µέχρι 512.. Σε µια µεγάλη

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 39 αριθµητική έκφραση οι καταχωρητές χρησιµοποιούνται για την αποθήκευση των ενδιαµέσων αποτελεσµάτων, έτσι ώστε η σύνθεση του τελικού αποτελέσµατος να µην χρειάζεται αναφορές στη µνήµη. Εντολές µε µικρότερο µήκος: Επειδή το πλήθος των καταχωρητών είναι µικρό σε σχέση µε τις θέσεις την µνήµη, η αναφορά σε αυτούς απαιτεί µικρότερα πεδία. Αν για παράδειγµα έχουµε ένα υπολογιστή µε 16 καταχωρητές και ένα ΜΒ µνήµης χρειαζόµαστε 4 bits για το πεδίο των καταχωρητών αντί 20 bits για το πεδίο αναφοράς, το οποίο θα περιέχει διεύθυνση µνήµης. Συγκεκριµένα αν υποθέσουµε ότι έχουµε µια εντολή µε κωδικό 8 bits και δύο πεδία διευθύνσεων, θα χρειαζόµασταν 48 bits (8+20+20) για να σχηµατίσουµε µια εντολή. Αν το ένα από τα πεδία ήταν αναφορά σε καταχωρητή θα χρειαζόµασταν 30 bits(6+20+4). ν και τα δύο πεδία ήταν αναφορά σε καταχωρητές θα χρειαζόµασταν 16bit(8+4+4). Γενικά ο στόχος των αρχιτεκτόνων είναι να πετύχουν µικρές εντολές µειώνοντας έτσι τον χρόνο απόκτηση τους από την µνήµη. Οι υπολογιστές RIS είναι σχεδιασµένοι µε την αρχιτεκτονική load-store. 2.4 ιευθυνσιοδότηση (addressing). Σε κάθε µια από τις θέσεις της µνήµης αντιστοιχεί και µια διεύθυνση, η οποία ονοµάζεται φυσική διεύθυνση(physical ddress). Αν έχουµε Ν θέσεις µνήµης τότε οι φυσικές διευθύνσεις βρίσκονται στο διάστηµα [0, 2 Ν-1 ]. Το διάστηµα αυτό ονοµάζεται χώρος φυσικών διευθύνσεων(physical ddress Space). Τον χώρο των φυσικών διευθύνσεων µπορεί να τον δει µόνο το Hardware και όχι ο προγραµµατιστής. Ένα ερώτηµα είναι, αν ο προγραµµατιστής πρέπει να γνωρίζει τουλάχιστο το µέγιστο πλήθος των διαθέσιµων διευθύνσεων ώστε να µη το ξεπεράσει. Στις αρχικές αρχιτεκτονικές, πράγµατι αυτό ήταν ένα πρόβληµα. Στις σηµερινές αρχιτεκτονικές ορίζεται η ιδεατή µνήµη(virtual memory) σαν τη µνήµη που µπορεί να δει το λειτουργικό σύστηµα και είναι ουσιαστικά άπειρη(ανέρχεται σε terabytes). O µηχανισµός διαχείρισης της µνήµης µετατρέπει τις διευθύνσεις της ιδεατής µνήµης σε διευθύνσεις της φυσικής και αντίστροφα εφαρµόζοντας την τεχνική της σελιδοποίησης(paging). O προγραµµατιστής σε συµβολική γλώσσα χρησιµοποιεί συµβολικές διευθύνσεις για τις µεταβλητές, τους πίνακες και τις διευθύνσεις εντολών(ετικέτες). Επίσης, όπως αναφέραµε στην προηγούµενη παράγραφο, µε τη ιδεατή µνήµη, δεν έχει κανένα περιορισµό όσον αφορά το πλήθος των θέσεων της µνήµης που µπορεί να χρησιµοποιήσει.. Κατά τη µετάφραση του προγράµµατος, ο µεταγλωττιστής µετατρέπει της συµβολικές διευθύνσεις σε αριθµητικές και τις τοποθετεί στα αντίστοιχα πεδία της εντολής. Τις διευθύνσεις αυτές µπορούµε να τις ονοµάζουµε αρχικές Κατά τη εκτέλεση των εντολών το hardware µετατρέπει τις αρχικές διευθύνσεις σε νέες διευθύνσεις που αντιστοιχούν στις φυσικές και ονοµάζονται τελικές διευθύνσεις (effective address). Η διαδικασία ονοµάζεται υπολογισµός της τελικής διεύθυνσης(effective address resolution).

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 40 Στο κεφάλαιο1 και στο σχήµα 1.15 το βήµατα που αναφέρονται σαν υπολογισµός της διεύθυνσης εντολής και σαν υπολογισµός διεύθυνσης παράγονται στο υπολογισµό της τελικής διεύθυνσης της θέσης της εντολής ή του παράγοντα αντίστοιχα, αναφέρονται. Υπάρχουν αρκετοί µέθοδοι υπολογισµού της τελικής διεύθυνσης, άλλοι απλοί και άλλοι πολύπλοκοι. Η χρήση τους είναι απαραίτητη γιατί διευρύνουν τις δυνατότητες του συνόλου εντολών, και διευκολύνουν τον προγραµµατισµό και την διαχείριση της µνήµης. Στη περιγραφή τον µεθόδων που ακολουθεί δεν είναι δυνατόν να δοθούν παραδείγµατα που να πείθουν τον αναγνώστη για την χρησιµότητα τους. Στη συνέχεια όµως θα µας δοθεί η δυνατότητα να δώσουµε πειστικά παραδείγµατα πάνω σε πραγµατικές καταστάσεις. Εκείνο που µπορούµε να πούµε είναι, ότι οι τεχνικές αυτές έχουν σαν βασικό στόχο και την ελάττωση του µήκους των εντολών γλώσσας µηχανής. Σε ένα προηγούµενο παράδειγµα δείξαµε ότι για µια εντολή µε δύο παράγοντές, µνήµη ενός ΜΒ και κωδικό εντολής 8 bits χρειάζεται µήκος εντολής 48 bits(8+20+20). ν υποθέσουµε ότι επιθυµούµε µε αυτό το σχήµα να υποστηρίξουµε µνήµη 256 ΜΒ, δηλαδή 2 28 διευθύνσεις, τότε θα χρειαστούµε εντολές µε µήκος 64 bits(8+28+28). Αυτά τα µήκη είναι πολύ µεγάλα, και για τον λόγο αυτό χρησιµοποιούνται οι τεχνικές που θα περιγράψουµε πιο κάτω. Χωρίς αναφορά( immediate addressing). Στη µέθοδο αυτή στο πεδίο της διεύθυνσης αναφοράς δεν βρίσκεται η διεύθυνση του παράγοντα αλλά ή ο ίδιος ο παράγοντας. εν υπάρχει υπολογισµός Άµεσος ή απόλυτος (Direct addressing). Στη µέθοδο αυτή στο πεδίο της διεύθυνσης αναφοράς βρίσκεται η τελική διεύθυνση του παράγοντα στη µνήµη. εν υπάρχει και εδώ υπολογισµός(σχήµα 2.5) Παράγοντας Κωδικός ιεύθυνση Σχήµα 2.5 Άµεσος Υπολογισµός Έµµεσος υπολογισµός (indirect addressing). Στον έµµεσο υπολογισµό, ένα από τα bits της διεύθυνσης χρησιµοποιείται σαν σηµατοδότης(flag). ν η τιµή του είναι 0 τότε έχουµε άµεσο υπολογισµό. Αν είναι 1 τότε διεύθυνση που υπάρχει στο πεδίο της διεύθυνσης δεν είναι η διεύθυνση του παράγοντα, αλλά η διεύθυνση µιας άλλης θέσης µνήµης όπου υπάρχει ο παράγοντας(σχήµα 2.6). Μια από την χρήση της µεθόδου αυτής είναι στο πέρασµα παραµέτρων κατά την κλήση των υπορουτινών

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 41 Κωδικός 1 ιεύθυνση Έµµεση διεύθυνση Indirection flag Παράγοντας Σχήµα 2.6 Έµµεσος Υπολογισµός Έµµεσος υπολογισµός µε καταχωρητή(register-indirect addressing). Στη περίπτωση αυτή το σχήµα της εντολής γλώσσας µηχανής προβλέπει την ύπαρξη ενός πεδίου µέσα στο οποίο υπάρχει ο κωδικός ενός καταχωρητή γενικού σκοπού. Μέσα στον καταχωρητή αυτό έχει τοποθετηθεί από τον προγραµµατιστή και πριν από την εκτέλεση τη εντολής η διεύθυνση αναφοράς του παράγοντα στη µνήµη(σχήµα 2.7) Κωδικός R1 Παράγοντας ιεύθυνση Καταχωρητής R1 Σχήµα 2.7 Έµµεσος υπολογισµός µε καταχωρητή Οι µέθοδοι που ακολουθούν χαρακτηρίζονται από την ιδιότητα όπου η τελική διεύθυνση προκύπτει από την πρόσθεση της διεύθυνσης που βρίσκεται στο πεδίο της διεύθυνσης και µιας τιµής που βρίσκεται σε ένα καταχωρητή. Όλες καλύπτονται από τον όρο µετατόπιση(displacement). Υπολογισµός µε δείκτη(indexed ddressing). Στον υπολογισµό της τελικής διεύθυνσης µετέχει το πεδίο της διεύθυνσης και ένας καταχωρητής. Η τελική διεύθυνση προκύπτει από το άθροισµα της διεύθυνσης και του περιεχοµένου του καταχωρητή. Στις αρχιτεκτονικές µε καταχωρητές γενικού σκοπού ο καταχωρητής θα είναι ένας από τους R1,R2..Σε άλλες περιπτώσεις, όπως στην αρχιτεκτονική συσσωρευτή, υπάρχουν ειδικοί καταχωρητές οι οποίοι ονοµάζονται καταχωρητές δείκτη (index registers). Στην εντολή προβλέπεται ένα πεδίο το οποίο περιέχει τον κωδικό του καταχωρητή που µετέχει στον υπολογισµό(σχήµα 2.8). Βασική χρήση της µεθόδου αυτής είναι στον εντοπισµό των στοιχείων πινάκων. Στο πεδίο της διεύθυνσης µπαίνει η διεύθυνση του πρώτου στοιχείου του πίνακα και στον index register η θέση του στοιχείου µέσα στον πίνακα. Το άθροισµα δίνει της θέση του

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 42 στοιχείου στη µνήµη. Η παραπάνω µέθοδος ονοµάζεται και index-displacement addressing Index flag I=3 Κωδικός I ιεύθυνση Παράγοντας I3 I1 I2 I4 είκτης + Σχήµα 2.7 Έµµεσος υπολογισµός µε καταχωρητή Μετατόπιση µέσω καταχωρητή βάσης(base-displacement addressing). H µέθοδος αυτή δεν διαφέρει καθόλου από την προηγούµενη παρά στο ότι εδώ χρησιµοποιούµε ένα καταχωρητή βάσης αντί καταχωρητή δείκτη. Οι δύο µέθοδοι διαφέρουν σηµαντικά στη χρήση τους. Η µέθοδος base-displacement χρησιµοποιείται κυρίως για να αυξήσει την δυνατότητα του επεξεργαστή να χειρίζεται µεγαλύτερη µνήµη. Στην εντολή γλώσσας µηχανής υπάρχει ένα πεδίο που περιέχει την µετατόπιση(displacement) και ένα άλλο πεδίο το οποίο σηµατοδοτεί τον καταχωρητή βάσης. Για να γίνεί κατανοητή η χρησιµότητα της µεθόδου θα δώσουµε ένα παράδειγµα. Υποθέτουµε ότι σχεδιάσαµε έναν επεξεργαστή µε εντολή γλώσσας µηχανής µε ένα παράγοντα και µήκος 26 bits. Αν ο κωδικός λειτουργίας έχει µήκος 8 τότε το πεδίο της διεύθυνσης θα έχει µήκος 18 bits. Αν σε κάθε διεύθυνση της µνήµη αντιστοιχεί 1 byte(8 bits), αυτό σηµαίνει ότι ο επεξεργαστής µπορεί να χειριστεί µνήµη µήκους 2 18 = 256Κ. Σηµειώνουµε ότι κωδικός λειτουργίας 8 bits σηµαίνει ότι υο instruction Set µπορεί να έχει µέχρι 2 8 = 64 διαφορετικές εντολές Θα κάνουµε τώρα την έξης τροποποίηση στον σχεδιασµό µας. Θα αφαιρέσουµε από το πεδίο διεύθυνσης 2 bits και θα τα αφιερώσουµε σε ένα σηµατοδότη, ο οποίος θα σηµατοδοτεί τέσσερις καταχωρητής βάσεις (base register). Τα 16 bits που αποµένουν είναι το displacement. Παίρνουµε µια µνήµη 1 ΜΒ και την χωρίζουµε σε 16 τµήµατα(segments), µε το καθένα να έχει µήκος 64ΚΒ=65536 bytes. Με την µέθοδο base-displacement addressing και µε το ίδιο µήκος εντολής µπορούµε να χειριστούµε τώρα τέσσερις φορές περισσότερη µνήµη.

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 43 0 base flag =2 1 2. Segment 0 displacemant 65535 2 0 Κωδικός 2 2 + 65536 65537 65538 131071 Παράγοντας Segment 2. 1 3 65536. Segment 3 Καταχωρητές βάσης 983040 983041 983042. Segment 15 1048575 Σχήµα 2.8 Βase-displacement addressing Η τελική διεύθυνση της µνήµη θα προκύπτει από το άθροισµα της µετατόπισης (displacement) και του περιεχόµενου ενός από τους base registers. Απαραίτητη προϋπόθεση είναι κάθε φορά ένας από τους base register να περιέχει την διεύθυνση της αρχής ενός segment (σχήµα 2.8). To µήκος των base registers είναι 20 bits. Την µέθοδο αυτή, αλλά λίγο τροποποιηµένη χρησιµοποιεί η οικογένεια 80x86 της Intel και η οποία ονοµάζεται segment-register addressing. Οι οικογένεια των επεξεργαστών της Intel έχει τέσσερις segment registers µήκους 16 bits. Αυτοί είναι οι code, data, stack και extra segment registers. Σε κάθε πρόγραµµα ο code register περιέχει την διεύθυνση της αρχής του segment που περιέχει τις εντολές, ο data περιέχει την διεύθυνση της αρχής του segment που περιέχει τις µεταβλητές και ο stack περιέχει την διεύθυνση της αρχής του segment που χρησιµεύει σαν stack. Τέλος ο extra χρησιµοποιείται σαν balladeer. Η διαφορά µε την απλή µέθοδο base-displacement βρίσκεται ουσιαστικά ότι στη µέθοδο της Intel ή επιλογή του segment register γίνεται από τον επεξεργαστή. Επίσης η Intel χρησιµοποιεί και µια έξυπνη τεχνική κατά τον υπολογισµό της τελικής διεύθυνσης, η οποία για 1 ΜΒ µνήµη δεν απαιτεί segment register των 20 bits αλλά 16 bits.( σχήµα 2.9)

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 44 0 1 2. Segment 0 Displacemant 16 bits 0FFFF S SD SS SE 16 bits 1000 Κωδικός 2 0 10000 + 10000 10001 10002 1FFFF 20000 Παράγοντας Segment 2.. Segment 3 Καταχωρητές segment Προσθήκη µηδενικού F0000 F0001 F0002. Segment 15 FFFFF Σχήµα 2.9 segment-register addressing. Η τεχνική βασίζεται στην παρατήρηση ότι οι αρχές των segments βρίσκονται στις δεκαεξαδικές διευθύνσεις 00000, 10000, 20000, 30000... 90000, Α0000, Β0000, 0000, F0000. Ο επεξεργαστής έχει σχεδιαστεί έτσι ώστε να πιστεύει, ότι οι αρχές των τµηµάτων βρίσκονται στις εικονικές διευθύνσεις 0000, 1000, 2000, 3000... 9000, Α000, Β000, 000, F000 Για τον λόγο αυτό οι καταχωρητές τµήµατος είναι 16 bits. Κατά τον υπολογισµό της τελικής διεύθυνσης και πριν τη πρόσθεση στο displacement τοποθετεί ένα δεκαεξαδικό( 4 bits) µηδενικό στο τέλος. Ο τύπος του υπολογισµού της τελικής διεύθυνσης έχει την µορφή: Effective address = segment-register x 2 4 + displacement Ο πολλαπλασιασµός µε το 2 4 χρειάζεται για την προσθήκη του δεκαεξαδικού µηδενικού στο τέλος τις τιµής του segment register P-relative addressing. Η µέθοδος αυτή είναι µια παραλλαγής της basedisplacement, µονό που στη θέση του base καταχωρητή χρησιµοποιείται ο programcounter(p). Χρησιµοποιείται βασικά από τις εντολές αλλαγής ροής για τη σχετική

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 45 µετακίνηση µέσα σε ένα πρόγραµµα. Για παράδειγµα, αν το displacement έχει την τιµή 2 και η εντολή βρίσκεται στη διεύθυνση 35, τότε ο τύπος υπολογισµού γίνεται: Effective address = P + displacement = 36 + 2 =38 Αυτό σηµαίνει ότι ή επόµενη εντολή που θα εκτελεστεί είναι αυτή που βρίσκεται στην διεύθυνση 38. Η τιµή του P κατά την εκτέλεση της εντολής αλλαγής ροής θα έχει πάρει την τιµή 36 γιατί η αύξηση του P κατά µια µονάδα γίνεται συνήθως πριν την εκτέλεση και µετά την απόκτηση της εντολής. Υπάρχουν ακόµα και η µέθοδος stack-register addressing, την οποία απλώς την αναφέρουµε γιατί είναι µια παλαιά µέθοδος και λίγοι υπολογιστές την χρησιµοποίησαν. Ένα ερώτηµα είναι αν κάθε σύνολο εντολών γλώσσας µηχανής έχει ένα η περισσότερα σχήµατα υπολογισµού της τελικής διεύθυνσης. Η απάντηση είναι ότι µπορεί να έχει περισσότερα και µάλιστα να τα συνδυάζει. Για παράδειγµα οι µέθοδοι indirect και indexed µπορούν να συνδυαστούν και να µας δώσουν δύο νέους τύπους, όπως την pre-index-indirection και την post-index-indirection. Στη πρώτη έχουµε υπολογισµό µέσω δείκτη την οποίο ακολουθεί νέος έµµεσος υπολογισµός. Στη δεύτερη έχουµε το αντίστροφο. Σαν παράδειγµα θα παρουσιάσουµε του τύπους υπολογισµού της τελική διεύθυνσης στον επεξεργαστή Pentium II. Μέθοδος Immediate Register P-relative Displacement ase ase-displacement index-displacement ase-indexdisplacement T = τελική διεύθυνση Τύπος Τ = παράγοντας (operant) T = register T = P + displacement Τ = Segment + displacement Τ = Segment + ase Τ = Segment + ase + displacement Τ = Segment + Index + displacement Τ = Segment + ase + Index + displacement Πίνακας 2.1 Μέθοδοι υπολογισµού τελικής διεύθυνσης στην οικογένεια Intel 80x86 Παρατηρήστε ότι πέντε τελευταίες περιπτώσεις υπάρχει πάντοτε και ένας υπολογισµός µέσω του segment register και αυτό είναι φυσικό γιατί έτσι απαιτεί η

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 46 oοργάνωση της µνήµης. Οι τρεις πρώτες δεν απαιτούν segment register addressing γιατί λειτουργούν µέσα σε ένα και µοναδικό segment. 2.5 Τύποι δεδοµένων Οι εντολές γλώσσας µηχανής ενεργούν πάνω σε µια σειρά από δεδοµένα.. Οι τύποι των δεδοµένων µπορούν να ταξινοµηθούν στις παρακάτω κατηγορίες: ιευθύνσεις Αριθµοί λογικά δεδοµένα Χαρακτήρες ιευθύνσεις : Οι διευθύνσεις είναι ακέραιοι µη προσηµασµένοι αριθµοί µε τους οποίους µπορούν να γίνουν κάποιες ακέραιες πράξεις στο σηµείο που αφορά τις µεθόδους υπολογισµού της τελικής διεύθυνσης. Αριθµοί : Υπάρχουν οι παρακάτω παραστάσεις αριθµών Ακέραιοι Κινητής υποδιαστολής inary ode Decimal Για την παράσταση των ακεραίων χρησιµοποιείται η µέθοδος συµπλήρωµα ως προ δύο µε µήκη 8, 16. και 32 bits. Για την παράσταση των πραγµατικών αριθµών (Floating point numbers) υπάρχουν πολλές υλοποιήσεις(urroughs -5500, D YER 170, IM System/370, DE-PDP-11, VX) µε κυρίαρχη την ΙΕΕΕ standard 754 στα 32, 64 και 128 bits. Λογικά δεδοµένα : Λογικά δεδοµένα είναι ουσιαστικά θέσεις µνήµης ή τµήµατα θέσεων µνήµη µήκους π.χ 8, 16, και 32 bits οι οποίες περιέχουν ένα συνδυασµό από 0 και 1 στα οποία συνπεριφερόµεθα σαν να ήταν διαδοχικές αρνήσεις ή καταβάσεις. Στα λογικά δεδοµένα εφαρµόζονται οι δυαδικές εντολές OR, ND, NOT, XOR που υπάρχουν σε όλα τα Instruction Sets Χαρακτήρες.: Με την τοποθέτηση διαδοχικών χαρακτήρων στη µνήµη σχηµατίζουµε αλυσίδες χαρακτήρων, δηλαδή κείµενα. Ο πιο γνωστός κώδικας χαρακτήρων είναι ο International Reference lphabet (IR) o γνωστός SII. Ένας άλλος κώδικας ο οποίος χρησιµοπιειται από τα συστήµατα IM S/390 είναι ο Extended inary ode Decimal Interchange ode (ESDI) 2.6 Τύποι λειτουργιών συνόλου εντολών Κάθε κατασκευαστής ενσωµατώνει στο σύνολο εντολών που κατασκευάζει τις εντολές εκείνες που πιστεύει ότι θα κάνουν αποτελεσµατική τη λειτουργία της ΚΜΕ(επεξεργαστή). Όµως από µία µελέτη του που έγινε από τον J. Hayes και βρίσκεται στο βιβλίο του µε τίτλο «omputer rchitecture and Organization

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 47 ΜcGraw-Hill 1998» προκύπτει ότι τα περισσότερα σύνολα εντολών έχουν σχεδόν τις ίδιες οµάδες εντολών και µέσα στις οµάδες τις ίδιες σχεδόν εντολές. Οι βασικοί τύποι εντολών είναι οι: Μεταφοράς δεδοµένων Αριθµητικές Λογικές Αλλαγής ροής Εισόδου/εξόδου Μετατροπής Ο πίνακας που ακολουθεί είναι από την ίδια µελέτη και είναι λίαν αποκαλυπτικός ώστε να µη προκύπτει η ανάγκη να γίνει αναλυτική περιγραφή κάθε οµάδας Τύπος Μεταφορά εδοµένων Όνοµα Ενέργειας Move Store Load Exchange lear or Reset Set Push Pop dd Subtract Multiply Περιγραφή Μεταφορά lock εδοµένων Μεταφορά από ΚΜΕ στην Μνήµη Μεταφορά από Μνήµη στην ΚΜΕ Εναλλαγή δεδοµένων Τοποθέτηση µηδέν στον προορισµό Τοποθέτηση ένα στον προορισµό Μεταφορά από µια πηγή στην κορυφή του Stack Μεταφορά από την κορυφή του Stack σε προορισµό Υπολογισµός αθροίσµατος δύο παραγόντων Υπολογισµός διαφοράς δύο παραγόντων Υπολογισµός γινοµένου δύο παραγόντων Αριθµητικές Divide Υπολογισµός πηλίκου δύο παραγόντων bsolute Negate Increment Decrement Αντικατάσταση παράγοντα µε την απόλυτη τιµή του Αλλαγή πρόσηµου παράγοντα Αύξηση κατά 1 της τιµής του παράγοντα Ελάττωση κατά 1 της τιµής του παράγοντα Λογικές ND OR NOT Exclusive-OR Test ompare Set ontrol variables Λογικό OR σε επίπεδο bits Λογικό ND σε επίπεδο bits Λογικό NOT σε επίπεδο bits Λογικό Exclusive-OR σε επίπεδο bits Εξέταση συγκεκριµένης συνθήκης µε ταυτόχρονη ενηµέρωση σηµατοδότη(flag) Σύγκριση δύο αριθµητικών ή λογικών παραγόντων µε ταυτόχρονη ενηµέρωση σηµατοδότη(flag) Εντολές για την αποστολή σηµάτων ελέγχου, για λόγους προστασίας, χειρισµού διακοπών, έλεγχους χρονισµού

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 48 Shift Rotate Μετατόπιση δεξιά ή αριστερά µε αντίστοιχη συµπλήρωση µηδενικών ή κενών στο τέλος Κυκλική µετατόπιση προς τα δεξιά ή τα αριστερά Πίνακας 2.2 Αντιπροσωπευτικές εντολές γλώσσας µηχανής Τύπος Αλλαγής ροής Εισόδου/εξόδου Μετατροπής Όνοµα Ενέργειας Jump Jump onditional all return Execute Skip Skip onditional Halt Wait No operation Input Output Start I/O Test I/O Translate onvert Περιγραφή Αλλαγή ροής χωρίς συνθήκη. Φόρτωση του P µε την συγκεκριµένη διεύθυνση Έλεγχος συνθήκης. Με βάση του αποτελέσµατος της συνθήκης ή φόρτωση του P µε την συγκεκριµένη διεύθυνση ή µεταφορά στην επόµενη εντολή Κλήση υποπρογράµµατος Επιστροφή από υποπρόγραµµα Απόκτηση παράγοντα από καθορισµένη διεύθυνση, εkτέλεση εντολής χωρίς µεταβολή τοy P Μεταβολή το P για την παράκαµψή της επόµενης εντολής Έλεγχος συνθήκης. Με βάση του αποτελέσµατος της συνθήκης ή παράκαµψή της επόµενης εντολής ή µεταφορά στην επόµενη εντολή Τέλος της εκτέλεση προγράµµατος ιακοπή της εκτέλεσης προγράµµατα. Συνεχής έλεγχος συνθήκης. Επανάληψη της εκτέλεσης όταν η συνθήκη γίνει αληθής Συνέχισε στην εκτέλεση της επόµενης εντολής Μεταφορά δεδοµένων από συγκεκριµένη µονάδα Ι/Ο στη µνήµη ή σε καταχωρητή της ΚΜΕ Μεταφορά δεδοµένων από συγκεκριµένη πηγή σε συγκεκριµένη µονάδα Ι/Ο Μεταφορά εντολής προς Ι/Ο συγκεκριµένη µονάδα Ι/Ο επεξεργαστή για την έναρξη ενέργειας εισόδου/εξόδου Μεταφορά πληροφοριών κατάστασης από σύστήµα εισόδου/εξόδου προς συγκεκριµένο προορισµό Μετάφραση των τιµών µιας περιοχής της µνήµης µε βάση ενός πίνακα αντιστοιχίας Μετατροπή του περιεχοµένου µιας θέσης µνήµης από ένα τύπο δεδοµένων σε άλλο Πίνακας 2.2 Αντιπροσωπευτικές εντολές γλώσσας µηχανής(συνέχεια) Χρήσιµο είναι να πάρουµε µια ιδέα για την συχνότητα των διαφόρων εντολών ενός instruction Set. Παραθέτουµε,τον πίνακα 2.3 στον οποίο φαίνεται η συχνότητα των εντολών της οικογένειας 80Χ86 της Intel. σε µια σειρά από benchmarks (προγράµµατα µέτρησης απόδοσης) της SPEint92.

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 49 Σειρά Εντολή Μέσος όρος % 1 Load 22% 2 onditional ranch 20% 3 ompare 16% 4 Store 12% 5 dd 8% 6 and 6% 7 sub 5% 8 Move reg to reg 4% 9 call 1% 10 return 1% total 96% Πίνακας 2.3 Συχνότητα εµφάνισης εντολών στην οικογένεια 80Χ86 της Intel 2.7 H Κωδικοποίηση του Instruction Set και το µήκος των εντολών Μια εντολή πρέπει να κωδικοποιηθεί ώστε να µπορεί να εκτελεστεί από τον επεξεργαστή. Τα προβλήµατα που έχει να αντιµετωπίσει ο αρχιτέκτονας είναι: Το πλήθος των πεδίων που απαιτούνται Ένα ή πολλαπλά σχήµατα εντολών; Σταθερό ή µεταβλητό µήκος εντολής; Τα παραπάνω προβλήµατα λύνονται µε διάφορους τρόπους µε βάση κάποιες βασικές στρατηγικές αποφάσεις όπως: Της αρχιτεκτονικής που επιλέχθηκε(accumulator, load-store, register-memory, stack) Τη σχέση µεταξύ κωδικού και παραγόντων Το πλήθος των µεθόδων υπολογισµού της τελικής διεύθυνσης Το πλήθος των καταχωρητών Του πλήθους των παραγόντων που επιθυµεί ο αρχιτέκτονας να συµπεριλάβει σε µια εντολή Τα βασικά πεδία µιας εντολής είναι το πεδίο του κωδικού και το πεδίο ή τα πεδία της αναφοράς. των παραγόντων. Επειδή όµως, κάθε πεδίο αναφοράς πιθανώς να χρησιµοποιεί και κάποιον τρόπο υπολογισµού της τελικής διεύθυνσης θα πρέπει να προβλεφθεί και ένα πεδίο για τον προσδιοριστή διεύθυνσης(address specifier).

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 50 Με βάση τα παραπάνω υπάρχουν σήµερα τρεις τύποι σχεδιασµού: α) Μεταβλητού µήκους. Στον σχεδιασµό αυτό(σχήµα 2.10), µε κύριο εκπρόσωπο τις µηχανές VX, έχουµε ένα πεδίο κωδικού εντολής και πολλά ζευγάρια πεδίου αναφοράς του παράγοντα και προσδιοριστή διεύθυνσης. Κωδικός Εντολής Προσδιοριστής ιεύθυνσης 1 Αναφορά ιεύθυνσης 1 Προσδιοριστής ιεύθυνσης 2 Αναφορά ιεύθυνσης 2.. Προσδιοριστής ιεύθυνσης Ν Αναφορά ιεύθυνσης Ν Σχήµα 2.10 Εντολή µεταβλητού µήκους Κάθε αναφορά διεύθυνσης έχει και τον δικό του προσδιοριστή διεύθυνσης, πράγµα που σηµαίνει ότι σε κάθε εντολή µπορούν να αντιστοιχούν πολλοί τρόποι υπολογισµού τς τελικής διεύθυνσης. Το µήκος µιας εντολής VX κυµαίνεται από 1 έως 53 bytes. β) Σταθερού µήκους. Στο σχεδιασµό αυτό(σχήµα 2.11) οι αρχιτέκτονες επιλέγουν ένα σταθερό µήκος εντολής, 16 bits παλαιότερα, συνήθως 32 bits και σε κάποιες περιπτώσεις 64.. Επίσης ο προσδιοριστής διεύθυνσης είναι µέρος του κωδικού εντολής και αφορά όλες τις διεύθυνσης αναφοράς των παραγόντων. Κωδικός Εντολής Αναφορά ιεύθυνσης 1 Αναφορά ιεύθυνσης 2 Αναφορά ιεύθυνσης 3 Σχήµα 2.11 Εντολή σταθερού µήκους Πολλές υλοποιήσεις όπως, DLX, MIPS, Power P, SPR έχουν υιοθετήσει αυτό το σχήµα γ) Ύπαρξη πολλών µορφών διαφορετικού µήκους Εδώ ο αρχιτέκτονας επιλέγει ένα µικτό σχήµα(υβριδικό). Κάποιες εντολές έχουν µήκος Ν, κάποιες άλλες Μ, και κάποιες άλλες L(σχήµα 2.12). Στη πρώτη εντολή έχουµε τις απλούστερες εντολές µε ένα παράγοντα µε τον αντίστοιχο προσδιοριστή της τελικής διεύθυνσης. Στη δεύτερη έχουµε την δυνατότητα να εφαρµόσουµε δύο µεθόδους υπολογισµού της τελικής διεύθυνσης σε ένα µόνο πεδίο αναφοράς. Στη τρίτη περίπτωση κάνουµε το αντίθετο. Έχουµε δύο πεδία αναφοράς στα οποία εφαρµόζουµε την ίδια µέθοδο υπολογισµού της τελικής διεύθυνσης. Φυσικά στο σχήµα 2.12 δίνουµε απλώς ένα παράδειγµα. Υπάρχουν

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 51 αρχιτεκτονικές µε τέσσερα ή περισσότερα σχήµατα µε διαφορετική τοποθέτηση των πεδίων µέσα σε αυτές. Κωδικός Εντολής Προσδιοριστής ιεύθυνσης Αναφορά ιεύθυνσης Κωδικός Εντολής Προσδιοριστής ιεύθυνσης Αναφορά ιεύθυνσης 1 Αναφορά ιεύθυνσης 2 Κωδικός Εντολής Προσδιοριστής ιεύθυνσης 1 Προσδιοριστής ιεύθυνσης 2 Αναφορά ιεύθυνσης Σχήµα 2.12 Εντολές πολλαπλού µήκους Οι οικογένειες Intel 80x86 και IM 360/370 έχουν υιοθετήσει παρόµοια σχήµατα Στην πρώτη της Intel υπάρχουν επτά διαφορετικά σχήµατα µε το µικρότερο να έχει µήκος 8 bits και το µεγαλύτερο 40 bits. Όπως είναι προφανές όλες είναι ακέραια πολλαπλάσια του 8(byte). 2.8 Η εξέλιξη του σχεδιασµού του Instruction Set. Τα πρώτα µοντέλα υπολογιστών είχαν λίγες εντολές και ένα ή δύο τρόπους διευθυνσιοδότησης. Επίσης όλες οι εντολές τις εκτελούσε το hardware. To 1953 οι Wilkes και Stringer, πρώτοι εισήγαγαν την ιδέα του µικροπρογραµµατισµού, η οποία ήταν έτοιµη να υλοποιηθεί στο τέλος της δεκαετίας το 1950. Το 1964 η IM παρουσίασε το πρώτο µικροπρογραµµατιζόµενο µοντέλο το περίφηµο system/360, το οποίο έµελλε να είναι η απαρχή µιας αρχιτεκτονικής που έφτασε µέχρι της µέρες µας. Από τότε η τεχνική του µικροπρογραµµατισµού διαδόθηκε για να φτάσει στην υπερβολή των µηχανών VX. Ο σχεδιασµός των µηχανών VX προέβλεπε πάνω από 300 εντολές και 22 περίπου µεθόδους διευθυνσιοδότησης. Οι λόγοι που ενεθάρρυναν τον µικροπρογραµµατισµό ήταν: Η µεγάλη διαφορά ταχύτητας µεταξύ κυρίας µνήµης και ΚΜΕ, η οποία απαιτούσε λιγότερες αναφορές στη µνήµη, αρά πιο σύνθετες εντολές. Η πολυπλοκότητα των νέων γλωσσών προγραµµατισµού αποµάκρυνε ακόµα περισσότερο της ανώτερες γλώσσες προγραµµατισµού από την γλώσσα µηχανής(εννοιολογικό χάσµα) και δυσκόλευε την συγγραφή µεταγλωττιστών. Το χαµηλό κόστος υλοποίησης της µικροπρογραµµατιζόµενης ΚΜΕ σε σχέση µε αυτό της καλωδιωµένης Η δυνατότητα προσθήκης νέων εντολών ή η διόρθωση των λανθασµένων.

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 52 Ο µικροπρογραµµατισµός οδήγησε στην δηµιουργία µιας φιλοσοφίας, η οποία ονοµάστηκε IS (omplex Instruction Set omputers) Από το 1984 άρχισε η αντίστροφη µέτρηση και πολλοί αρχιτέκτονες άρχισαν να εξετάζουν ξανά τους σχεδιασµούς των αρχικών µηχανών όπως ο D6600 µε 75 εντολές και δύο σχήµατα διευθυσιοδότησης. Έτσι οδηγηθήκαµε σε µια νέα φιλοσοφία η οποία ονοµάστηκε RIS(Reduced Instruction Set omputer), χάριν ενός από τα χαρακτηριστικά της, αυτό το µικρού αριθµού εντολών Πίνακας 2.4 Συγκριτικός πίνακας µηχανών IS και RIS (πηγή Williams Stalling) Οι λόγοι που οδήγησαν στους RIS ήταν, όσο και αν φαίνεται παράξενο, οφειλόταν περισσότερο στο λογισµικό παρά στο υλικό και πιο συγκεκριµένα στην εξέλιξη της τεχνολογίας κατασκευής µεταγλωττιστών. Ένας άλλος λόγος ήταν κατάχρηση στη χρήση µικροκώδικα που οδήγησε σε πολύπλοκους ερµηνευτές µικροκώδικα και µεγάλες εσωτερικές µνήµες αποθήκευσης µικροκώδικα Όλα αυτά οδήγησαν σε απώλεια απόδοσης της ΚΜΕ. Οι σχεδιαστές των RIS µηχανών υποστήριξαν ότι οι µηχανές έγιναν πολύπλοκες και καιρός ήταν να αναθεωρηθούν ορισµένες απόψεις. Φυσικά, άρχισαν πολλές επιστηµονικές διαµάχες, και το θέµα δεν έχει ακόµα κλείσει. Ορισµός για τους RIS δεν υπάρχει, παρά µια σειρά από ιδιότητες τις οποίες της παραθέτουµε σε αντίθεση µε αυτές των υπολογιστών IS.

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 53 RIS Όλες οι εντολές απαιτούν µόνο ένα κύκλο µνήµης για να υλοποιηθούν, εκτός από τις εντολές LOD και STORE Μόνο οι εντολές LOD και STORE αναφέρονται στη µνήµη Μικρό πλήθος εντολών Ενα και µοναδικό σχήµα εντολής Μικρός αριθµός µεθόδων ιευθυνσιοδότησης Οι εντολές εκτελούνται από το υλικό Υψηλό επίπεδο διοχετευσης (Pipeline) Εντολές σταθερού µήκους και µορφής µε µόνο µια αναφορά στη µνήµη Πολλά σύνολα καταχωρητών IS Οι σύνθετες εντολές (και αυτές είναι οι περισσότερες)χρειάζονται πολλούς κύκλους Όλες οι εντολές αναφέρονται στη µνήµη Μεγάλο πλήθος εντολών Πολλά σχήµατα εντολής Μεγάλος αριθµός µεθόδων ιευθυνσιοδότησης Οι εντολές ερµηνεύονται από τoν ερµηνευτή µικροκώδικα Χωρίς διοχέτευση ή χαµηλό επίπεδο διοχέτευσης Εντολές µεταβλητής µορφής και µήκους πολλές αναφορές στη µνήµη Ένα σύνολο καταχωρητών Πίνακας 2.5. RIS εναντίον IS Το παράξενο είναι ότι ένας από τους πρώτους υπολογιστές, 0 D 6600 πληρούσε όλα σχεδόν τα κριτήρια των RIS µηχανών εκτός από αυτό του µοναδικού σχήµατος εντολής και των πολλαπλών συνόλων καταχωρητών Η πρώτη µηχανή RIS ήταν ένας µίνι υπολογιστής ο 801, ο οποίος κατασκευάστηκε από την ΙΒΜ το 1975. Ωστόσο η ΙΒΜ τον ανακοίνωσε 5 χρόνια αργότερα όταν άρχισαν να εµφανίζονται και άλλοι επεξεργαστές RIS. Το 1980 µια οµάδα από το πανεπιστήµιο erkeley µε επικεφαλής τον David Patterson και arlo Sequin σχεδίασαν τους RIS Ι και RIS ΙΙ. Ένα χρόνο µετά στο πανεπιστήµιο Stanford, ο John Hennessey σχεδίασε µια άλλη µηχανή RIS, την οποία ονόµασε MIPS

Κεφάλαιο 2 Αρχιτεκτονική Βασικού Συνόλου Εντολών 54