تعرف على معمارية ARM 64 بت و الإمكانيات التي تقدمها لنظام Android



تابع قناة عالم الكمبيوتر علي التيليجرام


في العام 2013 فاجأت شركة ابل الأوساط التقنية بإطلاقها الهاتف iPhone 5S بمعالج Apple A7 بمعمارية 64 بِت ليحمل لقب أول هاتف ذكي مزود بهذا النوع من المعالجات , لذا، قامت شركة المعالجات ARM بتصميم معمارية 64 بت خاصة بمعالجات الأجهزة المحمولة و أطلقت عليها ARMv8-A. طبعاً تعلمت شركة ARM من أخطاء الشركات السابقة و أيضا حدت حذو AMD حين قامت في عام 2003 بإنتاج معالج 64 بت يتوافق مع معالجات انتل 32 بت , وقامت ARM بتصميم المعمارية بشكل يتوافق مع معمارية 32 بت. وفي عالم الأندرويد هذا يعني إن تم تعديل الكيرنيل ليصبح يدعم معالجات 64 بت فإن نظام Andriod بكامل ميزاته وتطبيقاته يستطيع أن يعمل بتقنية 32 أو 64 بت. طبعا سبق لنا التعرف على معمارية ARM بشكل جيد في سلسلة : تعرف على معمارية ARM ( الجزء الأول ) و أيضا ( الجزء الثاني ) أنصحك بشدة بمرجعتها حتى تتعرف على عالم معالجات ARM , و لكن سؤالنا اليوم ما فائدة هذه المعالجات التي تدعم معمارية 64 بِت في عالم الهواتف الذكية او الأجهزة اللوحية؟ , وهل ستقدم لنا هاته المعالجات أداء أفضل ؟.



قبل البدء أسمحو لي بأن أقوم بتعريف عدّة مصطلحات مفيدة سنقوم بذكرها في المقال :

  • سجلات المعالج (Registers): هي قلب المعالج، عبارة عن مساحات تخزينية صغيرة مؤقتة موجودة في داخل المعالج وتتميز بسرعة عالية جداً، ومهمتها بكل بساطة هي تخزين البيانات قبل أن يقوم المعالج بمعالجتها. على سبيل المثال إذا أردنا أن نقوم بعملية ضرب بسيطة لرقمين فلنقل 7 و 5، كل رقم يجب أن يكون مخزّنًا داخل السجلات وأيضاً النتيجة 35 يجب أن تكون مخزنة داخل السجلات. لا يقتصر عمل السجلات على تخزين البيانات فقط، فقد تحتوي في كثير من الأحيان على عناوين للبيانات المخزنة في الذاكرة العشوائية. لتبسيط الأمر، فلنقل أن السجلات قد تعمل كمستودعات تحتوي على عدد من البيانات قبل نقلها أو كفهرس فيه عناوين البيانات المخزنة.
  • عنوان الذاكرة (Memory Address): عبارة عن رقم يمثل الحد الأقصى من الذواكر التي يمكن أن يقرأها المعالج، في حالة ال 32 بت يستطيع المعالج أن يستوعب ذواكر تصل إلى 4 غيغابايت أما بالنسبة لمعالجات 64 بت الأمر يختلف و سنتطرق لهذا قريبا .
  • النواة أو الكيرنيل (Kernel) : وهو برنامج ضخم يشكل نواة النظام و يقوم بدور الوسيط بين التطبيقات والهاردوير (المعالج-الذاكرة العشوائية-الفأرة أو أي جهاز ادخال أو اخراج للبيانات) و في حالت نظام Andriod فنحن نتكلم عن نواة Linux.



فوائد معمارية 64 بت:


كما ذكرنا سابقاً، تعتبر سجلات المعالج (Registers) قلب المعالج وأساسه. عندما يريد المعالج أن يقوم بعملية حسابية معقدة، سيتم استخدام السجلات لعدّة مرات ولذلك لامتلائها بشكل متكرر، ولتبسيط الأمر لنفترض أن لدينا مستودع قادر على استيعاب 10 صناديق في وقت واحد وأنت لديك 20 صندوق، وفي هذه الحالة ستضطر إلى تعبئة المستودع مرتين وهذا يتطلب طاقة ووقت. هذا تماماً ما يحصل للمعالج عند قيامه بعدد كبير من الحسابات في وقت واحد أو معالجة صورة ذو دقة عالية أو حساب عدد من النقاط في خريطة داخل لعبة.

معالجات 32 بت المصممة من ARM تحتوي على 15 سجل، بحجم 32 بت لكل سجل، بينما المعالجات الجديدة 64 بت المصممة من قبل ARM تحتوي على 31 سجل، بحجم 64 بت لكل سجل. نظرياً هذا يعني أن الأداء سيكون على الأقل ضعف أداء معالجات 32 بت، على الأقل حسابياً، لكن هذا يعتمد على طريقة برمجة وتصميم التطبيق بشكل يستغل هذه السجلات بشكل كامل وهذا الأمر ليس بالأمر السهل للمطورين.



أيضاً، معمارية 64 بت توفر من استخدام الطاقة وذلك بسبب حجم السجلات (64 بت لكل سجل) مما يتيح للمعالج إتمام الحسابات والعمليات بشكل أسرع مما يؤدي لتوفير الطاقة.

أمر مهم، وهو تكبير عنوان الذاكرة في المعالج ليستطيع قراءة ذواكر أكبر , هذا يعني أنه بالنسبة لتطبيق واحد يمكن عنونة 4 غيغابايت من الذاكرة فقط لمعالجات 32 بِت، في حين معالجات 64 بِت تسمح لتطبيق ما بحجز 16 إيكزابايت (1 ايكزابايت =1024 بيتابايت، 1 بيتابايت=1024 تيرابايت، 1 تيرابايت=1024 غيغابايت)، هل يمكنك تخيل هذا الحجم الهائل من ذاكرة الوصول العشوائية؟



اندرويد ومعالجات 64 بِت :


أما من جانب الهواتف التي تعمل بنظام اندرويد، فقد أعلنت سابقاً جوجل أن الإصدار اندرويد 4.4 كيت كات يعمل بالمشغل ART الذي يدعم العنونة 64 بِت لكن كان ذلك اختيارياً , وبدءا من إصدار اندرويد 5.0 المصاصة Android Lollipop فإن النظام يدعم هذه المعمارية بشكل كامل.



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

هيكلية ARMv8 تحتوي على عدد من المسجلات Registers التي تُستخدم لتخزين البيانات والتعليمات المستخدمة أكبر بمرتين ماهو عليه في ARMv7 وهذا يعني سرعة أكبر بمرتين في جلب البيانات من الذاكرة وهو الأمر الذي يجعل ARMv8 أو المعمارية 64 بِت أسرع وأكثر كفاءة في الأداء.

تعليقات