Τι είναι το Superscalar;

click fraud protection

Οι πρώτοι υπολογιστές ήταν εντελώς διαδοχικοί. Κάθε εντολή που λάμβανε ο επεξεργαστής έπρεπε να ολοκληρωθεί πλήρως προκειμένου να ξεκινήσει η επόμενη. Υπάρχουν πέντε στάδια για τις περισσότερες οδηγίες: Ανάκτηση εντολών, Αποκωδικοποίηση εντολών, Εκτέλεση, Πρόσβαση στη μνήμη και Επανάληψη εγγραφής. Αντίστοιχα αυτά τα στάδια παίρνουν την οδηγία που πρέπει να ολοκληρωθεί, διαχωρίζουν τη λειτουργία από τις τιμές που υπάρχουν χειρουργήθηκε, εκτελέστε τη λειτουργία, ανοίξτε τον καταχωρητή στον οποίο θα γραφτεί το αποτέλεσμα και γράψτε το αποτέλεσμα στο ανοιχτό κανω ΕΓΓΡΑΦΗ.

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

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

Pipelining σε βαθμωτό

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

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

Στην πραγματικότητα, τα προγράμματα είναι πολύπλοκα και μειώνουν την απόδοση. Για παράδειγμα, εάν έχετε δύο εντολές προσθήκης "a = b + c" και "d = e + f", αυτές μπορούν να εκτελεστούν σε μια διοχέτευση χωρίς πρόβλημα. Εάν, ωστόσο, έχετε "a = b + c" ακολουθούμενο από "d = a + e" έχετε πρόβλημα. Υποθέτοντας ότι αυτές οι δύο εντολές βρίσκονται ακριβώς η μία μετά την άλλη, η διαδικασία υπολογισμού της νέας τιμής του "a" δεν θα έχει ολοκληρωθεί, πόσο μάλλον να γραφτεί πίσω στη μνήμη πριν η δεύτερη εντολή διαβάσει την παλιά τιμή του "a" και στη συνέχεια δώσει τη λάθος απάντηση για "ρε".

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

Επέκταση του αγωγού σε superscalar

Ένας υπερβαθμωτός επεξεργαστής είναι ικανός να εκτελεί περισσότερες από μία πλήρεις εντολές ανά κύκλο. Ένας τρόπος για να γίνει αυτό είναι να επεκτείνετε τη διοχέτευση έτσι ώστε να υπάρχουν δύο ή περισσότερα κομμάτια υλικού που μπορούν να χειριστούν κάθε στάδιο. Με αυτόν τον τρόπο μπορούν να υπάρχουν δύο οδηγίες σε κάθε στάδιο του αγωγού σε κάθε κύκλο. Αυτό προφανώς οδηγεί σε αυξημένη πολυπλοκότητα σχεδιασμού καθώς το υλικό είναι διπλό, ωστόσο, προσφέρει εξαιρετικές δυνατότητες κλιμάκωσης απόδοσης.

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

Ωστόσο, η αύξηση της απόδοσης από την αύξηση των αγωγών κλιμακώνεται μόνο μέχρι στιγμής αποτελεσματικά. Οι περιορισμοί θερμότητας και μεγέθους θέτουν ορισμένα όρια. Υπάρχουν επίσης σημαντικές επιπλοκές στον προγραμματισμό. Ένας αποτελεσματικός διεκπεραιωτής είναι πλέον ακόμη πιο κρίσιμος, καθώς πρέπει να διασφαλίσει ότι κανένα από τα δύο σετ εντολών δεν βασίζεται στο αποτέλεσμα οποιασδήποτε από τις υπόλοιπες εντολές υπό επεξεργασία.

Ένας δείκτης πρόβλεψης διακλάδωσης είναι ένα τμήμα του διεκπεραιωτή που γίνεται όλο και πιο κρίσιμο όσο πιο υπερκλιμακωτός είναι ένας επεξεργαστής. Ορισμένες οδηγίες μπορεί να έχουν δύο πιθανά αποτελέσματα, καθεμία από τις οποίες οδηγεί σε διαφορετικές οδηγίες που ακολουθούν. Ένα απλό παράδειγμα θα ήταν μια δήλωση «αν». «Αν αυτό είναι αλήθεια κάνε αυτό, αλλιώς κάνε αυτό το άλλο». Ένας προγνωστικός κλάδος επιχειρεί να προβλέψει το αποτέλεσμα μιας λειτουργίας διακλάδωσης. Στη συνέχεια προγραμματίζει προληπτικά και εκτελεί τις οδηγίες ακολουθώντας αυτό που πιστεύει ότι είναι το πιθανό αποτέλεσμα.

Υπάρχει πολλή πολύπλοκη λογική στους σύγχρονους προγνωστικούς κλάδους, που μπορεί να οδηγήσει σε ποσοστά επιτυχίας πρόβλεψης κλάδου της τάξης του 98%. Μια σωστή πρόβλεψη εξοικονομεί τον χρόνο που θα μπορούσε να είχε χαθεί περιμένοντας το πραγματικό αποτέλεσμα, μια εσφαλμένη πρόβλεψη απαιτεί ότι η προβλεπόμενη οι οδηγίες και οποιοδήποτε από τα αποτελέσματά τους απορρίπτονται και οι αληθινές οδηγίες εκτελούνται στη θέση τους, κάτι που συνοδεύεται από μια μικρή ποινή περίμενε. Έτσι, τα υψηλά ποσοστά επιτυχίας προβλέψεων μπορούν να αυξήσουν αισθητά την απόδοση.

συμπέρασμα

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

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

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