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

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2 Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με πολλά κοινά χαρακτηριστικά Οι πρώτοι υπολογιστές είχαν πολύ απλά σύνολα εντολών Απλοποιημένη υλοποίηση Πολλοί σύγχρονοι έχουν επίσης απλά σύνολα εντολών 2.1 Εισαγωγή `.αιο 2 Εντολές: η γλώσσα του υπολογιστή 2

3 Το σύνολο εντολών του MIPS Χρησιμοποιείται ως παράδειγμα σε όλο το βιβλίο Η MIPS Technologies (www.mips.com) έκανε εμπορικό τον Stanford MIPS Μεγάλο μερίδιο της αγοράς των πυρήνων (cores) ενσωματωμένων επεξεργαστών Εφαρμογές σε καταναλωτικά ηλεκτρονικά, εξοπλισμό δικτύων και αποθήκευσης, φωτογραφικές μηχανές, εκτυπωτές, Τυπικό πολλών σύγχρονων ISA (Instruction Set Architecture) Πληροφορία στην αποσπώμενη κάρτα Αναφοράς Δεδομένων MIPS (πράσινη κάρτα), και τα Παραρτήματα Β και Ε Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 3

4 Αριθμητικές λειτουργίες Πρόσθεση και αφαίρεση, τρεις τελεστέοι (operands) Δύο προελεύσεις και ένας προορισμός add a, b, c # a gets b + c Όλες οι αριθμητικές λειτουργίες έχουν αυτή τη μορφή Σχεδιαστική αρχή 1: η απλότητα ευνοεί την κανονικότητα Η κανονικότητα κάνει την υλοποίηση απλούστερη Η απλότητα επιτρέπει μεγαλύτερη απόδοση με χαμηλότερο κόστος 2.2 Λειτουργίες του υλικού των υπολογιστών Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 4

5 Αριθμητικό παράδειγμα Κώδικας C: f = (g + h) - (i + j); Μεταγλωττισμένος κώδικας MIPS: add t0, g, h # t0 = g + h add t1, i, j # t1 = i + j sub f, t0, t1 # f = t0 - t1 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 5

6 Τελεστέοι-καταχωρητές Οι αριθμητικές εντολές χρησιμοποιούν καταχωρητές ως τελεστέους Ο MIPS διαθέτει ένα αρχείο καταχωρητών (register file) με 32 καταχωρητές των 32-bit Χρήση για τα δεδομένα που προσπελάζονται συχνά Αρίθμηση καταχωρητών από 0 έως 31 Τα δεδομένα των 32-bit ονομάζονται «λέξη» ( word ) Ονόματα του συμβολομεταφραστή (assembler) $t0, $t1,, $t9 για προσωρινές τιμές $s0, $s1,, $s7 για αποθηκευμένες μεταβλητές Σχεδιαστική αρχή 2: το μικρότερο είναι ταχύτερο παραβολή με κύρια μνήμη: εκατομμύρια θέσεων 2.3 Τελεστέοι του υλικού των υπολογιστών Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 6

7 Παράδειγμα τελεστέων καταχωρητών Κώδικας C: f = (g + h) - (i + j); οι f, g, h, i, j στους $s0, $s1, $s2, $s3, $s4 Μεταγλωττισμένος κώδικας MIPS: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 7

8 Τελεστέοι μνήμης Η κύρια μνήμη χρησιμοποιείται για σύνθετα δεδομένα Πίνακες (arrays), δομές (structures), δυναμικά δεδομένα Για να εφαρμοστούν αριθμητικές λειτουργίες Φόρτωση (Load) τιμών από τη μνήμη σε καταχωρητές Αποθήκευση (Store) αποτελέσματος από καταχωρητές στη μνήμη Η μνήμη διευθυνσιοδοτείται ανά byte (byte addressed) Κάθε διεύθυνση προσδιορίζει ένα byte των 8 bit Οι λέξεις είναι «ευθυγραμμισμένες» ( aligned ) στη μνήμη Η διεύθυνση πρέπει να είναι πολλαπλάσιο του 4 Ο MIPS είναι «Μεγάλου άκρου» ( Big Endian ) Το περισσότερο σημαντικό byte βρίσκεται στη μικρότερη διεύθυνση μιας λέξης Σύγκριση με «Μικρού άκρου» ( Little Endian : το λιγότερο σημαντικό byte βρίσκεται στη μικρότερη διεύθυνση) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 8

9 Παράδειγμα 1 με τελεστέους μνήμης Κώδικας C: g = h + A[8]; g στον $s1, h στον $s2, η δνση βάσης του A στον $s3 Μεταγλωττισμένος κώδικας MIPS: Ο δείκτης 8 απαιτεί σχετική απόσταση (offset) ίση με 32 4 byte ανά λέξη lw $t0, 32($s3) add $s1, $s2, $t0 καταχωρητής βάσης # load word σχετική απόσταση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 9

10 Παράδειγμα 2 με τελεστέους μνήμης Κώδικας C: A[12] = h + A[8]; h στον $s2, διεύθυνση βάσης του A στον $s3 Μεταγλωττισμένος κώδικας MIPS: Ο δείκτης 8 απαιτεί σχετική απόσταση 32 lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 48($s3) # load word # store word Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 10

11 Καταχωρητές έναντι Μνήμης Οι καταχωρητές είναι ταχύτερα προσπελάσιμοι από τη μνήμη Οι λειτουργίες σε δεδομένα μνήμης απαιτούν φορτώσεις και αποθηκεύσεις Εκτελούνται περισσότερες εντολές Ο μεταγλωττιστής πρέπει να χρησιμοποιεί τους καταχωρητές για μεταβλητές όσο περισσότερο γίνεται Να «διασκορπίζει» (spill) στη μνήμη μόνο τις λιγότερο συχνά χρησιμοποιούμενες μεταβλητές Η βελτιστοποίηση καταχωρητών είναι σημαντική! Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 11

12 Άμεσοι τελεστέοι (immediate) Σταθερά δεδομένα καθορίζονται σε μια εντολή addi $s3, $s3, 4 Δεν υπάρχει εντολή άμεσης αφαίρεσης (subtract immediate) Απλώς χρησιμοποιείται μια αρνητική σταθερά addi $s2, $s1, -1 Σχεδιαστική αρχή 3: Κάνε τη συνηθισμένη περίπτωση γρήγορη Οι μικρές σταθερές είναι συνηθισμένες Ο άμεσος τελεστέος αποφεύγει μια εντολή φόρτωσης (load) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 12

13 Η σταθερά Μηδέν Ο καταχωρητής 0 του MIPS ($zero) είναι η σταθερά 0 Δεν μπορεί να γραφεί με άλλη τιμή Χρήσιμη για συνηθισμένες λειτουργίες Π.χ., μετακίνηση (move) μεταξύ καταχωρητών add $t2, $s1, $zero Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 13

14

15 Απρόσημοι δυαδικοί ακέραιοι Με δεδομένο έναν αριθμό των n bit x x n 1 n n 12 xn 22 x12 x02 Εύρος: 0 έως +2 n 1 Παράδειγμα = = = Με χρήση 32 bit 0 ως +4,294,967, Προσημασμένοι και απρόσημοι αριθμοί Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 15

16 Προσημασμένοι ακέραιοι σε συμπλήρωμα ως προς 2 Με δεδομένο έναν αριθμό των n bit x x n 1 n n 12 xn 22 x12 x02 Εύρος: 2 n 1 ως +2 n 1 1 Παράδειγμα = = 2,147,483, ,147,483,644 = 4 10 Με χρήση 32 bit 2,147,483,648 ως +2,147,483,647 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 16

17 Προσημασμένοι ακέραιοι σε συμπλήρωμα ως προς 2 Το bit 31 είναι το bit προσήμου 1 για αρνητικούς αριθμούς 0 για μη αρνητικούς αριθμούς (θετικούς και μηδέν) Το ( 2 n 1 ) δεν μπορεί να παρασταθεί Οι μη αρνητικοί αριθμοί έχουν την ίδια απρόσημη και προσημασμένη σε συμπλήρωμα ως προς 2 αναπαράσταση Μερικοί συγκεκριμένοι αριθμοί 0: : Ο πιο αρνητικός: Ο πιο θετικός: Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 17

18 Προσημασμένη άρνηση Συμπλήρωμα και πρόσθεση του 1 «Συμπλήρωμα» σημαίνει 1 0, 0 1 x x x 1 x Παράδειγμα: βρείτε τον αντίθετο (άρνηση) του = = = Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 18

19 Επέκταση προσήμου Αναπαράσταση ενός αριθμού με περισσότερα bit Διατήρηση της αριθμητικής τιμής Στο σύνολο εντολών του MIPS addi: επέκταση προσήμου στη τιμή του άμεσου (immediate) lb, lh: επέκταση προσήμου στο byte/ημιλέξη που φορτώνεται beq, bne: επέκταση προσήμου στη μετατόπιση (displacement) Επανάληψη του bit προσήμου προς τα αριστερά παραβολή: απρόσημες τιμές: επέκταση με μηδενικά Παραδείγματα: 8-bit σε 16-bit +2: => : => Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 19

20 Αναπαράσταση εντολών Οι εντολές κωδικοποιούνται στο δυαδικό Ονομάζεται κώδικας μηχανής (machine code) Εντολές MIPS Κωδικοποιούνται ως λέξεις εντολής των 32 bit Μικρός αριθμός μορφών (formats) για τον κωδικό λειτουργίας (opcode), τους αριθμούς καταχωρητών, κλπ. Κανονικότητα! Αριθμοί καταχωρητών $t0 $t7 είναι οι καταχωρητές 8 15 $t8 $t9 είναι οι καταχωρητές $s0 $s7 είναι οι καταχωρητές Αναπαράσταση εντολών στον υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 20

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

22 Παράδειγμα μορφής R op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit add $t0, $s1, $s2 special $s1 $s2 $t0 0 add = Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 22

23 Δεκαεξαδικό Βάση 16 Συμπαγής αναπαράσταση σειρών bit 4 bit ανά δεκαεξαδικό ψηφίο c d a 1010 e b 1011 f 1111 Παράδειγμα: eca Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 23

24 Εντολές μορφής I του MIPS op rs rt σταθερά ή διεύθυνση 6 bit 5 bit 5 bit 16 bit Άμεσες αριθμητικές εντολές και εντολές load/store rt: αριθμός καταχωρητή προορισμού ή προέλευσης Σταθερά: 2 15 έως Διεύθυνση: σχετική απόσταση (offset) που προστίθεται στη διεύθυνση βάσης που περιέχει ο rs Σχεδιαστική αρχή 4: Η καλή σχεδίαση απαιτεί καλούς συμβιβασμούς Οι διαφορετικές μορφές περιπλέκουν την αποκωδικοποίηση, αλλά επιτρέπουν παντού εντολές των 32 bit Διατήρηση όσο το δυνατόν απλούστερων μορφών Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 24

25 Υπολογιστές Αποθηκευμένου Προγράμματος ΓΕΝΙΚΗ εικόνα Οι εντολές αναπαρίστανται σε δυαδικό, όπως τα δεδομένα Οι εντολές και τα δεδομένα αποθηκεύονται στη μνήμη Προγράμματα μπορούν να επενεργούν σε προγράμματα π.χ, compilers, linkers, Η δυαδική συμβατότητα επιτρέπει τα μεταγλωττισμένα προγράμματα να εκτελούνται σε διαφορετικούς υπολογιστές Καθιερωμένες ISA Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 25

26 Λογικές λειτουργίες Εντολές για χειρισμούς ανά bit Λειτουργία C Java MIPS Shift left << << sll Shift right >> >>> srl Bitwise AND & & and, andi Bitwise OR or, ori Bitwise NOT ~ ~ nor 2.6 Λογικές λειτουργίες Χρήσιμες για εξαγωγή και εισαγωγή ομάδων bit σε μια λέξη Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 26

27 Λειτουργίες ολίσθησης op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit shamt: αριθμός θέσεων ολίσθησης Shift left logical (αριστερή λογική ολίσθηση) Αριστερή ολίσθηση και συμπλήρωση με bit 0 sll κατά i bit πολλαπλασιάζει με 2 i Shift right logical (δεξιά λογική ολίσθηση) Δεξιά ολίσθηση και συμπλήρωση με bit 0 srl κατά i bit διαιρεί με 2 i (απρόσημοι μόνο) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 27

28 Λειτουργίες AND Χρήσιμες για την «απόκρυψη» (masking) bit σε μια λέξη Επιλογή κάποιων bit, μηδενισμών των άλλων and $t0, $t1, $t2 $t2 $t1 $t Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 28

29 Λειτουργίες OR Χρήσιμες για να συμπεριληφθούν κάποια bit σε μια λέξη Κάποια bit τίθενται στο 1, τα υπόλοιπα αμετάβλητα or $t0, $t1, $t2 $t2 $t1 $t Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 29

30 Λειτουργίες NOT Χρήσιμες για την αντιστροφή bit σε μια λέξη Αλλαγή του 0 σε 1, και του 1 σε 0 Ο MIPS διαθέτει εντολή NOR των 3 τελεστέων a NOR b == NOT ( a OR b ) nor $t0, $t1, $zero Καταχωρητής 0: πάντα ίσος με μηδέν $t1 $t Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 30

31 Λειτουργίες συνθήκης Διακλάδωση (branch) σε μια εντολή με ετικέτα αν μια συνθήκη είναι αληθής Διαφορετικά, συνέχισε ακολουθιακά beq rs, rt, L1 αν (rs == rt) διακλάδωση στην εντολή με ετικέτα L1 bne rs, rt, L1 αν (rs!= rt) διακλάδωση στην εντολή με ετικέτα L1 j L1 άλμα χωρίς συνθήκη στην εντολή με ετικέτα L1 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 31

32 Μεταγλώττιση εντολών If Κώδικας C: if (i==j) f = g+h; else f = g-h; f, g, στους $s0, $s1, Μεταγλωττισμένος κώδικας MIPS: bne $s3, $s4, Else add $s0, $s1, $s2 j Exit Else: sub $s0, $s1, $s2 Exit: ο συμβολομεταφραστής υπολογίζει τις διευθύνσεις Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 32

33 Μεταγλώττιση εντολών Loop Κώδικας C: while (save[i] == k) i += 1; i στον $s3, k στον $s5, η δ/νση του save στον $s6 Μεταγλωττισμένος κώδικας MIPS: Loop: sll $t1, $s3, 2 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 33

34 Βασικά μπλοκ Ένα βασικό μπλοκ (basic block) είναι μια ακολουθία εντολών χωρίς Διακλαδώσεις (εκτός από το τέλος) Προορισμούς διακλάδωσης (εκτός από την αρχή) Ένας μεταγλωττιστής προσδιορίζει βασικά μπλοκ για βελτιστοποίηση Ένας προηγμένος επεξεργαστής μπορεί να επιταχύνει την εκτέλεση των βασικών μπλοκ Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 34

35 Και άλλες λειτουργίες συνθήκης Το αποτέλεσμα παίρνει τη τιμή 1 αν μια συνθήκη είναι αληθής Διαφορετικά, παίρνει τη τιμή 0 slt rd, rs, rt αν (rs < rt) rd = 1 διαφορετικά rd = 0 slti rt, rs, constant αν (rs < constant) rt = 1 διαφορετικά rt = 0 Χρήση σε συνδυασμό με τις beq, bne slt $t0, $s1, $s2 # if ($s1 < $s2) bne $t0, $zero, L # branch to L Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 35

36 Σχεδίαση εντολών διακλάδωσης Γιατί όχι blt, bge, κλπ.; Το υλικό για τις <,, είναι πιο αργό από αυτό για τις =, Ο συνδυασμός συνθηκών για μια διακλάδωση περιλαμβάνει περισσότερη δουλειά ανά εντολή, και απαιτεί πιο αργό ρολόι Επιβαρύνονται όλες οι εντολές! Οι beq και bne είναι η συνήθης περίπτωση Καλός σχεδιαστικός συμβιβασμός Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 36

37 Προσημασμένες και απρόσημες Προσημασμένη σύγκριση: slt, slti Απρόσημη σύγκριση: sltu, sltui Παράδειγμα $s0 = $s1 = slt $t0, $s0, $s1 # προσημασμένη 1 < +1 $t0 = 1 sltu $t0, $s0, $s1 # απρόσημη +4,294,967,295 > +1 $t0 = 0 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 37

38 Κλήση διαδικασίας Απαιτούμενα βήματα 1. Τοποθέτηση παραμέτρων σε καταχωρητές 2. Μεταφορά ελέγχου στη διαδικασία 3. Απόκτηση χώρου αποθήκευσης για τη διαδικασία 4. Εκτέλεση λειτουργιών της διαδικασίας 5. Τοποθέτηση αποτελέσματος σε καταχωρητή για τον καλούντα 6. Επιστροφή στη θέση της κλήσης 2.8 Υποστήριξη διαδικασιών στο υλικό του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 38

39 Χρήση καταχωρητών $a0 $a3: ορίσματα (καταχωρητές 4 7) $v0, $v1: τιμές αποτελέσματος (καταχωρητές 2 και 3) $t0 $t9: προσωρινοί (temporary) Μπορούν να γραφούν με νέες τιμές από τον καλούμενο $s0 $s7: αποθηκευμένοι (saved) Πρέπει να αποθηκευτούν/επαναφερθούν από τον καλούμενο $gp: καθολικός δείκτης (global pointer) για στατικά δεδομένα (καταχ. 28) $sp: δείκτης στοίβας (stack pointer) (καταχ.29) $fp: δείκτης πλαισίου (frame pointer) (καταχ.30) $ra: δνση επιστροφής (return address) (καταχ. 31) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 39

40

41 Εντολές κλήσης διαδικασίας Κλήση διαδικασίας: jump and link jal ProcedureLabel Η δ/νση της επόμενης εντολής γράφεται στον $ra Άλμα στη διεύθυνση προορισμού Επιστροφή από διαδικασία: jump register jr $ra Αντιγράφει τον $ra στο μετρητή προγράμματος (program counter) Μπορεί επίσης να χρησιμοποιηθεί για υπολογισμένα άλματα π.χ., για εντολές case/switch Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 41

42 Παράδειγμα διαδικασίας φύλλου Κώδικας C: int leaf_example (int g, h, i, j) { int f; f = (g + h) - (i + j); return f; } Ορίσματα g, h, i, j στους $a0, $a1, $a2, $a3 f στον $s0 (συνεπώς πρέπει να αποθηκευθεί ο $s0 στη στοίβα) Αποτέλεσμα στον $v0 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 42

43 Παράδειγμα διαδικασίας φύλλου Κώδικας 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 Επιστροφή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 43

44 Διαδικασίες μη φύλλα Διαδικασίες που καλούν άλλες διαδικασίες Για ένθετη(nested) κλήση, ο καλών πρέπει να αποθηκεύσει στη στοίβα: Τη διεύθυνση επιστροφής του Όποια ορίσματα και προσωρινές τιμές χρειάζονται μετά την κλήση Επαναφορά από τη στοίβα μετά την κλήση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 44

45 Παράδειγμα διαδικασίας μη φύλλου Κώδικας C: int fact (int n) { if (n < 1) return 1; else return n * fact(n - 1); } Όρισμα n στον $a0 Αποτέλεσμα fact στον $v0 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 45

46

47 Παράδειγμα διαδικασίας μη φύλλου Κώδικας MIPS: fact: addi $sp, $sp, -8 # adjust stack for 2 items sw $ra, 4($sp) # save return address sw $a0, 0($sp) # save argument slti $t0, $a0, 1 # test for n < 1 beq $t0, $zero, L1 addi $v0, $zero, 1 # if so, result is 1 addi $sp, $sp, 8 # pop 2 items from stack jr $ra # and return L1: addi $a0, $a0, -1 # else decrement n jal fact # recursive call lw $a0, 0($sp) # restore original n lw $ra, 4($sp) # and return address addi $sp, $sp, 8 # pop 2 items from stack mul $v0, $a0, $v0 # multiply to get result jr $ra # and return Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 47

48 Τοπικά δεδομένα στη στοίβα Τοπικά δεδομένα δεσμεύονται από τον καλούμενο π.χ., οι αυτόματες μεταβλητές της C Πλαίσιο διαδικασίας (procedure frame) ή εγγραφή ενεργοποίησης (activation record) Χρησιμοποιείται από μερικούς μεταγλωττιστές για το χειρισμό της αποθήκευσης της στοίβας Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 48

49 Διάταξη της μνήμης Κείμενο (Text): κώδικας του προγράμματος Στατικά δεδομένα (Static data): καθολικές μεταβλητές π.χ., στατικές μεταβλητές της C, πίνακες σταθερών (constant arrays) και συμβολοσειρές (strings) Ο $gp παίρνει αρχική τιμή που επιτρέπει ±σχετικές αποστάσεις μέσα στο τμήμα αυτό Δυναμικά δεδομένα: σωρός (heap) π.χ., malloc στη C, new στη Java Στοίβα (stack): αυτόματη αποθήκευση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 49

50 Δεδομένα χαρακτήρων Σύνολα χαρακτήρων σε κωδικοποίηση byte ASCII: 128 χαρακτήρες 95 γραφικής αναπαράστασης, 33 ελέγχου Latin-1: 256 χαρακτήρες ASCII, +96 επιπλέον χαρακτήρες γραφικής αναπαράστασης Unicode: σύνολο χαρακτήρων 32-bit Χρήση σε Java, και σε wide characters της C++, Τα περισσότερα αλφάβητα του κόσμου, και σύμβολα UTF-8, UTF-16: κωδικοποιήσεις μεταβλητού μήκους 2.9 Επικοινωνία με τους ανθρώπους Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 50

51 Λειτουργίες Byte/Ημιλέξης Θα μπορούσαν να χρησιμοποιήσουν λειτουργίες ανά bit MIPS byte/halfword load/store Επεξεργασία συμβολοσειρών (strings): συνήθης περίπτωση 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) Αποθήκευση (store) μόνο του δεξιότερου byte/ημιλέξης Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 51

52 Παράδειγμα αντιγραφής string Κώδικας C (απλοϊκός): Συμβολοσειρά (string) που τερματίζεται με μηδενικό χαρακτήρα (null char) void strcpy (char x[], char y[]) { int i; i = 0; while ((x[i]=y[i])!='\0') i += 1; } Διευθύνσεις των x, y στον $a0, $a1 Το i στον $s0 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 52

53 Παράδειγμα αντιγραφής string Κώδικας MIPS: strcpy: addi $sp, $sp, -4 # adjust stack for 1 item sw $s0, 0($sp) # save $s0 add $s0, $zero, $zero # i = 0 L1: add $t1, $s0, $a1 # addr of y[i] in $t1 lbu $t2, 0($t1) # $t2 = y[i] add $t3, $s0, $a0 # addr of x[i] in $t3 sb $t2, 0($t3) # x[i] = y[i] beq $t2, $zero, L2 # exit loop if y[i] == 0 addi $s0, $s0, 1 # i = i + 1 j L1 # next iteration of loop L2: lw $s0, 0($sp) # restore saved $s0 addi $sp, $sp, 4 # pop 1 item from stack jr $ra # and return Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 53

54 Παράδειγμα αντιγραφής string strcpy: addi $sp, $sp, -4 # adjust stack for 1 item sw $s0, 0($sp) # save $s0 add $s0, $zero, $zero # i = 0 L1: add $t1, $s0, $a1 # addr of y[i] in $t1 lbu $t2, 0($t1) # $t2 = y[i] add $t3, $s0, $a0 # addr of x[i] in $t3 sb $t2, 0($t3) # x[i] = y[i] beq $t2, $zero, L2 # exit loop if y[i] == 0 addi $s0, $s0, 1 # i = i + 1 j L1 # next iteration of loop L2: lw $s0, 0($sp) # restore saved $s0 addi $sp, $sp, 4 # pop 1 item from stack jr $ra # and return

55 Σταθερές των 32 bit Οι περισσότερες σταθερές είναι μικρές Ένα άμεσο πεδίο των 16 bit είναι αρκετό Για τις περιστασιακές σταθερές των 32 bit lui rt, constant Αντιγράφει τη σταθερά των 16 bit στα 16 αριστερά bit του rt Μηδενίζει τα δεξιά 16 bit του rt lui $s0, 61 ori $s0, $s0, Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Διευθυνσιοδότηση MIPS για Άμεσα και Δνσεις των 32-Bit

56 Διευθυνσιοδότηση διακλαδώσεων Οι εντολές διακλάδωσης (branch) καθορίζουν Opcode, δύο καταχωρητές, δ/νση προορισμού Οι περισσότεροι προορισμοί διακλάδωσης είναι κοντά στην εντολή διακλάδωσης Προς τα εμπρός και προς τα πίσω op rs rt σταθερά ή διεύθυνση 6 bit 5 bit 5 bit 16 bit Διευθυνσιοδότηση σχετική ως προς PC (PC-relative addressing) Δ/νση προορισμού = PC + offset 4 Ο PC είναι ήδη αυξημένος κατά 4 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 56

57 Διευθυνσιοδότηση άλματος Οι προορισμοί άλματος (για τις εντολές j και jal) μπορεί να βρίσκονται οπουδήποτε στο τμήμα κειμένου (κώδικα) Κωδικοποίηση της πλήρους δ/νσης μέσα στην εντολή op address 6 bit 26 bit Ψευδο-άμεση (Pseudo-Direct) διευθυνσιοδότηση άλματος Δ/νση προορισμού = PC : (address 4) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 57

58 Παράδειγμα δ/νσης προορισμού Κώδικας βρόχου από προηγούμενο παράδειγμα Υποθέτουμε ότι το Loop είναι στη θέση Loop: sll $t1, $s3, add $t1, $t1, $s lw $t0, 0($t1) bne $t0, $s5, Exit addi $s3, $s3, j Loop Exit: Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 58

59 Μακρυνή Διακλάδωση Αν ο προορισμός της διακλάδωσης είναι πολύ μακριά για να κωδικοποιηθεί στα 16 bit του πεδίου σχετικής απόστασης (offset), ο συμβολομεταφραστής ξαναγράφει τον κώδικα Παράδειγμα beq $s0,$s1, L1 bne $s0,$s1, L2 j L1 L2: Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 59

60 Περίληψη τρόπων διευθ/σης Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 60

61 Ψευδοεντολές συμβολομεταφραστή Οι περισσότερες εντολές του συμβολομεταφραστή αναπαριστούν εντολές μηχανής μία προς μία Οι Ψευδοεντολές (pseudoinstructions): δημιουργήματα τού συμβολομεταφραστή move $t0, $t1 add $t0, $zero, $t1 blt $t0, $t1, L slt $at, $t0, $t1 bne $at, $zero, L Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 61

62 Παράδειγμα ταξινόμησης σε C Δείχνει τη χρήση των εντολών συμβολικής γλώσσας σε μια συνάρτηση ταξινόμησης φυσαλίδας (bubble sort) C Διαδικασία swap (φύλλο) void swap(int v[], int k) { int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Το v στον $a0, το k στον $a1, το temp στον $t0 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Ένα παράδειγμα ταξινόμησης στη C που τα συνδυάζει όλα

63 Η διαδικασία Swap swap: sll $t1, $a1, 2 # $t1 = k * 4 add $t1, $a0, $t1 # $t1 = v+(k*4) # (address of v[k]) lw $t0, 0($t1) # $t0 (temp) = v[k] lw $t2, 4($t1) # $t2 = v[k+1] sw $t2, 0($t1) # v[k] = $t2 (v[k+1]) sw $t0, 4($t1) # v[k+1] = $t0 (temp) jr $ra # return to calling routine Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 63

64 Η διαδικασία Sort σε C Μη φύλλο (καλεί τη swap) void sort (int v[], int n) { int i, j; for (i = 0; i < n; i += 1) { for (j = i 1; j >= 0 && v[j] > v[j + 1]; j -= 1) { swap(v,j); } } } Το v στον $a0, το k στον $a1, το i στον $s0, το j στον $s1 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 64

65 Το σώμα της διαδικασίας move $s2, $a0 # save $a0 into $s2 move $s3, $a1 # save $a1 into $s3 move $s0, $zero # i = 0 for1tst: slt $t0, $s0, $s3 # $t0 = 0 if $s0 $s3 (i n) beq $t0, $zero, exit1 # go to exit1 if $s0 $s3 (i n) addi $s1, $s0, 1 # j = i 1 for2tst: slti $t0, $s1, 0 # $t0 = 1 if $s1 < 0 (j < 0) bne $t0, $zero, exit2 # go to exit2 if $s1 < 0 (j < 0) sll $t1, $s1, 2 # $t1 = j * 4 add $t2, $s2, $t1 # $t2 = v + (j * 4) lw $t3, 0($t2) # $t3 = v[j] lw $t4, 4($t2) # $t4 = v[j + 1] slt $t0, $t4, $t3 # $t0 = 0 if $t4 $t3 beq $t0, $zero, exit2 # go to exit2 if $t4 $t3 move $a0, $s2 # 1st param of swap is v (old $a0) move $a1, $s1 # 2nd param of swap is j jal swap # call swap procedure addi $s1, $s1, 1 # j = 1 j for2tst # jump to test of inner loop exit2: addi $s0, $s0, 1 # i += 1 j for1tst # jump to test of outer loop Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 65 Μεταφορά παραμέτρων Εξωτερικός βρόχος Εσωτερικός βρόχος Μεταβίβαση παραμέτρων και κλήση Εσωτερικός βρόχος Εξωτερικός βρόχος

66 Η πλήρης διαδικασία sort: addi $sp,$sp, 20 # make room on stack for 5 registers sw $ra, 16($sp) # save $ra on stack sw $s3,12($sp) # save $s3 on stack sw $s2, 8($sp) # save $s2 on stack sw $s1, 4($sp) # save $s1 on stack sw $s0, 0($sp) # save $s0 on stack # procedure body exit1: lw $s0, 0($sp) # restore $s0 from stack lw $s1, 4($sp) # restore $s1 from stack lw $s2, 8($sp) # restore $s2 from stack lw $s3,12($sp) # restore $s3 from stack lw $ra,16($sp) # restore $ra from stack addi $sp,$sp, 20 # restore stack pointer jr $ra # return to calling routine Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 66

67 Επίδραση βελτιστοποιήσεων μεταγλωττιστή Μεταγλώττιση με τον gcc σε Pentium 4 με Linux 3 Σχετική απόδοση Πλήθος εντολών 2, , , καμία O1 O2 O3 0 καμία O1 O2 O Κύκλοι ρολογιού καμία O1 O2 O3 2 1,5 1 0,5 0 CPI καμία O1 O2 O3 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 67

68 Επίδραση της γλώσσας και του αλγορίθμου 3 Σχετική απόδοση bubblesort 2,5 2 1,5 1 0,5 0 C/καμία C/O1 C/O2 C/O3 Java/int Java/JIT 2,5 Σχετική απόδοση quicksort 2 1,5 1 0,5 0 C/καμία C/O1 C/O2 C/O3 Java/int Java/JIT 3000 Επιτάχυνση quicksort έναντι bubblesort C/καμία C/O1 C/O2 C/O3 Java/int Java/JIT Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 68

69 Τι μάθαμε Το πλήθος εντολών και το CPI δεν είναι καλές ενδείξεις απόδοσης από μόνες τους Οι βελτιστοποιήσεις μεταγλώττιστή είναι ευαίσθητες στον αλγόριθμο Ο κώδικας Java/JIT είναι σημαντικά ταχύτερος από τη διερμηνεία της JVM Συγκρίσιμος με το βελτιστοποιημένο κώδικα C σε κάποιες περιπτώσεις Τίποτε δεν μπορεί να διορθώσει έναν ανόητο αλγόριθμο! Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 69

70 Πίνακες και δείκτες Η αριθμοδεικτοδότηση πινάκων (array indexing) περιλαμβάνει Πολλαπλασιασμό του αριθμοδείκτη με το μέγεθος του στοιχείου Πρόσθεση στη διεύθυνση βάσης του πίνακα Οι δείκτες (pointers) αντιστοιχούν απευθείας σε διευθύνσεις μνήμης Μπορούν να μας γλιτώσουν από τις δυσκολίες της αριθμοδεικτοδότησης Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 70

71 Παράδειγμα: μηδενισμός πίνακα clear1(int array[], int size) { int i; for (i = 0; i < size; i += 1) array[i] = 0; } clear2(int *array, int size) { int *p; for (p = &array[0]; p < &array[size]; p = p + 1) *p = 0; } move $t0,$zero # i = 0 loop1: sll $t1,$t0,2 # $t1 = i * 4 add $t2,$a0,$t1 # $t2 = # &array[i] sw $zero, 0($t2) # array[i] = 0 addi $t0,$t0,1 # i = i + 1 slt $t3,$t0,$a1 # $t3 = # (i < size) bne $t3,$zero,loop1 # if ( ) # goto loop1 move $t0,$a0 # p = & array[0] sll $t1,$a1,2 # $t1 = size * 4 add $t2,$a0,$t1 # $t2 = # &array[size] loop2: sw $zero,0($t0) # Memory[p] = 0 addi $t0,$t0,4 # p = p + 4 slt $t3,$t0,$t2 # $t3 = #(p<&array[size]) bne $t3,$zero,loop2 # if ( ) # goto loop2 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 71

72 Πλάνες Ισχυρή εντολή υψηλότερη απόδοση Απαιτούνται λιγότερες εντολές Αλλά οι σύνθετες εντολές είναι δύσκολο να υλοποιηθούν Μπορεί να καθυστερήσουν όλες τις εντολές, ακόμη και τις πιο απλές Οι μεταγλωττιστές είναι καλοί στο να παράγουν γρήγορο κώδικα με απλές εντολές Χρήση κώδικα συμβολικής γλώσσας για υψηλή απόδοση Αλλά οι σύγχρονοι μεταγλωττιστές είναι καλύτεροι στο χειρισμό των σύγχρονων επεξεργαστών Περισσότερες γραμμές κώδικα περισσότερα σφάλματα και μικρότερη παραγωγικότητα 2.18 Πλάνες και παγίδες Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 72

73 Πλάνες Αναδρομική συμβατότητα (backward compatibility) το σύνολο εντολών δεν αλλάζει Αλλά προστίθενται περισσότερες εντολές σύνολο εντολών x86 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 73

74 Παγίδες Οι διαδοχικές λέξεις δεν βρίσκονται σε διαδοχικές διευθύνσεις Αύξηση κατά 4, όχι κατά 1! Διατήρηση ενός δείκτη (pointer) προς μια αυτόματη μεταβλητή μετά την επιστροφή της διαδικασίας π.χ., μεταβίβαση του δείκτη μέσω ενός ορίσματος Ο δείκτης γίνεται άκυρος μετά το «άδειασμα» της στοίβας για τη διαδικασία Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 74

75 Συμπερασματικές παρατηρήσεις Σχεδιαστικές αρχές 1. Η απλότητα ευνοεί την κανονικότητα 2. Το μικρότερο είναι ταχύτερο 3. Κάνε τη συνηθισμένη περίπτωση γρήγορη 4. Η καλή σχεδίαση απαιτεί καλούς συμβιβασμούς Επίπεδα λογισμικού/υλικού Μεταγλωττιστής, συμβολομεταφραστής, υλικό MIPS: τυπική αρχιτεκτονική συνόλου εντολών RISC σύγκριση με x86 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Συμπερασματικές παρατηρήσεις

76 Συμπερασματικές παρατηρήσεις Μέτρηση εκτελέσεων εντολών MIPS σε μετροπρογράμματα Κάνε τη συνηθισμένη περίπτωση γρήγορη Κάνε συμβιβασμούς Κατηγορία εντολής Παραδείγματα MIPS SPEC2006 Int SPEC2006 FP Αριθμητικές add, sub, addi 16% 48% Μεταφοράς δεδομένων Λογικές Διακλάδωσης υπό συνθήκη lw, sw, lb, lbu, lh, lhu, sb, lui and, or, nor, andi, ori, sll, srl beq, bne, slt, slti, sltiu 35% 36% 12% 4% 34% 8% Άλματος j, jr, jal 2% 0% Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 76

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

Κεφάλαιο 2. Εντολές: η γλώσσα του υπολογιστή Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή Σύνολο εντολών Σύνολο εντολών (Instruction set) Το «ρεπερτόριο» των εντολών ενός υπολογιστή Διαφορετικοί υπολογιστές έχουν διαφορετικά σύνολα εντολών Αλλά με

Διαβάστε περισσότερα

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

Εντολές του MIPS (2) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3

Διαβάστε περισσότερα

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 3 Εντολές του MIPS (2) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 3 Εντολές του MIPS (2) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Y Παράδειγμα (συνέχεια από προηγ. διάλεξη) $s3 = &A[0] = 0x0001080 &A[8]

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5 ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 5 Διαδικασίες ΙI Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Κατανομή μνήμης Κείμενο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4 ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 4 Διαδικασίες Ι Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Εισαγωγή στους Η/Υ (ΗΥ134) 1 Διευθυνσιοδότηση διακλαδώσεων

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 3ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Stored Program Computers Αναπαράσταση

Διαβάστε περισσότερα

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

Συναρτήσεις-Διαδικασίες ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 4 Συναρτήσεις-Διαδικασίες Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Διαδικασίες (procedures) Γνωστές και σαν υπορουτίνες (subroutines)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Μάθημα 2 ο Σύνολα Εντολών Οι εντολές που εκτελεί ο κάθε επεξεργαστής (ή οικογένεια επεξεργαστών) MIPS ARM SPARC PowerPC IA-32 Αρχιτεκτονικές συνόλου εντολών Βασικές Έννοιες Εντολές μηχανής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1 Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 1 Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly Αρης Ευθυμίου Το σημερινό μάθημα! Σύνταξη εντολών! Θέματα σχετικά με τη προσπέλαση, οργάνωση μνήμης διευθύνση για κάθε byte διευθύνσεις λέξεων

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές ΠΛΕ- 027 Μικροεπεξεργαστές 2ο μάθημα: γλώσσα μηχανής MIPS, προγραμματισμός assembly Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Σύνολο εντολών μηχανής Το λεξιλόγιο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

6. Επιστροφή ελέγχου στο σημείο εκκίνησης Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής

Διαβάστε περισσότερα

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

Υποστήριξη διαδικασιών στο υλικό των υπολογιστών Βήματα στην εκτέλεση μιας διαδικασίας (procedure) 1. Τοποθέτηση παραμέτρων 2. Μεταβίβαση ελέγχου στη διαδικασία 3. Λήψη πόρων αποθήκευσης 4. Εκτέλεση επιθυμητής εργασίας 5. Τοποθέτηση αποτελέσματος σε

Διαβάστε περισσότερα

MIPS functions and procedures

MIPS functions and procedures Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης MIPS functions and procedures Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή INSTRUCTIONS LANGUAGE OF THE MACHINE Οργάνωση Υπολογιστή Τυπική οργάνωση υπολογιστή 1 Εκτέλεση προγραμμάτων σε υπολογιστή INSTRUCTION SET Οι λέξεις στη γλώσσα μηχανής ονομάζονται εντολές (instructions)

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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;

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; Άσκηση 1 η Μέρος Α Ζητούμενο: Δίνεται το παρακάτω πρόγραμμα σε C καθώς και μια μετάφραση του σε assembly MIPS. Συμπληρώστε τα κενά. Σας υπενθυμίζουμε ότι ο καταχωρητής $0 (ή $zero) είναι πάντα μηδέν. int

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Κεφάλαιο 2 Ασκήσεις Άσκηση 1 Κώδικας C: f = g + h + B[4]; f = g A[B[4]]; f, g, h, στους $s0, $s1, $s2, και διευθύνσεις βάσης των πινάκων Α και Β στους $s6 και $s7 Ποιος είναι ο αντίστοιχος κώδικας MIPS;

Διαβάστε περισσότερα

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

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

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι Επιλεγμένες εντολές και συναρτήσεις assembly Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

Διαβάστε περισσότερα

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

Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) Κεφάλαιο 2 Εντολές Η γλώσσα της Μηχανής (Instructions Language of the Computer) 1 Ανακοινώσεις Ιστοσελίδα μαθήματος ΗΜΥ 212, ενημερώνεται συχνά: http://www.ece.ucy.ac.cy/courses/ece212/ Ιστοσελίδα εργαστηρίου

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Ευάγγελος Καρβούνης Παρασκευή, 15/01/2016 Τι είναι ομάδα εντολών;

Διαβάστε περισσότερα

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 5ο μάθημα:αρχές, ιδιότητες αρχιτεκτονικού συνόλου εντολών (ISA) Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Εσωτερική αποθήκευση

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

Data-Level Parallelism Linking & Loading

Data-Level Parallelism Linking & Loading ΗΥ 232 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Διάλεξη 18 Data-Level Parallelism Linking & Loading Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Y (ECE 232) 1

Διαβάστε περισσότερα

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 2 Εντολές: H γλώσσα μηχανής ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 2 Εντολές: H γλώσσα μηχανής Αρχιτεκτονική Σύνολο Εντολών MIPS (assembly) αναπαράσταση στο υλικό (ΜIPS) μετάφραση από HLL σε LLL Δομές ελέγχου

Διαβάστε περισσότερα

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y» ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y» Σάββατο, 31 Οκτωβρίου 2015 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 150 ΛΕΠΤΑ ΘΕΜΑ 1.

Διαβάστε περισσότερα

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Σχεδίαση datapath Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη μνήμη (lw,

Διαβάστε περισσότερα

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

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις Άσκηση 1: Σωστό/Λάθος

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ο

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια. Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 4 Εαρινό Εξάμηνο 2012-2013 Στόχοι του εργαστηρίου Χρήση στοίβας Συναρτήσεις ΠΡΟΣΟΧΗ: Αρχίστε νωρίς

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath O επεξεργαστής: Η δίοδος δεδοµένων (path) και η µονάδα ελέγχου (control) Σχεδίαση path 4 κατηγορίες εντολών: Αριθµητικές-λογικές εντολές (add, sub, slt κλπ) R Type Εντολές αναφοράς στη µνήµη (lw, sw) I

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών MIPS ISA Αρχιτεκτονική Υπολογιστών MIPS ISA 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 2η: Αναπαράσταση Πληροφορίας - Σύνολα Εντολών Άσκηση 1: Να αποδείξετε ότι η μοναδική μη προσημασμένη ακέραια

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Άσκηση 1 (α) Άσκηση 1 (γ) Άσκηση 1 (β) Παραδείγματα Assembly. Άρα με έλεγχο στον $t1 αποφασίζω αν είναι 0 ή 1. (α) Παραδείγματα Assembly Εαρινό Εξάμηνο 2012 Γράψτε ένα μικρό πρόγραμμα (1-3 εντολές) με το οποίο μπορείτε να ανιχνεύσετε την τιμή του δυαδικού ψηφίου στη θέση 7 της θέσης μνήμης 0Χ23450009 εάν το λιγότερο

Διαβάστε περισσότερα

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

Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης Περιγραφή αρχιτεκτονικής MIPS MIPS assembly (1o και 2o μέρος) Άδεια Χρήσης Το

Διαβάστε περισσότερα

Απόδοση Υπολογιστικών Συστημάτων

Απόδοση Υπολογιστικών Συστημάτων ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 14 Απόδοση Υπολογιστικών Συστημάτων Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Τι σημαίνει απόδοση; Ποιό αεροπλάνο

Διαβάστε περισσότερα

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Ενότητα 1η: Αναπαράσταση Πληροφορίας Άσκηση 1: Να αποδείξετε ότι η μοναδική μη προσημασμένη ακέραια αναπαράσταση του αριθμού με τιμή 0 σε αριθμητικό σύστημα οποιασδήποτε

Διαβάστε περισσότερα

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

Παραδείγματα Assembly (Μέρος Παραδείγματα Assembly (Μέρος Β) 1 Άσκηση 1 Γράψτε ένα πρόγραμμα (4 εντολών) με το οποίο μπορείτε να προσθέσετε το περιεχόμενο των θέσεων μνήμης 0Χ30000000 και 0Χ30000001. Το αποτέλεσμα να αποθηκευτεί ως

Διαβάστε περισσότερα

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

Αναδρομή. ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 6. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 6 Αναδρομή Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Υπολογισμός Παραγοντικού n! n! = 1*2..(n-1)*n = if n

Διαβάστε περισσότερα

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

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Τι

Διαβάστε περισσότερα

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων ΗΥ 232 Οργάνωση και στον Σχεδίαση Η/Y Διάλεξη 7 Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Τι σημαίνει απόδοση; Αεροσκάφος NYC to Paris

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

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

Τρόποι Διευθυνσιοδότησης Τρόποι Διευθυνσιοδότησης στους Μικροεπεξεργαστές MIPS-32 (Διάλεξη 2) 1 Τρόποι Διευθυνσιοδότησης Η διεύθυνση μνήμης μπορεί να δηλωθεί με 6 τρόπους : 1. Περιεχόμενο καταχωρητή: 2. Άμεση τιμή: 3. Άμεση τιμή

Διαβάστε περισσότερα

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

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

Single Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: 2014-2015 Νεκ. Κοζύρης nkoziris@cslab.ece.ntua.gr Single Cycle Datapath http://www.cslab.ece.ntua.gr/courses/comparch/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Αριθμητική Υπολογιστών (Κεφάλαιο 3) ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 9 Αριθμητική Υπολογιστών (Κεφάλαιο 3) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Αριθμητική για υπολογιστές

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2017-18 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Αρχιτεκτονική x86-64) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Εντολές γλώσσας μηχανής Εντολές γλώσσας μηχανής Στον υπολογιστή MIPS η εντολή πρόσθεσε τα περιεχόμενα των καταχωρητών 17 και 20 και τοποθέτησε το αποτέλεσμα στον καταχωρητή 9 έχει την μορφή: 00000010001101000100100000100000 Πεδία

Διαβάστε περισσότερα

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

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2017-18 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Αρχιτεκτονική x86-64) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών Διδάσκων: Δρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213 Περίληψη Αρχιτεκτονική Μικροεπεξεργαστών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τελική Εξέταση, Απαντήσεις/Λύσεις ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) HMΜY 212 Οργάνωση Η/Υ και Μικροεπεξεργαστές Εαρινό Εξάμηνο, 2007 Τελική Εξέταση, Απαντήσεις/Λύσεις Άσκηση 1: Assembly για

Διαβάστε περισσότερα

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

Μετάφραση ενός Προγράμματος Εξαιρέσεις ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι Διάλεξη 7 Μετάφραση ενός Προγράμματος Εξαιρέσεις Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων 1 Στάδια μετάφρασης ενός προγράμματος

Διαβάστε περισσότερα

Οι υπολογιστές στον πραγματικό κόσμο

Οι υπολογιστές στον πραγματικό κόσμο Οι υπολογιστές στον πραγματικό κόσμο Βοήθεια στη διάσωση του περιβάλλοντος με δεδομένα Πρόβλημα: Η παρακολούθηση φυτών και ζώων του περιβάλλοντός μας για τη συλλογή πληροφοριών που μπορεί να επηρεάσουν

Διαβάστε περισσότερα

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

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1 Εργαστήριο Αρ. 1 Εισαγωγή στην Αρχιτεκτονική MIPS Πέτρος Παναγή Σελ. 1 Πώς Δημιουργείτε ένα Executable Αρχείο Source File: Ένα TEXT αρχείο με τον πυγαίο κώδικα. Assemble: Μεταφράζει τις assembly εντολές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

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

Chapter 3 Αριθμητική Υπολογιστών Chapter 3 Αριθμητική Υπολογιστών Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών. Data. Κείμενο. Βίντεο. Αριθμοί Εικόνες. Ήχοι Data Κείμενο Βίντεο Αριθμοί Εικόνες Ήχοι 1 Τα δεδομένα στους ηλεκτρονικούς υπολογιστές αναπαρίστανται σαν αριθμοί Οι αριθμοί αποθηκεύονται σε bits (δυαδικό σύστημα). Θέματα: Πως αναπαριστώνται οι αρνητικοί

Διαβάστε περισσότερα

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

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών Instruction Fetch (IF) Instruction Decode (ID) Operand Fetch (OF) Execute (Ex) Result Store (WB) Next Instruction Αριθμός εντολών Μορφή Εντολών: μεταβλητό ή σταθερό μέγεθος

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Αριθμητικά Συστήματα

Αριθμητικά Συστήματα Αριθμητικά Συστήματα Οργάνωση Δεδομένων (1/2) Bits: Η μικρότερη αριθμητική μονάδα ενός υπολογιστικού συστήματος, η οποία δείχνει δύο καταστάσεις, 0 ή 1 (αληθές η ψευδές). Nibbles: Μονάδα 4 bit που παριστά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Οι υπολογιστές στον πραγματικό κόσμο

Οι υπολογιστές στον πραγματικό κόσμο Οι υπολογιστές στον πραγματικό κόσμο Η Τεχνολογία των Πληροφοριών για τα 4 δισεκατομμύρια που δεν τη διαθέτουν Σε όλο το βιβλίο θα δείτε ενότητες με τον τίτλο «Οι υπολογιστές στον πραγματικό κόσμο». Αυτές

Διαβάστε περισσότερα

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 9 : Ομάδες Εντολών: Ιδιότητες και Λειτουργίες Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών

Διαβάστε περισσότερα

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

ΠΛΕ- 027 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου ΠΛΕ- 27 Μικροεπεξεργαστές 5ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση ενός κύκλου Αρης Ευθυμίου Δομή σύγχρονων υπολογιστών Κώδικας μηχανής Αρχιτεκτονικό συνόλο εντολών (InstrucDon Set Architecture ISA)

Διαβάστε περισσότερα

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86 Αρης Ευθυμίου Το σημερινό μάθημα! Λυση του lab02! Αρχιτεκτονική ARM σε τι μοιάζει και σε τι διαφέρει από τον MIPS! Αρχιτεκτονική x86 μια γρήγορη ματιά στη

Διαβάστε περισσότερα