Κεφάλαιο 1 | Ενότητα 2 | Ερωτήσεις επισκόπησης | Προηγούμενο |Επόμενο| Λεξικό όρων

Μέτρηση των συνιστωσών της απόδοσης της ΚΜΕ

Για να προσδιορίσουμε την απόδοση χρησιμοποιώντας την εξίσωση απόδοσης της ΚΜΕ χρειαζόμαστε μετρήσεις για κάθε μία από τις συνιστώσες της εξίσωσης. Αν εξαιρέσουμε τον κύκλο ρολογιού, τα άλλα δύο συστατικά της εξίσωσης της απόδοσης της ΚΜΕ μπορούν να μετρηθούν πιο εύκολα. Πιο συγκεκριμένα:

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

Πλήθος εντολών:Η μέτρηση του πλήθους εντολών για ένα πρόγραμμα μπορεί να γίνει αν έχουμε έναν μεταγλωττιστή για τον υπολογιστή μαζί με τα εργαλεία που υπολογίζουν τη συμπεριφορά του συνόλου εντολών.
Αν διαθέτουμε την μεταγλωττισμένη έκδοση του προγράμματος που μας ενδιαφέρει να μετρήσουμε, υπάρχουν δύο κύριες μέθοδοι που μπορούμε να εφαρμόσουμε για να υπολογίσουμε το πλήθος των εντολών. Στις περισσότερες περιπτώσεις θέλουμε να γνωρίζουμε εκτός από το σύνολο εντολών και την συχνότητα των διαφορετικών κλάσεων εντολών.

1ος τρόπος:
Ο πρώτος τρόπος για να το υπολογίσουμε είναι να χρησιμοποιήσουμε έναν εξομοιωτή συνόλου εντολών ο οποίος μεταφράζει τις εντολές.Το κύριο μειονέκτημα αυτής της προσέγγισης είναι η ταχύτητα (εφόσον η προσομοίωση του συνόλου εντολών είναι αργή διαδικασία) και η ανάγκη για εφαρμογή ουσιωδών δομών, αφού για να χειριστεί ο εξομοιωτής μεγάλα προγράμματα θα πρέπει να υποστηρίζει συναρτήσεις του λειτουργικού συστήματος. 'Ενα πλεονέκτημα του εξομοιωτή συνόλου εντολών είναι ότι μπορεί να υπολογίσει με μεγάλη ακρίβεια σχεδόν κάθε περίπτωση συμπεριφοράς συνόλου εντολών όπως και λειτουργικού συστήματος. Μερικοί τυπικοί εξομοιωτές συνόλου εντολών τρέχουν 10 με 1000 φορές πιο αργά απ΄ ότι τρέχει το πρόγραμμα.

2ος τρόπος:
Η εναλλακτική προσέγγιση χρησιμοποιεί παρακολούθηση κατά την διάρκεια της εκτέλεσης. Σύμφωνα με αυτή την προσέγγιση το δυαδικό πρόγραμμα τροποποιείται έτσι ώστε να συμπεριλάβει κώδικα ελέγχου (instrumentation code), όπως ένας μετρητής σε κάθε βασικό μπλοκ. Ενώ το πρόγραμμα τρέχει, καταγράφονται οι τιμές του μετρητή. Έπειτα προσδιορίζεται απλά η κατανομή των εντολών εξετάζοντας την στατική έκδοση του κώδικα και των τιμών των μετρητών. Οι μετρητές μας πληροφορούν για τη συχνότητα εκτέλεσης μιας εντολής. Οι τυπικοί κώδικες ελέγχου αυξάνουν τον χρόνο εκτέλεσης κατά 1,1 ή 2 φορές. Αυτή η τεχνική είναι πολύ γρήγορη, εφόσον το πρόγραμμα εκτελείται και δεν μεταφράζεται, και πολύ χρήσιμη όταν διαφέρει η αρχιτεκτονική της μηχανής που εξομοιώνεται με εκείνη της μηχανής που χρησιμοποιείται για την εξομοίωση. Σε αυτή την περίπτωση, το πρόγραμμα που ελέγχει τον κώδικα κάνει μία απλή μετάφραση μεταξύ των συνόλων εντολών. Αυτή η μετάφραση δεν είναι απαραίτητα και η βέλτιστη. Ακόμα και μία πρόχειρη μετάφραση συνήθως οδηγεί σε πιο γρήγορη μέτρηση του συστήματος από απ' ότι μία πλήρης εξομοίωση του συνόλου εντολών.

CPI: Η μέτρηση των κύκλων ρολογιού ανά εντολή (CPI ) είναι δυσκολότερη, αφού εξαρτάται άμεσα απ' την αναλυτική περιγραφή της οργάνωσης του επεξεργαστή, καθώς επίσης και του ρεύματος εντολών. Για έναν πολύ απλό επεξεργαστή είναι δυνατό να υπολογίσουμε το CPI για κάθε εντολή από έναν πίνακα και απλά να πολλαπλασιάσουμε αυτές τις τιμές με τον αριθμό των εμφανίσεων του κάθε τύπου εντολών. Ωστόσο, αυτή η απλή προσέγγιση δεν λειτουργεί για τους περισσότερους σύγχρονους επεξεργαστές, οι οποίοι χρησιμοποιούν τεχνικές όπως η σωλήνωση και η ιεραρχία μνήμης. Κατά συνέπεια, οι εντολές δεν έχουν απλές μετρήσεις κύκλων αλλά εξαρτώνται από την κατάσταση του επεξεργαστή κατά την εκτέλεση της εντολής. Οι σχεδιαστές χρησιμοποιούν συχνά τις μέσες τιμές κύκλων ρολογιού ανά εντολή, αλλά αυτά τα μέσα CPI υπολογίζονται μετρώντας τα αποτελέσματα της σωλήνωσης και της δομής της κρυφής μνήμης.
Για να προσδιορίσουμε τον αριθμό κύκλων ρολογιού για μία εντολή σε έναν σύγχρονο επεξεργαστή, υποθέτουμε ότι έχουμε ένα τέλειο σύστημα μνήμης. Είναι συχνά χρήσιμο να διαχωρίζουμε εκείνα τα συστατικά μέρη που προκύπτουν από το σύστημα μνήμης και εκείνα που προσδιορίζονται από τον επεξεργαστή. Η χρησιμότητα οφείλεται:

  1. στις διαφορετικές τεχνικές εξομοιώσης για την αξιολόγηση αυτών των συνεισφορών.

  2. στο γεγονός ότι η συνεισφορά του συστήματος μνήμης έχει προστεθεί σαν μέσος όρος σε όλες τις εντολές, ενώ η συνεισφορά του επεξεργαστή είναι πιο πιθανό να καθοριστεί από τις εντολές.

Οι κύκλοι ρολογιού για κάθε εντολή i υπολογίζονται με την βοήθεια του τύπου 1.25:

CPI I = CPI I σωλήνωσης + CPI I συστήματος μνήμης     (Τύπος 1.25)

Οι κύκλοι ρολογιού για την σωλήνωση μοντελοποιούνται από την εξομοίωση της δομής της σωλήνωσης χρησιμοποιώντας το ρεύμα εντολών.

Για απλές σωληνώσεις, είναι αποδοτικό να μοντελοποιήσουμε την απόδοση κάθε βασικού μπλοκ μεμονωμένα, αγνοώντας τις αλληλεπιδράσεις βασικών μπλοκ. Σε αυτές τις περιπτώσεις η απόδοση του κάθε βασικού μπλοκ, μαζί με την μέτρηση συχνότητας για κάθε βασικό μπλοκ, μπορεί να χρησιμοποιηθεί για να προσδιοριστεί το ολικό CPI. Το ολικό CPI περιλαμβάνει το μέσο αριθμό κύκλων ρολογιού ανά εντολή και το CPI για κάθε εντολή, δηλ. τους κύκλους ρολογιού για κάθε εντολή μεμονωμένα.

     Χρήση της εξίσωσης απόδοσης της ΚΜΕ

Το πραγματικό μέτρο της απόδοσης ενός υπολογιστή είναι ο χρόνος. Έστω ότι αλλάζουμε το σύνολο εντολών για να μειώσουμε το πλήθος των εντολών. Η ενέργεια αυτή μπορεί να οδηγήσει σε μία οργάνωση με πιο αργό κύκλο ρολογιού ο οποίος αντισταθμίζει τις βελτιώσεις στο πλήθος των εντολών. 'Οταν συγκρίνουμε δύο υπολογιστές θα πρέπει να εξετάζουμε και τις τρεις συνιστώσες της εξίσωσης απόδοσης της ΚΜΕ για να καταλαβαίνουμε την σχετική απόδοση του υπολογιστή.

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 4

·  Να απαριθμήσετε τις συνιστώσες της απόδοσης της ΚΜΕ.
· Να εξηγήσετε σε 10 το πολύ γραμμές τον τρόπο με τον οποίο γίνεται η μέτρηση των συνιστωσών αυτών; Στην περίπτωση που δυσκολεύεστε να απαντήσετε στις παραπάνω ερωτήσεις, κρίνεται σκόπιμο να επαναλάβετε την ανάγνωση της προηγούμενης υποενότητας με τίτλο: «Μέτρηση των συνιστωσών της απόδοσης της ΚΜΕ».