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

StackOverflow https://stackoverflow.com/questions/916048

سؤال

لقد كنت أراها في الأدبيات لبعض من وحدة المعالجة المركزية الأحدث مثل Intel Xeon "Nehalem-ex" كما وجود 8 النوى و 16 خيوط. ما الذي يتحدثون عنه هنا؟ رأيت ذكر ذلك في المرجع، لذا فإن Sparcs أيضا، بالتأكيد ليس هذا هو نوع المواضيع المنطقية التي تم إنتاجها بواسطة الرمز؟ هل هذا يعيد اسمه hyperthreading؟

هل كانت مفيدة؟

المحلول

نعم، nehalem- مقرها تنفيذ المعالجات خيوط فرط.

NEHALEM-EX الجديد الذي تشير إليه لديه 8 نوى مادية حيث يمكن أن ينظر إليه كل جو من النواة المنطقية كإجمالي من 16 نوى منطقية، مما يسمح بتنفيذ 16 مؤشر ترابط تطبيقات على معالج واحد.

هذه هي نفس التكنولوجيا المستخدمة في معالجات Pentium 4 التي تم تدعي الخيوط المفرطة، والمؤخرا في معالجات الذرة. يحتوي جهاز الكمبيوتر الشخصي EEE الخاص بي على معالج ATOM واحد من نوعه الذي يحتوي على نظريين منطقيين - سيظهر إدارة مهام Windows بيانيا CPU؛ واحد لكل قلب منطقي.

شمس ultrasparc t2. (و T1) السماح أيضا ب متعدد المركبات في وقت واحد (من أي تطبيق Intel يسمى Hyper-Threading - علامة تجارية في Intel) والتي تسمح بتحديد نواة واحدة لتظهر كآلات منطقية متعددة لتنفيذ مؤشرات ترابط متعددة على أساس واحد.

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

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

إذن ماذا يعني بالنسبة للمبرمجين؟

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

حتى مع تعدد مؤثرات متزامنة، يتم تنفيذ التعليمات البرمجية في موضوع واحد لكل كور منطقي.

نصائح أخرى

متطرف من المعالج متعدد الخيوط هو معالج برميل. هذا هو شكل من أشكال SMT حيث يقسم المعالج فتحات بين مؤشرات الترابط المتعددة بنفس القدر بطريقة روبن مستديرة. للقيام بذلك، فإنه يحتاج فقط إلى نسخ من السجلات المختلفة أثناء استخدام نفس مجموعة وحدات التنفيذ. لذلك، في 4 دورات على مدار الساعة سوف تضع التعليمات البرمجية من المواضيع 0-3 في خط الأنابيب.

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

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

هكذا عمل مؤشرات الترابط متعددة في الأجهزة.

إنه لم يتم إعادة تسميته بخيوط Hyper-Reading - إنه خيوط فرط (مكتوب على صفحة الويب هذه أعطيت الرابط إليه).

ببساطة، يخبر المعالج نظام التشغيل أنه يحتوي على 16 النوى، بحيث يمكن تحقيق التوازن بين المهام على العدد المضاعف من النوى. توفر تقنية Hyper-Threading Technology بعض الفائدة في بعض الحالات تعليمتين مختلفتين من برامج / مواضيع مختلفة يمكن تنفيذها على أساس واحد في وقت واحد. ولكن بالتأكيد لن تعطي 200٪ تسريع. لم أعمل على هذا المعالج، لكنني أعتقد أنه يمكنك الحصول على حوالي 10٪ -20٪ وقت وحدة المعالجة المركزية الإضافية.

الأمر متروك لنموذج خيوط نظام التشغيل لتعيين مؤشرات الترابطات على مستوى نظام التشغيل إلى مؤشرات الترابط على مستوى الأجهزة مثل تلك الموصوفة في السؤال.

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

يتيح Hyperthreading (علامة تجارية Intel بالمناسبة) لكل مؤشر ترابط لتشغيلها في وقت واحد. لذلك في هذه الحالة، يمكنك تشغيل مواضيع تطبيق 8X2 في نفس الوقت.

من الكتيب ...

Intel Nehalem Architecture بنيت على عملية تكنولوجيا Intel الفريدة من فريدة من 45nm

 Up to **8 cores** per processor
 Up to **16 threads per processor** with Intel® Hyper-threading
 2.3 billion transistors

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

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

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

كريس

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top