ما هي ذاكرة ECC؟

يتم الإعلان عن بعض ذاكرة الوصول العشوائي ، أو ذاكرة الوصول العشوائي ، كذاكرة ECC. يرمز ECC إلى رمز تصحيح الخطأ وهو عملية لتحديد وتصحيح الأخطاء في الذاكرة. يمكن أن تتسبب الأخطاء في ذاكرة الوصول العشوائي في تلف البيانات أو تغييرها ، مما قد يؤدي إلى تعطل الجهاز وحتى الثغرات الأمنية. لا تتوافق ذاكرة ECC RAM عادةً مع أجهزة الكمبيوتر الشخصية من فئة المستهلك.

ما هي أخطاء الذاكرة؟

أخطاء الذاكرة هي مشكلة حيث يتم تغيير القيمة المخزنة في الذاكرة. يتم تخزين البيانات في ذاكرة الوصول العشوائي في صورة ثنائية ، بقيم 1 أو 0. إذا تم تبديل قيمة 1 إلى 0 أو العكس ، في عملية تسمى "bit-flipping" ، تتغير البيانات المخزنة في ذاكرة الوصول العشوائي.

على سبيل المثال ، يمكن استخدام البت الذي تم تغييره لتخزين قيمة في جدول بيانات. في هذه الحالة ، يمكن تغيير القيمة الموجودة في جدول البيانات إلى رقم مختلف تمامًا قد تؤثر على نتيجة أي حسابات ، على سبيل المثال تغيير التوقعات الاقتصادية لـ عمل. في حالات أخرى ، يمكن للبت الذي تم تغييره تعطيل ميزة أمان ، أو إنشاء خطأ إملائي يغير كيفية تشغيل البرنامج. من الصعب للغاية اكتشاف هذين المثالين وحلهما بدون استخدام ذاكرة ECC. في سيناريو متطرف ، قد يتسبب قلب بت واحد في حدوث خطأ فادح يتسبب في تعطل النظام.

لتقليب البتات العديد من الأسباب المحتملة ، والسبب الأكثر شيوعًا هو نتيجة إشعاع الخلفية ، الذي ينتج بشكل أساسي عن النيوترونات الناتجة عن أحداث الأشعة الكونية. الشعاع الكوني هو جسيم عالي الطاقة ، عادةً بروتون ، يسافر بسرعة الضوء تقريبًا. تنبعث من الأجسام النجمية بما في ذلك الشمس والأجسام الفلكية الأخرى عالية الطاقة. عندما يصطدم شعاع كوني بذرة ، يتم تكوين وابل من النيوترونات وغيرها من الجسيمات دون الذرية ، تستمر هذه النيوترونات في تفاعلات ثانوية.

يُعتقد أن تفاعلات النيوترونات الثانوية هذه هي المصدر الأساسي لأخطاء تقليب البتات. تكون الأشعة الكونية أكثر شيوعًا في الارتفاعات العالية مع زيادة 3.5 مرة عند 1.5 كيلومتر فوق مستوى سطح البحر وزيادة 300 ضعف في الارتفاع المبحر للطائرات. هذا الخطر المتزايد على ارتفاع يستلزم تدابير موثوقية إضافية.

ما مدى شيوع أخطاء الذاكرة؟

لا يرى معظم الأشخاص أجهزة الكمبيوتر الخاصة بهم تتعطل كل يوم ، لذلك سيكون من السهل الاعتقاد بأن هذا يمثل خطرًا نظريًا في المقام الأول. تم استخدام الأبحاث من مراكز البيانات الفائقة لتحليل معدل حوادث تقليب البت. أظهرت الأبحاث التي أجرتها Google عبر مراكز البيانات الخاصة بها معدل خطأ يبلغ تقريبًا خطأ أحادي بت واحد لكل جيجابايت من ذاكرة الوصول العشوائي كل 1.8 ساعة.

تم تكوين مهمة Cassini-Huygens التابعة لناسا والتي بدأت في عام 1997 للسفر إلى زحل بجهازي كمبيوتر طيران متطابقين مع 2.5 جيجا بايت من ذاكرة الوصول العشوائي. خلال أول عامين ونصف العام من رحلتها ، لاحظت المركبة الفضائية 280 خطأً فرديًا في اليوم. خلال يوم واحد ، عندما كانت Cassini-Huygens في مسار التوهج الشمسي ، زادت قليلا بمقدار أربعة أضعاف لوحظ وجود أخطاء ، مما يوفر مزيدًا من الأدلة على أن الشمس هي السبب في معظم تقليب البتات مسائل.

كانت هناك مخاوف من أن تؤدي الزيادة المستمرة في كثافة وحدات ذاكرة الوصول العشوائي إلى أن تكون الإصدارات اللاحقة من ذاكرة الوصول العشوائي أكثر عرضة لتقلبات البت. أظهرت الدراسات الحديثة أن العكس هو الصحيح في الواقع ، حيث انخفضت الأخطاء مع انخفاض هندسة العملية.

كيف تحمي ذاكرة ECC من الأخطاء؟

تستخدم ذاكرة ECC رموز تصحيح الأخطاء ، مثل أكواد Hamming ، لتصحيح أخطاء أحادية البت في ذاكرة الوصول العشوائي. يمكن الكشف عن أخطاء بت مزدوج ولكن لا يتم تصحيحها. تعمل أكواد تصحيح الأخطاء المبطنة باستخدام مجموعة من بتات التكافؤ. يمكن استخدام بتات التكافؤ هذه معًا للكشف عن تغيير أي بتات بيانات. إذا تم تحديد جزء ما على أنه انقلب ، فسيتم تغييره مرة أخرى تلقائيًا.

نصيحة: خطأ أحادي البت هو حادث قلب بت عندما يتم قلب بت واحد فقط. في أخطاء double0bit ، يتم قلب بتين. لا يلزم قلب البتتين في نفس الحادثة ، يجب أن يحدث قلب البت الثاني فقط قبل تصحيح البتة المقلوبة الأولى.

يتم تضمين بت تكافؤ واحد أكثر مما هو مطلوب في رموز تصحيح الخطأ للمطرقة. يمنح بت التكافؤ الإضافي هذا الرمز القدرة على اكتشاف حدوث أخطاء بتات مزدوج ، ومع ذلك ، لا يمكن تصحيح هذه الأخطاء.

يتم إجراء عملية الكشف عن الأخطاء وتصحيحها على وحدة التحكم في الذاكرة الموجودة على ذاكرة الوصول العشوائي.

توافر المستهلك والدعم

لا تدعم معظم أجهزة الكمبيوتر الشخصية من فئة المستهلك ذاكرة ECC. هذا جزئيًا كطريقة للتمييز بشكل مصطنع بين أجهزة الخادم وأجهزة المستهلك. ومع ذلك ، فإن تكلفة ذاكرة الوصول العشوائي ECC RAM أعلى وتعمل بشكل أبطأ قليلاً. بالإضافة إلى ذلك ، فإن الاستقرار الإضافي الذي سيوفره للمستهلكين المنزليين يكون ضئيلاً للغاية لأن أخطاء قلب البت ليست السبب الرئيسي لتعطل النظام.

لا تدعم أي من وحدات المعالجة المركزية للمستهلكين والمتحمسين من Intel ذاكرة ECC ، فقط وحدات المعالجة المركزية على مستوى الخادم ، مثل وحدات المعالجة المركزية من فئة Xeon. لا تدعم وحدات المعالجة المركزية من فئة المستهلك من AMD ECC ، ومع ذلك ، فإن محطات العمل ووحدات المعالجة المركزية على مستوى الخادم ، و Threadripper و EPYC على التوالي ، تدعم ذاكرة ECC.