تعمل هواتف وحواسب أندرويد اللوحية على عدد كبير من المُعالجات من الشركات المُختلفة، مثل معالجات كوالكم، سامسونج، إنتل، إنفيديا، ميدياتيك والقائمة تطول. ولا بدّ أنك سمعت سابقًا الكثير من المُصطلحات مثل: هذا المُعالج بمعمارية ARM، وذاك المُعالج بمعمارية إنتل … الخ، وتساءلتَ عن معنى ذلك.

والسؤال الثاني هو: كيف يستطيع أندرويد دعم هذا العدد الكبير من المُعالجات بحيث تعمل التطبيقات دون الحاجة لوجود نسخ خاصّة لكُل مُعالج من التطبيقات؟

إن اختلاف المُعالجات الرئيسي يكمُن في معماريتها، ولا نقصد هُنا معمارية البيئة التي يعمل بها المُعالج سواء كانت 32 بت أو 64 بت، بل القصد هو طريقة تصميم المُعالج في تنفيذه للأوامر المطلوبة منه.

يدعم أندرويد ثلاث معماريات مُختلفة وهي (ARM، Intel(X86،X86-64 وأخيراً وليس آخراً MIPS. وكلّ معمارية مُعالج تحتوي على حزمة تعليمات خاصة بها “Instruction Set” يفهمها المُعالج ويقوم بتنفيذها بعد تحويلها إلى أصفار وواحدات “نظام العدّ الثنائي”.

فلنبدأ بمعمارية ARM التي تُعد الأكثر استخداماً وانتشاراً وخصيصاً في عالم الأجهزة المحمولة. تعتمد ARM على تصميم يُسمى RISC-Reduced Instruction Set Computer ويعتمد هذا التصميم على حزمة تحتوي على عدد قليل من التعليمات الأساسية البسيطة. يُمكنك أن تتخيّل بأن هذا التصميم يحتوي على العمليات الأربع الرئيسية اللازمة لأي عملية حسابية (الجمع، الطرح، الضرب، والقسمة). بالطبع الأمر في الواقع أعقد من ذلك، لكننا سنفترض هذا بهدف تبسيط الفكرة.

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

أهم الشركات التي تقوم بصنع مُعالجات بمعمارية ARM هي: كوالكم، سامسونج، ميدياتيك، هواوي وغيرها. وتعمل الغالبية العُظمى من الهواتف الذكية التي تراها أمامك اليوم في أي مكان، بمعمارية ARM.

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

arm-cortex-a15

أما معمارية Intel فهي تعتمد على تصميم يُطلق عليه اسم CISC – Complicated Instruction Set Computer، ويعتمد التصميم على حزمة تحتوي على عدد كبيرمن التعليمات والكثير منها يُعتبر مُعقد “مثل عمليات تخزين مُعقدة في الذاكرة، تنفيذ تعليمات رياضية مثل Sin و Cosine”. مما يعني استخدام تعليمات أقل لتنفيذ عملية مُعقدة وهذا يُساعد على تحسين استهلاك الذاكرة، ولكن بنفس الوقت قد تحتاج العملية الواحدة لعدد أكبر من النبضات مُقارنةً بمعمارية ARM، ويعود ذلك أن التعليمات المُعقدة المُستخدمة تحتاج لأن تُترجم لعمليات أبسط حتى يستطيع المُعالج أن يفهمها.

من أشهر الأجهزة التي تعتمد على مُعالجات Intel: سلسلة Asus Zenfone، وعددٍ من أجهزة لينوفو وموتورولا سابقاً .

android-atom-e1315904717984

أمّا معمارية MIPS – Microprocessor without Interlocked Pipeline Stages فهي تعتمد على تصميم مُشتّق من RISC ولكن مع اختلافات بسيطة. تعتمد المعمارية على عدد ثابت من السجلات “Registers” وتُعتبر أقل من قرائنها ولكن في المُقابل، تعتمد بشكل كبير على الأنابيب البرمجية “Pipelining“.

للأسف تأخر دعم معمارية MIPS في أندرويد حتى عام 2009، مما يعني أن عدداً كبيراً من التطبيقات لن تعمل بأجهزة تحمل مُعالجات MIPS  إلى حين قيام المطوّرين بتعديل التطبيقات برمجياً وجعلها مُتوافقة مع المعمارية.

قد يتساءل البعض ما هي الأجهزة التي تعمل بمُعالجات MIPS، وقد يتفاجأ البعض أن أغلبنا يستخدم المُعالج بشكل يومي وخصوصاً في الراوترات والمودمات الشبكية، ولكن لا يوجد سوى القليل من الأجهزة المحمولة التي تعتمد على معمارية MIPS مثل الحاسب اللوحي Novo 7 ولكن من المُتوقع أن تدخل مُعالجات MIPS السوق بشكل أكبر في المُستقبل القريب.

MIPS-I6400-Android-robot

مقارنة بين RISC و CISC

لتوضيح الفرق بين معمارتي تصميمي RISC و CISC سنقوم بعرض مثال بسيط،. لنفترض أن الذاكرة العشوائية هي بشكل جدول أو بتعبير أدق: “مصفوفة”. وهذه المصفوفة تحتوي على بيانات، “الأرقام تُمثّل عناوين، أي مكان تواجد البيانات” يقوم المُعالج بالعمليات الحسابية عليها عن طريق السجلات. cisc risc

سنقوم بالتوضيح أكثر بعرض مثال بسيط، وهو ضرب رقمين وحفظهما:

  • إن كان تصميم المُعالج RISC فسيحتاج المُطور لكتابة ما يلي:
    LOAD A,1:3
    LOAD B,1:2
    PROD A,B
    STORE 1:3,A
    في التعليمة الأولى سيتم نسخ البيانات من العنوان 1:3 وحفظها في السجل A، التعليمة الثانية تقوم بنسخ البيانات من العنوان 1:2 وحفظها في السجل B. التعليمة الثالثة تقوم بعملية الضرب بين السجلّين A و B وحفظ النتيجة في السجل A، التعليمة الأخيرة تقوم بحفظ بيانات السجل A بعد الضرب في العنوان المطلوب “في هذه الحالة 1:3″.
    كلّ تعليمة من التعليمات السابقة سيحتاج نبضة من المُعالج لاتمامها، وأيضاً كل تعليمة سيتم تخزينها في الذاكرة مما يؤدي كما ذكرنا لاستهلاك مساحة أكبر منها، ولكن مع كلّ هذا لن يحتاج المُعالج لكثير من النبضات لاتمام العملية.
  • إن كان تصميم المُعالج CISC فسيحتاج المُطور لكتابة ما يلي:
    MUL 1:3, 1:2
    لن تحتاج أكثر من هذه التعليمة لاتمام عملية الضرب، وقد يبدو هذا الأمر أسهل وأسرع من تصميم RISC ولكن هذه السهولة تأتي على حساب شيء آخر. سيقوم المُعالج بنقل البيانات من الذاكرة ونسخها في السجلات المُناسبة ويقوم بعد الانتهاء من عملية الضرب بنقل النتيجة النهائية للذاكرة، مما يؤدي لاستهلاك عدد أكبر من النبضات في بعض الأحيان.

عوامل أُخرى مؤثرة

حسناً، قد يتساءل البعض لما يختلف أداء المُعالجات عن بعضها عندما تستخدم نفس المعمارية والتصميم؟ ولماذا مُعالج سامسونج الأخير Exynos 7420 يفوق مُعالج Snapdragon 810 في الأداء؟

الجواب بكل بساطة، أن المعمارية ليست العامل الوحيد الذي يؤثر على أداء المُعالج كُكل، ولكن حجم تصنيع المُعالج يلعب دوراً كبيراً فمعالج سامسونج الأخير مصنوع بتقنية 14 نانومتر بينما مُعالج Snapdragon مصنوع بتقنية 20 نانومتر، وبشكل عام وبسيط كلّما أصبح المُعالج مصنعاً بتقنية أصغر كلّما أصبح يستهلك قدرًا أقل من الطاقة بالإضافة إلى تحسين أداء المُعالج “مثلاً بإضافة عدد أكبر من السجلات”.

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

كلمة أخيرة

ليس الهدف من المقال تفضيل معمارية على الباقي، فلكل معمارية محاسن ومساوئ وذلك لاختلاف الفلسفة المُتسخدمة في تصميمها، ووجود عوامل إضافية تؤثر على أداء المُعالج بشكل عام، ولكن نهدف لتقديم مقال مُبسّط قدر الإمكان نشرح فيه الفروقات بين المُعالجات وتصاميمها.

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