مفهوم ECC

مفهوم ECC
Error Correction Code (کد تصحیح خطا) یا به اختصار ECC قابلیتی فوق العاده مهم در حافظه های RAM است که از به وجود آمدن خطا های احتمالی ناشی از پردازش داده ها جلوگیری میکند و به حفظ یکپارچگی داده ها کمک شایانی میکند. ECC در حافظه های RAM موجود در سرور های مراکز داده استفاده می شود. ECC روشی برای شناسایی و تصحیح خطا های حافظه تک بیتی است. single-bit memory errors یا خطای حافظه تک بیتی یک خطای بوجود آمده در سرور است که از پردازش داده ها توسط سرور ها ناشی میشود. این خطا ها تاثیر زیادی در عملکرد سرور ها و سرویس دهی آنها میگذارد. دو نوع single-bit memory errors وجود دارد که عبارتند از : Hard errors و Soft errors. همانطور که از نام Hard errors نیز معلوم است این ارور یا خطاها ناشی از صدمات فیزیکی وارد بر حافظه میباشد نظیر تغییرات بیش از حد دما ، فشار ولتاژ و صدمات فیزیکی. Soft errors شامل ERROR هایی هستند که در مکانیزم کاری حافظه اختلال ایجاد می کنند برای مثال نوشتن و خواندن داده ها به صورت متفاوت از آنچه که برای آن در نظر گرفته شده است درست همانند به وجود آمدن تغییرات ولتاژ در مادربورد سیستم، اثرات ناشی از امواج رادیواکتیو، امواج فرابنفش و … که قادر هستند موجب بروز single-bit errors از نوع Soft در حافظه شوند. از آنجایی که بیت های مقادیر برنامه ریزی شده شان را به صورت الکتریکی حفظ میکنند هر گونه تداخل در این گونه موارد منجر به بروز این خطا خواهد شد.

در سرور ها لوکیشین های مختلفی برای بروز خطا ها وجود دارد که شامل دستگاه های ذخیره سازی ، پردازنده سرور ، ارتباطات شبکه و در انواع حافظه ها. برای دستگاه های Workstation یا ایستگاه های کاری ( کلاینت ها و …) و همچنین سرور ها نباید این گونه خطا ها به وجود بیاید و بهترین کار این است که از حافظه های پشتیبانی کننده از تکنولوژی ECC استفاده شود. خب بهتر است به چگونگی کار کردن قابلیت ECC بپردازیم. همانگونه که میدانید پردازش داده ها در دستگاه های کامپیوتر بر اساس Bit (بیت) که کوچکترین واحد از یک داده است انجام میشود. یعنی نقل و انتقالات داده ها بر اساس بیت انجام میشود. یک بیت یا مقدار صفر دارد و یا مقدار یک. وقتی بیت ها با یکدیگر گروه بندی میشوند کد باینری (دودویی) را ایجاد میکنند. این کدهای باینری بین پردازنده CPU و حافظه RAM سیستم آدرس دهی و منتقل خواهند شد. به عنوان مثال ۸ بیت کد باینری معادل ۱۰۱۱۰۰۰۱ است