Τι είναι η εκτέλεση εκτός παραγγελίας;

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

Υποκλιμακωτό σε υπερ-βαθμωτό

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

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

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

Διατήρηση τροφοδοτούμενων αγωγών με δεδομένα

Το κύριο πρόβλημα απόδοσης με τους υπολογιστές είναι συνήθως η καθυστέρηση της μνήμης. Πολλές εντολές λειτουργούν με δεδομένα και έτσι τα δεδομένα πρέπει να είναι διαθέσιμα για να εκτελεστεί η εντολή. Το ερώτημα είναι, τι κάνετε εάν χρειαστεί να περιμένετε για αυτά τα δεδομένα επειδή δεν είναι άμεσα διαθέσιμα; Παραδοσιακά, η απάντηση ήταν απλώς να σταματήσετε και να περιμένετε να γίνει διαθέσιμο. Αυτό αφήνει ολόκληρο τον αγωγό κενό, πιθανώς για εκατοντάδες κύκλους CPU. Τα πράγματα γίνονται ακόμη χειρότερα όταν δύο εντολές σε παράλληλους αγωγούς πρέπει να περιμένουν τη μνήμη, καθώς η πρώτη θα κρατήσει ακόμη και το αίτημα για τα δεδομένα της δεύτερης. Αν και η προσωρινή μνήμη CPU μπορεί να βοηθήσει στην αντιμετώπιση αυτού του προβλήματος, εξακολουθεί να μην μπορεί να το διορθώσει. Χρειαζόταν ένα νέο παράδειγμα για την επίλυσή του. Αυτή η αλλαγή παραδείγματος ήταν το Out Of Order Execution ή το OOO.

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

Κρίσιμες εξαρτήσεις

Αυτή η διαδικασία προϋποθέτει δύο πράγματα. Πρώτα απ 'όλα, ότι είναι δυνατός ο αξιόπιστος εντοπισμός και ο χειρισμός πραγματικών εξαρτήσεων. Δεύτερον, ότι μπορείτε να χειριστείτε και να αναγνωρίσετε με αξιοπιστία ψευδείς εξαρτήσεις. Ποιά είναι η διαφορά? Λοιπόν, μια πραγματική εξάρτηση είναι μια εξάρτηση που δεν μπορεί να μετριαστεί καθόλου σε ένα σύστημα OOO. Το πιο εύκολο παράδειγμα είναι η ανάγνωση μετά την εγγραφή. Εάν έχετε μια εντολή που υποτίθεται ότι πρέπει να γράψει κάποια δεδομένα και μια άλλη που υποτίθεται ότι στη συνέχεια διαβάζει αυτά τα δεδομένα, δεν υπάρχει τρόπος να μπορέσετε να αναδιατάξετε αυτές τις οδηγίες. Πρέπει να συμπληρωθούν με τη σειρά με την οποία παρουσιάστηκαν, διαφορετικά θα λάβετε ανοησίες.

Μια ψευδής εξάρτηση είναι αυτή που μπορεί να κρυφτεί με ένα άλλο έξυπνο κόλπο. Ας πάρουμε το παράδειγμα του write-after-read. Με την πρώτη ματιά, μπορεί να πιστεύετε ότι δεν μπορείτε να αντικαταστήσετε δεδομένα πριν τα διαβάσετε. Τα πράγματα δεν είναι τόσο απλά όμως. Τι γίνεται εάν έχετε άλλο μέρος, μπορείτε να γράψετε τα νέα δεδομένα και, στη συνέχεια, μπορείτε απλώς να ανταλλάξετε τα νέα και τα παλιά δεδομένα αφού διαβάσετε τα παλιά δεδομένα; Αυτή είναι η διαδικασία μετονομασίας του μητρώου και είναι κρίσιμης σημασίας για την επεξεργασία του OOO.

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

συμπέρασμα

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


Πώς να κλωνοποιήσετε έναν σκληρό δίσκο

Πώς να κλωνοποιήσετε έναν σκληρό δίσκο

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

Πώς να διορθώσετε το πρόγραμμα οδήγησης WUDFRd απέτυχε να φορτώσει στα Windows 10;

Πώς να διορθώσετε το πρόγραμμα οδήγησης WUDFRd απέτυχε να φορτώσει στα Windows 10;

Αντιμετωπίζετε το μήνυμα σφάλματος κατά την εκκίνηση του υπολογιστή σας που λέει ότι το πρόγραμμα οδήγησης WUDFRd απέτυχε να φορτώσει στον υπολογιστή σας;

Πώς να διορθώσετε τον κωδικό σφάλματος NVIDIA GeForce Experience 0x0003

Πώς να διορθώσετε τον κωδικό σφάλματος NVIDIA GeForce Experience 0x0003

Αντιμετωπίζετε τον κωδικό σφάλματος 0x0003 της εμπειρίας NVIDIA GeForce στην επιφάνεια εργασίας σας; Εάν ναι, διαβάστε το ιστολόγιο για να βρείτε πώς να διορθώσετε αυτό το σφάλμα γρήγορα και εύκολα.

Τι είναι το SMPS;

Τι είναι το SMPS;

Μάθετε τι είναι το SMPS και την έννοια των διαφορετικών αξιολογήσεων απόδοσης πριν επιλέξετε ένα SMPS για τον υπολογιστή σας.

Γιατί δεν ενεργοποιείται το Chromebook μου

Γιατί δεν ενεργοποιείται το Chromebook μου

Λάβετε απαντήσεις στην ερώτηση Γιατί δεν ενεργοποιείται το Chromebook μου; Σε αυτόν τον χρήσιμο οδηγό για χρήστες Chromebook.

Πώς να αναφέρετε απάτες ηλεκτρονικού ψαρέματος στην Google

Πώς να αναφέρετε απάτες ηλεκτρονικού ψαρέματος στην Google

Μάθετε πώς να αναφέρετε έναν απατεώνα στην Google για να τον αποτρέψετε από το να εξαπατήσει άλλους με αυτόν τον οδηγό.

Το Roomba σταματά, κολλάει και γυρίζει - Διορθώστε

Το Roomba σταματά, κολλάει και γυρίζει - Διορθώστε

Διορθώστε ένα πρόβλημα όπου η ηλεκτρική σκούπα ρομπότ Roomba σταματά, κολλάει και γυρίζει συνέχεια.

Πώς να αλλάξετε τις ρυθμίσεις γραφικών στο Steam Deck

Πώς να αλλάξετε τις ρυθμίσεις γραφικών στο Steam Deck

Το Steam Deck προσφέρει μια ισχυρή και ευέλικτη εμπειρία παιχνιδιού στα χέρια σας. Ωστόσο, για να βελτιστοποιήσετε το παιχνίδι σας και να εξασφαλίσετε το καλύτερο δυνατό

Τι είναι η ασφάλεια που βασίζεται στην απομόνωση;

Τι είναι η ασφάλεια που βασίζεται στην απομόνωση;

Θα εμβαθύναμε σε ένα θέμα που γίνεται όλο και πιο σημαντικό στον κόσμο της κυβερνοασφάλειας: την ασφάλεια που βασίζεται στην απομόνωση. Αυτή η προσέγγιση στο

Πώς να χρησιμοποιήσετε το Auto Clicker για το Chromebook

Πώς να χρησιμοποιήσετε το Auto Clicker για το Chromebook

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