Τι είναι ένας επεξεργαστής πολλαπλών πυρήνων;

Από τα mid-noughties, οι επιτραπέζιοι επεξεργαστές προσφέρουν πολλαπλούς πυρήνες CPU σε ένα μόνο πακέτο. Αυτός είναι ένας πολυπύρηνος επεξεργαστής. Ενώ τα πρώτα σχέδια περιορίζονταν σε δύο ή τέσσερις πυρήνες CPU, οι σύγχρονες CPU προσφέρουν έως και 64 φυσικούς πυρήνες σε μία μόνο CPU. Οι βασικές μετρήσεις που είναι υψηλές δεν είναι τυπικές για επιτραπέζιους επεξεργαστές και γενικά προορίζονται για σταθμούς εργασίας ή διακομιστές υψηλής τεχνολογίας. Οι τυπικοί αριθμοί πυρήνων στις σύγχρονες επιτραπέζιες CPU είναι μεταξύ 4 και 16. Τι είναι όμως αυτό με τους πολυπύρηνους CPU που τους καθιστούν κυρίαρχους στους σύγχρονους υπολογιστές;

Μονοπύρηνος

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

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

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

Πολυπύρηνα

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

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

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

Θερμικά θέματα

Ένα από τα μεγαλύτερα προβλήματα που αντιμετωπίζουν οι πολυπύρηνες επεξεργαστές είναι η θερμότητα. Ενώ ένας πυρήνας CPU δεν παράγει τόση θερμότητα, δύο εκπέμπουν περισσότερη. Σε CPU με υψηλό αριθμό πυρήνων, αυτή η συγκέντρωση θερμότητας μπορεί να οδηγήσει σε χαμηλότερο ρολόι ενίσχυσης, καθώς η CPU διαχειρίζεται τη θερμοκρασία της. Ένα χαμηλότερο ρολόι ενίσχυσης θα προκαλέσει χαμηλότερη απόδοση σε εφαρμογές με ένα νήμα. Αυτό μπορεί συχνά να φανεί στα σημεία αναφοράς απόδοσης gaming. Τα βιντεοπαιχνίδια συχνά εξαρτώνται σε μεγάλο βαθμό από ένα μόνο νήμα. Ως εκ τούτου, η απόδοση ενός νήματος είναι συχνά κρίσιμη για τα παιχνίδια. Οι CPU υψηλών πυρήνων, όπως τα μοντέλα 16 πυρήνων, προέρχονται συχνά από κάδους υψηλής απόδοσης. Παρόλα αυτά, μπορεί τακτικά να βρεθεί ότι έχουν καλύτερη απόδοση από «λιγότερους» CPU με χαμηλότερο αριθμό πυρήνων σε δείκτες αναφοράς με ένα νήμα. Αυτό το ζήτημα είναι ακόμη πιο προφανές σε επεξεργαστές εξαιρετικά υψηλού αριθμού πυρήνων, όπως ο 64-πύρηνος AMD Threadripper, όπου η ταχύτητα ρολογιού είναι αισθητά χαμηλότερη από τους υπολογιστές επιτραπέζιου υπολογιστή υψηλής τεχνολογίας.

Επιτυχίες

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

Αρχιτεκτονικές επιλογές

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

Η αρχιτεκτονική της επιφάνειας εργασίας της CPU κινείται επίσης προς την κατεύθυνση ενός ετερογενούς σχεδιασμού πυρήνα. Intel's Alder Lake 12ου Η σειρά Core CPU της γενιάς είναι η πρώτη επιτραπέζια CPU που το κάνει αυτό. Σε αυτήν την περίπτωση, ο κύριος κινητήριος παράγοντας των μικρότερων πυρήνων δεν είναι απαραίτητα η απόδοση ισχύος αλλά η θερμική απόδοση, αν και αυτές είναι οι δύο όψεις του ίδιου νομίσματος. Η ύπαρξη πολλών ισχυρών πυρήνων παρέχει υψηλή απόδοση, ενώ πολλοί αποτελεσματικοί πυρήνες μπορούν να χειριστούν εργασίες παρασκηνίου χωρίς να επηρεάζουν υπερβολικά τους κύριους πυρήνες.

συμπέρασμα

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