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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κύρια. Κεντρική µονάδα επεξεργασίας. Αριθµητική/λογική µονάδα. Μονάδα ελέγχου. Καταχωρητές. Δίαυλος

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

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

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

Αρχιτεκτονική Μνήμης

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

Κεφάλαιο 4. Ο επεξεργαστής. Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση

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

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

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

3. Πρόσθεση Πολλαπλασιασμός 4. Πρόσθεση στο πρότυπο ΙΕΕΕ Πολλαπλασιασμός στο πρότυπο ΙΕΕΕ

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

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

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

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

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

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

Transcript:

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

Βασικά δομικά στοιχεία υπολογιστή ALU Κρυφή μνήμη (Cache) Αποθηκεύουμε προγράμματα και δεδομένα 2

Αρχιτεκτονική Υπολογιστών Κεντρική μονάδα επεξεργασίας (CPU) ή επεξεργαστής: πακεταρισμένη σε μικρά επίπεδα τετράγωνα chip (5cm x5cm) H Κεντρική μονάδα επεξεργασίας περιέχει: 1. αριθμητική και λογική μονάδα (Arithmetic Logical Unit, ALU): αποτελείται από κυκλώματα για εκτέλεση πράξεων στα δεδομένα (πρόσθεση, αφαίρεση κλπ) 2. μονάδα ελέγχου (control unit): ελέγχει και συντονίζει τις ενέργειες της CPU 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 κύριας μνήμης ALU Αποθηκεύουμε προγράμματα και δεδομένα 9

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

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

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

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

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

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

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

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

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

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

Παράδειγμα εντολής 20

Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής Κωδ. Λειτ. Τελεστέος Περιγραφή 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- 21

Παράρτημα Γ: Μια Απλή Γλώσσα Μηχανής (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- 22

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

2-24 Αποκωδικοποίηση της εντολής 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 25

Παράδειγμα προγράμματος σε γλώσσα μηχανής Κωδικοποιημένες Εντολές Ερμηνεία Βήμα 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 Τέλος 26

Ο κύκλος εκτέλεσης μιας εντολής 27

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

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

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

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

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

Εκτέλεση του βήματος προσκόμισης (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 Κ.ο.κ 33

Ελεγκτές συνδεδεμένοι στο δίαυλο (bus) Ελεγκτής (controller): Eνδιάμεση συσκευή που χειρίζεται την επικοινωνία μεταξύ υπολογιστή και μιας άλλης συσκευής 34

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

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

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

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

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

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

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

Πολυεπεξεργαστές Πολυ- πύρηνοι μικροεπεξεργαστές (multi- core microprocessors) Περισσότεροι του ενός επεξεργαστές ανά τσιπ Απαιτείται ρητός παράλληλος προγραμματισμός (explicit parallel programming) Το υλικό εκτελεί πολλές εντολές ταυτόχρονα Χρησιμοποιούνται εκτενώς τα νήματα Ο προγραμματισμός multi- core είναι δύσκολος Προγραμματισμός (scheduling) για μέγιστη απόδοση Εξισορρόπηση φορτίου (load balancing) μεταξύ των επεξεργαστών Βελτιστοποίηση επικοινωνίας (communication), συγχρονισμού (synchronization) Δύσκολο τεχνολογικά να αυξηθεί περαιτέρω η συχνότητα του ρολογιού Ρολόι (clock): ταλαντωτής που παράγει παλμούς με συγκεκριμένη συχνότητα, π.χ. 3.6GHz 1 Hz = 1 κύκλος / δευτερόλεπτο Συντονίζει τις εργασίες που επιτελούνται στη CPU Yπερθέρμανση καθώς αυξάνεται η συχνότητα του ρολογιού 42

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

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