Γιάννης Ανδρουλάκης

e-epaggelmaties "αποκτήστε επαγγελματική στέγη στο διαδίκτυο"

Τεχνολογία Hyper-threading

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

Σύγχρονη αρχιτεκτονική

Σήμερα, οι τρεις κυριότερες τεχνικές που χρησιμοποιούνται για τη βελτίωση της απόδοσης των επεξεργαστών, είναι η διαρκής αύξηση της συχνότητας λειτουργίας τους, η ενσωμάτωση ολοένα μεγαλύτερης ποσότητας cache και η βελτίωση του instruction-level parallelism, δηλαδή των εντολών που εκτελούνται παράλληλα από τον πυρήνα του επεξεργαστή. Οι υψηλές συχνότητες που πλέον ανέρχονται σε αρκετά gigahertz, χιλιάδες φορές μεγαλύτερες σε σχέση με τους αρχικούς επεξεργαστές, αυξάνουν δραματικά των αριθμό των εντολών που μπορεί να εκτελέσει ένας επεξεργαστής ανά δευτερόλεπτο. Δυστυχώς, η υλοποίηση της συγκεκριμένης τεχνικής αυξάνει σημαντικά την πολυπλοκότητα και το κόστος παραγωγής των προϊόντων, λόγω του αυξημένου αριθμού εντολών που πρέπει να διαχειρίζονται από τον επεξεργαστή ανά μονάδα χρόνου.

Hyperthreading

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

Τέλος, ο όρος instruction-level parallelism (ILP) αναφέρεται σε τεχνικές που προσδοκούν στην αύξηση του αριθμού των εντολών που εκτελούνται σε κάθε clock cycle. Για παράδειγμα, ένας super-scalar επεξεργαστής έχει πολλαπλές, παράλληλες μονάδες εκτέλεσης εντολών, που μπορούν να επεξεργάζονται πολλές εντολές ταυτόχρονα. Με την τεχνολογία super-scalar η απόδοση του επεξεργαστή βελτιώνεται σημαντικά, αρκεί ο πυρήνας του να τροφοδοτείται συνεχώς με νέες εντολές. Για το λόγο αυτό αναπτύχθηκε η τεχνική out-of-order execution, όπου μία μεγάλη ποσότητα εντολών επεξεργάζεται ταυτόχρονα και οι εντολές που περιλαμβάνει αποστέλλονται προς τις μονάδες εκτέλεσης.

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

Τεχνολογία Hyper-Threading

Δεδομένου ότι η συχνότητα λειτουργίας των επεξεργαστών δεν μπορεί να αυξάνεται επ’ αόριστον, ο στόχος που τέθηκε από τα τμήματα έρευνας και ανάπτυξης που ασχολούνται με την αρχιτεκτονική των επεξεργαστών, αφορούσε στην αύξηση του αριθμού των εντολών που εκτελούνται μέσα στην ίδια μονάδα χρόνου. Με το σκεπτικό αυτό, η Intel παρουσίασε πρόσφατα την τεχνολογία Ηyper Threading, πρώην Jackson Technology, που ούτε λίγο ούτε πολύ δημιουργεί δύο λογικούς επεξεργαστές από τον έναν φυσικό επεξεργαστή. Από την εκκίνηση κιόλας του συστήματος, ο κάθε λογικός επεξεργαστής λειτουργεί εντελώς αυτόνομα και ανεξάρτητα από τον άλλο, όμως και οι δύο μονάδες μοιράζονται τους ίδιους πόρους του μοναδικού, φυσικού επεξεργαστή που εξοπλίζει το σύστημα. Η τεχνική αυτή επιτρέπει στους επεξεργαστές που υποστηρίζουν την τεχνολογία Hyper Threading να εκτελούν ταυτόχρονα δύο ξεχωριστές ακολουθίες κώδικα (threads) ανά κύκλο ρολογιού, αυξάνοντας συνολικά τις επιδόσεις του συστήματος. Για να συμβεί κάτι τέτοιο θα πρέπει τα δύο threads να μην κάνουν χρήση των ίδιων πόρων του επεξεργαστή, όπως για παράδειγμα το πρώτο thread να ασχολείται με την επεξεργασία ακεραίων αριθμών, αφήνοντας την FPU (Floating Point Unit) ελεύθερη για να χρήσιμοποιηθεί από ένα δεύτερο thread.

Απόδοση της τεχνολογίας Hyper-threading

Η τεχνολογία Hyper-Threading μπορεί να βελτιώσει την ταχύτητα εκτέλεσης τόσο των multi-threaded εφαρμογών που θα εκμεταλλεύονται τις νέες δυνατότητες, όσο και πολλαπλών single-threaded εφαρμογών που θα εκτελούνται ταυτόχρονα στον υπολογιστή του χρήστη (multi-tasking). Μπορεί επίσης να χρησιμοποιηθεί από τον πυρήνα του λειτουργικού συστήματος, μειώνοντας το φόρτο εργασίας της CPU για την εκτέλεση των ενσωματωμένων υπηρεσιών (services) και άλλων ενεργειών που εκτελούνται στο background. Σε κάθε περίπτωση, τα καλύτερα αποτελέσματα επιτυγχάνονται όταν τα threads των εφαρμογών που εκτελούνται ταυτόχρονα απασχολούν διαφορετικούς πόρους του επεξεργαστή. Ένα από τα κυριότερα οφέλη της τεχνολογίας είναι ότι προσφέρει αποδοτικότερη εκμετάλλευση των πόρων του συστήματος χωρίς μεγάλο κόστος, ενώ καθώς η ισχύς των επεξεργαστών αυξάνεται η τεχνική αυτή θα δημιουργεί ακόμη μεγαλύτερα οφέλη. Το λογισμικό που μπορεί να ωφεληθεί άμεσα από μία τέτοια εξέλιξη είναι τόσο τα σύγχρονα λειτουργικά συστήματα, όσο και οι high end εφαρμογές που εκτελούνται συνήθως σε servers ή workstations, όπως οι βάσεις δεδομένων, οι εφαρμογές multimedia και άλλα προγράμματα υψηλών επεξεργαστικών απαιτήσεων.

Multitasking, Multi-threading, Multiprocessing

Σε single-threaded περιβάλλοντα όπως το λειτουργικό σύστημα Windows 3.1, καθεμία από τις εφαρμογές που εκτελούνταν «ταυτόχρονα» χρησιμοποιεί τη CPU για μικρά μόνο χρονικά διαστήματα (time slices), παραδίδοντας μετά τον έλεγχο στην επόμενη εφαρμογή. Η αρχική αυτή υλοποίηση multitasking χαρακτηρίστηκε ως cooperative, αφού οι εφαρμογές θα έπρεπε να συνεργαστούν μεταξύ τους χρησιμοποιώντας και μετά παραδίδοντας διαδοχικά τον έλεγχο της CPU. Το ίδιο το λειτουργικό σύστημα δεν επιτελούσε κανέναν έλεγχο στη διαδικασία και για το λόγο αυτό, τα Windows 3.1 συχνά κολλούσαν όταν κάποια εφαρμογή κατέρρεε χωρίς να απελευθερώσει τη CPU ή όταν διεξήγαγε ιδιαίτερα περίπλοκες εργασίες. Το 1995 με την κυκλοφορία των Windows 95 και NT, η Microsoft βελτίωσε τη λειτουργία multitasking μεταφέροντας τον έλεγχό της στο λειτουργικό σύστημα. Το preemptive multitasking εξασφαλίζει ότι όλες οι εφαρμογές έχουν ίσα «δικαιώματα» στη χρήση της CPU, μέσα από την επεξεργασία και εκτέλεση των αιτήσεων που λάμβανε το λειτουργικό σύστημα από τα προγράμματα που εκτελούνταν ταυτόχρονα.

Η τεχνολογία multi-threading επεκτείνει ουσιαστικά την ιδέα του multitasking, εφαρμόζοντάς την στο εσωτερικό των εφαρμογών που μπορούν πλέον να χωρίζουν τις διεργασίες τους σε «ελαφρύτερες» ροές εντολών που ονομάζονται threads. Παρόλο που η νέα τεχνολογία προσφέρει ουσιαστικά πλεονεκτήματα ακόμη και σε υπολογιστές με έναν μόνο επεξεργαστή, σε περιβάλλον με πολλαπλούς επεξεργαστές η αύξηση των επιδόσεων γίνεται πραγματικά εντυπωσιακή.

Πότε θα έρθει;

Οι πρώτες φήμες σχετικά με την ενσωμάτωση της τεχνολογίας Hyper Threading (HT) στα προϊόντα της Intel, έκαναν λόγο για πιθανή υλοποίησή της κατά τα μέσα του 2003. Τον καιρό εκείνο αναμένεται η παρουσίαση των νέων επεξεργαστών Prescott που θα κατασκευάζονται με την τεχνολογία των 0.09 micron (90nm), ενώ παράλληλα θα ενσωματώνουν τη νέα γενιά προηγμένης μικροαρχιτεκτονικής 32-bit x86. Κατά τη διάρκεια του Φθινοπωρινού Intel Developer Forum 2002, η εταιρεία αναθεώρησε τα σχέδιά της ανακοινώνοντας ότι ο επερχόμενος Pentium 4 σε συχνότητα λειτουργίας 3.06GHz ή ανώτερη, θα ενσωματώνει τελικά τη νέα και πολλά υποσχόμενη τεχνολογία.

Ο επεξεργαστής Pentium 4

Προφανώς, η Intel διαπίστωσε ότι το λειτουργικό σύστημα Windows XP με το Service Pack 1, που μόλις κυκλοφόρησε από την Microsoft, επαρκούν για να υποστηρίξουν τις λειτουργίες Hyper Threading, ενώ σύμφωνα με τους υπευθύνους της εταιρείας οι κατασκευαστές λογισμικού ετοιμάζουν ήδη τις νέες εκδόσεις των προϊόντων τους που θα εκμεταλλεύονται τα νέα χαρακτηριστικά. Σε ό,τι αφορά στα chipset, όλα τα προϊόντα της Intel που υποστηρίζουν 533 MHz Front Side Bus θα μπορούν να υποστηρίξουν την τεχνολογία, εκτός του αρχικού (Α1) stepping για το 845G. Τα νεότερα chipsets θα ενσωματώνουν τα απαραίτητα υποσυστήματα APIC (Advanced Programmable Interrupt Controller), ενώ οι κατασκευαστές motherboards θα πρέπει προσέξουν ώστε τα προϊόντα τους να διαθέτουν αναβαθμισμένες εκδόσεις BIOS, drivers και να πληρούν τις ηλεκτρικές και θερμικές προδιαγραφές για τον επεξεργαστή Pentium 4 στα 3.06 GHz.

Καθώς η τεχνολογία κάνει μόλις τώρα τα πρώτα βήματά της στην αγορά, οι καταναλωτές αλλά και ολόκληρες εταιρείες έχουν προβληματιστεί σχετικά με το είδος των εφαρμογών που θα ωφεληθούν περισσότερο από την αλλαγή στην αρχιτεκτονική των επεξεργαστών. Η Microsoft αρχικά ανακοίνωσε ότι μόνο τα Windows XP Professional θα υποστηρίζουν τη νέα τεχνολογία, βασιζόμενη στο γεγονός ότι σε αντίθεση με την Home Edition υποστηρίζουν πολλαπλούς επεξεργαστές. Αργότερα, η εταιρεία υποχρεώθηκε να ανασκευάσει την εκτίμησή της μέσω του lead product manager Greg Sullivan, με αποτέλεσμα η Intel να προτείνει σήμερα τα λειτουργικά συστήματα Windows XP (και στις δύο εκδόσεις Home και Professional) και Linux 2.4.x για χρήση στους Hyper-Threading υπολογιστές. Ο group general manager της Intel, Paul Otellini, προέβλεψε ότι το 25% των προσωπικών υπολογιστών, το 60% των workstations και το 80% των servers που θα κυκλοφορήσουν στο άμεσο μέλλον και θα βασίζονται στους επεξεργαστές της Intel, θα υποστηρίζουν την τεχνολογία Hyper Threading. Αντίθετα, στο χώρο των φορητών υπολογιστών θα σημειωθεί σημαντική καθυστέρηση, αφού η τεχνολογία Banias που αναπτύσσει αυτή τη στιγμή η εταιρεία δεν θα παρέχει υποστήριξη Hyper-Threading, ενώ ακόμη και ο διάδοχός της, που σύμφωνα με όλες τα ενδείξεις θα παρουσιαστεί στο τέλος του 2003 υπό τον τίτλο Dothan, δεν έχει διευκρινιστεί εάν θα την υποστηρίζει.

Επίλογος

Στο Microprocessor Forum που διεξήχθη τον περασμένο χρόνο, οι υπεύθυνοι της Intel αποκάλυψαν ότι η τεχνολογία Hyper-Threading υπήρξε εξαρχής ένα βασικό στοιχείο της αρχιτεκτονικής του Pentium 4, το οποίο όμως η εταιρεία απενεργοποιούσε στους επεξεργαστές που κυκλοφορούσε μέχρι σήμερα. Η δήλωση προκάλεσε εντύπωση στους παρευρισκόμενους, αφού καμία σχετική πληροφορία για «κρυμμένα» χαρακτηριστικά στους Pentium 4 δεν είχαν δει, μέχρι τότε, το φως της δημοσιότητας. Τα οφέλη από την αρχιτεκτονική αλλαγή δεν περιορίζονται στις αυξημένες επιδόσεις, αλλά και στην κατασκευή των επεξεργαστών που αποδεικνύεται πολύ αποδοτική. Τα πρόσθετα κυκλώματα που απαιτούνται για τη λειτουργία της καταλαμβάνουν μόλις το 5% της συνολικής επιφάνειας του Pentium 4, ενώ και η κατανάλωση ενέργειας αυξάνεται κατά ανάλογο ποσοστό. Οι δύο αυτές παράμετροι υπογραμμίζουν την υψηλή απόδοση της τεχνολογίας Hyper-Threading, αφού η επιβάρυνση του συστήματος κατά μόλις 5% καταφέρνει να αυξήσει τις επιδόσεις από 20% έως 35% ανάλογα με το είδος των εφαρμογών που εκτελούνται. Για λόγους σύγκρισης, αξίζει να αναφέρουμε ότι ο διπλασιασμός της μνήμης L2 cache απαιτεί την αύξηση από 20% έως 30% της επιφανείας του chip, ενώ η αύξηση που προσφέρει δεν ξεπερνά το μέτριο 10%.

Το σημαντικότερο ίσως πρόβλημα που αναμένεται να αντιμετωπίσει η νέα τεχνολογία από τα πρώτα κιόλας βήματά της στην καταναλωτική αγορά, είναι η έλλειψη λογισμικού που θα υποστηρίζει τα ιδιαίτερα χαρακτηριστικά της. Σύμφωνα με την Intel, υπάρχουν αρκετές περιπτώσεις όπου κακογραμμένες multi-threaded εφαρμογές ίσως μειώσουν αντί να αυξήσουν τις επιδόσεις του επεξεργαστή. Οι κατασκευαστές λογισμικού θα πρέπει να προσέξουν ώστε οι εφαρμογές τους να δημιουργούν threads που θα εκμεταλλεύονται διαφορετικούς πόρους της CPU, έτσι ώστε να προκύψουν τα μέγιστα δυνατά οφέλη για τους χρήστες. Με δεδομένο ότι το λογισμικό που κυκλοφορεί σήμερα δεν ακολουθεί τις προδιαγραφές αυτές, οι επιδόσεις αναμένονται μειωμένες σε σχέση με τις αρχικές προσδοκίες. Παρόλα αυτά, οι πρώτες ενδείξεις από τους κατασκευαστές λογισμικού εμφανίζονται θετικές, αφού η Intel συνεργάζεται με τους προγραμματιστές για τη δημιουργία εφαρμογών που θα εκμεταλλεύονται τους δύο λογικούς επεξεργαστές του hyper-Threading.

Τέλος, αξίζει να σημειωθεί ότι η τακτική της Intel να απενεργοποιεί την τεχνολογία στους Pentium 4 που παρήγαγε μέχρι σήμερα ίσως αποδειχθεί λανθασμένη, εφόσον βέβαια οι Hyper-Threading επεξεργαστές που θα κατασκευάζει από εδώ και πέρα δεν ενσωματώνουν και άλλες αρχιτεκτονικές αλλαγές. Οι κάτοχοι σύγχρονων υπολογιστών με chipset που υποστηρίζουν 533MHz FSB θα μπορούσαν ενδεχομένως να εκμεταλλευτούν την τεχνολογία με μία απλή αναβάθμιση του BIOS, με αποτέλεσμα τα Hyper-Threading συστήματα που θα κυκλοφορούσαν άμεσα στην αγορά να ήταν πολύ υψηλότερα.

Η ιστοσελίδα συμμορφώνεται πλήρως με τις προδιαγραφές της γλώσσας XHTML 1 Strict και CSS2
Author: Ioannis Androulakis