कुछ RAM, या रैंडम-एक्सेस मेमोरी, को ECC मेमोरी के रूप में विज्ञापित किया जाता है। ECC का मतलब एरर करेक्टिंग कोड है और यह मेमोरी में त्रुटियों को पहचानने और सुधारने की एक प्रक्रिया है। रैम में त्रुटियां भ्रष्टाचार या डेटा में परिवर्तन का कारण बन सकती हैं, जिसके परिणामस्वरूप डिवाइस क्रैश हो सकता है और यहां तक कि सुरक्षा कमजोरियां भी हो सकती हैं। ईसीसी रैम आम तौर पर उपभोक्ता-ग्रेड पीसी हार्डवेयर के साथ संगत नहीं है।
मेमोरी एरर क्या हैं?
स्मृति त्रुटियाँ एक समस्या है जहाँ स्मृति में संग्रहीत मान को बदल दिया जाता है। RAM में डेटा 1 या 0 के मान के साथ बाइनरी में संग्रहीत किया जाता है। यदि 1 का मान 0 पर स्विच हो जाता है या इसके विपरीत, "बिट-फ़्लिपिंग" नामक प्रक्रिया में, रैम में संग्रहीत डेटा बदल जाता है।
उदाहरण के लिए, परिवर्तित बिट का उपयोग किसी मान को स्प्रेडशीट में संग्रहीत करने के लिए किया जा सकता है। इस मामले में, स्प्रैडशीट में मान को पूरी तरह से भिन्न संख्या में बदला जा सकता है जो किसी भी गणना के परिणाम को प्रभावित करेगा, उदाहरण के लिए a. के आर्थिक पूर्वानुमानों को बदलना व्यापार। अन्य मामलों में, परिवर्तित बिट सुरक्षा सुविधा को अक्षम कर सकता है, या एक टाइपो बना सकता है जो प्रोग्राम को चलाने के तरीके को बदल देता है। ईसीसी मेमोरी के उपयोग के बिना इन दो उदाहरणों का पता लगाना और हल करना बेहद मुश्किल है। एक चरम परिदृश्य में, एक बिट फ़्लिप किया जा रहा है जो एक भयावह त्रुटि का कारण बन सकता है जो सिस्टम क्रैश का कारण बनता है।
बिट-फ़्लिपिंग के कई संभावित कारण हैं, सबसे आम कारण पृष्ठभूमि विकिरण का परिणाम है, जो मुख्य रूप से कॉस्मिक किरण घटनाओं द्वारा बनाए गए न्यूट्रॉन के कारण होता है। एक ब्रह्मांडीय किरण एक उच्च ऊर्जा कण है, आमतौर पर एक प्रोटॉन, जो लगभग प्रकाश की गति से यात्रा करता है। वे सूर्य और अन्य उच्च ऊर्जा खगोलीय पिंडों सहित तारकीय पिंडों द्वारा उत्सर्जित होते हैं। जब एक ब्रह्मांडीय किरण एक परमाणु से टकराती है तो न्यूट्रॉन की बौछार होती है और अन्य उप-परमाणु कण बनते हैं, फिर ये न्यूट्रॉन द्वितीयक अंतःक्रिया करते हैं।
इन माध्यमिक न्यूट्रॉन इंटरैक्शन को बिट-फ़्लिपिंग त्रुटियों का प्राथमिक स्रोत माना जाता है। समुद्र तल से 1.5 किमी की ऊंचाई पर 3.5x वृद्धि और विमानों की मंडराती ऊंचाई पर 300x वृद्धि के साथ अधिक ऊंचाई पर कॉस्मिक किरणें अधिक सामान्य हैं। ऊंचाई पर यह बढ़ा हुआ जोखिम अतिरिक्त विश्वसनीयता उपायों की आवश्यकता है।
स्मृति त्रुटियाँ कितनी सामान्य हैं?
अधिकांश लोग अपने कंप्यूटर को हर दिन दुर्घटनाग्रस्त होते नहीं देखते हैं, इसलिए यह सोचना आसान होगा कि यह मुख्य रूप से एक सैद्धांतिक जोखिम है। बिट-फ़्लिपिंग घटनाओं की दर का विश्लेषण करने के लिए हाइपरस्केल डेटा केंद्रों के शोध का उपयोग किया गया है। Google द्वारा अपने सभी डेटा केंद्रों पर किए गए शोध में हर 1.8 घंटे में प्रति गीगाबाइट RAM में लगभग 1 सिंगल-बिट त्रुटि की त्रुटि दर दिखाई गई है।
नासा का कैसिनी-ह्यूजेंस मिशन जिसे 1997 में शनि की यात्रा के लिए लॉन्च किया गया था, दो समान उड़ान कंप्यूटरों के साथ 2.5 जीबी रैम के साथ कॉन्फ़िगर किया गया था। अपनी यात्रा के पहले ढाई वर्षों के दौरान, अंतरिक्ष यान ने एक दिन में लगातार 280 सिंगल-बिट त्रुटियां देखीं। एक दिन के दौरान, जब कैसिनी-ह्यूजेंस सौर ज्वाला के रास्ते में थे, तो बिट में चार गुना वृद्धि हुई त्रुटियों को देखा गया था, जो सूर्य के लिए सबसे अधिक बिट-फ़्लिपिंग का कारण होने का और सबूत प्रदान करता है मुद्दे।
ऐसी चिंताएं थीं कि रैम मॉड्यूल के घनत्व में निरंतर वृद्धि से रैम के बाद के संस्करण बिट-फ्लिप के लिए अधिक से अधिक असुरक्षित हो जाएंगे। हाल के अध्ययनों से पता चला है कि विपरीत वास्तव में मामला है, क्योंकि त्रुटियों में गिरावट आई है क्योंकि प्रक्रिया ज्यामिति में कमी आई है।
ECC मेमोरी त्रुटियों से कैसे बचाती है?
ECC मेमोरी रैम में सिंगल-बिट त्रुटियों को ठीक करने के लिए त्रुटि-सुधार करने वाले कोड, जैसे हैमिंग कोड का उपयोग करती है। डबल बिट त्रुटियों का पता लगाया जा सकता है लेकिन सुधार नहीं किया जा सकता है। हैमिंग एरर-करेक्टिंग कोड समता बिट्स की एक सरणी का उपयोग करके काम करते हैं। एक साथ इन समता बिट्स का पता लगाने के लिए उपयोग किया जा सकता है कि क्या कोई डेटा बिट्स बदल गया है। यदि थोड़ा सा फ़्लिप होने के रूप में पहचाना जाता है तो इसे स्वचालित रूप से वापस बदल दिया जाता है।
युक्ति: एकल-बिट त्रुटि एक बिट-फ़्लिपिंग घटना है जब केवल एक बिट फ़्लिप किया जाता है। डबल0बिट त्रुटियों में, दो बिट फ़्लिप किए जाते हैं। दो बिट्स को एक ही घटना में फ़्लिप करने की आवश्यकता नहीं है, दूसरा बिट-फ्लिप केवल पहले फ़्लिप किए गए बिट को ठीक करने से पहले होना चाहिए।
हैमिंग त्रुटि-सुधार कोड में आवश्यकता से अधिक समता बिट शामिल है। यह अतिरिक्त समता बिट कोड को डबल बिट त्रुटियों की घटना का पता लगाने की क्षमता देता है, हालांकि, इन त्रुटियों को ठीक नहीं किया जा सकता है।
त्रुटि का पता लगाने और सुधार करने की प्रक्रिया रैम स्टिक पर लगे मेमोरी कंट्रोलर पर की जाती है।
उपभोक्ता उपलब्धता और समर्थन
अधिकांश उपभोक्ता-ग्रेड पीसी हार्डवेयर ईसीसी मेमोरी का समर्थन नहीं करते हैं। यह आंशिक रूप से उपभोक्ता हार्डवेयर से सर्वर हार्डवेयर को कृत्रिम रूप से अलग करने की एक विधि के रूप में है। हालाँकि, ECC RAM की कीमत अधिक होती है और यह थोड़ी धीमी गति से चलती है। इसके अतिरिक्त, यह घरेलू उपभोक्ताओं को अतिरिक्त स्थिरता प्रदान करेगा क्योंकि बिट-फ़्लिपिंग त्रुटियां सिस्टम क्रैश का प्राथमिक कारण नहीं हैं।
इंटेल का कोई भी उपभोक्ता और उत्साही-ग्रेड सीपीयू ईसीसी मेमोरी का समर्थन नहीं करता है, केवल इसके सर्वर-ग्रेड सीपीयू, जैसे कि ज़ीऑन रेंज सीपीयू करते हैं। एएमडी के उपभोक्ता-ग्रेड सीपीयू ईसीसी का समर्थन नहीं करते हैं, हालांकि, उनके वर्कस्टेशन और सर्वर-ग्रेड सीपीयू, थ्रेडिपर और ईपीवाईसी क्रमशः ईसीसी मेमोरी का समर्थन करते हैं।