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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Χρονισμός και Απόδοση Υπολογιστικών Συστημάτων

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

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

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

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

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

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

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

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

Απόδοση Υπολογιστικών Συστημάτων

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

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

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

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

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

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

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

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

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

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

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

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

Chapter 3 Αριθμητική Υπολογιστών

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

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

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

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

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

ΕΠΛ605 Εργασία 1 Ημερομηνία Παράδοσης 12/9/2018 στην αρχή του μαθήματος

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

Σχεδίαση της Μονάδας Ελέγχου

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

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

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

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

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

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

Βασικές Σχεδίασης Υπολογιστών Αριθμητική Μονάδα Επεξεργασίας Κεφάλαιο 10

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

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

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

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

Ας ξεκινήσουμε. Macro-instructions. (Assembly level) Micro-instructions Main memory. (micro-code)

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

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

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

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

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

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Εξαιρέσεις και Διακοπές (Exceptions and Interrupts)

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 8: Μία Απλή Υλοποίηση του MIPS σε Έναν Κύκλο Ρολογιού ανά Εντολή

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

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

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

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

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

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΗΥ220: Εργαστήριο σχεδίασης ψηφιακών κυκλωμάτων Χριστόφορος Κάχρης

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

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

Transcript:

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

Ti είναι Αρχιτεκτονική και τι Μικροαρχιτεκτονική Αρχιτεκτονική: τα χαρακτηριστικά του επεξεργαστή που είναι ορατά στον προγραμματιστή (εντολές assembly, μνήμη, καταχωρητές, κοκ) Μικροαρχιτεκτονική: μία από τις πολλές πιθανές hardware υλοποιήσεις μιας αρχιτεκτονικής Παραδείγματα: Intel x86-64 αρχιτεκτονική, Intel Core (2006), Sandy Bridge (2011), Skylake (2015) είναι καποιες από τις μικρο-αρχιτεκτονικές. Yλοποιήσεις της αρχιτεκτονικής x86-64 (Intel 64 bit) Αρχιτεκτονική MIPS-32 Μικροαρχιτεκτονική ενός κύκλου μηχανής του MIPS (κάθε εντολή assembly ολοκληρώνεται σε έναν κύκλο μηχανής) Μικροαρχιτεκτονική πολλαπλών κύκλων μηχανής του MIPS (κάθε εντολή assembly ολοκληρώνεται σε πολλαπλούς κύκλους μηχανής) Μικροαρχιτεκτονική διοχέτευσης (pipeline) του MIPS (κάθε εντολή assembly ολοκληρώνεται πολλαπλούς κύκλους μηχανής, και πολλαπλές εντολές εκτελούνται ταυτόχρονα) 2

MIPS Arithmetic Logic Unit (ALU)

Αριθμητική και Λογική μονάδα Όλες οι αριθμητικές και λογικές πράξεις στον MIPS γίνονται σε μιά 32-bit Αριθμητική και Λογική μονάδα (ALU) add/addi/addu/addiu sub/subi/subu/subiu and/andi or/ori nor slt/slti/sltu/sltiu Ας προσπαθήσουμε να δούμε πώς υλοποιούνται όλες αυτές οι εντολές στην ALU του MIPS Χρησιμοποιώντας τις γνώσεις σας στην Ψηφιακή Σχεδίαση Ι Εισαγωγή στους Η/Υ (HY134) 4

Αριθμητική και Λογική μονάδα 1-bit Full adder Input Output a b c in c out Sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Εισαγωγή στους Η/Υ (HY134) c out = a b + a c in + b c in sum = a xor b xor c in 5

Αριθμητική και Λογική μονάδα 1-bit ALU (and, or, add) 32-bit ALU (ripple-carry configuration) Εισαγωγή στους Η/Υ (HY134) 6

Αριθμητική και λογική μονάδα 1-bit ALU υλοποιεί a+b και a+b a-b = a+(-b)=a+b +1 (and, or, add, sub) [c in =1 in ALU0 for sub] 1-bit ALU (and, or, nor, add, sub) (a OR b) = a AND b Implements nor and not (if b==0) Εισαγωγή στους Η/Υ (HY134) 7

Αριθμητική και λογική μονάδα (slt) Για να υλοποιηθεί η slt c, a, b πρέπει να υπολογίσουμε εάν a< b a-b < 0. Εάν x=a-b < 0, το κρατούμενο εξόδου είναι 1 επειδή το x είναι αρνητικός αριθμός 1-bit ALU (ALU0-ALU30) 1-bit ALU (ALU31) (and, or, nor, add, sub, slt) [overflow detection] [Less=0 in ALU1-ALU31] [Less=(a-b) 31 in ALU0] Εισαγωγή στους Η/Υ (HY134) 8

Αριθμητική και λογική μονάδα 32-bit ALU (and, or, add, sub, nor, slt) Εισαγωγή στους Η/Υ (HY134) 9

Αριθμητική και λογική μονάδα Για εντολές διακλάδωσης beq a, b, L θα πρέπει να δούμε εάν a=b (a-b == 0) Αφαιρούμε a-b στην ALU και διαπιστώνουμε εάν το αποτέλεσμα είναι 0 ή όχι. Εισαγωγή στους Η/Υ (HY134) 32-bit ALU with zero detection (for beq, bne) 10

Αριθμητική και λογική μονάδα Τα 3 σήματα ελέγχου Ainvert, Bnegate, Operation καθορίζουν και την λειτουργία της Αριθμητικής και Λογικής μονάδας (ALU) Ainvert Bnegate Operation Function ALU Operation 0_0_00 AND 0_0_01 OR 0_0_10 ADD 0_1_10 SUB 0_1_11 SLT 1_1_00 NOR Εισαγωγή στους Η/Υ (HY134) 11

Υλοποίηση ενός υποσυνόλου εντολών Στις επόμενες διαφάνειες θα δείξουμε την σταδιακή υλοποίηση μερικών βασικών εντολών του MIPS Εντολές format-r : and, or, add, sub, slt Εντολές προσπέλασης μνήμης: lw, sw Εντολές διακλάδωσης: beq Extra εντολές: addi, j Υλοποίηση σε έναν κύκλο μηχανής 12

Αρχιτεκτονικά στοιχεία του MIPS Τα παρακάτω στοιχεία μνήμης, αποτελούν την Αρχιτεκτονική κατάσταση του επεξεργαστή MIPS Με άλλα λόγια, τα περιεχόμενά τους είναι ορατά στον προγραμματιστή 13

PC [31] PC [30] PC [29] PC [1] PC [0] PC_new [31] PC_new [30] PC_new [29] PC_new [1] PC_new [0] Αρχιτεκτονικά στοιχεία του MIPS Για να τα δούμε με λεπτομέρεια: PC_new always @(posedge CLK or negedge reset) CLK if (reset == 1 b0) PC <= 0; else PC <= PC_new REN WEN Memory (input ren, wen, input [31:0] addr, din, output [31:0] dout); // 4k words mem reg [31:0] data[4095:0]; wire [31:0] dout; assign dout = ((wen==1'b0) && (ren==1'b1))? data[addr[11:0]] : 32'bx; always @(*) begin if ((wen == 1'b1) && (ren==1'b0)) data[addr[11:0]] = din; end 14

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 1: Instruction Fetch Το Fetch γίνεται για κάθε εντολή op rs rt constant or address 6 bits 5 bits 5 bits 16 bits 31..26 25..21 20..16 15..0 100011 11101 01000 1111 1111 1111 1100 lw $t0, 4($sp) Η 8FA8FFFC 15

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 2: Instruction Decode Διάβασε τους καταχωρητές εισόδου από το register file. 31..26 25..21 20..16 15..0 100011 11101 01000 1111 1111 1111 1100 lw $t0, 4($sp) $sp = H 7FFF_EFFC D 29 16

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 3: Sign Extension Επέκταση πρόσημου της σταθεράς 31..26 25..21 20..16 15..0 100011 11101 01000 1111 1111 1111 1100 lw $t0, 4($sp) B 1111_1111_1111_1100 B 1111_1111_1111_1111_1111_1111_1111_1100 = H FFFF_FFFC 17

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 4: Υπολόγισε την διεύθυνση μνήμης κάνοντας πρόσθεση στην ALU 31..26 25..21 20..16 15..0 100011 11101 01000 1111 1111 1111 1100 lw $t0, 4($sp) 0010 = H 7FFF_EFFC H 7FFF_EFF8 H FFFF_FFFC 18

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 5: Διάβασε δεδομένα από την μνήμη χρησιμοποιώντας την διεύθυνση που μόλις υπολόγισες. Γράψε τα δεδομένα στο register file 31..26 25..21 20..16 15..0 100011 11101 01000 1111 1111 1111 1100 lw $t0, 4($sp) D 8 H AB00CD00 19

Υλοποίηση της πρώτης μας εντολής: lw Βήμα 6: Βρες την διεύθυνση της επόμενης εντολής PC <= PC+4 20

Υλοποίηση της εντολής sw Με λίγο extra hardware, μπορούμε να υλοποιήσουμε και την sw 31..26 25..21 20..16 15..0 101011 11101 01000 1111 1111 1111 1100 sw $t0, 4($sp) 21

Υλοποίηση εντολών R-format Διάβασε τους καταχωρητές rs και rt από το register file. Κάνε τον υπολογισμό στην ALU. Γράψε το αποτέλεσμα στον rd 31..26 25..21 20..16 15..11 10..6 5..0 op rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31..26 25..21 20..16 10..0 op rs rt address 6 bits 5 bits 5 bits 16 bits 22

Υλοποίηση εντολής beq Διάβασε τους καταχωρητές rs και rt και έλεγξε εάν οι τιμές τους είναι ίδιες. Υπολόγισε την διεύθυνση Δ=(PC+4) + 4*(sign extended immediate) Εάν rs ==rt, θέσε PC <= Δ, αλλιώς PC <= PC+4 23

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

Μονάδα Ελέγχου (Control Unit) ALU Decoder ως ξεχωριστό κομμάτι της μονάδας ελέγχου. Με αυτόν τον τρόπο διαχωρίζουμε τα δύο πεδία της εντολής opcode[5:0] και funct[5:0] op rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits op rs rt address 6 bits 5 bits 5 bits 16 bits 3:0 25

ALU και Μονάδα Ελέγχου Για να θυμηθούμε την ALU 1-bit ALU (and, or, add, sub, nor, slt, beq) (4 control signals) 32-bit ALU (and, or, add, sub, nor, slt, beq) Ainvert Bnegate Operation Function ALU Control 0_0_00 AND (A&B) 0_0_01 OR (A B) 0_0_10 ADD (A+B) 0_1_10 SUB (A-B) 0_1_11 SLT 1_1_00 NOR (A B) 26

ALU και Μονάδα Ελέγχου Για μία συγκεκριμένη εντολή η μονάδα ελέγχου παράγει τα 4 σήματα ελέγχου ALUControl[3:0] 3:0 opcode ALUOp Operation funct ALU function ALU control lw 00 load word XXXXXX add 0010 sw 00 store word XXXXXX add 0010 beq 01 branch equal XXXXXX subtract 0110 R-type 10 add 100000 add 0010 subtract 100010 subtract 0110 AND 100100 AND 0000 OR 100101 OR 0001 set-on-lessthan 101010 set-on-lessthan 0111 27

Κύρια Μονάδα Ελέγχου Instruction Op5:0 RegWrite RegDst AluSrc Branch MemWrite MemToReg ALUOp1:0 R-type 0 0 0 0 0 0 1 1 0 0 0 0 10 lw 1 0 0 0 1 1 1 0 1 0 0 1 00 sw 1 0 1 0 1 1 0 Χ 1 0 1 Χ 00 beq 0 0 0 1 0 0 0 Χ 0 1 0 Χ 01 28

Υλοποίηση εντολής or op rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 29

Υλοποίηση εντολής addi Δεν απαιτείται αλλαγή στο Data Path Πρέπει όμως να επεκταθεί η μονάδα ελέγχου Instruction Op5:0 RegWrite RegDst AluSrc Branch MemWrite MemToReg ALUOp1:0 R-type 0 0 0 0 0 0 1 1 0 0 0 0 1 0 lw 1 0 0 0 1 1 1 0 1 0 0 1 0 0 sw 1 0 1 0 1 1 0 x 1 0 1 x 0 0 beq 0 0 0 1 0 0 0 x 0 1 0 x 0 1 addi 0 0 1 0 0 0 1 0 1 0 0 0 0 0 Copyright 2007 Elsevier 30 22

Υλοποίηση εντολής j 000010 address 31:26 25:0 31

Υλοποίηση εντολής j Instruction Op5:0 RegWrite RegDst AluSrc Branch MemWrite MemToReg ALUOp1:0 Jump R-type 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 lw 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0 sw 1 0 1 0 1 1 0 x 1 0 1 x 0 0 0 beq 0 0 0 1 0 0 0 x 0 1 0 x 0 1 0 addi 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 j 0 0 0 0 1 0 0 x x x 0 x x x 1 32

Η Απόδοση του υπολογιστή μας ΧρόνοςCPU ΑριθμόςΕντολώνστο Πρόγραμμα CPI ΠερίοδοςΡολογιού ΑριθμόςΕντολών CPI ΣυχνότηταΡολογιού 33

Η Απόδοση του υπολογιστή μας Για αυτόν τον επεξεργαστή CPI=1 Ας επικεντρωθούμε στην περίοδο του ρολογιού (πχ η εντολή lw). 34

Περίοδος Ρολογιού D Q reg1 logic D Q reg2 CLK H περίοδος ρολογιού καθορίζεται από το χειρότερο μονοπάτι μεταξύ δύο flipflops σε ένα κύκλωμα. Στον επεξεργαστή μας αυτό το μονοπάτι ΜΑΛΛΟΝ είναι το παρακάτω: Tc = tpcq_pc + tmem + max(trfread, tsext + tmux) + talu + tmem + tmux + trfsetup Στους περισσότερους επεξεργαστές το λεγόμενο critical path είναι η μνήμη, η ALU, και οι καταχωρητές. Ο καθορισμός του critical path σε πραγματικούς επεξεργαστές είναι μια πολύ επίπονη εργασία που γίνεται από εξειδικευμένα εργαλεία CAD (Computer-Aided Design). 35

Παράδειγμα υπολογισμού περιόδου ρολογιού Στοιχείο Υλικού Συμβολικός Χρόνος Χρόνος (ps) Register clock-to-q tpcq_pc 30 Register setup tsetup 20 Multiplexer tmux 25 ALU talu 200 Memory read tmem 250 Register file read trfread 150 Register file setup trfsetup 20 Tc = tpcq_pc + 2tmem + trfread + tmux + talu + trfsetup = [30 + 2(250) + 150 + 25 + 200 + 20] ps = 925 ps ] = 0.925ns Fc = 1/Tc = 1.08 GHz 36

Παράδειγμα υπολογισμού χρόνου εκτέλεσης Χρόνος CPU AE CPI Περίοδος ΡΡολογιο ΑE CPI Συχνότητα ΡΡολογιο Για ένα πρόγραμμα με 100 δις εκτελούμενων εντολών και CPI = 1 Χρόνος CPU = (100 10 9 ) * (1) * (925 *10 12 ) = 92.5 secs 37