Το e-steki είναι μια από τις μεγαλύτερες ελληνικές διαδικτυακές κοινότητες με 66,100 εγγεγραμμένα μέλη και 2,388,181 μηνύματα σε 74,655 θέματα. Αυτή τη στιγμή μαζί με εσάς απολαμβάνουν το e-steki άλλα

Καλώς ήρθατε στο e-steki!

Εγγραφή Βοήθεια

32bit vs 64bit (x86 vs x64)

32bit vs 64bit

Αποτελέσματα της δημοσκόπησης (Ψήφισαν 9)
32bit
3
33,33%
64bit
6
66,67%

Boom

Αποκλεισμένος χρήστης

Το avatar του χρήστη Boom
Ο Boom αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 7,202 μηνύματα.

O Boom έγραψε στις 19:37, 29-11-10:

#1
Ποια η διαφορά μεταξύ των win 7 32 bit και των win 7 64 bit;
Ακόμη, ένα σύστημα με 64 bit μπορεί να παίξει ένα πρόγραμμα που προορίζεται για 32 bit;

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

fockos

Επιφανές Μέλος

Το avatar του χρήστη fockos
Ο fockos αυτή τη στιγμή είναι συνδεδεμένος. Επαγγέλεται Γιατρός και μας γράφει απο Ζάκυνθος (Ζάκυνθος). Έχει γράψει 10,375 μηνύματα.

O fockos έγραψε στις 19:43, 29-11-10:

#2
Αρχική Δημοσίευση από theodora
Ποια η διαφορά μεταξύ των win 7 32 bit και των win 7 64 bit;
Ακόμη, ένα σύστημα με 64 bit μπορεί να παίξει ένα πρόγραμμα που προορίζεται για 32 bit;

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

Για αυτό βάλε τα 32 χωρίς να ρωτάς

Νομίζω ότι το 32 υποστηρίζει διαφορετικη αρχιτεκτονική από τα 64 και μερικά προγραμματα τρέχουν καλύτερα σε 64 τώρα τι σημαίναι αυτο ακριβως δε ξέρω

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

-1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Boom

Αποκλεισμένος χρήστης

Το avatar του χρήστη Boom
Ο Boom αυτή τη στιγμή δεν είναι συνδεδεμένος Έχει γράψει 7,202 μηνύματα.

O Boom έγραψε στις 19:49, 29-11-10:

#3
Πώς να τα βάλω;
Εμένα αυτά είχε όταν τον πήρα (64).
Απλά προσπαθούσε να μου το εξηγήσει κάποιος και μου έδινε ως παράδειγμα τα στρέμματα από τα χωράφια.
Jesus, δεν κατάλαβα Αλλάχ.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Morelo

Διάσημο Μέλος

Το avatar του χρήστη Morelo
Ο Morelo αυτή τη στιγμή δεν είναι συνδεδεμένος Είναι 25 ετών και επαγγέλεται Φοιτητής/τρια . Έχει γράψει 872 μηνύματα.

O Morelo έγραψε στις 20:01, 29-11-10:

#4
Εγω γνωριζω πως τα 64 bit προοριζοντε για υπολογιστες οι οποιοι εχουν μνημη >2gb ετσι ωστε να μπορουν να αξιοποιουν ολους τους πορους της μνημης!
Αν εχεις π.χ 4gb μνημη και εχεις 32bit συστημα τα windows αναγνωριζουν μονο τα 2gb με αποτελεσμα να μην αξιοπειται σωστα ολη η διαθεσιμη μνημη!

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

koum

Διάσημο Μέλος

Το avatar του χρήστη koum
Ο koum αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Συνταξιούχος . Έχει γράψει 875 μηνύματα.

O koum έγραψε στις 20:09, 29-11-10:

#5
Αρχική Δημοσίευση από theodora
Ποια η διαφορά μεταξύ των win 7 32 bit και των win 7 64 bit;
Ακόμη, ένα σύστημα με 64 bit μπορεί να παίξει ένα πρόγραμμα που προορίζεται για 32 bit;
Οι διαφορές είναι ιδιαίτερα μικρές πρακτικά, με την πιο ουσιαστική να είναι αυτή της μεγαλύτερης μνήμης ram που μπορεί να "δει" ένα 64-bit λειτουργικό. Στα 32-bit το max είναι 3Gb, ανεξάρτητα από το αν εσύ θα βάλεις μεγαλύτερη ram. Σε ορισμένα συγκριτικά στο net, φαίνεται η διαφορά που έχουν στην απόδοση. Ωστόσο, ακόμα δεν αξιοποιούνται πλήρως τα 64-bit, και για αυτό ευθύνεται κυρίως η μη αξιοποίησή τους από το υπάρχον software. Το μέλλον είναι στα 64-bit φυσικά, οπότε δεν υπάρχει λόγος να γυρίσεις στα 32. Πολλά προγράμματα που έχουν προδιαγραφές 32-bit τρέχουν σε 64-bit, το αντίστροφο δεν ισχύει. Αυτό που αλλάζει είναι η αρχιτεκτονική των 64-bit, και από αυτήν επωφελούνται κυρίως γραφίστες, επιχειρήσεις κλπ...


Ένα link από τη Microsoft () για όποιες απορίες.
Κι άλλο ένα από τη Wiki για τις βασικές διαφορές τους.



Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

2 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

fockos

Επιφανές Μέλος

Το avatar του χρήστη fockos
Ο fockos αυτή τη στιγμή είναι συνδεδεμένος. Επαγγέλεται Γιατρός και μας γράφει απο Ζάκυνθος (Ζάκυνθος). Έχει γράψει 10,375 μηνύματα.

O fockos έγραψε στις 20:20, 29-11-10:

#6
Ισχύει αυτό που λέει ο Morelo και ο Koum αλλά είναι παραπλανητικό γιατί τα windows 7 64 bit καταναλώνουν πολύ περισσότερη μνήμη από ότι τα 32 για τα ίδια πράγματα. Άρα δώρο άδωρο.

Βασικά από όσο κατάλαβα τα 64 εκμεταλεύονται την αρχιτεκτονική 64bit των επεξεργαστών που την υποστηρίζουν. Η κλασική αρχιτεκτονική x86 είναι των 32 bits. Βασικά με την x64 αρχιτεκτονικής κάθε κύκλος μια εντολής μπορεί να έχει 64 bit {0 , 1} άρα σε εναν κύκλο μπορεί να εκτελέσει περισσότερα πράγματα. Βέβαια αν εγκαταστήσεις την έκδοση 32 bits του λειτουργικού σε σύστημα με χ64 επεξεργαστή δεν μπορεί να αξιοποιηθούν αυτές οι δυνατότητες. Υποτίθεται ότι συμφέρει (για εμένα ούτε πάλι δεν συμφέρει) για άτομα που χρησιμοποιούν ένα πρόγραμμα που βγαίνει σε 64 bit. Aν και η microsoft στο link του koum δηλώνει ότι τα 64 bit windows μπορούν να τρέχουν 32 bit εφαρμογές δεν ισχύει σε όλες τις περιπτώσεις.....

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

-1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Το avatar του χρήστη JosefK
Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 361 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε στις 02:52, 30-11-10:

#7
Αρχική Δημοσίευση από fockos
Ισχύει αυτό που λέει ο Morelo και ο Koum αλλά είναι παραπλανητικό γιατί τα windows 7 64 bit καταναλώνουν πολύ περισσότερη μνήμη από ότι τα 32 για τα ίδια πράγματα. Άρα δώρο άδωρο.
Δεν είναι παράλογο να καταναλώνουν περισσότερη μνήμη, αλλά το "δώρο άδωρο" είναι υπερβολή. Αν ήταν έτσι θα είχαμε μείνει στους επεξεργαστές των 8 bit.

Αρχική Δημοσίευση από fockos
Βασικά με την x64 αρχιτεκτονικής κάθε κύκλος μια εντολής μπορεί να έχει 64 bit {0 , 1} άρα σε εναν κύκλο μπορεί να εκτελέσει περισσότερα πράγματα.
Λάθος διατύπωση. Σε κάθε αρχιτεκτονική ένας κύκλος εντολής αποτελείται από μία εντολή, άρα δεν είναι ότι σε 64 bit εκτελεί περισσότερα πράγματα. Απλώς χρησιμοποιεί μεγαλύτερους καταχωρητές, άρα επεξεργάζεται δεδομένα μεγαλύτερου μεγέθους. Επιπλέον, μία εντολή που εκτελείται σε ένα κύκλο συνήθως δεν είναι αποθηκευμένη σε μία μόνο θέση μνήμης (64 bit, 32 bit ή όσο είναι τέλος πάντων μία θέση μνήμης ανάλογα με την αρχιτεκτονική του συστήματος) αλλά σε περισσότερες θέσεις μνήμης, ανάλογα τι είδους εντολή είναι.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

2 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

fockos

Επιφανές Μέλος

Το avatar του χρήστη fockos
Ο fockos αυτή τη στιγμή είναι συνδεδεμένος. Επαγγέλεται Γιατρός και μας γράφει απο Ζάκυνθος (Ζάκυνθος). Έχει γράψει 10,375 μηνύματα.

O fockos έγραψε στις 12:59, 01-12-10:

#8
Βρήκα αυτό το κείμενο που εξηγεί καποια πράγματα και πραγματοποιει κάποιες δοκιμές. Επιπλέον κατάλαβα γιατί δεν μου τρέχανε ορισμένες εφαρμογές στα 64 bits. Προφανώς γιατι παράλληλα εγκαθιστούσαν μη συμβατούς drivers.
Αρχική Δημοσίευση από JosefK
Δεν είναι παράλογο να καταναλώνουν περισσότερη μνήμη, αλλά το "δώρο άδωρο" είναι υπερβολή. Αν ήταν έτσι θα είχαμε μείνει στους επεξεργαστές των 8 bit.
To δώρο άδωρο το είπα για την τωρινή κατάσταση που τα laptop δεν έχουν τόση πολύ μνήμη. Το μέλλον είναι 64bits λόγω μνήμης. Αλλά αν κάποιος έχε π.χ. 2 gb μνήμη και βάλει 64 bit τότε θα ξεμαίνει αμέσως από μνήμη καθώς τα 64 bit καταναλώνουν πολύ περισσότερο μνήμη και το σύστημα θα σέρνεται αν ξεπεράσει τα 2 gb. Για μένα όποιος έχει μέχρι 4gb ram δεν αξίζει να βάλεις windows 7 64 bits. Προφανώς αν έχεις 16 gb ram τα 64 bit είναι μονόδρομος.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Το avatar του χρήστη JosefK
Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 361 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε στις 22:00, 01-12-10:

#9
Αρχική Δημοσίευση από fockos
Βρήκα αυτό το κείμενο που εξηγεί καποια πράγματα και πραγματοποιει κάποιες δοκιμές. Επιπλέον κατάλαβα γιατί δεν μου τρέχανε ορισμένες εφαρμογές στα 64 bits. Προφανώς γιατι παράλληλα εγκαθιστούσαν μη συμβατούς drivers.

To δώρο άδωρο το είπα για την τωρινή κατάσταση που τα laptop δεν έχουν τόση πολύ μνήμη. Το μέλλον είναι 64bits λόγω μνήμης. Αλλά αν κάποιος έχε π.χ. 2 gb μνήμη και βάλει 64 bit τότε θα ξεμαίνει αμέσως από μνήμη καθώς τα 64 bit καταναλώνουν πολύ περισσότερο μνήμη και το σύστημα θα σέρνεται αν ξεπεράσει τα 2 gb. Για μένα όποιος έχει μέχρι 4gb ram δεν αξίζει να βάλεις windows 7 64 bits. Προφανώς αν έχεις 16 gb ram τα 64 bit είναι μονόδρομος.
Σωστός. Συμφωνώ.

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

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


όχι σε κύκλο εντολής δηλαδή. τέλος πάντων, λεπτομέρειες...

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

iJohnnyCash (Panayotis Yannakas)

Founder

Το avatar του χρήστη iJohnnyCash
Ο Panayotis Yannakas αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Επιχειρηματίας . Έχει γράψει 16,004 μηνύματα.

O iJohnnyCash έγραψε στις 19:05, 04-12-10:

#10
Ο μοναδικός λόγος που κάποιος 32bit είναι καθαρά αν το επάγγελμα του απαιτεί προγράμματα που δεν υποστηρίζουν ακόμη x64 αρχιτεκτονική. Για παράδειγμα, πολλές εξωτερικές κάρτες ήχου δεν έχουν 64bit drivers.

Κατά τα άλλα ο μέσος χρήστης, ακόμη και αν έχει κάτι που δεν υποστηρίζει 32bit (π.χ. antivirus), υπάρχουν σίγουρα πολλές εναλλακτικές λύσεις. Όπως και να το κάνουμε, η x86 αρχιτεκτονική είναι ξεπερασμένη (Για παράδειγμα αν χρησιμοποιείτε πολύ excel, τότε ξεχάστε το 32bit λειτουργικό, εκτός ότι στο excel υπάρχουν διαφορές στις επιδόσεις, το 32bit office δεν υποστηρίζει αρχεία μεγαλύτερα των 4GB).

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Επιφανές Μέλος

Το avatar του χρήστη Γιώργος
Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,986 μηνύματα.

O Γιώργος Je veux aller au bout de mes fantasmes έγραψε στις 19:28, 04-12-10:

#11
Για να ξεκαθαρίσουμε λίγο το θέμα με το ότι τα 64bit συστήματα καταναλώνουν περισσότερη μνήμη.

Αρχική Δημοσίευση από fockos
Ισχύει αυτό που λέει ο Morelo και ο Koum αλλά είναι παραπλανητικό γιατί τα windows 7 64 bit καταναλώνουν πολύ περισσότερη μνήμη από ότι τα 32 για τα ίδια πράγματα. Άρα δώρο άδωρο.
Εάν καταναλώνουν "πολύ περισσότερη μνήμη" δεν είναι ότι φταίει το hardware, αλλά είτε το λειτουργικό που το διαχειρίζεται (Windows) είτε το πρόγραμμα που τρέχει.

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

  • Για να δώσω ένα απλό παράδειγμα, μία πληροφορία μπορεί να είναι πολύ μεγάλη, οπότε σε ένα 32bit σύστημα να πρέπει να "σπάσει" σε δύο blocks των 32bit. Εάν δεν υπάρχει πρόνοια για 64bit συστήματα, πάλι στα 64bits θα χρησιμοποιηθούν 2 blocks των 32bit αντί για 1 των 64bit.
  • Λόγω όμως του ότι σε ένα 64bit σύστημα δεν υπάρχουν 32bit blocks αλλά 64 bit blocks, τότε χρησιμοποιούνται 2 x 64bit blocks, τα οποία έχουν μέχρι τη μέση χρήσιμη πληροφορία και έπειτα μηδενικά (λέγεται padding). Έτσι λοιπόν χρησιμοποιείται διπλάσια μνήμη.

Αρκετά όμως freeware και open-source προγράμματα έχουν λάβει υπόψιν τέτοιες περιπτώσεις, οπότε αντί να χρησιμοποιήσουν 2 x 32bit blocks, χρησιμοποιούν 1 x 64bit. Έτσι λοιπόν όχι μόνο δεν αυξάνεται η μνήμη που χρησιμοποιείται, αλλά πολλές φορές μπορεί να μειωθεί κιόλας, γιατί ένα πρόγραμμα μπορεί να εκμεταλλευτεί το γεγονός ότι ένας 64bit επεξεραστής έχει αυξημένο αριθμό καταχωρητών (registers - είναι κάποιου είδους μνήμης που είναι ακριβώς δίπλα στον επεξεργαστή και είναι η γρηγορότερη μνήμη στον Η/Υ σας), με αποτέλεσμα μία πληροφορία να μην χρειαστεί καν να μείνει στην μνήμη, εφόσον υπάρχει στους registers του επεξεργαστή.



Μην ρίχνουμε λοιπόν το φταίξιμο στα 64bit συστήματα, ενώ στην πραγματικότητα φταίει το λειτουργικό ή το πρόγραμμα που είναι ηλίθιο και δεν κάνει καλή διαχείριση πόρων.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

1 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

iJohnnyCash (Panayotis Yannakas)

Founder

Το avatar του χρήστη iJohnnyCash
Ο Panayotis Yannakas αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Επιχειρηματίας . Έχει γράψει 16,004 μηνύματα.

O iJohnnyCash έγραψε στις 20:38, 04-12-10:

#12
Γιώργο, γιατί κάποια πρόγραμμα αρνούνται να είναι 64bit; Τόσο δύσκολο είναι; Στην ουσία δεν πρέπει να αλλάξουν μόνο το κομμάτι του κώδικα που διαχειρίζεται την ram; Λογικά σε μεγάλο project αυτό μπορεί να είναι απλά μια κλάση όποτε μιλάμε για ακόμη λιγότερο χρόνο.

Ξέρω ότι παρουσιάσω το θέμα πολύ απλοϊκά, ωστόσο δεν προγραμματιστής

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Επιφανές Μέλος

Το avatar του χρήστη Γιώργος
Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,986 μηνύματα.

O Γιώργος Je veux aller au bout de mes fantasmes έγραψε στις 21:01, 04-12-10:

#13
Αρχική Δημοσίευση από Johnny Cash
Γιώργο, γιατί κάποια πρόγραμμα αρνούνται να είναι 64bit; Τόσο δύσκολο είναι; Στην ουσία δεν πρέπει να αλλάξουν μόνο το κομμάτι του κώδικα που διαχειρίζεται την ram; Λογικά σε μεγάλο project αυτό μπορεί να είναι απλά μια κλάση όποτε μιλάμε για ακόμη λιγότερο χρόνο.

Ξέρω ότι παρουσιάσω το θέμα πολύ απλοϊκά, ωστόσο δεν προγραμματιστής
Ούτε εγώ είμαι προγραμματιστής εγώ αγαπώ το hardware.

Κοίτα, πιστεύω ότι οφείλεται στο ότι ένα κλειστό πρόγραμμα έρχεται για να "κάτσει" σε 32-bit επεξεργαστή. Τι θέλω να πω; Ας το πάρουμε απ' την αρχή. Θα προσπαθήσω κι εγώ να παρουσιάσω το θέμα όσο πιο απλοϊκά γίνεται, επιχειρώντας μια αναλογία με το μαγείρεμα ενός γλυκού (!)
  1. Ο προγραμματιστής γράφει τον πηγαίο κώδικα ενός προγράμματος. Φανταστείτε σαν να γράφετε εσείς την συνταγή ενός γλυκού.
  2. Έπειτα, το πρόγραμμα αυτό μεταγλωττίζεται, δηλαδή δίνει τον κώδικα σε ένα δεύτερο πρόγραμμα, το οποίο μετατρέπει τον κώδικα σε γλώσσα μηχανής, που την καταλαβαίνει ο υπολογιστής και όχι ο άνθρωπος. Αντίστοιχα, με το γλυκό, είναι σαν να βάζεις κάτω την συνταγή και να φτιάχνεις το γλυκό.
  3. Το τελικό πρόγραμμα είναι αυτό που δίνεται, επί πληρωμή, στους χρήστες. Το γλυκό δηλαδή.

Ποιο είναι το πρόβλημα;
  • Κατά το φτιάξιμο του γλυκού το έχεις φτιάξει με τέτοιο τρόπο ώστε να αντέχει και εκτός ψυγείου, ωστόσο δεν είναι το ίδιο νόστιμο. Αυτό το κάνεις γιατί υπάρχει κόσμος που μπορεί να μην έχει ψυγείο.
  • Θα μπορούσες όμως να το έφτιαχνες με τέτοιο τρόπο ώστε να γίνει πιο νόστιμο, αλλά στην περίπτωση αυτή χρειάζεται ψυγείο.
Με το πρόγραμμα είναι το ίδιο πράγμα. Εφόσον η εταιρία σου δίνει ένα κλειστό πρόγραμμα, το πρόγραμμα αυτό έχει μεταγλωττιστεί για να δουλεύει σε 32-bit συστήματα. Έτσι λοιπόν σε ένα 64-bit σύστημα θα υπολειτουργεί.

Γιατί το πρόβλημα αυτό δεν υπάρχει με τα open-source προγράμματα; Γιατί εκεί παίρνεις τον κώδικα και τον μεταγλωττίζεις στο μηχάνημά σου, οπότε το εκτελέσιμο πρόγραμμα που παράγεται μπορεί να παίξει στο 64-bit μηχάνημά σου. Είναι σαν να δίνεις την ίδια την συνταγή στον κόσμο, και να φτιάχνει καθένας το γλυκό ανάλογα με τις ανάγκες του.

-----

Θα μου πεις τώρα, γιατί αρκετές εταιρίες λοιπόν δεν ξαναγράφουν τον κώδικά τους βγάζοντας και 64-bit έκδοση, όπως φερ' ειπείν η Mathworks που έχει βγάλει Matlab και για 32-bit και για 64-bit;

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

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

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

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

iJohnnyCash (Panayotis Yannakas)

Founder

Το avatar του χρήστη iJohnnyCash
Ο Panayotis Yannakas αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Επιχειρηματίας . Έχει γράψει 16,004 μηνύματα.

O iJohnnyCash έγραψε στις 21:40, 04-12-10:

#14
Αφού εσύ αγαπάς το hardware, σου έχω ακόμη μια ερώτηση.

Ένας αργός επεξεργαστής δεν θα ήταν καλύτερο να είναι 64bit και όχι 32bit, αφού στην πρώτη περίπτωση θα μπορούσε να διαχειρίζεται περισσότερα δεδομένα σε έναν κύκλο; (Στο μυαλό μου έχω τους Intel Atom)

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Επιφανές Μέλος

Το avatar του χρήστη Γιώργος
Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,986 μηνύματα.

O Γιώργος Je veux aller au bout de mes fantasmes έγραψε στις 23:31, 04-12-10:

#15
Αρχική Δημοσίευση από Johnny Cash
Αφού εσύ αγαπάς το hardware, σου έχω ακόμη μια ερώτηση.

Ένας αργός επεξεργαστής δεν θα ήταν καλύτερο να είναι 64bit και όχι 32bit, αφού στην πρώτη περίπτωση θα μπορούσε να διαχειρίζεται περισσότερα δεδομένα σε έναν κύκλο; (Στο μυαλό μου έχω τους Intel Atom)
Για να απαντήσω, όρισέ μου το "αργός", το "κύκλος" και ειδικά το "καλύτερο".
  • Αργός ως προς τι; Ως προς τον χρόνο που χρειάζεται να εκτελεστεί μία εντολή; (Κύκλος Εντολής)
  • Τι κύκλο; Κύκλος εντολής ή μηχανής;
  • Καλύτερο: με βάση ποιο κριτήριο; Ειδικά αυτό όρισέ μου.
Πολύ χοντρικά:
  • Κύκλος μηχανής είναι ο χρόνος που μεσολαβεί μεταξύ δύο "χτυπημάτων" του ρολογιού της CPU. Πχ όταν λέμε CPU @ 2.00 GHz, τότε η συχνότητα του ρολογιού είναι 2 GHz, δηλαδή ο κύκλος μηχανής είναι 0.5 nsec.
  • Κύκλος εντολής είναι ο χρόνος που μεσολαβεί για την εκτέλεση μίας εντολής. Συνήθως στους μοντέρνους επεξεργαστές είναι κάποιο ακέραιο πολλαπλάσιο του κύκλου μηχανής, καθώς η ... διαδικασία ολοκλήρωσης μίας εντολής έχει "τεμαχιστεί" σε πολλά υπο-στάδια, τα οποία και διαρκούν έναν κύκλο μηχανής. Π.χ. ένα κύκλο για ανάγνωση εντολής, ένα για εκτέλεση πράξης, ένα για write-back του αποτελέσματος στους registers.

Πάντως κοίτα, εφόσον οι 64-bit επεξεργαστές μπορούν να χειριστούν πολύ μεγαλύτερο data-set, ενδέχεται κάποιες εντολές να χρειαστούν πολύ περισσότερο χρόνο για να εκτελεστούν, λ.χ. εντολές που αφορούν πράξεις κινητής υποδιαστολής. Οπότε θα πρέπει να μου πεις τι εννοείς με το "καλύτερο".

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Το avatar του χρήστη JosefK
Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 361 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε στις 03:51, 05-12-10:

#16
Αρχική Δημοσίευση από Γιώργος
Αρκετά όμως freeware και open-source προγράμματα έχουν λάβει υπόψιν τέτοιες περιπτώσεις, οπότε αντί να χρησιμοποιήσουν 2 x 32bit blocks, χρησιμοποιούν 1 x 64bit. Έτσι λοιπόν όχι μόνο δεν αυξάνεται η μνήμη που χρησιμοποιείται, αλλά πολλές φορές μπορεί να μειωθεί κιόλας, γιατί ένα πρόγραμμα μπορεί να εκμεταλλευτεί το γεγονός ότι ένας 64bit επεξεραστής έχει αυξημένο αριθμό καταχωρητών (registers - είναι κάποιου είδους μνήμης που είναι ακριβώς δίπλα στον επεξεργαστή και είναι η γρηγορότερη μνήμη στον Η/Υ σας), με αποτέλεσμα μία πληροφορία να μην χρειαστεί καν να μείνει στην μνήμη, εφόσον υπάρχει στους registers του επεξεργαστή.
Έχεις κάποια πηγή γι αυτό;
Κάθε πρόγραμμα φορτώνεται ολόκληρο στην κύρια μνήμη, όχι στους καταχωρητές του επεξεργαστή. Οι καταχωρητές χρησιμοποιούνται ώστε να γίνονται εκεί οι διάφορες αριθμητικές και λογικές πράξεις. Αυτό που λες για πληροφορία που υπάρχει στους registers και δε χρειάζεται να μείνει στη μνήμη δε το πολυκαταλαβαίνω.

Ένας απλός λόγος που σε αρχιτεκτονική περισσότερων bit το ίδιο λογισμικό μπορεί να απαιτεί περισσότερη μνήμη είναι το γεγονός ότι οι μεταβλητές τύπου pointer καταλαμβάνουν περισσότερα bytes στη μνήμη.

Αρχική Δημοσίευση από Γιώργος

Θα μου πεις τώρα, γιατί αρκετές εταιρίες λοιπόν δεν ξαναγράφουν τον κώδικά τους βγάζοντας και 64-bit έκδοση, όπως φερ' ειπείν η Mathworks που έχει βγάλει Matlab και για 32-bit και για 64-bit;

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


Αρχική Δημοσίευση από Γιώργος
  • Κύκλος μηχανής είναι ο χρόνος που μεσολαβεί μεταξύ δύο "χτυπημάτων" του ρολογιού της CPU. Πχ όταν λέμε CPU @ 2.00 GHz, τότε η συχνότητα του ρολογιού είναι 2 GHz, δηλαδή ο κύκλος μηχανής είναι 0.5 nsec.
  • Κύκλος εντολής είναι ο χρόνος που μεσολαβεί για την εκτέλεση μίας εντολής. Συνήθως στους μοντέρνους επεξεργαστές είναι κάποιο ακέραιο πολλαπλάσιο του κύκλου μηχανής, καθώς η ... διαδικασία ολοκλήρωσης μίας εντολής έχει "τεμαχιστεί" σε πολλά υπο-στάδια, τα οποία και διαρκούν έναν κύκλο μηχανής. Π.χ. ένα κύκλο για ανάγνωση εντολής, ένα για εκτέλεση πράξης, ένα για write-back του αποτελέσματος στους registers.
Αν και δεν έχει και τόσο σημασία να παίζουμε με τους ορισμούς, το χρόνο μεταξύ δύο χτυπημάτων του ρολογιού της CPU δε το έχω δει πουθενά να αναφέρεται ως "κύκλος μηχανής". Παντού το αναφέρουν ως "κύκλο ρολογιού".
Για τον κύκλο μηχανής έχω βρει διαφορετικούς ορισμούς. Μερικοί ταυτίζουν τον όρο "κύκλο μηχανής" με τον όρο "κύκλο εντολής" ενώ μερικοί άλλοι ως κύκλο μηχανής ορίζουν το καθένα από τα επιμέρους στάδια που λες ότι περιλαμβάνονται σε ένα κύκλο εντολής. Αν δεχτούμε ως σωστό το 2ο ορισμό, και πάλι δεν είναι απόλυτο ότι καθένα από τα στάδια αυτά απαιτεί μόνο ένα κύκλο ρολογιού.

Αρχική Δημοσίευση από Γιώργος
Πάντως κοίτα, εφόσον οι 64-bit επεξεργαστές μπορούν να χειριστούν πολύ μεγαλύτερο data-set, ενδέχεται κάποιες εντολές να χρειαστούν πολύ περισσότερο χρόνο για να εκτελεστούν, λ.χ. εντολές που αφορούν πράξεις κινητής υποδιαστολής. Οπότε θα πρέπει να μου πεις τι εννοείς με το "καλύτερο".
Πηγή και γι αυτό υπάρχει;;

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

iJohnnyCash (Panayotis Yannakas)

Founder

Το avatar του χρήστη iJohnnyCash
Ο Panayotis Yannakas αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Επιχειρηματίας . Έχει γράψει 16,004 μηνύματα.

O iJohnnyCash έγραψε στις 19:50, 05-12-10:

#17
Αρχική Δημοσίευση από Γιώργος
Πολύ περιληπτικά, σκεφτόμουν ότι οι Intel Atom θα ήταν καλύτεροι (πιο γρήγοροι) αν ήταν 64bit επειδή μπορούν να χειριστούν σε μια στιγμή μεγαλύτερο όγκο από bits.

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

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

edited Τελευταία επεξεργασία από το χρήστη Γιώργος : 05-12-10 στις 20:22. Αιτία: Spoiler tag added για ευκολία στο scrolling.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

koum

Διάσημο Μέλος

Το avatar του χρήστη koum
Ο koum αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Συνταξιούχος . Έχει γράψει 875 μηνύματα.

O koum έγραψε στις 20:14, 05-12-10:

#18
Νομίζω πως ψάχνετε κάτι τέτοιο:

"The main disadvantage of 64-bit architectures is that relative to 32-bit architectures, the same data occupies more space in memory (due to swollen pointers and possibly other types and alignment padding). This increases the memory requirements of a given process and can have implications for efficient processor cache utilization. Maintaining a partial 32-bit model is one way to handle this and is in general reasonably effective. For example, the z/OS operating system takes this approach currently, requiring program code to reside in 31-bit address spaces (the high order bit is not used in address calculation on the underlying hardware platform) while data objects can optionally reside in 64-bit regions.
Currently, most proprietary x86 software is compiled into 32-bit code, with less being also compiled into 64-bit code (although the trend is rapidly equalizing[citation needed]), so much does not take advantage of the larger 64-bit address space or wider 64-bit registers and data paths on x86 processors, or the additional registers in 64-bit mode. However, users of most RISC platforms, and users of free or open source operating systems (where the source code is available for recompiling with a 64-bit compiler) have been able to use exclusive 64-bit computing environments for years due to the likelihood of the existence of someone willing to compile the code thusly. Not all such applications require a large address space nor manipulate 64-bit data items, so they wouldn't benefit from the larger address space or wider registers and data paths. The main advantage to 64-bit versions of such applications is the ability to access more registers in the x86-64 architecture.
"

Πηγή

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

Γιώργος

Επιφανές Μέλος

Το avatar του χρήστη Γιώργος
Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 8,986 μηνύματα.

O Γιώργος Je veux aller au bout de mes fantasmes έγραψε στις 20:29, 05-12-10:

#19
Προειδοποιώ ότι το παρακάτω post εμβαθύνει πολύ στις περιοχές του computer architecture.

Αρχική Δημοσίευση από JosefK
Κάθε πρόγραμμα φορτώνεται ολόκληρο στην κύρια μνήμη, όχι στους καταχωρητές του επεξεργαστή. Οι καταχωρητές χρησιμοποιούνται ώστε να γίνονται εκεί οι διάφορες αριθμητικές και λογικές πράξεις. Αυτό που λες για πληροφορία που υπάρχει στους registers και δε χρειάζεται να μείνει στη μνήμη δε το πολυκαταλαβαίνω.
Κατ' αρχάς μία βαριά εφαρμογή όπως το Matlab δεν μπορεί να φορτωθεί εξ' ολοκλήρου στη μνήμη, αφενός γιατί η μνήμη σου πάει 2-4-6-8GB και αφετέρου γιατί υπάρχουν κι άλλα processes που τρέχουν και χρειάζονται και αυτά RAM.

Έπειτα, εξαρτάται καθαρά από την υλοποίηση το αν χρειάζεται μία πληροφορία να μείνει ή όχι στην RAM. Γιατί πολύ απλά ένα πρόγραμμα μπορεί να έχει δεδομένα και στην cache του επεξεργαστή και αν έχεις μία πολιτική write-back τότε σε περίπτωση που ανανεώσεις τα δεδομένα σου στην cache, δεν τα ανανεώνεις και στην RAM. Επομένως, εάν πας στην RAM και κοιτάξεις την κατάσταση του προγράμματος, μπορεί να μην είναι η πραγματική του εικόνα, καθώς μέσα στον επεξεργαστή έχεις ανανεωμένες τιμές.

Για το λόγο αυτό, μπορεί να επιλέξει ο manufacturer αυτά τα δεδομένα να τα πετάξει στο swap φερ' ειπείν και να φέρει σε εκείνες τις θέσεις κάποιες άλλες χρήσιμες πληροφορίες.

Τις caches τις αναφέρω γιατί είναι το αμέσως χαμηλότερο επίπεδο που θα πάει κάποια πληροφορία άμα φύγει απ' τους registers. Εάν όλα σου τα δεδομένα είναι στις caches, η πρόσβαση RAM δεν θα σου χρειαστεί. Αντίστοιχα, εάν έχεις περισσότερους registers (κάτι που ισχύει στην x64 αρχιτεκτονική -> πηγή) ενδέχεται να χρειαστείς λιγότερες προσβάσεις στην cache -> άρα και στην RAM.


Αρχική Δημοσίευση από JosefK
Ένας απλός λόγος που σε αρχιτεκτονική περισσότερων bit το ίδιο λογισμικό μπορεί να απαιτεί περισσότερη μνήμη είναι το γεγονός ότι οι μεταβλητές τύπου pointer καταλαμβάνουν περισσότερα bytes στη μνήμη.
Το ανέφερα παραπάνω, είναι το padding.


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

Δεν έχω πρόχειρο τώρα ένα παράδειγμα, αλλά μπορώ να σου δώσω κώδικα που σε 2-way or 4-way set-associative caches θα δουλεύει εξαιρετικά, αλλά σε directed mapped θα έχεις conflicts, δηλαδή δύο memory blocks θα γίνονται mapped στην ίδια cache line.

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


Αρχική Δημοσίευση από JosefK
Για τον κύκλο μηχανής έχω βρει διαφορετικούς ορισμούς. Μερικοί ταυτίζουν τον όρο "κύκλο μηχανής" με τον όρο "κύκλο εντολής" ενώ μερικοί άλλοι ως κύκλο μηχανής ορίζουν το καθένα από τα επιμέρους στάδια που λες ότι περιλαμβάνονται σε ένα κύκλο εντολής. Αν δεχτούμε ως σωστό το 2ο ορισμό, και πάλι δεν είναι απόλυτο ότι καθένα από τα στάδια αυτά απαιτεί μόνο ένα κύκλο ρολογιού.
Δεν είπα ότι ντε και καλά το κάθε στάδιο για την ολοκλήρωση μίας εντολής διαρκεί ντε και καλά έναν κύκλο. Σε out-of-order επεξεργαστές ειδικά, δηλαδή επεξεργαστές που ολοκληρώνουν τις εντολές εκτός σειράς, μπορεί να δεις εντολές κινητής υποδιαστολής να θέλουν και 5-20 κύκλους παραπάνω να ολοκληρωθούν, σε σχέση με τις αντίστοιχες πράξεις ακεραίων. Αρκετά τέτοια παραδείγματα μπορείς να βρεις σε αυτό το βιβλίο.


Αρχική Δημοσίευση από JosefK
Πηγή και γι αυτό υπάρχει;;
Θες να κάνεις πολλαπλασιασμό δύο 32-bit αριθμών και δύο 64-bit αριθμών. Εάν θες να διατηρήσεις την κατανάλωση ενέργειας (power dissipation) στα ίδια επίπεδα, αναγκαστικά η δεύτερη πράξη θα διαρκέσει περισσότερο -> Βαθαίνεις περισσότερο το pipeline σου [ή ρίχνεις το ρολόι σου] -> Μία εντολή χρειάζεται περισσότερο χρόνο ολοκλήρωσης. Πηγή δεν έχει εδώ.

Αυτό όμως δεν σημαίνει αναγκαστικά ότι και ο συνολικός χρόνος αυξάνεται. Επειδή χειρίζεσαι μεγαλύτερα data-sets ανά εντολή, θα χρειαστείς λιγότερες εντολές για την επεξεργασία ενός μεγάλου set δεδομένων.

----

@ exposed_bone / Johnny Cash : με βάση αυτό που είπα τώρα, ναι μπορεί να αποβεί ένα 64-bit σύστημα πιο "γρήγορο", γιατί μεγαλύτερο data-set -> μικρότερος αριθμός εντολών (loop iterations). Αλλά παίζουν και άλλοι παράγοντες, όπως:
  • Σε επίπεδο επεξεργαστή, ενδέχεται να μεγαλώσει λίγο η διάρκεια ολοκλήρωσης μιας εντολής, όπως προανέφερα, αλλά αίσθησή μου είναι ότι δεν θα επηρεάσει τόσο πολύ, λόγω τεχνικών διάδοσης κρατουμένων, σύμφωνα με τις οποίες κατά την εκτέλεση μίας πρόσθεσης κάνεις πρόβλεψη των κρατουμένων που θα χρειαστείς, επομένως "παραλληλοποιείς" κάποια τμήματά της και δεν την εκτελείς bit-προς-bit, όπως θα έκανες με το χέρι.
  • Το σοβαρότερο issue είναι το εξής: Μήπως το μεγαλύτερο data-set θα είναι πολύ μεγάλο για τις caches σου; Σε αυτήν την περίπτωση μπορεί να εκτοπίζεις συνέχεια δεδομένα και εν τέλει η εκτέλεση να γίνει πιο αργή.

Δεν είναι δηλαδή ένα yes/no ερώτημα, υπάρχουν tradeoffs που εξαρτώνται από διάφορους παράγοντες.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

2 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση

JosefK (Μιχαήλ)

Δραστήριο Μέλος

Το avatar του χρήστη JosefK
Ο Μιχαήλ αυτή τη στιγμή δεν είναι συνδεδεμένος Επαγγέλεται Tatoo artist . Έχει γράψει 361 μηνύματα.

O JosefK Μην ακούς τι λέω, φοβάμαι έγραψε στις 02:01, 06-12-10:

#20
Αρχική Δημοσίευση από Γιώργος
Κατ' αρχάς μία βαριά εφαρμογή όπως το Matlab δεν μπορεί να φορτωθεί εξ' ολοκλήρου στη μνήμη, αφενός γιατί η μνήμη σου πάει 2-4-6-8GB και αφετέρου γιατί υπάρχουν κι άλλα processes που τρέχουν και χρειάζονται και αυτά RAM.

Έπειτα, εξαρτάται καθαρά από την υλοποίηση το αν χρειάζεται μία πληροφορία να μείνει ή όχι στην RAM. Γιατί πολύ απλά ένα πρόγραμμα μπορεί να έχει δεδομένα και στην cache του επεξεργαστή και αν έχεις μία πολιτική write-back τότε σε περίπτωση που ανανεώσεις τα δεδομένα σου στην cache, δεν τα ανανεώνεις και στην RAM. Επομένως, εάν πας στην RAM και κοιτάξεις την κατάσταση του προγράμματος, μπορεί να μην είναι η πραγματική του εικόνα, καθώς μέσα στον επεξεργαστή έχεις ανανεωμένες τιμές.

Για το λόγο αυτό, μπορεί να επιλέξει ο manufacturer αυτά τα δεδομένα να τα πετάξει στο swap φερ' ειπείν και να φέρει σε εκείνες τις θέσεις κάποιες άλλες χρήσιμες πληροφορίες.

Τις caches τις αναφέρω γιατί είναι το αμέσως χαμηλότερο επίπεδο που θα πάει κάποια πληροφορία άμα φύγει απ' τους registers. Εάν όλα σου τα δεδομένα είναι στις caches, η πρόσβαση RAM δεν θα σου χρειαστεί. Αντίστοιχα, εάν έχεις περισσότερους registers (κάτι που ισχύει στην x64 αρχιτεκτονική -> πηγή) ενδέχεται να χρειαστείς λιγότερες προσβάσεις στην cache -> άρα και στην RAM.
Γιώργο γράφεις πολλά πράγματα. Για να κάνουμε μια ανακεφαλαίωση, όλος ο συλλογισμός σου ώστε να αποδείξεις ότι μπορεί σε x64 αρχιτεκτονική ένα πρόγραμμα να καταλαμβάνει λιγότερη μνήμη είναι νομίζω η τελευταία πρόταση : "Αντίστοιχα, εάν έχεις περισσότερους registers (κάτι που ισχύει στην x64 αρχιτεκτονική -> πηγή) ενδέχεται να χρειαστείς λιγότερες προσβάσεις στην cache -> άρα και στην RAM."

Θεωρητικά έχει κάποια λογική, αλλά πρακτικά νομίζω δεν έχει καμία απολύτως αξία. Πόσους registers έχει η CPU;;;
Εντελώς αμελητέο πλήθος σε σχέση με το μέθεγος της κανονικής μνήμης. Ακόμα κι αν οι compilers φτιάχνουν κώδικα μηχανής που να αξιοποιεί στο μέγιστο τους registers αυτούς, και πάλι η μνήμη που κερδίζεται λογικά δεν καλύπτει το μέγεθος της επιπλεόν μνήμης που χρησιμοποιεί η 64bit αρχιτεκτονική για τους λόγους που έχουμε αναφέρει νωρίτερα. Κι αν πάλι κάποιο πρόγραμμα για το λόγο αυτό μπορεί σε 64bit να καταλαμβάνει λιγότερη RAM, τότε σίγουρα θα πρόκειται για πρόγραμμα που ούτως ή άλλως καταλαμβάνει πολύ λίγη RAM.

Αν επιτρέπεται, όλος αυτός ο συλλογισμός για το πως σε 64bit μπορεί να μειωθεί η χρήση της RAM είναι κάτι που έχεις διαβάσει/ακούσει κάπου ή είναι δικές σου σκέψεις;

Για τα υπόλοιπα που γράφεις με μία γρήγορη ανάγνωση που τους έκανα δε βρίσκω κάτι που να διαφωνώ.

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

edit : Ξαναρίχνω μία ματιά στα τελευταία μηνύματά σου. Στο ένα γράφεις
"Αρκετά όμως freeware και open-source προγράμματα έχουν λάβει υπόψιν τέτοιες περιπτώσεις, οπότε αντί να χρησιμοποιήσουν 2 x 32bit blocks, χρησιμοποιούν 1 x 64bit. Έτσι λοιπόν όχι μόνο δεν αυξάνεται η μνήμη που χρησιμοποιείται, αλλά πολλές φορές μπορεί να μειωθεί κιόλας"

ενώ στο τελευταίο γράφεις :

"ενδέχεται να χρειαστείς λιγότερες προσβάσεις στην cache -> άρα και στην RAM."

Δηλαδή άλλο είναι αυτό που γράφεις στο 1ο μήνυμα και άλλο αποδεικνύεις στο 2ο. Σίγουρα η αποδοτική χρήση των registers και της cache μειώνουν την πρόσβαση που απαιτείται στη RAM (αυξάνοντας έτσι την ταχύτητα), αλλά δε μειώνουν τη "μνήμη που χρησιμοποιείται" (δηλαδή τη μνήμη RAM που είναι κατηλλημένη). Αν κάνω λάθος διόρθωσέ με.

Σημείωση: Το μήνυμα αυτό γράφτηκε πάνω από 7 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

edited Τελευταία επεξεργασία από το χρήστη JosefK : 06-12-10 στις 02:52.
0 Δεν μπορείτε να αξιολογήσετε αρνητικά το μήνυμα αυτόΔεν μπορείτε να αξιολογήσετε θετικά το μήνυμα αυτό
Παράθεση
Απάντηση στο θέμα

Χρήστες

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα.
     
  • (View-All Tα παρακάτω 0 μέλη διάβασαν αυτό το θέμα τις τελευταίες 30 μέρες:
    Μέχρι και αυτή την στιγμή δεν έχει δει το θέμα κάποιο ορατό μέλος

Βρείτε παρόμοια

  • Παρόμοια Θέματα
    • Windows XP 64bit - Από iJohnnyCash
      Το θέμα έχει λάβει 15 απαντήσεις και βρίσκεται στην κατηγορία Microsoft.
      Το τελευταίο του μήνυμα δημοσιεύτηκε 02-02-14 στις 12:28.
    • pdf thumbnails σε Windows 64bit - Από iJohnnyCash
      Το θέμα έχει λάβει 0 απαντήσεις και βρίσκεται στην κατηγορία Microsoft.
      Το τελευταίο του μήνυμα δημοσιεύτηκε 27-04-10 στις 15:05.
  • Προηγούμενο Θέμα Επόμενο Θέμα

Μοιραστείτε το

...με ένα φίλο

...με πολλούς φίλους