2012-08-13 22 views
9

कंप्यूटर आर्किटेक्चर में,अटकलें और भविष्यवाणी के बीच अंतर

(शाखा) भविष्यवाणी और अनुमान के बीच क्या अंतर है ??

ये बहुत समान दिखते हैं, लेकिन मुझे लगता है कि उनके बीच एक सूक्ष्म भेद है।

उत्तर

11

शाखा भविष्यवाणी प्रोसेसर द्वारा यह निर्धारित करने की कोशिश की जाती है कि सशर्त कूद के बाद निष्पादन कहां जारी रहेगा, ताकि यह स्मृति से अगले निर्देश (ओं) को पढ़ सके।

सट्टा निष्पादन एक कदम आगे जाता है और यह निर्धारित करता है कि परिणाम अगले निर्देशों को निष्पादित करने से क्या होगा। यदि शाखा की भविष्यवाणी सही थी, तो परिणाम का उपयोग किया जाता है, अन्यथा इसे त्याग दिया जाता है।

ध्यान दें कि कोड में वास्तविक सशर्त शाखा नहीं होने पर भी सट्टा निष्पादन लागू किया जा सकता है। प्रोसेसर कई निर्देशों से परिणाम निर्धारित कर सकता है जो आमतौर पर उत्तराधिकार में निष्पादित होते हैं, लेकिन निष्पादन को अंकगणित अतिप्रवाह बाधा द्वारा उदाहरण के लिए रोक दिया जा सकता है।

0

वैसे मैं प्रोग्रामिंग और कंप्यूटर विज्ञान के लिए एक नोब हूं, लेकिन यह मेरा निष्कर्ष है। इन 'तकनीकों' का उद्देश्य पाइपनेल को भरना, संसाधनों के अपशिष्ट को रोकना है। जब एक प्रोसेसर एक सशर्त परीक्षण निर्देश को एन्क्यूट करता है, तो आमतौर पर आप अगले निर्देश पर जाने से पहले स्थिति का परीक्षण होने तक प्रतीक्षा कर सकते हैं।

सट्टा निष्पादन में आप निर्देश को किसी भी तरह 'उम्मीद' निष्पादित करते हैं कि सशर्त परीक्षण पाइपलाइन को रोकने और संसाधनों को नुकसान पहुंचाने के बजाय सत्य था। अन्यथा आप केवल परिणामों को त्यागें।

शाखा भविष्यवाणी में आप एक कदम आगे जाते हैं और भविष्यवाणी करते हैं कि स्थिति सच्ची होगी या सशर्त परीक्षण के पिछले परिणामों के आधार पर नहीं। (आप भविष्यवाणी करेंगे कि आपका कार्यक्रम किस दिशा में जाएगा)।

आशा है कि चीजों को साफ़ कर दें। यहां से जानकारी प्राप्त हुई और एक कोर्स मैं इस सेमेस्टर ले रहा हूं। http://www.pcguide.com/ref/cpu/arch/int/featSpeculative-c.html

0

यदि आप अनुमान लगाकर कुछ करना चाहते हैं, तो आप सटीक रूप से भविष्यवाणी करने के अपने मौके को बढ़ा सकते हैं कि किस मार्ग पर अनुमान लगाया जा सकता है।

कुछ मामलों में, भविष्यवाणी छोटी है (उदाहरण के लिए अनुमान है कि भार/स्टोर segfault नहीं होगा)। अन्य मामलों में, यह कठिन है (शाखा भविष्यवाणी)।

किसी भी मामले में, यदि कोई अपवाद होता है तो आपको सट्टा गणना को वापस/फेंकने में सक्षम होना चाहिए।


यह भविष्यवाणी बिना सट्टा करने के लिए, अनुमान के आधार पर एक शाखा के दोनों दिशाओं से निर्देश को क्रियान्वित करने, और केवल लाइन है कि बाद में पाया गया सही रास्ते किया गया है से परिणाम रखकर संभव है।

वर्तमान हार्डवेयर शाखाओं के लिए इसका उपयोग नहीं करता है, लेकिन इसी तरह की चीज x86 निर्देशों के समानांतर डीकोडिंग जैसी चीजों के लिए बहुत छोटे स्थानीय पैमाने पर होती है। डिकोडर्स प्रत्येक संभावित निर्देश सीमा पर डीकोडिंग शुरू करते हैं, और केवल यह पता लगाते हैं कि पिछली निर्देश के डीकोड की लंबाई निर्धारित होने के बाद कौन सी प्रारंभ स्थिति सही थी।

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