इंस्ट्रक्शन सेट एक्सटेंशन
इंस्ट्रक्शन सेट एक्सटेंशन एक आधार आर्किटेक्चर में नए इंस्ट्रक्शन जोड़ते हैं — वेक्टर और SIMD गणित, क्रिप्टोग्राफी, एटॉमिक ऑपरेशंस, या अन्य विशेष कार्यों के लिए — मौजूदा सॉफ्टवेयर के साथ संगतता बनाए रखते हुए क्षमता का विस्तार करते हैं।
Definition
एक इंस्ट्रक्शन सेट एक्सटेंशन अतिरिक्त इंस्ट्रक्शनों का एक सेट है जिसे नई कार्यक्षमता प्रदान करने के लिए एक आधार इंस्ट्रक्शन सेट आर्किटेक्चर पर स्तरित किया जाता है — सामान्यतः डेटा-समानांतर, क्रिप्टोग्राफिक, या एटॉमिक ऑपरेशंस — जबकि मौजूदा इंस्ट्रक्शन और बाइनरी संगतता को बरकरार रखा जाता है।
Scope
यह विषय बताता है कि इंस्ट्रक्शन सेट वैकल्पिक या अनिवार्य एक्सटेंशन के माध्यम से समय के साथ कैसे बढ़ते हैं: डेटा समानांतरता के लिए SIMD और वेक्टर एक्सटेंशन, क्रिप्टोग्राफिक और बिट-मैनिपुलेशन इंस्ट्रक्शन, एटॉमिक और सिंक्रोनाइज़ेशन प्रिमिटिव, और RISC-V जैसे ISA के मॉड्यूलर एक्सटेंशन मॉडल। यह संगतता को तोड़े बिना ISA का विस्तार करने के लक्ष्यों और बाधाओं पर विचार करता है। इसमें इन इंस्ट्रक्शनों (SIMD और वेक्टर प्रोसेसर) को निष्पादित करने वाले अंतर्निहित समानांतर हार्डवेयर और आधार एन्कोडिंग योजना (इंस्ट्रक्शन प्रारूप और एन्कोडिंग) शामिल नहीं हैं।
Core questions
- इंस्ट्रक्शन सेट को फिर से डिज़ाइन करने के बजाय विस्तारित क्यों किया जाता है?
- मौजूदा कोड को तोड़े बिना एक्सटेंशन को एक निश्चित एन्कोडिंग स्थान में कैसे फिट किया जाता है?
- किस प्रकार के ऑपरेशंस सामान्यतः समर्पित एक्सटेंशन को उचित ठहराते हैं?
- एक मॉड्यूलर एक्सटेंशन मॉडल कार्यान्वयन को केवल उन सुविधाओं को शामिल करने की अनुमति कैसे देता है जिनकी उन्हें आवश्यकता है?
Key concepts
- SIMD एक्सटेंशन
- वेक्टर एक्सटेंशन
- क्रिप्टोग्राफिक इंस्ट्रक्शन
- एटॉमिक और सिंक्रोनाइज़ेशन इंस्ट्रक्शन
- मॉड्यूलर और वैकल्पिक एक्सटेंशन
- पिछली संगतता
- ऑपकोड स्पेस प्रबंधन
Mechanisms
एक्सटेंशन पहले से अप्रयुक्त ऑपकोड स्थान का दावा करते हैं और नए इंस्ट्रक्शन, रजिस्टर या स्थिति को परिभाषित करते हैं। सॉफ्टवेयर रन टाइम पर उपलब्ध एक्सटेंशन का पता लगाता है (उदाहरण के लिए फीचर फ्लैग के माध्यम से) और अनुकूलित कोड पथों पर भेजता है। SIMD और वेक्टर एक्सटेंशन विस्तृत रजिस्टर और कई डेटा तत्वों पर एक इंस्ट्रक्शन लागू करने वाले ऑपरेशंस जोड़ते हैं; RISC-V जैसे मॉड्यूलर ISA एक छोटे आधार और वैकल्पिक एक्सटेंशन के एक मेनू को मानकीकृत करते हैं जिन्हें कार्यान्वयनकर्ता संयोजित करते हैं।
Clinical relevance
एक्सटेंशन वह तरीका है जिससे इंस्ट्रक्शन सेट अपने सॉफ्टवेयर इकोसिस्टम को छोड़े बिना नए वर्कलोड के साथ तालमेल बिठाते हैं। x86 SSE/AVX और ARM NEON जैसे SIMD परिवार मल्टीमीडिया, वैज्ञानिक और मशीन-लर्निंग कर्नेल को गति देते हैं; क्रिप्टोग्राफिक एक्सटेंशन एन्क्रिप्शन को तेज करते हैं; और मॉड्यूलर एक्सटेंशन एक ही ISA को छोटे माइक्रोकंट्रोलर से सुपरकंप्यूटर तक स्केल करने देते हैं।
History
SIMD एक्सटेंशन 1990 के दशक के अंत में Intel के MMX और SSE और बाद में AVX, और ARM के NEON के साथ मुख्यधारा के CPU में प्रवेश कर गए। क्रिप्टोग्राफी और, हाल ही में, मशीन लर्निंग के लिए विशेष एक्सटेंशन इसके बाद आए। RISC-V ISA, जिसे शुरू से ही एक न्यूनतम आधार और मानकीकृत वैकल्पिक एक्सटेंशन के आसपास डिज़ाइन किया गया था, ने मॉड्यूलर एक्सटेंशन मॉडल को स्पष्ट और केंद्रीय बना दिया।
Key figures
- John L. Hennessy
- David A. Patterson
- Krste Asanović
Related topics
Seminal works
- hennessy2019
- patterson2020
Frequently asked questions
- कार्यक्रम एक ऐसे एक्सटेंशन का उपयोग कैसे करते हैं जो हर प्रोसेसर में नहीं होता है?
- सॉफ्टवेयर रन टाइम पर पता लगाता है कि प्रोसेसर कौन से एक्सटेंशन का समर्थन करता है, आमतौर पर फीचर फ्लैग को क्वेरी करके, और जब एक्सटेंशन मौजूद होता है तो एक अनुकूलित कोड पथ का चयन करता है या अन्यथा आधार इंस्ट्रक्शनों पर वापस आ जाता है, जिससे हार्डवेयर में शुद्धता बनी रहती है।
- RISC-V के मॉड्यूलर होने का क्या मतलब है?
- RISC-V एक छोटा अनिवार्य आधार पूर्णांक इंस्ट्रक्शन सेट और मानकीकृत वैकल्पिक एक्सटेंशन का एक सेट (गुणा, एटॉमिक्स, फ्लोटिंग पॉइंट, वैक्टर, और बहुत कुछ के लिए) परिभाषित करता है। एक कार्यान्वयन में केवल वे एक्सटेंशन शामिल होते हैं जिनकी उसे आवश्यकता होती है, इसलिए वही ISA छोटे एम्बेडेड कोर से उच्च-प्रदर्शन प्रोसेसर तक फैला होता है।