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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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

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

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Σχεδίαση της Διόδου Δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής. Αρχιτεκτονική Υπολογιστών. 3ο Μάθημα

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

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

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

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

Προγραμματισμός Ι (ΗΥ120)

Transcript:

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

Εντολές MIPS μορφής I (immediate) op rs rt constant or address 6 bits 5 bits 5 bits 16 bits Άμεσες αριθμητικές εντολές και εντολές φόρτωσης /αποθήκευσης rs: αριθμός καταχωριστή βάσης (base register) rt: αριθμός καταχωριστή προέλευσης ή προορισμού Constant: σταθερά από 2 15 έως +2 15 1 Address: σχετική απόσταση (offset) που προστίθεται στην διεύθυνση βάσης που βρίσκεται στο rs Σχεδιαστική Αρχή 4: Η καλή σχεδίαση απαιτεί καλούς συμβιβασμούς Οι διαφορετικές μορφές εντολών αυξάνουν την πολυπλοκότητα (για παράδειγμα δυσχεραίνουν την αποκωδικοποίηση), αλλά μπορούμε να μειώσουμε την πολυπλοκότητα αφενός διατηρώντας την ομοιομορφία των εντολών ως προς το μήκος τους (όλες στα 32 bit) και αφετέρου διατηρώντας, κατά το δυνατόν, παρόμοιες τις μορφές. Chapter 2 Instructions: Language of the Computer 2

Παράδειγμα μορφής I op rs rt constant or address 6 bits 5 bits 5 bits 16 bits addi $s0, $s1, 3 addi $s1 $s0 3 8 17 16 3 001000 10001 10000 0000000000000011 00100010001100000000000000000011 2 = 22300003 16 Chapter 2 Instructions: Language of the Computer 3

Άλλα παραδείγματα μορφής I op rs rt constant or address 6 bits 5 bits 5 bits 16 bits lw $t0, 32($s1) lw $s1 $t0 32 35 17 8 32... sw $t0, 36($s1) sw $s1 $t0 36 43 17 8 36... Chapter 2 Instructions: Language of the Computer 4

Η/Υ αποθηκευμένου προγράμματος The BIG Picture Οι εντολές αναπαριστώνται στο δυαδικό, όπως και τα δεδομένα Εντολές και δεδομένα αποθηκεύονται στην μνήμη Τα προγράμματα μπορούν δουλέψουν πάνω σε προγράμματα π.χ., compilers, linkers, Η συμβατότητα σε δυαδικό επίπεδο επιτρέπει σε μεταγλωττισμένα προγράμματα να δουλεύουν σε άλλους Η/Υ Τυποποιημένες Αρχιτεκτονικές Συνόλου Εντολών (Standardized ISAs) Chapter 2 Instructions: Language of the Computer 5

Λογικές Πράξεις Εντολές πράξεων ανά bit (bitwise) Πράξη (Operation) Τελεστές C Τελεστές Java Εντολές MIPS Ολίσθηση αριστερά (Shift left) << << sll Ολίσθηση δεξιά (Shift right) >> >>> srl Σύζευξη (Bitwise AND) & & and, andi Διάζευξη (Bitwise OR) or, ori Άρνηση (Bitwise NOT) ~ ~ nor Χρήσιμες για την εξαγωγή και την εισαγωγή ομάδων δυαδικών ψηφίων από/σε μια λέξη Chapter 2 Instructions: Language of the Computer 6

Εντολές ολίσθησης Δεν χρησιμοποιείται op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits shamt: πόσες θέσεις να ολισθήσει Λογική ολίσθηση αριστερά (shift left logical) Ολίσθησε αριστερά και γέμισε τα κενά με 0 sll κατά i bits πολλαπλασιάζει επί 2 i Λογική ολίσθηση δεξιά (shift right logical) Ολίσθησε δεξιά και γέμισε τα κενά με 0 srl κατά i bits διαιρεί διά 2 i (μόνο χωρίς πρόσημο) Chapter 2 Instructions: Language of the Computer 7

Εντολές σύζευξης (AND) Χρήσιμο για την εφαρμογή μάσκας σε μια λέξη Επιλογή κάποιων bits, επαναφορά άλλων στο 0 and $t0, $t1, $t2 $t2 $t1 0000 0000 0000 0000 0000 1101 1100 0000 0000 0000 0000 0000 0011 1100 0000 0000 Μάσκα $t0 0000 0000 0000 0000 0000 1100 0000 0000 Chapter 2 Instructions: Language of the Computer 8

Εντολές διάζευξης (OR) Χρήσιμο για να συμπεριλάβει κάποια bits σε μια λέξη Θέση κάποιων bits στο 1, αφήνοντας άλλα αμετάβλητα or $t0, $t1, $t2 $t2 $t1 $t0 0000 0000 0000 0000 0000 1101 1100 0000 0000 0000 0000 0000 0011 1100 0000 0000 0000 0000 0000 0000 0011 1101 1100 0000 Chapter 2 Instructions: Language of the Computer 9

Εντολές άρνησης (NOT) Χρήσιμο για την αντιστροφή των bits μιας λέξης Αλλάζει το 0 σε 1, και το 1 σε 0 Ο MIPS έχει την NOR (εντολή με 3 τελεστέους) a NOR b = NOT ( a OR b ) nor $t0, $t1, $zero $t1 Καταχωριστής 0: διαβάζεται πάντοτε ως μηδέν 0000 0000 0000 0000 0011 1100 0000 0000 $t0 1111 1111 1111 1111 1100 0011 1111 1111 Chapter 2 Instructions: Language of the Computer 10

Εντολές λήψης αποφάσεων Διακλάδωση σε μια εντολή (με ετικέτα) αν μια συνθήκη είναι αληθής Διαφορετικά, η ροή του προγράμματος συνεχίζει με την επόμενη εντολή beq rs, rt, L1 branch if equal εάν (rs == rt) πήγαινε στην εντολή με ετικέτα L1 bne rs, rt, L2 εάν (rs!= rt) πήγαινε στην εντολή με ετικέτα L2 j L3 branch if not equal jump Διακλάδωση χωρίς συνθήκη (unconditional jump) στην εντολή με ετικέτα L3 Chapter 2 Instructions: Language of the Computer 11

Μεταγλώττιση εντολών If Κώδικας C: if (i==j) f = g+h; else f = g-h; (Then:) Τα f, g, h, i και j, στους $s0, $s1, $s2, $s3 και $s4 Μεταγλωττισμένος κώδικας MIPS: bne $s3, $s4, Else add $s0,? $s1, $s2 j Exit Else: sub $s0, $s1, $s2 Exit: Ο Συμβολομεταφραστής υπολογίζει τις διευθύνσεις Chapter 2 Instructions: Language of the Computer 12

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

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

Κι άλλες εντολές υπό συνθήκη Θέσε το αποτέλεσμα στο ένα (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 15

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