डीएलएक्स

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

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

दो ज्ञात नरम माइक्रोप्रोसेसर  हार्डवेयर कार्यान्वयन हैं: ASPIDA और VAMP। ASPIDA परियोजना के परिणामस्वरूप कई अच्छी विशेषताओं वाला एक कोर तैयार हुआ: यह खुला स्रोत है, विशबोन (कंप्यूटर बस) का समर्थन करता है, इसमें एक अतुल्यकालिक डिज़ाइन है, कई निर्देश सेट आर्किटेक्चर का समर्थन करता है, और ASIC प्रमाणित है। VAMP एक DLX-वेरिएंट है जिसे Verisoft प्रोजेक्ट के हिस्से के रूप में गणितीय रूप से सत्यापित किया गया था। इसे प्रोटोटाइप सत्यापन प्रणाली के साथ निर्दिष्ट किया गया था, जिसे Verilog में लागू किया गया था, और यह Xilinx FPGA पर चलता है। कंपाइलर से कर्नेल से टीसीपी/आईपी तक एक पूर्ण स्टैक इस पर बनाया गया था।

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

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

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

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

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


 * आईएफ - अनुदेश फ़ेच इकाई/चक्र
 * आईआर <-मेम (पीसी)
 * एनपीसी<-पीसी+4
 * ऑपरेशन: पीसी को भेजें और मेमोरी से निर्देश को निर्देश रजिस्टर में लाएं|निर्देश रजिस्टर (आईआर); अगले अनुक्रमिक निर्देश को संबोधित करने के लिए पीसी को 4 से बढ़ाएं। आईआर का उपयोग अगले निर्देश को रखने के लिए किया जाता है जिसकी बाद के घड़ी चक्रों पर आवश्यकता होगी; इसी प्रकार रजिस्टर एनपीसी का उपयोग अगले अनुक्रमिक पीसी को रखने के लिए किया जाता है।


 * आईडी - निर्देश डिकोड इकाई
 * ऑपरेशन: निर्देश को डिकोड करें और रजिस्टरों को पढ़ने के लिए रजिस्टर फ़ाइल तक पहुंचें। यह इकाई IF से निर्देश प्राप्त करती है, और उस निर्देश से ऑपकोड और ऑपरेंड निकालती है। यदि ऑपरेशन द्वारा अनुरोध किया जाता है तो यह रजिस्टर मान भी पुनः प्राप्त करता है।


 * EX - निष्पादन इकाई/प्रभावी पता चक्र
 * ऑपरेशन: अंकगणित तर्क इकाई पूर्व चक्र में तैयार किए गए ऑपरेंड पर काम करती है, जो डीएलएक्स निर्देश प्रकार के आधार पर चार कार्यों में से एक का प्रदर्शन करती है।
 * मेमोरी संदर्भ: रजिस्टर-रजिस्टर एएलयू निर्देश, रजिस्टर-तत्काल एएलयू निर्देश
 * शाखा


 * एमईएम - मेमोरी एक्सेस यूनिट
 * इस इकाई में सक्रिय डीएलएक्स निर्देश लोड, स्टोर और शाखाएं हैं।
 * मेमोरी संदर्भ: यदि आवश्यक हो तो मेमोरी तक पहुंचें। यदि निर्देश लोड होता है, तो डेटा मेमोरी से वापस आ जाता है और एलएमडी (लोड मेमोरी डेटा) रजिस्टर में रखा जाता है
 * शाखा


 * डब्ल्यूबी - राइटबैक यूनिट
 * आमतौर पर आधुनिक शब्दावली में इसे स्टोर यूनिट कहा जाता है। परिणाम को रजिस्टर फ़ाइल में लिखें, चाहे वह मेमोरी सिस्टम से आए या ALU से।

यह भी देखें

 * शैक्षिक प्रोग्रामिंग भाषा
 * छोटा कंप्यूटर 3|एलसी-3
 * मिक्स, एमएमएक्स
 * MicroBlaze ़
 * माइक्रो सिम
 * ओपनआरआईएससी

बाहरी संबंध

 * The DLX Processor
 * DLX instructions
 * WinDLX
 * DLX Simulator (GNU GPL)
 * ESCAPE DLX Simulator
 * openDLX - opensource DLX-Simulator in Java (GNU GPLv3)
 * Formal verification of VAMP processor
 * ASPIDA asynchronous DLX processor
 * HERA: The Haverford Educational RISC Architecture