Single-cyle υλοποίηση:

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Advertisements

1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Παραλληλισμός Εντολών (Pipelining) Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο.
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
Το υλικο του Υπολογιστη
Αρχιτεκτονική Υπολογιστών Γλώσσες Μηχανής
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Η Αρχιτεκτονική των Επεξεργαστών Ψ.Ε.Σ Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Ανίχνευση κίνδυνου Επίλυση με προώθηση. Μπλέ: Εξαρτήσεις. Εξαρτήσεις προς προηγούμενα CC είναι κίνδυνοι δεδομένων Kόκκινο: Προώθηση IF/ID ID/EX EX/MEM.
Λύση: Multicycle υλοποίηση Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή.
© Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση.
William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου.
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
1 Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή 1.Πλυντήριο 2.Στεγνωτήριο 3.Δίπλωμα 4.αποθήκευση 30 min κάθε «φάση» Σειριακή προσέγγιση για 4 φορτία.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Pipelining –
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΣΥΣΤΗΜΑΤΟΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ ΚΑΙ ΠΑΡΑΓΩΓΗΣ ΣΗΜΑΤΩΝ
Υπερβαθμωτή Οργάνωση Υπολογιστών. Περιορισμοί των βαθμωτών αρχιτεκτονικών Μέγιστο throughput: 1 εντολή/κύκλο ρολογιού (IPC≤1) Υποχρεωτική ροή όλων των.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Εισαγωγή Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Οργάνωση Υπολογιστών 5 “συστατικά” στοιχεία -Επεξεργαστής: datapath (δίοδος δεδομένων) (1) και control (2) -Μνήμη (3) -Συσκευές.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ Αρχιτεκτονική Υπολογιστών.
Αρχιτεκτονική Υπολογιστών Ενότητα # 5: DEMO Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
ΕΙΣΑΓΩΓΗ μέρος 2 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Π. ΚΩΣΤΑΡΑΚΗΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ.
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 10 ο Μάθημα.
Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής.
Αρχιτεκτονική Υπολογιστών Ενότητα # 2: Datapath & Control Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL. Αρχιτεκτονική Υπολογιστών DATAPATH & CONTROL Για κάθε εντολή υπάρχουν δυο βήματα που πρέπει να γίνουν: –Προσκόμιση.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα.
Chapter 16 Control Unit Implemntation. A Basic Computer Model.
Υπολογιστικά συστήματα: Στρώματα
Morgan Kaufmann Publishers Ο επεξεργαστής
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Εισαγωγή στους Η/Υ Ενότητα 7: Η οργάνωση ενός Η/Υ Ιωάννης Σταματίου
Εξέλιξη Υπολογιστικών Συστημάτων
INSTRUCTIONS LANGUAGE OF THE MACHINE
Single-cyle υλοποίηση:
Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών
MIPS: Σύνολο εντολών, γλώσσα μηχανής & μεθοδολογία σχεδίασης
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Κεντρική Μονάδα Επεξεργασίας
Παράγοντες που επηρεάζουν την επίδοση της CPU
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Pipeline: Ένα παράδειγμα από ….τη καθημερινή ζωή
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Θέματα Φεβρουαρίου
Single-cyle υλοποίηση:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μέρος Β – Μονάδες Επεξεργαστή
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μεταγράφημα παρουσίασης:

Single-cyle υλοποίηση: Διάρκεια κύκλου ίση με τη μεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαμηλή απόδοση! Αντιβαίνει με αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων» περιπτώσεων π.χ. (load 32bit constant to reg)). Κάθε functional unit χρησιμοποιείται μια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Λύση: Multicycle υλοποίηση Μικρότεροι κύκλοι ρολογιού, από τις καθυστερήσεις των επιμέρους functional units Ta σχήματα είναι από το βιβλίο COD2e/Patterson-Hennessy cslab@ntua 2015-2016

Κάθε βήμα και ένας ξεχωριστός παλμός ρολογιού Λίγο πριν το Pipeline… Multicycle υλοποίηση Διαιρούμε την εκτέλεση της κάθε εντολής σε βήματα ανάλογα με τον αριθμό των functional units που χρειάζεται Κάθε βήμα και ένας ξεχωριστός παλμός ρολογιού Όταν έχουμε multicycle υλοποίηση, μπορούμε το ίδιο functional unit να το χρησιμοποιήσουμε πολλές φορές στην ίδια εντολή, σε διαφορετικούς όμως κύκλους (οικονομία hardware) Οι εντολές διαρκούν μεταβλητό αριθμό κύκλων, άρα μπορούμε να κάνουμε την συνηθισμένη περίπτωση πιο γρήγορη. cslab@ntua 2015-2016

MIPS Datapath-Multicycle Implementation Χρησιμοποιούμε την ίδια memory unit τόσο για instructions όσο και για data Χρησιμοποιούμε την ίδια ALU (αντί για μια ALU και δύο αθροιστές PC+4 και PC+4+address_offset) Μετά από κάθε functional unit υπάρχουν καταχωρητές που κρατάνε το αποτέλεσμα μέχρις ότου το πάρει το επόμενο functional unit (στον επόμενο κύκλο) cslab@ntua 2015-2016

Επιπλέον καταχωρητές: IR, MDR, A, B και ALUOut Multicycle Datapath: Επιπλέον καταχωρητές: IR, MDR, A, B και ALUOut cslab@ntua 2015-2016

«Σε κάθε κύκλο ρολογιού μπορεί να γίνει ένα από τα παρακάτω» Υπόθεση: «Σε κάθε κύκλο ρολογιού μπορεί να γίνει ένα από τα παρακάτω» Memory access Register file access (read or write) ALU op Οτιδήποτε παράγεται από αυτές τις μονάδες,σώζεται σε temporary register Temporary registers μεταξύ των λειτουργικών μονάδων: IR MDR ALUOut A, B (έξοδος register file) cslab@ntua 2015-2016

Programmer visible state elements ΔΕΔΟΜΕΝΑ που: Θα χρησιμοποιηθούν από επόμενες εντολές: Σώζονται σε: register file, memory, PC Θα χρησιμοποιηθούν από την ίδια εντολή σε επόμενους κύκλους: Σώζονται σε temporary registers Programmer visible state elements cslab@ntua 2015-2016

Επιλογή μεταξύ PC (για εντολή branch, PC+4) και Α (για R-Type) Επιλογή μεταξύ 4 (PC+4), B (R-Type), sign_extend offset για Ι-Type (lw, sw) και branch offset cslab@ntua 2015-2016

Single-cycle datapath: cslab@ntua 2015-2016

Διαίρεση της εκτέλεσης κάθε εντολής σε πολλαπλούς κύκλους: 1. Instruction Fetch «Φέρε την εντολή από τη μνήμη και υπολόγισε τα διεύθυνση ανάκλησης για την επόμενη εντολή» IR = Memory[PC]; PC = PC + 4; 2. Instruction decode and register fetch (reg. File read) «Διάβασε τους καταχωρητές rs και rt και αποθήκευσέ τους στους Α και Β αντίστοιχα» Α = Reg[IR[25-21]]; B = Reg[IR[20-16]]; ALUOut=PC + (sign-extend (IR[15-0] << 2) ; cslab@ntua 2015-2016

2. Instruction decode and register fetch (reg. File read) ..συνέχεια: 2. Instruction decode and register fetch (reg. File read) Οι Α και Β «γεμίζουν» σε κάθε κύκλο! Πάντα ο IR περιέχει την εντολή από την αρχή μέχρι το τέλος! Στο βήμα αυτό υπολογίζεται και η διεύθυνση «πιθανού» άλματος και αποθηκεύεται στο καταχωρητή ALUOut (αν πρόκειται για εντολή branch) Οι δύο παραπάνω λειτουργίες γίνονται ταυτόχρονα cslab@ntua 2015-2016

3. Execution, memory address computation or branch completion ..συνέχεια: 3. Execution, memory address computation or branch completion Εδώ για πρώτη φόρα, παίζει ρόλο τι είδους εντολή έχουμε a) Memory Reference: ALUOut=A+sign-extend (IR[15-0]); b) Arithmetic-Logical: ALUOut=A op B; c) Branch: If (A==B) PC = ALUOut; d) Jump: PC = PC[31-28] || (IR[25-0] <<2); cslab@ntua 2015-2016

4. Memory Access or R-Type instruction completion ..συνέχεια: 4. Memory Access or R-Type instruction completion a) Memory Reference: MDR = Memory [ALUOut]; ή Memory [ALUOut] = Β; «διάβασε από τη διεύθυνση που έχει σχηματιστεί στον ALUOut και αποθήκευσε στον MDR (load)» ή «διάβασε το B (που πάντα έχει τον destination reg rt) και αποθήκευσέ το στη μνήμη με δνση ALUOut Είναι πάντα το ίδιο, σε όλους τους κύκλους! β) Arithmetic-Logical: Reg[IR[15-11]] = ALUOut; cslab@ntua 2015-2016

5. Memory read completion (write back step) ..συνέχεια: 5. Memory read completion (write back step) Reg[IR[20-16]] = MDR; «Γράψε πίσω τα data που είχαν την προηγούμενη φάση αποθηκευτεί στον MDR, στο register file» cslab@ntua 2015-2016

cslab@ntua 2015-2016