अपेक्षाकृत सरल उपकरण जैसे कि माइक्रोकंट्रोलर सीपीयू की तुलना में इतने धीमे क्यों हैं?


25

एक ही संख्या में पाइपलाइन चरणों और एक ही विनिर्माण नोड (कहते हैं, 65 एनएम) और एक ही वोल्टेज को देखते हुए, सरल उपकरणों को अधिक जटिल लोगों की तुलना में तेजी से चलना चाहिए। इसके अलावा, कई पाइपलाइन चरणों को एक में विलय करने से चरणों की संख्या की तुलना में एक कारक ग्रेटर द्वारा धीमा नहीं होना चाहिए।

अब पांच साल पुराने सीपीयू को लें, 2.8 GHz पर 14 पाइपलाइन चरण चल रहे हैं। मान लीजिए कि कोई एक चरण मिलाता है; यह 200 मेगाहर्ट्ज से कम हो जाएगा। अब वोल्टेज बढ़ाएं और प्रति शब्द बिट्स की संख्या कम करें; यह वास्तव में चीजों को गति देगा।

यही कारण है कि मुझे समझ में नहीं आता है कि वर्तमान में निर्मित कई माइक्रोकंट्रोलर, जैसे एवीएल, abysmal गति से चलते हैं (जैसे 5 V पर 20 मेगाहर्ट्ज), भले ही वर्षों पहले निर्मित अधिक जटिल सीपीयू 150x तेज, या 10 गुना तेज चलने में सक्षम थे। यदि आप 1.2 V-ish में सभी पाइपलाइन चरणों को एक में रोल करते हैं। सबसे मोटे बैक-ऑफ-द-लिफाफा गणना के अनुसार, माइक्रोकंट्रोलर-भले ही बॉर्डरलाइन अप्रचलित तकनीक का उपयोग करके निर्मित किए गए हों - उन्हें आपूर्ति किए जाने वाले वोल्टेज के एक चौथाई से कम से कम 10x तेज चलना चाहिए।

इस प्रकार प्रश्न: धीमी माइक्रोकंट्रोलर घड़ी की दरों के कारण क्या हैं?


8
माइक्रोकंट्रोलर्स का एक अच्छा हिस्सा बॉर्डलाइन अप्रचलित प्रौद्योगिकी के साथ निर्मित होता है क्योंकि फैब के लिए भुगतान किया जाता है।
मैट यंग

18
शक्ति। दोनों सीपीयू की बिजली की खपत में कारक और वे एक ही प्रदर्शन / वाट के काफी करीब होंगे, या माइक्रो जीत जाएगा।
ब्रायन ड्रमंड बाद

34
यह विचार कि सरल == तेजी से गलत है। एक आधुनिक cisc CPU की बहुत सी जटिलताएं इसे तेजी से बनाने के लिए सुविधाओं में चली जाती हैं, जैसे मल्टी लेवल कैश, पाइपलाइन और ब्रांच की भविष्यवाणी
PlasmaHH

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

14
20 मेगाहर्ट्ज बिल्कुल भी धीमा नहीं है। हम पीसी के लिए सिर्फ गीगाहर्ट्ज की गति से लाड़ कर रहे हैं, जहां अधिकांश संसाधनों का उपयोग फैंसी ग्राफिक्स के प्रतिपादन के लिए किया जाता है। आप एक
किलोहर्ट्ज़

जवाबों:


66

ऐसे अन्य कारक हैं जो गति में योगदान करते हैं।

  • मेमोरी: वास्तविक प्रदर्शन अक्सर मेमोरी विलंबता द्वारा सीमित होता है। इंटेल सीपीयू के पास इसके लिए बड़े-बड़े कैश हैं। माइक्रोकंट्रोलर आमतौर पर नहीं करते हैं। फ्लैश मेमोरी DRAM की तुलना में बहुत धीमी है।

  • बिजली की खपत: यह अक्सर एम्बेडेड अनुप्रयोगों में एक बड़ी बात है। वास्तविक 200 मेगाहर्ट्ज इंटेल सीपीयू ने 10 वाट (अक्सर बहुत अधिक) का उपभोग किया, और एक बड़ी गर्मी-सिंक और एक प्रशंसक की जरूरत थी। यह जगह और पैसा लेता है, और यह उस बाहरी तर्क और स्मृति को भी नहीं गिनता है जो इसके साथ गया था। एक 20 मेगाहर्ट्ज एवीआर में लगभग 0.2 वाट लगते हैं, जिसमें आपकी जरूरत की हर चीज शामिल होती है। यह भी प्रक्रिया से संबंधित है - तेजी से ट्रांजिस्टर में रिसाव होता है।

  • परिचालन की स्थिति: जैसा कि दमित्री टिप्पणियों में बताती है, कई माइक्रोकंट्रोलर एक विस्तृत वोल्टेज और तापमान सीमा पर काम कर सकते हैं। उस ATMega I का उल्लेख ऊपर -40C से 85C तक है, और इसे -65C से 150C तक किसी भी चीज़ में संग्रहीत किया जा सकता है। (अन्य MCUs 125C या 155C तक काम करते हैं।) VCC वोल्टेज 2.7V से 5.5V (5V +/- 10% शिखर प्रदर्शन के लिए) कुछ भी हो सकता है। यह कोर i7 डेटाशीट पढ़ना मुश्किल है क्योंकि वे विनिर्माण के दौरान अनुमत वीसीसी को ट्रिम करते हैं, लेकिन वोल्टेज और तापमान सहिष्णुता निश्चित रूप से संकीर्ण हैं - ~ ​​3% वोल्टेज सहिष्णुता और 105 सी अधिकतम जंक्शन तापमान। (5C न्यूनतम, लेकिन जब आप> 100 amps खींच रहे हैं, तो न्यूनतम तापमान वास्तव में कोई समस्या नहीं है।)

  • गेट काउंट: सिंपल हमेशा तेज नहीं होता है। अगर ऐसा होता तो इंटेल को किसी सीपीयू आर्किटेक्ट की जरूरत नहीं होती! यह सिर्फ पाइपलाइनिंग नहीं है; आपको उच्च-प्रदर्शन FPU जैसी चीजों की भी आवश्यकता है। कि कीमत ऊपर जैक। बहुत कम अंत MCUs में पूर्णांक-केवल CPU कारण हैं।

  • डाई एरिया बजट: माइक्रोकंट्रोलर्स को एक डाय में बहुत सारी कार्यक्षमता फिट करनी होती है, जिसमें अक्सर एप्लिकेशन के लिए उपयोग की जाने वाली सभी मेमोरी शामिल होती है। (SRAM और विश्वसनीय NOR फ्लैश काफी बड़े हैं।) पीसी सीपीयू ऑफ-चिप मेमोरी और बाह्य उपकरणों से बात करते हैं।

  • प्रक्रिया: वे 5V एवीआर एक प्राचीन कम लागत वाली प्रक्रिया पर बने हैं। याद रखें, वे सस्ते होने के लिए जमीन से डिजाइन किए गए थे। इंटेल उपभोक्ता उत्पादों को उच्च मार्जिन पर बेचता है जो सबसे अच्छा प्रौद्योगिकी पैसे का उपयोग कर खरीद सकते हैं। इंटेल की शुद्ध सीएमओएस भी बेच रही है। एमसीयू प्रक्रियाओं को ऑन-चिप फ्लैश मेमोरी का उत्पादन करने की आवश्यकता होती है, जो अधिक कठिन है।

उपरोक्त कई कारक संबंधित हैं।

आप आज ( यहां एक उदाहरण ) 200 मेगाहर्ट्ज माइक्रोकंट्रोलर खरीद सकते हैं । बेशक, वे उन 20 मेगाहर्ट्ज ATMegas के रूप में दस गुना लागत ...

लघु संस्करण यह है कि गति सादगी से अधिक जटिल है, और सस्ते उत्पादों को सस्तेपन के लिए अनुकूलित किया जाता है, गति के लिए नहीं।


11
मजबूती को न भूलें: यदि आपूर्ति वोल्टेज 5% से अधिक बदलता है, तो एक विशिष्ट सीपीयू विफल हो जाएगा, जबकि एक ATMega 1.8M.5V रेंज में 4MHz पर कुछ भी चलाता है।
दिमित्री ग्रिगोरीव

1
@DmitryGrigoryev अच्छी बात! मैंने अपना उत्तर अपडेट कर दिया है।
एडम हुन

25

धीमी गति के लिए एक प्रमुख अंतर्निहित तकनीकी कारण यह है कि सस्ते / छोटे MCUs केवल प्रोग्राम मेमोरी के लिए ऑन-चिप फ्लैश मेमोरी का उपयोग करते हैं (अर्थात वे रैम से निष्पादित नहीं करते हैं)।

छोटे MCUs आम तौर पर प्रोग्राम मेमोरी को कैश नहीं करते हैं, इसलिए उन्हें हमेशा हर चक्र को निष्पादित करने से पहले फ्लैश से एक निर्देश पढ़ने की आवश्यकता होती है। यह नियतात्मक प्रदर्शन और # चक्र / संचालन देता है, बस सस्ता / सरल है, और पीसी जैसे मुद्दों से बचा जाता है जहां कोड और डेटा मिश्रित होते हैं, बफर ओवरफ्लो आदि से खतरों का एक नया सेट बनाते हैं।

फ्लैश मेमोरी (50-100ns के आदेश पर) से पढ़ने की विलंबता SRAM या DRAM (10ns या उससे नीचे के आदेश पर) से पढ़ने की तुलना में बहुत धीमी है, और उस विलंब को हर चक्र में किया जाना चाहिए, घड़ी की गति को सीमित करना अंश।


4
इसके अलावा शक्ति (और इसलिए गर्मी) आवृत्ति के साथ रैखिक से अधिक बढ़ जाती है।
किम्बर्ली डब्ल्यू

1
मुझे नहीं लगता कि फ्लैश से पढ़ना 100 एनएस के पास कहीं भी है , है? IIRC यह बड़ाता के दो आदेश हैं। हालाँकि, यदि आपके फ़्लैश कंट्रोलर में एक छोटा DRAM कैश है, और कोड बहुत ज्यादा ब्रिकी नहीं है, तो कैश हिट दर बहुत अधिक (90% +) हो सकती है, इसलिए आपकी औसत विलंबता बहुत कम हो सकती है।
MSalters

2
यह AT91SAM7S डेटाशीट मैंने अपने इंटरनल फ्लैश के लिए "इंटरनल फ्लैश" फास्ट एक्सेस टाइम, 30 मेगाहर्ट्ज सिंगल-साइकिल एक्सेस के लिए कहा है। वह 33 नं। और इसमें प्रीफ़च बफर के एक डॉर्ड है। ऑफ-डाई फ्लैश में वास्तव में उच्च विलंबता हो सकती है।
pjc50

1
@ जमील मुझे सटीक सूत्र याद नहीं है, लेकिन मेरा मानना ​​है कि यह आवृत्ति का वर्ग था।
Jan Dorniak

22

जब आप फॉर्मूला 1 कार रखते हैं तो लोग साइकिल या छोटी मोटरसाइकिल क्यों चलाते हैं? निश्चित रूप से यह कहना बेहतर होगा कि 300 किमी / घंटा ड्राइव करें और तुरंत हर जगह प्राप्त करें?

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

दूसरी ओर, उनके पास अन्य महत्वपूर्ण क्षमताएं हैं, जैसे कम बिजली की खपत, कार्यक्रम के लिए बहुत सरल होना और इसी तरह। असल में, वे प्रोसेसर नहीं हैं और विभिन्न चीजें करते हैं।


12
@ मिचेल आपको विचार सरल कहां है = तेज?
मैट यंग

3
@ मिचेल ए साइकिल एक कार की तुलना में बहुत सरल है, लेकिन यह अभी भी धीमी है। किसी भी मामले में, मैट सही है। कुछ सरल स्वचालित रूप से तेज नहीं है। यह कहना है, कुछ तेजी से जटिल होने जा रहा है, बस उच्च आवृत्तियों के लिए आवश्यक विचारों के कारण।
आंद्रेजाको

2
उच्च प्रदर्शन CISC प्रोसेसर सरल निर्देशांक प्रोसेसर को अधिक निर्देश जारी करने के लिए करते हैं। वे समानांतर में बहुत अधिक काम कर रहे हैं, इसलिए वे अधिक जटिल और तेज दोनों हैं।
किम्बरली डब्ल्यू

2
@ माइकल $ 1 कुछ अनुप्रयोगों के लिए विलासितापूर्ण रूप से महंगा हो सकता है, मैंने पढ़ा है कि माइक्रो एसडी कार्ड में माइक्रो-कंट्रोलर की कीमत लगभग 19 सेंट
Xen2050

2
@Michael "कि RISC आर्किटेक्चर के पीछे पूरा विचार है: सरल कार्यों को जटिल लोगों की तुलना में तेजी से संभाला जा सकता है" नहीं! आधुनिक RISC आर्किटेक्चर बेहद जटिल हैं क्योंकि उन्हें अधिक निर्देश (जैसे SIMD) पेश करने होते हैं और सुपरसेलकर, हाइपरथ्रेडिंग, आउट-ऑफ-ऑर्डर निष्पादन जैसी अधिक सुविधाओं का समर्थन करना पड़ता है ... उनकी जटिलता CISC आर्किटेक्चर से आसानी से अधिक हो सकती है। MIPS में आजकल सैकड़ों या हजारों निर्देश हैं। "CISC v RISC काफी हद तक एक ऐतिहासिक बहस है"
phuclv

13

बहुत सारे एआरएम नियंत्रक हैं जो सैकड़ों मेगाहर्ट्ज या उससे अधिक की दूरी पर चलते हैं। किसे 500 मेगाहर्ट्ज पीआईसी की जरूरत है और वह अत्याधुनिक प्रक्रिया के करीब मिलियन डॉलर के मुखौटे का औचित्य साबित करने के लिए पर्याप्त प्रति भुगतान करने को तैयार है?

लोकप्रिय ATmega328 को कथित तौर पर 350 एनएम प्रौद्योगिकी के साथ बनाया गया है, जो कि नवीनतम उत्पादन इंटेल सीपीयू ( स्काईलेक के लिए 14 एनएम ) से काफी पीछे है ।

यहां तक ​​कि सस्ते 8-बिट कंट्रोलर्स धीरे-धीरे गति में बढ़ रहे हैं, और आप 32 और 64 मेगाहर्ट्ज पीआईसी नियंत्रक (उदाहरण के लिए, PIC18F14K22) प्राप्त कर सकते हैं जो अभी भी 5 वी पर काम करते हैं (बाद वाला कुल सिस्टम लागत में एक विचार है)।

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

बहुत तेजी से PIC-जैसे नियंत्रकों का उत्पादन करने के लिए (1990 के दशक के अंत में) एक प्रयास किया गया था, इस विचार के साथ कि फर्मवेयर बाह्य उपकरणों के लिए स्थानापन्न कर सकता है यदि माइक्रोकंट्रोलर पर्याप्त तेज था। उदाहरण के लिए, आप एक UART को धमाका कर सकते हैं। मुझे नहीं लगता कि वे सभी व्यावसायिक रूप से सफल थे- परिदृश्य-> यूबीकॉम-> क्वालकॉम (गेम ओवर)।


350 एनएम? वह इसकी व्याख्या करेगा। नहीं पता था कि कोई भी 20 साल पुरानी तकनीक का उपयोग करके कुछ भी निर्माण करेगा।
माइकल

3
हममें से कुछ अभी भी 4000 सीरीज CMOS में डिजाइन कर रहे हैं (केवल उपयोग नहीं कर रहे हैं) जो 3000nm जैसा है।
स्परोहो पेफेनी 19

6
विकिरण वातावरण या उच्च-विश्वसनीयता प्रणालियों से निपटने वाले लोगों के लिए पुरानी प्रक्रियाएं संभावित रूप से उपयोगी होती हैं जो ट्रेसबिलिटी की मांग करती हैं।
क्रुणाल देसाई

5
खेल खत्म नहीं - लंबन प्रोपेलर उस अवधारणा का एक निरंतरता है।
डेव ट्वीड

3
@ मिचेल: यह सिर्फ तकनीक का युग नहीं है। आकार भी मायने रखता है। बड़ी प्रक्रिया के आकार में कम दोष दर होती है जिसका अर्थ है कम अस्वीकार और इस प्रकार उच्च उपज - जिससे प्रति चिप लागत कम होती है। यदि आप एक सीपीयू (जैसे डेस्कटॉप) के लिए $ 100 का भुगतान करने को तैयार हैं, तो कम उपज के कारण अधिक लागत उचित है। यदि आप केवल 50 सेंट का भुगतान करने को तैयार हैं तो यह उचित नहीं है।
स्लीवतमैन

3

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

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

डीएसपी या जीपीयू जैसी चीजों के लिए, अपेक्षाकृत सस्ते में बहुत अधिक गति प्राप्त करना संभव है क्योंकि प्रदर्शन किए जाने वाले काम की प्रकृति बहुत सुसंगत है। दुर्भाग्य से, कई सीपीयू को अलग-अलग जटिलता के निर्देशों के मनमाने ढंग से निपटने में सक्षम होने की आवश्यकता होती है। ऐसा करना कुशलता से संभव है, लेकिन इसके लिए बहुत जटिल शेड्यूलिंग तर्क की आवश्यकता होती है। कई आधुनिक सीपीयू में, "काम करने के लिए" आवश्यक तर्क अत्यधिक जटिल या महंगा नहीं है, लेकिन बाकी सब कुछ समन्वय करने के लिए आवश्यक तर्क है, है।


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

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

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

धन्यवाद; यह साफ करता है। हाँ, यह समझ में आता है कि तेजी से सामान्य प्रयोजन वाले सीपीयू अपनी अधिकांश लागत, वित्तीय और ऊर्जा, दोनों को 'मचान' पर लगाते हैं - पाइपलाइनिंग, कैश, शेड्यूलिंग, रैम नियंत्रण, आदि। वे चीजें जो न केवल निषेधात्मक रूप से महंगी हैं, बल्कि इसकी आवश्यकता भी नहीं है। micros के लिए। समान रूप से, यह मुझे चकित करने के लिए कभी नहीं रोकता है कि एक प्रोसेसर में अपेक्षाकृत छोटी घड़ी की आवृत्ति के साथ क्या किया जा सकता है जो विशेष रूप से एक आवेदन के लिए अनुकूलित है। दोनों तरफ आकर्षक सामान!
अंडरस्कोर_ड

@underscore_d: MIPS आर्किटेक्चर को इस आधार पर डिज़ाइन किया गया था कि संकलक कुछ शेड्यूलिंग मुद्दों के लिए जिम्मेदार होंगे, इस प्रकार हार्डवेयर को सरल बनाया जा सकता है। अवधारणा वास्तव में कभी भी नहीं पकड़ी गई, मुझे लगता है, क्योंकि नए प्रोसेसर को अक्सर पुराने वाले की तुलना में अधिक पाइपलाइन चरणों की आवश्यकता होती है, लेकिन छोटी पाइपलाइनों के साथ प्रोसेसर के लिए लिखे गए कोड प्रोसेसर पर हार्डवेयर इंटरलॉक की अनुपस्थिति में लंबे समय तक काम नहीं करेंगे।
सुपरकैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.