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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

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

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

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

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

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

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

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

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

Τρόποι Διευθυνσιοδότησης

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

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

Αριθμητική Υπολογιστών (Κεφάλαιο 3)

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

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

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

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

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

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

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

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

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

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

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

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1.

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

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

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

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

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

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

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

Αρχιτεκτονική Υπολογιστών. Data. Κείμενο. Βίντεο. Αριθμοί Εικόνες. Ήχοι

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

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

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

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

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

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

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

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

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

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Απλός επεξεργαστής (Επανάληψη)

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

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

Ελίνα Μακρή

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

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

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

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

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

Transcript:

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

Σύνολο εντολών Το λεξιλόγιο των «διαταγών» που είναι κατανοητές από ένα υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με παρόμοιες θεμελιώδεις αρχές Επειδή υπάρχουν βασικές λειτουργίες που όλοι οι υπολογιστές πρέπει να παρέχουν Επειδή οι σχεδιαστές έχουν έναν κοινό στόχο: Μεγιστοποίηση απόδοσης και ελαχιστοποίηση κόστους Οι πρώτοι υπολογιστές είχαν πολύ απλά σύνολα εντολών Απλοποιημένη υλοποίηση Πολλοί σύγχρονοι (μοντέρνοι) υπολογιστές έχουν επίσης απλά σύνολα εντολών 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), ενώ από το 2013 εξαγοράστηκε από την Imagination Technologies (www.imgtec.com/mips). Μεγάλη μερίδα της αγοράς των ενσωματωμένων πυρήνων (Μόνο το 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 ή με τον MARS; Chapter 2 Instructions: Language of the Computer 12

Τελεστέοι Μνήμης (παράδειγμα 1) Κώδικας σε C: g = h + A[8]; (Όπου: το g στο $s1, το h στο $s2, και διεύθυνση βάσης του Α στο $s3 και επιπλέον χρησιμοποιείται ως προσωρινός καταχωριστής ο $t0) Κώδικας MIPS: Θεωρείστε ότι ο πίνακας Α είναι πίνακας 32-μπιτων ακεραίων (δηλαδή, ο καθένας απαιτεί χώρο τεσσάρων ψηφιολέξεων ) Ο αριθμοδείκτης 8 απαιτεί σχετική απόσταση ίση με 32 4 ψηφιολέξεις (bytes) ανά λέξη (word) lw $t0, 32($s3) # load word add $s1, $s2, $t0 σχετική απόσταση (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) # load word add $t0, $s2, $t0 sw $t0, 36($s3) # 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

Απρόσημοι δυαδικοί ακέραιοι Με δεδομένο έναν αριθμό των n bit x x 2 x 2 x 2 n 1 n 2 1 0 n 1 n 2 1 0 2 x Εύρος: από 0 έως +2 n 1 Παράδειγμα 0000 0000 0000 0000 0000 0000 0001 1001 2 = 0 + + 1 2 4 + 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 0 + + 16 + 8 + 0 + 0 + 1 = 25 10 Με χρήση 32 bit από 0 έως +4,294,967,295 Chapter 2 Instructions: Language of the Computer 18

Προσημασμένοι ακέραιοι σε συμπλήρωμα ως προς 2 Με δεδομένο έναν αριθμό των n bit x x 2 x 2 x 2 n 1 n 2 1 0 n 1 n 2 1 0 2 Εύρος: από 2 n 1 έως +2 n 1 1 Παράδειγμα 1111 1111 1111 1111 1111 1111 1111 1001 2 = 1 2 31 + 1 2 30 + + 1 2 3 + 0 2 2 +0 2 1 +1 2 0 = 2,147,483,648 + 2,147,483,641 = 7 10 Με χρήση 32 bit από 2,147,483,648 έως +2,147,483,647 x Chapter 2 Instructions: Language of the Computer 19

Προσημασμένοι ακέραιοι σε συμπλήρωμα ως προς 2 Το bit 31 είναι το bit προσήμου 1 για αρνητικούς αριθμούς 0 για μη αρνητικούς αριθμούς (θετικούς και μηδέν) Το ( 2 n 1 ) δεν μπορεί να παρασταθεί Οι μη αρνητικοί αριθμοί έχουν την ίδια απρόσημη και προσημασμένη σε συμπλήρωμα ως προς 2 αναπαράσταση Μερικοί συγκεκριμένοι αριθμοί 0: 0000 0000 0000 1: 1111 1111 1111 Ο πιο αρνητικός: 1000 0000 0000 Ο πιο θετικός: 0111 1111 1111 Chapter 2 Instructions: Language of the Computer 20

Προσημασμένη άρνηση Συμπλήρωμα (ως προς 1) και πρόσθεση του 1 «Συμπλήρωμα» σημαίνει 1 0, 0 1 x x 1111...111 2 1 x 1 x Παράδειγμα: βρείτε τον αντίθετο (άρνηση) του +2 +2 = 0000 0000 0010 2 2 = 1111 1111 1101 2 + 1 = 1111 1111 1110 2 Chapter 2 Instructions: Language of the Computer 21

Επέκταση προσήμου Αναπαράσταση ενός αριθμού με περισσότερα bit Διατήρηση της αριθμητικής τιμής Στο σύνολο εντολών του MIPS addi: επέκταση προσήμου στη τιμή του άμεσου (immediate) lb, lh: επέκταση προσήμου στο byte/ημιλέξη που φορτώνεται beq, bne: επέκταση προσήμου στη μετατόπιση (displacement) Επανάληψη του bit προσήμου προς τα αριστερά παραβολή: απρόσημες τιμές: επέκταση με μηδενικά Παραδείγματα: 8-bit σε 16-bit +2: 0000 0010 => 0000 0000 0000 0010 2: 1111 1110 => 1111 1111 1111 1110 Chapter 2 Instructions: Language of the Computer 22

Αναπαράσταση εντολών Οι εντολές κωδικοποιούνται στο δυαδικό Ονομάζεται κώδικας μηχανής (machine code) Οι εντολές του MIPS (MIPS instructions) Κωδικοποιημένες λέξεις εντολών στα 32 bit Μικρός αριθμός μορφών εντολών (instruction formats) που κωδικοποιούν τον κώδικα λειτουργίας (opcode), τους αριθμούς καταχωριστών, Κανονικότητα! Αριθμοί καταχωριστών (Register numbers) $t0 $t7 είναι οι καταχωριστές 8 15 $s0 $s7 είναι οι καταχωριστές 16 23 $t8 $t9 είναι οι καταχωριστές 24 25 Chapter 2 Instructions: Language of the Computer 23

Εντολές MIPS μορφής R (register) op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Πεδία εντολής (Instruction fields) op: κωδικός λειτουργίας (operation code) (opcode) rs: αριθμός πρώτου καταχωριστή προέλευσης (source) rt: αριθμός δεύτερου καταχωριστή προέλευσης (source) rd: αριθμός καταχωριστή προορισμού (destination) shamt: ποσότητα ολίσθησης (shift amount) (προς το παρόν έχει τιμή 00000) funct: κωδικός συνάρτησης (function code) (επεκτείνει το opcode) Chapter 2 Instructions: Language of the Computer 24

Παράδειγμα μορφής R (1o) op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits add $t0, $s1, $s2 Συμβολική γλώσσα (assembly) special $s1 $s2 $t0 0 add 0 17 18 8 0 32 000000 10001 10010 01000 00000 100000 00000010001100100100000000100000 2 = 02324020 16 Γλώσσα μηχανής (machine language) Chapter 2 Instructions: Language of the Computer 25

Παράδειγμα μορφής R (2o) op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits sub $t9, $t0, $t1 special $t0 $t1 $t9 0 sub 0 8 9 25 0 34 000000 01000 01001 11001 00000 100010 00000001000010011100100000100010 2 = 0109C822 16 Chapter 2 Instructions: Language of the Computer 26

Δεκαεξαδικό (Hexadecimal) Βάση 16 Συμπαγής αναπαράσταση σειρών από bit 4 δυαδικά ψηφία (bits) ανά δεκαεξαδικό ψηφίο 0 0000 4 0100 8 1000 c 1100 1 0001 5 0101 9 1001 d 1101 2 0010 6 0110 a 1010 e 1110 3 0011 7 0111 b 1011 f 1111 Παράδειγμα: eca8 6420 (hex) 1110 1100 1010 1000 0110 0100 0010 0000 (two) Chapter 2 Instructions: Language of the Computer 27