इस उत्तर के लिए एक टिप्पणी में कोरटुक पूछते हैं कि एआरएम लाभ क्या है । मैंने पहले अपने उत्तर में कुछ तर्क जोड़े, लेकिन मुझे लगता है कि यह प्रश्न अपने आप में एक प्रश्न के रूप में दिलचस्प है, ताकि अधिक उत्तर संभव हो सकें।
इस उत्तर के लिए एक टिप्पणी में कोरटुक पूछते हैं कि एआरएम लाभ क्या है । मैंने पहले अपने उत्तर में कुछ तर्क जोड़े, लेकिन मुझे लगता है कि यह प्रश्न अपने आप में एक प्रश्न के रूप में दिलचस्प है, ताकि अधिक उत्तर संभव हो सकें।
जवाबों:
प्रदर्शन एक फायदा है। 32-बिट प्रोसेसर होने के कारण यह सभी 8-बिट कंट्रोलर DMIPS- वार को आउटपरफॉर्म करता है। कोर भी कई पीढ़ियों के माध्यम से चला गया है, अनुकूलन पढ़ें।
ये अनुकूलन न केवल प्रदर्शन संख्या में, बल्कि बिजली की खपत में भी दिखते हैं । पिछली पीढ़ी की तुलना में सबसे हालिया कोर ने अपने DMIPS / mW अनुपात को दोगुना कर दिया है ( यह उत्तर भी देखें )।
एआरएम एक महान कई निर्माताओं से उपलब्ध है , किसी भी अन्य माइक्रोकंट्रोलर से अधिक है, और प्रत्येक के पास चुनने के लिए कई संस्करण हैं, जिसमें ऑन-चिप बाह्य उपकरणों और मेमोरी और पैकेज के विभिन्न संयोजन हैं। बिंदु में मामला: एनएक्सपी ऑन-चिप ईथरनेट के साथ 35 से कम नियंत्रक प्रदान नहीं करता है ।
एआरएम हैंसस्ती ; एआरएम शायद 1 USD अवरोध को तोड़ने वाला पहला 32-बिट नियंत्रक था।
प्रदर्शन का यह संयोजन , व्यापक पेशकश और कम लागत इसे ऐसे बनाते हैं कि आप केवल एआरएम को अनदेखा नहीं कर सकते:
2005 में सभी मोबाइल फोन का लगभग 98 प्रतिशत उनकी मदरबोर्ड पर कम से कम एक एआरएम डिजाइन कोर का उपयोग करते हैं, विश्लेषक फर्म लिनली ग्रुप के शोध के अनुसार। ( स्रोत )
मोबाइल फोन के बाजार पर भी एक और प्रभाव पड़ता है। मोबाइल फोन बहुत जगह की कमी और छोटे पैकेजों की मांग करते हैं। NXP का LPC1102 एक WLP-16 पैकेज में सिर्फ 5 मिमी , जो पहले केवल कम पिन-काउंट 8-बिट माइक्रोकंट्रोलर्स द्वारा उपयोग किया जाता था।
एक बिंदु का अभी तक उल्लेख नहीं किया गया है: 1908 में, श्री पीएल रॉबर्टसन नामक एक व्यक्ति ने एक नए सुधार वाले स्क्रू हेड और ड्राइवर का आविष्कार किया । वह अपने डिजाइन के लिए शिकंजा और ड्राइवरों का निर्माण करने वाला एकमात्र व्यक्ति बनना चाहता था। दशकों बाद, किसी और नाम पर रखा गया श्री हेनरी एफ फिलिप्स के साथ आया एक विकल्प के डिजाइन । श्री रॉबर्टसन के विपरीत, श्री फिलिप्स को शिकंजा और ड्राइवरों के उत्पादन की तुलना में अपने डिजाइन को लाइसेंस देने में अधिक रुचि थी।
इसी तरह, 1970 के दशक में, सोनी बेटमैक्स नामक एक तकनीक के साथ आया ; JVC VHS नामक एक के साथ आया था। वीसीआर के निर्माण में सोनी की दिलचस्पी थी; JVC लाइसेंसिंग में अधिक रुचि रखता था।
यहां एक पैटर्न लगता है। (नोट: थोड़ी देर के लिए, इंटेल ने अपनी 80x86 तकनीक का लाइसेंस दिया था , लेकिन यह दशकों से अपने आंतरिक उपयोग के लिए विकासशील प्रौद्योगिकियों पर अधिक केंद्रित है।)
एआरएम सभी विक्रेताओं के लिए विकसित करने के लिए एक ही हार्डवेयर / सॉफ्टवेयर। आप JLINK / ULINK और कुछ Keil IDE एक बार खरीदते हैं, और इसका उपयोग किसी ग्रह पर लगभग किसी भी ARM के विकास, अनुकरण और डीबग करने के लिए कर सकते हैं।
नए चिप विक्रेता => कम विक्रेता लॉकिन => अधिक प्रतिस्पर्धा => कम कीमतों पर जाने पर नई वास्तुकला सीखने की आवश्यकता नहीं है
आधुनिक तकनीक-प्रक्रियाओं (0.18um और नीचे) में ARM कोर इतना छोटा है, कि इसे 8bit कोर के लिए बलिदान करने से कीमत का कोई भी दृश्य अंश नहीं बचा होगा। इसलिए मानक उच्च प्रदर्शन के लिए जाने का कारण अभी तक सस्ती वास्तुकला है।
प्रदर्शन - केवल एआरएम के साथ आपके पास एकल घड़ी 32 * 32-> 32 गुणा और 32 * 32-> 64 के लिए हार्डवेयर समर्थन और उप-1 कॉलर उपकरणों के लिए विभाजन हो सकता है (उदाहरण के लिए, कम-अंत STM32 का उदाहरण)
एआरएम बहुत लालची नहीं है, और लाइसेंस के लिए अनुचित शुल्क नहीं लेता है, इसलिए निर्माता सस्ते माइक्रो का उत्पादन कर सकते हैं।
मैं इन कारणों के लिए मध्य-सीमा वाले एआरएम प्रोसेसर पर ध्यान केंद्रित कर रहा हूं :
पूर्ण लिनक्स समर्थन
इसका मतलब है डिवाइस ड्राइवर लगभग मुफ्त में। मैंने पर्याप्त USB होस्ट और डिवाइस कोड किया है, मैं इसे और नहीं करना चाहता। मैं भी एक यादृच्छिक प्रोसेसर मंच के लिए टीसीपी / आईपी जोड़ने के लिए (हालांकि कोशिश कर के बारे में भी रोमांचित नहीं कर रहा हूँ LwIP / यूआईपी है कि बुरा नहीं है)। मैंने कभी भी वाई-फाई करने की कोशिश नहीं की, एक वास्तविक ब्लूटूथ स्टैक, वेबकैम आदि। लिनक्स का उपयोग करने का मतलब है कि उपकरणों की एक बहुत व्यापक सरणी से बात करना बहुत आसान हो जाता है।
मैं भी वास्तव में चकित था कि कैसे तर्कसंगत और आसान लेखन लिनक्स डिवाइस ड्राइवर है। कुछ विंडोज डिवाइस ड्राइवर करने के बाद लिनक्स एक सपना है। (निष्पक्ष होने के लिए, विंडोज ड्राइवर फ्रेमवर्क में बहुत सुधार हुआ है क्योंकि मैं यह कर रहा था।)
सॉफ्टवेयर प्लेटफॉर्म भी कमाल का है। मुझे SSL एन्क्रिप्शन, फाइल सिस्टम, रिमोट मैनेजमेंट, आसान एप्लिकेशन अपडेट (एक जटिल बूटलोडर के बजाय एक फ़ाइल की प्रतिलिपि बनाना), आदि ओह, और बहुत सी मौजूदा उपयोगिताओं की आवश्यकता है अगर आपको कुछ करना है।
यह रॉयल्टी मुक्त भी है और आपकी इच्छा के अनुसार झुकने के लिए एक बंद स्रोत WinCE मंच होगा कहना आसान है। (ऐसा नहीं है कि मैं वास्तव में एक मुक्त स्रोत आदर्शवादी हूं ... यह मेरे लिए बहुत व्यावहारिक तर्क है।)
मैं वास्तविक एमएमयू के साथ एआरएम कोर के बारे में बात कर रहा हूं , इसलिए यह मध्य-से-उच्च चिप्स के लिए है (हालांकि आप μClinux का उपयोग कर सकते हैं जो मुझे लगता है)।
बिजली की खपत
यह मूल रूप से अन्य टिप्पणियों का दोहराव है, लेकिन यह मेरे लिए एक बड़ा कारक है। मेरा वर्तमान 454 मेगाहर्ट्ज एआरएम प्लेटफॉर्म 1/2 वाट, 1 वाट अधिकतम सीपीयू खींचता है। आप x86 के साथ भी नहीं मिल सकते।
यह मेरा तर्क बहुत सुंदर है। मुझे समीकरण जल्द ही बदलते नहीं दिख रहे हैं।
एआरएम एक प्रगति से गुजरा है:
एआरएम आर्किटेक्चर कुछ बल्कि परिष्कृत परिचालनों को बहुत तेज़ी से निष्पादित करने की अनुमति देता है - किसी भी अन्य चिप की तुलना में कहीं अधिक तेज़ी से। उदाहरण के लिए (ARM7-TDMI का उपयोग करके):
ldrh r0, [r10, # ADDR_BUS_OFS]; लक्ष्य प्रणाली पता बस (13 बिट्स) पढ़ें ldrb r1, [r9, r0, lsr # 8]; हैंडलर की तालिका में पता देखने के लिए ऊपरी बिट्स का उपयोग करें पीसी जोड़ें, आर 9, आर 1 एलएसएल # 2; उपयुक्त हैंडलर पर जाएं
प्रत्येक हैंडलर को बाइट के रूप में संग्रहीत किया जाता है, जो तालिका की शुरुआत से पता विस्थापन का 1/4 हिस्सा देता है। नेट प्रभाव यह है कि एक बार जब पता बस की सामग्री को प्राप्त कर लिया जाता है, तो 32-बाइट जंप टेबल का उपयोग करके, पुनर्प्राप्त किए गए ऊपरी पांच बिट्स के आधार पर एक हैंडलर में कूदने के लिए केवल छह चक्र (दो निर्देश) लगते हैं।
कॉरपोरेटिंग THUMB कोड अधिक होगा:
; यह मानते हुए कि हमें किसी अन्य चीज़ के लिए r6 / r7 की आवश्यकता नहीं है, उन्हें r9 / r10 से पुनः असाइन किया गया है ldrh r0, [r7, # ADDR_BUS_OFS] जंग r1, r0 lsr r1, r1, # 8; THUMB को स्रोत और गंतव्य समान होना चाहिए ldrb r1, [r6, r1] lsl r1, r1, # 1; यदि शिफ्ट पते पूर्ण-शब्द संरेखित थे, तो शिफ्ट-लेफ्ट-टू का उपयोग कर सकते हैं पीसी जोड़ें, आर 1
यह एक कोड घनत्व के दृष्टिकोण से ठीक है, यह देखते हुए कि निर्देश केवल आधे मूल के रूप में बड़े हैं, लेकिन छह के बजाय लाने के बाद नौ चक्र लेगा। एक आवेदन में जहां बस को देखा जा रहा है, वह अपनी गति से चलने वाली है या नहीं, एआरएम ने इसे संभालने में काम किया है या नहीं, तेज एआरएम निर्देश एक बड़ा प्लस हैं।
संयोग से, थम्ब 2 बाइनरी थम्ब के साथ संगत है, जो पहले के टूल के उपयोग की सुविधा देता है, लेकिन इसका मतलब है कि कुछ चीजें हैं जो मूल एआरएम के साथ भी नहीं कर सकती हैं। उदाहरण के लिए, एआरएम में, एक 4x8 बिटमैप में आयोजित "रोटेट" को दो बिट्स के बारे में 3 निर्देशों का उपयोग करके कर सकता है:
मूव्स r0, r4, lsl # 25; सी में एलएसबी के शीर्ष बिट और एन में अगले बिट डालें orrcs r6, # 0x00000001 orrmi r6, # 0x00000100
Thumb2 में, स्पष्ट सशर्त निर्देश जोड़ना आवश्यक होगा:
मूव्स r0, r4, lsl # 25; सी में एलएसबी के शीर्ष बिट और एन में अगले बिट डालें आईटीसी orrcs r6, # 0x00000001 itmi orrmi r6, # 0x00000100
एआरएम की तुलना में समय और अंतरिक्ष दक्षता में शुद्ध 33% की कमी; यह संभवतः अंगूठे के सबसे बुरे मामले में एआरएम की तुलना में कम कुशल है, और यहां तक कि यह बिल्कुल भयानक नहीं है।
एआरएम कोड की तुलना में थम्ब 2 का एक और मामूली नुकसान: एआरएम कोड में, सभी निर्देश पूर्ण-शब्द सीमाओं पर शुरू होते हैं, स्थैतिक विश्लेषण की सुविधा। Thumb2 में, निर्देश मनमाने ढंग से आधे-शब्द की सीमाओं पर शुरू हो सकते हैं और पूर्ण-शब्द की सीमाओं को पूरा कर सकते हैं। इस प्रकार स्थैतिक विश्लेषण अधिक कठिन हो सकता है।
एक बिट इतिहास है, एकॉर्न 1980 के दशक में एक नए कंप्यूटर के लिए एक कस्टम सीपीयू (जैसे मेमोरी कंट्रोल आदि में बनाया गया) चाहता था (8 बिट 6502 सीमित था कि वे क्या कर सकते थे)। उन्होंने इंटेल से बात की, लेकिन इंटेल उन्हें सीपीयू का लाइसेंस नहीं देगा।
इसलिए एकोर्न ने एक बहुत ही सरल आरआईएससी सीपीयू डिज़ाइन किया, लेकिन जैसा कि वे सीपीयू निर्माता नहीं थे, वे इसे किसी को भी लाइसेंस देने के लिए तैयार थे (और उन्हें मिलने वाले सभी त्वरित धन की आवश्यकता थी!)। (मेरा मानना है कि सीपीयू ने पहली बार काम किया, आंशिक रूप से क्योंकि यह बहुत सरल था और डिजाइनर ने कैंपस विश्वविद्यालय में बहुत सारे शोध सीपीयू भी बनाए हैं।)
वर्षों से सीपीयू डिज़ाइन ग्राहक के चिप डिज़ाइन में शामिल करना आसान और आसान हो गया है।
चिप निर्माता ने एकोर्न से सुरक्षित लाइसेंस प्राप्त करना महसूस किया क्योंकि वे एक प्रतियोगी नहीं थे। इसके अलावा किसी ने नहीं सोचा था कि वे एक लाइसेंस प्राप्त करने के लिए एक प्रतियोगी के घर शहर जा रहे थे, क्योंकि एकॉर्न कैम्ब्रिज में था (वास्तविक एक!) । (कैम्ब्रिज के लिए "फैक्ट फाइंडिंग" यात्रा का मौका मिला ताकि एकॉर्न पर जाकर किसी भी बिंदु पर विकल्पों की लिस्टिंग को प्रभावित किया जा सके ...)
बहुत सारे डिज़ाइन जिनमें एकोर्न रीस्क मशीन सीपीयू शामिल हैं, जो एम्बेड प्रणाली के लिए थे, बिजली का उपयोग महत्वपूर्ण था। Acorn Risc Machine CPU के लिए सस्ते और अच्छे विकास उपकरण भी बनाए गए थे।
इसलिए जब मोबाइल फोन को एक एम्बेडेड सीपीयू के साथ कस्टम चिप्स की आवश्यकता होती है, तो एकोर्न का नाम बदलकर एआरएम रखा गया और बाकी इतिहास है। (शायद यह थोड़ा सा भी था कि अन्य सीपीयू ज्यादातर संयुक्त राज्य अमेरिका द्वारा नियंत्रित थे, लेकिन मोबाइल पहले यूरोप में सामान्य हो जाते हैं)
(क्या इनमें से कोई आपको आईबीएम की एक छोटी सी अज्ञात टीम के साथ माइक्रोसॉफ्ट और डॉस की याद दिलाता है?)
तथ्य यह है कि एआरएम उस समय के सबसे अच्छे सीपीयू में से एक था (और अभी भी है) बहुत सारे कार्यों के लिए भी मदद की - लेकिन सिर्फ "सबसे अच्छा" सीपीयू डिजाइन होने के लिए पर्याप्त नहीं है।
तकनीकी मुद्दों को एक तरफ, एआरएम के लिए बहुत सारे गैर-तकनीकी कारण हैं। लेकिन त्वरित उत्तर यह है: यह इंटेल (या x86) नहीं है।
अगर आपने देखा कि अभी CPU R & D डॉलर का निवेश कहां किया जा रहा है, तो वे मूल रूप से दो शिविरों में आते हैं: ARM और Intel। (मैं छोटे MCU की उपेक्षा कर रहा हूं, और मैं इंटेल के साथ AMD को लंप कर रहा हूं।) PowerPC, MIPS, SPARC और अन्य बड़े CPU में बहुत कम पैसा जा रहा है। एआरएम और इंटेल केवल अभी भी खड़े हैं।
इंटेल और अन्य x86 सीपीयू के साथ आपको बड़ी मात्रा में विरासत सामान मिलता है। उदाहरण के लिए, आपको एक चिपसेट, एक BIOS और अन्य सामान की आवश्यकता है। यहां तक कि अगर सीपीयू सुपर पावर कुशल था, तो वे अन्य डिवाइस आपके सिस्टम को कम करते हैं और इसे बड़ा, अधिक शक्ति वाला भूख, और अधिक महंगा बनाते हैं। बस एक इंटेल सीपीयू के साथ एक पीसीबी विकसित करना एक बहुत बड़ा मुद्दा है, और फिर आपको एक BIOS विक्रेता के साथ बातचीत करनी होगी, आदि। मामले को बदतर बनाने के लिए, चिपसेट, BIOS, वीडियो चिप्स, आदि के लिए विक्रेताओं में से कई बस नहीं चाहते हैं। छोटे लोगों के साथ व्यापार करने के लिए जो एक वर्ष में एक लाख यूनिट से कम नहीं बेचेंगे।
एआरएम के साथ, आपके पास वह सामान नहीं है। माइक्रोकंट्रोलर-लाइन चीजों से लेकर मल्टी-कोर राक्षसों तक के कई स्रोत हैं। आपको एक BIOS को लाइसेंस देने से निपटने की आवश्यकता नहीं है (जो कि एक प्रयुक्त कार विक्रेता के पास जाने की तरह है)। और मैन्युफैक्चरर्स और वेंडर आम तौर पर आपके लिए अच्छे होते हैं।
की तुलना करें ARM7 / ARM9 के लिए MIPS चतुर्थ और वहाँ छोटे मुद्दों को पहले से ही अच्छी तरह से उल्लेख किया लाइसेंस के अलावा अन्य लाभ है। MIPS निर्देश सेट और आंतरिक बस के आंतरिक इसे कुछ प्रकार के डिजाइनों के लिए बेहतर (प्रति लागत प्रदर्शन) बनाते हैं; यही कारण है कि कई वाई-फाई राउटर एआरएम कोर के बजाय एमआइपी कोर का उपयोग करते हैं।
चूंकि एआरएम कोर ज्यादातर उपकरणों को हाथ में लगाने के लिए लागू किया गया था, इसलिए एएसआईसीएस ने अधिक पावर कंट्रोल फीचर्स जोड़े हैं जबकि एमआइपी कम शक्ति के बजाय प्रति चक्र प्रदर्शन पर अधिक ध्यान केंद्रित करता है। इंटेल x86 पर RISC का लाभ एक अलग चर्चा है।