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

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

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

Transcript

1 Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt Univesrity. Mic-1 Programming Simulator, D. Carlson, St. Vincents College. Priniciples of Computer Organization, R. Ontko, Earlham College. Mic-1 simulator Mic-1MMV simulator, Rick Salter, Oberlin College. Mic-1 Architecture, Monash University. Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

2 Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Περιγραφή και στοιχεία υλοποίησης του Mic-1 Παράδειγμα Αρχιτεκτονικής Συνόλου Εντολών: IJVM Προσομοιωτής Mic-1 και Προγραμματισμός IJVM/JAS Υλοποίηση της IJVM στο Mic-1

3 Μικροαρχιτεκτονική Mic-1 Δύο βασικά τμήματα: Διαδρομή Δεδομένων (Datapath) = λογική αφαίρεση της CPU όπως τη 'βλέπει' η ISA. Έλεγχος (Control) = η υλοποίηση της διερμηνείας της ISA απο το επίπεδο της μικροαχιτεκτονικής.

4 Mic-1 Διαδρομή Δεδομένων Οι εσωτερικοί δίαυλοι και οι μονάδες επεξεργασίας και αποθήκευσης δεδομένων του επεξεργαστή Mic-1. Υλοποιεί την Αρχιτεκτονική Συνόλου Εντολών (ISA) Integer Java Virtual Machine (IJVM), υποσύνολο της JVM. Αρχιτεκτονική 32-bit word αλλά byte addressable.

5 Mic-1 Δίαυλοι Δίαυλος Α Έξοδος μόνο για καταχωρητή H. Είσοδος στην ALU. Δίαυλος Β Έξοδος για όλους τους άλλους καταχωρητές εκτός του MAR. Μόνο ένας καταχωρητής κάθε φορά. Είσοδος στην ALU. Δίαυλος C Είσοδος σε όλους τους καταχωρητές. Πολλοί καταχωρητές μαζί (ίσως). Έξοδος της ALU μέσω Ολισθητή.

6 Mic-1 Καταχωρητές (1) Καταχωρητής Διευθύνσεων Μνήμης Memory Address Register (MAR) * Περιέχει διευθύνσεις μνήμης 32 bits. Καταχωρητής Δεδομένων Μνήμης Memory Data Register (MDR) * Περιέχει δεδομένα από/προς τη μνήμη μεγέθους 32 bits. Μετρητής Προγράμματος Programm Counter (PC) * Περιέχει τη διεύθυνση της επόμενης προς εκτέλεση εντολής. Καταχωρητής Απομονωτή Μνήμης Μemory Buffer Register (MBR) * Περιέχει δεδομένα 1 byte από τη μνήμη (κωδικό λειτουργίας, opcode)

7 Mic-1 Καταχωρητές (2) Δείκτης Στοίβας Stack Pointer (SP) * Περιέχει τη διεύθυνση της κορυφής της στοίβας τοπικών μεταβλητών. Τοπικές Μεταβλητές Local Variables (LV) * Περιέχει τη διεύθυνση της βάσης τoυ χώρου τοπικών μεταβλητών. Δείκτης Δεξαμενής Σταθερών Constant Pool Pointer (CPP) * Περιέχει τη διεύθυνση της βάσης της περιοχής των σταθερών.

8 Mic-1 Καταχωρητές (3) Κορυφή της Στοίβας Top Of the Stack (TOS) * Περιέχει ή δείχνει τη κορυφή της στοίβας τοπικών μεταβλητών (διμελείς πράξεις στοίβας και κλήσεις μεθόδων). Προσωρινός Καταχωρητής Old Program Counter (OPC) * Προσωρινή αποθήκευση ενδιάμεσων αποτελεσμάτων για έλεγχο ροής προγράμματος (σε κλήσεις μεθόδων ο παλιός PC προς αποθήκευση). Καταχωτητής Βοήθειας Help regsiter (H) * Προσωρινή αποθήκευση ενδιάμεσων αποτελεσμάτων για πράξεις ALU.

9 Mic-1: Έλεγχος Διαδρομής Δεδομένων Β bus enable * Επιλογή ενός καταχωρητή για εγγραφή στο Δίαυλο B. C bus enable * Επιλογή καταχωρητών για ανάγνωση από το Δίαυλο C. Έλεγχος ALU * 6 σήματα για επιλογή πράξεων ALU, τα F0, F1, ENA, ENB, INVA, INC. N και Ζ * Negative και Zero σήματα προς έλεγχο- επιλογή επόμενης λειτουργίας. Shifter Control * Έλεγχος Ολίσθησης SLL8 (Shift Left Logical 8 bits) SRA1(Shift Right Arithmetic 1 bit)

10 Αριθμητική Λογική Μονάδα (1) Μια 1-bit ALU.

11 Αριθμητική Λογική Μονάδα (2) Οκτώ 1-bit ALUs συνεδεδεμένες σε μια 8-bit ALU. Δεν φαίνονται τα σήματα INVΑ και ΕΝΑ, ΕΝΑΒ.

12 Έλεγχος Αριθμητικής Λογικής Μονάδας Συνδυασμοί σημάτων ελέγχου της ALU και οι πράξεις που αντιστοιχούν σε αυτούς.

13 Ολισθητής Αριστερός/Δεξιός 1-bit Ολισθητής.

14 Κυκλώματα Μανδάλωσης (Latches) και Δισταθή Κυκλώματα (Flip-Flops) Κύλώμα Χρονισμού. Κύκλωμα Μανδάλωσης. Δισταθές κύκλωμα D.

15 Σύνδεση Καταχωρητή σε Διαύλους Το CK ('χρονισμός') ελέγχει την είσοδο ενώ το ΟΕ ('απομονωτής') ελέγχει την έξοδο.

16 Χρονισμός Διαδρομής Δεδομένων (1) Διάγραμμα χρονισμού ενός πλήρους κύκλου ρολογιού.

17 Χρονισμός Διαδρομής Δεδομένων (2) Κάθε κύκλος ρολογιού αντιστοιχεί σε μια μικροεντολή. Ο κύκλος χωρίζεται σε 5 'λογικούς' υπο-κύκλους: (Δw)σταθεροποίηση σημάτων, (Δx) έξοδος από καταχωρητές προς διαύλους Α, Β, (Δy) πράξεις και ολίσθηση, (Δz) είσοδος από δίαυλο C προς καταχωρητές, (..) σταθεροποίηση. Οι καταχωρητές ελέγχονται ουσιαστικά από την κάθοδο και την άνοδο της ακμής του ρολογιού: Kάθοδος = εγγραφή σε δίαυλο A, Β. Άνοδος = ανάγνωση από δίαυλο C. Η ALU δουλεύει συνεχώς αλλά η έξοδός της είναι ορθή μόνο στο τέλος του υποκύκλου (Δy). Απαιτείται: * Αυστηρός χρονισμός διαύλων * Σχετικά μακρός κύκλος ρολογιού * Ακριβής γνώση καθυστερήσεων διάδοσης σήματος στην ALU * Γρήγορη ανάγνωση / εγγραφή σε καταχωρητές.

18 Mic-1: Λειτουργία Μνήμης (1) Δύο θύρες μνήμης: * Μια R/W 32-bit (word addressable) για δεδομένα, MDR <=> mem(mar) bytes 0, 4, 8,... Σήματα ελέγχου READ, WRITE * Μια RΟ 8-bit (byte addressable) για εντολές, low-bytembr <= mem(pc) bytes 0, 1, 2... Σήμα ελέγχου FETCH. Ειδικός έλεγχος MBR (δυο βέλη): * απρόσημος (index/offset): 0x000low-byteMBR * προσημασμένος (sign extention): 0x000low-byteΜΒR ή 0x111low-byteMBR

19 Mic-1: Λειτουργία Μνήμης (2) word byte 000C 000C D E F A 000B Διευθύνσεις PC = 0000 PC+1 = 0001 MAR = 0000 MAR+1 = 0004 LV = 0004 LV+1 = 0008 SP = 0004 SP+1 = 0008 byte-addressable word-addessable

20 Mic-1: Λειτουργία Μνήμης (3) Απεικόνιση των bits του MAR στο δίαυλο διευθύνσεων ώστε η φυσική byte addressable μνήμη να αντιστοιχεί με λογική word addessable μνήμη για τα δεδομένα.

21 Μικροεντολές Η μορφή μικροεντολής του Mic-1. Addr : Διεύθυνση πιθανής επόμενης μικροεντολής. JAM : Προσδιορίζει πώς επιλέγεται η επόμενη μικροεντολή. ALU : Πράξεις ALU και Ολισθητή. C : Επιλογή καταχωρητών που θα διαβάσει δεδομένα από το δίαυλο C. Mem: Λειτουργίες Μνήμης Β : Επιλογή καταχωρητή που θα γράψει δεδομένα στο δίαυλο Β.

22 Ελεγχος Μικροεντολών *ROM μικροεντολών μεγέθους 512x36 bits. *H προς εκτέλεση μικροεντολή βρικεται στο Καταχωρητή Μικρο Εντολών (MIR). *Κάθε μικροεντολή ορίζει την επόμενη, όχι απαραίτητα ακολουθιακή εκτέλεση. * Ο Μετρητής Μικρο Προγράμματος (MPC) καθορίζεται από συνδυασμό - MBR - Addr - JAMN/JAMZ/JMPC - N/Z

23 Αποκωδικοποιητής Αποκωδικοποιητής 3-σε-8.

24 Μνήμη ROM Μνήμη ROM 16 λέξεων των 8 bits η κάθε μια.

25 Μικρο-εκτέλεση 1. Φόρτωση MIR από μικροrom(mpc). Σήματα ελέγχου Δw. 2. Σήματα προς διαδρομή δεδομένων, λειτουργίες διαύλων Α, Β. Δx. 3. Λειτουργίες ALU, Ολισθητή και Μνήμης. Δy. 4. Λειτουργίες διαύλου C, φόρτωση Ν/Ζ, φόρτωση καταχωρητών και MDR, MBR από Μνήμη. Δz. 5. Προετοιμασία νέου MPC.

26 Μάκρο-εκτέλεση Ανάκληση- Εκτέλεση 1. MBR = mem(pc); PC = PC Αποκωδικοποίηση (MBR). 3. Ανάκληση τελεστέων 4. Εκτέλεση εντολής 5. Αποθήκευση αποτελέσματος 6. Πίσω στο βήμα 11 Κάθε ένα από τα παραπάνω βήματα εκτελείται μέσω μιας σειράς μικρο-εκτελέσων. Κάθε εντολή IJVM μπορεί να απαιτεί ένα ή περισσότερους κύκλους μηχανής (clock cylcles).

27 Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Περιγραφή και στοιχεία υλοποίησης του Mic-1 Παράδειγμα Αρχιτεκτονικής Συνόλου Εντολών: IJVM Προσομοιωτής Mic-1και Προγραμματισμός IJVM/JAS Υλοποίηση της IJVM στο Mic-1

28 Στοίβες (1) Χρήση στοίβας για την αποθήκευση τοπικών μεταβλητών. (a) Ενεργή η κύρια μέθοδος A. (b) Η A έχει καλέσει τη B. (c) Η B έχει καλέσει τη C. (d) Οι C και B έχουν επιστρέψει και η A έχει καλέσει τη D.

29 Στοίβες (2) Χρήση μιας στοίβας τελεστέων (operands) για την εκτέλεση αριθμητικών πράξεων. (a) push LV+1 (εκεί που δείχνει ο LV συν μια θέση / word) (b) push LV+2 (c) add = (pop στην ALUinA, pop στην ALUinB, add, push ALUout) (d) pop LV

30 Το μοντέλο μνήμης της IJVM (1) Δεξαμενή Σταθερών Πλαίσιο Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Τα διάφορα μέρη του μοντέλου μνήμης της IJVM.

31 Το μοντέλο μνήμης της IJVM (2) Δεξαμενή Σταθερών * Δεν μπορεί να γραφεί από τη IJVM * Περιέχει σταθερές, συμβολοσειρές, δείκτες σε άλλες περιοχές μνήμη Πλαίσιο Τοπικών Μεταβλητών * Χώρος αποθήκευσης τοπικών μεταβλητών και παραμετρων για κάθε μέθοδο, όσο αυτή εκτελείται. Στοίβα Τρεχόντων Τελεστέων * Χώρος τελεστέων για τις πράξεις της τρέχουσας μεθόδου Περιοχή Μεθόδων * Περιέχει τον εκτελέσιμο κώδικα * Byte addressable

32 Το Σύνολο Εντολών της IJVM (1) Οι τελεστέοι byte, const, και varnum έχουν μέγεθος 1 byte. Οι τελεστέοι disp, index, και offset έχουν μέγεθος 2 bytes.

33 Το Σύνολο Εντολών της IJVM (2) Αριθμητικές Πράξεις IADD pop a, pop b, c=a+b, push c ISUB pop a, pop b, c=b-a, push c IINC varnum, const x = x+/-const (x τοπική μεταβλητή) varnum: σχετική διεύθυνση 1byte (από LV) const: ακέραιος 1 byte Λογικές Πράξεις IAND pop a, pop b, c=a AND b, push c IOR pop a, pop b, c=a OR b, push c

34 Το Σύνολο Εντολών της IJVM (3) Στοίβα και Μνήμη ILOAD varnum push x (x τοπική μεταβλητή) ISTORE varnum pop x (x τοπική μεταβλητή) BIPUSH byte push byte μετά από μετατροπή σε προσημασμένο 32 bit LDC_W index push x (x σταθερά) index: σχετική διεύθυνση 2 bytes (από CPP) Στοίβα DUP POP SWAP pop a, push a, push a (αντιγραφή) pop a (διαγραφή) pop a, pop b, push b, push a (ανταλλαγή)

35 Το Σύνολο Εντολών της IJVM (4) Έλεγχος Ροής GOTO offset IFEQ offset PC = PC +/- offset pop a if (a == 0) then PC = PC +/- offset IFLT offset pop a if (a < 0) then PC = PC +/- offset IF_ICMPEQ offset pop a, pop b, if (a == b) then PC = PC +/- offset offset: σχετική διεύθυνση 2bytes (PC) Βοηθητικές λειτουργίες NOP καμμία ενέργεια WIDE πρόθεμα για χρήση varnum 2 bytes αντί 1 byte

36 Το Σύνολο Εντολών της IJVM (5) Κλήση Μεθόδου INVOKEVIRUAL disp κλήση μεθόδου disp: σχετική έμμεση διεύθυνση 2bytes (CPP, PC) IRETURN επιστροφή από μέθοδο Οι εντολές αυτές αναλύονται παρακάτω.

37 Μεταγλώττιση Java σε εντολές IJVM (1)

38 Μεταγλώττιση Java σε εντολές IJVM (2) (a) Τμήμα κώδικα Java. (b) Η αντίστοιχη συμβολική μορφή (IJVM assembly ή JAS). (c) Ο κώδικας σε γλώσσα μηχανής IJVM (δεκαεξαδική μορφή) - σχέση μία προς μια εντολή IJVM με JAS. Συνέχεια.. (d) Κάθε εντολή σε γλώσσα μηχανής IJVM μετά την ανάκλησή της από τη μνήμη διερμηνεύεται (αποκωδικοποιείται και εκτελείται) με βάση το μικροκώδικα που βρίσκεται στη ROM του μικροπρογράμματος.

39 Μεταγλώττιση Java σε εντολές IJVM (3) SP k LV j i Αρχική κατάσταση και πλαίσιο τοπικών μεταβλητών Η στοίβα τελεστέων μετά από την εκτέλεση κάθε εντολής του κώδικα.

40 Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Περιγραφή και στοιχεία υλοποίησης του Mic-1 Παράδειγμα Αρχιτεκτονικής Συνόλου Εντολών: IJVM Προσομοιωτής Mic-1 και Προγραμματισμός IJVM/JAS Υλοποίηση της IJVM στο Mic-1

41 Εγκατάσταση και Χρήση (1) Μεταφόρτωση από το Ακολουθούμε τις οδηγίες εγκατάστασης, ελέγχου λειτουργίας και παροχής βοήθειας. Παρακολούθηση Μικροεντολών, Διαδρομής Δεδομένων, Περιοχής Μεθόδου, Στοίβας, Δεξαμενής Σταθερών, Εισόδου και Εξόδου. Ιδιαίτερα χρήσιμη βοήθεια, περιλαμβάνει και εγχειρίδια προγραμματισμού. Δυνατότητα μεταβολής assembler και μικροκώδικα. Διαθέσιμος ο πηγαίος κώδικας και τεκμηρίωση ανάπτυξης. Συλλογική έργασία με GNU Public Licence (ανάπτυξη?)

42 Εγκατάσταση και Χρήση (2) Πακέτο Jar σε δύο 'διανομές', Ms-Windows και Linux Δομή καταλόγων, Τύποι Αρχείων bin (εκτελέσιμα) Mic1MMV_hr.jar, Mic1MMV_lr.jar, runmic1.bat lib (διαμόρφωση) ijvm.conf, mic1.properties, GNU.TXT examples (παραδείγματα) MAL / microassembler code MAL -> microisntruction code MIC1 mic1ijvm.mal: προεπιλεγμένος microassembler code JAS-IJVM / assembler code JAS -> machine code IJVM doc (τεκμηρίωση) UserGuide.jar: java -jar UserGuide.jar, UserGuide_hs.jar (μαζί) src (πηγαίος κώδικας) Mic1MMV_xxx.zip (source code for Mic-1 MMV)

43

44

45

46 Παραδείγματα (1) Φόρτωση και Εκτέλεση ενός Προγράμματος IJVM 1. Εκκίνηση προσομοιωτή. 2. Choose File > Load IJVM program (menu bar). 3. File chooser, πλοήγηση στο κατάλογο examples/jas-ijvm Examples. 4. Επιλογή: ijvmtest.ijvm. Το IJVM πρόγραμμα στη Method Area. 5. Επιλογή: Prog Speed στο Command Console (radio button Prog). 6. Click στο Run button (μπλέ δεξί βέλος) στο Command Console για να γίνει διερμηνεία του IJVM προγράμματος με το προεπιλεγμένο μικροπρόγραμμα. 7. Μετά την εκτέλεση, στο Output Console: OK 8. Δοκιμές: Back (κόκκινο αριστερό βέλος), Reset, διάφορες επιλογές Speed στο Command Console.

47 Παραδείγματα (2) Συνέχεια από την ιστοσελίδα των παραδειγμάτων.../mic1-examples/html Παράδειγμα 2: Συμβολομετάφραση (assembly) ενός Προγράμματος JAS Παράδειγμα 3: Νέα Συμβολομετάφραση (re- assembly) ενός Προγράμματος JAS Παράδειγμα 4: Επιλογή διαφορετικών Ταχυτήτων (Speed), Καθυστερήσεων (Delay). Τις ίδιες (και πολύ περισσότερες) πληροφορίες μπορείτε να βρείτε στο Ηelp του Mic-1. Τα παραδείγματα είναι στο Getting Started. Quick Tour στo Programm Operation/Overview και Αναλυτικά τα Menus στο Controls and Views.

48 Το Σύνολο Εντολών της IJVM/JAS Οι τελεστέοι byte, const, και varnum έχουν μέγεθος 1 byte. Οι τελεστέοι disp, index, και offset έχουν μέγεθος 2 bytes.

49 Προγραμματισμός σε JAS Από το Help του Mic-1 πηγαίνουμε στο Program Operation Using Mic1-MMV Writing JAS Programs Πρέπει να μελετήσουμε το JAS Language Specification. * Δομή και σύνταξη της JAS (μακρο εντολές assembly) * IJVM και τρείς επιπλέον εντολές HALT IN OUT Τερματισμός προγράμματος Είσοδος byte/char από το πληκτρολόγιο (Input Area) Έξοδος byte/char στην οθόνη (Output Area)

50 Είσοδος και Έξοδος Παραδείγματα OUT και IN BIPUSH Ox41 // Load stack A OUT // Output A getch: reread: done: IN DUP IFEQ reread GOTO done POP GOTO getch... // Input char // Duplicate char for checking // If char = 0 read again // Valid char read // Discard 0 char // Read again // Done reading

51 Δομή Προγράμματος JAS // All constants declared within.constant and.end-constant.constant one 1 start 32 stop 126.end-constant // Main program starts here.main // All variables declared within.var and.end-var.var j i n.end-var // Main program goes here // Program execution is terminated with a HALT statement.end-main

52 Εκχώρηση Με BIPUSH βάζουμε μια τιμή στη στοίβα τελεστέων Με ISTORE τη μεταφέρουμε στη στοίβα τοπικών μεταβλητών BIPUSH 32 Δεκαδικό BIPUSH 032 Οκταδικό BIPUSH 0x32 Δεκαεξαδικό BIPUSH 'M Χαρακτήρας // i = 3 BIPUSH 3 ISTORE i Χρήση ΟΝΟΜΑΤΩΝ και δεκαδικών τιμών (σε JAS)

53 Πολύ Απλό Πρόγραμμα JAS // ****** main ( ) {.main // ****** int x;.var x.end-var // ****** x = 10; BIPUSH 10 ISTORE x HALT // ****** }.end-main

54 Μερικές Πράξεις // i = 3; j = 4; n = i + j; // i = 3; j = 4; n = j i; BIPUSH 3 ISTORE i BIPUSH 3 ISTORE i BIPUSH 4 ISTORE j BIPUSH 4 ISTORE j ILOAD i ILOAD j IADD ISTORE n ILOAD j ILOAD i ISUB ISTORE n

55 Απόφαση // if (i!= 3) k = 0; // if (i == 3) k =0 else k = 1; ILOAD i BIPUSH 3 IF_ICMPEQ L1 BIPUSH 0 ISTORE k L1:... ILOAD i BIPUSH 3 IF_ICMPEQ L1 BIPUSH 1 ISTORE k GOTO L2 L1:BIPUSH 0 ISTORE k L2:.. Χρήση LABELS για ονομασία σχετικών διευθύνσεων (σε JAS) Πιθανή αντιστροφή συνθήκης για απόδοση.

56 Επανάληψη x = 0; while (x < n) {... x = x+1; } x = 0; L1: if ((x-n) < 0) goto L2 else goto L3 L2:... x = x+1; goto L1; L3:... // x = 1; BIPUSH 0 ISTORE x // if ((x-n) < 0) L1:ILOAD x ILOAD n ISUB IFLT L2 GOTO L3 L2:... // x = x+1; IINC x 1 GOTO L1 L3:...

57 Άσκηση (1) Γράψτε τον κώδικα σε IJVM σε δεκαεξαδική μορφή αλλά και σε Java. Ποιά θα είναι η τιμή του x στο τέλος της εκτέλεσης; L1: BIPUSH 3 ISTORE i BIPUSH 1 ISTORE x ILOAD i IFLT L2 ILOAD x DUP IADD ISTORE x IINC i -1 GOTO L1 L2:...

58 Άσκηση (2) Έστω οτι αρχικά ο SP δείχνει στη τιμή = -3 Η περιοχή των μεθόδων περιέχει τα παρακάτω και ο PC δείχνει στη πρώτη θέση. PC Τι θα περιέχει η στοίβα στο τέλος;

59 Πρόγραμμα JAS (1) // Ένα for loop. Συγκρίνετε με το while loop σε προηγούμενη παρουσίαση // Πως αλλιώς θα μπορούσε να γίνει? Εκτύπωση των x, i?.main BIPUSH 0 // x = 0 ISTORE x BIPUSH 0 // for (i = 0; i < 20; i++) ISTORE i // i = 0 L1: BIPUSH 19 // if (19 i) < 0 goto L2 ILOAD i ISUB IFLT L2 ILOAD x // x = x + i ILOAD i IADD ISTORE x IINC i 1 // i++ GOTO L1 // endfor L2: HALT.end-main

60 Πρόγραμμα JAS (2) // Display all printable ASCII characters.constant one 1 start 32 stop 126.end-constant.main LDC_W start // Load on top of stack constant start next: DUP // Duplicate top of stack:keep this for counter OUT // Display top of stack DUP // Duplicate top of stack for subtraction LDC_W stop // Load on stack constant stop ISUB // Pop two values, subtract and push on top of stack IFEQ done // If stop is reached go to done LDC_W one // Load on top of stack one IADD // Pop two values, add and push on top of stack GOTO next // Loop again done: POP // Empty stack from counter HALT // End.end-main

61 Ασκήσεις Προγραμματισμού (1) Να παραχθεί το πρόγραμμα εμφάνισης των χαρακτήρων ASCII ξεκινώντας από πρόγραμμα Java και με τη βοήθεια templates. Τι παρατηρείτε; Να εκτελεστούν τα αρχικά προγράμματα IJVM στο προσομοιωτή. Να γραφούν και να εκτελεστούν μικρά προγράμματα ελέγχου templates από C/Java σε IJVM/JAS. Να γραφεί ένα απλό πρόγραμμα πολλαπλασιασμού δύο ακεραίων. Να μη ληφθούν υπ' όψη περιπτώσεις υπερχείλισης. Να γραφεί ένα απλό πρόγραμμα ακέραιας διαίρεσης. Δεδομένων δύο αριθμών a >= b υπολογίζουμε τα x, y ώστε a = b * x + y. x=0; c=a; while (c >= b) { x=x+1; c=c-b; } y=c;

62 Ασκήσεις Προγραμματισμού (2) Σε όλες τις παραπάνω ασκήσεις να δοθεί έμφαση όχι μόνο στην ορθότητα του προγράμματος αλλά επίσης: 1. Στην δεκαεξαδική μορφή του κώδικα (JAS σε IJVM). 2. Στις περιοχές μνήμης, την εξέλιξή τους, τις μεθόδους που χρησιμοποιεί η IJVM να 'μεταφράσει' τις διευθύνσεις από λογικές σε φυσικές. 3. Στην εκτέλεση του προγράμματος σε επίπεδο IJVM και σε επίπεδο κύκλου μηχανής. 4. Τη παρακολούθηση της Διαδρομής Δεδομένων, τις αλλαγές των τιμών των καταχωρητών, τη λειτουργία της ALU.

63 Κλήση Μεθόδου στη IJVM (1) INVOKEVIRTUAL methodname * Όνομα methodname = δείκτης στη (διεύθυνση στη) Περιοχή Μεθόδων, στην αρχή της μεθόδου (PC μετά τη κλήση). Έχει μέγεθος 2 bytes και προστίθεται στο CPP για να δώσει τη νέα τιμή του PC. * Φορτώνει τη σταθερά OBJREF στη στοίβα πριν από τη κλήση * Φορτώνει παραμέτρους που πρέπει να περάσουν στη μέθοδο * Εκτελεί την κλήση: - ρύθμιση νέων PC, SP, LV - αποθήκευση παλιών PC, SP, LV - μεταφορά ελέγχου OBJREF * Δείκτης σε Object (αντικείμενο): στη Java κάθε μέθοδος σχετίζεται με αντικείμενα. * Στη IJVM χρησιμοποιούμε ένα ψευδο-δείκτη 0x40

64 Κλήση Μεθόδου στη IJVM (2) Bytes 0,1 = no of params Bytes 2,3 = local var frame size Byte 4 = first instruction New Method methodname New PC Δεξαμενή Σταθερών Στοίβα Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Υπολογισμός PC κατά τη κλήση μεθόδου με όνομα methodname. Τα πρώτα 4 bytes έχουν ειδική σημασία.

65 Κλήση Μεθόδου στη IJVM (3) Εκτέλεση INVOKEVIRTUAL methodname * O PC της καλούσας μεθόδου αυξάνεται κατά ένα, ώστε να είναι έτοιμος για την επιστροφή. Αποθηκεύεται προσωρινά στο OPC. * Φορτώνεται ο νέος PC. * Φορτώνεται ο αριθμός των παραμέτρων και ο αριθμός των τοπικών μεταβλητών ώστε να καθοριστούν οι νέες τιμές των SP, LV. * Φορτώνεται ο νέος SP. * Οι PC, LV της καλούσας μεθόδου σώζονται στη κορυφή του νέου stack. * Στη θέση του OBJREF σώζεται η διεύθυνση του PC της καλούσας μεθόδου (link ptr) * O PC της νέας μεθόδου αυξάνεται κατά ένα, δείχνει στη πρώτη εντολή. * Φορτώνεται νέος LV. *...

66 Κλήση Μεθόδου στη IJVM (4) 2.Φόρτωση νέου PC μέσω CPP 3.Υπολογισμός και φόρτωση νέου SP 4. Σώσιμο παλιών PC,LV 1.Εισαγωγή OBJREF 5. Link προς παλιό PC 6. Φόρτωση νέου LV. (a) Η μνήμη πριν την εκτέλεση της INVOKEVIRTUAL. (b) Η μνήμη μετά την εκτέλεσή της.

67 Επιστροφή Μεθόδου στη IJVM (1) Εκτέλεση IRETURN * Ο τρέχων SP αποθηκεύεται προσωρινά στο TOS. * Φορτώνεται ως προηγούμενος SP ο τρέχων LV. * Φορτώνεται o προηγούμενος PC μέσω του LV. * Φορτώνεται ο προηγούμενος LV (πάνω από προηγούμενο PC). * Στη θέση του δείκτη θέσης (εκεί που δείχνει ο SP) αποθηκεύεται η επιστρεφόμενη τιμή (αυτή που δείχνει ο TOS). Όλες οι άλλες τιμές χάνονται, μόνο μια τιμή επιστρέφεται. *...

68 Επιστροφή Μεθόδου στη IJVM (2) 3. Πρώην LV πάνω από πρώην PC 2. Πρώην PC εκεί που δείχνει ο πρώην SP ή ο LV 4. Τιμή Επιστροφής 1. Πρώην SP εκεί που δείχνει ο o LV πρώην SP (a) Η μνήμη πριν την εκτέλεση της IRETURN. (b) Η μνήμη μετά την εκτέλεσή της.

69 Μέθοδοι σε JAS (1)... μετά το end-main // All methods declared within method declaration.method methodname1 (param-1, param-2..).var // Local variables.end-var // A method ends with IRETURN.end-method.method methodname2 (param-1, param-2..).var // Local variables.end-var // A method ends with IRETURN.end-method

70 Πολύ Απλή Μέθοδος JAS (1) // ***** OBJREF.constant objref 0xCAFE.end-constant // ****** main ( ) {.main // ****** int x, y, z;.var x y z.end-var // ****** x = 10; BIPUSH 10 ISTORE x // ****** y = 11; BIPUSH 11 STORE y // ****** z = cmp (x, y); ILOAD x ILOAD y NVOKEVIRTUAL cmp ISTORE z HALT // ****** }.end-main

71 Πολύ Απλή Μέθοδος JAS (2) // ***** int cmp (int p1, int p2) {.method cmp(p1,p2).var temp.end-var // ***** temp = p2 - p1 ILOAD p1 ILOAD p2 ISUB ISTORE temp // ***** if (temp < 0) go to lt ILOAD temp IFLT lt // ***** if (temp == 0) go to eq ILOAD temp IFEQ eq // ***** return 1 (temp > 0) gt: BIPUSH 1 GOTO done // ***** return -1 (temp < 0) lt: BIPUSH -1 GOTO done // ***** return0 (temp == 0) eq: BIPUSH 0 // ***** }; done: IRETURN.end-method

72

73

74

75

76 Ασκήσεις Προγραμματισμού - Μέθοδοι Να γραφούν απλές μέθοδοι για την εισαγωγή και εμφάνιση τοπικής μεταβλητής, του τύπου getchar(int x) και putchar(int x). Να γραφούν απλές μέθοδοι της μορφής max(int x, int y) min (int x, int y) Να γραφούν απλές μέθοδοι της μορφής mul(int x, int y) div(int x, int y) mod(int x, int y) abs(int x) Να γραφούν απλές μέθοδοι για την επαναληπτική άθροιση, εύρεση μεγίστου/ ελαχίστου 10 αριθμών αποθηκευμένων σε διαδοχικές θέσεις μνήμης. Ισχύουν οι παρατηρήσεις των προηγουμένων ασκήσεων προγραμματισμού.

77 Περιορισμοί * Δείκτες (Pointers = Διευθύνσεις). * Call by Reference (Παράμετρος τύπου Δείκτη) άρα και επιστροφή τιμών. * Πίνακες (Αύξηση Δείκτη). * Δυναμικοί Πίνακες.

78 Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Περιγραφή και στοιχεία υλοποίησης του Mic-1 Παράδειγμα Αρχιτεκτονικής Συνόλου Εντολών: IJVM Προσομοιωτής Mic-1 και Προγραμματισμός IJVM/JAS Υλοποίηση της IJVM στο Mic-1

79 Μικροαρχιτεκτονική Mic-1 * ΜικροROM μικροεντολών (MROM) μεγέθους 512x36 bits. * Ο Μετρητής Μικρο Προγράμματος (MPC) δείχνει τη προς εκτέλεση μικροεντολή. * Η μικροεντολή προσκομίζεται στο Καταχωρητή Μικρο Εντολών (MIR). * Κάθε μικροεντολή ορίζει την επόμενη, όχι απαραίτητα ακολουθιακή εκτέλεση.

80 Χρονισμός Mic-1 Διάγραμμα χρονισμού ενός πλήρους κύκλου ρολογιού.

81 Μικρο-εκτέλεση Mic-1 1. Φόρτωση MIR από μικροrom(mpc). Σήματα ελέγχου Δw. 2. Σήματα προς διαδρομή δεδομένων, λειτουργίες διαύλων Α, Β. Δx. 3. Λειτουργίες ALU, Ολισθητή και Μνήμης. Δy. 4. Λειτουργίες διαύλου C, φόρτωση Ν/Ζ, φόρτωση καταχωρητών και MDR, MBR από Μνήμη. Δz. 5. Προετοιμασία νέου MPC. Κάθε Μικροεντολή = 'Ενας κύκλος ρολογιού

82 Μικροεντολές Η μορφή μικροεντολής του Mic-1. Addr : Διεύθυνση πιθανής επόμενης μικροεντολής (9) JAM : Προσδιορίζει πώς επιλέγεται η επόμενη μικροεντολή (3) ALU : Πράξεις ALU και Ολισθητή (6 ALU και 2 Shit) C : Επιλογή καταχωρητών που θα διαβάσει δεδομένα από το δίαυλο C (9). Mem: Λειτουργίες Μνήμης (3) Β : Επιλογή καταχωρητή που θα γράψει δεδομένα στο δίαυλο Β (4).

83 Συμβολισμός Μικροεντολών Ετικέτα: Διεύθυνση ΜROM (NEXT_ADDRESS) πχ iadd1 Λειτουργίες: Σε μορφή Register Transfer Language (MAL) πχ MAR = SP = SP 1; rd Σχόλια: Εξήγηση των λειτουργιών Και οι δύο μορφές ορατές στο Προσομοιωτή.

84 Μικροεντολές και Λειτουργίες (1) Όλες οι επιτρεπόμενες λειτουργίες σε επίπεδο μικροεντολής. Ουσιαστικά εκτελούνται όλες μέσω της ALU και του Ολισθητή. Κάθε λειτουργία μπορεί να επεκταθεί προσθέτοντας << 8 στο τέλος ώστε το αποτέλεσμα ολισθαίνει αριστερά κατά 1 byte. Για παράδειγμα, μια συνηθισμένη λειτουργία είναι η παρακάτω: H = MBR << 8

85 Μικροεντολές και Λειτουργίες (2) Συνδυασμοί σημάτων ελέγχου της ALU και οι πράξεις που αντιστοιχούν σε αυτούς. Για τις λειτουργίες RTL/MAL, όπου A θέτουμε H και όπου B Source.

86

87

88 Βασικός Κύκλος Επαναλαμβάνεται στην αρχή διερμηνείας κάθε εντολής IJVM/JAS. Αποτελεί τη βάση της αποκωδικοποίησης της εντολής. Αυξάνεται ο PC και ανακαλείται η εντολή από τη μνήμη. Ο MPC λαμβάνει ως τιμή το opcode της εντολής. Main1 PC = PC+1; fetch; goto(mbr) Άρα ο opcode της εντολής δίνει τη διεύθυνση της MROM όπου βρίσκεται η πρώτη μικροεντολή διερμηνείας της υπο εκτέλεση IJVM εντολής. Παρατηρείστε την αρχική τιμή του PC καθώς και την αρχική ακολουθία μικροεντολών ('Ασκηση).

89 Παράδειγμα Μικροεντολών σε RTL/MAL Ετικέτα Λειτουργία Σχόλια op1 SP = MAR = SP + 1 O SP και ο MAR λαμβάνουν τη τρέχουσα τιμή του SP αυξημένη κατά ένα. op2 PC = PC + 1; fetch O PC αυξάνεται κατά ένα. Προσοκόμιση byte από μνήμη σε MBR. op3 MDR = TOS = MBR; wr; goto Main1 O MDR και ο TOS λαμβάνουν τη τρέχουσα τιμή του MBR. Εγγραφή στη θέση μνήμης που δείχνει o MAR. Επιστροφή στην αρχική θέση της MROM. Ποιά εντολή είναι; Ποια η σημασία της διπλής εκχώρησης;

90 Παράδειγμα Μικροεντολών σε mic Εργαζόμαστε και με τη βοήθεια του προσομοιωτή. Προσοχή στην ομαδοποίηση των καταχωρητών στο C, το δεκαεξαδικό. Έχει τη μορφή bits (επειδή τα 36 bits αποθηκεύονται συνολοκά από το LSbit).

91

92

93

94

95 Άσκηση: mic1 => MAL => IJVM/JAS 1C 1D 1E 1F Με τη βοήθεια του προσομοιωτή να γράψετε τον αντίστοιχο κώδικα σε MAL και στη συνέχεια να βρείτε ποια εντολή ΙJVM/JAS είναι η παραπάνω

96 RTL/MAL: Στοίβα (0) NOP καμμία ενέργεια IADD ISUB IAND IOR DUP POP SWAP pop a, pop b, c=a+b, push c pop a, pop b, c=b-a, push c pop a, pop b, c=a AND b, push c pop a, pop b, c=a OR b, push c pop a, push a, push a pop a pop a, pop b, push b, push a

97 RTL/MAL: Στοίβα (1)

98 RTL/MAL: Στοίβα (2) Με τη βοήθεια του παραπάνω πίνακα και του προσομοιωτή μελετήστε τα παρακάτω: * Τη κωδικοποίηση των μικροεντολών που παρουσιάζονται. * Τη λειτουργία των μικροεντολών σε επίπεδο κύκλου και υποκύκλων ρολογιού. * Τη μετατροπή των διευθύνσεων με χρήση offset (MAR=SP+/-1). * Την αυξομείωση του SP και τη χρήση του καταχωρητή TOS. * Ποιά είναι η αρχική ακολουθία μικροεντολών που εκτελείται; * Τι σημαίνει το goto(mbr);

99 Mic-1: Λειτουργία Μνήμης Απεικόνιση των bits του MAR στο δίαυλο διευθύνσεων ώστε η φυσική byte addressable μνήμη να αντιστοιχεί με λογική word addessable μνήμη για τα δεδομένα.

100 RTL/MAL: Στοίβα - Μνήμη (0) ILOAD varnum push x (x τοπική μεταβλητή) ISTORE varnum pop x (x τοπική μεταβλητή) BIPUSH byte push byte μετά από μετατροπή σε προσημασμένο 32 bit LDC_W index push x (x σταθερά) index: σχετική διεύθυνση 2 bytes (από CPP) WIDE πρόθεμα για χρήση varnum 2 bytes αντί 1 byte IINC varnum, const x = x+/-const (x τοπική μεταβλητή) varnum: σχετική διεύθυνση 1byte (από LV) const: ακέραιος 1 byte

101 RTL/MAL: Στοίβα - Μνήμη (1)

102 RTL/MAL: Στοίβα - Μνήμη (2)

103 RTL/MAL: Στοίβα - Μνήμη (3) Με τη βοήθεια του παραπάνω πίνακα και του προσομοιωτή μελετήστε τα παρακάτω: * Την υλοποίηση της εντολής BIPUSH. Χρήση operand (τελεστέου) ως τιμή (value) και όχι αναφορά (διεύθυνση, reference). * Την επικοινωνία Στοίβας Τελεστέων και Τοπικών Μεταβλητών μέσω των καταχωρητών SP και LV. * Τι σημαίνει το MBRU; Δείτε το μοντέλο μνήμης από τη πλευρά της IJVM και της JAS.

104 Το μοντέλο μνήμης της IJVM Δεξαμενή Σταθερών Στοίβα Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Τα διάφορα μέρη του μοντέλου μνήμης της IJVM.

105 RTL/MAL: Στοίβα - Μνήμη (4) * Την υλοποίηση των εντολών WIDE ILOAD και WIDE ISTORE σε σχέση με τις αντίστοιχες ILOAD και ISTORE (οχι το wide1) Μελετήστε την ακολουθία μικροεντολών Η = MBRU << 8 H = MBRU OR H MAR = H + LV ή MAR = H + CPP

106 RTL/MAL: Στοίβα - Μνήμη (5) Η αρχική ακολουθία μικροεντολών για τις εντολές ILOAD και WIDE ILOAD. Οι διευθύνσεις είναι ενδεικτικές.

107 RTL/MAL: Έλεγχος Ροής (0) GOTO offset IFEQ offset PC = PC +/- offset pop a if (a == 0) then PC = PC +/- offset IFLT offset pop a if (a < 0) then PC = PC +/- offset IF_ICMPEQ offset pop a, pop b, if (a == b) then PC = PC +/- offset offset: σχετική διεύθυνση 2bytes (PC)

108 RTL/MAL: Έλεγχος Ροής (1)

109 Ελεγχος Μικροεντολών (1) * Κάθε μικροεντολή ορίζει την επόμενη, όχι απαραίτητα ακολουθιακή εκτέλεση. * Το περιεχμενο του MPC καθορίζεται από συνδυασμό - MBR - Addr - JAMN/JAMZ/JMPC - N/Z

110 Έλεγχος Mικροεντολών (2) Μια μικροεντολή με το πεδίο JAMZ ίσο με 1 μπορεί να έχει δύο πιθανές επόμενες εντολές, ανάλογα με τη τιμή του Ζ. FZ = (JAMZ AND Z) OR NEXT_ADDRESS Παρόμοια μια μικροεντολή με το πεδίο JAMΝ ίσο με 1 μπορεί να έχει δύο πιθανές επόμενες εντολές, ανάλογα με τη τιμή του Ζ FN = (JAMN AND N) OR NEXT_ADRESS

111 Έλεγχος Mικροεντολών (3) Νέα τιμή του MPC: * Αν JAM = 000 τότε NEXT_ADDRESS * Aν JAM = 001 ή 010 τότε (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRES όπου OR: high_order bit OR * ΑΝ JAM = 100 τότε MBR OR NEXT_ADDRESS όπου OR: 8 low_order bit OR Για τη υλοποίηση δείτε λεπτομέρειες στο βιβλίο.

112 Έλεγχος Mικροεντολών (4) Η κατάσταση κατά την εκκίνηση διαφόρων μικροεντολών. a) Main1. b) goto1. c) goto2. d) goto3. e) goto4. Με τη βοήθεια του προσομοιωτή μελετήστε την μικρο-εκτέλεση της εντολής IJVM/JAS goto σε ένα πραγματικό απλό πρόγραμμα.

113 RTL/MAL: Κλήση/Επιστροφή Μεθόδου INVOKEVIRUAL disp κλήση μεθόδου disp: σχετική έμμεση διεύθυνση 2bytes (CPP, PC) IRETURN επιστροφή από μέθοδο Άσκηση: Με τη βοήθεια του προσομοιωτή μελετήστε τις μικροακολουθίες για την κλήση και επιστροφή μεθόδου. Αντικαταστήστε τα ονόματα στα διαγράμματα με πραγματικές δεκαεξαδικές τιμές από το παράδειγμά σας.

114 RTL/MAL: Κλήση Μεθόδου

115 Κλήση Μεθόδου στη IJVM (1) Bytes 0,1 = no of params Bytes 2,3 = local var frame size Byte 4 = first instruction New Method methodname New PC Δεξαμενή Σταθερών Στοίβα Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Υπολογισμός PC κατά τη κλήση μεθόδου με όνομα methodname. Τα πρώτα 4 bytes έχουν ειδική σημασία.

116 Κλήση Μεθόδου στη IJVM (2) Εκτέλεση INVOKEVIRTUAL methodname * O PC της καλούσας μεθόδου αυξάνεται κατά ένα, ώστε να είναι έτοιμος για την επιστροφή. Αποθηκεύεται προσωρινά στο OPC. * Φορτώνεται ο νέος PC. * Φορτώνεται ο αριθμός των παραμέτρων και ο αριθμός των τοπικών μεταβλητών ώστε να καθοριστούν οι νέες τιμές των SP, LV. * Φορτώνεται ο νέος SP. * Οι PC, LV της καλούσας μεθόδου σώζονται στη κορυφή του νέου stack. * Στη θέση του OBJREF σώζεται η διεύθυνση του PC της καλούσας μεθόδου (link ptr) * O PC της νέας μεθόδου αυξάνεται κατά ένα, δείχνει στη πρώτη εντολή. * Φορτώνεται νέος LV. *...

117 Κλήση Μεθόδου στη IJVM (3) (a) Η μνήμη πριν την εκτέλεση της INVOKEVIRTUAL. (b) Η μνήμη μετά την εκτέλεσή της.

118 RTL/MAL: Επιστροφή Μεθόδου

119 Επιστροφή Μεθόδου στη IJVM (1) Εκτέλεση IRETURN * Ο τρέχων SP αποθηκεύεται προσωρινά στο TOS. * Φορτώνεται ως προηγούμενος SP ο τρέχων LV. * Φορτώνεται o ποηγούμενος PC μέσω του LV. * Φορτώνεται ο προηγούμενος LV (πάνω από προηγούμενο PC). * Στη θέση του δείκτη θέσης (εκεί που δείχνει ο SP) αποθηκεύεται η επιστρεφόμενη τιμή (αυτή που δείχνει ο TOS). Όλες οι άλλες τιμές χάνονται, μόνο μια τιμή επιστρέφεται. *...

120 Επιστροφή Μεθόδου στη IJVM (2) (a) Η μνήμη πριν την εκτέλεση της IRETURN. (b) Η μνήμη μετά την εκτέλεσή της.

121 Τροποποίηση Mic-1 (1) 1. Τροποποίηση Μικροαρχιτεκτονικής: αλλαγή του τρόπου εκτέλεσης μιας εντολής από το Επίπεδο Συνόλου Εντολών, χωρίς αυτό να γίνει αντιληπτό στον προγραμματιστή ανωτέρου επιπέδου (τυπική περίπτωση backward compatibility). Θα αναλυθεί στη επόμενη ενότητα. 2. Τροποποίηση Συνόλου Εντολών: αλλαγή (προσθήκη συνήθως) νέας εντολής στο Επίπεδο Συνόλου Εντολών, και συνακόλουθη εισαγωγή του αντίστοιχου μικροπρογράμματος στην μικροrom. Η αλλαγή αυτή μπορεί να βασίζεται στην υπάρχουσα μικροαρχιτεκτονική ή να συνδυάζεται με αλλαγή της όπως στο 1. Θα εξετάσουμε τη περίπτωση που βασιζόμαστε στην υπάρχουσα μικροαρχιτεκτονική. Απαιτείται αλλαγή (δες Help του προσομοιωτή) : - στο κώδικα της μικροαρχιτεκτονικής (αρχείο mic1ijvm.mal) - στο αρχείο διαμόρφωσης του assemlbler (αρχείο ijvm.conf)

122 Τροποποίηση Mic-1 (2) Δημιουργία εντολής IJVM/JAS IFNEQ offset 1. Τροποποίηση αρχείου mic1ijvm.mal 1.1. Εισαγωγή label ifneq1 0x9A // opcode της εντολής 1.2. Εισαγωγή RTL/MAL κώδικα ifneq1 ifneq2 ifneq3 ifneq4 MAR = SP = SP -1; rd OPC = TOS TOS = MDR Z = OPC; if (Z) goto F; else goto T 2. Τροποίηση αρχείου διαμόρφωσης ijvm.conf Εισαγωγή γραμμής 0x9A IFNEQ label

123 Ασκήσεις (1) * Αριθμητικές λογικές εντολές INEG pop a, -a, push -a IINV pop a, NOTa, push a * Εντολές Ελέγχου Ροής. IFGT offset IFLE offset IFGE offset if ( >0 ) goto offset if ( <=0 ) goto offset if ( >=0 ) goto offset IF_ICMPGT offset if ( x > y ) goto offset IF_ICMPGE offset if ( x >= y ) goto offset IF_ICMPLT offset if ( x < y ) goto offset IF_ICMPGE offset if ( x <= y ) goto offset

124 Ασκήσεις (2) * Δείκτες (Pointers == Διευθύνσεις). IPLOAD a και IPSTORE a ώστε να μπορεί μια τοπική μεταβλητή a να χρησιμοποιείται ως δείκτης σε μεταβλητή. Υποτίθεται οτι προηγουμένως έχουμε λύσει το πρόβλημα της δυναμικής εκχώρησης μνήμης. * Call by Reference (Παράμετρος τύπου Δείκτη) άρα και επιστροφή τιμών από μέθοδο. Με τη βοήθεια των Δεικτών μπορούμε να περάσουμε ως παράμετρο Δείκτη. Τι αλλάζει στη κλήση μεθόδου; Τι αλλάζει στο κώδικα της μεθόδου; * Πίνακες (Αύξηση Δείκτη) a[0] == *a, a[1] == *(a+1),.., a[i] == *(a+i) IALOAD a, i και IASTORE a, i φόρτωση από και αποθήκευση σε θέση μνήμης i words μετά από τη θέση που αρχίζει ο πίνακας a. Υποτίθεται οτι δε μας απασχολεί το θέμα της δήλωσης του πίνακα.

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Mic-1 και IJVM Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt

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

5. Σχεδιάστε ένα κύκλωμα περιττής ισοτιμίας για το βασικό κώδικα ΑSCII (7 bits).

5. Σχεδιάστε ένα κύκλωμα περιττής ισοτιμίας για το βασικό κώδικα ΑSCII (7 bits). Αρχιτεκτονική Η/Υ Ασκήσεις Επανάληψης και Εξετάσεων 1. Με τη βοήθεια του διαγράμματος λειτουργίας CPU-Μνήμης (από την εισαγωγή) εξηγείστε το κύκλο Ανάκλησης Εκτέλεσης. Γράψτε τα βήματα σε μορφή ψευδοκώδικα.

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

Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής. Mic-1 MMV. Προσομοιωτής Αρχιτεκτονικής H/Y

Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής. Mic-1 MMV. Προσομοιωτής Αρχιτεκτονικής H/Y Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Mic-1 MMV Προσομοιωτής Αρχιτεκτονικής H/Y 2010 Περιεχόμενα Εισαγωγή...3 1 Ξεκινώντας...3 1.1 Περιεχόμενα της διανομής του προγράμματος...3 1.2 Εγκατάσταση...4

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

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

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

Arqitektonik Upologist n

Arqitektonik Upologist n Arqitektonik Upologist n Mìsqoglou Stulianìc stelios@moschoglou.com AEM: 6978 1 IounÐou 2010 Proptuqiakìc Hlektrolìgoc Mhqanikìc & Mhqanikìc Upologist n, A.P.J. 1 ΠΕΡΙΕΧ ΟΜΕΝΑ 2 Perieqìmena 1 Πρόλογος

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

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

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

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

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

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

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

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

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

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

3. Γλώσσα μηχανής IJVM 4. Σχεδιαστικές επιλογές 5. Κρυφή μνήμη

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

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών Εισαγωγή Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Οργάνωση Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Περιβάλλον Προσομοίωσης Hades, University of Hamburg http://tams-www.informatik.uni-hamburg.de/applets/hades/

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

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

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας

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

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

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

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

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

Τέτοιες λειτουργίες γίνονται διαμέσου του Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: Προσκόμιση της εντολής (fetch) από τη θέση που δείχνει ο PC Ανάγνωση των περιεχομένων ενός ή δύο καταχωρητών Τέτοιες λειτουργίες γίνονται διαμέσου

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 9 Μαΐου 2017 παράδοση: 3μμ 25 Μαΐου Άσκηση 1: Να αποδειχτεί ότι για τη μετατροπή αριθμού από σύστημα με βάση p σε σύστημα με βάση q, όπου

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

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

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

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

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής. Εισαγωγή στους Η/Υ Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Δεύτερη Σειρά Ασκήσεων 21 Απριλίου 2016 παράδοση: 9μμ 19 Μαΐου 2016 Άσκηση 1: Η κλασική αναπαράσταση συμπληρώματος ως προς βάση Β ενός προσημασμένου αριθμού σταθερής

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

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

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

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό. Ερωτήσεις θεωρίας MY Μέρος Α. Υλικό. 1. Η μνήμη ROM είναι συνδυαστικό ή ακολουθιακό κύκλωμα; 2. α) Να σχεδιαστεί μία μνήμη ROM που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

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

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

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

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

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

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δείκτες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Τι είναι ο δείκτης Ένας δείκτης είναι μια μεταβλητή που περιέχει μια διεύθυνση μνήμης. Θυμηθείτε πως

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

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

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

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

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

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

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

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

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

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

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

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

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή απόδοση! Αντιβαίνει με αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων»

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

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

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

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

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

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

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

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

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

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

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: Σελίδα 1 από 12 Απαντήσεις στο φυλλάδιο 55 Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από: (α) Κεντρική Μονάδα Επεξεργασίας. (β) Κύρια Μνήµη. (γ) Μονάδες εισόδου. (δ) Μονάδες εξόδου. (ε) Βοηθητική

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Το mic1 διανέμεται με τους όρους της GNU General Public License. Ο πηγαίος κώδικας περιέχεται στην έκδοση.

Το mic1 διανέμεται με τους όρους της GNU General Public License. Ο πηγαίος κώδικας περιέχεται στην έκδοση. MIC-1 Simulator Ο εξομοιωτής, βασισμένος στην JAVA, ονομάζεται mic1 και υλοποιεί την αρχιτεκτονική Mic-1 που περιγράφεται στο κεφάλαιο 4 του βιβλίου του A. S. Tanenbaum, Structured Computer Organization,

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

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

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

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

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

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

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος Control Flow εντολές Jump related JMP Jcc (JZ, JNZ, JB, JNB etc) JCXZ, JECXZ LOOP LOOPE, LOOPNE Procedure related CALL RET INT IRET INTO ENTER LEAVE

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια

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

Μικροαρχιτεκτονική του LC3

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

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

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

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

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

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

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

Θέµατα Φεβρουαρίου

Θέµατα Φεβρουαρίου Θέµατα Φεβρουαρίου 2-2 cslab@ntua 2- Θέµα ο (3%): Έστω η παρακάτω ακολουθία εντολών που χρησιµοποιείται για την αντιγραφ από µια θέση µνµης σε µια άλλη (memory-to-memory copy): lw $2, ($) sw $2, 2($) i)

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

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

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

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

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code) Ας ξεκινήσουμε Τι χρειαζόμαστε για να υλοποιήσουμε έναν επεξεργαστή? Macro-instructions ALU (Assembly level) Register File Micro-instructions Main memory (micro-code) Control signals and microcode (control

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

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10 Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10 Chapter 10 Part 1 1 Περιεχόμενο Εισαγωγή Παράδειγμα Διαδρομής Δεδομένων Αριθμητική Λογική Μονάδα (Arithmetic Logic Uit - ALU) Μονάδα

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

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

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

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

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Εισαγωγή Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

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

Αρχιτεκτονικη υπολογιστων

Αρχιτεκτονικη υπολογιστων ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked

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

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

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

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

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

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

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

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

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών Άσκηση 1 (σύνοψη της εκφώνησης) [Εκτέλεση λογικών πράξεων]

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

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

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

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

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

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

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

Παραδείγματα Προγραμματισμού σε Assembly του TRN

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

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

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

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

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

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

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

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

Υπολογιστικά Συστήματα Λογική Σχεδίαση Αρχιτεκτονική Η/Υ Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

Υπολογιστικά Συστήματα Λογική Σχεδίαση Αρχιτεκτονική Η/Υ Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας Υπολογιστικά Συστήματα Λογική Σχεδίαση Αρχιτεκτονική Η/Υ Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας ΔΠΜΣ «Τεχνο- Οικονομικά Συστήματα» Τεχνολογία Πληροφορίας και Τηλεπικοινωνιών Ιστοσελίδα

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

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

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

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