( 8 ψήφοι )
Ευρετήριο Άρθρου
Μεγάλο τεστ 64bit εφαρμογών: Υπάρχουν διαφορές σε ταχύτητα;
Μετρήσεις
...κι άλλες μετρήσεις!
Συγκεντρωτικά
Όλες οι Σελίδες
Windows7 is hereΠάνω από πέντε χρόνια έχουν περάσει από την παρουσίαση των πρώτων 64bit Windows. Με την ευκαιρία του πρόσφατου λανσαρίσματος των Windows 7, θα αναλύσουμε ορισμένα πράγματα για την 64bit αρχιτεκτονική, και θα κάνουμε μετρήσεις σε όσο το δυνατόν περισσότερες εφαρμογές που διαθέτουν 64bit έκδοση, ώστε να διαπιστώσουμε πώς και κυρίως πόσο, κυμαίνεται η απόδοση τους, σε σχέση με τις παραδοσιακές 32bit εκδόσεις τους.


Τρεις γενιές 64bit Windows

Ίσως ένας από τους τομείς που η Microsoft δεν έδωσε τόση σημασία έως σήμερα, ήταν η προώθηση των 64bit εκδόσεων του λειτουργικού της, συστήματος. Μόλις πρόσφατα με την έλευση των Windows 7, είδαμε στην αγορά μεγάλο αριθμό μοντέλων φορητών να φοράνε την 64bit έκδοση, κάτι που δείχνει πως σιγά-σιγά έρχεται η ώρα για την πλήρη μετάβαση.

Οι επεξεργαστές που μπορούν να τρέξουν 64bit Windows είναι συμβατοί με το νέο σετ εδώ και εφτά (7) χρόνια, την ώρα που στους περισσότερους από αυτούς, το 64bit σετ εντολών απλά δεν κάνει.. τίποτα, αφού οι περισσότεροι χρήστες υπολογιστών ανά τον κόσμο, προτιμούν εκούσια ή ακούσια να τρέχουν τις «παραδοσιακές» 32bit εκδόσεις των Windows XP, Vista ή και “7”.

 

Ιστορία πληροφορικής για αρχάριους

Οι μικροεπεξεργαστές από τους πρώτους ευρέως γνωστούς στην αγορά (π.χ. Z80, 6502, 8086), μετριόνταν ακριβώς με γνώμονα το πόσα bits μπορούσαν να μεταφέρουν και να επεξεργαστούν με την μία (σε κάθε κύκλο του ρολογιού).

Z80
Ξεχάστε τα θηρία με τα χίλια εκατό pins που τρέχουν στα 3.5GHz.
Οι πρώτοι επεξεργαστές σαν τον παραπάνω Z80, ήταν 8bit, είχαν 40 ποδαράκια και έτρεχαν στα 4.7MHz!

Όσο εξελίσσονταν οι επεξεργαστές, τόσο εξελίσσονταν και αυτή η δυνατότητα, και έτσι από τους 8bit επεξεργαστές, μεταπηδήσαμε στους 16bit, και αργότερα στους 32bit. 64bit επεξεργαστές δεν εμφανίστηκαν έως το 2003 στο ευρύ κοινό, κυρίως γιατί δεν χρειάζονταν να γίνει κάτι τέτοιο. Χωρίς ανάγκη για εξέλιξη λοιπόν, οι επεξεργαστές της αρχιτεκτονικής x86 «κόλλησαν» για πολύ καιρό στα 32bits. Και η κατάσταση θα έμενε στάσιμη, αν δεν υπήρχε το θέμα της διαχείρισης της μνήμης. Πριν από αυτό όμως, ώρα για μάθημα:

 

Bits, bits, bits

bits

Για όσους δεν καταλαβαίνουν τι ρόλο παίζουν τα bits, θα προσπαθήσουμε να δώσουμε μια γρήγορη εξήγηση:  Οι υπολογιστές ως γνωστόν, “καταλαβαίνουν” δύο μόνο καταστάσεις: Το μηδέν και το ένα. Αυτές οι δύο καταστάσεις, αποτελούν ένα «bit». Η αναπαράσταση μεγαλύτερων αριθμών γίνεται με την άλγεβρα του Boole. Εν ολίγοις, όσο περισσότερα bits «μαζεμένα» μπορεί να διαχειριστεί ένας υπολογιστής, τόσο μεγαλύτερο εύρος τιμών μπορεί να υπολογίσει με την μία. Για παράδειγμα, 1 bit αναπαριστά δύο καταστάσεις, άρα και δύο αριθμούς (αφού το bit μπορεί να πάρει μόνο δύο καταστάσεις – το μηδέν ή το ένα). Αν κολλήσουμε δύο bits μαζί, τότε έχουμε 2 καταστάσεις, επί δύο καταστάσεις = τέσσερις καταστάσεις, αν κολλήσουμε τρία bits, τότε έχουμε 2 x 2 x 2 = 8, κτλ. Αυτές οι καταστάσεις αναπαριστούν στην πραγματικότητα αριθμούς. Έτσι με 3bits, μπορούμε να αναπαραστήσουμε έναν αριθμό με εύρος από το 1 έως το 8. Με 4bits, μπορούμε να αναπαραστήσουμε έναν αριθμό από το 1 έως το 16, με 5bits έναν αριθμό από το 1 έως το 32 κτλ (ουσιαστικά τα bits αναπαριστούν δυνάμεις του αριθμού δύο).

Ας πούμε τώρα που έχουμε έναν 8bit επεξεργαστή όπως ο Z80 που μπορεί να «δει» αριθμούς με εύρος 8bit, δηλαδή 28 = 256. Αν τώρα ο Z80 ήθελε να κάνει μια πρόσθεση δύο αριθμών που το άθροισμα τους είχε μια τιμή πέρα του 256 (π.χ. 305), τότε υπήρχε πρόβλημα και πράγματα γινόντουσαν πιο πολύπλοκα (εμπλέκονταν παραπάνω καταχωρητές στον επεξεργαστή ή ειδικά bits), και φυσικά, πιο αργά. Αυτός είναι και ο λόγος πως μετά από τα 32bits, δεν υπήρξε ανάγκη για βελτίωση, καθώς τα 32 αυτά bits αναπαριστούν ένα τεράστιο εύρος τιμών που σπάνια χρειάζεται να ξεπεραστεί.

Υπάρχει όμως και εδώ ένα μελανό σημείο: Το address bus, δηλαδή η επικοινωνία του επεξεργαστή με τα.. πάντα, περιλαμβανομένης και της μνήμης. Ο 8bit Z80 είχε 16bit address bus, δηλαδή σε κοινά Ελληνικά, μπορούσε να «διαχειριστεί» μνήμη έως και 64KB (216 = 0,064MB)! Αντίθετα, μια 32bit αρχιτεκτονική όπως η x86, μπορεί να διαχειριστεί μνήμη της τάξης των 232= 4GB! Και μετά; Και μετά, απλά χρειάζεται μια νέα αρχιτεκτονική!

 

Μικρή παρένθεση στην εξέλιξη των επεξεργαστών

Έως το 2001 κανείς δεν έδειχνε να ενδιαφέρεται για περεταίρω αύξηση της αρχιτεκτονικής στα 64bits όσον αφορά τον χώρο των PCs. Η Intel έπαιζε με τον καθαρόαιμο 64bit επεξεργαστή της (Itanium) την ώρα που κάποιος άλλος, της ροκάνιζε τα πόδια από τον θρόνο: Το 2003 η AMD αιφνιδιάζει, παρουσιάζοντας τους Opteron (για servers) και τους Athlon64 (για κοινά PC), τους πρώτους mainstream επεξεργαστές που μπορούσαν να λειτουργήσουν είτε ως κλασσικός x86 επεξεργαστής (με συμβατότητα στα παλιά Windows) είτε ως 64bit επεξεργαστής.

AMD64 Opteron
Από εδώ ξεκίνησαν όλα!

Ίσως το ίδιο αιφνιδιαστικό ήταν το γεγονός πως η μέχρι τότε στενή συνεργάτιδα της Intel η Microsoft, υιοθέτησε την νέα αυτή αρχιτεκτονική (με κωδική ονομασία x86-64), κυκλοφορώντας τα Windows XP x64, κάτι που ανάγκασε την Intel έναν χρόνο μετά, να προσθέσει και αυτή στους επεξεργαστές της, ένα συμβατό με την AMD σετ εντολών, που το ονόμασε αρχικά EM64T.  Ο κύβος, ερρίφθη!

 

Επεξεργαστές που έχουν ενσωματωμένη την 64bit αρχιτεκτονική

Intel - AMD

Από την πλευρά της AMD, Όλοι οι Athlon64, Turion64, Sempron64 και Athlon II, Phenom I/II, και Neo έχουν ενσωματωμένο το 64bit set. ΔΕΝ έχουν δυνατότητες 64bit οι επεξεργαστές Athlon, AthlonXP και Duron.

Στο στρατόπεδο της Intel, τα πράγματα είναι πιο πολύπλοκα, καθώς η ενσωμάτωση της 64bit αρχιτεκτονικής έγινε με ένα χρόνο καθυστέρηση σε σχέση με την AMD. Έτσι μόνο ορισμένοι τύποι από τους Pentium 4 και τους Celeron D (μοντέλα με κωδικό “Prescott” και μετά) είχαν την δυνατότητες 64bit. Από εκεί και πέρα, όλοι οι κατοπινοί επεξεργαστές της Intel έχουν το EM64T set: Pentium D, Pentium Dual Core, Core2Duo, Core2Quad, Celeron σειρά 4 και 5, Core i7, Core i5. Δυνατότητες 64bit εννοείται πως δεν έχουν οι Pentium III ενώ 64bit δυνατοτήτων στερείται και ο Atom N270 που συναντάμε στα περισσότερα netbooks.

 

Η x86-64 αρχιτεκτονική με μια ματιά

Ένας επεξεργαστής που έχει AMD64 ή Intel64 εντολές (πρόκειται για την ίδια ακριβώς αρχιτεκτονική – μην τρομάζετε), έχεις τις εξής δυνατότητες:

  • Οι καταχωρητές του επεξεργαστή είναι πλέον 64bit. Αυτό σημαίνει πως αυτός μπορεί να διεκπεραιώσει μαθηματικές πράξεις, με αριθμούς της τάξης του 264 . Παλαιότερα, αποτελέσματα πάνω από 232 δεν “χωρούσαν” και χρησιμοποιούνταν επιπλέον καταχωρητές και φυσικά αυτό κόστιζε σε χρόνο.
  • Από τους οκτώ καταχωρητές, ο αριθμός τους διπλασιάστηκε σε δεκαέξι. Αυτό είναι πολύ σημαντικό καθώς επιτρέπει την γρήγορη ανταλλαγή δεδομένων μέσα στο chip χωρίς το χάσιμο χρόνου για μεταφορά στην μνήμη. Επίσης διπλασιάστηκαν και οι XMM καταχωρητές (υπεύθυνοι για multimedia κυρίως).
  • Υποστήριξη περισσότερης RAM (θεωρητικά άπειρης) σε σχέση με τα 4GB που μπορούσε να χειριστεί η x86 αρχιτεκτονική.
  • Ενσωμάτωση των SSE και SSE2 τεχνολογιών της Intel στην 64bit αρχιτεκτονική.
  • Not Execute δυνατότητες, που σε συνδυασμό με το λειτουργικό σύστημα, δεν επιτρέπουν στα προγράμματα να τρέξουν κώδικα από κομμάτι της μνήμης που δεν τους ανήκει (πολύ σημαντικό για την προστασία του συστήματος από ιούς).
  • Εσωτερικές μικροβελτιώσεις.
  • Αφαίρεση παλαιών και απαρχαιωμένων λειτουργιών στην 64bit λειτουργία.

Δεν θα γράψουμε παραπάνω πράγματα για τα modes συμβατότητας της αρχιτεκτονικής και τους περιορισμούς/δυνατότητες που υπάρχουν. Το μόνο που θα αναφέρουμε είναι πως όσον αφορά το λειτουργικό σύστημα, για να χρησιμοποιήσετε 64bit εφαρμογές, θα πρέπει απαραίτητα να έχετε 64bit έκδοση των Windows. 64bit εφαρμογές δεν θα εκτελεστούν με κανέναν τρόπο αν έχετε 32bit  Windows. Φυσικά το ανάποδο δεν ισχύει, αφού ακόμη και αν εγκαταστήσετε Windows 64bit, θα μπορείτε να τρέχετε τις 32bit εφαρμογές σας με μια υποσημείωση όμως: Οι drivers πρέπει να είναι 64bit.

Ανακεφαλαιώνοντας λοιπόν: Windows 64bit χρειάζονται 64bit drivers και τρέχουν τόσο 32 (παλιά) όσο και 64bit (νέα) προγράμματα. Τα Windows 32bit, δεν μπορούν να τρέξουν καμία 64bit εφαρμογή. Αν δεν είστε σίγουροι τι είδους έκδοση έχετε (32 ή 64bit) κάντε δεξί κλικ στον «Υπολογιστή μου» και επιλέξτε ιδιότητες:

Vista64

Ένα μικρό FAQ μπορείτε ακόμη, να βρείτε στο site της Microsoft.

 

64bit: Είναι πιο γρήγορο και γιατί;

Σε θεωρητικό επίπεδο, η 64bit αρχιτεκτονική είναι πολύ πιο γρήγορη καθώς:

  • Διαχειρίζεται μονομιάς, μεγαλύτερο όγκο δεδομένων

  • Έχει περισσότερους καταχωρητές και ενσωματωμένη υποστήριξη των multimedia extensions (SSE/SEE2) στην αρχιτεκτονική

  • «Βλέπει» περισσότερη μνήμη, άρα έχει περισσότερο χώρο για cache και λιγότερες ανάγκες για swap file.

  • Είναι απαλλαγμένη από παλαιό κώδικα της x86 αρχιτεκτονικής.

Φυσικά αυτό δείχνει να μην ισχύει πάντα. Για παράδειγμα, στο site της maxon (της κατασκευάστριας του πασίγνωστου Cinema4D, θα διαβάσετε μεταξύ άλλων:

«H 64-bit έκδοση του Cinema4D μπορεί να διαχειριστεί πολύ περισσότερη μνήμη από ότι η υποστηριζόμενη σε 32bit περιβάλλον. Αν έχετε αρκετή μνήμη στο σύστημα, μηνύματα λάθους τύπου “out of memory” θα είναι προβλήματα του παρελθόντος. Ένα άλλο πλεονέκτημα είναι η αύξηση της ταχύτητας κατά 20% σε σχέση με την 32-bit έκδοση. Αυτό το πλεονέκτημα δεν δημιουργείται στην πραγματικότητα λόγω του 64-bit αλλά λόγω του ότι αφαιρέθηκε η υποστήριξη για παλαιότερους (μη 64bit) επεξεργαστές».

Πηγή...

Σίγουρα μια τέτοια δήλωση από έναν μεγάλο κατασκευαστή είναι κάπως απογοητευτική, αλλά ας μην ξεχνάμε δύο πράγματα: (α) Η δήλωση αυτή έγινε πριν πολύ καιρό και (β) ακόμη και η ίδια η Microsoft δεν έχει μετατρέψει όλο τον κώδικα της σε 64bit, άρα βρισκόμαστε ακόμη στην μέση του δρόμου για την πλήρη εκμετάλλευση της x86-64 αρχιτεκτονικής.




δημοψήφισμα

Νέα επικαιρότητας: Ποιότητα ή ποσότητα;