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

Σχετικά έγγραφα
Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

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

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

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

Αρχιτεκτονικη υπολογιστων

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

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

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

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

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

Chapter 3 Αριθμητική Υπολογιστών

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

ΠΛΕ- 027 Μικροεπεξεργαστές

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2)

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

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

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

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

Εντολές του MIPS (2)

Chapter 4 ( ή 1 στο βιβλίο σας)

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

Οι υπολογιστές στον πραγματικό κόσμο

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

Chapter 4 (1) Αξιολόγηση και κατανόηση της απόδοσης

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 1

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

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

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

Chapter 3. Αριθμητική Υπολογιστών. Όγδοη (8 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

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

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

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

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 3: Προσπελάσεις Μνήμης στον MIPS. Μανόλης Γ.Η. Κατεβαίνης

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

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

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

Εισαγωγή Συμβόλαιο Μαθήματος

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Εφαρμογές μικροελεγκτών

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

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

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

με έμφαση στο MIPS R2000

Τελική Εξέταση, Απαντήσεις/Λύσεις

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

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

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

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

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

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

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

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

Οργάνωση Υπολογιστών (Ι)

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

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

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

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

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

Οργάνωση και Σχεδίαση Υπολογιστών Η Διασύνδεση Υλικού και Λογισμικού, 4 η έκδοση. Σύντομη Εισαγωγή στη χρήση του προσομοιωτή και συμβολομεταφραστή

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

Transcript:

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία τροποποίηση: 2014-2015 χειμερινό εξάμηνο.

Σύνολο εντολών Το λεξιλόγιο των «διαταγών» που είναι κατανοητές από ένα υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με παρόμοιες θεμελιώδεις αρχές Επειδή υπάρχουν βασικές λειτουργίες που όλοι οι υπολογιστές πρέπει να παρέχουν Επειδή οι σχεδιαστές έχουν έναν κοινό στόχο: Μεγιστοποίηση απόδοσης και ελαχιστοποίηση κόστους Οι πρώτοι υπολογιστές είχαν πολύ απλά σύνολα εντολών Απλοποιημένη υλοποίηση Πολλοί σύγχρονοι (μοντέρνοι) υπολογιστές έχουν επίσης απλά σύνολα εντολών Chapter 2 Instructions: Language of the Computer 2

Δύο διαφορετικές φιλοσοφίες (στρατηγικές) σχεδίασης επεξεργαστών CISC (Complex Instruction Set Computer) Όταν μέσα σε ενιαίες εντολές εκτελούνται κάμποσες λειτουργίες χαμηλού επιπέδου (π.χ. φόρτωμα από την μνήμη, αριθμητική πράξη, αποθήκευση στην μνήμη). Τέτοια παραδείγματα είναι: IBM System/360, PDP-11, VAX, Motorola 68k, και Intel x86. RISC (Reduced Instruction Set Computer) Στηρίζεται στην ιδέα ότι το απλοποιημένο σύνολο εντολών μπορεί να προσφέρει υψηλότερη απόδοση αν συνδυαστεί με μικροεπεξεργαστή ικανό να τις εκτελεί με λιγότερους κύκλους/εντολή. Τέτοια παραδείγματα είναι: DEC Alpha, AMD 29k, ARC, ARM, Atmel AVR, Intel i860 και i960, MIPS, Motorola 88000, Power (PowerPC) και SPARC. Chapter 2 Instructions: Language of the Computer 3

MIPS Ακρωνύμιο από: Microprocessor without Interlocked Pipeline Stages (Μικροεπεξεργαστής χωρίς αλληλεμπλεκόμενα στάδια διοχέτευσης) Υπάρχουν πολλές εκδόσεις συνόλου εντολών MIPS (MIPS I, MIPS II,, MIPS V, MIPS32, MIPS64) Εμείς θα μελετήσουμε την τρέχουσα έκδοση MIPS32, που είναι μια 32-μπιτη υλοποίηση. Επίσης, είναι διαθέσιμες προαιρετικές επεκτάσεις, όπως: MIPS-3D (απλό σύνολο εντολών κινητής υποδιαστολής SIMD, εξειδικευμένο για 3D εργασίες), MDMX (πιο επεκταμένο σύνολο εντολών SIMD για ακεραίους χρησιμοποιώντας τους 64μπιτους καταχωρητές κινητής υποδιαστολής, MIPS MT (Προσθέτει δυνατότητες MultiThreading), κ.α. Chapter 2 Instructions: Language of the Computer 4

Το σύνολο των εντολών του MIPS Χρησιμοποιείται ως παράδειγμα σε όλο το βιβλίο Το ερευνητικό έργο Stanford MIPS το εκμεταλλεύτηκε εμπορικά η MIPS Technologies (www.mips.com) (αρχικά ονομαζόταν MIPS Computer Systems) Μεγάλη μερίδα της αγοράς των ενσωματωμένων πυρήνων (Μόνο το 2002 κατασκευάστηκαν ~100 εκατομ.) Εφαρμογές σε καταναλωτικά ηλεκτρονικά, εξοπλισμό δικτύωσης/αποθήκευσης, φωτογραφικές μηχανές, εκτυπωτές, κινητά τηλέφωνα, Τυπικό παράδειγμα πολλών μοντέρνων ISAs Βλέπε την πράσινη κάρτα με τα δεδομένα αναφοράς MIPS (μετά το 1980) Chapter 2 Instructions: Language of the Computer 5

Μικροεπεξεργαστές MIPS Βρίσκονται σε προϊόντα των εταιρειών: ATI Technologies, Broadcom, Cisco, NEC, Nintendo, Silicon Graphics, Sony, Texas Instruments, Toshiba, κ.α. Chapter 2 Instructions: Language of the Computer 6

Αριθμητικές πράξεις Πρόσθεση και αφαίρεση, τρεις τελεστέοι Δύο προέλευσης και ένας προορισμού add a, b, c # βάλε στο a το b + c a b+c Όλες οι αριθμητικές πράξεις έχουν αυτή την μορφή Σχεδιαστική αρχή 1: Η απλότητα ευνοεί την κανονικότητα Η κανονικότητα απλοποιεί την υλοποίηση Η απλότητα επιφέρει μεγαλύτερη απόδοση με μικρότερο κόστος Υπολογίστε το άθροισμα τεσσάρων μεταβλητών Chapter 2 Instructions: Language of the Computer 7

Αριθμητικό παράδειγμα Κώδικας σε C : a = b + c; d = a e; Κώδικας MIPS : add a, b, c sub d, a, e # a = b + c? # d = a - e Chapter 2 Instructions: Language of the Computer 8

Κι άλλο αριθμητικό παράδειγμα Κώδικας σε C : f = (g + h) - (i + j); Κώδικας MIPS : add t0, g, h # temp t0 = g + h add t1, i, j #? temp t1 = i + j sub f, t0, t1 # f = t0 - t1 Chapter 2 Instructions: Language of the Computer 9

Τελεστέοι υλικού των υπολογιστών Οι αριθμητικές εντολές χρησιμοποιούν ως τελεστέους τα περιεχόμενα καταχωρητών (register operands) Ο MIPS έχει 32 καταχωρητές με 32 μπιτ έκαστος Χρησιμοποιούνται στα συχνά προσπελάσιμα δεδομένα Είναι αριθμημένοι από το 0 έως το 31 Ομάδες δεδομένων των 32 μπιτ ονομάζονται «λέξεις» (words) Σύμβαση για τα ονόματα στον συμβολομεταφραστή $t0, $t1,, $t9 για προσωρινούς (temporary) καταχωρητές $s0, $s1,, $s7 για αποθηκευμένους (saved) καταχωρητές Σχεδιαστική αρχή 2: Το μικρότερο είναι ταχύτερο Πολύ μεγαλύτερος αριθμός καταχωρητών θα μπορούσε να αυξήσει δραματικά τον χρόνο κύκλου ρολογιού Σε αντίθεση με την κύρια μνήμη που έχει εκατομμύρια ή ακόμα και δισεκατομμύρια θέσεων Chapter 2 Instructions: Language of the Computer 10

το ίδιο με χρήση καταχωρητών Κώδικας σε C: f = (g + h) - (i + j); (Όπου: το f στο $s0, το g στο $s1, το h στο $s2, το i στο $s3, το j στο $s4, και επιπλέον χρησιμοποιούνται ως προσωρινοί καταχωρητές οι $t0 και $t1) Κώδικας MIPS: add $t0, $s1, $s2 # $t0 g + h add $t1, $s3, $s4 # $t1 i + j sub $s0, $t0, $t1 # f $t0 - $t1 (το οποίο είναι το: (g + h) - (i + j)) Chapter 2 Instructions: Language of the Computer 11

Τελεστέοι Μνήμης Η κύρια μνήμη χρησιμοποιείται για σύνθετα δεδομένα Πίνακες (arrays), δομές (structures), δυναμικά δεδομένα Για να πραγματοποιηθούν αριθμητικές πράξεις Φορτώνονται (load) οι τιμές από την μνήμη στους καταχωρητές Αποθηκεύονται (store) τα αποτελέσματα από τους καταχωρητές στη μνήμη Η μνήμη διευθυνσιοδοτείται σε επίπεδο ψηφιολέξης Κάθε διεύθυνση καθορίζει (ταυτοποιεί) μια ψηφιολέξη (byte) Οι λέξεις στη μνήμη είναι ευθυγραμμισμένες (aligned) Η διεύθυνση (μια λέξης) πρέπει να είναι πολλαπλάσιο του 4 Ο MIPS είναι τύπου Big Endian (μεγάλου άκρου) Το σημαντικότερο byte στη μικρότερη διεύθυνση Σε αντίθεση με το Little Endian (μικρού άκρου) όπου το λιγότερο σημαντικό byte ευρίσκεται στην μικρότερη διεύθυνση Τι συμβαίνει με τον προσομοιωτή SPIM; Chapter 2 Instructions: Language of the Computer 12

Τελεστέοι Μνήμης (παράδειγμα 1) Κώδικας σε C: g = h + A[8]; (Όπου: το g στο $s1, το h στο $s2, και διεύθυνση βάσης του Α στο $s3 και επιπλέον χρησιμοποιείται ως προσωρινός καταχωρητής ο $t0) Κώδικας MIPS: Ο αριθμοδείκτης 8 απαιτεί σχετική απόσταση ίση με 32 4 ψηφιολέξεις (bytes) ανά λέξη (word) lw $t0, 32($s3) add $s1, $s2, $t0 Θεωρείστε ότι ο πίνακας Α είναι πίνακας 32-μπιτων ακεραίων (δηλαδή, ο καθένας απαιτεί χώρο τεσσάρων ψηφιολέξεων ) # load word σχετική απόσταση (offset) καταχωρητής βάσης (base register) Chapter 2 Instructions: Language of the Computer 13

Τελεστέοι Μνήμης (παράδειγμα 2) Κώδικας C: A[9] = h + A[8]; (Όπου: το h στο $s2, και η διεύθυνση βάσης του Α στο $s3 και επιπλέον χρησιμοποιείται ως προσωρινός καταχωρητής ο $t0) Κώδικας MIPS: Ο αριθμοδείκτης 8 απαιτεί σχετική απόσταση 32, ενώ ο 9 απαιτεί 36. lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 36($s3) # load word # store word Chapter 2 Instructions: Language of the Computer 14

Καταχωρητές εναντίον Μνήμης Οι καταχωρητές παρέχουν ταχύτερη πρόσβαση από την μνήμη Η λειτουργία με δεδομένα που βρίσκονται στην μνήμη απαιτεί φορτώσεις (loads) και αποθηκεύσεις (stores) Πρέπει να εκτελεστούν περισσότερες εντολές Ο μεταγλωττιστής πρέπει να χρησιμοποιεί τους καταχωρητές για τις μεταβλητές όσο το δυνατόν περισσότερο Σκόρπισμα (spill) στη μνήμη μόνο των λιγότερο συχνά χρησιμοποιούμενων μεταβλητών ή αυτών που θα χρησιμοποιηθούν εντατικά αργότερα Η αποδοτική χρήση των καταχωρητών είναι σημαντική! Chapter 2 Instructions: Language of the Computer 15

Σταθεροί ή άμεσοι τελεστέοι Σταθερές που καθορίζονται σε μια εντολή, π.χ. άμεση πρόσθεση (add immediate): addi $s3, $s3, 4 # $s3 <- $s3 + 4 Δεν υπάρχει εντολή άμεσης αφαίρεσης Απλά προσθέτουμε μια αρνητική σταθερά addi $s2, $s1, -1 # $s2 <- $s1-1 Σχεδιαστική Αρχή 3: Κάνε την συνηθισμένη περίπτωση γρήγορη Μικρές σταθερές τιμές εμφανίζονται συχνά Η χρήση άμεσου τελεστή μας γλυτώνει από μια εντολή φόρτωσης από την μνήμη Chapter 2 Instructions: Language of the Computer 16

Η σταθερά Μηδέν (Zero) Ο καταχωρητής 0 του MIPS ($zero) είναι η σταθερά μηδέν (0) Δεν μπορεί να αλλάξει περιεχόμενο Πολύ χρήσιμος για τετριμμένες λειτουργίες π.χ., μεταφορά μεταξύ καταχωρητών add $t2, $s1, $zero # $t2 <- $s1 ή αρχικοποίηση μεταβλητών addi $t3, $zero, 10 # $t3 <- 10 and $t4, $t4, $zero # $t4 <- 0 Chapter 2 Instructions: Language of the Computer 17