لغات البرمجة

معمارية ARM: نظام التعليمات المخفَّضة

لغة البرمجة ARM هي في الأساس ليست لغة برمجة بل هي عبارة عن مجموعة من معماريات المعالجات ذات مجموعة تعليمات مخفَّضة (RISC) المستخدمة في معالجات الحاسوب. بدأت ARM كـ Acorn RISC Machine ثم تطورت لتُعرف لاحقًا بـ Advanced RISC Machine. تم تطوير هذه المعماريات من قِبَل شركة ARM Holdings البريطانية وترخصها لشركات أخرى، التي بدورها تقوم بتصميم منتجاتها الخاصة التي تنفذ إحدى تلك المعماريات. تشمل هذه المنتجات أنظمة على الشرائح (SoC) وأنظمة على الوحدات (SoM) التي تضم ذاكرة وواجهات وأجهزة راديو، وما إلى ذلك. كما تقوم ARM Holdings بتصميم نوى ينفذ هذه مجموعة التعليمات وترخص هذه التصميمات لعدد من الشركات التي تدمج هذه التصميمات النواةية في منتجاتها الخاصة. تتطلب معالجات التي تمتلك معمارية RISC عادةً عددًا أقل من الترانزستورات مقارنة بتلك التي تحمل معمارية CISC (مثل معالجات x86 الموجودة في معظم أجهزة الكمبيوتر الشخصية)، مما يحسن التكلفة واستهلاك الطاقة وتبديد الحرارة. تعتبر هذه الخصائص مرغوبة للأجهزة الخفيفة والمحمولة والتي تعمل بالبطارية، مثل الهواتف الذكية وأجهزة الكمبيوتر المحمولة وأقراص الكمبيوتر، وأنظمة الإدخال المضمنة الأخرى. بالنسبة للحواسيب العملاقة، التي تستهلك كميات كبيرة من الكهرباء، يمكن أيضًا أن تكون ARM حلاً فعَّالاً من حيث استهلاك الطاقة. تصدر شركة ARM Holdings بشكل دوري تحديثات للمعماريات وتصميمات النوى. جميعها تدعم مساحة عناوين بحجم 32 بت (تتوافق فقط الشرائح التي تم تصنيعها قبل ARMv3 مثل Acorn Archimedes الأصلية، التي كانت أقل حجماً) والحسابات بحجم 32 بت؛ تحتوي تعليمات نوى ARM Holdings على تعليمات ثابتة بحجم 32 بت، ولكن الإصدارات اللاحقة من المعمارية تدعم أيضًا مجموعة تعليمات بطول متغير توفر كل من تعليمات بحجم 32 بت و 16 بت لزيادة كثافة الكود. يمكن لبعض النوى القديمة أيضًا توفير التنفيذ الأجهزي لبيانات الجافا. تضيف معمارية ARMv8-A، التي أعلنت في أكتوبر 2011، دعمًا لمساحة عناوين بحجم 64 بت وحسابات بحجم 64 بت مع مجموعة تعليمات جديدة ثابتة بحجم 32 بت. مع أكثر من 100 مليار معالج ARM تم إنتاجها حتى عام 2017، فإن ARM هي أكثر معماريات مجموعة التعليمات استخدامًا من حيث الكمية المنتجة. حاليًا، تتوفر النوى Cortex الأكثر استخدامًا، والنوى القديمة “الكلاسيكية”، والنوى المتخصصة لـ SecurCore بمتغيرات لكل منها لتضمين أو استبعاد القدرات الاختيارية.