इंस्ट्रक्शन सेट आर्किटेक्चर
इंस्ट्रक्शन सेट आर्किटेक्चर (ISA) हार्डवेयर और सॉफ्टवेयर के बीच एक अमूर्त इंटरफ़ेस है: निर्देशों, रजिस्टरों, डेटा प्रकारों, एड्रेसिंग मोड और मेमोरी मॉडल का वह सेट जिसे एक प्रोसेसर प्रोग्रामर और कंपाइलर के सामने प्रस्तुत करता है।
Definition
एक इंस्ट्रक्शन सेट आर्किटेक्चर वह अनुबंध है जो उन ऑपरेशनों को परिभाषित करता है जिन्हें एक प्रोसेसर निष्पादित कर सकता है, जिन ऑपरेंड और स्टोरेज पर वे कार्य करते हैं, और प्रोग्रामों की बाइनरी एन्कोडिंग, ताकि अनुबंध का सम्मान करने वाला कोई भी कार्यान्वयन समान मशीन कोड चला सके।
Scope
यह क्षेत्र सॉफ्टवेयर की ओर से मशीन क्या करती है, इसे कवर करता है, भले ही हार्डवेयर इसे कैसे लागू करता है। इसमें निर्देशों के वर्ग (अंकगणितीय, तार्किक, डेटा-स्थानांतरण, नियंत्रण), इंस्ट्रक्शन फॉर्मेट और एन्कोडिंग, रजिस्टर संगठन, एड्रेसिंग मोड, मेमोरी और एंडियननेस मॉडल, अपवाद और सिस्टम-कॉल इंटरफ़ेस, और विरोधाभासी RISC और CISC दर्शन शामिल हैं। इसमें ISA का माइक्रोआर्किटेक्चरल अहसास — पाइपलाइन, कैश और आउट-ऑफ-ऑर्डर इंजन — शामिल नहीं है, जिन्हें प्रोसेसर माइक्रोआर्किटेक्चर के तहत माना जाता है।
Sub-topics
Core questions
- एक पूर्ण प्रोग्रामिंग लक्ष्य होने के लिए ISA को कौन से ऑपरेशन, ऑपरेंड प्रकार और रजिस्टर उजागर करने चाहिए?
- निर्देशों को बाइनरी में कैसे एन्कोड किया जाता है, और एन्कोडिंग कोड घनत्व को डीकोड सरलता के मुकाबले कैसे संतुलित करती है?
- एड्रेसिंग मोड कैसे निर्दिष्ट करते हैं कि ऑपरेंड रजिस्टर और मेमोरी में कहाँ रहते हैं?
- सरल निश्चित-फॉर्मेट निर्देशों के RISC दर्शन को समृद्ध परिवर्तनीय-लंबाई वाले CISC दर्शन से क्या अलग करता है?
- ISA को एक संगतता अनुबंध के रूप में स्थिर कैसे रखा जाता है जबकि इसे दशकों तक विस्तारित भी किया जाता है?
Key concepts
- इंस्ट्रक्शन फॉर्मेट और ऑपकोड
- सामान्य-उद्देश्य रजिस्टर फ़ाइल
- एड्रेसिंग मोड
- लोड-स्टोर आर्किटेक्चर
- RISC बनाम CISC
- एंडियननेस और अलाइनमेंट
- बाइनरी संगतता
- अपवाद और सिस्टम कॉल
- इंस्ट्रक्शन सेट एक्सटेंशन
Key theories
- आर्किटेक्चर/कार्यान्वयन पृथक्करण
- ISA को माइक्रोआर्किटेक्चर से जानबूझकर अलग किया जाता है ताकि एक ही इंस्ट्रक्शन सेट को पीढ़ियों से कई अलग-अलग हार्डवेयर संगठनों द्वारा लागू किया जा सके, बाइनरी संगतता को बनाए रखते हुए प्रदर्शन में सुधार की अनुमति मिल सके।
- RISC डिजाइन सिद्धांत
- कम-इंस्ट्रक्शन-सेट तर्क यह मानता है कि सरल, निश्चित-लंबाई, रजिस्टर-से-रजिस्टर निर्देशों का एक छोटा सेट कुशलता से पाइपलाइन किया जा सकता है और अच्छी तरह से संकलित किया जा सकता है, अक्सर अधिक निर्देशों को निष्पादित करने के बावजूद जटिल इंस्ट्रक्शन सेट से बेहतर प्रदर्शन करता है।
Clinical relevance
ISA एक कंप्यूटिंग प्लेटफॉर्म की दीर्घकालिक संपत्ति है: x86, ARM, और RISC-V प्रत्येक विशाल सॉफ्टवेयर इकोसिस्टम को आधार प्रदान करते हैं, और इंस्ट्रक्शन सेट के बारे में निर्णय यह निर्धारित करते हैं कि कौन से कंपाइलर, ऑपरेटिंग सिस्टम और बाइनरी चल सकते हैं। स्थिर ISA हार्डवेयर को अपरिवर्तित सॉफ्टवेयर के तहत विकसित होने देते हैं, जबकि RISC-V जैसे खुले ISA ने प्रोसेसर डिजाइन और शिक्षा को नया रूप दिया है।
History
प्रारंभिक मशीनों ने विशिष्ट इंस्ट्रक्शन सेट प्रस्तुत किए; IBM System/360 (1964) ने मशीनों के एक परिवार में लागू एक एकल ISA के विचार का बीड़ा उठाया। 1970 के दशक में तेजी से जटिल इंस्ट्रक्शन सेट (CISC) देखे गए, जिससे 1980 के दशक की शुरुआत में बर्कले में पैटरसन और स्टैनफोर्ड में हेनेसी से जुड़ी RISC प्रतिक्रिया हुई। 2010 के आसपास बर्कले में शुरू हुआ खुला RISC-V ISA, स्वच्छ, एक्स्टेंसिबल इंस्ट्रक्शन सेट डिजाइन में रुचि को फिर से जगाया।
Debates
- RISC बनाम CISC
- क्या सरल निश्चित-फॉर्मेट इंस्ट्रक्शन सेट स्वाभाविक रूप से जटिल परिवर्तनीय-लंबाई वाले सेटों से बेहतर हैं, इस पर बहस जारी है; व्यवहार में आधुनिक उच्च-प्रदर्शन CISC कार्यान्वयन जटिल निर्देशों को आंतरिक रूप से RISC-जैसे माइक्रो-ऑपरेशनों में अनुवादित करते हैं, जिससे मूल अंतर धुंधला हो जाता है।
Key figures
- David A. Patterson
- John L. Hennessy
- Gene Amdahl
- Seymour Cray
- Krste Asanović
Related topics
Seminal works
- hennessy2019
- patterson2020
- patterson1980risc
Frequently asked questions
- इंस्ट्रक्शन सेट आर्किटेक्चर और माइक्रोआर्किटेक्चर में क्या अंतर है?
- ISA दृश्यमान इंटरफ़ेस है — वे निर्देश और रजिस्टर जिनका एक प्रोग्राम उपयोग करता है — जबकि माइक्रोआर्किटेक्चर आंतरिक हार्डवेयर संगठन (पाइपलाइन, कैश, निष्पादन इकाइयाँ) है जो उस इंटरफ़ेस को लागू करता है। कई माइक्रोआर्किटेक्चर एक ही ISA को लागू कर सकते हैं।
- बाइनरी संगतता इतनी महत्वपूर्ण क्यों है?
- क्योंकि सॉफ्टवेयर एक विशिष्ट ISA के लिए संकलित होता है, ISA को स्थिर रखने से उपयोगकर्ता नए प्रोसेसर पर मौजूदा प्रोग्रामों को बिना पुनर्संकलन के चला सकते हैं, जिससे हार्डवेयर में सुधार होने पर सॉफ्टवेयर में भारी निवेश की रक्षा होती है।