فروق المعمارية بين معالجات X86 و ARM : العمالقة!

ونعود لتطبيق المثال الأول علي المعالجات ، فالمعالج أ يتبع تصميم معين معين يتيح له حل المسألة السابقة باستخدام الحل الأول :

نقوم بضرب رقم 15 في كلا من 7 و 5 ، ثم نجمع ناتج العمليتين .

7X15 + 5X15 = 105+75

الناتج = 180

يأخذ المعالج رقم 15 من الذاكرة العشوائية RAM ،ويقوم بتخزينه في مسجل رقم 1 ، ويكرر نفس الأمر مع رقم 5 ورقم 7 ، بتخزينهما في المسجلين رقم 2 و 3 .

يتم ضرب رقم 15 في رقم 5 ، وتسجيل النتيجة في مسجل رقم 4.

يتم ضرب رقم 15 في 7 ، وتسجيل النتيجة في مسجل رقم 5 .

وأخيرا يتم جمع قيمة المسجل رقم 4 ورقم 5، أي يتم جمع ناتج العمليتين السابقتين 105 +75 ، وتسجيل النتيجة في مسجل رقم 6 .

احتاج المعالج أ إلي 6 مسجلات ، وعمليتين ضرب ، وعملية جمع لإتمام المسألة السابقة بالحل الأول .

ومعني أنه احتاج إلي كل ذلك ، أن المهندسين سوف يصممون ستة مسجلات ، يتصل ثلاثة منهم بمعالج ضرب ، كوسيلة لإدخال البيانات ، (إدخال أرقام المسألة ) ، ويخرج من معالج الضرب هذا مسجلين آخرين (كوسيلة لتسجيل نتائج الضرب ) ، يتصل المسجلين مباشرة بمعالج الجمع ، والذي يخرج منه مسجل أخير وحيد .

ونستطيع رؤية مخطط المعمارية للمعالج أ هنا :
arm_vs_x86_art1

 

أما المعالج ب فيحمل تصميما معينا يتيح له حل المسألة السابقة باستخدام الحل الثاني :

نقوم بجمع 7 و5 أولا ، ثم نضرب الناتج (12) في رقم 15 .

15X12

الناتج = 180

يأخذ المعالج رقم 7 ورقم 5 من الذاكرة العشوائية ، ويضعهما في مسجلين (مسجل رقم 1 ورقم 2 ) ، ويقوم بإجراء عملية جمع عليهما ، ويضع ناتج العملية في مسجل رقم 3 .

يتم تخزين رقم 15 في مسجل رقم 4 ، ويتم ضرب قيمة هذا المسجل في قيمة المسجل رقم 3 ، ويتم وضع الناتج الجديد في المسجل رقم 5 .

احتاج المعالج ب إلي خمسة مسجلات والي عملية ضرب واحدة وعملية جمع واحدة .

ومعني أنه احتاج إلي كل ذلك ، أن المهندسين سوف يصممون خمسة مسجلات ، يتصل اثنين منهم بمعالج للجمع (كوسيلة لإدخال البيانات)، يخرج من هذا المعالج مسجل جديد لتخزين ناتج العملية ، ويتصل هذا المسجل ، يمسجل آخر ، ويدخل الاثنان إلي معالج الضرب ، والذي يخرج منه مسجل أخير ، يخزن فيه قيمة العملية .

ونستطيع رؤية مخطط المعمارية للمعالج ب :

arm_vs_x86_art4

 

 

بغض النظر عن أن معمارية المعالج ب تبدو أبسط من معمارية المعالج أ ، كلا المعالجين أعطيا الناتج النهائي بدقة ، لكن بتصميم مختلف تماما .

وهذا هو ما نطلق عليه معمارية المعالج التي ترتبط ارتباطا مباشرا بطريقة معالجته للبيانات ، وتسمي تلك المعمارية باسم التعليمات Instructions.

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

فمثلا في المعالج ب ، فان طريقة توصيل الدوائر فيه كالآتي :

3 مسجلات ——–> معالج ضرب ——–> مسجلين ——–> معالج جمع ——–> مسجل أخير

يمكنني أن أطلق علي طريقة التوصيل هذه ، تعليمات المعالج ب .

هل لاحظت أن طريقة التوصيل أو التعليمات ، هي ترجمة أمينة للحل رقم 2 ، والخاص بالمسألة السابقة ، هذه الترجمة تمت باستخدام الدوائر الكهربية ، أي باستخدام العتاد ؟

وفي مثال المعالج أ ، فان طريقة توصيل الدوائر فيه كالآتي :

مسجلين ——–> معالج جمع ——–> مسجل + مسجل (من الخارج) ——–> معالج ضرب ——–> مسجل أخير

ويمكنني أن أطلق علي طريقة التوصيل هذه ، تعليمات المعالج أ .

هل لاحظت أن طريقة التوصيل أو التعليمات ، هي ترجمة أمينة للحل رقم 1 ، والخاص بالمسألة السابقة ، هذه الترجمة تمت باستخدام الدوائر الكهربية ، أي باستخدام العتاد ؟

الآن عندما أخبرك أن شركة Intel ، أطلقت علي طريقة توصيل دوائرها الكهربية لتكون ترجمة أمينة لطرق معالجة البيانات في معالجاتها المركزية، اسم تعليمات X86 .. فهل تفهمني ؟

لا تحتاج المسألة إلي فهم عميق في الواقع :

  • معالج أ قام بمعالجة المسألة الحسابية بطريقة معينة .
    ومعالج ب قام بمعالجة نفس المسألة بطريقة أخري .
  • معالجات x86 تقوم بمعالجة تلك المسألة ومسائل أخري كثيرة ، وبيانات عديدة مختلفة ، بطرق معينة.
    ومعالجات ARM تقوم بمعالجة نفس البيانات بطرق أخري .

انتهي ..

لحظة ! .. ما هي معالجات ARM هذه أصلا ؟

الصفحة السابقة 1 2 3 4الصفحة التالية

محمد عبد الحميد

محمد عبد الحميد .. 25 سنة ..
زر الذهاب إلى الأعلى