مقایسه رم ECC با رم Non ECC
حفظ اطلاعات یکی از بزرگترین دغدغه ها در دیتاسنترها و ورک استیشن های بزرگ میباشد. یکی از خطراتی که کمتر در مورد آن شنیده ایم خطاهای مربوط به رم ( RAM ) است؛ جایی که اطلاعات به صورت موقت ذخیره میشود.این خطاها میتوانند موجب از دست رفتن اطلاعات و شوند. اینجاست که رم ECC به کمک ما میآید.
براساس پیش بینی و آزمایش متخصصین شانس بروز خطای حافظه بین 2000 تا 6000 خطا به ازای هر گیگابایت داده در سال است. سیستم های خانگی کمتر دچار چنین خطاهایی میشوند اما سرور هایی که به صورت مداول در حال کار کردن بر روی اطلاعات هستند، بیشتر در معرض خطر قرار دارند. رایجترین نوع خطا، خطای تک بیتی میباشد
رم ها را به دو دسته رم ECC و رم Non ECC تقسیم میشوند. ابتدا رم هارا ها بررسی میکنیم و سپس به سراغ خطاهای تک بیتی میرویم.
رم Non ECC چیست ؟
رم های معمولی که در سیستم های خانگی و ادارات یافت میشوند از نوع هستند. در این نوع رم ها هنگامی که حافظه به خطایی بر میخورد، میتواند روی اطلاعات داخل رم تاثیر بگذارد و باعث از دست رفتن آن شود. خود رم نمیتواند هیچ کاری برای رفع مشکل بکند. زمانی که کاربر سیستم را خاموش و یا راه اندازی مجدد میکند، این خطاها از روی رم پاک میشوند.
از لحاظ ظاهری رم Non ECC به طور معمول شامل 8 تراشه حافظه میباشد که کار ذخیره سازی موقت اطلاعات را انجام میدهند.
رم ECC چیست ؟
واژه ECC مخفف Error Correction Code به معنای کد اصلاح خطا میباشد. رم ECC نوعی حافظه برای ذخیره اطلاعات است که از آن در سرورها و ورک استیشن ها استفاده میشود.
این نوع رم دارای الگوریتم هایی میباشد که به وسیله آن ها میتواند خطاهای حافظه را پیدا کرده و آن هارا رفع کند. پس اطلاعات میتوانند بدون آسیب پردازش شوند. از این رو رم ECC از اهمیت زیادی بین افرادی که در حوزه آی تی فعالیت میکنند دارد.
از لحاظ ظاهری این رم دارای 9 تراشه حافظه میباشد و تراشه اضافی به عنوان تراشه اصلی برای تشخیص خطا و اصلاح آن مورد استفاده قرار میگیرد. سیستم هایی که از حافظه ECC استفاده میکنند به واسطه سیستم شناسایی و رفع خطا از قابلیت اطمینان بالاتری برخوردارند و آسیب کمتری میبینند. باید توجه داشت که به خاطر تراشه اضافی قیمت این نوع رم گرانتر از رم های Non ECC میباشد.
چه سیستم هایی از رم ECC پشتیبانی میکنند ؟
مادربرد سیستم های معمولی مثل سیستم های ادارات و سیستم های شخصی ( به جز یکسری از سیستم های گیمینگ ) رم ECC را پشتیبانی نمیکنند .برای استفاده از این نوع حافظه به مادربرد سطح سرور نیاز داریم. همچنین باید از کانفیگ قویئ که بتواند با این نوع رم کار کند استفاده کنیم. در CPU های اینتل تنها مدل Xeon میتواند از این رم پشتیبانی کند. در سایر پردازنده ها AMD از رم ECC پشتیبانی میکند.
رم ECC چگونه کار میکند ؟
Erore Correction Code یک فرایند ریاضی است که به ما اطمینان میدهد داده های ذخیره شده در حافظه صحیح است. اگر خطایی به وجود بیاید، ECC امکان اصلاح داده هارا دارد. در ادامه بیشتر به این موضوع میپردازیم.
خطاهای تک بیتی
بیت یک رقم باینری منفرد ( 0 یا 1 ) است و هر هشت بیت یک بایت را تشکیل میدهند. خطای تک بیتی زمانی اتفاق میافتد که بار الکتریکی یک بیت تغییر میکند و آن را با مقدار مخالف ذخیره میکند ( به جای کاراکتر 1 کاراکتر 0 ذخیره میشود و بلعکس). به دلیل ناچیز بودن خطا ممکن است خود دستگاه نتواند خطارا شناسایی کند و آن را به عنوان اطلاعات درست در نظر بگیرد. ECC میتواند این خطاهای تک بیتی را شناسایی کند. در برخی موارد که قادر به اصلاح آن نیست سیستم خطارا نادیده میگیرد و اطلاعات را بارگیری میکند.
انواع خطاهای تک بیتی
میتوانیم خطاهای تک بیتی را به دو دسته خطاهای سخت و خطاهای نرم تقسیم کنیم:
خطاهای تک بیتی سخت توسط عوامل فیزیکی مانند تغییرات ولتاژ، دما، استرس و شوک ناشی از ضربه و عوامل فیزیکی دیگر ایجاد میشوند.
خطاهای تک بیتی نرم ناشی از مواردی است که مشاهده آن ها دشوارتر میباشد. بیت ها مقدار برنامه ریزی شده خود را به شکل شارژ الکتریکی ذخیره میکنند. اگر چیزی بتواند این مقدار را تغییر دهد در واقع اطلاعات را تغییر داده و خراب کرده است.تداخل مغناطیسی و نوسانات جریان برق میتوانند باعث چنین خطاهایی شوند.
نحوه عملکرد ECC
ابتدا بهتر است هارد دیسک و رم را مورد بررسی قرار دهیم. میتوانیم با تهیه نسخه پشتیبان از هارد دیسک در برابر خطرات احتمالی سخت افزاری ایمن شویم اما رم یک حافظه کوتاه مدت و سریع برای ذخیره اطلاعات است و امکان تهیه نسخه پشتیبان وجود ندارد.
همان طور که بالاتر اشاره شد برخلاف رم معمولی، رم ECC یک تراشه اضافه دارد. این تراشه همان حافظه ECC است که از الگوریتم های پیچیده برای شناسایی و اصلاح خطاها استفاده میکند. رم ECC دائما داده هارا حین پردازش توسط سیستم با استفاده از روشی به نام بررسی برابر ( parity checking ) اسکن میکند.
در این روش حافظه ECC، هفت بیت که به روشی غیر باینری ( Non-Binary ) تولید شده اند را به انتهای هر 64 بیت اضافه میکند. وقتی که 64 بیت توسط سیستم پردازش شد یک کد 7 بیتی تولید میشود و با 7 بیت اولیه مقایسه میشود. اگر کد ها با هم مطابقت داشتند به معنی این است که اطلاعات ارسال شده مشکلی ندارند. اگر مطابقت نداشته باشند هم یعنی مشکلی در اطلاعات ارسال شده وجود دارد.
با توجه به این فرایندی که دائما در حال اجرا است، رم های ECC کمی کندتر از رم های معمولی Non ECC عمل میکند. میزان کندی حدود یک الی دو درصد تخمین زده میشود. کاربر انسانی نمیتواند متوجه این کندی شود اما روی قسمت هایی مثل پایگاه داده تاثیر میگذارد. طبیعتا حفظ اطلاعات ارزش چند درصد کندی را دارد.
اگر نیاز به سرور دارید، میتوانید سرور هایی با رم ECC یا رم معمولی Non ECC و کانفیگ های مختلف را از سایت پویان آی تی سفارش دهید.
سخن پایانی
برای سیستم های معمولی نیازی به استفاده از رم های ECC نیست اما در دیتاسنترهایی که باید به صورت مداوم اطلاعات را پردازش کنند، خطای حافظه قابل قبول نیست. چه بسا اطلاعات مهمی مانند اطلاعات مربوط به تراکنش ها و یا اطلاعات پزشکی حساس به خاطر خطای حافظه از دست بروند. پس به رم های ECC نیاز داریم.
میتوانید در جدول زیر مقایسه کوتاهی از این دو نوع رم ببینید.
به این مقاله امتیاز دهید!
میانگین امتیاز 4.5 / 5. تعداد رأی ها : 2
هنوز هیچ رأیی داده نشده. اولین نفر باشید!
اولین دیدگاه را اضافه کنید.