काल्पनिक निष्पादन

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

इसका उद्देश्य अतिरिक्त संसाधन (कंप्यूटर विज्ञान) उपलब्ध होने पर अधिक समवर्ती (कंप्यूटर विज्ञान) प्रदान करना है। इस दृष्टिकोण को विभिन्न क्षेत्रों में नियोजित किया जाता है, जिसमें निर्देश पाइपलाइन सीपीयू में शाखा भविष्यवक्ता, मूल्य क्षेत्र का शोषण करने के लिए मूल्य भविष्यवाणी, निर्देश प्रीफ़ेच और फाइल सिस्टम को प्रीफ़ेच करना है और रिलेशनल डेटाबेस प्रबंधन प्रणाली में आशावादी समवर्ती नियंत्रण सम्मिलित है।

काल्पनिक मल्टीथ्रेडिंग काल्पनिक निष्पादन का एक विशेष स्थिति है।

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

वेरिएंट
काल्पनिक गणना एक संबंधित पूर्व अवधारणा थी।

उत्सुक निष्पादन
उत्सुक निष्पादन काल्पनिक निष्पादन का एक रूप है जहां नियमित शाखा के दोनों पक्षों को निष्पादित किया जाता है; चूँकि परिणाम तभी प्रतिबद्ध होते हैं जब विधेय सत्य होता है। तो असीमित संसाधनों के साथ, उत्सुक निष्पादन (जिसे ओरेकल निष्पादन के रूप में भी जाना जाता है) सिद्धांत रूप में सही शाखा पूर्वानुमान के समान प्रदर्शन प्रदान करेगा। सीमित संसाधनों के साथ उत्सुक निष्पादन को सावधानीपूर्वक नियोजित किया जाना चाहिए, क्योंकि शाखा के प्रत्येक स्तर पर उत्सुकता से निष्पादित होने के साथ आवश्यक संसाधनों की संख्या में तेजी से वृद्धि होती है।

पूर्वानुमान निष्पादन
पूर्वानुमानित निष्पादन काल्पनिक निष्पादन का एक रूप है जहां कुछ परिणाम की पूर्वानुमान की जाती है और वास्तविक परिणाम ज्ञात होने तक निष्पादन अनुमानित पथ के साथ आगे बढ़ता है। यदि पूर्वानुमान सत्य है, तो पूर्वानुमानित निष्पादन को प्रतिबद्ध करने की अनुमति है; चूँकि यदि कोई गलत पूर्वानुमान है, तो निष्पादन को अनियंत्रित करना होगा और फिर से निष्पादित करना होगा। इसके सामान्य रूपों में शाखा भविष्यवक्ता और मेमोरी निर्भरता पूर्वानुमान सम्मिलित हैं। एक सामान्यीकृत रूप को कभी-कभी मूल्य पूर्वानुमान के रूप में जाना जाता है।

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

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

सुरक्षा कमियों
2017 से प्रारंभ होकर, सामान्य प्रोसेसर आर्किटेक्चर पर काल्पनिक निष्पादन के कार्यान्वयन में भेद्यता (कंप्यूटिंग) की एक श्रृंखला पाई गई, जिसने प्रभावी रूप से विशेषाधिकार (कंप्यूटिंग) के उन्नयन को सक्षम किया गया था।

इसमे सम्मिलित है:
 * पूर्वाभास (सुरक्षा भेद्यता)
 * मेल्टडाउन (सुरक्षा भेद्यता)
 * माइक्रोआर्किटेक्चरल डेटा सैंपलिंग
 * स्पेक्टर (सुरक्षा भेद्यता)
 * स्पॉइलर (सुरक्षा भेद्यता)
 * पॅकमैन (सुरक्षा भेद्यता)

यह भी देखें

 * आउट-ऑफ़-ऑर्डर निष्पादन
 * स्लिपस्ट्रीम (कंप्यूटर विज्ञान)
 * काल्पनिक मल्टीथ्रेडिंग
 * हार्डवेयर सुरक्षा बग
 * क्षणिक निष्पादन सीपीयू कमियां