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

Σχετικά έγγραφα
Σχεδίαση της Διόδου Δεδομένων

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

Ελίνα Μακρή

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

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

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Ολοκληρωμένα Κυκλώματα

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

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

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΑΝΤΩΝΗΣ ΠΑΣΧΑΛΗΣ

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

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

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

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

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

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

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

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

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

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ενότητα 1. Λογικής Σχεδίασης. Καθηγητής Αντώνης Πασχάλης

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Σχεδίαση Ψηφιακών Συστημάτων

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

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

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

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

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

Ασύγχρονοι Απαριθμητές. Διάλεξη 7

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

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

Ακολουθιακά Κυκλώµατα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ακολουθιακά Κυκλώµατα (συν.) Ακολουθιακή Λογική: Έννοια

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

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

ε. Ένα κύκλωμα το οποίο παράγει τετραγωνικούς παλμούς και απαιτείται εξωτερική διέγερση ονομάζεται ασταθής πολυδονητής Λ

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

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

ΑΣΚΗΣΗ 9. Tα Flip-Flop

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΡΩΤΟΤΥΠΟ ΕΡΓΑΛΕΙΟ ΑΥΤΟΜΑΤΗΣ ΕΞΑΓΩΓΗΣ ΚΩΔΙΚΑ VHDL

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων. Διδάσκοντες

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

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

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

w x y Υλοποίηση της F(w,x,y,z) με πολυπλέκτη 8-σε-1

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Στο σχήμα 3.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί οποιαδήποτε από τις κάτωθι εντολές σε ένα κύκλο ρολογιού.

Ψηφιακή Λογική Σχεδίαση

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

Καταχωρητές,Σύγχρονοι Μετρητές και ΑκολουθιακάΚυκλώματα

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

Σχεδιασμός Ψηφιακών Συστημάτων

Καταστάσεων. Καταστάσεων

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ (Τ.Ε.Ι.) ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής & Πολυµέσων. Ψηφιακή Σχεδίαση. Κεφάλαιο 5: Σύγχρονη Ακολουθιακή

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

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ. Να μελετηθεί η λειτουργία του ακόλουθου κυκλώματος. Ποιος ο ρόλος των εισόδων του (R και S) και πού βρίσκει εφαρμογή; R Q

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

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

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

Σχεδίαση Ψηφιακών Συστημάτων

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Transcript:

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ - VHDL ΥΛΙΚΟ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ενότητα 5 Σχεδίαση της Μονάδας Ελέγχου Καθηγητής Αντώνης Πασχάλης 2017

Γενικές Γραμμές Σχεδίαση Μονάδας Ελέγχου σαν Μηχανή Πεπερασμένων Καταστάσεων (FSM) Ταξινόμηση των Σημάτων Ελέγχου Προσδιορισμός Διακριτών Καταστάσεων Παράδειγμα Υλοποίησης Απλού Επεξεργαστή Δίοδος Δεδομένων Μικρολειτουργίες Σήματα Ελέγχου Διακριτές Καταστάσεις Διάγραμμα Καταστάσεων Απλού Επεξεργαστή Κλασική σχεδίαση της Μονάδας Ελέγχου που βασίζεται Κλασική σχεδίαση της Μονάδας Ελέγχου που βασίζεται στη λογική σχεδίαση

RISC Ενσωματωμένοι Επεξεργαστές Reset CLK Μονάδα Ελέγχου Καταστάσεις (states) για δίοδο δεδομένων πολλών κύκλων opcode, funct σήματα ελέγχου Ιmem _ en = 1 Dmem _ en = 1 Imem_write = 0 Dmem_write Imem SRAM 32 32 IR PC Δίοδος Δεδομένων MAR MDR in MDR out 32 32 32 Dmem SRAM Reset CLK

Επεξεργαστής ξργ - CPU Δίοδος Δεδομένων (Datapath) χρησιμοποιείται για την εκτέλεση των εντολών, η οποία ανάγεται στην εκτέλεση μίας ακολουθίας στοιχειωδών λειτουργιών που στη συνέχεια ονομάζουμε μικρο-λειτουργίες Μονάδα Ελέγχου παράγει τα κατάλληλα σήματα ελέγχου που απαιτούνται για το συγχρονισμό όλων των μονάδων του υπολογιστή αποκωδικοποιεί την εντολή που θα εκτελεσθεί και παράγει για κάθε μικρο-λειτουργία τα αντίστοιχα σήματα ελέγχου στον κατάλληλο κύκλο ρολογιού

Μονάδα Ελέγχου του MIPS R2000 Για δίοδο δεδομένων πολλών κύκλων, χωρίς να υποστηρίζει παραλληλία σε επίπεδο εκτέλεσης εντολής, η μονάδα ελέγχου : Αποκωδικοποιεί την εντολή που θα εκτελεσθεί με βάση το πεδίο κωδικού λειτουργίας (opcode) της εντολής και το πεδίο λειτουργίας (funct) μόνο για τις εντολές τύπου R Βάζει κατάλληλες τιμές στα αντίστοιχα σήματα ελέγχου, ώστε, για κάθε εντολή, να εκτελούνται παράλληλα μία ή περισσότερες μικρο-λειτουργίες σε κάθε κύκλο ρολογιού Π ά δύ δώ ά λέ ξ ύ Παράγει δύο ειδών σημάτων ελέγχου, που ταξινομούνται σε δύο κατηγορίες Α και Β, αντίστοιχα

Ταξινόμηση των Σημάτων Ελέγχου Κατηγορία Α: Σήματα ελέγχου που έχουν σταθερή τιμή σε όλους τους κύκλους κατά την εκτέλεση της εντολής Τα σήματα αυτά προσδιορίζουν τη μικρο-λειτουργία που θα εκτελέσουν οι λειτουργικές μονάδες της διόδου δεδομένων κατά την εκτέλεση της εντολής (για παράδειγμα, το σήμα ALUop της ALU), καθώς και τη ροή των δεδομένων μέσα στη δίοδο δεδομένων (για παράδειγμα όλα τα σήματα επιλογής των πολυπλεκτών). Τα σήματα αυτά παράγονται με συνδυαστική λογική και παίρνουν σταθερές τιμές 0, 1 ή '-' κατά την εκτέλεση μίας εντολής. Κατηγορία Β: Σήματα ελέγχου που πρέπει να έχουν την τιμή 1 μόνο σε ένα συγκεκριμένο κύκλο κατά την εκτέλεση της εντολής (για θετική λογική) Τα σήματα αυτά επιτρέπουν την εγγραφή, (σήματα write enable) στους καταχωρητές και στις μνήμες του επεξεργαστή Τα σήματα αυτά παράγονται με ακολουθιακή λογική και παίρνουν αποκλειστικά τις τιμές 1 ή 0 που μεταβάλλονται ανάλογα με τον κύκλο ρολογιού κατά την εκτέλεση μίας εντολής.

Διαδικασία Σχεδίασης Μονάδας Ελέγχου σαν Μηχανή Πεπερασμένων Καταστάσεων Για κάθε εντολή προσδιορίζουμε τις αντίστοιχες μικρο-λειτουργίες που εκτελούνται σε κάθε φάση (ή κύκλο) εκτέλεσης της εντολής Συνεπώς για κάθε εντολή: Προσδιορίζουμε ρ τις τιμές στην είσοδο της μονάδας ελέγχου (opcode, funct), που αντιστοιχούν στη συγκεκριμένη εντολή Προσδιορίζουμε τις τιμές των σημάτων ελέγχου σε κάθε φάση (ή κύκλο) εκτέλεσης εσης της εντολής Ταξινομούμε τα σήματα ελέγχου ανάλογα με τη διάρκεια των τιμών τους κατά την εκτέλεση της εντολής στις δύο κατηγορίες Α και Β Για την παραγωγή των σημάτων της κατηγορίας Α υλοποιούμε συνδυαστική λογική Για την παραγωγή των σημάτων της κατηγορίας Β υλοποιούμε ακολουθιακή λογική (Μηχανή Πεπερασμένων Καταστάσεων) Για την υλοποίηση της Μηχανής Πεπερασμένων Καταστάσεων Προσδιορίζουμε τις διακριτές καταστάσεις Προσδιορίζουμε τις μεταβάσεις ανάμεσα στις διακριτές καταστάσεις με τις αντίστοιχες συνθήκες εισόδου, εάν υπάρχουν

Διαδικασία Σχεδίασης Μονάδας Ελέγχου σαν Μηχανή Πεπερασμένων Καταστάσεων Για κάθε διακριτή κατάσταση προσδιορίζουμε τις τιμές των σημάτων ελέγχου της Κατηγορίας Β που εξαρτώνται από την τρέχουσα κατάσταση και την αντίστοιχη συνθήκη εισόδου (έξοδοι τύπου Mealy) που εξαρτώνται από την τρέχουσα κατάσταση αποκλειστικά (έξοδοι τύπου Moore) Τέλος, σχεδιάζουμε το διάγραμμα καταστάσεων

Υλοποίηση Απλού Επεξεργαστή Ρεπερτόριο Εντολών Τύπου Immediate LW rt, immediate(rs) SW rt, immediate(rs) ADDIU rt, rs, immediate ANDI rt, rs, immediate ORI rt, rs, immediate XORI rt, rs, immediate 31 26 21 16 0 opcode rs rt immediate - offset 6 Bits 5 Bits 5 Bits 16 Bits = 32 Bits

Υλοποίηση Απλού Επεξεργαστή Σήματα Ελέγχου Κατηγορίας Α εντολή πεδίο opcode Sign/Zero ALUop DM/ALU ADDIU ANDI ORI XORI LW SW 9 12 13 14 35 43 001 001 001 100 001 101 001 110 100 011 101 011 1 0 0 0 1 1 001 100 101 110 011 011 0 0 0 0 1 1 Τα σήματα ελέγχου Sign/Zero, ALUop[2:0] και DM/ALU παράγονται απευθείας από το πεδίο opcode op[5:0] του καταχωρητή IR χωρίς τη μεσολάβηση της μονάδας ελέγχου. Sign/Zero = ΝΟΤ op[2] Επιλέγει επέκταση πρόσημου (=1) ή μηδενός (=0) στη μονάδα επέκτασης ALUop[2] = op[2] Επιλέγει έξοδο από αθροιστή (=0) ή λογική μονάδα (=1) της ALU ALUop[1:0] = op[1:0] Επιλέγει λειτουργία της λογικής μονάδας (=00 AND, =01 OR, =10 XOR) DM/ALU = op[5] Επιλέγει πηγή για εγγραφή στο αρχείο καταχωρητών από Dmem (=1) ή ALU (=0)

Υλοποίηση Απλού Επεξεργαστή Αριθμητική και Λογική Μονάδα (ALU) Bus_A Bus_BB Bus_A Bus_BB 32 32 32 32 αθροιστής λογική μονάδα 2 ALUop[1:0] ALUop[2] 0 1 πολυπλέκτης 2 σε 1 x32 Bus_S 32

Δίοδος Δεδομένων Απλού Επεξεργαστή PC PC_write 4 INC NPC 32 32 Reg_write Imem_write Imem cache rs, rt Bus_ W REG FILE 32 32 A 32 B 32 ALU 3 ALUop 32 32 I MAR 32 MAR_write S 32 0 mux 1 DM/ALU IR imm EXT S/Z 32 MDR in 32 Dmem cache 32 MDR out 32 IR_write Sign/Zero Dmem_write

Υλοποίηση Απλού Επεξεργαστή Μικρο-Λειτουργίες και Σήματα Ελέγχου Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_write = 1 1 Αποκωδικοποίηση εντολής Δάβ Διάβασμα καταχωρητών & Επέκταση A <= reg[rs rs] B <= reg[rt] I <=sign/zero_extend[imm] imm] Sign/Ζero =1/0 2 Εκτέλεση πράξεων Υπολoγισμός διευθύνσεων MAR <= A + I S <= A +/and/or/xor I MDR_in <= B ALUop[2:0] = Βλέπε σήματα ελέγχου ALU MAR_ write = 1/0 3 Προσπέλαση μνήμης δεδομένων MDR_out <= Dmem[MAR] Dmem[MAR] <= MDR_in Dmem_write = 1/0 4 Εγγραφή καταχωρητή Επιλογή διεύθυνσης εντολής που θα εκτελεσθεί reg[rt] <= S/MDR_out PC <= NPC Reg_write = 1/0 DM/ALU =1/0/x 5 PC_write = 1 Imem_en = Dmem_en = 1 πάντα

1 Υλοποίηση Απλού Επεξεργαστή Ταξινόμηση και Επίδραση των Σημάτων Ελέγχου Imem_write (Β) Imem_en (A) IR_write (Β) τιμή = 0 τιμή = 1 Δάβ Διάβασμα από όi Imem Εγγραφή στην Imem Απενεργοποίηση Imem Ενεργοποίηση Imem Τίποτα Εγγραφή στον IR 2 Sign/Ζero = not op[2] (Α) Επέκταση μηδενός Επέκταση πρόσημου 3 MAR_write (B) Τίποτα Εγγραφή στον MAR 4 Dmem_write (B) Dmem_en (A) Διάβασμα από Dmem Απενεργοποίηση Dmem Εγγραφή στην Dmem Ενεργοποίηση Dmem 5 Reg_write (B) DM/ALU = op[5] (A) PC_write (B) Τίποτα Bus_W =S Τίποτα Εγγραφή στο Reg. File Bus_W = MDR_out Εγγραφή στον PC ALUop[2] = op[2] Logic/Arithmetic' (ALU) (A) ALUop[1:0] = op[1:0] = 00 (AND), 01 (OR), 10 (XOR) (A)

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (LW) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_write = 1 S0 Αποκωδικοποίηση εντολής Διάβασμα καταχωρητών & Επέκταση A <= reg[rs] I <=sign_extend[imm] Sign/Ζero = 1 S1 Εκτέλεση πράξεων Υπολoγισμός διευθύνσεων MAR <= A + I ALUop[2:0] = 011 MAR_write = 1 S2a Προσπέλαση μνήμης δεδομένων Εγγραφή καταχωρητή Επιλογή διεύθυνσης εντολής που θα εκτελεσθεί MDR_out <= Dmem[MAR] Dmem_write = 0 reg[rt] <= MDR_out Dmem_write = 0 PC <= NPC Reg_write = 1 DM/ALU = 1 PC_write = 1 Imem_en = Dmem_en = 1 πάντα S3 S4a

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (SW) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_ write = 1 S0 Αποκωδικοποίηση εντολής Διάβασμα καταχωρητών & Επέκταση A <= reg[rs rs] B <= reg[rt] I <=sign_extend[imm] Sign/Ζero = 1 S1 Εκτέλεση πράξεων Υπολoγισμός διευθύνσεων MAR <= A + I MDR_in <= B ALUop[2:0] = 011 MAR_write = 1 S2a Προσπέλαση μνήμης δεδομένων Επιλογή διεύθυνσης εντολής που θα εκτελεσθεί Dmem[MAR] <= MDR_in PC <= NPC Dmem_write = 1 Reg_write = 0 S4b DM/ALU = 1 PC_write = 1 Imem_en = Dmem_en = 1 πάντα

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (ADDIU) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_ write = 1 S0 Αποκωδικοποίηση εντολής Δάβ Διάβασμα καταχωρητών & Επέκταση A <= reg[rs] I <=sign_extend[imm] Sign/Ζero = 1 S1 Εκτέλεση πράξεων S <= A + I ALUop[2:0] = 001 MAR_write = 0 Εγγραφή reg[rt] [t] <= S καταχωρητή PC <= NPC Dmem_write = 0 Επιλογή διεύθυνσης εντολής που θα Reg_write = 1 εκτελεσθεί DM/ALU = 0 PC_write = 1 S2b S4a Imem_en = Dmem_en = 1 πάντα

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (ANDI) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_ write = 1 S0 Αποκωδικοποίηση εντολής Δάβ Διάβασμα καταχωρητών & Επέκταση A <= reg[rs] I <=zero_extend[imm] Sign/Ζero = 0 S1 Εκτέλεση πράξεων S <= A and I ALUop[2:0] = 100 MAR_write = 0 Εγγραφή reg[rt] [t] <= S καταχωρητή PC <= NPC Dmem_write = 0 Επιλογή διεύθυνσης εντολής που θα Reg_write = 1 εκτελεσθεί DM/ALU = 0 PC_write = 1 S2b S4a Imem_en = Dmem_en = 1 πάντα

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (ORI) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_ write = 1 S0 Αποκωδικοποίηση εντολής Δάβ Διάβασμα καταχωρητών & Επέκταση A <= reg[rs] I <=zero_extend[imm] Sign/Ζero = 0 S1 Εκτέλεση πράξεων S <= A or I ALUop[2:0] = 101 MAR_write = 0 Εγγραφή reg[rt] [t] <= S καταχωρητή PC <= NPC Dmem_write = 0 Επιλογή διεύθυνσης εντολής που θα Reg_write = 1 εκτελεσθεί DM/ALU = 0 PC_write = 1 S2b S4a Imem_en = Dmem_en = 1 πάντα

Μικρο-Λειτουργίες, Σήματα Ελέγχου και Καταστάσεις (XORI) Προσκόμιση εντολής Υπολογισμός PC+4 IR <= Imem[PC] NPC <= PC + 4 Imem_write = 0 IR_ write = 1 S0 Αποκωδικοποίηση εντολής Δάβ Διάβασμα καταχωρητών & Επέκταση A <= reg[rs] I <=zero_extend[imm] Sign/Ζero = 0 S1 Εκτέλεση πράξεων S <= A xor I ALUop[2:0] = 110 MAR_write = 0 Εγγραφή reg[rt] [t] <= S καταχωρητή PC <= NPC Dmem_write = 0 Επιλογή διεύθυνσης εντολής που θα Reg_write = 1 εκτελεσθεί DM/ALU = 0 PC_write = 1 S2b S4a Imem_en = Dmem_en = 1 πάντα

Διάγραμμα Καταστάσεων reset = 1 op = LW,SW S0 S1 Imem_write = 0 IR_write = 1 op = ADDIU,ANDI,ORI,XORI MAR_write = 1 S2a S2b MAR_write = 0 op = LW op = SW Dmem_write = 0 S3 S4b Dmem_write = 0 Reg_write = 1 PC_write = 1 Dmem_write = 1 S4a Reg_write = 0 PC_write = 1

Διαδικασία Σχεδίασης Μονάδας Ελέγχου Κλασική σχεδίαση που βασίζεται στη λογική σχεδίαση Πίνακας Προσδιορισμού Λογικών Συναρτήσεων των Σημάτων στην Έξοδο Σήματα στην έξοδο, τρέχουσες καταστάσεις, συνθήκες στην είσοδο (μόνο για τύπου Mealy) Πίνακας Προσδιορισμού Λογικών Συναρτήσεων της Επόμενης Κατάστασης Επόμενες καταστάσεις, τρέχουσες καταστάσεις, συνθήκες στην είσοδο Επιλογή Κωδικοποίησης Καταστάσεων Πίνακας Εξόδου Τύπου Moore Τρέχουσες καταστάσεις, σήματα στην έξοδο (πίνακας αλήθειας) Πίνακας Εξόδου Τύπου Mealy Τρέχουσες καταστάσεις, συνθήκες στην είσοδο (οριζόντια), σήματα στην έξοδο Τρέχουσες ρχ καταστάσεις, είσοδοι (κατακόρυφα), σήματα στην έξοδο (πίνακας αλήθειας) Απλοποίηση και εξαγωγή Εξισώσεων Εξόδου

Διαδικασία Σχεδίασης Μονάδας Ελέγχου Κλασική σχεδίαση που βασίζεται στη λογική σχεδίαση Πίνακας Καταστάσεων τρέχουσες καταστάσεις, είσοδοι (κατακόρυφα), επόμενες καταστάσεις (πίνακας αλήθειας) Απλοποίηση και εξαγωγή εξισώσεων μετάβασης (για τη λογική επόμενης κατάστασης) η επόμενη κατάσταση σαν συνάρτηση της τρέχουσας κατάστασης και της εισόδου Για υλοποίηση με D Flip-Flops

Πίνακας Προσδιορισμού Λογικών Συναρτήσεων Σημάτων Ελέγχου Ο πίνακας προσδιορισμού λογικών συναρτήσεων σημάτων ελέγχου έχει τρεις στήλες, όπου : στην πρώτη στήλη γράφονται τα σήματα ελέγχου, στη δεύτερη στήλη γράφονται οι τρέχουσες καταστάσεις, που ενεργοποιούν τα σήματα ελέγχου (mxx = 1) εάν είναι περισσότερες από μία χωρίζονται με το σύμβολο «+», που έχει την έννοια του λογικού OR στην τρίτη στήλη γράφονται οι συνθήκες στην είσοδο, που πρέπει να ικανοποιούνται για να ενεργοποιηθεί ένα σήμα ελέγχου (μόνο για τα σήματα ελέγχου τύπου Mealy) εάν είναι περισσότερες από μία χωρίζονται με το σύμβολο «+», που έχει την έννοια του λογικού OR Γίνεται επαλήθευση εάν οι καταστάσεις είναι διακριτές μεταξύ τους

Πίνακας Προσδιορισμού Λογικών Συναρτήσεων Σημάτων Ελέγχου Σήματα Ελέγχου Τρέχουσες Καταστάσεις m00: PC_write S4a + S4b m01: Imem_write m02: IR_write S0 m03: MAR_write S2a m04: Dmem_write S4b m05: Reg_write S4a Είσοδοι (opcode) Όλα τα σήματα ελέγχου είναι τύπου Moore Οι καταστάσεις S1, S2b και S3 δεν ενεργοποιούν κανένα σήμα ελέγχου, αλλά δεν ενοποιούνται γιατί έχουν διαφορετική επόμενη κατάσταση Το σήμα ελέγχου Imem_write δεν ενεργοποιείται

Πίνακας Προσδιορισμού Λογικών Συναρτήσεων Επόμενης Κατάστασης Ο πίνακας προσδιορισμού λογικών συναρτήσεων επόμενης κατάστασης έχει τρεις στήλες, όπου : στην πρώτη στήλη γράφονται οι επόμενες καταστάσεις, στη δεύτερη στήλη γράφονται οι τρέχουσες καταστάσεις, από τις οποίες μπορεί να γίνει μετάβαση στη συγκεκριμένη επόμενη κατάσταση εάν είναι περισσότερες από μία χωρίζονται με το σύμβολο «+», που έχει την έννοια του λογικού OR στην τρίτη στήλη γράφονται οι συνθήκες στην είσοδο που πρέπει να ικανοποιούνται, για να γίνει μετάβαση από την τρέχουσα κατάσταση στην επόμενη κατάσταση εάν είναι περισσότερες από μία χωρίζονται με το σύμβολο «+», που έχει την έννοια του λογικού OR Γίνεται επαλήθευση εάν οι καταστάσεις είναι διακριτές μεταξύ τους

Πίνακας Προσδιορισμού Λογικών Συναρτήσεων Επόμενης Κατάστασης Επ. Καταστάσεις Τρέχουσες Καταστάσεις Είσοδοι (opcode) S0 S4a + S4b S1 S0 S2a S1 LW + SW S2b S1 ADDIU + ANDI + ORI + XORI S3 S2a LW S4a S3 + S2b S4b S2a SW

Επιλογή Κωδικοποίησης Καταστάσεων Δυαδική Κωδικοποίηση - Binary (κατάλληλη για CPLDs) Κωδικοποίηση Gray (κατάλληλη για χαμηλή κατανάλωση ισχύος) Κωδικοποίηση Οne-Ηot (κατάλληλη για FPGAs) στην κωδικοποίηση ο one-hot ot σε κάθε κατάσταση αση αντιστοιχούμε και ένα D flip-flop με αποτέλεσμα να αυξάνεται πάρα πολύ ο αριθμός των χρησιμοποιούμενων D flip-flops flops και να μειώνoνται οι μεταβλητές των όρων των λογικών συναρτήσεων

Επιλογή Κωδικοποίησης Καταστάσεων Καταστάσεις Κωδικοποίηση One-Hot S0 0000001 S1 S2a S2b 0000010 0000100 0001000 S3 0010000 S4a 0100000 S4b 1000000

Πίνακας Αλήθειας Σημάτων Ελέγχου Τρ. Καταστάσεις Σήματα Ελέγχου cs[6:0] 00 01 02 03 04 05 Εξισώσεις Εξόδου S0 0000001 0 0 1 0 0 0 m00 = cs[5] + cs[6] S1 0000010 0 0 0 0 0 0 m01 = 0 S2a 0000100 0 0 0 1 0 0 m02 = cs[0] S2b 0001000 0 0 0 0 0 0 m03 = cs[2] S3 0010000 0 0 0 0 0 0 m04 = cs[6] S4a 0100000 1 0 0 0 0 1 S4b 1000000 1 0 0 0 1 0 m05 = cs[5] Όλα τα σήματα ελέγχου είναι τύπου Moore Οι καταστάσεις S1, S2b και S3 δεν ενεργοποιούν κανένα σήμα ελέγχου, αλλά δεν ενοποιούνται γιατί έχουν διαφορετική επόμενη κατάσταση Το σήμα ελέγχου m01 (Imem_write) δεν ενεργοποιείται

Πίνακας Αλήθειας Επόμενης Κατάστασης Τρ. Καταστάσεις cs[6:0] S0 0000001 S1 0000010 S1 0000010 S1 0000010 S1 0000010 S1 0000010 S1 0000010 S2a 0000100 S2a 0000100 Είσοδοι (opcode) op[5:0] Επ. Καταστάσεις ns[6:0] S1 0000010 S2a 0000100 S2a 0000100 S2b 0001000 S2b 0001000 S2b 0001000 S2b 0001000 S3 0010000 S4b 1000000 LW 100011 SW 101011 ADDIU 001001 ANDI 001100 ORI 001101 XORI 001110 LW 100011 SW 101011 S2b 0001000 S4a 0100000 S3 0010000 S4a 0100000 S4a 0100000 S4b 1000000 S0 0000001 S0 0000001

Εξισώσεις Μετάβασης (Επόμενης Κατάστασης) ns[0] = cs[5] + cs[6] ns[1] = cs[0] ns[2] = cs[1] op[5] ns[3] = cs[1] op[5]' ns[4] = cs[2] op[3]' ns[5] = cs[3] + cs[4] ns[6] = cs[2] op[3] Προκύπτουν από τον Πίνακα Αλήθειας Επόμενης Κατάστασης μετά από απλοποιήσεις χωρίς να ληφθεί υπόψη η ασφαλής λειτουργία Η απλότητα των συναρτήσεων οφείλεται στην κωδικοποίηση One Hot Ασφαλής λειτουργία επιτυγχάνεται όταν κάθε μη επιτρεπτή τρέχουσα κατάσταση έχει σαν επόμενη κατάσταση την κατάσταση S0

Υλοποίηση της Μονάδας Ελέγχου reset Είσοδοι: opcode CLK CLK ΙnR SR op[0] οp[5] cs[0] cs[6] CS: τρέχουσα κατάσταση Λογική Εξόδου m00 = cs[5]+cs[6] m01 = 0 m02 = cs[0] m03 = cs[2] m04 = cs[6] m05 = cs[5] Λογική NS ns[0] = cs[5]+cs[6] ns[1] = cs[0] ns[2] = cs[1] op[5] ns[3] = cs[1] op[5]' ns[4] = cs[2] op[3]' ns[5] = cs[3]+cs[4] ns[6] = cs[2] op[3] Έξοδοι: σήματα ελέγχου m00 m05 NS: επόμενη κατάσταση ns[0] ns[6]

Αρχικοποίηση Επεξεργαστή Καταχωρητής PC = Α0 με ασύγχρονο reset Καταχωρητές InR = 0 και SR = S0 με ασύγχρονο reset Προσκόμιση της πρώτης εντολής από τη μνήμη εντολών που είναι αποθηκευμένη στη διεύθυνση Α0 Στην πρώτη ακμή του ρολογιού έχουμε : αποθήκευση της πρώτης προς εκτέλεση εντολής στον καταχωρητή εντολών IR, και στον καταχωρητή εισόδων InR (κωδικός λειτουργίας) αποθήκευση στον καταχωρητή SR = S1