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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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;

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

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

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

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

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

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

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

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

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

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

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

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

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

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

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

Ενδεικτική περιγραφή μαθήματος

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

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

Περιεχόμενα. Πρόλογος... 17

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

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

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

procedure P ( < pars > ) < type> f( < pars > ) begin { < local vars > < local vars > < procedure body> < procedure body> end; }

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΔΕΙΚΤΕΣ ΚΑΙ ΔΙΕΥΘΥΝΣΕΙΣ

{ int a = 5; { int b = 7; a = b + 3;

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

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Περιεχόμενα. Πρόλογος... 21

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

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

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

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

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

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

Transcript:

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

Ένθετες διαδικασίες (Non-Leaf) Διαδικασίες που καλούν άλλες διαδικασίες Για φωλιασμένες κλήσεις, ο καλών, πριν από την κλήση, πρέπει να αποθηκεύει στην στοίβα: Την διεύθυνση επιστροφής του ($ra), και Όποιο όρισμα ($a0 - $a3) ή προσωρινό ($t0 - $t9) δεδομένο χρειάζεται μετά την κλήση. Τα επαναφέρει από την στοίβα μετά την κλήση Ο καλούμενος, πρέπει να αποθηκεύει στην στοίβα: Όποιους αποθηκευμένους καταχωρητές ($s0 - $s7) χρησιμοποιεί ο ίδιος. Ο δείκτης στοίβας ($sp) ρυθμίζεται διαρκώς. Chapter 2 Instructions: Language of the Computer 2

Παράδειγμα ένθετης διαδικασίας Κώδικας σε C: int fact (int n) { if (n < 1) } return 1; else return n * fact(n - 1); Το όρισμα βρίσκεται στον $a0 Το αποτέλεσμα θα τοποθετηθεί στον $v0 Chapter 2 Instructions: Language of the Computer 3

Non-Leaf Procedure Example Κώδικας MIPS: fact: addi $sp, $sp, -8 # Προετοιμασία στοίβας sw $ra, 4($sp) # Αποθήκευση διεύθ. επιστρ. sw $a0, 0($sp) # Αποθήκευση ορίσματος slti $t0, $a0, 1 # έλεγχος για n < 1, και αν beq $t0, $zero, L1 # δεν ισχύει, άλμα στο L1 addi $v0, $zero, 1 # εάν ναι, αποτέλεσμα 1 addi $sp, $sp, 8 # αποκατάσταση στοίβας jr $ra # και επιστροφή L1: addi $a0, $a0, -1 # αλλιώς μείωσε κατά 1 το n jal fact # αναδρομική κλήση lw $a0, 0($sp) # Επαναφορά του αρχικού n lw $ra, 4($sp) # και της διεύθ. επιστροφής addi $sp, $sp, 8 # Αποκατάσταση στοίβας mul $v0, $a0, $v0 # Πολλαπλασιασμός jr $ra # και επιστροφή Chapter 2 Instructions: Language of the Computer 4

Κατανομή χώρου στην στοίβα Τοπικά δεδομένα τοποθετημένα από τον καλούμενο π.χ. αυτόματες (τοπικές) μεταβλητές της C Πλαίσιο Διαδικασίας (procedure frame) ή εγγραφή ενεργοποίησης (activation record) Χρησιμοποιείται από κάποιους μεταγλωττιστές για ευκολότερη διαχείριση των αποθηκευμένων δεδομένων στην στοίβα Chapter 2 Instructions: Language of the Computer 5

Κατανομή μνήμης του MIPS Τμήμα κειμένου (text segment): κώδικας μηχανής Τμήμα στατικών δεδομένων (static data): καθολικές μεταβλητές π.χ. στατικές μεταβλητές στην C, πίνακες (arrays) και συμβολοσειρές (strings) Το $gp αρχικοποιείται σε μια τιμή που διευκολύνει την προσπέλαση των δεδομένων με 16μπιτες σχετικές αποστάσεις (±offsets) Δυναμικά δεδομένα (dynamic data): σωρός (heap) π.χ. στην C, κατανομή χώρου με malloc() και ελευθέρωση με free() Στοίβα (stack):αυτόμ. μεταβλητές Chapter 2 Instructions: Language of the Computer 6

Χαρακτήρες (Character Data) Σύνολα χαρακτήρων στα 8 bit (1 Byte) ASCII Latin-1 Unicode: στα 32-bit Χρησιμοποιείται στην Java, στην C++, Συμπεριλαμβάνει τα αλφάβητα των περισσότερων ανθρώπινων γλωσσών, συν σύμβολα UTF-8, UTF-16: κωδικοποιήσεις μεταβλητού μήκους Chapter 2 Instructions: Language of the Computer 7

Πράξεις με bytes και ημιλέξεις Μπορούν να χρησιμοποιηθούν πράξεις ανά bit Η φόρτωση/αποθήκευση byte/halfword στον MIPS Συχνή περίπτωση στην επεξεργασία συμβολοσειρών lb rt, offset(rs) lh rt, offset(rs) Με επέκταση πρόσημου στα 32 bit του rt lbu rt, offset(rs) lhu rt, offset(rs) Με επέκταση του μηδενός στα 32 bit του rt sb rt, offset(rs) sh rt, offset(rs) Αποθηκεύει μόνο το δεξιότερο byte/halfword Chapter 2 Instructions: Language of the Computer 8

Παράδειγμα με συμβολοσειρές Κώδικας σε C (αντιγραφή του y στο χ): void strcpy (char x[], char y[]) { int i; i = 0; while ((x[i]=y[i])!='\0') i += 1; } return; Οι διευθύνσεις των x, y είναι στους $a0, $a1 και του i στο $s0 Chapter 2 Instructions: Language of the Computer 9

Παράδειγμα με συμβολοσειρές Κώδικας MIPS: strcpy: addi $sp, $sp, -4 # προετοίμασε την στοίβα sw $s0, 0($sp) # αποθήκευσε τον $s0 add $s0, $zero, $zero # i = 0 L1: add $t1, $s0, $a1 # η διευθ.του y[i] στο $t1 lbu $t2, 0($t1) # $t2 = y[i] add $t3, $s0, $a0 # η διευθ.του x[i] στο $t3 sb $t2, 0($t3) # x[i] = y[i] beq $t2, $zero, L2 # έξοδος αν y[i] == 0 addi $s0, $s0, 1 # i = i + 1 j L1 # επόμενη επανάληψη βρόχου L2: lw $s0, 0($sp) # αποκατάσταση του $s0 addi $sp, $sp, 4 # αποκατάσταση της στοίβας jr $ra # και επιστροφή Chapter 2 Instructions: Language of the Computer 10

Σταθερές στα 32-bit Οι περισσότερες σταθερές είναι μικρές 16-bit άμεσα (immediate) είναι αρκετά Για την περίπτωση σταθερών στα 32 bit lui rt, constant Αντιγράφει μια σταθερά 16-bit στα 16 αριστερότερα δυαδικά ψηφία του rt load upper immediate Επαναφέρει τα 16 δεξιότερα bit του rt στο 0 lui $s0, 61 0000 0000 0011 1101 0000 0000 0000 0000 ori $s0, $s0, 2304 0000 0000 0011 1101 0000 1001 0000 0000 Chapter 2 Instructions: Language of the Computer 11