Preview only show first 10 pages with watermark. For full document please download

πανεπιστήμιο θεσσαλίας τμήμα ηλεκτρολόγων μηχανικών και μηχανικών υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΜΣ Εφαρμοσμένη Πληροφορική Οργάνωση και Σχεδίαση Η/Υ Άσκηση 1: Δεύτερη Σειρά Ασκήσεων 18 Μαΐου 2016 ενδεικτική υποβολή: 3

   EMBED

  • Rating

  • Date

    May 2018
  • Size

    231.8KB
  • Views

    7,480
  • Categories


Share

Transcript

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΜΣ Εφαρμοσμένη Πληροφορική Οργάνωση και Σχεδίαση Η/Υ Άσκηση 1: Δεύτερη Σειρά Ασκήσεων 18 Μαΐου 2016 ενδεικτική υποβολή: 3 Ιουνίου 2016 Θέλουμε να κατασκευάσουμε έναν μη επαναληπτικό αθροιστή 20 αριθμών των 64 bits, α- γνοώντας κρατούμενα εξόδου ή σήματα υπερχείλισης. Α. Σχεδιάστε δύο τέτοιους αθροιστές με τις ακόλουθες μεθόδους: (i) Χρησιμοποιήστε επιμέρους αθροιστές διάδοσης κρατουμένου των 64 bits για να προσθέτετε τους αριθμούς ανά δύο στον ελάχιστο δυνατό αριθμό επιπέδων διαδοχικής πρόσθεσης. (ii) Χρησιμοποιήστε επιμέρους αθροιστές διατήρησης κρατουμένου (carry-save) των 64 bits και έναν αθροιστή πρόβλεψης κρατουμένου των 64 bits για να προσθέσετε τα τελικά επιμέρους κρατούμενα με τα τελικά επιμέρους αθροίσματα. Ελαχιστοποιήστε τον αριθμό ε- πιπέδων διαδοχικής πρόσθεσης διατήρησης κρατουμένου. Για απλούστευση, μη σχεδιάσετε τους αθροιστές ανά bit, αλλά ανά λέξη των 64 bits, δείχνοντας μόνο το πώς οι επιμέρους αθροιστές πρέπει να συνδέονται μεταξύ τους. Β (προαιρετικά). Για καθεμία από τις δύο περιπτώσεις, να υπολογίσετε το συνολικό χρόνο καθυστέρησης για τον υπολογισμό του αθροίσματος. Για τον αθροιστή πρόβλεψης κρατουμένου, υποθέστε ότι κάθε επίπεδο πρόβλεψης συνδυάζει 4 ψηφία που παράγονται από το προηγούμενο επίπεδο πρόβλεψης. Για όλες τις περιπτώσεις βρείτε το χρόνο καθυστέρησης σα συνάρτηση του χρόνου καθυστέρησης μιας στοιχειώδους λογικής πύλης, θεωρώντας ότι όλες οι στοιχειώδεις λογικές πύλες έχουν τον ίδιο χρόνο καθυστέρησης Τ. Άσκηση 2: Α. Θεωρήστε τον επαναληπτικό αλγόριθμο του Booth για πολλαπλασιασμό προσημασμένων αριθμών σταθερής υποδιαστολής, τόσο με βήμα 1 (ελέγχου ζεύγους ψηφίων), όσο και με βήμα 2 (ελέγχου τριάδας ψηφίων). Εφαρμόστε τον αλγόριθμο και για τις δύο περιπτώσεις βήματος 1 και 2 στους αριθμούς Χ = και Υ = , για μια ε- παναληπτική μονάδα πολλαπλασιασμού με διαδοχικές προσθέσεις και ολισθήσεις που εκτελεί την πράξη Χ Υ, όπου Χ ο πολλαπλασιαστέος και Υ ο πολλαπλασιαστής, κατασκευάζοντας από έναν πίνακα για κάθε περίπτωση με τις τιμές των καταχωρητών της μονάδας σε κάθε φάση εκτέλεσης της πράξης. Η μονάδα βασίζεται στο υλικό με τον ενιαίο καταχωρητή Γινόμενο/Πολλαπλασιαστής, και με ΑΛΜ του ελάχιστου δυνατού εύρους. Β. Ο επαναληπτικός αλγόριθμος του Booth μπορεί να γενικευτεί για κάποια σταθερά βήματος Ν, με έλεγχο Ν+1 bits του πολλαπλασιαστή σε κάθε επανάληψη, οπότε το γινόμενο υπολογίζεται με ρυθμό Ν bits ανά επανάληψη. Βρείτε τη μορφή των αλγεβρικών σχέσεων από τις οποίες προκύπτει ο γενικευμένος αλγόριθμος Booth για τυχαίο Ν. Γ (προαιρετικά). Δώστε τις δύο περιπτώσεις του αλγόριθμου Booth για Ν = 3 και Ν = 4. Πιο συγκεκριμένα, εφαρμόστε τις αλγεβρικές σχέσεις και βρείτε για καθεμία από τις δύο περι- 2 πτώσεις τι πράξεις πρέπει να γίνονται σε κάθε επανάληψη, με βάση τις δυνατές τιμές των ψηφίων του πολλαπλασιαστή που ελέγχονται. Εφαρμόστε τον αλγόριθμο και για τις δύο περιπτώσεις βήματος 3 και 4 στους ίδιους αριθμούς Χ και Υ, σε παρόμοιο υλικό, και με παρόμοιο τρόπο όπως προηγουμένως. Άσκηση 3: Θεωρήστε τη μη επικαλυπτόμενη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Περιγράψτε την πλήρη ροή πληροφορίας και στις δύο περιπτώσεις υλοποίησης απλού και πολλαπλών κύκλων μηχανής για την εντολή πρόσθεσης με άμεσο τελούμενο: addiu $4,$4,0xff00 Ειδικότερα, να αναφέρετε όλες τις τιμές των σημάτων ελέγχου που παράγονται, καθώς και τις μικρολειτουργίες που εκτελούνται σε κάθε υπομονάδα της ΜΕΔ, με τη σειρά που αυτές εκτελούνται, είτε είναι χρήσιμες για τη συγκεκριμένη εντολή είτε όχι γεγονός το οποίο ζητείται να αναφέρετε. Ακόμη, να γράψετε τις τιμές πληροφορίας που φτάνουν σε κάθε υπομονάδα και κάθε πολυπλέκτη. Τέλος, για την περίπτωση πολλαπλών κύκλων μηχανής, να αναφέρετε τις εγγραφές των καταχωρητών Α, Β, C, IR και DR που συμβαίνουν, καθώς και τις τιμές που εγγράφονται. Θεωρήστε ότι στην αρχή του κύκλου εντολής ο καταχωρητής $4 περιέχει την τιμή 0x51a, ενώ ο PC περιέχει την τιμή 0x8140a008. Άσκηση 4 (προαιρετική): Θεωρήστε τη μη επικαλυπτόμενη ΜΕΔ της αρχιτεκτονικής MIPS καλωδιωμένης λογικής για κύκλο εντολής τόσο απλού, όσο και πολλαπλών κύκλων μηχανής. Υποθέστε ότι θέλουμε να επεκτείνουμε το σύνολο εντολών, ώστε να περιλαμβάνει κάποιες πιο απλές, αλλά και κάποιες πιο ισχυρές εντολές, χρήσιμες για πολλές εφαρμογές: Α. Προσπέλαση μνήμης χωρίς μετατόπιση: lw $rt,($rs) sw $rt,($rs) όπου η τελική διεύθυνση προσπέλασης προέρχεται κατ ευθείαν από τον καταχωρητή $rs. Β. Προσπέλαση μνήμης με διευθυνσιοδότηση ενημέρωσης: lwp $rt,off($rs) swp $rt,off($rs) όπου η τελική διεύθυνση προσπέλασης υπολογίζεται όπως ακριβώς στην αρχιτεκτονική MIPS, αλλά επιπλέον η διεύθυνση αυτή αποθηκεύεται στον καταχωρητή $rs. Η πρώτη εντολή φορτώνει μια λέξη δεδομένων από τη μνήμη, ενώ η δεύτερη εντολή αποθηκεύει μια λέξη δεδομένων στη μνήμη. Γ. Διακλάδωση μετά από πρόσθεση, χωρίς ή με σύνδεση: baddz $rs,$rt,off baddzal $rs,$rt,off όπου, αφού προστεθούν τα περιεχόμενα των καταχωρητών $rs και $rt, εκτελείται άλμα αν προκύπτει μηδενική τιμή, ενώ το αποτέλεσμα της πρόσθεσης αποθηκεύεται στον καταχωρητή $rt. Η διεύθυνση προορισμού άλματος υπολογίζεται με το γνωστό τρόπο, δηλαδή πρόσθεση της προέκτασης προσήμου της μετατόπισης off στην τρέχουσα τιμή του μετρητή προγράμματος. Η δεύτερη εντολή επιπρόσθετα αποθηκεύει την παλιά τιμή του PC στον καταχωρητή $31, μόνο όταν εκτελείται άλμα. 3 Για την υποστήριξη των πιο πάνω εντολών όπου αυτή είναι δυνατή είναι πιθανό να χρειαστεί να τροποποιήσετε τη ΜΕΔ, τόσο στην περίπτωση απλού, όσο και στην περίπτωση πολλαπλών κύκλων μηχανής για κάθε κύκλο εντολής. Οι όποιες τροποποιήσεις θα πρέπει να ε- λαχιστοποιούν τη διάρκεια του κύκλου μηχανής στην πρώτη, και τον αριθμό κύκλων μηχανής για τις εμπλεκόμενες εντολές στη δεύτερη περίπτωση. Ειδικά για την περίπτωση πολλαπλών κύκλων, δε θα πρέπει να αυξάνεται η διάρκεια του κύκλου μηχανής. Αν λόγω κόστους υλικού δεν επιτρέπεται να προσθέσετε νέες υπομονάδες στη ΜΕΔ, ποιες είναι οι τροποποιήσεις που χρειάζεστε για την υποστήριξη των εντολών αυτών; Χρειάζεστε κάποιους νέους δρόμους μεταφοράς πληροφορίας; Χρειάζεστε επέκταση υπαρχόντων ή προσθήκη νέων πολυπλεκτών; Χρειάζεστε κάποια νέα σήματα ελέγχου; Στην περίπτωση των πολλαπλών κύκλων μηχανής, να δώσετε την απαραίτητη προσθήκη στο διάγραμμα καταστάσεων που να περιγράφει την εκτέλεση των εντολών. Να απαντήσετε ανεξάρτητα για καθένα από τα ερωτήματα Α-Δ. Άσκηση 5 (προαιρετική): Σε πολλές εφαρμογές παράλληλης επεξεργασίας απαιτείται μια κατηγορία λειτουργιών υλοποιημένων σαν ακολουθίες μικρολειτουργιών που εκτελούνται σαν ένα αδιάσπαστο σύνολο (indivisible ή atomic operations). Αυτό σημαίνει ότι κατά την εκτέλεση αυτών των λειτουργιών δεν επιτρέπεται ανάμεσα στις μικρολειτουργίες της ακολουθίας να παρεμβάλλονται ξένες μικρολειτουργίες. Ένας τρόπος υλοποίησης τέτοιων αδιάσπαστων λειτουργιών είναι μέσω εντολών μηχανής της αρχιτεκτονικής, έτσι ώστε μία και μόνη εντολή να εκτελεί πλήρως μια τέτοια ακολουθία. Θεωρήστε τη μη επικαλυπτόμενη ΜΕΔ της απλοποιημένης αρχιτεκτονικής MIPS πολλαπλών κύκλων μηχανής ανά κύκλο εντολής, με έλεγχο τόσο καλωδιωμένης όσο και μικροπρογραμματισμένης λογικής, και υλοποιήστε σε αυτή για κάθε περίπτωση ελέγχου την εντολή: add&c&swapl $rd,$ru,($rt),($rs) η οποία δεδομένων δύο θέσεων μνήμης και ενός αριθμού, εκτελεί τη λειτουργία που περιγράφεται από τα ακόλουθα βήματα: 1. Διαβάζει τη θέση μνήμης στην οποία αναφέρεται με έμμεση διευθυνσιοδότηση χωρίς μετατόπιση μέσω του καταχωρητή $rs. 2. Προσθέτει την τιμή που διάβασε από τη μνήμη με την τιμή του $ru. 3. Διαβάζει τη θέση μνήμης στην οποία αναφέρεται με έμμεση διευθυνσιοδότηση χωρίς μετατόπιση μέσω του καταχωρητή $rt. 4. Συγκρίνει το αποτέλεσμα της πρόσθεσης με τη δεύτερη τιμή που διάβασε από τη μνήμη. 5. Αν το αποτέλεσμα της πρόσθεσης είναι μικρότερο από τη δεύτερη τιμή: - Αποθηκεύει τη δεύτερη τιμή στη θέση της πρώτης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rs. - Αποθηκεύει το αποτέλεσμα της πρόσθεσης στη θέση της δεύτερης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rt. 6. Διαφορετικά αποθηκεύει το αποτέλεσμα της πρόσθεσης στη θέση της πρώτης τιμής που διάβασε, δηλαδή στη διεύθυνση που υποδεικνύει ο καταχωρητής $rs. 7. Αποθηκεύει στον $rd το λογικό αποτέλεσμα της σύγκρισης. Για την υλοποίηση της εντολής add&c&swapl τροποποιήστε κατάλληλα τους δρόμους πληροφορίας και τις επιλογές εισόδων υπομονάδων της ΜΕΔ, διευρύνοντας ή προσθέτοντας πολυπλέκτες όπου χρειαστεί. Όμως, δε μπορείτε να προσθέσετε υπομονάδες ή καταχωρητές ειδικού σκοπού, μπορείτε όμως να προσθέσετε επίτρεψη εγγραφής σε υπάρχοντες καταχωρητές. Επίσης, δε μπορείτε να αυξήσετε τις θύρες ανάγνωσης του ΦΚ. Γι αυτό διατίθενται δύο μικρολειτουργίες ανάγνωσής του, η πρώτη διαβάζει τους $rs και $rt, και η δεύτερη διαβάζει τους $rs και $ru, επιλέγοντας τα κατάλληλα πεδία ψηφίων από τη λέξη εντολής. Η επιλογή 4 ανάγνωσης του ΦΚ γίνεται με το σήμα read, το οποίο όταν ενεργοποιείται επιλέγει τη δεύτερη ανάγνωση, διαφορετικά επιλέγεται η πρώτη. Υποθέστε ότι η σύγκριση μεταξύ δύο τιμών για μικρότερο γίνεται στην ΑΛΜ με τη μικρολειτουργία slt. Το λογικό αποτέλεσμα της σύγκρισης αποθηκεύεται στον C και αντικατοπτρίζεται και στο ψηφίο Ζero της ΑΛΜ που γίνεται διαθέσιμο με το τέλος της αντίστοιχης μικρολειτουργίας. Για την υλοποίηση με έλεγχο καλωδιωμένης λογικής να δώσετε τις διαδοχικές καταστάσεις που ενεργοποιούν τα σήματα ελέγχου για την εντολή add&c&swapl, καθώς και τις συνθήκες μετάβασης για όλες τις μεταβάσεις μεταξύ των καταστάσεων. Οι λογικές εκφράσεις των συνθηκών μετάβασης μπορούν να περιέχουν και το ψηφίο Ζero. Για την υλοποίηση με έλεγχο μικροπρογραμματισμένης λογικής, δώστε το αντίστοιχο μικροπρόγραμμα. Κατ αντιστοιχία με την καλωδιωμένη λογική, οι μικροεντολές μπορούν να περιέχουν άλμα με συνθήκη με βάση το ψηφίο Ζero της ΑΛΜ. Αν χρειαστεί, προσθέστε και νέα πεδία μικροεντολής, και ορίστε κατάλληλες μικρολειτουργίες γι αυτά. Να ελαχιστοποιήστε το χρόνο κύκλου εντολής και για τις δύο υλοποιήσεις της εντολής, χωρίς ωστόσο να αυξήσετε το χρόνο κύκλου μηχανής. Άσκηση 6: Έστω η ΜΕΔ MIPS μερικά επικαλυπτόμενων εντολών που μελετήσαμε στο μάθημα, χωρίς παροχέτευση ή πρόβλεψη διακλαδώσεων, η οποία υποστηρίζει τις εντολές add, sub, addi, lw, sw, bne, beq, j και jr. Η ΜΕΔ αυτή ξαναδίνεται πιο κάτω, με μερικές συμπληρωματικές λεπτομέρειες όσο αφορά τη μεταφορά πληροφορίας μεταξύ των υπομονάδων της καθώς και μεταξύ των καταχωρητών επικάλυψης F, D, E και M: pcsel = 0 Διακοπή Μ1 branch = 0 ΑΘΡ Μ1 = ΑΘΡ PC wrdis c1 Μονάδα c2 memread = 0 c2 memread = 1 M3 = M.c Ελέγχου c3 memwrite = 1 c3 memwrite = 0 c3 100 regwrite = 0 regwrite = 1 F D E rg = 4 M ΑΥΞ ΜΔΜ & Αποθηκευμένο Πρόγραμμα pc ir Φάκελος Καταχωρητών Γενικού Σκοπού pc rs= rt=4 regwrite = 1 rg = 4-2 a b ir Μ2-16 Ζ ΑΛΜ c b ΜΔΜ & Αποθηκευμένα Δεδομένα dr c 12 Μ3 Η πληροφορία εξόδου για κάθε έναν από τους καταχωρητές επικάλυψης είναι η πληροφορία που αποθηκεύτηκε σε αυτόν στον προηγούμενο κύκλο μηχανής, και αποτελεί ενδιάμεση είσοδο για την εντολή στη φάση που περιορίζεται μεταξύ αυτού και του επόμενου καταχωρητή επικάλυψης. Για παράδειγμα, η τιμή 240 που είναι η τιμή εξόδου του πεδίου D.a αφορά την εντολή στη φάση εκτέλεσης. Αντίστοιχα, η πληροφορία εισόδου για καθέναν από τους καταχωρητές επικάλυψης αποθηκεύεται στο τέλος του παρόντος κύκλου, και αποτελεί ενδιάμεση έξοδο της εντολής στη φάση που περιορίζεται μεταξύ αυτού και του προηγούμενου καταχωρητή επικάλυψης. Για παράδειγμα, η τιμή -2 που είναι η τιμή εισόδου του πεδίου D.b 5 αφορά την εντολή στη φάση αποκωδικοποίησης. Οι δρόμοι πληροφορίας από δεξιά προς τα αριστερά μεταφέρουν τιμές τις οποίες παράγει η εντολή που βρίσκεται στο δεξί άκρο τους. Επιπλέον των γραμμών δεδομένων, οι γραμμές σημάτων ελέγχου που φεύγουν από τη ΜΕ και απεικονίζονται ως μία γραμμή για κάθε φάση επικάλυψης θεωρούνται ότι μεταφέρουν όσα ψηφία είναι απαραίτητα για κάθε φάση. Έτσι, η γραμμή c1 περιέχει ψηφία που απευθύνονται στη φάση εκτέλεσης, η γραμμή c2 περιέχει ψηφία που απευθύνονται στη φάση προσπέλασης μνήμης και η γραμμή c3 περιέχει ψηφία που απευθύνονται στη φάση αποθήκευσης αποτελέσματος. Τα ψηφία ελέγχου δίνονται συμβολικά ως πεδία των c1, c2 και c3 στον πίνακα που ακολουθεί. Γραμμή Πεδίο Ελέγχου Λειτουργία Μ1 (PCSrc) Επιλογή διεύθυνσης από D.ir (προορισμός άμεσου άλματος), D.a (προορισμός έμμεσου άλματος) και ΑΘΡ (προορισμός άλματος διακλάδωσης). c1 branch Αν έχουμε διακλάδωση, τότε: αν 0, έλεγχος beq, αν 1, έλεγχος bne. Το σήμα είναι αδιάφορο αν δεν έχουμε διακλάδωση. Μ2 (ALUSrc) Επιλογή εισόδου ALU2 μεταξύ D.b (τιμή από ΦΚ) και D.ir (άμεσο τελούμενο ή μετατόπιση). Επιλογή πράξης ΑΛΜ μεταξύ funct (πράξη από κωδικό τελεστή), ALUop add (πρόσθεση από κωδικό λειτουργίας) και sub (αφαί- ρεση από κωδικό λειτουργίας). c2 memread Αν 1, τότε ανάγνωση μνήμης δεδομένων. memwrite Αν 1, τότε εγγραφή μνήμης δεδομένων. M3 (MemtoReg) Επιλογή δεδομένου προς αποθήκευση στο ΦΚ μεταξύ M.dr (από τη μνήμη) και M.c (από την ΑΛΜ). c3 regwrite Αν 1, τότε εγγραφή ΦΚ. rg Αριθμός καταχωρητή εγγραφής (ένας από τους rt και rd της αντίστοιχης εντολής). Εκτός των σημάτων που περιλαμβάνονται στις γραμμές c1, c2 και c3, το σήμα pcsel που ε- λέγχει τον πολυπλέκτη εισόδου του PC λαμβάνει τιμή από τη ΜΕ σε κάθε κύκλο. Αν αυτή είναι 1, ο PC δέχεται τη διεύθυνση που καθορίζει ο πολυπλέκτης Μ1, διαφορετικά τη διεύθυνση ΑΥΞ (επόμενης εντολής). Το σήμα pcsel μηδενίζεται, αν Μ1 = ΑΘΡ και branch ^ Z = 0. Για απλούστευση, οι γραμμές που μεταφέρουν τα σήματα επιλογής pcsel, Μ1 (PCSrc), Μ2 (ALUSrc) και Μ3 (MemtoReg) στους αντίστοιχους πολυπλέκτες δε φαίνονται στο διάγραμμα. Η πιο πάνω ΜΕΔ δεν διαθέτει μηχανισμούς παροχέτευσης και πρόβλεψης διακλαδώσεων. Έτσι, η μονάδα ελέγχου πρέπει να παγώνει το μηχανισμό επικάλυψης, όταν εμφανίζεται κίνδυνος εξάρτησης από δεδομένα, με μηδενισμό όλων των σημάτων ελέγχου που παράγει, καθώς και με μη επίτρεψη εγγραφής του PC και του καταχωρητή επικάλυψης F, για όσους κύκλους είναι απαραίτητο, με ενεργοποίηση του σήματος wrdis. Ακόμα, σε κάθε εντολή διακλάδωσης, οι δύο επόμενες εντολές εισέρχονται κανονικά στη ΜΕΔ, και αν το άλμα εκτελείται, γεγονός που αναδεικνύεται με τιμή 1 στο αποκλειστικό Η των σημάτων branch και Z, ακυρώνονται οι εντολές αυτές, με μηδενισμό των σημάτων ελέγχου για δύο κύκλους μηχανής. Παρόμοια γίνεται ο χειρισμός των άμεσων και έμμεσων αλμάτων, όπου βέβαια το άλμα πάντα εκτελείται. Όσο αφορά το ΦΚ, θεωρήστε ότι οι εγγραφές συμβαίνουν στο πρώτο μισό και οι αναγνώσεις στο δεύτερο μισό του κύκλου μηχανής. Στο παραπάνω διάγραμμα δίνονται για κάποιον κύκλο μηχανής οι τιμές πληροφορίας σε διάφορα σημεία της ΜΕΔ. Για παράδειγμα, το άμεσο τελούμενο ή η μετατόπιση που διαβάζεται από το πεδίο ir του D είναι -16. Επίσης, η επιλογή εισόδου του PC γίνεται από την έξοδο της μονάδας ΑΥΞ, ενώ η επιλογή στον πολυπλέκτη Μ1 στον επόμενο κύκλο θα γίνει από τον α- θροιστή ΑΘΡ. Με βάση τις τιμές και επιλογές που δίνονται στο διάγραμμα, μπορούμε να ε- ξάγουμε στοιχεία για τις εντολές που βρίσκονται σε καθεμία από τις 5 επικαλυπτόμενες φά- 6 σεις της ΜΕΔ. Τέτοια στοιχεία είναι οι διευθύνσεις τους στη μνήμη, πεδία από τις αντίστοιχες λέξεις εντολής, αλλά και οι τιμές των τελούμενων εισόδου και εξόδου τους, ή οι διευθύνσεις μνήμης στις οποίες πιθανά αναφέρονται. Έτσι: Α. Βρείτε όσα περισσότερα στοιχεία μπορείτε για τις πέντε εντολές που βρίσκονται στη ΜΕΔ. Εξηγήστε για κάθε πεδίο λέξης εντολής που δε γνωρίζετε, γιατί δεν μπορείτε να βρείτε την τιμή του, και εάν είναι εφικτό, βρείτε τιμές τις οποίες αυτό δεν μπορεί να έχει. Β. Με βάση την απάντησή σας στο προηγούμενο ερώτημα, βρείτε τι τιμές θα αποθηκευτούν στον PC και στους καταχωρητές επικάλυψης F, D, E και Μ στο τέλος του κύκλου μηχανής. Αναφέρετε Χ για τις τιμές που δε μπορείτε να γνωρίζετε. Επαναλάβετε για τους επόμενους κύκλους μηχανής, μέχρι να βγουν από τη ΜΕΔ και οι πέντε εντολές που ξεκίνησαν. Γ. Αν στη φάση εκτέλεσης το σήμα memwrite ήταν 0 και το σήμα ALUop ήταν sub, τι εντολή θα είχαμε στη φάση αυτή; Ποια θα ήταν τα σήματα επιλογής στους πολυπλέκτες Μ1 και Μ2; Ποιες θα ήταν οι τιμές που θα λάμβαναν ο PC και οι καταχωρητές επικάλυψης F, D και Ε στο τέλος του κύκλου; Ποια άλλη πληροφορία πρέπει να γνωρίζετε για τον ακριβή προσδιορισμό της εντολής; Δ. Αν στη φάση εκτέλεσης το σήμα memwrite ήταν 0 και το σήμα επιλογής του πολυπλέκτη Μ1 ήταν D.a, τι εντολή θα είχαμε στη φάση αυτή; Ποιες θα ήταν οι τιμές που βα λάμβαναν ο PC και οι καταχωρητές επικάλυψης F, D και Ε στο τέλος του κύκλου; Ε Εξηγήστε τι θα συνέβαινε αν στη φάση προσπέλασης μνήμης ο καταχωρητής εγγραφής ήταν ο 8. Να επαναλάβετε το ερώτημα Β με αυτό το δεδομένο. ΣΤ. Πώς θα έπρεπε να τροποποιήσουμε την παραπάνω ΜΕΔ, ώστε να επιτύχουμε μείωση στην απώλεια κύκλων μηχανής για εντολές άμεσου και έμμεσου άλματος; Άσκηση 7: Έστω η ΜΕΔ MIPS της προηγούμενης άσκησης με την προσθήκη μηχανισμών παροχέτευσης και πρόβλεψης διακλαδώσεων. Η προσθήκη αυτή γίνεται μέσα από τρεις νέες υπομονάδες που φαίνονται στο διάγραμμα της επόμενης σελίδας, και λειτουργούν όπως περιγράφεται στη συνέχεια. Για απλούστευση, στο διάγραμμα δε φαίνονται οι γραμμές των σημάτων επιλογής. Η υπομονάδα «Παροχέτευση» εξετάζει τη ΜΕΔ για κινδύνους δεδομένων που αντιμετωπίζονται με παροχέτευση. Σε κάθε κύκλο μηχανής δέχεται τον κωδικό λειτουργίας της εντολής στη φάση αποκωδικοποίησης και τους αριθμούς καταχωρητών που διαβάζονται από το ΦΚ, καθώς και τα σήματα regwrite και rg των δύο προηγούμενων εντολών που βρίσκονται στις δύο επόμενες φάσεις της ΜΕΔ. Για κάθε ταύτιση καταχωρητή που διαβάζεται και είναι απαραίτητος για την εντολή που τον διαβάζει με καταχωρητή που γράφεται, ενεργοποιείται το κατάλληλο σήμα παροχέτευσης, το οποίο αποθηκεύεται στο πεδίο fwd του καταχωρητή D, για να χρησιμοποιηθεί στον αμέσως επόμενο κύκλο μηχανής για επιλογή σε έναν από τους πολυπλέκτες Μ4 και Μ5 που έχουν προστεθεί στη ΜΕΔ για την παροχέτευση. Η υπομονάδα «Ανίχνευση Κινδύνων» εξετάζει τη ΜΕΔ για κινδύνους δεδομένων που δημιουργούνται μετά από εντολές φόρτωσης. Σε κάθε κύκλο μηχανής δέχεται τον κωδικό λειτουργίας της εντολής στη φάση αποκωδικοποίησης και τους αριθμούς καταχωρητών που διαβάζονται από το ΦΚ, καθώς και τα σήματα memread και rg της προηγούμενης εντολής που βρίσκεται στην επόμενη φάση της ΜΕΔ. Αν το σήμα memread έχει τιμή 1 και υπάρχει ταύτιση του καταχωρητή που γράφεται με έναν καταχωρητή που διαβάζεται και είναι απαραίτητος για την εντολή που τον διαβάζει, η ΜΕΔ παγώνει για έναν κύκλο μηχανής, με μη επίτρεψη εγγραφής του PC και του καταχωρητή επικάλυψης F, καθώς και με μηδενισμό των σημάτων ελέγχου που παράγονται στον ίδιο κύκλο. Αυτό επιτυγχάνεται με ενεργοποίηση των σημάτων wrdis και CZ. Η υπομονάδα «Πρόβλεψη Διακλαδώσεων» υλοποιεί δυναμική πρόβλεψη με δύο ψηφία ιστορίας ανά διακλάδωση, με τη βοήθεια μιας τοπικής μνήμης που αποθηκεύει την ιστο- 7 Πρόβλεψη Διακλαδώσεων PC ΑΥΞ ΜΔΜ & Αποθηκευμένο Πρόγραμμα wrdis F pc ir Ανίχνευση Κινδύνων Μονάδα Φάκελος Καταχωρητών Γενικού Σκοπού CZ M1 c1 c2 c3 D pc a b ΑΘΡ M4 M5 M2 ΑΛΜ Z c2 c3 E c ΜΔΜ & Αποθηκευμένα Δεδομένα c3 M dr c M3 ir b flush fwd Διακοπή Παροχέτευση ρία και τη διεύθυνση προορισμού για κάθε διακλάδωση που απαντάται, και με βάση τον αλγόριθμο δυναμική πρόβλεψης που μελετήσαμε στο μάθημα. Σε κάθε κύκλο μηχανής δέχεται την τιμή του PC, και αν η τιμή αυτή αντιστοιχεί σε διεύθυνση διακλάδωσης που έχει συναντηθεί στο παρελθόν και έχει πρόβλεψη εκτέλεσης άλματος, παρέχει μια διεύθυνση προορισμού, που αποθηκεύεται πίσω στον PC μέσω του πολυπλέκτη pcsel, ο ο- ποίος έχει διευρυνθεί κατάλληλα για την πρόβλεψη διακλαδώσεων, αλλιώς αφήνει τη ΜΕΔ να συνεχίσει με τις εντολές που ακολουθούν. Η φάση εκτέλεσης ενημερώνει την υπομονάδα για την έκβαση κάθε διακλάδωσης, και σε περίπτωση άλματος παρέχει σε αυτήν τη διεύθυνση προορισμού για να αποθηκευτεί στη μνήμη διευθύνσεων προορισμού. Σε κάθε λανθασμένη πρόβλεψη, ή για εκτέλεση αλμάτων χωρίς πρόβλεψη (διακλαδώσεων που δεν έχουν ξανασυναντηθεί, καθώς και άμεσων ή έμμεσων αλμάτων), ενεργοποιείται το σήμα flush, που μηδενίζει τις τιμές στις εισόδους των καταχωρ