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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

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

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

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

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

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

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

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

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

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

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

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

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

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

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

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

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

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

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

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

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

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

7. Ροή ελέγχου 8. Μηχανισμοί εισόδου/εξόδου

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

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

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

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

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

Παραδείγματα Assembly (Μέρος

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος)

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

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

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

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

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

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

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

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

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

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

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

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

Συναρτήσεις-Διαδικασίες

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

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

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

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

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

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

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

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

Transcript:

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1

Ένας υπολογιστής εκτελεί προγράµµατα: Προσκοµίζει την επόµενη εντολή από τη µνήµη Την αποκωδικοποιεί γα να δει τη λειτουργία της Προσκοµίζει τα δεδοµένα-τελεστές Εκτελεί την απαιτούµενη πράξη (πρόσθεση, πολλαπλασιασµό κλπ) Αποθηκεύει τα αποτελέσµατα (εάν απαιτείται) Καθορίζει την επόµενη εντολή (µέσω του απαριθµητή προγράµµατος) 2

Αρχιτεκτονική συνόλου εντολών (Instruction Set Architecture ISA) Η διασύνδεση µεταξύ λογισµικού και υλικού Ένα σύνολο εντολών που εκτελούνται απευθείας στο υλικό Ένα σύνολο εντολών που µπορεί να εκτελέσει ένας υπολογιστής Όλα τα προγράµµατα είναι συνδυασµοί αυτών των εντολών ιαφορετικοί υπολογιστές έχουν διαφορετικά ISA Η εικόνα µε την οποία εµφανίζεται ένα υπολογιστικό σύστηµα στον προγραµµατιστή/µεταγλωττιστή. Η εικόνα αυτή περιλαµβάνει: Το µοντέλο µνήµης Τους καταχωρητές Τις εντολές Τους τύπους δεδοµένων 3

Κατηγορίες Αρχιτεκτονικών Συνόλου Εντολών (1) Απλοποιηµένες Αρχιτεκτονικές Συνόλου Εντολών (RISC (Reduced Instruction Set Computer) ISAs ) π.χ. MIPS, ARM, DEC Alpha, SUN Sparc, IBM 801 Απλές και σταθερού µήκους εντολές Λίγοι κύκλοι ρολογιού ανά εντολή Αρκετές εντολές ανά µεταφρασµένο πρόγραµµα Μπορεί να αντιµετωπιστεί από τις βελτιστοποιηµένες εκδόσεις των µεταγλωττιστών Μεγάλη απόδοση ταχύτερη εκτέλεση εντολών 4

Κατηγορίες Αρχιτεκτονικών Συνόλου Εντολών (2) Πολύπλοκες Αρχιτεκτονικές Συνόλου Εντολών (CISC (Complex Instruction Set Computer) ISAs) π.χ. Intel x86, VAX, IBM 360/370 Πολύπλοκες και µεταβλητού µήκους εντολές Λίγες εντολές ανά µεταφρασµένο πρόγραµµα Πολλοί κύκλοι ρολογιού ανά εντολή Μπορεί να αντιµετωπιστεί µε την εξέλιξη της τεχνολογίας Πλέον το υλικό µεταφράζει τις CISC εντολές σε απλούστερες τύπου RISC µικρολειτουργίες 5

Χαρακτηριστικά Αρχιτεκτονικής Συνόλου Εντολών Εντολές Τύποι εδοµένων Μοντέλα Μνήµης Καταχωρητές ιευθυνσιοδότηση Λειτουργίες 6

Εντολές: Μορφή Εντολών Οι εντολές αποτελούν µέρος της συµβολικής (assembly) γλώσσας και της γλώσσας µηχανής Κώδικας λειτουργίας (Opcode) Τελεστέος 1 (Operand 1) Τελεστέος 2 (Operand 2) Μια εντολή αποτελείται από: Τελεστέος 3 (Operand 3) το πεδίο του κώδικα λειτουργίας (opcode) καθορίζει την πράξη που θα εκτελεστεί (π.χ. πρόσθεση) ένα ή περισσότερα πεδία τελεστέων (operands) η εντολή ενεργεί στους τελεστέους. Τελεστέος Ν (Operand N) 7

Εντολές: Μήκος Εντολών Σταθερό (π.χ. Alpha, ARM, MIPS, Power PC, SPARC) Συνήθως είναι 32 bits ιευκολύνει τη διοχέτευση(pipelining) superscalar Σπατάλη χώρου µνήµης (π.χ. 4 bytes για µια NOP εντολή) Μεγαλύτερα προγράµµατα Μεταβλητό (π.χ. Intel x86, VAX) Πιο συµπαγή προγράµµατα Πολύπλοκη ανάκτηση εντολής Από πού αρχίζει η επόµενη εντολή; ύσκολο (αλλά γίνεται) σε superscalarize/pipeline Υβριδικό: Συµβιβασµός σταθερού-µεταβλητού(32 bit+?) (π.χ. ARM Thumb) 8

Εντολές: Κωδικοποίηση (Encoding) Εντολών(1) Οι εντολές κωδικοποιούνται στο δυαδικό σύστηµα Κωδικοποίηση κώδικα λειτουργίας (opcode) 2 n λειτουργίες απαιτούν τουλάχιστον n bits Κωδικοποίηση τελεστέων Εξαρτάται από τους τρόπους διευθυνσιοδότησης που χρησιµοποιεί η συγκεκριµένη ISA Σε εντολές µε σταθερό µήκος, περισσότερη κωδικοποίηση σε κώδικες λειτουργίας περιορίζει την κωδικοποίηση των τελεστέων 9

Εντολές: Κωδικοποίηση (Encoding) Εντολών(2) Παράδειγµα: MIPS: Σταθερό µήκος: 32 bits, 3 µορφές, απλή κωδικοποίηση Μορφή-R: Μορφή -Ι: Μορφή -J: 10

Εντολές: Κωδικοποίηση (Encoding) Εντολών(3) Παράδειγµα: Intel x86: µεταβλητό µήκος κωδικοποίησης (1 µέχρι 17 bytes) 11

Τύποι εδοµένων Ορισµός: Αναπαράσταση των πληροφοριών σε συγκεκριµένες µορφές, τις οποίες χρησιµοποιούν οι εντολές Αριθµητικοί τύποι: Ακέραιοι (8, 16, 32, 64 bits), προσηµασµένοι ή απρόσηµοι Κινητής υποδιαστολής (32 ή 64 bits) απλής ή διπλής ακρίβειας BCD (Binary Coded Decimal) Μη αριθµητικοί τύποι: Χαρακτήρες (ascii, Unicode) Λογικές τιµές (Boolean) είκτες (διευθύνσεις µνήµης) ιαφορετικοί υπολογιστές υποστηρίζουν διαφορετικούς τύπους δεδοµένων στο επίπεδο του υλικού 12

Μοντέλο Μνήµης Το µοντέλο µνήµης σχετίζεται µε τον τρόπο που χρησιµοποιείται η µνήµη για να αποθηκεύσει δεδοµένα Συνηθισµένο µέγεθος µιας θέσης µνήµης: 1 byte Κάθε byte είναι µια ξεχωριστή διεύθυνση Τα bytes συνήθως οµαδοποιούνται σε λέξεις των 4 ή των 8 bytes Ευθυγράµµιση (alignment): Λέξεις των 4 bytes ξεκινάνε πάντα σε διεύθυνση πολλαπλάσια του 4 Λέξεις των 8 bytes ξεκινάνε πάντα σε διεύθυνση πολλαπλάσια του 8 Προσπέλαση σε µη ευθυγραµµισµένα δεδοµένα σηµαίνει διπλή προσπέλαση µνήµης (λέξεις των 4 byte): 0 1 2 3 4 5 6 7 8 9 10 11 13

Big Endian Little Endian Big Endian: Το περισσότερο σηµαντικό byte της λέξης αποθηκεύεται στη µικρότερη διεύθυνση (π.χ. MIPS) Little Endian: Το λιγότερο σηµαντικό byte της λέξης αποθηκεύεται στη µικρότερη διεύθυνση (π.χ. Intel x86, MIPS) Π.χ..word 0x12345678, 0x9abcdef2 Little-Endian ιευθύνσεις byte. Μνήµη.. Big-Endian ιευθύνσει ς byte. 1000 0x78 1000 1001 0x56 1001 1002 0x34 1002 1003 0x12 1003 1004 0xf2 1004 1005 0xde 1005 1006 0xbc 1006 1007 0x9a 1007. Μνήµη.... 0x12 0x34 0x56 0x78 0x9a 0xbc 0xde 0xf2 14

Καταχωρητές εν είναι όλοι οι καταχωρητές του επιπέδου της µικροαρχιτεκτονικής ορατοί στο επίπεδο ISA Καταχωρητές ειδικής χρήσης Απαριθµητής Προγράµµατος (Program Counter) Καταχωρητής Κατάστασης (Status Register) είκτης Στοίβας (Stack Pointer) Καταχωρητές Εισόδου/Εξόδου Καταχωρητές γενικής χρήσης Οι καταχωρητές αυτοί διαρθρώνονται (σε πλήθος και σε µέγεθος) ανάλογα µε τον επεξεργαστή που τους χρησιµοποιεί 15

Τρόποι ιευθυνσιοδότησης (Addressing Modes) Είναι οι τρόποι προσδιορισµού των διευθύνσεων των τελεστέων µιας εντολής. Οι τελεστέοι µπορεί να είναι σταθερές, καταχωρητές ή θέσεις µνήµης. π.χ.: Απ ευθείας διευθυνσιοδότηση (immediate addressing) Τα δεδοµένα αποτελούν µέρος της ίδιας της εντολής. Π.χ. opcode Καταχωρητής σταθερά Load R1 17 Φόρτωσε στον R1 τη σταθερά 17 16

ιευθυνσιοδότηση µέσω καταχωρητή (Register addressing) Τα δεδοµένα βρίσκονται σε κάποιον καταχωρητή Το όνοµα του καταχωρητή αποτελεί µέρος της ίδιας της εντολής. Π.χ.: opcode Καταχωρητής_3 Καταχωρητής_2 Καταχωρητής_1 Add R3 R2 R1 Πρόσθεσε τα περιεχόµενα των R2 και R1 και το αποτέλεσµα αποθήκευσέ το στον R3 17

ιευθυνσιοδότηση µνήµης (Memory addressing)(1) Τα δεδοµένα βρίσκονται στη µνήµη Η διεύθυνση της µνήµης αποτελεί µέρος της ίδιας της εντολής (άµεση διευθυνσιοδότηση µνήµης direct memory addressing). Π.χ. opcode Καταχωρητής Διεύθυνση μνήμης Load R1 4502 Φόρτωσε στον καταχωρητή R1 το δεδοµένο που βρίσκεται στη διεύθυνση µνήµης 4502 18

ιευθυνσιοδότηση µνήµης (Memory addressing)(2) Τα δεδοµένα βρίσκονται στη µνήµη Η διεύθυνση της µνήµης περιέχεται σε έναν καταχωρητή (έµµεση διευθυνσιοδότησης µνήµης µε χρήση καταχωρητή register indirect memory addressing) Το όνοµα του καταχωρητή αποτελεί µέρος της ίδιας της εντολής. Π.χ. opcode Καταχωρητής_3 Καταχωρητής_2 Καταχωρητής_1 Add R3 R2 (R1) Πρόσθεσε τα περιεχόµενα του καταχωρητή R2 µε το δεδοµένο της µνήµης η διεύθυνση του οποίου προσδιορίζεται από το περιεχόµενο του καταχωρητή R1. Το αποτέλεσµα αποθήκευσέ το στον R3 19

ιευθυνσιοδότηση µνήµης (Memory addressing)(3) Τα δεδοµένα βρίσκονται στη µνήµη Η διεύθυνση της µνήµης προκύπτει από το περιεχόµενο κάποιου καταχωρητή µε την προσθήκη µιας µετατόπισης (offset) Το όνοµα του καταχωρητή αποτελεί µέρος της ίδιας της εντολής Η µετατόπιση βρίσκεται στην εντολή (ή σε έναν καταχωρητή). Π.χ. opcode Καταχωρητής_3 Καταχωρητής_2 Καταχωρητής_1 Add R3 R2 (R1+14) Πρόσθεσε τα περιεχόµενα του καταχωρητή R2 µε το δεδοµένο της µνήµης η διεύθυνση του οποίου προσδιορίζεται από το περιεχόµενο του καταχωρητή R1 σύν 14. Το αποτέλεσµα αποθήκευσέ το στον R3 20

Λειτουργίες στην Αρχιτεκτονική Συνόλου Εντολών Αριθµητικές και Λογικές πράξεις ADD, SUB, DIV, SHIFT, AND, OR, XOR, NOR, κλπ Μεταφορά δεδοµένων Από-προς καταχωρητές και µνήµη (Load, Store.) Έλεγχος ροής προγράµµατος ιακλάδωση µε ή χωρίς συνθήκη (branch, jump). Κλήση ρουτινών (call) -Επιστροφή (return) Λειτουργίες συστήµατος Κλήση συστήµατος. ιαχείριση µνήµης (memory management) Άλλες λειτουργίες Γραφικά, Strings, Εισόδου/Εξόδου 21

Παράδειγµα χρήσης εντολών: Intelx86 Load : 22% Conditional branch : 20% Compare : 16% Store : 12% Add : 8% And : 6% Sub : 5% Move register-register : 4% Call : 1% Σύνολο = 96% των εντολών που εκτελούνται Συµπεράσµατα: Οι εντολές που εκτελούνται πιο συχνά είναι οι πλέον απλές λειτουργίες ενός ISA. Τις λειτουργίες αυτές ας τις κάνουµε γρήγορες, καθώς αποτελούν τη συνήθη περίπτωση Πηγή: D. Patterson & J. Hennessy: Computer Architecture, 5 th Edition 22

Αρχιτεκτονική Συνόλου Εντολών: MIPS Ανακοινώθηκε το 1985: MIPS I,II,III,IV,V, MIPS32, MIPS64 (στη συνέχεια όπου MIPS θα αναφερόµαστε στον MIPS32) Παρέχει αποτελεσµατική διοχέτευση µε σταθερό µήκος κωδικοποιηµένης εντολής Στους compilers παρέχει τη δυνατότητα παραγωγής γρήγορου κώδικα Αρχιτεκτονική που γίνεται εύκολα κατανοητή Μεγάλο µερίδιο της αγοράς των πυρήνων ενσωµατωµένων επεξεργαστών Εφαρµογές σε ηλεκτρονικά ευρείας κατανάλωσης, εξοπλισµό δικτύων και αποθήκευσης, φωτογραφικές µηχανές, εκτυπωτές, σε κονσόλες παιχνιδιών, σε συστήµατα ελέγχου αυτοκινήτων 23

MIPS: Καταχωρητές Όνομα Αρίθμηση Χρήση $0 0 Ως η σταθερά τιμή 0 $at 1 Από τον assembler $v0-$v1 2-3 Για επιστρεφόμενες τιμές από διαδικασίες $a0-$a3 4-7 Ορίσματα διαδικασιών $t0-$t7 8-15 Για προσωρινές τιμές $s0-$s7 16-23 Για αποθηκευμένες μεταβλητές $t8-$t9 24-25 Για προσωρινές τιμές $k0-$k1 26-27 Για προσωρινές τιμές από το λειτουργικό σύστημα $gp 28 Καθολικός δείκτης $sp 29 Δείκτης στοίβας $fp 30 Δείκτης πλαισίου $ra 31 Για τη διεύθυνση επιστροφής 24

MIPS: Τύποι δεδοµένων 32- bit ακέραιοι (απρόσηµοι ή συµπληρώµατος ως προς 2) 32- bit πραγµατικοί αριθµοί (κινητής υποδιαστολής απλής ακρίβειας) 32- bit λέξεις, bytes και µισές λέξεις µπορούν να φορτωθούν στους καταχωρητές Μετά τη φόρτωση byte και µισών λέξεων, τα υπόλοιπα bit στον καταχωρητή παίρνουν ή την τιµή µηδέν ή το πρόσηµο της ποσότητας που αποθηκεύτηκε 25

MIPS: Οργάνωση µνήµης Η µνήµη διευθυνσιοδοτείται ανά byte Οι λέξεις είναι ευθυγραµµισµένες στη µνήµη (1 λέξη=32-bit): Λέξεις των 32-bit πρέπει να αρχίζουν από διεύθυνση που είναι πολλαπλάσιο του 4 Μισές λέξεις των 16-bit πρέπει να αρχίζουν από διεύθυνση που είναι πολλαπλάσιο του 2 26

MIPS: Εντολές Μορφής - Ι (1) 6 bit 5 bit 5 bit 16 bit opcode rs rt immediate Κωδικοποιεί: Εντολές φόρτωσης (Load) και αποθήκευσης (Store) λέξεων, µισών λέξεων και bytes Άµεσες αριθµητικές εντολές ιακλαδώσεις υπό συνθήκη opcode: κωδικός λειτουργίας rt: αριθµός καταχωρητή προορισµού ή προέλευσης rs: αριθµός καταχωρητή που περιέχει τη διεύθυνση βάσης immediate: (α) offset που προστίθεται στη διεύθυνση βάσης (για εντολές Load/Store), (β) µια σταθερά, (γ) offset, το οποίο αφού πολλαπλασιαστεί µε το 4, προστίθεται στον PC (για εντολές διακλάδωσης υπό συνθήκη) 27

MIPS: Εντολές Μορφής - Ι (2) Παράδειγµα εντολής διακλάδωσης υπό συνθήκη bne $t0, $s5, Exit Λειτουργία: Σύγκρινε τα περιεχόµενα των $t0 και $s5 και εάν δεν είναι ίσα διακλάδωσε στο Exit, διαφορετικά συνέχισε µε την επόµενη εντολή 6 5 5 16 opcode rs rt Immediate 5 8 21 100 Γλώσσα μηχανής bne $t0, $s5, Exit: PC = PC+(4*100) Exit Συμβολική γλώσσα ιευθυνσιοδότηση: Σχετική ως προς PC 28

MIPS: Εντολές Μορφής - Ι (3) Παράδειγµα άµεσης αριθµητικής εντολής addi $s1, $s2, 2 Λειτουργία: Πρόσθεσε τα περιεχόµενα του $s2 µε το 2 και το αποτέλεσµα αποθήκευσέ το στον $s1 6 5 5 16 opcode rs rt Immediate 8 18 17 2 Γλώσσα μηχανής addi $s1, $s2, 2 Συμβολική γλώσσα ιευθυνσιοδότηση: Άµεση 29

MIPS: Εντολές Μορφής - Ι (4) Παράδειγµα εντολής φόρτωσης lw $t0, 24($t1) Λειτουργία: Φόρτωσε στον $t0 το περιεχόµενο της θέσης µνήµης µε διεύθυνση το περιεχόµενο του $t1 συν το 24 6 5 5 16 opcode rs rt Immediate 35 9 8 24 Γλώσσα μηχανής lw $t0, 24($t1) Συμβολική γλώσσα ιευθυνσιοδότηση: Βάσης 30

MIPS: Εντολές Μορφής - Ι (5) Παράδειγµα εντολής αποθήκευσης sw $t0, 1200($t1) Λειτουργία: Αποθήκευσε τον $t0 στη θέση µνήµης µε διεύθυνση το περιεχόµενο του $t1 συν το 1200 6 5 5 16 opcode rs rt Immediate 43 9 8 1200 Γλώσσα μηχανής sw $t0, 1200($t1) Συμβολική γλώσσα ιευθυνσιοδότηση: Βάσης 31

MIPS: Εντολές Μορφής - R (1) 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit opcode rs rt rd shamt funct Κωδικοποιεί: Πράξεις της αριθµητικής και λογικής µονάδας µεταξύ καταχωρητών opcode: κωδικός λειτουργίας rs: αριθµός πρώτου καταχωρητή προέλευσης rt: αριθµός δεύτερου καταχωρητή προέλευσης rd: αριθµός καταχωρητή προορισµού shamt: ποσότητα ολίσθησης funct: κωδικός συνάρτησης (επεκτείνει τον κωδικό λειτουργίας) 32

MIPS: Εντολές Μορφής - R (2) Παράδειγµα εντολής πρόσθεσης add $s1, $s2, $s3 Λειτουργία: πρόσθεσε τους $s2 και $s3 και το αποτέλεσµα αποθήκευσέ το στον $s1 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit opcode rs rt rd shamt Funct 0 18 19 17 0 32 Γλώσσα μηχανής add $s1, $s2, $s3 Συμβολική γλώσσα ιευθυνσιοδότηση: µέσω καταχωρητή 33

MIPS: Εντολές Μορφής - R (3) Παράδειγµα εντολής AND and $s1, $s2, $s3 Λειτουργία: Κάνε τη λογική πράξη AND, bit προς bit, µεταξύ των καταχωρητών $s2 και $s3 και το αποτέλεσµα αποθήκευσέ το στον $s1 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit opcode rs rt rd shamt Funct 0 18 19 17 0 36 Γλώσσα μηχανής and $s1, $s2, $s3 Συμβολική γλώσσα ιευθυνσιοδότηση: µέσω καταχωρητή 34

MIPS: Εντολές Μορφής - R (4) Παράδειγµα εντολής ολίσθησης (Shift) sll $t2, $s0, 4 Λειτουργία: Ολίσθησε αριστερά τα περιεχόµενα του $s0 κατά 4 δυαδικές θέσεις και το αποτέλεσµα αποθήκευσέ το στον $t2. Στις θέσεις που ολισθαίνουν εισάγονται µηδενικά. 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit opcode rs rt rd shamt Funct 0 0 16 10 4 0 Γλώσσα μηχανής sll $t2, $s0, 4 0: γιατί δε χρησιμοποιείται Συμβολική γλώσσα ιευθυνσιοδότηση: µέσω καταχωρητή 35

MIPS: Εντολές Μορφής - J(1) 6 bit 26 bit opcode Διεύθυνση Κωδικοποιεί: Εντολές διακλάδωσης χωρίς συνθήκη εντολές διακλάδωσης σε διαδικασίες εντολές επιστροφής από διαδικασίες opcode: κωδικός λειτουργίας ιεύθυνση διακλάδωσης (προορισµού) = PC 31.28 : ( ιεύθυνση x 4) 36

MIPS: Εντολές Μορφής - J(2) Παράδειγµα εντολής διακλάδωσης χωρίς συνθήκη J Label 6 bit 26 bit opcode Διεύθυνση 2 4000 Γλώσσα μηχανής J Label Συμβολική γλώσσα Label = 4000 x 4 = 16000 37