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

Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

Pipelined Datapath, Hazards and Forwarding

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

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

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

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

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

Μικροβιολογία & Υγιεινή Τροφίμων

Δομημένος Προγραμματισμός

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

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

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Αρχιτεκτονικό σύνολο εντολών Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Σχεδίαση επεξεργαστή Αρης Ευθυμίου Πηγή: Διαφάνειες CS61C, UCB

Το σημερινό μάθημα!!!!! Σχεδίαση επεξεργαστή Δίαυλος δεδομένων, τμήμα ελέγχου Στάδια εκτέλεσης Βήματα σχεδίασης επεξεργαστή Χρονισμός 2

5 κύρια τμήματα υπολογιστή 3

Ο επεξεργαστής! Επεξεργαστής, Processor (CPU): Το τμήμα του υπολογιστή που κάνει όλη τη δουλειά (υπολογισμοί και αποφάσεις)! Δίαυλος δεδομένων, Datapath: το τμήμα του επεξεργαστή που περιλαμβάνει όλα τα κυκλώματα που απαιτούνται για να γίνουν οι «δουλειές» (οι μύες)! Ελεγχος, Control: το τμήμα του επεξεργαστή που καθοδηγεί το δίαυλο δεδομένων ώστε να γίνει η «δουλειά» (το μυαλό)! Σε πολυπύρινα συστήματα, όπου «επεξεργαστής» σκεφτείτε «πυρήνας» 4

Στάδια εκτέλεσης! Για καλύτερη οργάνωση σκεφτόμαστε την εκτέλεση εντολών ως ένα αριθμό από βήματα/στάδια! Πολλά από τα στάδια εκτέλεσης είναι ίδια ή έχουν σημαντικές ομοιώτητες για όλες τις εντολές! Τα δύο πρώτα στάδια είναι ίδια για κάθε εντολή Instrucoon Fetch: Δίνοντας τον PC ως διευθυνση στη μνήμη, διαβάζουμε την εντολή που θα εκτελεστεί Instrucoon Decode: αποκωδικοποίηση της εντολής ώστε να καταλάβουμε τί είδους είναι και τι ακριβώς πρέπει να γίνει 5

Στάδια εκτέλεσης! Τα υπόλοιπα στάδια εξαρτώνται από το είδος της εντολής αριθμητικές/λογικές πράξεις διαβάζουν καταχωρητές, κάνουν κάποιο υπολογισμό και γράφουν το αποτέλεσμα σε έναν καταχωρητή μεταφορές από/προς μνήμη: διαβάζουν καταχωρητές, υπολογίζουν τη διεύθυνση και κάνουν τη μεταφορά! οι load γράφουν τιμή σε καταχωρητή διακλαδώσεις: διαβάζουν καταχωρητές, υπολογίζουν τη συνθήκη, και αν ισχύει, υπολογίζουν τη διεύθυνση στόχου και αλλάζουν τον PC! Ολες, εκτός από άλματα και «ακολουθούμενες» διακλαδώσεις (taken branches) θέτουν τον PC = PC+4 6

Ομοιώτητες σταδίων εκτέλεσης! Δεν είναι τυχαίες: προέρχονται από την ομοιομορφία και απλότητα του σετ εντολών! Ολες οι εντολές διαβάζουν 1 ή 2 καταχωρητές επειδή τα πεδία στην κωδικοποίηση είναι σε σταθερά σημεία, η ανάγνωση μπορεί να γίνει ταυτόχρονα με την αποκωδικοποίηση πρίν καν γνωρίζουμε το είδος της εντολής!! Ολες, εκτός από άλματα, κάνουν κάποιο υπολογισμό αριθμητικές/λογικές μεταφορές δεδομένων: υπολογισμός διεύθυνσης διακλαδώσεις με συνθήκη: συνθήκη, διεύθυνση στόχου! Εγγραφή καταχωρητή: όλες εκτός από store, διακλαδώσεις, άλματα 7

Τα 5 στάδια εκτέλεσης 1. 2. 3. 4. 5. Προσκόμιση εντολής Αποκωδικοποίηση (+ ανάγνωση καταχωρητών) Υπολογισμός (χρήση ALU) Προσπέλαση μνήμης Εγγραφή αποτελέσματος! Δεν είναι όλα τα στάδια απαραίτητα για κάθε εντολή: π.χ. προσπέλαση μνήμης για εντολές επεξεργασίας ή διακλαδόσεις παρακάμπτονται ή η εντολή είναι αδρανής σε αυτό το στάδιο! Η load είναι η πιο απαιτητική: χρειάζεται όλα τα στάδια 8

Προσκόμιση εντολής! Ανάγνωση μνήμης στη διεύθυνση που έχει ο PC μία λέξη 32 bit - εντολή! Ταυτόχρονα μπορούμε να υπολογίσουμε το PC+4 που θα χρειαστεί για την επόμενη εντολή εκτός αν η εντολή είναι διακλάδωση, ή άλμα 9

Αποκωδικοποίηση! Πρώτα εξετάζεται το πεδίο opcode (bits 31:26) που θα καθορίσει τα υπόλοιπα πεδία της εντολής! Ανάγνωση καταχωρητών ο rs πάντα διαβάζεται ο rt τις περισσότερες φορές! η ανάγνωση δεν κάνει κακό! Διαβάζουμε και αν, τελικά, δεν χρειάζεται, αγνοούμε την τιμή! «Εύρεση» της σταθεράς (εντολές τύπου I, J) 10

Στάδιο υπολογισμού (ALU)! Αριθμητικές εντολές: η κύρια δουλειά γίνεται εδώ add, sub, slt, Δύο παραλλαγές: 2 καταχωρητές ή καταχωρητής - σταθερά! Εντολές διακλάδοσης: υπολογισμός της συνθήκης beq, bne: σύγκριση ισότητας (π.χ. με αφαίρεση)! Εντολές μεταφοράς: υπολογισμός διεύθυνσης τιμή καταχωρητή + σταθερά 11

Προσπέλαση μνήμης! Χρειάζεται μόνο για τις εντολές load, store! Οι υπόλοιπες εντολές το παραλείπουν! Store: Αποθήκευσε την τιμή του καταχωρητή που διαβάστηκε ήδη στην υπολογισμένη διεύθυνση! Load Διάβασε από την διεύθυνση 12

Εγγραφή καταχωρητή! Το αποτέλεσμα του υπολογισμού! ή η τιμή που διαβάσαμε από τη μνήμη! Αποθηκεύεται σε έναν καταχωρητή rd για τύπου R rt για τύπου I 13

Πρόχειρη υλοποίηση +4 1. Instrucoon Fetch ALU registers rs rt Data memory rd registers PC instruction memory του δίαυλου δεδομένων imm 2. Decode/ Register Read 3. Execute 4. Memory 5. Register Write Πηγή: UCB CS61C 14

Περιήγηση 1: R- type add $r3,$r1,$r2 # r3 = r1+r2 στάδιο 1: προσκόμιση εντολής, αύξηση PC στάδιο 2: αποκωδικοποίση: είναι add, διάβασε καταχωρητές $r1 και $r2 στάδιο 3: πρόσθεσε τις τιμές από το στάδιο 2 στάδιο 4: αδρανές (μή πειράξεις τη μνήμη) στάδιο 5: γράψε το αποτέλεσμα του στάδιου 3 στον καταχωρητή $r3 15

add $r3,$r1,$r2 +4 1 2 reg[1] reg[2] reg[1] + reg[2] ALU Data memory 3 registers PC instruction memory add r3, r1, r2 imm 16

Περιήγηση 2: αριθμητική I- type slti $r3,$r1,17 # if (r1<17) r3=1 else r3=0 στάδιο 1: προσκόμιση εντολής, αύξηση PC στάδιο 2: αποκωδικοποίση: είναι slo, διάβασε καταχωρητή $r1 στάδιο 3: σύγκρινε την τιμή από το στάδιο 2 με τη σταθερά 17 στάδιο 4: αδρανές (μή πειράξεις τη μνήμη) στάδιο 5: γράψε το αποτέλεσμα του στάδιου 3 στον καταχωρητή $r3 17

slti $r3,$r1,17 +4 3 imm 17 1 reg[1] reg[1] < 17? ALU Data memory x registers PC instruction memory slo r3, r1, 17 18

Περιήγηση 3 I- type sw! sw $r3,17($r1) # Mem[r1+17]=r3 στάδιο 1: προσκόμιση εντολής, αύξηση PC στάδιο 2: αποκωδικοποίση: είναι sw, διάβασε καταχωρητές $r1, $r3 στάδιο 3: πρόσθεσε την τιμή από το στάδιο 2 με τη σταθερά 17 για να υπολογίσεις τη διεύθυνση στάδιο 4: εγγραφή τιμής $r3 (στάδιο 2) στη διεύθυνση από το στάδιο 3 στάδιο 5: αδρανές (δεν υπάρχει εγγραφή σε καταχωρητή) 19

sw $r3,17($r1) +4 1 3 imm reg[1] reg[3] reg[1] + 17 ALU Data memory x registers PC instruction memory sw r3, 17(r1) 17 MEM[r1+17] = r3 20

Περιήγηση 3 I- type, lw! lw $r3,17($r1) # r3=mem[r1+17] στάδιο 1: προσκόμιση εντολής, αύξηση PC στάδιο 2: αποκωδικοποίση: είναι lw, διάβασε καταχωρητή $r1 στάδιο 3: πρόσθεσε την τιμή από το στάδιο 2 με τη σταθερά 17 για να υπολογίσεις τη διεύθυνση στάδιο 4: ανάγνωση μνήμης στη διεύθυνση από το στάδιο 3 στάδιο 5: εγγραφή τιμής από το στάδιο 4, στον $r3 21

lw $r3,17($r1) +4 1 3 imm reg[1] reg[1] + 17 ALU Data memory x registers PC instruction memory lw r3, 17(r1) 17 MEM[r1+17] 22

Δίαυλος δεδομένων και έλεγχος +4 rs rt ALU Data memory rd registers PC instruction memory! Ο δίαυλος σχεδιάζεται ώστε να υποστηρίζει όλες τις ροές δεδομένων που χρειάζονται οι εντολές! Ο έλεγχος προκαλεί τις ροές των δεδομένων μέσα στο δίαυλο imm opcode, funct Control Unit 23

Βήματα σχεδίασης! Βήμα 1: Ανάλυση του σετ εντολών για καθορισμό απαιτήσεων του διαύλου δεδομένων! Βήμα 2: Επιλογή δομικών στοιχείων διαύλου δεδομένων και καθορισμός χρονισμού (clock methodology)! Βήμα 3: Συνένωση των δομικών στοιχείων σε ένα πλήρη δίαυλο δεδομένων! Βήμα 4: Ανάλυση της υλοποίησης κάθε εντολής για να καθοριστούν τα σημεία ελέγχου που πραγματοποιούν τις μεταβάσεις/μεταφορές στο δίαυλο! Βήμα 5: Συνένωση της λογικής ελέγχου 24

Μορφές εντολών MIPS R: opcode rs rt I: opcode rs rt J: opcode rd shamt funct offset/immediate target address! Πεδία: opcode: κωδικός λειτουργίας (operaoon code) της εντολής rs, rt, rd: οι αριθμοί/ονόματα των καταχωρητών πηγής και προορισμού (register specifiers) shamt: «ποσότητα» ολίσθησης (μικρή, θετική σταθερά) funct: παραλαγή της λειτουργίας (στην ουσία το opcode για εντολές τύπου R) offset/ immediate: address offset ή σταθερά (immediate) target address: Διεύθυνση στόχος (target address) για άλματα 25

Υποσύνολο εντολών για υλοποίηση Για απλοποίηση θα υλοποιήσουμε ένα υποσύνολο των εντολών MIPS! Εντολές μεταφοράς δεδομένων: load word (lw) store word (sw)! Εντολές επεξεργασίας δεδομένων add, sub, AND, OR, and slt! Εντολές αλλαγής ροής ελέγχου branch equal (beq) jump (j), στο τέλος 26

Καθορισμός απαιτήσεων! Μνήμη (MEM) Εντολές και δεδομένα! χρησιμοποιούμε 2 ξεχωριστές μνήμες! απλούστευση, αλλά οι επεξεργ. έχουν χωριστές κρυφές μνήμες! Καραχωρητές (αρχείο καταχωρητών register file) 32, των 32- bit. Λεπτομέρεια του $zero, δεν εξετάζεται! Ανάγνωση RS, RT Εγγραφή RT ή RD! Program Counter (PC)! Επέκταση σταθεράς σε 32 bit (sign extend) απλά καλώδια!! Αριθμητική- Λογική Μονάδα (ALU) για πράξεις με τιμές καταχωρητών ή (μία) σταθερά και σύγκριση καταχωρητών (beq)! Αθροιστής +4 (ή + σταθερά) για το επόμενο PC 27

Χρονισμός 1/3! Καθορίζει πότε τα σήματα διαβάζονται και γράφονται! Απλούστερος χρονισμός: ακμοπυροδότητος (edge triggered) οι αποθηκευμένες τιμές ενημερώνονται (αλλάζουν) μόνο στην ακμή του σήματος ρολογιού Ολα τα στοιχεία αποθήκευσης (state elements) είναι D flip- flop! Αποθήκευση μόνο σε (D) flip- flop - > όλες οι είδοδοι συνδιαστικής λογικής προέρχονται από flip- flop και οι έξοδοι γράφονται σε flip- flop clock input clock D Q output D Q 28

Χρονισμός 2/3 Clk............! Ολα τα flip- flop ενεργοποιούνται στην ίδια ακμή (ανόδου)! Τα Flip- flops (FFs) και συνδιαστική λογική έχουν καθυστερήσεις Πύλες: καθυστέρηση απο αλλαγή τιμής εισόδου μέχρι η αλλαγή να εμφανιστεί στην εξόδο FF: είσοδοι D πρέπει να έχουν σταθερή τιμή πριν την ακμή (set- up ome), και καθυστέρηση από ακμή ρολογιού μέχρι η (νέα) τιμή να περάσει στην έξοδο (clock- to- Q delay)! Κρίσιμο μονοπάτι (Criocal path): μεγαλύτερη διαδρομή στη λογική (longest path) καθορίζει την περίοδο ρολογιού 29

Χρονισμός 3/3! Ακμοπυροδότητος χρονισμός επιτρέπει «ανάγνωση και εγγραφή» στο ίδιο στοιχείο αποθήκευσης Χρειάζεται προσεκτική σχεδίαση ώστε να τηρούνται set- up ome, hold ome! Η ανάγνωση και αποθήκευση γίνονται σε διαδοχικούς κύκλους όχι στον ίδιο! 30

Χρονισμός επεξεργαστή! Τρόπος 1: υλοποίηση ενός κύκλου ρολογιού κάθε εντολή εκτελείται σε ένα κύκλο ρολογιού! Και τα πέντε στάδια εκτέλεσης ολοκληρώνονται στον ίδιο κύκλο Ακμή ρολογιού: νέα τιμή PC, ανάγνωση μνήμης εντολών,... Μέχρι την επόμενη ακμή έτοιμα: νέα τιμή PC, τιμές προς αποθήκευση (μνήμη ή καταχωρητής προορισμού) 1. Instrucoon Fetch 2. Decode/ Register Read 3. Execute 4. Memory 5. Register Write 31

Χρονισμός 4/3! Κάποια στοιχεία αποθήκευσης παίρνουν νέα τιμή σε κάθε κύκλο π.χ. PC! Αλλα στοιχεία αποθήκευσης παίρνουν νέα τιμή σε συγκεκριμένους κύκλους ανάλογα με την εντολή Π.χ. καταχωρητής προορισμού δεν αλλάζει τιμή για sw, beq.! Χρειάζεται ειδικό σήμα επίτρεψης φόρτωσης/έγγραφης load/write enable η είσοδος «περνάει» στην έξοδο αν το σήμα είναι ενεργοποιημένο (asserted) και όταν έρθει η ακμή του ρολογιού. 32

Χρονισμός επεξεργαστή! Ενας επεξεργαστής μπορεί να υλοποιηθεί ώστε να εκτελεί εντολές σε πολλούς κύκλους πλεονεκτήματα: οικονομία υλικού (1 ALU για πολλές δουλειές), ανενεργά στάδια παρακάμπτονται,... 1. Instrucoon 2. Decode/ Register Fetch Read 3. Execute 4. Memory 5. Register Write! Αργότερα θα δούμε ένα συνδιασμό των 2 αυτών υλοποιήσεων: pipelining (διοχέτευση, ομοχειρία) 33

Δομικά στοιχεία διαύλου δεδ.! Συνδιαστικά κυκλώματα, στοιχεία αποθήκευσης Συνδιαστικά κυκλώματα: OP Select A Sum B 32 Adder A 32 32 32 Muloplexer 32 ALU 32 A MUX Adder B 32 Y B 32 Result 32 ALU 34

Μνήμη (εξιδανικευμένη) Write Enable! Είσοδοι- έξοδοι Data In DataIn τιμή για εγγραφή 32 DataOut Clk Address διεύθυνση προσπέλασης WriteEnable 1: εγγραφή Address DataOut 32! Clock (Clk) χρησιμοποιείται μόνο για την εγγραφή «ασύγχρονη» ανάγνωση! Γιατί εξιδανικευμένη; υλοποιήσιμη (επόμενη διαφάνεια), αλλά πολύ ακριβή για κανονικό μέγεθος μνήμης πραγματικές μνήμες: ανάγνωση χρειάζεται το σήμα ρολογιού 35

Μνήμη - υλοποίηση Mem DataIn clk Data Out Mem[0] DEC Write Enable Data In 32 Mem[1] Mem[2] Mem[3] 2 32 MUX 32 Write Enable 2 Mem Address Mem DataOut 36

Αρχείο καταχωρητών RW RA RB Write Enable 5 5 5! Ομαδοποιεί τους 32 καταχωρητές: Δύο 32- bit έξοδοι (θύρες): busw busa, busb 32 Μία 32- bit είσοδος: busw Clk Μνήμη 2 θυρών ανάγνωσης και 1ας εγγραφής busa 32 32 x 32- bit Registers busb 32! Επιλογή καταχωρητή: RA επιλογή καταχωρητή για το busa RB επιλογή καταχωρητή για το busb RW επιλογή καταχωρητή για εγγραφή όταν το σήμα WriteEnable είναι 1! Δεδομένα εισόδου από το busw! Clock (clk) χρησιμοποιείται μόνο για την εγγραφή «ασύγχρονη» ανάγνωση 37

Μονάδα προσκόμισης εντολών! Συνδιάζουμε τα δομικά στοιχεία για να κατασκευάσουμε τη μονάδα προσκόμισης εντολών clk 38

Μονάδα προσκόμισης! Γνωρίζοντας ότι το επόμενο PC είναι μερικές φορές διαφορετικό από το PC+4 (άλματα, διακλαδώσεις), γενικεύεται σε: clk PC Next Address Logic Address Instrucoon Word Instrucoon Memory 32 39

Εντολές επεξεργασίας! Τύπου R: add, sub, slt, and, or R[rd] = R[rs] op R[rt] (op rd,rs,rt) Instrucoon Word 31 26 op 6 bits 21 rs 5 bits rt 5 bits Rd Σήμα ελέγχου: Rs Rt εγγραφή καταχ. RegWr 5 5 5 32 clk Rw Ra Rb 32 x 32- bit Registers 11 rd 5 bits 6 shamt 5 bits 0 funct 6 bits ALUctr Σήμα ελέγχου: τί πράξη να κάνει η ALU busa 32 busb ALU busw 16 Result 32 32 40

Χρονισμός εντολής τύπου R Clk New Value PC Old Value Instrucoon Memory Access Time Rs, Rt, Rd, Old Value New Value Op, Func Delay through Control Logic ALUctr Old Value New Value RegWr Old Value busa, B Old Value busw Old Value New Value Register File Access Time New Value ALU Delay New Value Register Write Occurs Here 41

Εντολές μεταφοράς, lw! Τύπου I R[rt] = Mem[R[rs]+sgn_ext(ofst)] lw rt, ofst(rs) 31 26 op 6 bits 21 rs 5 bits rt 5 bits Rt RegWr 5 5 Rs 5 32 clk Rw Ra Rb offset 16 bits sgnext busa 32 32 x 32- bit Registers busb 32 ALUctr ALU busw 16 Result 32 Data In 0 MemRd Clk MemWr Address Instrucoon Word DataOut 32 42

Συνδιασμός προηγούμενων 43

Εντολές διακλάδωσης Επιπλέον αθροιστής για υπολογισμό στόχου ALU υπολογίζει τη σύγκριση Δεν μπορώ να ξαναχρησιμοποιήσω μονάδες στον ίδιο κύκλο ρολογιού 44

Συνολικός δίαυλος δεδομένων Εκτός από την εντολή j 45

Ανακοινώσεις! Η 5η εργαστηριακή άσκηση διαθέσιμη (βλ ecourse) Εισαγωγή στη σχεδίαση με το Quartus II Εγκατάσταση Quartus (ειδικά σε 64b Linux) θέλει λίγη δουλειά! κάντε την εγκατάσταση νωρίς! ή δουλέψτε από τα μηχανήματα του εργαστηρίου παράδοση μέχρι την Παρασκευή 3/4 ώρα 23.00 46

Επόμενο μάθημα Συνέχεια σχεδίασης επεξεργαστή: το τμήμα ελέγχου 47

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Ιωαννίνων» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Έκδοση 1.0 διαθέσιμη εδώ. http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Ιωαννίνων, Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου. «Αρχιτεκτονική Υπολογιστών. Αρχιτεκτονικό σύνολο εντολών». Έκδοση: 1.0. Ιωάννινα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://ecourse.uoi.gr/course/view.php?id=1307.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού - Παρόμοια Διανομή, Διεθνής Έκδοση 4.0 [1] ή μεταγενέστερη. [1] https://creativecommons.org/licenses/by-sa/4.0/.