آرك64 (أبالانجليزيه : ARM64 ) هي حالة التنفيذ ذات الـ 64 بت لعائلة بنية ARM. قُدمت لأول مرة مع بنية Armv8-A ، وشهدت العديد من تحديثات التوسعة.[1]
تعرّف حالة التنفيذ في بنية Armv8-A وARMv8-R وARMv9-A عدد البتات في سجلات المعالج الأساسي، ومجموعات التعليمات المتاحة، والجوانب الأخرى لبيئة تنفيذ المعالج. في هذه الإصدارات من بنية Arm، توجد حالتا تنفيذ: حالة تنفيذ AArch64 ذات 64 بت وحالة تنفيذ AArch32 ذات 32 بت.[2]
حالة تنفيذ AArch64
[عدل]اتفاقيات التسمية
[عدل]- 64 بت:
- حالة التنفيذ: AArch64.
- مجموعة التعليمات: A64.
- 32 بت:
- حالة التنفيذ: AArch32.
- مجموعة التعليمات: A32 + T32.
- مثال: ARMv8-R، Cortex-A32.[3]
ميزات AArch64
[عدل]- مجموعة تعليمات جديدة، A64:
- يحتوي على 31 سجلًا عامًا مكونًا من 64 بت.
- يحتوي على سجل صفر مخصص أو سجل مؤشر المكدس (SP) (اعتمادًا على التعليمات).
- لم يعد من الممكن الوصول إلى عداد البرنامج (PC) بشكل مباشر كسجل.
- التعليمات لا تزال 32 بتات طويلة ومتشابهة في الغالب مع A32 (مع تعليمات LDM/STM وإسقاط معظم التنفيذ الشرطي).
- يحتوي على أحمال/مخازن مقترنة (بدلاً من LDM/STM).
- لا يوجد تنبؤ لمعظم التعليمات (باستثناء الفروع).
- يمكن لمعظم التعليمات أن تأخذ وسيطات 32 بت أو 64 بت.
- من المفترض أن تكون العناوين 64 بت.
- SIMD المتقدم (نيون) المحسن:
- يحتوي على 32 × 128 بت (أعلى من 16)، ويمكن الوصول إليه أيضًا عبر VFPv4.
- يدعم تنسيق النقطة العائمة بدقة مزدوجة .
- متوافق تمامًا مع IEEE 754 .
- تستخدم تعليمات تشفير/فك تشفير AES وتجزئة SHA-1/SHA-2 أيضًا هذه السجلات.
- نظام استثناء جديد:
- عدد أقل من السجلات والأوضاع المصرفية.
- ترجمة الذاكرة من عناوين افتراضية مكونة من 48 بت استنادًا إلى امتداد العنوان المادي الكبير (LPAE) الموجود، والذي تم تصميمه ليتم تمديده بسهولة إلى 64 بت.
الامتداد: تلميح جمع البيانات (ARMv8.0-DGH).
قُدمت AArch64 في بنية ARMv8-A، وتم تضمينها في الإصدارات اللاحقة من ARMv8-A، وفي جميع إصدارات ARMv9-A. كما قُدمت أيضًا في ARMv8-R كخيار، وذلك بعد تقديمها في ARMv8-A، ولكنها غير مدرجة في ARMv8-M.
تنسيقات تعليمات A64
[عدل]التعليمات البرمجية الرئيسية لاختيار المجموعة التي تنتمي إليها تعليمات A64 تقع في البتات 25-28.
Type | Bit | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Reserved | 0 | op0
|
0 | 0 | 0 | 0 | op1
|
|||||||||||||||||||||||||
SME | 1 | op0
|
0 | 0 | 0 | 0 | Varies | |||||||||||||||||||||||||
Unallocated | 0 | 0 | 0 | 1 | ||||||||||||||||||||||||||||
SVE | 0 | 0 | 1 | 0 | Varies | |||||||||||||||||||||||||||
Unallocated | 0 | 0 | 1 | 1 | ||||||||||||||||||||||||||||
Data Processing — Immediate PC-rel. | op | immlo
|
1 | 0 | 0 | 0 | 0 | immhi
|
Rd | |||||||||||||||||||||||
Data Processing — Immediate Others | sf | 1 | 0 | 0 | 01–11 | Rd | ||||||||||||||||||||||||||
Branches + System Instructions | op0 | 1 | 0 | 1 | op1 | op2 | ||||||||||||||||||||||||||
Load and Store Instructions | op0 | 1 | op1 | 0 | op2 | op3 | op4 | |||||||||||||||||||||||||
Data Processing — Register | sf | op0 | op1 | 1 | 0 | 1 | op2 | op3 | ||||||||||||||||||||||||
Data Processing — Floating Point and SIMD | op0 | 1 | 1 | 1 | op1 | op2 | op3 |
ARM-A (هندسة التطبيقات)
[عدل]
أُعلن عن ARMv8-A في أكتوبر 2011، ويمثل هذا الإصدار تغييرًا جوهريًا في بنية ARM. يضيف هذا الإصدار حالة تنفيذ اختيارية بحجم 64 بت تُسمى "AArch64" ومجموعة التعليمات الجديدة المرتبطة بها "A64". بالإضافة إلى ذلك، يتضمن حالة تنفيذ بحجم 32 بت تُسمى "AArch32" تدعم مجموعتي التعليمات "A32" (بنية Arm الأصلية ذات 32 بت) و"T32" (Thumb/Thumb-2) ذات الـ 32 بت. توفر مجموعات التعليمات الأخيرة توافقًا مع مساحة المستخدم مع بنية ARMv7-A ذات الـ 32 بت الموجودة.
يسمح ARMv8-A بتشغيل التطبيقات ذات الـ 32 بت ضمن نظام تشغيل 64 بت، كما يتيح لنظام تشغيل 32 بت أن يكون تحت سيطرة مشرف افتراضي (hypervisor) بحجم 64 بت.
أعلنت شركة ARM عن نواتيها Cortex-A53 وCortex-A57 في 30 أكتوبر 2012. كانت شركة Appleأول من أصدر نواة متوافقة مع ARMv8-A (نواة Cyclone) في منتج استهلاكي (هاتف iPhone 5S). بينما كانت شركة AppliedMicro، باستخدام مصفوفات البوابات المنطقية القابلة للبرمجة (FPGA)، أول من قام بعرض بنية ARMv8-A.
أول معالج ARMv8-A من سامسونج هو Exynos 5433 المستخدم في هاتف Galaxy Note 4، والذي يتميز بمجموعتين من أربعة أنوية Cortex-A57 وCortex-A53 في تكوين big.LITTLE؛ لكنه سيعمل فقط في وضع AArch32.
يتضمن ARMv8-A وحدات VFPv3/v4 وSIMD المتقدمة (Neon) كميزات قياسية في كل من AArch32 وAArch64.[4] كما يضيف تعليمات تشفير تدعم AESوSHA-1 / SHA-256 وحسابات المجال المحدود.[5]
يمكن لمعالج ARMv8-A أن يدعم إما AArch32 أو AArch64 أو كليهما. قد يدعم AArch32 وAArch64 في مستويات الاستثناءات المنخفضة، بينما يدعم AArch64 فقط ف[6] ي المستويات الأعلى. على سبيل المثال، يدعم معالج ARM Cortex-A32 AArch32[7] فقط، بينما يدعم <b>ARM</b> AArch64 فقط، في حين أن <b>ARM Cortex-A72</b> يدعم كلا من AArch64 وAArch32. أما معالج ARMv9-A فيجب أن يدعم AArch64 في جميع مستويات الاستثناء، وقد يدعم AArch32 في مستوى الاستثناء EL0.[8]
ARMv8.1-A
[عدل]في ديسمبر 2014، أُعلن عن ARMv8.1-A، [9] وهو تحديث "يحتوي على فوائد متزايدة مقارنة بإصدار v8.0". تنقسم التحسينات إلى فئتين:
- تغييرات في مجموعة التعليمات.
- تغييرات في نموذج الاستثناء وترجمة الذاكرة.
تضمنت تحسينات مجموعة التعليمات ما يلي:
- مجموعة من تعليمات القراءة والكتابة الذرية AArch64.
- إضافات إلى مجموعة تعليمات SIMD المتقدمة لكل من AArch32 وAArch64 لتمكين فرص بعض تحسينات المكتبة:
- توقيع التشبع التقريب المضاعف الضرب التراكم، إرجاع النصف العالي.
- توقيع التشبع التقريب المضاعفة الضرب الطرح، إرجاع النصف العالي.
- تمت إضافة التعليمات في أشكال متجهية ومقياسية.
- مجموعة من تعليمات التحميل والتخزين AArch64 التي يمكنها توفير ترتيب الوصول إلى الذاكرة المحدود بمناطق العناوين القابلة للتكوين.
- تصبح تعليمات CRC الاختيارية في v8.0 شرطًا في ARMv8.1.
تضمنت التحسينات الخاصة في نموذج الاستثناء ونظام ترجمة الذاكرة ما يلي:
- توفر بتة حالة عدم الوصول المتميز أبدًا (PAN) الجديدة التحكم الذي يمنع الوصول المتميز إلى بيانات المستخدم ما لم يتم تمكينه صراحةً.
- نطاق VMID متزايد للمحاكاة الافتراضية؛ يدعم عددًا أكبر من الأجهزة الافتراضية.
- دعم اختياري لتحديث الأجهزة لعلم الوصول إلى جدول الصفحات، وتوحيد آلية البت القذرة الاختيارية المحدثة بالأجهزة.
- ملحقات استضافة المحاكاة الافتراضية (VHE). تعمل هذه التحسينات على تحسين أداء المشرفين من النوع 2 من خلال تقليل النفقات العامة للبرامج المرتبطة بالانتقال بين أنظمة التشغيل المضيفة والضيف. تسمح الامتدادات لنظام التشغيل المضيف بالتنفيذ عند EL2، على عكس EL1، دون تعديل كبير.[10]
- آلية لتحرير بعض بتات جدول الترجمة لاستخدامها من قبل نظام التشغيل، حيث لا يحتاج نظام التشغيل إلى دعم الأجهزة.
- تجاهل البايت العلوي لوضع علامات على الذاكرة .[11]
ARMv8.2-A
[عدل]تم الإعلان عن ARMv8.2-A في يناير عام 2016.[12] وتنقسم تحسيناتها إلى أربع فئات هي :
- معالجة اختيارية للبيانات ذات النقطة العائمة بنصف الدقة (تم دعم نصف الدقة بالفعل، ولكن ليس للمعالجة، فقط كتنسيق تخزين.)
- تحسينات نموذج الذاكرة.
- مقدمة لتمديد الموثوقية والتوافر والقدرة على الخدمة (تمديد RAS).
- مقدمة في التنميط الإحصائي.
امتداد المتجه القابل للتطوير (SVE)
[عدل]يُعد امتداد المتجه القابل للتطوير (SVE) "امتدادًا اختياريًا لهندسة ARMv8.2-A والإصدارات الأحدث" تم تطويره خصيصًا لمتجهة أحمال العمل العلمية في مجال للحوسبة عالية الأداء (HPC).[13] تسمح المواصفات بتنفيذ أطوال متجهة متغيرة تتراوح من 128 إلى 2048 بت. يُعتبر هذا الامتداد مكملاً لـامتدادات NEONولا يحل محلها.[14]
لقد تم بالفعل تنفيذ متغير SVE ذو 512 بت على حاسوب Fugaku العملاق [15] باستخدام معالج <b>Fujitsu A64FX</b> ARM. كان هذا الحاسوب أسرع حاسوب عملاق في العالم لمدة عامين، من يونيو 2020 إ[16] لى مايو 2022.[17]
كما تم تنفيذ إصدار أكثر مرونة، 2x256 SVE، بواسطة معالج AWS Graviton3 ARM.
يُدعم SVE (Scalable Vector Extension) بواسطة GCC؛ حيث يدعم GCC8 المتجهات التلقائية، [13] ويدعم GCC 10 جوهريات C. واعتبارًا من يوليو 2020، يدعم LLVM clangالعناصر الجوهرية C وIR. كما تدعم شوكة ARM الخاصة بـ LLVM التوجيه التلقائي.[18]
ARMv8.3-A
[عدل]في أكتوبرعام 2016، تم الإعلان عن ARMv8.3-A. وقد انقسمت تحسيناتها إلى ست فئات هي :[19]
- مصادقة المؤشر (PAC) [20][21] (AArch64 فقط)؛ التمديد الإلزامي (بناءً على تشفير كتلة جديد، QARMA [22] ) للهندسة المعمارية (يحتاج المترجمون إلى استغلال ميزة الأمان، ولكن نظرًا لأن التعليمات موجودة في مساحة NOP، فهي متوافقة مع الإصدارات السابقة على الرغم من عدم توفير أي أمان إضافي على الرقائق القديمة).
- المحاكاة الافتراضية المتداخلة (AArch64 فقط).
- دعم الأعداد المركبة SIMD المتقدمة (AArch64 وAArch32)؛ على سبيل المثال، الدورات بمضاعفات 90 درجة.
- تعليمات جديدة FJCVTZS (تحويل الفاصلة العائمة في JavaScript إلى نقطة ثابتة موقعة، تقريب نحو الصفر).[23]
- تغيير في نموذج اتساق الذاكرة (AArch64 فقط)؛ لدعم نموذج RCpc (معالج متسق الإصدار متسق) الأضعف (غير الافتراضي) لـ C++11 / C11 (كان نموذج الاتساق الافتراضي C++11/C11 مدعومًا بالفعل في ARMv8 السابق).
- دعم آلية المعرف لمخابئ النظام المرئية الأكبر حجمًا (AArch64 وAArch32).
يتم الآن دعم بنية ARMv8.3-A بواسطة (على الأقل) مُجمّع GCC7.7.[24]
ARMv8.4-A
[عدل]في نوفمبر 2017، أُعلن عن بنية ARMv8.4-A. وجاءت تحسيناتها ضمن الفئات التالية:[25][26][27]
- "امتدادات التشفير SHA3 / SHA512 / SM3 / SM4 ." أي تعليمات اختيارية.
- تم تحسين دعم المحاكاة الافتراضية.[28]
- قدرات تقسيم الذاكرة ومراقبتها (MPAM).
- حالة EL2 آمنة جديدة ومراقبي النشاط.
- تعليمات حاصل ضرب عدد صحيح نقطي موقّع وغير موقّع (SDOT وUDOT).
ARMv8.5-A وARMv9.0-A
[عدل]في سبتمبر 2018، أُعلن عن بنية ARMv8.5-A. وقد جاءت تحسيناتها ضمن الفئات التالية:[29][30][31]
- امتداد وسم الذاكرة (MTE) (AArch64).[32]
- مؤشرات هدف الفرع (BTI) (AArch64) لتقليل "قدرة المهاجم على تنفيذ تعليمات برمجية عشوائية". كما هو الحال مع مصادقة المؤشر، فإن التعليمات ذات الصلة لا تتضمن أي عمليات في الإصدارات السابقة من ARMv8-A.
- تعليمات مولد الأرقام العشوائية - "توفير أرقام عشوائية حتمية وحقيقية تتوافق مع المعايير الوطنية والدولية المختلفة".
ففي 2 أغسطس 2019، أعلنت قوقل أن نظام اندرويد سيعتمد ملحق وسم الذاكرة (MTE).[33]
في مارس 2021، أُعلن عن بنية ARMv9-A.[34] يُعتبر خط الأساس لـ ARMv9-A [35] هو جميع الميزات الموجودة في ARMv8.5.[36] يضيف ARMv9-A أيضًا:
- امتداد المتجه القابل للتطوير 2 (SVE2). يعتمد SVE2 على متجهات SVE القابلة للتطوير لزيادة التوازي الدقيق لمستوى البيانات (DLP) ، للسماح بإنجاز المزيد من العمل لكل تعليمة. يهدف SVE2 إلى جلب هذه الفوائد إلى مجموعة أوسع من البرامج بما في ذلك DSP ورمز SIMD للوسائط المتعددة الذي يستخدم Neon حاليًا.[37] تم تحديث أكواد تطوير LLVM / Clang 9.0 و GCC 10.0 لدعم SVE2.[37][38]
- تمديد الذاكرة المعاملاتية (TME). بعد ملحقات x86 ، يوفر TME الدعم لذاكرة المعاملات المادية (HTM) وإلغاء القفل المعاملاتي (TLE). تهدف TME إلى توفير التزامن القابل للتطوير لزيادة التوازي الخشن على مستوى الخيوط (TLP) ، للسماح بإنجاز المزيد من العمل لكل خيط.[37] تم تحديث أكواد تطوير LLVM / Clang 9.0 و GCC 10.0 لدعم TME.[38]
- هندسة الحوسبة السرية (CCA).[39][40][41]
ARMv8.6-A وARMv9.1-A
[عدل]في سبتمبر 2019، أُعلن عن بنية ARMv8.6-A. وقد جاءت تحسيناتها ضمن الفئات التالية:[29][42]
- الضرب العام للمصفوفة (GEMM).
- دعم تنسيق Bfloat16 .
- تعليمات معالجة مصفوفة SIMD، BFDOT، BFMMLA، BFMLAL وBFCVT.
- تحسينات في مجال المحاكاة الافتراضية وإدارة النظام والأمان.
- والإضافات التالية (التي أضاف LLVM 11 بالفعل دعمًا لها [43] ):
- تحسين المحاكاة الافتراضية للعداد (ARMv8.6-ECV).
- مصائد الحبيبات الدقيقة (ARMv8.6-FGT).
- مراقبة النشاط افتراضيًا (ARMv8.6-AMU).
على سبيل المثال، تتضمن التحسينات الفخاخ ذات الحبيبات الدقيقة (Fine-grained traps)، وتعليمات انتظار الحدث (WFE)، بالإضافة إلى EnhancedPAC2 وFPAC. وتُستخدم ملحقات bfloat16 الخاصة بـ SVE وNeon بشكل أساسي في تطبيقات التعلم العميق (Deep Learning).[44]
ARMv8.7-A وARMv9.2-A
[عدل]في سبتمبر 2020، أُعلن عن بنية ARMv8.7-A. وقد جاءت تحسيناتها ضمن الفئات التالية:[29][45]
- امتداد المصفوفة القابلة للتطوير (SME) (ARMv9.2 فقط).[46] يضيف SME ميزات جديدة لمعالجة المصفوفات بكفاءة، مثل:
- تخزين بلاط المصفوفة.
- نقل المصفوفة أثناء التنقل.
- تحميل/تخزين/إدراج/استخراج متجهات البلاط.
- حاصل الضرب الخارجي للمصفوفة لمتجهات SVE.
- "وضع البث" SVE.
- دعم مُحسَّن لـ PCIe hot plug (AArch64).
- تحميل ذري بحجم 64 بايت وتخزينه في المسرعات (AArch64).
- انتظار المقاطعة (WFI) وانتظار الحدث (WFE) مع مهلة زمنية (AArch64).
- تسجيل الفرع-السجل (ARMv9.2 فقط).
- مسجل مكدس المكالمات
ARMv8.8-A وARMv9.3-A
[عدل]في سبتمبر 2021،أُعلن عن بنية ARMv8.8-A وARMv9.3-A. وقد وقعت تحسيناتهما ضمن هذه الفئات:[29][47]
- المقاطعات غير القابلة للإخفاء (AArch64).
- تعليمات لتحسين عمليات نمط memcpy() و memset() (AArch64).
- تحسينات على PAC (AArch64).
- الفروع الشرطية المشار إليها (AArch64).
يدعم LLVM 15 ARMv8.8-A وARMv9.3-A.[48]
ARMv8.9-A وARMv9.4-A
[عدل]في سبتمبر 2022، أُعلن عن بنية ARMv8.9-A وARMv9.4-A، بما في ذلك:[49]
- تحسينات في بنية نظام الذاكرة الافتراضية (VMSA).
- الإذن غير المباشر والتراكبات.
- تقوية الترجمة.
- جداول الترجمة 128 بت (ARMv9 فقط).
- ملحق المصفوفة القابلة للتطوير 2 (SME2) (ARMv9 فقط).
- تعليمات متعددة المتجهات.
- مسندات متعددة المتجهات.
- ضغط الوزن 2b/4b.
- 1ب الشبكات الثنائية.
- جلب النطاق مسبقًا.
- مجموعة التحكم المحمية (GCS) (ARMv9 فقط).
- الحوسبة السرية.
- سياقات تشفير الذاكرة.
- تعيين الجهاز.
ARMv9.5-A
[عدل]في أكتوبر 2023، أُعلن عن بنية ARMv9.5-A، بما في ذلك:[50]
- تمت إضافة دعم FP8 (تنسيقات E5M2 وE4M3) إلى:
- الشركات الصغيرة والمتوسطة 2
- سفي2
- SIMD المتقدم (نيون)
- الهجرة المباشرة للآلات الافتراضية باستخدام هياكل تتبع الحالة المتسخة للأجهزة (FEAT_HDBSS)
- حساب النقاط المفحوصة
- دعم استخدام مجموعة من الكمبيوتر الشخصي وSP كمعدِّل عند إنشاء أو التحقق من رموز مصادقة المؤشر.
- دعم التصميمات التي تدعم Realm Management Extension (RME)، ودعم التصميمات غير الآمنة فقط في جداول حماية الحبيبات، والقدرة على تعطيل مساحات العناوين المادية (PAS) معينة.
- مصائد الكتابة لتكوين EL3.
- دعم نقطة التوقف لنطاق العنوان وتشغيل عدم التطابق دون الحاجة إلى الارتباط.
- دعم تفويض SErrors بكفاءة من EL3 إلى EL2 أو EL1.
ARMv9.6-A
[عدل]في أكتوبر 2024، أُعلن عن بنية ARMv9.6-A، بما في ذلك:[51]
- تحسين كفاءة الشركات الصغيرة والمتوسطة من خلال عمليات التفرقة الهيكلية والربعية
- مجالات MPAM لدعم أنظمة الكمبيوتر ذات الذاكرة المشتركة بشكل أفضل على الأنظمة متعددة الشرائح والشرائح
- التحكم في ذاكرة المشرف الافتراضي للتتبع والتحليل الإحصائي على الآلات الافتراضية
- تحسين التخزين المؤقت ووضع البيانات
- عزل البيانات الحبيبية للحوسبة السرية
- قفل بتات لسجلات نظام EL1
- تحسين قياس جداول الحماية الحبيبية (GPT) لأنظمة الذاكرة الكبيرة
- تعليمات SVE جديدة للتوسيع/الضغط والعثور على أول/آخر عنصر نشط
- تعليمات إضافية للتحميل والتخزين غير المميزة لتمكين نظام التشغيل من التفاعل مع ذاكرة التطبيق
- تعليمات المقارنة والتفرع الجديدة
- حقن استثناءات التعليمات غير المحددة من EL3
ARM-R (هندسة الوقت الحقيقي)
[عدل]- ^ "Overview". Learn the architecture: Understanding the Armv8.x and Armv9.x extensions. مؤرشف من الأصل في 2025-03-21.
- ^ "ARM Cortex-A57 MPCore Processor Technical Reference Manual". Arm Ltd. مؤرشف من الأصل في 2025-05-30.
- ^ "Cortex-A32 Processor – ARM". مؤرشف من الأصل في 2016-11-08. اطلع عليه بتاريخ 2016-12-18.
- ^ "Samsung's Exynos 5433 is an A57/A53 ARM SoC". AnandTech. مؤرشف من الأصل في 2025-04-20. اطلع عليه بتاريخ 2014-09-17.
- ^ "ARM Cortex-A53 MPCore Processor Technical Reference Manual: Cryptography Extension". ARM. مؤرشف من الأصل في 2020-06-01. اطلع عليه بتاريخ 2016-09-11.
- ^ "Cortex-A32". Arm Developer. مؤرشف من الأصل في 2025-03-07.
- ^ "Cortex-A72". Arm Developer. مؤرشف من الأصل في 2025-04-21.
- ^ "Cortex-A34". Arm Developer. مؤرشف من الأصل في 2025-02-14.
- ^ Brash، David (2 ديسمبر 2014). "The ARMv8-A architecture and its ongoing development". مؤرشف من الأصل في 2024-12-13. اطلع عليه بتاريخ 2015-01-23.
- ^ "ARM Virtualization: Performance and Architectural Implications". ISCA 2016. 18 يونيو 2016. مؤرشف من الأصل في 2025-02-08.
- ^ "Top-byte ignore (TBI)". WikiChip. مؤرشف من الأصل في 2024-08-06.
- ^ Brash، David (5 يناير 2016). "ARMv8-A architecture evolution". مؤرشف من الأصل في 2016-10-04. اطلع عليه بتاريخ 2016-06-07.
- ^ ا ب "GCC 8 Release Series – Changes, New Features, and Fixes – GNU Project – Free Software Foundation (FSF)". gcc.gnu.org (بالإنجليزية). Archived from the original on 2025-05-13. Retrieved 2018-07-09.
- ^ "The scalable vector extension sve for the ARMv8 a architecture". Arm Community (بالإنجليزية). 22 Aug 2016. Archived from the original on 2018-09-07. Retrieved 2018-07-08.
- ^ "Fujitsu Completes Post-K Supercomputer CPU Prototype, Begins Functionality Trials – Fujitsu Global". www.fujitsu.com (Press release) (بالإنجليزية). Archived from the original on 2024-12-09. Retrieved 2018-07-08.
- ^ "Japan's Fugaku gains title as world's fastest supercomputer" (Press release) (بالإنجليزية). www.riken.jp. 23 Jun 2020. Archived from the original on 2025-05-06. Retrieved 2020-12-07.
- ^ "ORNL's Frontier First to Break the Exaflop Ceiling". Top500. 30 مايو 2022. مؤرشف من الأصل في 2025-04-19. اطلع عليه بتاريخ 2022-05-30.
- ^ "⚙ D71712 Downstream SVE/SVE2 implementation (LLVM)". reviews.llvm.org. مؤرشف من الأصل في 2024-12-12.
- ^ David Brash (26 أكتوبر 2016). "ARMv8-A architecture – 2016 additions". مؤرشف من الأصل في 2021-07-25.
- ^ "[Ping~,AArch64] Add commandline support for -march=armv8.3-a". مؤرشف من الأصل في 2021-02-26.
pointer authentication extension is defined to be mandatory extension on ARMv8.3-A and is not optional
- ^ "Pointer Authentication on Arm". ARM. مؤرشف من الأصل في 2025-04-01. اطلع عليه بتاريخ 2025-03-05.
- ^ "Qualcomm releases whitepaper detailing pointer authentication on ARMv8.3". 10 يناير 2017. مؤرشف من الأصل في 2022-02-22.
- ^ "A64 Floating-point Instructions: FJCVTZS". arm.com. مؤرشف من الأصل في 2019-07-29. اطلع عليه بتاريخ 2019-07-11.
- ^ "GCC 7 Release Series – Changes, New Features, and Fixes". مؤرشف من الأصل في 2025-05-12.
The ARMv8.3-A architecture is now supported. It can be used by specifying the -march=armv8.3-a option. [..] The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions.
- ^ "Introducing 2017's extensions to the Arm Architecture". community.arm.com (بالإنجليزية). 2 Nov 2017. Archived from the original on 2021-08-04. Retrieved 2019-06-15.
- ^ "Exploring dot product machine learning". community.arm.com (بالإنجليزية). 6 Dec 2017. Archived from the original on 2021-07-30. Retrieved 2019-06-15.
- ^ "ARM Preps ARMv8.4-A Support For GCC Compiler – Phoronix". www.phoronix.com (بالإنجليزية). Archived from the original on 2022-03-28. Retrieved 2018-01-14.
- ^ "NEVE: Nested Virtualization Extensions for ARM". SOSP 2017. 14 أكتوبر 2017. مؤرشف من الأصل في 2024-05-18.
- ^ ا ب ج د "ARMv8.x and ARMv9.x extensions and features". Learn the architecture: Understanding the ARMv8.x and ARMv9.x extensions. مؤرشف من الأصل في 2025-05-16.
- ^ "Arm Architecture ARMv8.5-A Announcement – Processors blog – Processors – Arm Community". community.arm.com (بالإنجليزية). Archived from the original on 2024-12-14. Retrieved 2019-04-26.
- ^ "Arm Architecture Reference Manual ARMv8, for ARMv8-A architecture profile". ARM Developer (بالإنجليزية). Archived from the original on 2020-06-29. Retrieved 2019-08-06.
- ^ "Arm MTE architecture: Enhancing memory safety". community.arm.com (بالإنجليزية). 5 Aug 2019. Archived from the original on 2024-12-19. Retrieved 2021-07-27.
- ^ "Adopting the Arm Memory Tagging Extension in Android". Google Online Security Blog (بالإنجليزية). Archived from the original on 2025-05-15. Retrieved 2019-08-06.
- ^ Frumusanu، Andrei. "Arm Announces ARMv9 Architecture: SVE2, Security, and the Next Decade". www.anandtech.com. مؤرشف من الأصل في 2025-04-18. اطلع عليه بتاريخ 2021-07-27.
- ^ "Arm's solution to the future needs of AI, security and specialized computing is v9". Arm | The Architecture for the Digital World (بالإنجليزية). Archived from the original on 2023-09-22. Retrieved 2021-07-27.
- ^ Schor, David (30 Mar 2021). "Arm Launches ARMv9". WikiChip Fuse (بالإنجليزية الأمريكية). Archived from the original on 2025-03-16. Retrieved 2021-07-27.
- ^ ا ب ج "Arm releases SVE2 and TME for A-profile architecture – Processors blog – Processors – Arm Community". community.arm.com (بالإنجليزية). 18 Apr 2019. Archived from the original on 2024-12-13. Retrieved 2019-05-25.
- ^ ا ب "Arm SVE2 Support Aligning For GCC 10, LLVM Clang 9.0 – Phoronix". www.phoronix.com. مؤرشف من الأصل في 2022-04-05. اطلع عليه بتاريخ 2019-05-26.
- ^ "Design and Verification of the Arm Confidential Compute Architecture". OSDI 2022. مؤرشف من الأصل في 2025-05-15. اطلع عليه بتاريخ 2022-07-11.
- ^ "Unlocking the power of data with Arm CCA". community.arm.com (بالإنجليزية). 23 Jun 2021. Archived from the original on 2021-09-19. Retrieved 2021-07-27.
- ^ "Arm Introduces Its Confidential Compute Architecture". WikiChip Fuse (بالإنجليزية الأمريكية). 23 Jun 2021. Archived from the original on 2025-05-01. Retrieved 2021-07-27.
- ^ "Arm A profile architecture update 2019". community.arm.com (بالإنجليزية). 25 Sep 2019. Archived from the original on 2024-12-13. Retrieved 2019-09-26.
- ^ "LLVM 11.0.0 Release Notes". releases.llvm.org. مؤرشف من الأصل في 2025-03-03. اطلع عليه بتاريخ 2021-03-11.
- ^ "BFloat16 extensions for ARMv8-A". community.arm.com (بالإنجليزية). 29 Aug 2019. Archived from the original on 2024-12-17. Retrieved 2019-08-30.
- ^ Weidmann، Martin (21 سبتمبر 2020). "Arm A-Profile Architecture Developments 2020". community.arm.com. ARM. مؤرشف من الأصل في 2025-04-18. اطلع عليه بتاريخ 2022-09-28.
- ^ "Scalable Matrix Extension for the ARMv9-A Architecture". community.arm.com (بالإنجليزية). 14 Jul 2021. Archived from the original on 2021-09-25. Retrieved 2021-07-27.
- ^ Weidmann، Martin (8 سبتمبر 2021). "Arm A-Profile Architecture Developments 2021". community.arm.com. ARM. مؤرشف من الأصل في 2025-02-16. اطلع عليه بتاريخ 2022-09-28.
- ^ "What is New in LLVM 15? - Architectures and Processors blog - Arm Community blogs - Arm Community". 27 فبراير 2023. مؤرشف من الأصل في 2023-04-18. اطلع عليه بتاريخ 2023-04-15.
- ^ "Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community". community.arm.com (بالإنجليزية). 29 Sep 2022. Archived from the original on 2025-05-05. Retrieved 2022-12-09.
- ^ "Arm A-Profile Architecture Developments 2023 - Architectures and Processors blog - Arm Community blogs - Arm Community". community.arm.com (بالإنجليزية). 5 Oct 2023. Archived from the original on 2025-02-12. Retrieved 2024-10-14.
- ^ "Arm A-Profile Architecture Developments 2024 - Architectures and Processors blog - Arm Community blogs - Arm Community". community.arm.com (بالإنجليزية). 1 Oct 2024. Archived from the original on 2025-03-15. Retrieved 2024-10-14.
صُممت بنية ARM-R، وتحديدًا ملف تعريف Armv8-R، لتلبية متطلبات التطبيقات التي تعمل في الوقت الفعلي. هذه التطبيقات تتطلب سلوكًا متوقعًا وحتميًا. يركز هذا الملف التعريفي على توفير أداء عالٍ، وموثوقية، وكفاءة للأنظمة المدمجة التي تُعد فيها القيود الزمنية الحقيقية بالغة الأهمية.
مع إدخال دعم AArch64 الاختياري في ملف تعريف Armv8-R، تعززت قدرات الوقت الفعلي بشكل كبير.[1] يُعد معالج Cortex-R82 أول معالج يُطبق هذا الدعم الموسع، مقدمًا بذلك العديد من الميزات والتحسينات الجديدة التي تخدم مجال الأنظمة الحقيقية.[2]
الميزات الرئيسية لبرنامج Armv8-R مع دعم AArch64
[عدل]- مجموعة تعليمات AArch64 (A64) :
- توفر مجموعة تعليمات A64 [3] الموجودة في Cortex-R82 معالجة البيانات والعمليات بدقة 64 بت، مما يحسن الأداء لبعض المهام الحسابية ويعزز كفاءة النظام بشكل عام.[4]
- مثال تعليمي :
ADD X0, X1, X2
يضيف القيم في السجلات 64 بت X1 وX2 ويخزن النتيجة في X0. تتيح هذه العملية ذات الـ 64 بت إجراء حسابات أكبر وأكثر تعقيدًا مقارنة بالعمليات ذات الـ 32 بت لمجموعة التعليمات A32 السابقة.
- إدارة الذاكرة المحسنة :
- تعليمات حاجز الذاكرة : يقدم Cortex-R82 تعليمات حاجز الذاكرة المحسنة لضمان الترتيب الصحيح لعمليات الذاكرة، وهو أمر بالغ الأهمية في أنظمة الوقت الحقيقي حيث يجب التحكم في توقيت عمليات الذاكرة بشكل صارم.[5]
- حاجز مزامنة البيانات (DSB) : يضمن اكتمال جميع عمليات الوصول إلى البيانات قبل الحاجز قبل الاستمرار في العمليات اللاحقة.
- حاجز ذاكرة البيانات (DMB) : يضمن أن يتم الانتهاء من جميع عمليات الوصول إلى الذاكرة قبل الحاجز قبل أن تتمكن أي عمليات وصول إلى الذاكرة بعد الحاجز من المتابعة.
- على سبيل المثال : في نظام التحكم في السيارات في الوقت الحقيقي، يمكن استخدام DSB للتأكد من كتابة بيانات المستشعر بالكامل في الذاكرة قبل أن يشرع النظام في المعالجة أو اتخاذ القرار، مما يمنع تلف البيانات أو التناقضات.
- تعليمات حاجز الذاكرة : يقدم Cortex-R82 تعليمات حاجز الذاكرة المحسنة لضمان الترتيب الصحيح لعمليات الذاكرة، وهو أمر بالغ الأهمية في أنظمة الوقت الحقيقي حيث يجب التحكم في توقيت عمليات الذاكرة بشكل صارم.[5]
- مساحة عنوان محسنة :
- عنونة 64 بت : يسمح AArch64 لـ Cortex-R82 بمعالجة مساحة ذاكرة أكبر بكثير مقارنة بإصداراتها السابقة ذات 32 بت، مما يجعلها مناسبة للتطبيقات التي تتطلب ذاكرة واسعة النطاق.
- مثال : يمكن لنظام أتمتة صناعية معقد الاستفادة من مساحة العنوان الموسعة لإدارة مجموعات البيانات الكبيرة والمخازن المؤقتة بكفاءة أكبر، مما يؤدي إلى تحسين أداء النظام وقدرته.
- تحسينات الأداء في الوقت الفعلي :
- معالجة المقاطعات : بفضل دعم AArch64، يمكن لـ Cortex-R82 معالجة المقاطعات بزمن انتقال أقل وإمكانية توقع محسنة، وهو أمر بالغ الأهمية للعمليات في الوقت الفعلي.
- على سبيل المثال : في تطبيق الروبوتات، يمكن لمعالجة المقاطعات المحسنة في Cortex-R82 ضمان الاستجابات في الوقت المناسب للمحفزات الخارجية، مثل التغييرات في بيانات المستشعر أو أوامر التحكم.
مراجع
[عدل]روابط خارجية
[عدل]- ^ Frumusanu، Andrei (3 سبتمبر 2020). "ARM Announced Cortex-R82: First 64-bit Real Time Processor". AnandTech. مؤرشف من الأصل في 2025-03-23.Frumusanu, Andrei (3 September 2020). "ARM Announced Cortex-R82: First 64-bit Real Time Processor". AnandTech.
- ^ "Arm Architecture Reference Manual Supplement - Armv8, for Armv8-R AArch64 architecture profile". Arm Ltd. مؤرشف من الأصل في 2024-12-09.
- ^ اكتب عنوان المرجع بين علامتي الفتح
<ref>
والإغلاق</ref>
للمرجع:0
- ^ Frumusanu، Andrei (3 سبتمبر 2020). "ARM Announced Cortex-R82: First 64-bit Real Time Processor". AnandTech. مؤرشف من الأصل في 2025-03-23.
- ^ "Cortex-R82 Technical Reference Manual". مؤرشف من الأصل في 2024-12-26.