Ενσωματωμένα Συστήματα

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

Download "Ενσωματωμένα Συστήματα"

Transcript

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

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

4 Σκοπός ενότητας Η κατανόηση της διαδικασίας σχεδίασης και υλοποίησης μιας εφαρμογής ενσωματωμένων συστημάτων. Η κατανόηση των τρόπων βελτιστοποίησης της ενέργειας και της απόδοσης μιας ενσωματωμένης εφαρμογής. 4

5 Σχεδίαση Προγράμματος 5

6 Μηχανή καταστάσεων λογισμικού Η μηχανή καταστάσεων κρατάει την τρέχουσα κατάσταση σαν μεταβλητή, και αλλάζει κατάσταση βασιζόμενη στις εισόδους. Χρησιμοποιεί: κώδικα συνεχών ελέγχων. συστήματα που αλληλεπιδρούν με το περιβάλλον. 6

7 Παράδειγμα μηχανής καταστάσεων 7

8 Υλοποίηση σε C #define IDLE 0 #define SEATED 1 #define BELTED 2 #define BUZZER 3 switch (state) { case IDLE: if (seat) { state = SEATED; timer_on = TRUE; } break; case SEATED: if (belt) state = BELTED; else if (timer) state = BUZZER; break; } 8

9 Επεξεργασία σήματος και κυκλική περιοχή προσωρινής αποθήκευσης (1/3) Χρησιμοποιείται συνήθως στην επεξεργασία σήματος: νέα δεδομένα συνεχώς καταφθάνουν, κάθε δεδομένο έχει περιορισμένη διάρκεια ζωής. Χρήση μίας κυκλικής περιοχής προσωρινής αποθήκευσης για να αποθηκεύει τη ροή δεδομένων. 9

10 Επεξεργασία σήματος και κυκλική περιοχή προσωρινής αποθήκευσης (2/3) Χρησιμοποιείται συνήθως στην επεξεργασία σήματος: νέα δεδομένα συνεχώς καταφθάνουν, κάθε δεδομένο έχει περιορισμένη διάρκεια ζωής. Χρήση μίας κυκλικής περιοχής προσωρινής αποθήκευσης για να αποθηκεύει τη ροή δεδομένων. 10

11 Επεξεργασία σήματος και κυκλική περιοχή προσωρινής αποθήκευσης (3/3) Χρησιμοποιείται συνήθως στην επεξεργασία σήματος: νέα δεδομένα συνεχώς καταφθάνουν, κάθε δεδομένο έχει περιορισμένη διάρκεια ζωής. Χρήση μίας κυκλικής περιοχής προσωρινής αποθήκευσης για να αποθηκεύει τη ροή δεδομένων. 11

12 Κυκλική περιοχή προσωρινής αποθήκευσης (1/8) 12

13 Κυκλική περιοχή προσωρινής αποθήκευσης (2/8) 13

14 Κυκλική περιοχή προσωρινής αποθήκευσης (3/8) 14

15 Κυκλική περιοχή προσωρινής αποθήκευσης (4/8) 15

16 Κυκλική περιοχή προσωρινής αποθήκευσης (5/8) 16

17 Κυκλική περιοχή προσωρινής αποθήκευσης (6/8) 17

18 Κυκλική περιοχή προσωρινής αποθήκευσης (7/8) 18

19 Κυκλικές περιοχές προσωρινής αποθήκευσης (8/8) Οι δείκτες δείχνουν στη θέση που θα τοποθετηθεί το επόμενο δείγμα, αντικαθιστώντας το παλαιότερο δείγμα: 19

20 Υλοποίηση κυκλικής περιοχής προσωρινής αποθήκευσης: Φίλτρο FIR int circ_buffer[n], circ_buffer_head = 0; int c[n]; /* coefficients */ int ibuf, ic; for (f=0, ibuff=circ_buff_head, ic=0; ic<n; ibuff=(ibuff==n-1?0:ibuff++), ic++) f = f + c[ic]*circ_buffer[ibuf]; 20

21 Ουρές Ευέλικτη περιοχή προσωρινής αποθήκευσης: αποθηκεύει τα δεδομένα που καταφθάνουν ακανόνιστα. 21

22 Ουρές βασιζόμενες σε περιοχές προσωρινής αποθήκευσης #define Q_SIZE 32 #define Q_MAX (Q_SIZE-1) int q[q_max], head, tail; void initialize_queue() { head = tail = 0; } void enqueue(int val) { if (((tail+1)%q_size) == head) error(); q[tail]=val; if (tail == Q_MAX) tail = 0; else tail++; } int dequeue() { } int returnval; if (head == tail) error(); returnval = q[head]; if (head == Q_MAX) head = 0; else head++; return returnval; 22

23 Μοντέλα Προγραμμάτων 23

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

25 Γράφημα ροής δεδομένων (1/2) Γράφημα ροής δεδομένων (data flow graph): DFG Χωρίς συνθήκες ελέγχου. Βασικό μπλοκ μοντέλου: τμήμα κώδικα μόνο ένα σημείο εισόδου και ένα σημείο εξόδου. Περιγράφει τις ελάχιστες απαιτήσεις των εντολών για κάποια λειτουργία. 25

26 Μορφή μονής ανάθεσης x = a + b; y = c - d; z = x * y; y = b + d; x = a + b; y = c - d; z = x * y; y1 = b + d; Ένα βασικό μπλοκ στην C. Το βασικό μπλοκ σε μορφή απλής (ή μονής) ανάθεσης (single assigment). 26

27 Γράφημα ροής δεδομένων (2/2) x = a + b; y = c - d; z = x * y; y1 = b + d; μορφή μονής ανάθεσης. 27

28 DFGs και μερική ταξινόμηση Μερική ταξινόμηση: a+b, c-d; b+d x*y Αρκετές πιθανές διατάξεις οι οποίες ικανοποιούν την απαίτηση. 28

29 Γράφημα ροής ελέγχου/δεδομένων Γράφημα ροής ελέγχου/δεδομένων (control/data flow graph): CDFG Αναπαριστά λειτουργίες δεδομένων και λειτουργίες ελέγχου. Χρησιμοποιεί γραφήματα ροής δεδομένων σαν συστατικά. Δύο τύποι κόμβων: Απόφασης, ροής δεδομένων. 29

30 Κόμβος ροής δεδομένων (data flow node) Εμπεριέχει ένα πλήρες γράφημα ροής δεδομένων: Εγγραφή λειτουργιών σε μορφή βασικού μπλοκ για απλότητα. 30

31 Έλεγχος 31

32 Παράδειγμα CDFG if (cond1) bb1(); else bb2(); bb3(); switch (test1) { case c1: bb4(); break; case c2: bb5(); break; case c3: bb6(); break; } 32

33 for (i=0; i<n; i++) loop_body(); βρόχος for i=0; while (i<n) { loop_body(); i++; } ισοδύναμο Ο βρόχος for 33

34 Συμβολομετάφραση και Σύνδεση. 34

35 Συμβολομετάφραση και Σύνδεση Τελευταία βήματα της διαδικασίας μεταγλώττισης: 35

36 Προγράμματα πολλαπλών αρχείων Το πρόγραμμα μπορεί να αποτελείται από πολλά αρχεία (υπομονάδες). Οι διευθύνσεις γίνονται πιο συγκεκριμένες κατά την επεξεργασία: Οι σχετικές διευθύνσεις υπολογίζονται σχετικά ως προς τη διεύθυνση έναρξης της υπομονάδας. Οι απόλυτες διευθύνσεις υπολογίζονται σχετικά ως προς τη διεύθυνση έναρξης του προγράμματος. 36

37 Συμβολομεταφραστές Κύριες εργασίες: Μετάφραση της συμβολικής γλώσσας σε δυαδική αναπαράσταση. Μετάφραση των ετικετών σε διευθύνσεις. Χειρισμός ψευδολειτουργιών (δεδομένα, κλπ.). Γενικά μετάφραση ένα-προς-ένα. Ετικέτες συμβολικής γλώσσας: label1 ORG 100 ADR r4,c 37

38 Πίνακας συμβόλων ADD r0,r1,r2 xx 0x8 xx ADD r3,r4,r5 CMP r0,r3 yy 0x10 yy SUB r5,r6,r7 Κώδικας σε συμβολική Γλώσσα. Πίνακας συμβόλων. 38

39 Παραγωγή πίνακα συμβόλων Χρήση μετρητή τοποθεσίας προγράμματος (program location counter PLC) για τον καθορισμό της διεύθυνσης. Σάρωση του προγράμματος, ο PLC ενημερώνεται για τη θέση. Οι διευθύνσεις παράγονται κατά τον χρόνο συμβολομετάφρασης, όχι κατά την εκτέλεση. 39

40 Παράδειγμα πίνακα συμβόλων (1/4) xx yy ADD r0,r1,r2 ADD r3,r4,r5 CMP r0,r3 SUB r5,r6,r7 40

41 Παράδειγμα πίνακα συμβόλων (2/4) ADD r0,r1,r2 xx ADD r3,r4,r5 CMP r0,r3 yy SUB r5,r6,r7 xx 0x8 41

42 Παράδειγμα πίνακα συμβόλων (3/4) ADD r0,r1,r2 xx ADD r3,r4,r5 CMP r0,r3 yy SUB r5,r6,r7 xx 0x8 42

43 Παράδειγμα πίνακα συμβόλων (4/4) ADD r0,r1,r2 xx ADD r3,r4,r5 CMP r0,r3 yy SUB r5,r6,r7 xx yy 0x8 0x10 43

44 Συμβολομετάφραση 2 περασμάτων Πέρασμα 1: παραγωγή πίνακα συμβόλων. Πέρασμα 2: παραγωγή δυαδικών εντολών. 44

45 Παραγωγή σχετικών διευθύνσεων Μερικές τιμές ετικετών μπορεί να μην είναι γνωστές κατά τη διάρκεια της συμβολομετάφρασης. Οι εντολές της υπομανάδας πρέπει να είναι σε σχετική μορφή. Πρέπει να παρακολουθούνται οι εξωτερικές ετικέτες---δεν μπορεί να παραχθεί πλήρης δυαδική μορφή από εντολές που κάνουν χρήση εξωτερικών ετικετών. 45

46 Ψευδολειτουργίες Οι ψευδολειτουργίες δεν παράγουν εντολές: ORG θέτει την αρχή του προγράμματος. EQU επιτρέπει την προσθήκη ετικετών στον πίνακα συμβόλων χωρίς να καταλαμβάνουν χώρο στη μνήμη προγράμματος. Data statements (δηλώσεις δεδομένων) καθορίζουν τα μπλοκ δεδομένων. 46

47 Σύνδεση Επιτρέπει την σύνθεση των επί μέρους μικρότερων τμημάτων ενός προγράμματος σε ένα ενιαίο πρόγραμμα. Εργασίες: τοποθέτηση των τμημάτων σε σειρά, αποσαφήνιση των ετικετών των τμημάτων. 47

48 Εξωτερικές αναφορές και σημεία εισόδου σημείο εισόδου xxx ADD r1,r2,r3 a ADR r4,yyy B a εξωτερική αναφορά ADD r3,r4,r5 yyy %1 48

49 Διάταξη αρχείων Τα αρχεία κώδικα πρέπει να τοποθετούνται σε ακριβείς θέσεις στη μνήμη. Ο χάρτης φόρτωσης (load map) ή συνδετικές παράμετροι (linker parameters) ορίζουν την σειρά με την οποία τα αρχεία πρέπει να τοποθετηθούν στη μνήμη. 49

50 Δυναμική σύνδεση Μερικά λειτουργικά συστήματα συνδέουν τα αρχεία δυναμικά κατά τον χρόνο εκτέλεσης: διαμοιρασμός ενός αντιγράφου βιβλιοθήκης μεταξύ των προγραμμάτων που εκτελούνται, επιτρέπει στα προγράμματα που χρησιμοποιούν αυτές τις βιβλιοθήκες να ενημερώνονται εύκολα. 50

51 Σχεδιασμός και ανάλυση Ροή μεταγλώττισης. προγράμματος Βασική μετάφραση εντολών. Βασικές βελτιστοποιήσεις. Ερμηνευτές και μεταγλωττιστές JIT (just-intime). 51

52 Μεταγλώττιση Στρατηγική μεταγλώττισης: μεταγλώττιση = μετάφραση + βελτιστοποίηση Ο μεταγλωττιστής καθορίζει την ποιότητα του κώδικα: χρήση των πόρων της CPU. προγραμματισμός προσπελάσεων μνήμης. μέγεθος κώδικα. 52

53 Βασικές Τεχνικές Μεταγλώττισης 53

54 Βασικές φάσεις μεταγλώττισης 54

55 Μετάφραση εντολών και βελτιστοποίηση Ο πηγαίος κώδικας μεταφράζεται σε ενδιάμεση μορφή όπως το CDFG. Το CDFG μετασχηματίζεται/βελτιστοποιείται. Το CDFG μεταφράζεται σε εντολές με αποφάσεις βελτιστοποίησης. Οι εντολές βελτιστοποιούνται περαιτέρω. 55

56 Αριθμητικές εκφράσεις (1/2) a*b + 5*(c-d) έκφραση 56

57 Αριθμητικές εκφράσεις (2/2) ADR r4,a MOV r1,[r4] ADR r4,b MOV r2,[r4] ADD r3,r1,r2 ADR r4,c MOV r1,[r4] ADR r4,d MOV r5,[r4] SUB r6,r4,r5 MUL r7,r6,#5 ADD r8,r7,r3 κώδικας 57

58 Παραγωγή κώδικα για μια συνθήκη (1/2) if (a+b > 0) x = 5; else x = 7; 58

59 Παραγωγή κώδικα για μια συνθήκη (2/2) ADR r5,a LDR r1,[r5] ADR r5,b LDR r2,b ADD r3,r1,r2 BLE label3 LDR r3,#5 ADR r5,x STR r3,[r5] B stmtent LDR r3,#7 ADR r5,x STR r3,[r5] stmtent... 59

60 Διαδικασία σύνδεσης Απαιτείται κώδικας για: κλήση και επιστροφή. πέρασμα παραμέτρων και αποτελεσμάτων. Οι παράμετροι και οι επιστροφές περνάνε στη στοίβα. Διαδικασίες με λίγες παραμέτρους ίσως χρησιμοποιούν καταχωρητές. 60

61 Στοίβες διαδικασίας 61

62 Διαδικασία σύνδεσης ARM Το πρότυπο κλήσης διαδικασιών του ARM (ARM Procedure Call Standard - APCS): r0-r3 χρησιμοποιούνται για το πέρασμα των παραμέτρων στις διαδικασίες. Επιπλέον παράμετροι τοποθετούνται στο πλαίσιο στοίβας. r0 χρησιμοποιείται επίσης για να κρατά την τιμή επιστροφής. r4-r7 κρατούν μεταβλητές καταχωρητών. R11 είναι ο δείκτης πλαισίου, r13 είναι ο δείκτης στοίβας. r10 κρατά τον περιορισμό διεύθυνσης για το μέγεθος της στοίβας το οποίο χρησιμοποιείται για να ελέγχει την υπερχείλιση της στοίβας. 62

63 Δομές δεδομένων Διαφορετικά είδη δομών δεδομένων χρησιμοποιούν διαφορετικές μορφές δεδομένων. Μερικές μετατοπίσεις στις δομές δεδομένων μπορούν να υπολογιστούν κατά τον χρόνο μεταγλώττισης, ενώ άλλες πρέπει να γίνουν κατά τον χρόνο εκτέλεσης. 63

64 Μονοδιάστατοι πίνακες Το όνομα του πίνακα δείχνει στο μηδενικό στοιχείο: 64

65 Δισδιάστατοι πίνακες Μορφή μείζονος στήλης (column-major): 65

66 Δομές Τα πεδία της δομής μπορούν να προσπελαστούν χρησιμοποιώντας σταθερές μετατοπίσεις: struct { int field1; char field2; } mystruct; struct mystruct a, *aptr = &a; 66

67 Απλοποίηση εκφράσεων Υπολογισμός σταθερών εκφράσεων (Constant folding): 8+1 = 9 Αλγεβρικά: a*b + a*c = a*(b+c) Μείωση έντασης (strength reduction): a*2 = a<<1 67

68 Απαλοιφή νεκρού κώδικα Νεκρός κώδικας #define DEBUG 0 if (DEBUG) dbg(p1); Μπορεί να εξαλειφθεί με ανάλυση ελέγχου ροής, και constant folding. 68

69 Ενσωμάτωση διαδικασιών στον κώδικα (procedure inlining) Εξαλείφει την επιβάρυνση σύνδεσης της διαδικασίας. int foo(a,b,c) { return a + b - c;} z = foo(w,x,y); -> z = w + x + y; 69

70 Στόχοι: Μετασχηματισμοί Βρόχων μείωση επιβάρυνσης βρόχου, αύξηση των δυνατοτήτων διασωλήνωσης, βελτίωση της απόδοσης του συστήματος μνήμης. 70

71 Ξετύλιγμα βρόχου Μειώνει την επιβάρυνση βρόχου, επιτρέπει μερικές ακόμα βελτιστοποιήσεις. for (i=0; i<4; i++) a[i] = b[i] * c[i]; -> for (i=0; i<2; i++) { a[i*2] = b[i*2] * c[i*2]; a[i*2+1] = b[i*2+1] * c[i*2+1]; } 71

72 Συγχώνευση βρόχων / Κατανομή βρόχου Η συγχώνευση βρόχων συνδυάζει δύο ή περισσότερους βρόχους σε έναν ενιαίο βρόχο: for (i=0; i<n; i++) a[i] = b[i] * 5; for (j=0; j<n; j++) w[j] = c[j] * d[j]; -> for (i=0; i<n; i++) { a[i] = b[i] * 5; w[i] = c[i] * d[i]; } Η κατανομή βρόχου αποσυνθέτει έναν βρόχο σε περισσότερους βρόχους. Αλλάζει τις βελτιστοποιήσεις εντός του βρόχου. 72

73 Τεμαχισμός βρόχου (loop tiling) Τεμαχίζει έναν βρόχο σε ένα σύνολο φωλιασμένων βρόχων. Αλλάζει την σειρά με την οποία προσπελάζονται τα στοιχεία του πίνακα. Αλλάζει τη συμπεριφορά της κρυφής μνήμης. 73

74 Τεμαχισμός βρόχου παράδειγμα for (i=0; i<n; i++) for (j=0; j<n; j++) c[i] = a[i,j]*b[i]; for (i=0; i<n; i+=2) for (j=0; j<n; j+=2) for (ii=0; ii<min(i+2,n); ii++) for (jj=0; jj<min(j+2,n); jj++) c[ii] = a[ii,jj]*b[ii]; 74

75 Συμπλήρωση πίνακα Προσθέτει εικονικά στοιχεία δεδομένων στον βρόχο προκειμένου να αλλάξει τη μορφή του πίνακα στην κρυφή μνήμη: 75

76 Στόχοι: Κατανομή καταχωρητών επιλογή καταχωρητή που θα κρατάει κάθε μεταβλητή, καθορισμός της διάρκειας ζωής της μεταβλητής στον καταχωρητή. Βασική περίπτωση: εντός του βασικού μπλοκ. 76

77 Γραφική παράσταση διάρκειας ζωής καταχωρητή w = a + b; x = c + w; y = c + d; 77

78 Χρονοδρομολόγηση εντολών Οι μη διασωληνωμένες μηχανές δεν χρειάζονται χρονοδρομολόγηση εντολών: οποιαδήποτε διάταξη εντολών ικανοποιεί τις εξαρτήσεις των δεδομένων τρέχει εξίσου γρήγορα. Σε διασωληνωμένες μηχανές, ο χρόνος εκτέλεσης μιας εντολής εξαρτάται από τις γειτονικές εντολές: κώδικας λειτουργίας, τελεστές. 78

79 Πίνακας δέσμευσης Ένας πίνακας δέσμευσης αφορά στις εντολές/χρόνος και πόροι της CPU. 79

80 Διοχέτευση λογισμικού (software pipeline) Τεχνική επαναδιάταξης των εντολών στις διάφορες επαναλήψεις βρόχων. Μειώνει την καθυστέρηση των εντολών στην επανάληψη i εισάγοντας εντολές από την επανάληψη i+1. 80

81 Επιλογή εντολών Μπορεί να υπάρχουν αρκετοί τρόποι για την υλοποίηση μιας λειτουργίας ή ακολουθίας λειτουργιών. Αναπαράσταση λειτουργιών σε γραφήματα, ταίριασμα πιθανών ακολουθιών εντολών σε γράφημα. 81

82 Χρήση του μεταγλωττιστή σας Μπορείτε να πειραματιστείτε με τα διαφορετικά επίπεδα βελτιστοποίησης (-O1, -O2, κλπ.) Μπορείτε να δείτε την έξοδο του μεταγλωττιστή/συμβολομεταφραστή. Η τροποποίηση της εξόδου του μεταγλωττιστή απαιτεί προσοχή: ορθότητα Πιθανή απώλεια του κώδικα που τροποποιεί ο χρήστης (hand-tweaked), αν ξαναγίνει compile. 82

83 Ερμηνευτές και Μεταγλωττιστές JIT Ερμηνευτής: μεταφράζει εντολές του προγράμματος μία τη φορά. Μεταγλωττιστής ακριβώς-στην-ώρα (just-intime): μεταγλωττίζει μικρά τμήματα κώδικα σε εντολές κατά τη διάρκεια της εκτέλεσης του προγράμματος. Εξαλείφει κάποια επιβάρυνση μετάφρασης. Συχνά απαιτεί περισσότερη μνήμη. 83

84 Ανάλυση και βελτιστοποίηση του Χρόνου Εκτέλεσης 84

85 Σχεδίαση και ανάλυση προγράμματος Ανάλυση απόδοσης επιπέδου προγράμματος. Βελτιστοποίηση σε: Χρόνο εκτέλεσης. Ενέργεια/ισχύς. Μέγεθος προγράμματος. Επικύρωση και δοκιμή του προγράμματος. 85

86 Ανάλυση απόδοσης σε επίπεδο προγράμματος Πρέπει να κατανοήσουμε λεπτομερώς την απόδοση: Συμπεριφορά πραγματικού χρόνου, όχι απλά τυπικού. Πολύπλοκες πλατφόρμες. Απόδοση προγράμματος απόδοση CPU: Διοχέτευση, οι κρυφές μνήμες είναι παράθυρα στο πρόγραμμα. Πρέπει να αναλύσουμε ολόκληρο το πρόγραμμα. 86

87 Πολυπλοκότητες της απόδοσης προγράμματος Ποικίλει από τις τιμές των δεδομένων εισόδου: Διαδρομές διαφορετικού μήκους. Επιδράσεις κρυφής μνήμης. Διακυμάνσεις απόδοσης σε επίπεδο εντολών: Εξαρτήσεις και παύσεις διασωλήνωσης (pipeline interlocks). Χρόνοι προσκόμισης. 87

88 Πως μετράμε την απόδοση ενός προγράμματος; Προσομοίωση της εκτέλεσης στη CPU. Καταστεί ορατή την κατάσταση της CPU. Μέτρηση σε πραγματική CPU, με τη χρήση χρονομέτρου. Απαιτεί τροποποίηση του προγράμματος για έλεγχο του χρονομέτρου. Μέτρηση σε πραγματική CPU, με τη χρήση λογικού αναλυτή. Απαιτεί τα γεγονότα να είναι ορατά από τους ακροδέκτες. 88

89 Μετρικές απόδοσης του προγράμματος Χρόνος εκτέλεσης τυπικής περίπτωσης. Τυπικά χρησιμοποιείται στον προγραμματισμό εφαρμογών. Χρόνος εκτέλεσης χειρότερης περίπτωσης. Ένα συστατικό για την ικανοποίηση της προθεσμίας για την εκτέλεση λειτουργίας. Χρόνος εκτέλεσης βέλτιστης περίπτωσης. Οι αλληλεπιδράσεις σε επίπεδο εργασιών μπορεί να οδηγήσουν την συμπεριφορά βέλτιστης περίπτωσης προγράμματος σε συμπεριφορά χειρότερης περίπτωσης συστήματος. 89

90 Στοιχεία της απόδοσης του προγράμματος Βασικός τύπος χρόνου εκτέλεσης προγράμματος: χρόνος εκτέλεσης = διαδρομή προγράμματος + χρόνος εντολής. Επίλυση αυτών των προβλημάτων ανεξάρτητα βοηθάει στην απλοποίηση της ανάλυσης. Ευκολότερο να διαχωριστούν σε πιο απλές CPU. Ακριβής ανάλυση απόδοσης απαιτεί: Συμβολικό/δυαδικό κώδικα. Πλατφόρμα εκτέλεσης. 90

91 Διαδρομές προγράμματος εξαρτώμενες από δεδομένα σε εντολές if if (a b) { /* T1 */ if ( c ) /* T2 */ x = r*s+t; /* A1 */ else y=r+s; /* A2 */ z = r+s+u; /* A3 */ } else { if ( c ) /* T3 */ y = r-t; /* A4 */ } a b c διαδρομή T1=F, T3=F: no assignments T1=F, T3=T: A T1=T, T2=F: A2, A T1=T, T2=T: A1, A T1=T, T2=F: A2, A T1=T, T2=T: A1, A T1=T, T2=F: A2, A T1=T, T2=T: A1, A3 91

92 Διαδρομές σε ένα βρόχο for (i=0, f=0; i<n; i++) f = f + c[i] * x[i]; 92

93 Χρονισμός εντολής Δεν απαιτούν όλες οι εντολές τον ίδιο χρόνο εκτέλεσης. Εντολές πολλαπλών κύκλων εκτέλεσης. Προσκομίσεις. Οι χρόνοι εκτέλεσης των εντολών δεν είναι ανεξάρτητοι. Pipeline interlocks. Επιδράσεις κρυφής μνήμης. Ο χρόνος εκτέλεσης μιας εντολής μπορεί να εξαρτάται από τις τιμές του τελεστή. Εντολές κινητής υποδιαστολής. Μερικές λειτουργίες ακεραίων πολλαπλών κύκλων. 93

94 Ανάλυση απόδοσης οδηγούμενη από μέτρηση Όχι τόσο εύκολο όσο ακούγεται: Πρέπει πραγματικά να υπάρχει πρόσβαση στη CPU. Πρέπει να είναι γνωστές οι είσοδοι δεδομένων που οδηγούν σε απόδοση χειρότερης/καλύτερης περίπτωσης. Πρέπει να καθίσταται ορατή η κατάσταση. Σημαντική μέθοδος για ανάλυση απόδοσης. 94

95 Τροφοδοτώντας το πρόγραμμα Πρέπει να είναι γνωστές οι επιθυμητές τιμές εισόδου. Ίσως χρειαστεί να γραφτεί επιπρόσθετο λογισμικό παραγωγής τιμών (software scaffolding) για να παραχθούν οι τιμές εισόδου. Το software scaffolding ίσως χρειαστεί επίσης να εξετάσει τις εξόδους για παραγωγή εισόδων οδηγούμενες από ανατροφοδότηση. 95

96 Μέτρηση οδηγούμενη από ίχνος Οδηγούμενη από ίχνος: Μέτρηση του προγράμματος. Καταγραφή της διαδρομής εκτέλεσης. Απαιτεί τροποποίηση του προγράμματος. Τα ίχνη γενικά είναι μεγάλα. Ευρέως χρησιμοποιούμενη για ανάλυση της κρυφής μνήμης. 96

97 Φυσική μέτρηση Εξομοιωτής μέσα στο κύκλωμα επιτρέπει την καταγραφή ιχνών. Επηρεάζει τον χρονισμό εκτέλεσης. Ο λογικός αναλυτής μπορεί να μετρήσει τη συμπεριφορά στα pins. Η διεύθυνση διαύλου μπορεί να αναλυθεί για να ψάχνει για γεγονότα. Ο κώδικας μπορεί να τροποποιηθεί για να κάνει τα γεγονότα ορατά. Ιδιαίτερα σημαντικό για ροές εισόδου πραγματικού κόσμου. 97

98 Προσομοίωση της CPU Μερικοί προσομοιωτές είναι λιγότερο ακριβείς. Προσομοιωτής ακριβού αριθμού κύκλων παρέχει ακριβή χρονισμό κύκλου ρολογιού. Ο προσομοιωτής μοντελοποιεί την εσωτερική λειτουργία μιας CPU. Ο συγγραφέας ενός προσομοιωτή πρέπει να γνωρίζει με λεπτομέρεια πως λειτουργεί η CPU. 98

99 Προσομοίωση FIR φίλτρου στο SimpleScalar int x[n] = {8, 17, }; int c[n] = {1, 2, }; main() { int i, k, f; for (k=0; k<count; k++) } for (i=0; i<n; i++) f += c[i]*x[i]; N total sim cycles , , sim cycles per filter execution 99

100 Κίνητρο βελτιστοποίησης απόδοσης Τα ενσωματωμένα συστήματα πρέπει συχνά να συναντούν τις προθεσμίες. Το γρηγορότερο μπορεί να μην είναι αρκετά γρήγορο. Ανάγκη ικανότητας ανάλυσης του χρόνου εκτέλεσης. Χειρότερη περίπτωση, όχι τυπική. Ανάγκη τεχνικών για βελτίωση του χρόνου εκτέλεσης αξιόπιστα. 100

101 Προγράμματα και ανάλυση απόδοσης Τα καλύτερα αποτελέσματα προκύπτουν από ανάλυση βελτιστοποιημένων εντολών, όχι κώδικα γλώσσας υψηλού επιπέδου: Μη προφανείς μεταφράσεις καταστάσεων γλώσσας υψηλού επιπέδου σε εντολές. Ο κώδικας μπορεί να μετακινηθεί. Οι επιδράσεις της κρυφής μνήμης είναι δύσκολο να προβλεφθούν. 101

102 Βελτιστοποιήσεις βρόχων Οι βρόχοι είναι σημαντικοί στόχοι βελτιστοποίησης. Βασικές βελτιστοποιήσεις βρόχων: κίνηση κώδικα, εξάλειψη επαγωγικής μεταβλητής, μείωση έντασης (x*2 -> x<<1). 102

103 Μετακίνηση κώδικα (1/2) for (i=0; i<n*m; i++) z[i] = a[i] + b[i]; 103

104 Μετακίνηση κώδικα (2/2) for (i=0; i<n*m; i++) z[i] = a[i] + b[i]; 104

105 Εξάλειψη επαγωγικής μεταβλητής Επαγωγική μεταβλητή: δείκτης βρόχου. Θεωρήστε τον βρόχο: for (i=0; i<n; i++) for (j=0; j<m; j++) z[i,j] = b[i,j]; Από το να υπολογίζουμε το i*m+j για κάθε πίνακα σε κάθε επανάληψη, θα χρησιμοποιήσουμε μια κοινή επαγωγική μεταβλητή για τους πίνακες, η οποία αυξάνεται στο τέλος του βρόχου. 105

106 Ανάλυση κρυφής μνήμης Εμφωλευμένος βρόχος: σύνολο βρόχων, ο ένας μέσα σε άλλο. Τέλειος εμφωλευμένος βρόχος: χωρίς συνθήκες στο εσωτερικό του. Επειδή οι βρόχοι χρησιμοποιούν μεγάλες ποσότητες δεδομένων, οι συγκρούσεις της κρυφής μνήμης είναι συνηθισμένες. 106

107 Συγκρούσεις πίνακα κρυφής μνήμης (1/2) 107

108 Συγκρούσεις πίνακα κρυφής μνήμης (2/2) Τα στοιχεία του πίνακα συγκρούονται επειδή αντιστοιχίζονται στην ίδια γραμμή, ακόμα και αν δεν αντιστοιχίζονται ακριβώς στην ίδια τοποθεσία. Λύσεις: μετακίνηση ενός πίνακα. συμπλήρωση πίνακα. 108

109 Συμβουλές βελτιστοποίησης απόδοσης Χρησιμοποίηση των καταχωρητών αποτελεσματικά. Χρησιμοποίηση προσβάσεων στο σύστημα μνήμης με τρόπο λειτουργίας σελίδας (page mode accesses). Ανάλυση της συμπεριφοράς της κρυφής μνήμης: Οι συγκρούσεις εντολών μπορούν να χειριστούν ξαναγράφοντας τον κώδικα, αναδιάρθρωση. Οι συγκρούσεις βαθμωτών δεδομένων μπορούν εύκολα να μετακινηθούν. Οι συγκρούσεις δεδομένων σε πίνακες μπορούν να μετακινηθούν, τεχνική συμπλήρωσης. 109

110 Ανάλυση και Βελτιστοποίηση Ενέργειας και Ισχύος 110

111 Βελτιστοποίηση ενέργειας / ισχύος Ενέργεια: ικανότητα παραγωγής έργου. Ιδιαίτερα σημαντική για συστήματα που τροφοδοτούνται από μπαταρίες. Ισχύς: ρυθμός παραγωγής έργου. Σημαντική ακόμα και σε συστήματα πρίζας---η ισχύς μετατρέπεται σε θερμότητα. 111

112 Μέτρηση κατανάλωσης ενέργειας Εκτέλεση ενός μικρού τμήματος κώδικα βρόχου, μέτρηση της ροής του ρεύματος: 112

113 Πηγές κατανάλωσης ενέργειας Σχετική ενέργεια ανά λειτουργία (Catthoor et al): Μεταφορά μνήμης: 33 Προσπέλαση εξωτερικής Ε/Ε: 10 Εγγραφή SRAM: 9 Ανάγνωση SRAM: 4.4 Πολλαπλασιασμός: 3.6 Πρόσθεση: 1 113

114 Η συμπεριφορά της κρυφής μνήμης είναι σημαντική Η σχέση της κατανάλωσης ενέργειας και του χρόνου εκτέλεσης μεταβάλλεται καθώς το μέγεθος της κρυφής μνήμης αλλάζει: κρυφή μνήμη πολύ μικρή: το πρόγραμμα τρέχει αργά, το σύστημα καταναλώνει πολύ ενέργεια λόγω του υψηλού κόστους των προσβάσεων στην κύρια μνήμη. Κρυφή μνήμη πολύ μεγάλη: η κατανάλωση ισχύος είναι πολύ μεγάλη. 114

115 Ενέργεια και χρόνος εκτέλεσης σε συνάρτηση του μεγέθους της κρυφής μνήμης 115

116 Βελτιστοποίηση ενέργειας (1/2) Πρώτης τάξης βελτιστοποίηση: υψηλή απόδοση = χαμηλή ενέργεια. Δεν υπάρχουν πολλές εντολές που ανταλλάσσουν ταχύτητα για ενέργεια. 116

117 Βελτιστοποίηση ενέργειας (2/2) Αποτελεσματική χρήση των καταχωρητών. Εντοπισμός και εξάλειψη των συγκρούσεων κρυφής μνήμης. Το περιορισμένο ξετύλιγμα βρόχου μειώνει κάποια από την επιβάρυνση ελέγχου του βρόχου. Μείωση σταματημάτων (stall) διοχέτευσης. Η ενσωμάτωση διαδικασιών μπορεί να βοηθήσει: μειώνει τη σύνδεση, ωστόσο μπορεί να αυξήσει το thrashing (~μείωση απόδοσης) στην κρυφή μνήμη. 117

118 Γενικοί κανόνες: Αποδοτικοί βρόχοι Μη χρησιμοποιείτε κλήσεις συναρτήσεων. Κρατήστε το σώμα του βρόχου μικρό για να επιτρέψετε την τοπική επανάληψη (μόνο διακλαδώσεις προς τα εμπρός). Χρησιμοποιείστε μη προσημασμένο ακέραιο για μετρητή βρόχου. Χρησιμοποιείστε <= για έλεγχο του μετρητή βρόχου. Χρησιμοποιείστε καλύτερα το μεταγλωττιστή--- καθολική βελτίωση, διοχέτευση λογισμικού. 118

119 Παράδειγμα επανάληψης βρόχου μόνης εντολής STM #4000h,AR2 ; φόρτωση δείκτη στην πηγή STM #100h,AR3 ; φόρτωση δείκτη στον προορισμό RPT #(1024-1) MVDD *AR2+,*AR3+ ; μετακίνηση 119

120 Ανάλυση και Βελτιστοποίηση Μεγέθους Προγράμματος 120

121 Στόχος: Βελτιστοποίηση μεγέθους προγράμματος μείωση κόστους υλικού της μνήμης, μείωση κατανάλωσης ισχύος των μονάδων μνήμης. Δύο δυνατότητες: Δεδομένα, Εντολές. 121

122 Ελαχιστοποίηση μεγέθους δεδομένων Επαναχρησιμοποίηση σταθερών, μεταβλητών, περιοχές προσωρινής αποθήκευσης δεδομένων σε αρκετά διαφορετικά σημεία στο πρόγραμμα. Απαιτεί προσεκτική επαλήθευση για ορθότητα. Παραγωγή δεδομένων από τη χρησιμοποίηση των εντολών. 122

123 Μείωση μεγέθους κώδικα Αποφυγή ενσωμάτωσης λειτουργιών. Επιλογή CPU με συμπαγείς εντολές. Χρήση ειδικευμένων εντολών όπου είναι δυνατόν. 123

124 Επικύρωση και Δοκιμή Προγράμματος 124

125 Επικύρωση και δοκιμή Λειτουργεί; του προγράμματος Σε αυτό το μέρος επικεντρωνόμαστε στη λειτουργική επικύρωση. Κύριοι τύποι στρατηγικών δοκιμών: Το μαύρο κουτί δεν εξετάζει τον πηγαίο κώδικα. Το διαφανές κουτί (άσπρο κουτί) εξετάζει τον πηγαίο κώδικα. 125

126 Δοκιμή διαφανούς κουτιού Εξετάζει τον πηγαίο κώδικα για να καθορίσει εάν λειτουργεί: Μπορείτε να δοκιμάσετε πραγματικά μια διαδρομή; Λαμβάνετε την τιμή που περιμένατε κατά μήκος μιας διαδρομής; Διαδικασία δοκιμής: Ελεγξιμότητα: παροχή των εισόδων στο πρόγραμμα. Εκτέλεση. Παρατηρησιμότητα: εξέταση αποτελεσμάτων. 126

127 Ελέγχοντας και παρατηρώντας firout = 0.0; for (j=curr, k=0; j<n; j++, k++) firout += buff[j] * c[k]; for (j=0; j<curr; j++, k++) firout += buff[j] * c[k]; if (firout > 100.0) firout = 100.0; if (firout < ) firout = ; τα προγράμματα Ελεγξιμότητα: Πρέπει να γεμίσουμε την προσωρινή περιοχή προσωρινής αποθήκευσης με Ν τιμές στο κατάλληλο εύρος. Διαφορετικός κώδικας ρυθμίζει πως αποκτούμε πρόσβαση στην προσωρινή περιοχή προσωρινής αποθήκευσης. Παρατηρησιμότητα: Εξετάζουμε την τιμή του firout προτού εκτελεσθεί ο κώδικας περιορισμού. 127

128 Διαδρομές εκτέλεσης και δοκιμές Οι διαδρομές εκτέλεσης είναι σημαντικές στις δοκιμές, όσο και η ανάλυση απόδοσης. Γενικά, ένας εκθετικός αριθμός διαδρομών μέσω του προγράμματος. Ένδειξη ότι ορισμένες διαδρομές κυριαρχούν έναντι άλλων. Ευρετικός περιορισμός των διαδρομών. 128

129 Επιλέγοντας τις διαδρομές για δοκιμή (1/3) Δύο λογικές επιλογές: Να εκτελέσουμε κάθε εντολή τουλάχιστον μία φορά. Να εκτελέσουμε κάθε διεύθυνση μιας διακλάδωσης τουλάχιστον μία φορά. Αυτές οι συνθήκες είναι ισοδύναμες για τις δομημένες γλώσσες προγραμματισμού χωρίς gotos. 129

130 Επιλέγοντας τις διαδρομές για δοκιμή (2/3) Δύο λογικές επιλογές: Να εκτελέσουμε κάθε εντολή τουλάχιστον μία φορά. Να εκτελέσουμε κάθε διεύθυνση μιας διακλάδωσης τουλάχιστον μία φορά. Αυτές οι συνθήκες είναι ισοδύναμες για τις δομημένες γλώσσες προγραμματισμού χωρίς gotos. 130

131 Επιλέγοντας τις διαδρομές για δοκιμή (3/3) Δύο λογικές επιλογές: Να εκτελέσουμε κάθε εντολή τουλάχιστον μία φορά. Να εκτελέσουμε κάθε διεύθυνση μιας διακλάδωσης τουλάχιστον μία φορά. Αυτές οι συνθήκες είναι ισοδύναμες για τις δομημένες γλώσσες προγραμματισμού χωρίς gotos. 131

132 Προσεγγιστικά CDFG με μη προσανατολισμένο γράφημα. Σε μη προσανατολισμένα γραφήματα, μπορούμε να εφαρμόσουμε διαδρομές βάσης. Όλες οι διαδρομές είναι γραμμικός συνδυασμός των διαδρομών βάσης. Διαδρομές βάσης 132

133 Κυκλοματική πολυπλοκότητα Η κυκλωματική πολυπλοκότητα είναι ένα άνω όριο στο μέγεθος του συνόλου βάσης: e = # ακμών n = # κόμβων p = αριθμός στοιχείων στο γράφημα M = e n + 2p. 133

134 Δοκιμή διακλάδωσης Ευρετική για δοκιμές διακλαδώσεων. Δοκιμή αληθών και ψευδών διακλαδώσεων μιας συνθήκης. Δοκιμή κάθε απλής συνθήκης τουλάχιστον μία φορά. 134

135 Παράδειγμα δοκιμής διακλάδωσης 1 Αληθές: if (a (b >= c)) { printf( OK\n ); } Ψευδές: if (a && (b >= c)) { printf( OK\n ); } Δοκιμή: a = F (b >=c) = T Παράδειγμα: Αληθές: [0 (3 >= 2)] = T Ψευδές: [0 && (3 >= 2)] = F 135

136 Παράδειγμα δοκιμής διακλάδωσης 2 Αληθές: if ((x == good_pointer) && x- >field1 == 3)) { printf( got the value\n ); } Λάθος κώδικας αλλάζει τον δείκτη. Ψευδές: if ((x = good_pointer) && x- >field1 == 3)) { printf( got the value\n ); } Η εκχώρηση επιστρέφει νέα LHS στη C. Δοκιμή που συλλαμβάνει σφάλμα: (x!= good_pointer) && x->field1 = 3) 136

137 Δοκιμή περιοχής Εμπειρική δοκιμή που επικεντρώνεται στις γραμμικές ανισότητες. Δοκιμή κάθε πλευράς + όριο της ανισότητας. 137

138 Ζευγάρια ορισμού-χρήσης Μεταβλητή ορισμούχρήσης: Καθορίζεται όταν γίνεται μια ανάθεση στην μεταβλητή. Χρησιμοποιείται όταν εμφανίζεται στη δεξιά πλευρά μιας ανάθεσης. Δοκιμή κάθε ζευγαριού ορισμού-χρήσης. Απαιτεί δοκιμή της σωστής διαδρομής. 138

139 Δοκιμές βρόχων Οι βρόχοι απαιτούν ειδικευμένες δοκιμές για να δοκιμαστούν αποδοτικά. Εμπειρική στρατηγική δοκιμής: Παράκαμψη του βρόχου εξ ολοκλήρου. Μία επανάληψη του βρόχου. Δύο επαναλήψεις του βρόχου. # επαναλήψεων σημαντικά κάτω από τον μέγιστο αριθμό. n-1, n, n+1 επαναλήψεις όπου n ο μέγιστος αριθμός. 139

140 Δοκιμή μαύρου κουτιού Συμπληρώνει τη δοκιμή διαφανούς κουτιού. Ίσως απαιτήσει πολλές δοκιμές. Δοκιμές λογισμικού με διαφορετικούς τρόπους. 140

141 Διανύσματα δοκιμής Τυχαίες δοκιμές. μαύρου κουτιού Μπορεί η κατανομή του βάρους να βασίζεται στις προδιαγραφές λογισμικού. Δοκιμές παλινδρόμησης. Δοκιμές προηγούμενων εκδόσεων, σφαλμάτων κλπ. Μπορεί να είναι δοκιμές προηγούμενων εκδόσεων διαφανούς κουτιού. 141

142 Πόση δοκιμή είναι αρκετή; Οι εξαντλητικές δοκιμές είναι κάτι μη πρακτικό. Μια σημαντική μέτρηση είναι η δοκιμή απόδοσης---διαφυγή σφαλμάτων στο πεδίο. Καλές οργανώσεις μπορούν να δοκιμάσουν το λογισμικό να δώσουν πολύ χαμηλά ποσοστά αναφοράς σφαλμάτων πεδίου. Η έγχυση σφάλματος μετράει την ποιότητα της δοκιμής: Προσθήκη γνωστών σφαλμάτων. Τρέξιμο των δοκιμών. Καθορισμός % σφαλμάτων έγχυσης που πιάστηκαν. 142

143 Παράρτημα 143

144 Παράδειγμα Σχεδίασης: Modem λογισμικού 144

145 Θεωρία της λειτουργίας Διαμόρφωση μετατόπισης συχνότητας (frequencyshift keying - FSK), διαφορετικές συχνότητες από 0 και

146 Κωδικοποίηση FSK Παραγωγή κυματομορφών βασισμένες στα τρέχοντα δυαδικά ψηφία (bit): 146

147 Αποκωδικοποίηση FSK 147

148 Σχήμα μετάδοσης Αποστολή δεδομένων σε bytes των 8-bit. Αυθαίρετη απόσταση μεταξύ των bytes. Το byte ξεκινά, με το bit έναρξης 0. Ο δέκτης μετράει το μήκος του bit έναρξης για να συγχρονιστεί στα υπόλοιπα 8 bits. 148

149 Απαιτήσεις Είσοδοι Έξοδοι Λειτουργίες Απόδοση Κότος κατασκευής Ισχύς Φυσικό μέγεθος Είσοδος αναλογικού ήχου, κουμπί reset. Έξοδος αναλογικού ήχου, οθόνη LED bit. Πομπός: Στέλνει δεδομένα σε bytes των 8-bit συν το bit έναρξης. Δέκτης: Ανιχνεύει αυτόματα τα bytes. Εμφανίζει το τρέχον ληφθένbit σε LED baud. Κυριαρχείται από τον μικροεπεξεργαστή και την αναλογική Ε/Ε. Τροφοδοτείται από AC. Αρκετά μικρό και ελαφρύ. 149

150 Προσδιορισμός 150

151 Αρχιτεκτονική συστήματος Χειριστές διακοπών για τα δείγματα: είσοδος και έξοδος. Πομπός. Δέκτης. 151

152 Πομπός Παραγωγή κυματομορφής μέσω αναζήτησης σε πίνακα. float sine_wave[n_samp] = { 0.0, 0.5, 0.866, 1, 0.866, 0.5, 0.0, -0.5, , -1.0, , -0.5, 0}; 152

153 Δέκτης Τα φίλτρα (FIR για απλότητα) χρησιμοποιούν κυκλικές περιοχές προσωρινής αποθήκευσης για να αποθηκεύουν τα δεδομένα. Ένα χρονόμετρο μετράει το μήκος bit. Μια μηχανή κατάστασης αναγνωρίζει τα bit έναρξης, τα bit δεδομένων. 153

154 CPU. Μετατροπέας A/D. Μετατροπέας D/A. Χρονόμετρο. Πλατφόρμα υλικού 154

155 Σχεδίαση συστατικών και δοκιμή Εύκολη η δοκιμή πομπού και δέκτη στην πλατφόρμα υπολογιστή υπηρεσίας. Ο πομπός μπορεί να επαληθευθεί στις εξόδους των ηχείων. Λειτουργίες επαλήθευσης δέκτη: αναγνώριση bit έναρξης, αναγνώριση bit δεδομένων. 155

156 Ολοκλήρωση συστήματος και δοκιμή Χρήση κατάστασης βρόχου επιστροφής για τη δοκιμή στοιχείων έναντι ενός άλλου. Βρόχος επιστροφής στο λογισμικό ή συνδέοντας D/A και A/D μετατροπείς. 156

157 Βιβλιογραφία Χρησιμοποιήθηκε υλικό από παρουσιάσεις των: Wayne Wolf, Overheads for Computers as Components 2 nd ed.,2008 [5.2 έως 5.10] 157

158 Τέλος Ενότητας 158

Ενσωματωμένα Συστήματα

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 11 ο Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής

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

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

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

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

Δομημένος Προγραμματισμός

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 12: Σύνοψη Θεμάτων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

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

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

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο Γιώργος Δημητρίου Μάθημα 9 ο Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 3: Καταχωρητές, Τμήματα, Διευθυνσιοδότηση Μνήμης, SEGMENT, MOV, ADD, SUB, INT, TITLE, LEA

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

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

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

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

Δομημένος Προγραμματισμός

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

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

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ARDUINO Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Ενότητα 3: Άλγεβρα Βοole και Λογικές Πράξεις Δρ. Φραγκούλης Γεώργιος Τμήμα Ηλεκτρολογίας Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

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

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

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

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

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός

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

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 5 2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού

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

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

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

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:08 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο) Προγραμματισμός Η/Υ Ενότητα 2β: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση της έννοιας του Τελεστή

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Παραδείγματα Ενοτήτων 7-9 Ενότητα 7: Ενδιάμεσος κώδικας Άσκηση 7-1: Θεωρήστε τη γλώσσα προγραμματισμού C με τη γνωστή γραμματική

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 6: inc, dec, loop, jcxz, dup, displacement Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1 Ενότητα 3: Άλγεβρα Βοole και Λογικές Πράξεις Δρ. Φραγκούλης Γεώργιος Τμήμα Ηλεκτρολογίας Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση 6: Ασκήσεις Χειμερινού Εξαμήνου 2017-2018 (μέρος Β ) Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

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

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 5: Εντολές συνθήκης Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 12 ο Βελτιστοποίηση Μετασχηματισμός κώδικα σε άλλον πιο αποδοτικό Ασφάλεια βελτιστοποίησης Ορθότητα μετασχηματισμών! Πολυπλοκότητα μετασχηματισμών Εντοπισμός πιθανά προβληματικού

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 2: Τύποι μεταβλητών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 7 η : Δείκτες Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

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

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

Μεταγλωττιστές Ενότητα 1: Εισαγωγή

Μεταγλωττιστές Ενότητα 1: Εισαγωγή Μεταγλωττιστές Ενότητα 1: Εισαγωγή Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Ενσωματωμένα Συστήματα

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στον δομημένο προγραμματισμό Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 12 η : Δυναμική Ανάθεση Θέσης Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

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 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

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

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

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

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

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση

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

Ενσωματωμένα Συστήματα

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 13 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

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

Μεταγλωττιστές Βελτιστοποίηση

Μεταγλωττιστές Βελτιστοποίηση Μεταγλωττιστές Βελτιστοποίηση Νίκος Παπασπύρου nickie@softlab.ntua.gr Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχ. Υπολογιστών Εργαστήριο Τεχνολογίας Λογισμικού Πολυτεχνειούπολη, 15780

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

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

Αντικειμενοστραφής Προγραμματισμός

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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