Μεταξύ των λέξεων του λεξιλογίου των υπολογιστών, η λέξη “bit” είναι σίγουρα μία από τις πιο γνωστές. Ολόκληρες γενιές κονσολών βιντεοπαιχνιδιών και τα εικονογραφικά τους στυλ ορίζονται από τα bit. Όπως 8-bit, 16-bit και πολλές εφαρμογές προσφέρουν εκδόσεις 32-bit και 64-bit. Μπορείτε να δείτε ότι η ικανότητά μας να χειριζόμαστε bits έχει αυξηθεί με την πάροδο των ετών. Ωστόσο, ενώ τα τσιπ των 64 bit παρουσιάστηκαν για πρώτη φορά τη δεκαετία του ’90. Και έγιναν ευρέως διαδεδομένα τη δεκαετία του 2000, δεν έχουμε ακόμα επεξεργαστές 128 bit. Παρόλο που τα 128 μπορεί να φαίνονται σαν ένα φυσικό βήμα μετά τα 64, κάθε άλλο παρά αυτό είναι. “Γιατί δεν έχουμε 128-bit επεξεργαστές”.
Διαβάστε και το άρθρο μας: “Οδηγός αγοράς CPU: Τι να επιλέξω“
Τι είναι καν όμως το bit;
Τα θεμελιώδη δομικά στοιχεία
Πριν μιλήσουμε για το γιατί δεν υπάρχουν ΚΜΕ (Κεντρικές Μονάδες Επεξεργασίας) 128 bit. Πρέπει να μιλήσουμε για το τι είναι καν ένα bit. Ουσιαστικά, είναι μια μονάδα πληροφορίας στο Computing, η οποία αντιπροσωπεύει είτε ένα “0” είτε ένα “1”. Σχηματίζεται από τις λέξεις binary (δυαδικό) και digit (ψηφίο). Είναι η μικρότερη μονάδα στην πληροφορική και το σημείο εκκίνησης όλου του προγραμματισμού. Ένα bit μπορεί να οριστεί μόνο ως 1 ή 0 (εξ ου και το δυαδικό σύστημα). Αν και αυτοί οι αριθμοί μπορούν να ερμηνευτούν ως αληθείς ή ψευδείς, ενεργοποιημένοι ή απενεργοποιημένοι. Ακόμη και ως σύμβολο συν ή μείον.
Στο πλαίσιο της αρχιτεκτονικής της ΚΜΕ, το εύρος bit αναφέρεται συνήθως στο μέγεθος των διευθύνσεων μνήμης. Που μπορεί να χειριστεί η ΚΜΕ. Για παράδειγμα, μια CPU 64-bit μπορεί να απευθύνεται σε 16 exabytes μνήμης. Κάτι που ξεπερνά κατά πολύ τις ανάγκες ακόμη και των μεγαλύτερων υπερυπολογιστών σήμερα.
Με αυτό το δεδομένο, από μόνο του, ένα μεμονωμένο bit δεν είναι πολύ χρήσιμο. Αλλά ο συνδυασμός πολλαπλών bit μας επιτρέπει να αναπαραστήσουμε πιο σύνθετα δεδομένα. Όπως αριθμούς, γράμματα ή άλλους χαρακτήρες. Για παράδειγμα, στους υπολογισμούς 4-bit. Ο μεγαλύτερος ακέραιος που μπορείτε να αναπαραστήσετε είναι το 15 (από το 0 έως το 15). Όπως υπολογίζεται από τον τύπο 2^x – 1, όπου x είναι ο αριθμός των bits.
Στα βαθύτερα των υπολογισμών
Για τον υπολογισμό του μέγιστου ακέραιου αριθμού στον οποίο μπορεί να αναφερθεί μια CPU Ν-bit. Χρησιμοποιείται ένας αρκετά απλός τύπος 2^x, με x το πόσα bits υπάρχουν. Στον υπολογισμό 4-bit, ο μεγαλύτερος ακέραιος που μπορείτε να μετρήσετε είναι το 15. Το οποίο είναι ένα μικρότερο από το 16 που σας δίνει ο τύπος. Αλλά οι προγραμματιστές αρχίζουν να μετρούν από το 0 και όχι από το 1.
Εάν τα 4-bit μπορούν να αποθηκεύσουν μόνο 16 διαφορετικούς ακέραιους αριθμούς. Τότε μπορεί να φαίνεται ότι η μετάβαση στα 8- ή 32. Ή ακόμη και στα 128-bit δεν θα ήταν τόσο μεγάλη υπόθεση. Αλλά εδώ έχουμε να κάνουμε με εκθετικούς αριθμούς. Πράγμα που σημαίνει ότι τα πράγματα ξεκινούν αργά αλλά στη συνέχεια απογειώνονται πολύ γρήγορα. Για να το καταδείξετε αυτό, εδώ είναι ένας μικρός πίνακας. Δείχνει τους μεγαλύτερους ακέραιους αριθμούς που μπορείτε να υπολογίσετε σε δυαδικό σύστημα από 1- έως 128-bit.
Bit | Μέγιστος Ακέραιος |
---|---|
1-bit | 1 |
2-bit | 3 |
4-bit | 15 |
8-bit | 255 |
16-bit | 65,535 |
32-bit | 4,294,967,295 |
64-bit | 18,446,744,073,709,551,615 |
128-bit | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
Έτσι, τώρα μπορείτε πιθανώς να καταλάβετε. Ο διπλασιασμός της ποσότητας των bits έχει ως αποτέλεσμα να μπορείτε να χειριστείτε αριθμούς. Που δεν διπλασιάζονται απλώς σε μέγεθος, αλλά είναι τάξεις μεγέθους μεγαλύτεροι. Ωστόσο, παρόλο που ο υπολογισμός 128-bit θα μας επέτρεπε να δουλέψουμε με πολύ μεγαλύτερους αριθμούς. Από ό,τι μπορεί να κάνει ο υπολογισμός 64-bit, ακόμα δεν τον χρησιμοποιούμε.
Όσο για το γιατί αυτό το μήκος ακεραίου είναι σημαντικό. Δεν είναι τόσο το ίδιο το μήκος του ακεραίου που έχει σημασία, όσο ο χώρος διευθύνσεων. Αυτός είναι ο λόγος για τον οποίο οι μηχανές 32-bit μπορούν να διευθυνσιοδοτήσουν μόνο περίπου 4GB μνήμης. Ενώ μια μηχανή 64-bit είναι ουσιαστικά απεριόριστη προς το παρόν.
Πώς πήγαμε από το 1-bit στο 64-bit
Μεγάλος δρόμος για να φτάσουμε εδώ
Είναι αρκετά ξεκάθαρο γιατί οι επεξεργαστές πήγαν από το 1-bit στο να έχουν περισσότερα bits. Θέλαμε οι υπολογιστές μας να εκτελούν πιο σύνθετες εργασίες. Δεν μπορείς να κάνεις και πολλά πράγματα με ένα, δύο ή τέσσερα bit. Αλλά με το σήμα των 8 bit, οι παιχνιδομηχανές, οι κονσόλες παιχνιδιών και οι οικιακοί υπολογιστές έγιναν εφικτοί. Με την πάροδο του χρόνου, οι επεξεργαστές έγιναν φθηνότεροι στην παραγωγή και φυσικά μικρότεροι. Καθιστώντας ευκολότερη την αύξηση του αριθμού των bits που μπορούσε να χειριστεί μια CPU.
Ο εκθετικός χαρακτήρας των bits γίνεται πολύ γρήγορα αντιληπτός όταν συγκρίνουμε κονσόλες 16-bit. Όπως το SNES και το Sega Genesis με τους προκατόχους τους των 8-bit, κυρίως το NES. Το Super Mario Bros 3 ήταν ένα από τα πιο πολύπλοκα παιχνίδια του NES. Όσον αφορά τους μηχανισμούς και τα γραφικά. Και επισκιάστηκε πλήρως από το Super Mario World. Το οποίο κυκλοφόρησε μόλις δύο χρόνια αργότερα (αν και οι βελτιώσεις στην τεχνολογία των GPU αποτέλεσαν επίσης βασικό παράγοντα εδώ).
Ακόμα δεν έχουμε επεξεργαστές 128-bit, παρόλο που έχουν περάσει σχεδόν τρεις δεκαετίες από τότε που κυκλοφόρησαν στην αγορά τα πρώτα τσιπ 64-bit.
Δεν πρόκειται μόνο για τα βιντεοπαιχνίδια- τα πάντα βελτιώθηκαν με περισσότερα bits. Η μετάβαση από 256 πιθανές τιμές στα 8-bit σε 65.536 στα 16-bit σήμαινε ακριβέστερη παρακολούθηση του χρόνου. Απεικόνιση περισσότερων χρωμάτων και χειρισμό μεγαλύτερων αρχείων. Είτε χρησιμοποιούσατε τον Personal Computer της IBM, που τροφοδοτούνταν από την 8-bit CPU 8088 της Intel. Είτε κατασκευάζατε έναν διακομιστή για μια εταιρεία που ήταν έτοιμη να μπει στο διαδίκτυο, περισσότερα bits σήμαιναν καλύτερες επιδόσεις.
Έχουν γίνει ουσιαστικά βήματα;
Η βιομηχανία προχώρησε αρκετά γρήγορα από τα 16-bit στα 32-bit και, τέλος, στα 64-bit computing, τα οποία έγιναν mainstream στα τέλη της δεκαετίας του ’90 και στις αρχές της δεκαετίας του 2000. Ορισμένες από τις πιο σημαντικές πρώιμες CPU 64-bit βρίσκονταν στο Nintendo 64 και σε υπολογιστές που τροφοδοτούνταν από τις CPU Athlon 64 και Opteron της AMD. Από την πλευρά του λογισμικού, τα 64-bit άρχισαν να υποστηρίζονται από λειτουργικά συστήματα όπως το Linux και τα Windows στις αρχές της δεκαετίας του 2000. Ωστόσο, δεν ήταν επιτυχείς όλες οι προσπάθειες για 64-bit computing- οι επεξεργαστές διακομιστών Itanium της Intel αποτέλεσαν μια μεγάλη αποτυχία και είναι μερικοί από τους χειρότερους επεξεργαστές της εταιρείας.
Σήμερα, οι CPU 64-bit βρίσκονται παντού, από τα smartphones μέχρι τους υπολογιστές και τους διακομιστές. Τα τσιπ με λιγότερα bits εξακολουθούν να κατασκευάζονται και μπορεί να είναι επιθυμητά για συγκεκριμένες εφαρμογές που δεν χειρίζονται μεγαλύτερους αριθμούς, αλλά είναι αρκετά εξειδικευμένα. Παρόλα αυτά, δεν έχουμε ακόμα επεξεργαστές 128-bit, παρόλο που έχουν περάσει σχεδόν τρεις δεκαετίες από τότε που κυκλοφόρησαν στην αγορά τα πρώτα τσιπ 64-bit.
Οι υπολογιστές 128-bit αναζητούν να λύσουν ένα πρόβλημα
Πραγματικά δεν το χρειαζόμαστε
Μπορεί να νομίζετε ότι τα 128-bit δεν είναι βιώσιμα επειδή είναι δύσκολα ή αδύνατα, αλλά αυτό δεν ισχύει. Πολλά στοιχεία στους σύγχρονους επεξεργαστές, όπως οι δίαυλοι μνήμης και οι μονάδες SIMD, χρησιμοποιούν ήδη μεγέθη 128-bit ή μεγαλύτερα για συγκεκριμένες εργασίες. Για παράδειγμα, το σύνολο εντολών AVX-512 επιτρέπει την επεξεργασία δεδομένων πλάτους 512 bit. Αυτές οι εντολές SIMD (Single Instruction, Multiple Data) έχουν εξελιχθεί από 32-bit σε 64-bit, 128-bit, 256-bit και τώρα σε 512-bit τελεστές, αποδεικνύοντας σημαντική πρόοδο στις δυνατότητες παράλληλης επεξεργασίας.
Μια CPU 64-bit μπορεί να χειριστεί πάνω από 18 πεντάκις εκατομμύρια μοναδικούς αριθμούς, από 0 έως 18.446.744.073.709.551.615. Αντίθετα, μια 128-bit CPU θα μπορούσε να χειριστεί πάνω από 340 undecillion αριθμούς, και σας εγγυώμαι ότι δεν έχετε δει ποτέ στη ζωή σας την λέξη “undecillion”. Η εύρεση χρήσης για τον υπολογισμό αριθμών με τόσα πολλά μηδενικά είναι αρκετά δύσκολη, ακόμη και αν χρησιμοποιείτε ένα από τα bit για να υπογράψετε τον ακέραιο, ο οποίος θα είχε το εύρος του από αρνητικό 170 undecillion έως θετικό 170 undecillion.
Οι μόνες σημαντικές περιπτώσεις χρήσης για ακέραιους αριθμούς 128 bit είναι οι διευθύνσεις IPv6, τα καθολικά μοναδικά αναγνωριστικά (ή UUID) που χρησιμοποιούνται για τη δημιουργία μοναδικών αναγνωριστικών για τους χρήστες (το Minecraft είναι μια πολύ σημαντική περίπτωση χρήσης του UUID) και συστήματα αρχείων όπως το ZFS. Το θέμα είναι ότι οι επεξεργαστές 128-bit δεν είναι απαραίτητοι για να διεκπεραιώσουν αυτές τις εργασίες, οι οποίες μπορούν να υπάρχουν μια χαρά σε υλικό 64-bit. Τελικά, ο βασικός λόγος για τον οποίο δεν έχουμε επεξεργαστές 128-bit είναι ότι δεν υπάρχει ζήτηση για ένα οικοσύστημα υλικού-λογισμικού 128-bit. Η βιομηχανία θα μπορούσε σίγουρα να το δημιουργήσει αν το ήθελε, αλλά απλά δεν το κάνει.
Η πόρτα είναι ελαφρώς ανοιχτή για 128-bit
Παρόλο που οι 128-bit CPUs δεν είναι κάτι το ιδιαίτερο σήμερα, και φαίνεται ότι καμία εταιρεία δεν πρόκειται να κυκλοφορήσει μια τέτοια σύντομα, δεν θα έφτανα στο σημείο να πω ότι οι 128-bit CPUs δεν θα συμβούν ποτέ. Η προδιαγραφή για το RISC-V ISA αφήνει στο τραπέζι την πιθανότητα μιας μελλοντικής αρχιτεκτονικής 128-bit, αλλά δεν περιγράφει λεπτομερώς ποια θα είναι στην πραγματικότητα, προφανώς επειδή δεν υπήρχε απλά μια πιεστική ανάγκη για το σχεδιασμό της.
Τριακόσια σαράντα undecillion, ο μεγαλύτερος αριθμός που είναι δυνατόν να δημιουργηθεί με 128 bit, δεν είναι επίσης ούτε κατά διάνοια τόσος όσο τα άτομα στο σύμπαν, που θεωρείται ο μεγαλύτερος αριθμός που έχει οποιαδήποτε σημασία στον πραγματικό κόσμο. Αν θέλατε ποτέ να προσομοιώσετε ένα μεγάλο κομμάτι του σύμπαντος μέχρι το ατομικό επίπεδο, τότε ίσως μια CPU 128 bit θα ήταν πραγματικά χρήσιμη για αυτό. Από εκεί και πέρα, είναι δύσκολο να πούμε για ποιο λόγο θα μπορούσε να χρησιμοποιηθεί μια CPU 128 bit, αλλά πριν από πολλά χρόνια αναρωτιόμασταν επίσης για ποιο λόγο θα θέλατε ένα terabyte μνήμης RAM.
Διαβάστε και το άρθρο μας: Τα χαρακτηριστικά ενός επεξεργαστή
Μπορείτε να κατεβάσετε επίσης δωρεάν, πολύ ενδιαφέροντα e-books που έφτιαξα σχετικά με τη δημιουργία websites αλλά και για γλώσσες προγραμματισμού, εδώ στα free downloads.