हाइपर-थ्रेडिंग क्या है और यह कैसे काम करता है?


42

मैंने हाल ही में हाइपर-थ्रेडिंग शब्द को थोड़ा इधर-उधर फेंक दिया है, क्या वास्तव में हाइपर-थ्रेडिंग है और यह महत्वपूर्ण क्यों है?


जवाबों:


38

हाइपर-थ्रेडिंग वह जगह है जहां आपका प्रोसेसर 2 भौतिक प्रोसेसर कोर का दिखावा करता है, फिर भी केवल 1 और कुछ अतिरिक्त कबाड़ है।

हाइपरथ्रेडिंग की बात यह है कि कई बार जब आप प्रोसेसर में कोड निष्पादित कर रहे होते हैं, तो प्रोसेसर के कुछ हिस्से होते हैं जो निष्क्रिय होते हैं। सीपीयू रजिस्टरों के एक अतिरिक्त सेट को शामिल करके, प्रोसेसर कार्य कर सकता है जैसे कि इसमें दो कोर होते हैं और इस तरह प्रोसेसर के सभी हिस्सों को समानांतर में उपयोग किया जाता है। जब 2 कोर दोनों को प्रोसेसर के एक घटक का उपयोग करने की आवश्यकता होती है, तो निश्चित रूप से एक कोर समाप्त हो जाता है। यही कारण है कि यह दोहरे कोर और ऐसे प्रोसेसर को प्रतिस्थापित नहीं कर सकता है।


6
+1 को जोड़ना चाहिए कि हाइपर-थ्रेडिंग SMT के Intel के कार्यान्वयन के लिए विशिष्ट है जैसे SPARC प्रोसेसर में SMT कार्यान्वित का एक अलग रूप है लेकिन समान लक्ष्यों के साथ।
सिब्रॉन

@Earlz क्या आप सुझाव दे रहे हैं कि प्रोसेसर कोर को दो में विभाजित करके दो धागे चला रहा है? या ऐसा लगता है कि वास्तविकता में हाइपरथ्रेडिंग से बनी समानताएं प्रोसेसर को एक धागे से दूसरे में बदलने का कारण बन रही हैं?
डोपी डू

4
@DoopyDoo ना ही। मूल रूप से प्रोसेसर में दो "निष्पादन कोर" होते हैं, जो निर्देशों के लिए पाइप लाइन है और इस तरह और इसमें रजिस्टरों और अन्य आवश्यक चीजों के दो सेट भी हैं .. हालांकि हाइपर-थ्रेडिंग और नियमित दोहरे कोर के बीच अंतर यह है कि कुछ चीजें नहीं हैं दोहराया गया। उदाहरण के लिए, केवल एक ALU हो सकता है। तो, इसका मतलब यह होगा कि एक दोहरे कोर प्रोसेसर एक साथ एक ही समय में दो अलग-अलग संख्याओं को जोड़ सकता है, हाइपर-थ्रेडिंग प्रोसेसर के लिए वर्चुअल-कोर में से एक को तब तक करना होगा जब तक कि यह ALU के साथ चालू न हो जाए। बेशक, यह एक सरल उदाहरण है
अर्लज़

12

हाइपर-थ्रेडिंग वह जगह है जहां दो धागे एक एकल-थ्रेडेड कोर पर चलने में सक्षम हैं। जब प्रश्न में कोर पर एक थ्रेड स्टालिंग या रुक अवस्था में होता है, तो हाइपर-थ्रेडिंग कोर को इसके बजाय दूसरे थ्रेड पर काम करने में सक्षम बनाता है।

हाइपर-थ्रेडिंग से ओएस को लगता है कि प्रोसेसर में कोर की संख्या दोगुनी है, और अक्सर प्रदर्शन में सुधार होता है, लेकिन कुल मिलाकर केवल 15-30% के क्षेत्र में - हालांकि कुछ परिस्थितियों में, वास्तव में प्रदर्शन हिट हो सकता है (= <20%)।

वर्तमान में, अधिकांश एटम चिप्स और सभी i7 (और एक्सॉन-समतुल्य चिप्स) में हाइपर-थ्रेडिंग है, जैसा कि कुछ पुराने P4s थे। परमाणुओं के मामले में, बिजली की खपत में वृद्धि के बिना प्रदर्शन में सुधार करने के लिए यह एक हताश प्रयास है; i7s के मामले में, यह उन्हें i5 रेंज के चिप्स से अलग करता है।

जटिल प्रसंस्करण कार्य को HT से बहुत लाभ नहीं होगा, लेकिन कुछ निश्चित (सरल, अत्यधिक बहु-थ्रेडेड) कार्यों, जैसे वीडियो एन्कोडिंग, HT से लाभान्वित होते हैं। वास्तव में, इसमें बहुत कुछ नहीं है ...


95% सही है। यदि एक सामान्य कोर = A + B तो एक हाइपर-थ्रेडिंग कोर A + 2 x B की तरह अधिक है। वे दो थ्रेड्स को एक साथ निष्पादित कर सकते हैं जब तक कि दोनों थ्रेड्स को A. की आवश्यकता न हो
Vincent Vancalbergh

5

जब एक सिंगल कोर दोहरे कोर के रूप में कार्य कर सकता है

यह हाइपरथ्रेडिंग है

विस्तार से

इंटेल के कार्यान्वयन मल्टी-थ्रेडिंग को हाइपर-थ्रेडिंग टेक्नोलॉजी या HT प्रौद्योगिकी के रूप में जाना जाता है।

एचटी टेक्नॉलॉजी सॉफ्टवेयर के
दृष्टिकोण से, एक से अधिक तार्किक प्रोसेसर के रूप में , एकल प्रोसेसर को प्रदर्शित करती है । इससे ऑपरेटिंग सिस्टम और एप्लिकेशन कई प्रोसेसर को तार्किक प्रोसेसर पर शेड्यूल करने की अनुमति देते हैं क्योंकि
वे मल्टीप्रोसेसर सिस्टम पर होंगे।


हाइपरथ्रेडिंग एक एकल प्रोसेसर को एक साथ दो थ्रेड निष्पादित करने की अनुमति देता है, लेकिन सभी शर्तों पर नहीं।

हाइपरथ्रेडिंग एक प्रणाली के प्रदर्शन को दोगुना नहीं करता है, यह कुछ महत्वपूर्ण कार्यभार प्रकारों के लिए अधिक से अधिक थ्रूपुट के लिए अग्रणी निष्क्रिय संसाधनों का बेहतर उपयोग करके प्रदर्शन को बढ़ा सकता है। एक व्यस्त कोर के एक लॉजिकल प्रोसेसर पर चलने वाला एप्लिकेशन, थ्रूपुट के आधे से थोड़ा अधिक की उम्मीद कर सकता है जो यह एक गैर-हाइपरथ्रेडेड प्रोसेसर पर अकेले चलने के दौरान प्राप्त करता है। हाइपरथ्रेडिंग प्रदर्शन में सुधार अत्यधिक अनुप्रयोग-निर्भर हैं, और कुछ अनुप्रयोगों में हाइपरथ्रेडिंग के साथ प्रदर्शन में गिरावट देखी जा सकती है क्योंकि कई प्रोसेसर संसाधन (जैसे कैश) तार्किक प्रोसेसर के बीच साझा किए जाते हैं।

इंटेल हाइपर-थ्रेडिंग तकनीक से प्रत्येक कोर में दो लॉजिकल प्रोसेसर हो सकते हैं जो कोर के अधिकांश संसाधनों को साझा करते हैं, जैसे कि मेमोरी कैश और फ़ंक्शनल इकाइयाँ

मुख्य कार्य

हाइपरथ्रेडिंग पाइपलाइन में स्वतंत्र निर्देशों की संख्या में वृद्धि करना है; यह सुपरस्लेकर आर्किटेक्चर का लाभ उठाता है, जिसमें समानांतर में अलग-अलग डेटा पर कई निर्देश संचालित होते हैं

इंटेल का कहना है कि हाइपर-थ्रेडिंग अत्यधिक कुशल है क्योंकि यह उन संसाधनों का उपयोग करता है जो अन्यथा निष्क्रिय या कम हो जाएंगे।

लिंक:

विकिपीडिया
स्टैकऑवरफ्लो
मल्टी-कोर प्रोग्रामिंग डिजिटल_एडिशन पेज # 8

यहाँ छवि विवरण दर्ज करें

इंटेल इमेज


3

जो पहले से ही कहा गया है, उस पर विस्तार करने के लिए, हाइपरथ्रेडिंग का मतलब है कि एक एकल सीपीयू कोर दो अलग-अलग निष्पादन संदर्भों को बनाए रख सकता है और उनके बीच जल्दी से स्विच कर सकता है, प्रभावी रूप से एक हार्डवेयर स्तर पर दो कोर का अनुकरण करता है।

आपको सामान्य, एकल कोर की तुलना में बहु-थ्रेडेड वर्कलोड के लिए मामूली गति का लाभ मिलता है। हालांकि, यह दो स्वतंत्र कोर होने के लाभ के आसपास कहीं नहीं है। प्रदर्शन के संदर्भ में, आप इसे दो कोर के निकट प्रदर्शन के बजाय एक ही कोर पर बहु-थ्रेडेड प्रदर्शन में एक छोटे से बढ़ावा के रूप में सोचने के लिए सबसे अच्छा है। गति को बढ़ावा देने का आकार कार्यभार के अनुसार भिन्न होता है - वास्तव में कुछ वर्कलोड के लिए प्रदर्शन बूस्ट काफी सभ्य है।

हाइपरथ्रेडेड कोर में केवल एक मुख्य निष्पादन इकाई होती है, लेकिन एक सीपीयू के कुछ अन्य हिस्से प्रसंस्करण राज्य के प्रसंस्करण के लिए तैयार निर्देशों से जुड़े होते हैं और एक निष्पादन राज्य को बनाए रखते हैं।

प्रोसेसर कोर में एक निर्देश पाइपलाइन है - जिसे निष्पादित करने के लिए भविष्य के निर्देशों की एक कतार है, जिसे लगातार अपडेट किया जा रहा है, सीपीयू के लिए उस कतार के प्रमुख पर निर्देश को निष्पादित करने के लिए तैयार है। सीपीयू इन भविष्य के निर्देशों को देखकर निष्पादन की गति को अनुकूलित करने के लिए इनका उपयोग करते हैं और उन पर कुछ सरल, निम्न-स्तरीय प्री-प्रोसेसिंग करते हैं जहां संभव हो (इस तरह के अनुकूलन में "ऑर्डर निष्पादन से बाहर" और "शाखा भविष्यवाणी" शामिल हैं)।

हाइपरथ्रेडेड कोर में दोहरी निर्देश पाइपलाइन हैं, और यह - रजिस्टरों के दूसरे सेट के साथ - जहां आपको मल्टीथ्रेडेड वर्कलोड के लिए गति का लाभ मिलता है। धागा संदर्भों के बीच स्विचिंग पाइपलाइन या रजिस्टरों को बाहर नहीं फेंकती है, और दूसरे धागे के लिए पाइपलाइन और रजिस्टर तैयार रहता है और "गर्म" होता है, ताकि उन्हें तुरंत स्विच और उपयोग किया जा सके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.