Anonim

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

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

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

Κάποιο Ιστορικό

Πριν κατασκευαστούν επεξεργαστές με πολλαπλούς πυρήνες, άνθρωποι και εταιρείες όπως η Intel και η AMD προσπάθησαν να κατασκευάσουν υπολογιστές με πολλαπλές επεξεργαστές. Αυτό σήμαινε ότι απαιτείται μια μητρική πλακέτα με περισσότερες από μία υποδοχές CPU. Όχι μόνο ήταν πιο ακριβό, λόγω του φυσικού υλικού που απαιτείται για μια άλλη πρίζα CPU, αλλά επίσης αύξησε την καθυστέρηση λόγω της αυξημένης επικοινωνίας που έπρεπε να γίνει μεταξύ των δύο επεξεργαστών. Μια μητρική πλακέτα χρειάστηκε να χωρίσει τα δεδομένα μεταξύ δύο τελείως ξεχωριστών θέσεων σε έναν υπολογιστή και όχι απλά να τα στείλει στον επεξεργαστή. Η φυσική απόσταση στην πραγματικότητα σημαίνει ότι μια διαδικασία είναι πιο αργή. Η τοποθέτηση αυτών των διαδικασιών σε ένα τσιπ με πολλαπλούς πυρήνες όχι μόνο σημαίνει ότι υπάρχει λιγότερη απόσταση από το ταξίδι, αλλά σημαίνει επίσης ότι διαφορετικοί πυρήνες μπορούν να μοιράζονται πόρους για την εκτέλεση ιδιαίτερα βαριών εργασιών. Για παράδειγμα, τα τσιπ Intel Pentium II και Pentium III εφαρμόστηκαν και στις δύο εκδόσεις με δύο επεξεργαστές σε μία μητρική πλακέτα.

Μετά από λίγο, οι επεξεργαστές χρειάστηκαν να είναι πιο ισχυροί, έτσι οι κατασκευαστές υπολογιστών ήρθαν με την έννοια του υπερ-σπειρώματος. Η ίδια η ιδέα προέρχεται από την Intel και αρχικά σχεδιάστηκε το 2002 στους επεξεργαστές διακομιστών Xeon της εταιρείας και αργότερα στους επεξεργαστές γραφικών Pentium 4. Το Hyper-Threading εξακολουθεί να χρησιμοποιείται σήμερα στους επεξεργαστές και είναι ακόμη και η κύρια διαφορά μεταξύ των chips της Intel i5 και των chips της i7. Βασικά εκμεταλλεύεται το γεγονός ότι υπάρχουν συχνά αχρησιμοποίητοι πόροι σε έναν επεξεργαστή, ειδικά όταν τα καθήκοντα δεν απαιτούν πολύ επεξεργαστική ισχύ, τα οποία θα μπορούσαν να χρησιμοποιηθούν για άλλα προγράμματα. Ένας επεξεργαστής που χρησιμοποιεί υπερ-σπειρώματα βασικά παρουσιάζεται σε ένα λειτουργικό σύστημα σαν να έχει δύο πυρήνες. Φυσικά, δεν έχει πραγματικά δύο πυρήνες, ωστόσο για δύο προγράμματα που χρησιμοποιούν το ήμισυ της διαθέσιμης επεξεργαστικής ισχύος ή λιγότερο, μπορεί να υπάρχουν και δύο πυρήνες λόγω του γεγονότος ότι μαζί μπορούν να επωφεληθούν από όλη την ισχύ που επεξεργαστή πρέπει να προσφέρει. Ωστόσο, η υπερσύνδεση θα είναι ελαφρώς πιο αργή από έναν επεξεργαστή με δύο πυρήνες όταν δεν υπάρχει αρκετή ισχύς επεξεργασίας για να μοιραστείτε μεταξύ των δύο προγραμμάτων χρησιμοποιώντας τον πυρήνα.

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

Πολυεπεξεργαστές

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

Γιατί λοιπόν οι εταιρείες αναπτύσσουν επεξεργαστές με πολλαπλούς πυρήνες; Λοιπόν, η ανάγκη για ταχύτερους επεξεργαστές έγινε όλο και πιο εμφανής, ωστόσο οι εξελίξεις σε επεξεργαστές μονού πυρήνα επιβραδύνουν. Από τη δεκαετία του 1980 έως τη δεκαετία του 2000, οι μηχανικοί ήταν σε θέση να αυξήσουν την ταχύτητα επεξεργασίας από μερικά megahertz σε αρκετά gigahertz. Εταιρείες όπως η Intel και η AMD το έκαναν με τη συρρίκνωση του μεγέθους των τρανζίστορ, γεγονός που επέτρεψε την είσοδο περισσότερων τρανζίστορ στον ίδιο χώρο, βελτιώνοντας έτσι την απόδοση.

Λόγω του γεγονότος ότι η ταχύτητα του ρολογιού του επεξεργαστή συνδέεται πολύ με το πόσα τρανζίστορ μπορούν να χωρέσουν σε ένα τσιπ, όταν η τεχνολογία συρρίκνωσης των τρανζίστορ άρχισε να επιβραδύνεται, η ανάπτυξη στις αυξημένες ταχύτητες του επεξεργαστή άρχισε επίσης να επιβραδύνεται. Αν και αυτό δεν συμβαίνει όταν οι εταιρείες γνώριζαν για πολλούς πυρήνες επεξεργαστές, τότε άρχισαν να πειραματίζονται με επεξεργαστές πολλών πυρήνων για εμπορικούς σκοπούς. Ενώ οι επεξεργαστές πολλαπλών πυρήνων αναπτύχθηκαν για πρώτη φορά στα μέσα της δεκαετίας του '80, σχεδιάστηκαν για μεγάλες εταιρείες και δεν επανεξετάστηκαν μέχρι να αρχίσει να επιβραδύνεται η τεχνολογία ενός πυρήνα. Ο πρώτος επεξεργαστής πολλαπλών πυρήνων αναπτύχθηκε από την Rockwell International και ήταν μια έκδοση του τσιπ 6501 με δύο 6502 επεξεργαστές σε ένα τσιπ (περισσότερες λεπτομέρειες είναι διαθέσιμες εδώ σε αυτή την καταχώρηση της Wikipedia).

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

Λοιπόν, είναι πραγματικά πολύ απλό. Έχοντας πολλαπλούς πυρήνες επιτρέπει πολλαπλά πράγματα να γίνουν ταυτόχρονα. Για παράδειγμα, εάν εργάζεστε σε μηνύματα ηλεκτρονικού ταχυδρομείου, έχετε ανοικτό πρόγραμμα περιήγησης στο Internet, εργάζεστε σε ένα υπολογιστικό φύλλο Excel και ακούτε μουσική στο iTunes, τότε ένας επεξεργαστής τετραπλού πυρήνα μπορεί να εργαστεί σε όλα αυτά τα πράγματα ταυτόχρονα. Ή, αν ένας χρήστης έχει μια εργασία που πρέπει να ολοκληρωθεί αμέσως, μπορεί να χωριστεί σε μικρότερες και ευκολότερες επεξεργασίες.

Η χρήση πολλαπλών πυρήνων δεν περιορίζεται μόνο σε πολλαπλά προγράμματα. Για παράδειγμα, το Google Chrome μετατρέπει κάθε νέα σελίδα σε διαφορετική διαδικασία, πράγμα που σημαίνει ότι μπορεί να επωφεληθεί από πολλαπλούς πυρήνες ταυτόχρονα. Ορισμένα προγράμματα, ωστόσο, είναι αυτά που ονομάζονται μονοκόμματα, πράγμα που σημαίνει ότι δεν γράφτηκαν για να μπορούν να χρησιμοποιούν πολλαπλούς πυρήνες και ως εκ τούτου δεν μπορούν να το κάνουν. Το Hyper-Threading μπαίνει και πάλι εδώ, επιτρέποντας στο Chrome να στείλει πολλές σελίδες σε δύο "λογικούς πυρήνες" σε έναν πραγματικό πυρήνα.

Πηγαίνοντας χέρι-χέρι με επεξεργαστές πολλαπλών πυρήνων και υπερ-σπειρώματα είναι μια έννοια που ονομάζεται multithreading. Το multithreading είναι ουσιαστικά η δυνατότητα για ένα λειτουργικό σύστημα να επωφεληθεί από πολλαπλούς πυρήνες διαιρώντας τον κώδικα στην πιο βασική του μορφή ή σε σπειρώματα και τροφοδοτώντας τον σε διαφορετικούς πυρήνες ταυτόχρονα. Αυτό, φυσικά, είναι σημαντικό σε πολλούς επεξεργαστές καθώς και σε επεξεργαστές πολλαπλών πυρήνων. Το multi-threading είναι λίγο πιο περίπλοκο απ 'ό, τι ακούγεται, καθώς απαιτεί τα λειτουργικά συστήματα να διατάζουν σωστά τον κώδικα με τέτοιο τρόπο ώστε το πρόγραμμα να μπορεί να συνεχίσει να λειτουργεί αποτελεσματικά.

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

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

Πρώτον, η μητρική πλακέτα και το λειτουργικό σύστημα πρέπει να αναγνωρίζουν τον επεξεργαστή και ότι υπάρχουν πολλοί πυρήνες. Οι παλαιότεροι υπολογιστές είχαν μόνο έναν πυρήνα, οπότε ένα παλαιότερο λειτουργικό σύστημα μπορεί να μην λειτουργεί πολύ καλά εάν ένας χρήστης προσπάθησε να το εγκαταστήσει σε έναν νεότερο υπολογιστή με πολλούς πυρήνες. Τα Windows 95, για παράδειγμα, δεν υποστηρίζουν υπερστροφές ή πολλαπλούς πυρήνες. Όλα τα πρόσφατα λειτουργικά συστήματα υποστηρίζουν επεξεργαστές πολλαπλών πυρήνων, συμπεριλαμβανομένων των Windows 7, 8, των πρόσφατα κυκλοφορούντων 10 και του OS X 10.10 της Apple.

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

Επεξεργαστής πολλαπλών πυρήνων

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

Επεξεργαστής ενιαίου πυρήνα

Αν ένας επεξεργαστής δεν μπορεί να βρει αυτό που ψάχνει στην L2 cache, συνεχίζει τη γραμμή στο L3, και αν το έχει επεξεργαστή, L4. Μετά από αυτό, θα εξετάσει την κύρια μνήμη ή τη μνήμη RAM ενός υπολογιστή.

Υπάρχουν επίσης διάφοροι τρόποι με τους οποίους διαφορετικοί επεξεργαστές χειρίζονται τις διαφορικές κρυφές μνήμες. Για παράδειγμα, μερικά αντίγραφα των δεδομένων σχετικά με την κρυφή μνήμη L1 στην μνήμη cache L2, που είναι βασικά ένας τρόπος για να διασφαλιστεί ότι ο επεξεργαστής μπορεί να βρει αυτό που ψάχνει. Αυτό, βεβαίως, αναλαμβάνει περισσότερη μνήμη στην μνήμη L2.

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

Σε έναν επεξεργαστή πολλαπλών πυρήνων, όταν ψάχνει για δεδομένα, ένας πυρήνας μπορεί να κοιτάξει μέσα από τη δική του μοναδική cache L1, και στη συνέχεια θα διακλαδιστεί σε κοινή L2 cache, RAM, και τελικά στο σκληρό δίσκο.

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

Πού νομίζετε ότι η τεχνολογία επεξεργασίας πολλαπλών πυρήνων είναι η επόμενη; Ενημερώστε μας στα παρακάτω σχόλια ή ξεκινώντας ένα νέο νήμα στο φόρουμ κοινότητας μας.

Όλα για επεξεργαστές πολλαπλών πυρήνων: τι είναι, πώς λειτουργούν και από πού προέρχονται