यह कैसे पता करें कि क्या माइक्रोप्रोसेसर काफी शक्तिशाली है


9

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

मेरे पास वर्तमान में रास्पबेरी पाई पर सफलतापूर्वक मीडिया स्ट्रीमिंग परियोजना है, हालांकि पाई एक बड़ी डिवाइस के लिए बहुत बड़ी और भारी है। यह भी कहा गया है कि अंतिम डिवाइस कस्टम है। मुझे प्रोसेसर में विश्वास पाने में एक कठिन समय मिल रहा है जिसका मैं उपयोग कर सकता हूं।

क्या यह पता लगाने के लिए एक अच्छी प्रक्रिया है कि क्या एक प्रोसेसर मेरे आवेदन को चलाने के लिए पर्याप्त शक्तिशाली है?

मूल रूप से मेरी आवश्यकताएं हैं:

  • वाईफाई ऑपरेशन के लिए USB होस्ट या एम्बेडेड टीसीपी / आईपी स्टैक
  • I2S / PCM मीडिया प्रोटोकॉल
  • परिधीय विन्यास के लिए I2C

उन गुणों के साथ चिप्स ढूंढना बहुत सरलता से है। यह ईमानदारी से सरल नहीं हो सकता है। मुद्दा यह बताने में सक्षम हो रहा है कि क्या चिप काफी तेज है, प्रसंस्करण और संचालन-वार है।

मैंने LPC4337 को थोड़ा सा देखा है और मुझे ऐसा लगता है कि यह उपयुक्त होगा, हालांकि विकास का माहौल मुझे काफी परेशान कर रहा है, इस कारण से मैं अभी भी चारों ओर देख रहा हूं, जिसने मुझे टेक्सास इंस्ट्रूमेंट्स से CC3200 के लिए प्रेरित किया। , हालांकि वह नियंत्रक केवल 80 मेगाहर्ट्ज पर चलता है और मुझे यकीन नहीं है कि यह वास्तविक समय की मीडिया स्ट्रीमिंग के लिए पर्याप्त मजबूत होगा।

यह सुनिश्चित करने के लिए कुछ चरण हैं कि मेरे आवेदन के लिए एक प्रोसेसर काफी तेज है? जैसे कि मुझे कैसे पता चलेगा कि 80 मेगाहर्ट्ज का प्रोसेसर काफी अच्छा होगा या मुझे 204 मेगाहर्ट्ज या उससे भी ज्यादा के ऑर्डर पर कुछ चाहिए?


1
मुझे लगता है कि आपको बिजली की आवश्यकताएं भी प्रदान करनी होंगी।
kolosy

यह आपके प्रश्न का उत्तर नहीं देता है, लेकिन आप माइक्रोकंट्रोलरों के नए PIC32MZ परिवार को देखने पर विचार कर सकते हैं , जिसमें USB 2.0 होस्ट, I²S और पांच I²C के साथ-साथ दो बार फ्लैश (2MB) और तीन बार RAM (512K) है। LPC4337 के समान मूल्य के लिए मॉड्यूल। IDE (MPLAB X) और कंपाइलर आज़माने के लिए स्वतंत्र हैं, लेकिन एक परीक्षण अवधि के बाद आपको अनुकूलित कंपाइलर के लिए भुगतान करना होगा यदि आप एक चाहते हैं (अडॉप्ट किए गए GCC कंपाइलर मुक्त रहते हैं)। माइक्रोचिप में USB और TCP / IP स्टैक के लिए रॉयल्टी-फ्री लाइब्रेरी हैं।
tcrosley 5

2
मुझे लगता है कि कुछ लोग सवाल के बिंदु को याद कर रहे होंगे। मैं भागों की सिफारिश के लिए नहीं देख रहा हूँ। यह सुनिश्चित करना सरल है कि चिप पर पर्याप्त जगह है या उचित परिधीय हैं। मैं एक संसाधन के रूप में प्रसंस्करण मापदंडों और कदमों की तलाश में हूं इसलिए यह सुनिश्चित करने के लिए कि मैं एक शक्तिशाली पर्याप्त प्रोसेसर का चयन करूं। इसकी गति में।
फंकीगुए

यदि आप यह नहीं बता सकते कि आपको चश्मे से क्या चाहिए, तो क्या आप सिर्फ नमूने और प्रोटोटाइप का ऑर्डर कर सकते हैं?
रोजर रोलैंड

@RogerRowland मैं हालांकि एक बहुत लंबी प्रक्रिया है। एक कार्यक्रम के लिए न्यूनतम चश्मा खोजने का कोई तरीका है
फंकीगुए

जवाबों:


5

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

  • ROM अपेक्षाकृत आसान है। आप जानते हैं कि ROM मेमोरी में स्टैक / लाइब्रेरी / ड्राइवर लगभग कितना लेता है: या तो लेखक द्वारा दिया गया है, या आप इसे अपलोड किए बिना संकलित कर सकते हैं। कंपाइल ऑप्टिमाइज़ेशन के कारण, हालांकि आप अपना कोड बदलते समय यह आंकड़ा बहुत बदल सकते हैं।
  • RAM बहुत पेचीदा है। विशेष एकीकृत विकास वातावरण में कुछ उपकरण आपको रनटाइम अनुमान देते हैं , और मैं देख सकता हूं कि यह कैसे किया जा सकता है लेकिन मुझे किसी भी जेनेरिक टूल के बारे में पता नहीं है - जीसीसी द्वारा प्रदान किया गया (किसी को भी जानता है?)। अफसोस की बात है कि यह आपके कोड के सबसे बड़े या सबसे आवंटित तत्वों की गणना करने के लिए नीचे है (चर जीवनकाल के लिए लेखांकन)।
  • सीपीयू आर्किटेक्चर (CISC या RISC) के आधार पर MIPS में अधिक जटिल है (लाखों निर्देश प्रति सेकंड, CPU घड़ी आवृत्ति के अनुपातिक) प्रतिनिधि नहीं हो सकता है या नहीं। क्योंकि यदि आपके पास कोड है, तो आप सबसे महत्वपूर्ण अनुभाग को निर्देशों में तोड़ सकते हैं और समय की आवश्यकता से आवश्यक MIPS की गणना कर सकते हैं। किसी भी गैर-अक्षम व्यवधान को उस बिंदु पर ट्रिगर माना जाना चाहिए - मर्फी का नियम और वह सब।

जब आपके पास थ्रेड्स होते हैं (जब तक कि थ्रेड्स को मैन्युअल रूप से कोर को आवंटित नहीं किए जाते हैं) और ऑपरेटिंग सिस्टम जैसे ही शेड्यूलर्स किक करते हैं, तो यह निर्धारित करना बेहद मुश्किल है। यह सरल माइक्रोकंट्रोलर कोड के लिए प्रबंधनीय होना चाहिए, लेकिन क्या यह आपके आवेदन के लिए इसके लायक है?

यह केवल मेरी भागीदारी है: भले ही मैं एकीकृत सिस्टम डिजाइन करता हूं, मैं उन विशेष बजटों के लिए जिम्मेदार नहीं हूं (जो मेरे लिए इनपुट हैं), और मैं वास्तव में उस पर विशेषज्ञों की कहानियों को जानने के लिए बहुत इच्छुक हूं।

परिशिष्ट: वास्तविक समय प्रणालियों के साथ, आमतौर पर अधिकतम नमूने समय के माध्यम से कार्य के लिए सिस्टम की पर्याप्तता का आकलन करना आसान होता है जो कि पूरे वर्कफ़्लो में सूचना के प्रसारण में विलंबता / देरी पर निर्भर करता है, और प्रत्येक द्वारा लिया गया अधिकतम समय कार्य का नमूना।


avrdudeवैश्विक चरों द्वारा कितनी रैम ली जाती है, इसका अनुमान लगा सकते हैं, लेकिन आपको इसे ड्राई रन विकल्प के साथ चलाना होगा क्योंकि यह मूल रूप से एक अपलोडिंग टूल है।
felixphew

1
आईएमओ का अनुमान लगाने के लिए सबसे कठिन हिस्सा ढेर और ढेर उपयोग है। हमारे मौजूदा एम्बेडेड सिस्टम (मालिकाना ओएस), एक PIC32 पर चल रहा है, आम तौर पर 25 से अधिक कार्य चल रहे हैं, उनमें से कई को सक्रिय होने पर एक जोड़ी K या ढेर की आवश्यकता होती है। आपको उनमें से कई जा रहे हैं, साथ ही कुछ भारी स्टैक का उपयोग करने के लिए और आप जल्द ही रैम से बाहर चलने के करीब हो सकते हैं। मैंने अभी एक या एक सप्ताह पहले एक पुनरावर्ती दिनचर्या लिखी थी और स्थानीय चर स्टैक उपयोग (कोई सरणियों आदि) से बहुत सावधान रहना था
tcrosley

दिलचस्प है, धन्यवाद। क्या आप अपने कोड (कोड विश्लेषण या विशेष उपकरण) द्वारा आवंटित रैम की मात्रा का अनुमान लगाते हैं, या आप इसे रनटाइम पर मापते हैं? यह मुझे लगता है कि MIPS का अनुमान लगाना थोड़ा अधिक कठिन है क्योंकि यह रैम के उपयोग (संभव नहीं, आसान) के विपरीत, निर्देशों के लिए इसे तोड़े बिना कोड का विश्लेषण करने से अनुमान नहीं लगाया जा सकता है। थ्रेड्स कार्य को अविश्वसनीय रूप से अधिक कठिन बनाते हैं, लेकिन ऐसा लगता है कि सीपीयू विश्लेषण को अभी भी अधिक चरणों की आवश्यकता है - यह सामान्य रूप से एक समस्या से कम है। तुम क्या सोचते हो?
मिस्टर मिस्टीर

2

मैं आपके प्रश्न को आसान बनाने जा रहा हूं, "यह कैसे पता लगाया जाए कि क्या एक माइक्रोप्रोसेसर काफी तेज है"?
आपको उस प्रक्रिया / प्रक्रिया की पहचान करने की आवश्यकता है जिसके लिए सबसे तेज़ निष्पादन समय की आवश्यकता होती है। यदि आपका प्रोसेसर दिए गए समय में आवश्यक निर्देशों को निष्पादित कर सकता है, या कम कर सकता है, तो यह काफी तेज है।
एक उदाहरण पर नजर डालते हैं: आपका सबसे तेज आवश्यकता बिजली के नुकसान की प्रक्रिया है ; इसके लिए 10 मिलीसेकंड में निष्पादित होने के लिए 10,000 निर्देशों की आवश्यकता होती है। आपको कम से कम 1 एमआईपी के साथ सीपीयू की आवश्यकता होगी। इसे "मेगाहर्ट्ज" में परिवर्तित करने के लिए, आपको निर्देश (cci) प्रति घड़ी चक्र की संख्या जानने की आवश्यकता है। यह मान लें कि यह 10 सीसीआई है, आपके सीपीयू को 10 मेगाहर्ट्ज या उससे तेज गति से चलाने की आवश्यकता होगी।


0

यदि आप कभी-कभी BOM लागत को कम करते हुए देख रहे हैं तो उन शेन्ज़ेन निर्माताओं के पास कुछ आश्चर्यजनक प्रस्ताव हैं। एक उदाहरण: ऑलविनर ए 10 में रास्पबेरी पाई की तुलना में अधिक कम्प्यूटेशनल शक्ति और कनेक्शन विकल्प हैं, लेकिन संभवतः आपके डिजाइन में उपयोग किए जाने पर सस्ता होगा। यदि आप एक ही लागत पर देख रहे हैं तो पाई ऑलविनर A31s 6-8 गुना अधिक शक्तिशाली है।

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