Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών του Τ.Ε.Ι. Κρήτης. Τελευταία τροποποίηση: 2017-2018 εαρινό εξάμηνο.
Εισαγωγή Παράγοντες απόδοσης μιας CPU Πλήθος εντολών Καθορίζεται από την αρχιτεκτονική (ISA) και τον μεταγλωττιστή Κύκλοι ρολογιού/εντολή (CPI) & χρόνος κύκλου ρολογιού Καθορίζονται από την υλοποίηση του επεξεργαστή (CPU hardware) Μελετώνται δύο υλοποιήσεις του MIPS Μια απλοποιημένη έκδοση Μια πιο πραγματική έκδοση με διοχέτευση Απλά υποσύνολα, αναδεικνύουν την πλειονότητα των απόψεων Εντολές αναφοράς στη μνήμη: lw, sw Αριθμητικές /Λογικές εντολές: add, sub, and, or, slt Εντολές ελέγχου διακλάδωσης : beq, j Η υλοποίηση των υπολοίπων εντολών θα είναι παρόμοια Chapter 5 The Processor 2
Εκτέλεση εντολής Προσκόμιση (fetch) της εντολής που δείχνει ο μετρητής προγράμματος (PC) από την μνήμη κώδικα Ανάγνωση ενός ή δύο καταχωριστών από την συστοιχία των καταχωριστών με βάση τους αριθμούς καταχωριστών από τα πεδία της εντολής Ανάλογα με την κατηγορία της εντολής Χρησιμοποίηση της ALU για τον υπολογισμό Αριθμητικού αποτελέσματος Διεύθυνσης μνήμης για φόρτωση / αποθήκευση Διεύθυνσης στόχου διακλάδωσης Πρόσβαση στην μνήμη δεδομένων για φόρτωση / αποθήκευση Αποθήκευση αποτελέσματος σε καταχωριστή Μεταβολή της ένδειξης του μετρητή προγράμματος (PC), είτε φορτώνοντάς του την διεύθυνση στόχου διακλάδωσης, είτε απλά αυξάνοντάς τον κατά 4 (PC PC + 4) Chapter 5 The Processor 3
Μια αφ υψηλού επιπέδου άποψη της CPU (Μνήμη εντολών) (Καταχωριστές) (Μνήμη δεδομένων) Chapter 5 The Processor 4
Πολυπλέκτες (Multiplexers) Οι γραμμές δεδομένων δεν μπορούν απλά να συνδεθούν μεταξύ τους Χρησιμοποιούνται πολυπλέκτες Chapter 5 The Processor 5
Μονάδα και γραμμές ελέγχου Chapter 5 The Processor 6
Μεθοδολογία χρονισμού Η συνδυαστική λογική επενεργεί στα δεδομένα κατά την διάρκεια των κύκλων του ρολογιού Ανάμεσα στα μέτωπα πυροδότησης του ρολογιού Διαβάζει από στοιχεία κατάστασης και γράφει σε στοιχεία κατάστασης Η μεγαλύτερη καθυστέρηση είναι αυτή που καθορίζει την περίοδο του ρολογιού Δίαυλοι δεδομένων (buses) Μια ακμοπυροδοτούμενη μεθοδολογία επιτρέπει την ανάγνωση από ένα στοιχείο κατάστασης και την εγγραφή στο ίδιο στοιχείο κατάστασης στον ίδιο κύκλο ρολογιού χωρίς να δημιουργείται συναγωνισμός (race), που πιθανότατα θα οδηγούσε σε απροσδιοριστίες. Chapter 5 The Processor 7
Κατασκευή διαδρομής δεδομένων Διαδρομή δεδομένων (datapath) Λειτουργική μονάδα που χρησιμοποιείται για να επενεργήσει ή να διατηρήσει δεδομένα και διευθύνσεις μέσα σ έναν επεξεργαστή Καταχωριστές (registers), αριθμητικές και λογικές μονάδες (ALUs), πολυπλέκτες (mux s), μνήμες (memories), κ.α. Χτίζεται προοδευτικά μια διαδρομή δεδομένων για τον MIPS Αναλύοντας την συνοπτική σχεδίαση Chapter 5 The Processor 8
Προσκόμιση εντολής 32-bit register Increment by 4 for next instruction Chapter 5 The Processor 9
Εντολές μορφής R Ανάγνωση δύο τελεστέων από καταχωριστές Διενέργεια της αριθμητικής / λογικής πράξης Εγγραφή του αποτελέσματος σε καταχωριστή Chapter 5 The Processor 10
Εντολές Φόρτωσης/Αποθήκευσης (Load/Store Instructions) Ανάγνωση τελεστέων καταχωριστών Υπολογισμός διεύθυνσης χρησιμοποιώντας 16άμπιτη σχετική απόσταση (16-bit offset) Χρήση της ALU, με επέκταση προσήμου του offset Load: Ανάγνωση της μνήμης και ενημέρωση του καταχωριστή Store: Εγγραφή της τιμής του καταχωριστή στη μνήμη α. Μονάδα μνήμης δεδομένων β. Μονάδα επέκτασης προσήμου Chapter 5 The Processor 11
Εντολές Διακλάδωσης (Branch Instructions) Ανάγνωση τελεστέων καταχωριστών Σύγκριση τελεστέων Χρήση ALU, αφαίρεση και έλεγχος της εξόδου Zero Υπολογισμός διεύθυνσης στόχου (προορισμού) Επέκταση προσήμου μετατόπισης (displacement) Ολίσθηση αριστερά κατά 2 θέσεις (μετατόπιση λέξης) Πρόσθεση στο PC + 4 Το οποίο έχει ήδη υπολογιστεί από την προσκόμιση της εντολής Chapter 5 The Processor 12
Εντολές Διακλάδωσης Απλά μετατοπίζει τα καλώδια (Just re-routes wires) Κλωνοποιείται το καλώδιο με το δυαδικό ψηφίο του προσήμου (Sign-bit wire replicated) Chapter 5 The Processor 13
Συνθέτοντας τα στοιχεία Η πρώτη προσπάθεια για διαδρομή δεδομένων (data path) εκτελεί μια εντολή μέσα σ ένα κύκλο ρολογιού Κάθε στοιχείο της διαδρομής δεδομένων μπορεί να κάνει μόνο μια λειτουργία την φορά Συνεπώς, χρειαζόμαστε ξεχωριστές μνήμες εντολών και δεδομένων Χρησιμοποιείστε πολυπλέκτες όταν υπάρχουν εναλλακτικές προελεύσεις δεδομένων για διαφορετικές εντολές Chapter 5 The Processor 14
R-Type/Load/Store Datapath Chapter 5 The Processor 15
Πλήρης διαδρομή δεδομένων Chapter 5 The Processor 16
Έλεγχος ALU Η ALU χρησιμοποιείται για την λειτουργία add στις Load/Store την λειτουργία subtract στην Branch την λειτουργία που καθορίζει το πεδίο funct στις εντολές μορφής R (R-type) Έλεγχος ALU (ALU control) Λειτουργία (Function) 0000 AND 0001 OR 0010 add 0110 subtract 0111 set-on-less-than 1100 NOR 4.4 A Simple Implementation Scheme Chapter 5 The Processor 17
Έλεγχος ALU Υποθέστε ότι ένα πεδίο 2-bit ονόματι ALUOp μπορεί να εξαχθεί από το opcode Ο έλεγχος της ALU προκύπτει από συνδυαστική λογική 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-less-than 101010 set-on-less-than 0111 Chapter 5 The Processor 18
Η κύρια μονάδα ελέγχου Σήματα ελέγχου που προέκυψαν από εντολή R-type Load/ Store Branch 0 rs rt rd shamt funct 31:26 25:21 20:16 15:11 10:6 5:0 35 or 43 rs rt address 31:26 25:21 20:16 15:0 4 rs rt address 31:26 25:21 20:16 15:0 opcode always read read, except for load write for R-type and load sign-extend and add Chapter 5 The Processor 19
Διαδρομή δεδομένων με έλεγχο Με την χρήση πολλών επιπέδων αποκωδικοποίησης συνήθως μειώνεται το μέγεθος και αυξάνεται η ταχύτητα της μονάδας ελέγχου. Chapter 5 The Processor 20
Εντολή τύπου R (R-Type Instruction) Chapter 5 The Processor 21
Εντολή φόρτωσης (Load Instruction) Chapter 5 The Processor 22
Εντολή Διακλάδωσης (Branch-on-Equal Instruction) Chapter 5 The Processor 23
Υλοποίηση αλμάτων Jump 2 address 31:26 25:0 Χρησιμοποιεί διεύθυνση λέξης (όχι byte) Ενημέρωση του PC με την συνένωση των Σημαντικότερων 4 bit του παλιού PC Διεύθυνσης άλματος των 26 bit και του 00 Χρειάζεται ένα επιπλέον σήμα ελέγχου από την αποκωδικοποίηση του opcode Chapter 5 The Processor 24
Διαδρ. Δεδ. με προθήκη αλμάτων Chapter 5 The Processor 25
Ζητήματα Απόδοσης Η μεγαλύτερη καθυστέρηση καθορίζει την περίοδο του ρολογιού Κρίσιμη διαδρομή (Critical path): Η εντολή φόρτωσης (load instruction) Instruction memory register file ALU data memory register file Δεν είναι εφικτό να ποικίλει η περίοδος για διαφορετικές εντολές Παραβιάζει τη σχεδιαστική αρχή Κάνε την συνηθισμένη περίπτωση γρήγορη Μπορεί να βελτιωθεί η απόδοση με την χρήση της διοχέτευσης (by pipelining) Chapter 5 The Processor 26
Στο επόμενο μάθημα θα μιλήσουμε για την αύξηση της απόδοσης με διοχέτευση (pipeline) θα συζητήσουμε τις απορίες σας, εφ όλης της ύλης, και θα λύσουμε ασκήσεις στον πίνακα. Υ.Γ.1: Σας υπενθυμίζω ότι κατά την εξέταση της θεωρίας οφείλετε να παραδώσετε το τετράδιο ασκήσεων. Υ.Γ.2: Για σύντομες απορίες στείλτε e-mail στην διεύθυνση npet@chania.teicrete.gr ή διαφορετικά ελάτε στο γραφείο 5. Καλή μελέτη Chapter 5 The Processor 27