निओस II

निओस II (Nios II) एक 32-बिट अंतर्निहित प्रोसेसर आर्किटेक्चर है जिसे विशेष रूप से फील्ड-प्रोग्रामेबल गेट ऐरे (FPGA) एकीकृत परिपथों के अल्टेरा वर्ग के लिए डिज़ाइन किया गया है। निओस II (Nios II) में मूल निओस II (Nios II) आर्किटेक्चर पर कई संवर्द्धन सम्मिलित हैं, जो इसे डिजिटल सिग्नल प्रोसेसिंग (DSP) से लेकर सिस्टम-कंट्रोल तक अंतर्निहित कंप्यूटिंग अनुप्रयोगों की विस्तृत श्रृंखला के लिए अधिक उपयुक्त बनाता है।

निओस II (Nios II) 2000 में प्रस्तुत किए गए अल्टेरा के पहले समनुरूप करने योग्य 16-बिट अंतर्निहित प्रोसेसर निओस II (Nios II) का उत्तराधिकारी है।

मुख्य विशेषताएं
मूल निओस (Nios) की तरह, निओस II (Nios II) आर्किटेक्चर एक आरआईएससी (RISC) सॉफ्ट-कोर आर्किटेक्चर है, जो अल्टेरा एफपीजीए (FPGAs) के प्रोग्राम करने योग्य लॉजिक और मेमोरी ब्लॉक में पूरी तरह से कार्यान्वित किया गया है। अपने पूर्ववर्ती के विपरीत यह पूर्ण 32-बिट डिज़ाइन है-


 * 32 सामान्य-उद्देश्य 32-बिट रजिस्टर,
 * पूर्ण 32-बिट निर्देश सेट, डेटा पथ और पता स्थान,
 * एकल-निर्देश 32 × 32 को गुणा और विभाजित करके 32-बिट परिणाम उत्पन्न करता है।

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

कस्टम निर्देश
मूल निओस II (Nios II) निर्देशों के समान, उपयोगकर्ता-परिभाषित निर्देश दो 32-बिट स्रोत रजिस्टरों से मान स्वीकार करते हैं और वैकल्पिक रूप से 32-बिट गंतव्य रजिस्टर में परिणाम वापस लिखते हैं। कस्टम निर्देशों का उपयोग करके, सिस्टम डिज़ाइनर प्रदर्शन लक्ष्यों को पूरा करने के लिए सिस्टम हार्डवेयर को ठीक कर सकते हैं और साथ ही डिज़ाइनर सी (C) में मैक्रो के रूप में निर्देश को आसानी से संभाल सकते हैं।

कस्टम बाह्य उपकरण
प्रदर्शन-महत्वपूर्ण प्रणालियों के लिए जो कोड के विशिष्ट खंड को निष्पादित करने वाले अधिकांश सीपीयू (CPU) चक्रों को खर्च करते हैं, उपयोगकर्ता-परिभाषित उपकरण संभावित रूप से उपयोगकर्ता-परिभाषित हार्डवेयर लॉजिक के लिए सॉफ़्टवेयर-एल्गोरिदम के निष्पादन के सभी भाग या सभी को ऑफ़लोड कर सकता है, शक्ति-दक्षता या एप्लिकेशन संदेश प्रवाह में सुधार कर सकता है।

मेमोरी प्रबंधन इकाई
क्वार्टस 8.0 के साथ प्रस्तुत किया गया, वैकल्पिक एमएमयू निओस II (MMU Nios II) को ऑपरेटिंग सिस्टम चलाने में सक्षम बनाता है जिसके लिए हार्डवेयर-आधारित पृष्ठीकरण और सुरक्षा की आवश्यकता होती है, जैसे कि लिनक्स कर्नेल। एमएमयू (MMU) के बिना, निओस (Nios) ऑपरेटिंग सिस्टम तक ही सीमित है जो एक सरलीकृत सुरक्षा और आभासी मेमोरी-मॉडल का उपयोग करते हैं- उदाहरण के लिए, μक्लिनक्स (μClinux) और फ्रीआरटीओएस (FreeRTOS)।

मेमोरी सुरक्षा इकाई
क्वार्टस 8.0 के साथ प्रस्तुत किया गया, वैकल्पिक एमपीयू (MPU) एमएमयू (MMU) द्वारा प्रदान की जाने वाली मेमोरी सुरक्षा प्रदान करता है, लेकिन एक सरल प्रोग्रामिंग मॉडल के साथ और एमएमयू (MMU) से जुड़े प्रदर्शन उपरिव्यय के बिना।

निओस II सीपीयू (CPU) वर्ग
निओस II (Nios II) उत्कृष्ट को 3 अलग-अलग विन्यास में प्रस्तुत किया गया है- निओस II/एफ (f) (तीव्र), निओस II/एस (s) (मानक), और निओस II/ई (e) (किफायती)। निओस II gen2 को 2 अलग-अलग विन्यास में प्रस्तुत किया गया है- निओस II/एफ (f) (तीव्र), और निओस II/ई (e) (किफायती)।

निओस II/एफ (f)
निओस II/एफ (f) कोर को कोर आकार की कीमत पर अधिकतम प्रदर्शन के लिए डिजाइन किया गया है। निओस II/एफ (f) की विशेषताओं में सम्मिलित हैं-
 * अलग निर्देश और डेटा कैश (512 बी से 64 केबी)
 * वैकल्पिक एमएमयू (MMU) या एमपीयू (MPU)
 * 2 जीबी तक बाहरी पता स्थान तक पहुंच
 * निर्देशों और डेटा के लिए वैकल्पिक दृढ़ता युग्मित मेमोरी
 * अधिकतम डीएमआईपीएस(DMIPS)/मेगाहर्ट्ज (MHz) प्राप्त करने के लिए छह चरण की पाइपलाइन
 * एकल-चक्र हार्डवेयर गुणा और बैरल शिफ्टर
 * वैकल्पिक हार्डवेयर विभाजन विकल्प
 * गतिशील शाखा पूर्वानुमान
 * 256 कस्टम निर्देश और असीमित हार्डवेयर त्वरक तक
 * जेटीएजी (JTAG) डीबग मॉड्यूल
 * वैकल्पिक जेटीएजी (JTAG) डिबग मॉड्यूल संवर्द्धन, जिसमें हार्डवेयर विराम बिंदु, डेटा प्रेरक और वास्तविक समय अनुरेख सम्मिलित हैं।

निओस II/एस (s)
निओस II/एस (s) कोर को प्रदर्शन और लागत के बीच संतुलन बनाए रखने के लिए डिज़ाइन किया गया है। यह कोर कार्यान्वयन अब अल्टेरा क्वार्टस II v.17 और नए के लिए समर्थित नहीं है। निओस II/एस (s) की विशेषताओं में सम्मिलित हैं-
 * निर्देश कैश
 * 2 जीबी तक बाहरी पता स्थान
 * निर्देशों के लिए वैकल्पिक दृढ़ता युग्मित मेमोरी
 * पांच चरण पाइपलाइन
 * स्थिर शाखा पूर्वानुमान
 * हार्डवेयर गुणा, विभाजन और शिफ्ट विकल्प
 * 256 कस्टम निर्देश तक
 * जेटीएजी (JTAG) डिबग मॉड्यूल
 * वैकल्पिक जेटीएजी (JTAG) डिबग मॉड्यूल संवर्द्धन, जिसमें हार्डवेयर विराम बिंदु, डेटा प्रेरक और वास्तविक समय अनुरेख सम्मिलित हैं

निओस II/ई (e)
निओस II/ई (e) कोर को एफपीजीए (FPGAs) के सबसे छोटे संभावित लॉजिक उपयोग के लिए डिज़ाइन किया गया है। यह विशेष रूप से कम लागत वाले साइक्लोन II एफपीजीए (FPGA) एप्लिकेशनों के लिए कुशल है। निओस II/ई (e) की विशेषताओं में सम्मिलित हैं-
 * 2 जीबी तक बाहरी पता स्थान
 * जेटीएजी (JTAG) डिबग मॉड्यूल
 * 700 एलई (LEs) से कम में संपूर्ण सिस्टम
 * वैकल्पिक डीबग संवर्द्धन
 * 256 कस्टम निर्देश तक
 * नि: शुल्क, कोई लाइसेंस की आवश्यकता नहीं है

एवलॉन स्विच फैब्रिक इंटरफ़ेस
निओस II (Nios II) एवलॉन स्विच फैब्रिक का उपयोग अपने अंतर्निहित बाह्य उपकरणों के इंटरफ़ेस के रूप में करता है। एक प्रोसेसर-आधारित प्रणाली में पारंपरिक बस की तुलना में, जो समय में केवल बस मास्टर को बस का उपयोग करने देता है, एवलॉन स्विच फैब्रिक, दास-पक्ष मध्यस्थता योजना का उपयोग करके, कई मास्टर्स को एक साथ संचालित करने देता है।

विकास प्रक्रियाएँ
निओस II (Nios II) के विकास में दो अलग-अलग चरण होते हैं- हार्डवेयर निर्माण और सॉफ्टवेयर निर्माण।

अंतर्निहित डिज़ाइन सूट (ईडीएस) नामक अल्टेरा एप्लिकेशन के अंदर विकास को होस्ट किया जाता है। ईडीएस (EDS) में हार्डवेयर और सॉफ्टवेयर दोनों को दो अलग-अलग चरणों में प्रबंधित करने के लिए एक पूर्ण एकीकृत विकास वातावरण सम्मिलित है-

हार्डवेयर उत्पादन प्रक्रिया
निओस II (Nios II) हार्डवेयर डिज़ाइनर निओस (Nios) सिस्टम को समनुरूप करने और उत्पन्न करने के लिए क्यूसिस (Qsys) सिस्टम एकीकरण टूल, क्वार्टस-II पैकेज के घटक का उपयोग करते हैं। विन्यास ग्राफिकल यूजर इंटरफेस (जीयूआई) उपयोगकर्ताओं को निओस-II के विशेषता-समूह को चुनने और अंतर्निहित सिस्टम में उपकरण और आई/ओ (I/O)-ब्लॉक (टाइमर, मेमोरी-कंट्रोलर, सीरियल इंटरफ़ेस इत्यादि) जोड़ने की अनुमति देता है। जब हार्डवेयर विनिर्देश पूरा हो जाता है, तो क्वार्टस-II चयनित एफपीजीए (FPGA) लक्ष्य पर पूरे सिस्टम को कार्यान्वयन करने के लिए संश्लेषण, स्थान और मार्ग का प्रदर्शन करता है।

क्यूसिस (Qsys) पुराने एसओपीसी (SOPC) (सिस्टम-ऑन-ए-प्रोग्रामेबल-चिप) बिल्डर की जगह ले रहा है, जिसका उपयोग निओस II (Nios II) सिस्टम बनाने के लिए भी किया जा सकता है, और नई परियोजनाओं के लिए इसकी अनुशंसा की जा रही है।

सॉफ्टवेयर निर्माण प्रक्रिया
अंतर्निहित डिजाइन सूट (ईडीएस) नामक एक अलग पैकेज, सॉफ्टवेयर विकास का प्रबंधन करता है। एक्लिप्स आईडीई (IDE) के आधार पर, ईडीएस (EDS) में सी/सी++ (C/C++) संकलक (जीएनयू (GNU) उपकरण श्रृंखला पर आधारित), दोषमार्जक और निर्देश-सेट अनुरूपक सम्मिलित है। ईडीएस (EDS) प्रोग्रामर्स को अनुरूपक में अपने एप्लिकेशन का परीक्षण करने या वास्तविक एफपीजीए (FPGA) होस्ट पर उनके संकलित एप्लिकेशन को डाउनलोड करने और चलाने की अनुमति देता है।

क्योंकि सी/सी++ (C/C++) विकास-श्रृंखला जीसीसी (GCC) पर आधारित है, लिनक्स के लिए अधिकांश मुक्त स्रोत सॉफ्टवेयर न्यूनतम या बिना किसी संशोधन के संकलित और चलते हैं। तीसरे पक्ष के ऑपरेटिंग सिस्टम को भी निओस II (Nios II) में पोर्ट किया गया है। इनमें माइक्रीम माइक्रोसी/ओएस-II (MicroC/OS-II), ईकोस (eCos), सेगर माइक्रोकंट्रोलर एम्बओएस (embOS), चिबिओस(OS)/आरटी (RT), μसीलिनक्स (μCLinux) और फ्रीआरटीओएस (FreeRTOS) सम्मिलित हैं।

अनुज्ञापन
निओस II (Nios II) की तुलना माइक्रोब्लेज से की जा सकती है, जो कि एफपीजीए (FPGA) के ज़िलिंक्स वर्ग के लिए प्रतिस्पर्धी सॉफ्टकोर सीपीयू (CPU) है। माइक्रोब्लेज के विपरीत, निओस II (Nios II) तृतीय-पक्ष आईपी (IP) प्रदाता, सिनॉप्सिस डिजाइनवेयर के माध्यम से मानक-सेल एएसआईसी (ASICs) के लिए लाइसेंस योग्य है। डिजाइनवेयर लाइसेंस के माध्यम से, डिजाइनर निओस-आधारित डिजाइनों को एफपीजीए (FPGA)-प्लेटफॉर्म से बड़े पैमाने पर उत्पादन एएसआईसी (ASIC)-उपकरण में पोर्ट कर सकते हैं।

यह भी देखें

 * लैटिसमाइको8
 * लैटिसमाइको32
 * माइक्रोब्लेज़
 * पिकोब्लेज़
 * मिकॉन P200

बाहरी संबंध

 * Intel's site about Nios II
 * Nios II Embedded Design Suite forum
 * Nios community wiki
 * RTEMS real-time operating system
 * Cornell ECE576 Microcontroller course using NiosII
 * FreeRTOS demo documentation for NiosII
 * UPB ECE31289 course using Nios II