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



Σχετικά έγγραφα
ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

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

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

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

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 1 ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

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

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

Σημειώσεις : Χρήστος Μουρατίδης. Κάντε κλικ για έναρξη

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 5 ο Οργάνωση Υπολογιστών. Δρ.

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

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

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

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

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

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

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

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

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

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

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

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

Transcript:

ΚΕΦΑΛΑΙΟ 2: Χειρισμός Δεδομένων 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράμματος 2.4 Αριθμητικές και λογικές εντολές 2.5 Επικοινωνία με άλλες συσκευές 2.6 Άλλες αρχιτεκτονικές Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1

Η CPU και η κύρια μνήμη συνδέονται μέσω ενός διαύλου ALU Αποθηκεύουμε προγράμματα και δεδομένα 2

Αρχιτεκτονική Υπολογιστών Κεντρική μονάδα επεξεργασίας (CPU) ή επεξεργαστής είναι πακεταρισμένη σε μικρά επίπεδα τετράγωνα (5cm x5cm) H Κεντρική μονάδα επεξεργασίας περιέχει: 1. την αριθμητική και λογική μονάδα (Arithmetic Logical Unit, ALU): αποτελείται από κυκλώματα για εκτέλεση πράξεων στα δεδομένα (πρόσθεση, αφαίρεση κλπ) 2. τη μονάδα ελέγχου (control unit): ελέγχει και συντονίζει τις ενέργειες του υπολογιστή 3. τους καταχωρητές (registers): για προσωρινή αποθήκευση δεδομένων στην CPU Γενικής χρήσης (general-purpose), ειδικής χρήσης (special-purpose) Για να εκτελεστεί μια πράξη με δεδομένα αποθηκευμένα στην κύρια μνήμη, η μονάδα ελέγχου πρέπει να τα μεταφέρει από τη μνήμη στους καταχωρητές γενικής χρήσης Η ALU κάνει τις πράξεις, και μεταφέρει το αποτέλεσμα σε έναν άλλο καταχωρητή γενικής χρήσης 3

Αρχιτεκτονική Υπολογιστών (2) 4. την «κρυφή» ή λανθάνουσα μνήμη (cache memory): μνήμη που βρίσκεται μέσα στην CPU Αρκετές εκατοντάδες KB Πολύ υψηλής ταχύτητας Η μηχανή κρατάει στην cache αντίγραφο του τμήματος της κύριας μνήμης που χρησιμοποιείται Αντί να γίνεται επικοινωνία καταχωρητών και κύριας μνήμης, γίνεται επικοινωνία καταχωρητών με την cache Αποτέλεσμα: πιο γρήγορη εκτέλεση εντολών O δίαυλος (bus), συνδέει την CPU με την κύρια μνήμη. Η Μητρική κάρτα (motherboard) περιλαμβάνει όλα τα παραπάνω, και άλλα. 4

3 είδη αποθηκευτικού χώρου Μνήμη cache Κύρια μνήμη (main memory) Σκληρός δίσκος (HD) Σε ταχύτητα ανάκτησης: HD < main memory < cache Σε μέγεθος: cache < main memory < HD 5

Πρόβλημα Θέλουμε να ελαχιστοποιήσουμε το συνολικό χρόνο ανάκτησης δεδομένων Έχουμε 10 GΒ δεδομένων Πως θα τα αναθέσουμε στην cache (500KB), main memory (1GB), HD (500GB); Χρόνοι ανάκτησης: HD: 5 milli-sec MM: 50 nano-sec Cache: 500pico-sec 6

Η έννοια του αποθηκευμένου προγράμματος Stored-program concept Ένα πρόγραμμα είναι απλώς ένας ιδιαίτερος τύπος δεδομένων Ένα πρόγραμμα μπορεί να αποθηκευτεί στην κύρια μνήμη Μία μηχανή γενικής χρήσεως μπορεί να τρέξει πολλά διαφορετικά προγράμματα Η CPU ανακτά σειριακά τις εντολές του προγράμματος από τη μνήμη, τις αποκωδικοποιεί (καταλαβαίνει) και τις εκτελεί 7

Γλώσσα μηχανής: ορισμοί Γλώσσα μηχανής είναι το σύνολο όλων των εντολών μαζί με ένα σύστημα κωδικοποίησης (που κάνει τις εντολές αναγνωρίσιμες) Εντολή μηχανής είναι μία εντολή κωδικοποιημένη ως ακολουθία bit που αναγνωρίζεται απευθείας από τη CPU Χρειάζεται ένα σχετικά μικρό σύνολο εντολών που να μπορεί να αναγνωρίζει η CPU 8

Φιλοσοφίες σχεδιασμού της CPU Υπολογιστής περιορισμένου συνόλου εντολών (Reduced Instruction-set computer, RISC): Εκτέλεση ελάχιστου συνόλου από εντολές μηχανής, γρήγορη και αποδοτική μηχανή. Παραδείγματα: PowerPC, IBM και Motorola Υπολογιστής σύνθετου συνόλου εντολών (Complex Instruction-set computer, CISC): Μεγάλο πλήθος σύνθετων εντολών κάνει πιο εύκολο τον προγραμματισμό Παραδείγματα: Pentium της Intel Αρχικά επικράτησε η RISC, η μείωση κόστους οδήγησε σε εξάπλωση της CISC CISC: υψηλή κατανάλωση ισχύος RISC: δημοφιλής σε digital TVs, κινητά, GPS, 9

Ομάδες εντολών μηχανής Ομάδα εντολών μεταφοράς δεδομένων (data transfer): αντιγράφει δεδομένα μεταξύ CPU και κύριας μνήμης. LOAD: αντιγράφει δεδομένα από την μνήμη σε έναν καταχωρητή γενικής χρήσης STORE: αντιγράφει δεδομένα από έναν καταχωρητή γενικής χρήσης στη μνήμη Εντολές Ι/Ο: εντολές για επικοινωνία με μέρη του υπολογιστή εκτός CPU και κύριας μνήμης (π.χ. Σκληρός δίσκος) Αριθμητική και λογική ομάδα εντολών (arithmetic / logical): χρησιμοποιεί υπάρχουσες τιμές δεδομένων για να κάνει πράξεις και να υπολογίσει μία νέα τιμή δεδομένων 10

Ομάδες εντολών μηχανής (2) Αριθμητική και λογική ομάδα εντολών (arithmetic / logical): Αριθμητικές πράξεις (+, -, x, / ) Λογικές πράξεις: AND, OR, XOR SHIFT / ROTATE: Ολίσθηση περιεχομένων καταχωρητή Ομάδα εντολών ελέγχου (control): κατευθύνει την εκτέλεση του προγράμματος Εντολή άλματος JUMP (BRANCH): μετάβαση σε κάποια θέση μνήμης για εκτέλεση της εντολής που είναι αποθηκευμένη εκεί Υπό συνθήκη JUMP (conditional JUMP): άλμα, αν μια συνθήκη ικανοποιείται (όπως η εντολή if στην C) Unconditional JUMP 11

Επικοινωνία CPU κύριας μνήμης ALU Αποθηκεύουμε προγράμματα και δεδομένα 12

Πρόσθεση τιμών που είναι αποθηκευμένες στη μνήμη Υλοποιεί την εντολή υψηλού επιπέδου x = y + z Βήμα 1. Πάρε από τη μνήμη μία από τις τιμές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή. Βήμα 2. Πάρε από τη μνήμη την άλλη τιμή και τοποθέτησέ τη σε έναν άλλον καταχωρητή. Βήμα 3. Ενεργοποίησε το κύκλωμα της πρόσθεσης με τους καταχωρητές που χρησιμοποιήθηκαν στα Βήματα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσματος. Βήμα 4. Αποθήκευσε το αποτέλεσμα στη μνήμη. Βήμα 5. Τέλος. 13

Διαίρεση τιμών αποθηκευμένων στη μνήμη Υλοποιεί την εντολή υψηλού επιπέδου x = y z Βήμα 1. ΦΟΡΤΩΣΕ (LOAD) σε έναν καταχωρητή μία τιμή από τη μνήμη. Βήμα 2. ΦΟΡΤΩΣΕ (LOAD) σε ένα διαφορετικό καταχωρητή την άλλη τιμή από τη μνήμη. Βήμα 3. Αν η δεύτερη τιμή είναι μηδέν, ΠΗΓΑΙΝΕ (JUMP) στο Βήμα 6. Βήμα 4. Διαίρεσε το περιεχόμενο του πρώτου καταχωρητή με το δεύτερο καταχωρητή και τοποθέτησε το αποτέλεσμα σε έναν τρίτο καταχωρητή. Βήμα 5. ΑΠΟΘΗΚΕΥΣΕ (STORE) τα περιεχόμενα του τρίτου καταχωρητή στη μνήμη. Βήμα 6. ΤΕΛΟΣ (STOP). 14

H αρχιτεκτονική του Υπολογιστή Απλή δομή για διδακτικούς λόγους 256 κυψελίδες μνήμης: 0,...255 8 bits (1 byte) για περιγραφή κάθε διεύθυνσης μνήμης 8 bits (1 byte) δεδομένων ανά κυψελίδα ALU 16 καταχωρητές γενικής χρήσης 0,... 15 2 καταχωρητές ειδικής χρήσης : Program Counter (PC), Instruction Register (IR) 15

Εκτέλεση προγράμματος Ελέγχεται από δύο καταχωρητές ειδικής χρήσης: Μετρητής προγράμματος (Program Counter, PC) : περιέχει την διεύθυνση μνήμης όπου βρίσκεται η επόμενη εντολή προς εκτέλεση Καταχωρητής εντολών (Instruction Register, IR) ο οποίος δείχνει την τρέχουσα εντολή Βήματα που ελέγχονται από τη μονάδα ελέγχου: Προσκόμιση. Αποκωδικοποίηση. Εκτέλεση. 16

Τα μέρη μίας εντολής μηχανής Αποτελείται από 16 bit (2 bytes) Πεδίο κωδικού λειτουργίας (op-code) όπου η ακολουθία bit προσδιορίζει ποια από τις στοιχειώδεις λειτουργίες ζητάει η εντολή Μία λειτουργία ανά εντολή Π.χ. LOAD, STORE, JUMP, XOR, SUM, Πεδίο τελεστέων (operand) όπου η ακολουθία bit παρέχει πιο λεπτομερείς πληροφορίες σχετικά με τη λειτουργία. Το πλήθος των τελεστέων διαφέρει ανάλογα με το κωδικό λειτουργίας. Π.χ. Στο LOAD περιλαμβάνει τη θέση μνήμης από όπου θα πάρουμε τα δεδομένα και τον αριθμό του καταχωρητή όπου θα τα αντιγράψουμε Στο SUM περιλαμβάνει τους καταχωρητές των 2 όρων του αθροίσματος και τον αριθμό του καταχωρητή όπου πρέπει να καταγραφεί το άθροισμα Κ.ο.κ 17

2-18 Παράδειγμα εντολής

Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής Κωδ. Λειτ. Τελεστέος Περιγραφή 1 R X Y Φορτώνει (LOAD) τον καταχωρητή R με την ακολουθία bit που υπάρχει στο κελί μνήμης με διεύθυνση XY. 2 R X Y Φορτώνει (LOAD) τον καταχωρητή R με την ακολουθία bit XY. 3 R X Y Αποθηκεύει (STORE) την ακολουθία bit που περιέχει ο καταχωρητής R στο κελί μνήμης με διεύθυνση XY. 4 0 R S Μετακινεί (MOVE) την ακολουθία bit που περιέχει ο καταχωρητής R στον καταχωρητή S. A-19

Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής (2) Κωδ Λειτ. Τελεστέος Περιγραφή 5 R S T Προσθέτει (ADD) τις ακολουθίες bit των καταχωρητών S και T (σε μορφή συμπληρώματος ως προς δύο), και τοποθετεί το αποτέλεσμα στον καταχωρητή R. 6 R S T Προσθέτει (ADD) τις ακολουθίες bit των καταχωρητών S και T (σε μορφή κινητής υποδιαστολής), και τοποθετεί το αποτέλεσμα στον καταχωρητή R. 7 R S T Εκτελεί την πράξη OR στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσμα στον καταχωρητή R. 8 R S T Εκτελεί την πράξη AND στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσμα στον καταχωρητή R. A-20

Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής (3) Κωδ Λειτ. Τελεστέος Περιγραφή 9 R S T Εκτελεί την πράξη ΧOR στις ακολουθίες bit των καταχωρητών S και Τ και τοποθετεί το αποτέλεσμα στον καταχωρητή R. A R 0 X Περιστρέφει (rotate) την ακολουθία bit του καταχωρητή R ένα bit προς τα δεξιά Χ φορές. Το bit του άκρου χαμηλής τάξης τοποθετείται στο άκρο υψηλής τάξης. B R X Y Μεταπηδά (JUMP) στην εντολή που βρίσκεται στο κελί μνήμης ΧΥ, αν η ακολουθία bit του R είναι ίδια με την ακολουθία bit του καταχωρητή 0. Αλλιώς συνεχίζεται η κανονική ροή της εκτέλεσης. C 0 0 0 Τερματίζει (HALT) την εκτέλεση. A-21

2-22 Αποκωδικοποίηση της εντολής 35A7

Αρχιτεκτονική της μηχανής μας Έστω τώρα στην θέση Μνήμης 2-3 Load: Φόρτωσε Τον κ/τή 0000 με τα περιχόμενα της δ/νσης μνήμης 17 CPU Register 0 Register 1 Program counter 00000100 Instruction register 0001 0000 00010001 00010011 0 1 2 3 4 17 Μνήμη 00010011 1 B 1 B Εντολές = 2 Βytes, άρα αρχίζουν σε ζυγές θέσεις μνήμης δεδομένα = 1 Βyte, οπουδήποτε στη μνήμη 23

Κωδικοποιημένες Εντολές Παράδειγμα προγράμματος Ερμηνεία Βήμα 1. Πάρε από τη μνήμη μία από τις τιμές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή. Βήμα 2. Πάρε από τη μνήμη την άλλη τιμή και τοποθέτησέ τη σε έναν άλλον καταχωρητή. Βήμα 3. Ενεργοποίησε το κύκλωμα της πρόσθεσης με τους καταχωρητές που χρησιμοποιήθηκαν στα Βήματα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσματος. Βήμα 4. Αποθήκευσε το αποτέλεσμα στη μνήμη. Βήμα 5. Τέλος 1 5 6 C Φόρτωσε στον καταχωρητη 5 την ακολουθία bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6C 1 6 6 D Φόρτωσε στον καταχωρητη 6 την ακολουθία bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6D 5 0 5 6 Πρόσθεσε τα περιεχόμενα των καταχωρητών 5 και 6 (με δεδομένο ότι βρίσκονται σε μορφή συμπληρώματος ως προς δύο), και αποθήκευσε το αποτέλεσμα στον καταχωρητή 0 3 0 6 E Αποθήκευσε τα περιεχόμενα του καταχωρητή 0 στο κελί μνήμης με διεύθυνση 6Ε C 0 0 0 Τέλος 24

Ο κύκλος μηχανής 25

Ρόλος της CPU Αν η εντολή είναι LOAD από τη μνήμη, η CPU: στέλνει κατάλληλα σήματα στη μνήμη Περιμένει μέχρι η μνήμη να στείλει τα δεδομένα Τοποθετεί τα δεδομένα στον αντίστοιχο καταχωρητή Αν η εντολή είναι αριθμητική πράξη, η CPU: Ενεργοποιεί το κατάλληλο κύκλωμα στην ALU Περιμένει να γίνει η εκτέλεση της πράξης Τοποθετεί το αποτέλεσμα της πράξης στον κατάλληλο καταχωρητή Αφού εκτελεστεί η εντολή στον instruction register, ξεκινά νέος κύκλος και η CPU φέρνει την επόμενη εντολή από την μνήμη 26

Αποκωδικοποίηση μιας άλλης εντολής JUMP JUMP: άλμα υπό συνθήκη Αν [Κατ.0] [Κατ.2], εντολή τερματίζεται, πηγαίνουμε στην επόμενη Αν [Κατ.0] = [Κατ.2], η τιμή 5 8 εγγράφεται στον Program Counter Τι σημαίνει η εντολή Β 0 5 8? 27

Παράδειγμα εκτέλεσης προγράμματος 156C Φόρτωσε στον καταχωρητη 5 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6C. 166D Φόρτωσε στον καταχωρητη 6 το σχήμα bit που βρίσκεται στο κελί μνήμης με διεύθυνση 6D. 5056 Πρόσθεσε τα περιεχόμενα των καταχωρητών 5 και 6 με δεδομένο ότι βρίσκονται σε μορφή συμπληρώματος ως προς δύο, και αποθήκευσε το αποτέλεσμα στον καταχωρητή 0. 306E Αποθήκευσε τα περιεχόμενα του καταχωρητή 0 στο κελί μνήμης με διεύθυνση 6Ε. C000 Τέλος. 28

Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής (α) 29

Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής (β) 30

Εκτέλεση του βήματος προσκόμισης (Fetch) του κύκλου μηχανής (γ) Κατόπιν, γίνεται ανάλυση της εντολής 1 5 6 C που βρίσκεται στον καταχωρητή εντολών LOAD register 5 με περιεχόμενα της διεύθυνσης μνήμης 6 C Στέλνεται σήμα στην διεύθυνση μνήμης 6 C Η διεύθυνση 6 C στέλνει τα περιεχόμενά της και αυτά φορτώνονται στον καταχωρητή 5 Νέος κύκλος Fetch CPU Κοιτάζει διεύθυνση μνήμης Α2 που υπάρχει στον Program Counter Εντολή 1 6 6 D έρχεται στον Instruction counter Program Counter = A4 Κ.ο.κ 31

Παράδειγμα περιστροφής προς τα δεξιά 32

Αριθμητικές και λογικές πράξεις Λογικές πράξεις : AND, OR, XOR. Πράξεις περιστροφής (rotation) και ολίσθησης (shift): κυκλική ολίσθηση (π.χ. Προς τα δεξιά): το δεξιότερο bit που βγαίνει εκτός byte πηγαίνει στο αριστερότερο άκρο που μένει κενό λογική ολίσθηση (π.χ. προς τα αριστερά): το δεξιότερο bit μένει κενό, μπαίνει 0 Αριστερή λογική ολίσθηση κατά 1, ισοδυναμεί με πολ/σμό επί 2) Αριθμητικές πράξεις: πρόσθεση, αφαίρεση, πολ/σμός, διαίρεση. Αλλάζουν ανάλογα με το αν γίνεται για ακεραίους (π.χ. Με αναπαράσταση συμπληρώματος ως προς 2) ή για floating-point Πολ/σμός και διαίρεση προκύπτουν με επαναλαμβανόμενες προσθέσεις και αφαιρέσεις αντίστοιχα 33

Επικοινωνία με άλλες συσκευές Ελεγκτής (controller): Μια ενδιάμεση συσκευή που χειρίζεται την επικοινωνία μεταξύ του υπολογιστή και μιας άλλης συσκευής Εξειδικευμένοι ελεγκτές για κάθε τύπο συσκευής Ελεγκτές γενικής χρήσης (USB και FireWire): χειρισμός διαφορετικών ειδών συσκευών (ποντίκια, εκτυπωτές, σαρωτές, εξωτερικοί σκληροί κλπ) Θύρα (port): Το σημείο στο οποίο συνδέεται μια συσκευή με τον υπολογιστή 34

Ελεγκτές συνδεδεμένοι στο δίαυλο (bus) μιας μηχανής 35

Είσοδος/Έξοδος αντιστοιχισμένη στην μνήμη Ε/Ε αντιστοιχισμένη στη μνήμη (Memory-mapped Ιnput/Output): Η CPU (ΚΜΕ) επικοινωνεί με τις περιφερειακές συσκευές σαν να ήταν κελιά μνήμης Σε κάθε συσκευή I/O αντιστοιχίζεται μια διεύθυνση, διαφορετική από αυτές της μνήμης Μέσω του διαύλου, η ΚΜΕ επικοινωνεί με εντολές LOAD, STORE με τον αντίστοιχο ελεγκτή της περιφερειακής συσκευής Μπορεί να υπάρχουν διαφορετικές εντολές στο ρεπερτόριο εντολών για επικοινωνία με διαφορετικές συσκευές 36

Επικοινωνία με Άλλες Συσκευές (2) Άμεση προσπέλαση μνήμης (Direct Memory Access, DMA): Προσπέλαση της κύριας μνήμης από έναν ελεγκτή μέσω του διαύλου Όταν η CPU δεν χρησιμοποιεί τον δίαυλο και αυτός είναι ελεύθερος Π.χ. Αν η CPU πρέπει να μεταφέρει δεδομένα από τον σκληρό δίσκο στην μνήμη: Η CPU στέλνει τη σχετική εντολή στον ελεγκτή του σκληρού δίσκου. Μετά συνεχίζει με κάποια άλλη λειτουργία, ενώ ο ελεγκτής μεταφέρει τα δεδομένα απευθείας στην μνήμη (DMA) Οι υπολογιστικοί πόροι της CPU δεν ξοδεύονται κατά τη διάρκεια της (αργής) μεταφοράς δεδομένων 37

Επικοινωνία με Άλλες Συσκευές (3) Συμφόρηση Von Neumann: Η ανεπαρκής ταχύτητα διαύλου παρακωλύει την απόδοση Ο δίαυλος είναι ένα κοινό μέσο που χρησιμοποιείται για επικοινωνία CPU-μνήμης, CPU-ελεγκτών, ελεγκτών-μνήμης Αρχιτεκτονική Von Neumann: η CPU φέρνει τις εντολές από την μνήμη μέσω του διαύλου Χειραψία (handshake): Η διαδικασία συντονισμού της μεταφοράς δεδομένων μεταξύ των διαφόρων στοιχείων με διαδοχική ανταλλαγή πληροφορίας 38

Επικοινωνία με Άλλες Συσκευές (4) Παράλληλη επικοινωνία: Πολλές διαδρομές επικοινωνίας μεταφέρουν bits ταυτόχρονα Σειριακή επικοινωνία: Τα bits μεταφέρονται το ένα μετά το άλλο μέσω μιας μοναδικής διαδρομής επικοινωνίας. Π.χ. USB, FireWire, Ethernet Σειριακή επικοινωνία σε μακρινές αποστάσεις: Mo-dem (modulator-demodulator): Μετατροπή των bits σε τόνους (ακουστικές συχνότητες), μεταφορά τους πάνω από καλώδιο, επαναμετατροπή τόνων σε bits στον προορισμό Digital Subscriber Line (DSL) 39

Ρυθμοί Επικοινωνίας Ταχύτητα μεταφοράς πληροφορίας (μεταξύ στοιχείων εντός του ίδιου υπολογιστή, ή μεταξύ διαφορετικών υπολογιστών) Μονάδα πληροφορίας: bit Μονάδες μέτρησης Bps: bits ανά δευτερόλεπτο Kbps: Kilo-bps (1,000 bps) Mbps: Mega-bps (1,000,000 bps) Gbps: Giga-bps (1,000,000,000 bps) Εύρος ζώνης (bandwidth): Μέγιστη διαθέσιμη ταχύτητα Σχετίζεται με τη φέρουσα συχνότητα (carrier frequency) και με το πλήθος συχνοτήτων του τηλεπικοινωνιακού διαύλου Δίκτυα ευρείας ζώνης (broadband) 40

Άλλες αρχιτεκτονικές Διεκπεραιωτική ικανότητα ή ρυθμοαπόδοση (throughput): συνολικό ποσό εργασίας που μπορεί να εκτελέσει ένας υπολογιστής σε ένα συγκεκριμένο χρονικό διάστημα Ή, ρυθμός διεκπεραίωσης (αριθμός εργασιών που διεκπεραιώνονται ανά μονάδα χρόνου), π.χ. Εργασίες / sec Τεχνολογίες για αύξηση της διεκπεραιωτικής ικανότητας: βασίζονται στον παραλληλισμό Διαφορετικοί βαθμοί παραλληλισμού σε επίπεδο εντολής: διοχέτευση (pipelining): αλληλοεπικάλυψη βημάτων του κύκλου μηχανής (π.χ. ενώ εκτελείται μια εντολή Α, η επόμενη εντολή Β μεταφέρεται από την μνήμη προς εκτέλεση) παράλληλη εκτέλεση ολόκληρων νημάτων (threads) = τμημάτων ενός προγράμματος που μπορούν να εκτελεστούν παράλληλα (είναι ανεξάρτητα) 41

Διοχέτευση Διοχέτευση (pipelining)= αλληλοεπικάλυψη βημάτων του κύκλου μηχανής Βασική διοχέτευση 5 βημάτων σε μια μηχανή τύπου RISC IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back Στον 4 ο κύκλο, η πρώτη εντολή είναι στο στάδιο MEM, και η τελευταία δεν έχει μπει στο pipeline 42

Παραλληλισμός σε επίπεδο νημάτων (thread) Σε διαφορετική κλίμακα: Ένας διακομιστής μπορεί να εξυπηρετεί κάθε πελάτη με διαφορετικό νήμα (π.χ. Web server, database server) Ένα εξάρτημα στον υπολογιστή μπορεί να κάνει υπολογισμούς AI, γραφικά και φυσική σε 3 παράλληλα threads Πολυ-πύρηνες (Multi-core) αρχιτεκτονικές: χρησιμοποιούν εκτενώς παραλληλισμό σε επίπεδο νημάτων 43

Πολυεπεξεργαστές Νέα τεχνολογία: Πολυ-πύρηνοι μικροεπεξεργαστές (multi-core microprocessors) Περισσότεροι του ενός επεξεργαστές ανά τσιπ Απαιτεί ρητό παράλληλο προγραμματισμό (explicitly parallel programming) Το υλικό εκτελεί πολλές εντολές ταυτόχρονα Χρησιμοποιούνται εκτενώς τα νήματα Μεγάλες δυσκολίες στον προγραμματισμό multi-core Προγραμματισμός (scheduling) για μέγιστη απόδοση Εξισορρόπηση φορτίου (load balancing) μεταξύ των επεξεργαστών Βελτιστοποίηση επικοινωνίας (communication) και συγχρονισμού (synchronization) 44

Μονο-πύρηνος (single-core) υπολογιστής Τα επόμενα slides απο http://www-bcf.usc.edu/~jbarbic/multi-core-15213-sp07.ppt 45

Πολυ-πύρηνες αρχιτεκτονικές Core 1 Core 2 Core 3 Core 4 Σημ: Όλοι οι πυρήνες μοιράζονται την ίδια μνήμη Multi-core CPU chip 46

Πολυ-πύρηνοι υπολογιστές Δύσκολο τεχνολογικά να αυξηθεί περαιτέρω η συχνότητα του ρολογιού Το ρολόι (clock) είναι ένας ταλαντωτής παράγει παλμούς με συγκεκριμένη συχνότητα, π.χ. 3.6GHz 1 Hz = 1 κύκλος / δευτερόλεπτο Συντονίζει τις εργασίες που επιτελούνται στον υπολογιστή Προβλήματα υπερθέρμανσης καθώς αυξάνεται η συχνότητα του ρολογιού Πολλές νέες εφαρμογές είναι εκ κατασκευής πολλαπλών νημάτων (multi-threaded) Γενική τάση στην αρχιτεκτονική υπολογιστών (στροφή προς περισσότερο παραλληλισμό) 47

Παράλληλες αρχιτεκτονικές Παράλληλη επεξεργασία: ταυτόχρονη χρήση πολλών επεξεργαστών SISD: Καμία παράλληλη επεξεργασία SIMD: Ίδια ακολουθία εντολών, διαφορετικά σύνολα δεδομένων (π.χ. Μοντέρνες κάρτες γραφικών) Κάθε επεξεργαστης εκτελεί την ίδια εργασία με διαφορετικό μέρος των δεδομένων MIMD: Διαφορετικές ακολουθίες εντολών, διαφορετικά σύνολα δεδομένων (multi-core) Κάθε επεξεργαστής εκτελεί ανεξάρτητες και διαφορετικές εργασίες SI: single instruction MI: multiple instruction SD: single data MD: multiple data 48