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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

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

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

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

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

Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

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

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

Τέτοιες λειτουργίες γίνονται διαμέσου του

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

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

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

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

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

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

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

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

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

Προχωρηµένα Θέµατα Αρχιτεκτονικής

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

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

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

Transcript:

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

Αρχιτεκτονική Υπολογιστών H Κεντρική µονάδα επεξεργασίας (CPU) ή επεξεργαστής περιέχει: την αριθµητική και λογική µονάδα (ALU) τη µονάδα ελέγχου τους καταχωρητές (γενικής και ειδικής χρήσης) την «κρυφή» ή λανθάνουσα µνήµη. O δίαυλος (bus), συνδέει την CPU µε την κύρια µνήµη. Η Μητρική κάρτα (motherboard) εµπερικλείει όλα τα παραπάνω, και πολλά άλλα. 2

Η έννοια του αποθηκευµένου προγράµµατος Ένα πρόγραµµα είναι απλώς ένας ιδιαίτερος τύπος δεδοµένων. Ένα πρόγραµµα µπορεί να αποθηκευτεί στην κύρια µνήµη Μία µηχανή γενικής χρήσεως µπορεί να τρέξει πολλά διαφορετικά προγράµµατα. 3

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

Γλώσσα µηχανής: ορισµοί Γλώσσα µηχανής είναι το σύνολο όλων των εντολών µαζί µε το σύστηµα κωδικοποίησης που αναγνωρίζονται από µία υπολογιστική µηχανή. Εντολή µηχανής είναι µία εντολή κωδικοποιηµένη ως σχήµα bit που αναγνωρίζεται απευθείας από τη CPU. 5

Φιλοσοφίες σχεδιασµού της CPU Υπολογιστής περιορισµένου συνόλου εντολών (RISC): Εκτέλεση ελάχιστου συνόλου από εντολές µηχανής, γρήγορη και αποδοτική µηχανή. Παραδείγµατα: PowerPC, IBM και Motorola. Υπολογιστής σύνθετου συνόλου εντολών (CISC): Μεγάλο πλήθος σύνθετων εντολών κάνει πιο εύκολο τον προγραµµατισµό. Παραδείγµατα: Pentium της Intel. 6

Οµάδες εντολών µηχανής Οµάδα µεταφοράς δεδοµένων: αντιγράφει δεδοµένα µεταξύ CPU και κύριας µνήµης. Αριθµητική και λογική οµάδα: χρησιµοποιεί υπάρχουσες τιµές δεδοµένων για να υπολογίσει µία νέα τιµή δεδοµένων. Οµάδα ελέγχου: κατευθύνει την εκτέλεση του προγράµµατος. 7

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

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

H αρχιτεκτονική της µηχανής που περιγράφεται στο Παράρτηµα Γ ALU 10

Τα µέρη µίας εντολής µηχανής Πεδίο του κωδικού λειτουργίας όπου το σχήµα bit προσδιορίζει ποια από τις στοιχειώδεις λειτουργίες ζητάει η εντολή. Μία λειτουργία ανά εντολή. Πεδίο των τελεστέων όπου το σχήµα bit παρέχει πιο λεπτοµερείς πληροφορίες σχετικά µε τη λειτουργία. Το πλήθος των τελεστέων διαφέρει ανάλογα µε το κωδικό λειτουργίας. 11

Αρχιτεκτονική της µηχανής µας Μνήµη load Microprogram CPU Program counter 00000100 Instruction register 0 1 2 3 4 00010000 00010001 π store 0001 0000 00010001 Register 0 Register 1 00010011 17 00010011 δ Micromemory 1 B 1 B Εντολές = 2Β, άρα αρχίζουν σε ζυγές θέσεις µνήµης δεδοµένα = 1Β, οπουδήποτε στη µνήµη 12

R,S,T: registers XY: memory address d: direct i: immediate Η γλώσσα µηχανής (παράρτηµα Γ) LOADd R XY R (XY) περιεχόµενο θέσης LOADi R XY R XY µε διεύθυνση ΧΥ STORE R XY R (XY) ο αριθµός ΧΥ MOVE 0 R S R S ADDI R S T S+T R (2-s complement) ADDF R S T S+T R (κινητή υποδιαστολή) OR R S T S OR T R AND R S T S AND T R, ανάλογα για XOR... ROT R 0 X Rotate R X φορές προς τα δεξιά JUMP R XY Πηδάει στην ΧΥ εάν R=R 0 JUMPSUB XY Πηδάει για να εκτελέσει την υπορουτίνα που αρχίζει στο ΧΥ RETURN XY Γυρίζει από κλήση υπορ. ΧΥ HALT 13

H σύνθεση µίας εντολής για τη µηχανή του Παραρτήµατος Γ. STORE Διεύθυνση µνήµης Διεύθυνση καταχωρητή 14

Αποκωδικοποίηση της εντολής 35Α7 15

Μια κωδικοποιηµένη έκδοση των εντολών του Σχήµατος 2.2 Κωδικοποιηµένες Εντολές Ερµηνεία Βήµα 1. Πάρε από τη µνήµη µία από τις τιµές που πρόκειται να προστεθούν και τοποθέτησέ τη σε έναν καταχωρητή. Βήµα 2. Πάρε από τη µνήµη την άλλη τιµή και τοποθέτησέ τη σε έναν άλλον καταχωρητή. Βήµα 3. Ενεργοποίησε το κύκλωµα της πρόσθεσης µε τους καταχωρητές που χρησιµοποιήθηκαν στα Βήµατα 1 και 2 ως εισόδους και ένα διαφορετικό καταχωρητή για την αποθήκευση του αποτελέσµατος. Βήµα 4. Αποθήκευσε το αποτέλεσµα στη µνήµη. Βήµα 5. Τέλος 156C 166D Φόρτωσε στον καταχωρητη 5 το σχήµα bit που βρίσκεται στο κελί µνήµης µε διεύθυνση 6C Φόρτωσε στον καταχωρητη 6 το σχήµα bit που βρίσκεται στο κελί µνήµης µε διεύθυνση 6D 5056 Πρόσθεσε τα περιεχόµενα των καταχωρητών 5 και 6 µε δεδοµένο ότι βρίσκονται σε µορφή συµπληρώµατος ως προς δύο, και αποθήκευσε το αποτέλεσµα στον καταχωρητή 0 306E C000 Αποθήκευσε τα περιεχόµενα του καταχωρητή 0 στο κελί µνήµης µε διεύθυνση 6Ε Τέλος 16

Εκτέλεση προγράµµατος Ελέγχεται από δύο καταχωρητές ειδικής χρήσης: Μετρητής προγράµµατος που διευθυνσιοδοτεί την επόµενη εντολή. Καταχωρητής εντολών ο οποίος δείχνει την τρέχουσα εντολή. Βήµατα που ελέγχονται από τη µονάδα ελέγχου: Προσκόµιση. Αποκωδικοποίηση. Εκτέλεση. 17

Ο κύκλος µηχανής 18

Αποκωδικοποίηση της εντολής Β258 JUMP 19

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

Εκτέλεση του βήµατος προσκόµισης του κύκλου µηχανής 21

Εκτέλεση του βήµατος προσκόµισης του κύκλου µηχανής 22

Αριθµητικές και λογικές πράξεις Λογικές πράξεις : AND, OR, XOR. Πράξεις περιστροφής και ολίσθησης: κυκλική ολίσθηση, λογική ολίσθηση και αριθµητική ολίσθηση. Αριθµητικές πράξεις: πρόσθεση, αφαίρεση, πολλαπλασιασµός και διαίρεση. Συνήθως διαχωρίζουν τις εντολές για διαφορετικού τύπου δεδοµένα. 23

Περιστροφή του σχήµατος bit Α3 ένα bit προς τα δεξιά 24

Μεταβίβαση ελέγχου Η ενότητα αυτή δεν είναι στο βιβλίο Εξηγούµε πώς η CPU σταµατάει την εκτέλεση ενός υποπρογράµµατος (=διαδικασία, procedure, subprogram), συνεχίζει εκτελώντας ένα άλλο υποπρόγραµµα, και µετά επιστρέφει στην εκτέλεση αυτού που το κάλεσε Βασικό για να καταλάβουµε βασικές έννοιες του προγραµµατισµού Activation record (εγγραφή ενεργοποίησης): περιέχει όλη την πληροφορία για να υλοποιηθεί η κλήση ένος υποπρογράµµατος 25

Μεταβίβαση ελέγχου: διαδικασία(1) υποπρόγραµµα = διαδικασία = procedure = subprogram main(){ } int x,y,z; z=min(x,y); min(a, b) int a, b ; { int t ; if a<b then t=a else t=b ; return t ; } return value b a return address min main πληροφ. ελέγχου κώδικας µεταβλητές πληροφ. ελέγχου κώδικας µεταβλητές 0 100 101 102 103 190 191 192 200 204 208 activation record 26

Πως σκεφτόµαστε την οργάνωση της µνήµης (προς το παρόν) Η µνήµη είναι µια σειρά από κελλιά (µικρότερη προσπελάσιµη µονάδα) Εαν το µέγεθος των διευθύνσεων στη γλώσσα µηχανής είναι n bits, τότε το µέγεθος της µνήµης δεν µπορεί να είναι µεγαλύτερο από 2 n Ο µεταφραστής αφού διαβάσει το πρόγραµµα σε γλώσσα υψηλού επιπέδου το µεταφράζει σε γλώσσα µηχανής και γεµίζει ένα πίνακα Από τις δηλώσεις γνωρίζει το χώρο που χρειάζονται οι µεταβλητές. Από την µετάφραση των εντολών τον χώρο για τις εντολές σε γλώσσα µηχανής Δηµιουργεί ένα πίνακα που κάθε στοιχείο του = λέξη µνήµης, και τον γεµίζει µε τις εγγραφές ενεργοποίησης (activation records) των υποπρογραµµάτων και του κυρίως προγράµµατος. Η εικόνα αυτή αντιστοιχεί µε την εικόνα της µνήµης που θα είχαµε όταν τρέξει το πρόγραµµα και το έχουµε τοποθετήσει να αρχίζει από την θέση 0 στην φυσική µνήµη Κάθε «όνοµα» (µεταβλητή, υποπρόγραµµα, πίνακας,...) έχει 2 ιδιότητες: τιµή (τι θα περιέχει) και διεύθυνση (πού στην µνήµη βρίσκεται) Για υποπρογράµµατα, η διεύθυνση τους είναι το συµφωνηµένο σηµείο στο activation record του Για µεταβλητές είναι η θέση που βρίσκονται, για πίνακες είναι που αρχίζουν 27

Activation record της exp(x) Παράδειγµα (2 λέξεις/εντολή) 97 98 99 100 102 104 106 108 110 112 114 116 118 120 122 return value LOAD R0 0" LOAD R1 1" LOAD R2 98 LOAD R3 1" JUMP R2 116 SUBTR R2 R1 R2 ROTL R3 1 X return address JUMP R0 108 STORE R3 122 STORE R3 97 RETURN 99 Y Διεύθυνση της exp = 99 R0 R1 y Υπολογισµός του x = 2 = 1 2 2 2 0 1ο βήµα 2ο βήµα 1 R2 exp(x) int x; X {int y; R3 y:=1; Y while x!= 0 do { x:=x-1; y:= 2y}; return y} Μετάφραση του return y (ξέρουµε πως το η τιµή του y είναι ήδη στον R3) 28

306 307 JUMPSUB 945 308 945 946 διεύθ. 308 επιστροφής XXXX 947 XXXX 948 XXXX 959 RETURN 945 Μεταβίβαση ελέγχου: διαδικασίες(2) (υποθέτουµε 1 λέξη µνήµης / εντολή)......... Α...... var x Πρόγραµµα σε γλώσσα µηχανής: όταν τρέχει χρησιµοποιεί Στατική πληροφορία που υπάρχει από την αρχή : (άρα την ξέρει ο compiler όταν µεταφράζει το πρόγραµµα σε γλώσσα µηχανής, πχ το 945 στο jumpsub αφού ξέρει πως καλείται το συγκεκριµένο υποπρόγραµµα) Δυναµική πληροφορία που µπαίνει κατά την διάρκεια του τρεξίµατος του προγράµµατος (την τοποθετεί το πρόγραµµα at run time) δυναµική πληροφορία στατική πληροφορία Εγγραφή δραστηριότητας της διαδικασίας A αρχίζει στην διεύθυνση 945 (απλοποιηµένη περίπτωση χωρίς παραµέτρους και return value) 29

Διαδικασίες(3) 306 307 JUMPSUB 945 308...... 410 411 JUMPSUB 945 412......... χώρος για δυναµική χρήση 945 946 XXXX 947 XXXX 948 XXXX... 959 RETURN 945...... 30

Πέρασµα παραµέτρων σε διαδικασίες main program x := 5; y := 6; f;... r := 12; d := 3; f;... procedure f; {t1:= a+b; t2:= 2*t1; } main program x := 5; y := 6; z := f(x,y);... r := 12; d := 3; z := f(r,d);... procedure f(a,b); {t1:= a+b; t2:= 2*t1; return t2 } πραγµατικές παράµετροι τυπικές παράµετροι τιµή που επιστρέφεται 31

module 2 module 1 βασικό πρόγραµµα Πέρασµα παραµέτρων (2) µνήµη κώδικας µεταβλητές κώδικας µεταβλητές κώδικας µεταβλητές 945 activation record ενός module return value b a return address κώδικας της f µεταβλητές main program x := 5; y := 6; z := f(x,y);... r := 12; d := 3; z := f(r,d);... procedure f(a,b); {t1:= a+b; t2:= 2*t1; return t2 } κώδικας µηχανής x <- 5 y <- 6 x -> 945 1 y -> 945 2 jumpsub 945 z <- 945 3... r <- 12 d <- 3 r -> 945 1 d -> 945 2 jumpsub 945 z <- 945 3 t1 <- (945-1)+(945-2) t2 <- t1 * 2 t2 -> 945 3 return 945 32

Λεπτοµέρειες Τι εννοούµε µε την µνηµονική περιγραφή Μνηµονικός κώδικας... x -> 945 1 y -> 945 2 jumpsub 945 z <- 945 3... Πραγµατικός κώδικας loadd R1 100 store R1 944 loadd R1 101 store R1 943 jumpsub 945 loadd R1 945 store R1 102 Έστω πως η διευθύνσεις των x,y,z είναι 100, 101,102 Ο µεταφραστής βλέπει το f(x,y) και γνωρίζει πως το f αρχίζει στη διεύθυνση 945. Άρα πριν εκτελέσει το jumpsub πρέπει Να βάλει στη θέση 944 = 945-1 την τιµή του x και στην 943 = 945-2 το y (είναι οι θέσεις για τις παραµέτρους a,b). Να περάσει τον έλεγχο στο f καλώντας jumpsub 945 Όταν ξανααρχίσει να τρέχει, ξέρει πως το return value του f είναι έτοιµο και περιµένει στην θέση 945. Το αντιγράφει από εκεί στην θέση του z 33

Η πραγµατικότητα: λίγο ποιο πολύπλοκο Δεν χρειάζεται να περιλαµβάνεται στο activation record ο κώδικας του υποπρογράµµατος Υποστήριξη αναδροµής: δυναµική δηµιουργία activation records σε στοίβα, περιέχουν τις πληρ. ελέγχου και τις τοπικές µεταβλητές TSP Memory addresses RSP κώδικας main κώδικας proc1 Τοπικές µεταβλητές πληροφ. ελέγχου pro1 0 1 πληροφ. ελέγχου x y load R1 0 -> load R1 TSP+0 TSP RSP TSP RSP Τοπικές µεταβλητές πληροφ. ελέγχου Τοπικές µεταβλητές πληροφ. ελέγχου proc1 main 34

Επικοινωνία µε άλλες συσκευές Ελεγκτής: Μια ενδιάµεση συσκευή που χειρίζεται την επικοινωνία µεταξύ του υπολογιστή και µιας άλλης συσκευής Εξειδικευµένοι ελεγκτές για κάθε τύπο συσκευής Ελεγκτές γενικής χρήσης (USB και FireWire) Θύρα: Το σηµείο στο οποίο συνδέεται µια συσκευή µε έναν υπολογιστή Αντιστοιχισµένη στη µνήµη Ε/Ε: Η ΚΜΕ επικοινωνεί µε τις περιφερειακές συσκευές σαν να ήταν κελιά µνήµης 35

Ελεγκτές συνδεδεµένοι στο δίαυλο µιας µηχανής 36

Μια σχηµατική αναπαράσταση της αντιστοιχισµένης στη µνήµη Ε/Ε 37

Επικοινωνία µε Άλλες Συσκευές (συνέχεια) Άµεση προσπέλαση µνήµης (DMA): Προσπέλαση της κύριας µνήµης από έναν ελεγκτή µέσω του διαύλου Συµφόρηση Von Neumann: Η ανεπαρκής ταχύτητα διαύλου παρακωλύει την απόδοση Χειραψία: Η διαδικασία συντονισµού της µεταφοράς δεδοµένων µεταξύ των διαφόρων στοιχείων 38

Επικοινωνία µε Άλλες Συσκευές (συνέχεια) Παράλληλη επικοινωνία: Πολλές διαδροµές επικοινωνίας µεταφέρουν µπιτ ταυτόχρονα. Σειριακή επικοινωνία: Τα µπιτ µεταφέρονται το ένα µετά το άλλο µέσω µιας µοναδικής διαδροµής επικοινωνίας. 39

Ρυθµοί Επικοινωνίας Μονάδες µέτρησης Bps: Μπιτ ανά δευτερόλεπτο Kbps: Kilo-bps (1,000 bps) Mbps: Mega-bps (1,000,000 bps) Gbps: Giga-bps (1,000,000,000 bps) Εύρος ζώνης: Μέγιστη διαθέσιµη ταχύτητα 40

Άλλες αρχιτεκτονικές Τεχνολογίες για αύξηση της διεκπεραιωτικής ικανότητας: βασίζονται στον παραλληλισµό Διαφορετικοί βαθµοί παραλληλισµού σε επίπεδο τµηµάτων εντολής: διοχέτευση (pipelining)= αλληλοεπικάλυψη βηµάτων του κύκλου µηχανής παράλληλη εκτέλεση ολόκληρων εντολών (superscalar) στο ίδιο πρόγραµµα (εκτελεί και την επόµενη(ες) εντολή εάν είναι ανεξάρτητη από την προηγούµενη) παράλληλη εκτέλεση ολόκληρων νηµάτων (threads) = τµηµάτων ενός προγράµµατος που µπορούν να εκτελεστούν παράλληλα (είναι ανεξάρτητα) 41

Διοχέτευση Διοχέτευση (pipelining)= αλληλοεπικάλυψη βηµάτων του κύκλου µηχανής Βασική διοχέτευση 5 βηµάτων σε µια µηχανή τύπου RISC IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back In the fourth clock cycle (the green column), the earliest instruction is in MEM stage, and the latest instruction has not yet entered the pipeline. 42

Instruction-level parallelism (superscalar) Parallelism at the machine-instruction level The processor can re-order, pipeline instructions, split them into microinstructions, do aggressive branch prediction, etc. Instruction-level parallelism enabled rapid increases in processor speeds over the last 15 years εκτελεί και τις 2 εντολές παράλληλα 1. e = a + b 2. f = c + d 3. g = e * f pipeline 43

Thread-level parallelism (TLP) This is parallelism on a coarser scale (χονδρύτερη κλίµακα) Server can serve each client in a separate thread (Web server, database server) A computer game can do AI, graphics, and physics in three separate threads Multi-core architectures are the next step in processor evolution: explicitly exploiting TLP 44

Παράλληλες αρχιτεκτονικές Παράλληλη επεξεργασία: ταυτόχρονη χρήση πολλών επεξεργαστών SISD: Καµία παράλληλη επεξεργασία MIMD: Διαφορετικά προγράµµατα, διαφορετικά δεδοµένα (multicore) SIMD: Ίδιο πρόγραµµα, διαφορετικά δεδοµένα (modern graphics cards) SI: single instruction MI: multiple instruction SD: single data MD: multiple data 45

Single-core computer Τα επόµενα slides απο http://www-bcf.usc.edu/~jbarbic/multi-core-15213-sp07.ppt 46

Multi-core architectures Core 1 Core 2 Core 3 Core 4 Multi-core CPU chip 47

Why multi-core? Difficult to make single-core clock frequencies even higher Deeply pipelined circuits: heat problems speed of light problems difficult design and verification large design teams necessary server farms need expensive air-conditioning Many new applications are multithreaded General trend in computer architecture (shift towards more parallelism) 48

Multiprocessors Multiprocessor is any computer with several processors SIMD Single instruction, multiple data Modern graphics cards MIMD Multiple instructions, multiple data desktop: multicore, scientific computing: general multiprocessor systems Lemieux cluster, Pittsburgh supercomputing center 49

Multiprocessor memory types Shared memory: In this model, there is one (large) common shared memory for all processors Distributed memory: In this model, each processor has its own (small) local memory, and its content is not replicated anywhere else 50 50

Multi-core processors is a special kind of a multiprocessor All processors are on the same chip Multi-core processors are MIMD: Different cores execute different threads (Multiple Instructions), operating on different parts of memory (Multiple Data). Multi-core is a shared memory multiprocessor: All cores share the same memory 51 51

What applications benefit from multi-core? Database servers Web servers (Web commerce) Compilers Multimedia applications Scientific applications, CAD/ CAM In general, applications with Thread-level parallelism (as opposed to instructionlevel parallelism) Each can run on its own core 52 52

More examples Editing a photo while recording a TV show through a digital video recorder Downloading software while running an antivirus program Anything that can be threaded today will map efficiently to multi-core BUT: some applications difficult to parallelize 53