You are on page 1of 96

Οργάνωση και Σχεδίαση Υπολογιστών

Η ∆ιασύνδεση Υλικού και Λογισµικού, 4η έκδοση

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

Ασκήσεις
Η αρίθµηση των ασκήσεων είναι από την 4η έκδοση του «Οργάνωση και Σχεδίαση
Υπολογιστών: η διασύνδεση υλικού και λογισµικού», D.A.Patterson, J.L.Hennessy

∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών


Άσκηση 4.1
 Οι διάφορες εντολές χρησιµοποιούν διαφορετικά
µπλοκ του υλικού στη βασική υλοποίηση του ενός
κύκλου. Τα επόµενα τρία προβλήµατα αυτής της
άσκησης αναφέρονται στην παρακάτω εντολή:

Εντολή Ερµηνεία
α. add Rd,Rs,Rt Reg[Rd]=Reg[Rs]+Reg[rt]
β. lw Rt,Offs(Rs) Reg[Rt]=Mem[Reg[Rs]+Offs]

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 2


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.1 Ποιες είναι οι τιµές των σηµάτων ελέγχου που
δηµιουργεί η µονάδα ελέγχου της Εικόνας 4.2 για την
εντολή αυτή;
 Η εικόνα 4.2 φαίνεται στην επόµενη σελίδα.
Ενδιαφερόµαστε για τις τιµές των 7 σηµάτων ελέγχου:
RegWrite, MemRead, MemWrite, ALUMux, ALUOp,
RegMux, Branch
 ALUMux είναι το σήµα που ελέγχει τη δεύτερη είσοδο της
ALU (τιµή 0 αν προέρχεται από καταχωρητή, τιµή 1 αν
προέρχεται από το Immediate πεδίο) και RegMux είναι το
σήµα που ελέγχει την είσοδο δεδοµένων του αρχείου
καταχωρητών (0 σηµαίνει είσοδος από την ALU, 1
σηµαίνει είσοδος από τη µνήµη)
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 3
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Εικόνα 4.2

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


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 Άρα, για την εντολή add και την εντολή lw
οι τιµές των 7 σηµάτων ελέγχου είναι:

Εντολή RegWrite MemRead ALUMux


add Rd,Rs,Rt 1 0 0 (Reg)
lw Rt,Offs(Rs) 1 1 1 (Imm)

Εντολή MemWrite ALUOp RegMux Branch


add Rd,Rs,Rt 0 Add 0 (ALU) 0
lw Rt,Offs(Rs) 0 Add 1 (Mem) 0

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 5


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.2 Ποιοι πόροι (µπλοκ) εκτελούν χρήσιµη
λειτουργία για την εντολή αυτή;
 Στην εντολή add όλοι οι πόροι εκτελούν χρήσιµη
λειτουργία εκτός από τη µνήµη δεδοµένων και τον
αθροιστή που υπολογίζει τη διεύθυνση της
διακλάδωσης
 Στην εντολή lw όλοι οι πόροι εκτελούν χρήσιµη
λειτουργία εκτός από τον αθροιστή που
υπολογίζει τη διεύθυνση της διακλάδωσης και
τη δεύτερη θύρα ανάγνωσης του αρχείου
καταχωρητών
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 6
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.3 Ποιοι πόροι (µπλοκ) παράγουν εξόδους, αλλά
οι έξοδοί τους δε χρησιµοποιούνται σε αυτή την
εντολή; Ποιοι πόροι δεν παράγουν εξόδους για την
εντολή αυτή;
Έξοδοι που δε ∆εν παράγουν
Εντολή χρησιµοποιούνται έξοδο
add Rd,Rs,Rt Του αθροιστή της Μνήµη δεδοµένων
διεύθυνσης διακλάδωσης
lw Rt,Offs(Rs) Του αθροιστή της Κανείς (όλοι οι
διεύθυνσης διακλάδωσης πόροι παράγουν
και της δεύτερης θύρας εξόδους)
ανάγνωσης του αρχείου
καταχωρητών

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 7


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 ∆ιαφορετικές µονάδες εκτέλεσης και µπλοκ ψηφιακής λογικής
έχουν διαφορετικούς λανθάνοντες χρόνους (latencies —
χρόνοι που απαιτούνται για να κάνουν τη δουλειά τους). Στην
Εικόνα 4.2 υπάρχουν επτά είδη κύριων µπλοκ. Οι
λανθάνοντες χρόνοι των µπλοκ κατά µήκος της κρίσιµης
διαδροµής (αυτής µε το µεγαλύτερο λανθάνοντα χρόνο) για
µια εντολή καθορίζουν τον ελάχιστο λανθάνοντα χρόνο αυτής
της εντολής. Για τα υπόλοιπα τρία προβλήµατα αυτής της
άσκησης, υποθέστε τους παρακάτω λανθάνοντες χρόνους
των πόρων:
Μνήµη Μνήµη
εντολών Αθρ. Πολ/κτης ALU Καταχ/τές δεδοµ. Έλεγχος
α. 400ps 100ps 30ps 120ps 200ps 350ps 100ps
β. 500ps 150ps 100ps 180ps 220ps 1000ps 65ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 8


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.4 Ποια είναι η κρίσιµη διαδροµή για µια εντολή
and του MIPS;
 Μία µακριά διαδροµή για την εντολή and είναι: ανάγνωση εντολής,
ανάγνωση καταχωρητών, διεύλευση από τον ALUMux, εκτέλεση
λειτουργίας ALU, διέλευση από πολ/κτη που ελέγχει τα δεδοµένα
εγγραφής των καταχωρητών και εγγραφή σε καταχωρητή:
I-Mem, Regs, Mux, ALU, Mux, Regs
 Παρόµοια είναι και η διαδροµή που περνά µέσα από τη µονάδα
Ελέγχου όσο διαβάζονται οι καταχωρητές:
I-Mem, Control, Mux, ALU, Mux, Regs
 Οι υπόλοιπες διαδροµές είναι συντοµότερες.
Add, Mux (αύξηση του PC)
I-Mem, Control, Mux (διαδροµή αποφυγής διακλάδωσης)
I-Mem, Control (διαδροµή αποφυγής εγγραφής στη µνήµη) κλπ

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 9


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 Άρα, στην εντολή add επειδή ο Ελεγχος είναι
ταχύτερος από τoυς Καταχωρητές, τόσο µε
τα δεδοµένα στο α. όσο και µε τα δεδοµένα
στο β., η κρίσιµη διαδροµή είναι
 I-Mem, Regs, Mux, ALU, Mux, Regs
 Και είναι ίση µε
 α. 400+200+30+120+30+200 = 980ps
 β. 500+220+100+180+100+220 = 1320ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 10


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.5 Ποια είναι η κρίσιµη διαδροµή για µια εντολή
φόρτωσης (load) του MIPS;
 Μία µακρυά διαδροµή είναι: ανάγνωση εντολής,
ανάγνωση καταχωρητών, πολ/κτης επιλογής του άµεσου
πεδίο σαν δεύτερη είσοδο της ALU, χρήση της ALU
(υπολ/µος δνσης), προσπέλαση µνήµης δεδοµένων,
χρήση του πολ/κτη για εγγραφή στο αρχείο
καταχωρητών, εγγραφή καταχωρητή: I-Mem, Regs,
Mux, ALU, D-Mem, Mux, Regs.
 Μια δεύτερη διαδροµή είναι παρόµοια αλλά περνά µέσα
από τη µονάδα Ελέγχου αντί για τους καταχωρητές (για
να γεννήσει το σήµα ελέγχου του ALUMux). Οι άλλες
διαδροµές είναι συντοµότερες (όµοια µε την 4.1.4).
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 11
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 Άρα, στην εντολή load επειδή ο Ελεγχος είναι
ταχύτερος από τoυς Καταχωρητές, τόσο µε τα
δεδοµένα στο α. όσο και µε τα δεδοµένα στο β.,
η κρίσιµη διαδροµή είναι
 I-Mem, Regs, Mux, ALU, D-Mem, Mux, Regs
 Και είναι ίση µε
 α. 400+200+30+120+350+30+200 = 1330ps
 β. 500+220+100+180+1000+100+220 = 2320ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 12


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 4.1.6 Ποια είναι η κρίσιµη διαδροµή για µια
εντολή beq του MIPS;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 13


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.1 (συνέχεια)
 Η beq έχει 2 µακρύτερες διαδροµές, αυτές που καθορίζουν τη
συνθήκη και αυτές που υπολογίζουν το νέο PC. Για το πρώτο:
ανάγνωση εντολής, ανάγνωση καταχωρητών ή χρήση
Ελέγχου, µετά χρήση ALUMux, χρήση ALU (σύγκριση), και
χρήση του Zero της ALU για έλεγχο του πολυπλέκτη επιλογής
PC. Όπως στα 4.1.4, 4.1.5 η πρώτη διαδροµή (µέσω
Καταχωρητών) είναι µακρύτερη (στο α και στο β).
 Για τον υπολογισµό του PC, µια διαδροµή είναι η αύξηση κατά
4 (Add), πρόσθεση του offset (Add) και επιλογή αυτής της
τιµή σαν νέο PC (Mux). Η άλλη διαδροµή είναι η ανάγνωση
της εντολής (λήψη του offset) χρήση της µονάδας Add της
διακλάδωσης και του Mux. Και οι δύο είναι συντοµότερες από
τον έλεγχο της συνθήκης διακλάδωσης αφού η I-Mem είναι
πιο αργή από τη µονάδα PC+4 Add και επειδή η ALU είναι
πιο αργό από τη Add της διακλάδωσης.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 14
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2
 Η βασική υλοποίηση ενός κύκλου του MIPS της Εικόνας
4.2 µπορεί να υλοποιήσει µόνο µερικές εντολές. Σε µια
υπάρχουσα ISA µπορούν να προστεθούν νέες εντολές,
αλλά η απόφαση αν αυτό θα γίνει ή όχι εξαρτάται, από το
κόστος και την πολυπλοκότητα που εισάγει µια τέτοια
προσθήκη στη διαδροµή δεδοµένων και τη µονάδα
ελέγχου του επεξεργαστή. Τα πρώτα τρία προβλήµατα
αυτής της άσκησης αναφέρονται σε αυτή τη νέα εντολή:
Εντολή Ερµηνεία
α. add3 Rd,Rs,Rt,Rx Reg[Rd]=
Reg[Rs]+Reg[rt]+Reg[Rx]
β. sll Rt,Rd,Shift Reg[Rd]=
Reg[Rt] << Shift
(αριστερή ολίσθηση κατά Shift bit)
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 15
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Και πάλι η Εικόνα 4.2

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 16


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.1 Ποια υπάρχοντα µπλοκ (αν υπάρχουν)
µπορούν να χρησιµοποιηθούν για την εντολή
αυτή;
 Η εντολή add3 χρησιµοποιεί:
 Τη µνήµη εντολών
 Τις δύο θύρες ανάγνωσης των Καταχωρητών
 Τη θύρα εγγραφής των Καταχωρητών
 Η εντολή sll χρησιµοποιεί:
 Τη µνήµη εντολών
 Τη µία θύρα ανάγνωσης των Καταχωρητών
 Τη διαδροµή που οδηγεί το Immediate στην ALU
 Τη θύρα εγγραφής των Καταχωρητών

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 17


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.2 Ποια νέα λειτουργικά µπλοκ (αν υπάρχουν)
χρειαζόµαστε για την εντολή αυτή;
 Η εντολή add3 χρειάζεται άλλη µία θύρα
ανάγνωσης από τους Καταχωρητές και είτε µια
δεύτερη ALU για να προσθέσει το Rx στο
(Rs+Rt) ή µια τρίτη είσοδο στην υπάρχουσα
ALU
 Η εντολή sll χρειάζεται να επεκτείνει την ALU
ώστε να κάνει και ολίσθηση (µε µια επιπλέον
λειτουργία SLL)

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 18


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.3 Ποια νέα σήµατα (αν υπάρχουν)
χρειαζόµαστε από τη µονάδα ελέγχου για την
υποστήριξη της εντολής αυτής;
 Η εντολή add3 χρειάζεται ένα σήµα ελέγχου
για τη νέα ALU ή αν επεκτείνουµε την
υπάρχουσα ALU πρέπει να προστεθεί µια
νέα λειτουργία ADD3
 Η εντολή sll απαιτεί αλλαγή των σηµάτων
ελέγχου της λειτουργίας της ALU ώστε να
εκτελεί τη νέα λειτουργία ολίσθησης SLL
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 19
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 Όταν οι σχεδιαστές επεξεργαστών εξετάζουν µια πιθανή
βελτίωση της διαδροµής δεδοµένων, η απόφαση
συνήθως εξαρτάται από το συµβιβασµό µεταξύ κόστους
και απόδοσης. Στα επόµενα τρία προβλήµατα, υποθέστε
ότι ξεκινούµε µε µια διαδροµή δεδοµένων της Εικόνας
4.2, όπου τα µπλοκ Μνήµη Εντολών, Αθροιστής,
Πολυπλέκτης, ALU, Καταχωρητές, Μνήµη ∆εδοµένων και
Έλεγχος έχουν λανθάνοντες χρόνους 400ps, 100ps,
30ps, 120ps, 200ps, 350ps, και 100ps, αντίστοιχα, και
κόστος 1000, 30, 10, 100, 200, 2000, και 500, αντίστοιχα.
Τα υπόλοιπα τρία προβλήµατα αυτής της άσκησης
αναφέρονται στην παρακάτω βελτίωση του επεξεργαστή:

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 20


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
Λανθάνων
Βελτίωση χρόνος Κόστος Όφελος

α. Ταχύτερος –20ps για τις +20 ανά Αντικατάσταση


αθροιστής µονάδες µονάδα υπαρχουσών µονάδων
αθροιστή αθροιστή αθροιστή µε
ταχύτερες.
β. Μεγαλύτερο +100ps για +200 για τους Χρειάζονται λιγότερες
αρχείο τους καταχωρητές εντολές load και store
καταχωρητών καταχωρητές για να αποθηκεύονται
(περισσότεροι και να επαναφέρονται
καταχωρητές) οι τιµές των
καταχωρητών. Αυτό
έχει ως αποτέλεσµα
5% λιγότερες εντολές.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 21


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.4 Ποιος είναι ο χρόνος κύκλου ρολογιού µε και
χωρίς τη βελτίωση αυτή;
 Ο χρόνος κύκλου ρολογιού καθορίζεται από τη κρίσιµη
διαδροµή που µε τους δεδοµένους λανθάνοντες
χρόνους είναι όταν λαµβάνουµε την τιµή των δεδοµένων
από την εντολή load: I-Mem (ανάγν.εντολής), Regs (πιο
αργό από τον Έλεγχο), Mux (επιλογή εισόδου ALU),
ALU, D-Mem, Mux (επιλογή τιµής µνήµης για εγγραφή
σε καταχωρητές), εγγραφή σε Καταχωρητή.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 22


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 Έτσι, ο λανθ.χρόνος αυτής της διαδροµής (χωρίς
καµία από τις τροποποιήσεις) είναι = 400ps + 200ps
+ 30ps + 120ps + 350ps + 30ps + 200ps= 1330ps.
 Αν γίνει η τροποποίηση (α – ταχύτερος αθροιστής)
τότε ο λανθάνων χρόνος δε θα αλλάξει αφού ο
αθροιστής δεν είναι στην κρίσιµη διαδροµή. Ο
χρόνος θα µείνει 1330ps.
 Αν γίνει η τροποποίηση (β – µεγαλύτερο αρχείο
καταχωρητών) τότε ο λανθ.χρόνος θα επιβαρυνθεί
δύο φορές από 100ps (ανάγνωση και εγγραφή
καταχωρητή. Άρα ο χρόνος θα γίνει 1530ps.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 23
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.5 Ποια είναι η επιτάχυνση που επιτυγχάνεται µε τη
προσθήκη αυτής της βελτίωσης;
 Η επιτάχυνση σχετίζεται µε τον κύκλο ρολογιού κάθε
περίπτωσης και µε τον αριθµό των κύκλων.
 Το (α) θα επιφέρει επιτάχυνση 1 (δηλ.καµία αλλαγή)
αφού δεν αλλάζει ούτε ο κύκλος ρολογιού ούτε το
πλήθος κύκλων.
 Το (β) επιβαρύνει το χρόνου του κύκλου (από 1330 σε
1530, κατά +15%), αλλά θα εκτελεστούν 5% λιγότεροι
κύκλοι. Τελικά η επιτάχυνση θα είναι ίση µε =
Τπαλιός/Τνέος = [Κύκλοι x Χρ.Κύκλου] / [0,95 Κύκλοι x 1,15
Χρ.Κύκλου] = 0,915 δηλαδή το πρόγραµµα
επιβραδύνεται

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 24


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 4.2.6 Συγκρίνετε το λόγο κόστους προς
απόδοση µε και χωρίς αυτή τη βελτίωση.
 Το κόστος εξαρτάται από όλα τα συστατικά
του επεξεργαστή.
 Το αρχικό κόστος είναι ίσο µε της µνήµης
εντολών, των καταχωρητών, του ελέγχου,
της µνήµης εντολών, της ALU, 2 αθροιστών
και 3 πολ/κτων. Αρχικό κόστος 3890.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 25


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 Με την αλλαγή (α) το κόστος αυξάνεται κατά
2x20 (2 αθροιστές) = 3930. Αύξηση κόστους
1,03%. Επειδή η απόδοση µένει ίδια
(επιτάχυνση 1 όπως είδαµε) αυτό σηµαίνει ότι
η ίδια απόδοση µας κοστίζει λίγο
περισσότερο.
 Ο λόγος κόστους/απόδοσης είναι ίσος µε
1,0103/1 = 1,0103.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 26


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.2 (συνέχεια)
 Με την αλλαγή (β) το κόστος αυξάνεται κατά
200 (στους καταχωρητές) = 4090. Αύξηση
κόστους 5,14%. Επειδή η απόδοση
µειώνεται (επιτάχυνση 0,915 < 1 όπως
είδαµε) αυτό σηµαίνει ότι και η απόδοση
µειώνεται αλλά και µας κοστίζει λίγο
περισσότερο.
 Ο λόγος κόστους/απόδοσης είναι ίσος µε
1,0514/0,915 = 1,1491 (χειροτερεύει).

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 27


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6
 Τα προβλήµατα αυτής της άσκησης υποθέτουν ότι
τα λογικά µπλοκ που χρειάζονται για την υλοποίηση
της διαδροµής δεδοµένων ενός επεξεργαστή έχουν
τους επόµενους λανθάνοντες χρόνους:

Επέκτα-
Κατά- Μνήµη ση Αριστερή
Μνήµη Πολ/ χωρη- δεδο- προσή- ολίσθηση
εντολών Αθρ. κτης ALU τές µένων µου κατά 2

α. 400ps 100ps 30ps 120ps 200ps 350ps 20ps 2ps


β. 500ps 150ps 100ps 180ps 220ps 1000ps 90ps 20ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 28


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 4.6.1 Αν το µόνο που χρειαζόµαστε να κάνουµε σε
έναν επεξεργαστή είναι η προσκόµιση διαδοχικών
εντολών (Εικόνα 4.6), πόσος θα ήταν ο χρόνος του
κύκλου;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 29


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 Η µνήµη δεδοµένων καθυστερεί περισσότερο
από τον αθροιστή οπότε ο χρόνος του κύκλου
ρολογιού είναι ίσος µε το λανθάνοντα χρόνο
της.
 (α) 400ps
 (β) 500ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 30


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 4.6.2 Θεωρήστε µια διαδροµή δεδοµένων παρόµοια µε
αυτή της Εικόνας 4.11, αλλά για έναν επεξεργαστή που
έχει µόνον έναν τύπο εντολής: διακλάδωση σχετική
ως προς τον PC χωρίς συνθήκη (unconditional PC-
relative branch). Πόσος θα ήταν ο χρόνος του κύκλου
γι’ αυτή τη διαδροµή δεδοµένων;
 Η µεγαλύτερη διαδροµή είναι: µνήµη εντολών –
επέκταση προσήµου + ολίσθηση + αθροιστής +
πολυπλέκτης = (α) σύνολο 552ps, (β) σύνολο 860ps
 Η διαδροµή µέσω του άλλου αθροιστή είναι
συντοµότερη αφού η µνήµη εντολών έχει µεγαλύτερη
καθυστέρηση
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 31
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Εικόνα 4.11

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 32


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 4.6.3 Επαναλάβετε την Άσκηση 4.6.2, αλλά αυτή τη φορά
πρέπει να υποστηρίζονται µόνο διακλαδώσεις σχετικές ως
προς τον PC υπό συνθήκη (conditional PC-relative
branches).
 Οι διακλαδώσεις υπό συνθήκη έχουν δύο µεγάλες
διαδροµές. Η µία είναι η ίδια που είδαµε πριν για τον
υπολογισµό της δνσης διακλάδωσης. Η δεύτερη είναι ο
έλεγχος της συνθήκης (η τιµή του PCSrc τελικά) και περνά
µέσα από: µνήµη εντολών, καταχωρητές, πολυπλέκτη, ALU.
 Ο χρόνος του ρολογιού καθορίζεται από την πιο αργή από
τις δύο αυτές διαδροµές. Για τιµές των λανθανόντων χρόνων
που δόθηκαν πιο αργή είναι η δεύτερη διαδροµή. Για το (α)
είναι ίση µε 400+200+30+120+30= 780ps, και για το (β) είναι
ίση µε 500+90+20+150+100 = 860ps
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 33
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Εικόνα 4.11 και πάλι

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 34


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 Τα τρία υπόλοιπα προβλήµατα αυτής της άσκησης
αναφέρονται στα επόµενα λογικά µπλοκ (πόρους)
της διαδροµής δεδοµένων:

Πόρος
α. Πρόσθεση 4 (στον PC)
β. Μνήµη δεδοµένων

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 35


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 4.6.4 Ποια είδη εντολών απαιτούν αυτόν τον πόρο;
Πόρος Απαιτείται
α. Πρόσθεση 4 (στον PC) Όλες οι εντολές εκτός από τα άλµατα που δεν
είναι σχετικά ως προς τον PC (δηλαδή οι
εντολές j, jr, jal, jalr)
β. Μνήµη δεδοµένων Μόνο οι εντολές φόρτωσης και αποθήκευσης

 4.6.5 Για ποια είδη εντολών (αν υπάρχουν)


βρίσκεται ο πόρος αυτός στην κρίσιµη διαδροµή;
Πόρος Στην κρίσιµη διαδροµή
α. Πρόσθεση 4 (στον PC) Καµίας. Η µνήµη εντολών είναι πιο αργή.
β. Μνήµη δεδοµένων Των φορτώσεων και αποθηκεύσεων.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 36


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 4.6.6 Με την παραδοχή ότι υποστηρίζουµε µόνο τις
εντολές beq και add, συζητήστε πώς επιδρούν οι
αλλαγές στο λανθάνοντα χρόνο αυτού του πόρου
στον κύκλο ρολογιού του επεξεργαστή. Υποθέστε
ότι οι λανθάνοντες χρόνοι των άλλων πόρων δεν
αλλάζουν.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 37


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.6 (συνέχεια)
 Μεταξύ των δύο, η bne έχει µεγαλύτερη κρίσιµη διαδροµή και
καθορίζει το κύκλο ρολογιού. Κάθε διαδροµή της add είναι
συντοµότερη ή ίση µε την αντίστοιχη της bne, συνεπώς αλλαγές
στο λανθ.χρόνο των µονάδων δεν θα επηρεάσουν αυτή τη
σχέση. Άρα, εστιάζουµε στο πως επηρεάζουν οι αλλάγες
λανθ.χρόνου των πόρων την κρίσιµη διαδροµή της bne.
Πόρος Επίπτωση στο κύκλο ρολογιού
α. Πρόσθεση 4 Ο πόρος δεν είναι στη κρίσιµη διαδροµή. Άρα αλλαγή του
(στον PC) λανθ.χρόνου του θα επηρεάσει το κύκλο ρολογιού µόνο αν
είναι τόσο µεγάλη ώστε να δηµιουργήσει νέα κρίσιµη διαδροµή
µέσω αυτού, του αθροιστή της διακλάδωσης και του
πολυπλέκτη του PC. Ο λανθ.χρόνος αυτής της διαδροµής είναι
230ps και πρέπει να γίνει µεγαλύτερος από 780ps, άρα ο
χρόνος της µονάδας αυτής πρέπει να γίνει µεγαλύτερος από
650ps.
β. Μνήµη Ο πόρος δε χρησιµοποιείται ούτε από την bne ούτε από την
δεδοµένων add, άρα δεν επηρεάζει το χρόνο του ρολογιού.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 38
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8
 Όταν κατασκευάζονται τα τσιπ πυριτίου, ατέλειες στα υλικά (π.χ.
πυρίτιο) και κατασκευαστικά σφάλµατα µπορούν να οδηγήσουν σε
ελαττωµατικά κυκλώµατα. Μια συνηθισµένη ατέλεια είναι ένας
αγωγός να επιδρά στο σήµα ενός άλλου. Αυτό ονοµάζεται
ελάττωµα παρεµβολής (cross-talk fault). Μια ειδική περίπτωση
ελαττωµάτων παρεµβολής είναι όταν ένα σήµα συνδέεται σε έναν
αγωγό που έχει σταθερή λογική τιµή (π.χ. έναν αγωγό τροφοδοσίας
ρεύµατος). Στην περίπτωση αυτή έχουµε ένα ελάττωµα
προσκόλλησης στο 0 (stuck-at-0 fault) ή ένα ελάττωµα
προσκόλλησης στο 1 (stuck-at-1 fault), και το σήµα που
επηρεάζεται έχει πάντα λογική τιµή 0 ή 1, αντίστοιχα. Τα παρακάτω
προβλήµατα αναφέρονται στο επόµενο σήµα της Εικόνας 4.24:
Σήµα
α. Μνήµη εντολών, έξοδος Εντολή, bit 7
β. Μονάδα ελέγχου, έξοδος MemtoReg

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 39


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Εικόνα 4.24 (β) σήµα MemtoReg

(α) το bit 7 της Εντολής

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 40


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.1 Ας υποθέσουµε ότι εκτελούµε δοκιµή (testing) του
επεξεργαστή τοποθετώντας στον PC, τους καταχωρητές, και
τις µνήµες εντολών και δεδοµένων κάποιες τιµές (µπορείτε
να επιλέξετε ποιες), αφήνοντας µια εντολή να εκτελεστεί, και
µετά διαβάζοντας τον PC, τις µνήµες, και τους καταχωρητές.
Αυτές οι τιµές εξετάζονται στη συνέχεια για να προσδιοριστεί
αν υπάρχει ένα συγκεκριµένο ελάττωµα. Μπορείτε να
σχεδιάσετε µια δοκιµή (τιµές του PC, των µνηµών, και των
καταχωρητών) που θα προσδιορίζει αν υπάρχει ένα
ελάττωµα προσκόλλησης στο 0 για το σήµα αυτό;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 41


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 Για να εκτελέσουµε µια δοκιµή για προσκόλληση στο 0
χρειαζόµαστε µια εντολή που σε σωστή λειτουργία θέτει το
συγκεκριµένο σήµα στη τιµή 1 (την αντίθετη), και συνεπώς
λόγω του ελαττώµατος προσκόλλησης στο 0 έχει διαφορετικό
αποτέλεσµα από το σωστό
 (α) (bit 7 της εντολής) – το bit 7 της εντολής χρησιµοποιείται
για παράδειγµα σαν µέρος του άµεσου (immediate) πεδίου
µιας εντολής. Άρα, ένας τρόπος είναι να εκτελέσουµε µια
εντολή addi $s1, $zero, 128 που κανονικά θα πρέπει να
γράψει το 128 στον $s1. Αν όµως το bit 7 της εντολής είναι
προσκολληµένο (µόνιµα) στο 0, τελικά ο $s1 θα πάρει την
τιµή 0, αφού το 128 έχει όλο µηδενικά εκτός από το bit 7 που
είναι ίσο µε 1.
 Σκεφθείτε κι άλλες δοκιµές για το ίδιο ελάττωµα
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 42
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 (β) (σήµα ελέγχου MemtoReg) – Οι µόνες εντολές που
δίνουν την τιµή 1 στο σήµα αυτό είναι οι φορτώσεις (loads).
 Μπορούµε να κάνουµε τη δοκιµή γεµίζοντας τη µνήµη
δεδοµένων µε µηδενικά και εκτελώντας µια εντολή
φόρτωσης από µια οποιαδήποτε διεύθυνση (εκτός από τη
δνση 0 της µνήµης). Π.χ. Την εντολή lw $s1, 1024($zero).
 Μετά την εντολή, η τιµή του $s1 θα έπρεπε να είναι µηδέν.
Αν όµως το σήµα MemtoReg είναι µόνιµα προσκολληµένο
στο 0, η τιµή του καταχωρητή $s1 θα είναι 1024 (ο
Πολυπλέκτης θα επιλέξει την έξοδο της ALU (που είναι 1024
αφού η ALU κάνει τον υπολογισµό της διεύθυνσης) και όχι
την τιµή από τη µνήµη.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 43


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.2 Επαναλάβετε την Άσκηση 4.8.1 για ένα ελάττωµα
προσκόλλησης στο 1. Μπορείτε να χρησιµοποιήσετε µία
µοναδική δοκιµή και για το ελάττωµα προσκόλλησης στο 0
και για το ελάττωµα προσκόλλησης στο 1; Αν ναι, εξηγήστε
πώς— αν όχι, εξηγήστε γιατί όχι.
 Επειδή µια δοκιµή για προσκόλληση στο 0 απαιτεί το σήµα
να έχει τιµή 1 και µια δοκιµή για προσκόλληση στο 1 απαιτεί
το σήµα να έχει τιµή 0, είναι προφανές ότι δεν υπάρχουν
κοινές δοκιµές.
 Η δοκιµή για προσκόλληση στο 1 για τα δύο σήµατα έχει ως
εξής:

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 44


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 (α) (bit 7 της εντολής) – το bit 7 της εντολής
χρησιµοποιείται για παράδειγµα σαν µέρος του
άµεσου (immediate) πεδίου µιας εντολής. Άρα, ένας
τρόπος είναι να εκτελέσουµε µια εντολή addi $s1,
$zero, 0 που κανονικά θα πρέπει να γράψει το 0
στον $s1. Αν όµως το bit 7 της εντολής είναι
προσκολληµένο (µόνιµα) στο 1, τελικά ο $s1 θα
πάρει την τιµή 128, αφού το 128 έχει όλο µηδενικά
εκτός από το bit 7 που είναι ίσο µε 1.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 45


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 (β) (σήµα ελέγχου MemtoReg) – ∆εν µπορούµε να
βρούµε αξιόπιστη δοκιµή για το ελάττωµα αυτό, διότι
όλες οι εντολές που βάζουν τη τιµή 0 στο σήµα
MemtoReg βάζουν επίσης και τη τιµή 0 στο σήµα
ReadMem (είναι οι εντολές φόρτωσης φυσικά). Αν
χρησιµοποιηθεί µια από αυτές τις εντολές για τη δοκιµή
του MemtoReg προσκολληµένο στο 1, η τιµή που θα
γραφεί στον καταχωρητή προορισµού είναι «τυχαία»
(ό,τι βρεθεί στα δεδοµένα εξόδου της Μνήµης
∆εδοµένων). Αυτή η τιµή µπορεί να είναι και ίδια µε την
τιµή που βρίσκεται ήδη στον καταχωρητή, κι έτσι αν το
ελάττωµα υφίσταται η δοκιµή µπορεί να µη το
ανιχνεύσει.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 46
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.3 Αν γνωρίζουµε ότι η επεξεργαστής έχει ένα ελάττωµα
προσκόλλησης στο 1 σε αυτό το σήµα, είναι λογικό να
θεωρήσουµε ότι µπορεί να χρησιµοποιηθεί; Για να είναι
δυνατόν αυτό, πρέπει να µπορούµε να µετατρέψουµε
οποιοδήποτε πρόγραµµα, που εκτελείται σε έναν κανονικό
επεξεργαστή MIPS, σε ένα πρόγραµµα που δουλεύει σε
αυτόν τον επεξεργαστή. Μπορείτε να υποθέσετε ότι υπάρχει
αρκετή ελεύθερη µνήµη εντολών και µνήµη δεδοµένων για
να κάνετε το πρόγραµµα µεγαλύτερο και να αποθηκεύσετε
επιπλέον δεδοµένα. Υπόδειξη: ο επεξεργαστής µπορεί να
χρησιµοποιηθεί αν κάθε «ελαττωµατική» εντολή λόγω του
ελαττώµατος αυτού µπορεί να αντικατασταθεί από µια
ακολουθία εντολών που «δουλεύουν» και πετυχαίνουν το
ίδιο αποτέλεσµα.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 47
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 (α) (bit 7 της εντολής) – Είναι δυνατόν να βρούµε
λύση για να παρακαµφθεί αυτό το ελάττωµα αλλά είναι
ιδιαίτερα δύσκολο. Πρέπει να βρούµε όλες τις εντολές
που έχουν 0 στο bit 7 του offset ή του άµεσου
(immediate) πεδίου και να τις αντικαταστήσουµε µε
κάποια ακολουθία «ασφαλών» εντολών. Για
παράδειγµα, µια φόρτωση µε ένα τέτοιο offset πρέπει
να αντικατασταθεί από µια εντολή που αφαιρεί 128 από
τον καταχωρητή δνσης, µετά µια φόρτωση (µε το offset
µεγαλύτερο κατά 128 για να τεθεί στο 1 το bit 7 του
offset), και µετά αφαίρεση του 128 από τον καταχωρητή
δνσης.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 48


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 (β) (σήµα ελέγχου MemtoReg) – ∆εν µπορεί να
παρακαµφθεί το πρόβληµα αυτό, διότι απαγορεύει
σε όλες τις εντολές να αποθηκεύσουν το
αποτέλεσµά τους σε καταχωρητή εκτός από τις
εντολές load. Οι εντολές load µετακινούν δεδοµένα
µόνο από τη µνήµη προς τους καταχωρητές, κι έτσι
δεν µπορούν να χρησιµοποιηθούν για να
«εξοµοιώσουν» τις λειτουργίες της ALU που
«χαλάνε» λόγω αυτού του ελαττώµατος.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 49


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.4 Επαναλάβετε την Άσκηση 4.8.1, αλλά τώρα το
ελάττωµα προς δοκιµή είναι αν το σήµα ελέγχου
«MemRead» έχει αυτό το ελάττωµα.
 Αν το MemRead είναι προσκολληµένο στο 0, δεν
µπορεί να γίνει ανάγνωση της µνήµης δεδοµένων από
τις εντολές load. Συνεπώς µια δοκιµή µπορεί να
αποτελείται από µια εντολή store που γράφει σε µια
θέση µνήµης µια τιµή 0 και έπειτα µια load από την ίδια
θέση προς έναν καταχωρητή που του έχει γραφεί
προηγούµενα µια µη µηδενική τιµή.
 Η load θα έπρεπε να µηδενίσει τη τιµή του καταχωρητή
αλλά λόγω του ελαττώµατος δεν θα το κάνει
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 50
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.5 Επαναλάβετε την Άσκηση 4.8.1, αλλά τώρα
το ελάττωµα προς δοκιµή είναι αν το σήµα ελέγχου
«Jump» έχει αυτό το ελάττωµα.
 Το ελάττωµα προσκόλλησης στο 0 στο σήµα Jump
θα ενηµερώνει τον PC σε κάθε εντολή σαν να ήταν
εντολή jump. Αν εκτελέσουµε µια εντολή addi µε µη
µηδενικό πεδίο offset τότε µετά την εκτέλεσή της ο
PC δε θα δείχνει στην επόµενη εντολή της addi
αλλά σε µια άλλη δνση (που εξαρτάται από την τιµή
του offset).

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 51


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 4.8.6 Χρησιµοποιώντας µία µοναδική δοκιµή που
περιγράφεται στην Άσκηση 4.8.1, µπορούµε να
ελέγξουµε για ελαττώµατα πολλά διαφορετικά
σήµατα, αλλά τυπικά όχι όλα. Περιγράψτε µια σειρά
δοκιµών για να δούµε αν υπάρχει αυτό το ελάττωµα
σε όλες τις εξόδους των πολυπλεκτών (κάθε bit
εξόδου καθενός από τους πέντε πολυπλέκτες).
 ∆οκιµάστε το µε όσο το δυνατόν λιγότερες δοκιµές
µίας εντολής.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 52


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.8 (συνέχεια)
 Κάθε δοκιµή µε µία µόνο εντολή, «καλύπτει» όλα τα
ελαττώµατα που, αν υπάρχουν, εχουν σαν
αποτέλεσµα διαφορετική συµπεριφορά για την εντολή
δοκιµής. Για να γίνει δοκιµή όσο περισσότερων
ελαττωµάτων γίνεται µε µια εντολή, χρειαζόµαστε µια
εντολή που δίνει σε όσο περισσότερα από αυτά τα
σήµατα τιµές που θα έπρεπε να αλλάζουµε λόγω
ενός ελαττώµατος. Μερικά σήµατα δεν µπορούν να
δοκιµαστούν µε αυτή τη µέθοδο της µίας εντολής,
διότι το ελάττωµα σε ένα σήµα µπορεί να εξακολουθεί
να οδηγεί σε εντελώς σωστή εκτέλεση όλων των
εντολών που ενεργοποιούν το ελάττωµα.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 53
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11
 Στην άσκηση αυτή εξετάζουµε αναλυτικά τον τρόπο
που εκτελείται µια εντολή σε µια διαδροµή
δεδοµένων ενός κύκλου. Τα προβλήµατα αυτής της
άσκησης αναφέρονται σε έναν κύκλο ρολογιού στον
οποίο ο επεξεργαστής προσκοµίζει την επόµενη
λέξη εντολής:

Λέξη εντολής
α. 10001100010000110000000000010000
β. 00010000001000110000000000001100

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 54


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.1 Ποιες είναι οι έξοδοι του µπλοκ «Επέκταση
προσήµου» και του µπλοκ «Αριστερή ολίσθηση
κατά 2» του άλµατος (στο επάνω αριστερό µέρος
της Εικόνας 4.24) γι’ αυτή τη λέξη εντολής;

Επέκταση προσήµου
α. 00000000000000000000000000010000
β. 00000000000000000000000000001100

Αριστερή ολίσθηση κατά 2


α. 0001000011000000000001000000
β. 0000100011000000000000110000

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 55


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Εικόνα 4.24

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 56


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.2 Ποιες είναι οι τιµές των εισόδων της µονάδας
«Έλεγχος ALU» για την εντολή αυτή;

ALUOp[1:0] Instruction[5:0]
α. 00 010000
β. 01 001100

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 57


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.3 Ποια είναι η νέα διεύθυνση του PC µετά την
εκτέλεση αυτής της εντολής; Σηµειώστε τη διαδροµή
µέσω της οποίας προσδιορίζεται η τιµή αυτή.
Νέος PC ∆ιαδροµή
α. PC+4 PC -> Add (PC+4) -> Πολ/κτης
∆ιακλάδωσης -> Πολ/κτης
Άλµατος -> PC
β. Αν οι $1 και $3 δεν είναι ίσοι, PC+4 PC -> Add (PC+4) -> Πολ/κτης
Αν είναι ίσοι, PC+4+4x12 ∆ιακλάδωσης ή PC -> Add (PC+4)
-> Add (offset) -> Πολ/κτης
∆ιακλάδωσης
Μετά τον Πολ/κτης της
∆ιακλάδωσης πηγαίνει µέσω του
Πολ/κτη Άλµατος στο PC

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 58


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 Τα υπόλοιπα προβλήµατα αυτής της άσκησης
θεωρούν ότι η µνήµη δεδοµένων είναι όλο µηδενικά
και ότι οι καταχωρητές του επεξεργαστή έχουν τις
επόµενες τιµές στην αρχή του κύκλου στον οποίο
προσκοµίζεται η παραπάνω λέξη εντολής:

$0 $1 $2 $3 $4 $5 $6 $8 $12 $31
α. 0 1 2 3 –4 5 6 8 1 –32
β. 0 –16 –2 –3 4 –10 –6 –1 8 –4

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 59


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.4 Για κάθε πολυπλέκτη, δείξτε τις τιµές των
εισόδων δεδοµένων του κατά την εκτέλεση αυτής
της εντολής και γι’ αυτές τις τιµές καταχωρητών.

WriteReg ALU Mem/ALU Branch Jump


Mux Mux Mux Mux Mux
α. 3 16 0 PC+4 PC+4
β. 3ή0 -3 Χ PC+4 PC+4
(RegDst
είναι X)

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 60


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.5 Για την ALU και τις δύο µονάδες Αθροιστών,
ποιες είναι οι τιµές των εισόδων δεδοµένων τους;

ALU Add (PC+4) Add (Branch)


α. 2 και 16 PC και 4 PC+4 και 16x4
β. -16 και -3 PC και 4 PC+4 και 12x4

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 61


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.11 (συνέχεια)
 4.11.6 Ποιες είναι οι τιµές όλων των εισόδων της
µονάδας «Καταχωρητές»;

Κατα- Κατα-
χωρητής χωρητής Κατα-
Ανάγνω- Ανάγνω- χωρητής ∆εδοµένα
σης 1 σης 2 Εγγραφής Εγγραφής RegWrite
α. 2 3 3 0 1
β. 1 3 X (3 ή 0) X 0

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 62


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12
 Στην άσκηση αυτή, εξετάζουµε την επίδραση της
διοχέτευσης στο χρόνο κύκλου ρολογιού του
επεξεργαστή. Τα προβλήµατα αυτής της άσκησης
θεωρούν ότι τα µεµονωµένα στάδια της διαδροµής
δεδοµένων έχουν τους επόµενους λανθάνοντες
χρόνους:

IF ID EX MEM WB
α. 300ps 400ps 350ps 500ps 100ps
β. 200ps 150ps 120ps 190ps 140ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 63


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 4.12.1 Ποιος είναι ο χρόνος κύκλου ρολογιού σε
έναν επεξεργαστή µε διοχέτευση και χωρίς
διοχέτευση;
 Χωρίς διοχέτευση (σε έναν κύκλο) ο χρόνος του
ρολογιού είναι ίσος µε το άθροισµα των σταδίων. Με
τη διοχέτευση ο χρόνος ρολογιού είναι ίσος µε το
χρόνο του µέγιστου σταδίου. Άρα:
Χωρίς διοχέτευση
(ενός κύκλου) Με διοχέτευση
α. 1650ps 500ps
β. 800ps 200ps
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 64
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 4.12.2 Ποιος είναι ο συνολικός λανθάνων χρόνος
µιας εντολής lw σε έναν επεξεργαστή µε διοχέτευση
και σε ένα χωρίς διοχέτευση;
 Χωρίς τη διοχέτευση είναι φυσικά ίσος µε τον χρόνο
του κύκλου ρολογιού (όπως και κάθε εντολή). Με τη
διοχέτευση είναι ίσος µε πέντε κύκλους ρολογιού
(όπως και κάθε εντολή). Άρα:
Χωρίς διοχέτευση
(ενός κύκλου) Με διοχέτευση
α. 1650ps 5x500=2500ps
β. 800ps 5x200=1000ps
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 65
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 4.12.3 Αν µπορούµε να διαιρέσουµε ένα στάδιο της
διαδροµής δεδοµένων µε διοχέτευση σε δύο νέα στάδια,
καθένα µε το µισό λανθάνοντα χρόνο του αρχικού, ποιο
στάδιο θα διαιρούσατε και ποιος είναι ο νέος χρόνος
κύκλου ρολογιού του επεξεργαστή;
 Το µεγαλύτερο όφελος (µείωση του κύκλου της
διοχέτευσης) θα προκύψει αν «σπάσουµε» στη µέση το
µεγαλύτερο στάδιο. Στο α είναι το MEM και στο β είναι
το IF. Άρα:
Σταδίο που θα «σπάσει» Νέο ρολόι
α. ΜΕΜ (αρχικά 500ps) 400ps (το ID)
β. IF (αρχικά 200ps) 190ps (το MEM)
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 66
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 Τα υπόλοιπα προβλήµατα της άσκησης θεωρούν ότι οι
εντολές που εκτελούνται από τον επεξεργαστή διαιρούνται
ως εξής: ALU beq lw sw
α. 50% 25% 15% 10%
β. 30% 25% 30% 15%
 4.12.4 Με την παραδοχή ότι δεν υπάρχουν καθυστερήσεις
(stalls) ή κίνδυνοι, ποια είναι η αξιοποίηση (utilization — το
ποσοστό κύκλων που χρησιµοποιείται) της µνήµης
δεδοµένων;
 Αφού «αποχωρεί» (ολοκληρώνεται) από τη διοχέτευση µία
εντολή σε κάθε κύκλο (δεν υπάρχουν χαµένοι κύκλοι) η
αξιοποίηση είναι το άθροισµα των εντολών lw και sw
Αξιοποίηση µνήµης δεδοµένων
α. 25%
β. 45%
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 67
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 4.12.5 Με την παραδοχή ότι δεν υπάρχουν
καθυστερήσεις (stalls) ή κίνδυνοι, ποια είναι η
αξιοποίηση της θύρας «Καταχωρητής εγγραφής»
της µονάδας «Καταχωρητές»;
 Όπως και πριν αφού δεν υπάρχουν χαµένοι κύκλοι,
η απάντηση είναι το άθροισµα των ποσοστών των
εντολών που γράφουν σε καταχωρητή. ∆ηλαδή των
εντολών ALU (µορφή R) και των εντολών lw.
Αξιοποίηση Καταχωρητή Εγγραφής
α. 50% + 15% = 65%
β. 30% + 30% = 60%

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 68


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 4.12.6 Αντί για µια οργάνωση ενός κύκλου,
µπορούµε να χρησιµοποιήσουµε µια οργάνωση
πολλών κύκλων όπου κάθε εντολή διαρκεί πολλούς
κύκλους αλλά µια εντολή πρέπει να τελειώσει πριν
προσκοµιστεί µια άλλη. Στην οργάνωση αυτή, µια
εντολή περνάει µόνο µέσω των σταδίων που
πραγµατικά χρειάζεται (π.χ. η sw διαρκεί µόνο
τέσσερις κύκλους επειδή δε χρειάζεται το στάδιο
WB). Συγκρίνετε τους χρόνους κύκλου ρολογιού
και τους χρόνους εκτέλεσης της οργάνωσης
ενός κύκλου, της οργάνωσης πολλών κύκλων,
και της οργάνωσης µε διοχέτευση.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 69
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 Ηδη υπολογίσαµε τους χρόνους ρολογιού για τις οργανώσεις µε τη
διοχέτευση και µε τον ένα µεγάλο κύκλο στο 4.12.1. Η νέα οργάνωση
πολλαπλών κύκλων έχει ίδιο κύκλο ρολογιού µε τη διοχέτευση.
Χωρίς διοχέτευση Πολλών Με
(ενός κύκλου) Κύκλων διοχέτευση
α. 1650ps 500ps 500ps
β. 800ps 200ps 200ps
 Θα υπολογίσουµε τους χρόνους εκτέλεσης σε σχέση µε την
οργάνωση µε διοχέτευση (που είναι αυτή µε το µικρότερο χρόνο
εκτέλεσης). Στον έναν κύκλο, κάθε εντολή διαρκεί έναν (µεγάλο)
κύκλο. Στη διοχέτευση, ένα πρόγραµµα (χωρίς καθυστερήσεις)
ολοκληρώνει µία εντολή σε κάθε κύκλο. Τέλος, σε µια οργάνωση
πολλών κύκλων, µια εντολή sw θέλει 4 κύκλους (χωρίς WB), µια
εντολή ALU σε 4 κύκλους (χωρίς MEM), και µία beq θέλει 3 κύκλους
(χωρίς MEM και WB). Συνεπώς, η επιτάχυνση που δίνει η διοχέτευση
είναι:
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 70
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.12 (συνέχεια)
 «Επιτάχυνση» που προσφέρει η διοχέτευση έναντι
των σχεδιάσεων ενός και πολλών κύκλων
Χρόνος εκτέλεσης Χρόνος εκτέλεσης
οργάνωσης οργάνωσης
πολλών κύκλων ενός κύκλου
σε σχέση σε σχέση
µε την οργάνωση µε την οργάνωση
µε διοχέτευση µε διοχέτευση
(ίδιο CPI=1 άρα η
(ίδιος κύκλος ρολογιού διαφορά είναι στη
άρα η διαφορά είναι το CPI) διάρκεια του κύκλου)
α. 0,15 x 5 + 0,60 x 4 + 0,25 x 3 = 3,90 1650ps/500ps = 3,30
β. 0,30 x 5 + 0,45 x 4 + 0,25x3 = 4,05 800ps/200ps = 4,00

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 71


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13
 Στην άσκηση αυτή, εξετάζουµε πώς επηρεάζουν την
εκτέλεση οι εξαρτήσεις δεδοµένων στη βασική
διοχέτευση των πέντε σταδίων που περιγράψαµε
στην Ενότητα 4.5. Τα προβλήµατα αυτής της
άσκησης αναφέρονται στην παρακάτω ακολουθία
εντολών: Ακολουθία εντολών
α. lw $1,40($6)
add $6,$2,$2
sw $6,50($1)
β. lw $5,–16($5)
sw $5,–16($5)
add $5,$5,$5

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 72


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.1 ∆είξτε τις εξαρτήσεις και τους τύπους τους.
 Συµβολισµοί:
 RAW – read after write
 WAR – write after read
 WAW – write after write
Ακολουθία εντολών Εξαρτήσεις
α. I1: lw $1,40($6) RAW στον $1 από Ι1 προς Ι3
I2: add $6,$2,$2 RAW στον $6 από Ι2 προς Ι3
WAR στον $6 από Ι1 προς Ι2
I3: sw $6,50($1)
β. I1: lw $5,–16($5) RAW στον $5 από Ι1 προς Ι2 και Ι3
I2: sw $5,–16($5) WAR στον $5 από Ι1 και Ι2 προς Ι3
WAW στον $5 από Ι1 προς Ι3
I3: add $5,$5,$5

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 73


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.2 Υποθέστε ότι δεν υπάρχει προώθηση σε
αυτόν τον επεξεργαστή µε διοχέτευση. ∆είξτε τους
κινδύνους και προσθέστε εντολές nop (no operation
– απραξία) για να τους εξαλείψετε.
 Στη βασική διοχέτευση των 5 σταδίων οι
εξαρτήσεις WAR και WAW δεν προκαλούν
κινδύνους. Χωρίς προώθηση, κάθε εξάρτηση RAW
µεταξύ µιας εντολής και των δύο επόµενων εντολών
αποτελεί κίνδυνο (αν η ανάγνωση κατ/τη συµβαίνει
στο δεύτερο µισό του κύκλου και η εγγραφή στο
πρώτο µισό). Ο κώδικας που εξαλείφει αυτούς τους
κινδύνους µε εισαγωγή nop είναι:
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 74
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
Ακολουθία εντολών
α. I1: lw $1,40($6) Καθυστερεί η εκκίνηση της I3 για να
I2: add $6,$2,$2 αποφευχθεί ο κίνδυνος RAW στον $1
από την Ι1 και ο κίνδυνος RAW στον
nop
$6 από Ι2
nop
I3: sw $6,50($1)
β. I1: lw $5,–16($5) Καθυστερεί η εκκίνηση της Ι2 για να
nop αποφευχθεί ο κίνδυνος RAW στον $5
από την Ι1
nop
I2: sw $5,–16($5) Σηµείωση: τώρα δεν υπάρχει
I3: add $5,$5,$5 κίνδυνος RAW στον $5 από τη Ι1

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 75


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.3 Υποθέστε ότι υπάρχει πλήρης προώθηση.
∆είξτε τους κινδύνους και προσθέστε εντολές nop
για να τους εξαλείψετε.
Ακολουθία εντολών
α. I1: lw $1,40($6) ∆εν υπάρχει κίνδυνος RAW στον $1
I2: add $6,$2,$2 από τη Ι1 (προωθείται)
I3: sw $6,50($1)
β. I1: lw $5,–16($5) Καθυστέρηση της Ι2 για να
nop αποφευχθεί ο κίνδυνος RAW στον $5
από τη Ι1
I2: sw $5,–16($5)
I3: add $5,$5,$5 Η τιµή του $5 προωθείται τώρα από
Γιατί χρειάζεται το nop? τη Ι2

Αφού υπάρχει προώθηση από Σηµείωση: δεν υπάρχει τώρα


lw σε sw?? κίνδυνος RAW στον $5 από τη Ι1
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 76
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 Τα υπόλοιπα προβλήµατα της άσκησης υποθέτουν
τους επόµενους χρόνους κύκλου ρολογιού:

Μόνο µε προώθηση
Χωρίς Με πλήρη από την ALU στην ALU
προώθηση προώθηση (µερική προώθηση…)
α. 300ps 400ps 360ps
β. 200ps 250ps 220ps

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 77


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.4 Ποιος είναι ο συνολικός χρόνος εκτέλεσης
των ακολουθιών εντολών της άσκησης αυτής χωρίς
προώθηση και µε πλήρη προώθηση;
 Ποια είναι η επιτάχυνση που επιτυγχάνεται µε την
προσθήκη πλήρους προώθησης σε µια διοχέτευση
που δεν είχε καθόλου προώθηση;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 78


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 Ο χρόνος εκτέλεσης είναι ίσος µε το χρόνο κύκλου ρολογιού
επί τον αριθµό των κύκλων. Χωρίς καθυστερήσεις, µια
ακολουθία τριών εντολών διαρκεί 7 κύκλους (3+4). Η
εκτέλεση χωρίς προώθηση πρέπει να προσθέσει µία
καθυστέρηση για κάθε nop που είδαµε στο 4.13.2 και η
εκτέλεση µε προώθηση πρέπει να προσθέσει µια
καθυστέρηση για κάθε nop που είδαµε στο 4.13.3. Έτσι
έχουµε:
Χωρίς Με πλήρη Επιτάχυνση λόγω
προώθηση προώθηση προώθησης
α. (7+2) x 300ps = 7 x 400 = 0,964
= 2700ps = 2800ps (επιβράδυνση^)
β. (7+2) x 200ps = (7+1) x 250ps = 0,90
= 1800ps = 2000ps (επιβράδυνση^)

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 79


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.5 Στο κώδικα αυτόν προσθέστε εντολές nop για να
εξαλείψετε τους κινδύνους στην περίπτωση που
υπάρχει µόνο προώθηση από την ALU στην ALU
(καθόλου προώθηση από το στάδιο MEM προς άλλα
στάδια).
 Με προώθηση µόνο από την ALU προς την ALU, µια
εντολή ALU µπορεί να προωθήσει στην επόµενη εντολή
αλλά όχι σε µια δεύτερη εντολή που ακολουθεί (γιατί
αυτό απαιτεί προώθηση από το MEM στο EX που δεν
υπάρχει). Μια εντολή load δεν προωθεί καθόλου, γιατί
καθορίζει την τιµή των δεδοµένων στο στάδιο MEM, και
είναι τότε πολύ αργά για να γίνει προώθηση από ALU
σε ALU. Έχουµε:
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 80
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)

Ακολουθία εντολών
α. I1: lw $1,40($6) ∆εν µπορεί να γίνει χρήση
I2: add $6,$2,$2 προώθησης ALU-ALU ($1 φορτώνεται
από τη µνήµη στο στάδιο ΜΕΜ).
nop
I3: sw $6,50($1)
β. I1: lw $5,–16($5) ∆εν µπορεί να γίνει χρήση
nop προώθησης ALU-ALU ($5 φορτώνεται
από τη µνήµη στο στάδιο ΜΕΜ).
nop
I2: sw $5,–16($5)
I3: add $5,$5,$5

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 81


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.13 (συνέχεια)
 4.13.6 Ποιος είναι ο συνολικός χρόνος εκτέλεσης
αυτής της ακολουθίας εντολών µόνο µε προώθηση
από την ALU στην ALU; Ποια είναι η επιτάχυνση σε
σχέση µε µια διοχέτευση χωρίς προώθηση;

Επιτάχυνση λόγω
Χωρίς Με προώθηση προώθησης από
προώθηση ALU-ALU µόνο ALU-ALU
α. (7+2) x 300ps = (7+1) x 360ps = 0,94
= 2700ps = 2880ps (επιβράδυνση^)
β. (7+2) x 200ps = (7+2) x 220ps = 0,91
= 1800ps = 1980ps (επιβράδυνση^)

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 82


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14
 Στην άσκηση αυτή, εξετάζουµε πώς µπορούν να επηρεάσουν την
εκτέλεση µε διοχέτευση οι κίνδυνοι πόρων (ή δοµής), οι κίνδυνοι
ελέγχου, και η σχεδίαση της αρχιτεκτονικής συνόλου εντολών. Τα
προβλήµατα της άσκησης αναφέρονται στο τµήµα κώδικα MIPS:
Ακολουθία εντολών
α. lw $1,40($6)
beq $2,$0,Label ; υποθέστε ότι $2 == $0
sw $6,50($2)
Label: add $2,$3,$4
sw $3,50($4)
β. lw $5,–16($5)
sw $4,–16($4)
lw $3,–20($4)
beq $2,$0,Label ; υποθέστε ότι $2 != $0
add $5,$1,$4
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 83
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 4.14.1 Για το πρόβληµα αυτό, υποθέστε ότι όλες οι
διακλαδώσεις προβλέπονται τέλεια (αυτό εξαλείφει όλους
τους κινδύνους ελέγχου), και ότι δε χρησιµοποιούνται
καθόλου υποδοχές καθυστέρησης (delay slots). Αν έχουµε
µόνο µία µνήµη (και για τις εντολές και για τα δεδοµένα),
υπάρχει ένας δοµικός κίνδυνος κάθε φορά που πρέπει να
προσκοµιστεί µια εντολή στον ίδιο κύκλο που µια άλλη
εντολή προσπελάζει δεδοµένα. Για να είναι εγγυηµένη η
πρόοδος του προγράµµατος, αυτός ο κίνδυνος πρέπει να
επιλύεται πάντα υπέρ της εντολής που προσπελάζει
δεδοµένα. Ποιος είναι ο συνολικός χρόνος εκτέλεσης αυτής
της ακολουθίας εντολών σε µια διοχέτευση πέντε σταδίων
που έχει µόνο µία µνήµη;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 84


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Το *** δείχνει µια καθυστέρηση (stall) όταν µια εντολή δεν
µπορεί να προσκοµιστεί διότι µια εντολή load ή store
χρησιµοποιεί τη µνήµη στον ίδιο κύκλο :
Ακολουθία
εντολών Στάδια διοχέτευσης
α. lw $1,40($6) IF ID EX MEM WB
beq $2,$0,Label IF ID EX MEM WB 11 κύκλοι
sw $6,50($2) IF ID EX MEM WB
add $2,$3,$4 *** IF ID EX MEM WB
sw $3,50($4) *** IF ID EX MEM WB
β. lw $5,–16($5) IF ID EX MEM WB
sw $4,–16($4) IF ID EX MEM WB
lw $3,–20($4) IF ID EX MEM WB 12 κύκλοι
beq $2,$0,Label *** *** *** IF ID EX MEM WB
add $5,$1,$4 IF ID EX MEM WB

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 85


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Έχουµε δει ότι οι κίνδυνοι δεδοµένων µπορούν να
εξαλειφθούν µε την προσθήκη εντολών nop στο
κώδικα. Μπορείτε να κάνετε το ίδιο µε αυτόν το
δοµικό κίνδυνο; Γιατί;
 ∆εν µπορούµε να προσθέσουµε εντολές nop στον
κώδικα για να εξαλείψουµε αυτό τον κίνδυνο – οι
εντολές nop πρέπει να προσκοµιστούν ακριβώς
όπως κάθε εντολή.
 Αυτός ο κίνδυνος αντιµετωπίζεται µόνο µε ειδικό
hardware που τον ανιχνεύει και καθυστερεί την
προσκόµιση της επόµενης εντολής.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 86
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 4.14.2 Για το πρόβληµα αυτό, υποθέστε ότι όλες οι
διακλαδώσεις προβλέπονται τέλεια (αυτό εξαλείφει όλους
τους κινδύνους ελέγχου), και ότι δε χρησιµοποιούνται
καθόλου υποδοχές καθυστέρησης (delay slots). Αν
αλλάξουµε τις εντολές load και store ώστε να χρησιµοποιούν
έναν καταχωρητή ως διεύθυνση (χωρίς σχετική διεύθυνση —
offset), αυτές οι εντολές δε χρειάζεται πλέον να
χρησιµοποιήσουν την ALU. Ως αποτέλεσµα, τα στάδια MEM
και EX µπορούν να επικαλυφθούν και η διοχέτευση έχει
µόνο τέσσερα στάδια. Αλλάξτε τον κώδικα λαµβάνοντας
υπόψη αυτή την τροποποιηµένη αρχιτεκτονική συνόλου
εντολών. Με την παραδοχή ότι η αλλαγή δεν επιδρά στο
χρόνο κύκλου ρολογιού, ποια επιτάχυνση επιτυγχάνεται γι’
αυτή την ακολουθία εντολών;
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 87
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
Ακολουθία εντολών Στάδια διοχέτευσης
α. addi $6,$6,40 IF ΙD NEW WB
lw $1,($6) IF ID NEW WB
beq $2,$0,Label IF ID NEW WB
addi $2,$2,50 IF ID NEW WB
sw $6,($2) IF ID NEW WB
add $2,$3,$4 IF ID NEW WB
addi $4,$4,50 IF ID NEW WB
sw $3,($4) IF ID NEW WB

Επιτάχυνση
Εντολές που Κύκλοι µε 5 στάδια Κύκλοι µε
εκτελούνται (χωρίς κινδ. δοµής) 4 στάδια 
α. 5 -> 8 5+4=9 8 + 3 = 11 9/11 = 0,818

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 88


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Οµοίως ƒ
Ακολουθία εντολών Στάδια διοχέτευσης
β. addi $5,$5,-16 IF ID NEW WB
lw $5,($5) IF ID NEW WB
addi $4,$4,-16 IF ID NEW WB
sw $4,($4) IF ID NEW WB
addi $4,$4,-20 IF ID NEW WB
lw $3,($4) IF ID NEW WB
beq $2,$0,Label IF ID NEW WB
add $5,$1,$4 IF ID NEW WB

Επιτάχυνση
Εντολές που Κύκλοι µε 5 στάδια Κύκλοι µε
εκτελούνται (χωρίς κινδ. δοµής) 4 στάδια 
β. 5 -> 8 5+4=9 8+3=9 9/11 = 0,818

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 89


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 4.14.3 Με την παραδοχή ότι υπάρχει καθυστέρηση
σε περίπτωση εντολής διακλάδωσης (stall-on-
branch) και δεν υπάρχουν υποδοχές καθυστέρησης,
ποια επιτάχυνση επιτυγχάνεται σε αυτόν το κώδικα
αν τα αποτελέσµατα των διακλαδώσεων
προσδιορίζονται στο στάδιο ID, σε σχέση µε την
εκτέλεση όπου τα αποτελέσµατα των
διακλαδώσεων προσδιορίζονται στο στάδιο EX;

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 90


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Η λύση stall-on-branch καθυστερεί την προσκόµιση της
επόµενης εντολής µέχρι να επιλυθεί η διακλάδωση. Όταν η
επίλυση γίνεται στο στάδιο EXE, κάθε διακλάδωση προκαλεί
δύο κύκλους καθυστέρησης. Όταν η επίλυση γίνεται στο ID
προκαλεί µόνο έναν κύκλο καθυστέρησης. Αν δεν υπάρχουν
καθυστερήσεις διακλάδωσης (τέλεια πρόβλεψη
διακλάδωσης) δεν υπάρχουν χαµένοι κύκλοι.
Κύκλοι µε
επίλυση Κύκλοι µε
στο επίλυση
Εντολές που ∆ιακλαδώσ στάδιο στο
εκτελούνται εις ΕΧΕ στάδιο ID Επιτάχυνση
α. 5 1 11 10 11/10 = 1,1
β. 5 1 11 10 11/10 = 1,1

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 91


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Τα παρακάτω προβλήµατα αυτής της άσκησης υποθέτουν ότι
τα µεµονωµένα στάδια της διοχέτευσης έχουν τους
επόµενους λανθάνοντες χρόνους:
IF ID EX MEM WB
α. 100ps 120ps 90ps 130ps 60ps
β. 180ps 100ps 170ps 220ps 60ps
 4.14.4 Με δεδοµένους αυτούς τους χρόνους των σταδίων,
επαναλάβετε τον υπολογισµό της επιτάχυνσης της Άσκησης
4.14.2, αλλά λάβετε υπόψη σας την (πιθανή) αλλαγή στο
χρόνο κύκλου ρολογιού. Όταν τα EX και MEM γίνονται σε ένα
στάδιο, η περισσότερη δουλειά τους µπορεί να γίνει
παράλληλα. Ως αποτέλεσµα, το στάδιο EX/MEM (=NEW) που
προκύπτει έχει λανθάνοντα χρόνο ίσο µε το µεγαλύτερο των
αρχικών δύο σταδίων, συν 20ps που χρειάζονται για ό,τι δεν
µπορεί να γίνει παράλληλα.
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 92
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Ο αριθµός κύκλων για την κανονική (5 σταδια) και τη νέα (4
στάδια) διοχέτευση έχει υπολογιστεί στο 4.14.2.
 Ο κύκλος ρολογιού είναι ίσος µε το χρόνο του µεγαλύτερου
σταδίου. Ο συνδυασµός των EX και MEM επιδρά στο χρονο
του κύκλου µόνο αν το συνδυασµένο στάδιο είναι το
µεγαλύτερο στη διοχέτευση:

Επιτάχυνση
Χρόνος κύκλου Χρόνος κύκλου
µε 5 στάδια µε 4 στάδια 
α. 130 ps (MEM) 150 ps (MEM + 20) (9 x 130)/(11 x 150) = 0,709
β. 220 ps (MEM) 240 ps (MEM + 20) (9 x 220)/(11 x 240) = 0,750

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 93


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 4.14.5 Με δεδοµένους αυτούς τους λανθάνοντες χρόνους
των σταδίων της διοχέτευσης, επαναλάβετε τον υπολογισµό
της επιτάχυνσης της Άσκησης 4.14.3, αλλά λάβετε υπόψη
σας την (πιθανή) αλλαγή στο χρόνο κύκλου ρολογιού.
Υποθέστε ότι ο λανθάνων χρόνος του σταδίου ID αυξάνεται
κατά 50% και ο λανθάνων χρόνος του σταδίου EX µειώνεται
κατά 10ps όταν η επίλυση του αποτελέσµατος της
διακλάδωσης µεταφέρεται από το EX στο ID.
Νέος Νέος Παλιός
Νέος χρόνος χρόνος χρόνος
χρόνος ID EX κύκλου κύκλου Επιτάχυνση
α. 180 ps 80 ps 180 ps (ID) 130 ps (MEM) (11 x 130)/(10 x 180)
(= 120ps + 50%) = 0,794
β. 150 ps 160 ps 220 ps (MEM) 220 ps (MEM) (11 x 220)/(10 x 220)
(= 100ps + 50% = 1,10

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 94


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 4.14.6 Με την παραδοχή καθυστέρησης σε περίπτωση
διακλάδωσης (stall-on-branch) και χωρίς υποδοχές
καθυστέρησης, ποιος είναι ο νέος χρόνος κύκλου ρολογιού
και ο χρόνος εκτέλεσης αυτής της ακολουθίας εντολών αν ο
υπολογισµός διεύθυνσης της beq µεταφερθεί στο στάδιο
MEM; Ποια είναι η επιτάχυνση από αυτή την αλλαγή;
Υποθέστε ότι ο λανθάνων χρόνος του σταδίου EX µειώνεται
κατά 20ps και ο λανθάνων χρόνος του σταδίου MEM είναι
αµετάβλητος όταν η κατεύθυνση της διακλάδωσης
µεταφέρεται από το EX στο MEM.

Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 95


∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών
Άσκηση 4.14 (συνέχεια)
 Ο κύκλος ρολογιού δεν αλλάζει: µια µείωση 20ps στο χρόνο
του EX δεν επηρεάζει κάτι αφού το ΕΧ δεν είναι το χειρότερο
στάδιο. Η αλλαγή επηρεάζει το χρόνο εκτέλεσης αφού
προσθέτει έναν κύκλο καθυστέρησης σε κάθε διακλάδωση.
Επειδή ο χρόνος κύκλου δε βελτιώνεται αλλά το πλήθος των
κύκλων αυξάνεται, η επιτάχυνση από αυτή την αλλαγή θα
είναι <1 (επιβράδυνση). Στο 4.14.3 υπολογίσαµε ήδη τους
κύκλους όταν µια διακλάδωση επιλύεται στο EX. Έχουµε:
Χρόνος Χρόνος
Κύκλοι µε εκτέλ. Κύκλοι µε εκτέλ.
επίλυση (επιλ. επίλυση (επιλ.
στο EX στο ΕΧ) στο MEM στο MEM) Επιτάχυνση
α. 11 (9+2) 11 x 130 = 1430 ps 12 (9+3) 12 x 130 = 0,917
1560 ps
β. 11 (9+2) 11 x 220 = 2420 ps 12 (9+3) 12 x 220 = 0,917
2640 ps
Ασκήσεις Κεφάλαιο 4 — Ο επεξεργαστής — 96
∆ηµήτρης Γκιζόπουλος, Πανεπιστήµιο Αθηνών

You might also like