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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

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

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

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

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

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

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

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

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

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

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

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

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

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

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

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

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

2. Τεχνολογία επεξεργαστών

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

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

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

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

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

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

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

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

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

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

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKO MHXANIK I O I Η/ Η Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Γ. Τσιατούχας ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ

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

Τεχνολογίες Κύριας Μνήμης

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

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

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

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

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

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

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

Transcript:

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

Αρχιτεκτονική Συνόλου Εντολών Τι περιγράφει; Διαθέσιμες πράξεις/λειτουργίες Κωδικοποίηση λειτουργιών Μορφή των εισόδου-εξόδου Operands Μέθοδοι προσπέλασης μνήμης των Χώροι προσωρινής αποθήκευσης Καταχωρητές Διακοπές και καταστάσεις σφάλματος Ποια η αντίδραση του επεξεργαστή Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 2

Σχεδιασμός Συνόλου Εντολών Συμβιβασμός μεταξύ: Κόστους και απόδοσης υλικού Βαθμού υποστήριξης λογισμικού Άλλων παραγόντων όπως η κατανάλωση ενέργειας Το υλικό καταναλώνει ενέργεια, υπό τον έλεγχο του λογισμικού όμως! Μη επικάλυψης λειτουργιών εντολών (orthogonality) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 3

Κωδικοποίηση Εντολών Μηχανής opcode operand1 operand2.. operandn Σειρά δυαδικών ψηφίων Μεταβλητού μήκους ; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Περισσότερο συμπαγή προγράμματα Πολυπλοκότερο υλικό! Σταθερού μήκους Απλούστερη και ταχύτερη λήψη-αποκωδικοποίηση Μεγαλύτερα προγράμματα Μέθοδοι συμπίεσης Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 4

Κωδικοποίηση Εντολών Μηχανής opcode operand1 operand2.. operandn Περιγράφει το είδος της πράξης που θα εκτελεστεί Περιγράφουν την προέλευση των εισόδου (αριθμό καταχωρητή, διεύθυνση μνήμης κλπ) και τον προορισμό των εξόδου (αποτέλεσμα πράξης) Το είδος της πράξης προσδιορίζει τον τύπο, την προέλευση και τον αριθμό των που συμμετέχουν στην πράξη! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 5

Εντολές Μηχανής και Assembly! Κάθε διαφορετική αρχιτεκτονική επεξεργαστών έχει διαφορετική γλώσσα assembly! Εντολές μηχανής Σειρές από bits (ομάδες bytes ανά εντολή) Τα bits αυτά κωδικοποιούν όλα τα χαρακτηριστικά κάθε εντολής Assembly Μνημονικός τρόπος αναπαράστασης εντολών Ευκολότερη κατανόηση από τον άνθρωπο Προσοχή: MOV R1,R2 // π.χ. R1 => R2 MOV R1,#100 // π.χ. R1 => mem[100] παρόλο που το μνημονικό MOV είναι ίδιο, δεν πρόκειται για την ίδια εντολή! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 6

Τα παραδείγματά μας: Intel IA-32 (64) i Και η ανταγωνίστρια εταιρία AMD παράγει επεξεργαστές συμβατούς με την αρχιτεκτονική αυτή Αρχιτεκτονική επεξεργαστών Intel IA-32 Μία πολύπλοκη αρχιτεκτονική επεξεργαστών με σύνθετο σετ εντολών διατήρηση συμβατότητας με παλαιότερους επεξεργαστές της Intel (legacy compatibility) Με πολύ μεγάλη εγκατεστημένη βάση Συστήματα PCs Όχι η βέλτιστη αρχιτεκτονική αλλά: Το μεγάλο μερίδιο που κατέχει στην αγορά επιτρέπει στην Intel έρευνα και ανάπτυξη για διαρκείς βελτιώσεις απόδοσης Τελικά η αρχιτεκτονική αυτή είναι βέλτιστη μέσα στην τεράστια πολυπλοκότητά της Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 7

Τα παραδείγματά μας: Intel IA-32 (64) Οικογένειες επεξεργαστών Pentium P6 Pentium Pro, II, III Netburst Pentium 4, D (IA-32 σε νεώτερες εκδόσεις και 64) Pentium M Intel Core, Core Duo Intel Core (IA-32-64) Intel Core 2 Duo...νεώτερες αρχιτεκτονικές Intel 64 and IA-32 Architectures Software Developer's Manuals http://www.intel.com/products/processor/manuals/index.htm Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 8

Intel IA-32: η γενική μορφή των εντολών Μεταβλητός αριθμός bytes ανά εντολή (1-17)! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 9

Προέλευση και αποθήκευση αποθήκευση αποτελεσμάτων μιας πράξης Operand addressing Εξαρτάται από την αρχιτεκτονική του επεξεργαστή Στους πρώτους επεξεργαστές Stack (σωρός-στοίβα) Accumulator (συσσωρευτής) Μεταγενέστεροι υπολογιστές Καταχωρητές Μνήμη (register-memory) Κυρίως καταχωρητές (register-register ή load-store) μόνο ανάγνωση και εγγραφή μνήμης Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 10

Αρχιτεκτονική σωρού (stack) ALU TOS push A push B add pop A Πηγή-προορισμός προσδιορίζονται έμμεσα Δεν περιγράφονται στην εντολή! 0-address architecture Δημοφιλές σχήμα κατά τη δεκαετία του 60 Δύσκολη προσπέλαση σωρού, απαιτούνται πολλαπλές αντιμεταθέσεις και αντιγραφές Το σχήμα επιζεί στην αρχιτεκτονική της Java VM Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 11

Αρχιτεκτονική συσσωρευτή (accumulator) accumulator (A) μνήμη add X (A = A + X) ALU Μία πηγή - θέση αποθήκευσης του αποτελέσματος είναι πάντα ο συσσωρευτής 1-address architecture Αρχιτεκτονική των πρώτων υπολογιστών! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 12

Αρχιτεκτονικές με καταχωρητές (1) καταχωρητές μνήμη add R2, R1,mem(100) (R2 <= R1 + mem[100]) ALU! Καταχωρητές: προσωρινές θέσεις αποθήκευσης αποτελεσμάτων, η γενίκευση της ιδέας του συσσωρευτή. Memory-register Οποιαδήποτε εντολή μπορεί να προσπελάσει τη μνήμη Όμως: Πολλαπλές προσπελάσεις μνήμης Λήψη εντολής Λήψη εντολής Πολύπλοκη εκτέλεση εντολής σε στάδια Συνωστισμός στον δίαυλο επικοινωνίας με μνήμη Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 13

Αρχιτεκτονικές με καταχωρητές (2) καταχωρητές add R1, R2,R3 (R1 <= R2 + R3) ; Είναι επιθυμητός ένα πολύ μεγάλος αριθμός καταχωρητών; ALU Register-register (load-store) Μόνο εντολές load-store μπορούν να προσπελάσουν τη μνήμη Η αρχιτεκτονική των σύγχρονων επεξεργαστών Οι καταχωρητές προσπελαύνονται πολύ γρήγορα Χρειάζονται λιγότερα bits για να επιλεγούν Οι μεταγλωττιστές αναθέτουν μεταβλητές σε καταχωρητές Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 14

Η εξέλιξη της αρχιτεκτονικής εντολών Οι πρώτοι υπολογιστές (.. - 60) Αρχιτεκτονική συσσωρευτή και αργότερα σωρού Ικανοποιητική λύση λόγω της απλής τεχνολογίας των μεταγλωττιστών Πολύπλοκες αρχιτεκτονικές ( 70 -..) Ενσωμάτωση σύνθετων μορφών εντολών και μεθόδων προσπέλασης μνήμης Προσπάθεια υποστήριξης υψηλών γλωσσών προγραμματισμού μείωσης κόστους λογισμικού Πολλά χαρακτηριστικά μένουν αχρησιμοποίητα! Complex Instruction Set Computers (CISC) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 15

Η εξέλιξη της αρχιτεκτονικής εντολών Reduced Instruction Set Computers (RISC) ( 80 - ) Απλούστερες και φθηνότερες load-store αρχιτεκτονικές με σταθερό μήκος εντολών Μεγαλύτερη απόδοση ταχύτερη εκτέλεση εντολών Ευνοείται από την αφθονία υλικού χαμηλού κόστους και την προηγμένη τεχνολογία των μεταγλωττιστών Ακόμα και ο μοναδικός επιζών επεξεργαστής με εντολές CISC (αρχιτεκτονική x86), μεταφράζει εσωτερικά σε εντολές RISC Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 16

ΙΑ-32 (64): memory-register Πολλές εντολές γενικού σκοπού πέρα από τις load και store έχουν ως πηγή ή προορισμό τη μνήμη AND Logical AND Opcode Instruction... 81 /4 iw AND r/m16, imm16 81 /4 id AND r/m32, imm32... 21 /r AND r/m16, r16 21 /r AND r/m32, r32 REX.W + 21 /r AND r/m64, r64 22 /r AND r8, r/m8... 23 /r AND r32, r/m32 REX.W + 23 /r AND r64, r/m64...κλπ.. Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 17

ΙΑ-32: καταχωρητές γενικού σκοπού και σχηματισμός διευθύνσεων i Εκτός από τους καταχωρητές γενικού σκοπού, οι επεξεργαστές ΙΑ- 32 έχουν πρόσθετους καταχωρητές για πράξεις κινητής υποδιαστολής και πράξεις streaming και multimedia. τμηματοποίηση (σε επόμενα μαθηματα) καταχωρητής κατάστασης program counter Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 18

Μέθοδοι προσπέλασης μνήμης Προσπέλαση μνήμης Τουλάχιστον κάποιες εντολές προσπελαύνουν τη μνήμη για ανάγνωση ή εγγραφή Πώς σχηματίζεται η διεύθυνση προσπέλασης; Η γενική ιδέα: υποβοήθηση του λογισμικού Διαφορετικός σχηματισμός διεύθυνσης για Τοπικές μεταβλητές Δείκτες (έμμεση προσπέλαση) Στατικά δεδομένα Διάσχιση πινάκων (Σταθερές τιμές) Υποστήριξη ανάλογα με αρχιτεκτονική Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 19

Μέθοδοι προσπέλασης μνήμης Προσπέλαση μνήμης Στο σχηματισμό της διεύθυνσης μνήμης μπορούν να συμμετέχουν: Απόλυτες τιμές διεύθυνσης Καταχωρητές Σταθερές τιμές μετατόπισης (offsets) πιθανή χρήση displacement mem[offs+reg] τοπικές register indirect mem[reg] δείκτες ; Πώς κωδικοποιούνται οι μέθοδοι προσπέλασης μνήμης μέσα στην εντολή; indexed direct memory indirect auto-increment scaled mem[reg1+reg2] mem[addr] mem[mem[reg]] mem[reg++] mem[offs+reg1+reg2*d] πίνακες στατικές *δείκτες πίνακες πίνακες Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 20

ΙΑ-32 (64): Σχηματισμός διευθύνσεων Προσπέλαση μνήμης καταχωρητές Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 21

Εντολές: κατηγορίες λειτουργιών Προσπέλαση μνήμης Κατηγορίες εντολών Βασικές κατηγορίες Αριθμητικές και λογικές πράξεις Μεταφορά Από-πρός Καταχωρητές και Μνήμη Έλεγχος ροής εκτέλεσης Διακλαδώσεις και κλήσεις ρουτινών Άλλες κατηγορίες Ειδικές εντολές συστήματος ΛΣ, ιδεατή μνήμη Επεξεργασία πολλαπλών Χρήσιμο για γραφικά, σειρές χαρακτήρων, multimedia Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 22

ΙΑ-32: εντολές μεταφοράς Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 23

IA-32: Εντολές διακλάδωσης Προσπέλαση μνήμης Κατηγορίες εντολών Με ή χωρίς συνθήκη Σε απόλυτη ή σχετική διεύθυνση 16 ή 32 bits απόλυτη διεύθυνση πιθανώς σε μνήμη ή καταχωρητή 8, 16 ή 32 bits σχετική διεύθυνση Συνθήκη: καταχωρητής κατάστασης EFLAGS Μεταξύ τμημάτων κώδικα της ίδιας ή διαφορετικής διεργασίας Κλήση συναρτήσεων Όπως η διακλάδωση με αποθήκευση πρόσθετης πληροφορίας (program stack) για επιστροφή από συνάρτηση στο σημείο μετά την κλήση Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 24

Εντολές διακλάδωσης Προσπέλαση μνήμης Κατηγορίες εντολών Κλήση συναρτήσεων και επιστροφή Αποθήκευση της τρέχουσας διεύθυνσης εκτέλεσης (καταχωρητή PC) Πριν τη μετάβαση στη συνάρτηση Χρήση αποθηκευμένης τιμής Κατά την επιστροφή (return) ; Πού θα μπορούσε να αποθηκευτεί η διεύθυνση επιστροφής μετά από κλήση συνάρτησης; frame pointer Παράμετροι εισόδου Χώρος για επιστρεφόμενη τιμή Διεύθυνση επιστροφής Προηγούμενη τιμή frame pointer Τοπικές μεταβλητές Προσωρινές θέσεις αποθήκευσης Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) 25