सबसे पहले, कीलन की टिप्पणी और टर्बो जे के जवाब के रूप में, माप 113,093 Dhrystone MIPS देशी MIPS नहीं था ।
I7 3630QM का आइवी ब्रिज माइक्रोआर्किटेक्चर प्रति चक्र केवल 4 फ्यूज़्ड ,ops कर सकता है, हालांकि यह प्रति चक्र 6 perops का निष्पादन शुरू कर सकता है। (कोड के एक ट्रेस में फ्यूज किए गए usedops की संख्या लगभग निर्देशों की संख्या के बराबर है; कुछ जटिल निर्देशों को कई intoops में डिकोड किया जाता है जो फ्यूज़ नहीं किए जाते हैं और कुछ जोड़े गए निर्देशों को एक एकल intoop में फ्यूज किया जा सकता है, उदाहरण के लिए, तुरंत तुलना करें एक सशर्त कूद के बाद।)
एक चक्र में कई निर्देशों को कैसे निष्पादित किया जा सकता है, इस पर आपके दो अनुमान काफी मान्य हैं और वास्तविक प्रोसेसर में उपयोग किए गए हैं। आपकी पहली अटकल, कि एक तेज़ आंतरिक घड़ी का उपयोग किया जाता है, का उपयोग मूल पेंटियम 4 के "फायरबॉल" ALUs में किया गया था। इन ALU को बाकी कोर की आवृत्ति से दो बार देखा गया, जो पहले से ही अपेक्षाकृत अधिक था।
(यह एक कंपित ALU का उपयोग करके पूरा किया गया था जिसमें एक जोड़ के निचले आधे हिस्से को एक चक्र में किया गया था, जो कि एक आश्रित ऑपरेशन को अगले चक्र में परिणाम के निचले आधे हिस्से का उपयोग करने की अनुमति देता है। ऐड, एक्सोर या लेफ्ट शिफ्ट जैसे संचालन के लिए। जिसके परिणामस्वरूप परिणाम के पूर्ण निचले आधे हिस्से का उत्पादन करने के लिए केवल आधे आधे ऑपरेंड्स की आवश्यकता होती है, जैसे चौंका देने वाला - जिसे चौड़ाई-पाइपलाइनिंग के रूप में भी जाना जाता है - एकल चक्र परिणाम विलंबता के साथ-साथ एकल चक्र थ्रूपुट की अनुमति देता है।)
हाइपरस्पार्क द्वारा कुछ हद तक संबंधित तकनीक का उपयोग किया गया, जिसे ALUs कहा जाता है। HyperSPARC ने दो ALU से परिणामों को एक तीसरे ALU में खिलाया। इसने दो स्वतंत्र और एक एकल चक्र में तीसरे आश्रित संचालन को निष्पादित करने की अनुमति दी।
आपकी अटकलें कि "प्रति कोर में कई समवर्ती पाइपलाइन हैं" दूसरी तकनीक है जिसका उपयोग किया गया है। इस तरह के डिज़ाइन को सुपरस्लेकर कहा जाता है और अब तक एक ही चक्र में निष्पादित संचालन की संख्या बढ़ाने का सबसे सामान्य साधन है।
वहाँ भी कुछ अन्य बाधाओं और अनुदेश निष्पादन के सिरों कि ध्यान देने योग्य हो सकता है। कुछ कार्यों को सामान्य निष्पादन इकाइयों के बाहर अधिक कुशलता से किया जा सकता है। मूव एलिमिनेशन की तकनीक रजिस्टर रीनेमिंग के दौरान मूव ऑपरेशंस करने के लिए आउट-ऑफ-ऑर्डर प्रोसेसर में रजिस्टर रीनेमिंग के उपयोग का फायदा उठाती है; इस कदम को नाम बदलने की मेज में एक स्थान से भौतिक रजिस्टर संख्या की प्रतिलिपि बनाता है (जिसे एक रजिस्टर उपनाम तालिका कहा जाता है) दूसरे में। यह न केवल प्रभावी ढंग से निष्पादन की चौड़ाई बढ़ाता है, बल्कि यह एक निर्भरता को भी हटाता है। इस तकनीक का उपयोग स्टैक-आधारित x87 के साथ जल्दी किया गया था, लेकिन अब इसका व्यापक रूप से इंटेल के उच्च प्रदर्शन x86 प्रोसेसर में उपयोग किया जाता है। (विनाशकारी, दो-ऑपरेंड निर्देशों का x86 में उपयोग एक विशिष्ट RISC की तुलना में उन्मूलन को अधिक सहायक बनाता है।)
उन्मूलन को स्थानांतरित करने के लिए इसी तरह की तकनीक का नाम बदलने के दौरान रजिस्टर शून्य निर्देश का संचालन है। एक पंजीकृत नाम प्रदान करके जो शून्य मान प्रदान करता है, एक रजिस्टर समाशोधन निर्देश (जैसे xor या दोनों ऑपरेंड एक ही रजिस्टर होने के साथ घटाना) बस उस नाम को नाम बदलने की तालिका (RAT) में सम्मिलित कर सकते हैं।
कुछ x86 प्रोसेसर द्वारा उपयोग की जाने वाली एक और तकनीक पुश और पॉप ऑपरेशन की लागत को कम करती है। आमतौर पर स्टैक पॉइंटर का उपयोग करने वाले एक निर्देश को स्टैक पॉइंटर के मान को अपडेट करने के लिए पिछले पुश या पॉप के लिए एक पूर्ण चक्र का इंतजार करना होगा। स्टैक पॉइंटर में केवल एक छोटे से मूल्य को जोड़ने या घटाने के लिए उस धक्का और पॉप को पहचानकर, समानांतर में कई अतिरिक्त / घटाव के परिणामों की गणना की जा सकती है। जोड़ के लिए मुख्य देरी का प्रसार है, लेकिन छोटे मूल्यों के साथ आधार मूल्य के अधिक महत्वपूर्ण बिट्स - इस मामले में स्टैक पॉइंटर - केवल एक कैरी-इन पर होगा। यह कैरी-चुने हुए योजक के समान एक अनुकूलन की अनुमति देता है जो छोटे मूल्यों के कई परिवर्धन पर लागू होता है। इसके अलावा, चूंकि स्टैक पॉइंटर आमतौर पर केवल स्थिरांक द्वारा अद्यतन किया जाता है,
निर्देशों को एक एकल, अधिक जटिल ऑपरेशन में मर्ज करना भी संभव है। जबकि निर्देश को कई में विभाजित करने की रिवर्स प्रक्रिया, सरल ऑपरेशन एक पुरानी तकनीक है, निर्देश विलय (जो इंटेल शब्द मैक्रो-ऑप फ्यूजन है) कार्यान्वयन को निर्देश सेट में उजागर की तुलना में अधिक जटिल संचालन का समर्थन करने की अनुमति दे सकता है।
सैद्धांतिक पक्ष पर, अन्य तकनीकों का प्रस्ताव किया गया है। आरएटी में शून्य के अलावा अन्य छोटे स्थिरांक का समर्थन किया जा सकता है और ऐसे छोटे मूल्यों का उपयोग या मज़बूती से काम करने वाले कुछ सरल कार्यों को जल्दी से संभाला जा सकता है। ("फिजिकल रजिस्टर इनलाइनिंग", मिको एच। लिपिस्टी एट अल।, 2004 ने आरएटी का उपयोग रजिस्टर गिनती को कम करने के साधन के रूप में करने का सुझाव दिया था, लेकिन यह विचार छोटे संख्याओं पर लोडिंग के लिए तत्काल और सरल ऑपरेशन का समर्थन करने के लिए बढ़ाया जा सकता है।)
ट्रेस कैश के लिए (जो नियंत्रण प्रवाह की विशेष मान्यताओं के तहत निर्देशों के भंडार को संग्रहीत करता है), शाखाओं द्वारा अलग किए गए कार्यों को मर्ज करने और ट्रेस में अप्रयुक्त परिणामों को उत्पन्न करने वाले कार्यों को हटाने के अवसर हो सकते हैं। एक ट्रेस कैश में ऑप्टिमाइज़ेशन का कैशिंग भी निर्देशन मर्जिंग जैसे अनुकूलन प्रदर्शन को प्रोत्साहित कर सकता है जो कि सार्थक नहीं हो सकता है यदि उन्हें हर बार निर्देश स्ट्रीम प्राप्त करना था।
मान भविष्यवाणी का उपयोग उन कार्यों की संख्या बढ़ाने के लिए किया जा सकता है जिन्हें निर्भरता को हटाकर समानांतर में निष्पादित किया जा सकता है। एक कदम आधारित मूल्य कारक है समान एक विशेष ढेर इंजन पहले उल्लेख किया है की पॉप / धक्का अनुकूलन करने के लिए। यह क्रमिकता को हटाते हुए, बहुधा समानांतर में कई परिवर्धन की गणना कर सकता है। मूल्य भविष्यवाणी का सामान्य विचार यह है कि अनुमानित मूल्य के साथ, निर्भर संचालन बिना देरी के आगे बढ़ सकते हैं। (शाखा दिशा और लक्ष्य भविष्यवाणी प्रभावी रूप से मूल्य भविष्यवाणी का सिर्फ एक बहुत ही सीमित रूप है, जिससे निम्नलिखित निर्देशों को प्राप्त करने की अनुमति मिलती है, जो शाखा के "मूल्य" पर निर्भर हैं या नहीं- और अगले अनुदेश का पता, दूसरा मूल्य।)