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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασική δοµή και Λειτουργία Υπολογιστή

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

Το υλικό του υπολογιστή

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

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

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

Transcript:

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

Ο (μικρο)επεξεργαστής ; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα; (Micro)processor Ψηφιακό σύστημα που εκτελεί υπολογισμούς σε πολλαπλά βήματα Αρχικά: Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Central Processing Unit (CPU) Μέρος ενός ευρύτερου υπολογιστικού συστήματος (ή υπολογιστή ) γενικού ή ειδικού σκοπού Περιέχει σήμερα πολλαπλές υπομονάδες επεξεργασίας Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 2

Ένα τυπικό υπολογιστικό σύστημα συχνά και το σύστημα γραφικών μέσα στον επεξεργαστή οθόνη διασυνδετικός δίαυλος CPU core... CPU core > 90GB/s κρυφή μνήμη (3 ου επιπέδου) σύστημα γραφικών PCIe (x16) έως 8GB/s north bridge M-bus (mem bus) 25+ GB/s (multi-channel) DRAM Επεξεργαστής Μνήμη Συσκευές Ε/Ε ποντίκι, πληκτρολόγιο, εκτυπωτές, σαρωτές... USB έως 5Gbit/s south bridge SATA 600ΜB/s σκληροί δίσκοι, CD/DVD, δικτυακή σύνδεση έως 500ΜB/s οι ρυθμοί μεταφοράς που δίνονται είναι οι θεωρητικά μέγιστοι! Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 3

Είδη μικροεπεξεργαστών Γενικού σκοπού Οι περισσότερο γνωστοί επεξεργαστές (π.χ. για PCs) Συνεπεξεργαστές (co-processors)( Ειδικές λειτουργίες Μικροελεγκτές (microcontrollers)( Συστήματα ελέγχου Μέσα σε Systems-on-Chip Επεξεργαστικοί πυρήνες Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 4

Το μοντέλο von Neumann εντολές μνήμη μικροεπεξεργαστής δεδομένα συσκευές Ε/Ε ; Σε ποια μορφή αποθηκεύονται οι εντολές; Το πρόγραμμα εκτέλεσης, όπως και τα δεδομένα, αποθηκεύονται στη μνήμη του υπολογιστή Stored-program computer Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 5

Εκτέλεση ακολουθίας λειτουργιών υπολογιστικό σύστημα ρολόι (clock) μονάδα ελέγχου πρόγραμμα ελέγχου ; Ποιος ο ρόλος του σήματος ρολογιού; επεξεργασία δεδομένων δεδομένα εισόδου δεδομένα εξόδου Μνήμη συσκευές Ε/Ε Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 6

Εκτέλεση : ο κύκλος μηχανής Fetch: Φέρε την επόμενη εντολή προς εκτέλεση από τη μνήμη ; Τι συμβαίνει με τις εξωτερικές διακοπές (interrupts); για πάντα Decode: Αποκωδικοποίησε την εντολή (προετοίμασε τα σήματα ελέγχου και τις πηγές των δεδομένων) Execute: Εκτέλεσε την απαιτούμενη πράξη/λειτουργία Ο χρόνος εκτέλεσης είναι ο ίδιος για όλες τις εντολές; Store: Αποθήκευσε τα αποτελέσματα (εάν απαιτείται) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 7

Εκτέλεση Επόμενη εντολή προς εκτέλεση Program Counter (PC): η διεύθυνση της θέσης μνήμης όπου περιέχεται η επόμενη εντολή Σειριακή αύξηση διεύθυνσης μετά την εκτέλεση εντολής Ή μεταπήδηση σε νέα θέση μνήμης (διακλάδωση) Εκκίνηση εκτέλεσης Με την εφαρμογή τάσης ο PC παίρνει μια προκαθορισμένη τιμή BIOS Τερματισμός επανάληψης κύκλου μηχανής Συμβατικά, ποτέ! Περιπτώσεις SLEEP για μείωση κατανάλωσης ενέργειας Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 8

Αρχιτεκτονική Συνόλου Εντολών Instruction Set Architecture (ISA) Το ορατό μέρος ενός υπολογιστικού συστήματος για τον προγραμματιστή (και τον μεταγλωττιστή) Δεκαετία 60-70: συνώνυμο του όρου αρχιτεκτονική Η/Υ «η δομή ενός υπολογιστή, την οποία ο προγραμματιστής πρέπει να γνωρίζει για να γράψει ένα σωστό (χρονικά ανεξάρτητο) πρόγραμμα σε γλώσσα μηχανής για τον υπολογιστή αυτόν» (ΙΒΜ) Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 9

Η διεπαφή ISA στην ιεραρχία επιπέδων Εφαρμογές API ΛΣ & βιβλιοθήκες Αρχιτεκτονική Εντολών (ISA) Υλικό εκτέλεσης (μικροεπεξεργαστής) ; Τι ακριβώς περιγράφει η διεπαφή ISA; Μνήμη Συσκευές Ε/Ε Αρχιτεκτονική Εντολών (ISA)( Η διεπαφή υλικού-λογισμικού Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 10

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

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

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

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

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

Κατηγορίες Αριθμητικές εντολές και μεταφορά δεδομένων Αριθμητικές-λογικές πράξεις Πηγές δεδομένων και προορισμός add R1, R2, R3 // R3 = R1+R2 add R1 R2 R3 ; Τι συμβολίζουν τα R1, R2..; Πώς αναπαρίστανται μέσα στην εντολή; Μεταφορά δεδομένων Πηγή δεδομένων και προορισμός Μήκος μεταφερόμενης λέξης (ενδεχομένως) load R1, 0x7FF0 // R1 = mem[0x7ff0] load R1 0x7FF0 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 16

Εντολές διακλάδωσης Κατηγορίες Διακλάδωση Με ή χωρίς συνθήκη bne R1, R2, +8 // branch if not R1==R2 Σε απόλυτη διεύθυνση jump 0xFF97DE00 Σχετικά ως προς την τρέχουσα θέση (offset) jump +130 // offset = +130 Ο παραγόμενος κώδικας μπορεί να τοποθετηθεί οπουδήποτε στη μνήμη bne R1 R2 +8 Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 17

Κατηγορίες 48 44 40 Η στοίβα (stack) διεύθυνση μνήμης 48 44 40 SP 36 A (=36) 32 B SP SP (=32) (=28) 48 44 40 36 A push A, push B pop B Η ΚΜΕ παρέχει ειδικό καταχωρητή (stack pointer SP) και εντολές push και pop Η στοίβα δεν είναι ειδική μνήμη αλλά ένα εναλλακτικό μοντέλο προσπέλασης της κανονικής μνήμης Αποθήκευση διεύθυνσης επιστροφής από συναρτήσεις Αποθήκευση τοπικών μεταβλητών δομημένων γλωσσών Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 18

Εντολές διακλάδωσης (2) Κατηγορίες Κλήση συνάρτησης (call) Αποθήκευση της επόμενης διεύθυνσης εκτέλεσης (καταχωρητή PC) στη στοίβα (push) Μετάβαση στη διεύθυνση της συνάρτησης και επιστροφή (return) Χρήση αποθηκευμένης τιμής από στοίβα (pop) Τοποθετείται στον καταχωρητή PC Η εκτέλεση επιστρέφει στην επόμενη εντολή μετά το call Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 19

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

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

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

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

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

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

Μέθοδοι προσπέλασης μνήμης Κατηγορίες Προέλευση δεδομένων Προσπέλαση μνήμης ; Πώς κωδικοποιούνται οι μέθοδοι προσπέλασης μνήμης μέσα στην εντολή; Στο σχηματισμό της διεύθυνσης μνήμης μπορούν να συμμετέχουν: Απόλυτες τιμές διεύθυνσης Καταχωρητές Σταθερές τιμές μετατόπισης (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] πιθανή χρήση τοπικές δείκτες πίνακες στατικές *δείκτες πίνακες πίνακες Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικές Συνόλου Εντολών 26

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

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