Ταυτόχρονη πολυδιεργασία
Η ταυτόχρονη πολυδιεργασία, ακρωνύμιο SMT, είναι μια τεχνική για τη βελτίωση της συνολικής απόδοσης των υπερκλιμάκων επεξεργαστών με πολυδιεργασία υλικού. Η SMT επιτρέπει πολλαπλά ανεξάρτητα νήματα εκτέλεσης για την καλύτερη αξιοποίηση των πόρων που παρέχουν οι σύγχρονες αρχιτεκτονικές υπολογιστών.
Η πολυνηματικότητα είναι παρόμοια στην έννοια με την πολυδιεργασία, αλλά υλοποιείται στο επίπεδο εκτέλεσης νημάτων στους σύγχρονους υπερκλιμακωτούς επεξεργαστές.
Στη σχεδίαση επεξεργαστών, υπάρχουν δύο τρόποι για την αύξηση του παραλληλισμού στο τσιπ με λιγότερες απαιτήσεις πόρων:
- Υπερκλιμακωτή τεχνική: η οποία προσπαθεί να αυξήσει τον παραλληλισμό σε επίπεδο εντολών (ILP) εκτελώντας πολλαπλές εντολές ταυτόχρονα (με τον όρο: ταυτόχρονα)- με την "ταυτόχρονη" αποστολή εντολών (με τον όρο: αποστολή εντολών) σε πολλαπλές πλεονάζουσες μονάδες εκτέλεσης που είναι ενσωματωμένες στο εσωτερικό του επεξεργαστή.
- Τεχνική πολυνηματικότητας σε επίπεδο τσιπ (CMT): χρήση παραλληλισμού σε επίπεδο νήματος (TLP) για την ταυτόχρονη εκτέλεση εντολών από πολλαπλά νήματα σε ένα τσιπ επεξεργαστή.
Υπάρχουν πολλοί τρόποι για την υποστήριξη περισσότερων του ενός νημάτων μέσα σε ένα τσιπ, συγκεκριμένα:
- Interleaved multithreading (IMT) : Διασυνδεδεμένη έκδοση πολλαπλών εντολών από διαφορετικά νήματα, αναφέρεται επίσης ως Temporal multithreading. Μπορεί να χωριστεί περαιτέρω σε fine-grain multithreading ή coarse-grain multithreading ανάλογα με τη συχνότητα των διαδοχικών εκδόσεων. Το fine-grain multithreading εκδίδει εντολές για διαφορετικά νήματα μετά από κάθε κύκλο, ενώ το coarse-grain multithreading μεταβαίνει στην έκδοση εντολών από άλλο νήμα μόνο όταν το τρέχον εκτελούμενο νήμα προκαλεί κάποια γεγονότα μεγάλης καθυστέρησης (όπως σφάλμα σελίδας κ.λπ.). Το coarse-grain multithreading είναι πιο συνηθισμένο για λιγότερη εναλλαγή περιβάλλοντος μεταξύ νημάτων. Για επεξεργαστές με έναν αγωγό ανά πυρήνα, το interleaved multithreading είναι ο μόνος δυνατός τρόπος, επειδή μπορεί να εκδώσει μόνο μία εντολή ανά κύκλο.
- Ταυτόχρονη πολυδιεργασία (SMT): Έκδοση πολλαπλών εντολών από πολλαπλά νήματα σε έναν κύκλο. Ο επεξεργαστής πρέπει να είναι υπερκλιμακωτός για να το κάνει αυτό.
- Πολυεπεξεργασία σε επίπεδο τσιπ (CMP ή πολυπύρηνος επεξεργαστής): ενσωματώνει δύο ή περισσότερους υπερκλιμακωτούς επεξεργαστές σε ένα τσιπ, καθένας από τους οποίους εκτελεί νήματα ανεξάρτητα.
- Οποιοσδήποτε συνδυασμός IMT/SMT/CMP
Ο βασικός παράγοντας για τη διάκρισή τους είναι να εξετάσουμε πόσες εντολές μπορεί να εκδώσει ο επεξεργαστής σε έναν κύκλο και από πόσα νήματα προέρχονται οι εντολές.
Παραδείγματα σύγχρονων επεξεργαστών SMT
- Ο Intel Pentium 4 ήταν ο πρώτος σύγχρονος επιτραπέζιος επεξεργαστής που εφάρμοσε ταυτόχρονη πολυνηματοποίηση, αρχής γενομένης από το μοντέλο των 3,06 GHz που κυκλοφόρησε το 2002, και έκτοτε εισήχθη σε πολλούς επεξεργαστές της. Η Intel ονομάζει τη λειτουργικότητα Hyper-Threading Technology (HTT) και παρέχει μια βασική μηχανή SMT δύο νημάτων. Η Intel ισχυρίζεται ότι η ταχύτητα βελτιώνεται έως και 30% σε σύγκριση με έναν κατά τα άλλα πανομοιότυπο Pentium 4 χωρίς SMT.
- Τα τελευταία σχέδια αρχιτεκτονικής MIPS περιλαμβάνουν ένα σύστημα SMT γνωστό ως "MIPS MT".
- Ο IBM POWER5, που ανακοινώθηκε τον Μάιο του 2004, διατίθεται είτε ως διπύρηνος DCM, είτε ως τετραπύρηνος ή οκταπύρηνος MCM, με κάθε πυρήνα να περιλαμβάνει μια μηχανή SMT δύο νημάτων. Η υλοποίηση της IBM είναι πιο εξελιγμένη από τις προηγούμενες, επειδή μπορεί να αναθέσει διαφορετική προτεραιότητα στα διάφορα νήματα, είναι πιο λεπτομερής και η μηχανή SMT μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί δυναμικά, για την καλύτερη εκτέλεση εκείνων των φόρτων εργασίας όπου ένας επεξεργαστής SMT δεν θα αύξανε την απόδοση. Αυτή είναι η δεύτερη υλοποίηση της IBM για το γενικά διαθέσιμο πολυνηματικό υλικό.
- Ο Intel Atom, που κυκλοφόρησε το 2008, είναι το πρώτο προϊόν της Intel που διαθέτει SMT (που κυκλοφορεί στην αγορά ως Hyper-threading) χωρίς να υποστηρίζει αναδιάταξη εντολών, κερδοσκοπική εκτέλεση ή μετονομασία καταχωρητών.
Σχετικές σελίδες
- Νήμα (επιστήμη των υπολογιστών)
- Παράλληλοι υπολογισμοί
- Παραλληλισμός σε επίπεδο εντολών
- Επεξεργαστές πολλαπλών πυρήνων
Ερωτήσεις και απαντήσεις
Q: Τι είναι η ταυτόχρονη πολυνημάτωση;
Α: Η ταυτόχρονη πολυδιεργασία (SMT) είναι μια τεχνική για τη βελτίωση της συνολικής απόδοσης των υπερκλιμακωτών επεξεργαστών με πολυδιεργασία υλικού (Hardware multithreading). Επιτρέπει πολλαπλά ανεξάρτητα νήματα εκτέλεσης για την καλύτερη αξιοποίηση των πόρων που παρέχουν οι σύγχρονες αρχιτεκτονικές υπολογιστών.
Ερ: Πώς συγκρίνεται η SMT με την πολυδιεργασία;
Α: Το multithreading είναι παρόμοιο στην έννοια με το multitasking, αλλά υλοποιείται σε επίπεδο νήματος εκτέλεσης στους σύγχρονους υπερκλιμακωτούς επεξεργαστές, ενώ το multitasking υλοποιείται σε επίπεδο διεργασίας.
Ερ: Ποιοι είναι δύο τρόποι αύξησης του παραλληλισμού στο τσιπ;
Α: Οι δύο τρόποι για την αύξηση του παραλληλισμού στο chip είναι η τεχνική Superscalar και το chip-level multithreading (CMT).
Ερ: Ποιοι είναι ορισμένοι διαφορετικοί τύποι πολυδιεργασίας σε επίπεδο τσιπ;
Α: Οι διάφοροι τύποι πολυδιεργασίας σε επίπεδο τσιπ περιλαμβάνουν την πολυδιεργασία με διαπλεκόμενες διαδοχικές λειτουργίες (Interleaved Multithreading, IMT), την πολυδιεργασία λεπτού κόκκου (Fine-Grain Multithreading), την πολυδιεργασία χοντρού κόκκου (Coarse Grain Multithreadin) και την ταυτόχρονη πολυδιεργασία (Simultaneous Multithreadin, SMT).
Ερ: Πώς μπορείτε να κάνετε διάκριση μεταξύ IMT/SMT/CMP;
Α: Ο βασικός παράγοντας για τη διάκριση μεταξύ IMT/SMT/CMP είναι η εξέταση του αριθμού των εντολών που μπορεί να εκδώσει ο επεξεργαστής σε έναν κύκλο και του αριθμού των νημάτων από τα οποία προέρχονται οι εντολές.
Ερ: Ποιος τύπος επεξεργαστή πρέπει να χρησιμοποιείται για SMT;
Α: Για SMT, πρέπει να χρησιμοποιείται επεξεργαστής υπερκλιμάκωσης.
Ερ: Τι είδους επεξεργαστή χρησιμοποιεί το Chip Level MultiProcessing;
Α: Η πολυεπεξεργασία επιπέδου τσιπ χρησιμοποιεί επεξεργαστές πολλαπλών πυρήνων που ενσωματώνουν δύο ή περισσότερους υπερκλιμακωτούς επεξεργαστές σε ένα τσιπ, ο καθένας από τους οποίους εκτελεί νήματα ανεξάρτητα.