शाखा पूर्वानुमान (Branch Prediction)
शाखा पूर्वानुमान एक पाइपलाइन प्रोसेसर को शाखा के परिणाम और लक्ष्य का अनुमान लगाने की सुविधा देता है, इससे पहले कि वह हल हो जाए, ताकि वह रुकने के बजाय संभावित पथ के साथ निर्देशों को लाना और निष्पादित करना जारी रख सके।
Definition
शाखा पूर्वानुमान एक सूक्ष्म-वास्तुशिल्प तकनीक है जो यह अनुमान लगाती है कि एक सशर्त शाखा ली जाएगी या नहीं और वह कहाँ जाएगी, जिससे प्रोसेसर अनुमानित पथ के साथ निर्देशों को अनुमानतः लाने और निष्पादित करने में सक्षम होता है और यदि पूर्वानुमान गलत साबित होता है तो उस कार्य को छोड़ देता है।
Scope
यह विषय नियंत्रण प्रवाह का अनुमान लगाने की तकनीकों को शामिल करता है: स्थैतिक पूर्वानुमान, शाखा इतिहास पर आधारित गतिशील भविष्यवक्ता (एक- और दो-बिट काउंटर, सहसंबंधी और टूर्नामेंट भविष्यवक्ता), शाखा लक्ष्य बफर, और गलत पूर्वानुमान की लागत। यह बताता है कि कैसे पूर्वानुमान गहरी पाइपलाइन और अटकलों को सक्षम बनाता है। इसमें व्यापक सट्टा-निष्पादन मशीनरी और रिकवरी (आउट-ऑफ-ऑर्डर निष्पादन) और मूल नियंत्रण खतरा (पाइपलाइनिंग और खतरे) शामिल नहीं हैं।
Core questions
- शाखाएँ गहरी पाइपलाइनों को क्यों रोकती हैं, और पूर्वानुमान कैसे मदद करता है?
- गतिशील भविष्यवक्ता सटीकता में सुधार के लिए शाखा इतिहास का उपयोग कैसे करते हैं?
- शाखा लक्ष्य बफर क्या है और यह क्या प्रदान करता है?
- गलत पूर्वानुमान का दंड क्या है, और इसे कैसे ठीक किया जाता है?
Key concepts
- स्थैतिक बनाम गतिशील पूर्वानुमान
- एक- और दो-बिट संतृप्त काउंटर
- शाखा इतिहास और सहसंबंध
- टूर्नामेंट भविष्यवक्ता
- शाखा लक्ष्य बफर
- गलत पूर्वानुमान दंड
- सट्टा लाना
Key theories
- इतिहास-आधारित गतिशील पूर्वानुमान
- शाखा के परिणाम अपने स्वयं के और अन्य शाखाओं के पिछले व्यवहार से अत्यधिक सहसंबंधित होते हैं; संतृप्त काउंटरों में इतिहास दर्ज करने वाले और स्थानीय और वैश्विक इतिहास (सहसंबंधी और टूर्नामेंट भविष्यवक्ता) को संयोजित करने वाले भविष्यवक्ता बहुत उच्च सटीकता प्राप्त करते हैं।
Mechanisms
एक भविष्यवक्ता शाखा की दिशा का अनुमान लगाने के लिए इतिहास से परामर्श करता है और उसके लक्ष्य का अनुमान लगाने के लिए एक शाखा लक्ष्य बफर का उपयोग करता है, जिससे फ्रंट एंड अनुमानतः लाना जारी रख सकता है। दो-बिट संतृप्त काउंटर प्रति शाखा हाल के परिणामों को ट्रैक करते हैं; सहसंबंधी भविष्यवक्ता वैश्विक इतिहास जोड़ते हैं; टूर्नामेंट भविष्यवक्ता स्थानीय और वैश्विक योजनाओं के बीच गतिशील रूप से चयन करते हैं। गलत पूर्वानुमान पर, अनुमानित निर्देशों को रद्द कर दिया जाता है और सही पते पर लाना फिर से शुरू होता है, जिससे पाइपलाइन की गहराई के अनुपात में दंड लगता है।
Clinical relevance
आधुनिक गहरी, चौड़ी पाइपलाइनों के लिए सटीक शाखा पूर्वानुमान आवश्यक है: गलत पूर्वानुमानों में कई चक्रों की लागत आने के कारण, उच्च प्रदर्शन बनाए रखने के लिए 95 प्रतिशत से अधिक सटीकता वाले भविष्यवक्ताओं की आवश्यकता होती है। शाखा पूर्वानुमान संरचनाएं सुरक्षा-प्रासंगिक भी हो गई हैं, क्योंकि उनका सट्टा व्यवहार स्पेक्टर जैसे क्षणिक-निष्पादन हमलों का आधार है।
History
सरल स्थैतिक और एक-बिट गतिशील भविष्यवक्ताओं ने दो-बिट संतृप्त काउंटरों को रास्ता दिया, फिर 1990 के दशक की शुरुआत में सहसंबंधी और दो-स्तरीय अनुकूली भविष्यवक्ताओं को, और उच्च-प्रदर्शन कोर में टूर्नामेंट और तंत्रिका-शैली भविष्यवक्ताओं को। जैसे-जैसे पाइपलाइन गहरी होती गईं, गलत पूर्वानुमान दंड को सहनीय रखने के लिए भविष्यवक्ता की परिष्कारता तदनुसार बढ़ती गई।
Key figures
- James E. Smith
- Yale Patt
- Tse-Yu Yeh
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- patterson2020
Frequently asked questions
- जब किसी शाखा का गलत पूर्वानुमान लगाया जाता है तो क्या होता है?
- प्रोसेसर ने गलत पथ पर निर्देशों को अनुमानतः लाया और आंशिक रूप से निष्पादित किया है। गलत पूर्वानुमान का पता चलने पर, यह उस सट्टा कार्य को छोड़ देता है (रद्द कर देता है) और सही लक्ष्य से लाना फिर से शुरू करता है, जिससे पाइपलाइन कितनी गहरी है, उसके लगभग आनुपातिक दंड का भुगतान करना पड़ता है।
- आधुनिक शाखा भविष्यवक्ता कितने सटीक हैं?
- आधुनिक गतिशील भविष्यवक्ता आमतौर पर स्थानीय और वैश्विक शाखा इतिहास को मिलाकर सामान्य कार्यभार पर 95 प्रतिशत से अधिक सटीकता प्राप्त करते हैं। यह उच्च सटीकता ही गहरी, चौड़ी पाइपलाइनों को सार्थक बनाती है, क्योंकि प्रत्येक गलत पूर्वानुमान सट्टा कार्य के कई चक्रों को बर्बाद करता है।