ما هو AArch64؟ ما تحتاج لمعرفته حول بنية وحدة المعالجة المركزية هذه

على الرغم من أنك ربما استخدمت جهازًا بداخله معالج AArch64 ، فقد لا تعرف ما يعنيه ذلك. إليك ما تحتاج إلى معرفته.

هناك العديد من وحدة المعالجة المركزية معماريات هناك ، مع وجود أكبرها إلى x86 و ذراع. بعد قولي هذا ، ربما طار AArch64 تحت رادارك. ربما لم يسمع به حتى عشاق التكنولوجيا الذين يقرؤون جيدًا إلى حد ما ، على الرغم من حقيقة أنه موجود في ملايين الأجهزة. حسنًا ، الشيء هو أن AArch64 ليس غامضًا بقدر ما هو مصطلح تقني محير للغاية. إليك ما تحتاج لمعرفته حول AArch64.

AArch64 هو ARM64 ، نوعًا ما

المصدر: Arm

باختصار ، AArch64 هو الاسم الرسمي لمعمارية مجموعة تعليمات Arm 64 بت (ISA) التي تم تقديمها مع تحديث Armv8-A. يشير دائمًا إلى AArch64. ليس من الواضح بالضبط سبب استخدام ARM64 بدلاً من AArch64 ، ولكن يبدو أن جزءًا من الارتباك ينبع من مكانين. يرجع جزء منه إلى أن امتداد 64 بت لـ x86 هو x86-64 ، لذلك من الطبيعي أن يكون امتداد ARM 64 بت هو ARM64. يبدو أن شركة Apple تعتقد ذلك بالتأكيد وأشارت إلى AArch64 على أنها ARM64 حتى عام 2014. بالنسبة لمعظم الناس ، يعتبر "AArch64 هو ARM64" تفسيرًا مرضيًا للغاية.

إذا كنت تريد أن تصبح تقنيًا حقًا ، فإن AArch64 ليس هو ISA ، بل هو

حالة التنفيذ يسمح لوحدات المعالجة المركزية ARM باستخدام (واستخدام) مجموعة تعليمات A64 الخاصة بـ ARMv8 ISA ، والتي تم تقديمها لأول مرة مع بنية Armv8-A. إذا كان هذا يبدو محيرًا ، فهذا لأنه كذلك. حتى لو كنت معتادًا على هندسة الكمبيوتر ، فقد يكون من الصعب فهم ذلك ، لذلك سأشرح هذه خطوة بخطوة.

لذا من الناحية الفنية ، فإن AArch64 هي دولة وليست ISA ، لكن لا أحد يهتم ، ولا حتى Arm نفسها.

ARM هي عائلة من ISAs ذات الصلة ، وعلى الرغم من أن ISAs المختلفة عادة ما تشير إلى عدم التوافق ، فإن هذا ليس صحيحًا تمامًا. يُطلق على الإصدارات المختلفة من ARM ISA اسم ARMv1 و ARMv2 وما إلى ذلك ، ولكن هذه المعايير الدولية تحتوي على ما هو في الأساس معايير دولية فرعية: A-profile و M-profile و R-profile. يتمثل الاختلاف الأساسي بين هذه المعايير الفرعية في الحد الأدنى من التعليمات التي يستخدمها كل فرد ، مع استخدام ملف تعريف A في معظم الحالات واستخدام ملف تعريف M على الأقل. لذلك ، يتم تقسيم ARM ISA إلى إصدارات فردية مثل ARMv8 ، ثم يتم تقسيم هذه الإصدارات إلى تطبيقات مختلفة لـ ISA.

Armv8-A هو التنفيذ الأولي للملف الشخصي A لـ ARMv8 ISA ، والذي أضاف شيئين جديدين: AArch32 و AArch64. يشار إلى هذه الحالات أو الأوضاع ، وتسمح لوحدات المعالجة المركزية ARM بالوصول إلى مجموعات التعليمات المختلفة ، مع AArch32 التي تحتوي على 32 بت A32 و T32 تعليمات ، و AArch64 التي تحتوي على 64 بت A64 تعليمات. على سبيل المثال ، إذا كان المعالج حاليًا في حالة AArch64 ويريد استخدام تعليمات A32 ، فعليه تغيير حالته إلى AArch32. بالإضافة إلى ذلك ، في وضع AArch64 ، يمكن الوصول إلى كل من السجلات 32 بت و 64 بت ، بينما في وضع AArch32 ، لا يمكن استخدام سوى مسجلات 32 بت. الجزء الأكثر إرباكًا في كل هذا هو أن كل هذه الأشياء يُشار إليها بشكل مختلف باسم ISAs وحتى Arm (الشركة التي تطور ARM ISA) مذنبة بذلك.

ولكن إذا كنا تقنيًا فائقًا ، فهذه هي الطريقة في الواقع: تم تنفيذ الإصدار الثامن من ARM ISA ، ARMv8 ، لأول مرة باستخدام Armv8-A ، والذي يحتوي على حالتين تدعى AArch32 و AArch64. عندما تكون وحدة المعالجة المركزية في حالة AArch64 ، يمكنها تنفيذ تعليمات 64 بت A64. لذا من الناحية الفنية ، فإن AArch64 هي دولة وليست ISA ، لكن لا أحد يهتم ، ولا حتى Arm نفسها.

لماذا يعتبر كل من 32 بت و 64 بت مهمين بالنسبة لـ ARM

لذا فإن AArch64 معقد جدًا في الواقع ، ويبدو أن الاضطرار إلى تبديل الحالات لمجرد استخدام تعليمات 32 بت و 64 بت أمر مرهق. الشيء هو أن دعم كل من 32 بت و 64 بت كان مهمًا للغاية بحيث لا يمكن تفويته ، لذلك يجب أن يكون على هذا النحو. لقد تعلق الأمر بالفعل بمسألتين رئيسيتين: الحاجة إلى دعم برامج 32 بت القديمة ، ومتابعة الحوسبة الحديثة عالية الأداء.

إذا لم يتضمن Arm دعمًا أصليًا لبرنامج 32 بت في أول 64 بت ISA ، فقد تكون كارثة لأنه ، ببساطة ، لا أحد يريد إعادة كتابة التعليمات البرمجية. إذا تطلب ARMv8 من الجميع كتابة برنامج جديد من الصفر ، فقد يكون قد وضع ISA في دوامة الموت ، حيث لا يصنع أحد أو يشتري أجهزة ARMv8 بسبب نقص البرامج ، ومن ثم لا يصنع المطورون تطبيقات بسبب قلة المستخدمين ، لا نهاية لها حتى تضطر Arm إلى تسميتها يستقيل. لذلك ، كان دعم 32 بت غير قابل للتفاوض.

من ناحية أخرى ، لم يكن عدم تنفيذ الحوسبة 64 بت خيارًا أيضًا. كانت Intel و AMD ، الشركتان وراء x86 ، تستخدمان معماريات 64 بت منذ أوائل العقد الأول من القرن الحادي والعشرين وحدات المعالجة المركزية مذهلة، على الرغم من عدم وجود دعوة في ذلك الوقت للحصول على شرائح ARM 64 بت لأن الهواتف لم تكن بحاجة إليها. لكن اختراع الهاتف الذكي غيّر كل شيء ، وأراد الجميع أن تقوم هواتفهم بالمزيد من الأشياء. لن يساعد دعم 64 بت فقط الهواتف الذكية على أن تصبح أكثر قوة ، ولكنه يفتح الباب أيضًا للشركات لتصنيع شرائح ARM للأسواق التي يهيمن عليها x86 تقليديًا ، مثل أجهزة الكمبيوتر المحمولة و الخوادم.

في الأساس ، نشأ هذا الالتباس الكامل في التسمية من حاجة Arm إلى تحديث تقنيتها استجابة للأولويات المتغيرة. ربما لم يكن Arm بحاجة إلى تنفيذ دعم 64 بت بهذه الطريقة ، لكنه فعل ذلك ، وهكذا جاء AArch64. على الرغم من أن AArch64 ليست ISA ، فهذه هي الطريقة التي يستخدم بها معظم الناس المصطلح ، للأفضل أو للأسوأ.