عائلة معمارية ARM

ذراع
مصمم
أجزاء32 بت ، 64 بت
قدَّم1985 ؛ منذ 39 سنة ( 1985 )
تصميمريسك
يكتبتحميل-تخزين
التفرعكود الحالة والمقارنة والتفرع
يفتحالملكية
ARM 64/32 بت
قدَّم2011 ؛ منذ 13 سنة ( 2011 )
إصدارARMv8-R، ARMv8-A، ARMv8.1-A، ARMv8.2-A، ARMv8.3-A، ARMv8.4-A، ARMv8.5-A، ARMv8.6-A، ARMv8.7-A، ARMv8.8-A، ARMv8.9-A، ARMv9.0-A، ARMv9.1-A، ARMv9.2-A، ARMv9.3-A، ARMv9.4-A، ARMv9.5-A، ARMv9.6-A
الترميزيستخدم AArch64 /A64 وAArch32/A32 تعليمات مكونة من 32 بت، بينما يستخدم AArch32/T32 (Thumb-2) تعليمات مختلطة مكونة من 16 بت و32 بت [1]
الانديانيةثنائي (قليلا كإعداد افتراضي)
الإضافاتSVE ، SVE2، SME، AES، SM3، SM4، SHA، CRC32، TME؛ جميعها إلزامية: Thumb-2، Neon، VFPv4-D16، VFPv4؛ قديمة: Jazelle
السجلات
أغراض عامة31 × 64 بت سجلات عددية صحيحة [1]
نقطة عائمة32 × 128 بت [ 1] لـ FP أو FP SIMD أو عدد صحيح قياسي 32 و 64 بت ؛ أو التشفير
ARM 32 بت
إصدارARMv9-R، ARMv9-M، ARMv8-R، ARMv8-M، ARMv7-A، ARMv7-R، ARMv7E-M، ARMv7-M، ARMv6-M
الترميز32 بت، باستثناء ملحقات Thumb-2 التي تستخدم تعليمات مختلطة من 16 بت و32 بت.
الانديانيةثنائي (قليلا كإعداد افتراضي)
الإضافاتإبهام-2، نيون، جازيل ، AES، SM3، SM4، SHA، CRC32، DSP، مشبع، FPv4-SP، FPv5، هيليوم
السجلات
أغراض عامة15 × 32 بت سجلات عددية صحيحة، بما في ذلك R14 (سجل الارتباط)، ولكن ليس R15 (الكمبيوتر الشخصي)
نقطة عائمةما يصل إلى 32 × 64 بت سجلات، [2] SIMD/فاصلة عائمة (اختياري)
ARM 32 بت (إرث)
إصدارARMv6، ARMv5، ARMv4T، ARMv3، ARMv2
الترميز32 بت، باستثناء أن امتداد Thumb يستخدم تعليمات مختلطة من 16 بت و32 بت.
الانديانيةBi (القليل كإعداد افتراضي) في ARMv3 وما فوق
الإضافاتالابهام ، جازيل
السجلات
أغراض عامة15 × 32 بت من السجلات الصحيحة، بما في ذلك R14 (سجل الارتباط)، ولكن ليس R15 (الكمبيوتر الشخصي، عنونة 26 بت في الإصدارات الأقدم)
نقطة عائمةلا أحد

ARM (بأسلوب الكتابة بالأحرف الصغيرة arm ، والتي كانت في السابق اختصارًا لـ Advanced RISC Machines وفي الأصل Acorn RISC Machine ) هي عائلة من بنيات مجموعة التعليمات RISC (ISAs) لمعالجات الكمبيوتر . تقوم شركة Arm Holdings بتطوير بنيات مجموعة التعليمات RISC وترخصها لشركات أخرى، والتي تقوم ببناء الأجهزة المادية التي تستخدم مجموعة التعليمات. كما تقوم بتصميم وترخيص النوى التي تنفذ بنيات مجموعة التعليمات RISC هذه.

نظرًا لتكاليفها المنخفضة واستهلاكها المنخفض للطاقة وتوليدها للحرارة المنخفضة، فإن معالجات ARM مفيدة للأجهزة الخفيفة والمحمولة التي تعمل بالبطارية، بما في ذلك الهواتف الذكية وأجهزة الكمبيوتر المحمولة وأجهزة الكمبيوتر اللوحية ، بالإضافة إلى الأنظمة المضمنة . [3] [4] [5] ومع ذلك، تُستخدم معالجات ARM أيضًا لأجهزة الكمبيوتر المكتبية والخوادم ، بما في ذلك أسرع حاسوب فائق في العالم ( Fugaku ) ​​من عام 2020 [6] إلى عام 2022. مع إنتاج أكثر من 230 مليار شريحة ARM، [7] [8] منذ عام 2003 على الأقل، ومع تزايد هيمنتها كل عام ، تعد ARM هي العائلة الأكثر استخدامًا من بنيات مجموعة التعليمات. [9] [4] [10] [11] [12]

كانت هناك عدة أجيال من تصميم ARM. استخدم ARM1 الأصلي بنية داخلية 32 بت ولكنه كان لديه مساحة عنوان 26 بت مما حده إلى 64 ميجا بايت من الذاكرة الرئيسية . تمت إزالة هذا القيد في سلسلة ARMv3، التي تحتوي على مساحة عنوان 32 بت، وظلت عدة أجيال إضافية حتى ARMv7 32 بت. تم إصدار بنية ARMv8-A في عام 2011، وأضافت دعمًا لمساحة عنوان 64 بت وحساب 64 بت مع مجموعة التعليمات الجديدة ذات الطول الثابت 32 بت. [13] أصدرت Arm Holdings أيضًا سلسلة من مجموعات التعليمات الإضافية لقواعد مختلفة؛ يضيف امتداد "Thumb" تعليمات 32 بت و16 بت لتحسين كثافة التعليمات البرمجية ، بينما أضافت Jazelle تعليمات للتعامل مباشرة مع بايت كود Java . تتضمن التغييرات الأحدث إضافة تعدد الخيوط المتزامن (SMT) لتحسين الأداء أو تحمل الأخطاء . [14]

تاريخ

بي بي سي مايكرو

كان أول تصميم ناجح على نطاق واسع لشركة Acorn Computers هو BBC Micro ، الذي تم طرحه في ديسمبر 1981. كان هذا جهازًا تقليديًا نسبيًا يعتمد على وحدة المعالجة المركزية MOS Technology 6502 ولكنه كان يعمل بأداء ضعف أداء التصميمات المنافسة مثل Apple II تقريبًا بسبب استخدامه لذاكرة الوصول العشوائي الديناميكية الأسرع (DRAM). كانت ذاكرة الوصول العشوائي الديناميكية النموذجية في ذلك العصر تعمل بسرعة 2 ميجا هرتز تقريبًا؛ رتبت Acorn صفقة مع شركة Hitachi لتوريد أجزاء أسرع بسرعة 4 ميجا هرتز. [15]

كانت أجهزة ذلك العصر تشترك عمومًا في الذاكرة بين المعالج ومخزن الإطارات ، مما سمح للمعالج بتحديث محتويات الشاشة بسرعة دون الحاجة إلى إجراء إدخال/إخراج منفصلين . ونظرًا لأن توقيت عرض الفيديو دقيق، كان لزامًا على أجهزة الفيديو أن تتمتع بأولوية الوصول إلى تلك الذاكرة. وبسبب غرابة تصميم 6502، تركت وحدة المعالجة المركزية الذاكرة دون مساس لمدة نصف الوقت. وبالتالي، من خلال تشغيل وحدة المعالجة المركزية بسرعة 1 ميجاهرتز، يمكن لنظام الفيديو قراءة البيانات خلال أوقات التوقف تلك، مما يشغل إجمالي عرض النطاق الترددي البالغ 2 ميجاهرتز للذاكرة العشوائية. وفي جهاز بي بي سي ميكرو، سمح استخدام ذاكرة عشوائية بسرعة 4 ميجاهرتز باستخدام نفس التقنية، ولكن بسرعة مضاعفة. وقد سمح هذا لها بالتفوق على أي جهاز مماثل في السوق. [16]

كمبيوتر أعمال أكورن

كان عام 1981 أيضًا هو العام الذي تم فيه طرح جهاز الكمبيوتر الشخصي من شركة IBM . باستخدام معالج Intel 8088 الذي تم طرحه مؤخرًا ، وهو معالج 16 بت مقارنة بتصميم 8 بت لجهاز 6502 ، فقد قدم أداءً أعلى بشكل عام. وقد أدى طرحه إلى تغيير سوق أجهزة الكمبيوتر المكتبية بشكل جذري: حيث بدأ سوق الهوايات والألعاب الناشئ على مدار السنوات الخمس السابقة في التحول إلى أداة عمل ضرورية حيث لم تتمكن التصميمات السابقة ذات 8 بت من المنافسة ببساطة. حتى التصميمات الأحدث ذات 32 بت كانت تأتي أيضًا إلى السوق، مثل Motorola 68000 [17] و National Semiconductor NS32016 . [18]

بدأت شركة Acorn في التفكير في كيفية المنافسة في هذا السوق وأنتجت تصميمًا ورقيًا جديدًا يسمى Acorn Business Computer . لقد حددوا لأنفسهم هدفًا يتمثل في إنتاج جهاز بأداء أعلى بعشر مرات من أداء BBC Micro، ولكن بنفس السعر. [19] وهذا من شأنه أن يتفوق على الكمبيوتر الشخصي ويقلل من سعره. في الوقت نفسه، أدى طرح Apple Lisa مؤخرًا إلى جلب مفهوم واجهة المستخدم الرسومية (GUI) إلى جمهور أوسع واقترح أن المستقبل ينتمي إلى الأجهزة ذات واجهة المستخدم الرسومية. [20] ومع ذلك، تكلف Lisa 9995 دولارًا، حيث كانت معبأة بشرائح الدعم وكميات كبيرة من الذاكرة ومحرك الأقراص الصلبة ، وكلها باهظة الثمن في ذلك الوقت. [21]

بدأ المهندسون بعد ذلك في دراسة جميع تصميمات وحدة المعالجة المركزية المتاحة. وكان استنتاجهم بشأن التصميمات الحالية ذات الـ 16 بت أنها كانت أكثر تكلفة بكثير ولا تزال "رديئة بعض الشيء"، [22] حيث تقدم أداءً أعلى قليلاً من تصميم BBC Micro الخاص بهم. كما طالبوا دائمًا تقريبًا بعدد كبير من شرائح الدعم للعمل حتى عند هذا المستوى، مما أدى إلى ارتفاع تكلفة الكمبيوتر ككل. لن تحقق هذه الأنظمة ببساطة هدف التصميم. [22] كما نظروا أيضًا في التصميمات الجديدة ذات الـ 32 بت، لكن هذه التصميمات تكلف أكثر وكانت تعاني من نفس المشكلات مع شرائح الدعم. [23] وفقًا لسوفي ويلسون ، كان أداء جميع المعالجات التي تم اختبارها في ذلك الوقت متماثلًا تقريبًا، مع عرض نطاق ترددي يبلغ حوالي 4 ميجابت في الثانية. [24] [أ]

حدثان رئيسيان قادا شركة Acorn إلى طريق ARM. كان أحدهما نشر سلسلة من التقارير من جامعة كاليفورنيا، بيركلي ، والتي اقترحت أن تصميم الشريحة البسيطة يمكن أن يكون له أداء عالٍ للغاية، أعلى بكثير من أحدث تصميمات 32 بت في السوق. [25] كان الحدث الثاني زيارة ستيف فوربر وصوفي ويلسون إلى مركز التصميم الغربي ، وهي شركة يديرها بيل مينش وشقيقته، والتي أصبحت الخليفة المنطقي لفريق MOS وكانت تقدم إصدارات جديدة مثل WDC 65C02 . رأى فريق Acorn طلاب المدارس الثانوية ينتجون تخطيطات الشريحة على أجهزة Apple II، مما يشير إلى أنه يمكن لأي شخص القيام بذلك. [26] [27] على النقيض من ذلك، كشفت زيارة لشركة تصميم أخرى تعمل على وحدة معالجة مركزية حديثة 32 بت عن فريق يضم أكثر من اثني عشر عضوًا كانوا بالفعل في المراجعة H من تصميمهم ومع ذلك لا يزال يحتوي على أخطاء. [ب] عزز هذا قرارهم في أواخر عام 1983 ببدء تصميم وحدة المعالجة المركزية الخاصة بهم، وهي آلة Acorn RISC. [28]

مفاهيم التصميم

كانت تصميمات Berkeley RISC الأصلية عبارة عن أنظمة تعليمية بمعنى ما، ولم يتم تصميمها خصيصًا للأداء الصريح. إلى مفاهيم RISC الأساسية الثقيلة بالسجلات والتحميل/التخزين، أضافت ARM عددًا من ملاحظات التصميم التي لاقت استحسانًا كبيرًا من 6502. كان من بينها القدرة على خدمة المقاطعات بسرعة ، مما سمح للآلات بتقديم أداء معقول للإدخال/الإخراج بدون إضافة أجهزة خارجية. لتقديم مقاطعات بأداء مماثل لـ 6502، حدد تصميم ARM مساحة عنوانه المادية إلى 64 ميجا بايت من إجمالي المساحة القابلة للعنونة، مما يتطلب 26 بتًا من العنوان. نظرًا لأن التعليمات كانت بطول 4 بايت (32 بت)، وكان من المطلوب محاذاتها على حدود مكونة من 4 بايتات، فإن البتتين السفليتين من عنوان التعليمات كانتا دائمًا صفرًا. هذا يعني أن عداد البرنامج (PC) كان بحاجة فقط إلى أن يكون 24 بتًا، مما يسمح بتخزينه مع علامات المعالج ذات الثماني بتات في سجل واحد مكون من 32 بت. وهذا يعني أنه عند تلقي مقاطعة، يمكن حفظ حالة الجهاز بالكامل في عملية واحدة، بينما لو كان الكمبيوتر الشخصي عبارة عن قيمة 32 بت كاملة، فسوف يتطلب الأمر عمليات منفصلة لتخزين الكمبيوتر الشخصي وأعلام الحالة. وقد أدى هذا القرار إلى تقليل تكلفة المقاطعة إلى النصف. [29]

كان أحد التغييرات الأخرى، ومن بين أهمها من حيث الأداء العملي في العالم الحقيقي، هو تعديل مجموعة التعليمات للاستفادة من وضع الصفحة في ذاكرة الوصول العشوائي الديناميكية . سمح وضع الصفحة الذي تم تقديمه مؤخرًا بتشغيل عمليات الوصول اللاحقة للذاكرة بسرعة مضاعفة إذا كانت في نفس الموقع تقريبًا، أو "الصفحة"، في شريحة ذاكرة الوصول العشوائي الديناميكية. لم يأخذ تصميم بيركلي وضع الصفحة في الاعتبار وعامل جميع الذاكرة على قدم المساواة. أضاف تصميم ARM تعليمات خاصة للوصول إلى الذاكرة تشبه المتجهات، "دورات S"، والتي يمكن استخدامها لملء أو حفظ سجلات متعددة في صفحة واحدة باستخدام وضع الصفحة. ضاعف هذا أداء الذاكرة عندما يمكن استخدامها، وكان مهمًا بشكل خاص لأداء الرسومات. [30]

استخدمت تصميمات Berkeley RISC نوافذ التسجيل لتقليل عدد عمليات حفظ التسجيل واستعادته التي يتم إجراؤها في استدعاءات الإجراءات ؛ ولم يعتمد تصميم ARM هذا.

طور ويلسون مجموعة التعليمات، وكتب محاكاة للمعالج في BBC BASIC الذي تم تشغيله على BBC Micro مع معالج 6502 ثانٍ . [31] [32] أقنع هذا مهندسي Acorn بأنهم على المسار الصحيح. اتصل ويلسون بالرئيس التنفيذي لشركة Acorn، هيرمان هاوزر ، وطلب المزيد من الموارد. أعطى هاوزر موافقته وجمع فريقًا صغيرًا لتصميم المعالج الفعلي بناءً على ISA الخاص بـ Wilson. [33] بدأ مشروع Acorn RISC Machine الرسمي في أكتوبر 1983.

الذراع 1

معالج ARM1 الثاني لـ BBC Micro

اختارت شركة Acorn شركة VLSI Technology باعتبارها "شريك السيليكون"، حيث كانت مصدرًا لوحدات ذاكرة القراءة فقط والرقائق المخصصة لشركة Acorn. قدمت شركة Acorn التصميم وقدمت شركة VLSI التخطيط والإنتاج. عملت العينات الأولى من السيليكون من ARM بشكل صحيح عند استلامها واختبارها لأول مرة في 26 أبريل 1985. [3] عُرفت هذه الإصدارات باسم ARM1، وكانت تعمل بتردد 6 ميجاهرتز. [34]

كان أول تطبيق ARM بمثابة معالج ثانٍ لـ BBC Micro، حيث ساعد في تطوير برنامج محاكاة لإكمال تطوير شرائح الدعم (VIDC وIOC وMEMC)، وتسريع برنامج CAD المستخدم في تطوير ARM2. أعاد ويلسون بعد ذلك كتابة BBC BASIC بلغة تجميع ARM . مكنت المعرفة العميقة المكتسبة من تصميم مجموعة التعليمات من أن يكون الكود كثيفًا للغاية، مما يجعل ARM BBC BASIC اختبارًا جيدًا للغاية لأي محاكي ARM.

أرم2

أدت نتيجة المحاكاة على لوحات ARM1 إلى تقديم تصميم ARM2 في أواخر عام 1986 والذي يعمل بتردد 8 ميجا هرتز، وإصدار عام 1987 الذي تم زيادة سرعته إلى 10 إلى 12 ميجا هرتز. [ج] كان التغيير الكبير في البنية الأساسية هو إضافة مضاعف Booth ، في حين كان يجب في السابق إجراء الضرب في البرنامج. [36] علاوة على ذلك، سمح وضع طلب المقاطعة السريع الجديد، FIQ باختصار، باستبدال السجلات من 8 إلى 14 كجزء من المقاطعة نفسها. وهذا يعني أن طلبات FIQ لم يكن عليها حفظ سجلاتها، مما أدى إلى تسريع المقاطعات بشكل أكبر. [37]

كان أول استخدام لـ ARM2 هو أجهزة الكمبيوتر الشخصية Acorn Archimedes طراز A305 وA310 وA440 التي تم إطلاقها في عام 1987.

وفقًا لمعيار Dhrystone ، كان أداء ARM2 أعلى بنحو سبعة أضعاف من أداء نظام نموذجي يعتمد على 68000 بسرعة 7 ميجاهرتز مثل Amiga أو Macintosh SE . كان أسرع بمرتين من Intel 80386 يعمل بسرعة 16 ميجاهرتز، وبنفس سرعة حاسوب VAX-11/784 الفائق الصغر متعدد المعالجات . كانت الأنظمة الوحيدة التي تفوقت عليها هي محطات العمل Sun SPARC و MIPS R2000 القائمة على RISC . [38] علاوة على ذلك، نظرًا لأن وحدة المعالجة المركزية مصممة للإدخال والإخراج عالي السرعة، فقد استغنت عن العديد من شرائح الدعم الموجودة في هذه الأجهزة؛ والجدير بالذكر أنها تفتقر إلى أي وحدة تحكم مخصصة للوصول المباشر للذاكرة (DMA) والتي غالبًا ما توجد في محطات العمل. كما تم تبسيط نظام الرسومات بناءً على نفس مجموعة الافتراضات الأساسية حول الذاكرة والتوقيت. وكانت النتيجة تصميمًا مبسطًا بشكل كبير، يوفر أداءً على قدم المساواة مع محطات العمل باهظة الثمن ولكن بسعر مماثل لأجهزة الكمبيوتر المكتبية المعاصرة. [38]

تميزت ARM2 بناقل بيانات 32 بت ومساحة عنوان 26 بت و27 سجلًا 32 بت ، يمكن الوصول إلى 16 منها في أي وقت (بما في ذلك الكمبيوتر الشخصي ). [39] كان عدد ترانزستورات ARM2 30000 فقط، [40] مقارنة بطراز 68000 من موتورولا الذي يبلغ من العمر ست سنوات والذي يحتوي على حوالي 68000. جاء الكثير من هذه البساطة من عدم وجود التعليمات البرمجية الدقيقة ، والتي تمثل حوالي ربع إلى ثلث ترانزستورات 68000، وعدم وجود ذاكرة تخزين مؤقتة (مثل معظم وحدات المعالجة المركزية في ذلك اليوم) . مكنت هذه البساطة ARM2 من استهلاك طاقة منخفض وتغليف حراري أبسط من خلال وجود عدد أقل من الترانزستورات التي تعمل بالطاقة. ومع ذلك، قدم ARM2 أداءً أفضل من طراز IBM PS/2 Model 50 المعاصر لعام 1987 ، والذي استخدم في البداية معالج Intel 80286 ، والذي يوفر 1.8 MIPS @ 10 MHz، وفي وقت لاحق في عام 1987، 2 MIPS من PS/2 70، مع معالج Intel 386 DX @ 16 MHz. [41] [42]

تم إنتاج خليفة، ARM3، مع ذاكرة تخزين مؤقتة بحجم 4 كيلوبايت، مما أدى إلى تحسين الأداء بشكل أكبر. [43] تم توسيع ناقل العناوين إلى 32 بت في ARM6، لكن كود البرنامج كان لا يزال يتعين أن يقع ضمن أول 64 ميجا بايت من الذاكرة في وضع التوافق 26 بت، بسبب البتات المحجوزة لعلامات الحالة. [44]

شركة RISC Machines المتقدمة المحدودة – ARM6

نظام يعتمد على المعالج الدقيق على شريحة
قالب معالج ARM610

في أواخر الثمانينيات، بدأت شركة Apple Computer و VLSI Technology العمل مع Acorn على إصدارات أحدث من نواة ARM. في عام 1990، قامت Acorn بتقسيم فريق التصميم إلى شركة جديدة تسمى Advanced RISC Machines Ltd.، [45] [46] [47] والتي أصبحت ARM Ltd. عندما طرحت شركتها الأم، Arm Holdings plc، أسهمها في بورصة لندن وناسداك في عام 1998. [48] تطور عمل Apple-ARM الجديد في النهاية إلى ARM6، الذي تم إصداره لأول مرة في أوائل عام 1992. استخدمت Apple معالج ARM610 المستند إلى ARM6 كأساس لجهاز المساعد الرقمي الشخصي Apple Newton الخاص بها .

المرخصون الأوائل

في عام 1994، استخدمت شركة Acorn معالج ARM610 كوحدة معالجة مركزية رئيسية في أجهزة الكمبيوتر RiscPC الخاصة بها . قامت شركة DEC بترخيص بنية ARMv4 وأنتجت StrongARM . [49] عند 233  ميجا هرتز ، استهلكت وحدة المعالجة المركزية هذه واطًا واحدًا فقط (تستهلك الإصدارات الأحدث أقل بكثير). تم نقل هذا العمل لاحقًا إلى شركة Intel كجزء من تسوية دعوى قضائية، واغتنمت شركة Intel الفرصة لتكملة خط i960 الخاص بها باستخدام StrongARM. طورت شركة Intel لاحقًا تنفيذًا عالي الأداء خاصًا بها يسمى XScale ، والذي باعته منذ ذلك الحين لشركة Marvell . ظل عدد الترانزستورات في نواة ARM كما هو بشكل أساسي طوال هذه التغييرات؛ كان لدى ARM2 30000 ترانزستور، [50] بينما نما ARM6 إلى 35000 فقط. [51]

الحصة السوقية

في عام 2005، استخدم حوالي 98% من جميع الهواتف المحمولة المباعة معالج ARM واحدًا على الأقل. [52] في عام 2010، أبلغ منتجو الرقائق القائمة على بنيات ARM عن شحنات بلغت 6.1 مليار معالج قائم على ARM ، وهو ما يمثل 95% من الهواتف الذكية ، و35% من أجهزة التلفزيون الرقمية وأجهزة فك التشفير ، و10% من أجهزة الكمبيوتر المحمولة . في عام 2011، كانت بنية ARM ذات 32 بت هي البنية الأكثر استخدامًا على نطاق واسع في الأجهزة المحمولة والأكثر شيوعًا في الأنظمة المضمنة ذات 32 بت. [53] في عام 2013، تم إنتاج 10 مليارات [54] و"توجد الرقائق القائمة على ARM في ما يقرب من 60 في المائة من الأجهزة المحمولة في العالم". [55]

الترخيص

قالب متحكم STM32 F103VGT6 ARM Cortex-M3 مع  ذاكرة فلاش شركة STMicroelectronics

الترخيص الأساسي

يتمثل النشاط التجاري الأساسي لشركة Arm Holdings في بيع نوى IP ، والتي يستخدمها المرخصون لإنشاء وحدات تحكم دقيقة (MCUs) ووحدات معالجة مركزية (CPU ) وأنظمة على شرائح تعتمد على تلك النوى. يجمع مصنع التصميم الأصلي بين نواة ARM وأجزاء أخرى لإنتاج جهاز كامل، وعادةً ما يمكن بناؤه في مصانع تصنيع أشباه الموصلات الحالية (fabs) بتكلفة منخفضة ولا يزال يقدم أداءً كبيرًا. كان التنفيذ الأكثر نجاحًا هو ARM7TDMI مع بيع مئات الملايين. كانت Atmel مركز تصميم رائد في النظام المضمن القائم على ARM7TDMI.

تتراوح معماريات ARM المستخدمة في الهواتف الذكية وأجهزة المساعد الرقمي الشخصي (PDA) والأجهزة المحمولة الأخرى من ARMv5 إلى ARMv8-A .

في عام 2009، قدمت بعض الشركات المصنعة أجهزة كمبيوتر محمولة صغيرة تعتمد على وحدات معالجة مركزية ذات بنية ARM، في منافسة مباشرة مع أجهزة الكمبيوتر المحمولة الصغيرة المعتمدة على Intel Atom . [56]

تقدم شركة Arm Holdings مجموعة متنوعة من شروط الترخيص، وتختلف في التكلفة والمنتجات. تقدم شركة Arm Holdings لجميع المرخص لهم وصفًا متكاملًا للأجهزة الأساسية الخاصة بـ ARM بالإضافة إلى مجموعة كاملة من أدوات تطوير البرامج ( المترجم ، ومصحح الأخطاء ، ومجموعة تطوير البرامج )، والحق في بيع السيليكون المصنّع الذي يحتوي على وحدة المعالجة المركزية ARM.

تتضمن حزم SoC التي تدمج التصميمات الأساسية لشركة ARM الأجيال الثلاثة الأولى من Nvidia Tegra، وعائلة Quatro من CSR plc، وNova وNovaThor من ST-Ericsson، وPrecision32 MCU من Silicon Labs، ومنتجات OMAP من Texas Instruments ، ومنتجات Hummingbird و Exynos من Samsung، و A4 و A5 و A5X من Apple ، و i.MX من NXP .

عادةً ما يكون حاملو تراخيص Fabless ، الذين يرغبون في دمج نواة ARM في تصميم الشريحة الخاصة بهم، مهتمين فقط بالحصول على نواة ملكية فكرية لأشباه الموصلات جاهزة للتصنيع . بالنسبة لهؤلاء العملاء، تقدم Arm Holdings وصفًا لقائمة بوابة الشبكة للنواة ARM المختارة، جنبًا إلى جنب مع نموذج محاكاة مجرد وبرامج اختبار للمساعدة في تكامل التصميم والتحقق منه. يختار العملاء الأكثر طموحًا، بما في ذلك مصنعو الأجهزة المتكاملة (IDM) ومشغلو المسابك، الحصول على IP للمعالج في شكل RTL قابل للتركيب ( Verilog ). باستخدام RTL القابل للتركيب، يتمتع العميل بالقدرة على إجراء تحسينات وإضافات على مستوى البنية. يسمح هذا للمصمم بتحقيق أهداف تصميم غريبة لا يمكن تحقيقها بخلاف ذلك باستخدام قائمة شبكة غير معدلة ( سرعة ساعة عالية ، استهلاك طاقة منخفض للغاية، ملحقات مجموعة التعليمات، إلخ). في حين لا تمنح Arm Holdings المرخص له الحق في إعادة بيع بنية ARM نفسها، يجوز للمرخص لهم بيع المنتجات المصنعة بحرية مثل أجهزة الرقائق ولوحات التقييم والأنظمة الكاملة. يمكن أن تكون مصانع السبائك التجارية حالة خاصة؛ لا يُسمح لهم فقط ببيع السيليكون النهائي المحتوي على نوى ARM، بل يمتلكون عمومًا الحق في إعادة تصنيع نوى ARM لعملاء آخرين.

تحدد شركة آرم هولدنجز أسعار الملكية الفكرية الخاصة بها على أساس القيمة المتصورة. وعادة ما تكون تكاليف الترخيص لنوى ARM ذات الأداء الأقل أقل من تكاليف الترخيص للنوى ذات الأداء الأعلى. ومن حيث التنفيذ، تكلف النواة القابلة للتركيب أكثر من نواة الماكرو الصلبة (الصندوق الأسود). ولتعقيد الأمور المتعلقة بالسعر، يمكن لمصنع السبائك التجارية الذي يحمل ترخيص ARM، مثل سامسونج أو فوجيتسو، أن يقدم لعملاء التصنيع تكاليف ترخيص مخفضة. وفي مقابل الحصول على نواة ARM من خلال خدمات التصميم الداخلية للمصنع، يمكن للعميل تقليل أو إلغاء دفع رسوم الترخيص المقدمة لشركة ARM.

بالمقارنة مع مصانع أشباه الموصلات المخصصة (مثل TSMC و UMC ) بدون خدمات تصميم داخلية، فإن فوجيتسو/سامسونج تفرض رسومًا أعلى بمرتين إلى ثلاث مرات لكل رقاقة مصنعة . [ بحاجة لمصدر ] بالنسبة للتطبيقات ذات الحجم المنخفض إلى المتوسط، تقدم مصانع خدمة التصميم أسعارًا إجمالية أقل (من خلال دعم رسوم الترخيص). بالنسبة للأجزاء المنتجة بكميات كبيرة، فإن خفض التكلفة على المدى الطويل الذي يمكن تحقيقه من خلال أسعار الرقاقة المنخفضة يقلل من تأثير تكاليف الهندسة غير المتكررة (NRE ) لشركة ARM، مما يجعل مصانع الصب المخصصة خيارًا أفضل.

تشمل الشركات التي طورت شرائح ذات أنوية مصممة بواسطة Arm شركة Annapurna Labs التابعة لشركة Amazon.com ، [57] و Analog Devices ، وApple ، و AppliedMicro (الآن: MACOM Technology Solutions [58] )، و Atmel ، وBroadcom ، وCavium ، و Cypress Semiconductor ، و Freescale Semiconductor (الآن NXP Semiconductors )، و Huawei ، و Intel ، [ مشكوك فيه - ناقش ] و Maxim Integrated ، وNvidia ، وNXP ، و Qualcomm ، و Renesas ، و Samsung Electronics ، و ST Microelectronics ، و Texas Instruments ، و Xilinx .

تم بناؤه على ترخيص ARM Cortex Technology

في فبراير 2016، أعلنت ARM عن ترخيص Built on ARM Cortex Technology، والذي غالبًا ما يتم اختصاره إلى ترخيص Built on Cortex (BoC). يسمح هذا الترخيص للشركات بالشراكة مع ARM وإجراء تعديلات على تصميمات ARM Cortex. لن تتم مشاركة تعديلات التصميم هذه مع شركات أخرى. تتمتع هذه التصميمات الأساسية شبه المخصصة أيضًا بحرية العلامة التجارية، على سبيل المثال Kryo 280 .

تشمل الشركات الحاصلة على ترخيص حاليًا لتقنية Built on ARM Cortex شركة Qualcomm . [59]

رخصة معمارية

يمكن للشركات أيضًا الحصول على ترخيص معماري ARM لتصميم نوى وحدة المعالجة المركزية الخاصة بها باستخدام مجموعات تعليمات ARM. يجب أن تتوافق هذه النوى تمامًا مع بنية ARM. تشمل الشركات التي صممت نوى تنفذ بنية ARM Apple وAppliedMicro (الآن: Ampere Computing ) وBroadcom و Cavium (الآن: Marvell) و Digital Equipment Corporation وIntel وNvidia وQualcomm وSamsung Electronics و Fujitsu وNUVIA Inc. (استحوذت عليها Qualcomm في عام 2021).

الوصول المرن لـ ARM

في 16 يوليو 2019، أعلنت ARM عن ARM Flexible Access. يوفر ARM Flexible Access وصولاً غير محدود إلى الملكية الفكرية المضمنة لشركة ARM للتطوير. يتم فرض رسوم ترخيص لكل منتج بمجرد وصول العميل إلى مرحلة إخراج الشريط أو النموذج الأولي. [60] [61]

تم تضمين 75% من أحدث حقوق الملكية الفكرية لشركة ARM على مدار العامين الماضيين في ARM Flexible Access. اعتبارًا من أكتوبر 2019:

  • وحدات المعالجة المركزية: Cortex-A5 ، Cortex-A7 ، Cortex-A32 ، Cortex-A34 ، Cortex -A35 ، Cortex-A53 ، Cortex-R5 ، Cortex-R8 ، Cortex-R52 ، Cortex-M0 ، Cortex-M0+ ، Cortex-M3 ، Cortex-M4 ، Cortex-M7 ، Cortex-M23 ، Cortex-M33
  • وحدات معالجة الرسوميات: Mali-G52 و Mali-G31 . تتضمن مجموعات تطوير برامج تشغيل Mali (DDK).
  • الربط: CoreLink NIC-400، CoreLink NIC-450، CoreLink CCI-400، CoreLink CCI-500، CoreLink CCI-550، ADB-400 AMBA، XHB-400 AXI-AHB
  • وحدات التحكم في النظام: CoreLink GIC-400، CoreLink GIC-500، PL192 VIC، BP141 TrustZone Memory Wrapper، CoreLink TZC-400، CoreLink L2C-310، CoreLink MMU-500، واجهة ذاكرة BP140
  • عنوان IP الأمني: CryptoCell-312، CryptoCell-712، TrustZone مولد الأرقام العشوائية الحقيقي
  • وحدات التحكم الطرفية: PL011 UART، PL022 SPI، PL031 RTC
  • تصحيح الأخطاء والتتبع: CoreSight SoC-400، CoreSight SDC-600، CoreSight STM-500، CoreSight System Trace Macrocell، CoreSight Trace Memory Controller
  • أطقم التصميم: Corstone-101، Corstone-201
  • IP المادي: Artisan PIK لـ Cortex-M33 TSMC 22ULL ​​بما في ذلك مُجمِّعات الذاكرة والمكتبات المنطقية ومنافذ GPIO والوثائق
  • الأدوات والمواد: Socrates IP ToolingARM Design Studio، نماذج النظام الافتراضي
  • الدعم: الدعم الفني القياسي لـ ARM، والتدريب عبر الإنترنت لـ ARM، وتحديثات الصيانة، والاعتمادات للتدريب في الموقع ومراجعة التصميم

النوى

بنيان
عرض بت النواة
النوى حساب تعريفي مراجع
شركة أرم المحدودة طرف ثالث
أر إم في 1
الذراع 1
كلاسيكي
[أ 1]
ARMv2
32
ARM2 ، ARM250، ARM3 أمبر ، ستورم، نواة ناعمة مفتوحة [62]
كلاسيكي
[أ 1]
ARMv3
32
أرم6 ، أرم7
كلاسيكي
[أ 2]
ARMv4
32
أرم8 StrongARM وFA526 وZAP معالج مفتوح المصدر
كلاسيكي
[أ 2]
[63]
أر إم في 4 تي
32
ARM7TDMI ، ARM9TDMI ، SecurCore SC100
كلاسيكي
[أ 2]
أر إم في 5 تي إي
32
أرم7إيج ، أرم9إي ، أرم10إي XScale ، FA626TE، فيروسيون، PJ1/موهوك
كلاسيكي
ARMv6
32
أرم11
كلاسيكي
ARMv6-M
32
ARM Cortex-M0 ، ARM Cortex-M0+ ، ARM Cortex-M1 ، SecurCore SC000
ARMv7-M
32
ARM Cortex-M3 ، SecurCore SC300 معالج الحركة المساعد لجهاز Apple M7
متحكم دقيق
ARMv7E-M
32
ARM Cortex-M4 ، ARM Cortex-M7
متحكم دقيق
ARMv8-M
32
ARM Cortex-M23 ، [64] ARM Cortex-M33 [65]
متحكم دقيق
[66]
ARMv8.1-M
32
ARM Cortex-M55 ، ARM Cortex-M85
متحكم دقيق
[67]
ARMv7-R
32
ARM Cortex-R4 ، ARM Cortex-R5 ، ARM Cortex-R7 ، ARM Cortex-R8
ARMv8-R
32
معالج ARM Cortex-R52
في الوقت الحالى
[68] [69] [70]
64
معالج ARM Cortex-R82
في الوقت الحالى
ARMv7-A
32
ARM Cortex-A5 ، ARM Cortex-A7 ، ARM Cortex-A8 ، ARM Cortex-A9 ، ARM Cortex-A12 ، ARM Cortex-A15 ، ARM Cortex-A17 كوالكوم سكوربيون / كريت ، PJ4/Sheeva، أبل سويفت ( A6 ، A6X )
ARMv8-A
32
ARM Cortex-A32 [71]
طلب
ARM Cortex-A35 ، [72] ARM Cortex-A53 ، ARM Cortex-A57 ، [73] ARM Cortex-A72 ، [74] ARM Cortex-A73 [75] X-Gene ، Nvidia Denver 1/2 ، Cavium ThunderX ، AMD K12 ، Apple Cyclone ( A7 )/Typhoon ( A8 ، A8X )/Twister ( A9 ، A9X )/Hurricane+Zephyr ( A10 ، A10XQualcomm Kryo ، Samsung M1/M2 ("Mongoose") /M3 ("Meerkat")
طلب
[76] [1] [77] [78] [79] [80]
ARM Cortex-A34 [81]
طلب
ARMv8.1-A
64/32
سيتم الإعلان عنها لاحقا كافيوم ثاندر اكس 2
طلب
[82]
ARMv8.2-A
64/32
ARM Cortex-A55 ، [83] ARM Cortex-A75 ، [84] ARM Cortex-A76 ، [85] ARM Cortex-A77 ، ARM Cortex -A78 ، ARM Cortex-X1 ، ARM Neoverse N1 Nvidia Carmel ، Samsung M4 ("Cheetah")، Fujitsu A64FX (ARMv8 SVE 512-bit)
طلب
[86] [87] [88]
64
ARM Cortex-A65 ، ARM Neoverse E1 مع تعدد المهام المتزامن (SMT)، ARM Cortex-A65AE [89] (يحتوي أيضًا على منتج ARMv8.4 Dot؛ مصمم لمهام حرجة تتعلق بالسلامة مثل أنظمة مساعدة السائق المتقدمة (ADAS)) موسم الرياح الموسمية + ميسترال ( A11 ) (سبتمبر 2017)
طلب
ARMv8.3-A
64/32
سيتم الإعلان عنها لاحقا
طلب
64
سيتم الإعلان عنها لاحقا Apple Vortex+Tempest ( A12 ، A12X ، A12Z )، Marvell ThunderX3 (v8.3+) [90]
طلب
ARMv8.4-A
64/32
سيتم الإعلان عنها لاحقا
طلب
64
أرم نيوفيرس V1 Apple Lightning+Thunder ( A13 )، Apple Firestorm+Icestorm ( A14 , M1 )
طلب
ARMv8.5-A
64/32
سيتم الإعلان عنها لاحقا
طلب
64
سيتم الإعلان عنها لاحقا
طلب
ARMv8.6-A
64
سيتم الإعلان عنها لاحقا Apple Avalanche+Blizzard ( A15 , M2 )، Apple Everest+Sawtooth ( A16 ) [91]
طلب
ARMv8.7-A
64
سيتم الإعلان عنها لاحقا
طلب
[92]
ARMv8.8-A
64
سيتم الإعلان عنها لاحقا
طلب
ARMv8.9-A
64
سيتم الإعلان عنها لاحقا
طلب
ARMv9.0-A
64
ARM Cortex-A510 ، ARM Cortex-A710 ، ARM Cortex-A715 ، ARM Cortex-X2 ، ARM Cortex-X3 ، ARM Neoverse E2 ، ARM Neoverse N2 ، ARM Neoverse V2
طلب
[93] [94]
ARMv9.1-A
64
سيتم الإعلان عنها لاحقا
طلب
ARMv9.2-A
64
ARM Cortex-A520 ، ARM Cortex-A720 ، ARM Cortex-X4 ، ARM Neoverse V3 ، [95] ARM Cortex-X925 [96] أبل M4 [97]
طلب
ARMv9.3-A
64
سيتم الإعلان عنها لاحقا
طلب
[98]
ARMv9.4-A
64
سيتم الإعلان عنها لاحقا
طلب
[99]
ARMv9.5-A
64
سيتم الإعلان عنها لاحقا
طلب
[100]
ARMv9.6-A
64
سيتم الإعلان عنها لاحقا
طلب
[101]
  1. ^ على الرغم من أن معظم مسارات البيانات وسجلات وحدة المعالجة المركزية في معالجات ARM المبكرة كانت 32 بت، إلا أن الذاكرة القابلة للعنونة كانت محدودة بـ 26 بت ؛ مع استخدام البتات العلوية، بعد ذلك، لعلامات الحالة في سجل عداد البرنامج.
  2. ^ تضمن ARMv3 وضع توافق لدعم عناوين 26 بت للإصدارات السابقة من البنية. وضع التوافق هذا اختياري في ARMv4، وتم إزالته بالكامل في ARMv5.

توفر Arm قائمة بالبائعين الذين ينفذون نوى ARM في تصميمهم (منتجات قياسية محددة للتطبيق (ASSP)، والمعالجات الدقيقة ووحدات التحكم الدقيقة). [102]

أمثلة على تطبيقات نوى ARM

Tronsmart MK908، وهو "كمبيوتر شخصي" صغير يعمل بنظام Android رباعي النواة ويعتمد على Rockchip ، مع بطاقة microSD بجواره للمقارنة بالحجم

تُستخدم نوى ARM في عدد من المنتجات، وخاصة أجهزة المساعد الرقمي الشخصي (PDA ) والهواتف الذكية . ومن الأمثلة على ذلك أجهزة Surface وSurface 2 وPocket PC من الجيل الأول من Microsoft ( بعد عام 2002 ) ، وأجهزة iPad من Apple ، وأجهزة الكمبيوتر اللوحية Eee Pad Transformer من Asus ، والعديد من أجهزة الكمبيوتر المحمولة Chromebook . ومن الأمثلة الأخرى هواتف iPhone الذكية من Apple ومشغلات الوسائط المحمولة iPod ، وكاميرات Canon PowerShot الرقمية ، و Nintendo Switch الهجين، ومعالج الأمان Wii وأجهزة الألعاب المحمولة 3DS ، وأنظمة الملاحة TomTom خطوة بخطوة .

في عام 2005، شاركت شركة Arm في تطوير حاسوب SpiNNaker التابع لجامعة مانشستر ، والذي استخدم أنوية ARM لمحاكاة الدماغ البشري . [103]

تُستخدم شرائح ARM أيضًا في Raspberry Pi و BeagleBoard و BeagleBone و PandaBoard وأجهزة الكمبيوتر أحادية اللوحة الأخرى ، لأنها صغيرة جدًا وغير مكلفة وتستهلك قدرًا ضئيلًا جدًا من الطاقة.

هندسة 32 بت

تم استخدام ARMv7 لتشغيل الإصدارات الأقدم من أجهزة الكمبيوتر أحادية اللوحة Raspberry Pi الشهيرة مثل Raspberry Pi 2 من عام 2015.
يتم أيضًا استخدام ARMv7 لتشغيل عائلة CuBox من أجهزة الكمبيوتر ذات اللوحة الواحدة.

كانت بنية ARM ذات 32 بت ( ARM32 )، مثل ARMv7-A (التي تنفذ AArch32؛ راجع القسم الخاص بـ Armv8-A لمزيد من المعلومات حول هذا الموضوع)، هي البنية الأكثر استخدامًا على نطاق واسع في الأجهزة المحمولة اعتبارًا من عام 2011. [ 53]

منذ عام 1995، كانت الإصدارات المختلفة من دليل مرجع بنية ARM (انظر § الروابط الخارجية) المصدر الأساسي للوثائق المتعلقة ببنية معالج ARM ومجموعة التعليمات، مع التمييز بين الواجهات التي يتعين على جميع معالجات ARM دعمها (مثل دلالات التعليمات) وتفاصيل التنفيذ التي قد تختلف. تطورت البنية بمرور الوقت، وتحدد النسخة السابعة من البنية، ARMv7، ثلاثة "ملفات تعريف" للبنية:

  • ملف تعريف A، ملف تعريف "التطبيق"، الذي تم تنفيذه بواسطة نوى 32 بت في سلسلة Cortex-A وبعض النوى غير ARM
  • ملف تعريف R، وهو ملف تعريف "الوقت الحقيقي"، تم تنفيذه بواسطة النوى في سلسلة Cortex-R
  • ملف تعريف M، ملف تعريف "المتحكم الدقيق"، الذي تم تنفيذه بواسطة معظم النوى في سلسلة Cortex-M

على الرغم من أن ملفات تعريف الهندسة المعمارية تم تعريفها أولاً لـ ARMv7، فقد قام ARM بعد ذلك بتعريف هندسة ARMv6-M (التي يستخدمها Cortex M0 / M0+ / M1 ) كمجموعة فرعية من ملف تعريف ARMv7-M مع تعليمات أقل.

أوضاع وحدة المعالجة المركزية

باستثناء ملف تعريف M، تحدد بنية ARM ذات 32 بت عدة أوضاع لوحدة المعالجة المركزية، اعتمادًا على ميزات البنية المطبقة. في أي لحظة من الزمن، يمكن لوحدة المعالجة المركزية أن تكون في وضع واحد فقط، ولكنها يمكن أن تقوم بتبديل الأوضاع بسبب أحداث خارجية (مقاطعات) أو برمجيًا. [104]

  • وضع المستخدم: الوضع الوحيد غير المميز.
  • وضع FIQ: وضع مميز يتم الدخول إليه كلما قبل المعالج طلب مقاطعة سريعة .
  • وضع IRQ: وضع مميز يتم الدخول إليه كلما قبل المعالج مقاطعة.
  • وضع المشرف (svc): وضع مميز يتم الدخول إليه عند إعادة تعيين وحدة المعالجة المركزية أو عند تنفيذ تعليمات SVC.
  • وضع الإلغاء: وضع مميز يتم الدخول إليه عند حدوث استثناء إلغاء مسبق أو إلغاء البيانات.
  • الوضع غير المحدد: وضع مميز يتم الدخول إليه عند حدوث استثناء تعليمات غير محدد.
  • وضع النظام (ARMv4 وما فوق): الوضع الوحيد الذي لا يتم الدخول إليه بواسطة استثناء. لا يمكن الدخول إليه إلا من خلال تنفيذ تعليمة تكتب صراحةً إلى بتات الوضع في سجل حالة البرنامج الحالي (CPSR) من وضع آخر يتمتع بامتيازات (ليس من وضع المستخدم).
  • وضع المراقبة (ملحقات الأمان ARMv6 وARMv7، ARMv8 EL3): تم تقديم وضع مراقبة لدعم ملحق TrustZone في نوى ARM.
  • وضع Hyp (ملحقات المحاكاة الافتراضية ARMv7، ARMv8 EL2): وضع المشرف الافتراضي الذي يدعم متطلبات المحاكاة الافتراضية Popek وGoldberg للتشغيل غير الآمن لوحدة المعالجة المركزية. [105] [106]
  • وضع الخيط (ARMv6-M، ARMv7-M، ARMv8-M): وضع يمكن تحديده إما كوضع مميز أو غير مميز. يمكن أيضًا تحديد ما إذا كان سيتم استخدام مؤشر المكدس الرئيسي (MSP) أو مؤشر مكدس العملية (PSP) في سجل CONTROL مع إمكانية الوصول المميزة. تم تصميم هذا الوضع لمهام المستخدم في بيئة RTOS ولكنه يستخدم عادةً في النظام الأساسي للحلقة الفائقة.
  • وضع المعالج (ARMv6-M، ARMv7-M، ARMv8-M): وضع مخصص لمعالجة الاستثناءات (باستثناء RESET التي تتم معالجتها في وضع Thread). يستخدم وضع المعالج دائمًا MSP ويعمل على مستوى مميز.

مجموعة التعليمات

تم تنفيذ ARM الأصلي (واللاحق) بشكل ثابت بدون تعليمات برمجية دقيقة ، مثل معالج 6502 ذي 8 بتات الأكثر بساطة والذي تم استخدامه في أجهزة الكمبيوتر الدقيقة Acorn السابقة.

تتضمن بنية ARM ذات 32 بت (والبنية ذات 64 بت في الغالب) ميزات RISC التالية:

  • هندسة التحميل والتخزين .
  • لا يوجد دعم لعمليات الوصول غير المحاذية للذاكرة في الإصدار الأصلي للهندسة المعمارية. تدعم ARMv6 والإصدارات الأحدث، باستثناء بعض إصدارات المتحكم الدقيق، عمليات الوصول غير المحاذية لتعليمات التحميل/التخزين المكونة من نصف كلمة وكلمة واحدة مع بعض القيود، مثل عدم وجود ذرية مضمونة . [107] [108]
  • ملف سجل موحد 16 × 32 بت (بما في ذلك عداد البرنامج ومؤشر المكدس وسجل الارتباط).
  • تم تحديد عرض التعليمات بمقدار 32 بت لتسهيل فك التشفير والتسلسل ، على حساب انخفاض كثافة التعليمات البرمجية . وفي وقت لاحق، أضافت مجموعة تعليمات Thumb تعليمات مكونة من 16 بت وزادت كثافة التعليمات البرمجية.
  • تنفيذ دورة ساعة واحدة في الغالب.

لتعويض التصميم البسيط، بالمقارنة مع المعالجات مثل Intel 80286 و Motorola 68020 ، تم استخدام بعض ميزات التصميم الإضافية:

تعليمات حسابية

يتضمن ARM عمليات حسابية صحيحة للجمع والطرح والضرب؛ وتدعم بعض إصدارات الهندسة المعمارية أيضًا عمليات القسمة.

يدعم ARM عمليات الضرب 32 بت × 32 بت إما بنتيجة 32 بت أو بنتيجة 64 بت، على الرغم من أن أنوية Cortex-M0 / M0+ / M1 لا تدعم نتائج 64 بت. [109] تدعم بعض أنوية ARM أيضًا عمليات الضرب 16 بت × 16 بت و32 بت × 16 بت.

يتم تضمين تعليمات التقسيم فقط في بنيات ARM التالية:

  • تتضمن معماريات Armv7-M وArmv7E-M دائمًا تعليمات التقسيم. [110]
  • تتضمن بنية Armv7-R دائمًا تعليمات التقسيم في مجموعة تعليمات Thumb، ولكن بشكل اختياري في مجموعة تعليماتها المكونة من 32 بت. [111]
  • تتضمن بنية Armv7-A بشكل اختياري تعليمات التقسيم. قد لا يتم تنفيذ التعليمات، أو يتم تنفيذها فقط في مجموعة تعليمات Thumb، أو يتم تنفيذها في كل من مجموعتي تعليمات Thumb وARM، أو يتم تنفيذها إذا تم تضمين ملحقات المحاكاة الافتراضية. [111]

السجلات

تسجيلات عبر أوضاع وحدة المعالجة المركزية
مستخدم النظام خدمة تقريبا و العراق الفِق
ر0
ر1
ر2
ر3
ر4
ر5
ر6
ر7
ر8 ر8_فيق
ر9 ر9_فيق
ر10 ر10_فيق
ر11 ر11_فيق
ر12 ر12_فيق
ر13 ر13_svc ر13_أبت ر13_وند ر13_ايرق ر13_فيق
ر14 ر14_svc ر14_أبت ر14_وند ر14_ايرق ر14_فيق
ر15
مركز أبحاث المجتمع المدني
SPSR_svc SPSR_حوالي SPSR_und SPSR_irq SPSR_fiq

تكون السجلات من R0 إلى R7 هي نفسها في جميع أوضاع وحدة المعالجة المركزية؛ ولا يتم تخزينها مطلقًا.

السجلات من R8 إلى R12 هي نفسها في جميع أوضاع وحدة المعالجة المركزية باستثناء وضع FIQ. يحتوي وضع FIQ على سجلات R8 إلى R12 مميزة خاصة به.

يتم تخزين R13 وR14 في جميع أوضاع وحدة المعالجة المركزية المميزة باستثناء وضع النظام. أي أن كل وضع يمكن الدخول إليه بسبب استثناء له R13 وR14 خاص به. تحتوي هذه السجلات بشكل عام على مؤشر المكدس وعنوان الإرجاع من مكالمات الوظيفة على التوالي.

الأسماء المستعارة:

يحتوي سجل حالة البرنامج الحالي (CPSR) على 32 بتًا كما يلي. [112]

  • M (بتات 0–4) هي بتات وضع المعالج.
  • T (بت 5) هو بت حالة الإبهام.
  • F (بت 6) هو بت تعطيل FIQ.
  • I (بت 7) هو بت تعطيل IRQ.
  • أ (بت 8) هو بت تعطيل الإلغاء للبيانات غير الدقيقة.
  • E (بت 9) هو بت ترتيب البيانات.
  • IT (البتات 10–15 و25–26) هي بتات الحالة إذا-ثم.
  • GE (بتات 16–19) هي البتات الأكبر من أو تساوي.
  • DNM (بتات 20–23) هي بتات عدم التعديل.
  • J (بت 24) هو بت حالة Java.
  • Q (بت 27) هو بت الفائض اللزج.
  • V (بت 28) هو بت الفائض.
  • C (بت 29) هو بت الحمل/الاقتراض/التمديد.
  • Z (بت 30) هو البت صفر.
  • N (بت 31) هو البت السالب/الأقل من.

التنفيذ المشروط

تحتوي كل تعليمات ARM تقريبًا على ميزة تنفيذ مشروط تسمى التنبؤ ، والتي يتم تنفيذها باستخدام محدد رمز شرط مكون من 4 بتات (التنبؤ). للسماح بالتنفيذ غير المشروط، يتسبب أحد الرموز المكونة من أربعة بتات في تنفيذ التعليمات دائمًا. تحتوي معظم بنيات وحدة المعالجة المركزية الأخرى على رموز شرطية فقط على تعليمات الفرع. [113]

على الرغم من أن المسند يشغل أربعة من 32 بتًا في كود التعليمات، وبالتالي يقلل بشكل كبير من بتات التشفير المتاحة للنزوح في تعليمات الوصول إلى الذاكرة، فإنه يتجنب تعليمات التفرع عند إنشاء كود ifلعبارات صغيرة . وبصرف النظر عن إزالة تعليمات التفرع نفسها، فإن هذا يحافظ على خط أنابيب الجلب/فك التشفير/التنفيذ على حساب دورة واحدة فقط لكل تعليمة متخطاة.

الخوارزمية التي توفر مثالاً جيدًا للتنفيذ الشرطي هي خوارزمية إقليدية تعتمد على الطرح لحساب القاسم المشترك الأعظم . في لغة البرمجة C ، يمكن كتابة الخوارزمية على النحو التالي:

int gcd ( int a , int b ) { while ( a != b ) // ندخل الحلقة عندما يكون a < b أو a > b، ولكن ليس عندما يكون a == b if ( a > b ) // عندما يكون a > b نفعل هذا a -= b ; else // عندما يكون a < b نفعل ذلك (لا حاجة إلى "if (a < b)" لأن a != b تم فحصها أثناء الشرط) b -= a ; return a ; }     
       
          
        
             
        
   

يمكن إعادة كتابة نفس الخوارزمية بطريقة أقرب إلى تعليمات ARM المستهدفة على النحو التالي:

حلقة : 
// قارن بين أ وب GT = أ > ب ؛ LT = أ < ب ؛ NE = أ != ب ؛    
        
        
        

    // تنفيذ العمليات بناءً على نتائج العلم 
if ( GT ) a -= b ; // اطرح * فقط * إذا كانت أكبر من if ( LT ) b -= a ; // اطرح * فقط * إذا كانت أقل من if ( NE ) انتقل إلى الحلقة ; // قم بالحلقة * فقط * إذا كانت القيم المقارنة غير متساوية return a ;            
            
        
     

ومشفرة بلغة التجميع على النحو التالي:

; تعيين a إلى السجل r0، b إلى 
حلقة r1: CMP r0 ، r1 ؛ تعيين الشرط "NE" إذا كان (a ≠ b)،؛ "GT" إذا كان (a > b) ،؛ أو "LT" إذا كان (a < b) SUBGT r0 ، r0 ، r1 ؛ إذا كان "GT" (أكبر من)، فإن a = a − b SUBLT r1 ، r1 ، r0 ؛ إذا كان "LT" (أقل من)، فإن b = b − a حلقة BNE ؛ إذا كان "NE" (غير متساوٍ)، فإن حلقة B lr ؛ العودة               
                            
                            
               
               
                     
                         

الذي يتجنب الفروع حول جمل thenand else. إذا كانت r0و r1متساويتين، SUBفلن يتم تنفيذ أي من التعليمات، مما يلغي الحاجة إلى فرع شرطي لتنفيذ whileالفحص في أعلى الحلقة، على سبيل المثال SUBLEتم استخدام had (أقل من أو يساوي).

إحدى الطرق التي يوفر بها الكود المصغر تشفيرًا أكثر كثافة هي إزالة محدد الأربعة بتات من التعليمات غير الفرعية.

مميزات اخرى

ميزة أخرى لمجموعة التعليمات هي القدرة على طي التحولات والدوران في تعليمات معالجة البيانات (الحسابية والمنطقية والتحريك من سجل إلى سجل)، بحيث، على سبيل المثال، العبارة في لغة C :

أ += ( ج << 2     

يمكن تقديمها على هيئة تعليمات مكونة من كلمة واحدة ودورة واحدة: [114]

أضف Ra ، Ra ، Rj ، LSL #2      

ويؤدي هذا إلى أن يكون برنامج ARM النموذجي أكثر كثافة من المتوقع مع عدد أقل من عمليات الوصول إلى الذاكرة؛ وبالتالي يتم استخدام خط الأنابيب بكفاءة أكبر.

يتمتع معالج ARM أيضًا بميزات نادرًا ما نراها في بنى RISC الأخرى، مثل العنونة النسبية للكمبيوتر الشخصي (في الواقع، في معالج ARM ذي 32 بت [1] يكون الكمبيوتر الشخصي واحدًا من سجلاته الستة عشر) وأوضاع العنونة قبل الزيادة وبعدها.

لقد زادت مجموعة تعليمات ARM بمرور الوقت. على سبيل المثال، لا تحتوي بعض معالجات ARM المبكرة (قبل ARM7TDMI) على تعليمات لتخزين كمية مكونة من بايتين.

خطوط الأنابيب وقضايا التنفيذ الأخرى

تحتوي تطبيقات ARM7 والإصدارات السابقة على خط أنابيب من ثلاث مراحل ؛ المراحل هي الجلب وفك التشفير والتنفيذ. التصميمات ذات الأداء الأعلى، مثل ARM9، لديها خطوط أنابيب أعمق: يحتوي Cortex-A8 على ثلاث عشرة مرحلة. تتضمن تغييرات التنفيذ الإضافية لتحقيق أداء أعلى أداة جمع أسرع ومنطق تنبؤ فرع أكثر شمولاً . كان الاختلاف بين نواة ARM7DI وARM7DMI، على سبيل المثال، مضاعفًا محسّنًا؛ ومن هنا جاءت إضافة "M".

المعالجات المساعدة

توفر بنية ARM (قبل Armv8) طريقة غير تدخلية لتوسيع مجموعة التعليمات باستخدام "معالجات مساعدة" يمكن معالجتها باستخدام MCR وMRC وMRRC وMCRR وتعليمات مماثلة. يتم تقسيم مساحة المعالج المساعد منطقيًا إلى 16 معالجًا مساعدًا بأرقام من 0 إلى 15، حيث يتم حجز المعالج المساعد 15 (cp15) لبعض وظائف التحكم النموذجية مثل إدارة ذاكرة التخزين المؤقت وتشغيل وحدة ذاكرة الوصول العشوائي على المعالجات التي تحتوي على معالج مساعد.

في الأجهزة التي تعمل بنظام ARM، عادة ما يتم توصيل الأجهزة الطرفية بالمعالج عن طريق تعيين سجلاتها المادية في مساحة ذاكرة ARM، أو في مساحة المعالج المساعد، أو عن طريق الاتصال بجهاز آخر (ناقل) والذي بدوره يتم توصيله بالمعالج. تتمتع عمليات الوصول إلى المعالج المساعد بزمن وصول أقل، لذا يمكن الوصول إلى بعض الأجهزة الطرفية—على سبيل المثال، وحدة تحكم المقاطعة XScale—بالطريقتين: من خلال الذاكرة ومن خلال المعالجات المساعدة.

في حالات أخرى، لا يدمج مصممو الرقائق سوى الأجهزة باستخدام آلية المعالج المساعد. على سبيل المثال، قد يكون محرك معالجة الصور عبارة عن نواة ARM7TDMI صغيرة مقترنة بمعالج مساعد لديه عمليات متخصصة لدعم مجموعة محددة من أساسيات ترميز HDTV.

تصحيح الأخطاء

تتضمن جميع معالجات ARM الحديثة مرافق تصحيح أخطاء الأجهزة، مما يسمح لمصححي أخطاء البرامج بإجراء عمليات مثل إيقاف التشغيل والتدريج وإيقاف تشغيل التعليمات البرمجية بدءًا من إعادة الضبط. تم بناء هذه المرافق باستخدام دعم JTAG ، على الرغم من أن بعض النوى الأحدث تدعم اختياريًا بروتوكول "SWD" ثنائي الأسلاك الخاص بـ ARM. في نوى ARM7TDMI، يمثل "D" دعم تصحيح أخطاء JTAG، ويمثل "I" وجود وحدة تصحيح أخطاء "EmbeddedICE". بالنسبة لأجيال نوى ARM7 وARM9، كان EmbeddedICE عبر JTAG معيار تصحيح أخطاء بحكم الأمر الواقع، على الرغم من عدم ضمانه من الناحية المعمارية.

تحدد بنية ARMv7 مرافق تصحيح الأخطاء الأساسية على المستوى المعماري. وتشمل هذه نقاط التوقف ونقاط المراقبة وتنفيذ التعليمات في "وضع التصحيح"؛ وكانت المرافق المماثلة متاحة أيضًا مع EmbeddedICE. يتم دعم تصحيح الأخطاء في "وضع التوقف" و"وضع المراقبة". آلية النقل الفعلية المستخدمة للوصول إلى مرافق التصحيح غير محددة معماريًا، لكن التنفيذات تتضمن عمومًا دعم JTAG.

هناك بنية تصحيح ARM منفصلة "CoreSight"، والتي لا تتطلبها معالجات ARMv7 من الناحية المعمارية.

منفذ الوصول إلى التصحيح

منفذ الوصول إلى التصحيح (DAP) هو تنفيذ لواجهة تصحيح ARM. [115] هناك تنفيذان مختلفان مدعومان، منفذ تصحيح JTAG السلكي التسلسلي (SWJ-DP) ومنفذ تصحيح JTAG السلكي التسلسلي (SW-DP). [116] CMSIS-DAP هي واجهة قياسية تصف كيف يمكن لبرامج التصحيح المختلفة على جهاز كمبيوتر مضيف التواصل عبر USB مع البرامج الثابتة التي تعمل على مصحح أخطاء الأجهزة، والذي بدوره يتحدث عبر SWD أو JTAG إلى وحدة معالجة مركزية ARM Cortex ممكّنة من CoreSight. [117] [118] [119]

تعليمات تحسين DSP

لتحسين بنية ARM لمعالجة الإشارات الرقمية وتطبيقات الوسائط المتعددة، تمت إضافة تعليمات DSP إلى مجموعة التعليمات. [120] يتم الإشارة إليها بحرف "E" في اسم بنيات ARMv5TE وARMv5TEJ. تشير المتغيرات E أيضًا إلى T وD وM وI.

التعليمات الجديدة شائعة في بنيات معالجات الإشارات الرقمية (DSP). وهي تتضمن اختلافات في الضرب والتراكم ، والجمع والطرح المشبعين ، وحساب الأصفار الأولية .

تم تقديم هذا الامتداد لمجموعة التعليمات الأساسية لأول مرة في عام 1999، وهو يتناقض مع معالج الإشارات الرقمية المساعد السابق لشركة ARM والمعروف باسم Piccolo، والذي استخدم مجموعة تعليمات مميزة وغير متوافقة يتضمن تنفيذها عداد برنامج منفصل. [121] استخدمت تعليمات Piccolo ملف سجل مميز مكون من ستة عشر سجلاً بطول 32 بت، مع بعض التعليمات التي تجمع بين السجلات لاستخدامها كمراكم بطول 48 بت وتعليمات أخرى تعالج سجلات نصف بطول 16 بت. كانت بعض التعليمات قادرة على العمل على قيمتين بطول 16 بت بالتوازي. تضمن الاتصال بملف سجل Piccolo تحميل تعليمات معالج الإشارات الرقمية المساعد إلى Piccolo وتخزينها من Piccolo عبر مخزنين مؤقتين لثمانية إدخالات بطول 32 بت. تم وصف Piccolo بأنه يذكرنا بأساليب أخرى، ولا سيما SH-DSP من Hitachi و68356 من Motorola، ولم يستخدم ذاكرة محلية مخصصة واعتمد على عرض النطاق الترددي لنواة ARM لاسترجاع متغيرات DSP، مما أثر على الأداء المتزامن. [122] كما ثبت أن مجموعة التعليمات المميزة لـ Piccolo ليست "هدفًا جيدًا للمترجم". [121]

ملحقات SIMD للوسائط المتعددة

تم تقديمه في بنية ARMv6، وكان بمثابة مقدمة لـ Advanced SIMD، والذي يُسمى أيضًا Neon. [123]

جازيل

Jazelle DBX (Direct Bytecode eXecution) هي تقنية تسمح بتنفيذ بايت كود Java مباشرةً في بنية ARM كحالة تنفيذ ثالثة (ومجموعة تعليمات) إلى جانب وضع ARM ووضع Thumb الحاليين. يتم الإشارة إلى دعم هذه الحالة بواسطة الحرف "J" في بنية ARMv5TEJ، وفي أسماء النواة ARM9EJ-S وARM7EJ-S. يلزم دعم هذه الحالة بدءًا من ARMv6 (باستثناء ملف تعريف ARMv7-M)، على الرغم من أن النوى الأحدث لا تتضمن سوى تنفيذ بسيط لا يوفر أي تسريع للأجهزة.

إبهام

لتحسين كثافة التعليمات البرمجية المترجمة، تميزت المعالجات منذ ARM7TDMI (تم إصداره في عام 1994 [124] ) بمجموعة التعليمات المضغوطة Thumb ، والتي لها حالتها الخاصة. (يشير "T" في "TDMI" إلى ميزة Thumb.) عندما يكون في هذه الحالة، ينفذ المعالج مجموعة التعليمات Thumb، وهي ترميز مضغوط مكون من 16 بت لمجموعة فرعية من مجموعة التعليمات ARM. [125] يتم تعيين معظم تعليمات Thumb مباشرة إلى تعليمات ARM العادية. يأتي توفير المساحة من جعل بعض متغيرات التعليمات ضمنية والحد من عدد الاحتمالات مقارنة بتعليمات ARM التي يتم تنفيذها في حالة مجموعة التعليمات ARM.

في Thumb، تتمتع التعليمات البرمجية ذات 16 بت بوظائف أقل. على سبيل المثال، يمكن فقط أن تكون الفروع مشروطة، والعديد من التعليمات البرمجية مقيدة بالوصول إلى نصف جميع سجلات وحدة المعالجة المركزية للأغراض العامة فقط. توفر التعليمات البرمجية الأقصر كثافة تعليمات برمجية محسنة بشكل عام، على الرغم من أن بعض العمليات تتطلب تعليمات إضافية. في المواقف التي يكون فيها عرض منفذ الذاكرة أو الناقل مقيدًا بأقل من 32 بت، تسمح التعليمات البرمجية الأقصر في Thumb بأداء متزايد مقارنة برمز ARM ذي 32 بت، حيث قد يلزم تحميل كمية أقل من التعليمات البرمجية إلى المعالج عبر عرض النطاق الترددي للذاكرة المقيد.

على عكس بنيات المعالجات ذات التعليمات ذات الطول المتغير (16 بت أو 32 بت)، مثل Cray-1 و Hitachi SuperH ، توجد مجموعات التعليمات ARM وThumb بشكل مستقل عن بعضها البعض. عادةً ما تحتوي الأجهزة المضمنة، مثل Game Boy Advance ، على كمية صغيرة من ذاكرة الوصول العشوائي يمكن الوصول إليها باستخدام مسار بيانات كامل بطول 32 بت؛ يتم الوصول إلى الغالبية عبر مسار بيانات ثانوي بطول 16 بت أو أضيق. في هذه الحالة، يكون من المنطقي عادةً تجميع كود Thumb وتحسين بعض الأقسام الأكثر كثافة في استخدام وحدة المعالجة المركزية يدويًا باستخدام تعليمات ARM كاملة بطول 32 بت، ووضع هذه التعليمات الأوسع في ذاكرة يمكن الوصول إليها عبر ناقل بطول 32 بت.

كان أول معالج مزود بفك تشفير تعليمات Thumb هو ARM7TDMI. وقد تضمنت جميع المعالجات التي تدعم مجموعات التعليمات ذات 32 بت، بدءًا من ARM9، بما في ذلك XScale، فك تشفير تعليمات Thumb. وهو يتضمن تعليمات مستمدة من Hitachi SuperH (1992)، والتي تم ترخيصها بواسطة ARM. [126] وتنفذ أصغر عائلات معالجات ARM (Cortex M0 وM1) مجموعة تعليمات Thumb ذات 16 بت فقط لتحقيق أقصى أداء في التطبيقات الأقل تكلفة. كما تحذف معالجات ARM التي لا تدعم العنونة ذات 32 بت Thumb.

الإبهام-2

تم تقديم تقنية Thumb-2 في نواة ARM1156 ، وتم الإعلان عنها في عام 2003. تعمل Thumb-2 على توسيع مجموعة التعليمات المحدودة المكونة من 16 بت في Thumb بتعليمات إضافية مكونة من 32 بت لمنح مجموعة التعليمات المزيد من الاتساع، وبالتالي إنتاج مجموعة تعليمات بطول متغير. كان الهدف المعلن لـ Thumb-2 هو تحقيق كثافة التعليمات البرمجية المماثلة لـ Thumb مع أداء مماثل لمجموعة تعليمات ARM على ذاكرة 32 بت.

يقوم Thumb-2 بتوسيع مجموعة تعليمات Thumb من خلال معالجة حقل البت وتفرعات الجدول والتنفيذ الشرطي. وفي الوقت نفسه، تم توسيع مجموعة تعليمات ARM للحفاظ على وظائف مكافئة في كلتا مجموعتي التعليمات. تدعم "لغة التجميع الموحدة" الجديدة (UAL) إنشاء تعليمات Thumb أو ARM من نفس الكود المصدر؛ إصدارات Thumb التي تظهر على معالجات ARMv7 قادرة بشكل أساسي على نفس قدرة كود ARM (بما في ذلك القدرة على كتابة معالجات المقاطعة). يتطلب هذا بعض العناية واستخدام تعليمة "IT" جديدة (إذا-ثم)، والتي تسمح بتنفيذ ما يصل إلى أربع تعليمات متتالية بناءً على شرط تم اختباره، أو على عكسه. عند التجميع في كود ARM، يتم تجاهل هذا، ولكن عند التجميع في Thumb فإنه يولد تعليمة فعلية. على سبيل المثال:

; إذا (r0 == r1) 
CMP r0 ، r1 ITE EQ ؛ ARM: لا يوجد رمز ... Thumb: تعليمات IT ؛ ثم r0 = r2؛ MOVEQ r0 ، r2 ؛ ARM: شرطي؛ Thumb: شرط عبر ITE 'T' (ثم) ؛ وإلا r0 = r3؛ MOVNE r0 ، r3 ؛ ARM: شرطي؛ Thumb: شرط عبر ITE 'E' (إلا) ؛ تذكر أن تعليمات Thumb MOV ليس لديها بتات لترميز "EQ" أو "NE".  
         

    

    

تدعم جميع شرائح ARMv7 مجموعة تعليمات Thumb. تدعم جميع الشرائح في سلسلة Cortex-A التي تدعم ARMv7، وجميع سلسلة Cortex-R، وجميع سلسلة ARM11 كلًا من "حالة مجموعة تعليمات ARM" و"حالة مجموعة تعليمات Thumb"، بينما تدعم الشرائح في سلسلة Cortex-M مجموعة تعليمات Thumb فقط. [127] [128] [129]

بيئة تنفيذ الإبهام (ThumbEE)

تم الإعلان عن ThumbEE (المسمى خطأً Thumb-2EE في بعض وثائق ARM)، والذي تم تسويقه باسم Jazelle RCT [130] (هدف التجميع وقت التشغيل)، في عام 2005 وتم إيقافه في عام 2011. ظهر لأول مرة في معالج Cortex-A8 . ThumbEE هي حالة مجموعة تعليمات رابعة، تُجري تغييرات صغيرة على مجموعة التعليمات الموسعة Thumb-2. تجعل هذه التغييرات مجموعة التعليمات مناسبة بشكل خاص للكود الناتج في وقت التشغيل (على سبيل المثال عن طريق التجميع JIT ) في بيئات التنفيذ المُدارة . ThumbEE هو هدف للغات مثل Java و C# و Perl و Python ، ويسمح لمُجمِّعي JIT بإخراج كود مُجمَّع أصغر حجمًا دون تقليل الأداء. [ بحاجة لمصدر ]

تتضمن الميزات الجديدة التي يوفرها ThumbEE عمليات فحص تلقائية للمؤشر الفارغ في كل تعليمات التحميل والتخزين، وتعليمات لإجراء فحص حدود المصفوفة، وتعليمات خاصة تستدعي معالجًا. بالإضافة إلى ذلك، نظرًا لأنه يستخدم تقنية Thumb-2، يوفر ThumbEE إمكانية الوصول إلى السجلات r8–r15 (حيث يتم الاحتفاظ بحالة Jazelle/DBX Java VM). [131] المعالجات هي أقسام صغيرة من التعليمات البرمجية التي يتم استدعاؤها بشكل متكرر، والتي تُستخدم عادةً لتنفيذ لغات عالية المستوى، مثل تخصيص الذاكرة لكائن جديد. تأتي هذه التغييرات من إعادة استخدام عدد قليل من التعليمات البرمجية، ومعرفة أن النواة في حالة ThumbEE الجديدة.

في 23 نوفمبر 2011، أوقفت Arm أي استخدام لمجموعة تعليمات ThumbEE، [132] وأزالت Armv8 الدعم لـ ThumbEE.

النقطة العائمة (VFP)

تقنية VFP (Vector Floating Point) هي امتداد لوحدة معالجة مساعدة للفاصلة العائمة (FPU) لهندسة ARM [133] (تم تنفيذها بشكل مختلف في Armv8 - المعالجات المساعدة غير محددة هناك). وهي توفر حسابًا منخفض التكلفة بدقة واحدة ودقة مزدوجة للفاصلة العائمة متوافقًا تمامًا مع معيار ANSI/IEEE Std 754-1985 للحسابات الثنائية للفاصلة العائمة . توفر VFP حسابًا للفاصلة العائمة مناسبًا لمجموعة واسعة من التطبيقات مثل أجهزة المساعد الرقمي الشخصي (PDA) والهواتف الذكية وضغط الصوت وفك ضغطه والرسومات ثلاثية الأبعاد والصوت الرقمي والطابعات وأجهزة فك التشفير وتطبيقات السيارات. كانت هندسة VFP تهدف إلى دعم تنفيذ تعليمات "وضع المتجه" القصيرة ولكنها تعمل على كل عنصر متجه بشكل متسلسل وبالتالي لم تقدم أداء التوازي الحقيقي لتعليمة واحدة وبيانات متعددة (SIMD). لذلك تمت إزالة وضع المتجه هذا بعد فترة وجيزة من تقديمه، [134] ليتم استبداله بـ Advanced SIMD الأقوى بكثير، والذي يسمى أيضًا Neon.

تحتوي بعض الأجهزة مثل ARM Cortex-A8 على وحدة VFPLite مقطوعة بدلاً من وحدة VFP كاملة، وتتطلب دورات ساعة أكثر بعشر مرات تقريبًا لكل عملية تعويم. [135] نفذت بنية ما قبل Armv8 الفاصلة العائمة/SIMD مع واجهة المعالج المساعد. تشمل وحدات الفاصلة العائمة و/أو SIMD الأخرى الموجودة في المعالجات القائمة على ARM والتي تستخدم واجهة المعالج المساعد FPA وFPE و iwMMXt ، وقد تم تنفيذ بعضها في البرنامج عن طريق الاحتجاز ولكن كان من الممكن تنفيذها في الأجهزة. وهي توفر بعض الوظائف نفسها مثل VFP ولكنها غير متوافقة مع التعليمات البرمجية التشغيلية . يوفر FPA10 أيضًا دقة ممتدة ، ولكنه ينفذ التقريب الصحيح (المطلوب بواسطة IEEE 754) فقط بدقة واحدة. [136]

برنامج VFPv1
عفا عليها الزمن
تقنية VFPv2
امتداد اختياري لمجموعة تعليمات ARM في بنيات ARMv5TE وARMv5TEJ وARMv6. يحتوي VFPv2 على 16 سجل FPU مكون من 64 بت.
VFPv3 أو VFPv3-D32
تم تنفيذه على معظم معالجات Cortex-A8 وA9 ARMv7. وهو متوافق مع VFPv2، باستثناء أنه لا يمكنه حصر استثناءات الفاصلة العائمة. يحتوي VFPv3 على 32 سجل FPU 64 بت كمعيار، ويضيف تعليمات VCVT للتحويل بين السلمي والعائم والمزدوج، ويضيف الوضع الفوري إلى VMOV بحيث يمكن تحميل الثوابت في سجلات FPU.
VFPv3-D16
كما هو مذكور أعلاه، ولكن مع 16 سجل وحدة معالجة عائمة 64 بت فقط. تم تنفيذه على معالجات Cortex-R4 وR5 و Tegra 2 (Cortex-A9).
VFPv3-F16
غير شائع؛ فهو يدعم نظام النقطة العائمة بنصف الدقة (16 بت) وفقًا لمعيار IEEE754-2008 كتنسيق تخزين.
VFPv4 أو VFPv4-D32
تم تنفيذ Cortex-A7 على معالجات ARMv7 Cortex-A12 وA15، ويحتوي بشكل اختياري على VFPv4-D32 في حالة وحدة FPU مع Neon. [137] يحتوي VFPv4 على 32 سجل وحدة FPU 64 بت كمعيار، ويضيف دعم نصف الدقة كتنسيق تخزين وتعليمات مضاعفة ومتراكمة مدمجة إلى ميزات VFPv3.
VFPv4-D16
كما هو مذكور أعلاه، إلا أنه يحتوي على 16 سجل وحدة عائمة ذات 64 بت فقط. تم تنفيذه على معالجات Cortex-A5 وA7 في حالة وحدة عائمة بدون Neon. [137]
VFPv5-D16-M
تم تنفيذه على Cortex-M7 عندما يكون خيار النواة العائمة ذات الدقة المفردة والمزدوجة موجودًا.

في Debian Linux ومشتقاته مثل Ubuntu و Linux Mint ، يشير armhf ( ARM hard float ) إلى بنية ARMv7 بما في ذلك امتداد الأجهزة ذات النقطة العائمة VFP3-D16 الإضافي (وThumb-2) أعلاه. تستخدم حزم البرامج وأدوات التجميع المتقاطعة اللاحقات armhf مقابل arm/armel للتمييز. [138]

SIMD المتقدم (نيون)

إن ملحق SIMD المتقدم (المعروف أيضًا باسم Neon أو "MPE" Media Processing Engine) عبارة عن مجموعة تعليمات SIMD مدمجة 64 و 128 بت توفر تسريعًا قياسيًا لتطبيقات الوسائط ومعالجة الإشارات. يتم تضمين Neon في جميع أجهزة Cortex-A8، ولكنه اختياري في أجهزة Cortex-A9. [139] يمكن لـ Neon تنفيذ فك تشفير الصوت MP3 على وحدات المعالجة المركزية التي تعمل بسرعة 10 ميجاهرتز، ويمكنه تشغيل برنامج ترميز الكلام GSM التكيفي متعدد المعدلات (AMR) بسرعة 13 ميجاهرتز. يتميز بمجموعة تعليمات شاملة وملفات تسجيل منفصلة وأجهزة تنفيذ مستقلة. [140] يدعم Neon البيانات ذات الفاصلة العائمة ذات الدقة المفردة (32 بت) والأعداد الصحيحة 8 و 16 و 32 و 64 بت وعمليات SIMD للتعامل مع معالجة الصوت والفيديو بالإضافة إلى معالجة الرسومات والألعاب. في Neon، يدعم SIMD ما يصل إلى 16 عملية في نفس الوقت. تشترك أجهزة Neon في نفس السجلات ذات الفاصلة العائمة المستخدمة في VFP. تدعم الأجهزة مثل ARM Cortex-A8 وCortex-A9 متجهات 128 بت، ولكنها ستنفذ 64 بت في المرة الواحدة، [135] بينما يمكن لأجهزة Cortex-A15 الأحدث تنفيذ 128 بت في المرة الواحدة. [141] [142]

من بين خصائص Neon في أجهزة Armv7 أنه يقوم بطرد جميع الأرقام غير الطبيعية إلى الصفر، ونتيجة لذلك لن يستخدمه مُجمِّع GCC-funsafe-math-optimizations إلا إذا تم تشغيل ، والذي يسمح بفقدان الأرقام غير الطبيعية. لا يحتوي Neon "المُحسَّن" المحدد منذ Armv8 على هذه الخاصية، ولكن اعتبارًا من GCC 8.2 لا يزال نفس العلم مطلوبًا لتمكين تعليمات Neon. [143] من ناحية أخرى، يعتبر GCC Neon آمنًا على AArch64 لـ Armv8.

مشروع Ne10 هو أول مشروع مفتوح المصدر لشركة ARM (منذ بدايته؛ بينما استحوذت على مشروع أقدم، يُسمى الآن Mbed TLS ). مكتبة Ne10 عبارة عن مجموعة من الوظائف الشائعة والمفيدة المكتوبة بكل من Neon وC (للتوافق). تم إنشاء المكتبة للسماح للمطورين باستخدام تحسينات Neon دون تعلم Neon، ولكنها تعمل أيضًا كمجموعة من أمثلة أكواد Neon الجوهرية والتجميعية المحسنة للغاية لعمليات معالجة الإشارات الرقمية والحسابات ومعالجة الصور الشائعة. يتوفر كود المصدر على GitHub. [144]

تكنولوجيا الهيليوم من ARM

الهيليوم هو امتداد متجه M-Profile (MVE). ويضيف أكثر من 150 تعليمة قياسية ومتجهية. [145]

ملحقات الأمان

TrustZone (لملف تعريف Cortex-A)

إن ملحقات الأمان، التي يتم تسويقها باسم TrustZone Technology، موجودة في بنية ARMv6KZ وملف تعريف التطبيق الأحدث. وهي توفر بديلاً منخفض التكلفة لإضافة نواة أمان مخصصة أخرى إلى نظام SoC، من خلال توفير معالجين افتراضيين مدعومين بالتحكم في الوصول القائم على الأجهزة. وهذا يسمح لنواة التطبيق بالتبديل بين حالتين، يشار إليهما بالعوالم (لتقليل الارتباك مع أسماء أخرى لمجالات القدرات)، لمنع تسرب المعلومات من العالم الأكثر ثقة إلى العالم الأقل ثقة. يكون تبديل العالم هذا عموديًا بشكل عام على جميع القدرات الأخرى للمعالج، وبالتالي يمكن لكل عالم أن يعمل بشكل مستقل عن الآخر أثناء استخدام نفس النواة. ثم يتم إعلام الذاكرة والأجهزة الطرفية بالعالم التشغيلي للنواة وقد تستخدم هذا لتوفير التحكم في الوصول إلى الأسرار والرموز على الجهاز. [146]

عادةً، يتم تشغيل نظام تشغيل غني في العالم الأقل ثقة، مع وجود كود أصغر متخصص في الأمان في العالم الأكثر ثقة، بهدف تقليل سطح الهجوم . تتضمن التطبيقات النموذجية وظيفة إدارة الحقوق الرقمية للتحكم في استخدام الوسائط على الأجهزة المستندة إلى ARM، [147] ومنع أي استخدام غير معتمد للجهاز.

في الممارسة العملية، نظرًا لأن تفاصيل التنفيذ المحددة لتطبيقات TrustZone الملكية لم يتم الكشف عنها علنًا للمراجعة، فمن غير الواضح مستوى الضمان المقدم لنموذج تهديد معين ، لكنها ليست محصنة ضد الهجوم. [148] [149]

Open Virtualization [150] هو تنفيذ مفتوح المصدر لهندسة العالم الموثوق بها لـ TrustZone.

قامت AMD بترخيص ودمج تقنية TrustZone في تقنية المعالج الآمنة الخاصة بها . [151] تتضمن وحدات المعالجة المسرعة من AMD معالج Cortex-A5 للتعامل مع المعالجة الآمنة، والذي تم تمكينه في بعض المنتجات، ولكن ليس كلها. [152] [153] [154] في الواقع، تم تضمين نواة Cortex-A5 TrustZone في منتجات AMD السابقة، ولكن لم يتم تمكينها بسبب قيود الوقت. [153]

تستخدم Samsung Knox TrustZone لأغراض مثل اكتشاف التعديلات على النواة وتخزين الشهادات وإثبات المفاتيح. [155]

TrustZone لـ Armv8-M (لملف تعريف Cortex-M)

تم تقديم ملحق الأمان، الذي تم تسويقه باسم TrustZone لتقنية Armv8-M، في بنية Armv8-M. وبينما يحتوي على مفاهيم مماثلة لملحق TrustZone لـ Armv8-A، فإنه يتميز بتصميم معماري مختلف، حيث يتم إجراء التبديل بين العوالم باستخدام تعليمات فرعية بدلاً من استخدام الاستثناءات. كما يدعم معالجة المقاطعات المتداخلة الآمنة من أي من العوالم بغض النظر عن حالة الأمان الحالية. وتوفر هذه الميزات معًا مكالمات منخفضة الكمون إلى العالم الآمن ومعالجة المقاطعات المستجيبة. يوفر ARM مجموعة مرجعية من أكواد العالم الآمن في شكل Trusted Firmware for M و PSA Certified .

حماية الصفحة من عدم التنفيذ

اعتبارًا من ARMv6، تدعم بنية ARM حماية الصفحة من عدم التنفيذ ، والتي يشار إليها باسم XN ، لـ eXecute Never . [156]

امتداد العنوان المادي الكبير (LPAE)

تمت إضافة امتداد العنوان المادي الكبير (LPAE)، الذي يوسع حجم العنوان المادي من 32 بت إلى 40 بت، إلى بنية Armv7-A في عام 2011. [157]

قد يكون حجم العنوان الفعلي أكبر في المعالجات القائمة على بنية 64 بت (Armv8-A). على سبيل المثال، يبلغ حجمه 44 بت في Cortex-A75 وCortex-A65AE. [158]

Armv8-R و Armv8-M

تشترك معماريات Armv8-R و Armv8-M ، التي تم الإعلان عنها بعد معمارية Armv8-A، في بعض الميزات مع Armv8-A. ومع ذلك، لا يتضمن Armv8-M أي تعليمات AArch64 64 بت، ولم يتضمن Armv8-R في الأصل أي تعليمات AArch64؛ تمت إضافة هذه التعليمات إلى Armv8-R لاحقًا.

الذراع 8.1-م

تم الإعلان عن بنية Armv8.1-M في فبراير 2019، وهي عبارة عن تحسين لبنية Armv8-M. وهي تقدم ميزات جديدة بما في ذلك:

  • امتداد جديد لمجموعة تعليمات المتجهات. امتداد المتجهات M-Profile (MVE)، أو Helium، مخصص لتطبيقات معالجة الإشارات والتعلم الآلي.
  • تحسينات إضافية لمجموعة التعليمات الخاصة بالحلقات والفروع (تمديد الفرع منخفض التكلفة).
  • تعليمات لدعم النقطة العائمة ذات الدقة النصفية .
  • تحسين مجموعة التعليمات لإدارة TrustZone لوحدة النقطة العائمة (FPU).
  • سمة ذاكرة جديدة في وحدة حماية الذاكرة (MPU).
  • تركز التحسينات في التصحيح، بما في ذلك وحدة مراقبة الأداء (PMU)، وملحق التصحيح غير المتميز، ودعم التصحيح الإضافي على تطويرات تطبيقات معالجة الإشارات.
  • تمديد الموثوقية والتوافر والقدرة على الخدمة (RAS).

هندسة 64/32 بت

منصة Armv8-A مع شريحة وحدة المعالجة المركزية Cortex A57/A53 MPCore big.LITTLE

أرمف8

الذراعV8-أ

تم الإعلان عنه في أكتوبر 2011، [13] يمثل Armv8-A (غالبًا ما يُسمى ARMv8 بينما يتوفر Armv8-R أيضًا) تغييرًا أساسيًا في بنية ARM. وهو يدعم حالتين للتنفيذ : حالة 64 بت تسمى AArch64 وحالة 32 بت تسمى AArch32 . في حالة AArch64، يتم دعم مجموعة تعليمات A64 جديدة 64 بت ؛ في حالة AArch32، يتم دعم مجموعتين من التعليمات: مجموعة التعليمات الأصلية 32 بت، المسماة A32 ، ومجموعة تعليمات Thumb-2 32 بت، المسماة T32 . يوفر AArch32 توافقًا مع مساحة المستخدم مع Armv7-A. يمكن أن تتغير حالة المعالج عند حدوث تغيير على مستوى الاستثناء؛ يسمح هذا بتنفيذ تطبيقات 32 بت في حالة AArch32 تحت نظام تشغيل 64 بت يتم تنفيذ نواته في حالة AArch64، ويسمح لنظام تشغيل 32 بت بالعمل في حالة AArch32 تحت سيطرة مشرف 64 بت يعمل في حالة AArch64. [1] أعلنت ARM عن أنويتها Cortex-A53 وCortex-A57 في 30 أكتوبر 2012. [73] كانت Apple أول من أصدر نواة متوافقة مع Armv8-A في منتج استهلاكي ( Apple A7 في iPhone 5S ). كانت AppliedMicro ، باستخدام FPGA ، أول من عرض Armv8-A. [159] أول نظام SoC Armv8-A من Samsung هو Exynos 5433 المستخدم في Galaxy Note 4 ، والذي يتميز بمجموعتين من أربعة أنوية Cortex-A57 وCortex-A53 في تكوين big.LITTLE ؛ ولكنه سيعمل فقط في وضع AArch32. [160]

بالنسبة لكل من AArch32 و AArch64، يجعل Armv8-A معيار VFPv3/v4 وSIMD (Neon) المتقدم. كما يضيف تعليمات التشفير التي تدعم AES و SHA-1 / SHA-256 وحسابات المجال المحدود . [161] تم تقديم AArch64 في Armv8-A ومراجعته اللاحقة. لا يتم تضمين AArch64 في معماريات Armv8-R و Armv8-M ذات 32 بت.

يمكن لمعالج ARMv8-A دعم أحد AArch32 وAArch64 أو كليهما؛ فقد يدعم AArch32 وAArch64 في مستويات استثناء أقل وAArch64 فقط في مستويات استثناء أعلى. [162] على سبيل المثال، يدعم ARM Cortex-A32 AArch32 فقط، [163] ويدعم ARM Cortex-A34 AArch64 فقط، [164] ويدعم ARM Cortex-A72 كلاً من AArch64 وAArch32. [165] يجب أن يدعم معالج ARMv9-A AArch64 في جميع مستويات الاستثناء، وقد يدعم AArch32 في EL0. [162] لا تدعم بعض معالجات ARMv8-A، مثل Apple M1 و Apple A11 ، تطبيقات AArch32 على الإطلاق.

أرمف8-ر

تمت إضافة دعم AArch64 الاختياري إلى ملف تعريف Armv8-R، حيث كان أول نواة ARM تنفذه هو Cortex-R82. [166] ويضيف مجموعة تعليمات A64.

أرمف9

أرمفي9-أ

تم الإعلان عن التحديث في مارس 2021، ويركز على التنفيذ الآمن والتقسيم . [ 167] [168]

نظام الذراع جاهز

Arm SystemReady، والذي كان يسمى سابقًا Arm ServerReady، هو برنامج شهادة يساعد في توفير أنظمة التشغيل العامة الجاهزة وأجهزة التشغيل الافتراضية على الأنظمة المستندة إلى Arm من خوادم مراكز البيانات إلى الأجهزة الصناعية وأجهزة إنترنت الأشياء. اللبنات الأساسية للبرنامج هي المواصفات الخاصة بمتطلبات الأجهزة والبرامج الثابتة الدنيا التي يمكن لأنظمة التشغيل وأجهزة التشغيل الافتراضية الاعتماد عليها. هذه المواصفات هي: [169]

  • هندسة النظام الأساسي (BSA) [170] والمكملات الخاصة بشريحة السوق (على سبيل المثال، مكمل Server BSA) [171]
  • متطلبات التمهيد الأساسية (BBR) [172] ومتطلبات أمان التمهيد الأساسية (BBR) [173]

تم تطوير هذه المواصفات بشكل مشترك من قبل شركة Arm وشركائها في لجنة استشارية للهندسة المعمارية للنظام (SystemArchAC).

مجموعة الامتثال للهندسة المعمارية (ACS) هي أدوات الاختبار التي تساعد في التحقق من امتثال هذه المواصفات. توثق مواصفات متطلبات Arm SystemReady متطلبات الشهادات. [174]

تم تقديم هذا البرنامج بواسطة Arm في عام 2020 في أول حدث DevSummit . تم تقديم سابقه Arm ServerReady في عام 2018 في حدث Arm TechCon. يتضمن هذا البرنامج حاليًا أربع نطاقات:

  • SystemReady SR: هذا النطاق مخصص للخوادم ومحطات العمل التي تدعم أنظمة التشغيل والمشرفين الافتراضيين الذين يتوقعون واجهات UEFI و ACPI و SMBIOS . تتطلب أنظمة Windows وRed Hat Enterprise Linux وVMware ESXi-Arm هذه الواجهات بينما يمكن لتوزيعات Linux وBSD الأخرى أيضًا دعمها. [ يحتاج إلى توضيح ]
  • SystemReady LS (نظام LinuxBoot): هذا النطاق مخصص للخوادم التي يستخدمها المطورون لدعم أنظمة تشغيل Linux التي تتوقع برامج LinuxBoot الثابتة إلى جانب واجهات ACPI وSMBIOS.
  • SystemReady ES (نظام مضمّن): هذا النطاق مخصص لأجهزة الحافة الصناعية وأجهزة إنترنت الأشياء التي تدعم أنظمة التشغيل والمشرفين الافتراضيين الذين يتوقعون واجهات UEFI وACPI وSMBIOS. تتطلب أنظمة Windows IoT Enterprise وRed Hat Enterprise Linux وVMware ESXi-Arm هذه الواجهات بينما يمكن لتوزيعات Linux وBSD الأخرى أيضًا دعمها. [ يُطلب التوضيح ]
  • SystemReady IR (IoT Ready): هذا النطاق مخصص لأجهزة الحافة الصناعية وأجهزة إنترنت الأشياء التي تدعم أنظمة التشغيل التي تتوقع واجهات UEFI و devicetree . يمكن أن يدعم Linux المدمج (على سبيل المثال، Yocto ) وبعض توزيعات Linux/BSD (على سبيل المثال، Fedora وUbuntu وDebian وOpenSUSE) أيضًا. [ يحتاج إلى توضيح ]

معتمد من PSA

شهادة PSA المعتمدة ، والتي كانت تسمى سابقًا Platform Security Architecture، هي إطار عمل أمني ونظام تقييم مستقل عن البنية المعمارية. وهي تهدف إلى المساعدة في تأمين أجهزة إنترنت الأشياء (IoT) المبنية على معالجات النظام على الشريحة (SoC). [175] تم تقديمها لزيادة الأمان حيث تكون بيئة التنفيذ الموثوقة بالكامل كبيرة جدًا أو معقدة. [176]

تم تقديم هذه الهندسة المعمارية بواسطة Arm في عام 2017 في حدث TechCon السنوي . [176] [177] على الرغم من أن المخطط لا يعتمد على الهندسة المعمارية، فقد تم تنفيذه لأول مرة على نوى معالج Arm Cortex-M المخصصة لاستخدام المتحكم الدقيق. تتضمن شهادة PSA نماذج تهديدات وتحليلات أمان متاحة مجانًا توضح عملية اتخاذ القرار بشأن ميزات الأمان في منتجات إنترنت الأشياء الشائعة. [178] كما توفر حزم واجهة برمجة التطبيقات (API) القابلة للتنزيل مجانًا، والمواصفات المعمارية، وتنفيذات البرامج الثابتة مفتوحة المصدر، ومجموعات الاختبار ذات الصلة. [179]

بعد تطوير إطار عمل أمان الهندسة المعمارية في عام 2017، تم إطلاق مخطط ضمان PSA Certified بعد عامين في Embedded World في عام 2019. [180] تقدم PSA Certified مخطط تقييم أمان متعدد المستويات لموردي الرقائق وموفري أنظمة التشغيل وصانعي أجهزة إنترنت الأشياء. [181] قدم عرض Embedded World لموردي الرقائق شهادة المستوى 1. تم تقديم مسودة للحماية من المستوى 2 في نفس الوقت. [182] أصبحت شهادة المستوى 2 معيارًا قابلاً للاستخدام في فبراير 2020. [183]

تم إنشاء الشهادة من قبل أصحاب المصلحة المشتركين في PSA لتمكين نهج الأمان من خلال التصميم لمجموعة متنوعة من منتجات إنترنت الأشياء. مواصفات PSA المعتمدة لا تعتمد على التنفيذ والهندسة المعمارية، ونتيجة لذلك يمكن تطبيقها على أي شريحة أو برنامج أو جهاز. [184] [182] كما تعمل الشهادة على إزالة تجزئة الصناعة لمصنعي ومطوري منتجات إنترنت الأشياء . [185]

دعم نظام التشغيل

أنظمة التشغيل 32 بت

أنظمة التشغيل التاريخية

كان أول حاسوب شخصي يعمل بنظام ARM ذي 32 بت، وهو Acorn Archimedes ، مخصصًا في الأصل لتشغيل نظام تشغيل طموح يسمى ARX . تم شحن الأجهزة بنظام RISC OS ، والذي تم استخدامه أيضًا في أنظمة ARM اللاحقة من Acorn وبائعين آخرين. كانت بعض أجهزة Acorn المبكرة قادرة أيضًا على تشغيل منفذ يونكس يسمى RISC iX . (لا ينبغي الخلط بين أي منهما وبين RISC/os ، وهو متغير يونكس معاصر لهندسة MIPS.)

أنظمة التشغيل المضمنة

يتم دعم بنية ARM ذات 32 بت بواسطة عدد كبير من أنظمة التشغيل المضمنة وأنظمة التشغيل في الوقت الفعلي ، بما في ذلك:

أنظمة تشغيل الأجهزة المحمولة

اعتبارًا من مارس 2024، كانت بنية ARM ذات 32 بت هي البيئة الأساسية للأجهزة لمعظم أنظمة تشغيل الأجهزة المحمولة مثل الأنظمة التالية، ولكن العديد من هذه المنصات مثل Android وApple iOS تطورت إلى بنية ARM ذات 64 بت:

في السابق، ولكن تم إيقافه الآن:

أنظمة تشغيل سطح المكتب والخادم

يتم دعم بنية ARM ذات 32 بت بواسطة نظام التشغيل RISC OS والعديد من أنظمة التشغيل المشابهة لـ Unix بما في ذلك:

أنظمة تشغيل 64 بت

أنظمة التشغيل المضمنة

أنظمة تشغيل الأجهزة المحمولة

أنظمة تشغيل سطح المكتب والخادم

النقل إلى أنظمة تشغيل ARM ذات 32 بت أو 64 بت

يمكن تشغيل تطبيقات Windows المعاد تجميعها لـ ARM والمرتبطة بـ Winelib، من مشروع Wine ، على ARM 32 بت أو 64 بت في Linux أو FreeBSD أو أنظمة تشغيل متوافقة أخرى. [214] [215] تم عرض ثنائيات x86، على سبيل المثال عندما لا يتم تجميعها خصيصًا لـ ARM، على ARM باستخدام QEMU مع Wine (على Linux والمزيد)، [ بحاجة لمصدر ] ولكنها لا تعمل بأقصى سرعة أو بنفس القدرة كما هو الحال مع Winelib.

ملحوظات

  1. ^ باستخدام كلمات مكونة من 32 بت، فإن 4 ميجابت/ثانية تعادل 1 MIPS .
  2. ^ لا تذكر المراجع المتاحة فريق التصميم هذا، ولكن بالنظر إلى التوقيت والتاريخ المعروف لتصميمات تلك الحقبة، فمن المرجح أن يكون هذا هو فريق National Semiconductor الذي عانى NS32016 من عدد كبير من الأخطاء.
  3. ^ يلاحظ مات إيفانز أنه يبدو أن الإصدارات الأسرع تم تصنيفها ببساطة في مرتبة أعلى، ويبدو أنها لا تحتوي على أي تغييرات أساسية. [35]

انظر أيضا

مراجع

الاستشهادات

  1. ^ abcdef Grisenthwaite, Richard (2011). "ARMv8-A Technology Preview" (PDF) . مؤرشف من الأصل (PDF) في 11 نوفمبر 2011. تم الاسترجاع في 31 أكتوبر 2011 .
  2. ^ "6.1.2.1 اتفاقيات استخدام سجل VFP". معيار استدعاء الإجراء لهندسة ARM . Arm Holdings . 6 أكتوبر 2023. تم الاسترجاع في 22 أغسطس 2024 .
  3. ^ ab Wilson, Roger (2 نوفمبر 1988). "بعض الحقائق حول جهاز Acorn RISC Machine". مجموعة الأخبار : comp.arch . تم الاسترجاع في 25 مايو 2007 .
  4. ^ ab Hachman, Mark (14 أكتوبر 2002). "ARM Cores Climb into 3G Territory". ExtremeTech . تم الاسترجاع في 24 مايو 2018 .
  5. ^ تورلي، جيم (18 ديسمبر 2002). "حل النسبة المئوية الاثنين". تم الاسترجاع في 14 فبراير 2023 .
  6. ^ Cutress, Ian (22 يونيو 2020). "حاسوب خارق جديد رقم 1: فوجاكو من فوجيتسو وA64FX يأخذان أرم إلى القمة بـ 415 بيتافلوب". anandtech.com . تم الاسترجاع في 25 يناير 2021 .
  7. ^ "شركات Arm Partners تشحن 200 مليار شريحة". Arm (بيان صحفي) . تم الاسترجاع في 3 نوفمبر 2021 .
  8. ^ "تمكين اتصال إنترنت الأشياء الشامل مع قيام شركاء ARM بشحن 100 مليار شريحة". community.arm.com . 27 فبراير 2017 . تم الاسترجاع في 8 أبريل 2020 . النشر التراكمي لـ 100 مليار شريحة، تم شحن نصفها في السنوات الأربع الماضية. [..] لماذا لا يكون تريليونًا أو أكثر؟ هذا هو هدفنا، رؤية تريليون جهاز متصل يتم نشره على مدار العقدين المقبلين.
  9. ^ "سوق MCU في مسار الهجرة إلى الأجهزة المستندة إلى 32 بت وARM: مبيعات 32 بت تتصدر المبيعات؛ ومبيعات 16 بت تتصدر الشحنات". IC Insights. 25 أبريل 2013. تم الاسترجاع في 1 يوليو 2014 .
  10. ^ تورلي، جيم (2002). "حل الاثنين في المائة". embedded.com.
  11. ^ "شركة آرم القابضة حريصة على التوسع في مجال الحاسب الشخصي والخوادم". ذا ريجيستر . 1 فبراير 2011.
  12. ^ ماكجواير-بالانزا، كيري (11 مايو 2010). "ARM من الصفر إلى المليارات في 25 عامًا قصيرة". Arm Holdings . تم الاسترجاع في 8 نوفمبر 2012 .
  13. ^ "ARM تكشف عن التفاصيل الفنية للإصدار التالي من بنية ARM" (بيان صحفي). Arm Holdings . 27 أكتوبر 2011. مؤرشف من الأصل في 1 يناير 2019. تم الاسترجاع في 20 سبتمبر 2013 .
  14. ^ "الإعلان عن منصة ARM Neoverse N1". community.arm.com . 20 فبراير 2019 . تم الاسترجاع في 8 أبريل 2020 .
  15. ^ فيربيرن، دوغلاس (31 يناير 2012). "التاريخ الشفوي لسوفي ويلسون" (PDF) . مؤرشف من الأصل (PDF) في 3 مارس 2016. تم الاسترجاع في 2 فبراير 2016 .
  16. ^ سميث، توني (30 نوفمبر 2011). "The BBC Micro returns 30". The Register Hardware . مؤرشف من الأصل في 12 ديسمبر 2011 . تم الاسترجاع في 12 ديسمبر 2011 .
  17. ^ بولسون، كين. "التسلسل الزمني للمعالجات الدقيقة". Processortimeline.info . مؤرشف من الأصل في 9 أغسطس 2018 . تم الاسترجاع في 27 سبتمبر 2013 .
  18. ^ Leedy, Glenn (أبريل 1983). "عائلة المعالجات الدقيقة NS16000 من National Semiconductor". Byte . ص 53-66 . تم الاسترجاع في 22 أغسطس 2020 .
  19. ^ إيفانز 2019، 6:00.
  20. ^ مانرز، ديفيد (29 أبريل 1998). "طريقة ARM". إلكترونيكس ويكلي . مؤرشف من الأصل في 29 يوليو 2012. تم الاسترجاع في 26 أكتوبر 2012 .
  21. ^ إيفانز 2019، 5:30.
  22. ^ بواسطة إيفانز 2019، 7:45.
  23. ^ إيفانز 2019، 8:30.
  24. ^ صوفي ويلسون في حفل Alt Party 2009 (الجزء 3/8). مؤرشف من الأصل في 11 ديسمبر 2021.
  25. ^ Chisnall, David (23 أغسطس 2010). Understanding ARM Architectures . تم الاسترجاع في 26 مايو 2013 .
  26. ^ إيفانز 2019، 9:00.
  27. ^ فوربر، ستيفن ب. (2000). هندسة نظام ARM على الشريحة . بوسطن: أديسون ويسلي. ISBN 0-201-67519-6.
  28. ^ إيفانز 2019، 9:50.
  29. ^ إيفانز 2019، 23:30.
  30. ^ إيفانز 2019، 26:00.
  31. ^ "تاريخ تصميم مجموعة تعليمات ARM مع صوفي ويلسون (الجزء 3)". 10 مايو 2015. مؤرشف من الأصل في 11 ديسمبر 2021. تم الاسترجاع 25 مايو 2020 – عبر YouTube.
  32. ^ "التاريخ الشفوي لسوفي ويلسون - زميلة متحف تاريخ الكمبيوتر لعام 2012" (PDF) . متحف تاريخ الكمبيوتر . 31 يناير 2012. تم الاسترجاع في 25 مايو 2020 .
  33. ^ Harker, T. (Summer 2009). "ARM gets seriously about IP (Second in a two-part series [Associated Editors' View]". مجلة IEEE للدوائر الصلبة . 1 (3): 8–69. doi :10.1109/MSSC.2009.933674. ISSN  1943-0590. S2CID  36567166.
  34. ^ إيفانز 2019، 20:30.
  35. ^ إيفانز 2019، 22:00.
  36. ^ إيفانز 2019، 21:30.
  37. ^ إيفانز 2019، 22:0030.
  38. ^ بواسطة إيفانز 2019، 14:00.
  39. ^ "من شركة ARM إلى الشركة التالية! معالجات ARM وبنياتها" . تم الاسترجاع في 31 مايو 2022 .
  40. ^ ليفي، ماركوس. "تاريخ بنية ARM: من البداية إلى الطرح العام الأولي" (PDF) . تم الاسترجاع في 18 يوليو 2022 .
  41. ^ تقديم Commodore Amiga 3000 (PDF) . Commodore-Amiga, Inc. 1991.
  42. ^ "مطالبات سرعة MIPS وMFLOPS للكمبيوتر من عام 1980 إلى عام 1996". www.roylongbottom.org.uk . تم الاسترجاع في 17 يونيو 2023 .
  43. ^ سانتانو تشاتوبادياي (2010). تصميم النظام المضمن. PHI Learning Pvt. Ltd. ص. 9. ISBN 978-81-203-4024-4.
  44. ^ ريتشارد موراي. "عملية 32 بت".
  45. ^ "أهم إنجازات شركة ARM". ARM . مؤرشف من الأصل في 20 أبريل 2015 . تم الاسترجاع 8 أبريل 2015 .
  46. ^ أندروز، جيسون (2005). "3 مواضيع للتحقق من نظام SoC لهندسة ARM". التحقق المشترك من الأجهزة والبرامج لتصميم نظام SoC لـ ARM . أكسفورد، المملكة المتحدة: إلسفير . ص 69. ISBN 0-7506-7730-9بدأت شركة ARM كفرع لشركة Acorn Computer في كامبريدج بإنجلترا، مع تأسيس مشروع مشترك بين Acorn وApple وVLSI Technology. قام فريق من اثني عشر موظفًا بإنتاج تصميم أول معالج ARM في الفترة ما بين عامي 1983 و1985.
  47. ^ ويبر، جوناثان (28 نوفمبر 1990). "Apple to Join Acorn, VLSI in Chip-Making Venture". لوس أنجلوس تايمز . لوس أنجلوس . تم الاسترجاع في 6 فبراير 2012. استثمرت شركة أبل حوالي 3 ملايين دولار (حوالي 1.5 مليون جنيه إسترليني) مقابل حصة 30٪ في الشركة، التي أطلق عليها اسم Advanced Risc Machines Ltd. (ARM) [...]
  48. ^ "ARM Corporate Backgrounder" (PDF) . ARM . مؤرشف من الأصل (PDF) في 4 أكتوبر 2006.
  49. ^ مونتانارو، جيمس؛ وآخرون (1997). "معالج ميكروي CMOS RISC بسرعة 160 ميجاهرتز، 32 بت، 0.5 وات" (ملف PDF) . المجلة التقنية الرقمية . 9 (1): 49-62.
  50. ^ DeMone, Paul (9 November 2000). "ARM's Race to Embedded World Domination". Real World Technologies . تم الاسترجاع في 6 أكتوبر 2015 .
  51. ^ "مسيرة الآلات". technologyreview.com . MIT Technology Review . 20 أبريل 2010. مؤرشف من الأصل في 16 أكتوبر 2015 . تم الاسترجاع 6 أكتوبر 2015 .
  52. ^ كرازيت، توم (3 أبريل 2006). "مسلحون لغرفة المعيشة". سي نت.
  53. ^ تريسي روبنسون (12 فبراير 2014). "الاحتفال بشحن 50 مليار شريحة تعمل بتقنية ARM".
  54. ^ سارة موري (3 مارس 2014). "ARM’s Reach: 50 Billion Chip Milestone". مؤرشف من الأصل في 16 سبتمبر 2015.
  55. ^ براون، إيريك (2009). "أجهزة الكمبيوتر المحمولة الصغيرة التي تعمل بنظام ARM تأتي مع جهاز لوحي قابل للفصل". مؤرشف من الأصل في 3 يناير 2013. تم الاسترجاع في 19 أغسطس 2009 .
  56. ^ بيتر كلارك (7 يناير 2016). "أمازون تبيع الآن شرائح ARM الخاصة بها".
  57. ^ "MACOM تستكمل بنجاح عملية الاستحواذ على شركة AppliedMicro" (بيان صحفي). 26 يناير 2017.
  58. ^ Frumusanu, Andrei. "تفاصيل ARM المبنية على ترخيص تقنية ARM Cortex". AnandTech . تم الاسترجاع في 26 مايو 2019 .
  59. ^ Cutress, Ian. "ARM Flexible Access: Design the SoC Before Spending Money". AnandTech . تم الاسترجاع في 9 أكتوبر 2019 .
  60. ^ "الأسئلة الشائعة حول ARM Flexible Access". ARM . تم الاسترجاع في 9 أكتوبر 2019 .
  61. ^ نولتينغ، ستيفان. "نظام معالج STORM CORE" (PDF) . OpenCores . تم الاسترجاع في 1 أبريل 2014 .
  62. ^ ZAP على GitHub
  63. ^ "معالج Cortex-M23". ARM . تم الاسترجاع في 27 أكتوبر 2016 .
  64. ^ "معالج Cortex-M33". ARM . تم الاسترجاع في 27 أكتوبر 2016 .
  65. ^ "ARMv8-M Architecture Simplifies Security for Smart Embedded". ARM . تم الاسترجاع في 10 نوفمبر 2015 .
  66. ^ Ltd, Arm. "M-Profile Architectures". Arm | The Architecture for the Digital World . تم الاسترجاع في 29 أغسطس 2023 .
  67. ^ "ARMv8-R Architecture" . تم الاسترجاع في 10 يوليو 2015 .
  68. ^ Craske, Simon (أكتوبر 2013). "ARM Cortex-R Architecture" (PDF) . Arm Holdings. مؤرشف من الأصل (PDF) في 6 أبريل 2014. تم الاسترجاع في 1 فبراير 2014 .
  69. ^ سميث، رايان (20 سبتمبر 2016). "ARM تعلن عن وحدة المعالجة المركزية Cortex-R52: حتمية وآمنة، لأنظمة مساعدة السائق المتقدمة والمزيد". AnandTech . تم الاسترجاع في 20 سبتمبر 2016 .
  70. ^ "معالج Cortex-A32". ARM . تم الاسترجاع في 10 أكتوبر 2019 .
  71. ^ "معالج Cortex-A35". ARM . تم الاسترجاع في 10 نوفمبر 2015 .
  72. ^ "ARM تطلق سلسلة Cortex-A50، أكثر معالجات 64 بت كفاءة في استخدام الطاقة في العالم" (بيان صحفي). Arm Holdings . تم الاسترجاع في 31 أكتوبر 2012 .
  73. ^ "معالج Cortex-A72". ARM . تم الاسترجاع في 10 يوليو 2015 .
  74. ^ "معالج Cortex-A73". ARM . تم الاسترجاع في 2 يونيو 2016 .
  75. ^ "ARMv8-A Architecture" . تم الاسترجاع في 10 يوليو 2015 .
  76. ^ "Cavium Thunder X يرفع عدد نوى ARM إلى 48 على شريحة واحدة". SemiAccurate . 3 يونيو 2014.
  77. ^ "Cavium at Supercomputing 2014". Yahoo Finance . 17 نوفمبر 2014. مؤرشف من الأصل في 16 أكتوبر 2015. تم الاسترجاع 15 يناير 2017 .
  78. ^ بيرت، جيف (17 نوفمبر 2014). "شركة كراي ستقيم شرائح ARM في حواسيبها العملاقة". eWeek .
  79. ^ "سامسونج تعلن عن معالج Exynos 8890 مع مودم Cat.12/13 ووحدة معالجة مركزية مخصصة". AnandTech .
  80. ^ "معالج Cortex-A34". ARM . تم الاسترجاع في 10 أكتوبر 2019 .
  81. ^ "D21500 [AARCH64] إضافة الدعم لـ Broadcom Vulcan". reviews.llvm.org .
  82. ^ "معالج Cortex-A55". ARM . تم الاسترجاع في 29 مايو 2017 .
  83. ^ "معالج Cortex-A75". ARM . تم الاسترجاع في 29 مايو 2017 .
  84. ^ "معالج Cortex-A76". ARM . تم الاسترجاع في 11 أكتوبر 2018 .
  85. ^ Berenice Mann (أبريل 2017). "هندسة ARM – تطور ARMv8.2-A وتقديمه". community.ARM.com .
  86. ^ Frumusanu, Andrei. "Samsung Announces the Exynos 9825 SoC: First 7nm EUV Silicon Chip". AnandTech . تم الاسترجاع في 11 أكتوبر 2019 .
  87. ^ "بدأت شركة فوجيتسو في إنتاج مليارات الحسابات الفائقة لليابان باستخدام أقوى معالج ARM A64FX". أخبار تكنولوجيا المعلومات الصينية . مؤرشف من الأصل في 20 يونيو 2019. تم الاسترجاع في 17 أغسطس 2019. شريحة ARMv8 SVE (امتداد متجه قابل للتطوير)، والتي تستخدم 512 بت فاصلة عائمة.
  88. ^ "Cortex-A65AE – ARM". ARM . تم الاسترجاع في 8 أبريل 2020 . يمكن تنفيذ خيطين بالتوازي في كل دورة. يمكن أن يكون كل خيط في مستويات استثناء مختلفة وتشغيل أنظمة تشغيل مختلفة.
  89. ^ Frumusanu, Andrei. "Marvell Announces ThunderX3: 96 Cores & 384 Thread 3rd Gen ARM Server Processor". AnandTech . تم الاسترجاع في 26 مايو 2020 .
  90. ^ "AArch64: إضافة دعم لوحدات المعالجة المركزية الأحدث من Apple · apple/llvm-project@677da09". GitHub . تم الاسترجاع في 23 سبتمبر 2022 .
  91. ^ "ميزات جديدة لبنية Armv8-A - مدونة البنيات والمعالجات - مدونات مجتمع Arm - مجتمع Arm". community.arm.com . 21 سبتمبر 2020 . تم الاسترجاع في 28 ديسمبر 2021 .
  92. ^ "حل Arm للاحتياجات المستقبلية للذكاء الاصطناعي والأمن والحوسبة المتخصصة هو الإصدار 9". Arm . تم الاسترجاع في 16 أغسطس 2021 .
  93. ^ "أول وحدات معالجة مركزية Armv9 Cortex للحوسبة الاستهلاكية". community.arm.com . 25 مايو 2021 . تم الاسترجاع في 16 أغسطس 2021 .
  94. ^ "التوثيق – Arm Developer". developer.arm.com . تم الاسترجاع في 3 أكتوبر 2024 .
  95. ^ "التوثيق – Arm Developer". developer.arm.com . تم الاسترجاع في 3 أكتوبر 2024 .
  96. ^ "إضافة دعم Apple M4 إلى مُجمِّع LLVM، مما يؤكد قدراته في ISA". www.phoronix.com . تم الاسترجاع في 15 يونيو 2024 .
  97. ^ "تطورات معمارية Arm A-Profile 2021 - مدونة المعماريات والمعالجات - مدونات مجتمع Arm - مجتمع Arm". community.arm.com . 8 سبتمبر 2021 . تم الاسترجاع في 25 سبتمبر 2023 .
  98. ^ "تطورات معمارية Arm A-Profile 2022 - مدونة المعماريات والمعالجات - مدونات مجتمع Arm - مجتمع Arm". community.arm.com . 29 سبتمبر 2022 . تم الاسترجاع في 25 سبتمبر 2023 .
  99. ^ "تطورات معمارية Arm A-Profile 2023 - مدونة المعماريات والمعالجات - مدونات مجتمع Arm - مجتمع Arm". community.arm.com . 29 سبتمبر 2022 . تم الاسترجاع في 11 أكتوبر 2024 .
  100. ^ "تطورات معمارية Arm A-Profile 2024 - مدونة المعماريات والمعالجات - مدونات مجتمع Arm - مجتمع Arm". community.arm.com . 29 سبتمبر 2022 . تم الاسترجاع في 11 أكتوبر 2024 .
  101. ^ "بطاقة الخط" (PDF) . 2003. تم الاسترجاع 1 أكتوبر 2012 .
  102. ^ باريش، كيفن (14 يوليو 2011). "مليون نواة ARM مرتبطة بمحاكاة الدماغ". EE Times . تم الاسترجاع في 2 أغسطس 2011 .
  103. ^ "وضع المعالج". Arm Holdings . تم الاسترجاع في 26 مارس 2013 .
  104. ^ "KVM/ARM" (PDF) . تم الاسترجاع في 14 فبراير 2023 .
  105. ^ براش، ديفيد (أغسطس 2010). إضافات إلى بنية ARMv7-A . ندوة IEEE Hot Chips 22 (HCS) لعام 2010. ص. 1-21. doi :10.1109/HOTCHIPS.2010.7480070. ISBN 978-1-4673-8875-7. S2CID  46339775.
  106. ^ "كيف يدعم مُجمِّع ARM عمليات الوصول غير المحاذية؟". 2011. تم الاسترجاع في 5 أكتوبر 2013 .
  107. ^ "الوصول إلى البيانات غير المنسقة" . تم الاسترجاع في 5 أكتوبر 2013 .
  108. ^ "دليل مرجعي تقني لـ Cortex-M0 r0p0" (PDF) . Arm .
  109. ^ "دليل مرجعي لهندسة ARMv7-M". Arm . تم الاسترجاع في 18 يوليو 2022 .
  110. ^ "دليل مرجعي لهندسة ARMv7-A وARMv7-R؛ Arm Holdings". arm.com . تم الاسترجاع في 19 يناير 2013 .
  111. ^ "مركز معلومات ARM" . تم الاسترجاع في 10 يوليو 2015 .
  112. ^ "رموز الحالة 1: علامات الحالة والرموز". مجتمع ARM . 11 سبتمبر 2013. تم الاسترجاع في 26 سبتمبر 2019 .
  113. ^ "9.1.2. عدد دورات التعليمات".
  114. ^ "مكونات CoreSight: حول منفذ الوصول إلى التصحيح".
  115. ^ "Cortex-M3: منفذ الوصول إلى التصحيح (DAP)".
  116. ^ أندرسون، مايك. "فهم خيارات تصحيح أخطاء أجهزة ARM" (PDF) .
  117. ^ "دليل مستخدم مصحح أخطاء CMSIS-DAP".
  118. ^ "CMSIS-DAP".
  119. ^ "ARM DSP Instruction Set Extensions". arm.com . مؤرشف من الأصل في 14 أبريل 2009 . تم الاسترجاع في 18 أبريل 2009 .
  120. ^ ab Clarke, Peter (3 May 1999). "EPF: ARC, ARM add DSP extensions to their RISC cores". EE Times . تم الاسترجاع في 15 مارس 2024 .
  121. ^ Turley, Jim (18 November 1996). "ARM Tunes Piccolo for DSP Performance" (PDF) . تقرير المعالج الدقيق . تم الاسترجاع في 15 مارس 2024 .
  122. ^ "DSP & SIMD" . تم الاسترجاع في 10 يوليو 2015 .
  123. ^ "دليل مرجعي تقني ARM7TDMI" (PDF) . ص. ii.
  124. ^ جاجار، ديف (1996). دليل مرجعي لهندسة ARM . برنتيس هول. ص 6-1. رقم ISBN 978-0-13-736299-8.
  125. ^ ناثان ويليس (10 يونيو 2015). "إحياء هندسة SuperH". LWN.net .
  126. ^ "هندسة مجموعة تعليمات معالج ARM". ARM.com. مؤرشف من الأصل في 15 أبريل 2009. تم الاسترجاع في 18 أبريل 2009 .
  127. ^ "ARM تهدف إلى استخدام ابن Thumb في uCs وASSPs وSoCs". Linuxdevices.com. مؤرشف من الأصل في 9 ديسمبر 2012. تم الاسترجاع في 18 أبريل 2009 .
  128. ^ "مركز معلومات ARM". Infocenter.arm.com . تم الاسترجاع في 18 أبريل 2009 .
  129. ^ "Jazelle". ARM Ltd. مؤرشف من الأصل في 2 يونيو 2017.
  130. ^ Tom R. Halfhill (2005). "ARM enhances Java compilers: New 16-Bit Thumb-2EE Instructions Conserve System Memory" (PDF) . مؤرشف من الأصل (PDF) في 5 أكتوبر 2007.
  131. ^ دليل مرجعي لهندسة ARM، إصدار Armv7-A وArmv7-R، العدد Cb، القسم A2.10، 25 يوليو 2012.
  132. ^ "سلسلة أدوات مُجمِّع ARM باستخدام المُجمِّع – مُعالج مساعد VFP". ARM.com . تم الاسترجاع في 20 أغسطس 2014 .
  133. ^ "توجيهات VFP وترميز المتجهات". ARM.com . تم الاسترجاع في 21 نوفمبر 2011 .
  134. ^ "الاختلافات بين ARM Cortex-A8 وCortex-A9". Shervin Emami . تم الاسترجاع في 21 نوفمبر 2011 .
  135. ^ "ورقة بيانات FPA10" (PDF) . chrisacorns.computinghistory.org.uk . GEC Plessey Semiconductors. 11 يونيو 1993 . تم الاسترجاع في 26 نوفمبر 2020 . فيما يتعلق بـ IEEE 754-1985، يحقق FPA التوافق في العمليات الحسابية ذات الدقة المفردة [...] في بعض الأحيان، قد يتم إنتاج عمليات ضرب ذات دقة مزدوجة وممتدة بخطأ يبلغ 1 أو 2 وحدة في أقل مكان أهمية في الجزء العشري.
  136. ^ "دليل مرجعي تقني لـCortex-A7 MPCore – 1.3 ميزات". ARM . تم الاسترجاع في 11 يوليو 2014 .
  137. ^ "ArmHardFloatPort – Debian Wiki". Wiki.debian.org. 20 أغسطس 2012. تم الاسترجاع في 8 يناير 2014 .
  138. ^ "معالج Cortex-A9". arm.com . تم الاسترجاع في 21 نوفمبر 2011 .
  139. ^ "حول Cortex-A9 NEON MPE". arm.com . تم الاسترجاع في 21 نوفمبر 2011 .
  140. ^ "US20050125476A1".
  141. ^ "US20080141004A1".
  142. ^ "خيارات ARM". دليل مجموعة مُجمِّعات GNU . تم الاسترجاع في 20 سبتمبر 2019 .
  143. ^ Ne10: مشروع مكتبة برمجية مفتوحة ومُحسَّنة لهندسة ARM على GitHub
  144. ^ جوزيف ييو. "مقدمة إلى بنية ARMv8.1-M" (PDF) . تم الاسترجاع في 18 يوليو 2022 .
  145. ^ "Genode – استكشاف تقنية ARM TrustZone" . تم الاسترجاع في 10 يوليو 2015 .
  146. ^ "ARM تعلن عن توافر حلول برامج إدارة الحقوق الرقمية للمستهلكين على الأجهزة المحمولة استنادًا إلى تقنية ARM TrustZone" (بيان صحفي). News.thomasnet.com . تم الاسترجاع في 18 أبريل 2009 .
  147. ^ Laginimaineb (8 أكتوبر 2015). "Bits, Please!: Full TrustZone Exploit for MSM8974". Bits, Please! . تم الاسترجاع في 3 مايو 2016 .
  148. ^ دي شين. "مهاجمة "النواة الموثوقة" الخاصة بك من خلال استغلال TrustZone على Android" (PDF) . Black Hat Briefings . تم الاسترجاع في 3 مايو 2016 .
  149. ^ "ARM TrustZone and ARM Hypervisor Open Source Software". Open Virtualization. مؤرشف من الأصل في 14 يونيو 2013. تم الاسترجاع في 14 يونيو 2013 .
  150. ^ "AMD Secure Technology". AMD . مؤرشف من الأصل في 23 يوليو 2016 . تم الاسترجاع 6 يوليو 2016 .
  151. ^ سميث، رايان (13 يونيو 2012). "وحدات المعالجة المسرعة AMD 2013 ستتضمن معالج ARM Cortex A5 لإمكانيات Trustzone". AnandTech . تم الاسترجاع في 6 يوليو 2016 .
  152. ^ ab Shimpi, Anand Lal (29 أبريل 2014). "معاينة أداء AMD Beema Mullins Architecture A10 micro 6700T". AnandTech . تم الاسترجاع في 6 يوليو 2016 .
  153. ^ Walton, Jarred (4 يونيو 2014). "AMD تطلق معالجات Kaveri APU المحمولة". AnandTech . تم الاسترجاع في 6 يوليو 2016 .
  154. ^ "جذر الثقة" (ورقة بيضاء). سامسونج للإلكترونيات . أبريل 2016.
  155. ^ "دليل مرجعي لهندسة ARM" (PDF) . ص. B4-8. مؤرشف من الأصل (PDF) في 6 فبراير 2009. تمت إضافة بتات APX وXN (عدم التنفيذ مطلقًا) في VMSAv6 [هندسة نظام الذاكرة الظاهرية]
  156. ^ دليل مرجعي لهندسة ARM، إصدار ARMv7-A وARMv7-R . ARM Limited.
  157. ^ "Cortex-A65AE". مطور ARM . تم الاسترجاع في 26 أبريل 2019 .
  158. ^ "AppliedMicro تعرض أول نواة ARM v8 ذات 64 بت في العالم" (بيان صحفي). AppliedMicro. 28 أكتوبر 2011. تم الاسترجاع في 11 فبراير 2014 .
  159. ^ "معالج Exynos 5433 من سامسونج هو معالج A57/A53 ARM SoC". AnandTech . تم الاسترجاع في 17 سبتمبر 2014 .
  160. ^ "دليل مرجعي فني لمعالج ARM Cortex-A53 MPCore: امتداد التشفير". ARM . تم الاسترجاع في 11 سبتمبر 2016 .
  161. ^ ab "تأثير مستويات الاستثناءات المطبقة". تعرف على بنية نموذج الاستثناءات AArch64 . Arm.
  162. ^ "Cortex-A32". مطور Arm .
  163. ^ "Cortex-A34". مطور Arm .
  164. ^ "Cortex-A72". مطور Arm .
  165. ^ فروموسانو، أندريه (3 سبتمبر 2020). "أعلنت شركة ARM عن Cortex-R82: أول معالج في الوقت الفعلي 64 بت". AnandTech .
  166. ^ فروموسانو، أندريه (30 مارس 2021). "أعلنت شركة Arm عن بنية Armv9: SVE2 والأمان والعقد القادم". AnandTech .
  167. ^ هارود، أليكس (30 مارس 2021). "حل أرم للاحتياجات المستقبلية للذكاء الاصطناعي والأمن والحوسبة المتخصصة هو الإصدار 9" (بيان صحفي). أرم القابضة .
  168. ^ "برنامج الامتثال لـ SystemReady". Arm .
  169. ^ "هندسة نظام قاعدة Arm". Arm .
  170. ^ "هندسة نظام قاعدة خادم Arm". Arm .
  171. ^ "متطلبات التمهيد الأساسية للذراع". Arm .
  172. ^ "متطلبات أمان التمهيد الأساسي". Arm .
  173. ^ "متطلبات مواصفات Arm SystemReady". Arm .
  174. ^ أوزبورن، تشارلي. "ARM تعلن عن بنية أمان PSA لأجهزة إنترنت الأشياء". ZDNet.
  175. ^ ab Wong, William (25 October 2017). "ARM's Platform Security Architecture Targets Cortex-M". Electronic Design . مؤرشف من الأصل في 8 مايو 2019.
  176. ^ هوفنبرج، ستيف (31 أكتوبر 2017). "ARM: الأمن ليس مجرد ضرورة تكنولوجية، بل مسؤولية اجتماعية". مركز أبحاث VDC . مؤرشف من الأصل في 28 سبتمبر 2023.
  177. ^ أرماسو، لوسيان (22 فبراير 2018). "ARM تكشف عن المزيد من التفاصيل حول بنية أمان منصة إنترنت الأشياء الخاصة بها". توم هاردوير .
  178. ^ ويليامز، كريس. "ARM PSA IoT API؟ BRB... مجموعة أدوات التكنولوجيا لتأمين مجموعة أدوات متصلة بالشبكة تفتح المزيد". السجل .
  179. ^ هايز، كارولين (25 فبراير 2019). "العالم المضمن: شركة Arm تقدم عنصر الأمان الرابع لـ PSA". Electronics Weekly .
  180. ^ "PSA Certified: بناء الثقة في إنترنت الأشياء". PSA Certified .
  181. ^ "PSA Certified–building trust, building value". EE Times . 4 مارس 2019.
  182. ^ "أهمية معايير الأمن والتنظيم في عصر إنترنت الأشياء والتي تصل إلى 6 تريليون دولار". إنترنت الأشياء الآن. 16 مارس 2020.
  183. ^ ماكجريجور، جيم (4 مارس 2019). "أرم تقدم اختبار شهادة الأمان لإنترنت الأشياء". فوربس .
  184. ^ Speed, Richard (26 فبراير 2019). "Azure IoT يتجه نحو الفضاء للحفاظ على الاتصال على الحافة، بفضل Inmarsat". TheRegister .
  185. ^ "مواصفات OS-9". Microware .
  186. ^ ab "Pharos". SourceForge . تم الاسترجاع في 24 مايو 2018 .
  187. ^ "PikeOS Safe and Secure Virtualization" . تم الاسترجاع في 10 يوليو 2013 .
  188. ^ ab "أنظمة التشغيل المعتمدة للسلامة في الوقت الحقيقي - وحدات المعالجة المركزية المدعومة".
  189. ^ "ARM Platform Port". opensolaris.org. مؤرشف من الأصل في 2 ديسمبر 2012. تم الاسترجاع في 29 ديسمبر 2012 .
  190. ^ "Green Hills Software's INTEGRITY-based Multivisor Delivers Embedded Industry's First 64-bit Secure Virtualization Solution". ghs.com . تم الاسترجاع في 14 مارس 2018 .
  191. ^ "نظام تشغيل Enea OSE في الوقت الفعلي لشبكات 5G وLTE-A | Enea". enea.com . مؤرشف من الأصل في 1 يناير 2019 . تم الاسترجاع 17 أبريل 2018 .
  192. ^ "المنصات المدعومة". docs.sel4.systems . تم الاسترجاع في 23 نوفمبر 2018 .
  193. ^ "منصة تطوير البرمجيات QNX (SDP 7.0) | BlackBerry QNX". blackberry.qnx.com . تم الاسترجاع في 27 يوليو 2020 .
  194. ^ "Wind River تصدر نظام تشغيل في الوقت الفعلي VxWorks 64 بت" (بيان صحفي). Wind River Systems . 28 فبراير 2011 . تم الاسترجاع في 24 أكتوبر 2023 .
  195. ^ “مانجارو-ARM”. مانجارو ويكي . 20 يونيو 2022.
  196. ^ Linus Torvalds (1 أكتوبر 2012). "Re: [GIT PULL] arm64: Linux kernel port". قائمة بريدية لنواة Linux (قائمة بريدية) . تم الاسترجاع في 2 مايو 2019 .
  197. ^ لارابيل، مايكل (27 فبراير 2013). "إصدار ARM 64 بت من Ubuntu/Debian يعمل الآن". Phoronix . تم الاسترجاع في 17 أغسطس 2014 .
  198. ^ "أخبار مشروع دبيان – 14 أغسطس 2014". دبيان . 14 أغسطس 2014 . تم الاسترجاع 17 أغسطس 2014 .
  199. ^ "خادم Ubuntu لـ ARM". ubuntu.com .
  200. ^ "Architectures/AArch64" . تم الاسترجاع في 16 يناير 2015 .
  201. ^ "Portal:ARM/AArch64" . تم الاسترجاع في 16 يناير 2015 .
  202. ^ "ملاحظات إصدار SUSE Linux Enterprise 12 SP2" . تم الاسترجاع في 11 نوفمبر 2016 .
  203. ^ "Red Hat تقدم دعم خادم ARM لنظام Red Hat Enterprise Linux". redhat.com . تم الاسترجاع في 18 يناير 2019 .
  204. ^ "تحديث مشروع بنية ARM 64 بت". مؤسسة FreeBSD. 24 نوفمبر 2014.
  205. ^ "OpenBSD/arm64" . تم الاسترجاع في 25 سبتمبر 2023 .
  206. ^ "نيت بي إس دي/arm64" . تم الاسترجاع في 5 أغسطس 2018 .
  207. ^ "HP، Asus تعلنان عن أول أجهزة كمبيوتر تعمل بنظام Windows 10 ARM: عمر بطارية 20 ساعة، وGigabit LTE". Ars Technica . تم الاسترجاع في 22 يناير 2018. هذا الإصدار الجديد من Windows 10 هو أول نظام تشغيل ARM 64 بت من Microsoft. سيعمل على تشغيل تطبيقات ARM x86 و32 بت من المتجر، وفي الوقت المناسب، تطبيقات ARM 64 بت. ومع ذلك، لم تنته Microsoft بعد من مجموعة أدوات تطوير البرامج ARM 64 بت الخاصة بها. تم وضع العديد من القطع في مكانها (هناك مُجمِّع ARM 64 بت، على سبيل المثال)، لكن الشركة لم تقبل بعد تطبيقات ARM 64 بت المرسلة إلى المتجر، ولا توجد أيضًا أي تطبيقات سطح مكتب ARM 64 بت.
  208. ^ حسن، مهدي (10 ديسمبر 2016). "ويندوز 10 على ARM64 يحصل على تطبيقاته المجمعة الأولى". MSPoweruser .
  209. ^ Filippidis, Katrina (1 يونيو 2018). "VLC يصبح أحد أول تطبيقات ARM64 لنظام Windows". Engadget .
  210. ^ Sweetgall, Marc (15 نوفمبر 2018). "الدعم الرسمي لنظام التشغيل Windows 10 في تطوير ARM". مطور Windows. مدونات Windows . Microsoft . تم الاسترجاع في 17 ديسمبر 2019 .
  211. ^ جارتنبرج، شايم (12 نوفمبر 2020). "macOS Big Sur متاح الآن للتنزيل". The Verge . تم الاسترجاع في 13 نوفمبر 2020 .
  212. ^ Clover, Juli (23 يونيو 2020). "Rosetta لن تدعم تطبيقات المحاكاة الافتراضية x86 التي تعمل بنظام Windows". MacRumors . تم الاسترجاع في 13 نوفمبر 2020 .
  213. ^ "ARM – The Official Wine Wiki" . تم الاسترجاع في 10 يوليو 2015 .
  214. ^ "ARM64 – The Official Wine Wiki" . تم الاسترجاع في 10 يوليو 2015 .
  215. ^ "تحديثات أمان ARM". مطور ARM . تم الاسترجاع في 24 مايو 2018 .

فهرس

  • إيفانز، مات (27 ديسمبر 2019). محاضرة أرخميدس النهائية. الجدول 36 لمؤتمر الاتصالات الفوضوية. يوتيوب . مؤرشف من الأصل في 11 ديسمبر 2021 – عبر media.ccc.de.

قراءة إضافية

  • الموقع الرسمي ، شركة أرم المحدودة.

أدلة الهندسة المعمارية

  • ARM Limited (1996–2005). "دليل مرجعي لهندسة ARM". documentation-service.arm.com . تم الاسترجاع في 16 يوليو 2021 .- يغطي ARMv4، وARMv4T، وARMv5T، (ARMv5TExP)، وARMv5TE، وARMv5TEJ، وARMv6
  • ARM Limited (2007–2018). "دليل مرجعي لهندسة Armv6-M". وثائق ARM . تم الاسترجاع في 17 يوليو 2021 .
  • ARM Limited (2007–2018). "دليل مرجعي لهندسة ARM إصدار ARMv7-A وARMv7-R". وثائق ARM . تم الاسترجاع في 17 يوليو 2021 .
  • ARM Limited (2006–2021). "دليل مرجعي لهندسة ARMv7-M". وثائق ARM . تم الاسترجاع في 24 أغسطس 2022 .
  • ARM Limited (2013–2022). "دليل مرجعي لهندسة Arm للهندسة المعمارية ذات الملف الشخصي A". وثائق ARM . تم الاسترجاع في 24 أغسطس 2022 .
  • ARM Limited (2016–2020). "ملحق دليل مرجع هندسة ARM - ARMv8، لملف تعريف هندسة ARMv8-R AArch32". وثائق ARM . تم الاسترجاع في 17 يوليو 2021 .
  • ARM Limited (2020–2022). "ملحق دليل مرجعي لهندسة Arm - Armv8، لملف تعريف هندسة Armv8-R AArch64". وثائق ARM . تم الاسترجاع في 24 أغسطس 2022 .
  • ARM Limited (2015–2022). "دليل مرجعي لهندسة Armv8-M". وثائق ARM . تم الاسترجاع في 24 أغسطس 2022 .
  • ARM Limited (2021). "Arm Armv9-A A64 Instruction Set Architecture". وثائق ARM . تم الاسترجاع في 17 يوليو 2021 .
  • "ملحقات المحاكاة الافتراضية لـ ARM". مؤرشف من الأصل في 18 ديسمبر 2013.

بطاقات مرجعية سريعة

تعليمات

  • تم أرشفة الإبهام في 20 يونيو 2020 على موقع Wayback Machine
  • ARM وThumb-2 أرشيف 20 يونيو 2020 على موقع Wayback Machine
  • أرشيف النقطة العائمة المتجهة بتاريخ 19 يونيو 2020 على موقع Wayback Machine

أكواد العمليات

  • تم أرشفة الإبهام في 30 يوليو 2022 على موقع Wayback Machine . أرشيفات إضافية: 22 أغسطس 2022.
  • تم أرشفة ARM في 7 يونيو 2022 على موقع Wayback Machine . أرشيفات إضافية: 22 أغسطس 2022.
  • تم أرشفة توجيهات GNU Assembler في 30 أبريل 2022 على موقع Wayback Machine . أرشيفات إضافية: 22 أغسطس 2022.
Retrieved from "https://en.wikipedia.org/w/index.php?title=ARM_architecture_family&oldid=1253531480#32-bit_architecture"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate