استعدوا لمطوري Android ، سيأتي مترجم Android جديد
نشرت: 2022-03-11كان التجزئة مصدر إحباط لمطوري Android والمستهلكين لسنوات ؛ الآن يبدو أن الأمور ستزداد سوءًا قبل أن تتحسن. قادم مترجم جديد لنظام Android ، مرة أخرى ، وهناك بعض التطورات الجديرة بالملاحظة على واجهة الأجهزة ، والتي قد تؤثر على المطورين.
مع خروج Dalvik من الصورة ، توقع الكثير من الناس أن يستمر وقت تشغيل ART الجديد 64 بت من Google لسنوات ، وهو ما قد يحدث ، لكنه سيحصل على إصلاح كبير في المستقبل القريب. بالإضافة إلى تقديم الدعم لأجهزة 64 بت ، قدمت ART أيضًا التجميع المسبق (AOT) ، بينما كان Dalvik مترجمًا في الوقت المناسب (JIT). سيفتح المترجم المحسن الجديد المزيد من الاحتمالات.
بالنسبة لتطورات الأجهزة ، هناك بعض الاتجاهات الجديدة وبعض اللاعبين الجدد والقدامى في صناعة الهواتف الذكية System-on-Chip ، لكنني سأصل إلى ذلك لاحقًا.
أولاً ، دعنا نلقي نظرة على خطط وقت تشغيل Google.
Dalvik ، ART ، ART مع مترجم Android الجديد
تم تقديم ART مع Android 5.0 العام الماضي ، حيث تم إطلاقه على Nexus 9 و Nexus 6 ، على الرغم من أن الأخير استخدم وحدة المعالجة المركزية ARMv7-A 32 بت. ومع ذلك ، بدلاً من أن يتم تصميمه من الصفر ، كان ART في الواقع تطورًا لشركة Dalvik ، التي ابتعدت عن JIT.
يقوم Dalvik بتجميع التطبيقات أثناء التنقل ، حسب الضرورة. من الواضح أن هذا يضيف المزيد من حمل وحدة المعالجة المركزية ، ويزيد من الوقت اللازم لتشغيل التطبيقات ، ويؤثر على عمر البطارية. نظرًا لأن ART يجمع كل شيء مسبقًا ، عند التثبيت ، لا يتعين عليه إضاعة دورات الساعة في التجميع في كل مرة يبدأ فيها الجهاز تطبيقًا. ينتج عنه تجربة مستخدم أكثر سلاسة ، مع تقليل استهلاك الطاقة في نفس الوقت وزيادة عمر البطارية.
إذن ما الذي ستفعله Google بعد ذلك؟
منذ أن تم تطوير ART للاستفادة من نوى ARMv8 CPU الجديدة ذات 64 بت ، والتي بدأت في الظهور على الإنترنت في أواخر العام الماضي ، يبدو أن المترجم الأصلي كان بمثابة إجراء مؤقت. هذا يعني أن الوقت المستغرق في السوق كان هو الأولوية ، وليس الكفاءة والتحسين. هذا لا يعني أن تقنية ART كانت مجرد مهمة فاشلة متسرعة ، لأنها لم تكن كذلك ؛ يعمل وقت التشغيل بشكل جيد وقد أشاد به المطورون والمستخدمون.
ومع ذلك ، هناك مجال للتحسين ، والآن ، يبدو أن Google تعمل على مترجم محسّن بشكل كبير لفترة من الوقت ، وربما يسبق هذا الجهد الإصدار الرسمي لـ ART. كشف مصمم الرقائق البريطاني ، ARM ، مؤخرًا عن بعض الحقائق المثيرة للاهتمام حول خطط وقت تشغيل Google ، مشيرًا إلى مترجم "Optimizing" جديد لـ ART. يقدم المترجم الجديد تمثيلات وسيطة (IR) تسمح بمعالجة بنية البرنامج قبل إنشاء الكود. يستخدم مستوى واحدًا من التمثيل الوسيط ، منظمًا كرسم بياني غني بالمعلومات ، والذي يوفر معلومات أفضل للأجزاء المدركة للهندسة المعمارية في المترجم.
يستخدم المترجم "السريع" مستويين من التمثيل الوسيط ، مع قوائم بسيطة مرتبطة بالتعليمات والمتغيرات ، ولكنه يفقد معلومات مهمة أثناء إنشاء IR.
يدعي ARM أن مترجم "التحسين" الجديد سيقدم عددًا من الفوائد المهمة ، واصفاً إياه بأنه "قفزة كبيرة إلى الأمام" من حيث تقنية المترجم. سيوفر المترجم بنية تحتية أفضل للتحسينات المستقبلية وسيساعد في تحسين جودة الكود.
تحسين وسريع الميزات الرئيسية المترجم
حدد ARM الفرق بين المجمعين في شريحة واحدة ، مدعيا أن مترجم "التحسين" يتيح استخدامًا أكثر كفاءة للتسجيل ، ويقلل من الانسكاب إلى المكدس ، ويحتاج إلى رمز أقل للتنفيذ.
إليك كيف يضعها ARM:
سريع لديه خوارزمية تخصيص تسجيل بسيطة للغاية .
- نقص المعلومات في العلاقات الدولية
- سرعة التجميع تفوق التعقيد - نشأت مثل JIT
- أداء ضعيف - تسرب الكثير من السجلات إلى المكدس
التحسين يستخدم Liner Scan Register Allocation.
- حل وسط ممتاز بين الأداء والوقت
- يستخدم تحليل الحياة
- تقليل انسكاب السجل للتكديس "
على الرغم من أن المترجم الجديد لا يزال قيد التطوير ، شارك ARM بعض أرقام الأداء ؛ في اختبارات وحدة المعالجة المركزية الاصطناعية ، ينتج عن المترجم زيادة في الأداء في النطاق من 15 إلى 40 بالمائة. تمت زيادة سرعة الترجمة بحوالي 8 بالمائة. ومع ذلك ، تحذر الشركة من أن الأرقام "تتغير يوميًا" مع نضوج المترجم الجديد.
ينصب التركيز على تحقيق التكافؤ القريب مع المترجم "السريع" ، والذي يتمتع حاليًا بميزة واضحة في سرعة الترجمة وحجم الملف.
في الوقت الحالي ، يبدو الأمر وكأنه مقايضة ؛ يقدم المترجم الجديد "Optimized" تحسينات مذهلة في الأداء في التطبيقات المرتبطة بوحدة المعالجة المركزية والمعايير التركيبية ، ولكنه ينتج عنه ملفات أكبر بنسبة 10 بالمائة ويتم تجميعها بنسبة 8 بالمائة أبطأ. بينما يبدو أن مكاسب أداء وحدة المعالجة المركزية تفوق الرقمين الأخيرين ، ضع في اعتبارك أنهما سيطبقان على كل تطبيق ، بغض النظر عن حمل وحدة المعالجة المركزية ، باستخدام موارد محدودة مثل ذاكرة الوصول العشوائي والتخزين. تذكر أن التجميع في 64 بت يستهلك بالفعل ذاكرة وصول عشوائي أكثر من التجميع في 32 بت.
يعد أي انخفاض في سرعة التجميع وأوقات الإطلاق مصدر قلق أيضًا ، نظرًا لتأثيره على استجابة الجهاز وتجربة المستخدم.
سباق Multicore ARM
مصدر آخر للقلق ، بغض النظر عن وقت التشغيل والمترجم ، هو شعبية المعالجات متعددة النواة القائمة على معماريات ARMv7-A و ARMv8. بدأ جنون الثماني النواة في عام 2013 وسرعان ما تم رفضه باعتباره حيلة تسويقية رخيصة. ذهب أحد المسؤولين التنفيذيين في Qualcomm إلى حد وصف المعالجات الثماني النواة بأنها "سخيفة" و "غبية" ، قائلاً إن الشركة لن تصنع أيًا منها لأن مهندسيها "ليسوا أغبياء". وصف نفس exec أيضًا دعم 64 بت على Apple A7 بأنه "وسيلة للتحايل".
تقدم سريعًا لمدة عامين ، ولدي هاتف ذكي من نوع Qualcomm ثماني النواة Cortex-A53 64 بت على مكتبي ، في حين أن المدير التنفيذي المعني لديه مسمى وظيفي مختلف على لوحة اسمه.
كما لو أن الرقائق ذات 8 نوى غير كافية ، في العام المقبل ، سنرى الأجهزة الأولى التي تعتمد على معالجات التطبيقات ذات 10 نواة. تأتي أول شريحة هاتف ذكي من 10 نوى من MediaTek في شكل Helio X20 ، وستتضمن ثلاث مجموعات من أنوية وحدة المعالجة المركزية ، والتي يطلق عليها اسم الضخم. يبدو ممتعًا ، وسيصبح أفضل ؛ سنبدأ قريبًا في رؤية أول أجهزة Android ميسورة التكلفة استنادًا إلى جيل جديد من معالجات Intel.
دعونا نلقي نظرة على حروب ARM الأساسية وما تعنيه للمطورين والمستهلكين. يوجد إصداران متميزان من تصميمات ARM SoC الثماني النواة. تميل الحلول المتطورة إلى استخدام تخطيط ARM الكبير ، LITTLE ، باستخدام أربعة نوى منخفضة الطاقة وأربعة نوى كبيرة للتحميل العالي. الطريقة الثانية لإلصاق ثمانية أنوية ARM CPU في شريحة هي استخدام نوى متطابقة ، أو نوى متطابقة في مجموعتين بسرعات مختلفة على مدار الساعة.
يميل صانعو الرقائق المتنقلون الرائدون إلى استخدام كلا الأسلوبين ، رقائق LITTLE الكبيرة في الأجهزة المتطورة ، جنبًا إلى جنب مع ثماني النوى العادية في المنتجات السائدة. كلا النهجين لهما إيجابيات وسلبيات ، لذلك دعونا نلقي نظرة فاحصة.
ARM big.LITTLE مقابل ثماني النواة العادي:
يسمح استخدام مجموعتين من نوى وحدة المعالجة المركزية المختلفة بأداء مؤشر ترابط واحد جيد وكفاءة في التصميمات الكبيرة. المفاضلة هي أن نواة Cortex-A57 واحدة هي تقريبًا بحجم أربعة نوى Cortex-A53 صغيرة ، وهي أقل كفاءة.
يعد استخدام ثمانية نوى متطابقة ، أو ثمانية نوى متطابقة في مجموعتين بساعات مختلفة ، أمرًا فعالاً من حيث التكلفة وموفرًا للطاقة. ومع ذلك ، فإن أداء مؤشر ترابط واحد منخفض.
لا يمكن للجيل الحالي من تصميمات big.LITTLE القائمة على نوى ARMv8 استخدام أرخص عقدة تصنيع 28 نانومتر. حتى عند 20 نانومتر ، تعرض بعض التصميمات الكثير من الاختناق ، مما يحد من أدائها المستدام. يمكن تنفيذ أنوية الثماني القياسية المعتمدة على أنوية وحدة المعالجة المركزية Cortex-A53 بشكل فعال في 28 نانومتر ، لذلك لا يتعين على صانعي الرقائق استخدام عقد تصنيع متطورة مثل 20 نانومتر أو 16/14 نانومتر FinFET ، مما يحافظ على انخفاض التكاليف.
لا أريد أن أتعبك حتى الموت باتجاهات تصميم الرقائق ، ولكن هناك بعض الأساسيات المهمة التي يجب وضعها في الاعتبار لمعالجات الأجهزة المحمولة لعامي 2015 و 2016:
- ستستخدم معظم الرقائق عقد تصنيع 28 نانومتر وأنوية Cortex-A53 ، مما يحد من أداء الخيط الفردي.
- تم تنفيذ النواة الكبيرة Cortex-A57 في تصميمين رئيسيين من Samsung و Qualcomm ، ولكن يبدو أن صانعي الشرائح الآخرين يتخطونها وينتظرون Cortex-A72.
- سيصبح الأداء متعدد مؤشرات الترابط ذا صلة بشكل متزايد خلال الأشهر الثمانية عشر القادمة.
- لا يمكن توقع مكاسب كبيرة في الأداء حتى 20 نانومتر وتصبح عُقد FinFET أرخص بكثير (2016 وما بعدها).
- 10-النوى التصميمات قادمة كذلك.
كل هذه النقاط لها آثار معينة على مطوري Android. طالما أن صانعي الشرائح عالقون في عمليات 28 نانومتر لمعظم شرائح الهواتف الذكية والأجهزة اللوحية ، فسيتعين على المطورين بذل قصارى جهدهم للاستفادة من الأداء متعدد الخيوط والتركيز على الكفاءة.

يجب أن تقطع ART والمترجمون الجدد شوطًا طويلاً نحو تحسين الأداء والكفاءة ، لكنهم لن يكونوا قادرين على كسر قوانين الفيزياء. لن يتم استخدام التصميمات القديمة 32 بت في العديد من الأجهزة التي تتحرك إلى الأمام ، وحتى أرخص الأجهزة بدأت في الشحن مع 64 بت من السيليكون و Android 5.0.
على الرغم من أن Android 5.x لا يزال لديه قاعدة مستخدمين صغيرة نسبيًا ، إلا أنه ينمو بسرعة وسيتوسع بشكل أسرع الآن بعد وصول الهواتف التي يتراوح سعرها بين 100 و 150 دولارًا مع شرائح 64 بت و Android 5.0. يسير الانتقال إلى Android 64 بت بشكل جيد.
السؤال الكبير هو متى سيحصل Dalvik على مترجم Optimized الجديد. يمكن إطلاقه في وقت لاحق من هذا العام ، أو العام المقبل مع Android 6.0 ؛ لا يزال من السابق لأوانه الجزم على وجه اليقين.
حوسبة غير متجانسة قادمة إلى الهواتف المحمولة
هناك شيء آخر يجب مراعاته ؛ تزداد قوة رسومات الهاتف المحمول ، خاصة على المعالجات المتطورة ، لذلك يقوم صانعو الشرائح بالكثير من العمل خلف الكواليس للاستفادة منها لاستخدامات أخرى غير الألعاب وفك تشفير الفيديو. كانت الحوسبة غير المتجانسة موجودة منذ بضع سنوات ، مما يسمح لأجهزة الكمبيوتر بإلغاء تحميل المهام المتوازية للغاية إلى وحدة معالجة الرسومات.
تأتي نفس التقنية الآن إلى المعالجات المحمولة ، حيث تدمج بشكل فعال أنوية وحدة المعالجة المركزية ووحدة معالجة الرسومات. سيسمح هذا النهج للمطورين بإلغاء تأمين المزيد من الأداء عن طريق تنفيذ أنواع معينة من البرامج ، مثل أحمال OpenCL ، إلى وحدة معالجة الرسومات. سيتمكن المطورون من التركيز على الإنتاجية ، بينما ستتعامل المعالجات تلقائيًا مع التنفيذ المتوازي على وحدات المعالجة المركزية ووحدات معالجة الرسومات.
بالطبع ، لن يعمل هذا في كل تطبيق ويقلل الحمل في جميع المواقف ، ولكن في بعض المجالات ، يجب أن يفتح المزيد من الأداء ويساعد في تقليل استهلاك الطاقة. اعتمادًا على الحمل ، ستقرر SoC تلقائيًا كيفية معالجة الكود ، باستخدام وحدة المعالجة المركزية لبعض المهام أثناء إلغاء تحميل الآخرين إلى وحدة معالجة الرسومات.
نظرًا لأننا نتعامل مع تطبيقات متوازية ، فمن المتوقع أن يحقق هذا النهج أكبر التحسينات في معالجة الصور. على سبيل المثال ، إذا كنت بحاجة إلى استخدام صور فائقة الدقة وإعادة تشكيل العينات ، فيمكن تقسيم العملية إلى مراحل مختلفة في OpenCL. إذا تضمنت العملية مراحل مختلفة ، مثل find_neighbor
، و col_upsample
، و row_upsample
، و sub
، و blur2
، فسيقوم الجهاز بتوزيع الحمل عبر أنوية وحدة المعالجة المركزية ووحدة معالجة الرسومات بالطريقة الأكثر فاعلية ، اعتمادًا على نوع النواة التي ستتعامل مع المهمة المحددة في أفضل الأحوال طريق. لن يؤدي ذلك إلى تحسين الأداء بترتيب من حيث الحجم فحسب ، بل سيساعد أيضًا في تقليل استهلاك الطاقة.
إنتل عادت من الموت ، وهي تبدو جيدة للحصول على جثة
فاتت شركة إنتل ثورة الهاتف المحمول وتنازلت عمليا عن السوق لشركة ARM وشركائها في الأجهزة. ومع ذلك ، فإن شركة صناعة الرقائق الأمريكية لديها الأموال والموارد اللازمة لقضاء بضع سنوات على مقاعد البدلاء والعودة.
في العام الماضي ، دعمت إنتل مبيعات معالجات أتوم للأجهزة اللوحية ، وتمكنت من مضاعفة الشحنات أربع مرات في أقل من عام. إنها تحول اهتمامها الآن إلى قطاع الهواتف الذكية من خلال معالجات SoFIA Atom x3 الجديدة. بصراحة ، لست متأكدًا تمامًا من أنه يجب الإشارة إلى هذه الرقائق على أنها معالجات Intel لأنها لا تنتجها شركة الرقائق العملاقة. تم تصميم معالجات SoFIA بميزانية محدودة ، بالتعاون مع صانعي الرقائق الصينيين. يتم تصنيعها على عقدة 28 نانومتر ، فهي بطيئة وصغيرة ورخيصة.
قد يكون هذا بمثابة مفاجأة لبعض المراقبين العاديين ، لكن إنتل لا تهتم بالحلول المتنقلة المتطورة ؛ ستعمل أجزاء SoFIA المنخفضة التكلفة على تشغيل هواتف Android السلعية التي يتراوح سعرها بين 50 دولارًا و 150 دولارًا. من المفترض أن تبدأ التصميمات الأولى في الشحن بنهاية الربع الثاني من عام 2015 ، وسيتم تصميم معظمها للأسواق الآسيوية ، وكذلك الأسواق الناشئة في أجزاء أخرى من العالم. في حين أنه من الممكن أن نرى بعضها في أمريكا الشمالية وأوروبا ، يبدو أن تركيز إنتل ينصب على الصين والهند.
تقوم Intel بالتحوط في رهاناتها باستخدام معالجات Atom x5 و x7 ، والتي ستستخدم بنية جديدة تمامًا بالإضافة إلى عقدة التصنيع المتطورة للشركة 14 نانومتر. ومع ذلك ، فإن هذه المنتجات مخصصة للأجهزة اللوحية بدلاً من الهواتف الذكية ، على الأقل في الوقت الحالي.
السؤال الكبير ، الذي ليس لدي إجابة عليه ، هو عدد التصميمات التي يمكن أن تحصل إنتل عليها في الحزام. ينقسم المحللون حول هذه المشكلة وتبدو توقعات الشحن مثل التخمينات في هذه المرحلة.
في العام الماضي ، أثبتت شركة Intel أنها على استعداد لتحمل الخسائر وحرق مليارات الدولارات لكسب موطئ قدم في سوق الأجهزة اللوحية. لا يزال من السابق لأوانه القول ما إذا كانت ستستخدم نفس النهج مع رقائق Atom الجديدة ، وخاصة منتجات SoFIA للهواتف الذكية.
لقد رأيت فقط منتجًا فعليًا واحدًا يعتمد على معالج Intel SoFIA حتى الآن - جهاز لوحي صيني بقيمة 69 دولارًا مع اتصال 3G. إنه هاتف كبير الحجم بشكل أساسي ، كما يمكنك أن تتخيل ، قد ينتهي الأمر بتكلفة أقل بكثير من هاتف SoFIA للمبتدئين. يجب أن يكون عرضًا مغريًا لصانعي الهواتف الذكية والأجهزة اللوحية ذات الصندوق الأبيض ، حيث يمكنهم بسهولة تصميم أجهزة تتراوح قيمتها بين 50 و 100 دولار مع ملصق "Intel Inside" على ظهرها ، والذي يبدو جيدًا من منظور التسويق.
لسوء الحظ ، يمكننا فقط تخمين عدد الهواتف والأجهزة اللوحية من Intel التي سيتم شحنها خلال العام المقبل أو نحو ذلك. من الواضح أننا نتعامل مع ملايين الوحدات ، عشرات الملايين ، لكن السؤال هو: كم عدد العشرات؟ يعتقد معظم المحللين أن إنتل ستشحن ما بين 20 و 50 مليون معالج Atom x3 هذا العام ، وهو انخفاض في المجموعة بالنظر إلى أن إجمالي شحنات الهواتف الذكية من المتوقع أن يصل إلى 1.2 مليار جهاز هذا العام. ومع ذلك ، فإن شركة Intel لا ترحم ، ولديها أموال لتحرقها ولا يتعين عليها تحقيق ربح من أي من هذه الرقائق. يمكن أن تستحوذ على 3 إلى 4 في المائة من السوق بحلول نهاية عام 2015 ، لكن حصة السوق يجب أن تستمر في النمو في عام 2016 وما بعده.
ماذا يعني هذا لمطوري Android؟
حصلت Intel على سمعة سيئة بين بعض مطوري Android بسبب بعض مشكلات التوافق. كانت هذه مشكلة حقيقية منذ عامين لأن الأجهزة كانت مختلفة كثيرًا عن نوى ARM القياسية المستخدمة في معظم الأجهزة.
لحسن الحظ ، حققت الشركة الكثير من التقدم على مدار العامين ؛ يقدم برامج تدريبية مكثفة وتوثيق شامل وغير ذلك. في الواقع ، تكشف نظرة سريعة على قوائم الوظائف في LinkedIn أن شركة Intel توظف العشرات من مطوري Android ، مع فتح عدد قليل من الوظائف الشاغرة كل شهر.
إذن كل شيء يسير على ما يرام ، أليس كذلك؟ حسنًا ، هذا يعتمد ...
لقد أتيحت لي الفرصة الأسبوع الماضي لاختبار هاتف Asus جديد يعتمد على Intel Atom Z3560 ، ويجب أن أقول إنني مسرور بالنتائج ؛ إنها منصة أجهزة جيدة قادرة على معالجة 4 جيجابايت من ذاكرة الوصول العشوائي على جهاز الميزانية. تعتقد Asus أنها تستطيع بيع 30 مليون وحدة هذا العام ، وهو أمر مثير للإعجاب حقًا نظرًا لحصة Intel في سوق الهواتف الذكية.
المشكلة الوحيدة هي أن بعض تطبيقات Android لا تزال تسيء التصرف على أجهزة Intel . عادة ، لا يكون الأمر كبيرًا جدًا ، لكنك تحصل على بعض الأعطال الغريبة ، ونتائج القياس غير الواقعية ومراوغات التوافق الأخرى. الأخبار السيئة هي أن المطورين لا يمكنهم فعل الكثير لمعالجة المشكلات المتعلقة بالأجهزة ، على الرغم من أن الحصول على بعض الأجهزة القائمة على Intel للاختبار سيكون بداية جيدة. الخبر السار: تبذل Intel قصارى جهدها لفرز كل شيء في نهايتها ، لذلك لا يتعين عليك ذلك.
بالنسبة إلى أجهزة ARM ، سنرى المزيد من نوى وحدة المعالجة المركزية في مجموعات أكثر. سيظل أداء الخيط الفردي محدودًا على العديد من الأجهزة السائدة ، أي الهواتف الرخيصة القائمة على شرائح Cortex-A53 SoCs رباعية وثمانية النواة. من السابق لأوانه تحديد ما إذا كان مترجمي Google / ARM الجدد سيكونون قادرين على تعزيز الأداء على هذه الأجهزة أم لا. ربما سيفعلون ، لكن بكم؟ الحوسبة غير المتجانسة هي اتجاه آخر يجب الانتباه إليه في العام المقبل.
في الختام ، إليك ما يجب أن يتوقعه مطورو Android من حيث البرامج والأجهزة في أواخر 2015 و 2016:
- المزيد من معالجات Intel x86 في قطاعات السوق الأساسية والمبتدئة.
- ستكون حصة إنتل في السوق ضئيلة في عام 2015 ، لكنها قد تنمو في عام 2016 وما بعده.
- المزيد من تصميمات ARMv8 متعددة النواة متوفرة عبر الإنترنت.
- مترجم ART الجديد "الأمثل".
- تأتي الحوسبة غير المتجانسة ، لكنها ستستغرق بعض الوقت.
- سيؤدي الانتقال إلى عقد تصنيع FinFET و Cortex-A72 إلى إطلاق المزيد من الأداء والميزات.