جدول محتوا
یکی از نکات کلیدی که در هنگام خرید سرور فیزیکی باید به آن توجه داشته باشید، خرید رم سرور و داشتن قابلیت ECC است. در واقع آگاهی داشتن در مورد انتخاب رم و همچنین خرید هارد سرور sas به شدت میتواند بر عملکرد و سرعت سرور و ایستگاههای کاری تأثیر بگذارد. بههمین در این مطلب به سراغ یکی از ویژگیهای مهم در حافظه رم یعنی ECC رفتهایم تا بدانید که دقیقاً رم ECC چیست و چه ویژگیهایی را در اختیارتان قرار میدهد. پس تا انتهای مطلب با ما همراه باشید.
رم ECC چیست؟
ECC مخفف Error Correction Code و بهمعنای کد تصحیح خطا است. رم ECC نوعی حافظه رم است که میتواند خرابی دادهها را در لحظه شناسایی و تصحیح کند.
همانطور که پیشتر در راهنمای خرید رم سرور گفتیم، RAM (حافظه دسترسی تصادفی) نوعی حافظه کامپیوتری است که دادهها را برای دسترسی سریع توسط CPU (واحد پردازش مرکزی) بهطور موقت ذخیره می کند. با این حال، حافظه رم مستعد خطا است، که میتواند بهدلیل عوامل مختلفی مانند تداخل الکتریکی یا مغناطیسی، تشعشعات کیهانی، نقصهای ساخت و یا قدیمی شدن رخ دهد. این خطاها میتوانند باعث خرابی دادهها شوند. این بدانمعنا است که خرابی رم باعث میشود دادههای ذخیره شده در RAM با دادههایی که در ابتدا روی آن نوشته شده است، متفاوت باشد. در نتیجه خرابی دادهها میتواند منجر به مشکلات جدی مانند خرابی سیستم، خرابی برنامه، محاسبات نادرست یا از دست دادن اطلاعات مهم شود. بنابراین رم ECC با استفاده از کد تصحیح خطا برای خراب شدن دادهها جلوگیری میکند.
در واقع حافظه RAM ECC دارای یک تراشه حافظه اضافی بر روی هر ماژول است که کد تصحیح خطا را برای دادههای ذخیره شده در تراشههای دیگر ذخیره میکند. کد تصحیح خطا یک فرمول ریاضی است که میتواند خطاها را در یک گروه بیت (کوچکترین واحد داده در یک کامپیوتر) شناسایی و تصحیح کند. حافظه رم ECC میتواند خطاهای تک بیتی را تصحیح کند (زمانیکه فقط یک بیت به حالت اشتباه برگردانده میشود) به عنوان مثال، در هر شبکهای، خطای تک بیتی زمانی است که شما 1 را به عنوان نمونه داده ارسال میکنید و سیستم آن را به عنوان 0 دریافت میکند. همچنین ECC قابلیت تشخیص خطاهای دو بیتی (زمانیکه دو بیت برگردانده میشوند) را دارد اما قابلیت تصحیح خطاهای دو بیتی یا خطاهای پیچیدهتر را ندارد.
حافظه ECC چگونه کار میکند؟
رم ECC با استفاده از شکل پیشرفتهتری از بررسی برابری (parity checking) کار میکند. بررسی برابری یک روش ساده برای تشخیص خطا است که از یک بیت (به نام بیت parity) برای نشان دادن زوج یا فرد بودن تعداد 1ها در گروهی از بیتها استفاده میکند. بهعنوان مثال، اگر گروه بیتها 1011 باشد، بیت برابری 1 خواهد بود تا تعداد 1 ها زوج شود. اگر گروه بیت ها 1000 باشد، بیت برابری 0 خواهد بود تا تعداد 1 ها زوج بماند. اگر خطایی رخ دهد و یک بیت برگردانده شود، بیت برابری دیگر با تعداد 1 های گروه بیتها مطابقت ندارد و خطا شناسایی میشود.
این در حالی است که رم ECC شامل بیتهای حافظه اضافی و کنترلکننده های حافظه است که بیتهای اضافی را در یک تراشه اضافی روی ماژول کنترل میکند. در واقع حافظه ECC از بیتهای اضافی برای ذخیره یک کد رمزگذاری شده هنگام نوشتن دادهها در حافظه استفاده میکند و کد ECC در همان زمان ذخیره میشود. هنگامی که دادهها خوانده میشوند، کد ECC ذخیره شده با کد ECC که هنگام خواندن دادهها ایجاد شده است مقایسه میشود. اگر کد خوانده شده با کد ذخیره شده مطابقت نداشته باشد، توسط بیتهای برابری رمزگشایی میشود تا مشخص شود کدام بیت اشتباه بوده است، سپس این بیت بلافاصله تصحیح میشود. همانطور که دادهها پردازش میشوند، حافظه ECC دائما در حال اسکن کد با یک الگوریتم خاص برای شناسایی و تصحیح خطاهای حافظه تک بیتی است.
با این حال، بررسی برابری نمیتواند خطاهای پیچیده را تصحیح کند یا بیش از یک خطا را در یک گروه از بیتها تشخیص دهد. بهعنوان مثال، اگر گروه بیتها 64 بیت باشد (که یک کلمه نامیده میشود)، رم ECC میتواند از 8 بیت اضافی برای ذخیره کد تصحیح خطا استفاده کند. این 8 بیت میتوانند اطلاعات مربوط به مکان و مقدار هر خطای تک بیتی را در کلمه رمزگذاری کنند. اگر خطایی رخ دهد و یک بیت برگردانده شود، حافظه ECC میتواند از کد تصحیح خطا برای تشخیص اینکه کدام بیت اشتباه است و مقدار صحیح آن باید چقدر باشد استفاده کند. سپس، ECC میتواند بیت را به حالت صحیح خود برگرداند و یکپارچگی دادهها را بازیابی کند.
مزایا و معایب حافظه ECC چیست؟
رم ECC دارای مزایا و معایبی نسبت به رم غیر ECC است که عبارتند از:
مزایای رم ECC:
– از خراب شدن دادهها جلوگیری میکند، در نتیجه و قابلیت اطمینان سیستم را بهویژه برای برنامه هایی که به دقت و در دسترس بودن بالا نیاز دارند، بهبود میبخشد.
– رم ECC میتواند از بروز مشکلات جدی مانند خرابی برنامه، سیستم، محاسبات نادرست و از دست رفتن اطلاعات کاربردی و مهم جلوگیری کند.
– حافظه ECC فرکانس کارهای تعمیر، نگهداری و عیبیابی را کاهش دهد؛ زیرا میتواند از خطاهایی که ممکن است نیاز به مداخله دستی یا راهاندازی مجدد سیستم داشته باشد جلوگیری کند.
– RAM ECC میتواند طول عمر ماژولهای حافظه را با کاهش استرس ناشی از خطاها افزایش دهد.
معایب رم ECC:
– گرانتر و کندتر از رم غیر ECC است، زیرا به یک تراشه حافظه اضافی در هر ماژول و یک مدار کنترلکننده پیچیدهتر روی مادربرد نیاز دارد.
– رم ECC به دلیل عملکرد اضافی، انرژی بیشتری نسبت به رمهای غیر ECC مصرف میکند. علاوه بر این، حافظه ECC به دلیل فرآیند تشخیص و تصحیح خطا، تاخیر جزئی در دسترسی به دادهها نیز ایجاد میکند. این تاخیر میتواند بر عملکرد برنامههایی که به سرعت و پاسخگویی بالا نیاز دارند، تأثیر بگذارد.
– ECC با تمام مادربردها و پردازندهها سازگار نیست، زیرا هم از طرف سختافزار و هم نرمافزار نیاز به پشتیبانی ویژه دارد. ECC عمدتاً توسط مادربردها و پردازندههای سطح ایستگاه کاری و سرور مانند Intel Xeon و AMD Threadripper پشتیبانی میشود. اکثر مادربردهای رایانههای شخصی و مصرفکننده یا از ECC پشتیبانی نمیکنند یا بدون عملکرد ECC آن را اجرا میکنند.
نحوه کارکرد حافظه ECC بر روی سیستم های سرور چگونه است؟
برای سرورها در مشاغل و مراکز داده، به حداقل رساندن خطاها در دادهها بسیار مهم است و این هدف حافظه ECC است.
دو نوع خطای حافظه تک بیتی وجود دارد: خطاهای سخت و خطاهای نرم.
خطاهای سخت توسط عوامل فیزیکی مانند تغییرات دمای بیش از حد، استرس ولتاژ یا استرس فیزیکی وارد شده بر بیتهای حافظه ایجاد میشوند. خطاهای نرم زمانی رخ میدهند که دادهها متفاوت از آنچه در نظر گرفته شده بود نوشته یا خوانده شوند، مانند تغییرات ولتاژ روی مادربرد، پرتوهای کیهانی یا فروپاشی رادیواکتیو که میتواند باعث چرخش بیتهای حافظه شود. از آنجایی که بیت ها مقدار برنامه ریزی شده خود را به صورت بار الکتریکی حفظ می کنند، این نوع تداخل میتواند شارژ بیت حافظه را تغییر داده و باعث خطا شود. در سرورها، مکانهای متعددی وجود دارد که ممکن است خطا رخ دهد: در درایو ذخیرهسازی، در هسته CPU، از طریق اتصال شبکه و در انواع مختلف حافظه.
در صنایع حیاتی، مانند بخش مالی، حافظه ECC میتواند تفاوت بزرگی ایجاد کند. تصور کنید در حال ویرایش اطلاعات حساب محرمانه مشتری هستید و سپس این دادهها را با سایر موسسات مالی مبادله میکنید. همانطور که دادهها را ارسال می کنید، فرض کنید یک رقم باینری توسط نوعی تداخل الکتریکی برگردانده میشود.
کد باینری که مؤسسه مالی دیگر دریافت میکند میتواند 100100011 باشد، که اطلاعات متفاوتی را نسبت به آنچه که در ابتدا در نظر داشتید، در اختیار شما قرار میدهد و این یک خطا است. رقم سوم به دلیل تداخل الکتریکی از 1 به 0 تغییر یافته است. بنابراین، مجموع هشت بیت اول اکنون مجموعاً به 3 میرسد، که حتی برابر نیست و به این معنا است که دادههای محرمانهای که ارسال کردهاید در معرض خطر خراب شدن هستند (یا سیستم در معرض خطر خرابی قرار دارد). با این حال، اگر حافظه ECC نصب شده باشد، میتواند خطا را تشخیص داده و با تغییر رقم سوم باینری به 1 (کد اصلی) آن را تصحیح کند.
در نتیجه حافظه سرور ECC با شناسایی و تصحیح خطاهای تک بیتی به حفظ یکپارچگی دادهها، جلوگیری از خراب شدن دادهها و جلوگیری از و خرابی سیستم کمک میکند.
تفاوت حافظه رم ECC و غیر ECC چیست؟
رم ECC و غیر ECC دو نوع حافظه کامپیوتری هستند که در توانایی تشخیص و تصحیح خرابی دادهها با هم تفاوت دارند. بهطورکلی ECC قابلیت تصحیح و شناسایی خطاهای احتمالی را دارد اما رم غیر ECC از این ویژگی برخوردار نیست.
بارزترین تفاوت اصلی بین رم ECC و غیر ECC تعداد تراشههای حافظه در هر ماژول است. در واقع ECC دارای یک تراشهی اضافی است که با کمک آن کد تصحیح خطا را برای دادههای دیگر تراشهها ذخیره میکند. بنابراین رم غیر ECC تنها دارای هشت تراشه است و رم ECC از 9 تراشه تشکیل میشود.
تفاوت دیگر این دو حافظه رم در ظرفیت آنها است. از آنجاییکه برنامههای حافظه سرور به ظرفیت بالاتری نیاز دارند، ماژولهای حافظه ECC معمولاً از 4 گیگابایت شروع میشوند، در حالی که ماژولهای حافظه معمولی از 2 گیگابایت شروع میشوند و پیکربندی استاندارد در رایانههای خانگی بین 4 تا 8 گیگابایت حافظه است.
رم ECC عمدتاً در ایستگاههای کاری و سرورهایی استفاده میشود که با برنامههایی را اجرا میکنند مانند محاسبات علمی، تراکنشهای مالی، مدیریت پایگاه داده یا خدمات ابری که به قابلیت اطمینان و دقت بالایی نیاز دارند ؛ اما رم غیر ECC یک حافظه استاندارد و مورد استفاده در اکثر رایانهها و لپتاپها است.
چه کسانی باید از RAM ECC استفاده کند؟
حافظه رم ECC برای اکثر رایانههای شخصی یا لپتاپهای مصرفکننده ضروری نیست، زیرا احتمالاً با مشکلات مکرر یا بحرانی خرابی دادهها مواجه نمیشوند و همچنین مادربوردهای این سیستمها از این قابلیت پشتیبانی نمیکنند. با این حال، حافظه ECC برای ایستگاههای کاری و سرورهایی که برنامههای کاربردی درجه یک سازمانی را اجرا میکنند که به قابلیت اطمینان و دقت بالایی نیاز دارند توصیه میشود. برنامههای که نیاز به رم ECC دارند عبارتند از:
– محاسبات علمی: مموری ECC میتواند از اعتبار و دقت محاسبات و شبیهسازیهای پیچیده که شامل مقادیر زیادی داده و متغیر است اطمینان حاصل کند.
– تراکنشهای مالی: قابلیت ECC میتواند از خطاها یا تقلبها در پردازش پرداختها، نقل و انتقالات مالی و یا معاملاتی که شامل اطلاعات حساس و پول است، جلوگیری کند.
– مدیریت پایگاه داده: رم ECC قابلیت محافظت از یکپارچگی و سازگاری پایگاههای داده در مقیاس بزرگ که سوابق و اسناد مهم را ذخیره و دستکاری میکنند، را دارد.
– خدمات ابری: حافظه رم ECC میتواند در دسترس بودن و امنیت برنامهها و پلتفرمهای مبتنی بر ابر را که به چندین کاربر و مشتری خدمات ارائه میدهند، بهبود بخشد.