किसी भी CPU को किसी विशेष निर्देश सेट का समर्थन करने के लिए जमीन से ऊपर तक डिज़ाइन किया गया है। एक निर्देश सेट हार्ड-कोडित संचालन का एक सेट है जिसे सीपीयू कर सकता है। ये ऑपरेशन हो सकते हैं, उदाहरण के लिए, दो संख्याओं को एक साथ जोड़ना, प्रोग्राम के किसी भिन्न भाग में कूदना, या दो मानों की तुलना करना। प्रत्येक ऑपरेशन जो एक कंप्यूटर कर सकता है, विशिष्ट रूप से एक ओपकोड द्वारा दर्शाया जाता है।
ओपकोड
किसी प्रोग्राम को निष्पादित करते समय, सीपीयू एक प्रोग्राम काउंटर का उपयोग करता है ताकि यह पता लगाया जा सके कि आगे किस निर्देश को निष्पादित करने की आवश्यकता है। जब कोई निर्देश प्राप्त किया जाता है, तो प्रोग्राम काउंटर को निर्देश की लंबाई से बढ़ा दिया जाता है ताकि यह अगले निर्देश की शुरुआत की ओर इशारा करे। प्रत्येक निर्देश में एक ओपकोड होता है। निर्देश के आधार पर, इसमें ऑपरेंड शामिल हो भी सकते हैं और नहीं भी। सीपीयू रजिस्टर या सिस्टम रैम में किसी मान के स्थान के लिए ऑपरेंड एक स्थिर मान या सूचक हो सकता है।
एक बार पूरा निर्देश प्राप्त हो जाने के बाद, इसे डिकोड करने की आवश्यकता होती है। यह वह प्रक्रिया है जहां सीपीयू ओपकोड और किसी भी ऑपरेंड को अलग करता है। डीकोडेड ओपकोड का उपयोग सीपीयू में विशिष्ट विद्युत पथों को सक्षम या अक्षम करने के लिए किया जाता है जिसके परिणामस्वरूप सही संचालन होगा।
एक बार निर्देश डिकोड हो जाने के बाद, इसे निष्पादित किया जाएगा। सीपीयू का सटीक व्यवहार ऑपरेशन पर निर्भर करेगा। एक अतिरिक्त ऑपरेशन दो मानों को एक साथ जोड़ देगा। एक जंप ऑपरेशन गणना करेगा कि प्रोग्राम में कहां कूदना है। एक तुलना ऑपरेशन दो मानों की तुलना करेगा। एक एनओपी ऑपरेशन बेकार रहेगा, क्योंकि एनओपी का मतलब नो ऑपरेशन है।
अधिकांश निर्देश तब ऑपरेशन के परिणाम को आउटपुट करेंगे। यह आउटपुट प्रोसेसर रजिस्टर में जा सकता है और, यदि आवश्यक हो, सिस्टम रैम में। इनमें से प्रत्येक ऑपरेशन को पूरा करने के लिए एक एकल घड़ी चक्र लगता है।
अवैध ऑपकोड
प्रत्येक सीपीयू आर्किटेक्चर में निर्माता द्वारा प्रकाशित ऑपकोड की अपनी विशिष्ट सूची होती है। जरूरी नहीं कि इन ऑपकोड का मान एक ही क्रॉस-प्लेटफ़ॉर्म हो, यही वजह है कि विभिन्न आर्किटेक्चर के लिए सॉफ़्टवेयर को संकलित करने की आवश्यकता होती है। कुछ मामलों में, निर्माता में गैर-दस्तावेजी ऑपकोड भी शामिल होते हैं। इन्हें "अवैध ऑपकोड" कहा जाता है। अवैध ऑपकोड, जबकि गैर-दस्तावेजी, हर बार बुलाए जाने पर एक ही कार्य करेंगे। अनिर्दिष्ट और गैर-मानक सुविधाओं के रूप में, हालांकि, सीपीयू आर्किटेक्चर के अपडेट उन्हें आसानी से हटा सकते हैं।
Apple II के कुछ शुरुआती कंप्यूटर गेम विशिष्ट अवैध ऑपकोड पर निर्भर थे। बाद में Apple IIc CPU संशोधन पर उन्हें प्रदर्शन और स्थिरता के मुद्दों का सामना करना पड़ा क्योंकि IIc ने आवश्यक गेम के अवैध ऑपकोड को हटा दिया। अवैध ऑपकोड का उपयोग कॉपीराइट सुरक्षा हलकों में एक सुरक्षा पद्धति के रूप में भी किया गया था, जो उनकी सामग्री को तोड़ने वाले समुद्री डाकू के खिलाफ उनकी लड़ाई में अस्पष्टता के माध्यम से था। कुछ अवैध ऑपकोड केवल डिबगिंग टूल और एरर हैंडलर के रूप में होते हैं।
x86 निर्देश सेट में बड़ी संख्या में गैर-दस्तावेजी अवैध ऑपकोड हैं। दिलचस्प बात यह है कि इनमें से कुछ इंटेल और एएमडी सीपीयू के बीच साझा किए जाते हैं, यह दर्शाता है कि दोनों कंपनियां सार्वजनिक रूप से अपने उद्देश्य के बारे में जागरूक हैं, जबकि गैर-दस्तावेज।
संकलक और विधानसभा
अधिकांश कार्यक्रम उच्च स्तरीय भाषाओं में लिखे जाते हैं। ये पढ़ने में अपेक्षाकृत आसान होते हैं, सीखने की अवस्था को कम करने के लिए अक्सर अंग्रेजी शब्दों या शॉर्टहैंड का उपयोग करते हैं। कंप्यूटर के लिए इन प्रोग्रामों को निष्पादित करने के लिए, उन्हें संकलित करने की आवश्यकता होती है। एक कंपाइलर मूल रूप से एक अनुवादक है। यह उच्च-स्तरीय कोड लेता है और इसे कंप्यूटर कोड में परिवर्तित करता है, जो निर्देश सीपीयू समझ सकता है।
यह भी संभव है, कुछ भाषाओं में, पहले से संकलित प्रोग्राम के माध्यम से असम्पीडित कोड को चलाने के लिए जो मक्खी पर मशीन कोड उत्पन्न करता है। असेंबली एक निम्न-स्तरीय प्रोग्रामिंग भाषा है जो डेवलपर्स को प्रत्यक्ष दृश्यता और प्रदर्शन किए गए कार्यों पर नियंत्रण की अनुमति देने के लिए शॉर्टहैंड का उपयोग करती है। एनओपी असेंबली शॉर्टहैंड का एक उदाहरण है।
निष्कर्ष
एक निर्देश सेट आधिकारिक कार्यों की एक सूची है जो एक सीपीयू आर्किटेक्चर चला सकता है। यह उन कार्यों की एक सूची है जिन्हें किया जा सकता है। इन ऑपरेशनों को सीपीयू में हार्ड-कोड किया जाता है और उनके संबंधित ऑपकोड का उपयोग करके कॉल किया जाता है।
सॉफ्टवेयर आमतौर पर मानव-पठनीय उच्च-स्तरीय कोड से मशीन कोड में अनुवाद करने के लिए एक कंपाइलर का उपयोग करता है जिसे सीपीयू पढ़ सकता है। कभी-कभी, एक सीपीयू आर्किटेक्चर में गैर-दस्तावेज ऑपकोड हो सकते हैं, जिन्हें अवैध ऑपकोड कहा जाता है। अवैध ऑपकोड तकनीकी रूप से निर्देश सेट का हिस्सा हैं। हालाँकि, वे भविष्य के प्लेटफ़ॉर्म पुनरावृत्तियों में मज़बूती से उपलब्ध नहीं हो सकते हैं। नीचे दी गई टिप्पणियों में अपने विचार छोड़ना न भूलें।