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

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

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

Transcript

1 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson, CS-231, Vanderbildt Univesrity. Computer Systems: a Programmers Perspective, R. Bryant, D. O' Hallaron, Carnegie-Mellon University. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Αρχιτεκτονική Υπολογιστών, Ν. Στεφανιδάκης, Ιόνιο Πανεπιστήμιο. Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

2 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

3 Σύγχρονες Πολυεπίπεδες Μηχανές Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Πρόγραμμα γλώσσας assembly Συστήματα Αρχιτεκτονική Σενάριο ή κλήση συστήματος (μικτή γλώσσα) Πρόγραμμα σε γλώσσα μηχανής Μικροπρόγραμμα ή γλώσσα περιγραφής υλικού Οργάνωση Υπολογιστής έξι επιπέδων. Η μέθοδος υποστήριξης και η γλώσσα υλοποίησης σημειώνεται κάτω (δίπλα) από κάθε επίπεδο.

4 Μορφή προγράμματος σε κάθε επίπεδο temp = v[k]; Πρόγραμμα Γλώσσας Υψηλού Επιπέδου v[k] = v[k+1]; v[k+1] = temp; Μεταγλώττιση load $15, 0($2) load $16, 4($2) store $16, 0($2) store $15, 4($2) Πρόγραμμα Γλώσσας Assembly Assembly, Συμβολομετάφραση ISA Πρόγραμμα Γλώσσας Μηχανής Διερμηνεία, Υλοποίηση Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK Register Transfer Notation (RTN) 4

5 Αρχιτεκτονική Συνόλου Εντολών Instruction Set Architecture (ISA)... bytecode compiler interpreter Java program JVM ` bytecode hardware (μικροκώδικας ή ευθεία υλοποίηση) Το επίπεδο ISA είναι η διεπαφή μεταξύ των μεταγλωττιστών και του υλικού. Το χαμηλότερο επίπεδο συμβατικού προγραμματισμού. Εκεί όλες οι γλώσσες είναι ίδιες (dis-assembly). Η Java αποτελεί μια ειδική περίπτωση.

6 Παραδείγματα ISA ΙΑ-32 και Ιntel 64: ISA της Intel Εισαγωγικό εγχειρίδιο: Software Developers Manual: Basic Architecture Πολύ πληροφοριακό υλικό αλλά όχι πλήρεις προδιαγραφές. Kλειστή αρχιτεκτονική JVM: εικονικό ISA της Sun JAVA Υπερσύνολο της IJVM. Πλήρεις προδιαγραφές γιά τη κατασκευή μεταγλωττιστή ή διερμηνευτή ή επεξεργαστή. Aνοικτή αρχιτεκτονική Άλλες ανοικτές αρχιτεκτονικές: SPARC, MIPS..

7 Περιεχόμενα βασικού εγχειριδίου Intel 64, IA-32 Chapter 1 About This Manual. Chapter 2 Intel 64 and IA-32 Architectures. Chapter 3 Basic Execution Environment. Chapter 5 Instruction Set Summary. Chapter 6 Procedure Calls, Interrupts, and Exceptions. Chapter 7 Programming with General-Purpose Instructions. Chapter 8 Programming with the x87 FPU. Chapter 9 Programming with Intel MMXTM Technology. Chapter Programming with Streaming SIMD Extensions (SSE). Chapter 13 Input/Output. Chapter 14 Processor Identification and Feature Determination.

8 Περιεχόμενα εγχειριδίου JVM 1 Introduction 2 Java Programming Language Concepts 3 The Structure of the Java Virtual Machine 4 The class File Format 5 Loading, Linking, and Initializing 6 The Java Virtual Machine Instruction Set 7 Compiling for the Java Virtual Machine 8 Threads and Locks 9 Opcode Mnemonics by Opcode

9 Γιατί είναι σημαντικό το Σύνολο Εντολών * Πρέπει να είναι αρκετά απλό/λεπτομερές ώστε να υλοποιείται αποτελεσματικά από το υλικό και αρκετά αφαιρετικό/κανονικό ώστε να αποτελεί το 'στόχο' των μεταγλωττιστών. * Πρέπει να έχει χρονική διάρκεια/προοπτική, να μην μεταβάλλεται συχνά (επαύξηση μόνο). * Πρέπει να λαμβάνει υπ' όψη του θέματα υλοποίησης, δηλαδή να συμβάλλει στην αποδοτική υλοποίηση του * Δεν μπορεί να κάνει τα πάντα: ειδικές αρχιτεκτονικές και σύνολα εντολών για ειδικές εφαρμογές (λαμβάνεται υπ' όψη το κόστος / απόδοση / εύρος εφαρμογής). πχ ενσωματωμένα και κινητά συστήματα, μικροελεγκτές, επεξεργαστές γραφικών.

10 Αρχιτεκτονική Συνόλου Εντολών Γλώσσα Μηχανής: τι ορίζει; (1) * Πού βρίσκονται οι εντολές και τα δεδομένα; Ποιό είναι το μοντέλο μνήμης; Πώς βλέπει το Σύνολο Εντολών τη κύρια μνήμη; * Που κρατά ο επεξεργαστής τα εσωτερικά του δεδομένα; Ποιοί είναι ο καταχωρητές που βλέπει το Σύνολο Εντολών; Ποιές είναι οι λειτουργίες τους (ειδικοί - γενικοί). * Ποιούς βασικούς τύπους δεδομένων αναγνωρίζει το Σύνολο Εντολών; * Ποιές βασικές πράξεις και λειτουργίες υποστηρίζει - ποιό είναι το ρεπερτόριο του Συνόλου Εντολών; Ορισμός πράξεων μόνο σε λειτουργικό επίπεδο (τι κάνουν όχι πώς το κάνουν).

11 Αρχιτεκτονική Συνόλου Εντολών Γλώσσα Μηχανής: τι ορίζει; (2) * Πώς κωδικοποιείται μια εντολή; Πως ορίζονται τα opcodes; * Πώς ορίζονται οι τελεστέοι (operads); Πόσοι μπορεί να είναι οι τελεστέοι ανά τύπο εντολής; Πού βρίσκονται (μνήμη ή καταχωρητές) και πώς προσκομίζονται οι τελεστέοι (διευθυνσιοδότηση, addressing modes); * Πώς γίνεται η επικοινωνία με τις βασικές περιφερειακές συσκευές; * Πώς ελέγχεται η ροή του προγράμματος (διακλαδώσεις, υπορουτίνες κλπ); * Πώς ελέγχεται η επικοινωνία μεταξύ προγράμματος και υλικού ή άλλων προγραμμάτων; (διακοπές, παγίδες).

12 Μεταγλωττιστές και Σύνολο Εντολών (1) Ορθογωνιότητα Όσο το δυνατό λιγότεροι 'ειδικοί' καταχωρητές, περιορισμένη 'ειδική' σύνταξη εντολών, οι ίδια μορφή σύνταξης και διευθυνσιοδότησης για όλες σχεδόν τις εντολές. Πληρότητα Κάλυψη όλων των βασικών πράξεων, λειτουργιών, μεθόδων διευθυνσιοδότησης και τύπων δεδομένων. Κανονικότητα Κανονικοί, πλήρεις ορισμοί της σημασίας (semantics) των εντολών. Λειτουργικότητα Λιτή χρήση πόρων του συστήματος (μνήμη, καταχωρητές..)

13 Μεταγλωττιστές και Σύνολο Εντολών (2) Καταχωρητές Γενικού Σκοπού (Register Files) Οι σύγχρονες αρχιτεκτονικές προσφέρουν ένα μεγάλο αριθμό καταχωρητών γενικού σκοπού (πχ 64, 128, 256..), ανεξάρτητα από το αν οι καταχωρητές αυτοί είναι ορατοί στο Σύνολο Εντολών με ένα ή περισσότερα ονόματα. Ο μεταγλωττιστής γνωρίζει οτι η μικροαρχιτεκτονική κάνει χρήση τεχνικών όπως το Scoreboarding και αλγορίθμων όπως Graph Coloring ώστε να βελτιστοποιεί τη χρήση του Register File. Οι πολλοί γενικοί καταχωρητές προσφέρουν ταχύτητα, γενικότητα στη μεταγλώττιση, υποκαθιστούν το stack και το local variable frame. Όμως.. τα ανώτερα επίπεδα μπορούν να κάνουν οτι δεν ξέρουν..

14 Αρχές Σχεδιασμού Υπολογιστών Όλες οι βασικές εντολές εκτελούνται απ' ευθείας στο υλικό (οι σύνθετες εντολές ίσως υλοποιούνται με μικροκώδικα). Μεγιστοποίηση του ρυθμού υποβολής εντολών στη CPU (τεχνικές Παραλληλίας Επιπέδου Εντολής, ILP). Εύκολη αποκωδικοποίηση εντολών (μικρό σχετικά σύνολο από σχετικά απλές εντολές). Ελαχιστοποίηση προσπέλασης στη μνήμη, με ειδικές εντολές Load, Store μιας διεύθυνσης. Αφθονία όμοιων καταχωρητών (μεγάλο register file).

15 Τελικά ποιά εντολή εκτελείται; (1) Αυτό που τελικά συμβαίνει στη πραγματικότητα είναι μόνο το φυσικό επίπεδο (ψηφιακή λογική). Το επίπεδο Συνόλου Εντολών ή Γλώσσα Μηχανής είναι το τελευταίο καθαρά λογισμικό επίπεδο. Προσφέρει τη πλησιέστερη δυνατή προσέγγιση προς την πραγματική μηχανή, αλλά... Δεν είναι η πραγματική μηχανή: μεσολαβεί η Μικροαρχιτεκτονική που διερμηνεύει διαφανώς τις εντολές Γλώσσας Μηχανής στο υλικό. Έτσι το υλικό και η Μικροαρχιτεκτονική αλλάζουν, όμως το Σύνόλο Εντολών παραμένει ίδιο ή επαυξάνεται (backward compatiblity). Έτσι εντελώς διαφορετικά φυσικά επίπεδα εκτελούν τα ίδια προγράμματα Γλώσσας Μηχανής.

16 Τελικά ποιά εντολή εκτελείται; (2) Ο Pentium σε επίπεδο Συνόλου Εντολών παρέχει εντολές SISC ADD mem, reg // mem = mem + reg Η Mικροαρχιτεκτονική τις διερμηνεύει σε εντολές RISC LOAD tempreg1, mem ADD tempreg2, tempreg1, reg STORE mem, tempreg2 για να εκτελεστούν στο σύγχρονο υλικό τύπου RISC. Ο SPARC ή ο MIPS έχουν Σύνολο Εντολών RISC και το εκτελούν απ ευθείας σε υλικό τύπου RISC.

17 Τελικά ποιά εντολή εκτελείται; (3) Η JVM σε επίπεδο Συνόλου Εντολών παρέχει εντολές bytecode τύπου Stack LOAD mem1 LOAD mem2 ADD STORE mem2 O Java compiler ή το JRE αναλαμβάνει να μεταγλωττίσει ή να διερμηνεύσει το bytecode στο Σύνολο Εντολών του συστήματος που θα εκτελέση το bytecode. Αυτός στη συνέχεια μεταγλωττίζει σε CISC LOAD tempreg1, mem1 ADD mem2, tempreg1 και η μικροαρχιτεκτονική διερμηνεύει σε RISC κώδικα.

18 Τελικά ποιά εντολή εκτελείται; (4) Η Mικροαρχιτεκτονική PicoJava διερμηνεύει τον κώδικα bytecode απ' ευθείας σε εντολές RISC LOAD tempreg1, mem1 LOAD tempreg2, mem2 ADD tempreg2, tempreg1, tempreg2 STORE temreg2, mem2 και εφαρμόζει σύμπτυξη εντολών, αφού η στοίβα βρίσκεται σε register file. ADD tempreg2, tempreg1, tempreg2. 'Ισοδυναμία' hardware-firmware-software..

19 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

20 Μοντέλο Μνήμης (1) byte/word addressable Πόσα bytes μεταφέρονται; aligned ή non-aligned Όταν μεταφέρουμε λέξη (word = 4 bytes) ξεκινούμε από συγκεκριμένο offset (0, 4, 8, 12,...) στη διεύθυνση μνήμης ή όχι (στοίχιση ή όχι); little endian big endian Για τα δεδομένα που καταλαμβάνουν πολλά bytes ή αντιμετωπίζονται ως ομάδες, με ποιά σειρά είναι αποθηκευμένα τα δεδομένα στα bytes (μικρό ή μεγάλο άκρο);

21 Λογική Οργάνωση Bytes (a) Big endian (b) Little endian

22 Στοίχιση bytes Μια λέξη των 8 bytes αποθηκευμένη σε μνήμη little-endian. (a) Με στοίχιση. (b) Χωρίς στοίχιση.

23 Μοντέλο Μνήμης (2) Pentium: Aποθήκευση μικρού άκρου (little-endian) JVM: Αποθήκευση μεγάλου άκρου (big-endian) Pentium: Λέξεις των 8 bytes (64 bits), αλλά και επεξεργασία στα 32 ή και 8 bits λόγω backward compatibility (x86). Μηστοιχισμένη (non-aligned) προσπέλαση. Διαχωρισμός Instruction / Data στη L1 Cache. JVM: Byte/Word Addressable μνήμη (Πρόγραμμα 8 bits / Δεδομένα 32 bits). Στοιχισμένη (aligned) προσπέλαση. Pentium: Αντιμετώπιση Κινδύνων Δεδομένων σχετικών με την προσπέλαση Μνήμης λόγω πιθανής αλλαγής της σειράς εκτέλεσης από τη Retirement Unit.

24 0xffffffff 0xc x Kernel virtual memory User stack (created at runtime) Memory mapped region for shared libraries Run-time heap (created at runtime by malloc) Read/write data Read-only code and data 0x Unused Memory invisible to user code Χώρος μνήμης προγράμματος σε Pentium printf() function O stack κατεβαίνει Ο heap ανεβαίνει Loaded from the hello executable file

25 Καταστάσεις (Modes) Pentium Real mode: Ο Pentium φέρεται σαν 8086 (16 bit, απλές εντολές). Virtual 8086 mode: Tο λειτουργικό σύστημα ελέγχει ένα sandbox για εικονική λειτουργία 8086 (παράθυρο MS-DOS στα Windows) Protected mode: Η κανονική λειτουργία 32 bit (IA-32). Ιntel-64 mode: Επεκταμένη λειτουργία 64 bit. Kernel mode: Πλήρης πρόσβαση σε ειδικές εντολές (signal handling) χρήση από το πυρήνα (kernel) του λειτουργικού συστήματος. User mode: Τυπική λειτουργία χρήστη και διεργασιών.

26 Το μοντέλο μνήμης της JVM Σωρός Δυναμικών Δεδομένων Heap newarray int Δεξαμενή Σταθερών Πλαίσιο Τοπικών Μεταβλητών Περιοχή Μεθόδων Στοίβα Τρεχόντων Τελεστέων Τα διάφορα μέρη του μοντέλου μνήμης της JVM. Heap με garbage collection.

27 Ονομασίες Βασικών Καταχωρητών Μετρητής Προγράμματος (Program Counter, PC) Καταχωρητής Εντολών (Instruction Register, IR ή MBR) Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR) Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR) Γενικοί Καταχωρητές (R0, R1, R2,..., R7) Συσσωρευτής (Accumulator, AC) Δείκτης Στοίβας (Stack Pointer, SP) Index, Base, Offset Registers και άλλοι δείκτες (Πλαισίου LV, Σταθερών CPP..) Καταχωρητής Κατάστασης (Status Register, SR Process Status Word PSW)

28 Γνωστοί Καταχωρητές Προσοχή στη διαφορά Μικροαρχιτεκτονικής και Αρχιτεκτονικής Συνόλου Εντολών: Ξέρουμε την ύπαρξη των καταχωρητών λόγω της γνώσης μας της Μικροαρχιτεκτονικής (δηλαδή του ΠΩΣ εκτελούνται οι εντολές) αλλά ποιούς καταχωρητές βλέπει το Σύνολο Εντολών; Πχ είναι γνωστοί οι PC, IR, MAR, MDR; Το Σύνολο Εντολών γνωρίζει μόνον τους καταχωρητές που χρησιμοποιεί ρητά στις εντολές Γλώσσας Μηχανής ή έμμεσα, μέσω των semantics των εντολών Γλώσσας Μηχανής. Οι υπόλοιπες λεπτομέρειες αναγνωρίζονται μέσω της απόδοσης του συστήματος.

29 Καταχωρητές Pentium (1) Γενικοί καταχωρητές, αλλά με κατά περίπτωση ειδικές χρήσεις (mul, div, strings) Δείκτες Τοπικών Μεταβλητών, Στοίβας, κλπ Παλιοί Δείκτες Τμημάτων (Segments) Μετρητής Προγράμματος Καταχωρητής Κατάστασης

30 Καταχωρητές Pentium (2) EFLAGS ~ Processor Status Word N Negative Z Zero V Overflow C- Carry A Auxiliary Carry P Parity Interrupt Mask (βλ. Διακοπές) Mode of Opeation (βλ. Καταστάσεις Λειτουργίας) Trace bit (για debugging)

31 Καταχωρητές JVM Μόνον δείκτες σε περιοχές μνήμης (έμμεση χρήση) PC Μετρητής Προγράμματος SP Δείκτης Στοίβας LV Δείκτης Πλαισίου Τοπικών Μεταβλητών CPP Δείκτης Σταθερών και Μεθόδων Ο Σωρός επιστρέφει δείκτες για χρήση με Δυναμική Διαχείριση Μνήμης μέσω ειδικής εντολής (newarray). Διαχείριση μέσω ειδικών εντολών (aload, astore). Αυτόματη Συλλογή Απορριμάτων (Garbage Collection).

32 Καταχωρητές PicoJava Εκτός από τους καταχωρητές της JVM OPLIM FRAME PSW Μέγιστο μέγεθος στοίβας Μέγιστο μέγεθος Πλαισίου Τοπικών Μεταβλητών 64 Γενικοί καταχωρητές 4 Καταχωρητές για διαχείριση νημάτων 4 Καταχωρητές για εκσφαλμάτωση

33 Βασικοί Τύποι Δεδομένων (1) bit, byte (8 bits), word (4 bytes) char ASCII (7 ή 8 bits) Unicode (16 bits) συνήθως αντιμετωπίζονται σε ομάδες (πχ μια λέξη) int Unsigned ή Signed (συπλήρωμα του 2) 2 ή 4 bytes Short και Long float (4 bytes), double (8 bytes) IEEE Floating Point Standard 754 Υποστήριξη του Συνόλου Εντολών για διαφορετικούς τύπους δεδομένων (πχ integer add, integer long add, float add)

34 Βασικοί Τύποι Δεδομένων (2) Aπόσπασμα από μια περιοχή μνήμης (ή ένα αρχείο) σε hex. Τι μπορεί να είναι: εντολές γλώσσας μηχανής, ASCII χαρακτήρες προγράμματος, ακέραιοι, πραγματικοί, τιμές pixel από εικόνα; e5 ec83 c fce8 ffff ff 04c4 5d59 618d c3fc c6c c6f f 646c a e e 342e e e 342e 312d e e 6d e e e c65 742e e e e00 6f e00 6f63 6d6d e e2e 746f 2e65 4e47 2d Οτιδήποτε από αυτά! Το νόημα των bits εξαρτάται από τα συμφραζόμενά μας, δηλαδή από τη δική μας αντίληψη για τα δεδομένα.

35 Τύποι Δεδομένων Pentium

36 Τύποι Δεδομένων JVM

37 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

38 Βασικές Πράξεις και Λειτουργίες (1) Μετακινήσεις Δεδομένων Load (Καταχωρητής = Μνήμη) Store (Μνήμη = Καταχωρητής) Καταχωρητής Καταχωρητής Μνήμη Μνήμη Λειτουργίες Στοίβας (ως αδιαίρετη πράξη μετακίνησης) Λειτουργίες Εισόδου / Εξόδου (ως μετακίνηση σε ειδική θέση) Αριθμητικές Πράξεις Πρόσθεση, Αφαίρεση, Αντίθετο, Σύγκριση, Πολ/σμός, Διαίρεση Ακέραιοι και Πραγματικοί (Κινητή Υποδιαστολή) Ολίσθηση Αριθμητική / Λογική, Δεξιά / Αριστερά

39 Βασικές Πράξεις και Λειτουργίες (2) Λογικές Πράξεις AND, OR, XOR, NOT, Set, Clear Έλεγχος Ροής Προγράμματος Διακλάδωση χωρίς / με συνθήκη Κλήση / Επιστροφή υπορουτίνας Είσοδος / Έξοδος (ως ξεχωριστές λειτουργίες) Ανάγνωση, Εγγραφή Διακοπές και Παγίδες Έλεγχος, Εξυπηρέτηση, Επιστροφή Επιπλέον: Συγχρονισμός και Νήματα Strings, Γραφικά, Streaming..

40 Παράδειγμα Χρήσης Εντολών: Top 10 Intel X86 Instructions Κατηγορία Εντολή Μέσο ποσοστό συνολικής εκτέλεσης 1 load 22% 2 conditional branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 move register-register 4% 9 call 1% 10 return 1% Total 96% Παρατήρηση: Οι απλές εντολές έχουν τις μεγαλύτερες συχνότητες χρησιμοποίησης

41 Ορισμός Operands Μοντέλο Συσσωρευτή (1-address/-operand) Μόνο ένας καταχωρητής γενικού σκοπού. Απλό μοντέλο αλλά πολλές μεταφορές από-προς μνήμη και πολλές εντολές. Πρώτοι υπολογιστές (ο διερμηνέας που είδαμε). Μοντέλο Στοίβας (0-address/-operand) Οι καταχωρητές (ή η μνήμη) προσπελαύνονται μόνο μέσω εντολών διαχείρισης μιας στοίβας (Push, Pop). Απλή στη σύλληψη αλλά δύσκολη στη προσπέλαση, πολλές μετακινήσεις δεδομένων στη στοίβα. JVM. Μοντέλο Καταχωρητών (2,3-address/-opernad) Σύγχρονοι υπολογιστές. Πολλοί όμοιοι (όχι πάντα) καταχωρητές. Δύο υποκατηγορίες: Με προσπέλαση στη μνήμη (CISC) ή χωρίς (RISC). Στη κατηγορία RISC μπορεί να έχουμε μοντέλο με 2 ή 3 καταχωρητές.

42 Παράδειγμα Συσσωρευτή

43 Παράδειγμα Στοίβας

44 Παράδειγμα Καταχωρητών CISC καταχωρητές add R1, X R1 = R1 + Χ Οι περισσότερες εντολές περιλαμβάνουν και μια προσπέλαση στη μνήμη 2 CISC Γλώσσα assembly Pentium Διαφέρει από το μοντέλο Συσσωρευτή λόγω πολλών καταχωρητών. Σε παλαιότερα συστήματα υπήρχαν και πολλαπλές προσπελάσεις στη μνήμη.

45 Παράδειγμα Καταχωρητών RISC Μπορεί να οριστεί και με 2-address/- operands: add R1, R2 δηλαδή R1 = R1+R2

46 Ενδεικτικά αποσπάσματα κώδικα int x, y, z; Γλώσσα C/Java load 0xA2 add 0xA4 store 0xA0 // AC = mem(0xa2) // AC = AC + mem(0xa4) // mem(0xa0) = AC 3 3 load 0xA2 load 0xA4 add store 0xA0 // push mem(0xa2) // push mem(0xa4) // pop, pop, add, push // pop mem(0xa0) 4 9 load A, 0xA2 add A, 0xA4 store A, 0xA0 // A = mem(0xa2) // A = A + mem(0xa4) // mem(0xa0) = A 3 3 load A, 0xA2 load B, 0xA4 add C, A, B store C, 0xA0 // A = mem(0xa2) // B = mem(0xa4) // C = A + B // mem(0xa0) = C 4 3 load A, 0xA2 load B, 0xA4 add B, A, B store B, 0xA0 // A = mem(0xa2) // B = mem(0xa4) // B = A + B // mem(0xa0) = B 4 3 x = y + z; #cmd #mem refs

47 Μορφές Εντολών (1) Τέσσερις συνηθισμένεςς μορφές εντολών: (a) Zero-address/-operand (b) One-address/-operand (c) Two-address/-opernad (d) Three-address/-operand

48 Μορφές Εντολών (2) Σταθερού μήκους Μεταβλητού μήκους αριθμός words Υβριδικού μήκους αριθμός bytes Εφαρμογή σε byte/word -addressable memory (JVM)

49 Μορφές Εντολών (3) Μερικές πιθανές διευθετήσεις εντολών ανάλογα με το μήκος τους και τι μέγεθος λέξης. (a) Σταθερού μήκους, ίσου με μια λέξη. (b) Σταθερού μήκους, ίσου με μισή λέξη. (c) Μεταβλητού μήκους, ίσου με ακέραιο πολλαπλάσιο λέξης.

50 Κριτήρια Σχεδιασμού Εντολών (1) Σταθερό μήκος: ταχεία αποκωδικοποίηση, μικρή πυκνότητα. Μεταβλητό μήκος: μεγάλη πυκνότητα, σύνθετη αποκωδικοποίηση. * Αν η πυκνότητα του κώδικα είναι σημαντικό: μεταβλητό ή υβριδικό μήκος εντολής. * Αν η απόδοση είναι πιο σημαντική: σταθερό μήκος. * Ορισμένες αρχιτεκτονικές (ARM, MIPS) διαθέτουν ειδικό υποσύνολο εντολών σταθερού μήκους 16-bit για καλύτερη απόδοση. Η χρήση του κατάλληλου συνόλου αποφασίζεται από το μεταγλωττιστή σε επίπεδο ρουτίνας, ανάλογα με το αν απαιτείται απόδοση ή πυκνότητα. * Μερικές αρχιτεκτονικές εφαρμόζουν και αποσυμπίεσηon-the-fly για να συνδιάσουν πυκνότητα και απόδοση.

51 Κριτήρια Σχεδιασμού Εντολών (2) * Οι μικρές (σύντομες) εντολές είναι καλύτερες από τις μεγάλες (σύνθετες) εντολές. * Απαιτείται αρκετός χώρος για τη κωδικοποίηση όλων των πράξεων και λειτουργιών καθώς και πρόβλεψη για μελλοντικές επεκτάσεις (μήκος και κωδικοποίηση opcodes). * Απαιτείται αρκετός χώρος για τη τη κωδικοποίηση των operands και των συνδυασμών τους ανάλογα με τις μεθόδους διευθυνσιοδότησης που επιλέγονται 0, 1, 2 ή 3 operands ονόματα καταχωρητών διεθύνσεις μνήμης offset ή πλήρης διεύθυνση

52 Μορφή Εντολών Pentium 4

53 Μορφή Εντολών JVM

54 Επεκτεινόμενοι Κωδικοί Εντολών (1) Εντολή με 4-bit opcode και τρείς διευθύνσεις 4-bit. Σε συγκεκριμένο αριθμό bits πρέπει να οργανώσουμε εντολές με διαφορετικό αριθμό/τύπο operands.

55 Επεκτεινόμενοι Κωδικοί Εντολών (2) Σύνολο εντολών με 15 εντολές τριών διευθύνσεων, 14 εντολές δύο διευθύνσεων, 31 εντολές μιας διεύθυνσης και 16 εντολές μηδενικής διεύθνσης. Τα πεδία xxxx, yyyy, και zzzz aείναι πεδία διευθύνσεων των 4 bit.

56 Μορφή Εντολών: Σύνοψη Εντολές Pentium: Πολύ μεγάλες, πολύ σύνθετες, διάχυτες προσπελάσεις στη μνήμη (σε πολλές εντολές), μικρός κώδικας. Εντολές JVM: πολύ μικρές, πολύ απλές, πολλές προσπελάσεις στη μνήμη, μεγάλος κώδικας. Εντολές RISC (πχ SPARC, MIPS ή και Mic-4): κανονικές, ορθογώνιες, συγκεντρωμένες προσπελάσεις στη μνήμη (load, store), κώδικας μέσου μεγέθους.

57 Ασκήσεις Μελετήστε το Σύνολο Εντολών IJVM και κατατάξτε τις εντολές ανάλογα με το μήκος και τη μορφή τους, με βάση το σχήμα της JVM. Προτείνετε ένα δικό σας σχήμα κωδικοποίησης των εντολών για την 'έκδοση της IJVM για το Mic-4. Αυτό που αλλάζει είναι η χρήση 8 καταχωρητών (R0-R7) στη θέση του stack. Έστω οτι όλες οι εντολές της IJVM έχουν το μέγιστο μήκος. Εφαρμόστε τη λογική των Επεκτεινόμενων Κωδικών. Το ίδιο για το Σύνολο Εντολών IJVM Mic-4.

58 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

59 Διευθυνσιοδότηση: παράδειγμα bits 2 2 XX ΧΧ opernad1 operand1 Λειτουργία πχ ADD Opcode Addressing Modes ΧΧ Προορισμός Πηγή 00 Καταχωρητής Καταχωρητής Data Type 01 Καταχωρητής Αριθμός XX 10 Καταχωρητής Διεύθυνση που βρίσκεται σε Καταχωρητή 11 Διεύθυνση που βρίσκεται σε Καταχωρητή Καταχωρητής char int flotat double

60 Μέθοδοι Διευθυνσιοδότησης Όνομα Παράδειγμα Σημασία Καταχωρητή ADD R1, R2 R1=R1+R2 Άμεση (Immediate) ADD R1, #3 R1=R1+3 Έμμεση Καταχωρητή (Register Indirect) ADD R1, (R2) R1=R1+mem(R2) Μετατόπιση (Offset) ή Δεικτοδότηση (Indexed) ADD R1, 4(R2) R1=R1+mem(R2+4) Βάση-Δείκτης (Base-Index) ADD R1, (R2,R3) R1=R1+mem(R2+R3) Απόλυτη (Absolute) ADD R1, 1000 R1=R1+mem(1000) Έμμεση Μνήμης (Memory Indirect) ADD R1, R1=R1+mem(mem(R2)) Post-increment ADD R1, R2+ R1=R1+mem(R2);R2++ Pre-decrement ADD R1, R2- Κλιμακούμενη (Scaled) ADD R1, 4(R2)(R3) ` R2--; R1=R1+mem(R2) R1=R1+mem(4+R2+R3*d)

61 Άμεση και Έμμεση Διευθυνσιοδότηση Άμεση διευθυνσιοδότηση: φόρτωσε το 4 στο καταχωρητή 1. Έμμεση Καταχωρητή (Register Indirect): άθροιση στοιχείων ενός πίανακα.

62 Δεικτοδότηση - Indexed Addressing (1) Ενδιεκτικό πρόγραμμα assembly για τον υπολογισμό του OR των Ai AND Bi για δύο πίνακες 1024 στοιχείων.

63 Δεικτοδότηση - Indexed Addressing (2) Πιθανή διευθέτηση της εντολής MOV R4,A(R2).

64 Ορθογωνιότητα Opcodes και Addressing Modes (1) Απλή σχεδίαση μορφών εντολής σε μια μηχανή τριών διευθύνσεων.

65 Ορθογωνιότητα Opcodes και Addressing Modes (2) Απλή σχεδίαση μορφών εντολής σε μια μηχανή δύο διευθύνσεων.

66 Μέθοδοι Διευθυνσιοδότησης Pentium (1) Οι μέθοδοι διευθυνσιοδότησης σε κατάσταση ΙΑ-32. M[x] σημαίνει λέξη μνήμης στη διεύθυνση x.

67 Μέθοδοι Διευθυνσιοδότησης Pentium (2) Παράδειγμα προσπέλασης του στοιχείου a[i] με τη μέθοδο διευθυνσιοδότησης Scaled Index Base.

68 Σύγκριση Μεθόδων Διευθυνσιοδότησης (1)

69 Σύγκριση Μεθόδων Διευθυνσιοδότησης (2)

70 Ασκήσεις Μελετήστε τις μεθόδους διεθυνσιοδότησης της IJVΜ στις εκδόσεις για Mic-1/3 και για Mic-4 και κατατάξτε τις με βάση τον πίνακα των μεθόδων διευθυνσιοδότησης.

71 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

72 Εντολές Pentium 4 (1)

73 Εντολές Pentium 4 (2)

74 Εντολές Pentium 4 (3)

75 Εντολές Pentium 4 (4)

76 Εντολές JVM (1)

77 Εντολές JVM (2)

78 $gedit test.c & Ανάθεση Pentium main () { int x; x=10; } Χρήση ebp ως Local Variable Frame Pointer (LV) $gcc S test.c > test.s $cat test.c Κράτηση πρώτων 8 bytes θέσεων του User Stack Διεθυνσιοδότηση: Απόλυτη και Μετατόπιση Ανάπτυξη User Stack από High Address προς Low Address. movl $10, 8(%ebp)......

79 $gedit j1.java Ανάθεση JVM class j1 { public static void main () { int x; x=10; }... }... 0: bipush 10 $javac j1.java 2: istore_0 $javap c j1 > j1.s 3: return $cat j1.s Η istore_0 συντόμευση της istore 0. Διεθυνσιοδότηση: Απόλυτη και Μετατόπιση.

80 main () { int i, j, n; i=3; j=4; n=i+j; } Πράξη Pentium... movl movl movl addl movl... $3, 8(%ebp) $4, 12(%ebp) 12(%ebp), %eax 8(%ebp), %eax %eax, 16(%ebp) 2-address/-opernad code, η μια διεύθυνση προπέλαση στη μνήμη. Διευθυνσιοδοτήσεις : Απόλυτη, Άμεση, Μετατόπιση (Βάση-Δείκτης). 4 bytes ανα ακέραιο, ο eax καταχωρητής γενικής χρήσης.

81 Πράξη JVM class j2 { public static void main () { int i, j, n;... i=3; 0: iconst_3 j=4; 1: istore_0 n=i+j; 2: iconst_4 } 3: istore_1 } 4: iload_0 5: iload_1 6: iadd 7: istore_2 8: return... iconst_x = σύντομο bipush X, iload_x, istore_x = σύντομα iload X, istore X Διευθυνσιοδοτήσεις: Απόλυτη, Μετατόπιση, Stack.

82 main () { int i, k; i=3; if (i!= 3) k=0; } If then Pentium... movl $3, 8(%ebp) cmpl $3, 8(%ebp) je.l5 movl $0, 12(%ebp).L5:... Αντιστροφή Συνθήκης: αντί!= θέτουμε == για αποφυγή goto.

83 If then JVM class j3 { public static void main () { int i, k;... i=3; 0: iconst_3 if (i!= 3) 1: istore_0 k=0; 2: iload_0 } 3: iconst_3 } 4: if_icmpeq 7: iconst_0 8: istore_1 9: return... 9 Αντιστροφή Συνθήκης: αντί!= θέτουμε == για αποφυγή goto.

84 main () { int i, k; i=3; if (i == 3) k=0; else k=1; } If then else Pentium... movl cmpl jne movl jmp.l2: movl.l6:... $3, 8(%ebp) $3, 8(%ebp).L2 $0, 12(%ebp).L6 $1, 12(%ebp)

85 class j4 { public static void main () { int i, k;... i=3; 0: if (i == 3) 1: k=0; 2: else 3: k=1; 4: } 7: } 8: 9: 12: 13: 14:... If then else JVM iconst_3 istore_0 iload_0 iconst_3 if_icmpne iconst_0 istore_1 goto 14 iconst_1 istore_1 return 12

86 main () { int x, n; n=10; x=0; while (x < n) x=x+1; } while Pentium... movl $10, 12(%ebp) movl $0, 8(%ebp) jmp.l2.l3: addl $1, 8(%ebp).L2: movl 8(%ebp), %eax cmpl 12(%ebp), %eax jl.l3... Σύγκριση < στο τέλος του κώδικα επανάληψης.

87 { public static void main () {... int x, n; 0: 2: n=10; 3: x=0; 4: while (x < n) 5: x=x+1; 6: } 7: } 10: 11: 12: 13: Σύγκριση >= στη αρχή του 14: κώδικα επανάληψης. 17:... while JVM bipush 10 istore_1 iconst_0 istore_0 iload_0 iload_1 if_icmpge 17 iload_0 iconst_1 iadd istore_0 goto 5 return

88 Έλεγχος Βρόχων (a) Σύγκριση στο Τέλος (Test-at-the-end loop). (b) Σύγκριση στην Αρχή (Test-at-the-beginning loop).

89 main () { int x[5], i; for (i=0; i<5; i++) x[i]=i+3;... } movl jmp.l3: movl movl addl movl addl.l2: cmpl jle... Πίνακας, for Pentium $0, 8(%ebp).L2 8(%ebp), %edx 8(%ebp), %eax $3, %eax %eax, 28(%ebp,%edx,4) $1, 8(%ebp) $4, 8(%ebp).L3. Χρήση ebp 28 ως βάση και edx * 4 σαν index (οffset). Scaled Base Index (SIB). Μείωση ορίου τερματισμού κατά ένα.

90 class j6 { public static void main () {... 0: int[] x=new int[5]; 1: int i; 3: for (i=0; i<5; i++) 4: 5: x[i]=i+3; 6: } 7: } 8: Πίνακας, for JVM iconst_5 newarray int astore_0 iconst_0 istore_1 iload_1 iconst_5 if_icmpge 23 aload_0 iload_1 iload_1 iconst_3 iadd iastore iinc 1, 1 goto 6 return 11: 12: Χρήση newarray για λήψη δείκτη από 13: heap και αποθήκευση, φόρτωση με 14: astore, aload. 15: 16: Χρήση iastore + iload για 17: δεικτοδοτημένη προσπέλαση. 20: 23: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson... Education, Inc. All rights reserved

91 function Pentium f:... pushl %ebp movl %esp, %ebp subl $16, %esp int f(int x) { movl 8(%ebp), %eax addl $3, %eax int temp; movl %eax, 4(%ebp) movl 4(%ebp), %eax temp = x+3; leave ret return temp;... } main: leal 4(%esp), %ecx andl $ 16, %esp main () { pushl 4(%ecx) int y; pushl %ebp movl %esp, %ebp pushl %ecx y = 7; subl $20, %esp y = f(y) 4; movl $7, 8(%ebp) movl 8(%ebp), %eax } movl %eax, (%esp) call f subl $4, %eax Κλήση συνάρτησης και επιστροφή από movl %eax, 8(%ebp) συνάρτηση. addl $20, %esp popl %ecx Χρήση leave πριν απο ret. popl %ebp Το main είναι συνάρτηση. leal 4(%ecx), %esp ret

92 Static method JVM class j7 { public static int f(int x) { int temp; temp = x; return temp; } public static void main () { int y; y = 7; y = f(y) 4; } } j7(); Code: 0: aload_0 1: invokespecial 4: return #1; public static int f(int); Code: 0: iload_0 1: istore_1 2: iload_1 3: ireturn public static void main(); Code: 0: bipush 7 2: istore_0 3: iload_0 4: invokestatic #2; 7: iconst_4 8: isub 9: istore_0 10: return }

93 Pointers Pentium #include <stdlib.h> main () { int* x; int* y; x = malloc(sizeof(int)); y = malloc(sizeof(int)); *x = 1; *y = 2; x = y; } Register Indirect: o eax περιέχει τη πλήρη διεύθυνση των x, y.... movl call movl movl call movl movl movl movl movl movl movl... $4, (%esp) malloc %eax, 8(%ebp) $4, (%esp) malloc %eax, 12(%ebp) 8(%ebp), %eax $1, (%eax) 12(%ebp), %eax $2, (%eax) 12(%ebp), %eax %eax, 8(%ebp)

94 Pointers JVM class IntObj { public int value; } class j7 { public static void main () { IntObj x; IntObj y; x = new IntObj(); y = new IntObj(); x.value = 1; y.value = 2; } x = y; } Χρήση aload και putfield.... 0: new #2; 3: dup 4: invokespecial#3; 7: astore_0 8: new #2; 11: dup 12: invokespecial#3; 15: astore_1 16: aload_0 17: iconst_1 18: putfield #4; 21: aload_1 22: iconst_2 23: putfield #4; 26: aload_1 27: astore_0 28: return...

95 Pointer arguments Pentium (1) void swap (int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } main () { int x; int y; x = 5; y = 6; swap (&x, &y); }

96 Pointer arguments Pentium (2) swap: pushl movl subl movl movl movl movl movl movl movl movl movl movl leave ret %ebp %esp, %ebp $16, %esp 8(%ebp), %eax (%eax), %eax %eax, 4(%ebp) 12(%ebp), %eax (%eax), %edx 8(%ebp), %eax %edx, (%eax) 12(%ebp), %edx 4(%ebp), %eax %eax, (%edx) main: leal andl pushl pushl movl pushl subl movl movl leal movl leal movl call addl popl popl leal ret 4(%esp), %ecx $ 16, %esp 4(%ecx) %ebp %esp, %ebp %ecx $24, %esp $5, 8(%ebp) $6, 12(%ebp) 12(%ebp), %eax %eax, 4(%esp) 8(%ebp), %eax %eax, (%esp) swap $24, %esp %ecx %ebp 4(%ecx), %esp

97 Ασκήσεις Συγκρίνετε τους παραπάνω κώδικες με τους αντίστοιχους της IJVM (JAS) του Mic-1 καθώς και της IJVM του Mic-4. Ποιές είναι οι σημαντικές είναι οι διαφορές του bytecode της JVM από τη JAS της IJVM; Μελετήστε τη διαχείριση της στοίβας και του πλαισίου τοπικών μεταβλητών από τo Pentium και τη JVM.

98 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4

99 Ακολουθιακή Ροή Ελέγχου και Διακλαδώσεις Ο Μετρητής Προγράμματος ως συνάρτηση του χρόνου. (a) Χωρίς διακλαδώσεις. (b) Με διακλαδώσεις.

100 Ρουτίνες Όταν καλείται μια ρουτίνα η εκτέλεσή της ξεικνά από την πρώτη της εντολή. Η επιστροφή γίνεται στην εντολή που ακολουθεί τη κλήση.

101 Συ-Ρουτίνες Όταν μια συ-ρουτίνα συνεχίζεται (resume) τότε η εκτέλεση συνεχίζει από εκεί που είχε σταματήσει, όχι από την αρχή.

102 Είσοδος/Έξοδος (1) Ενταμιευτές (Buffers) ελέχου απλών συσκευών. Συνήθωςmemory-mapped (χαρτογραφημένοι στη μνήμη).

103 Εόσοδος/Έξοδος (2) Παράδειγμα προγραμματιζόμενης Ε/Ε.

104 Είσοδος/Έξοδος (3) Σύστημα με ελεγκτή DMA (Direct Memory Access).

105 Είσοδος/Έξοδος (4) Οι λειτουργίες I/O και οι λειτουργίες της CPU μπορούν να εκτελούνται ταυτόχρονα (σύγχρονη αρχιτεκτονική). Κάθε ελεγκτής συσκευής (device controller) επιφορτίζεται με τον έλεγχο ενός τύπου συσκευής. Κάθε ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτή μνήμης) συνήθως memory mapped. Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη προς /από τα τοπικά buffers. Οι λειτουργίες I/O γίνονται από τη συσκευή προς το τοπικό buffer του ελεγκτή. Ο ελεγκτής συσκευής πληροφορεί την CPU ότι έχει ολοκληρώσει τη λειτουργία του προκαλώντας μια διακοπή (interrupt). 105

106 Διακοπές (Interrupts) - 1 CPU Δίαυλος Μνήμη Ενώ ένα πρόγραμμα εκτελείται, μια άλλη ρουτίνα θέλει να εκτελεστεί (π.χ. Είσοδος / Έξοδος, Clock, πρόβλημα υλικού, επικοινωνία με το Λειτουργικό Σύστημα, κλπ). Προσθέτουμε ένα έλεγχο διακοπών στον κύκλο ΑνάκλησηςΕκτέλεσης (fetch-execute). 106

107 Διακοπές (Interrupts) - 2 CPU Δίαυλος Μνήμη Fetch 107

108 Διακοπές (Interrupts) - 3 CPU Δίαυλος Μνήμη Execute 108

109 Διακοπές (Interrupts) - 4 CPU Δίαυλος Μνήμη Έλεγξε για Διακοπές Ο επεξεργαστής έχει ειδικές γραμμές υποδοχής για συγκεκριμένες διακοπές π.χ. RESET. Επίσης έχει γραμμές υποδοχής γενικών διακοπών. Αυτές ελέγχονται είτε με polling ή από ειδικό υλικό, τον Ελεγκτή Διακοπών που ενημερώνει τόσο οτι υπάρχει αίτηση διακοπή όσο και για το τύπο της (βλέπε Άνυσμα Διακοπής). 109

110 Διακοπές (Interrupts) - 5 CPU Δίαυλος Μνήμη Processor Context Αν υπάρχει έγκυρη αίτηση διακοπής (1): Προσωρινή ακύρωση όλων των διακοπών, όσο διαρκεί το Context Switching. Σώσε το processor context (program counter + ολοι οι καταχωρητές) στη μνήμη (stack). Context Switching ~ αυτόματη κλήση ρουτίνας και αντίστοιχη 110 επιστροφή, ελεγχόμενη από το σύστημα.

111 Διακοπές (Interrupts) - 6 CPU PC Δίαυλος Μνήμη Διεύθυνση του ISR Αν υπάρχει έγκυρη αίτηση διακοπής (2): Φόρτωσε τον Program Counter με τη διεύθυνση της Ρουτίνας Εξυπηρέτησης Διακοπής (Interrupt Service routine ISR). Αυτή δίνεται από το Άνυσμα Διακοπής (Interrupt Vector). Κάθε ομάδα διακοπών έχει δικό της, προκαθορισμένο Άνυσμα Διακοπής (δείκτη στη πρώτη εντολή της Ρουτίνας Εξυπηρέτησης). Δεν απαιτείται να σταλεί με τη κλήση της ISR. 111 Επανενεργοποίηση διακοπών.

112 Διακοπές (Interrupts) - 7 CPU Δίαυλος Μνήμη Η ISR εκτελείται όπως μια κανονική ρουτίνα Ανάκληση (Fetch) Εκτέλεση (Execute) Έλεγχος για ΝΕΕΣ διακοπές: η ISR πριν ξεκινήσει καθορίζει τη Μάσκα Διακοπών (Interrupt Mask), δηλαδή από ποιές διακοπές δέχεται να διακοπεί. Επίσης καθορίζονται η προτεραιότητες μεταξύ των διακοπών που μπορεί να 112 εκτελεστούν.

113 Διακοπές (Interrupts) - 8 CPU Διασύνδεση Μνήμη Processor Context Μόλις η ISR τελειώσει την εκτέλεση εκτελεί ειδικού τύπου return: Return from Interrupt Αποκατάσταση τού παλιού processor context. Συνέχιση της εκτέλεσης του αρχικού προγράμματος ή άλλης 113 διακοπής που έχει προκύψει.

114 Ανάκληση - Εκτέλεση 114

115 Ανάκληση - Εκτέλεση με Διακοπές 115

116 Προτεραιότητα Διακοπών (1) Προτεραιότητες Διακοπών. Maskable NonMaskable Interrupts.

117 Προτεραιότητα Διακοπών (2) Ένα σύστημα με προτεραιότητα διακοπών εγκαθιστά προτεραιότητες μεταξύ των διαφόρων πηγών διακοπών για να αποφασίζει ποια θα εξυπηρετεί πρώτη όταν δύο ή περισσότερες απαιτήσεις φθάσουν ταυτόχρονα. Το σύστημα πρέπει επίσης να αποφασίσει ποιες καταστάσεις θα μπορούν να διακόπτουν τον υπολογιστή καθώς αυτός θα εξυπηρετεί μια άλλη διακοπή. Στο υψηλότερο επίπεδο προτεραιοτήτων βρίσκονται εκείνες οι απαιτήσεις για τις οποίες οποιαδήποτε καθυστέρηση ή διακοπή μπορεί να επιφέρει σημαντικές συνέπειες. Οι συσκευές με υψηλές ταχύτητες μεταφοράς, όπως οι δίσκοι έχουν υψηλή προτεραιότητα, ενώ αργές συσκευές, όπως το πληκτρολόγιο λαμβάνουν χαμηλή προτεραιότητα. 117

118 Περιόδευση (Polling) Η επιβολή προτεραιοτήτων για τις ταυτόχρονες διακοπές μπορεί να γίνει μέσω λογισμικού (σε μικρά συστήματα). Η διαδικασία της περιόδευσης είναι μια τεχνική που διαπιστώνει την κατάσταση του υλικού μέσω, επαναλαμβανόμενου σε τακτά διαστήματα, ελέγχου κάθε συσκευής. Χρησιμοποιείται για να προσδιορίσει την πηγή της διακοπής με την υψηλότερη προτεραιότητα. Η περιόδευση χρησιμοποιεί μια κοινή διεύθυνση εκκίνησης για όλες τις διακοπές. Το πρόγραμμα που διαχειρίζεται τις διακοπές περιοδεύει με τη σειρά κάθε προέλευση διακοπής. Η σειρά με την οποία αυτές ελέγχονται καθορίζει την προτεραιότητα κάθε διακοπής. Η προέλευση της διακοπής με την υψηλότερη προτεραιότητα ελέγχεται πρώτη και αν υπάρχει σήμα διακοπής ο έλεγχος διακλαδίζεται αντίστοιχη ρουτίνα εξυπηρέτησης. Διαφορετικά ελέγχεται η επόμενη κ.ο.κ. Το ίδιο συμβαίνει και κατά την εκτέλεση της ISR. Αργή μέθοδος, ειδικά αν έχουμε πολλές ταυτόχρονες διακοπές. 118

119 Ελεγκτής Διακοπών - Hardware Priority Δέχεται αιτήσεις διακοπών από διάφορες πηγές, αποφασίζει ποια έχει τη μεγαλύτερη προτεραιότητα και τελικά παρέχει μια απαίτηση διακοπής στο σύστημα. Για την επιτάχυνση της διαδικασίας, κάθε πηγή διακοπής διαθέτει το δικό της διάνυσμα διακοπής για την απευθείας πρόσβαση στη δική της ρουτίνα εξυπηρέτησης. Έτσι δεν απαιτείται περιόδευση μια και όλες οι αποφάσεις λαμβάνονται από τη μονάδα. 119

120 Διακοπές: Σύνοψη (1)

121 Διακοπές: Σύνοψη (2)

122 Κατηγορίες Διακοπών Σήματα (Signals): H τυπική μέθοδος επικοινωνίας του Λειτουργικού Συστήματος με τις διεργασίες, καθώς και των διεργασιών μεταξύ τους. Προγράμματος (Traps): παράγονται από κάποια συνθήκη η οποία προκύπτει ως αποτέλεσμα της εκτέλεσης μιας εντολής, όπως η αριθμητική υπερχείλιση, η διαίρεση με το μηδέν, η απόπειρα εκτέλεσης εσφαλμένης εντολής ή η αναφορά σε τμήμα της μνήμης που βρίσκεται εκτός των ορίων του χρήστη. Χρονισμού (Clock): παράγονται από ένα χρονιστή εσωτερικά στον επεξεργαστή. Αυτό επιτρέπει στο Λ.Σ. να εκτελεί συγκεκριμένες λειτουργίες σε τακτική βάση. Εισόδου Εξόδου (Ι/Ο): παράγονται από έναν ελεγκτή Ι/Ο, για να σηματοδοτήσουν την κανονική ολοκλήρωση μιας πράξης ή μια ποικιλία καταστάσεων σφάλματος Βλάβης υλικού (Η/W Faults): παράγονται από βλάβη, όπως η διακοπή τροφοδοσίας ή το σφάλμα ισοτιμίας (parity) της μνήμης. 122

123 Intel Pentium Processor Event-Vector Table 123

124 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

125 Intel-64: Μείωση Αναφορών στη Μνήμη Επιπλέον καταχωρητές στο Itanium 2.

126 Ομαδοποίηση Εντολών Μια δέσμη εντολών Intel-64 bundle περιέχει τρείς εντολές.

127 Μείωση Διακλαδώσεων Υπό Συνθήκη (1) (a) Δήλωση if. (b) Assembly template του if. (c) Εντολή Υπό Συνθήκη.

128 Μείωση Διακλαδώσεων Υπό Συνθήκη (2) (a) Δήλωση if-else. (b) Αssembly template του if-else. (c) Εντολές υπο συνθήκη.

129 Μείωση Διακλαδώσεων Υπό Συνθήκη (3) (a) Δήλωση if-else. (b) Αssembly template του if-else. (c) Εντολές με κατηγόρημα.

130 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Επισκόπηση Μνήμη, Καταχωρητές, Δεδομένα Λειτουργίες και Μορφές Εντολών Διευθυνσιοδότηση Ενδεικτικά Σύνολα Εντολών Ρουτίνες και Διακοπές Βελτιστοποιήσεις Pentium 4 Ενδεικτικά Προγράμματα

131 Reverse Polish Notation (1) * Μέθοδος υπολογισμού αριθμητικών εκφράσεων με χρήση στοίβας και χωρίς τη χρήση παρενθέσεων για καθορισμό προτεραιότητας των πράξεων. * Προτάθηκε από τον Jan Lucasiewicz, Πολωνό φιλόσοφο και μαθηματικό σε μορφή Preorder Notation (πρώτα οι τελεστές). Το αντίστροφο (Reverse) λέγεται και Postorder Nοtation, ενώ το συνηθισμένο λέγεται Inorder Notation, (3 + 5) (7 + 2) Inorder Preorder ή Polish Postorder ή Reverse Polish * Πληροφορίες

132 Reverse Polish Notation (2) Πιθανές κινήσεις 1. Είσοδος - Έξοδος 2. Είσοδος - Στοίβα 3. Στοίβα - Έξοδος 4. Διαγραφή Στοίβα, Είσοδος

133 Reverse Polish Notation (3) o1 o2 Πίνακας καταστάσεων για τη μετατροπή inorder σε posorder.

134 Reverse Polish Notation (4) Shunting Yard Algorithm (Dijkstra): Μετατροπή Inorder σε Postorder (RPN) * While there are tokens to be read: * Read a token. * If the token is a number, then add it to the output queue. * If the token is an operator, o1, then: * while there is an operator, o2, at the top of the stack, and o1 has lower precedence or equal to that of o2, pop o2 off the stack, onto the output queue (2); * push o1 onto the stack (1). * If the token is a left parenthesis, then push it onto the stack (1). * If the token is a right parenthesis: * Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue (2). * Pop the left parenthesis from the stack, but not onto the output queue (3). * If the stack runs out without a left parenthesis, then there are mismatched parentheses (5). * When there are no more tokens to read: * While there are still operator tokens in the stack: * If the operator token on the top of the stack is a parenthesis, then there are mismatched parenthesis (5). * Pop the operator onto the output queue (2). * Exit (4).

135 Reverse Polish Notation (5) Παραδείγματα εκφράσεων infix και οι ισοδύναμες εκφράσεις σε Reverse Polish Notation (postfix)

136 Reverse Polish Notation (6) Χρήση στοίβας για την εκτίμηση μιάς έκφρασης σε μορφή Reverse Polish Notation (postorder).

137 Reverse Polish Notation (7) // (read from left to right) // (read from left to right) Push 3 onto stack Push 5 onto the stack The stack now contains (3, 5) Use + operator Pop two numbers from stack and push result (8) Push 7 onto the stack Push 2 onto the stack The stack now contains (8, 7, 2) Use + operator Pop two numbers from stack and push result (9) Use - operator Pop two numbers from stack and push result (-1) BIPUSH 3 BIPUSH 5 The stack now contains (3, 5) IADD Pop two numbers from stack and push result (8) BIPUSH 7 BIPUSH 2 The stack now contains (8, 7, 2) IADD Pop two numbers from stack and push result (9) ISUB Pop two numbers from stack and push result (-1)

138 Reverse Polish Notation (8) main () { int x, a, b, c, d; } a = 1; b = 2; c = 3; d = 4; x = (a + b) * (c - d);... movl movl movl movl movl movl addl movl movl subl imull movl... $1, -12(%ebp) $2, -16(%ebp) $3, -20(%ebp) $4, -24(%ebp) -16(%ebp), %eax -12(%ebp), %ecx %eax, %ecx -24(%ebp), %edx -20(%ebp), %eax %edx, %eax %ecx, %eax %eax, -8(%ebp) Παράδειγμα υπολογισμού έκφρασης σε πρόγραμμα C και το αντίστοιχο απόσπασμα μεταγλώττισης σε Pentium assembly με GCC compiler.

139 Reverse Polish Notation (9) class rev { public static void main () { int x, a, b, c, d; } } a = 1; b = 2; c = 3; d = 4; x = (a + b) * (c - d); 0: 1: 2: 3: 4: 5: 6: 7: 9: 10: 11: 12: 13: 15: 16: 17: 18: iconst_1 istore_1 iconst_2 istore_2 iconst_3 istore_3 iconst_4 istore 4 iload_1 iload_2 iadd iload_3 iload 4 isub imul istore_0 return Παράδειγμα υπολογισμού έκφρασης σε πρόγραμμα Javs και το αντίστοιχο απόσπασμα μεταγλώττισης σε JVM bytecode με Sun Java compiler.

140 Αναδρομικές Διαδικασίες (1) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2); towers (1, 1, 3); towers (2, 2, 3)

141 Αναδρομικές Διαδικασίες (2) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2); towers (1, 1, 3); towers (2, 2, 3)

142 Αναδρομικές Διαδικασίες (3) Πύργοι του Ανόι με 3 δίσκους: towers (3, 1, 3) = towers (2, 1, 2) = towers (1, 1, 3) towers (1, 1, 2) towers (1, 3, 2) towers (1, 1, 3) towers (2, 2, 3) = towers (1, 2, 1) towers (1, 2, 3) towers (1, 1, 3) 3 δίσκοι από το 1 στο 3 2 δίσκοι από το 1 στο 2 1 δίσκος από το 1 στο 3 1 δίσκος από το 1 στο 2 1 δίσκος από το 3 στο 2 1 δίσκος από το 1 στο 3 2 δίσκοι από το 2 στο 3 1 δίσκος από το 2 στο 1 1 δίσκος από το 2 στο 3 1 δίσκος από το 1 στο 3

143 Αναδρομικές Διαδικασίες (4) Πύργοι του Ανόι με 5 δίσκους : towers (5, 1, 3)

144 Αναδρομικές Διαδικασίες (5) Αναδρομική επίλυσης του προβλήματος των Πύργων του Ανόι.

145 Αναδρομικές Διαδικασίες (6) Η στοίβα σε διάφορα στιγμιότυπα εκτέλεσης.

146 Αναδρομικές Διαδικασίες (7) Άλλες γνωστές αναδρομικές διαδικασίες: Παραγοντικό fact(n) = Αριθμοί Fibbonacci f(n) = if (n == 1) return 1; else return n * fact(n-1); if (n == 0) return 0; else if (n == 1) return 1; else return f(n-1) + f(n-2); Δυαδική Αναζήτηση (Binary Search) Quick Sort, Bitonic Merge / Sort Διάσχιση Δυαδικού Δένδρου (Prefix, Infix, Postfix Traversal)

147 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (1)...

148 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (2)......

149 Πύργοι του Ανόι σε Γλώσσα Assembly Pentium 4 (3)...

150 Πύργοι του Ανόι σε Γλώσσα Assembly JVM (1)

151 Πύργοι του Ανόι σε Γλώσσα Assembly JVM (2)

152 Παραγοντικό σε Γλώσσα Assembly Pentium 4 (1) int fact(int n) { } if (n == 1) return 1; else return n * fact(n-1); fact:.l2: main () { int x; } x=fact(6);.l4: pushl %ebp movl %esp, %ebp subl $8, %esp cmpl $1, 8(%ebp) jne.l2 movl $1, -4(%ebp) jmp.l4 movl subl movl call movl imull movl 8(%ebp), %eax $1, %eax %eax, (%esp) fact %eax, %edx 8(%ebp), %edx %edx, -4(%ebp) movl -4(%ebp), %eax leave ret.size fact,.-fact.globl main.type main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $20, %esp movl $6, (%esp) call fact movl %eax, -8(%ebp) addl $20, %esp popl %ecx popl %ebp leal -4(%ecx), %esp ret

153 Παραγοντικό σε Γλώσσα JVM (1) class fact { public static int myfact (int n) { if (n == 1) return 1; else return n * myfact(n-1); } public static void main () { int x; } } x = myfact(6); public static int myfact(int); Code: 0: iload_0 1: iconst_1 2: if_icmpne 7 5: iconst_1 6: ireturn 7: iload_0 8: iload_0 9: iconst_1 10: isub 11: invokestatic #2 14: imul 15: ireturn public static void main(); Code: 0: bipush 6 2: invokestatic #2 5: istore_0 6: return

154 Ασκήσεις Προσπαθήστε να προγραμματίσετε τον υπολογισμό εκφράσεων RPN στο προσομοιωτή Mic-1. Προσπαθήστε να προγραμματίσετε απλές αναδρομικές διαδικασίες στο προσομοιωτή Mic-1. Παράδειγμα Σi = i + Σ(i-1), i=1,2,..n. Μελετήστε τις αναδρομικές κλήσεις και τη στοίβα.

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Organization, W. Robinson,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MIPS functions and procedures

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

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

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

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

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

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

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

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

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

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

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

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

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

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

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

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

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

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

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

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

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

Παραλληλισμός σε επίπεδο εντολών

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

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

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

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

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Παρακάτω δίνονται μερικοί από τους ακροδέκτες που συναντάμε στην πλειοψηφία των μικροεπεξεργαστών. Φτιάξτε έναν πίνακα που να

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

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

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

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

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

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

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

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

Εισαγωγή Βασικές εντολές Εκτέλεση βήµα-βήµα Εξέταση/Ανάθεση GDB-101. Νίκος Ντάρµος Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων

Εισαγωγή Βασικές εντολές Εκτέλεση βήµα-βήµα Εξέταση/Ανάθεση GDB-101. Νίκος Ντάρµος Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Νίκος Ντάρµος Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Ιωάννινα, Μάιος 2010 Βασικές λειτουργίες ενός debugger: Εκτέλεση προγράµµατος ϐήµα-ϐήµα. Παρακολούθηση τιµών µεταβλητών. Εξέταση

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

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

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

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

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

Επιτεύγµατα των Λ.Σ.

Επιτεύγµατα των Λ.Σ. Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος

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

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

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

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

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

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

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

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ ΟΜΑΔΕΣ ΕΝΤΟΛΩΝ: ΙΔΙΟΤΗΤΕΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ 1. Εισαγωγή Η λειτουργία της CPU καθορίζεται από τις εντολές που εκτελεί, και που ονομάζονται εντολές μηχανής (machine instructions) ή εντολές υπολογιστή (computer

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

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

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

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

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

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

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

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

Writing kernels for fun and profit

Writing kernels for fun and profit Writing kernels for fun and profit Γιάννης Τσιομπίκας nuclear@memberfsforg 23 Μαρτίου 2011 Γιατί; It s FUN! Εξοικείωση με το hardware Εμβάθυνση στον θαυμαστό κόσμο των λειτουργικών συστημάτων Μια καλή

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

Εισαγωγή στην Πληροφορική

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

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

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

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

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

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

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

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

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

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

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διάλεξη 4 Περίληψη Συναρτήσεις Χρονόμετρο Χρήση Διακοπτών Coprocessor Διαχείριση

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

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

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

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

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

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

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

Σημειώσεις για τον 80x86

Σημειώσεις για τον 80x86 Σημειώσεις για τον 80x86 Τι είναι η διεύθυνση; 16bits 0000h 0001h 0002h 8bits 20h 32h 30h Η μνήμη ενός μικροϋπολογιστικού συστήματος χωρίζεται σε μικρά τμήματα του ενός byte FFFEh 30h 2 16 =65,536 bytes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ 2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο

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

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

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

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