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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34 Και άλλες λειτουργίες συνθήκης Το αποτέλεσμα παίρνει τη τιμή 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 Εντολές: η γλώσσα του υπολογιστή 34

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

57 Ψευδοεντολές συμβολομεταφραστή Οι περισσότερες εντολές του συμβολομεταφραστή αναπαριστούν εντολές μηχανής μία προς μία Ψευδοεντολές (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 Εντολές: η γλώσσα του υπολογιστή 57

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

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

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

61 Το σώμα της διαδικασίας 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 Εντολές: η γλώσσα του υπολογιστή 61 Μεταφορά παραμέτρων Εξωτερικός βρόχος Εσωτερικός βρόχος Μεταβίβαση παραμέτρων και κλήση Εσωτερικός βρόχος Εξωτερικός βρόχος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονικές Συνόλου Εντολών Αρχιτεκτονικές Συνόλου Εντολών 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) (Μεγάλη ποικιλία!!) Συσκευές γρήγορες π.χ. κάρτες γραφικών,

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 2 η : Σύνολα Εντολών Ιστορική Αναδρομή Από τις πρώτες εντολές υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Στοίβας Συσσωρευτή Επέκταση συσσωρευτή Καταχωρητών γενικού σκοπού Καταχωρητή-Μνήμης

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

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

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

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

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

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

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

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Προχωρηµένα Θέµατα Αρχιτεκτονικής Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές

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

Κεφάλαιο 4. Ο επεξεργαστής

Κεφάλαιο 4. Ο επεξεργαστής Κεφάλαιο 4 Ο επεξεργαστής Εισαγωγή Παράγοντες απόδοσης της CPU Πλήθος εντολών Καθορίζεται από την αρχιτεκτονική συνόλου εντολών και το μεταγλωττιστή CPI και Χρόνος κύκλου Καθορίζεται από το υλικό της CPU

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

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

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

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

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

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

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

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

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

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

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

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

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

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 2 Σειρά Ασκήσεων 2 Εντολές µεταφοράς δεδοµένων και βρόχοι στον MIPS. Οι γλώσσες προγραµµατισµού εκτός από απλές µεταβλητές που περιέχουν κάποια δεδοµένα, έχουν όπως γνωρίζετε και περισσότερο σύνθετες δοµές

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

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

Οργάνωση Η/Υ. Ο Επεξεργαστής TRN. Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου Οργάνωση Η/Υ Ο Επεξεργαστής TRN Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου ΚMΕ Κυριότεροι Καταχωρητές της ΚΜΕ του υπολογιστή TRN IR (20 bits) X (20 bits) I

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

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

Περιεχόμενα. Πρόλογος... 17 Περιεχόμενα Πρόλογος... 17 Κεφάλαιο 1: Εισαγωγή... 19 Πώς να διαβάσετε αυτό το βιβλίο... 20 Η γλώσσα C Ιστορική αναδρομή... 22 Τα χαρακτηριστικά της C... 23 C Μια δομημένη γλώσσα... 23 C Μια γλώσσα για

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

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

Αρχιτεκτονική Υπολογιστών Ι Αρχιτεκτονική Υπολογιστών Ι ΥΠΟΔΕΙΞΕΙΣ ΓΙΑ ΤΗ ΛΥΣΗ ΤΩΝ ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΑΣΚΗΣΕΩΝ Από το βιβλίο Αρχιτεκτονική Υπολογιστών & Προγραμματισμός Assembly (Συγγραφέας / Εκδότης : Παναγιώτης Παπάζογλου) Δρ. Παναγιώτης

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

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

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ. ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος

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

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

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ 4 ο Εξάμηνο Μαδεμλής Ιωάννης ΥΠΟΡΟΥΤΙΝΕΣ ΕΡΓΑΣΤΗΡΙΟ 6 Οι υπορουτίνες αποτελούν αυτόνομα τμήματα κώδικα που διεκπεραιώνουν μία συγκεκριμένη εργασία και μπορούμε να τα καλούμε

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

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

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ «ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 8085 ΧΟΝΔΡΙΚΟ ΔΙΑΓΡΑΜΜΑ 8085 CPU ΟΙ ΚΑΤΑΧΩΡΗΤΕΣ ΤΟΥ 8085 Ο ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗΣ ΕΝΤΟΛΩΝ Η ΑΡΙΘΜΗΤΙΚΗ ΚΑΙ ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΟΙ «ΣΗΜΑΙΕΣ» FLAGS Η ΜΟΝΑΔΑ

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

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

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

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ. Άσκηση 2 Ποιες οι τιμές των καταχωρητών μετά την εκτέλεση του προγράμματος ;

Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ. Άσκηση 2 Ποιες οι τιμές των καταχωρητών μετά την εκτέλεση του προγράμματος ; Εργαστήριο Αρχιτεκτονική Υπολογιστών Ι ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ Άσκηση 1 Πόσους αστερίσκους θα τυπώσει το πρόγραμμα ; li $t2,2 li $t1,1 Εμφάνισε div $t1,$t2 mfhi $t3 add $t3,$t3,1 add $t1,$t1,$t3 ble $t1,10,start

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Γεώργιος Δημητρίου Προσαρμογή Εισαγωγικού Μαθήματος από Prof. Stephen A. Edwards (Columbia University)

Γεώργιος Δημητρίου Προσαρμογή Εισαγωγικού Μαθήματος από Prof. Stephen A. Edwards (Columbia University) Η γλώσσα C Γεώργιος Δημητρίου Προσαρμογή Εισαγωγικού Μαθήματος από Prof. Stephen A. Edwards (Columbia University) Η γλώσσα C Σήμερα η πιο διαδεδομένη γλώσσα προγραμματισμού για ενσωματωμένα συστήματα Συμβολική

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

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1 Συστήματα αρίθμησης Δεκαδικό σύστημα αρίθμησης 1402 = 1000 + 400 +2 =1*10 3 + 4*10 2 + 0*10 1 + 2*10 0 Γενικά σε ένα σύστημα αρίθμησης με βάση το b N, ένας ακέραιος αριθμός με n ψηφία παριστάνεται ως:

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

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

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 10: Πέρασμα Παραμέτρων σε Διαδικασίες. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί

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

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών Πρόγραμμα σε γλώσσα μηχανής του ΕΚΥ Θέση μνήμης Περιεχόμενα μνήμης Εντολή (assembly) 0 0001 000000000011 lda 3 1 0011 000000000100 ada

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

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

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων ΗΥ 232 Διάλεξη 1 Εισαγωγή στο μάθημα Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Διδάσκων: Οργανωτικά Θέματα Νίκος Μπέλλας, Κτήριο Γκλαβάνη, Γραφείο Β3.7, 2 ος όροφος Προσωπική ιστοσελίδα:

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

7. Ροή ελέγχου 8. Μηχανισμοί εισόδου/εξόδου

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

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Εκφράσεις και Λίγες Εντολές Οι εκφράσεις της C Τελεστές Απλές και σύνθετες εντολές Εντολές ελέγχου (επιλογής) Εισαγωγή σε

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

Στοιχεία από Assembly Γιώργος Μανής

Στοιχεία από Assembly Γιώργος Μανής Στοιχεία από Assembly 8086 Γιώργος Μανής Καταχωρητές καταχωρητές γενικής φύσης καταχωρητές δείκτες καταχωρητές αναφοράς καταχωρητές τµηµάτων ειδικοί καταχωρητές Καταχωρητές γενικής φύσης 16 bit ax, bx,

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 1

ΤΠ 2108 Αρχιτεκτονική Υπολογιστών (Εργαστήριο) ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ. Σειρά Ασκήσεων 1 Σειρά Ασκήσεων 1 Εισαγωγή, Ο επεξεργαστής και η γλώσσα του. Σε αυτό το εργαστήριο θα κάνουµε µια εισαγωγή σε έναν απλό επεξεργαστή (RISC), το instruction set του οποίου είναι πολύ απλό, αλλά περιέχει όλα

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

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

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Εισαγωγή Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Σκοπός του εργαστηρίου είναι να κατανοήσουµε τους τρόπους προσπέλασης της µνήµης (µέθοδοι διευθυνσιοδότησης) σε ένα υπολογιστικό σύστηµα. Η Μνήµη 1 Ψηφιακή Λογική 4

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

Εργαστήριο 2. Εαρινό Εξάμηνο Εντολές για είσοδο ακεραίων αριθμών από την κονσόλα:

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

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

6. Ακολουθίες μικροεντολών 7. Συμβολισμός μικροεντολών (MAL)

6. Ακολουθίες μικροεντολών 7. Συμβολισμός μικροεντολών (MAL) ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXAIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΙΚΡΟΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Ι Γ. Τσιατούχας 4 ο Κεφάλαιο ιάρθρωση 1. Μικροπρογραμματιζόμενη μονάδα ελέγχου. Διαδρομή δεδομένων 3. Χρονισμός διαδρομής

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

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

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2. ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2. Pipelining (Αν υπάρχει χρόνος) Θα ξαναπάμε πίσω στο Κεφ.3αργότερα. ΕΠΛ 221--

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

Αρχιτεκτονική Υπολογιστών. Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture)

Αρχιτεκτονική Υπολογιστών. Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture) Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije

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

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

Λύσεις 2 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών (ΗΜΜΥ) Λύσεις 2 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 Εαρινό Εξάμηνο, 2012 Διδάσκων: Γιώργος Ζάγγουλος Ημερομηνία εξέτασης: 01/03/2012

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

Εφαρμογές μικροελεγκτών

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να Κεεφάάλλααι ιοο:: 3Β ο Τίττλλοοςς Κεεφααλλααί ίοουυ: : Αρχιτεκτονική Ηλ/κου Τµήµατος των Υπολ. Συστηµάτων (Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να αναφέρετε τις τιµές των

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ 1 Πράξεις με μπιτ 2 ΑριθμητικέςΠράξειςσεΑκέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση Ο πολλαπλασιασμός

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα

Φροντιστήριο. Παραγωγή τελικού κώδικα. Παραγωγή τελικού κώδικα ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Παραγωγή τελικού κώδικα Από τον ενδιάμεσο κώδικα στον τελικό (1/2) Τα ορίσματα των εντολών ενδιάμεσου κώδικα είναι του τύπου expr*. Αυτές οι εκφράσεις θα πρέπει

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 4: Πολλαπλασιασμός (MUL,IMUL). Διαίρεση (DIV,IDIV). Εμφάνιση αλφαριθμητικού. Εμφάνιση χαρακτήρα.

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

Διοχέτευση (Pipeline)

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

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

Πληροφορική. Ενότητα 4 η : Κωδικοποίηση & Παράσταση Δεδομένων. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

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

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

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 Ευρετήριο Η γλώσσα C σε βάθος # #define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579 A abs(), 625 AND, 64 ASCII πίνακας

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

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

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

Διάλεξη 11 Προώθηση (Forwarding)

Διάλεξη 11 Προώθηση (Forwarding) ΗΥ 3 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη Προώθηση (Forwarding) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων (HY3) Η μέχρι τώρα μικρο-αρχιτεκτονική του MIPS ID/EX PCSrc Control WB

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

Προγραμματισμός Υπολογιστών

Προγραμματισμός Υπολογιστών Προγραμματισμός Υπολογιστών Αναπαράσταση Πληροφορίας Κ. Βασιλάκης, ΣΤΕΦ, ΤΕΙ Κρήτης Δεδομένα και πληροφορία Δεδομένα είναι ένα σύνολο διακριτών στοιχείων σχετικά με ένα συμβάν ή μια διαδικασία χωρίς κάποια

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

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

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