رم, وبلاگ

مفهوم ECC

مفهوم 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 سیستم آدرس دهی و منتقل خواهند شد. به عنوان مثال ۸ بیت کد باینری معادل ۱۰۱۱۰۰۰۱ است

رم

ECC چیست؟

ECC چیست؟

ECC چیست؟

ECC نوعی از حافظه‌های ذخیره داده در کامپیوتر و سرور است که می‌تواند انواع مختلفی از خرابی داده‌ها را تشخیص داده و رفع کند، در واقع روشی برای پیدا و اصلاح کردن خطاها در زمان انتقال اطلاعات در انواع DIMM هاست. این نوع حافظه‌ها بیشتر در جاهایی استفاده می‌شوند که تحت هیچ شرایطی نباید داده‌ها آسیب ببینند، از جمله رایانه‌هایی که برای پردازش‌های علمی و مالی مورد استفاده قرار می‌گیرند.

در این نوع حافظه‌ها تک‌تک بیت‌ها از خطر دستکاری شدن و تغییریافتن در امان هستند و داده‌هایی که از هر کلمه خوانده می‌شود، همیشه با داده‌هایی که در آن کلمه نوشته شده‌اند یکسان هستند، حتی اگر یکی یا تعدادی از بیت‌های ذخیره‌شده، تغییر حالت داده باشند. بسیاری از حافظه‌های غیر ECC توانایی تشخیص خطا را ندارند، هرچند که برخی از انواع حافظه‌های غیر ECC با استفاده از بیت پاریتی توانایی کشف خطا را دارند، اما نمی‌توانند آن را اصلاح کنند.

حافظه های دارای قابلیت ECC به  ECC Memoryو حافظه های بدون این قابلیت به Non-ECC Memory مشهور هستند.

با توجه به پایداری بسیار زیاد سیستم های کنونی معمولاً استفاده از حافظه های Non-ECC به دلیل سرعت بیشتر و قیمت مناسب‌تر توصیه می‌شود، مگر در موارد خاص مانند محاسبات بسیار دقیق علمی، محاسبات اقتصادی، سرورها و ..

انواع رم ها

رم های UNBuffered یا UDIMM، مصرف برق کمی دارند و بر روی سیستم‌هایی که دارای DIMM کمی هستند و پاور ضعیف دارند مناسب است البته ظرفیت این نوع رم ها کم است و از سیستم ECC پشتیبانی می‌کند و با عبارت E بر روی رم‌ها قابل تشخیص هستند.
رم های Registered یا RDIMM ظرفیت بالاتری دارند و با عبارت R نمایش داده می شود و از سیستم‎های Address Parity پشتیبانی می‌کند.

ECC چیست؟