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

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

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

Transcript

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

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

3 «Αποθηκευµένο πρόγραµµα» The stored program concept Η ιδέα ότι οι εντολές και τα δεδοµένα πολλών τύπων µπορούν να αποθηκευτούν στη µνήµη ως αριθµοί Οδήγησε στον υπολογιστή αποθηκευµένου προγράµµατος (stored program computer) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 3

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

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

6 Πρόσθεση και αφαίρεση Κώδικας C: a = b + c; d = a e; Μεταγλωττισµένος κώδικας MIPS: add a, b, c sub d, a, e Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 6

7 Σύνθετη ανάθεση τιµής Κώδικας 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 Μία γραµµή κώδικα C, τρεις γραµµές κώδικα assembly MIPS Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 7

8 Πίνακες εντολών στο βιβλίο Συµβολική γλώσσα του MIPS Κατηγορία Εντολή Παράδειγµα Σηµασία Σχόλια Αριθµητικές πράξεις Μεταφορά δεδοµένων Λογικές πράξεις add add $s1,$s2,$s3 $s1 = $s2 + $s3 Τρεις τελεστέοι καταχωρητές subtract sub $s1,$s2,$s3 $s1 = $s2 $s3 Τρεις τελεστέοι καταχωρητές add immediate addi $s1,$s2,20 $s1 = $s Χρήση για πρόσθεση σταθεράς load word store word lw $s1,20($s2) $s1 = Memory[$s2+20] Λέξη από τη µνήµη σε καταχωρητή sw $s1,20($s2) Memory[$s2+20] = $s1 Λέξη από καταχωρητή στη µνήµη load half unsigned lhu $s1,20($s2) $s1 = Memory[$s2 + 20] Ηµιλέξη από τη µνήµη σε καταχωρητή store half load byte unsigned store byte sh $s1,20($s2) Memory[$s2 + 20] = $s1 Ηµιλέξη από καταχωρητή στη µνήµη lbu s1,20($s2) $s1 = Memory[$s2 + 20] Byte από τη µνήµη σε καταχωρητή sb $s1,20($s2) Memory[$s2 + 20] = $s1 Byte από καταχωρητή στη µνήµη load linked word 11 $s1,20(s2) $s1 = Memory[$s2 + 20] Φόρτωση λέξης ως πρώτο µέρος µιας αδιαίρετης εναλλαγής store condition. sc $s1,20($s2) Memory[$s2 + 20] = $s1; Αποθήκευση λέξης ως δεύτερο word $s1 = 0 ή 1 µέρος µιας αδιαίρετης εναλλαγής load upper lui $s1,20 $s1 = 20 * 2 16 Φορτώνει σταθερά στα immediate υψηλότερα 16 bit and and $s1,$s2,$s3 $s1 = $s2 & $s3 Τρεις τελεστέοι καταχωρητές AND bit προς bit or or $s1,$s2,$s3 $s1 = $s2 $s3 Τρεις τελεστέοι καταχωρητές OR bit προς bit nor nor $s1,$s2,$s3 $s1 = ~ ($s2 $s3) Τρεις τελεστέοι καταχωρητές NOR bit προς bit and immediate andi $s1,$s2,20 $s1 = $s2 & 20 AND bit προς bit µε σταθερά Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 8

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

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

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

12 ιευθύνσεις byte και λέξεων Κάθε λέξη των 32 bit αποτελείται από 4 byte Κάθε byte έχει δική του διεύθυνση word 0 word 1 0xbf 0x1a 0x0c 0xde 0xaa 0x57 0xc5 0x4b byte address 0 byte address 1 byte address 2 byte address 3 byte address 4 byte address 5 byte address 6 byte address 7 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 12

13 Ευθυγράµµιση Ευθυγραµµισµένες (aligned) και µη ευθυγραµµισµένες (unaligned) λέξεις ευθυγραµµισµένη µη ευθυγραµµισµένη µη ευθυγραµµισµένη byte address 0 byte address 1 byte address 2 byte address 3 byte address 4 byte address 5 ευθυγραµµισµένη byte address 6 byte address 7 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 13

14 Big/Little Endian Πως αποθηκεύονται τα byte µιας λέξης 0x Οργάνωση big endian 0x33 0x22 0x11 0x00 b3 b2 b1 b0 Οργάνωση little endian b3 b2 0x33 0x22 byte address K (word address) byte address K+1 0x00 0x11 b0 b1 b1 0x11 byte address K+2 0x22 b2 b0 0x00 byte address K+3 0x33 b3 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 14

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

16 Εξήγηση παραδείγµατος νση βάσης (ή αρχική δνση) του Α είναι η δνση byte όπου βρίσκεται το στοιχείο Α[0] Επειδή είναι πίνακας λέξεων (32 bit) κάθε στοιχείο A[i] καταλαµβάνει 4 byte και αρχίζει από τη δνση «βάση»+4*i. «βάση» του Α ή δνση του Α[0] δνση του Α[1] δνση του Α[2] δνση του Α[7] δνση του Α[8] σχετική απόσταση (offset) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 16

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

18 Κανόνας για σχετ.απόσταση Η σχετική απόσταση (offset) σε µια εντολή lw ή µια εντολή sw για την προσπέλαση του στοιχείου a[i] ενός πίνακα υπολογίζεται (από τον προγραµµατιστή σε συµβολική γλώσσα ή τον µεταγλωττιστή) ως εξής: offset = i * (µέγεθος του a[i] σε byte) Πχ. αν ο πίνακας a περιέχει λέξεις (δηλαδή κάθε a[i] έχει µέγεθος 4 byte τότε το offset στην εντολή είναι ίσο µε 4*i lw $t0, offset($s3) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 18

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

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

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

22 Ακέραιοι δυαδικοί αριθµοί Ο MIPS αποθηκεύει και επεξεργάζεται απρόσηµους (unsigned) ( 0) και προσηµασµένους (signed) (θετικούς και αρνητικούς) ακεραίους των 32 bit 2.4 Προσηµασµένοι και απρόσηµοι αριθµοί Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 22

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

24 Προσηµασµένοι αριθµοί ιαφορετικές αναπαραστάσεις Συµπλήρωµα ως προς 2 Two s complement Συµπλήρωµα ως προς 1 One s complement Πρόσηµο και µέγεθος Sign and magnitude Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 24

25 Συµπλήρωµα ως προς 2 Με δεδοµένο έναν αριθµό των n bit x = x + n 1 n n x n L + x 1 2 x 0 2 Εύρος: 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 Εντολές: η γλώσσα του υπολογιστή 25

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

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

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

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

30 Μορφές εντολών MIPS Ο MIPS έχει µόνο 3 µορφές εντολών (instruction formats) Μορφή-R (R-format) Από το Register Μορφή-Ι (I-format) Από το Immediate Μορφή-J (J-format) Από το Jump Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 30

31 Εντολές µορφής 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 Εντολές: η γλώσσα του υπολογιστή 31

32 Παράδειγµα µορφής 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 Εντολές: η γλώσσα του υπολογιστή 32

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

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

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

36 Λογικές λειτουργίες Εντολές για χειρισµούς ανά 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 Εντολές: η γλώσσα του υπολογιστή 36

37 Λειτουργίες ολίσθησης 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 Εντολές: η γλώσσα του υπολογιστή 37

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

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

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

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

42 Μεταγλώττιση εντολών if Κώδικας C: if (i==j) f = g+h; else f = g-h; 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: ο συµβολοµεταφραστής υπολογίζει τις διευθύνσεις Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 42

43 Μεταγλώττιση εντολών 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 Εντολές: η γλώσσα του υπολογιστή 43

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

45 Και άλλες λειτουργίες συνθήκης Set-on-less than (slt) Το αποτέλεσµα παίρνει τη τιµή 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 Εντολές: η γλώσσα του υπολογιστή 45

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

47 Υλοποίηση άλλων συνθηκών Πως υλοποιούµε την «εντολή» bge bge $s1, $s2, L Με συνδυασµό των slt και beq/bne slt $t0, $s1, $s2 beq $t0, $zero, L εν είναι πραγµατική εντολή του MIPS, αλλά οι assemblers (όπως ο SPIM) έχουν την «ψευδοεντολή» bge Θα ξαναµιλήσουµε για τις ψευδοεντολές (pseudo-instructions) αργότερα Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 47

48 Προσηµασµένες και απρόσηµες Προσηµασµένη σύγκριση: 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 Εντολές: η γλώσσα του υπολογιστή 48

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

50 Χρήση καταχωρητών $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 Εντολές: η γλώσσα του υπολογιστή 50

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

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

53 Παράδειγµα διαδικασίας φύλλου Πρέπει να τοποθετηθούν στους $a0, $a1, $a2, $a3 οι τιµές των παραµέτρων κλήσης π.χ. (το πρόγραµµα που καλεί τη leaf_example έχει στους $s0, $s1, $s2, $s3 τις µεταβλητές που θα δώσουν τιµές στα ορίσµατα g, h, i, j. add $a0,$s0,$zero add $a1,$s1,$zero add $a2,$s2,$zero add $a3,$s3,$zero Κώδικας MIPS για την κλήση της: jal leaf_example Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 53

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

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

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

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

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

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

60 Αναδροµή ουράς Μερικές αναδροµικές διαδικασίες σε C µπορούν να υλοποιηθούν µε επανάληψη ενός βρόχου και όχι µε αναδροµή Ταχύτερες: αποφυγή των επιβαρύνσεων της αναδροµής και τις πολλαπλές κλήσεις διαδικασίας πχ. int sum (int n, int acc) { if (n > 0) return sum(n 1, acc + n); else return acc; } Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 60

61 Αναδροµή ουράς (συνέχεια) Η κλήση sum(3,0) θα καλέσει διαδοχικά τις sum(2,3), sum(1,5), και sum(0,6) µεγάλη επιβάρυνση, ονοµάζεται κλήση ουράς (tail call) και αναδροµή ουράς (tail recursion) Υλοποίηση µε βρόχο (το n στον $α0, και το acc στον $a1) sum: slti $a0,1 # έλεγχο αν n <= 0 beq$a0, $zero, sum_exit # µετάβαση sum_exit # αν n <= 0 add$ a1, $a1, $a0 # πρόσθεση n στο acc addi $a0, $a0, 1 # αφαίρεση 1 από n j sum # µετάβαση στη sum sum_exit: add$v0, $a1, $zero # επιστροφή τιµή acc jr $ra # επιστροφή σε καλούντα Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 61

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

63 Λειτουργίες 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 Εντολές: η γλώσσα του υπολογιστή 63

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

65 Παράδειγµα αντιγραφής 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 Εντολές: η γλώσσα του υπολογιστή 65

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

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

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

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

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

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

72 Αποκωδ/ση κώδικα µηχανής Ποια είναι η συµβολική εντολή που αντιστοιχεί στη εντολή µηχανής00af8020 hex 1 ο βήµα: µετατροπή στο δυαδικό για να βρούµε το opcode Συµβουλευόµαστε τον επόµενο πίνακα Που βρίσκεται το opcode = ; Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 72

73 Αποκωδικοποίησης συνέχεια op(31:26) 0(000) 1(001) 2(010) 3(011) 4(100) 5(101) 6(110) 7(111) 0(000) µορφή R Bltz/gez jump jump & link branch eq branch ne blez bgtz 1(001) add addiu set less set less than andi ori xori load upper immediate than imm. imm. unsigned immediate 2(010) TLB FlPt 3(011) 4(100) load byte load half 5(101) store byte store half 6(110) load lwc1 linked word 7(111) store swc1 cond. word lwl load word load byte unsigned load half unsigned lwr swl store word swr Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 73

74 Αποκωδικοποίησης συνέχεια opcode = , άρα εντολή τύπου-r Γνωρίζουµε όλα τα πεδία (του τύπου-r) opcode rs rt rd shamt funct Με βάση το πεδίο funct = βρίσκουµε ποια εντολή του τύπου-r είναι Συµβουλευόµαστε τον επόµενο πίνακα Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 74

75 Αποκωδικοποίησης συνέχεια shift left 0(000) logical 1(001) jump register op(31:26)= (µορφή R), funct(5:0) 0(000) 1(001) 2(010) 3(011) 4(100) 5(101) 6(110) 7(111) shift right sra sllv srlv srav logical jalr syscall break 2(010) mfhi mthi mflo mtlo 3(011) mult multu div divu add addu subtract subu and or xor not or 4(100) (nor) 5(101) set l.t. set l.t. unsigned 6(110) 7(111) Άρα είναι η εντολή add Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 75

76 Αποκωδικοποίησης συνέχεια Βρίσκουµε και τους καταχωρητές rs = 5 ($a1) rt = 15 ($t7) rd = 16 ($s0) Το πεδίο shamt είναι (δε χρησιµοποιείται στην εντολή add) Τελικά η εντολή είναι η: add $s0, $a1,$t7 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 76

77 Συγχρονισµός ύο επεξεργαστές µοιράζονται µια περιοχή µνήµης Ο P1 γράφει, µετά ο P2 διαβάζει Συναγωνισµός δεδοµένων (data race) αν οι P1 και P2 δε συγχρονιστούν Το αποτέλεσµα εξαρτάται από τη σειρά των προσπελάσεων Απαιτείται υποστήριξη από το υλικό Αδιαίρετη (ατοµική) λειτουργία ανάγνωσης/εγγραφής µνήµης Καµία άλλη προσπέλαση στη θέση αυτή δεν επιτρέπεται ανάµεσα στην ανάγνωση και την εγγραφή Μπορεί να είναι µία εντολή Π.χ. αδιαίρετη εναλλαγή καταχωρητή µνήµης ή ένα αδιαίρετο ζεύγος εντολών 2.11 Παραλληλία και εντολές: συγχρονισµός Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 77

78 Συγχρονισµός στον MIPS Load linked: ll rt, offset(rs) Store conditional: sc rt, offset(rs) Το ζεύγος εντολών ll/sc επιτυγχάνει αν η θέση (µνήµης) δεν έχει αλλάξει µεταξύ των ll και sc Επιστρέφει 1 στον rt Αποτυγχάνει αν η θέση µνήµης έχει αλλάξει Επιστρέφει 0 στον rt Παράδειγµα: αδιαίρετη εναλλαγή atomic swap (για test/set µιας µεταβλητής κλειδώµατος) try: add $t0,$zero,$s4 ;copy exchange value ll $t1,0($s1) ;load linked sc $t0,0($s1) ;store conditional beq $t0,$zero,try ;branch store fails add $s4,$zero,$t1 ;put load value in $s4 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 78

79 Μετάφραση και εκκίνηση Πολλοί µεταγλωττιστές παράγουν απευθείας αντικειµενικές µονάδες (object modules) Στατική σύνδεση (static linking) 2.12 Μετάφραση και εκκίνηση ενός προγράµµατος Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 79

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

81 Παραγωγή αντικειµενικής µονάδας Ο συµβολοµεταφραστής (ή ο µεταγλωττιστής) µεταφράζει το πρόγραµµα σε εντολές µηχανής Παρέχει πληροφορία για την κατασκευή ενός πλήρους προγράµµατος από τα µέρη του Κεφαλίδα (header): περιγράφει τα περιεχόµενα της αντικειµενικής µονάδας Τµήµα κειµένου (text segment): µεταφρασµένες εντολές Τµήµα στατικών δεδοµένων (static data segment): δεδοµένα που κατανέµονται για όλη τη διάρκεια ζωής του προγράµµατος Πληροφορία επανατοποθέτησης (relocation info): για περιεχόµενα που εξαρτώνται από την απόλυτη θέση του φορτωµένου προγράµµατος Πίνακας συµβόλων (symbol table): καθολικοί ορισµοί και εξωτερικές αναφορές Πληροφορίες αποσφαλµάτωσης (debug info): για συσχέτιση µε τον πηγαίο κώδικα Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 81

82 Σύνδεση αντικειµενικών µονάδων Παράγει µια εκτελέσιµη εικόνα (executable image) 1.Ενώνει τα τµήµατα 2.Επιλύει τις ετικέτες (προσδιορίζει τις διευθύνσεις τους) 3. ιορθώνει (patching) τις αναφορές που εξαρτώνται από τη θέση και τις εξωτερικές αναφορές Θα µπορούσε να αφήσει τις εξαρτήσεις θέσεων να ρυθµιστούν από ένα φορτωτή επανατοποθέτησης (relocating loader) Αλλά µε την εικονική µνήµη, αυτό δεν είναι απαραίτητο Το πρόγραµµα µπορεί να φορτωθεί σε απόλυτη θέση στο χώρο των εικονικών διευθύνσεων Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 82

83 Παράδειγµα σύνδεσης ιαδικασία Α (αντικειµενικό αρχείο) Επικεφαλίδα αντικειµενικού αρχείου Όνοµα ιαδικασία Α Μέγεθος κειµένου 100 hex Μέγεθος δεδοµένων 20 hex Τµήµα κειµένου ιεύθυνση Εντολή 0 lw $a0, 0($gp) 4 jal 0... Τµήµα δεδοµένων 0 (X)... Πληροφορίες επανατοποθέτησης ιεύθυνση Τύπος εντολής Εξάρτηση 0 lw X 4 jal B Πίνακας συµβόλων Ετικέτα ιεύθυνση X B Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 83

84 Παράδειγµα σύνδεσης (συν.) ιαδικασία Β (αντικειµενικό αρχείο) Επικεφαλίδα αντικειµενικού αρχείου Όνοµα ιαδικασία Β Μέγεθος κειµένου 200 hex Μέγεθος δεδοµένων 30 hex ιεύθυνση Εντολή 0 sw $a1, 0($gp) 4 jal 0... Τµήµα δεδοµένων 0 (Υ)... Πληροφορίες επανατοποθέτησης ιεύθυνση Τύπος εντολής Εξάρτηση 0 sw Y 4 jal A Πίνακας συµβόλων Ετικέτα ιεύθυνση Y A Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 84

85 Σύνδεση σε εκτελέσιµο Κείµενο hex δεδοµένα hex Επικεφαλίδα εκτελέσιµου αρχείου Μέγεθος κειµένου Μέγεθος δεδοµένων 300 hex 50 hex Τµήµα κειµένου ιεύθυνση Εντολή hex lw $a0, 8000 hex ($gp) hex jal hex hex sw $a1, 8020 hex ($gp) hex jal hex... Τµήµα δεδοµένων ιεύθυνση hex (X) hex (Υ) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 85

86 Φόρτωση προγράµµατος Φόρτωση από το αρχείο εικόνας (image file) του δίσκου στη µνήµη για να εκτελεστεί 1.Ανάγνωση της κεφαλίδας (header) για να καθοριστούν τα µεγέθη των τµηµάτων 2. ηµιουργία χώρου εικονικών διευθύνσεων 3.Αντιγραφή του κώδικα (text) και των δεδοµένων, που έχουν πάρει αρχικές τιµές, στη µνήµη Ή ενεργοποίηση των καταχωρίσεων του πίνακα σελίδων ώστε να δηµιουργηθούν σφάλµατα σελίδας και να µεταφερθούν στη µνήµη 4.Τοποθέτηση των ορισµάτων στη στοίβα 5.Αρχικές τιµές καταχωρητών (και οι $sp, $fp, $gp) 6.Άλµα στη ρουτίνα εκκίνησης Αντιγράφει τα ορίσµατα στους $a0, και καλεί τη main Όταν η main επιστρέψει, εκτελείται η κλήση συστήµατος exit Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 86

87 υναµική σύνδεση Η σύνδεση και φόρτωση των διαδικασιών βιβλιοθήκης γίνεται µόνο όταν καλούνται Απαιτείται ο κώδικας της διαδικασίας να είναι επανατοποθετήσιµος (relocatable) Αποφεύγει τη διόγκωση της εικόνας του προγράµµατος που προκαλεί η στατική σύνδεση όλων των βιβλιοθηκών που αναφέρονται Αυτόµατα λαµβάνει υπόψη τις νέες εκδόσεις βιβλιοθηκών Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 87

88 «Ράθυµη» (lazy) σύνδεση Πίνακας εµµεσότητας (indirection table) Στέλεχος (stub): φορτώνει την ταυτότητα (ID) της ρουτίνας, Άλµα στο πρόγραµµα σύνδεσης και φόρτωσης Κώδικας προγράµµατος σύνδεσης και φόρτωσης υναµικά χαρτογραφηµένος κώδικας Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 88

89 Εκκίνηση εφαρµογών Java Απλό, φορητό σύνολο εντολών της JVM Μεταγλωττίζει τα bytecode των «καυτών» µεθόδων σε εγγενή κώδικα της µηχανής υπηρεσίας (host) ιερµηνεύει τα bytecode Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 89

90 Παράδειγµα ταξινόµησης σε 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 που τα συνδυάζει όλα

91 Η διαδικασία 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 Εντολές: η γλώσσα του υπολογιστή 91

92 Η διαδικασία 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 Εντολές: η γλώσσα του υπολογιστή 92

93 Το σώµα της διαδικασίας 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 Εντολές: η γλώσσα του υπολογιστή 93

94 Η πλήρης διαδικασία 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 Εντολές: η γλώσσα του υπολογιστή 94

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

96 Επίδραση της γλώσσας και του αλγορίθµου 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 Εντολές: η γλώσσα του υπολογιστή 96

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

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

99 Παράδειγµα: µηδενισµός πίνακα clear1(int array[], int size) { int i; for (i = 0; i < size; i += 1) array[i] = 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 clear2(int *array, int size) { int *p; for (p = &array[0]; p < &array[size]; p = p + 1) *p = 0; } 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 Εντολές: η γλώσσα του υπολογιστή 99

100 Σύγκριση πινάκων και δεικτών Ο πολλαπλασισµός υφίσταται «µείωση δύναµης» ( strength reduction ) σε ολίσθηση Η έκδοση µε πίνακες απαιτεί η ολίσθηση να είναι µέσα στο βρόχο Είναι µέρος του υπολογισµού αριθµοδείκτη µετά την αύξηση του i Αντιδιαστολή µε την αύξηση του δείκτη (pointer) Ο µεταγλωττιστής µπορεί να πετύχει το ίδιο αποτέλεσµα µε τη χρήση δεικτών (pointers) από τον προγραµµατιστή Απαλοιφή επαγωγικής µεταβλητής (induction variable elimination) Καλύτερα το πρόγραµµα να είναι πιο ξεκάθαρο και ασφαλέστερο Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 100

101 Οµοιότητες ARM & MIPS ARM: ο δηµοφιλέστερος ενσωµατωµένος πυρήνας Παρόµοιο βασικό σύνολο εντολών µε τον MIPS ARM MIPS Έτος ανακοίνωσης Μέγεθος εντολής 32 bit 32 bit Χώρος διευθύνσεων 32-bit επίπεδος 32-bit επίπεδος Ευθυγράµµιση δεδοµένων Ευθυγραµµισµένα Ευθυγραµµισµένα 2.16 Πραγµατικότητα: εντολές ARM Τρόποι διευθυνσιοδότησης δεδοµένων 9 3 Καταχωρητές bit bit Είσοδος/έξοδος Με χαρτογράφηση µνήµης (memory mapped) Με χαρτογράφηση µνήµης (memory mapped) Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 101

102 Σύγκριση και διακλάδωση στον ARM Χρησιµοποιεί κωδικούς συνθήκης για το αποτέλεσµα µιας αριθµητικής/λογικής εντολής Αρνητικό (negative), µηδέν (zero), κρατούµενο (carry), υπερχείλιση (overflow) Εντολές σύγκρισης (compare) που δίνουν τιµές στους κωδικούς συνθήκης χωρίς να διατηρούν το αποτέλεσµα Κάθε εντολή µπορεί να είναι υπό συνθήκη 4 υψηλότερα bit της λέξης εντολής: τιµή της συνθήκης Μπορεί να αποφύγει τις διακλαδώσεις επάνω από µεµονωµένες εντολές Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 102

103 Κωδικοποίηση εντολών Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 103

104 Η αρχιτεκτονική Intel x86 Εξέλιξη µε αναδροµική συµβατότητα (backward compatibility) 8080 (1974): µικροεπεξεργαστής 8-bit Συσσωρευτής (accumulator), και επιπλέον 3 ζεύγη καταχωρητήαριθµοδείκτη (index-register) 8086 (1978): επέκταση του 8080 στα 16-bit Σύνθετο σύνολο εντολών (Complex instruction set CISC) 8087 (1980): συνεπεξεργαστής κινητής υποδιαστολής Προσθέτει εντολές και στοίβα καταχωρητών (register stack) για κινητή υποδιαστολή (1982): διευθύνσεις 24-bit, µονάδα διαχείρισης µνήµης (MMU) Τµηµατοποιηµένη (segmented) χαρτογράφηση και προστασία µνήµης (1985): επέκταση στα 32-bit (σήµερα IA-32) Επιπλέον τρόποι διευθυνσιοδότησης και λειτουργίες Σελιδοποιηµένη (paged) χαρτογράφηση µνήµης καθώς και τµήµατα (segments) 2.17 Πραγµατικότητα: εντολές x86 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 104

105 Η αρχιτεκτονική Intel x86 Περισσότερη εξέλιξη i486 (1989): µε διοχέτευση (pipeline), κρυφές µνήµες και FPU µέσα στο τσιπ Συµβατοί ανταγωνιστές: AMD, Cyrix, Pentium (1993): υπερβαθµωτός (superscalar), διαδροµή δεδοµένων (datapath) των 64-bit Επόµενες εκδόσεις πρόσθεσαν τις εντολές MMX (Multi-Media extension) Το «διαβόητο» σφάλµα διαίρεσης κινητής υποδιαστολής Pentium Pro (1995), Pentium II (1997) Νέα µικροαρχιτεκτονική (δείτε Colwell, The Pentium Chronicles) Pentium III (1999) Πρόσθεσε τις εντολές SSE (Streaming SIMD Extensions) και τους σχετικούς καταχωρητές Pentium 4 (2001) Νέα µικροαρχιτεκτονική Πρόσθεσε τις εντολές SSE2 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 105

106 Η αρχιτεκτονική Intel x86 Και επιπλέον AMD64 (2003): επέκταση αρχιτεκτονικής στα 64 bit EM64T Extended Memory 64 Technology (2004) Η AMD64 υιοθετήθηκε από την Intel (µε βελτιώσεις) Πρόσθεσε εντολές SSE3 Intel Core (2006) Πρόσθεσε εντολές SSE4, υποστήριξη εικονικής µνήµης AMD64 (ανακοίνωση το 2007): εντολές SSE5 Η Intel αρνήθηκε να ακολουθήσει, αντίθετα Advanced Vector Extension (ανακοίνωση το 2008) Μεγαλύτεροι καταχωρητές SSE, περισσότερες εντολές Αν η Intel δεν επέκτεινε µε διατήρηση της συµβατότητας, θα το έκαναν οι ανταγωνιστές της! Τεχνική κοµψότητα Εµπορική επιτυχία Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 106

107 Βασικοί καταχωρητές x86 Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 107

108 Βασικοί τρόποι διευθ/σης x86 ύο τελεστέοι ανά εντολή Τελεστέος προέλευσης/προορισµού Καταχωρητής Καταχωρητής Καταχωρητής Μνήµη Μνήµη εύτερος τελεστέος προέλευσης Καταχωρητής Άµεσο Μνήµη Καταχωρητής Άµεσο Τρόποι διευθυνσιοδότησης µνήµης /νση σε καταχωρητή /νση = R base + µετατόπιση /νση = R base + 2 scale R index (scale = 0, 1, 2, ή 3) /νση = R base + 2 scale R index + µετατόπιση Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 108

109 Κωδικοποίηση εντολών x86 Κωδικοποίηση µεταβλητού µήκους Τα επιθεµατικά byte (postfix bytes) καθορίζουν τον τρόπο διευθυνσιοδότησης Τα προθεµατικά byte (prefix bytes) τροποποιούν τη λειτουργία Μήκος τελεστέου, επανάληψη, κλείδωµα, Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 109

110 Υλοποίηση IA-32 Το σύνθετο σύνολο εντολών κάνει δύσκολη την υλοποίηση Τα υλικό µεταφράζει τις εντολές σε απλούστερες µικρολειτουργίες (microoperations) Απλές εντολές: 1 1 Πολύπλοκες εντολές: 1 πολλές Μικροµηχανή (microengine) παρόµοια µε RISC Το µερίδιο της αγοράς κάνει αυτή τη λύση οικονοµικά βιώσιµη Συγκρίσιµη απόδοση µε RISC Οι µεταγλωττιστές αποφεύγουν τις σύνθετες εντολές Κεφάλαιο 2 Εντολές: η γλώσσα του υπολογιστή 110

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

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

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

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

115 Συµπερασµατικές παρατηρήσεις Μέτρηση εκτελέσεων εντολών 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 Εντολές: η γλώσσα του υπολογιστή 115

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

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

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

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

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

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

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

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

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

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

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

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

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 η έκδοση), μετάφραση:

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

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 η έκδοση), μετάφραση:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογίες ημιαγωγών. 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 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες

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

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 η έκδοση), μετάφραση: Καθ.

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος Ε.1 Σας δίνεται ο πιο κάτω κώδικας. Ξαναγράψτε τον ώστε να μειωθεί ο αριθμός των εντολών του αλλά διατηρώντας την ίδια λειτουργιά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

με έμφαση στο MIPS R2000 ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 3 Αρχιτεκτονικές Συνόλου Εντολών με έμφαση στο MIPS R2000 Καθηγητής Αντώνης Πασχάλης

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

και η µονάδα ελέγχου (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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική 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/ Μ.Στεφανιδάκης Αρχιτεκτονική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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/ Ιστοσελίδα εργαστηρίου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΜΣ Εφαρμοσμένη Πληροφορική Οργάνωση και Σχεδίαση Η/Υ Πρώτη Σειρά Ασκήσεων 7 Απριλίου 2017 ενδεικτική παράδοση: 5 Μαΐου Για

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

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

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

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

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

Εισαγωγή στην πληροφορική -4

Εισαγωγή στην πληροφορική -4 Εισαγωγή στην πληροφορική 6 (, 64) bits Μνήµη Θέση (κύτταρο cell) µνήµης, χωράει λέξεις (words) εντολές (πρόγραµµα), αριθµοί (δεδοµένα) Αριθµοί: δυαδική (binary) αναπαράσταση = = = 4 = 4 = 5 = 7 Εισαγωγή

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

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

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/ Άδεια Χρήσης Το παρόν εκπαιδευτικό

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

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

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

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

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

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

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

Κεφάλαιο 3. Αριθμητική για υπολογιστές

Κεφάλαιο 3. Αριθμητική για υπολογιστές Κεφάλαιο 3 Αριθμητική για υπολογιστές Αριθμητική για υπολογιστές Λειτουργίες (πράξεις) σε ακεραίους Πρόσθεση και αφαίρεση Πολλαπλασιασμός και διαίρεση Χειρισμός της υπερχείλισης Πραγματικοί αριθμοί κινητής

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Δευτέρα, 3 Νοεμβρίου 25 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΛΕΠΤΑ Για πλήρη

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Intel x86 ISA Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ RISC vs. CISC Η assembly των επεξεργαστών ARM, SPARC (Sun), και Power (IBM) είναι όμοιες

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

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

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

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

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

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

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