कैसे खराब रैम के साथ Memtest86 कार्य करता है?


17

मैं Memtest के बारे में एक और सवाल पढ़ रहा था और सोचने लगा: बुरा RAM के साथ Memtest86 कैसे काम करता है?

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

इसका एक सादृश्य हार्ड ड्राइव से हार्ड ड्राइव चेकिंग प्रोग्राम चलाना है जो आपकी चेकिंग है। आप ऐसा कभी नहीं करेंगे, एक खराब ब्लॉक बहुत सारे अप्रत्याशित तरीकों से कार्यक्रम को प्रभावित कर सकता है

कैसे खराब रैम के साथ Memtest86 कार्य करता है?


2
FYI करें, सभी कार्य सीपीयू द्वारा रैम में किए जाते हैं। जब किसी प्रोग्राम को निष्पादित किया जाता है, तो रैम में किया जाता है, इसका चर से कोई लेना-देना नहीं है। आप एक प्रोग्राम लिख सकते हैं जो बिल्कुल कुछ भी नहीं करता है, और कभी भी किसी भी चर का उपयोग नहीं करता है, लेकिन यह प्रोग्राम मेमोरी में रहता है। हालांकि बहुत दिलचस्प सवाल।
केल्टरी

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

@ केल्टरी तकनीकी रूप से, BIOS के कुछ हिस्से सीधे NOR फ्लैश से बाहर निकलते हैं ....
रैकैंडबनमैन

जवाबों:


9

ज्यादातर इसलिए कि मेम्नेस्ट को लोड करने के लिए राम की मात्रा बहुत कम है। यदि प्रोग्राम चलता है, तो संभावना है कि इस एक क्षेत्र में मेमोरी ठीक है।

मौका है कि-

  1. मेमरी मेस्टेस्ट का छोटा सेक्शन लोड किया गया था जो खराब है।
  2. यह अभी भी काफी अच्छा था कि यह ध्यान देने योग्य मुद्दों के बिना सभी परीक्षणों को सफलतापूर्वक पूरा करने में सक्षम था।

ईश-आहिस्ता-आहिस्ता।


7

मेमेस्टेस्ट काफी टिकाऊ है कि यह वास्तव में राम के परीक्षण पर निर्भर नहीं करता है।

उदाहरण के लिए, परीक्षण 0 एक चलने वाले एल्गोरिदम का उपयोग करता है , और उस परीक्षण के लिए सभी की आवश्यकता होती है एक एकल पॉइंटर (शायद कैश्ड), क्योंकि यह केवल दो लगातार मेमोरी पतों की तुलना कर रहा है।

इसलिए अगर हमारे पास 3-बिट रैम स्टिक है, तो मेमटेस्ट इसे इसके साथ लोड करता है:

<pointer location> 00000001 00000010 00000100 00001000 00010000 00100000 01000000

और यदि पहला पता दूषित है, तो यह दो यादृच्छिक स्थानों की तुलना करेगा:

00000001 00100000

और यह अभी भी विफल हो जाएगा, भले ही मेमटेस्ट के चर भ्रष्ट हों।


3

कम से कम एक धारणा बनाने के लिए कम से कम एक धारणा है, कि कम से कम स्मृति में खुद को लोड किया जाता है अच्छा है। इसके बाद यह बाकी मेमोरी को पूरी तरह से स्कैन और टेस्ट करने में सक्षम है।

यह हो सकता है कि यह अभी भी अपनी स्वयं की मेमोरी में त्रुटियों को पढ़ने और पता लगाने में सक्षम है, जैसा कि केवल प्रोग्राम लोड होने के नाते, सिस्टम पर मेमोरी की व्यावहारिक रूप से सभी तक पहुंच होनी चाहिए और इसलिए उस मेमोरी को पढ़ने और तुलना करने में सक्षम होना चाहिए "जाना जाता है अच्छा" नमूना।


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

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

1

छोटा होने से। यदि कुछ रैम खराब है, तो प्रोग्राम छोटा है, कम संभावना है कि प्रोग्राम का कुछ हिस्सा खराब स्पॉट में से एक में होगा। स्मृति परीक्षण को लोड करने के लिए पर्याप्त बूटिंग को ध्यान में रखते हुए, रैम का उपयोग करके कुछ फर्मवेयर कोड शामिल होंगे, यदि आप यह पा सकते हैं कि रैम के निचले क्षेत्र पर्याप्त रूप से पर्याप्त काम कर रहे हैं, तो मेमेटेस्ट उनसे चलने में सक्षम होगा।


1

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

खैर, यह वही है जो मेमेस्ट करता है - यह आपके रैम को विभिन्न (ज्ञात) पैटर्न लिखता है, इसे वापस पढ़ता है, और तुलना करता है। यदि कोई गलत मिलान है, तो आपकी रैम को दूषित होना पड़ेगा।

इसका एक सादृश्य हार्ड ड्राइव से हार्ड ड्राइव चेकिंग प्रोग्राम चलाना है जो आपकी चेकिंग है। आप ऐसा कभी नहीं करेंगे, एक खराब ब्लॉक बहुत सारे अप्रत्याशित तरीकों से कार्यक्रम को प्रभावित कर सकता है

हालांकि यह सच है, कुछ मामले ऐसे हैं, जहां आपके पास कोई विकल्प नहीं है। जब तक आप कार्यक्रम को सफलतापूर्वक लोड कर सकते हैं, तब तक यह नैदानिक ​​कार्यों को करने में सक्षम होना चाहिए (भले ही यह किसी प्रकार की दोषपूर्ण मीडिया पर चल रहा हो)।

कैसे खराब रैम के साथ Memtest86 कार्य करता है?

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


TL, DR: Memtest86 + केवल यह मानकर काम करता है कि आपकी RAM की पहली मेगाबाइट अभी भी ठीक है (वह स्थान जहाँ इसे सबसे अधिक लोड किया जाएगा)। मान लिया जाए कि यह क्षेत्र दूषित है, तो मेमटेस्टी + स्वयं केवल कार्य नहीं करेगा (जो कि एक त्वरित संकेतक है जो आपकी रैम खराब है, यहां तक ​​कि परीक्षण चलाने के बिना भी)।


0

यदि रैम एप्लिकेशन को बचाने के लिए वैरिएबल को खराब कर रहा है, तो अधिकांश परीक्षण विफल हो जाएंगे।

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

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