Τι είναι το AArch64; Τι πρέπει να γνωρίζετε για αυτήν την αρχιτεκτονική CPU

click fraud protection

Αν και πιθανότατα έχετε χρησιμοποιήσει μια συσκευή με επεξεργαστή AArch64 μέσα, ίσως να μην ξέρετε τι σημαίνει. Εδώ είναι τι πρέπει να ξέρετε.

Υπάρχουν πολλές CPU αρχιτεκτονικές εκεί έξω, με τα μεγαλύτερα να είναι x86 και ΜΠΡΑΤΣΟ. Τούτου λεχθέντος, το AArch64 μάλλον έχει πετάξει κάτω από το ραντάρ σας. Ακόμη και ο αρκετά καλά διαβασμένος λάτρης της τεχνολογίας μπορεί να μην το είχε ακούσει ποτέ, παρά το γεγονός ότι υπάρχει σε εκατομμύρια συσκευές. Λοιπόν, το θέμα είναι ότι το AArch64 δεν είναι τόσο μυστηριώδες όσο είναι ένας πολύ συγκεχυμένος τεχνικός όρος. Εδώ είναι τι πρέπει να γνωρίζετε για το AArch64.

Το AArch64 είναι ARM64, κάπως έτσι

Πηγή: Αρμ

Εν ολίγοις, το AArch64 είναι το επίσημο όνομα για την αρχιτεκτονική συνόλου εντολών 64-bit του Arm (ISA) που παρουσιάστηκε με την ενημέρωση Armv8-A. Σχεδόν πάντα αναφέρεται στο AArch64. Δεν είναι σαφές ακριβώς γιατί το ARM64 χρησιμοποιείται συχνά στη θέση του AArch64, αλλά μέρος της σύγχυσης φαίνεται να προέρχεται από δύο μέρη. Μέρος του οφείλεται στο ότι η επέκταση 64-bit του x86 είναι x86-64, επομένως φυσικά η επέκταση 64-bit του ARM θα πρέπει να είναι ARM64. Η Apple φαινόταν σίγουρα να το σκέφτεται και αναφερόταν στο AArch64 ως ARM64 μέχρι το 2014. Για τους περισσότερους ανθρώπους, το "AAarch64 is ARM64" είναι μια πολύ ικανοποιητική εξήγηση.

Αν θέλετε να γίνετε πραγματικά τεχνικοί, το AArch64 δεν είναι το ISA, αλλά μάλλον το κατάσταση εκτέλεσης που επιτρέπει στους CPU της ARM να χρησιμοποιούν (και να χρησιμοποιούν μόνο) το σύνολο εντολών A64 του ARMv8 ISA, το οποίο πρωτοπαρουσιάστηκε με την αρχιτεκτονική Armv8-A. Αν αυτό ακούγεται μπερδεμένο, αυτό συμβαίνει γιατί είναι. Ακόμα κι αν είστε εξοικειωμένοι με την αρχιτεκτονική των υπολογιστών, αυτό μπορεί να είναι δύσκολο να το κατανοήσετε, γι' αυτό θα το εξηγήσω βήμα προς βήμα.

Άρα τεχνικά, το AArch64 είναι κράτος, όχι ISA, αλλά κανείς δεν νοιάζεται, ούτε καν ο ίδιος ο Arm.

Το ARM είναι μια οικογένεια σχετικών ISA και παρόλο που διαφορετικά ISA συνήθως συνεπάγονται ασυμβατότητα, αυτό δεν είναι απολύτως αληθές. Οι διαφορετικές εκδόσεις του ARM ISA ονομάζονται ARMv1, ARMv2 και ούτω καθεξής, αλλά αυτά τα ISA περιέχουν αυτά που είναι ουσιαστικά υπο-ISA: A-profile, M-profile και R-profile. Η βασική διαφορά μεταξύ αυτών των υπο-ISA είναι ο ελάχιστος αριθμός εντολών που χρησιμοποιεί ο καθένας, με το προφίλ Α να χρησιμοποιεί το μεγαλύτερο μέρος και το προφίλ M να χρησιμοποιεί το λιγότερο. Έτσι, το ARM ISA χωρίζεται σε μεμονωμένες εκδόσεις όπως το ARMv8, και στη συνέχεια αυτές οι εκδόσεις χωρίζονται περαιτέρω σε διαφορετικές υλοποιήσεις του ISA.

Το Armv8-A είναι η αρχική υλοποίηση προφίλ A του ARMv8 ISA, η οποία πρόσθεσε δύο νέα πράγματα: AArch32 και AArch64. Αυτά αναφέρονται ως καταστάσεις ή λειτουργίες και επιτρέπουν στους επεξεργαστές ARM να έχουν πρόσβαση σε διαφορετικά σύνολα εντολών, με το AArch32 που περιέχει τις οδηγίες 32-bit A32 και T32 και το AArch64 που περιέχει το A64 64-bit οδηγίες. Για παράδειγμα, εάν ένας επεξεργαστής βρίσκεται αυτήν τη στιγμή στην κατάσταση AArch64 και θέλει να χρησιμοποιήσει οδηγίες A32, πρέπει να αλλάξει την κατάστασή του σε AArch32. Επιπλέον, στη λειτουργία AArch64, είναι προσβάσιμοι και οι καταχωρητές 32-bit και 64-bit, ενώ στη λειτουργία AArch32 μπορούν να χρησιμοποιηθούν μόνο οι καταχωρητές 32-bit. Το πιο συγκεχυμένο μέρος όλων αυτών είναι ότι όλα αυτά τα πράγματα αναφέρονται με ποικιλία ως ISA και ακόμη και η Arm (η εταιρεία που αναπτύσσει το ARM ISA) είναι ένοχη για αυτό.

Αλλά αν είμαστε εξαιρετικά τεχνικοί, έτσι είναι στην πραγματικότητα: η όγδοη έκδοση του ARM ISA, ARMv8, εφαρμόστηκε για πρώτη φορά με το Armv8-A, το οποίο περιέχει δύο καταστάσεις που ονομάζονται AArch32 και AArch64. Όταν μια CPU βρίσκεται στην κατάσταση AArch64, μπορεί να εκτελέσει εντολές A64 64-bit. Άρα τεχνικά, το AArch64 είναι κράτος, όχι ISA, αλλά κανείς δεν νοιάζεται, ούτε καν ο ίδιος ο Arm.

Γιατί και τα 32-bit και τα 64-bit έχουν σημασία για την ARM

Έτσι, το AArch64 είναι στην πραγματικότητα αρκετά περίπλοκο και το να χρειάζεται να αλλάζετε καταστάσεις μόνο για να χρησιμοποιήσετε οδηγίες 32-bit και 64-bit φαίνεται περίπλοκο. Το θέμα είναι ότι η υποστήριξη τόσο για τα 32 bit όσο και για τα 64 bit ήταν πολύ σημαντική για να παραλειφθεί, επομένως πρέπει να είναι έτσι. Πραγματικά κατέληξε σε δύο σημαντικά ζητήματα: την ανάγκη υποστήριξης παλιού λογισμικού 32 bit και την επιδίωξη σύγχρονου υπολογισμού υψηλής απόδοσης.

Εάν το Arm δεν περιλάμβανε την εγγενή υποστήριξη για λογισμικό 32 bit στο πρώτο του ISA 64 bit, θα μπορούσε να ήταν καταστροφή γιατί, με απλά λόγια, κανείς δεν θέλει να ξαναγράψει κώδικα. Εάν το ARMv8 απαιτούσε από όλους να γράψουν νέο λογισμικό από την αρχή, θα μπορούσε να είχε βάλει το ISA σε μια σπείρα θανάτου, όπου κανείς δεν κάνει ή δεν αγοράζει Συσκευές ARMv8 λόγω έλλειψης λογισμικού και, στη συνέχεια, οι προγραμματιστές δεν δημιουργούν εφαρμογές λόγω έλλειψης χρηστών, επ' άπειρον μέχρι να το καλέσει ο Arm πάτσι. Έτσι, η υποστήριξη 32-bit ήταν αδιαπραγμάτευτη.

Από την άλλη πλευρά, η μη εφαρμογή υπολογιστών 64-bit δεν ήταν επίσης μια επιλογή. Η Intel και η AMD, οι εταιρείες πίσω από το x86, χρησιμοποιούσαν αρχιτεκτονικές 64-bit από τις αρχές της δεκαετίας του 2000 για καταπληκτικοί επεξεργαστές, αν και εκείνη την εποχή δεν υπήρχε κλήση για τσιπ ARM ​​64-bit καθώς τα τηλέφωνα δεν τα χρειάζονταν. Αλλά η εφεύρεση του smartphone άλλαξε τα πάντα και όλοι ήθελαν τα τηλέφωνά τους να κάνουν περισσότερα πράγματα. Η υποστήριξη 64-bit όχι μόνο θα βοηθούσε τα smartphone να γίνουν πιο ισχυρά, αλλά άνοιξε και την πόρτα για τις εταιρείες να κατασκευάζουν τσιπ ARM ​​για αγορές όπου κυριαρχούσε παραδοσιακά το x86, όπως φορητοί υπολογιστές και διακομιστές.

Βασικά, όλη αυτή η σύγχυση ονομασίας προέκυψε από την ανάγκη του Arm να εκσυγχρονίσει την τεχνολογία του ως απάντηση στις μεταβαλλόμενες προτεραιότητες. Ίσως ο Arm να μην χρειαζόταν να εφαρμόσει υποστήριξη 64-bit με αυτόν τον τρόπο, αλλά το έκανε, και έτσι προέκυψε το AArch64. Αν και το AArch64 δεν είναι ISA, έτσι χρησιμοποιούν οι περισσότεροι τον όρο, καλώς ή κακώς.