الصفحة الرئيسية » howto » كيف تحسب سرعة المعالج على المعالجات متعددة النواة؟

    كيف تحسب سرعة المعالج على المعالجات متعددة النواة؟

    إن ظهور المعالجات متعددة النواحي الاقتصادية الاستهلاكية يثير السؤال بالنسبة للعديد من المستخدمين: كيف تحسب فعليًا السرعة الحقيقية لنظام متعدد النواة؟ هل نظام 3G-core 4-core فعلاً 12 جيجا هرتز؟ اقرأ في أثناء التحقيق.

    تأتي جلسة الأسئلة والأجوبة اليوم مقدمة من SuperUser-a subdivision of Stack Exchange ، وهي مجموعة مجتمعية للمواقع على شبكة الإنترنت Q & A.

    السؤال

    وكان قارئ SuperAser NReilingh فضول كيف يتم حساب سرعة المعالج لنظام متعدد النواة:

    هل من الصحيح أن نقول ، على سبيل المثال ، أن المعالج الذي يحتوي على أربعة نوى يعمل كل على 3GHz هو في الواقع معالج يعمل بسرعة 12 جيجاهرتز?

    لقد دخلت مرة واحدة في حجة "ماك مقابل الكمبيوتر الشخصي" (وهي بالمناسبة ليست محور هذا الموضوع ... الذي كان في المدرسة المتوسطة) مع أحد معارفه الذي أصر على أنه تم الإعلان عن أجهزة ماكينتوش فقط كآلات 1Ghz لأنها كانت مزدوجة كل معالج G4s يعمل بسرعة 500 ميجا هرتز.

    في ذلك الوقت كنت أعرف أن هذا هو هراء لأسباب أعتقد أنها واضحة لمعظم الناس ، لكنني رأيت للتو تعليق على هذا الموقع لتأثير "6 كورس × 0.2 جيجاهرتز = 1.2 غيغاهرتز" وهذا جعلني أفكر مرة أخرى فيما إذا كان هناك إجابة حقيقية لهذا.

    إذن ، هذا هو سؤال تقني فلسفي / عميق أكثر أو أقل حول دلالات حساب سرعة الساعة. أرى احتمالين:

    1. كل نواة تقوم في الواقع بحساب x في الثانية ، وبالتالي فإن العدد الإجمالي للحسابات هو x (النوى).
    2. سرعة الساعة هي بالأحرى عدد من الدورات التي يمر بها المعالج في مساحة ثانية ، طالما أن جميع النوى تعمل بنفس السرعة ، تبقى سرعة كل دورة على حالها بغض النظر عن عدد النوى الموجودة . وبعبارة أخرى ، هرتز = (core1Hz + core2Hz + ...) / النوى.

    إذن ما هي الطريقة المناسبة للدلالة على السرعة الكلية للساعة ، والأهم من ذلك ، أنه من الممكن استخدام تسميات السرعة أحادية المركز في نظام متعدد النواة?

    الاجابة

    المساهمون في SuperUser Mokubai يساعد على توضيح الأمور. هو يكتب:

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

    إذا كان لديك مهمة خطية بطبيعتها ويجب تنفيذها بدقة خطوة خطوة مثل (برنامج بسيط للغاية)

    10: a = a + 1
    20: غوتو 10 

    ثم تعتمد المهمة بشكل كبير على نتيجة التمريرات السابقة ولا يمكن تشغيل نسخ متعددة لنفسها دون إفساد قيمة 'ا' لأن كل نسخة ستحصل على قيمة 'ا' في أوقات مختلفة والكتابة مرة أخرى بشكل مختلف. هذا يحدّ من المهمة إلى خيط واحد ، وبالتالي لا يمكن تشغيل المهمة إلا على نواة واحدة في أي وقت ، إذا كان يتم تشغيلها على نوى متعددة ، فإن فساد التزامن سيحدث. هذا يحدها إلى 1/2 من وحدة المعالجة المركزية من نظام ثنائي النواة ، أو 1/4 في نظام رباعي النواة.

    الآن تأخذ مهمة مثل:

    10: a = a + 1
    20: ب = ب + 1
    30: c = c + 1
    40: د = د + 1
    50: غوتو 10 

    كل هذه الخطوط مستقلة ويمكن تقسيمها إلى 4 برامج منفصلة مثل الأولى وتشغيلها في نفس الوقت ، كل واحدة قادرة على الاستخدام الفعال للقوة الكاملة لواحدة من النوى دون أي مشكلة التزامن ، وهذا هو مكان قانون Amdahl يأتي في ذلك.

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

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

    إن حجة "6 نوى × 0.2 جيجاهرتز = 1.2 جيجا هرتز" هي هراء في كل المواقف باستثناء ما إذا كانت المهام متوازية ومستقلة تماما. هناك عدد كبير من المهام المتوازية للغاية ، ولكنها لا تزال تتطلب شكلاً من أشكال التزامن. فرملة اليد هي عبارة عن أداة ترميز فيديو جيدة جدًا في استخدام جميع وحدات المعالجة المركزية (CPUs) المتوفرة ولكنها تتطلب عملية أساسية للحفاظ على سلاسل المحادثات الأخرى مملوءة بالبيانات وجمع البيانات التي تم إجراؤها باستخدام.

    1. كل نواة تقوم في الواقع بحساب x في الثانية ، وبالتالي فإن العدد الإجمالي للحسابات هو x (النوى).

    كل نواة قادرة على القيام بحسابات x في الثانية ، على افتراض أن عبء العمل موازٍ مناسب ، على كل برنامج خطي ، كل ما لديك هو 1 قلب.

    1. سرعة الساعة هي بالأحرى عدد من الدورات التي يمر بها المعالج في مساحة ثانية ، طالما أن جميع النوى تعمل بنفس السرعة ، تبقى سرعة كل دورة على حالها بغض النظر عن عدد النوى الموجودة . وبعبارة أخرى ، هرتز = (core1Hz + core2Hz + ...) / النوى.

    أعتقد أنه من الخطأ الاعتقاد بأن 4 × 3Hz هرتز = 12 جيجا هرتز ، يمنح أعمال الرياضيات ، لكنك تقارن التفاح بالبرتقال والمعدلات غير صحيحة ، لا يمكن ببساطة إضافة GHz معًا لكل حالة. أود تغييره إلى 4 × 3 هرتز = 4 × 3 هرتز.

    هل لديك شيء تضيفه إلى الشرح؟ الصوت قبالة في التعليقات. هل ترغب في قراءة المزيد من الإجابات من مستخدمي Stack Exchange الآخرين المحترفين بالتكنولوجيا؟ تحقق من موضوع المناقشة الكامل هنا.