डीएलएक्स: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 25: Line 25:


==इतिहास==
==इतिहास==
'''स्टैनफोर्ड एमआईपीएस आ'''र्किटेक्चर में, प्रदर्शन हासिल करने के लिए इस्तेमाल की जाने वाली विधियों में से एक सभी निर्देशों को एक घड़ी चक्र में पूरा करने के लिए बाध्य करना था। इसने कंपाइलरों को उन मामलों में "नो-ऑप्स" डालने के लिए मजबूर किया जहां निर्देश निश्चित रूप से एक घड़ी चक्र से अधिक समय लेगा। इस प्रकार इनपुट और आउटपुट गतिविधियाँ (जैसे मेमोरी एक्सेस) ने विशेष रूप से इस व्यवहार को मजबूर किया, जिससे कृत्रिम प्रोग्राम ब्लोट हो गया। सामान्य तौर पर एमआईपीएस कार्यक्रमों को बहुत सारे बेकार एनओपी निर्देशों के लिए मजबूर किया गया था, एक ऐसा व्यवहार जो एक अनपेक्षित परिणाम था। डीएलएक्स आर्किटेक्चर एकल घड़ी चक्र निष्पादन को बाध्य नहीं करता है, और इसलिए इस समस्या से प्रतिरक्षित है।
स्टैनफोर्ड एमआईपीएस आर्किटेक्चर में विनिर्देशन प्राप्त करने के लिए प्रयोग की जाने वाली विधियों में से सभी को एक क्लॉक-साइकल (सीपीयू क्षमता मापक) में पूरा करने के लिए बाध्य करना था। इसने कंपाइलरों को उन स्थितियों में "नो-ऑप्स" इनपुट करने के लिए इंस्ट्रक्शन दिये गए थे जहां इंस्ट्रक्शन निश्चित रूप से एक क्लॉक-साइकल से अधिक समय लेते थे। इस प्रकार इनपुट और आउटपुट गतिविधियाँ (जैसे मेमोरी एक्सेस) विशेष रूप से इस स्थिति को जटिल किया था जिससे आर्टिफिशियल प्रोग्राम ब्लोट हो गया था। सामान्यतः एमआईपीएस प्रोग्रामों को बहुत से एनओपी इंस्ट्रक्शन के लिए प्रयुक्त किया गया था जो एक यूनिनटेंडेड परिणाम था। डीएलएक्स आर्किटेक्चर एकल क्लॉक-साइकल निष्पादन को बाध्य नहीं करता है। इसलिए यह इस समस्या से प्रतिरक्षित है।


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


==यह कैसे काम करता है==
==कार्य==
डीएलएक्स निर्देशों को तीन प्रकारों में विभाजित किया जा सकता है, आर-टाइप, आई-टाइप और जे-टाइप। आर-प्रकार के निर्देश शुद्ध रजिस्टर निर्देश हैं, जिसमें 32-बिट शब्द में तीन रजिस्टर संदर्भ शामिल हैं। I-टाइप निर्देश दो रजिस्टर निर्दिष्ट करते हैं, और तत्काल मान रखने के लिए 16 बिट्स का उपयोग करते हैं। अंततः J-प्रकार के निर्देश जंप होते हैं, जिनमें 26-बिट पता होता है।
डीएलएक्स इंस्ट्रक्शन को तीन प्रकारों आर-टाइप, आई-टाइप और जे-टाइप में विभाजित किया जा सकता है। आर-टाइप इंस्ट्रक्शन शुद्ध रजिस्टर इंस्ट्रक्शन हैं, जिसमें 32-बिट वर्ड में तीन रजिस्टर संदर्भ सम्मिलित हैं। आई-टाइप इंस्ट्रक्शन दो रजिस्टर निर्दिष्ट करते हैं और शीघ्र मान रखने के लिए 16 बिट्स का उपयोग करते हैं। अंततः जे-टाइप इंस्ट्रक्शन जंप प्रकार के इंस्ट्रक्शन होते हैं, जिनमें 26-बिट एड्रेस होता है।


कुल 64 संभावित बुनियादी निर्देशों के लिए [[ऑपकोड]] 6 बिट लंबे होते हैं। 32 रजिस्टरों में से एक का चयन करने के लिए 5 बिट्स की आवश्यकता होती है।
कुल 64 बिट संभावित इंस्ट्रक्शन के लिए [[ऑपकोड]] 6 बिट लंबे होते हैं। 32 रजिस्टरों में से एक का चयन करने के लिए 5 बिट्स की आवश्यकता होती है।
* आर-प्रकार के निर्देशों के मामले में इसका मतलब है कि 32-बिट शब्द के केवल 21 बिट्स का उपयोग किया जाता है, जो निचले 6 बिट्स को विस्तारित निर्देशों के रूप में उपयोग करने की अनुमति देता है।
* आर-टाइप के इंस्ट्रक्शन के स्थिति में इसका अर्थ यह है कि 32-बिट वर्ड मे केवल 21 बिट्स का उपयोग किया जाता है, जो न्यूनतम 6 बिट्स को विस्तारित इंस्ट्रक्शन के रूप में उपयोग करने की स्वीकृति देते हैं।
* डीएलएक्स 64 से अधिक निर्देशों का समर्थन कर सकता है, जब तक कि वे निर्देश पूरी तरह से रजिस्टरों पर काम करते हैं। यह विचित्रता [[फ़्लोटिंग पॉइंट इकाई]] समर्थन जैसी चीज़ों के लिए उपयोगी है।
*डीएलएक्स 64 से अधिक इंस्ट्रक्शन का समर्थन कर सकता है जब तक वे इंस्ट्रक्शन पूरी तरह से रजिस्टरों पर कार्य करते हैं। यह क्विर्क [[फ़्लोटिंग पॉइंट इकाई|फ़्लोटिंग पॉइंट यूनिट]] जैसी डिज़ाइनों  के लिए उपयोगी है।


==पाइपलाइन==
==पाइपलाइन==
एमआईपीएस डिज़ाइन की तरह डीएलएक्स, एक निर्देश पाइपलाइन के उपयोग पर अपना प्रदर्शन आधारित करता है। डीएलएक्स डिज़ाइन में यह काफी सरल है, अवधारणा में "क्लासिक" आरआईएससी। पाइपलाइन में पाँच चरण होते हैं:
एमआईपीएस डिज़ाइन की तरह डीएलएक्स, एक इंस्ट्रक्शन-पाइपलाइन के उपयोग पर अपना प्रदर्शन आधारित करता है। डीएलएक्स डिज़ाइन में यह अवधारणा में अत्यधिक सरल "क्लासिक" आरआईएससी है। पाइपलाइन में पाँच चरण होते हैं:


;आईएफ - अनुदेश फ़ेच इकाई/चक्र
;आईएफ - इंस्ट्रक्शन फ़ेच [[फ़्लोटिंग पॉइंट इकाई|यूनिट]]/साइकल
: आईआर <-मेम (पीसी)
: IR<-Mem(PC)
: एनपीसी<-पीसी+4
: NPC<-PC+4
: ऑपरेशन: पीसी को भेजें और निर्देश को मेमोरी से इंस्ट्रक्शन रजिस्टर (आईआर) में लाएं; अगले अनुक्रमिक निर्देश को संबोधित करने के लिए पीसी को 4 से बढ़ाएं। आईआर का उपयोग अगले निर्देश को रखने के लिए किया जाता है जिसकी बाद के घड़ी चक्रों पर आवश्यकता होगी; इसी प्रकार रजिस्टर एनपीसी का उपयोग अगले अनुक्रमिक पीसी को रखने के लिए किया जाता है।
: ऑपरेशन: पीसी को भेजें और इंस्ट्रक्शन को मेमोरी से इंस्ट्रक्शन रजिस्टर (आईआर) में लाएं अगले अनुक्रमिक इंस्ट्रक्शन को संबोधित करने के लिए पीसी को 4 से बढ़ाएं। आईआर का उपयोग अगले इंस्ट्रक्शन को रखने के लिए किया जाता है जिसकी बाद के घड़ी चक्रों पर आवश्यकता होगी; इसी प्रकार रजिस्टर एनपीसी का उपयोग अगले अनुक्रमिक पीसी को रखने के लिए किया जाता है।
;आईडी - निर्देश डिकोड इकाई
;आईडी - इंस्ट्रक्शन डिकोड यूनिट
: ऑपरेशन: निर्देश को डिकोड करें और रजिस्टरों को पढ़ने के लिए रजिस्टर फ़ाइल तक पहुंचें। यह इकाई IF से निर्देश प्राप्त करती है, और उस निर्देश से ऑपकोड और ऑपरेंड निकालती है। यदि ऑपरेशन द्वारा अनुरोध किया जाता है तो यह रजिस्टर मान भी पुनः प्राप्त करता है।
: ऑपरेशन: इंस्ट्रक्शन को डिकोड करें और रजिस्टरों को पढ़ने के लिए रजिस्टर फ़ाइल तक पहुंचें। यह यूनिट IF से इंस्ट्रक्शन प्राप्त करती है, और उस इंस्ट्रक्शन से ऑपकोड और ऑपरेंड निकालती है। यदि ऑपरेशन द्वारा अनुरोध किया जाता है तो यह रजिस्टर मान भी पुनः प्राप्त करता है।
;EX - निष्पादन इकाई/प्रभावी पता चक्र
;ईएक्स - निष्पादन यूनिट/एफ्फेक्टिव एड्रेस साइकल
: ऑपरेशन: अंकगणित तर्क इकाई पूर्व चक्र में तैयार किए गए ऑपरेंड पर काम करती है, जो डीएलएक्स निर्देश प्रकार के आधार पर चार कार्यों में से एक का प्रदर्शन करती है।
: ऑपरेशन: अरिथमेटिक लॉजिक यूनिट (एएलयू) ईएक्स साइकल में तैयार किए गए ऑपरेंड पर कार्य करती है जो डीएलएक्स इंस्ट्रक्शन के आधार पर चार कार्यों में से एक का प्रदर्शन करती है।
: मेमोरी संदर्भ: रजिस्टर-रजिस्टर एएलयू निर्देश, रजिस्टर-तत्काल एएलयू निर्देश
: मेमोरी रेफ्रेंस: रजिस्टर-रजिस्टर एएलयू इंस्ट्रक्शन, रजिस्टर-इमीडिएट एएलयू इंस्ट्रक्शन
: शाखा
;एमईएम - मेमोरी एक्सेस यूनिट
;एमईएम - मेमोरी एक्सेस यूनिट
: इस इकाई में सक्रिय डीएलएक्स निर्देश लोड, स्टोर और शाखाएं हैं।
: इस यूनिट में सक्रिय डीएलएक्स इंस्ट्रक्शन लोड, ब्रांच और स्टोर होते हैं।
: मेमोरी संदर्भ: यदि आवश्यक हो तो मेमोरी तक पहुंचें। यदि निर्देश लोड होता है, तो डेटा मेमोरी से वापस आ जाता है और एलएमडी (लोड मेमोरी डेटा) रजिस्टर में रखा जाता है
: मेमोरी रेफ्रेंस: यदि आवश्यक होती है तो मेमोरी तक डीएलएक्स इंस्ट्रक्शन लोड होता है जिससे डेटा मेमोरी से वापस आ जाता है जिसको एलएमडी (लोड मेमोरी डेटा) रजिस्टर में रखा जाता है।
: शाखा
;डब्ल्यूबी - राइटबैक यूनिट
;डब्ल्यूबी - राइटबैक यूनिट
: सामान्यतः आधुनिक शब्दावली में इसे "स्टोर यूनिट" कहा जाता है। परिणाम को रजिस्टर फ़ाइल में लिखें, चाहे वह मेमोरी सिस्टम से आए या ALU से।
: सामान्यतः आधुनिक शब्दावली में इसे "स्टोर यूनिट" कहा जाता है। इसके मेमोरी सिस्टम डेटा और एएलयू को परिणाम को रजिस्टर फ़ाइल मे लिखा जाता है।


==यह भी देखें==
==यह भी देखें==
Line 60: Line 58:
* [[छोटा कंप्यूटर 3|एलसी-3]]
* [[छोटा कंप्यूटर 3|एलसी-3]]
* [[मिक्स]], एमएमएक्स
* [[मिक्स]], एमएमएक्स
* [[ MicroBlaze |माइक्रो ब्लेज़]]
* [[ MicroBlaze |माइक्रोब्लेज़]]
* [[ माइक्रो सिम ]]
* [[ माइक्रो सिम |माइक्रोसिम]]
* [[ओपनआरआईएससी]]
* [[ओपनआरआईएससी|ओपन आरआईएससी]]


==संदर्भ==
==संदर्भ==

Revision as of 16:42, 20 September 2023

डीएलएक्स
Designerजॉन एल. हेनेसी और डेविड ए. पैटरसन
Bits32-बिट
Introduced1994
Version1.0
Designआरआईएससी
Typeरजिस्टर-रजिस्टर और लोड-स्टोर
Encodingफ़िक्स्ड
Branchingकंडीशन रजिस्टर
Endiannessबी-एंडियन
Extensionsएमडीएमएक्स और एमआईपीएस-3डी का उपयोग किया जा सकता है।
OpenYes
Registers
General purpose32 (R0=0)
Floating point32 (paired DP for 32-bit)

डीएलएक्स (उच्चारण "डीलक्स") एक आरआईएससी प्रोसेसर आर्किटेक्चर है जिसे जॉन एल. हेनेसी और डेविड ए. पैटरसन द्वारा डिजाइन किया गया है, जो स्टैनफोर्ड एमआईपीएस और बर्कले आरआईएससी के प्रमुख डिजाइनर हैं जो क्रमशः आरआईएससी डिजाइन के नाम पर दो बेंचमार्क बर्कले उदाहरण डिजाइन करते हैं।

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

दो ज्ञात एस्पिडा और वैम्प "माइक्रोप्रोसेसर" हार्डवेयर कार्यान्वयन हैं। एएसपीआईडीए परियोजना (प्रोजेक्ट) के परिणामस्वरूप कई अच्छी विशेषताओं वाला एक कोर तैयार किया गया है जो पूर्ण रुप से ओपन सोर्स और विशबोन का समर्थन करता है। इसमें एक असिंक्रोनस डिजाइन है जो कई आईएसए का समर्थन करती है और एएसआईसी से प्रमाणित है। वैम्प एक डीएलएक्स-वेरिएंट है जिसे वेरीसॉफ्ट प्रोजेक्ट के रूप में गणितीय रूप से सत्यापित किया गया था। इसे पीवीएस के साथ निर्दिष्ट किया गया था और वेरिलॉग में कार्यान्वित किया गया था जो सामान्यतः सीलिंक्स एफपीजीए पर चलता है। कंपाइलर के कर्नेल से टीसीपी/आईपी तक इस पर एक पूर्ण स्टैक बनाया गया था।

इतिहास

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

डीएलएक्स डिज़ाइन में लंबे इंस्ट्रक्शन को कार्यान्वित के लिए एक आधुनिक दृष्टिकोण का उपयोग डेटा-फ़ॉरवर्डिंग और इंस्ट्रक्शन पुन: व्यवस्थित करने के लिए किया गया था। इस स्थिति में लंबे इंस्ट्रक्शन को उनकी फंक्शनल यूनिट में स्थगित कर दिया जाता है और जब वे इंस्ट्रक्शन पूर्ण करते हैं तो उन्हें इंस्ट्रक्शन स्ट्रीम में फिर से प्रयुक्त किया जाता है। सामान्यतः यह डिज़ाइन बाहर से ऐसी प्रतीत होती है जैसे कि इसका निष्पादन पूर्ण रूप से सही है।

कार्य

डीएलएक्स इंस्ट्रक्शन को तीन प्रकारों आर-टाइप, आई-टाइप और जे-टाइप में विभाजित किया जा सकता है। आर-टाइप इंस्ट्रक्शन शुद्ध रजिस्टर इंस्ट्रक्शन हैं, जिसमें 32-बिट वर्ड में तीन रजिस्टर संदर्भ सम्मिलित हैं। आई-टाइप इंस्ट्रक्शन दो रजिस्टर निर्दिष्ट करते हैं और शीघ्र मान रखने के लिए 16 बिट्स का उपयोग करते हैं। अंततः जे-टाइप इंस्ट्रक्शन जंप प्रकार के इंस्ट्रक्शन होते हैं, जिनमें 26-बिट एड्रेस होता है।

कुल 64 बिट संभावित इंस्ट्रक्शन के लिए ऑपकोड 6 बिट लंबे होते हैं। 32 रजिस्टरों में से एक का चयन करने के लिए 5 बिट्स की आवश्यकता होती है।

  • आर-टाइप के इंस्ट्रक्शन के स्थिति में इसका अर्थ यह है कि 32-बिट वर्ड मे केवल 21 बिट्स का उपयोग किया जाता है, जो न्यूनतम 6 बिट्स को विस्तारित इंस्ट्रक्शन के रूप में उपयोग करने की स्वीकृति देते हैं।
  • डीएलएक्स 64 से अधिक इंस्ट्रक्शन का समर्थन कर सकता है जब तक वे इंस्ट्रक्शन पूरी तरह से रजिस्टरों पर कार्य करते हैं। यह क्विर्क फ़्लोटिंग पॉइंट यूनिट जैसी डिज़ाइनों के लिए उपयोगी है।

पाइपलाइन

एमआईपीएस डिज़ाइन की तरह डीएलएक्स, एक इंस्ट्रक्शन-पाइपलाइन के उपयोग पर अपना प्रदर्शन आधारित करता है। डीएलएक्स डिज़ाइन में यह अवधारणा में अत्यधिक सरल "क्लासिक" आरआईएससी है। पाइपलाइन में पाँच चरण होते हैं:

आईएफ - इंस्ट्रक्शन फ़ेच यूनिट/साइकल
IR<-Mem(PC)
NPC<-PC+4
ऑपरेशन: पीसी को भेजें और इंस्ट्रक्शन को मेमोरी से इंस्ट्रक्शन रजिस्टर (आईआर) में लाएं अगले अनुक्रमिक इंस्ट्रक्शन को संबोधित करने के लिए पीसी को 4 से बढ़ाएं। आईआर का उपयोग अगले इंस्ट्रक्शन को रखने के लिए किया जाता है जिसकी बाद के घड़ी चक्रों पर आवश्यकता होगी; इसी प्रकार रजिस्टर एनपीसी का उपयोग अगले अनुक्रमिक पीसी को रखने के लिए किया जाता है।
आईडी - इंस्ट्रक्शन डिकोड यूनिट
ऑपरेशन: इंस्ट्रक्शन को डिकोड करें और रजिस्टरों को पढ़ने के लिए रजिस्टर फ़ाइल तक पहुंचें। यह यूनिट IF से इंस्ट्रक्शन प्राप्त करती है, और उस इंस्ट्रक्शन से ऑपकोड और ऑपरेंड निकालती है। यदि ऑपरेशन द्वारा अनुरोध किया जाता है तो यह रजिस्टर मान भी पुनः प्राप्त करता है।
ईएक्स - निष्पादन यूनिट/एफ्फेक्टिव एड्रेस साइकल
ऑपरेशन: अरिथमेटिक लॉजिक यूनिट (एएलयू) ईएक्स साइकल में तैयार किए गए ऑपरेंड पर कार्य करती है जो डीएलएक्स इंस्ट्रक्शन के आधार पर चार कार्यों में से एक का प्रदर्शन करती है।
मेमोरी रेफ्रेंस: रजिस्टर-रजिस्टर एएलयू इंस्ट्रक्शन, रजिस्टर-इमीडिएट एएलयू इंस्ट्रक्शन
एमईएम - मेमोरी एक्सेस यूनिट
इस यूनिट में सक्रिय डीएलएक्स इंस्ट्रक्शन लोड, ब्रांच और स्टोर होते हैं।
मेमोरी रेफ्रेंस: यदि आवश्यक होती है तो मेमोरी तक डीएलएक्स इंस्ट्रक्शन लोड होता है जिससे डेटा मेमोरी से वापस आ जाता है जिसको एलएमडी (लोड मेमोरी डेटा) रजिस्टर में रखा जाता है।
डब्ल्यूबी - राइटबैक यूनिट
सामान्यतः आधुनिक शब्दावली में इसे "स्टोर यूनिट" कहा जाता है। इसके मेमोरी सिस्टम डेटा और एएलयू को परिणाम को रजिस्टर फ़ाइल मे लिखा जाता है।

यह भी देखें

संदर्भ

  • Sailer, Philip M.; Kaeli, David R. (1996). The DLX Instruction Set Architecture Handbook. Morgan Kaufmann. ISBN 1-55860-371-9.
  • Patterson, David; Hennessy, John (1996). Computer Architecture: A Quantitative Approach (1st ed.). Morgan Kaufmann. ISBN 978-1-55-860329-5.
  • Patterson, David; Hennessy, John (1994). Computer Organization and Design (1st ed.). Morgan Kaufmann. ISBN 978-1-55-860281-6.

बाहरी संबंध