माइक्रोकंट्रोलर्स के पास इतनी कम रैम क्यों होती है?


39

हो सकता है कि यह एक अवधारणात्मक समस्या है, लेकिन ऐसा लगता है कि पिछले 20 वर्षों में माइक्रोकंट्रोलर्स ने छलांग और सीमा से आगे बढ़ दिया है, लगभग सभी मामलों में, उच्च गति, अधिक परिधीय, आसान डिबगिंग, 32-बिट कोर आदि।

10 केबी (16/32 केबी) में रैम को देखना अभी भी आम है।

ऐसा नहीं लगता कि यह सीधे तौर पर लागत या आकार का मुद्दा हो सकता है। यह कुछ सीमा से ऊपर रैम नियंत्रक के साथ जटिलता का मुद्दा है?

या यह सिर्फ इतना है कि यह आम तौर पर आवश्यक नहीं है?

एक लोकप्रिय इंटरनेट आपूर्तिकर्ता पर एक हिस्से के मैट्रिक्स को देखते हुए, मैं एक कॉर्टेक्स एम 4 को 256 केबी के साथ यूएस $ 8 से कम के लिए देखता हूं , और फिर कुछ डॉलर के लिए आप कुछ और पा सकते हैं जो रोमलेस हैं, लेकिन यह बहुत विरल लगता है ...

मैं वास्तव में एक अस्थिर भंडारण की एमबी के साथ एक माइक्रोकंट्रोलर की आवश्यकता नहीं है, लेकिन ऐसा लगता है कि किसी को हो सकता है ...


8
शायद एक और तकनीकी कारण है, लेकिन मुझे ऐसा लगता है कि यह बाजारों का सवाल हो सकता है। आप माइक्रोकंट्रोलर का उपयोग करते हैं जब आपके पास ऐसे एप्लिकेशन होते हैं जो उनका उपयोग करते हैं, जब आपको कुछ अधिक शक्ति की आवश्यकता होती है जिसे आप आमतौर पर एक अधिक पूर्ण एम्बेडेड सिस्टम में स्थानांतरित करते हैं।
जारोद क्रिस्टमैन

15
10 केबी। वह तो विशाल है। मेरे गो-टू माइक्रोकंट्रोलर को प्रोटोटाइप करने वाले सामान में उपयोग करने के लिए 68 बाइट्स RAM: en.wikipedia.org/wiki/PIC16x84
slebetman

2
मैंने एक बार 2KB रैम के साथ एक Arduino पर 86B में 3 डी सॉफ्टवेयर रैस्टराइज़र लिखा था। इसने मुझे परेशान कर दिया क्योंकि अगर मेरे पास 10KB या 50KB होता तो मैं वास्तव में स्मृति में वास्तविक मॉडल बनाना शुरू कर सकता था और कुछ दिलचस्प कर सकता था। interesting मैं वास्तव में उस समय बिल्कुल यही सवाल था, और मुझे नहीं लगता कि वर्तमान उत्तर इसे अच्छी तरह से संबोधित करें। हाँ SRAM महंगा है - लेकिन CPU में मेगाबाइट्स कैश हैं जो SRAM से बाहर हैं, और फिर भी वे अभी भी काफी सस्ते हैं। यह एक लंगड़ा बहाना लगता है।
imallett

2
@slebetman किसी भी कारण से आपको 20-वर्षीय माइक्रो पसंद है जब बहुत बेहतर उपकरण अधिक व्यापक रूप से उपलब्ध हैं और सस्ता है?
अंक

3
it seems like somebody mightयहाँ पकड़ है, ज्यादातर लोगों को नहीं है। आप उस चिप पर नेटफ्लिक्स को स्ट्रीम करने के लिए बिल्कुल नहीं जा रहे हैं, और 64K आमतौर पर एक माइक्रो नियंत्रक के साथ जो कुछ भी करने की आवश्यकता है, उसके लिए पर्याप्त से अधिक है । यदि आप उच्च जाना चाहते हैं, तो एक पूर्ण विकसित COMP प्राप्त करें, उदाहरण के लिए, एक रास्पबेरी।
TC1

जवाबों:


44

इसके अनेक कारण हैं।

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

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

बिजली की खपत एक और कारण है। कई एम्बेडेड अनुप्रयोगों में बिजली की कमी होती है, और परिणामस्वरूप कई माइक्रोकंट्रोलर बनाए जाते हैं ताकि उन्हें बहुत कम नींद की स्थिति में रखा जा सके। बहुत कम बिजली की नींद को सक्षम करने के लिए, SRAM का उपयोग इसकी सामग्री को बेहद कम बिजली की खपत के साथ बनाए रखने की क्षमता के कारण किया जाता है। बैटरी समर्थित SRAM अपने राज्य को 3V बटन की बैटरी से अलग रख सकता है। दूसरी ओर, DRAM, एक सेकंड के एक अंश से अधिक के लिए अपना राज्य नहीं रख सकता है। कैपेसिटर इतने छोटे होते हैं कि मुट्ठी भर इलेक्ट्रॉनों को सुरंग से बाहर और सब्सट्रेट में, या सेल ट्रांजिस्टर के माध्यम से रिसाव होता है। इससे निपटने के लिए, DRAM को लगातार पढ़ना चाहिए और वापस लिखा जाना चाहिए। नतीजतन, DRAM बेकार में SRAM की तुलना में काफी अधिक बिजली की खपत करता है।

दूसरी तरफ, SRAM बिट कोशिकाएं DRAM बिट कोशिकाओं की तुलना में बहुत बड़ी हैं, इसलिए यदि बहुत अधिक मेमोरी की आवश्यकता होती है, तो DRAM आमतौर पर एक बेहतर विकल्प है। यही कारण है कि ऑन-चिप कैश मेमोरी को ऑफ-चिप DRAM (MB से GB) की बड़ी मात्रा के साथ SRAM (kB से MB) की थोड़ी मात्रा का उपयोग करना काफी आम है।

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

कई बहुत छोटे एम्बेडेड सिस्टम को वैसे भी बहुत अधिक रैम की आवश्यकता नहीं होती है। यदि आपको बहुत अधिक रैम की आवश्यकता है, तो आप शायद एक उच्च-अंत प्रोसेसर का उपयोग करना चाहते हैं जिसमें ऑनबोर्ड SRAM के बजाय बाहरी DRAM है।


मैंने पैरों के साथ वास्तविक रैम आईसी देखा है और सब कुछ चिपके / प्रोसेसर के ऊपर रखा गया है (जो कि बीजीए पैकेज हैं) और उनमें रूट किया गया है! बोर्ड स्पेस के लिए हम जो चीजें करते हैं !! जैसा कि रूसियों ने अपने डिजाइन की TRIZ पद्धति के साथ इंगित किया है, यदि आप X और Y में स्थान बाहर चलाते हैं, तो Z :)
KyranF

2
+1 SRAM और DRAM के बीच महत्वपूर्ण अंतर के लिए। एसआरएएम विशेष रूप से निष्क्रिय होने पर तेजी से और अधिक ऊर्जा कुशल दोनों है, लेकिन जैसा कि आप ध्यान दें, बहुत अधिक महंगा है और अधिक स्थान की आवश्यकता है।
फिज़ल

मुझे नहीं लगता कि SRAM RAM का सबसे महंगा प्रकार है। फ्लिप फ्लॉप और मल्टीप्लेक्सर्स के संयोजन का उपयोग एक यादृच्छिक अभिगम स्मृति के रूप में किया जा सकता है जो SRAM की तुलना में बेहतर प्रदर्शन की पेशकश करेगा, लेकिन बहुत अधिक सिलिकॉन लागत पर। ऐसी यादें आमतौर पर लगभग 32 शब्दों की तुलना में बहुत बड़ी नहीं होती हैं, लेकिन ऐसी स्मृति एक साथ पढ़ सकती है और उन तरीकों से लिख सकती है जो SRAM नहीं कर सकते।
सुपरकैट

1
सच है, रजिस्टर फ़ाइलें और पूर्ण फ्लिप-फ्लॉप SRAM की तुलना में अधिक महंगे हैं, लेकिन उनका उपयोग सामान्य उद्देश्य प्रणाली मेमोरी के लिए नहीं किया जाता है।
alex.forencich

1
मैंने MCU पर एक काम कर रहे HTTP सर्वर को SRAM के 160kB और किसी बाहरी DRAM के साथ नहीं देखा है। यह कई समानांतर कनेक्शन को संभाल नहीं सका लेकिन यह काम कर गया।
Jan Dorniak

15

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

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

संपादित करें:

एक व्यक्तिगत उपाख्यान के रूप में, मैंने हाल ही में एक छोटे से स्वायत्त रोबोट नियंत्रण बोर्ड बनाया है, जिसका उपयोग इसे गति का पता लगाने और ऑब्जेक्ट ट्रैकिंग और निम्न जैसे कम रिज़ॉल्यूशन कंप्यूटर विज़न के लिए किया जाता है। मैंने इस कार्य के लिए एक कम पिन-गिनती ARM Cortex M3 को चुना और अपने SAM3 श्रृंखला प्रोसेसर के Atmel के चयन को देखते हुए, मैं वास्तव में उच्चतम रैम के लिए चला गया जिसे मैं पा सकता था - क्योंकि इस मामले में मैं एक बाहरी RAM IC नहीं खरीदना चाहता था बोर्ड की जगह और पीसीबी पर एक उच्च गति रैम मेमोरी बस की जटिलता नहीं चाहते हैं। मेरे विशेष आवेदन के लिए इस मामले में, मुझे बहुत अधिक पसंद है यदि संभव हो तो कई 100 केबी से अधिक रैम का विकल्प होगा।


अच्छी बात यह है कि मैंने बिजली की खपत के बारे में सोचा भी नहीं था ...
ग्रैडी प्लेयर

4
"और रैम अस्थिर है, लेकिन उपयोग करने के लिए बहुत तेज़ है, यह राज्य रखने के लिए लगातार बिजली का उपयोग करता है"। CMOS तर्क, SRAM शामिल है, जब राज्य नहीं बदल रहा है तो बहुत कम शक्ति का उपयोग करता है। ध्यान दें कि अधिकांश माइक्रोकंट्रोलर बेहद कम खपत वाले पावर डाउन मोड में भी अपनी रैम सामग्री को बनाए रखते हैं।
क्रिस स्ट्रैटन

@ChrisStratton: मैं माइक्रोकंट्रोलर्स के एक नंबर देखा है, एक जोड़ी विभिन्न निर्माताओं से, मोड कि शट डाउन के साथ कुछ उनके राम की शक्ति को बचाने के लिए है, हालांकि कुछ हद तक annoyingly लोगों मैंने देखा है रैम संचालित करने की अनुमति नहीं है सिस्टम रीसेट के बिना। यह निश्चित नहीं है कि उस बाद के प्रतिबंध का उद्देश्य क्या है; अगर मुझे कुछ ऑपरेशनों के दौरान अस्थायी स्टोरेज के लिए RAM का एक बड़ा हिस्सा चाहिए, लेकिन अन्यथा नहीं, तो मैं यह नहीं देखता कि मुझे ज़रूरत पड़ने पर बिजली नहीं देनी चाहिए और जब नहीं, लेकिन मैंने ऐसा नहीं देखा है सुविधा।
सुपरकैट

14

अन्य उत्तरों में लाए गए उत्कृष्ट बिंदुओं के अलावा, सीमित रैम का एक और कारण माइक्रोकंट्रोलर की वास्तुकला है। उदाहरण के लिए, माइक्रोचिप PIC10LF320 लें, जिसमें केवल 448 बाइट्स प्रोग्राम (फ्लैश) मेमोरी और 64 बाइट्स रैम है। लेकिन बड़ी मात्रा में शायद इसकी कीमत केवल 25ȼ (या इससे कम) होती है। PIC10 निर्देश शब्द (12 बिट्स) का सीमित आकार इसे केवल 128 बाइट्स रैम को सीधे संबोधित करने की अनुमति देता है।

मुझे यकीन है कि वहाँ अन्य माइक्रोकंट्रोलर हैं जो केवल 8-बिट एड्रेस बस हैं, उन्हें 256 बाइट्स रैम तक सीमित किया गया है।

लेकिन अधिकांश मिड-रेंज माइक्रोकंट्रोलर्स (यहां तक ​​कि 8-बिट डेटा पथ वाले) में 16-बिट एड्रेस बस है। इन चिप्स के लिए एक प्रमुख वास्तुशिल्प विचार यह है कि क्या चिप हार्वर्ड या वॉन न्यूमैन वास्तुकला का उपयोग करता है ।

अधिकांश माइक्रोकंट्रोलर हार्वर्ड आर्किटेक्चर का उपयोग करते हैं, जिसमें प्रोग्राम मेमोरी, रैम और मेमोरी-मैप्ड I / O पते के लिए अलग-अलग 16-बिट एड्रेस स्पेस हैं। तो इन के लिए, 16-बिट पता बस 64K (65,536) रैम तक बाइट्स तक पहुंच सकता है। वास्तुकला द्वारा रखी गई 64K की सीमा अभी भी है, और यदि कोई ऊपर जाना चाहता है तो किसी प्रकार के पेजिंग का उपयोग करना चाहिए। रैम स्पेस के बजाय प्रोग्राम स्पेस के लिए पेजिंग करना बहुत आम है।

वॉन न्यूमैन आर्किटेक्चर का उपयोग करने वाले माइक्रोकंट्रोलर्स, जैसे कि फ्रीस्केल HCS08 लाइन, में प्रोग्राम मेमोरी, रैम और मैमोरी-मैप्ड I / O के बीच विभाजित केवल एक एड्रेस स्पेस है। उचित मात्रा में प्रोग्राम स्पेस होने के लिए, यह रैम की मात्रा को आमतौर पर 4K या 8K तक सीमित करता है। फिर, कोई उपलब्ध प्रोग्राम या रैम स्पेस को बढ़ाने के लिए पेजिंग का उपयोग कर सकता है।


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

@ लुंडिन सहमत, आपको बहुत सावधानी से मूल भाषा में PIC10 और PIC12 को प्रोग्राम करना है । नए PIC12F और PIC16F उपकरणों में अब 16-स्तरीय हार्डवेयर स्टैक और 14 नए निर्देश हैं। कुछ सिर्फ सी के लिए जोड़े गए हैं, इसलिए वे बहुत अधिक उपयोग करने योग्य हैं।
tcrosley

@ लुंडिन: 12- और 14-बिट इंस्ट्रक्शन की लंबाई वाली पीआईसी चिप्स कोड डेंसिटी के हिसाब से काफी सभ्य थीं। PIC18F कोड घनत्व वास्तव में बैंक स्विचिंग की अत्यधिक मात्रा के कारण हाईटेक कंपाइलर का उपयोग करते समय गिरने की प्रवृत्ति थी, जो आमतौर पर आवश्यक था।
20

7

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

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

ध्यान रखें कि एक समय में, कच्चे ग्राफिक्स के साथ प्रसिद्ध वीडियो गेम लेकिन "पीएसी मैन" और "स्पेस आक्रमणकारियों" जैसे जटिल गेम लॉजिक आमतौर पर 8K ROMS के भीतर होते थे, जिन मशीनों पर मुश्किल से 8 या 16 KB RAM होती थी!


एसडी कार्ड के बारे में क्या? SDHC कार्ड को 256 या 512 बाइट्स के बफर की आवश्यकता नहीं है (मानक / पुराने एसडी कार्ड अब निर्मित नहीं हैं)?
पीटर मोर्टेंसन

अटारी 2600 वीडियो कंप्यूटर सिस्टम के लिए पीएसी मैन का संस्करण 4K रॉम था, और वीसीएस में स्वयं 128 बाइट्स रैम था। कई आर्केड मशीनों में रोम और रैम का काफी अच्छा हिस्सा था, हालांकि, युग के घरेलू कंप्यूटरों की तुलना में। मुझे लगता है कि डिफेंडर, उदाहरण के लिए, 32K या ROM और 64K RAM था, हालांकि 32K RAM सीपीयू के दृष्टिकोण से "राइट-ओनली" था (प्रोसेसर वहां डेटा डालेगा जो डिस्प्ले हार्डवेयर मॉनीटर के लिए बाहर होगा) ।
सुपरकैट

@PeterMortensen कई एसडी कार्ड में फ्लैश को प्रबंधित करने के लिए किसी प्रकार का एक एकीकृत सीपीयू होता है। कुछ कार्डों में एक पूर्ण 32 बिट एआरएम कोर होता है, जिसमें संभवतया 16 या 32K की रैम लगी होती है।
अलेक्स.फोन्निच

@ alex.forencich: हाँ, लेकिन SDHC SD कार्ड के संचालन के लिए SPI इंटरफ़ेस को होस्ट कार्ड (बफर सिस्टम / माइक्रोकंट्रोलर) पर बफर की आवश्यकता नहीं है - पुराने कार्ड के विपरीत? यही है, बिट एड्रेसिंग नए (SDHC) कार्ड के लिए संभव नहीं है? या यह केवल फाइल सिस्टम पर निर्भर है (अभी भी संभव को संबोधित करते हुए)? क्या नए कार्डों में ब्लॉक ट्रांसफ़र की आवश्यकता नहीं है (और इस तरह 256 या 512 बाइट्स के बफर की आवश्यकता होती है)?
पीटर मोर्टेंसन

हां, 512B, अगर मुझे याद है। आप डेटा के पहले एक्स बाइट्स को त्यागने के लिए एक असमान एसडी कार्ड ड्राइवर लिख सकते हैं -> कोई "बड़े" बफर की आवश्यकता नहीं है।
डोमन

3

लागत और विनिर्माण के बारे में उत्कृष्ट बिंदुओं के अलावा, बहुत सारे ऑन-चिप रैम की आश्चर्यजनक रूप से बहुत कम मांग है।

मैं अक्सर kB रेंज (1kB, 2kB) में kB (16kB, 32kB) और RAM में दसियों फ्लैश के साथ माइक्रोकंट्रोलर के साथ काम करता हूं। मैं अक्सर फ्लैश से बाहर चलाता हूं, और लगभग कभी भी रैम से बाहर नहीं निकलता। मेरी अधिकांश परियोजनाओं में मैं फ्लैश सीमा के बहुत करीब हूं, लेकिन आमतौर पर 20% से कम रैम की आवश्यकता होती है।

अधिकांश बहुत छोटे माइक्रोकंट्रोलर्स की दो अलग-अलग भूमिकाएँ होती हैं:

  • विनियमन और नियंत्रण: उन्हें मशीनरी के एक टुकड़े को नियंत्रित करना होगा। यहां तक ​​कि एक जटिल नियंत्रक एल्गोरिथ्म के मामले में, जो दसियों kB कोड स्थान ले सकता है, बहुत कम रैम की आवश्यकता होती है। आप एक भौतिक प्रक्रिया के नियंत्रण में हैं, और कुछ भौतिक इकाइयों वाले चर हैं, और लूप काउंटर के रूप में कुछ चर भी हो सकते हैं। ज्यादा की जरूरत नहीं।

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


2

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

मैं कहने की हिम्मत करता हूँ कि एम्बेडेड SRAM की मात्रा के लिए MCU के मूल्य टैग को जोड़ने के वास्तविक कारण मुख्य रूप से विपणन कारण हैं, लागत के कारण नहीं:

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

  • उपलब्ध SRAM की राशि सीधे उस जटिलता के स्तर से संबंधित है जिसे आप अपने MCU में एम्बेड कर पाएंगे, चाहे वह थर्ड पार्टी लाइब्रेरी के साथ हो या अपने स्वयं के रोल आउट कोड के साथ हो। तो यह एक "प्राकृतिक" मीट्रिक है जो आपके एमसीयू की कीमतों के आधार पर सेगमेंट में है। तकनीकी ग्राहक के लिए यह स्वीकार करना समझ में आता है कि अधिक जटिल कार्यों (अधिक SRAM, अधिक फ्लैश स्टोरेज) में सक्षम MCU की लागत अधिक होनी चाहिए। मूल्य, यहां, MCU के अंतर्निहित मूल्य (क्षमताओं को वितरित करने) का एक प्रतिबिंब है। फ्लैश स्टोरेज को आमतौर पर SRAM के अनुपात में दिया जाता है।

  • इसके विपरीत, यदि आप डेस्कटॉप और मोबाइल सीपीयू बाजार लेते हैं, तो आप आमतौर पर कई अलग-अलग SRAM आकारों के साथ एक विशिष्ट MCU / CPU का स्रोत नहीं बना सकते। इसके बजाय, मूल्य निर्धारण स्कीमा आमतौर पर MCU / CPU की निष्पादन / प्रदर्शन क्षमताओं के शीर्ष पर बनाया गया है: आवृत्ति, कोर की संख्या, बिजली दक्षता ...


मुझे लगता है कि यह शायद सही है, लेकिन क्या इसके सबूत हैं? चिप को बेचने के लिए निशान लगाने के समान है जैसे कि चिप बी?
ग्रैडी प्लेयर

उम्म ... दिलचस्प सोचा। मेरे पास ऐसी प्रथाओं का सबूत नहीं है। हालांकि, यह अंतर्निहित विनिर्माण लागतों के बारे में एक दिलचस्प सवाल लाता है। क्या यह अधिक महंगा होगा कि सिलिकॉन चिप (वेफर) की व्यर्थ अचल संपत्ति कम एसआरएएम आकार की एसआरएएम आकार की चिप को खरोंच कर दे? या बढ़ी हुई विनिर्माण और इन्वेंट्री लागत एक उपकरण नहीं बल्कि दो निर्माण से जुड़ी है? मुझे डर है कि पूरा इलेक्ट्रॉनिक्स उद्योग अपनी लागतों पर खुलकर चर्चा करने के बारे में बहुत चुस्त है। हम इसे कभी नहीं जान सकते।
jose.angel.jimenez

1
साक्ष्य के लिए: MT6250 एक मल्टी-डाई चिप है, जिसका उपयोग सिंगल चिप फीचर फोन के लिए किया जाता है, इसकी कीमत $ 2 से कम होती है और यह mcu की तुलना में बहुत अधिक जटिल होता है, और इसमें 8MB का sram die भी शामिल होता है। यह समान का उपयोग करते हुए बनाने के लिए तुच्छ होगा। प्रौद्योगिकी SRAM रिच mcu।
hulkingticket

यह एक अच्छा जवाब होगा "क्यों MCU का मूल्य टैग एम्बेडेड SRAM की राशि से जुड़ा हुआ है?"। लेकिन यह मूल प्रश्न का उत्तर नहीं देता है। क्यों 512 केबीआरएआरएएम ऑन-चिप के साथ इतने कम माइक्रोकंट्रोलर उपलब्ध हैं, किसी भी कीमत पर? SRAM के "अजीब" गैर-पावर-ऑफ़-2 आकारों के साथ इतने सारे माइक्रोकंट्रोलर क्यों हैं, जब समर्पित SRAM चिप निर्माताओं को लगता है कि कम इन्वेंट्री लागत इसे पावर-ऑफ -2 आकार में केवल समर्पित SRAM चिप्स बनाने के लायक बनाती है?
16

1

तो पहले आपको यह विचार करना होगा कि 16 केबी या 32 केबी भारी मात्रा में मेमोरी है और आज के समय में बेचे जाने वाले अधिकांश माइक्रोकंट्रोलर में इतनी बड़ी मात्रा में रैम नहीं होती है।

कई माइक्रोकंट्रोलर कार्यक्रमों को 10 या 50 बाइट्स मेमोरी की आवश्यकता होती है। यहां तक ​​कि अधिक जटिल सामान की जरूरत ज्यादातर सैकड़ों बाइट्स में होती है।

मूल रूप से तीन उपयोग मामले हैं जहां आपको KBytes के क्रम में RAM की आवश्यकता होती है: क) जब आपके माइक्रोकंट्रोलर ग्राफिक्स बी करते हैं) जब आप बड़े अनियंत्रित गणनाओं के लिए माइक्रोकंट्रोलर का उपयोग करते हैं c) जब आप पीसी इंटरफेस के साथ इंटरफेस करते हैं

कृपया ध्यान दें कि यदि आप माइक्रोकंट्रोलर रैम के बारे में बात करते हैं तो आप लेवल 0 / लेवल 1 कैश के बारे में बात करते हैं। यदि आप समझते हैं कि एक इंटेल हैसवेल में "केवल" 64 केबी का स्तर 1 कैश है तो आप एक माइक्रोकंट्रोलर के रैम आकार पर पुनर्विचार करेंगे।

तीसरा आप किसी भी मात्रा में बाहरी रैम को एक माइक्रोकंट्रोलर में संलग्न कर सकते हैं, विशेष रूप से इससे भी अधिक आप एक सीपीयू को संलग्न कर सकते हैं।

व्यक्तिगत रूप से मैं कई माइक्रोकंट्रोलर एप्लिकेशन विकसित कर रहा हूं और मुझे कभी भी 1 KB मेमोरी की आवश्यकता नहीं थी और न ही इससे अधिक। मैंने कभी भी बाहरी रैम का इस्तेमाल नहीं किया।

अगर हम ROM (आज फ़्लैश) में आते हैं तो चीजें अलग हैं, क्योंकि आपका प्रोग्राम और डेटा रोम में है। वास्तव में कई एप्लिकेशन हैं जहां आप अपने माइक्रोकंट्रोलर को बाहरी रॉम संलग्न करते हैं, क्योंकि आपके पास कई डेटा हैं।

आइए एक उदाहरण की जांच करें: चलो एक माइक्रोकंट्रोलर एप्लिकेशन का विश्लेषण करते हैं और हम एक पोर्टेबल एमपी 3 प्लेयर को डिस्प्ले और 4 गीगाबाइट्स फ्लैश के साथ लेते हैं।

इस एप्लिकेशन के लिए आपको शायद 1 केबी रैम की जरूरत है। यह काम करने के लिए पर्याप्त है। हालाँकि, आप बड़े बफ़र्स के लिए USB से लेकर फ्लैश राइटिंग तक कुछ और रैम का इस्तेमाल कर सकते हैं।

अब आप अंतर देखते हैं: एक विशिष्ट पीसी रैम में सभी प्रोग्राम और डेटा रखता है। इसलिए इसमें बहुत सारी रैम की जरूरत होती है। माइक्रोकंट्रोलर के लिए यह सब फ्लैश / रोम में है।


2
आप कई अनुप्रयोगों में रैम का उपयोग कम करते हैं। एक बड़ी राशि से नहीं, लेकिन शायद उदाहरण के आधार पर 10-100 के कारक द्वारा। एमपी 3 खिलाड़ियों को डिजिटल सिग्नल प्रोसेसिंग करनी होती है।
जेसन एस

मैं जानना चाहता हूं कि आप दोनों में से ये बातें क्यों कह रहे हैं। किस प्रकार के सी कमांड के लिए RAM की आवश्यकता होती है। यह कहने के बजाय "इन अनुप्रयोगों के लिए अधिक रैम की आवश्यकता होती है," मैं पसंद करूंगा "इन कार्यों के लिए अधिक रैम की आवश्यकता होती है, क्योंकि ..."
फ्रेडरिक

-1

MCU डिजाइन करते समय, आपको उन परिस्थितियों का सामना करना पड़ता है जो पीसी पर महत्वपूर्ण नहीं हैं।

  1. सहनशीलता

    घटकों का चयन करने के लिए, आप सबसे अच्छा या / और सबसे उच्च प्रदर्शन भागों को स्वाभाविक रूप से नहीं लेते हैं, लेकिन जो कई वर्षों के उपयोग के बाद उचित रूप से चलने के लिए सिद्ध हुए हैं, वे कई वर्षों तक उपलब्ध रहेंगे और 24/7 तक चलने में सक्षम हैं वर्षों। इस परिस्थिति के कारण, यदि कोई नियंत्रक कई वर्षों से बाजार में है, तो अपना काम ठीक कर रहा है, ऐसा लगता है कि आज पीसी मानक की तुलना में खराब रैम है। लेकिन वैसे भी, यह अपना काम ठीक करता है, और अगर इंजीनियरिंग अच्छी थी, तो प्रतिस्थापन की कोई आवश्यकता नहीं होनी चाहिए।

  2. अंतरिक्ष

    माइक्रोप्रोसेसर इकाइयों का शाब्दिक रूप से माइक्रो हैं। आपको आवश्यक स्थान को पूर्ण न्यूनतम तक काटना होगा। बेशक, आप 10-वर्षीय 64 केबी चिप्स के समान स्थान पर 256 एमबी प्राप्त कर सकते हैं। यह वह जगह है जहां # 1 बिंदु पर आता है।

  3. कीमत

    न केवल खरीद मूल्य, बल्कि बिजली की खपत भी। आप एक MCU डिज़ाइन नहीं करना चाहते हैं जिसका एंट्री-सिस्टम पर नियंत्रण है, जिसे 1000 W की आवश्यकता है, यदि आपके व्यवसाय में प्रतिद्वंद्वी के पास केवल 25 डब्ल्यू की आवश्यकता है और निश्चित रूप से, सस्ती खरीद मूल्य (एक ही गुणवत्ता पर) है हमेशा बेहतर।


1
यह वास्तव में उच्च शक्ति का माइक्रोप्रोसेसर है!
KyranF

2
मैं अनुमान लगा रहा हूं कि 1kW MCU बहुत लंबे समय तक ठोस अवस्था में नहीं रहेगा।
डैन ब्रायंट

1
पीसी डिजाइन में आजकल सभी तीन बिंदु बेहद महत्वपूर्ण हैं।

@KyranF: हां, दोनों नंबरों को 100 से विभाजित करें। लेकिन अगर कुछ भी हो, तो उन्हें बैटरी अनुप्रयोगों के लिए उच्च प्रदर्शन प्रोसेसर और कम पावर माइक्रोकंट्रोलर के बीच सापेक्ष शक्ति अंतर को समझा जाता है।
बेन वोइग्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.