ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Ι ΟΡΓΑΝΩΣΗ ΚΕΝΤΡΙΚΗΣ ΜΟΝΑΔΑΣ ΕΠΕΞΕΡΓΑΣΙΑΣ

Σχετικά έγγραφα
Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

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

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

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

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

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

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

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

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

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

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

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

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

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

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

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

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

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

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

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

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

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

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

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

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

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

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

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

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

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

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

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

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

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

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

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

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

Πολυπύρηνοι επεξεργαστές Multicore processors

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

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

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

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

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

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

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

Βασικές Έννοιες της Πληροφορικής

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

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

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

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

Κεφάλαιο 7. Αρχιτεκτονική υπολογιστών βασικές έννοιες

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

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

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

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

Παραλληλισµός Εντολών (Pipelining)

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32

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

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

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

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

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

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

Transcript:

ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Ι Διάλεξη 2 ΟΡΓΑΝΩΣΗ ΚΕΝΤΡΙΚΗΣ ΜΟΝΑΔΑΣ ΕΠΕΞΕΡΓΑΣΙΑΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που αποτελεί και το βασικό εγχειρίδιο αναφοράς. Βιβλιογραφία: Οργάνωση & Αρχιτεκτονική Υπολογιστών, W. Stallings, 8 η έκδ., Τζιόλα, 2012.

Στόχοι Η διάλεξη αυτή έχει ως στόχο να εισάγει τον σπουδαστή στις βασικές έννοιες της οργάνωσης της κεντρικής μονάδας επεξεργασίας ενός υπολογιστικού συστήματος, και ειδικότερα: να γνωρίσει τις βασικές εσωτερικές υπομονάδες του επεξεργαστή και να είναι σε θέση να εξηγήσει την λειτουργία τους να κατανοήσει τη λειτουργία και το ρόλο τους στο σύνολό τους να γνωρίσει τον τρόπο εκτέλεσης των εντολών και να είναι σε θέση να περιγράψει τον κύκλο ανάκλησης και εκτέλεσης εντολών να γνωρίσει τις αρχές σχεδιασμού μικροεπεξεργαστών 2

Βασικές έννοιες Λογισμικό (software) - Λειτουργικά συστήματα - Εφαρμογές Υλικό (hardware) Πληροφοριακά Δεδομένα Ανθρώπινο Πρόβλημα Λογισμικό (Software) Υλικό (Hardware) Μεθοδολογίες επεξεργασίας/επίλυσης - Αλγόριθμοι - Τεχνητή νοημοσύνη - Έμπειρα συστήματα Χειρισμοί Βάση των Κανόνων Λειτουργίας 3

Βασικές μονάδες Βασικές δομικές μονάδες του Η/Υ: Η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ): επεξεργάζεται τα δεδομένα και εκτελεί τις εντολές που δίνουμε στον υπολογιστή. Η Κεντρική Μνήμη (RAM): καταχωρεί και διατηρεί προσωρινά εντολές και δεδομένα. Οι Μονάδες Εισόδου/Εξόδου: μέσω των οποίων εισάγονται οι πληροφορίες στον υπολογιστή και λαμβάνονται τα αποτελέσματα. Μονάδες δευτερεύουσας αποθήκευσης Άλλες μονάδες 4

Τυπική οργάνωση Υπολογιστικού Συστήματος Eπεξεργαστ ής ΚΜΕ Βοηθητι κή Μν ήμη Οθόνη Πληκτρολόγι ο Προσαρμογέας Δι κτύου Ελεγκτής Ελεγκτής Ελεγκτής Ελεγκτής ΜΔ Μ Κύρι α Μν ήμη Κρυφή Μν ήμη Αρτ ηρί α Ει σό δου /Εξ όδου Μον άδα Δι ασύνδεσης Αρτηρί ας Μον άδα Δι ασύνδεσης Επεκτ άσει ς Αρτ ηρί α Συστήματος 5

Δίαυλος συστήματος (system bus) Συνδέει τον μικροεπεξεργαστή με τη μνήμη και τις συσκευές εισόδου/εξόδου. A D D R E S S B U S CPU (KME) Control Unit (Μονάδα ελέγχου) ALU (ΑΛΜ) Registers Καταχωρητές Main Memory (ΚεντρικήΜνήμη) Input Output Units (Μονάδες Εισόδου Εξόδου) CONTROL BUS D A T A B U S Τυπικές αρτηρίες: διευθύνσεων, δεδομένων και ελέγχου 6

7

Εύρος διαύλου (bus width) Το εύρος του διαύλου διευθύνσεων καθορίζει τη μέγιστη δυνατή ποσότητα μνήμης του συστήματος που μπορεί να προσπελαστεί. Όσο περισσότερες γραμμές διευθύνσεων (bits) έχει ένας δίαυλος, τόσο περισσότερη μνήμη μπορεί να προσπελάζει άμεσα ο μικροεπεξεργαστής, δηλ. για n γραμμές διευθύνσεων έχουμε 2 n διαφορετικές διευθύνσεις μνήμης. Το εύρος του διαύλου δεδομένων καθορίζει πόσα bit μπορούν να μεταφερθούν κάθε φορά μεταξύ των υπομονάδων του συστήματος, όπως μεταξύ της κύριας μνήμης και του επεξεργαστή (το εύρος αυτό είναι καθοριστικός παράγοντας για την συνολική απόδοση του συστήματος καθώς καθορίζει τον αριθμό των κύκλων ή το χρόνο που θα κάνει ο επεξεργαστής για να απευθυνθεί στην κύρια μνήμη για δεδομένα). Το ίδιο ισχύει, από άποψη αύξησης του μήκους (αλλά και του πλήθους) εντολών για το εύρος του διαύλου ελέγχου. Πολυπλεγμένος δίαυλος (multiplexed bus): οι γραμμές διευθύνσεων και δεδομένων είναι μαζί και εναλλάσσονται τα δεδομένα με τις διευθύνσεις. 8

1 st 32-bit CPU: Intel 32bit 80386 CPU (1986-2007) Η Intel ήταν η εταιρία που δημιούργησε τις προδιαγραφές 32-bit επεξεργαστών το 1985 (i386, x86, ΙΑ-32). Οι 32-bit επεξεργαστές, διαθέτουν 32-bit καταχωρητές που υποστηρίζουν αντίστοιχα σύνολα εντολών, και δυνατότητα προσπέλασης μέγιστης χωρητικότητας (εικονικής) μνήμης 2 32 => 4GBs. Kilo k 1 x 10 3 1,000 Mega M 1 x 10 6 1,000,000 Giga G 1 x 10 9 1,000,000,000 Tera T 1 x 10 12 1,000,000,000,000 Peta P 1 x 10 15 1,000,000,000,000,000 80386 DX, the first 32-bit CPU rated at 16 MHz, 1986-2007. Exa E 1 x 10 18 1,000,000,000,000,000,000 Σήμερα 64-bit CPUs

Παράδειγμα μικροαρχιτεκτονικής: Intel 32bit 80386 CPU (1986) 10

11

Αρχιτεκτονική υπολογιστών με μονοπύρηνους επεξεργαστές (single core computers) Single core CPU single core 12

Παράδειγμα: παραδοσιακοί δίαυλοι 16/32-bit ISA/EISA bus (1988) και PCI bus (1993) PCI Εύρος διαύλου: 64bit Συχνότητα: 66MHz 8 Bytes/κύκλο Εύρος ζώνης: 533MB/sec 13 EISA Εύρος διαύλου: 32bit Συχνότητα: 8.33MHz 4 Bytes/κύκλο Εύρος ζώνης: 33,32MB/sec

Τυπικοί δίαυλοι Ο δίαυλος συστήματος (system bus) συνδέει τη CPU με τη μνήμη RAM μέσω ενός διαύλου και ελεγκτή μνήμης αρχικά γνωστός ως Front-Side Bus (FSB)* (Intel CPUs). Ένας τυπικός υπολογιστής έχει τουλάχιστον δύο κύριους διαύλους: το δίαυλο του συστήματος (system bus), συνδέει τη CPU και τη μνήμη RAM, ένα πιο αργό δίαυλο, ο οποίος συνδέει συσκευές όπως οι σκληροί δίσκοι, κ.α., π.χ. ο PCI bus, ο οποίος συνδέεται με το σύστημα μέσω ενός ελεγκτή (controller) ή μιας γέφυρας (bridge) η οποία αποτελεί τμήμα του chipset του υπολογιστή, και λειτουργεί ως ρυθμιστής της ροής των δεδομένων από άλλους διαύλους στο δίαυλο του συστήματος. PCI Express * Αργότερα αντικαταστάθηκε από το DMI (Direct Media Interface) ή το QPI (Quick Path Interconnect), καθώς ο ελεγκτής μνήμης (Northbridge) καταργήθηκε και ενσωματώθηκε στις Intel CPUs, όπως παρομοίως έγινε και σε AMD CPUs (memory controller), κ.α..

Τυπικό chipset σύνδεσης Intel CPUs με τις μονάδες του Η/Υ Northbridge: Ελεγκτής μνήμης (MCH memory controller hub) Southbridge*: Ελεγκτής Ι/Ο (ICH I/O controller hub) *HyperTransport (HT) (AMD CPUs) Τα τελευταία χρόνια οι λειτουργίες του ελεγκτή μνήμης και γραφικών ενσωματώθηκαν στον επεξεργαστή, με απευθείας σύνδεση σε Platform Controller Hub (PCH) με DMI (Direct Media Interface), ή FDI (Flexible Display Interface) ή QPI (Quick Path Interconnect). Chipset στη μητρική Το κύκλωμα Northbridge έχει πλέον ενσωματωθεί στη CPU, ενώ το Southbridge στο PCH chipset. Super I/O**: εμπεριέχει ελεγκτές για low-bandwidth συσκευές (π.χ. πληκτρολόγιο, ποντίκι, κλπ.). **Σε αρκετές περιπτώσεις είναι ενσωματωμένο σε ένα chip με το chipset.

Παράδειγμα μητρικής Intel D850MD με Intel 850 chipset (2000) Source: Intel Desktop Board D850MD/D850MV Technical Product Specification Chipset: Intel 850 Northbridge: Intel 82850 MCH Southbridge: Intel 82801BA ICH2 PCI Connectors (slots) Video mouse, keyboard, parallel, serial, and USB connectors AGP slot Memory Controller Hub 400MHz Pentium 4 socket 478 I/O Controller Hub Firmware Hub including BIOS PCI bus RDRAM interface RAMBUS RDRAM 2 banks (4 slots), 600,800Mhz, Max 2GB Power connector Speaker Diskette connector Battery IDE drive connectors 16

Παράδειγμα: αρχιτεκτονική πλατφόρμας με Intel 32bit Pentium4 single core CPU (2003) RAM interface Εύρος ζώνης: 3.2GB/sec System bus (Frontside bus) Εύρος ζώνης: 6.4GB/sec High speed graphics bus (AGP) Εύρος ζώνης: 2.1GB/sec 17 PCI bus Εύρος ζώνης: 132MB/sec

Παράδειγμα: αρχιτεκτονική πλατφόρμας με Intel 32bit Pentium4 single core CPU (2003) 18

Παράδειγμα: αρχιτεκτονική πλατφόρμας με Intel 32bit Pentium Extreme single core CPU 2004 SPI = serial flash chip using the SPI bus (Serial Peripheral Interface) LPC: low pin count interface (basically replaced the legacy ISA bus stuff), e.g. the PS/2 type keyboard & mouse ports are connected to an LPC-type 19 chip which connects to the LPC port on the ICH.

Εύρος ζώνης (bandwidth) Το εύρος ζώνης αποτελεί το μέγιστο θεωρητικά πλήθος δεδομένων που μεταφέρονται στη μονάδα του χρόνου, π.χ. το εύρος ζώνης (6.4GB/sec) του FSB (800MHz) του προηγούμενου παραδείγματος του Pentium4, καθορίζεται από το γινόμενο των κάτωθι: του εύρους του διαύλου (data path width) 64bit (8byte), της συχνότητας λειτουργίας του (clock frequency) 200MHz τον αριθμό των μεταφορών δεδομένων σε κάθε κύκλο (transfers/cycle) 4. 8 B 200 MHz 4/cycle = 8 B 800 MHz = 6400 MB/s => 6.4GB/s Στο προηγούμενο παράδειγμα η συχνότητα είναι στα 200MHz και πραγματοποιεί 4 μεταφορές ανά κύκλο, οπότε το FSB υπολογίζεται στα 800 MT/s (megatransfers per second) το οποίο αποτελεί τον αριθμό των λειτουργιών μεταφοράς δεδομένων το δευτερόλεπτο σε ένα δίαυλο μεταφοράς δεδομένων. (MT/s) - megatransfers per second 1 MT/s = 10 6 transfers per second (GB/s) - gigabytes per second 20

1 st 64-bit CPU: AMD 64bit Opteron CPU (2003) Η AMD ήταν η εταιρία που δημιούργησε τις προδιαγραφές 64-bit επεξεργαστών το 2000 (AMD64), και αργότερα και άλλες εταιρείες όπως η Intel (Intel64). Με βάση τις προδιαγραφές (x86-64) των 64- bit επεξεργαστών, διαθέτουν 64-bit καταχωρητές που υποστηρίζουν αντίστοιχα σύνολα εντολών, με πλήθος άλλες βελτιώσεις, και υποστηρίζουν θεωρητικά τεράστιες χωρητικότητες (εικονικής) μνήμης (2 64 => 16 Exabytes). Kilo k 1 x 10 3 1,000 Mega M 1 x 10 6 1,000,000 Opteron, the first CPU to introduce the x86-64 extensions in 2003. Giga G 1 x 10 9 1,000,000,000 Tera T 1 x 10 12 1,000,000,000,000 Peta P 1 x 10 15 1,000,000,000,000,000 Exa E 1 x 10 18 1,000,000,000,000,000,000

Δομή της αρχιτεκτονικής του 64-bit AMD Opteron CPU AMD64 core: Υποστηρίζει 32-bit και 64- bit πράξεις και εξαλείφει τον περιορισμό των 4GB της μνήμης. Ενσωματώνει τον ελεγκτή μνήμης (DDR memory controller). HyperTransport: Παρέχει δυνατότητα σύνδεσης με άλλες συσκευές I/O με μέγιστο εύρος ζώνης 19.2GBs (at peak bandwidth 3 x 6.4Gbytes/s), χωρίς την υποστήριξη κάποιου chip. AMD64 core 22 Ξεχωριστές κρυφές μνήμες L1 Instruction και Data caches, η καθεμία 64 Kbytes, 2-way set associative, 64- byte cache line. L2 (Instructions & Data): 1 Mbyte, 16- way set associative.

Μικροαρχιτεκτονική του 64-bit AMD Opteron CPU (2003) 23

Αρχιτεκτονική πολυπύρηνων επεξεργαστών (multicore CPUs) Από το 2006 (Intel Core Duo, AMD Athlon 64 X2) η ανάπτυξη και οι δυνατότητες των πολυπύρηνων επεξεργαστών ξεπέρασαν αυτές των μονοπύρηνων (σήμερα οι μονοπύρηνοι επεξεργαστές χρησιμοποιούνται ακόμα σε μικροελεγκτές στα ενσωματωμένα συστήματα). Ένας πολυπύρηνος επεξεργαστής έχει δυο ή περισσότερες μονάδες επεξεργασίας (cores) οι οποίες μπορούν να εκτελέσουν παράλληλα πολλαπλές εντολές (threads) στη μονάδα του χρόνου (parallelism), δηλ. διαφορετικοί πυρήνες εκτελούν διαφορετικά νήματα (multiple instructions) σε διαφορετικά ή τα ίδια δεδομένα (multiple data) στη μνήμη (MIMD processors). 24

Τυπικοί δίαυλοι σε πολυπύρηνο επεξεργαστή Dual CPU core chip (AMD) Dual CPU core chip (Intel) Τα τελευταία χρόνια οι λειτουργίες του ελεγκτή μνήμης και γραφικών ενσωματώθηκαν στη CPU. BSB Back side bus Σύνδεση του πυρήνα με τις κρυφές μνήμες στη CPU. FSB Front side bus Σύνδεση της CPU με το σύστημα μνήμης. 25 Σε Intel CPUs το FSB αντικαταστάθηκε από το DMI (Direct Media Interface) ή το QPI (Quick Path Interconnect).

Παράδειγμα: αρχιτεκτονική πλατφόρμας με Intel 64bit Core 2 duo/quad CPU (2008) 26

Παράδειγμα: αρχιτεκτονική πλατφόρμας με Intel 64bit Core i7 CPU (2013) 27

Κυκλώματα μικροεπεξεργαστών Ακροδέκτες ελέγχου: έλεγχου διαύλου διακοπών διαιτησίας διαύλου κατάστασης λειτουργίας σημάτων συνεπεξεργαστή διάφορα Λογική διάταξη ακροδεκτών τυπικού μικροεπεξεργαστή 28

Ο επεξεργαστής Ο επεξεργαστής είναι η βασικότερη μονάδα σε ένα υπολογιστικό σύστημα, και αυτό διότι είναι η μονάδα η οποία επεξεργάζεται άμεσα ή έμμεσα σχεδόν όλα τα δεδομένα που εισάγονται ή εξάγονται από/προς το υπολογιστικό σύστημα. Αυτό που χαρακτηρίζει αυτή την μονάδα είναι η μεγάλη ταχύτητα (συχνότητα), ακρίβεια και πιστότητα με την οποία επεξεργάζεται τα δεδομένα και εκτελεί τις εντολές. Π.χ., ένας επεξεργαστής με συχνότητα λειτουργίας στα 3GHz (3000MHz, 3εκ. κύκλους το δευτερόλεπτο), σημαίνει ότι μπορεί να εκτελεί περίπου 3.000.000.000 λειτουργίες το δευτερόλεπτο (πάντα υπολείπεται αυτής της τιμής).

Βασικές μονάδες μιας τυπικής μονάδας επεξεργασίας Καταχωρητές ΑΛΜ Μονάδα Ελέγχου Μονάδες Ι/Ο Κρυφές μνήμες 30

Καταχωρητές (Registers): μονάδες ταχείας αποθήκευσης δεδομένων Αριθμητική Λογική Μονάδα (Arithmetic Logic Unit ALU): εκτελεί τις βασικές αριθμητικές και λογικές πράξεις Μονάδα ελέγχου (Control Unit CU): πραγματοποιεί τον έλεγχο και συντονισμό της λειτουργίας των εσωτερικών μονάδων της ΚΜΕ, αποκωδικοποίησης των εντολών, κλπ. Μονάδα εισόδου/εξόδου (Input/Output Unit): πραγματοποιεί την μεταφορά δεδομένων/εντολών και αποτελεσμάτων μεταξύ των μονάδων της ΚΜΕ και της μνήμης Κρυφές μνήμες (Cache): μονάδες αποθήκευσης δεδομένων και εντολών 31

Καταχωρητές Καταχωρητές γενικής χρήσης (general purpose registers): μπορούν να χρησιμοποιηθούν ως συσσωρευτές, καταχωρητές δείκτη, κλπ. π.χ. (Intel 32bit single core CPU) EDX data register Συσσωρευτές (Accumulators): μονάδες μνήμης για την αποθήκευση δεδομένων και ενδιάμεσων αποτελεσμάτων π.χ. (Intel 32bit single core CPU) EAX accumulator Απαριθμητής Προγράμματος (Program Counter ή Instruction Pointer): δείκτης στη διεύθυνση της επόμενης εντολής του προγράμματος προς εκτέλεση π.χ. (Intel 32bit single core CPU) EIP Καταχωρητής (τρέχουσας) εντολής (Instruction Register): περιέχει την τρέχουσα εντολή που εκτελείται τη δεδομένη χρονική στιγμή π.χ. (Intel 32bit single core CPU) IR 32

Καταχωρητής διεύθυνσης μνήμης (Memory address register - MAR): περιέχει τη διεύθυνση δεδομένου ή εντολής στη μνήμη Καταχωρητής δεδομένων μνήμης (Memory data register - MDR/Latch): περιέχει τα δεδομένα ή εντολές από και προς τη μνήμη Ο υπολογισμός των διευθύνσεων μνήμης μπορεί να γίνει από περισσότερες από μια μονάδες όπως είναι π.χ. (Intel 32bit single core CPU) η AGU ή ACU - address generation/computation unit, οπότε ο υπολογισμός των διευθύνσεων μπορεί να γίνεται παράλληλα με άλλες λειτουργίες της CPU). 33

MAR - δείχνει τη διεύθυνση η οποία θα προσπελαστεί για ανάγνωση/εγγραφή MDR περιέχει τα δεδομένα ή εντολές από/προς τη μνήμη 34

Καταχωρητές δείκτη (index registers): χρησιμοποιούνται στον έλεγχο των βρόχων των προγραμμάτων και στις μεθόδους προσπέλασης της μνήμης π.χ. (Intel 32bit single core CPU) ESI source index register, EDI destination index register Καταχωρητές βάσης και τμήματος (base, segment και stack registers): χρησιμοποιούνται στις μεθόδους προσπέλασης της μνήμης π.χ. (Intel 32bit single core CPU) EBX base register, EBP base pointer, CS code segment register, ESP stack pointer Καταχωρητής κατάστασης (status register ή program status word): το κάθε bit (flag) περιγράφει κάποια κατάσταση που έχει προκύψει. Status register. Negative Sign Zero Overflow Carry π.χ. (Intel 32bit single core CPU) EFLAGS eflags register 35

Παράδειγμα: οργάνωση καταχωρητών (16bit, 32bit) των επεξεργαστών x86 της Intel 36

Καταχωρητής κατάστασης FLAGS & EFLAGS (16bit & 32bit) 37

Βασικά στοιχεία σε single core επεξεργαστή Processor IP Κρυφή μνήμη εντολών Address Instruction Instruction memory Data Register # Registers Register # Register # ALU Address Κρυφή μνήμη δεδομένων Data memory Data Instruction Pointer Καταχωρητές Απαριθμητής εντολών προγράμματος Arithmetic Logic Unit Αριθμητική Λογική Μονάδα Επεξεργασίας 38

Παράδειγμα: Intel 64bit Pentium4 (Prescott) single core CPU (2004) TLB: Translation Look-aside Buffer BTB: Branch Target Buffer Χρησιμοποιείται στα predictions Trace Cache: Διατηρεί εντολές που έγιναν fetched και decoded για την αύξηση του εύρους προσκόμισης εντολών. ALU AGU: address generation unit L1 Data cache μops μικρολειτουργία (micro-operation): μια αλληλουχία εντολών σύγκρισης & διακλάδωσης 4 transfers/cycle L1 Instruction cache Instruction TLB: αποτελεί κρυφή μνήμη που διατηρεί καταχωρήσεις από τον πίνακα σελίδων στην κύρια μνήμη. Instruction Decoder: Προσκομίζει τις εντολές από την L2 cache, τις αποκωδικοποιεί σε μικρολειτουργίες (μops), για την υλοποίηση της διασωλήνωσης, και τις αποθηκεύει στην L1 μops instruction cache. Συνήθως προσκομίζει το ζητούμενο μπλοκ εντολών και το επόμενο από πριν (prefetching) γεμίζοντας μια ενδιάμεση μνήμη, για την υλοποίηση της διασωλήνωσης.

Βασικά στοιχεία σε multi core επεξεργαστή 40

Παράδειγμα: Intel 64bit Core 2 Duo CPU (2008) Προσκομίζει, αποκωδικοποιεί και αποθηκεύει Instruction cache units Instruction cache units Προσκομίζει, αποκωδικοποιεί και αποθηκεύει Μνήμη ROM με τον μικροκώδικα Μνήμη ROM με τον μικροκώδικα Σχετικά με το pipelining Σχετικά με το pipelining Data cache and Translation Look-aside Buffer units Data cache and Translation Look-aside Buffer units 41

Παράδειγμα: Intel 64bit Quad Core i7 CPU (2010) Κρυφές μνήμες εντολών και δεδομένων L1 caches Κρυφές μνήμες 2 ου επιπέδου L2 caches Κρυφή μνήμη 3 ου επιπέδου L3 cache ή last level cache (LLC). Σύνδεση με τη μνήμη 42 Σύνδεση με το IO Hub

Παράδειγμα: Απλοποιημένη οργάνωση ARM επεξεργαστή ARM: Advanced RISC Machine 43

Π.χ. το Raspberry Pi3 εμπεριέχει σε ένα SoC Broadcom BCM2837 ένα 1.2 GHz 64-bit quad-core ARM Cortex-A53 επεξεργαστή. Παράδειγμα: ARM Cortex-A53 quad core CPU (2014) ARMv8-A instruction set RISC CPU structure

45

46

Out-of-order: υλοποιεί τεχνική κατά το pipelining η οποία όταν μια εντολή περιμένει για τα δεδομένα της από τη RAM, μετά από αποτυχία της cache, προσπαθεί να εκτελεί τις ανεξάρτητες εντολές που ακολουθούν, ώστε να διατηρείται η CPU busy. Εξαρτάται από: The order in which instructions are fetched The order in which instructions are executed The order in which instructions update the contents of register and memory locations

Κύκλος προσκόμισης & εκτέλεσης εντολών (fetch-decode-execute cycle) Συνοπτική απεικόνιση: Σύνοψη: Προσκόμιση της εντολής (FETCH). Προσδιορισμός της εντολής (DECODE). Εκτέλεση της εντολής (EXECUTE). Έλεγχος για διακοπές (interrupts check) 48

Περιγραφή του κύκλου προσκόμισης & εκτέλεσης εντολών Υπολογισμός της διεύθυνσης εντολής (instruction address calculation) Καθορίζει τη διεύθυνση της επόμενης εντολής που πρόκειται να εκτελεστεί. Προσκόμιση εντολής (instruction fetch) Διαβάζει την εντολή από τη θέση μνήμης και την προσκομίζει στους καταχωρητές. Αύξηση του μετρητής προγράμματος (program counter increment) Μεταβάλλεται ο μετρητής προγράμματος ώστε να δείχνει στην επόμενη εντολή. Αποκωδικοποίηση της πράξης της εντολής (instruction decoding) Αναλύει την εντολή για να καθοριστεί ο τύπος της πράξης που θα γίνει. Υπολογισμός της διεύθυνσης του τελεστή (operand address calculation) Εάν η πράξη περιλαμβάνει αναφορά σε τελεστή προσδιορίζει τη διεύθυνσή του (indirect addressing). Προσκόμιση τελεστή (operand fetch) Προσκομίζει τον τελεστή από τη μνήμη (έμμεση προσκόμιση δεδομένων - indirection). Εκτέλεση της πράξης με τα δεδομένα (data operation/instruction execution) Εκτελεί την πράξη που υποδεικνύεται από την εντολή. Αποθήκευση τελεστή (operand store) Γράφει το αποτέλεσμα που προκύπτει στη μνήμη. Έλεγχος για διακοπή (interrupt check) Εάν δεν έχουν υπάρξει διακοπές προχωρεί στην προσκόμιση της επόμενης εντολής. Ειδάλλως, αναστέλλει την εκτέλεση του τρέχοντος προγράμματος, αποθηκεύει την κατάστασή του και ξεκινά τη ρουτίνα εξυπηρέτησης της διακοπής. 49

Σχηματική αναπαράσταση του κύκλου προσκόμισης & εκτέλεσης εντολών 50

Παραλληλισμός στην εκτέλεση εντολών Διασωλήνωση (pipelining): εκτέλεση εντολών σε επιμέρους στάδια τα οποία μπορούν να εκτελεστούν παράλληλα. Παραλληλισμός σε επίπεδο εντολής (Instruction Level Parallelism, ILP): αναφέρεται στο βαθμό στον οποίο οι εντολές ενός προγράμματος σε επίπεδο γλώσσας μηχανής (at machine instruction level) είναι δυνατόν να εκτελεστούν παράλληλα. Παραλληλισμός σε επίπεδο νήματος (Thread Level Parallelism, TLP): αναφέρεται στην κατανομή της εκτέλεσης διεργασιών και νημάτων σε διαφορετικούς πυρήνες επεξεργασίας ή επεξεργαστές. Παραλληλισμός σε επίπεδο δεδομένων (Data Level Parallelism, DLP): αναφέρεται στην κατανομή δεδομένων σε διαφορετικούς πυρήνες επεξεργασίας ή επεξεργαστές. Ταυτόχρονη πολυνημάτωση (Simultaneous MultiThreading, SMT): ταυτόχρονη εκτέλεση πολλαπλών ανεξάρτητων νημάτων στον ίδιο πυρήνα, εκμεταλλευόμενο το καθένα το χρόνο αδράνειας των άλλων. Ορίζεται ως Υπερνημάτωση Hyperthreading σε Intel CPUs, και ως CMT - Clustered Multi Threading σε AMD CPUs.

Διασωλήνωση Εντολών (pipelining) Προσέγγιση: κατά την εκτέλεση μιας εντολής (execute) υπάρχουν στιγμές που δεν προσπελαύνεται η κύρια μνήμη, οπότε ο χρόνος αυτός θα μπορούσε να χρησιμοποιηθεί για να ανακληθεί (fetch) η επόμενη εντολή παράλληλα με την εκτέλεση της τρέχουσας (προανάκληση εντολής - instruction prefetch). Ο χρόνος εκτέλεσης είναι γενικά μεγαλύτερος σε σχέση με το χρόνο ανάκλησης. Για αύξηση της απόδοσης η διασωλήνωση θα πρέπει να αποτελείται από περισσότερα στάδια. Π.χ. διασωλήνωση 5 σταδίων: 52

Παράδειγμα απλής διασωλήνωσης 4 σταδίων 4 εντολών (χωρίς διακλαδώσεις) FI Fetch Instruction Διασωλήνωση 0. Περιμένουν 4 εντολές προς εκτέλεση 1. Fetch: αντλεί την πράσινη εντολή 2. Decode: αποκωδικοποιεί την πράσινη εντολή Fetch: αντλεί την μωβ εντολή 3. Execute: εκτελεί την πράσινη εντολή Decode: αποκωδικοποιεί την μωβ εντολή Fetch: αντλεί τη μπλε εντολή 4. Write-back: γράφει τα αποτελέσματα της πράσινης Execute: εκτελεί τη μωβ εντολή Decode: αποκωδικοποιεί τη μπλε εντολή Fetch: αντλεί την κόκκινη εντολή 7. Write-back: γράφει τα αποτελέσματα της κόκκινης 8. Όλες οι εντολές έχουν τελειώσει την εκτέλεσή τους DI Decode Instruction EI Execute Instruction WO Write Operand

Παράδειγμα: κύκλος εκτέλεσης 6 σταδίων FI Fetch Instruction DI Decode Instruction CO Calculate Operands FO Fetch Operands EI Execute Instruction WO Write Operand 54

Παράδειγμα απλής διασωλήνωσης 6 σταδίων 9 εντολών (χωρίς διακλαδώσεις) FI Fetch Instruction DI Decode Instruction CO Calculate Operands FO Fetch Operands EI Execute Instruction WO Write Operand Η παραπάνω διασωλήνωση των 6 σταδίων μπορεί να μειώσει το χρόνο εκτέλεσης των 9 εντολών από 54 σε 14 χρονικές μονάδες.

Παρατηρήσεις Το διάγραμμα υποθέτει ότι κάθε εντολή περνά από όλα τα στάδια της διασωλήνωσης (αυτό δεν συμβαίνει πάντα). Το διάγραμμα υποθέτει ότι όλα τα στάδια είναι δυνατόν να εκτελεστούν παράλληλα (ούτε αυτό είναι δυνατόν να συμβαίνει πάντα). Το διάγραμμα υποθέτει ότι όλα τα στάδια έχουν την ίδια χρονική διάρκεια (αυτό δεν συμβαίνει καθώς σε διάφορα στάδια θα υπάρξει χρόνος αναμονής). Επιπρόσθετα στις παραπάνω απλουστεύσεις, οι εντολές διακλάδωσης υπό συνθήκη (διακλαδώσεις) είναι δυνατόν να ακυρώσουν ένα πλήθος από ανακλήσεις εντολών. 56

Διπλή διασωλήνωση Εφόσον μια διασωλήνωση είναι αποδοτική είναι ευνόητη η χρησιμότητα της διπλής. Μια τέτοια σχεδίαση (dual five-stage pipeline CPU) με κοινή μονάδα προσκόμισης εντολών (instruction fetch unit) δίνεται ακολούθως: Βέβαια η εκτέλεση παράλληλα δυο εντολών στις διασωληνώσεις προϋποθέτει να μην υπάρχουν conflicts στη χρήση των πόρων (π.χ. καταχωρητές), και να μην είναι εξαρτώμενες μεταξύ τους. Συνήθως επεξεργαστές RISC (Reduced Instruction Set) έχουν δυο διασωληνώσεις, όπως π.χ. ο Pentium, έχει δυο 5-σταδίων διασωληνώσεις. η βασική αναφέρεται ως U-pipeline και μπορεί να εκτελέσει οποιαδήποτε εντολή και με κινητής υποδιαστολής δεδομένα (floating-point instructions), η δεύτερη αναφέρεται ως V-pipeline, και μπορεί να εκτελέσει κυρίως μόνο απλές εντολές με ακεραίους (simple integer instructions).

Παράδειγμα Pentium με δυο 5-σταδίων διασωληνώσεις

Παράδειγμα διασωλήνωσης στον επεξεργαστή Intel 80486 Υλοποιεί μια διασωλήνωση των 5 σταδίων. 1. FETCH - Ανάκληση Από την κρυφή (cache) ή την εξωτερική μνήμη Τοποθέτηση σε buffer προανάκλησης των 16-byte (prefetch buffers) Σε κάθε φόρτωση προσκομίζονται περίπου 5 εντολές Το στάδιο της προανάκλησης λειτουργεί ανεξάρτητα από τα άλλα στάδια 2. DECODE stage1 - Πρώτο στάδιο αποκωδικοποίησης Αποκωδικοποιούνται όλες οι πληροφορίες του κώδικα λειτουργίας και του τρόπου διευθυνσιοδότησης (περιλαμβάνονται στα 3 πρώτα bytes) 3. DECODE stage 2 - Δεύτερο στάδιο αποκωδικοποίησης Μετατρέπει κάθε κώδικα λειτουργίας σε σήματα ελέγχου Υπολογίζει τους πολύπλοκους τρόπους διευθυνσιοδότησης 4. EXECUTE - Εκτέλεση Περιλαμβάνει λειτουργίες του ALU, προσπελάσεις της κρυφής μνήμης, και ενημέρωση καταχωρητών 5. WRITEBACK - Εγγραφή αποτελεσμάτων Ενημερώνει τους καταχωρητές και τις σημαίες κατάστασης που έχουν τροποποιηθεί κατά το προηγούμενο στάδιο εκτέλεσης Τα αποτελέσματα στέλνονται στην cache και στα buffers εγγραφής του διαύλου

Διακοπές (interrupts) Μηχανισμός μέσα από τον οποίο άλλες μονάδες υλικού ή λογισμικού μπορούν να διακόψουν την ομαλή σειρά εκτέλεσης των εντολών ενός προγράμματος. Δυο κατηγορίες γεγονότων μπορούν να συμβούν και να διακόψουν την εκτέλεση μιας τρέχουσας εντολής: Interrupt: δημιουργείται από σήμα του υλικού (στους INTR ακροδέκτες της CPU) Exception: δημιουργείται από το λογισμικό, κατά την εκτέλεση μιας εντολής. Κατηγορίες Προγράμματος Π.χ. από υπερχείλιση (overflow), διαίρεση με το 0 (division by zero), κ.α. Χρονισμού Παράγεται από ένα εσωτερικό χρονιστή (internal processor timer) Χρησιμοποιείται σε πολυεπεξεργασία με διακοπές (pre-emptive multitasking) I/O Από τον ελεγκτή εισόδου/εξόδου (I/O controller) Αποτυχίας υλικού Π.χ. memory parity error

Η διακοπή (interrupt) αποτελεί αλλαγή στη ροή του ελέγχου που δεν προκαλείται από το εκτελούμενο πρόγραμμα, αλλά από κάτι άλλο, συνήθως σχετικό με την είσοδο/έξοδο. Η διακοπή σταματά το εκτελούμενο πρόγραμμα και μεταφέρει τον έλεγχο σε μια διαδικασία (χειριστής διακοπών), η οποία με βάση το διάνυσμα της διακοπής εκτελεί την αντίστοιχη ρουτίνα εξυπηρέτησης της απαίτησης της διακοπής, και όταν τελειώσει, επιστρέφει τον έλεγχο (ενδεχομένως) στο πρόγραμμα που διακόπηκε, και ξεκινά η διεργασία που διακόπηκε από την ίδια ακριβώς κατάσταση (οι εσωτερικοί καταχωρητές επανέρχονται στην κατάσταση που ήταν πριν την διακοπή). Η παγίδα (trap) αποτελεί και πάλι διακοπή η οποία όμως προκαλείται από κάποια συνθήκη που εμφανίζεται στο πρόγραμμα (π.χ. η υπερχείλιση, η διαίρεση με το μηδέν, η υπερχείλιση στοίβας). Ως αποτέλεσμα η ροή ελέγχου μεταφέρεται σε καθορισμένη θέση μνήμης, στην οποία είναι φορτωμένη η διαδικασία εξυπηρέτησης της παγίδας, η οποία και ξεκινά και εκτελείται. Οι παγίδες είναι σύγχρονες με το πρόγραμμα, ενώ οι διακοπές είναι ασύγχρονες.

Διαφάνεια (transparency): όταν συμβαίνει μια διακοπή γίνονται κάποιες ενέργειες και εκτελείται κάποιος κώδικας, αλλά όταν όλα τελειώσουν, ο υπολογιστής θα πρέπει να επανέλθει στην ίδια ακριβώς κατάσταση που ήταν πριν από τη διακοπή. Ένας Η/Υ μπορεί να έχει πολλές συσκευές εισόδου/εξόδου, και πολλές από αυτές μπορεί να λειτουργούν ταυτόχρονα ακόμα και για λογαριασμό διαφορετικών χρηστών. Τότε υπάρχει η πιθανότητα, ενώ εκτελείται μια ρουτίνα διακοπής, μια δεύτερη συσκευή να θέλει να στείλει ένα δικό της σήμα διακοπής. Αυτό μπορεί να αντιμετωπιστεί με δύο τρόπους: - όλες οι ρουτίνες διακοπών να απενεργοποιούν πρώτα τις τυχόν επόμενες διακοπές, πριν ακόμα αποθηκεύσουν τους καταχωρητές (με αυτόν τον τρόπο οι διακοπές αντιμετωπίζονται με τη σειρά, αλλά έχουμε προβλήματα από τις συσκευές που δεν μπορούν να περιμένουν). - να εκχωρηθεί σε κάθε συσκευή εισόδου/εξόδου μια προτεραιότητα, υψηλή για τις συσκευές μεγάλης κρισιμότητας και χαμηλή για τις συσκευές μικρότερης κρισιμότητας.

x86 Exception and Interrupt Vector Table 63

Παράδειγμα διακοπής: Εμφάνιση γραμμής χαρακτήρων Διαδικασία εκτέλεσης: Το λογισμικό του συστήματος συλλέγει πρώτα σε μια περιοχή προσωρινής αποθήκευσης όλους τους χαρακτήρες που πρόκειται να εμφανιστούν σε κάποιο τερματικό π.χ. οθόνη. Δίνει αρχική τιμή σε μια καθολική μεταβλητή ptr ώστε να δείχνει στην αρχή της περιοχής της προσωρινής αποθήκευσης, και αποθηκεύει σε μια δεύτερη καθολική μεταβλητή count τον αριθμό των χαρακτήρων που θα εμφανιστούν. Στη συνέχεια ελέγχει εάν το τερματικό είναι έτοιμο, και εφόσον είναι, στέλνει τον πρώτο χαρακτήρα. Έτσι αφού ξεκινήσει η πράξη εισόδου/εξόδου ο επεξεργαστής είναι πλέον ελεύθερος να εκτελέσει κάποιο άλλο πρόγραμμα. 64

Ενέργειες του υλικού: 1. Ο ελεγκτής της συσκευής κάνει θετική μια γραμμή διακοπών στο δίαυλο του συστήματος για να ξεκινήσει την ακολουθία της διακοπής. 2. Μόλις η CPU είναι έτοιμη να χειριστεί τη διακοπή, κάνει θετικό ένα σήμα επιβεβαίωσης λήψης διακοπής στο δίαυλο. 3. Όταν ο ελεγκτής της συσκευής διαπιστώσει ότι το σήμα διακοπής του επιβεβαιώθηκε, τοποθετεί το διάνυσμα διακοπής (interrupt vector) στις γραμμές δεδομένων ως αναγνωριστικό της συσκευής. 4. Η CPU παίρνει το διάνυσμα διακοπής από το δίαυλο και το αποθηκεύει προσωρινά. 5. Η CPU αποθέτει στη στοίβα τα περιεχόμενα του απαριθμητή προγράμματος και του καταχωρητή κατάστασης. 6. Έπειτα η CPU καθορίζει μια νέα τιμή στον απαριθμητή του προγράμματος χρησιμοποιώντας το διάνυσμα διακοπής ως δείκτη θέσης σε έναν πίνακα στο κατώτερο μέρος της μνήμης. Αυτή η νέα τιμή δείχνει στην αρχή της ρουτίνας εξυπηρέτησης διακοπής που αντιστοιχεί στη συσκευή που προκάλεσε τη διακοπή. 65

Ενέργειες του λογισμικού: 1. Η ρουτίνα εξυπηρέτησης διακοπής αποθηκεύει (στη στοίβα ή σε ένα πίνακα του συστήματος) όλους τους καταχωρητές, ώστε να μπορούν να αποκατασταθούν αργότερα. 2. Κάθε διάνυσμα διακοπής είναι μεριζόμενο για όλες τις συσκευές ενός συγκεκριμένου τύπου, οπότε δεν είναι ακόμη γνωστό ποιο τερματικό προκάλεσε τη διακοπή. Ο αριθμός του τερματικού μπορεί να βρεθεί με την ανάγνωση κάποιου καταχωρητή συσκευής. 3. Οποιεσδήποτε άλλες πληροφορίες σχετικές με τη διακοπή (π.χ. οι κωδικοί πληροφοριών κατάστασης) μπορούν τώρα να διαβαστούν, και αν συνέβη κάποιο σφάλμα εισόδου/εξόδου, τώρα μπορεί να αντιμετωπιστεί. 4. Ενημερώνονται οι καθολικές μεταβλητές ptr (αυξάνεται κατά ένα ώστε να δείχνει στο επόμενο byte) και count (μειώνεται κατά ένα ώστε να δηλώνει ότι τα byte για έξοδο λιγόστεψαν κατά ένα). Αν η count εξακολουθεί να είναι μεγαλύτερη από 0, υπάρχουν και άλλοι χαρακτήρες για έξοδο. Ο χαρακτήρας στον οποίο δείχνει τώρα η ptr αντιγράφεται στον καταχωρητή περιοχής προσωρινής αποθήκευσης εξόδου. 5. Αν χρειάζεται, στέλνεται στην έξοδο ένας ειδικός κωδικός που ενημερώνει τη συσκευή ή τον ελεγκτή διακοπών ότι η διεκπεραίωση της διακοπής ολοκληρώθηκε. 6. Αποκαθίστανται όλοι οι αποθηκευμένοι καταχωρητές. 7. Εκτελείται η εντολή Return From Interrupt (επιστροφή από διακοπή), επαναφέροντας τη CPU στον τρόπο λειτουργίας και την κατάσταση που ήταν πριν συμβεί η διακοπή. 66

Παράδειγμα σχηματικής αναπαράστασης των διακοπών 67

Η εξέλιξη του βαθμού ολοκλήρωσης από τον πρώτο επεξεργαστή της Intel Intel 4004 (1971) Intel Core i7 quad core Skylake (2015) Τεχνολογία: 10μ Συχνότητα: 0.108MHz Έτος: 1971 Τρανζίστορ: 2.300 Δίσκος πυριτίου (wafer), πύλη (gate) και το chip nano n 1 x 10-9 0.000 000 001 micro μ 1 x 10-6 0.000 001 Τεχνολογία: 14nμ Συχνότητα: 4.8GHz Έτος: 2015 Τρανζίστορ: 1.350.000.000 68

Μονάδες μέτρησης Όνομα Σύμβολο Αριθμός atto a 1 x 10-18 0.000 000 000 000 000 001 femto f 1 x 10-15 0.000 000 000 000 001 pico p 1 x 10-12 0.000 000 000 001 nano n 1 x 10-9 0.000 000 001 micro μ 1 x 10-6 0.000 001 milli m 1 x 10-3 0.001 Kilo k 1 x 10 3 1,000 Mega M 1 x 10 6 1,000,000 Giga G 1 x 10 9 1,000,000,000 Tera T 1 x 10 12 1,000,000,000,000 Peta P 1 x 10 15 1,000,000,000,000,000 Exa E 1 x 10 18 1,000,000,000,000,000,000 69