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



Σχετικά έγγραφα
Οργάνωση Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer)

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

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

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

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

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

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

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

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

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

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

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

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

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

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

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

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση»

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

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

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

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

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

O επεξεπγαζηήρ: Η δίοδορ δεδομένων (datapath) θαη ε μονάδα ελέγσος (control)

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

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

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

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

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

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

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16

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

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

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

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

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

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

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

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

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

Μικροαρχιτεκτονική του LC3

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

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

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

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

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

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

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

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

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

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

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

Transcript:

Οργάνωση Υπολογιστών 5 συστατικά στοιχεία -Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών, αργές π.χ. πληκτρολόγιο. Για το Ι/Ο έχει γίνει η λιγότερη έρευνα..(i/o busses, I/O switched fabrics ) Ιεραρχία Μνήµης: καταχωρητές, κρυφή µνήµη (L1), κρυφή µνήµη (L2), κύρια Μνήµη- ΠΟΛΥ ΣΗΜΑΝΤΙΚΟ ΣΤΟΙΧΕΙΟ! 1

Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αρχιτεκτονικές Συνόλου Εντολών Instruction Set Architectures Αριθµός εντολών Μορφή Εντολών: µεταβλητό ή σταθερό µέγεθος bytes για κάθε εντολή; (8086 1-17 bytes, MIPS 4 bytes) Πώς γίνεται η αποκωδικοποίηση (ID); Που βρίσκονται τα ορίσµατα (operands) και το αποτέλεσµα: Μνήµη-καταχωρητές, πόσα ορίσµατα, τί µεγέθους; Ποια είναι στη µνήµη και ποια όχι; Πόσοι κύκλοι για κάθε εντολή; 2

Κατηγορίες Αρχιτεκτονικών Συνόλου Εντολών (ISA Classes) 1. Αρχιτεκτονικές Συσσωρευτή (accumulator architectures) (µας θυµίζει κάτι?) 2. Αρχιτεκτονικές επεκταµένου συσσωρευτή ή καταχωρητών ειδικού σκοπού (extended accumulator ή special purpose register) 3. Αρχιτεκτονικές Καταχωρητών Γενικού Σκοπού 3α. register-memory 3b. register-register (RISC) 3

Αρχιτεκτονικές Συσσωρευτή (1) 1η γενιά υπολογιστών: h/w ακριβό, µεγάλο µέγεθος καταχωρητή. Ένας καταχωρητής για όλες τις αριθµητικές εντολές (συσσώρευε όλες τις λειτουργίες Συσσωρευτής (Accum) Σύνηθες: 1ο όρισµα είναι ο Αccum, 2o η µνήµη, αποτέλεσµα στον Accum π.χ. add 200 Παράδειγµα: A = B + C Accum = Memory(AddressB); Accum = Accum + Memory(AddressC); Memory(AddressC) = Accum; Load AddressB Add AddressC Store AddressA Όλες οι µεταβλητές αποθηκεύονται στη µνήµη. εν υπάρχουν βοηθητικοί καταχωρητές 4

Αρχιτεκτονικές Συσσωρευτή (2) Κατά: Χρειάζονται πολλές εντολές για ένα πρόγραµµα Κάθε φορά πήγαινε-φέρε από τη µνήµη (? Κακό είναι αυτό) Bottleneck o Accum! Υπέρ: Έυκολοι compilers, κατανοητός προγραµµατισµός, εύκολη σχεδίαση h/w Λύση; Πρόσθεση καταχωρητών για συγκεκριµένες λειτουργίες (ISAs καταχωρητών ειδικού σκοπού) 5

Αρχιτεκτονικές Επεκταµένου Συσσωρευτή Καταχωρητές ειδικού σκοπού π.χ. δεικτοδότηση, αριθµητικές πράξεις Υπάρχουν εντολές που τα ορίσµατα είναι όλα σε καταχωρητές Κατά βάση (π.χ. σε αριθµητικές εντολές) το ένα όρισµα στη µνήµη. 6

Αρχιτεκτονικές Καταχωρητών γενικού σκοπού Register-memory Αφήνουν το ένα όρισµα να είναι στη µνήµη (πχ. 80386) Load R1, A Add R1, B Store C, R1 A=B+C extended-accumulator Register-register (load store) (1980+) Load R1, A Load R2, B Add R3, R1, R2 Store C, R3 register-register Memory-memory accumulator register-memory 7

Αρχιτεκτονική Στοίβας Καθόλου registers! Stack model ~ 1960!!! Στοίβα που µεταφέρονται τα ορίσµατα που αρχικά βρίσκονται στη µνήµη. Καθώς βγαίνουν γίνονται οι πράξεις και το αποτέλεσµα ξαναµπαίνει στη στοίβα. Θυµάστε τα HP calculators µε reverse polish notation A=B+C push Address C push AddressB add pop AddressA 8

Εντολές µεταβλητού µήκους: 1-17 bytes 80x86 1-54 bytes VAX, IBM Γιατί?? Ιnstruction Memory ακριβή, οικονοµία χώρου!!!! Εµείς στο µάθηµα: register-register ISA! (load- store) 1. Οι καταχωρητές είναι γρηγορότεροι από τη µνήµη 2. Μειώνεται η κίνηση µε µνήµη 3. υνατότητα να υποστηριχθεί σταθερό µήκος εντολών 4. (τα ορίσµατα είναι καταχωρητές, άρα ό αριθµός τους (πχ. 1-32 καταχωρητές) όχι δνσεις µνήµης Compilers πιο δύσκολοι!!! 9

Βασικές Αρχές Σχεδίασης (patterson-hennessy COD2e) 1. Η οµοιοµορφία των λειτουργιών συµβάλλει στην απλότητα του υλικού (Simplicity favors Regularity) 2. Όσο µικρότερο τόσο ταχύτερο! (smaller is faster) 3. H καλή σχεδίαση απαιτεί σηµαντικούς συµβιβασµούς (Good design demands good compromises) Γενικότητες? Θα τα δούµε στη συνέχεια... 10

MIPS σύνολο εντολών: Λέξεις των 32 bit (µνήµη οργανωµένη σε bytes, ακολουθεί το µοντέλο big Εndian) 32 καταχωρητές γενικού σκοπού - REGISTER FILE Θα µιλήσουµε για: εντολές αποθήκευσης στη µνήµη (lw, sw) Αριθµητικές εντολές (add, sub κλπ) Εντολές διακλάδωσης (branch instructions) εν αφήνουµε τις εντολές να έχουν µεταβλητό πλήθος ορισµάτων- π.χ. add a,b,c πάντα: a=b+c Θυµηθείτε την 1η αρχή: H οµοιοµορφία των λειτουργιών συµβάλλει στην απλότητα του h/w 11

Αφού οι καταχωρητές είναι τόσο...«γρήγοροι» γιατί να µην µεγαλώσουµε το µέγεθος του register file? 2η αρχή: Όσο µικρότερο τόσο ταχύτερο! Αν το register file πολύ µεγάλο, πιο πολύπλοκη η αποκωδικοποίηση, πιο µεγάλος ο κύκλος ρολογιού (φάση ID) άρα...υπάρχει tradeoff Μνήµη οργανωµένη σε bytes: (Κάθε byte και ξεχωριστή δνση) 2 30 λέξεις µνήµης των 32 bit (4 bytes) κάθε µια Memory [0] Memory [4] Memory [8] Memory [12] $s0, $s1, καταχωρητές (µεταβλητές συνήθως) $t0, $t1, καταχωρητές (προσωρινές τιµές) $zero ειδικός καταχωρητής περιέχει το 0 32 bits 32 bits 32 bits 32 bits 12

Big Endian vs Little Endian Big Endian: H δνση του πιο σηµαντικού byte (MSB) είναι και δνση της λέξης Little Endian: H δνση του λιγότερο σηµαντικού byte (LSB) είναι και δνση της λέξης H λέξη αποθηκεύεται πάντα σε συνεχόµενες θέσεις: δνση, δνση+1,..,δνση+3 BIG_ENDIAN LITTLE_ENDIAN A[0] A[1] A[2] 0 1 2 3 4 5 6 7 8 9 10 11 MSB LSB MSB LSB MSB LSB 8 bits A[0] A[1] A[2] 0 1 2 3 4 5 6 7 8 9 10 11 LSB MSB LSB MSB LSB MSB 13

MIPS ISA (βασικές εντολές) Αριθµητικές εντολές add, sub: πάντα τρία ορίσµατα - ποτέ δνση µνήµης! add $s1, $s2, $s3 # $s1 = $s2+$s3 sub $s1, $s2, $s3 # $s1 = $s2-$s3 Εντολές µεταφοράς δεδοµένων (load-store): Εδώ έχουµε αναφορά στη µνήµη (πόσοι τρόποι? Θα το δούµε στη συνέχεια) lw $s1, 100($s2) # $s1 = Memory(100+$s2) (load word) sw $s1, 100($s2) # Memory(100+$s2) = $s1(store word) 14

Παράδειγµα: υποθέτουµε ότι η µεταβλητή h είναι αποθηκευµένη στον καταχωρητή $s2 και η αρχή του πίνακα Α (base address) βρίσκεται στο καταχωρητή $s3 O A είναι πίνακας 100 λέξεων των 32 bit εκάστη. Πώς γράφεται το: A[12]= h + A[8] ; lw $t0, 32($s3) # temporary reg. $t0 gets A[8] add $t0, $s2, $t0 # temporary reg. $t0 gets h + A[8] sw $t0, 48($s3) # stores h+a[8] back into A[12] 15

Μορφή Εντολής - Instruction Format Θυµηθείτε το 1ο κανόνα: Η οµοιοµορφία των λειτουργιών συµβάλλει στην απλότητα του υλικού R-Type (register type) op 6 bits rs 5bits rt 5bits rd 5bits shamt 5bits funct 6bits Op: opcode rs,rt: register source operands Rd: register destination operand Shamt: shift amount Funct: op specific (function code) add $rd, $rs, $rt 16

Ερώτηση: Μας αρκεί το R-Type? Τι γίνεται µε εντολές που θέλουν ορίσµατα διευθύνσεις ή σταθερές? Θυµηθείτε, θέλουµε σταθερό µέγεθος κάθε εντολής (32 bit) Απάντηση: Μάλλον όχι Άρα: H καλή σχεδίαση απαιτεί σηµαντικούς συµβιβασµούς (3η αρχή) Ι-Type: op 6 bits rs 5 bits rt 5 bits address_offset 16 bits lw $rt, address_offset($rs) Τα 3 πρώτα πεδία (op,rs, rt) έχουν το ίδιο όνοµα και µέγεθος όπως και πριν 17

Εντολές διακλάδωσης-branching instructions branch if equal beq $s3, 4s4, L1 # goto L1 if $s3 equals $s4 branch if!equal bne $s3, 4s4, L1 # goto L1 if $s3 not equals $s4 unconditional Jump jr $t1 # goto $t1... είναι I Type εντολές slt $t0, $s3, $s4 #set $t0 to 1 if $s3 is less than $s4;else set $t0 to 0 Όµως: j L1 # goto L1 Πόσο µεγάλο είναι το µήκος του address L1; Πόσο «µεγάλο» µπορεί να είναι το άλµα; 18

Απ ευθείας διευθυνσιοδότηση- Σταθερές Οι πιο πολλές αριθµητικές εκφράσεις σε προγράµµατα, περιέχουν σταθερές: πχ. index++ Στον κώδικα του gcc: 52% εκφράσεων έχουν constants Στον κώδικα του spice: 69% των εκφράσεων! Τι κάνουµε µε τις σταθερές (και αν είναι > 16bit;) Θέλουµε: $s3=$s3+2 lw $t0, addr_of_constant_2($zero) add $s3,$s3,$t0 Αλλιώς: addi $s3,$s3,2 (add immediate) Όµοια: slti $t0,$s2, 10 # $t0=1 if $s2<10 19

Τρόποι ιευθυνσιοδότησης στον MIPS: 1. Register Addressing 2. Base or Displacement Addressing 3. Immediate Addressing 4. PC-relative addressing (address is the sum of the PC and a constant in the instruction) 5. Pseudodirect addressing (the jump address is the 26 bits of the instruction, concatenated with the upper bits of the PC) 20

1. Immediate addressing op rs rt Immediate addi $rt,$rs,immediate π.χ. lui $t0, 255 slti $t0, $s1, 10 I-Type 2. Register addressing op rs rt 3. Base addressing rd... funct add $rd,$rs,$rt π.χ. add $t0, $s1,$s2 Registers Register R-Type op rs rt Address Memory Register + Byte Halfword Word I-Type lw $rt, address($rs) π.χ. lw $t1,100($s2) 4. PC-relative addressing op rs rt Address Memory PC + Word I-Type bne $rs, $rt, address π.χ. bne $s0,$s1,l2 5. Pseudodirect addressing op Address Memory PC Word J-Type j address # goto (4 x address)(0:28)-(29:32) (PC) 21

Επεξεργαστής EDSAC IBM 701 CDC 6600 IBM 360 DEC PDP-8 DEC PDP-11 Intel 8008 Motorola 6800 DEC VAX Intel 8086 Motorola 68000 Intel 80386 MIPS HP PA-RISC SPARC PowerPC DEC Alpha Αριθµός καταχωρητών γενικού σκοπού 1 1 8 16 1 8 1 2 16 8 16 8 32 32 32 32 32 Αρχιτεκτονική Έτος accumulator 1949 accumulator 1953 load-store 1963 register-memory 1964 accumulator 1965 Register-memory 1970 accumulator 1972 accumulator 1974 register-memory, memory-memory 1977 extended accumulator 1978 register-memory 1980 register-memory 1985 load-store 1985 load-store 1986 load-store 1987 load-store 1992 load-store 1992 22 Στοιχεία από το: COD2e Patterson & Hennessy