بررسی مزایای حافظه های ECC
ECC چیست؟
حافظه ECC که مخفف عبارت Error Correction Code میباشد، در سرورها یا سایر سیستمهای دادهای با اهمیت، بسیار محبوب است؛ چرا که با شناسایی و اصلاح خودکار خطاهای حافظه، دادهها را در برابر خرابی و آسیبهای احتمالی محافظت میکند. حافظههای استاندارد دارای تراشهای با هشت بانک داده هستند که در این بانکها دادهها ذخیره شده و در صورت نیاز به پردازنده ارسال میشوند.
اما حافظه ECC ساختار متفاوتی دارد زیرا علاوه بر داشتن تراشهای برای نگهداری دادهها، دارای یک تراشه حافظه اضافی است که به عنوان تشخیص دهنده خطا و تصحیح تراشه هشت بانکی دیگر عمل میکند.
قبل از ظهور حافظه ECC ، تشخیص خطا از طریق بیتهای برابری زوج یا فرد انجام میشد. به این صورت که در سیستمهای رایانهای، دادهها معمولاً در بانکهای 8 بیتی (بستههای اطلاعاتی) ذخیره میشدند.
در روش زوج بودن یا parity ، یک بیت اضافی که همان بیت نهم است نوشته میشود که به سیستم کمک میکند بروز خطا را تشخیص دهد. اگر سیستمی از روش برابری یا همان زوج بودن استفاده کند، بیتهای 1 و 0 (به علاوه بیت اضافی) باید در نهایت یک عدد زوج را ارائه دهند.
به عنوان مثال اگر دادههای نوشته شده روی حافظه “10011011” باشد، طبیعتا با اضافه کردن عدد 1 به دادهها به صورت (1 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1) ، یک عدد زوج دریافت میکنید. اگر قرار باشد خطایی رخ داده و دادههایی که حافظه به سیستم ارسال میکند به شکل “10011001+1” باشد، سیستم متوجه میشود که دادهها خراب بوده و دچار خطا هستند.
ECC نیز درواقع یک فرمت از نوع برابری parity است، زیرا از چند بیت برابری اختصاص داده شده استفاده میکند تا نه تنها خطاهای تک بیتی را تشخیص دهد، بلکه آنها را به صورت خودکار نیز اصلاح کند. ECC به جای یک بیت برابری واحد برای هر 8 بیت داده، از یک کد 7 بیتی استفاده میکند که به طور خودکار برای هر 64 بیت داده ذخیره شده در حافظه تولید میشود.
وقتی 64 بیت داده توسط سیستم خوانده میشود، یک کد 7 بیتی دوم ایجاد میشود، سپس با کد 7 بیتی اصلی مقایسه میشود. اگر کدها مطابقت داشته باشند، یعنی دادهها بدون خطا هستند. اما اگر کدها مطابقت نداشته باشند، سیستم میتواند خطا را پیدا کرده و با مقایسه دو کد 7 بیتی آن را برطرف کند. (روش مقایسه دو کد معمولاً توسط روش Reed-Solomon انجام میشود.)
بررسی و خرید رم سرور
حافظه ثبت شده چیست؟
حافظه Register (ثبت) شده که معمولا به آن “بافر” نیز گفته میشود، دارای فناوری است که میتواند با حافظههای ECC جفت شود، اما ارتباط مستقیمی با آن نداشته باشد.
حافظه رجیستر شده دارای یک “ثبات” است که بین رم و کنترل کننده حافظه سیستم قرار داشته و باعث کاهش حجم بار وارده بر روی کنترل کننده حافظه میشود. این قابلیت باعث میشود تا ماژولهای حافظه بیشتری در یک زمان مشخص بتوانند مورد استفاده بگیرند.
نمیتوان همواره یک حافظه ECC را به عنوان یک حافظه رجیسترشده نیز در نظر گرفت، زیرا ممکن است گاهی فقط به قابلیت رفع خطا حافظههای ECC نیاز داشته باشیم. اما در عوض تقریباً تمام حافظههای رجیسترشده، یک نوع حافظه ECC محسوب خواهند شد.
بررسی نرخ خطا حافظه ECC
حافظه ECC از لحاظ پایداری و قابلیت اعتماد نسبت به حافظههای استاندارد برتری دارد، اما بسیاری از اوقات هم اینطور نیست. برای فهمیدن اینکه آیا واقعاً این حافظهها قابل اطمینانتر هستند یا خیر، ما در 3 سال گذشته میزان خرابی حافظههای ECC را با سایر حافظهها بررسی کردیم.
نکتهای که باید توجه داشته باشید این است اگرچه برندهای مختلف حافظه در این مقایسه استفاده شدند، اما به دلیل ضعف دائمی و خرابی بیشتر آنها، در نهایت تصمیم گرفتیم که فقط از حافظههای دسکتاپ و سرور Kingston در تجزیه و تحلیل خود استفاده کنیم. در واقع انجام این مقایسه در یک برند تجاری خاص، مقایسهای واقع بینانهتر و درست خواهد بود.
همانطور که نمودار بالا نشان داده شده، میزان خرابی حافظه های ECC بسیار کمتر از مدلهای غیر ECC میباشد. حتی با اینکه نرخ خرابی یک حافظه استاندارد برند کینگستون بسیار مناسب است (حدود 1 درصد)، اما همانطور که انتظار داشتیم حافظه ECC با میانگین خرابی 24/0 درصد، بسیار بهتر و قابل اعتمادتر میباشد.
نکته ای که باید توجه داشت این است که طی سه سال گذشته و به مرور زمان، حافظههای کینگستون از قابلیت اطمینان بیشتری برخوردار شدهاند. این موضوع برای حافظههای ECC نیز صدق میکند. جالب است بدانید در سال جاری، حتی یک مورد خرابی حافظههای ECC گزارش داده نشده است.
در حالی که نرخ خرابی بسیار پایین این حافظهها یک مزیت عالی محسوب میشود، اما بهتر است تا گاهی نیز درباره علت خرابی حافظهها بررسی کرده و اطلاعات داشته باشیم. خطاهای حافظه یا بی ثباتی سیستم، معمولا از یک ایراد و خرابی ساده POST نشات میگیرد. البته POST نشدن سیستم و بروز چنین خطاهایی معمولا بر دادههای ذخیره شده در سیستم تأثیر نمیگذارد. اما از طرف دیگر کنترل نکردن و عدم توجه به خطاهایی که مستقیما در حافظه رخ میدهند، باعث خراب شدن دادهها میشوند.
نکته باورنکردنی در مورد نمودارهای بالا این است که طی سه سال گذشته، حتی یک مورد خطای حافظه یا بی ثباتی سیستم ناشی از حافظههای ECC نداشتهایم. هنگامیکه حافظه را از نظر خطا آزمایش کردیم، تنها خرابی به دلیل عدم وجود POST یا راه اندازی مجدد سیستم بود. در حالی که مسئله راه اندازی مجدد هم یک ایراد محسوب میشود، اما با این حال 25٪ خرابی مربوط به راه اندازی مجدد سیستم فقط در دو مورد خاص ایجاد شده بود که هر دو آنها نیز در سال 2011 رخ داده بودند.
از طرف دیگر خرابیهای تشخیص داده شده در حافظههای غیر ECC ، به طور عمده مربوط به خطاهای حافظه میباشد. در واقع تنها 9٪ از خرابیها (بدون در نظر گرفتن مواردی مانند توقف فرآیند post یا سرعت نادرست) ، از نوع مشکلاتی بودند که دادههای شما را در معرض خطر قرار نمی دهد. اما سایر 91٪ مربوط به مشکلاتی بودند که بدون شک نمی خواهید در سرور یا سیستمهایی که حاوی دادههای ارزشمندی است رخ دهد.
نکته مهمیکه باید بیان شود این است که اگرچه حافظههای غیر ECC در حال حاضر حدود 1٪ خرابی دارند، اما آزمایشی که روی همه سیستمها انجام دادیم نشان میدهد که این نرخ حدود 4 درصد میباشد. بنابراین حافظه ECC مطمئناً برای سرورها و سیستمهایی با دادههای بسیار مهم و با ارزش کاربردی است، در حالیکه حافظههای غیر ECC برای استفاده در سیستمهای خانگی یا محل کار از پایداری کافی برخوردار هستند.
معایب و نقاط ضعف حافظههای ECC
ECC نسبت به حافظههای سنتی و استاندارد، بسیار پایدارتر طراحی شده و سوابق خرابیهای آن در چند سال اخیر نیز این مورد را تایید کرده است. با این حال استفاده از حافظههای ECC چند نکته منفی نیز دارد. اولین و بارزترین آن این است که هر رایانهای نمی تواند از حافظه ECC استفاده کند. اکثر سرورها و مادربورد سیستمهای workstation به حافظه ECC احتیاج دارند، اما بیشتر سیستمهای دسکتاپ یا با حافظه ECC به هیچ وجه کار نمی کنند یا عملکرد ECC در آنها غیر فعال است.
دوم اینکه به دلیل تراشه حافظه اضافی و ماهیت پیچیدهتر حافظههای ECC ، هزینه آنها نیز گرانتر میباشد. سرانجام اینکه حافظه ECC نسبت به حافظههای غیر ECC کمی کندتر هستند. در واقع تولیدکنندگان این حافظه اعلام کردهاند به دلیل زمان اضافی که سیستم برای بررسی هرگونه خطا صرف میکند، باعث میشود تا سرعت حافظه ECC تقریباً 2٪ کندتر از سایر حافظههای استاندارد باشد.
چه زمانی حافظه ECC را انتخاب کنیم؟
-
- اگر سیستم شما یک سرور یا دیتاسنتر است و نیاز به پایداری و قابلیت اعتماد بسیار بالا دارید.
- در صورت نیاز به جلوگیری از خرابیهای ناگهانی و از دست رفتن دادهها.
- سیستمهای حسابرسی مالی، علمی یا تحقیقاتی که نیاز به حفظ دقت بالا دارند.
چه زمانی حافظه معمولی (Non-ECC) مناب است؟
- اگر از کامپیوتر برای استفادههای روزمره مانند بازی، گشت و گذار در اینترنت یا کارهای اداری استفاده میکنید.
- اگر به دنبال هزینه کمتر و سرعت بیشتر در عملکردهای روزمره هستید.
به طور کلی، حافظههای ECC برای سیستمهای حیاتی و حساس و حافظههای معمولی برای استفادههای عمومی و شخصی مناسبتر هستند.
نتیجه گیری
اگر یک سرور یا سیستمی دارید که دادههای بسیار ارزشمندی در آن ذخیره شده و ثبات سیستم اهمیت بالایی برایتان دارد، معایبی که درباره حافظههای ECC گفتیم آنچنان هم به چشم نخواهند آمد. همانطور که ممکن است بدانید هزینههای خرید حافظه به تازگی بسیار پایین آمده و حتی افزایش 20 درصدی قیمت نیز مبلغ چندان زیادی نخواهد شد. در مورد کاهش عملکرد نیز مقدار 2٪ به قدری ناچیز و کم است که در برابر قابلیتهای حافظه ECC اصلا مورد مهمی محسوب نمی شود.
در عوض با هزینه کردن منطقی و خرید یک حافظه ECC ، میتوانید از عملکرد عالی و قابلیت اطمینان آن بهره ببرید. هنگامیکه دادههای با ارزش شما در امنیت کامل بوده و درگیر خطاهای سیستمی نشوند، مشخصا هزینههای مالی و مبحث سرعت کم این حافظه نادیده گرفته میشود. در واقع پیشنهاد ما این است هر زمانی که شرایط کافی را داشتید و برایتان امکان پذیر بود، از حافظههای ECC استفاده کنید.
بررسی و خرید مدلهای مختلف رم سرور: