Αρχική σελίδα » πως να » Γιατί οι πυρήνες CPU έχουν την ίδια ταχύτητα αντί για διαφορετικούς;

    Γιατί οι πυρήνες CPU έχουν την ίδια ταχύτητα αντί για διαφορετικούς;

    Αν έχετε κάνει πολλές αγορές σύγκρισης για μια νέα CPU, ίσως έχετε παρατηρήσει ότι οι πυρήνες φαίνεται να έχουν την ταχύτητα και όχι τον συνδυασμό διαφορετικών. Γιατί αυτό? Η σημερινή θέση SuperUser Q & A έχει την απάντηση σε μια ερώτηση περίεργου αναγνώστη.

    Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.

    Το ερώτημα

    Ο αναγνώστης SuperUser Jamie θέλει να μάθει γιατί τα κεντρικά στοιχεία της CPU έχουν την ίδια ταχύτητα αντί για διαφορετικά:

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

    Για παράδειγμα:

    • Intel Core i5-7600K, συχνότητα βάσης 3,80 GHz, 4 πυρήνες, 4 κλωστές
    • Intel Core i7-7700K, βασική συχνότητα 4.20 GHz, 4 πυρήνες, 8 κλωστές
    • AMD Ryzen 5 1600X, συχνότητα βάσης 3,60 GHz, 6 πυρήνες, 12 σπειρώματα
    • AMD Ryzen 7 1800X, συχνότητα βάσης 3,60 GHz, 8 πυρήνες, 16 σπειρώματα

    Γιατί βλέπουμε αυτό το μοτίβο αυξανόμενων πυρήνων, όμως όλοι οι πυρήνες έχουν την ίδια ταχύτητα ρολογιού; Γιατί δεν υπάρχουν παραλλαγές με διαφορετικές ταχύτητες ρολογιού; Για παράδειγμα, δύο "μεγάλοι" πυρήνες και πολλοί μικροί πυρήνες.

    Αντί να λέμε τέσσερις πυρήνες στα 4,0 GHz (δηλαδή 4 × 4 GHz, μέγιστο 16 GHz), τι γίνεται με μια CPU με δύο πυρήνες που λειτουργούν στα 4,0 GHz και τέσσερις πυρήνες που λειτουργούν στα 2,0 GHz (δηλαδή 2 × 4,0 GHz + 4 × 2,0 GHz, μέγιστο 16 GHz); Μήπως η δεύτερη επιλογή θα ήταν εξίσου καλή σε φορτία εργασίας με ένα μόνο σπείρωμα, αλλά ενδεχομένως καλύτερη σε φορτία πολλαπλών σπειρωμάτων?

    Ζητώ αυτό ως μια γενική ερώτηση και όχι συγκεκριμένα όσον αφορά τις CPU που αναφέρονται παραπάνω ή σχετικά με ένα συγκεκριμένο φόρτο εργασίας. Είμαι απλώς περίεργος γιατί το πρότυπο είναι αυτό που είναι.

    Γιατί οι πυρήνες CPU έχουν όλες την ίδια ταχύτητα αντί για διαφορετικές?

    Η απάντηση

    Ο συνδρομητής του SuperUser bwDraco έχει την απάντηση για εμάς:

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

    Στις πλατφόρμες επιφάνειας εργασίας, η κατανάλωση ενέργειας είναι πολύ λιγότερο θέμα, οπότε αυτό δεν είναι πραγματικά απαραίτητο. Οι περισσότερες εφαρμογές αναμένουν ότι κάθε πυρήνας θα έχει παρόμοια χαρακτηριστικά απόδοσης και οι διαδικασίες προγραμματισμού για τα συστήματα HMP είναι πολύ πιο πολύπλοκες από τον προγραμματισμό για παραδοσιακά συμμετρικά συστήματα πολλαπλής επεξεργασίας (τεχνικά, τα Windows 10 έχουν υποστήριξη για το HMP, αλλά προορίζονται κυρίως για κινητά συσκευές που χρησιμοποιούν ARM big.LITTLE).

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

    Ενώ υπάρχουν μερικοί επεξεργαστές επιτραπέζιων υπολογιστών που διαθέτουν έναν ή δύο πυρήνες που μπορούν να τρέχουν ταχύτερα από τους άλλους, αυτή η δυνατότητα περιορίζεται αυτή τη στιγμή σε ορισμένους επεξεργαστές Intel υψηλής τεχνολογίας (γνωστός ως Turbo Boost Max Technology 3.0) και περιλαμβάνει μόνο μια μικρή αύξηση για τους πυρήνες που μπορούν να τρέξουν πιο γρήγορα.

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

    Πάρτε έναν υποθετικό επεξεργαστή με δύο γρήγορους πυρήνες Kaby Lake (7ης γενιάς) και οκτώ αργούς πυρήνες Goldmont (Atom). Θα έχετε συνολικά 10 πυρήνες και τα βαρύ φορτία εργασίας βελτιστοποιημένα για αυτόν τον τύπο επεξεργαστή μπορεί να δουν ένα κέρδος απόδοσης και αποδοτικότητας σε έναν κανονικό τετραπύρηνο επεξεργαστή Kaby Lake. Ωστόσο, οι διάφοροι τύποι πυρήνων έχουν άκρως διαφορετικά επίπεδα απόδοσης και οι αργές πυρήνες δεν υποστηρίζουν καν μερικές από τις οδηγίες που υποστηρίζουν οι γρήγοροι πυρήνες, όπως το AVX (το ARM αποφεύγει αυτό το ζήτημα απαιτώντας τόσο τους μεγάλους όσο και τους LITTLE πυρήνες να υποστηρίζουν τις ίδιες οδηγίες ).

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

    Μια διαφορετική προσέγγιση στο σχεδιασμό εφαρμογών, πιο κοντά σε αυτό που πιθανώς σκέφτεστε στην ερώτησή σας, θα χρησιμοποιήσει τη GPU για την επιτάχυνση των εξαιρετικά παράλληλων τμημάτων εφαρμογών. Αυτό μπορεί να γίνει χρησιμοποιώντας API όπως το OpenCL και το CUDA. Όσον αφορά μια λύση με ένα τσιπ, η AMD προωθεί την υποστήριξη υλικού για την επιτάχυνση της GPU στις APU της, η οποία συνδυάζει μια παραδοσιακή CPU και μια ενσωματωμένη GPU υψηλής απόδοσης στο ίδιο chip με την Αρχιτεκτονική Ετερογενών Συστημάτων. μερικών εξειδικευμένων εφαρμογών.


    Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.

    Πιστωτική εικόνα: Mirko Waltermann (Flickr)