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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

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

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ;

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

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

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

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

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

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

Το μάθημα συνοπτικά (1) Το μάθημα συνοπτικά (2) Τι είναι ένα υπολογιστικό σύστημα ;

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

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

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

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

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

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

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

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

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

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

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

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

Διασύνδεση Εισόδου-Εξόδου

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

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

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

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

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

Βασίλειος Κοντογιάννης ΠΕ19

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

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

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

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

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

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

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

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

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

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

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

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

Μαλούτα Θεανώ Σελίδα 1

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

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

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

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

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

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

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

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

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

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

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

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

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

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

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

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

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

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

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Transcript:

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (Instruction Set Architectures - ISA) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα Ο (μικρο)επεξεργαστής (Micro)processor Ψηφιακό σύστημα που εκτελεί υπολογισμούς σε πολλαπλά βήματα Αρχικά: Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Central Processing Unit (CPU) Μέρος ενός ευρύτερου υπολογιστικού συστήματος (ή υπολογιστή ) γενικού ή ειδικού σκοπού Περιέχει σήμερα πολλαπλές υπομονάδες επεξεργασίας Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 2 Επεξεργαστής Μνήμη Συσκευές Ε/Ε Ένα τυπικό υπολογιστικό σύστημα συχνά και το σύστημα γραφικών μέσα στον επεξεργαστή οθόνη σύστημα γραφικών ποντίκι, πληκτρολόγιο, εκτυπωτές, σαρωτές... διασυνδετικός δίαυλος PCIe (x16) έως 8GB/s USB έως 5Gbit/s CPU core north bridge south bridge έως 500ΜB/s... CPU core > 90GB/s κρυφή (3 ου επιπέδου) M-bus (mem bus) 25+ GB/s (multi-channel) SATA 600ΜB/s DRAM σκληροί δίσκοι, CD/DVD, δικτυακή σύνδεση Είδη μικροεπεξεργαστών Γενικού σκοπού Οι περισσότερο γνωστοί επεξεργαστές (π.χ. για PCs) Συνεπεξεργαστές (co-processors)( Ειδικές λειτουργίες Μικροελεγκτές (microcontrollers)( Συστήματα ελέγχου Μέσα σε Systems-on-Chip Επεξεργαστικοί πυρήνες οι ρυθμοί μεταφοράς που δίνονται είναι οι θεωρητικά μέγιστοι! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 3 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 4

Το μοντέλο von Neumann Εκτέλεση ακολουθίας λειτουργιών Σε ποια μορφή αποθηκεύονται οι εντολές μικροεπεξεργαστής εντολές δεδομένα Το πρόγραμμα εκτέλεσης, όπως και τα δεδομένα, αποθηκεύονται στη του υπολογιστή Stored-program computer συσκευές Ε/Ε Ποιος ο ρόλος του σήματος ρολογιού ρολόι (clock) μονάδα ελέγχου επεξεργασία υπολογιστικό σύστημα πρόγραμμα ελέγχου δεδομένα εισόδου δεδομένα εξόδου Μνήμη συσκευές Ε/Ε Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 5 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 6 Εκτέλεση : ο κύκλος μηχανής Εκτέλεση Τι συμβαίνει με τις εξωτερικές διακοπές (interrupts) Ο χρόνος εκτέλεσης είναι ο ίδιος για όλες τις εντολές για πάντα Fetch: Φέρε την επόμενη εντολή προς εκτέλεση από τη Decode: Αποκωδικοποίησε την εντολή (προετοίμασε τα σήματα ελέγχου και τις πηγές των ) Execute: Εκτέλεσε την απαιτούμενη πράξη/λειτουργία Store: Αποθήκευσε τα αποτελέσματα (εάν απαιτείται) Επόμενη εντολή προς εκτέλεση Program Counter (PC): η διεύθυνση της θέσης ς όπου περιέχεται η επόμενη εντολή Σειριακή αύξηση διεύθυνσης μετά την εκτέλεση εντολής Ή μεταπήδηση σε νέα θέση ς (διακλάδωση) Εκκίνηση εκτέλεσης Με την εφαρμογή τάσης ο PC παίρνει μια προκαθορισμένη τιμή BIOS Τερματισμός επανάληψης κύκλου μηχανής Συμβατικά, ποτέ! Περιπτώσεις SLEEP για μείωση κατανάλωσης ενέργειας Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 7 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 8

Αρχιτεκτονική Συνόλου Εντολών Η διεπαφή ISA στην ιεραρχία επιπέδων Instruction Set Architecture (ISA) Το ορατό μέρος ενός υπολογιστικού συστήματος για τον προγραμματιστή (και τον μεταγλωττιστή) Δεκαετία 60-70: συνώνυμο του όρου αρχιτεκτονική Η/Υ «η δομή ενός υπολογιστή, την οποία ο προγραμματιστής πρέπει να γνωρίζει για να γράψει ένα σωστό (χρονικά ανεξάρτητο) πρόγραμμα σε γλώσσα μηχανής για τον υπολογιστή αυτόν» (ΙΒΜ) Τι ακριβώς περιγράφει η διεπαφή ISA Εφαρμογές API ΛΣ & βιβλιοθήκες Αρχιτεκτονική Εντολών (ISA) Υλικό εκτέλεσης (μικροεπεξεργαστής) Μνήμη Συσκευές Ε/Ε Αρχιτεκτονική Εντολών (ISA)( Η διεπαφή υλικού-λογισμικού Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 9 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 10 Αρχιτεκτονική Συνόλου Εντολών Σχεδιασμός Συνόλου Εντολών Τι περιγράφει Διαθέσιμες πράξεις/λειτουργίες Κωδικοποίηση λειτουργιών Μορφή των εισόδου-εξόδου Operands Μέθοδοι προσπέλασης ς των Χώροι προσωρινής αποθήκευσης Καταχωρητές Διακοπές και καταστάσεις σφάλματος Ποια η αντίδραση του επεξεργαστή Συμβιβασμός μεταξύ: Κόστους και απόδοσης υλικού Βαθμού υποστήριξης λογισμικού Άλλων παραγόντων όπως η κατανάλωση ενέργειας Το υλικό καταναλώνει ενέργεια, υπό τον έλεγχο του λογισμικού όμως! Μη επικάλυψης λειτουργιών (orthogonality) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 11 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 12

Κωδικοποίηση Εντολών opcode operand1 operand2.. operandn Κωδικοποίηση Εντολών opcode operand1 operand2.. operandn Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των σταθερού μήκους Σειρά δυαδικών ψηφίων Μεταβλητού μήκους Περισσότερο συμπαγή προγράμματα Πολυπλοκότερο υλικό! Σταθερού μήκους Απλούστερη και ταχύτερη λήψη-αποκωδικοποίηση Μεγαλύτερα προγράμματα Μέθοδοι συμπίεσης Περιγράφει το είδος της πράξης που θα εκτελεστεί Περιγράφουν την προέλευση των εισόδου (αριθμό καταχωρητή, διεύθυνση ς κλπ) και τον προορισμό των εξόδου (αποτελέσματος πράξης) Το είδος της πράξης προσδιορίζει τον τύπο, την προέλευση και τον αριθμό των που συμμετέχουν στην πράξη! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 13 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 14 Εντολές: κατηγορίες λειτουργιών Βασικές κατηγορίες Αριθμητικές και λογικές πράξεις Μεταφορά Από-πρός Καταχωρητές και Μνήμη Έλεγχος ροής εκτέλεσης Διακλαδώσεις και κλήσεις ρουτινών Άλλες κατηγορίες Ειδικές εντολές συστήματος ΛΣ, ιδεατή Επεξεργασία πολλαπλών Χρήσιμο για γραφικά, σειρές χαρακτήρων, multimedia Τι συμβολίζουν τα R1, R2.. Πώς αναπαρίστανται μέσα στην εντολή Αριθμητικές εντολές και μεταφορά Αριθμητικές-λογικές πράξεις Πηγές και προορισμός add R1, R2, R3 // R3 = R1+R2 add R1 R2 R3 Μεταφορά Πηγή και προορισμός Μήκος μεταφερόμενης λέξης (ενδεχομένως) load R1, 0x7FF0 // R1 = mem[0x7ff0] load R1 0x7FF0 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 15 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 16

Εντολές διακλάδωσης Διακλάδωση Με ή χωρίς συνθήκη bne R1, R2, +8 // branch if not R1==R2 Σε απόλυτη διεύθυνση jump 0xFF97DE00 Σχετικά ως προς την τρέχουσα θέση (offset) jump +130 // offset = +130 Ο παραγόμενος κώδικας μπορεί να τοποθετηθεί οπουδήποτε στη bne R1 R2 +8 48 44 40 Η στοίβα (stack) διεύθυνση ς 48 44 40 SP (=36) 36 32 A B SP SP (=32) (=28) push A, push B pop B 48 44 40 36 Η ΚΜΕ παρέχει ειδικό καταχωρητή (stack pointer SP) και εντολές push και pop Η στοίβα δεν είναι ειδική αλλά ένα εναλλακτικό μοντέλο προσπέλασης της κανονικής ς Αποθήκευση διεύθυνσης επιστροφής από συναρτήσεις Αποθήκευση τοπικών μεταβλητών δομημένων γλωσσών A Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 17 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 18 Εντολές διακλάδωσης (2) Προέλευση και αποθήκευση Κλήση συνάρτησης (call) Αποθήκευση της επόμενης διεύθυνσης εκτέλεσης (καταχωρητή PC) στη στοίβα (push) Μετάβαση στη διεύθυνση της συνάρτησης και επιστροφή (return) Χρήση αποθηκευμένης τιμής από στοίβα (pop) Τοποθετείται στον καταχωρητή PC Η εκτέλεση επιστρέφει στην επόμενη εντολή μετά το call αποθήκευση αποτελεσμάτων μιας πράξης Operand addressing Εξαρτάται από την αρχιτεκτονική του επεξεργαστή Στους πρώτους επεξεργαστές Stack (σωρός-στοίβα) Accumulator (συσσωρευτής) Μεταγενέστεροι υπολογιστές Δεδομένα από Καταχωρητές Μνήμη Δεδομένα από Καταχωρητές μόνο (load-store) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 19 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 20

Αρχιτεκτονική σωρού (stack) Αρχιτεκτονική συσσωρευτή (accumulator) TOS (top of stack) push A push B add pop A accumulator (A) add X (A = A + X) Οι πηγές προσδιορίζονται έμμεσα Δεν περιγράφονται στην εντολή! 0-address architecture Δημοφιλές σχήμα κατά τη δεκαετία του 60 Δύσκολη προσπέλαση σωρού, απαιτούνται πολλαπλές αντιμεταθέσεις και αντιγραφές Το σχήμα επιζεί στην αρχιτεκτονική της Java VM Μια πηγή και ταυτόχρονα θέση αποθήκευσης του αποτελέσματος είναι πάντα ο συσσωρευτής 1-address architecture Αρχιτεκτονική των πρώτων υπολογιστών! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 21 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 22 Αρχιτεκτονικές με καταχωρητές (registers) Αρχιτεκτονικές με καταχωρητές (registers) καταχωρητές add R2, R1,mem(100) (R2 = R1 + mem[100]) καταχωρητές add R1, R2,R3 (R1 = R2 + R3)! Καταχωρητές: προσωρινές θέσεις αποθήκευσης αποτελεσμάτων, η γενίκευση της ιδέας του συσσωρευτή. Memory-register Οποιαδήποτε εντολή μπορεί να προσπελάσει τη Όμως: Πολλαπλές προσπελάσεις ς Λήψη εντολής Λήψη εντολής Πολύπλοκη εκτέλεση εντολής σε στάδια Συνωστισμός στον δίαυλο επικοινωνίας με Είναι επιθυμητός ένα πολύ μεγάλος αριθμός καταχωρητών Register-register (load-store) Μόνο εντολές load-store μπορούν να προσπελάσουν τη Η αρχιτεκτονική των σύγχρονων επεξεργαστών Οι καταχωρητές προσπελαύνονται πολύ γρήγορα Χρειάζονται λιγότερα bits για να επιλεγούν Οι μεταγλωττιστές αναθέτουν μεταβλητές σε καταχωρητές Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 23 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 24

Μέθοδοι προσπέλασης ς Μέθοδοι προσπέλασης ς ς Τουλάχιστον κάποιες εντολές προσπελαύνουν τη για ανάγνωση ή εγγραφή Πώς σχηματίζεται η διεύθυνση προσπέλασης Η γενική ιδέα: υποβοήθηση του λογισμικού Διαφορετικός σχηματισμός διεύθυνσης για Τοπικές μεταβλητές Δείκτες (έμμεση προσπέλαση) Στατικά δεδομένα Διάσχιση πινάκων (Σταθερές τιμές) Υποστήριξη ανάλογα με αρχιτεκτονική ς Πώς κωδικοποιούνται οι μέθοδοι προσπέλασης ς μέσα στην εντολή Στο σχηματισμό της διεύθυνσης ς μπορούν να συμμετέχουν: Απόλυτες τιμές διεύθυνσης Καταχωρητές πιθανή Σταθερές τιμές μετατόπισης (offsets) χρήση displacement register indirect indexed direct memory indirect auto-increment scaled mem[offs+reg] mem[reg] mem[reg1+reg2] mem[addr] mem[mem[reg]] mem[reg++] mem[offs+reg1+reg2*d] τοπικές δείκτες πίνακες στατικές *δείκτες πίνακες πίνακες Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 25 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 26 Η εξέλιξη της αρχιτεκτονικής Η εξέλιξη της αρχιτεκτονικής ς Εξέλιξη αρχιτεκτονικής Οι πρώτοι υπολογιστές (.. - 60) Αρχιτεκτονική συσσωρευτή και αργότερα σωρού Ικανοποιητική λύση λόγω της απλής τεχνολογίας των μεταγλωττιστών Πολύπλοκες αρχιτεκτονικές ( 70 -..) Ενσωμάτωση σύνθετων μορφών και μεθόδων προσπέλασης ς Προσπάθεια υποστήριξης υψηλών γλωσσών προγραμματισμού μείωσης κόστους λογισμικού Πολλά χαρακτηριστικά μένουν αχρησιμοποίητα! Complex Instruction Set Computers (CISC) ς Εξέλιξη αρχιτεκτονικής Reduced Instruction Set Computers (RISC) ( 80 - ) Απλούστερες και φθηνότερες load-store αρχιτεκτονικές με σταθερό μήκος Μεγαλύτερη απόδοση ταχύτερη εκτέλεση Ευνοείται από την αφθονία υλικού χαμηλού κόστους και την προηγμένη τεχνολογία των μεταγλωττιστών Ακόμα και ο μοναδικός επιζών επεξεργαστής με εντολές CISC (αρχιτεκτονική x86), μεταφράζει εσωτερικά σε εντολές RISC Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 27 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 28