كان على أجهزة PostPC أن تحل محل أجهزة الكمبيوتر ، وهذا ما قيل قبل بضع سنوات. في نهايةالمطاف؟ نحن نعمل مع أجهزة تتحدث لغات مختلفة وفي بعض الحالات تجبرنا على التبديل بين الأجهزة المختلفة في جميع الأوقات. ولكن مع وصول المستقبل ARMأجهزة الكمبيوتر القائمة على الكمبيوتر ، نتساءل عما إذا كنا سنرى معالجات مختلطة مع x86.
من ناحية ، لدينا أجهزة الكمبيوتر التي تم تجميع برامجها لمجموعة x86 من السجلات والتعليمات ، ومن ناحية أخرى لدينا ما يسمى بأجهزة PostPC ، والتي تتحدث تطبيقاتها في ARM. ولكن في الآونة الأخيرة ، أظهر مصممو المعالجات لأنظمة PostPC أنهم يريدون الانتقال إلى جهاز الكمبيوتر ، وليس إلى x86 ، ولكن في الحصول على أجهزة كمبيوتر تعتمد على ARM.
انتهى هذا الأمر في النهاية إلى وجود سوقين مختلفين ، يتحدث كل منهما لغته وعدد لا نهائي من التطبيقات غير المتوافقة مع نظام آخر. السيناريو المثالي؟ امتلاك جهاز كمبيوتر لديه القدرة على تشغيل البرامج والأنظمة على كلا الجانبين ، لكل من ARM و x86.
لكن هل هذا ممكن؟ سنحاول شرح المشكلات التي سيواجهها المعماريون عند تصميم كل من النظام الهجين و SoC المختلط ، بالإضافة إلى سبب ذلك إنتل AMD لم يفرجوا عن المعالج المختلط.
لا تهتم AMD و Intel بوحدة المعالجة المركزية المختلطة بين ARM و x86
المشكلة الأولى هي أن ترخيص x86 مرخص فقط من قبل Intel و AMD ، لذلك هاتان الشركتان هما الوحيدتان القادرتان على إنشاء وحدة المعالجة المركزية: متوافق مع x86 ثنائيات. لذا ، أولاً وقبل كل شيء ، يجب أن نفكر قليلاً فيما سيحدث إذا صنعت هذه الشركات وحدة معالجة مركزية قادرة على تنفيذ البرامج المصممة لـ ARM.
علينا أن نضع في اعتبارنا أنه سيكون من المستحيل تشغيل البيئة على x86 و ARM في نفس الوقت ، لذلك فإن معظم المطورين الذين يعرفون أن أجهزة الكمبيوتر التي تحتوي على x86 يمكنها أيضًا تشغيل كود ARM لن يزعجوا الكود شيئًا فشيئًا سيصبح الإصدار x86 قديمًا وسينمو ARM في النسبة المئوية للاستخدام.
العالم الذي لا يستخدم فيه الأشخاص برامج x86 هو عالم لا يستحق كل هذا العناء بالنسبة لشركة Intel و AMD ، لذا فإن المعالج من جانبهم والذي يمكنه تشغيل كلتا البيئتين لن يكون مثاليًا لهم
نشر x86 و ARM على نظام واحد
هل لدينا مثال على هذا؟ نعم ، لدينا منزل موجود في عشرات الملايين من المنازل بلاي ستيشن 4 ، وحدة تحكم معالجها الرئيسي هو AMD SoC المستند إلى x86 ولكن بعد ذلك يحتوي على معالج ثانٍ بمعالج ARM. يتم تنشيط هذا المعالج فقط عندما تكون وحدة التحكم في وضع الاستعداد ، وتقوم بتشغيل نظام تشغيل بالتوازي ولها نظام خاص بها رامات ذاكرة.
إن أبسط فكرة لتوحيد العالمين هي إنشاء جهاز كمبيوتر يقوم ، حسب مستوى الاستهلاك المطلوب في جميع الأوقات ، بتنشيط SoC أو آخر ، ويتم تنشيط النظام بطريقة أو بأخرى ، ولكن هذا يعني وجود نظامين في نفس الكمبيوتر وتصميم نظام توزيع الطاقة بالكامل للنظامين ، وهي ليست مهمة شاقة.
ستأتي المشكلة الأخرى في استخدام أجهزة الإدخال / الإخراج في النظام ، ويجب أن تكون جميعها متاحة لمعالجات كل من ISA ، لذلك إما أن يتم تكرار الأجهزة التي تصل إلى الأجهزة الطرفية أو يتم إنشاء عنصر مشترك. ، والتي تتعارض مع الطرق المختلفة التي يتحدث بها كل نوع من المعالجات.
اثنان من ISAs يعملان في نفس الوقت على شركة نفط الجنوب واحدة ، هل هذا ممكن؟
إذا كان هناك شيء يميز SoCs ، فليس فقط أن جميع المكونات موجودة على نفس الشريحة ، بل أنها تشترك جميعًا في نفس الوصول إلى الذاكرة ، ولكن ماذا يحدث عندما لا يفهم معالجان نفس اللغة؟ حسنًا ، هذه ليست مشكلة نظرًا لأن SoCs لديها في وحدات معالجة الرسومات الخاصة بها طريقة مختلفة عن وحدة المعالجة المركزية لقراءة الثنائيات ، كل ما هو مطلوب هو وضع علامة في الذاكرة على أي جزء مخصص لـ ARM وأي جزء مخصص لـ x86.
يبدو سهلا أليس كذلك؟ حسنًا ، لا ، السبب هو أن الإصدار x86 هو Little Endian ، مما يعني أنه يمر عبر الذاكرة من أدنى عنوان للذاكرة إلى الأعلى ، أما ARM فهو ثنائي Endian لذا يمكن أن تبدأ البرامج من كلا الطرفين وترتفع أو تنخفض حسب الحالة . من حيث المبدأ ، سيكون من السهل ربط نقطة نهاية بكل ISA ، ولكن هناك أنظمة تشغيل لـ ARM تعمل في Little Endian.
المشكلة الأخرى هي حقيقة أن ذاكرة الوصول العشوائي مصممة لخدمة المعالج في نفس الوقت ، لذلك إذا كان لدينا معالجان يصلان في نفس الوقت ، فسيحتوي أحدهما على خلاف على الآخر في الوصول إلى الذاكرة ، لذلك فإن التطبيقات المصممة لكل من ISA لا تعمل بنفس السهولة ، ناهيك عن أن الموارد المشتركة بين كليهما داخل SoC ستفعل ذلك أيضًا.
وبالتالي. كيف يتم ذلك وحدة معالجة الرسوميات: يمكن مشاركة المساحة مع وحدة المعالجة المركزية بسلاسة؟ حسنًا ، للحقيقة البسيطة المتمثلة في أن وحدات معالجة الرسومات ، على الرغم من أنها تتلاعب بالبيانات وتشغيل البرامج ، ليست مصممة لتشغيل نظام تشغيل ، كما أن وجود نظام تشغيل يعاني من انفصام الشخصية تمامًا يمكن فهمه باستخدام بنيتين في نفس الوقت أمر مستحيل. حيث يكون لكل واحد طريقته الخاصة في معالجة الذاكرة والوصول إلى الأجهزة الطرفية.