X86: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Γραμμή 486:
 
Το 3DNow! σχεδιάστηκε σαν μια φυσική εξέλιξη του MMX από τους ακέραιους στους αριθμούς κινητής υποδιαστολής και χρησιμοποιεί τα ίδια ονόματα καταχωρητών με το MMX, από το MM0 έως το MM7. Η μόνη διαφορά είναι ότι αντί να πακετάρει ακέραιους στους καταχωρητές, πακετάρει δύο αριθμούς κινητής υποδιαστολής απλής ακρίβειας. Το πλεονέκτημα της χρήσης ονομάτων για τους καταχωρητές της μονάδας κινητής υποδιαστολής είναι ότι μπορούν να χρησιμοποιηθούν οι ίδιες εντολές και δομές δεδομένων που αποθηκεύουν την κατάσταση της μονάδας κινητής υποδιαστολής για να αποθηκεύσουν την κατάσταση των καταχωρητών 3DNow! και με αυτόν τον τρόπο δεν χρειάζονται μετατροπές στα λειτουργικά συστήματα (τα οποία δεν χρειάζεται καν να γνωρίζουν για την ύπαρξη της τεχνολογίας αυτής).
 
=== SSE ===
{{κύριο|Streaming SIMD Extensions|SSE2|SSE3|SSSE3|SSE4|SSE5}}
 
Το 1999 η Intel κυκλοφόρησε το [[σετ εντολών]] Streaming SIMD Extensions (SSE) και στη συνέχεια, το 2000, το SSE2. Η πρώτη προσθήκη επέτρεψε σε βασικές λειτουργίες κινητής υποδιαστολής να μην επιβαρύνουν πια την στοίβα του x87 και η δεύτερη έκανε το MMX σχεδόν περιττό αφού επέτρεπε στις εντολές να χρησιμοποιούνται στην πράξη από τους κλασικούς μεταγλωττιστές. Το SSE3 κυκλοφόρησε το 2004 με την έκδοση [[Pentium 4#Prescott|''Prescott'']] των επεξεργαστών [[Pentium 4]] και πρόσθεσε ειδικές εντολές μνήμης και χειρισμού [[Νήμα (υπολογιστές)|νημάτων]] ώστε να αυξηθεί η ταχύτητα της τεχνολογίας [[HyperThreading]] της Intel. Η AMD αγόρασε δικαιώματα χρήσης του σετ εντολών SSE3 και υλοποίησε τις περισσότερες από τις εντολές από την έκδοση E και μετά, στους επεξεργαστές Athlon 64. Ο Athlon 64 δεν υποστηρίζει HyperThreading και άρα δεν έχει τις εντολές SSE3 που χρησιμοποιούνται μόνο για αυτό.
 
Το SSE σταμάτησε να συνδέεται με την στοίβα της μονάδας κινητής υποδιαστολής (FPU), με αποτέλεσμα να μην είναι συμβατό με παλιότερες γενικές σετ εντολών SIMD όπως το MMX. Απελευθέρωσε ομως τους σχεδιαστές από τους περιορισμούς των καταχωρητών της FPU, επιτρέποντάς τους να χρησιμοποιούν οχτώ μεγαλύτερους καταχωρητές των 128-bit, με ονόματα XMM0 έως XMM7. (''Σημείωση'': ο αριθμός τους στον [[x86-64|AMD64]] έχει αυξηθεί από 8 σε 16.) Το μειονέκτημα αυτής της προσέγγισης ήταν ότι τα λειτουργικά συστήματα έπρεπε να γνωρίζουν για την ύπαρξη του SSE ώστε να μπορούν να σώζουν την κατάσταση των καταχωρητών τους. Έτσι η Intel δημιούργησε μια ελαφρώς τροποποιημένη έκδοση της προστατευμένης κατάστασης, που την ονόμασε enhanced mode, η οποία επιτρέπει την χρήση εντολών SSE, ενώ αυτές είναι απενεργοποιημένες στην κανονική προστατευμένη κατάσταση. Ένα λειτουργικό σύστημα που γνωρίζει για την ύπαρξη του SSE θα μπει σε αυτήν την νέα κατάσταση, ενώ ένα λειτουργικό που δεν την αναγνωρίζει θα μπει μόνο σε προστατευμένη κατάσταση.
 
Το SSE είναι ένα σύνολο εντολών SIMD που λειτουργεί μόνο με τιμές κινητής υποδιαστολής, όπως το 3DNow! αλλά σε αντίθεση με αυτό, δεν είναι συμβατό με τις παλιές χρήσεις της στοίβας της FPU. Έχοντας μεγαλύτερους καταχωρητές από το 3DNow!, το SSE μπορεί να περιέχει διπλάσιο αριθμό από αριθμούς κινητής υποδιαστολής στους καταχωρητές του. Το αρχικό SSE περιοριζόταν σε αριθμούς απλής ακρίβειας, όπως το 3DNow!, ενώ το SSE2 εισήγαγε τη δυνατότητα να πακετάρονται και αριθμοί διπλής ακρίβειας, κάτι που το 3DNow! δε μπορούσε να υποστηρίξει, γιατί ένας αριθμός διπλής ακρίβειας έχει μέγεθος 64-bit και θα χρειαζόταν έναν ολόκληρο καταχωρητή 3DNow! MMn από μόνος του. Με μέγεθος 128 bit, οι καταχωρητές XMMn του SSE μπορούσαν να χωρέσουν δύο αριθμούς κινητής υποδιαστολής διπλής ακρίβειας σε έναν καταχωρητή με αποτέλεσμα το SSE2 να είναι πιο κατάλληλο για επιστημονικούς υπολογισμούς σε σχέση με το SSE1 ή το 3DNow!, τα οποία περιορίζονταν σε αριθμούς απλής ακρίβειας. Το SSE3 δε πρόσθεσε επιπλέον καταχωρητές.
 
== Δείτε επίσης ==
Ανακτήθηκε από "https://el.wikipedia.org/wiki/X86"