ΗΥ-225: Οργάνωση Υπολογιστών
Άνοιξη 2003
Τμ. Επ. Υπολογιστών
Πανεπιστήμιο Κρήτης

Σειρά Ασκήσεων 13:
Υλοποίηση Εξαιρέσεων και Τελικές Διορθώσεις

Προθεσμία έως Τετάρτη 21 Μαΐου (βδομάδα 12)

Εξαιρέσεις Μνήμης:

Εκτός από τις εξαιρέσεις παράνομης εντολής (illegal opcode) --που έχει και ο επεξεργαστής του βιβλίου (παράγραφος 5.6, σελίδες 410-416) και που θα υλοποιήσουμε και εμείς-- και εκτός από τις εξαιρέσεις αριθμητικής υπερχείλισης --που δεν θα υλοποιήσουμε εμείς-- σε αυτή τη σειρά ασκήσεων θα υλοποιήσετε και Εξαιρέσεις Προσπελάσεων Μνήμης:

Άσκηση 13.1: Προσθήκη Εξαιρέσεων (Exceptions)

Προσθέστε στο datapath και στον έλεγχο όσα χρειάζονται γιά να υλοποιεί ο επεξεργαστής σας Εξαιρέσεις Παράνομης Εντολής και Εξαιρέσεις Μνήμης. Η ιδέα είναι η ίδια με ό,τι περιγράφει το βιβλίο στην παράγραφο 5.6 (σελίδες 410-416), αλλά εμείς θα έχουμε διαφορετικές αιτίες εξαιρέσεων, και μία μόνο πρόσθετη κατάσταση ελέγχου, την "exception_st", γιά να τις υλοποιήσουμε. Όπως και στο βιβλίο, πάντως, θα προσθέσετε δύο νέους (ακμοπυροδότητους) καταχωρητές: "epc" (Exception PC), των 32 bits, γιά να κρατά τη διεύθυνση της "κακιάς" εντολής (συν 4), και "cause" (αιτία), επίσης των 32 bits, γιά να κρατά έναν κώδικα που υποδεικνύει την αιτία της εξαίρεσης. Περιγράψτε τον "epc" σαν RegLd (όπως και τον pc), ενώ τον "cause" μπορείτε να τον περιγράψτε σαν reg --όπως και τον currState. Οι αιτίες εξαιρέσεων και οι αντίστοιχες δράσεις θα είναι:

Άσκηση 13.2: Πλήρες Debugging

Ελέγξτε εξονυχιστικά τον επεξεργαστή που σχεδιάσατε, και διορθώστε όλα τα λάθη που βρίσκετε, μέχρι ότου αυτός εκτελεί επιτυχώς τα μεγάλα προγράμματα που θα βρείτε στην περιοχή "~hy225/verilog/test/test13/". Υπολογίστε με τη βοήθεια του SignalScan πόση είναι η ελάχιστη δυνατή περίοδος του ρολογιού σας, και αλλάξτε το top-level ώστε να τρέχει ο επεξεργαστής σας με αυτό το γρηγορότερο δυνατό ρολόϊ. Πόσα MHz καταφέρατε να "πιάσετε";

Παραδώστε, όπως και στις προηγούμενες ασκήσεις, τον κώδικά σας, "datapath13.v" και "control13.v", το νέο test bench και μνήμη, "test13.v" και "memory13.hex", και ένα χαρακτηριστικό στιγμιότυπο, "signals13.jpg", από το Signalscan με ένα από τα πλέον πολύπλοκα tests, πακεταρισμένα στο αρχείο "ask13.tar" μέσω:

  tar -cvf ask13.tar   datapath13.v control13.v test13.v memory13.hex signals13.jpg
  ~hy225/bin/submit 13

[Σημείωση: πέρυσι υπήρχε και η προαιρετική άσκηση
13.3 που αφορούσε μιάν απλή μορφή Ομοχειρίας (fetch-execute overlap).


Up to the Home Page of CS-225
 
© copyright University of Crete, Greece.
Last updated: 13 May 2003, by M. Katevenis