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

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

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

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

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

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

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

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

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

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

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

6. Επιστροφή ελέγχου στο σημείο εκκίνησης

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Διαλέξεις 6: Κάλεσμα Διαδικασιών, Χρήση και Σώσιμο Καταχωρητών. Μανόλης Γ.Η.

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

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

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

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

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

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

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

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

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

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

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

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

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

Δρ. Παναγιώτης Μ. Παπάζογλου Επίκουρος Καθηγητής ΤΕΙ Λαμίας. Διδακτικό βοήθημα γρήγορης μελέτης για τον προγραμματισμό του μικροεπεξεργαστή MIPS 32bit

Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213

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

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

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

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

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

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

Μετάφραση ενός Προγράμματος Εξαιρέσεις

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

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

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

Transcript:

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

Μεταγλώττιση βρόχων (Loop) Κώδικας C: while (save[i]!= k) i++; Το i στο $s3, το k στο $s5, και η διεύθυνση του save στο $s6 Μεταγλωττισμένος κώδικας MIPS: Βασικά μπλοκ Θεωρείστε ότι ο πίνακας save είναι 32μπιτων ακεραίων. Loop: sll $t0, $s3, 2 add $t0,? $t0, $s6 lw $t1, 0($t0) beg $t1, $s5, Exit addi $s3, $s3, 1 j Loop Exit: Chapter 2 Instructions: Language of the Computer 2

Βασικά μπλοκ (Basic Blocks) Ένα βασικό μπλοκ είναι μια ακολουθία εντολών Χωρίς ενσωματωμένες διακλαδώσεις (εκτός από το τέλος της) και Χωρίς προορισμούς διακλάδωσης (branch targets) (εκτός από την αρχή) Οι μεταγλωττιστές, σε κάποια από τις πρώτες φάσεις της μεταγλώττισης, εντοπίζουν τα βασικά μπλοκ για βελτιστοποίηση Ένας εξελιγμένος επεξεργαστής μπορεί να επιταχύνει την εκτέλεση των βασικών μπλοκ Chapter 2 Instructions: Language of the Computer 3

Κι άλλες εντολές υπό συνθήκη Θέσε το αποτέλεσμα στο 1 εάν μια συνθήκη είναι αληθής Διαφορετικά, δώσε του τιμή μηδέν (0) slt rd, rs, rt if (rs < rt) rd = 1; else rd = 0; slti rt, rs, constant if (rs < constant) rt = 1; else rt = 0; Συνδυάζονται με τις εντολές beq, bne slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # branch to L Chapter 2 Instructions: Language of the Computer 4

Σχεδίαση εντολών διακλάδωσης Γιατί όχι και blt, ble, bgt, bge, κλπ; Το υλικό (hardware) για τον έλεγχο ανισοτήτων (<,, ) είναι πιο αργό από αυτό που ελέγχει για ισότητα ή διαφορά (=, ) Συμπεριλαμβάνοντάς το σε μια διακλάδωση οδηγεί σε περισσότερη δουλειά ανά εντολή, που επιβάλει ρολόι με χαμηλότερη συχνότητα Επιβαρύνεται το σύνολο των εντολών! Οι beq και bne είναι η συχνή περίπτωση Αυτό είναι ένας καλός σχεδιαστικός συμβιβασμός Chapter 2 Instructions: Language of the Computer 5

Κι άλλο παράδειγμα βρόχου Κώδικας C: sum = 0; for(i=1; i<15; i++) sum = sum + i; Το sum στο $s1 και το i στο $s2. Μεταγλωττισμένος κώδικας MIPS: and $s1, $s1, $zero addi $s2,? $zero, 1 Loop: slti $t0, $s2, 15 beg $t0, $zero, Exit add $s1, $s1, $s2 addi $s2, $s2, 1 j Loop Exit: Chapter 2 Instructions: Language of the Computer 6

Με πρόσημο ή χωρίς (Signed vs. Unsigned) Σύγκριση με πρόσημο : slt, slti Σύγκριση χωρίς πρόσημο : sltu, sltui Παράδειγμα $s0 = 1111 1111 1111 1111 1111 1111 1111 1111 $s1 = 0000 0000 0000 0000 0000 0000 0000 0001 slt $t0, $s0, $s1 # signed 1 < +1 $t0 = 1 sltu $t0, $s0, $s1 # unsigned 4,294,967,295 < 1 $t0 = 0 Chapter 2 Instructions: Language of the Computer 7

Πολλαπλές διακλαδώσεις Οι περισσότερες γλώσσες προγραμματισμού έχουν κάποια εντολή case ή switch, που επιτρέπει την επιλογή μιας από πολλές εναλλακτικές επιλογές με κριτήριο μια μόνο τιμή. Ο απλούστερος τρόπος να γίνει αυτό είναι μέσω μιας σειράς ελέγχων συνθήκης (μια αλυσίδα από εντολές διακλάδωσης if-then-else) Μερικές φορές μπορούν να κωδικοποιηθούν πιο αποδοτικά ως πίνακας διευθύνσεων εναλλακτικών ακολουθιών εντολών, που ονομάζεται πίνακας διευθύνσεων άλματος (jump address table) Για την υποστήριξη τέτοιων περιπτώσεων ο MIPS περιλαμβάνει την εντολή jump register (jr) που εκτελεί άλμα χωρίς συνθήκη σε μια διεύθυνση που καθορίζεται από την τιμή ενός καταχωρητή. Chapter 2 Instructions: Language of the Computer 8

Κλήση Διαδικασιών (Procedure Calling) Απαιτούμενα βήματα 1. Τοποθέτηση των παραμέτρων (ορισμάτων) σε μέρος προσπελάσιμο από την διαδικασία (π.χ. στους καταχωρητές) 2. Μεταβίβαση του ελέγχου στην διαδικασία 3. Εξασφάλιση πόρων αποθήκευσης για τις ανάγκες της διαδικασίας 4. Εκτέλεση των πράξεων (λειτουργιών) της διαδικασίας 5. Τοποθέτηση των αποτελεσμάτων σε μέρος όπου το καλούν πρόγραμμα έχει πρόσβαση 6. Επιστροφή του ελέγχου στην αμέσως επόμενη εντολή από το σημείο κλήσης (μια διαδικασία μπορεί να κληθεί από διάφορα σημεία του προγράμματος) Chapter 2 Instructions: Language of the Computer 9

Χρήση καταχωρητών $a0 $a3: arguments (reg s 4 7) $v0, $v1: result values (reg s 2 and 3) $t0 $t9: temporaries Μπορούν να γραφούν από τον καλούμενο $s0 $s7: saved Πρέπει να αποθηκεύονται / επαναφέρονται από τον καλούμενο $gp: global pointer for static data (reg 28) $sp: stack pointer (reg 29) $fp: frame pointer (reg 30) $ra: return address (reg 31) (10 προσωρινοί καταχωρητές) ( 4 καταχωρητές ορίσματος) (2 καταχωρητές τιμής) (8 αποθηκευμένοι καταχωρητές) (Δείκτης στοίβας) (Δείκτης πλαισίου) (Καθολικός δείκτης) (Διεύθυνση επιστροφής) Chapter 2 Instructions: Language of the Computer 10

Εντολές κλήσης διαδικασίας Εντολή άλματος και σύνδεσης (jump and link) jal ProcedureLabel Κλήση διαδικασίας Αποθηκεύει την διεύθυνση της επόμενης εντολής στον καταχωρητή $ra Μεταφέρεται στην διεύθυνση στόχο (target address) Εντολή άλματος στην διεύθυνση που δίδεται από τον καταχωρητή (jump register) jr $ra Επιστροφή από διαδικασία Αντιγράφει τον $ra στον μετρητή προγράμματος (program counter) Επίσης, μπορεί να χρησιμοποιηθεί για υπολογισμένα άλματα (π.χ. σε εντολές πολλαπλών διακλαδώσεων) Chapter 2 Instructions: Language of the Computer 11

Παράδειγμα διαδικασίας-φύλλο Κώδικας σε C: int leaf_example(int g, int h, int i, int j) { int f; f = (g + h) - (i + j); return f; } Τα ορίσματα g, h, i και j βρίσκονται στους καταχωτητές $a0, $a1, $a2 και $a3 Το f στον $s0 (Συνεπώς, απαιτείται η αποθήκευση του $s0 στην στοίβα (stack)) Το αποτέλεσμα θα τοποθετηθεί στο $v0 Chapter 2 Instructions: Language of the Computer 12

Παράδειγμα διαδικασίας-φύλλο Κώδικας MIPS: leaf_example: addi $sp, $sp, -4 sw $s0, 0($sp) add $t0, $a0, $a1 add $t1, $a2, $a3 sub $s0, $t0, $t1 add $v0, $s0, $zero lw $s0, 0($sp) addi $sp, $sp, 4 jr $ra Αποθήκευση του $s0 στην στοίβα Το σώμα της διαδικασίας Τοποθέτηση αποτελέσματος Αποκατάσταση του $s0 Επιστροφή Chapter 2 Instructions: Language of the Computer 13