हाइपरथ्रेडिंग दोहरे कोर होने का एक सस्ता और धीमा विकल्प है
इंटेल मैनुअल माप 3 प्रणाली गाइड प्रोग्रामिंग - 325384-056US सितंबर 2015 8.7 "इंटेल हाइपर-थ्रेडिंग टेक्नोलॉजी वास्तुकला" हिंदुस्तान टाइम्स संक्षिप्त वर्णन करता है। इसमें निम्नलिखित चित्र शामिल हैं:
TODO यह वास्तविक अनुप्रयोगों में औसत से कितने प्रतिशत कम है?
हाइपरथ्रेडिंग संभव है क्योंकि आधुनिक एकल सीपीयू कोर पहले से ही निर्देश पाइपलाइन के साथ एक साथ कई निर्देश निष्पादित करते हैं https://en.wikipedia.org/wiki/Instruction_pipelining
निर्देश पाइपलाइन एक कोर के अंदर कार्यों का एक पृथक्करण है यह सुनिश्चित करने के लिए कि सर्किट के प्रत्येक भाग का उपयोग किसी भी समय किया जाता है: मेमोरी पढ़ना, डिकोडिंग निर्देश, निर्देश निष्पादित करना, आदि।
हाइपरथ्रेडिंग का उपयोग करके कार्यों को अलग करता है:
एक एकल बैकएंड, जो वास्तव में अपनी पाइपलाइन के साथ निर्देशों को चलाता है।
दोहरे कोर में दो बैकएंड हैं, जो अधिक लागत और प्रदर्शन की व्याख्या करते हैं।
दो सामने समाप्त होता है, जो निर्देश की दो धाराओं ले सकते हैं और एक तरह से उन्हें ऑर्डर से परहेज द्वारा एकल बैकएंड के उपयोग को अधिकतम करने के pipelining खतरों ।
डुअल कोर में 2 फ्रंट-एंड, प्रत्येक बैकएंड के लिए एक होगा।
ऐसे किनारे मामले हैं जहां अनुदेश पुन: व्यवस्थित करने से कोई लाभ नहीं होता है, जिससे हाइपरथ्रेडिंग बेकार हो जाता है। लेकिन यह औसत में एक महत्वपूर्ण सुधार पैदा करता है।
एक ही कोर में दो हाइपरथ्रेड आगे कैश स्तर साझा करते हैं (TODO कितने? L1?) दो अलग-अलग कोर की तुलना में, जो केवल L3 साझा करते हैं, देखें:
प्रत्येक हाइपरथ्रेड जो ऑपरेटिंग सिस्टम को उजागर करता है वह वास्तविक कोर के समान है, और दोनों को अलग से नियंत्रित किया जा सकता है। इस प्रकार cat /proc/cpuinfo
मुझे 4 प्रोसेसर दिखाते हैं, भले ही मेरे पास केवल 2 हाइपरथ्रेड्स वाले 2 कोर हैं।
हालाँकि ऑपरेटिंग सिस्टम यह जानने का लाभ उठा सकते हैं कि किसी एक कोर पर दिए गए प्रोग्राम के कई थ्रेड्स चलाने के लिए कौन से हाइपरथ्रेड्स एक ही कोर पर हैं, जिससे कैश उपयोग में सुधार हो सकता है।
इस LinusTechTips वीडियो में एक हल्की-फुल्की गैर-तकनीकी व्याख्या है: https://www.youtube.com/watch?v=wnS50lJicXc