5

मैं जानना चाहता हूं कि x64 प्रोसेसर के लिए कुशल कूद तालिकाओं को कैसे लिखना है, या तो सी, सी ++ या असेंबली में। इनपुट अग्रिम में जाना जाता है, लेकिन एल्गोरिदमिक भविष्यवाणी करना असंभव है। मान लीजिए कि मैं इनपुट स्ट्रीम में जितना चाहूं उतना आगे देख सकता हूं, क्या कोई तरीका है कि मैं गतिशील रूप से सीपीयू को बता सकता हूं जो अगली शाखा को संबोधित करने जा रहा है?मैं एक x64 CPU पर शाखा लक्ष्य को गतिशील रूप से कैसे संकेत दे सकता हूं?

अनिवार्य रूप से, मैं प्रोग्राम लक्ष्य रूप से शाखा लक्ष्य बफर अद्यतन करना चाहता हूं। लेकिन मैं किसी भी चीज के लिए बसूंगा जो मुझे उन मामलों में पाइपलाइन को फ्लश करने से बचने की इजाजत देता है जहां मैं प्रोग्रामर को पहले से पता चल जाता है जहां अगली शाखा डेटा देखकर जा रही है लेकिन प्रोसेसर इसे पिछले पैटर्न से निर्धारित नहीं कर सकता है।

साकार यह एक बहुत ही विशिष्ट प्रश्न है और मैं इसे ठीक से संप्रेषित करने के लिए विफल रहे हैं की संभावना हूँ, यहाँ कुछ वैकल्पिक phrasings हैं:

वहाँ एक 64 बराबर hbr सुझाव के लिए शाखा के लिए सेल प्रोसेसर पर है ?

क्या यह कभी भी असेंबली शाखा के मुकाबले एक असेंबली cmp को स्थानांतरित करने में मदद करता है जैसा कि यह इटेनियम के साथ किया गया था?

क्या अंतिम पते के बजाय एक रजिस्टर मूल्य के आधार पर अप्रत्यक्ष कूद का अनुमानित लक्ष्य है?

धन्यवाद!

उत्तर

1

यदि आप एक सटीक उत्तर नहीं ढूंढ पा रहे हैं, तो आप शाखा लक्ष्य बफर के बजाय वापसी पता पूर्वानुमानकर्ता का उपयोग करने में सक्षम हो सकते हैं। सामान्य तकनीक को संदर्भ थ्रेडिंग कहा जाता है, और विवरण Context Threading: A Flexible and Efficient Dispatch Technique for Virtual Machine Interpreters पेपर में पाया जा सकता है।

आपके लिए विचार होगा: यदि आप भविष्य में काफी दूर देख सकते हैं, प्रत्येक इनपुट के लिए जो नियंत्रण-प्रवाह परिवर्तन निर्धारित करता है, तो आप कुछ निष्पादन योग्य मेमोरी में एक ही प्रत्यक्ष call निर्देश को जेआईटी-संकलित/उत्सर्जित करते हैं। उदाहरण के लिए, यदि आपके पास इनपुट की दस इकाइयां थीं, तो आप 10 कॉल छोड़ देंगे।

निष्पादित होने पर, यह कोड अच्छी तरह से व्यवहार करेगा क्योंकि प्रत्येक कॉल किए गए फ़ंक्शन के रिटर्न पते अपरिवर्तनीय होंगे और सभी कॉल सीधे होंगी।

एक तरफ नोट, मैं एक सीपीयू आर्किटेक्चर व्यक्ति नहीं हूं, इसलिए मैं संभवतः चीजों को सरल बना रहा हूं, लेकिन सिद्धांत रूप में मुझे लगता है कि यह काम करना चाहिए।

संबंधित मुद्दे

 संबंधित मुद्दे