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

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

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

Transcript

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

2 Αρχιτεκτονική Συνόλου Εντολών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. 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. Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός, Π. Ευριπίδου, Πανεπιστήμιο Κύπρου Αρχιτεκτονική Υπολογιστών, Ν. Στεφανιδάκης, Ιόνιο Πανεπιστήμιο. Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής. Σύνθεση Β: Η. Σακελλαρίου, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

3 Επισκόπιση Εισαγωγικές έννοιες, Βασικές τάσεις στο σχεδιασμό. Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων Κωδικοποίηση, Μορφές Εντολών και Διευθυνσιοδότηση Ροή Ελέγχου

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

5 Επίπεδο Αρχιτεκτονικής Συνόλου Εντολών Ιστορικά το πρώτο επίπεδο (και κάποτε το μοναδικό). Σημασία: Διασύνδεση μεταξύ υλικού-λογισμικού (hw/sw). Χαμηλότερο επίπεδο προγραμματισμού. Όλες οι γλώσσες έχουν μεταγλωττιστεί στο ίδιο σύνολο εντολών. Δεν ενδιαφερόμαστε πως υλοποιείται (κυκλώματα, μικροαρχιτεκτονική, κλπ) Όλοι οι επεξεργαστές που υλοποιούν ένα ISA φαίνονται ίδιοι. Προσέγγιση επιτρέπει την ανάπτυξη διαφορετικών γλωσσών για την ίδια φυσική μηχανή. την ανάπτυξη διαφορετικών συμβατών φυσικών μηχανών.

6 Διεπαφή μεταξύ μεταγλωττιστών και Υλικού Java program bytecode compiler JVM ` bytecode hardware (μικροκώδικας ή ευθεία υλοποίηση) Η JVM αποτελεί μια ειδική περίπτωση (εικονική μηχανή-virtual machine). Λόγοι συμβατότητας

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

8 Βασικές Αρχές Σχεδιασμού Πρέπει να λαμβάνει υπ' όψη του θέματα υλοποίησης, δηλαδή να συμβάλλει στην αποδοτική υλοποίηση του, τόσο με την υπάρχουσα τεχνολογία όσο και με μελλοντικές. Κανονικότητα (regularity): Οι συνδυασμοί εντολών, προσπέλασης μνήμης, τύπων δεδομένων πρέπει να είναι ορθογώνιοι (ανεξάρτητοι μεταξύ τους) Σωστό επίπεδο αφαίρεσης (primitives not solutions): Ειδικές εντολές που υλοποιούν κάποιο χαρακτηριστικό μιας συγκλεκριμένης γλώσσας δεν έχουν αρκετά ευρεία αποδοχή. Λαμβάνεται υπ' όψη το κόστος / απόδοση / εύρος εφαρμογής. Πρέπει να έχει χρονική διάρκεια/προοπτική, να μην μεταβάλλεται συχνά (επαύξηση μόνο και προς τα πίσω συμβατότητα).

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

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

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

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

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

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

15 Τελικά ποια εντολή εκτελείται; (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. Καθαρότερες αρχιτεκτονικές

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

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

18 Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων

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

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

21 Παράδειγμα Χρήσης Εντολών: 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% Παρατήρηση: Οι απλές εντολές έχουν τις μεγαλύτερες συχνότητες χρησιμοποίησης. 23 September 2008

22 Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων

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

24 Παράδειγμα Αρχιτεκτονικής RISC Register-Register (load/store) Δεν επιτρέπονται προσπελάσεις στην μνήμη, παρά μόνο με εντολές load-store. Registers Γρήγορη Προσπέλαση καταχωρητών Λιγότερα bits για κωδικοποίηση / προσπέλαση καταχωρητών. Μεταγλωττιστές αναθέτουν μεταβλητές σε registers. Εντολές 2 ή 3 διευθύνσεων. Εντολή υψηλού επιπέδου: C = A + B (Εναλλακτικά) Load R1,A Load R1, A Load R2, B Add R3, R1, R2 Store R3, C Store R2, C Memory Load R2, B Add R2, R1 ALU

25 Παράδειγμα Αρχιτεκτονικής CISC Register-Memory Περισσότερες εντολές περιλαμβάνουν και μια προσπέλαση στη μνήμη. Registers Διαφέρει από το μοντέλο συσσωρευτή λόγω των περισσότερων καταχωρητών. Εντολές 2 διευθύνσεων ALU Εντολή υψηλού επιπέδου: C = A + B Load R1, A Add R1, Β Store R1, C Memory

26 Παράδειγμα Αρχιτεκτονικής Συσσωρευτή Accumulator Accumulator Το αποτέλεσμα της πράξης πάει πάντα σε ένα ειδικό καταχωρητή (συσσωρευτής). Εντολές μιας διεύθυνσης ALU Δεύτερος Τελεστής στη μνήμη. Αρχιτεκτονική πρώτων Η/Υ. Εντολή υψηλού επιπέδου: C=A+B Load A //Acc=A Add Β //(Acc=Acc+B) Store C //(C=Acc) Memory

27 Παράδειγμα Αρχιτεκτονικής Στοίβας Stack Έμμεσος Προσδιορισμός Τελεστέων (έντελων) Δεν περιγράφονται στην εντολή (λιγότερα bits) Εντολές μηδέν διευθύνσεων. Δημοφιλές στην δεκαετία του 60. Δυσκολίες στην προσπέλαση σωρού, πολλές αντιμεταθέσεις και αντιγραφές. Stack TOS ALU Εντολή υψηλού επιπέδου: C=A+B Push A Push B Add Pop C Memory

28 Σύγκριση Αρχιτεκτονικών Προσδιορισμός Τελεστών Μη ρητά δηλωμένοι τελεστέοι (Στοίβα, Συσσωρευτής - κάποιοι) Ρητά Δηλωμένοι Τελεστέοι (RISC, CISC) (Επηρεάσζει τον αριθμό των bits απαραίτητων για κωδικοποίηση). Αναφορά στη Μνήμη Λογικών και Αριθμητικών εκφράσεων (εκτός εντολών Load/Store) Αριθμός Εντολών για την υλοποίηση παραστάσεων. Αρχιτεκτονική RISC Load R1, A Load R2, B Add R3, R1, R2 Store R3, C Αρχιτεκτονική CISC Load R1,A Add R1, Β Store R1, C Αρχιτεκτονική Συσσωρευτή Load A Add Β Store C Αρχιτεκτονική Στοίβας Push A Push B Add Pop C

29 Αριθμός Εντολών Σε RISC Έστω η ακόλουθη έκφραση A=B+C*D-C Load R1, B Load R2, C Load R3, D Mult R4,R3,R2 Add R5, R4, R1 Sub R6, R5, R2 Store R6, A Πόσοι καταχωρητές απαιτούνται; Με καλύτερη χρήση καταχωρητών Load R1, C Load R2, D Mult R2, R1, R2 Load R3, B Add R2, R2, R3 Sub R2, R2, R1 Store R2, A Τάση για περισσότερους καταχωρητές Καλός compiler προσπαθεί να ελαχιστοποιήσει τον αριθμό που απαιτούνται Register spilling Register allocation Αναφορές στη Μνήμη 4 Εντολές 7 Απλότητα στην παραγωγή κώδικα, σταθερό μήκος εντολών, εντολές απαιτούν συνήθως ίδιο αριθμό κύκλων.

30 Αριθμός Εντολών Σε CISC Λιγότερες Έστω η ακόλουθη έκφραση A=B+C*D-C Προσπελάσεις Load R1, C Load R1, C Move R2, R1 Mult R1, D Mult R2, R2, D Add R1, B Add R2, R2, B Sub R1, C Sub R2, R2, R1 Store R1, A Store R1, A Ισχύουν οι τάσεις για αύξηση καταχωρητών και ποιότητα μεταγλωττιστών. Αναφορές στη Μνήμη 5 ή 4 Εντολές 5 ή 6 Εφόσον ο ένας τελεστέος των αριθμητικών πράξεων είναι στην μνήμη... Λιγότερες εντολές, διαφορετικός αριθμός κύκλων σε κάθε εντολή, μήκος εντολών (σε bits) διαφέρει.

31 Αριθμός Εντολών Σε Συσσωρευτή Έστω η ακόλουθη έκφραση A=B+C*D-C Load C Mult D Add B Sub C Store A Αναφορές στη Μνήμη 5 Εντολές 5 Ουσιαστικά έχω ένα καταχωρητή και σε πολύπλοκες πράξεις αυτό μπορεί να δημιουργήσει προβλήματα απόδοσης.

32 Στοίβα Έστω η ακόλουθη έκφραση A=B+C*D-C Push C Push D Mult Push B Add Push C Sub Pop A Μετάφορές Στοίβας-Μνήμης 5 Εντολές 8 Πόσες είναι οι αναφορές στη μνήμη στην περίπτωση που η στοίβα είναι στην μνήμη?

33 Στοίβα Έστω η ακόλουθη έκφραση A=B+C*D-C Push C push mem(c) Push D push mem(d) Mult pop, pop, mult, push Push B push mem(b) Add pop, pop, add, push Push C push mem(c) Sub pop, pop, sub, push Pop A pop mem(a) Αντιγραφές Μνήμης 19 Εντολές 8 Αν όμως η στοίβα είναι σε ένα register file (picojava II), τότε οι μεταφορές από/προς τη μνήμη μειώνονται σε 4 ή 5. Ουσιαστικά έχουμε μια μετάφραση των εντολών σε RISC μικροκώδικα.

34 Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων

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

36 Στοίχιση Αν για παράδειγμα η προσπέλαση της μνήμης γίνεται αν 8 bytes (32 bit), τότε αιτήσεις για προσπέλαση μη στοιχισμένων byte, είναι δαπανηρές. Μια λέξη των 8 bytes αποθηκευμένη σε μνήμη little-endian. (a) Με στοίχιση. (b) Χωρίς στοίχιση.

37 Μικρό Μεγάλο Άκρο Όταν έχω δεδομένα (δομές, μεγάλους αριθμούς) τους οποίους για να αποθηκεύσω χρειάζομαι πάνω από 1 byte, πως διατάσσονται στα διαδοχικά bytes που καταλαμβάνουν? Μικρό άκρο (little endian): το λιγότερο σημαντικό byte πηγαίνει στην θέση μνήμης με την χαμηλότερη αρίθμηση Μεγάλο άκρο (big endian): το πιο σημαντικό byte πηγαίνει στην θέση μνήμης με την χαμηλότερη αρίθμηση. Αριθμός 0xAB3456EF (4 bytes) σε δεκαεξαδική μορφή (α) Big endian (b) Little Endian 184 AB 184 EF EF 187 AB

38 Λογική Οργάνωση Bytes Στο μεγάλο άκρο η αρίθμηση ξεκινά από το byte υψηλής τάξης. Στο μικρό άκρο η αρίθμηση ξενικά από το byte χαμηλής τάξης. Έστω ο αριθμός 6 σε 32-bit σταθερά

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

40 Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων

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

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

43 Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων

44 Βασικοί Τύποι Δεδομένων Aπόσπασμα από μια περιοχή μνήμης (ή ένα αρχείο) σε hex. Τι μπορεί να είναι: εντολές γλώσσας μηχανής, ASCII χαρακτήρες προγράμματος, ακέραιοι, πραγματικοί, τιμές pixel από εικόνα; Οτιδήποτε από αυτά! Το νόημα των bits εξαρτάται από τα συμφραζόμενά μας, δηλαδή από τη δική μας αντίληψη για τα δεδομένα 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

45 Βασικοί Τύποι Δεδομένων (συν) Βασικό ερώτημα: Θα υπάρχει υποστήριξη σε επίπεδο ISA ενός τύπου δεδομένων; Ύπαρξη αντίστοιχων εντολών (πχ integer add, integer long add, float add) Αριθμητικοί τύποι δεδομένων int float (4 bytes), double (8 bytes) Unsigned ή Signed (συπλήρωμα του 2) 2 ή 4 bytes Short και Long IEEE Floating Point Standard 754 Μη αριθμητικοί τύποι δεδομένων (συνήθως αντιμετωπίζονται σε ομάδες (πχ μια λέξη) char ASCII (7 ή 8 bits) Unicode (16 bits) boolean

46 Παραδείγματα Μέχρι τώρα: Εντολές-Λειτουργικότητα Ορισμός τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων Παραδείγματα Pentium, JVM

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

48 Καταστάσεις Λειτουργίας 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: Τυπική λειτουργία χρήστη και διεργασιών.

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

50 Καταχωρητές 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)

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

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

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

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

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

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

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

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

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

60 Επισκόπιση Εισαγωγικές έννοιες, Βασικές τάσεις στο σχεδιασμό. Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων Κωδικοποίηση, Μορφές Εντολών και Διευθυνσιοδότηση Ροή Ελέγχου

61 ΟΚ, am I done? Τα πάντα είναι 0/1. Άρα οι εντολές μου πρέπει να κωδικοποιηθούν σε τέτοια μορφή (ακολουθίες 0/1) Προβλήματα: Πόσες εντολές έχω; Πως θα αναπαραστήσω τους τελεστές; Που βρίσκονται οι τελεστές; (μνήμη, καταχωρητές, σταθερές). Πως θα κάνω προσπέλαση στη μνήμη; Πόσα bits χρειάζομαι για να κάνω όλα τα παραπάνω; Χρειάζομαι πάντα τον ίδιο αριθμό;

62 Κωδικοποίηση σε bits Απαιτούνται: Bits για την κωδικοποίηση εντολών (op-code) Bits για την κωδικοποίηση των τελεστέων (έντελων). Απλό παράδειγμα: Πόσα bits εντολής? Έστω 35 διαφορετικές εντολές (χρειάζομαι 6 bits = 64) Έχω 32 καταχωτητές (5 bits = 32) Άρα μια εντολή που περιλαμβάνει αναφορές σε τρείς καταχωρητές, χρειάζεται: = 21 bits OPCODE R3 R1 R2 Μια εντολή με μια σταθερά 16 bit και δύο καταχωρητές; OPCODE R2 R1 CONST

63 Κωδικοποίηση σε bits (συν) Μια εντολή μηδέν τελεστέων (6 bits) Μια εντολή με ένα καταχωρητή; 6 5 OPCODE R1 Ένα καταχωρητή και μια διεύθυνση στη μνήμη με 8 ΜB μνήμης; Byte addressable: 23 bits OPCODE R2 Address Word addressable: 21 bits OPCODE R2 Address

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

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

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

67 Κριτήρια σχεδιασμού Εντολών (1/2) Οι μικρές (σύντομες) εντολές είναι καλύτερες από τις μεγάλες (σύνθετες) εντολές. Λιγότερος χώρος στη μνήμη, γρηγορότερη προσκόμιση εντολών. Απαιτείται αρκετός χώρος (bits) για τη κωδικοποίηση όλων των πράξεων και λειτουργιών καθώς και πρόβλεψη για μελλοντικές επεκτάσεις (μήκος και κωδικοποίηση opcodes). Απαιτείται αρκετός χώρος για τη τη κωδικοποίηση των τελεστών και των συνδυασμών τους ανάλογα με τις μεθόδους διευθυνσιοδότησης που επιλέγονται: 0, 1, 2 ή 3 operands ονόματα καταχωρητών διεθύνσεις μνήμης (word/byte addressable) offset ή πλήρης διεύθυνση (αριθμός bits)s

68 Ανάλυση Μνήμης Byte Addressable 4 GB απαιτούν 32 bit διεύθυνση. Ευκολία στη σύγκριση χαρακτήρων (ένα byte) Word (4 byte) addressable. 4GB απαιτούν 30 bit διεύθυνση μικρότερες εντολές Δυσκολία (έξτρα εργασίες) για την σύγκριση μεμενομένω byte. Συμβιβασμός μεταξύ των δύο τάσεων. Άλλοι τρόποι διευθυνσιοδότησης

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

70 Προηγούμενο Παράδειγμα OPCODE R3 R1 R OPCODE R2 R1 CONST 6 5 OPCODE R1 6 OPCODE OPCODE R2 Address OPCODE R2 Address Θα ήθελα σταθερό μήκος εντολών (32 bits) και μεγάλη ανάλυση στην προσπέλαση της μνήμης.

71 Εντολές στο ISA OPCODE R3 R1 R2 Αν το OPCODE δεν έχει σταθερό μήκος? OPCODE R2 R1 CONST 16 5 OPCODE R1 24 OPCODE OP R2 Address

72 Επεκτεινόμενοι Κωδικοί Εντολή με 4-bit opcode και τρείς διευθύνσεις 4-bit. 4 bit πόσες εντολές με σταθερό opcode? Πρέπει να οργανώσουμε εντολές με διαφορετικό αριθμό/τύπο operands. Σύνολο εντολών με 15 εντολές τριών διευθύνσεων, 14 εντολές δύο διευθύνσεων, 31 εντολές μιας διεύθυνσης και 16 εντολές μηδενικής διεύθνσης.

73 Επεκτεινόμενοι Κωδικοί (συν)

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

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

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

77 Διευθυνσιοδότηση Πως μεταφράζονται τα bits που έχω στο πεδίο της διεύθυνσης; Υπάρχει τρόπος να προσπελάσω μνήμη με διευθυνσιοδότηση 32 bit χρησιμοποιώντας λιγότερα bits σαν τελεστέο; Πως διευκολύνονται οι συνήθεις πράξεις/εντολές;

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

79 Μέθοδοι Διευθυνσιοδότησης (συν) Memory Άμεσος Καθορισμός Τιμής Απόλυτος Τελεστέος Α Καταχωρητή Τελεστέος Registers R Τελεστέος Έμμεση Καταχωρητή R Μετατόπιση R Registers Α Reg Memory Registers + Reg Memory Τελεστέος Τελεστέος

80 Άμεση, Έμμεση, Καταχωρητή Διευθυνσιοδότηση Άμεσο καθορισμό τιμής Άμεση Απόλυτες τιμές μνήμης, σταθερές Καταχωρητή Συνήθως φόρτωση σταθερών. Κύριος τρόπος στις αρχιτεκτονικές load/store. Έμμεση καταχωρητή Διεύθυνση τελεστέου στην μνήμη αποθηκεύεται σε ένα καταχωρητή. Προσπέλαση μνήμης με λιγότερα bits στην εντολή.

81 Παράδειγμα Προσπέλαση πίνακα 1024 στοιχείων των 4 bytes το καθένα. Διεύθυνση Α, η αρχή του πίνακα. R1..Rn καταχωρητές, # σταθερές, αποτέλεσμα στον πρώτο τελεστή.

82 Διευθυνσιοδότηση με Δείκτη Θέσης OR των A[i] AND B[i] για δύο πίνακες 1024 στοιχείων. Οι πίνακες είναι στις διευθύνσεις Α και Β. 4 byte κάθε στοιχείο. Πιθανή διευθέτηση της εντολής MOV R4,A(R2)

83 Διευθυνσιοδότηση με Βάση + Δείκτη Διεύθυνση προκύπτει από το άθροισμα δύο δεικτών. Προηγούμενο παράδειγμα με χρήση δύο ακόμη καταχωρητών (R5 και R6): LOOP: MOV R1, #0 MOV R2, #0 MOV R3, #4096 MOV R5, A MOV R6, B MOV R4, (R2, R5) AND R4, (R2, R6) OR R1, R4 ADD R2, #4 CMP R2,R3 BLT LOOP

84 Διευθυνσιοδότηση Για εντολές Αλμάτων Απόλυτη Έμμεση μέσω καταχωρητή Διευθυνσιοδότηση ως προς το καταχωρητή PC. Ορίζεται μια προσημασμένη σχετική μετατόπιση ως προς τον PC. Μιας και ο καταχωρητής είναι γνωστός (PC) έχω περισσότερα bits για να ορίσω τη μετατόπιση. Ορίζω μετατοπίσεις ασχέτως με την πραγματική διεύθυνση μνήμης που θα τοποθετηθεί το πρόγραμμα. Είναι συνηθισμένο τα άλματα να οδηγούν κοντά στο σημείο διακλάδωσης.

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

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

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

88 Παραδείγματα Pentium: Πληθώρα μη κανονικών μεθόδων διευθυνσιοδότησης, δεν μπορούν να χρησιμοποιηθούν όλοι οι τρόποι για όλες τις εντολές, ούτε όλοι οι καταχωρητές. Μη κανονική κωδικοποίηση (εντολές με πολλά προαιρετικά bits). SPARC: Μόνο load/store* έχουν πρόσβαση στη μνήμη (έμμεση καταχωρητή (2 καταχωρητές), δείκτη θέσης). Άλλες εντολές (άμεσος καθορισμός τιμής, καταχωρητής). JVM: Στοίβα, Άμεσο, δείκτη θέσης. Πόσες χρειάζονται? Λίγες ξεκάθαρες: άμεσο καθορισμό τιμής, άμεση διευθυνσιοδότηση, καταχωρητή και δείκτη θέσης * και μια εντολή συγχρονισμού πολυεπεξεργαστών

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

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

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

92 Επισκόπιση Εισαγωγικές έννοιες, Βασικές τάσεις στο σχεδιασμό. Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων Κωδικοποίηση, Μορφές Εντολών και Διευθυνσιοδότηση Ροή Ελέγχου

93 Επισκόπιση Εισαγωγικές έννοιες, Βασικές τάσεις στο σχεδιασμό. Αρχιτεκτονική Εντολών Εντολές-Λειτουργικότητα Ορισμός Τελεστών Μνήμη Καταχωρητές Τύποι Δεδομένων Κωδικοποίηση, Μορφές Εντολών και Διευθυνσιοδότηση Ροή Ελέγχου

94 Ροή ελέγχου Ροή του Ελέγχου Διακλαδώσεις Διαδικασίες Αναδρομικές Διαδικασίες Συρρουτίνες Παγίδες Διακοπές

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

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

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

98 Ένθετες Διαδικασίες Ένθετες διαδικασίες Αναδρομικές Διαδικασίες Τι πρέπει να γίνει όταν καλείται μια διαδικασία; Τοποθέτηση παραμέτρων κάπου προσπελάσιμα από την διαδικασία Μεταβίβαση ελέγχου στη διαδικασία Δημιουργία χώρου αποθήκευσης τοπικών μεταβλητών για τη διαδικασία Εκτέλεση διαδικασίας Αποθήκευση αποτελέσματος σε μέρος προσπελάσιμο από την καλούσα διαδικασία. Επιστροφή ελέγχου στο σημείο της κλήσης (στην επόμενη αμέσως εντολή). int f(int x) { int temp; temp = x+3; return temp;} main () { int y; y = 7; y = f(y)-4;}

99 Αποθήκευση όλων στη στοίβα Δύο Δείκτες: ESP - stack pointer EBP base pointer (κατά intell ή frame pointer), EIP (PC- Instruction Pointer). Πριν την κλήση τα ορίσματα της συνάρτησης τα ορίσματά της (παράμετροι) τοποθετούνται στη στοίβα. Διεύθυνση επιστροφής στη στοίβα. Προηγούμενος EBP (καλούσας συνάρτησης) στη στοίβα. Απαιτείται για να επαναφέρουμε το περιβάλλον. Προσοχή! Η στοίβα αυξάνει προς χαμηλότερες διευθύνσεις. Πρώτο όρισμα στόχος (target) εκεί γράφονται τα αποτελέσματα Όπου R1 μπορείτε να βάλετε το EAX (καταχ Pentium).

100 Χρήση Στοίβας (απλοποιημένο παράδειγμα)... int f(int x){ int temp; temp = x+3; return temp;} f: Υπάρχει και η εντολή leave main () { int y; y = 7; y = f(y)-4;} Return addr Old EBP 1016 y EBP Κατεύθυνση αύξησης στοίβας ESP pushl movl subl movl addl movl movl movl pop return... main:... movl movl pushl call addl subl movl... EBP EBP, ESP ESP, #4 R1, 8(EBP) R1, #3-4(EBP), R1 R1, -4(EBP) ESP, EBP EBP -4(EBP), #7 R1, -4(EBP) R1 f ESP, #4 R1, #4-4(EBP), R1

101 Παράδειγμα 1/3 main:... movl movl pushl call addl subl movl... f: -4(EBP), #7 R1, -4(EBP) R1 f ESP, #4 R1, #4-4(EBP), R1 pushl 1022 R1 EBP pushl EBP movl EBP, ESP subl ESP, #4 movl R1, 8(EBP) addl R1, #3 movl -4(EBP), R1 movl R1, -4(EBP) movl ESP, EBP pop EBP return... f (EIP points to f:) call 1020 Return addr Old EBP Return addr Old EBP 1016 y y ESP EBP Return addr Old EBP EBP y 7 ESP address of addl ESP

102 Παράδειγμα 2/3 main:... movl movl pushl call addl subl movl... f: -4(EBP), #7 R1, -4(EBP) R1 f ESP, #4 R1, #4-4(EBP), R1 pushl EBP movl EBP, ESP Return addr Old EBP EBP pushl EBP movl EBP, ESP subl ESP, #4 movl R1, 8(EBP) addl R1, #3 movl -4(EBP), R1 movl R1, -4(EBP) movl ESP, EBP pop EBP return subl ESP, #4... Return addr Old EBP EBP Return addr Old EBP y 7 y 7 y 7 address of addl Old EBP(1020) address of addl Old EBP (1020) address of addl Old EBP(1020) ESP EBP Temp ESP ESP

103 Παράδειγμα 3/3 main:... movl movl pushl call addl subl movl... f: pushl -4(EBP), #7 movl R1, -4(EBP) subl R1 movl f addl ESP, #4 movl R1, #4 movl -4(EBP), R1 movl pop return...all other operations movl ESP, EBP Return addr Old EBP EBP Return addr Old EBP EBP EBP EBP, ESP ESP, #4 R1, 8(EBP) R1, #3-4(EBP), R1 R1, -4(EBP) ESP, EBP EBP pop EBP Return addr Old EBP y 7 y 7 y 7 address of addl Old EBP (1020) address of addl 1004 address of addl Old EBP(1020) 1000 Temp ESP ESP EBP ESP

104 Παράδειγμα: Τελική Κατάσταση main:... movl -4(EBP), #7 movl R1, -4(EBP) pushl R1 call f addl ESP, #4 subl R1, #4 movl -4(EBP), R1... return (EIP now points to addl) Return addr Old EBP EBP y 7 f: subl pushl EBP movl EBP, ESP subl ESP, #4 movl R1, 8(EBP) addl R1, #3 movl -4(EBP), R1 movl R1, -4(EBP) movl ESP, EBP pop EBP return Execution continues... R1, #4... Return addr Old EBP EBP y Return addr Old EBP EBP y ESP ESP ESP

105 Σχόλια Σε περίπτωση πολλών παραμέτρων οι παράμετροι εισάγονται στη στοίβα με την σειρά. Η επιστροφή στο παράδειγμα είναι μέσω ενός register. Μπορεί το αποτέλεσμα να είναι αποθηκευμένο και αυτό στη στοίβα (συνήθως μετά τις παραμέτρους της συνάρτησης). Αν η συνάρτηση χρησιμοποιεί κάποιους καταχωρητές των οποίων η τιμή είναι κρίσιμη για την καλούσα, τότε και αυτοί μπορεί να αποθηκευτούν στη στοίβα. Υπάρχει και άλλη πληροφορία (σύνδεσμοι προσπέλασης, κλπ) Εγγραφήματα Δραστηριοποίησης (activation records)

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

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

108 Αναδρομικές Διαδικασίες (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

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

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

111 Αναδρομικές Διαδικασίες (6) Εδώ η στοίβα αυξάνει προς μεγαλύτερες διευθύνσεις, Ο FP δείχνει σε διαφορετικό σημείο. Διαφορετικό εγγραφήμα δραστηριοποίησης. Η στοίβα σε διάφορα στιγμιότυπα εκτέλεσης.

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

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

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

115 Παγίδες Αυτόματη κλήση διαδικασίας όταν ικανοποιείται μια συνθήκη. πχ. υπεχείλιση χειριστής παγίδας (trap handler) Αυτόματη: αντί ο χρήστης να ελέγχει την συνθήκη και να καλεί την αντίστοιχη διαδικασία αυτό γίνεται σε επίπεδο μικροκώδικα/υλικού. Εξοικονομεί χώρο και χρόνο. Συνθήκη ανιχνεύσιμη από υλικό: Πχ. υπεχείλιση, μη ορισμένος κώδικας πράξης, υπερχείλιση στοίβας, παραβίαση προστασίας, διαίρεση με το 0, κλπ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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/ Μ.Στεφανιδάκης Ένα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος 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 η : Σύνολα Εντολών Ιστορική Αναδρομή Από τις πρώτες εντολές υπολογιστών Αρχιτεκτονική Συνόλου Εντολών Στοίβας Συσσωρευτή Επέκταση συσσωρευτή Καταχωρητών γενικού σκοπού Καταχωρητή-Μνήμης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1 Τεχνολογίες ημιαγωγών Chapter 2 Instructions: Language of the Computer 1 Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Διαφάνειες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 10 : Ομάδες εντολών: Τρόποι Διευθυνσιοδότησης και Μορφοποιήσεις Ευάγγελος Καρβούνης Τρίτη, 19/01/2016 2 Διευθυνσιοδότηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Data-Level Parallelism Linking & Loading

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ Άσκηση 1 Ένας επεξεργαστής (ΚΜΕ) υποστηρίζει 371 εντολές. Πόσα bit θα πρέπει να είναι ο καταχωρητής εντολής (ελάχιστη τιμή); (α) 4 bit (β) 16 bit (γ) 1 bit (δ)

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

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

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

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

MIPS functions and procedures

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αναπαράσταση Μη Αριθμητικών Δεδομένων

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

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

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 5-6 Αναπαράσταση Μη Αριθμητικών Δεδομένων (κείμενο, ήχος και εικόνα στον υπολογιστή) http://di.ionio.gr/~mistral/tp/csintro/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής Καταχωρητές & τμήματα μνήμης του 8086 Ματθές Δημήτριος Καθηγητής Πληροφορικής Καταχωρητές γενικού σκοπού Υπάρχουν τέσσερις (4) γενικού σκοπού καταχωρητές των 16-bit που χρησιμοποιούνται από τους προγραμματιστές

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

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 που να δίνει στις εξόδους της το πλήθος των ημερών του μήνα, ο αριθμός του

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