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

Σχετικά έγγραφα
Τέτοιες λειτουργίες γίνονται διαμέσου του

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

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

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

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

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

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

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

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

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

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

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

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

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

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

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

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

Στοιχεία από Assembly Γιώργος Μανής

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

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

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

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

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

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

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

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

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

Σημειώσεις για τον 80x86

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

Transcript:

Απλός επεξεργαστής (Επανάληψη) Διάδρομος δεδομένων και μονάδα ελέγχου 4 ο κεφάλαιο

Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων και μονάδας ελέγχου για εκτέλεση διαφόρων τύπων πράξεων για τις βασικές εντολές της Αρχιτεκτονικής Συνόλου Εντολών IPS Πολλές πιθανές διαφορετικές υλοποιήσεις

ΑΣΕ (ISA) ΑΣΕ: σύνολο εντολών τελεστές (add,sb,shift, ml, branches, load, store..) τελεσταίοι (καταχωρητές, μνήμη και άμεσες τιμές) σύνταξη εντολών και κωδικοποίηση στο δυαδικό σημασιολογία εντολών Endianess Αριθμός καταχωρητών, μέγεθος καταχωρητών Μέγεθος μνήμης Από ποια διεύθυνση ξεκινά η εκτέλεση η πρώτη εντολή Ένα μεγάλο docment Πχ ΑΣΕ: 86, AR, Power, IPS Κάθε -2 χρόνια εξελίσσονται

Μεγάλη Εικόνα: Διασύνδεση Λογισμικού/Υλικού - H ιεραρχία μετάφρασης για ένα πρόγραμμα από υψηλού επιπέδου γλώσσα μέχρι τη γλώσσα μηχανής. - ένα πρόγραμμα σε C (υψηλού επιπέδου γλώσσα) μεταφράζεται σε συμβολική γλώσσα από τον μεταγλωττιστή C program Compiler Assembly langage program - ο συμβολομεταφραστής μεταφράζει την συμβολική γλώσσα σε γλώσσα μηχανής. Assembler Ανεξάρτητα Υλοποίησης - Το πρόγραμμα που τοποθετεί το πρόγραμμα της γλώσσας μηχανής στη μνήμη για εκτέλεση ονομάζεται φορτωτής (loader). achine langage program Loader ISA emory - Fetch and Decode (convert machine langage to control signals) - Eecte decoded control signals Εξαρτάται από Υλοποίηση CPUFetch/Decode Control Signals Ενότητα 2 - Εντολές: Η γλώσσα μηχανής (Κεφ. 2 από Patterson και Hennessy) CPU Eecte

Γλώσσα μηχανής Αρχιτεκτονική Συνόλου Εντολών (ΑΣΕ) Instrction Set Architectre (ISA) ανεξάρτητη της υλοποίησης του διαδρόμου δεδομένων Ο διάδρομος δεδομένων περιλαμβάνει μονάδα ελέγχου (αποκωδικοποίηση γλώσσα μηχανής σε σήματα ελέγχου) Αλλαγή στο υλικό δεν χρειάζεται να παραχθεί καινούργιο binary Επέκταση της γλώσσας μηχανής (καινούργιες εντολές): προηγούμενα εκτελέσιμα τρέχουν σε καινούργιο υλικό που υλοποιεί νέες εντολές

Table[2]=Table[0] + Table[] lw $,0($29) lw $2,4($29) add $3,$,$2 sw $3,8($29) Μεγάλη Εικόνα 000 0 0000 0000 0000 0000 0000 000 0 0000 0000 0000 0000 000 000000 0000 0000 000 00000 00000 00 0 000 0000 0000 0000 000 SW Program SW Assembly SW achine Langage 0 00000 0000 00 0000 0000 0000 0000 0 0 0 00000 0000 00 0000 0000 0000 000 0 0 0000 0000 000 00 0 0000 0000 0000 0000 00 [0 000 00000 0 00 0000 0000 0000 000 0 0 HW Decoder Control Signals for datapath

Ο επεξεργαστής : Διάδρομος Δεδομένων και Έλεγχος Σε αυτό το κεφάλαιο θα μελετήσουμε την υλοποίηση του διαδρόμου δεδομένων και της μονάδας ελέγχου για το σύνολο εντολών της μηχανής ΜΙPS. Μία υλοποίηση για τις βασικές εντολές του IPS: - Εντολές μνήμης (memory reference), δηλ. την load word(lw) και store word(sw). - Αριθμητικές και λογικές εντολές, δηλ. add, sb, and, or και slt. - Εντολή σύγκρισης branch eqal(beq) και τέλος - Εντολή jmp(j). 32 integer registers emory (instrction and data)

Data PC Address Instr. Instr. emory Register # Register # Register # Registers Data emory Address Data Ποιες δομές περιέχουν κατάσταση; cycle Σε κάθε κύκλο ξεκινά και τελειώνει μια εντολή Κατάσταση αλλάζει στο τέλος του κύκλου και παραμένει σταθερή για ένα κύκλο

Πέντε Στάδια για την εκτέλεση μιας Εντολής (Fetch-Eecte Cycle). Προσκόμιση Εντολής (ifetch) 2. Αποκωδικοποίηση, Πρόσβαση στο Αρχείο Καταχωρητών (decode and register read) 3. Eκτέλεση (Eection) - al, υπολογισμός διεύθυνσης, branch-completion, jmp 4. Πρόσβαση στη μνήμη ή R-type πρόσβαση σε καταχωρητές (emory Access and R-type completion) 5. Εντολές μνήμης-- αποθήκευση σε καταχωρητή (emory read completion)

Μια περίληψη της υλοποίησης Ο μετρητής προγράμματος (PC-Program Conter) είναι ένας 32-bit καταχωρητής ο οποίος έχει αποθηκευμένη τη διεύθυνση της επόμενης εντολής που θα εκτελεστεί. Για κάθε εντολή τα πρώτα δύο βήματα είναι τα ίδια :. Στέλλεται το PC στη μνήμη που περιέχει τον κώδικα - προσκομίζεται (fetch) η εντολή από τη μνήμη. 2. Διαβάζεται ένας ή δύο καταχωρητές - χρησιμοποιώντας τα πεδία της εντολής, για να εντοπιστούν οι καταχωρητές που θα διαβαστούν τα δεδομένα τους, - π.χ. για την εντολή load χρειάζεται να διαβαστεί μόνο ένας καταχωρητής αλλά για άλλες εντολές πρέπει να διαβαστούν δύο καταχωρητές. Μετά από αυτά τα βήματα, οι ενέργειες που θα ακολουθήσουν για την ολοκλήρωση της εκτέλεσης της κάθε εντολής εξαρτώνται από τον τύπο της.

Τμήμα του διαδρόμου δεδομένων που χρησιμοποιείται για: προσκόμιση των εντολών από τη μνήμη και την αύξηση του μετρητή προγράμματος(pc) κατά 4 bytes. Add PC Address 4 Instr. Instr. emory Αυτό γίνεται κάθε κύκλο (δεν υπάρχει σήμα ελέγχου)

Εντολές τύπου R - Αριθμητικές και Λογικές Εντολές Οι αριθμητικές και λογικές εντολές (πχ add, sb και slt) διαβάζουν δύο καταχωρητές (2 πορτές για διάβασμα), εκτελούν μια λειτουργία και γράφουν το αποτέλεσμα σε ένα καταχωρητή ( πόρτα για γράψιμο. 5 5 5 reg. reg. 2 3264 reg. 3 Write reg Write data data data 2 control zero reslt RegWrite a. Registers b.

Control Signals Data Instr ction 5 5 5 reg. reg. 2 Write reg. Write data data data 2 32 3 control 32 32 zero reslt RegWrite Ποιοι καταχωρήτες διαβάζονται, ποιος γράφεται, ποια πράξη εκτελείται και εάν θα αποθηκευτεί το αποτέλεσμα? Εξαρτάται από τα σήματα ελέγχου

Εντολές Μνήμης - load και store Instrctions lw $t, offset($s) sw $t, offset($s) Offset: sign-etended 6-bit vale 07a3f (0 00 00 ) => 000007a3f 08a3f (000 00 00 ) => 0ffff8a3f Instr ction reg. reg. 2 Write reg. data res. Address emwrite Write data data 2 data RegWrite Write data em 6 32

reg. control Instr ction reg. 2 Write reg. Write data data data 2 RegWrite reg. zero reslt Combine R-type and I-type two different sorces for second inpt??? Two different sorces for write-data in RFILE??? Instrction reg. 2 Write reg. data res. Address emwrite lw/sw Write data data 2 data RegWrite Write data em 6 32

Ένας πολυπλέκτης τοποθετείται στην είσοδο της και Ένας πολυπλέκτης για τα δεδομένα εισόδου του αρχείου των καταχωρητών. Instr ction reg. reg. 2 Write reg. data data 2 res. Address emwrite data Write data RegWrite Write data em 6 32

PC Address Instr ction Instrction emory reg. reg. 2 Write reg. Write data data data 2 RegWrite res. emwrite Address data Write data em 4 Add 6 32

Εντολή Σύγκρισης - Branch Eqal Instrction Για παράδειγμα η εντολή: beq $s, $t, offset έχει τρεις τελεστές: - δύο καταχωρητές που συγκρίνονται για ισότητα - ένα 6-bit offset για υπολογισμό της διεύθυνσης-στόχου (branch target address) που θα κατευθυνθεί η εκτέλεση του προγράμματος. if ($s == $t) PC = PC + 4 + sign-etension(offset) 4 Else PC = PC + 4

Επίσης το πεδίο offset μετακινείται 2 bits αριστερά για να είναι word offset. Αυτή η μετακίνηση είναι βοηθητική επειδή αυξάνεται η αποτελεσματικότητα του πεδίου offset κατά ένα παράγοντα του 4. PC + 4 Add Branch target reg. Instr ction reg. 2 Write reg. data zero Write data data 2 shift left by 2 RegWrite 6 32

PC + 4 Add Branch target reg. Instr ction reg. 2 Write reg. data zero Write data data 2 shift left by 2 RegWrite 6 32 PC Address Instr ction Instrction emory reg. reg. 2 Write reg. Write data data data 2 RegWrite res. emwrite Address data Write data em 4 Add 6 32

Διάδρομος δεδομένων για τις βασικές εντολές του IPS: load/store,, branch (ένα κύκλο ρολογιού.)

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] 0 register Write data data register 2 Registers Write data 2 register 0 Zero reslt Address Write data Data memory data 0 Instrction [5 0] 6 Sign 32 etend control Instrction [5 0]

Signal Effect when deasserted 0 Effect when asserted em None Data memory contents at the read address are pt on read data otpt. emwrite None Data memory contents at address given by write address is replaced by vale on write data inpt. Src RegDst The second operand comes from the second register file otpt. The register destination nmber for the Write register comes from the rt field. The second operand is the signetended lower 6-bits of the instrction. The register destination nmber for the Write register comes from the rd field. RegWrite None The register on the Write register inpt is written into with the vale on the write data inpt. PCSrc emtoreg The PC is replaced by the otpt of the adder that comptes the vale of PC+4. The vale fed to the register write data inpt comes from the. The PC is replaced by the otpt of the adder that comptes the branch target. The vale fed to the register write data inpt comes from the data memory.

Μονάδα Έλεγχου της Αριθμητικής και Λογικής Μονάδας ( control) H έχει τρεις εισόδους ελέγχου, αλλά μόνο πέντε από τους οκτώ (2 3 ) συνδυασμούς χρησιμοποιούνται control Fnction lw,sw: add Inpt 000 AND 00 OR R-type: η χρειάζεται 00 ADD να εκτελέσει μια από τις πέντε πράξεις 0 Sbtract Set-on-less-than ανάλογα με την τιμή του 6-bit πεδίου της εντολή (fnction field). beq: sbtract.

Μπορούμε να παράξουμε τα 3-bit ελέγχου της ( control inpts) χρησιμοποιώντας μια μικρή συνδυαστική μονάδα ελέγχου που έχει ως εισόδους το πεδίο fnction της εντολής και ένα πεδίο ελέγχου 2-bit που θα ονομάζουμε Op. opcode fnction Al op Το Op καθορίζεται από το opcode πεδίο της εντολής και προσδιορίζει τη πράξη που πρέπει να εκτελεστεί, π.χ. > 00 - πρόσθεση για την εντολή load και store, > 0 - αφαίρεση για την εντολή beq, Al operation > 0 - λειτουργία που προσδιορίζεται από το πεδίο fnction της εντολής. Opcode Op Op2 000000 0 Fnction field 000 0 0 Add 00 0 0 Add 00000 0 Sbtract

Η παραγωγή των 3-bit ελέγχου της βασίζεται στο 2-bit πεδίο Op και στο 6-bit πεδίο fnction. Instrction Op Instrction Fnction Desired control opcode operation code action Inpt LW 00 load word add 00 SW 00 store word add 00 Branch eqal 0 branch eqal sbtract 0 R-type 0 add 00000 add 00 R-type 0 sbtract 0000 sbtract 0 R-type 0 AND 0000 and 000 R-type 0 OR 000 or 00 R-type 0 set-on less-than 000 set-on-less-than

Ο πίνακας αληθείας για τα 3 bits ελέγχου του F5 F4 F3 F2 F F0 Operation OP Op0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0 0 000 0 0 00 0 0

Σχεδιασμός του Κύριου Μέρους της Μονάδας Ελέγχου - R-type 0 rs rt rd shamt fnct 3-26 25-2 20-6 5-0 - 6 5-0 - Load & Store 35 or 43 rs rt address 3 26 25-2 20-6 5-0 -Branch 4 rs rt address 3-26 25-2 20-6 5-0 Το opcode bits 3-26 Op[5-0]. rs και rt bits 25-2 και 20-6, αντίστοιχα. Ο καταχωρητής βάσης (base register) 25-2 (rs). Το 6-bit πεδίο offset ( branch eqal, load και store) bits 5-0. Ο καταχωρητής προορισμού (Χρήση Πολυπλέκτη) είναι στη θέση 20-6 (rt) για την εντολή load. Για τις εντολές R-type βρίσκεται στη θέση 5- bit

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] 0 register register 2 Registers Write register Write data data data 2 0 Zero reslt Address Write data Data memory data 0 Instrction [5 0] 6 Sign 32 etend control Instrction [5 0]

Η λειτουργία της μονάδας ελέγχου καθορίζεται πλήρως από το πίνακα. Instrct opcode (3:25) R-type lw sw beq RegDst Src em to Reg Reg Write em em Write Branch Op Op0 Reg Dst Src em toreg Reg Write em em Write Branch Op Op0 Jmp

Η λειτουργία της μονάδας ελέγχου καθορίζεται πλήρως από το πίνακα. Instrct RegDst Src em Reg em em Branch to Write Write Op Op0 Reg R-type 0 0 0 0 0 0 lw 0 0 0 0 0 sw 0 0 0 0 0 beq 0 0 0 0 0 Κωδικοί εντολών Name Opcode in decimal Op5 Op4 Op3 Op2 Op Op0 R-format 0 0 0 0 0 0 0 lw 35 0 0 0 sw 43 0 0 beq 4 0 0 0 0 0

Αληθοπίνακας της λειτουργίας της μονάδας ελέγχου Inpts Otpts R-format lw sw beq Op5 0 0 Op4 0 0 0 0 Op3 0 0 0 Op2 0 0 0 Op 0 0 Op0 0 0 Regdst 0 X Src 0 0 emtoreg 0 X RegWrite 0 0 em 0 0 0 emwrite 0 0 0 Branch 0 0 0 Op 0 0 0 Op0 0 0 0

Εκτέλεση της εντολής R-type--add $,$y,$z.. Μια εντολή προσκομίζεται από τη μνήμη εντολών το PC αυξάνεται 2. Οι καταχωρητές $y και $z διαβάζονται από το αρχείο των καταχωρητών. Επίσης η κύρια μονάδα ελέγχου υπολογίζει τις τιμές για τις γραμμές ελέγχου. 3. Το λειτουργεί πάνω στα δεδομένα που διαβάστηκαν από το αρχείο των καταχωρητών χρησιμοποιώντας το fnction code της εντολής, για να επιλέξει την λειτουργία της. 4. Το αποτέλεσμα από την γράφεται στο αρχείο των καταχωρητών χρησιμοποιώντας bits 5- από την εντολή για να επιλέξει τον καταχωρητή προορισμού (εξόδου) $.

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] 0 register register 2 Registers Write register Write data data data 2 0 Zero reslt Address Write data Data memory data 0 Instrction Fetch Instrction [5 0] Register - Control Signals Eecte Instrction [5 0] 6 Sign 32 etend control Register Write

Εκτέλεση της εντολής load-- lw $,offset($y).. Η εντολή προσκομίζεται από τη μνήμη εντολών και αυξάνεται η τιμή του PC. 2. Ο καταχωρητής ($y) διαβάζεται από το αρχείο των καταχωρητών. 3. Η υπολογίζει το άθροισμα της τιμής που διαβάστηκε από το αρχείο των καταχωρητών και την σταθερά (προέκταση 6bits της εντολής). 4. Το άθροισμα από το χρησιμοποιείται ως η διεύθυνση για τη μνήμη των δεδομένων. 5. Τα δεδομένα από τη μονάδα μνήμης γράφονται στο αρχείο του καταχωρητή. Ο καταχωρητής προορισμού δίνεται από τα 20-6 bits της εντολής. Για την εντολή store η κυριότερη διαφορά είναι στο έλεγχο μνήμης όπου πρέπει να προσδιοριστεί έλεγχος γραφής και όχι διαβάσματος. - Η λειτουργία γραφής των δεδομένων της μνήμης στο αρχείο των καταχωρητών δεν θα υπάρχει.

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] Instrction [5 0] Instrction Fetch Register - Control Signals Address Calclation emory read Register Write 0 register register 2 Registers Write register Write data Instrction [5 0] data data 2 6 Sign 32 etend 0 control Zero reslt Address Write data Data memory data 0

Εκτέλεση της εντολής branch-on-eqal (υπό συνθήκη) beq $,$y,offset.. Η εντολή προσκομίζεται από τη μνήμη εντολών και αυξάνεται η τιμή του PC. 2. Δύο καταχωρητές ($,$y) διαβάζονται από το αρχείο των καταχωρητών. 3. Η αφαιρεί τις τιμές των δεδομένων που διάβασε από το αρχείο των καταχωρητών. Η τιμή του PC+4 προστίθεται στο σταθερά (sign-etended lower 6 bits της εντολής (offset)), το αποτέλεσμα είναι η διεύθυνση - στόχος του branch. 4. Τo αποτέλεσμα μηδέν από την χρησιμοποιείται για να επιλέξουμε το αποτέλεσμα του αθροιστή που θα αποθηκεύσουμε στο PC.

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] Instrction [5 0] 0 register register 2 Registers Write register Write data Instrction Fetch Register - Control Signals -Compare, ADD Address calclation PC Write Instrction [5 0] data data 2 6 Sign 32 etend 0 control Zero reslt Address Write data Data memory data 0

0 4 Add Instrction [3 26] Control RegDst Branch em emtoreg Op emwrite Src RegWrite Shift left 2 Add reslt PC address Instrction memory Instrction [3 0] Instrction [25 2] Instrction [20 6] Instrction [5 ] 0 register register 2 Registers Write register Write data data data 2 0 Zero reslt Address Write data Data memory data 0 Add jmp Instrction [5 0] Instrction [5 0] 6 Sign 32 etend control

Υλοποίηση της Εντολής Άλμα (jmp) Πώς μπορεί να επεκταθεί η υλοποίηση ώστε να περιέχει και την εντολή jmp? Πως θα δοθούν (αρχικές) τιμές στις νέες γραμμές ελέγχου? Η εντολή jmp μοιάζει με την εντολή branch, αλλά υπολογίζει διαφορετικά τη διεύθυνση-στόχος PC και εκτελείται πάντα. Όπως στη branch, τα low order 2 bits της διεύθυνσης (της jmp) είναι πάντοτε 00. Τα υπόλοιπα lower 26 bits από αυτά της 32 bits διεύθυνσης προέρχονται από το 26 bit immediate πεδίο της εντολής. Τα pper 4 bits της διεύθυνσης προέρχονται από το τρέχον PC. Έτσι μπορούμε να υλοποιήσουμε την jmp αποθηκεύοντας στο PC την ένωση των: - pper for bits του τρέχον PC (bits 3-28) - τα 26 bits του πεδίου immediate της εντολής jmp. - τα bits 00

Προσθήκες στο βασικό σχεδιασμό (Σχήμα 5.9) για την υλοποίηση της Εντολής Άλμα (jmp) Προσθέτουμε έναν επιπλέον πολυπλέκτη για επιλογή της πηγής για τη καινούργια τιμή του PC που θα είναι είτε PC+4, είτε branch target PC, είτε jmp target PC. Προσθέτουμε ένα επιπλέον σήμα ελέγχου χρειάζεται για τον επιπρόσθετο πολυπλέκτη. Το σήμα ελέγχου ονομάζεται Jmp που ενεργοποιείτε όταν η εντολή είναι jmp, δηλ. όταν το opcode είναι 2.

Αληθοπίνακας της λειτουργίας της μονάδας ελέγχου Inpts Otpts R-format lw sw beq Op5 0 0 Op4 0 0 0 0 Op3 0 0 0 Op2 0 0 0 Op 0 0 Op0 0 0 Regdst 0 X Src 0 0 emtoreg 0 X RegWrite 0 0 em 0 0 0 emwrite 0 0 0 Branch 0 0 0 Op 0 0 0 Op0 0 0 0 Jmp JUP 0 0 0 0

Data PC Address Instr. Instr. emory Register # Register # Register # Registers Data emory Address Data cycle