ذاكرة ECC

تحتوي وحدات الذاكرة DIMM المزودة بتقنية تصحيح الأخطاء ECC عادةً على تسع رقائق ذاكرة على كل جانب، أي أكثر بواحدة مما هو موجود عادةً في وحدات الذاكرة DIMM غير المزودة بتقنية تصحيح الأخطاء ECC (قد تحتوي بعض الوحدات على 5 أو 18 رقاقة). [ 1 ]

ذاكرة رمز تصحيح الأخطاء ( ذاكرة ECC ) هي نوع من أنواع تخزين بيانات الكمبيوتر التي تستخدم رمز تصحيح الأخطاء ( ECC) لاكتشاف وتصحيح تلف البيانات من نوع n -bit الذي يحدث في الذاكرة.

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

تُستخدم ذاكرة ECC في معظم أجهزة الكمبيوتر حيث لا يمكن التسامح مع تلف البيانات، مثل تطبيقات التحكم الصناعية وقواعد البيانات الحيوية وذاكرة التخزين المؤقت للبنية التحتية.

الخلفية: أخطاء الذاكرة

مفهوم

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

يمكن أن يتسبب التداخل الكهربائي أو المغناطيسي داخل نظام الحاسوب في انقلاب بت واحد من ذاكرة الوصول العشوائي الديناميكية ( DRAM ) تلقائيًا إلى الحالة المعاكسة. كان يُعتقد في البداية أن هذا يعود بشكل أساسي إلى جسيمات ألفا المنبعثة من الملوثات الموجودة في مواد تغليف الرقائق، لكن الأبحاث أظهرت أن غالبية الأخطاء العابرة في رقائق DRAM تحدث نتيجة للإشعاع الخلفي ، وخاصة النيوترونات المنبعثة من الأشعة الكونية الثانوية، والتي قد تُغير محتويات خلية ذاكرة واحدة أو أكثر أو تتداخل مع الدوائر المستخدمة للقراءة أو الكتابة إليها. [ 2 ] وبالتالي، تزداد معدلات الخطأ بسرعة مع ارتفاع الارتفاع؛ فعلى سبيل المثال، مقارنةً بمستوى سطح البحر، يكون معدل تدفق النيوترونات أعلى بمقدار 3.5 مرة عند ارتفاع 1.5  كيلومتر، وأعلى بمقدار 300 مرة عند ارتفاع 10-12  كيلومترًا (ارتفاع تحليق الطائرات التجارية). [ 3 ] ونتيجة لذلك، تتطلب الأنظمة العاملة على ارتفاعات عالية تدابير خاصة لضمان موثوقيتها.

على سبيل المثال، احتوت المركبة الفضائية كاسيني-هويجنز ، التي أُطلقت عام ١٩٩٧، على مسجلين متطابقين للرحلة، كل منهما مزود بذاكرة سعتها ٢.٥ جيجابت على شكل مصفوفات من رقائق ذاكرة الوصول العشوائي الديناميكية (DRAM) التجارية. وبفضل وظيفة EDAC المدمجة ، سجلت بيانات القياس عن بُعد الهندسية للمركبة عدد أخطاء البت الواحد (القابلة للتصحيح) وأخطاء البت المزدوج (غير القابلة للتصحيح) لكل كلمة. خلال أول سنتين ونصف من الرحلة، سجلت المركبة معدل خطأ بت واحد ثابتًا تقريبًا يبلغ حوالي ٢٨٠ خطأً يوميًا. مع ذلك، في  ٦ نوفمبر ١٩٩٧، خلال الشهر الأول في الفضاء، ازداد عدد الأخطاء بأكثر من أربعة أضعاف في ذلك اليوم. وقد عُزي ذلك إلى حدث جسيمات شمسية رصده القمر الصناعي GOES 9. [ ٤ ]

كان هناك بعض القلق من أنه مع ازدياد كثافة ذاكرة الوصول العشوائي الديناميكية (DRAM)، وبالتالي تصغير حجم المكونات على الرقائق، وانخفاض جهد التشغيل، ستتأثر رقائق DRAM بهذا الإشعاع بشكل متكرر، نظرًا لقدرة الجسيمات منخفضة الطاقة على تغيير حالة خلية الذاكرة. [ 3 ] من ناحية أخرى، تُشكل الخلايا الأصغر أهدافًا أصغر، وقد تجعل التقنيات الحديثة، مثل تقنية السيليكون على العازل (SOI) ، الخلايا الفردية أقل عرضة للإشعاع، وبالتالي تُعاكس هذا الاتجاه أو حتى تُعكسه. تُظهر دراسات حديثة [ 5 ] أن اضطرابات الأحداث الفردية الناتجة عن الإشعاع الكوني قد انخفضت بشكل كبير مع هندسة التصنيع، وأن المخاوف السابقة بشأن زيادة معدلات خطأ خلية البت لا أساس لها من الصحة.

معدلات الخطأ وعواقبها في العالم الحقيقي

أظهرت الدراسات المنشورة بين عامي 2007 و2009 معدلات خطأ متفاوتة على نطاق واسع، مع اختلاف يزيد عن سبعة مراتب من حيث الحجم، تتراوح من10⁻¹⁰ خطأ/(بت·ساعة)  ، أي ما يقارب خطأ بت واحد في الساعة لكل جيجابايت من الذاكرة، إلى10⁻¹⁷ خطأ/(بت·ساعة)  ، أي ما يقارب خطأ بت واحد لكل ألفية لكل جيجابايت من الذاكرة. [ 5 ] [ 6 ] [ 7 ] عُرضت دراسة واسعة النطاق، استنادًا إلى عدد كبير جدًا من خوادم جوجل ، في مؤتمر SIGMETRICS/Performance  '09. [ 6 ] كان معدل الخطأ الفعلي الذي تم التوصل إليه أعلى بعدة مراتب من الدراسات السابقة صغيرة النطاق أو المختبرية، حيث تراوح بين 25000 (2.5 × 10−11 خطأ/(بت·ساعة) )  و70,000 (7.0 × 10⁻¹¹ خطأ/(بت·ساعة) ، أو خطأ بت واحد لكل جيجابايت من ذاكرة الوصول العشوائي لكل 1.8 ساعة، أي ما يعادل 7.0 × 10⁻¹¹  خطأ لكل مليار ساعة تشغيل للجهاز لكل ميغابت. وقد تأثرت أكثر من 8% من وحدات ذاكرة DIMM بالأخطاء سنويًا.

تختلف عواقب أخطاء الذاكرة باختلاف النظام. ففي الأنظمة التي لا تحتوي على تصحيح الأخطاء (ECC)، قد يؤدي الخطأ إما إلى تعطل النظام أو إلى تلف البيانات؛ وفي مواقع الإنتاج واسعة النطاق، تُعد أخطاء الذاكرة من أكثر أسباب تعطل الأجهزة شيوعًا. [ 6 ] كما يمكن أن تُسبب أخطاء الذاكرة ثغرات أمنية. [ 6 ] وقد لا يكون لخطأ الذاكرة أي عواقب إذا غيّر بتًا واحدًا لا يُسبب خللًا ملحوظًا ولا يؤثر على البيانات المستخدمة في العمليات الحسابية أو المحفوظة. وأظهرت دراسة محاكاة أُجريت عام 2010 أنه بالنسبة لمتصفح الويب، لم تُسبب سوى نسبة ضئيلة من أخطاء الذاكرة تلفًا للبيانات، ومع ذلك، نظرًا لأن العديد من أخطاء الذاكرة متقطعة ومترابطة، فإن تأثيرات أخطاء الذاكرة كانت أكبر مما هو متوقع للأخطاء العابرة المستقلة. [ 8 ]

تُشير بعض الاختبارات إلى إمكانية تجاوز عزل خلايا ذاكرة DRAM من خلال آثار جانبية غير مقصودة ناتجة عن عمليات وصول مُصممة خصيصًا إلى الخلايا المجاورة. وبالتالي، يؤدي الوصول إلى البيانات المخزنة في DRAM إلى تسريب شحنات خلايا الذاكرة وتفاعلها كهربائيًا، نتيجةً لكثافة الخلايا العالية في الذاكرة الحديثة، مما يُغير محتوى صفوف الذاكرة المجاورة التي لم يتم الوصول إليها في عملية الوصول الأصلية. يُعرف هذا التأثير باسم " مطرقة الصف" ، وقد استُخدم أيضًا في بعض ثغرات أمن الحاسوب التي تسمح بتصعيد الامتيازات . [ 9 ] [ 10 ]

مثال على خطأ في بت واحد يتجاهله نظام لا يحتوي على آلية للتحقق من الأخطاء، أو يُوقف جهازًا مزودًا بخاصية التحقق من التكافؤ، أو يُصححه نظام تصحيح الأخطاء (ECC) بشكل غير مرئي: بت واحد عالق عند القيمة 1 بسبب شريحة معيبة، أو يتغير إلى 1 بسبب الإشعاع الخلفي أو الإشعاع الكوني؛ يتم تحميل جدول بيانات يخزن أرقامًا بتنسيق ASCII، ويُخزن الحرف "8" (القيمة العشرية 56 في ترميز ASCII) في البايت الذي يحتوي على البت العالق في أدنى موضع له؛ ثم يُجرى تغيير على جدول البيانات ويُحفظ. نتيجة لذلك، يتحول الرقم "8" (0011 100 0 ثنائيًا) إلى الرقم "9" (0011 100 1 ) دون أن يُلاحظ.

الحلول

تم تطوير العديد من الأساليب للتعامل مع عمليات قلب البتات غير المرغوب فيها، بما في ذلك البرمجة الواعية بالمناعة، وذاكرة التكافؤ RAM ، وذاكرة ECC .

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

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

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

المخططات

قد توفر أنظمة الذاكرة الفرعية الحديثة سلامة البيانات من خلال واحد أو أكثر من المخططات التالية: [ 11 ]

  • بواسطة وحدة التحكم بالذاكرة: تقوم هذه المخططات بوحدة التحكم بالذاكرة بإرسال أو استقبال بيانات إضافية إلى الشريحة.
    • تُعدّ تقنية تصحيح الأخطاء الجانبية (SBECC) الأسلوب التقليدي للخوادم. تُخزّن رموز تصحيح الأخطاء في رقائق ذاكرة الوصول العشوائي الديناميكية (DRAM) منفصلة، ​​وتُرسل مع البيانات عبر قنوات إضافية (بتات إضافية لكل كلمة). يقوم متحكم الذاكرة بحساب رموز تصحيح الأخطاء عند الكتابة، وتصحيح الأخطاء عند القراءة، وإبلاغ نظام التشغيل أو البرامج الثابتة ( UEFI أو BIOS ) بتصحيحات الأخطاء واكتشافها .
    • لا تستخدم تقنية تصحيح الأخطاء المضمنة (Inline ECC) أو تقنية تصحيح الأخطاء المدمجة (IBECC) عرض قناة إضافي، وبالتالي فهي متوافقة مع وحدات الذاكرة "غير المزودة بتقنية تصحيح الأخطاء". يقوم متحكم الذاكرة بتقسيم المساحة الفعلية.
      • في أحد أساليب التنفيذ، كما هو الحال في معالج IBECC من إنتل ومعالج RTOS من TI، تُقسّم مساحة العناوين الفيزيائية بحيث تُخصص لها مساحة من الذاكرة المحجوزة. [ 12 ] يتطلب كل أمر كتابة أمر كتابة إضافي، وينطبق الأمر نفسه على أوامر القراءة. ينتج عن ذلك زيادة في زمن استجابة الذاكرة بمقدار الضعف تقريبًا. على وجه التحديد، يُحدث تنفيذ إنتل تأثيرًا طفيفًا على أداء تطبيقات تصفح الإنترنت والإنتاجية، ولكنه قد يُقلل الأداء بنسبة تصل إلى 25% في الألعاب وتطبيقات تحرير الفيديو. [ 13 ]
      • من الناحية النظرية، يُمكن ببساطة تقسيم القناة الحالية (مثلاً، 64 بت إلى 56 بت للبيانات و8 بت للتحقق) لتوفير ما يُشابه تصحيح الأخطاء الجانبي. قراءة سريعة لوصف شركة Synopsys لتقنية "تصحيح الأخطاء المضمن" (inline ECC) التي تُشير إلى تقسيم قناة 16 بت لكل شريحة، تُؤدي إلى هذا الفهم، ولكن هذا ليس شائعًا في المنتجات التجارية. [ 14 ]
  • بحسب شريحة الذاكرة: يُعدّ تصحيح الأخطاء المدمج (ODECC)، والذي يُسمى أيضًا تصحيح الأخطاء داخل ذاكرة الوصول العشوائي الديناميكية (in-DRAM ECC) أو تصحيح الأخطاء المتكامل، [ 15 ] إلزاميًا في جميع وحدات ذاكرة DDR5 و LPDDR6 [ 16 ] للحدّ من معدلات الخطأ المرتفعة المرتبطة بخلايا الذاكرة الأصغر حجمًا. تُدمج دوائر تخزين تصحيح الأخطاء الإضافية ودوائر تصحيح الأخطاء في شرائح ذاكرة الوصول العشوائي الديناميكية، وهي غير مرئية لوحدة تحكم الذاكرة. لا يتم تصحيح أخطاء الإرسال لأن تصحيح الأخطاء لا يُرسل مع البيانات، ولا يتم الإبلاغ عن تصحيحات الأخطاء أو اكتشافها. يُضاف زمن استجابة إضافي فقط عند الحاجة إلى تصحيح الأخطاء.
  • من قبل كليهما
    • تُضيف تقنية تصحيح الأخطاء على مستوى الربط (Link ECC) تصحيحًا للأخطاء إلى رابط البيانات، ولكن ليس إلى وحدة التخزين الأساسية. يقوم متحكم الذاكرة بحساب وإرسال تصحيحات الأخطاء مع البيانات عند الكتابة إلى ذاكرة الوصول العشوائي الديناميكية (DRAM)، والتي بدورها تتحقق من الأخطاء وتصححها. عند القراءة، تقوم ذاكرة الوصول العشوائي الديناميكية (DRAM) بحساب تصحيحات الأخطاء التي يتحقق منها متحكم الذاكرة. تُعد هذه التقنية جزءًا من ذاكرة LPDDR5 . في حين أن تصحيح الأخطاء على مستوى الربط الجانبي (side-band ECC) يوفر تلقائيًا تكرارًا على مستوى الربط، فإن تصحيح الأخطاء على مستوى الربط الداخلي/المضمن باستخدام حجز مساحة العناوين الفيزيائية وتصحيح الأخطاء على الشريحة لا يوفران ذلك؛ إذ يتطلبان طبقة من تصحيح الأخطاء على مستوى الربط للحماية من التلف أثناء الإرسال.

الإبلاغ عن الأخطاء

في العديد من التطبيقات المبكرة لذاكرة تصحيح الأخطاء (ECC)، وكذلك تقنية ECC المدمجة في الشريحة، يتم إخفاء الأخطاء القابلة للتصحيح، حيث يتم التعامل معها كما لو أنها لم تحدث، ويتم الإبلاغ فقط عن الأخطاء غير القابلة للتصحيح. أما التطبيقات الحديثة، فتسجل كلاً من الأخطاء القابلة للتصحيح (CE) والأخطاء غير القابلة للتصحيح (UE). ويلجأ البعض إلى استبدال وحدات الذاكرة التي تُظهر معدلات خطأ عالية، وذلك للحد من احتمالية حدوث أخطاء غير قابلة للتصحيح. [ 17 ]

التطبيقات

ذاكرة الخادم القياسية: النطاق الجانبي SECDED

صُممت ذاكرة الخوادم القياسية لرمز هامينغ SECDED ( تصحيح خطأ واحد واكتشاف خطأين ) ، مما يسمح بتصحيح خطأ بت واحد واكتشاف خطأين بت لكل كلمة (وحدة نقل البيانات على الناقل ). منذ ظهور ذاكرة DDR SDRAM ، أصبح عرض الناقل القياسي (حجم الكلمة) 64 بت. ونتيجة لذلك، فإن الإعداد النموذجي بين DDR وDDR4 هو كلمة 72 بت، تتضمن 64 بت للبيانات و8 بتات للتحقق. أما ذاكرة DDR5 SDRAM ، فتقسم الناقل إلى قناتين فرعيتين مستقلتين نسبيًا، كل منهما 32 بت، لذا تستخدم ذاكرة ECC عرضًا إجماليًا قدره 80 بت، موزعة بين قناتين 40 بت (32 بت للبيانات، و8 بتات للتحقق). [ 18 ] كما تُستخدم تقنية ECC مع أحجام أصغر وأكبر.

يستخدم متحكم الذاكرة المزود بتقنية تصحيح الأخطاء (ECC) البتات الإضافية لتخزين رمز SECDED؛ وتقتصر مسؤولية الذاكرة على تخزين هذه البتات الإضافية. منذ أواخر التسعينيات، يتواصل متحكم الذاكرة أيضًا مع نظام الإدخال والإخراج الأساسي (BIOS) ويحتفظ بسجل للأخطاء المكتشفة والمصححة، وذلك جزئيًا للمساعدة في تحديد وحدات الذاكرة المعيبة قبل أن تتفاقم المشكلة. يدعم العديد من الأنظمة قراءة هذا السجل بفضل معيار SMBIOS ، المتوفر في أنظمة Linux و BSD و Windows ( Windows 2000 والإصدارات الأحدث). [ 19 ]

تخطيط الأجزاء

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

تُعالج هذه الثغرة بتقنيات متنوعة، منها تقنية Chipkill من IBM ، وتقنية Extended ECC من Sun Microsystems ، وتقنية Chipspare من Hewlett-Packard ، وتقنية Single Device Data Correction (SDDC) من Intel ، حيث تضمن جميعها أن يؤثر عطل شريحة ذاكرة واحدة على بت واحد فقط لكل كلمة ECC. ويتحقق ذلك بتوزيع بتات كلمات ECC على الشرائح، وهو شكل من أشكال التداخل . ولضمان حصول كل شريحة على بت واحد فقط لكل كلمة، قد يكون من الضروري تطبيق التداخل على وحدات ذاكرة متعددة (شرائح).

يُعدّ التداخل عمومًا أسلوبًا مفيدًا للحماية من أعطال البتات المتعددة المترابطة. فعلى سبيل المثال، قد يُؤثر شعاع كوني على بتات متجاورة فيزيائيًا عبر كلمات متعددة، وذلك بربط البتات المتجاورة بكلمات مختلفة. وطالما أن اضطراب الحدث الفردي (SEU) لا يتجاوز عتبة الخطأ (مثل خطأ واحد) في أي كلمة معينة بين عمليات الوصول، فإنه يُمكن تصحيحه (مثلًا، بواسطة رمز تصحيح خطأ بت واحد)، وبالتالي يُمكن الحفاظ على نظام ذاكرة خالٍ من الأخطاء فعليًا. [ 20 ]

بواسطة شريحة الذاكرة نفسها

تتضمن بعض رقاقات ذاكرة الوصول العشوائي الديناميكية (DRAM) دوائر تصحيح أخطاء داخلية "مدمجة" أو "على الشريحة"، مما يسمح للأنظمة ذات وحدات تحكم الذاكرة غير المصححة للأخطاء (non-ECC) بالاستفادة من معظم مزايا ذاكرة ECC. [ 21 ] [ 22 ] في بعض الأنظمة، يمكن تحقيق تأثير مماثل باستخدام وحدات ذاكرة EOS .

كما ذُكر سابقًا، يُعدّ تصحيح الأخطاء المدمج في شريحة الذاكرة إلزاميًا في ذاكرة DDR5 وLPDDR6. مع ذلك، فإنّ عدم وجود تقارير عنه يعني أنّه لا يُعرف سوى القليل جدًا عن الحالة الحقيقية لشريحة الذاكرة حتى تتجاوز الأخطاء قدرة الخوارزمية المدمجة على تصحيحها؛ إذ لا تُقدّم أي معلومات حول هامش الخطأ المتاح. وقد طُوّرت خوارزميات متطورة لاستنتاج وجود أخطاء مُصحّحة بناءً على الأخطاء غير المُصحّحة. [ 15 ]

مكان التصحيح

تستخدم العديد من أنظمة ذاكرة ECC دائرة EDAC خارجية بين وحدة المعالجة المركزية والذاكرة. وتستخدم بعض الأنظمة المزودة بذاكرة ECC نظامي EDAC داخلي وخارجي؛ ويجب تصميم نظام EDAC الخارجي لتصحيح بعض الأخطاء التي يعجز النظام الداخلي عن تصحيحها. [ 21 ] تدمج وحدات المعالجة المركزية الحديثة لأجهزة سطح المكتب والخوادم دائرة EDAC ضمنها، [ 23 ] حتى قبل التحول نحو وحدات التحكم بالذاكرة المدمجة في وحدة المعالجة المركزية، والمرتبطة ببنية NUMA . ويتيح دمج وحدة المعالجة المركزية نظام EDAC يعمل دون أي تأثير سلبي على الأداء أثناء التشغيل الخالي من الأخطاء.

خوارزميات التصحيح

اعتبارًا من عام 2009، كانت أكثر رموز تصحيح الأخطاء شيوعًا تستخدم رموز هامينغ أو هسياو التي توفر تصحيحًا للأخطاء أحادية البت وكشفًا للأخطاء ثنائية البت (SEC-DED). وقد اقتُرحت رموز أخرى لتصحيح الأخطاء لحماية الذاكرة ، مثل رموز تصحيح الأخطاء ثنائية البت وكشف الأخطاء ثلاثية البت (DEC-TED)، ورموز تصحيح الأخطاء أحادية النصف بايت وكشف الأخطاء ثنائية النصف بايت (SNC-DND)، ورموز تصحيح الأخطاء ريد-سولومون ، وغيرها. ومع ذلك، عمليًا، يُنفَّذ تصحيح الأخطاء متعددة البتات عادةً عن طريق دمج عدة رموز SEC-DED. [ 24 ] [ 25 ] 

سعت الأبحاث المبكرة إلى تقليل مساحة دوائر تصحيح الأخطاء (ECC) وتأخيرها. وقد أثبت هامينغ لأول مرة إمكانية استخدام رموز SEC-DED باستخدام مصفوفة فحص محددة. ثم بيّن هسياو أن مصفوفة بديلة ذات أعمدة ذات أوزان فردية توفر إمكانية استخدام رموز SEC-DED بمساحة أقل وتأخير أقصر من رموز هامينغ SEC-DED التقليدية. [ 26 ] كما تسعى الأبحاث الحديثة إلى تقليل استهلاك الطاقة بالإضافة إلى تقليل المساحة والتأخير. [ 27 ] [ 28 ]

التكرار بدلاً من تصحيح الأخطاء

تستخدم وحدات التحكم في الذاكرة المصححة للأخطاء عادةً رموز تصحيح الأخطاء المثلى من حيث المساحة، مثل هامينغ وهسياو. إذا لم تكن التكلفة والمساحة من الأولويات، وإنما السرعة، فيمكن استخدام التكرار الثلاثي المعياري (TMR) نظرًا لسرعة تنفيذه على مستوى الأجهزة. [ 20 ] غالبًا ما تستخدم أنظمة الأقمار الصناعية تقنية TMR، [ 29 ] [ 30 ] [ 31 ] على الرغم من أن ذاكرة الوصول العشوائي (RAM) للأقمار الصناعية تستخدم عادةً تصحيح أخطاء هامينغ. [ 32 ]

أجهزة الكمبيوتر الشخصية

 في عام 1982، استخدمت لوحة الذاكرة هذه التي تبلغ سعتها 512 كيلوبايت من شركة Cromemco 22 بت من التخزين لكل كلمة من 16 بت لإجراء تصحيح الأخطاء على مستوى البت الواحد.

قال سيمور كراي قولته الشهيرة " التكافؤ للمزارعين " عندما سُئل عن سبب استبعاده لهذه الميزة من جهاز CDC 6600. [ 33 ] لاحقًا، أضاف التكافؤ إلى جهاز CDC 7600 ، مما دفع بعض الخبراء إلى التعليق قائلين: "يبدو أن الكثير من المزارعين يشترون أجهزة الكمبيوتر". استخدم جهاز IBM PC الأصلي وجميع أجهزة الكمبيوتر الشخصية حتى أوائل التسعينيات فحص التكافؤ. [ 34 ] أما الأجهزة اللاحقة فلم تستخدمه في الغالب.

تتمتع معظم مسارات البيانات في أجهزة الكمبيوتر الشخصية في العقد الثاني من القرن الحادي والعشرين، بما في ذلك PCIe وSATA والوصلات بين الشرائح ووحدات التخزين على القرص، بنوع من أنواع حماية تصحيح الأخطاء (ECC). ويُعدّ غياب هذه الحماية في الذاكرة الرئيسية أمرًا غير معتاد، لا سيما بالنظر إلى حجمها الكبير واحتمالية تلفها العالية. وقد نشر لينوس تورفالدز مقالًا مطولًا في أحد المنتديات عام 2021 ينتقد فيه قرار إنتل بالتخلي عن دعم تصحيح الأخطاء في منصات سطح المكتب، في حين أن منصات AMD الحديثة لسطح المكتب كانت تستخدم (ولكن ليس بالضرورة تفعيل ميزة تصحيح الأخطاء) وحدات DIMM المسجلة التي تدعم هذه الميزة. [ 35 ]

مخبأ

تستخدم العديد من وحدات المعالجة المركزية رموز تصحيح الأخطاء في ذاكرة التخزين المؤقت الموجودة على الشريحة ، بما في ذلك معالجات Intel Itanium و Xeon و Core و Pentium (منذ بنية P6 الدقيقة ) [ 36 ] [ 37 ] ، ومعالجات AMD Athlon و Opteron ، وجميع المعالجات القائمة على Zen [ 38 ] و Zen+ [ 39 ] ( EPYC و EPYC Embedded و Ryzen و Ryzen Threadripper ) ، و DEC Alpha 21264. [ 24 ] [ 40 ]

اعتبارًا من عام 2006تُعدّ تقنيتا EDC/ECC وECC/ECC من أكثر تقنيات حماية ذاكرة التخزين المؤقت شيوعًا في المعالجات الدقيقة التجارية. تستخدم تقنية EDC/ECC رمزًا لكشف الأخطاء (EDC) في ذاكرة التخزين المؤقت من المستوى الأول. في حال اكتشاف خطأ، تُستعاد البيانات من ذاكرة التخزين المؤقت من المستوى الثاني المحمية بتقنية ECC. أما تقنية ECC/ECC فتستخدم ذاكرة تخزين مؤقت من المستوى الأول وأخرى من المستوى الثاني محميتين بتقنية ECC. [ 41 ] تقوم وحدات المعالجة المركزية التي تستخدم تقنية EDC/ECC دائمًا بكتابة جميع عمليات التخزين (STORE) مباشرةً إلى ذاكرة التخزين المؤقت من المستوى الثاني، بحيث يُمكن استعادة نسخة من البيانات المكتشفة أثناء القراءة من ذاكرة التخزين المؤقت من المستوى الأول من ذاكرة التخزين المؤقت من المستوى الثاني.

الذاكرة المسجلة

الذاكرة المسجلة، أو المخزنة مؤقتًا، ليست هي نفسها تقنية تصحيح الأخطاء (ECC)؛ فلكلتا التقنيتين وظائف مختلفة. من الشائع استخدام نوعين من الذاكرة في الخوادم: الذاكرة المسجلة، للسماح باستخدام العديد من وحدات الذاكرة دون مشاكل كهربائية، وتقنية تصحيح الأخطاء (ECC)، لضمان سلامة البيانات.

التكاليف والفوائد

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

تُعدّ ذاكرة ECC أغلى ثمناً من ذاكرة non-ECC نظراً لوظائفها الإضافية في التحقق من الأخطاء . [ 42 ] تراوحت التكلفة الإضافية لذاكرة ECC بسعة 1 جيجابايت في عام 2010 بين 0 و15 دولاراً أمريكياً، وذلك تبعاً للأداء والشركة المصنعة. [ 43 ] وقد استلزم تصميم ECC واستخدامها في أحمال العمل عالية الموثوقية وجود تكاليف إضافية للتحقق من صحة البيانات، بالإضافة إلى تصميمات إضافية على مستوى الدوائر داخل الذاكرة. [ 6 ] وتؤدي هذه الميزات عادةً إلى ارتفاع تكاليف تطبيق ECC.

قد يختار مصنّعو اللوحات الأم إضافة توافق مع تقنية تصحيح الأخطاء (ECC) بمستويات متفاوتة حسب شريحة السوق. [ 44 ] بعض اللوحات والمعالجات التي تدعم تقنية ECC قادرة على دعم ذاكرة ECC غير المخزنة مؤقتًا (غير المسجلة)، ولكنها تعمل أيضًا مع الذاكرة غير المتوافقة مع ECC؛ حيث يُفعّل برنامج النظام الثابت وظيفة ECC في حال تثبيت ذاكرة ECC. [ 45 ]

قد يؤدي استخدام تصحيح الأخطاء (ECC) إلى خفض أداء الذاكرة بنسبة تتراوح بين 2 و3% في بعض الأنظمة، وذلك تبعًا للتطبيق وطريقة التنفيذ، نظرًا للوقت الإضافي الذي تستغرقه وحدات تحكم الذاكرة المزودة بتقنية ECC لإجراء فحص الأخطاء. [ 46 ] ومع ذلك، تدمج الأنظمة الحديثة اختبار ECC في وحدة المعالجة المركزية، مما لا يُسبب أي تأخير إضافي في الوصول إلى الذاكرة طالما لم يتم اكتشاف أي أخطاء. [ 23 ] [ 47 ] [ 48 ]

لا ينطبق هذا على تقنية تصحيح الأخطاء داخل النطاق (en-band ECC )، التي تخزن الجداول المستخدمة للحماية في منطقة محجوزة من ذاكرة النظام الرئيسية، [ 49 ] [ 50 ] والتي تدعمها إنتل لأجهزة Chromebook ، والتي لم تُظهر تأثيرًا يُذكر على تصفح الإنترنت ومهام الإنتاجية، ولكنها تسببت في انخفاض يصل إلى 25% في معايير أداء الألعاب وتحرير الفيديو . [ 13 ]

ملحوظات

  1. تستخدم معظم ذاكرة ECC رمز SECDED .

مراجع

  1. فيرنر فيشر. "الكشف عن ذاكرة الوصول العشوائي" . مجلة ADMIN . تم الاطلاع عليه بتاريخ 20 أكتوبر 2014 .
  2. اضطراب ناتج عن حدث واحد على مستوى الأرض، يوجين نورماند، عضو في معهد مهندسي الكهرباء والإلكترونيات، مجموعة بوينغ للدفاع والفضاء، سياتل، واشنطن 98124-2499
  3. 1 2 ميتال، سبارش؛ فيتر، جيفري س. (2016). "دراسة استقصائية لتقنيات نمذجة وتحسين موثوقية أنظمة الحوسبة" . معاملات IEEE في الأنظمة المتوازية والموزعة . 27 (4): 1226-1238 . Bibcode : 2016ITPDS..27.1226M . doi : 10.1109/TPDS.2015.2426179 . OSTI 1261262 . 
  4. غاري إم. سويفت وستيفن إم. غيرتين. "ملاحظات أثناء الطيران حول اضطراب متعدد البتات في ذاكرة الوصول العشوائي الديناميكية". مختبر الدفع النفاث
  5. 1 2 بوروتسكي، "مقارنة معدلات الخطأ البرمجي لذاكرة الوصول العشوائي الديناميكية المعجلة المقاسة على مستوى المكونات والنظام"، الندوة الدولية السنوية السادسة والأربعون لفيزياء الموثوقية، فينيكس، 2008، الصفحات 482-487
  6. 1 2 3 4 5
  7. "قياس الأخطاء البرمجية في الذاكرة على أنظمة الإنتاج" . مؤرشف من الأصل بتاريخ 14 فبراير 2017. تم الاطلاع عليه بتاريخ 27 يونيو 2011 .
  8. لي، هوانغ؛ شين، تشو (2010). "تقييم واقعي لأخطاء أجهزة الذاكرة وقابلية نظام البرمجيات للتأثر" (ملف PDF) . المؤتمر التقني السنوي لشركة Usenix لعام 2010 .
  9. يونغو كيم؛ روس دالي؛ جيريمي كيم؛ كريس فالين؛ جي هاي لي؛ دونغهيوك لي؛ كريس ويلكرسون؛ كونراد لاي؛ أونور موتلو (24 يونيو 2014). "قلب البتات في الذاكرة دون الوصول إليها: دراسة تجريبية لأخطاء اضطراب ذاكرة الوصول العشوائي الديناميكية" (ملف PDF) . ece.cmu.edu . IEEE . تاريخ الاسترجاع: 10 مارس 2015 .
  10. دان غودين (10 مارس 2015). "اختراق متطور يمنح صلاحيات المستخدم الخارق من خلال استغلال ثغرة في ذاكرة الوصول العشوائي الديناميكية" . آرس تكنيكا . تاريخ الاسترجاع: 10 مارس 2015 .
  11. "التفاصيل الفنية لتقنية تصحيح الأخطاء ECC" . MemTest86 . برنامج PassMark . تم الاطلاع عليه بتاريخ 2 أغسطس 2025 .
  12. "9.13. تفعيل تصحيح الأخطاء المضمن من TI لذاكرة DDR — معالج SDK RTOS J784S4" . software-dl.ti.com .
  13. 1 2 غانيش تي إس (29 يناير 2023). "مراجعة ASRock Industrial NUCS BOX-1360P/D4: معالج Raptor Lake-P يُثير الإعجاب، بالإضافة إلى ميزة ECC المفاجئة" . الصفحات 2-6 . مؤرشف من الأصل في 30 يناير 2023. تم الاطلاع عليه في 29 يناير 2024 . 
  14. سانكارانارايانان، فادراج (19 أكتوبر 2020). "رمز تصحيح الأخطاء (ECC) في ذاكرة DDR" . سينوبسيس . تم الاسترجاع في 2 أغسطس 2025 .
  15. 1 2 باتيل، مينش؛ كيم، جيريمي؛ حسن، حسن؛ موتلو، أونور (يونيو 2019). "فهم ونمذجة تصحيح الأخطاء على الشريحة في ذاكرة الوصول العشوائي الديناميكية الحديثة: دراسة تجريبية باستخدام أجهزة حقيقية". المؤتمر الدولي السنوي التاسع والأربعون لـ IEEE/IFIP حول الأنظمة والشبكات الموثوقة (DSN) لعام 2019. IEEE. الصفحات 13-25 . doi : 10.1109/DSN.2019.00017 . ISBN  978-1-7281-0057-9.
  16. ويليامز، واين (12 يوليو 2025). "من المرجح أن يظهر معيار LPDDR6 لأول مرة في عام 2026 مع نشر JEDEC لوثيقة معيارية جديدة تستهدف الأجهزة المحمولة والذكاء الاصطناعي - سيتعين على أجهزة الكمبيوتر المكتبية ومحطات العمل الانتظار" . TechRadar . تم الاسترجاع في 2 أغسطس 2025 .
  17. دوغ تومسون، ماورو كارفاليو شهاب. "EDAC - اكتشاف الأخطاء وتصحيحها" . مؤرشف في 5 سبتمبر 2009 على موقع Wayback Machine . 2005-2009. "هدف وحدة نواة 'edac' هو اكتشاف الأخطاء التي تحدث داخل نظام الكمبيوتر الذي يعمل بنظام لينكس والإبلاغ عنها."
  18. "معيار ذاكرة DDR5: مقدمة للجيل القادم من تقنية وحدات DRAM - شركة كينغستون للتكنولوجيا" . شركة كينغستون للتكنولوجيا .
  19. دومارس. " " . مايكروسوفت ليرن . تم الاسترجاع في 27-03-2021 .!mca
  20. 1 2 "استخدام معالج StrongArm SA-1110 في الحاسوب المدمج للقمر النانوي" . مركز تسينغهوا الفضائي، جامعة تسينغهوا، بكين. مؤرشف من الأصل بتاريخ 2011-10-02 . تم الاطلاع عليه بتاريخ 2009-02-16 .
  21. 1 2 أ. هـ. جونستون. "تأثيرات الإشعاع الفضائي على ذاكرات الفلاش المتقدمة" . مؤرشف بتاريخ 4 مارس 2016 في أرشيف الإنترنت . برنامج ناسا لأجزاء وتغليف الإلكترونيات (NEPP). 2001.
  22. "ذاكرة الوصول العشوائي الديناميكية ECC" . الذاكرة الذكية . مؤرشفة من الأصل بتاريخ 12 فبراير 2019. تم الاطلاع عليها بتاريخ 12 يونيو 2021 .
  23. 1 2 "دليل تصميم برنامج وحدة التحكم في النظام AMD-762™ / BIOS، صفحة 179" (PDF) .
  24. 1 2 دو هيون يون؛ ماتان إيريز. "ECC المُمَثَّل في الذاكرة: حماية منخفضة التكلفة من الأخطاء لذاكرة التخزين المؤقت من المستوى الأخير" . 2009. ص 3.
  25. دانييلي روسي؛ نيكولا تيمونشيني؛ مايكل سبيكا؛ سيسيليا مترا . "تحليل كود تصحيح الأخطاء لتحسين موثوقية وأداء ذاكرة التخزين المؤقت" . مؤرشف بتاريخ 3 فبراير 2015 في أرشيف الإنترنت (Wayback Machine ).
  26. ماي شياو. "فئة من رموز SEC-DED ذات الحد الأدنى الأمثل للأعمدة ذات الوزن الفردي" . 1970.
  27. شاليني غوش؛ سوغاتو باسو؛ ونور أ. توبا. "اختيار رموز تصحيح الأخطاء لتقليل استهلاك الطاقة في دوائر فحص الذاكرة" . مؤرشف بتاريخ 3 فبراير 2015 في أرشيف الإنترنت . ص 2، 4.
  28. ^ كريس ويلكرسون. علاء ر. علم الدين؛ زيشان تشيشتي؛ وي وو؛ دينيش سوماسخار؛ شيه لين لو. "تقليل طاقة ذاكرة التخزين المؤقت باستخدام رموز تصحيح الأخطاء متعددة البتات ومنخفضة التكلفة" . دوى : 10.1145/1816038.1815973 .
  29. "مهندسو شركة أكتيل يستخدمون نظام التكرار الثلاثي في ​​معالج FPGA الجديد المقاوم للإشعاع" . مجلة الإلكترونيات العسكرية والفضائية . تاريخ الاسترجاع: 16 فبراير 2009 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  30. "تحسين مقاومة مصفوفات البوابات المنطقية القابلة للبرمجة الميدانية (FPGAs) لتأثيرات الأخطاء العابرة (SEU) في تطبيقات الفضاء وتوصيف الأجهزة" . Klabs.org. 2010-02-03. مؤرشف من الأصل في 2011-11-25 . تم الاطلاع عليه في 2011-11-23 .
  31. "FPGAs في الفضاء" . Techfocusmedia.net . تم الاطلاع عليه بتاريخ 23-11-2011 .
  32. "تقنيات الإلكترونيات الدقيقة التجارية للتطبيقات في بيئة إشعاع الأقمار الصناعية" . Radhome.gsfc.nasa.gov. مؤرشف من الأصل بتاريخ 4 مارس 2001. تم الاطلاع عليه بتاريخ 23 نوفمبر 2011 .
  33. "CDC 6600" . مايكروسوفت للأبحاث . تم الاطلاع عليه بتاريخ 23-11-2011 .
  34. كوزيروك، تشارلز م. (17 أبريل 2001). "فحص التكافؤ" . دليل الحاسوب الشخصي . أخطاء الذاكرة، اكتشافها وتصحيحها. مؤرشف من الأصل في 12 فبراير 2019. تم الاطلاع عليه في 23 نوفمبر 2011 .
  35. «لينوس تورفالدز يتحدث عن أهمية ذاكرة ECC RAM، وينتقد «سياسات إنتل السيئة» بشأنها» . www.phoronix.com . 3 يناير 2021.
  36. شركة إنتل. "عائلة معالجات إنتل زيون E7: الموثوقية والتوافر وسهولة الصيانة" . 2011. ص 12.
  37. "نظام الإدخال والإخراج الأساسي وذاكرة التخزين المؤقت" . www.custom-build-computers.com . تم الاطلاع عليه بتاريخ 27-03-2021 .
  38. "بنية AMD Zen الدقيقة - التسلسل الهرمي للذاكرة" . ويكي تشيب . تم الاطلاع عليه بتاريخ 15 أكتوبر 2018 . 
  39. "بنية AMD Zen+ الدقيقة - التسلسل الهرمي للذاكرة" . ويكي تشيب . تم الاطلاع عليه بتاريخ 15 أكتوبر 2018 . 
  40. جانغوو كيم؛ نيكوس هاردافيلاس؛ كين ماي؛ باباك فلسفي؛ جيمس سي. هو. "ذاكرة تخزين مؤقتة متعددة البتات تتحمل الأخطاء باستخدام ترميز الأخطاء ثنائي الأبعاد" . 2007. ص 2.
  41. ناثان ن. سادلر ودانيال ج. سورين. "اختيار مخطط حماية من الأخطاء لذاكرة التخزين المؤقت للبيانات من المستوى الأول للمعالج الدقيق" . 2006. ص 1.
  42. "ما هي فوائد ذاكرة ECC؟" . لينوفو . تم الاطلاع عليه في 1 أكتوبر 2025 .
  43. هاريل، جون (2010). "أهمية ذاكرة تصحيح الأخطاء في حاسوب محطتك الفرعية" (ملف PDF) . مختبرات شفايتزر الهندسية : 4.
  44. شرودر، ب.؛ جيبسون، ج. أ. (يونيو 2006). "دراسة واسعة النطاق لأعطال أنظمة الحوسبة عالية الأداء". المؤتمر الدولي للأنظمة والشبكات الموثوقة (DSN'06) . الصفحات 249-258 . doi : 10.1109/DSN.2006.5 . ISBN  0-7695-2607-1.
  45. مقارنة بين ذاكرة ECC وذاكرة Non-ECC ( الطبعة المنقحة أ). فايكنغ تكنولوجي . 26 مايو 2020. ص 10.  
  46. كوزيروك، تشارلز م. (17 أبريل 2001). "ECC" . دليل الحاسوب الشخصي . أخطاء الذاكرة، اكتشافها وتصحيحها. مؤرشف من الأصل في 6 فبراير 2019. تم الاطلاع عليه في 23 نوفمبر 2011 .
  47. معيار أداء منصة AMD-762/Athlon مع وبدون تصحيح الأخطاء ECC . مؤرشف بتاريخ 15-06-2013 في Wayback Machine .
  48. "استغلال ثغرة ECC: ذاكرة ECC عرضة لهجمات Rowhammer في نهاية المطاف" . مجموعة أمن الأنظمة والشبكات في جامعة VU أمستردام. 12 نوفمبر 2018. تاريخ الاسترجاع: 22 نوفمبر 2018 .
  49. ↑ تخلت الولايات المتحدة عن 20190332469A1 ، أمير أ. رادجاي، ناجي أبو العينين، ستيف إل. جيجر، ساتياجيت أ. جاداف، بيزان ج. كاباديا، فيفيك كوزيكوتو، راشمي لاكور سوبرامانيام، سريثار رامز، جيمس إم شحادة، جيسون د. فان ديكين، "نطاق العناوين يعتمد على وحدة حماية رمز تصحيح أخطاء الذاكرة داخل النطاق مع مخزن مؤقت للمتلازمة"، تم نشرها بتاريخ 31/10/2019، والمخصصة لشركة Intel 
  50. ↑ براءة الاختراع الأمريكية رقم 11768731B2 ، هارتليب، هايمو وهيلينغ ، كريستيان، "نظام وطريقة للكشف عن أخطاء بيانات السجلات وتصحيحها بشفافية عبر ناقل اتصال"، نُشرت في 5 نوفمبر 2020، ومُسجلة باسم شركة إنفينون تكنولوجيز.