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

Σχετικά έγγραφα
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Multicycle datapath

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

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

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

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

Κάζε functional unit ρξεζηκνπνηείηαη κηα θνξά ζε θάζε θύθιν: αλάγθε γηα πνιιαπιό hardware = θόζηνο πινπνίεζεο!

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

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

Υλοποίηση Mικροεπεξεργαστή MIPS -16

Pipelined Datapath, Hazards and Forwarding

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

Διοχέτευση (Pipeline)

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

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

Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 30 min κάθε «φάση»

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Κεφ. 4: Ο επεξεργαστής 1. Διάδρομος δεδομένων και μονάδα ελέγχου 2.

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

Απλός επεξεργαστής (Επανάληψη)

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

Κεφάλαιο 5. Ο Μικροεπεξεργαστής: Διάδρομος Δεδομένων και Μονάδα Ελέγχου. (The Processor: Datapath and Control)

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

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

Σχεδίαση μονάδας ελέγχου επεξεργαστή

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Διακλαδώσεις. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

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

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

Διάλεξη 11 Προώθηση (Forwarding)

Pipeline: Ένα παράδειγμα από.τη καθημερινή ζωή. 30 min κάθε «φάση»

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

Διάλεξη 12 Καθυστερήσεις (Stalls)

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

2 η Ενδιάμεση Εξέταση Λύσεις/Απαντήσεις

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

O επεξεπγαζηήρ: Η δίοδορ δεδομένων (datapath) θαη ε μονάδα ελέγσος (control)

Κεφάλαιο 6 Βελτίωση Απόδοσης με Διασωλήνωση (Enhancing Performance with Pipelining)

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

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

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

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

-Επεξεργαστής: datapath (δίοδος δεδοµένων) (1) και control (2) -Μνήµη (3) -Συσκευές Εισόδου (4), Εξόδου (5) (Μεγάλη ποικιλία!!)

Μικροαρχιτεκτονική του LC3

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

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

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Διοχέτευση

Επανάληψη Σύστημα Διασωλήνωσης (Pipelining) Κεφάλαιο 4 - Σύστημα ιασωλήνωσης

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Προχωρημένες Τεχνικές Pipelining. Ιάκωβος Μαυροειδής

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 2 Οργάνωση μνήμης Καταχωρητές του MIPS Εντολές του MIPS 1

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

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

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Υπερβαθμωτή (superscalar) Οργάνωση Υπολογιστών

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφ. 4: O επεξεργαστής Σύστημα Διασωλήνωσης (Pipelining)

Θέµατα Φεβρουαρίου

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

Εισαγωγή. Σύνοψη βασικών εννοιών, 5-stage pipeline, επεκτάσεις για λειτουργίες πολλαπλών κύκλων

Περιορισμοί των βαθμωτών αρχιτεκτονικών

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

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

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

Ολοκληρωμένα Κυκλώματα - Φθινόπωρο 2014 Γ. Δημητρακόπουλος. Εργαστηριακή άσκηση 2

LANGUAGE OF THE MACHINE. TEI Κρήτης, Τμ. ΕΠΠ, Αρχιτεκτονική Υπολογιστών. Οργάνωση Υπολογιστή. Τυπική οργάνωση υπολογιστή

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

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

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

Κεφάλαιο 4. Ο επεξεργαστής

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

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

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

Σχεδίαση της Διόδου Δεδομένων

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 4 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Εργαστήριο Αρ. 1. Εισαγωγή στην Αρχιτεκτονική MIPS. Πέτρος Παναγή Σελ. 1

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

Κεφάλαιο 3. Αριθμητική Υπολογιστών Review. Hardware implementation of simple ALU Multiply/Divide Real Numbers

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

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 3

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

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

Εντολές του MIPS (2)

ΗΜΥ 213. Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

CS425 Computer Systems Architecture

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

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

Δείγμα Τελικής Εξέτασης στο ΗΜΥ213. Διδάσκοντας: Γιώργος Ζάγγουλος

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

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

Τρόποι Διευθυνσιοδότησης

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

Application Operating System. Datapath & Control/Memory. Digital Design Circuit Design. Layout

Άσκηση IF ID EX MEM WB α. 300ps 400ps 350ps 500ps 100ps β. 200ps 150ps 120ps 190ps 140ps

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

Transcript:

Single-cyle υλοποίηση: ιάρκεια κύκλου ίση µε τη µεγαλύτερη εντολή-worst case delay (εδώ η lw) = χαµηλή απόδοση! Αντιβαίνει µε αρχή: Κάνε την πιο απλή περίπτωση γρήγορη (ίσως και εις βάρος των πιο «σύνθετων» περιπτώσεων π.χ. (load 32bit constant to reg)). Κάθε functional unit χρησιµοποιείται µια φορά σε κάθε κύκλο: ανάγκη για πολλαπλό hardware = κόστος υλοποίησης! Λύση: ulticycle υλοποίηση Μικρότεροι κύκλοι ρολογιού, από τις καθυστερήσεις των επιµέρους functional units

Λίγο πριν το Pipeline ulticycle υλοποίηση ιαιρούµε την εκτέλεση της κάθε εντολής σε βήµατα ανάλογα µε τον αριθµό των functional units που χρειάζεται Κάθε βήµα και ένας ξεχωριστός παλµός ρολογιού Όταν έχουµε multicycle υλοποίηση, µπορούµε το ίδιο functional unit να το χρησιµοποιήσουµε πολλές φορές στην ίδια εντολή, σε διαφορετικούς όµως κύκλους (οικονοµία hardware) Οι εντολές διαρκούν µεταβλητό αριθµό κύκλων, άρα µπορούµε να κάνουµε την συνηθισµένη περίπτωση πιο γρήγορη.

IPS Datapath-ulticycle Implementation. Χρησιµοποιούµε την ίδια memory unit τόσο για instructions όσο και για 2. Χρησιµοποιούµε την ίδια ALU (αντί για µια ALU και δύο αθροιστές PC+4 και PC+4+address_offset) 3. Μετά από κάθε functional unit υπάρχουν καταχωρητές που κρατάνε το αποτέλεσµα µέχρις ότου το πάρει το επόµενο functional unit (στον επόµενο κύκλο)

ulticycle Datapath: PC Address emory Data or emory Data Register # Registers Register # Register # A B ALU ALUOut Επιπλέον καταχωρητές: IR, DR, A, B και ALUOut

Υπόθεση: «Σε κάθε κύκλο ρολογιού µπορεί να γίνει ένα από τα παρακάτω» emory access Register file access (read or write) ALU op Οτιδήποτε παράγεται από αυτές τις µονάδες,σώζεται σε temporary Temporary s µεταξύ των λειτουργικών µονάδων: IR DR ALUOut A, B (έξοδος file)

Ε ΟΜΕΝΑ που: Θα χρησιµοποιηθούν από την ίδια εντολή σε επόµενους κύκλους: Σώζονται σε temporary s Θα χρησιµοποιηθούν από επόµενες εντολές: Σώζονται σε: file, memory, PC Programmer visible state elements

PC u x Address emory emdata [25 2] [2 6] [5 ] [5 ] [5 ] u x ux 2 Registers 2 A B 4 ux u 2 x 3 Zero ALU ALU result ALUOut emory 6 Sign extend 32 Shift left 2 Επιλογή µεταξύ PC (για εντολή branch, PC+4) και Α (για R-Type) Επιλογή µεταξύ 4 (PC+4), B (R-Type), sign_extend offset για Ι-Type (lw, sw) και branch offset

Single-cycle path: PCSrc Add ux 4 Shift left 2 Add ALU result PC address memory 2 Registers 2 Reg 6 Sign 32 extend ALUSrc ux 3 ALU operation Zero ALU ALU result Address em em Data memory emtoreg ux

ιαίρεση της εκτέλεσης κάθε εντολής σε πολλαπλούς κύκλους:. Fetch «Φέρε την εντολή από τη μνήμη και υπολόγισε τα διεύθυνση ανάκλησης για την επόμενη εντολή» IR = emory[pc]; PC = PC + 4; 2. decode and fetch (reg. File read) «Διάβασε τους καταχωρητές rs και rt και αποθήκευσέ τους στους Α και Β αντίστοιχα» Α = Reg[IR[25-2]]; B = Reg[IR[2-6]]; ALUOut=PC + (sign-extend (IR[5-] << 2) ;

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

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

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

5. emory read completion (write back step) Reg[IR[2-6]] = DR; «Γράψε πίσω τα που είχαν την προηγούμενη φάση αποθηκευτεί στον DR, στο file»

PC u x Address emory emdata [3-26] [25 2] [2 6] [5 ] [5 ] emory PCCond PC IorD em em emtoreg IR [25 ] [5 ] Outputs Control Op [5 ] u x u x PCSource ALUOp ALUSrcB 6 ALUSrcA Reg RegDst 2 Registers Sign extend 2 32 Shift left 2 A B 4 u x u 2 x 3 26 Shift 28 left 2 ALU control PC [3-28] Zero ALU ALU result Jump address [3-] ALUOut 2 u x [5 ]