SRAM पॉवरअप पर खाली नहीं है, क्या यह सामान्य है?


19

मैंने आखिरकार अपना Z80 मेमोरी बोर्ड समाप्त कर लिया था, लेकिन मुझे यह देखकर निराशा हुई कि यह ठीक से काम नहीं कर रहा था (कुछ एलईडी से जुड़ी पता लाइनों के साथ सरल एनओपी परीक्षण) क्योंकि काउंटर जल्दी से नियंत्रण से बाहर बढ़ गया था, क्योंकि इसे बढ़ाना नहीं था। हालांकि, मैं कोई कसर नहीं छोड़ रहा हूं और लगभग तीस मिनट की निरंतरता परीक्षण के बाद बिना किसी शॉर्ट सर्किट और सभी उचित कनेक्शनों का अनावरण करने के लिए, मैंने आखिरकार यह जांचने के लिए सोचा कि क्या SRAM चिप सभी 0s संग्रहीत के साथ चालू है। मुझे अच्छी तरह से पता है कि SRAM (जब तक कि गैर-वाष्पशील नहीं है, जो कि मेरी विशेष चिप नहीं है) शक्ति खोने पर अपनी सभी सामग्री खो देगा, लेकिन मैंने हमेशा यह मान लिया था कि यह 0 (यानी "खाली") से भरा होगा जब इसे वापस पा लिया जाएगा शक्ति। SRAM मैं उपयोग कर रहा हूँ लगता है बेतरतीब ढंग से 1 और 0 से भरा है हर बार शक्ति रीसेट है। यह किसी भी डेटा को याद नहीं करता है, लेकिन यह खाली लोड नहीं हो रहा है। यह वास्तव में एक समस्या नहीं है क्योंकि मैं केवल ROM पर एक छोटा सा प्रोग्राम लिख सकता हूँ ताकि सभी 0 में RAM को पॉवरअप पर लोड किया जा सके, हालाँकि मैं अभी भी जानना चाहूँगा कि यह कैसे SRAM कार्य कर रहा है या नहीं। धन्यवाद!

संपादित करें: मैं यह उल्लेख करना भूल गया कि 0 का SRAM में लोड करने के लिए ROM का उपयोग करने के बाद सिस्टम ठीक काम करता है, इसलिए यह वास्तव में मुद्दा था।


7
आप यादृच्छिक संख्या उत्पन्न करने के लिए SRAM पावर का उपयोग कर सकते हैं। यह आमतौर पर है कि हम इसे कैसे करते हैं यदि हमें केवल एक यादृच्छिक बीज की आवश्यकता होती है।
b degnan

6
@bdegnan एक बार, शायद। SRAM का पावर-अप राज्य किसी भी भाग के लिए कुछ हद तक अनुमानित है।
duskwuff

जवाबों:


36

जब तक आपके पास एक प्रारंभिक राज्य क्रमादेशित है, यह कम या ज्यादा यादृच्छिक होगा। यद्यपि यह अलग SRAM कार्यान्वयन के साथ भिन्न हो सकते हैं। आप "रिक्त" भी कहते हैं। कुछ सोच सकते हैं कि सभी 0 की तुलना में यादृच्छिक "कंबल" है।

SRAM मेमोरी बैक-टू-बैक इनवर्टर पर मेमोरी स्टोर करती है।

सरल श्रम

यह एक द्वि-स्थिर प्रणाली बनाता है (दो बहुत स्थिर अवस्थाएँ जिनमें मेटास्टेबिलिटी उन्हें विभाजित करती है)। तो, बैक-टू-बैक पावर इनवर्टर पर संक्षेप में मेटास्टेबल हैं।

ऐसा इसलिए होता है क्योंकि चूंकि वोल्टेज रैंप पर (चालू होने से) होता है, इनवर्टर के पीछे के दोनों NMOS और PMOS दोनों समान होते हैं, जो सप्लाई वोल्टेज के आधे हिस्से में दोनों बिटनोड को पकड़ते हैं (यह मेटास्टेबल स्टेट है)। अंततः कुछ थर्मल शोर (या कोई भी प्रक्रिया जो भिन्नता का परिचय देती है) इस मूल्य को थोड़ा नीचे या ऊपर धकेलती है या खींचती है। इस बिंदु पर बिटनोड्स अपने बस्टेबल राज्यों में से एक में स्नैप करते हैं।

  • एक उदाहरण के रूप में, क्यू=क्यू'=वीरोंयूपीपीएलy2
  • अगला, क्यू पर कुछ थर्मल शोर वोल्टेज को V s u p p l y तक बढ़ाता हैवीरोंयूपीपीएलy2+δ
  • अब, NMOS खिला क्यू 'बस थोड़ा और अधिक चालू हो जाता है। और PMOS खिला क्यू 'बस थोड़ा और बंद हो जाता है। तो Q ' V s u p p l y से नीचे खींचता है सेवी एस यू पी पी एल वाईवीरोंयूपीपीएलy2वीरोंयूपीपीएलy2-δ
  • अगला, चूंकि FET के ड्राइविंग क्यू नोड के गेट पर वोल्टेज कम हो जाता है, इसलिए पीएमओएस थोड़ा अधिक बदल जाता है (और NMOS अधिक बंद हो जाता है)। इससे क्यू आपूर्ति को और बढ़ाता है। और यह जल्दी से Q 'को 0 और Q को 1 कर देता है।

वास्तव में, यहां तक ​​कि एक पेपर भी है "पावर-अप SRAM स्टेट एक आइडेंटिफाइंग फिंगरप्रिंट और ट्रू रैंडम नंबर्स का सोर्स"

कागज में निहित एक बहुत ही उपयोगी भूखंड नीचे है। बिंदीदार रेखा आपूर्ति वोल्टेज का प्रतिनिधित्व करती है:

पावरअप में मेटास्टेबिलिटी

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

इस बात पर निर्भर करता है कि वर्तमान में उपयोग किए जा रहे SRAM में प्रत्येक बिटनोड को कैसे गढ़ा गया है, आप ऊपर की दो स्थितियों में से कम या अधिक के साथ समाप्त होते हैं। दोनों मामलों में, जब तक आप जानबूझकर SRAM को तिरछा नहीं करते हैं, प्रारंभिक आउटपुट कम या ज्यादा यादृच्छिक रूप से दिखाई देंगे। बाएं हाथ की स्थिति में, प्रत्येक बाद का पावरअप अधिक यादृच्छिक पैटर्न उत्पन्न करेगा। दाएं हाथ की स्थिति में, प्रारंभिक स्टार्टअप प्रतीत होता है यादृच्छिक। लेकिन आगे के पॉवरअप के कारण SRAM आगे के कुछ राज्यों में चलेगा।


तुम्हें पता है कि मैं वास्तव में सोचा था कि यह होगा क्यों यह अनियमित लोड हो रहा था। मैंने एक सर्किट के हिस्से के रूप में एक NOR कुंडी का इस्तेमाल किया है और यह पावर-अप पर बेतरतीब ढंग से रीसेट हो जाएगा। धन्यवाद!
कीटनबी

मैंने सोचा था कि आप SRAM चिप्स डिजाइन कर सकते हैं ताकि वे एक ज्ञात स्थिति में बिजली बना सकें। क्या आप?
जॉन ड्वोरक

2
@JDDvorak: हाँ, आप कर सकते हैं। लेकिन इसका मतलब यह नहीं है कि यह आम तौर पर किया जाता है, एसआरएएम में एस्प जो कि विशिष्ट नहीं है। मुझे लगता है कि यह अधिक लागत और किस उद्देश्य के लिए होगा? यह शायद ही उपभोक्ताओं के लिए आवश्यक प्रारंभिक राज्य होगा।
jbord39

@ jbord39 इससे मुझे बूटलोडर को मेमोरी में सेंकने में मदद मिल सकती है, और OS को लोड करने के लिए अतिरिक्त ROM चिप होने से बचना चाहिए? क्या यह लागत में कटौती करने में मदद करेगा?
जॉन ड्वोरक

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

5

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


2

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

कई रैम क्षेत्रों की विस्तृत मेमोरी मैपिंग के साथ माइक्रोप्रोसेसरों के लिए प्रोग्रामिंग वातावरण हैं। आप अनुप्रयोग द्वारा आवश्यक के रूप में रीसेट पर एक शक्ति के साथ या बिना एक क्षेत्र को परिभाषित कर सकते हैं। एक ही SRAM के भीतर कई अलग-अलग क्षेत्र संभव हैं। प्रोग्राम प्रारंभ पर संपूर्ण SRAM को रीसेट करना हमेशा आवश्यक नहीं होता है।


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