क्या आप 32-बिट माइक्रोकंट्रोलर के आसपास कंप्यूटर को आधार बना सकते हैं?


9

हम सभी के घरों में (ज्यादातर) 32-बिट मशीनें हैं। लेकिन 32-बिट मशीनों में एक माइक्रोप्रोसेसर होता है। मैं एआरएम कोर्टेक्स के बारे में एक लेख पढ़ रहा था। इसका 32-बिट माइक्रोकंट्रोलर है। अब जब मेरे अंदर एक सवाल पैदा हो गया। माइक्रोकंट्रोलर एक माइक्रोप्रोसेसर के आसपास बाहरी सर्किटरी को कम करने के लिए बनाए गए थे, फिर माइक्रोप्रोसेसर अधिक शक्तिशाली हो गए जबकि माइक्रोकंट्रोलर बहुत लंबे समय तक 8 बिट रूपों में बने रहे। लेकिन अब जब हमारे पास 32-बिट माइक्रोकंट्रोलर हैं, तो क्या हम उन चीजों के आसपास कंप्यूटर की तरह नहीं हो सकते हैं?


जवाबों:


11

यह इस बात पर निर्भर करता है कि आप 'कंप्यूटर' को कैसे परिभाषित करते हैं।

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

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

एमएमयू के बिना, यदि आप कई प्रक्रियाओं को चलाने की कोशिश करते हैं, तो उन सभी को एक पता स्थान साझा करने के लिए मजबूर किया जाता है, और इसका मतलब है कि जब तक कि सभी प्रक्रियाएं आपकी मेमोरी आवंटन योजना का पालन नहीं करती हैं, एक प्रक्रिया बहुत आसानी से दूसरे को क्रैश कर सकती है। यदि आप सभी प्रक्रियाओं को डिजाइन करने के कुल नियंत्रण में हैं, जैसा कि एक एम्बेडेड सिस्टम के साथ है, तो यह उतना चिंता का विषय नहीं है। हालाँकि, यदि आप सामान्य प्रयोजन अभिकलन का समर्थन करने का प्रयास कर रहे हैं, तो आप गारंटी नहीं दे सकते कि निष्पादित किए जाने वाले सभी कोड मेमोरी आवंटन योजना का सम्मान करेंगे, और सिस्टम बल्कि नाजुक हो जाएगा।

रैम की कमी भी एम्बेडेड सिस्टम के लिए एक समस्या नहीं है, (1) क्योंकि आमतौर पर बहुत सारे फ्लैश होते हैं, और (2) सामान्य उद्देश्य कंप्यूटर नहीं होने का मतलब है कि आपको गैर-प्रत्याशित कार्यक्रमों को चलाने के बारे में चिंता करने की ज़रूरत नहीं है। एक उपयोगकर्ता के इशारे पर। आप समय से पहले जानते हैं कि सिस्टम पर चलने वाले सभी सॉफ़्टवेयर का कुल योग, और उस सॉफ़्टवेयर के लिए केवल चर के लिए RAM की आवश्यकता है। जब आप अपने सिस्टम को एक सामान्य उद्देश्य के कंप्यूटर में बनाने की कोशिश करते हैं, हालांकि, उपयोगकर्ता जो कुछ भी उन्हें चलाने में सक्षम होने की उम्मीद करने जा रहे हैं, और इसके लिए RAM की आवश्यकता होती है।

अब, एमएमयू के बिना उपकरणों पर सामान्य उद्देश्य की गणना करना बिल्कुल ठीक है, और बहुत अधिक स्मृति नहीं। मूल 128K RAM, 8088 आधारित (16 बिट) IBM PC इससे दूर हो गया, जब तक आपको केवल एक समय में एक प्रोग्राम चलाने की आवश्यकता थी।

इसलिए यदि आप 1982 की तकनीक की तरह 'कंप्यूटर' को परिभाषित करना चाहते हैं, तो इसका जवाब निश्चित रूप से हां है। या यदि आपके पास एक बंद प्रणाली है जहां आप सॉफ्टवेयर के डिजाइन को सावधानीपूर्वक नियंत्रित करके MMU और / या बहुत राम (जैसे, सेल फोन) नहीं होने की समस्याओं को कम कर सकते हैं, तो भी हाँ। या, यदि आपके माइक्रो-नियंत्रक में एक अंतर्निहित MMU और RAM का gobs है (या इनको बाह्य रूप से समायोजित कर सकते हैं), तो आपको एक ऐसे सिस्टम का निर्माण करने में सक्षम होना चाहिए जो वर्तमान कंप्यूटरों के समान हो।


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

16

पूर्ण रूप से! वहाँ लगभग हर सेल फोन के रूप में एक नज़र रखना। उदाहरण के लिए, मोटोरोला ड्रॉयड, टीआई ओएमएपी एआरएम आधारित माइक्रोकंट्रोलर का उपयोग करके लिनक्स के शीर्ष पर एंड्रॉइड चला रहा है। मूल रूप से, एक पूर्ण विकसित कंप्यूटर ऑपरेटिंग सिस्टम उस पर और कई अन्य गैजेट्स पर है। मेरे क्लाइंट द्वारा बनाए गए कुछ उत्पादों पर, वे FreeScale PowerQuicc I & II 32-बिट प्रोसेसर / नियंत्रकों का उपयोग करते हैं जो उन पर लिनक्स चला सकते हैं। PowerQuicc की मूल रूप से एक पावरपीसी कोर के साथ-साथ एक अलग RISC प्रोसेसर है जो सभी बाह्य उपकरणों को अत्यधिक विन्यास योग्य तरीके से संभालने के लिए है। यह एक गौरवशाली माइक्रोकंट्रोलर है।

आपको यह भी याद रखना होगा कि वर्षों पहले कंप्यूटर 32-बिट प्रोसेसर पर नहीं चल रहे थे, लेकिन कमोडोर 64 की तरह 8-बिट प्रोसेसर (4-बिट्स बैक तो) जैसे थे। तब वे 16-बिट, 32-बिट पर चले गए , आदि वास्तव में बराबर बिट वास्तुकला और गति के एक माइक्रोप्रोसेसर बनाम एक माइक्रोकंट्रोलर के बीच बहुत अंतर नहीं है। माइक्रोकंट्रोलर्स में आमतौर पर फ्लोटिंग पॉइंट यूनिट का अभाव होता है, लेकिन इसे फिक्स्ड पॉइंट मैथ के साथ बनाया जा सकता है। उदाहरण के लिए, मूल मोटोरोला 68000 प्रोसेसर (16-बिट्स) का उपयोग उन पुराने समय के मैकिन्टोश कंप्यूटरों को बिजली देने के लिए किया गया था और फिर कई एम्बेडेड इलेक्ट्रॉनिक अनुप्रयोगों के लिए एक माइक्रोकंट्रोलर संस्करण में सालों तक घूमता रहा।

यह कैसे उपयोग किया जाता है यह समझने के लिए आपको माइक्रोकंट्रोलर की भूमिका को देखना होगा। आम तौर पर, जब आप एक माइक्रोकंट्रोलर के साथ डिजाइन कर रहे होते हैं, तो आपके पास एक बहुत ही विशिष्ट एप्लिकेशन होता है और आप इसे पीसी टॉवर कहने की तुलना में एक छोटी सी जगह में फिट करने की कोशिश कर रहे हैं। जबकि, कंप्यूटर बहुत ही सामान्य उद्देश्य है: क्रंच नंबर और प्रोसेस यूजर इनपुट। जब आप एक माइक्रोकंट्रोलर की तलाश करते हैं, तो आप एक ऐसा खोज रहे हैं जो आपके एप्लिकेशन के लिए आपके द्वारा बनाए जा रहे इंटरफ़ेस का समर्थन करेगा। क्या आपको 3 USB पोर्ट, 2 ईथरनेट, 2 UARTs, SPI पोर्ट, ATM, और CAN इंटरफ़ेस की आवश्यकता है? इनमें से कुछ इंटरफेस एक विशिष्ट कंप्यूटर पर नहीं आते हैं जैसे कि SPI, ATM, और CAN, और एक माइक्रोकंट्रोलर ने उन्हें बोर्ड स्पेस को कम करने के लिए बनाया है। आप माइक्रोकंट्रोलर्स को एक विशिष्ट समाधान के लिए डिज़ाइन किए गए प्रोसेसर के रूप में देख सकते हैं।


मुझे नहीं लगता कि किसी भी "सामान्य-उद्देश्य वाले कंप्यूटर" ने कभी भी 8-बिट प्रोसेसर की तुलना में कुछ भी छोटा उपयोग नहीं किया। सामान्य-उद्देश्य वाले कंप्यूटरों को प्रयोग करने योग्य प्रोग्राम रखने के लिए पर्याप्त रैम तक पहुंच बनाने में सक्षम होना चाहिए, और मुझे किसी भी चार-बिट कंप्यूटरों की जानकारी नहीं है जिनके पास उपयोग करने योग्य रैम कोड स्टोर है।
सुपरकैट

शायद व्यावसायिक रूप से नहीं, लेकिन बहुत सारे हैकर्स ने मेरे दादाजी को शामिल किया। उनके पास कमोडोर 64 और टीआरएस -80 के लोकप्रिय होने से पहले उनकी कार्यशाला में 4-बिट कंप्यूटर चल रहा था। इसमें रैम भी थी (डीआईपी के ढेर)।
जे। एटकिंसन

क्या आपके पास किसी भी भौतिक रूप से निर्मित 4-बिट वॉन-न्यूमैन-आर्किटेक्चर मशीनों के बारे में कोई दस्तावेज है?
सुपरकैट

5

हम निश्चित रूप से कर सकते हैं। उदाहरण के लिए, iPad अपने मस्तिष्क के लिए ARM Cortex A8 प्रोसेसर का उपयोग करता है।


2
यह एक माइक्रोप्रोसेसर है, न कि एक माइक्रोकंट्रोलर, जैसा कि नीचे जेपीसी नोट करता है
कॉरटुक

3

यह ध्यान देने योग्य है कि उल्लिखित एआरएम (ओएमएपी और ए 8) फ्लैश मेमोरी और रैम के बिना माइक्रोप्रोसेसर हैं (ए 8 के लिए पूरी तरह से सच नहीं हैं)। कॉर्टेक्स-एम 3 माइक्रोकंट्रोलर छोटा है, इसमें छोटी अंतर्निहित मेमोरी है और बाह्य उपकरणों तक आसान पहुंच है।

उनके बीच काफी बड़ा गैप (प्रदर्शन- और फीचर-वार) है।


कॉर्टेक्स-ए और कॉर्टेक्स-एम श्रृंखला के बीच अंतर को इंगित करने के लिए +1 ...
जोहान

1
माइक्रोकंट्रोलर में फ्लैश और रैम है। माइक्रोप्रोसेसर में उनकी मेमोरी बाहरी होती है।
कोर्तुक


2

एक पुराने धागे को पुनर्जीवित करने की कोशिश नहीं कर रहा है, लेकिन मेरे ज़ोरस SL5500 ने एआरएम प्रोसेसर पर एम्बेडेड लिनक्स को रैम के gobs के साथ चलाया, और आगे के भंडारण के CF और SD स्लॉट्स के माध्यम से। जहां तक ​​मुझे पता है कि एमएमयू ज्यादातर सॉफ्टवेयर में लागू किया गया था (वैसे भी एक लिनक्स सिस्टम के लिए समझ में आता है)। सामान्य प्रयोजन कंप्यूटिंग न केवल संभव था, बल्कि तीसरे पक्ष के सॉफ्टवेयर, कंपाइलर और एक लचीली कमांड शेल के माध्यम से पूरी तरह से उपलब्ध कराया गया था जो अधिकांश मानक * निक्स उपयोगिताओं और सुविधाओं को प्रदान करता था।

दुनिया में सबसे तेज जीपी कंप्यूटर नहीं था, लेकिन यकीन है कि एआरएम (और / या सैमसंग समतुल्य हैं - मुझे 100 प्रतिशत यकीन नहीं है कि यह निहित है) भयानक रूप से सक्षम दिखता है। फ़ीचर और प्रदर्शन के लिहाज़ से इसकी तुलना हाल के विंटेज (निश्चित सैमसंग स्ट्रॉन्ग क्लोन) के एक WinMobile Ipaq के साथ काफी अच्छी तरह से की गई। दोनों मशीनों में बहुत सारी रैम और बहुत सारी मेमोरी थी ताकि बहुत सारी मेमोरी मैनेज हो जाए - मुझे लगता है कि इस प्रदर्शन स्तर पर पहुंचने पर हमें माइक्रोप्रोसेसरों और माइक्रोकंट्रोलर्स के बीच की रेखा को थोड़ा धुंधला करना होगा।


2

आप "माइक्रोप्रोसेसरों" और "माइक्रोकंट्रोलर्स" का उल्लेख करते हैं, लेकिन तेजी से डिवाइस की एक तीसरी श्रेणी दिखाई देती है जिसे "एसओसी" के रूप में जाना जाता है (जो "सिस्टम-ऑन-चिप" के लिए खड़ा है, एक शब्द जो मुझे भ्रामक लगता है)

माइक्रोकंट्रोलर्स में बहुत कम मात्रा में रैम होती है और आमतौर पर मेमोरी मैपिंग और बहुत सीमित मेमोरी सुरक्षा नहीं होती है। यह उन्हें सामान्य प्रयोजन कंप्यूटर के रूप में उपयोग करने के लिए खराब अनुकूल बनाता है।

एसओसी को पारंपरिक माइक्रोकंट्रोलर्स के बीच एक मध्य मैदान के रूप में देखा जा सकता है, जिसमें एक चिप और पारंपरिक माइक्रोप्रोसेसर पर एकीकृत सब कुछ होता है, जिसे सपोर्ट सर्किटरी की बड़ी मात्रा में आवश्यकता होती है। एसओसी में प्रोसेसर कोर और पेरीफेरल्स एक चिप पर एकीकृत होते हैं लेकिन माइक्रोकंट्रोलर के विपरीत वे बाहरी मेमोरी का उपयोग करते हैं। आमतौर पर इन SOC में एक पूर्ण MMU होता है जो विभिन्न अनुप्रयोगों के लिए एक वर्चुअल एड्रेस स्पेस बना सकता है। कई SoCs में 3D ग्राफिक्स, DSP, वीडियो एन्कोडिंग / डिकोडिंग आदि के लिए विशेष फ़ंक्शन ब्लॉक भी हैं।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.