صفحة 1 من 5 1 2 3 4 5 الأخيرةالأخيرة
النتائج 1 إلى 15 من 75

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

  1. #1
    عضو فضي الصورة الرمزية Hameedo
    تاريخ التسجيل
    Sep 2008
    المشاركات
    830
    الدولة: Egypt
    معدل تقييم المستوى
    78

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



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

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

    حديثنا اليوم عن عمالقة الحاسوب ، وتحديدا عمالقة المعالجات .

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

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

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

    ومن هنا تنبثق معمارية الحاسوب .

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

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

    المثال الأول : 15 (7+5 ) = ؟؟

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


    7X15 + 5X15 = 105+75


    الناتج = 180
    الحل الثاني :

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

    15X12

    الناتج = 180
    اختلفت الطريقتين ، لكن كلاهما أتي بنفس الناتج وان اختلفت الخطوات .

    وقبل أن نطبق هذا المثال علي المعالجات ، ينبغي أن نعرف الطريقة الدقيقة لمعالجة البيانات في المعالج ، ونضرب لذلك مثالا ثانيا :

    المثال الثاني :
    8+1 = ؟؟

    1-يتم استخراج مفردات المسألة من الذاكرة العشوائية أو القرص الصلب ، أي يتم استخراج رقم 8 ورقم 1 ، ويتم استخراج علامة الجمع (+) .

    2-تقرأ علامة الجمع أولا ، ومن ثم تحول العملية كلها الي معالج الجمع في المعالج المركزي .(تسمي هذه الخطوة بالترجمة ، وسوف نشرحها بعد قليل).

    3-في معالج لجمع يتم تسجيل رقم 8 في مسجل (المسجل هو ذاكرة صغيرة لتخزين البيانات التي ستجري عليها المعالجة حالا ) ، ورقم 1 في مسجل آخر .

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

    5-يتم نقل الناتج من المسجل الأخير الي الذاكرة العشوائية أو القرص الصلب .

    هذه هي الخطوات الأساسية لأي عملية معالجة يقوم بها المعالج .

    ____________________________________________

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

    نقوم بضرب رقم 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 مسجلات ، وعمليتين ضرب ، وعملية جمع لإتمام المسألة السابقة بالحل الأول .

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


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



    ______________________

    أما المعالج ب فيحمل تصميما معينا يتيح له حل المسألة السابقة باستخدام الحل الثاني :
    نقوم بجمع 7 و5 أولا ، ثم نضرب الناتج (12) في رقم 15 .
    15X12
    الناتج = 180
    يأخذ المعالج رقم 7 ورقم 5 من الذاكرة العشوائية ، ويضعهما في مسجلين (مسجل رقم 1 ورقم 2 ) ، ويقوم بإجراء عملية جمع عليهما ، ويضع ناتج العملية في مسجل رقم 3 .

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

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

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

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


    ____________________

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

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

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

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

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

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

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


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

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

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

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


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

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

    -معالج أ قام بمعالجة المسألة الحسابية بطريقة معينة .
    ومعالج ب قام بمعالجة نفس المسألة بطريقة أخري .

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

    انتهي ..

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

    اذن في أي شئ تتواجد معالجات ARM ؟

    تتواجد تلك المعالجات في الأجهزة الالكترونية الأخري ، مثل الهواتف النقّالة ، والآلات الحاسبة ، ومشغّلات الموسيقي والعروض المرئية ، كما تتواجد في أجهزة الألعاب الصغيرة ، والمساعدات الرقمية PDA ، وحتي الأقراص الصلبة وموجّهات الشبكات Routers ، وهي تحظي بانتشار رهيب في هذه الأسواق.

    ان كلا من X86 و ARM ، هما عملاقان يحكمان دولتين مختلفتين ، و التصادم بينهما مقدّر أن يحصل أن عاجلا أو آجلا.

    لكن الصراع بين العملاقين بدأ منذ زمن سحيق ، وهو صراع تقني أكثر منه تجاري ، انه صراع التعليمات .

    ويتسائل البعض .. كيف يكمن للتعليمات أو (للمعمارية) أن تسبب صراعا ؟

    ____________________________________________

    ولنفهم هذه النقطة جيدا يجب أن نعود الي مثالنا الأول المسكين مرة أخري .. نعود له لنتذكر كيف أن التعليمات العتادية ، ما هي الا ترجمة أمينة للمسألة ، 15(7+5) ، تم تمثيلها باستخدام المسجلات ومعالجي الضرب والجمع .

    هذه الترجمة الأمينة ، تسمّي Decoding ، وهي تعني أنني ترجمت مفردات المسألة الحسابية الي عتاد مباشرة ، والمفردات هنا تعني الأرقام والعلامات الحسابية مثل + و X ، فالأرقام ترجمت الي قيم في مسجلات (ذواكر عتادية) و العلامات الحسابية ترجمت الي معالج الضرب أو معالج الجمع .

    ترجمة الأرقام تبدو عملية سهلة ، فكل ما فعلناه هو وضعها في مسجّل ، وانتهي الأمر .

    لكن هذا غير صحيح ، فنحن لم نضعها في أي مسجل ، بل وضعناها في المسجل الخاص بمعالج الجمع مثلا ، تميهدا لتنفيذ عملية الجمع !

    وهنا يكمن السؤال ! لماذا تم وضع الأرقام في مسجلات معالج الجمع ؟ ولم يتم وضعها في مسجلات معالج القسمة مثلا ؟

    السبب ببساطة هو وجود علامة الجمع في المسألة !

    ان علامة الجمع (+) ما هي الا عنوان لمسجلات معالج الجمع !
    وعلامة الضرب ما هي الا عنوان لمسجلات معالج الضرب !

    اذن فالرقم 15 يتواجد جنبا الي جنب بجوار عنوان مسجلات معالج الضرب داخل الذاكرة العشوائية .
    والرقمين 7 و 5 يتواجدان جنبا الي جنب بجوار عنوان مسجلات معالج الجمع داخل الذاكرة العشوائية .

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

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

    هل لاحظت أن الترجمة تعتمد بشكل اساسي علي وجود عنوان مسجلات معالج الضرب أو الجمع ؟
    ماذا اذا لم يكن هذا العنوان موجودا ؟ ، ماذا اذا تغيرت قيمته ؟
    اذا تغيرت قيمته ، فسوف يعني ذلك تغير معني المسألة ، فبدلا من أن تكون جمعا وضربا ، تتحول ال قسمة وطرح !

    اذن يجب علي الشخص أو البرنامج الذي يتولي كتابة المعادلة وتخزينها في الذاكرة ، أن يعرف عناوين معالجات الجمع والضرب ، والا ذهبت المعادلة الي معالج آخر .

    ومن هنا يبدأ الصراع !!

    في المعالج أ ، يكون عنوان معالج الضرب هو المسجل 1 ، و 2 ، 3 .
    بينما في المعالج ب ، بكون عنوان معالج الضرب هو المسجل 4 و 5 .

    اذا تمّ كتابة البرنامج علي أساس معمارية المعالج أ ، فان المعادلة لن تصلح علي معمارية المعالج ب ، والعكس صحيح !! ، وذلك بسبب اختلاف عناوين معالجات الضرب في المعماريتين !

    اذن وجب علي المبرمج أن يضع في حسبانه الاختلاف في المعماريات بين المعالجات ، حتي يعمل برنامجه علي كل المعالجات !

    لهذا يعمل نظام تشغيل النوافذ Windows حصريا علي معالجات X86 ، لأن شركة Microsoft ، لم تضع في حسبانها أي معالجات أخري أثناء تصميم النظام ، وبهذا فلن يعمل النظام علي معالجات ARM .

    وهذه هي أول المواجهات في الصراع بين العملاقين ، وهي الحصول علي البرامج الداعمة لكل منهما !

    ثاني المواجهات يتعلّق باختلاف وجهات النظر في التصميم بشكل متطرف !

    ولنفهم ذلك نعود مرة ثالثة لمثالنا الأول ، ونرجو منه الصفح علي ازعاجه المستمر ..

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

    ماذا عن مسألة أخري أكثر تعقيدا ؟ .. مثلا : 12X(5+4)X8+(13X4)-9

    سوف نحتاج الي مسجلات جديدة وسوف نحتاج الي مجموعة وصلات جديدة بين المسجلات والمعالجات ، تلك الوصلات سوف تكون أعقد وأكثر من المرة السابقة !

    اذن ماذا عن مسألة أكثر تعقيدا ، ومسألة أخري أكثر وأكثر وأكثر تعقيدا ؟

    ان هذا مستحيل !! كلما زاد تعقيد المسألة ، كلما زاد تعقيد تصميم العتاد ، وبازدياد تعقيد البيانات أكثر وأكثر ، يصبح من غير المجدي الاستمرار في تصميم العتاد بهذا التعقيد ، لأن التعقيد لن ينتهي أبدا هكذا !!

    ما الحل اذن ؟ الحل هو اضافة ما يسمي باسم طاقم التعليمات المصغر Microcode Set .

    طاقم التعليمات المصغر هو معالج صغير يسمي باسم وحدة التحكم Control Unit ، وهي الموجودة في كل المعالجات الحديثة ،

    وهو عبارة عن ذاكرة كبيرة مخزن عليها عناوين كل مسجلات المعالج ، سواء الخاصة بمعالج الضرب ،أو الجمع أو القسمة .. الخ

    تتصل هذه الذاكرة بوحدة معالجة صغيرة ، وفي هذا المثال 15X5 ، تستقبل وحدة المعالجة هذه بيانات المسألة ، وتقرأ علامة الضرب أولا .

    علامة الضرب هنا هي عبارة عن عنوان الذاكرة التي تحوي عنوان مسجلات معالج الضرب !

    تقوم وحدة المعالجة الصغيرة بقراءة الذاكرة ، وتستخرج عنوان مسجلات معالج الضرب ، وتقوم بارسال رقم 15 ورقم 5 الي مسجلات معالج الضرب .

    يجري معالج الضرب العملية ، ويخزن الناتج النهائي (75) في مسجل جديد ، يذهب هذا المسجل الي وحدة التحكم.

    تقرر وحدة التحكم ما اذا كانت المسألة قد انتهت أم لا .. فاذا انتهت .. يرسل الناتج الي الذاكرة العشوائية ، واذا لم تنتهي ، واحتوت المسألة علي جزء جمع اضافي (+10مثلا ) ، تقوم وحدة التحكم بارسال ناتج الضرب (75) ورقم 10 الي معالج الجمع .. وهكذا .. دواليك .. :




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

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

    تعمل معالجات X86 ، بهذا الأسلوب ، ويسمي هذا الأسلوب باسم Complex Instruction Set Computer ، أو حاسوب طاقم التعليمات المعقد CISC ، وذلك لأنه يستعمل مجموعة معقدة من التعليمات ، والتي يتم تسجيلها في وحدة التحكم .

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

    أدّي اضافة وحدة التحكم الي معالجات X86 ، الي كبر حجمها ، لكن ليس بنفس درجة حجمها اذا لم تكن وحدة التحكم موجودة ، كما أدي الي بعض البطأ في تنفيذ العمليات شديدة التعقيد ، بسب أن تلك العمليات تمر علي وحدة التحكم أكثر من مرة ، كما رأينا في المثال السابق ، مما يخلق المزيد والمزيد من التأخير .

    المزيد والمزيد من هذا التأخير ، يستلزم عمل شئ ما لتعويضه ، والشئ الذي استقر عليه المهندسون هو خط أنابيب البيانات Pipeline ، وهو مفهوم سوف نشرحه في مقال آخر .

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

    ____________________________________________

    لكن فئة مصنعي معالجات ARM ، لم تختر الحل الأخير ، ولم تختر الحل الأول ، وانما قامت باختيار حل مختلف تماما .

    لم تحب هذه الفئة استخدام تعليمات معقدة أو استخدام طاقم تعليمات مصغر ، واصرت علي اتباع الطريق التقليدي .

    ففي مثالنا السابق ، 15(7+5) ، وبافتراض أن العملية تحل باستخدام الحل الثاني :
    نقوم بجمع 7 و5 أولا ، ثم نضرب الناتج (12) في رقم 15 .
    15X12
    الناتج = 180
    يتم استخراج رقم 7 ورقم 5، ويتم ترجمة علامة الجمع ، بتحويل الرقمين الي مسجلات معالج الجمع (المسجل 1 و 2) ، بعد الانتهاء من الجمع ، يتم تخزين الناتج في المسجل رقم 3 .

    المسجل رقم 3 متصل بما يسمي بحوض المسجلات الكبير وهو تجمع كبير لعدة مسجلات مرتبة في صفوف ، في هذا الحوض يتم وضع الناتج في مسجل جديد ، وليكن المسجل رقم 18 .

    الآن نحتاج الي ضرب رقم 15 في الناتج ، لذا يتم استخراج رقم 15 ، ويتم ترجمة علامة الضرب ، ومن ثم تحويله الي مسجل معالج الضرب ، المسجل رقم 4 مثلا .

    الآن يجب ان تحتوي بيانات الضرب الخاصة برقم 15 علي عنوان اضافي خاص بالمسجل رقم 18 ، وذلك لكي يقوم معالج الضرب بأخذ قيمة هذا المسجل ويضربها في رقم 15 .

    يتم وضع ناتج العملية في مسجل جديد ، وليكن مسجل رقم 5 ..ويتصل هذا المسجل بحوض البيانات الكبير ، بحيث ينقل الناتج الي المسجل رقم 19 مثلا .

    بهذا تنتهي بيانات العملية ، لكنها تحتوي علي شق أخير من البيانات ، وهو علامة يساوي (=) مثلا، وهي تحتوي علي عنوان المسجل رقم 19 ، وتترجم بـنسخ محتويات هذا المسجل الي الذاكرة العشوائية .




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

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

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

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

    لا تركز معالجات ARM علي سوق الحوسبة ، لذلك لا تأتي بترددات مرتفعة أو بذاكرة مخبأة كبيرة ، لأنها تقصر نفسها حاليا علي معالجة البيانات السيطة الي حد ما ، وعلي هذا فلم يتم بناء معالج منها لينافس معالجات Intel و AMD ، والمنافسة الوحيدة بينها وبين معمارية X86 ، هو معالج ATOM من شركة Intel .

    لكن ماذا يحدث اذا قررت ARM بناء معالج كبير للتطبيقات الثقيلة كتحرير الفيديو أو الرسوم ثلاثية الأبعاد .. سوف تحتاج الي دعم برمجي كبير بالطبع ، لكنها ستنافس منافسة شرسة ، وعندها سنري ..

    سنري صراع العمالقة الحقيقي ..


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

    CISC :
    -تخفف من التعقيد باستخدام طاقم تعليمات مصغر مدمج في وحدة تحكم .
    -يؤدي هذا الي حدوث بطء في عملية المعالجة .
    -حجم المعالج كبير.

    RISC :
    -تخفف من التعقيد بالاكثار من المسجلات ، والاعتماد علي البرنامج .
    -الاعتماد علي البرنامج قد يكون له عواقب وخيمة اذا لم يتم تطويع البرنامج بالشكل المناسب .
    -حجم المعالج صغير .


    تم بحمد الله وفضله ..

    ________________________________________

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

    وبناة الأهرام فى سالف الدهر كفونى الكلام عند التحدى

    أنا تاج العلاء فى مفرق الشرق و دراته فرائد عقدى

    أى شئ فى الغرب قد بهر الناس جمالاِّ ولم يكن منه عندى


  2. #2
    عضو ذهبي الصورة الرمزية محمد الجوهري
    تاريخ التسجيل
    Apr 2007
    المشاركات
    3,047
    الدولة: Saudi Arabia
    معدل تقييم المستوى
    109

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

    بسم الله ما شاء الله
    لا يسعنى الا ان أقول زادك الله من علمه
    و جعله فى ميزان حسناتك

    آثرت الرد اولا ثم العوده لقراءه الموضوع بمزاج و على روقان :D
    [CENTER]
    [/CENTER]

  3. #3
    عضو برونزي الصورة الرمزية ahmedelsabbagh
    تاريخ التسجيل
    Nov 2007
    المشاركات
    1,554
    الدولة: Egypt
    معدل تقييم المستوى
    18

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

    بارك الله فيك .. دائما متميز ..
    ربنا يزيدك من العلم .
    [CENTER][URL="http://www.arabhardware.net/forum/showthread.php?t=181830"]سمحاً إذا باع .. سمحاً إذا اشترى[/URL]
    [URL="http://www.arabhardware.net/forum/showthread.php?t=181988"],,, هل نحن من نصنع الغباء ؟[/URL]
    [URL="http://www.arabhardware.net/forum/showthread.php?t=176623"]الفاكهـــة ... ... ... و فـــوائدهــــا... ... ...[/URL] [URL="http://www.arabhardware.net/forum/showthread.php?t=116628"]الكوكب الجائع [/URL]
    [B][FONT=Times New Roman][SIZE=3]{ قُلْ هَلْ نُنَبِّئُكُمْ بِالْأَخْسَرِينَ أَعْمَالاً * الَّذِينَ ضَلَّ سَعْيُهُمْ فِي الْحَيَاةِ الدُّنْيَا وَهُمْ يَحْسَبُونَ أَنَّهُمْ يُحْسِنُونَ صُنْعاً } الكهف
    [/SIZE][/FONT][/B]

    [/CENTER]

  4. #4
    عضو ذهبي الصورة الرمزية vmidov
    تاريخ التسجيل
    Oct 2008
    المشاركات
    1,842
    الدولة: Egypt
    معدل تقييم المستوى
    51

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

    خساره ملحقتش أكون أول رد بس مش مشكله مرحتش لحد غريب
    ماشاء الله دائما فى أبداع
    مش لاقى حاجه أقولها بارك الله فى علمك وجزاك خيرا عن نفعك الاخرين به
    [CENTER][CENTER][SIGPIC][/SIGPIC]

    [B][FONT=Impact][SIZE=3][COLOR=Navy]أعتذر منكم إخوانى الأعزاء لأننى لا أعتقد أننى سأقوم بأى مراجعات أخرى وحتى من الممكن ألا أتابع المنتدى العزيز مره أخرى وقد أتابعه من حين لأخر ... الله وحده أعلم
    عموما يكفينى أننى تشرفت بمعرفه الكثير من الأشخاص المحترمه من هذا المنتدى العظيم وأرجو أن يدوم الود سواء كنت قريبا أو بعيدا عن المنتدى
    وبالطبع هناك قله تمنيت أننى لم أكن تعرفت إليهم قط أطلب من الله أن يهديهم ويوفقهم
    وأرجو أن أكون قد إستطعت رد ولو شئ بسيط من الجميل لمنتدانا وما تعلمته منه على مر السنين السابقه
    شكرا لكل أعضاء عرب هاردويير ولكل من قدم لى مساعده عن قصد أو غير قصد[/COLOR][/SIZE][/FONT][/B][/CENTER]
    [/CENTER]

  5. #5
    عضو فضي الصورة الرمزية SeeNoEvil
    تاريخ التسجيل
    Jun 2006
    المشاركات
    1,135
    الدولة: Egypt
    معدل تقييم المستوى
    20

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

    جزاك الله خير .......

    طريقتك في العرض جميله جدا

  6. #6
    عضو فضي الصورة الرمزية A-Bomb
    تاريخ التسجيل
    Jan 2007
    المشاركات
    738
    الدولة: Egypt
    معدل تقييم المستوى
    23

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

    كدة كتير قوي علي دماغي:confused::confused:
    بس فعلا انت استاذ يا دكتور. هحاول اقرا تاني بالراحة يمكن افهم كويس.:D

  7. #7
    ممثل شركة Cairo Computer - مصر الصورة الرمزية S@M
    تاريخ التسجيل
    Jul 2009
    المشاركات
    17,266
    الدولة: Egypt
    معدل تقييم المستوى
    26

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

    تم التقيم يا دكتور حميدو ...وانت رائع كالعادة فى شرحك ..:ah7::ah7:

    بس يا ريت فى المواضيع المطولة الشرح تكبر الخط درجة عشان الناس العواجيز اللى زيى :ah38::ah38:

    :D

  8. #8
    عضو الصورة الرمزية exart2u
    تاريخ التسجيل
    Jun 2009
    المشاركات
    229
    معدل تقييم المستوى
    9

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

    زادك الله من علمه
    و جعله فى ميزان حسناتك

  9. #9
    عضو
    تاريخ التسجيل
    Jun 2006
    المشاركات
    9
    معدل تقييم المستوى
    0

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

    بارك الله فيك

  10. #10
    { V.I.P } الصورة الرمزية alyaldeen
    تاريخ التسجيل
    May 2009
    المشاركات
    683
    الدولة: Egypt
    معدل تقييم المستوى
    469

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

    شرح سهل وبسيط يؤكد تمكن صاحب الموضوع وقدرته على ايصال المعلومه

    جزاك الله خيرا

  11. #11
    عضوية جديدة الصورة الرمزية havoc-M.D
    تاريخ التسجيل
    May 2009
    المشاركات
    30
    معدل تقييم المستوى
    0

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

    الف شكر يا دكتور على هذه المقالة الرائعة
    لكن بفرض انه تم تصنيع معالج ARM وتم دعمه من قبل المبرمجين(مع ان هذا يتطلب مجهود شاق جدا وبالتالى سيعرقل عملية تطوير البرامج واكبر دليل على ذلك عدم الاستفادة الكاملة من معالجات cell التى تستخدم بالكونسولز حتى الان )ستكون النتيجة حينها مبهرة ولكن بعد فترة(وفى الغالب تكون قليلة)عندما يصدر معالج ARM جديد بزيادة عدد الانوية (وعدد المسجلات)لن يقدم اى زيادة فى الاداء لان البرامج ليس عندها دراية بالمسجلات الجديدة وذلك عكس ما تقدمه cisc حيث توجد وحدة لتوزيع المدخلات على المسجلات مهما كان عددها
    فهل تتفق معى فى هذه الفرضية؟
    ومرة اخرى احيك على هذة المقالة
    أبــدع فـي مــواضيـعــك , وأحســن فـي ردودك , وقــدم كــل مــا لــديــك , ولا يغــرك فهمــك


    ولا يهينــك جهــلك , ولا تنتظــر شكــر أحـــد , بــل اشكــر الله على هذه النعمــة


    ولله الحمــد والشكــر


    http://folding.extremeoverclocking.c...c-m.d&t=155660

  12. #12
    مخالف للقوانين
    تاريخ التسجيل
    Jul 2008
    المشاركات
    2,274
    معدل تقييم المستوى
    0

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

    بسم الله ما شاء الله
    فعلا موضوع ممتاز...جزاك الله عنة خير.

    و لكن عندى استفسار بخصوص Microcode set هل هى تعليمات MMX و SEE و EM64T
    ام ماذا؟؟

  13. #13
    عضو محترف الصورة الرمزية شلاع العتر
    تاريخ التسجيل
    Nov 2007
    المشاركات
    11,465
    معدل تقييم المستوى
    92

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

    حفظك الله لنا أخي محمد ... وزادك فضلا وعلما ... بارك الله فيك .

    ما شاء الله أخي مقال يبدو انه ممتع فعلا ويحوي قدرا كبيرا من المعلومات لي عودة لقراءته .

  14. #14
    عضو برونزي
    تاريخ التسجيل
    Nov 2008
    المشاركات
    9,880
    معدل تقييم المستوى
    108

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

    ماشاء الله أخوي محمد شرح رائع الله يعطيك العافية
    [CENTER]Jiraiya-OUT[/CENTER]

  15. #15
    عضو فضي الصورة الرمزية Hameedo
    تاريخ التسجيل
    Sep 2008
    المشاركات
    830
    الدولة: Egypt
    معدل تقييم المستوى
    78

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



    اقتباس المشاركة الأصلية كتبت بواسطة havoc-M.D مشاهدة المشاركة
    لكن بفرض انه تم تصنيع معالج ARM وتم دعمه من قبل المبرمجين(مع ان هذا يتطلب مجهود شاق جدا وبالتالى سيعرقل عملية تطوير البرامج واكبر دليل على ذلك عدم الاستفادة الكاملة من معالجات cell التى تستخدم بالكونسولز حتى الان )ستكون النتيجة حينها مبهرة ولكن بعد فترة(وفى الغالب تكون قليلة)عندما يصدر معالج ARM جديد بزيادة عدد الانوية (وعدد المسجلات)لن يقدم اى زيادة فى الاداء لان البرامج ليس عندها دراية بالمسجلات الجديدة وذلك عكس ما تقدمه cisc حيث توجد وحدة لتوزيع المدخلات على المسجلات مهما كان عددها
    فهل تتفق معى فى هذه الفرضية؟
    ليس معني وجود وحدة التحكم التي تقوم بالتوزيع ، أن الأمور أصيحت سهلة ، فمع زيادة عدد الأنوية ، يزداد عدد وحدات التنفيذ (معالجات ضرب ، جمع .. ) أي يزداد عدد مسجلاتها ، وبدون وجود البرنامج الذي يدرك ذلك ويستفيد منه (بمعرفة العناوين الجديدة مثلا) ، لا يصبح من الممكن الاستفادة من تعدد الأنوية في CISC ، ولذلك تحتاج هذه المعمارية تطويعات في برامجها لتمكنها من الاستفادة من تعدد الأنوية .

    علي الجانب الآخر فان البرمجة لمعالجات ARM أصعب بطبيعتها ،ومع زيادة عدد الأنوية تزداد الصعوبة ، لكن ذلك لا يعني أنها مستحيلة ، يعني فقط أنها أصعب من تطويعات البرامج للعمل علي أنوية متعددة في CISC .

    هناك عدد من أنظمة التشغيل القياسية تدعم معالجات ARM ، مثل بعض اصدارات Linux ، والنظام القادم Chrome ، بالاضافة الي أنظمة تشغيل أخري خاصة بالهواتف النقالة .

    اقتباس المشاركة الأصلية كتبت بواسطة bika08 مشاهدة المشاركة

    و لكن عندى استفسار بخصوص Microcode set هل هى تعليمات MMX و SEE و EM64T
    ام ماذا؟؟
    الـ Microcode حاليا هو طاقم تعليمات المعالج كله ،وبدونه يتوقف المعالج عن العمل ، فكّر فيها علي أساس أن ال Microcode ، هذا هو عبارة عن معالج صغير ، وكأي معالج فانه يجب أن يحتوي علي تعليمات عتادية (طريقة توصيل أجزاؤه ببعض) ، تعليمات هذا المعالج لها غرض أو وظيفة واحدة ، وهي توزيع البيانات علي أجزاء المعالج المركزي المختلفة .

    فكأنني نقلت التعليمات من أجزاء المعالج المختلفة الي معالج الـ Microcode ، وهذا بالفعل ما قمنا به ، حيث تم تقليل تعليمات أجزاء المعالج (أي تقليل تعقيد اتصال الأجزاء ببعضها ) ، ونقل هذا التعقيد الي وحدة Microcode . واصبحت هذه الوحدة تحتوي علي معظم تعليمات X86 .

    وبخصوص تعليمات MMX ... ماهي الا عبارة عن اضافة وحدة معالجة خاصة بحسابات النقطة العائمة Floating Point ، تأتي هذه الوحدة بعدد 8 مسجلات ، كل مسجل بمساحة 80 بت .

    تعليمات SSE هي عبارة عن توسيع المسجّلات الخاصة بوحدة النقطة العائمة بحيث تأتي بمساحة 128 بت ، وفيما بعد تم اضافة 8 مسجلات جديدة عليها ، لبصبح العدد الكلي 16 .

    تعليمات EM64T ، هي مسمي أنيق لتعليمات X86-64 ، وهي نفس تعليمات X86 القديمة ، لكن تم توسيع مساحة المسجلات فيها الي 64 بت بدلا من 32 بت .

    _____________________________

    شكرا لكم اخواني علي المتابعة ..
    وقف الخلق ينظرون جميعا كيف أبنى قواعد المجد وحدى

    وبناة الأهرام فى سالف الدهر كفونى الكلام عند التحدى

    أنا تاج العلاء فى مفرق الشرق و دراته فرائد عقدى

    أى شئ فى الغرب قد بهر الناس جمالاِّ ولم يكن منه عندى


صفحة 1 من 5 1 2 3 4 5 الأخيرةالأخيرة

المواضيع المتشابهه

  1. هل فيه فروق بين i5-3550 و i5-3570k
    بواسطة momany في المنتدى الأرشيف
    مشاركات: 27
    آخر مشاركة: 16-09-2012, 21:59
  2. 7 فروق بين مصر وتونس
    بواسطة ™Phantom في المنتدى الأرشيف
    مشاركات: 19
    آخر مشاركة: 20-01-2011, 17:29
  3. هام- فروق أنواع ال dvd
    بواسطة momya في المنتدى الأرشيف
    مشاركات: 1
    آخر مشاركة: 10-01-2010, 00:15
  4. جدول ويضح فروق الأداء في معالجات Phenom™ X4 Quad Core Processors
    بواسطة MightySnake في المنتدى الأرشيف
    مشاركات: 0
    آخر مشاركة: 25-04-2008, 04:53

المفضلات

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •