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

Οι δείκτες της απόδοσης της ΚΜΕ : Επιτυχίες & Αποτυχίες

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

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

Αν μετριέται σε κύκλους ρολογιού, ο μέσος χρόνος εκτέλεσης εντολής είναι ίδιος με το μέσο CPI .

Καθώς οι κεντρικές μονάδες επεξεργασίας έγιναν πιο πολύπλοκες και βασίστηκαν περισσότερο σε ιεραρχίες μνήμης και στις σωληνώσεις, δεν υπήρχε πλέον ένας μόνο χρόνος εκτέλεσης ανά εντολή. Κατά συνέπεια, τα ΜΙΡS δεν μπορούσαν να υπολογιστούν από το μίγμα και το εγχειρίδιο. Το MIPS -Million Instructions Per Second, δηλώνει τα εκατομμύρια των εντολών ανά δευτερόλεπτο (θα πούμε περισσότερα στην επόμενη ενότητα). Το επόμενο βήμα ήταν δοκιμές αποδόσεως χρησιμοποιώντας πυρήνες και συνθετικά προγράμματα.

Σύντομα διαπιστώθηκε ότι η χρησιμοποίηση των ΜIPS για την σύγκριση αρχιτεκτονικών με διαφορετικό σύνολο εντολών δεν θα πετύχει. Η λύση δόθηκε με τη δημιουργία του συγκριτικού MIPS. Ο VAX-11/780 θεωρήθηκε 1-ΜΙΡS υπολογιστής γιατί, συγκρινόμενος με τον ΙΒΜ 370/158, "έτρεχε" τα προγράμματα με την ίδια ταχύτητα. Το συγκριτικό MIPS για μία μηχανή Μ ορίστηκε, βασισμένο σε μια μηχανή αναφοράς Μ, ως εξής:

    (Τύπος 1.26)

Η δημοτικότητα του VAX-11/780 τον έκανε μηχανή αναφοράς για το συγκριτικό MIPS. Το γεγονός αυτό δεν μας εκπλήσσει, αφού το συγκριτικό MIPS για έναν 1- MIPS υπολογιστή υπολογίζεται εύκολα.

Στα τέλη της δεκαετίας του 1980 ιδρύθηκε η SPEC (System Performance and Evaluation Cooperative) με σκοπό να βελτιώσει την κατάσταση στις δοκιμές της απόδοσης και να δημιουργήσει μια πιο έγκυρη βάση για συγκρίσεις. Η ομάδα αυτή αρχικά ασχολήθηκε αποκλειστικά με σταθμούς εργασίας και εξυπηρετητές στην αγορά των συστημάτων UNIX, πράγμα που ακόμα και σήμερα παραμένει το πρωταρχικό ενδιαφέρον αυτών των προγραμμάτων δοκιμής απόδοσης. Η πρώτη παρουσίαση των προγραμμάτων δοκιμής της SPEC, τα οποία τώρα λέγονται SPEC89, ήταν μία ουσιαστική βελτίωση στην χρήση πιο ρεαλιστικών προγραμμάτων δοκιμής απόδοσης. Τα SPEC89 αντικαταστάθηκαν από τα SPEC92. Αυτή η έκδοση μεγένθυνε το σύνολο των προγραμμάτων, έκανε μεγαλύτερες τις εισόδους σε κάποια προγράμματα δοκιμής απόδοσης και καθόρισε νέους κανόνες εκτέλεσης. Το 1994 η SPEC παρουσίασε κανόνες για μεταγλωττιστές (compilers) και διακόπτες μεταγλώττισης για να χρησιμοποιούνται στον καθορισμό της κατώτατης απόδοσης του SPEC92, με σκοπό την μείωση του μεγάλου αριθμού των ειδικών σημαιών μεταγλωττιστή για τα προγράμματα δοκιμής:

  1. Οι επιλογές βελτιστοποίησης είναι ασφαλείς: είναι αναμενόμενο να μπορούν γενικά να χρησιμοποιηθούν σε κάθε πρόγραμμα.

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

  3. Δεν επιτρέπονται σημαίες δηλώσεων που θα δώσουν στον μεταγλωττιστή κάποια δεδομένα τα οποία μπορεί να παράγει.

  4. Σημαίες, οι οποίες επιτρέπουν εμβόλιμες ρουτίνες βιβλιοθήκης που συνήθως θεωρούνται μέρος της γλώσσας είναι επιτρεπτές, ενώ άλλες τέτοιες εμβόλιμες υποδείξεις δεν επιτρέπονται από τον 5ο κανόνα.

  5. Στις σημαίες δεν επιτρέπονται ονόματα προγραμμάτων ή υπορουτινών.

  6. Δεν επιτρέπονται βελτιώσεις βασισμένες στην ανατροφοδότηση

  7. Σημαίες οι οποίες αλλάζουν το προεπιλεγμένο μέγεθος ενός αντικειμένου δεδομένων (π.χ απλή ακρίβεια σε διπλή ακρίβεια) δεν επιτρέπονται.

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

Η πρόθεση τους ήταν να παραχθούν βασικά αποτελέσματα, ίδια με εκείνα ενός συνηθισμένου χρήστη, χωρίς να καταβάλει ιδιαίτερες προσπάθειες.
Επιπρόσθετα η SPEC επιδόθηκε στην παραγωγή προγραμμάτων δοκιμής απόδοσης κατευθυνόμενα από το σύστημα. Εφαρμόστηκαν για να δοκιμάσουν την απόδοση συστημάτων με λειτουργίες Ι/Ο, λειτουργικού συστήματος και την μέτρηση της ρυθμαπόδοσης.

     Ανάλυση της απόδοσης ανεξάρτητα από την υλοποίηση

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

  • S - Ο αριθμός των bytes του κώδικα ενός προγράμματος

  • Μ - Ο αριθμός των bytes που μεταφέρονται μεταξύ της μνήμης και της CPU κατά την διάρκεια της εκτέλεσης για τον κώδικα και τα δεδομένα (το S μετρά το μέγεθος του κώδικα στο χρόνο μεταγλώττισης ενώ το Μ είναι την επικοινωνία με την μνήμη κατά την διάρκεια εκτέλεσης του προγράμματος)

  • R - Ο αριθμός των bytes που μεταφέρονται μεταξύ καταχωρητών σε ένα κανονικό μοντέλο ΚΜΕ.

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