ونعود لتطبيق المثال الأول علي المعالجات ، فالمعالج أ يتبع تصميم معين معين يتيح له حل المسألة السابقة باستخدام الحل الأول :
7X15 + 5X15 = 105+75
الناتج = 180
يأخذ المعالج رقم 15 من الذاكرة العشوائية RAM ،ويقوم بتخزينه في مسجل رقم 1 ، ويكرر نفس الأمر مع رقم 5 ورقم 7 ، بتخزينهما في المسجلين رقم 2 و 3 .
يتم ضرب رقم 15 في رقم 5 ، وتسجيل النتيجة في مسجل رقم 4.
يتم ضرب رقم 15 في 7 ، وتسجيل النتيجة في مسجل رقم 5 .
وأخيرا يتم جمع قيمة المسجل رقم 4 ورقم 5، أي يتم جمع ناتج العمليتين السابقتين 105 +75 ، وتسجيل النتيجة في مسجل رقم 6 .
احتاج المعالج أ إلي 6 مسجلات ، وعمليتين ضرب ، وعملية جمع لإتمام المسألة السابقة بالحل الأول .
ومعني أنه احتاج إلي كل ذلك ، أن المهندسين سوف يصممون ستة مسجلات ، يتصل ثلاثة منهم بمعالج ضرب ، كوسيلة لإدخال البيانات ، (إدخال أرقام المسألة ) ، ويخرج من معالج الضرب هذا مسجلين آخرين (كوسيلة لتسجيل نتائج الضرب ) ، يتصل المسجلين مباشرة بمعالج الجمع ، والذي يخرج منه مسجل أخير وحيد .
ونستطيع رؤية مخطط المعمارية للمعالج أ هنا :
أما المعالج ب فيحمل تصميما معينا يتيح له حل المسألة السابقة باستخدام الحل الثاني :
15X12
الناتج = 180
يأخذ المعالج رقم 7 ورقم 5 من الذاكرة العشوائية ، ويضعهما في مسجلين (مسجل رقم 1 ورقم 2 ) ، ويقوم بإجراء عملية جمع عليهما ، ويضع ناتج العملية في مسجل رقم 3 .
يتم تخزين رقم 15 في مسجل رقم 4 ، ويتم ضرب قيمة هذا المسجل في قيمة المسجل رقم 3 ، ويتم وضع الناتج الجديد في المسجل رقم 5 .
احتاج المعالج ب إلي خمسة مسجلات والي عملية ضرب واحدة وعملية جمع واحدة .
ومعني أنه احتاج إلي كل ذلك ، أن المهندسين سوف يصممون خمسة مسجلات ، يتصل اثنين منهم بمعالج للجمع (كوسيلة لإدخال البيانات)، يخرج من هذا المعالج مسجل جديد لتخزين ناتج العملية ، ويتصل هذا المسجل ، يمسجل آخر ، ويدخل الاثنان إلي معالج الضرب ، والذي يخرج منه مسجل أخير ، يخزن فيه قيمة العملية .
ونستطيع رؤية مخطط المعمارية للمعالج ب :
بغض النظر عن أن معمارية المعالج ب تبدو أبسط من معمارية المعالج أ ، كلا المعالجين أعطيا الناتج النهائي بدقة ، لكن بتصميم مختلف تماما .
وهذا هو ما نطلق عليه معمارية المعالج التي ترتبط ارتباطا مباشرا بطريقة معالجته للبيانات ، وتسمي تلك المعمارية باسم التعليمات Instructions.
والتعليمات هنا يقصد بها طريقة اتصال دوائر هذا المعالج ببعضها بحيث تقوم بوظيفة معالجة البيانات ، وأطلقت تسمية التعليمات عليها ، بسبب أن هذه هي الطريقة الوحيدة لمخاطبة الدوائر الكهربية للمعالج ، فهي دوائر كهربية لا تملك سوي أن تتصل أو أن تنفصل عن بعضها ، فكأنني بتوصيلها مع بعضها بطريقة معينة ، أعطيها تعليمات محددة بأداء وظيفة معينة .
فمثلا في المعالج ب ، فان طريقة توصيل الدوائر فيه كالآتي :
3 مسجلات ——–> معالج ضرب ——–> مسجلين ——–> معالج جمع ——–> مسجل أخير
يمكنني أن أطلق علي طريقة التوصيل هذه ، تعليمات المعالج ب .
هل لاحظت أن طريقة التوصيل أو التعليمات ، هي ترجمة أمينة للحل رقم 2 ، والخاص بالمسألة السابقة ، هذه الترجمة تمت باستخدام الدوائر الكهربية ، أي باستخدام العتاد ؟
وفي مثال المعالج أ ، فان طريقة توصيل الدوائر فيه كالآتي :
مسجلين ——–> معالج جمع ——–> مسجل + مسجل (من الخارج) ——–> معالج ضرب ——–> مسجل أخير
ويمكنني أن أطلق علي طريقة التوصيل هذه ، تعليمات المعالج أ .
هل لاحظت أن طريقة التوصيل أو التعليمات ، هي ترجمة أمينة للحل رقم 1 ، والخاص بالمسألة السابقة ، هذه الترجمة تمت باستخدام الدوائر الكهربية ، أي باستخدام العتاد ؟
الآن عندما أخبرك أن شركة Intel ، أطلقت علي طريقة توصيل دوائرها الكهربية لتكون ترجمة أمينة لطرق معالجة البيانات في معالجاتها المركزية، اسم تعليمات X86 .. فهل تفهمني ؟
لا تحتاج المسألة إلي فهم عميق في الواقع :
- معالج أ قام بمعالجة المسألة الحسابية بطريقة معينة .
ومعالج ب قام بمعالجة نفس المسألة بطريقة أخري .
- معالجات x86 تقوم بمعالجة تلك المسألة ومسائل أخري كثيرة ، وبيانات عديدة مختلفة ، بطرق معينة.
ومعالجات ARM تقوم بمعالجة نفس البيانات بطرق أخري .
انتهي ..
لحظة ! .. ما هي معالجات ARM هذه أصلا ؟