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

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

Στη σχεδίαση επεξεργαστών, υπάρχουν δύο τρόποι για την αύξηση του παραλληλισμού στο τσιπ με λιγότερες απαιτήσεις πόρων:

  1. Υπερκλιμακωτή τεχνική: η οποία προσπαθεί να αυξήσει τον παραλληλισμό σε επίπεδο εντολών (ILP) εκτελώντας πολλαπλές εντολές ταυτόχρονα (με τον όρο: ταυτόχρονα)- με την "ταυτόχρονη" αποστολή εντολών (με τον όρο: αποστολή εντολών) σε πολλαπλές πλεονάζουσες μονάδες εκτέλεσης που είναι ενσωματωμένες στο εσωτερικό του επεξεργαστή.
  2. Τεχνική πολυνηματικότητας σε επίπεδο τσιπ (CMT): χρήση παραλληλισμού σε επίπεδο νήματος (TLP) για την ταυτόχρονη εκτέλεση εντολών από πολλαπλά νήματα σε ένα τσιπ επεξεργαστή.

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

  1. Interleaved multithreading (IMT) : Διασυνδεδεμένη έκδοση πολλαπλών εντολών από διαφορετικά νήματα, αναφέρεται επίσης ως Temporal multithreading. Μπορεί να χωριστεί περαιτέρω σε fine-grain multithreading ή coarse-grain multithreading ανάλογα με τη συχνότητα των διαδοχικών εκδόσεων. Το fine-grain multithreading εκδίδει εντολές για διαφορετικά νήματα μετά από κάθε κύκλο, ενώ το coarse-grain multithreading μεταβαίνει στην έκδοση εντολών από άλλο νήμα μόνο όταν το τρέχον εκτελούμενο νήμα προκαλεί κάποια γεγονότα μεγάλης καθυστέρησης (όπως σφάλμα σελίδας κ.λπ.). Το coarse-grain multithreading είναι πιο συνηθισμένο για λιγότερη εναλλαγή περιβάλλοντος μεταξύ νημάτων. Για επεξεργαστές με έναν αγωγό ανά πυρήνα, το interleaved multithreading είναι ο μόνος δυνατός τρόπος, επειδή μπορεί να εκδώσει μόνο μία εντολή ανά κύκλο.
  2. Ταυτόχρονη πολυδιεργασία (SMT): Έκδοση πολλαπλών εντολών από πολλαπλά νήματα σε έναν κύκλο. Ο επεξεργαστής πρέπει να είναι υπερκλιμακωτός για να το κάνει αυτό.
  3. Πολυεπεξεργασία σε επίπεδο τσιπ (CMP ή πολυπύρηνος επεξεργαστής): ενσωματώνει δύο ή περισσότερους υπερκλιμακωτούς επεξεργαστές σε ένα τσιπ, καθένας από τους οποίους εκτελεί νήματα ανεξάρτητα.
  4. Οποιοσδήποτε συνδυασμός IMT/SMT/CMP

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