Μικροαρχιτεκτονική

Στη μηχανική υπολογιστών, η μικροαρχιτεκτονική (μερικές φορές συντομογραφία μarch ή uarch) είναι μια περιγραφή του ηλεκτρικού κυκλώματος ενός υπολογιστή, μιας κεντρικής μονάδας επεξεργασίας ή ενός επεξεργαστή ψηφιακού σήματος που είναι επαρκής για την πλήρη περιγραφή της λειτουργίας του υλικού.

Οι μελετητές χρησιμοποιούν τον όρο "οργάνωση υπολογιστών", ενώ οι άνθρωποι στη βιομηχανία υπολογιστών λένε συχνότερα "μικροαρχιτεκτονική". Η μικροαρχιτεκτονική και η αρχιτεκτονική συνόλου εντολών (ISA), μαζί, αποτελούν τον τομέα της αρχιτεκτονικής υπολογιστών.

Προέλευση του όρου

Οι υπολογιστές χρησιμοποιούν μικροπρογραμματισμό της λογικής ελέγχου από τη δεκαετία του 1950. Η CPU αποκωδικοποιεί τις εντολές και στέλνει σήματα στις κατάλληλες διαδρομές μέσω διακοπτών τρανζίστορ. Τα bits μέσα στις λέξεις μικροπρογραμματισμού έλεγχαν τον επεξεργαστή σε επίπεδο ηλεκτρικών σημάτων.

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

Σχέση με την αρχιτεκτονική συνόλου εντολών

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

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

Μερικά σημαντικά σημεία:

  • Μια ενιαία μικροαρχιτεκτονική, ιδίως αν περιλαμβάνει μικροκώδικα, μπορεί να χρησιμοποιηθεί για την υλοποίηση πολλών διαφορετικών συνόλων εντολών, μέσω της αλλαγής του αποθηκευτικού χώρου ελέγχου. Ωστόσο, αυτό μπορεί να είναι αρκετά περίπλοκο, ακόμη και όταν απλοποιείται με μικροκώδικα ή/και δομές πινάκων σε ROM ή PLA.
  • Δύο μηχανές μπορεί να έχουν την ίδια μικροαρχιτεκτονική, άρα και το ίδιο διάγραμμα μπλοκ, αλλά εντελώς διαφορετικές υλοποιήσεις υλικού. Αυτό διαχειρίζεται τόσο το επίπεδο των ηλεκτρονικών κυκλωμάτων όσο και ακόμη περισσότερο το φυσικό επίπεδο κατασκευής (τόσο των ολοκληρωμένων κυκλωμάτων ή/και των διακριτών εξαρτημάτων).
  • Μηχανές με διαφορετικές μικροαρχιτεκτονικές μπορεί να έχουν την ίδια αρχιτεκτονική συνόλου εντολών και έτσι και οι δύο είναι σε θέση να εκτελέσουν τα ίδια προγράμματα. Νέες μικροαρχιτεκτονικές ή/και λύσεις κυκλωμάτων, μαζί με την πρόοδο στην κατασκευή ημιαγωγών, είναι αυτές που επιτρέπουν στις νεότερες γενιές επεξεργαστών να επιτυγχάνουν υψηλότερες επιδόσεις.

Απλοποιημένες περιγραφές

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

Πτυχές της μικροαρχιτεκτονικής

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

Οι μονάδες εκτέλεσης είναι επίσης απαραίτητες για τη μικροαρχιτεκτονική. Οι μονάδες εκτέλεσης περιλαμβάνουν μονάδες αριθμητικής λογικής (ALU), μονάδες κινητής υποδιαστολής (FPU), μονάδες φόρτωσης/αποθήκευσης και πρόβλεψη διακλαδώσεων. Αυτές οι μονάδες εκτελούν τις πράξεις ή τους υπολογισμούς του επεξεργαστή. Η επιλογή του αριθμού των μονάδων εκτέλεσης, η καθυστέρηση και η απόδοση τους αποτελούν σημαντικά καθήκοντα μικροαρχιτεκτονικού σχεδιασμού. Το μέγεθος, η λανθάνουσα κατάσταση, η απόδοση και η συνδεσιμότητα των μνημών εντός του συστήματος αποτελούν επίσης αποφάσεις μικροαρχιτεκτονικής.

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

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

  • Περιοχή τσιπ/κόστος.
  • Κατανάλωση ενέργειας.
  • Λογική πολυπλοκότητα.
  • Ευκολία συνδεσιμότητας.
  • Κατασκευασιμότητα.
  • Ευκολία αποσφαλμάτωσης.
  • Δοκιμαστικότητα.

Έννοιες μικρο-αρχιτεκτονικής

Σε γενικές γραμμές, όλες οι CPU, οι μικροεπεξεργαστές ενός τσιπ ή οι υλοποιήσεις πολλαπλών τσιπ εκτελούν προγράμματα εκτελώντας τα ακόλουθα βήματα:

  1. Διαβάστε μια εντολή και αποκωδικοποιήστε την.
  2. Βρείτε τυχόν συναφή δεδομένα που απαιτούνται για την επεξεργασία της εντολής.
  3. Επεξεργαστείτε την εντολή.
  4. Γράψτε τα αποτελέσματα.

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

Ακολουθεί μια επισκόπηση των τεχνικών μικρο-αρχιτεκτονικής που είναι κοινές στις σύγχρονες CPU.

Επιλογή συνόλου εντολών

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

Ο σχεδιασμός του συνόλου εντολών έχει εξελιχθεί από τους τύπους CISC, RISC, VLIW, EPIC. Οι αρχιτεκτονικές που ασχολούνται με τον παραλληλισμό δεδομένων περιλαμβάνουν την SIMD και τους διανύσματα.

Διοχέτευση εντολών

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

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

Κρυφή μνήμη

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

Τα σχέδια RISC άρχισαν να προσθέτουν κρυφή μνήμη στα μέσα και τέλη της δεκαετίας του 1980, συχνά μόνο 4 KB συνολικά. Ο αριθμός αυτός αυξήθηκε με την πάροδο του χρόνου, και οι τυπικές CPU διαθέτουν σήμερα περίπου 512 KB, ενώ οι ισχυρότερες CPU διαθέτουν 1 ή 2 ή ακόμη και 4, 6, 8 ή 12 MB, οργανωμένες σε πολλαπλά επίπεδα μιας ιεραρχίας μνήμης. Σε γενικές γραμμές, περισσότερη κρυφή μνήμη σημαίνει μεγαλύτερη ταχύτητα.

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

Πρόβλεψη κλάδων και κερδοσκοπική εκτέλεση

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

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

Εκτέλεση εκτός σειράς

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

Superscalar

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

Στο παραπάνω περίγραμμα ο επεξεργαστής επεξεργάζεται τμήματα μιας εντολής κάθε φορά. Τα προγράμματα υπολογιστών θα μπορούσαν να εκτελούνται ταχύτερα αν επεξεργάζονταν ταυτόχρονα πολλές εντολές. Αυτό επιτυγχάνουν οι υπερκλιμακωτοί επεξεργαστές, με την αναπαραγωγή λειτουργικών μονάδων όπως οι ALU. Η αναπαραγωγή των λειτουργικών μονάδων κατέστη δυνατή μόνο όταν η περιοχή του ολοκληρωμένου κυκλώματος (μερικές φορές αποκαλούμενη "κύβος") ενός επεξεργαστή μίας έκδοσης δεν ξεπερνούσε πλέον τα όρια του τι θα μπορούσε να κατασκευαστεί αξιόπιστα. Στα τέλη της δεκαετίας του 1980, άρχισαν να κυκλοφορούν στην αγορά υπερκλιμακωτά σχέδια.

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

Μετονομασία μητρώου

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

Πολυεπεξεργασία και πολυνηματικότητα

Λόγω του αυξανόμενου χάσματος μεταξύ των λειτουργικών συχνοτήτων της CPU και των χρόνων πρόσβασης στην DRAM, καμία από τις τεχνικές που ενισχύουν τον παραλληλισμό σε επίπεδο εντολών (ILP) εντός ενός προγράμματος δεν μπορούσε να ξεπεράσει τις μεγάλες καθυστερήσεις (stalls) που εμφανίζονταν όταν έπρεπε να ληφθούν δεδομένα από την κύρια μνήμη. Επιπλέον, ο μεγάλος αριθμός τρανζίστορ και οι υψηλές συχνότητες λειτουργίας που απαιτούνταν για τις πιο προηγμένες τεχνικές ILP απαιτούσαν επίπεδα απώλειας ισχύος που δεν μπορούσαν πλέον να ψύχονται φθηνά. Για τους λόγους αυτούς, οι νεότερες γενιές υπολογιστών άρχισαν να χρησιμοποιούν υψηλότερα επίπεδα παραλληλισμού που υπάρχουν εκτός ενός μεμονωμένου προγράμματος ή νήματος προγράμματος.

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

Μια τεχνική με την οποία επιτυγχάνεται αυτός ο παραλληλισμός είναι τα συστήματα πολυεπεξεργασίας, συστήματα υπολογιστών με πολλαπλές CPU. Στο παρελθόν αυτό επιτρεπόταν μόνο σε κεντρικούς υπολογιστές υψηλών προδιαγραφών, αλλά τώρα οι μικρής κλίμακας (2-8) πολυεπεξεργαστές διακομιστές έχουν γίνει κοινός τόπος για την αγορά των μικρών επιχειρήσεων. Για τις µεγάλες επιχειρήσεις, οι πολυεπεξεργαστές µεγάλης κλίµακας (16-256) είναι συνηθισµένοι. Ακόμη και προσωπικοί υπολογιστές με πολλαπλούς επεξεργαστές έχουν εμφανιστεί από τη δεκαετία του 1990.

Οι εξελίξεις στην τεχνολογία των ημιαγωγών μείωσαν το μέγεθος των τρανζίστορ- εμφανίστηκαν πολυπύρηνες ΚΜΕ όπου πολλαπλές ΚΜΕ υλοποιούνται στο ίδιο τσιπ πυριτίου. Αρχικά χρησιμοποιήθηκαν σε τσιπ που απευθύνονταν σε ενσωματωμένες αγορές, όπου απλούστερες και μικρότερες ΚΜΕ θα επέτρεπαν την τοποθέτηση πολλαπλών εκτελέσεων σε ένα κομμάτι πυριτίου. Μέχρι το 2005, η τεχνολογία των ημιαγωγών επέτρεψε την κατασκευή διπλών high-end desktop CPUs CMP chips σε όγκο. Ορισμένα σχέδια, όπως το UltraSPARC T1, χρησιμοποίησαν απλούστερα (κλιμακωτά, σε σειρά) σχέδια προκειμένου να χωρέσουν περισσότεροι επεξεργαστές σε ένα κομμάτι πυριτίου.

Πρόσφατα, μια άλλη τεχνική που έχει γίνει πιο δημοφιλής είναι η πολυνηματικότητα. Στο multithreading, όταν ο επεξεργαστής πρέπει να ανακτήσει δεδομένα από την αργή μνήμη του συστήματος, αντί να περιμένει να φτάσουν τα δεδομένα, ο επεξεργαστής μεταβαίνει σε άλλο πρόγραμμα ή νήμα προγράμματος που είναι έτοιμο να εκτελεστεί. Παρόλο που αυτό δεν επιταχύνει ένα συγκεκριμένο πρόγραμμα/νήμα, αυξάνει τη συνολική απόδοση του συστήματος μειώνοντας το χρόνο αδράνειας της CPU.

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

Μια περαιτέρω βελτίωση είναι η ταυτόχρονη πολυδιεργασία. Αυτή η τεχνική επιτρέπει στις υπερκλιμακωτές CPU να εκτελούν ταυτόχρονα εντολές από διαφορετικά προγράμματα/νημάτια στον ίδιο κύκλο.

Σχετικές σελίδες

Ερωτήσεις και απαντήσεις

Ερ: Τι είναι η μικροαρχιτεκτονική;


A: Μικροαρχιτεκτονική είναι μια περιγραφή του ηλεκτρικού κυκλώματος ενός υπολογιστή, μιας κεντρικής μονάδας επεξεργασίας ή ενός επεξεργαστή ψηφιακού σήματος που είναι επαρκής για την πλήρη περιγραφή της λειτουργίας του υλικού.

Ερ: Πώς αναφέρονται οι μελετητές σε αυτή την έννοια;


Α: Οι μελετητές χρησιμοποιούν τον όρο "οργάνωση υπολογιστών" όταν αναφέρονται στη μικροαρχιτεκτονική.

Ε: Πώς αναφέρονται σε αυτήν την έννοια οι άνθρωποι στη βιομηχανία υπολογιστών;


Α: Οι άνθρωποι στη βιομηχανία υπολογιστών λένε συχνότερα "μικροαρχιτεκτονική" όταν αναφέρονται σε αυτή την έννοια.

Ερ: Ποιοι δύο τομείς αποτελούν την αρχιτεκτονική υπολογιστών;


Α: Η μικροαρχιτεκτονική και η αρχιτεκτονική συνόλου εντολών (ISA) αποτελούν μαζί τον τομέα της αρχιτεκτονικής υπολογιστών.

Ε: Τι σημαίνει ISA;


Α: ISA σημαίνει αρχιτεκτονική συνόλου εντολών.

Ε: Τι σημαίνει µarch; Α: µArch σημαίνει μικροαρχιτεκτονική.

AlegsaOnline.com - 2020 / 2023 - License CC3