اصلیترین دلیل استقبال از رمهای ECC این بوده که از خطاهای داده در حافظه سرور جلوگیری میکند و ثبات عملکرد سیستم را تضمین میکند. مهمترین قسمت برای جلوگیری از خطای دادهها در رم سرور است که به طور موقت دادهها را ذخیره میکند، بنابراین حافظه ECC را میتوان ECC RAM نیز نامید. به طور کلی، حافظه ECC با حافظه غیر ECC تفاوت دارد زیرا از کدهای تصحیح خطا برای تصحیح دادههای حافظه استفاده میکند. در این مورد، ممکن است برای شما سوال بوجود بیاید که کدام حافظه، ECC یا حافظه Non ECC برای استفاده ما مناسبتر است؟ بیایید حافظه ECC و در مقابل حافظه غیر ECC را بررسی کنیم.
ECC نوعی حافظه سرور است که دادههای حافظه را برای خطاها کنترل میکند تا از سیستم شما در برابر تهدیدات احتمالی محافظت کند. ایده اصلی اضافه کردن یک تراشه کامپیوتر نهم به رم سرور است. وظیفه اصلی این تراشه نهم این است که به طور انحصاری وظیفه بررسی خطاها و تصحیح آنها را بر عهده دارد. حافظه غیر ECC تنها دارای هشت تراشه است و نظارت بر دادهها و تصحیح خطا را انجام نمیدهد که بزرگترین تفاوت بین حافظه ECC و Non ECC است.
اما چرا خطا وجود دارد؟ دو نوع اصلی خطا وجود دارد: خطاهای حافظه و واحد، در حالی که خطاهای واحد رایجترین هستند. خطاهای حافظه به دلیل اختلالات الکتریکی و مغناطیسی در داخل کامپیوتر است که باعث میشود DRAM خود به خود به حالت مخالف منتقل شود.
خطاهای واحد (Unit errors) به روشهای نامحسوسی رخ میدهد و تأثیر کمی بر دادهها دارد، اما همچنان تا حدودی بر سیستم عامل تأثیر میگذارد. همچنین یک خطای حافظه واحد وجود دارد که شامل خطاهای سخت و نرم است. خطاهای سخت بیشتر عوامل فیزیکی مانند تغییرات ولتاژ، شوک و دما هستند. خطاهای نرم به دلیل نوشتن دادههایی ایجاد میشوند که مطابق انتظار نیستند. هنگامی که دادهها از رم سرور وارد و خارج می شوند، مقداری خرابی رخ میدهد.
روش حافظه ECC برای تشخیص خطاها زوجیت (parity) است. از توضیحات قسمت قبل میتوان فهمید که رم سرور از نظر خطا بررسی شده و با اضافه کردن بایت نهم اصلاح میشود. با این حال، parity عمدتاً با اضافه کردن 0 یا 1 به انتهای بایت تشخیص میدهد که آیا یک بایت زوج یا فرد ظاهر میشود. به عنوان مثال، اگر parity بایتها را به بیت 7 اضافه کند، آنگاه parity 1 است و زوج برابر 8 خواهد بود. اگر بایت parity 0 باشد و نتیجه یک عدد فرد باشد، بایت در حالت خراب است.
به طور طبیعی، بیت برابری حافظه ECC همیشه یک بایت 8 بیتی نیست، همچنین میتوان با استفاده از cyclic error correction code، یک کد 7 بیتی/بایت 64 بیتی تولید کرد. منظور این است که هر بار که سیستم 64 بیت داده را میخواند، یک کد 7 بیتی تولید میکند. هدف از تشخیص این است که مشخص شود آیا کد مطابقت دارد یا خیر. اگر عدم تطابق به این معنی باشد که خطا دارد، حافظه ECC بلافاصله خطا را تصحیح میکند.
هنگامی که حافظه ECC را روی سرور خود نصب میکنید، دادههای حافظه را کنترل میکند و خطاها را به موقع تصحیح میکند. در وهله اول، قابلیت ECC تا حدودی تعداد خرابیها را کاهش میدهد، به ویژه در دستگاههایی که نمیتوانند در برابر خرابی دادههای حافظه مقاومت کنند، مانند برنامههای کاربردی محاسباتی یا سرورها در صنایع علمی و مالی. ثانیا، تصحیح خطای داده آن میتواند یکپارچگی دادهها را حفظ کرده و ثبات سیستم را افزایش دهد. در مرکز داده، رم ECC از غیر ECC قابل اطمینانتر است.
با این حال، حافظه ECC جدا از مزایایی که به همراه دارد، معایبی نیز دارد. در مقایسه با حافظههای غیر ECC یا NON-ECC، حافظه ECC به دلیل تراشههای حافظه اضافی و پیچیدگی آنها گرانتر است. همچنین، همه کامپیوترها نیازی به استفاده از حافظه ECC ندارند. در برخی از محیطهای کاری مهم و پیچیده، مادربردهای سرور hp و ورک استیشن باید با حافظه ECC پیکربندی شوند. علاوه بر این، از نظر سرعت خواندن، حافظه ECC کمی کندتر از حافظه غیر ECC بوده و این اختلاف حدود 2٪ است که این زمان اضافی مورد نیاز برای بررسی خطاهای دادههای حافظه است.
هیچ استاندارد مطلقی برای قضاوت بین حافظه ECC و حافظه غیر ECC وجود ندارد که بگوییم کدام بهتر است، باید مختص شرایط و نیاز باشد. اگر زمینه کاری شما مالی یا پزشکی یا سایر صنایع مهم مرتبط با داده است، باید پیکربندی حافظه ECC را در سرورهای دیتاسنتر خود در نظر بگیرید. چرا پیکربندی آن ضروری است؟ زیرا میتواند نقضهای امنیتی، و خطاهای رونویسی دادهها را کاهش دهد، از خرابی اطلاعات و خرابی سیستم و غیره جلوگیری کند و به data accuracy و ثبات سیستم دست یابد.
در چنین صنایعی، تأثیر خطاهای داده میتواند کشنده باشد. ممکن است باعث شود دادهها به اشتباه کدگذاری شوند یا خراب شوند و مستقیماً بر تجارت مالی شما تأثیر بگذارد.
اگر فقط یک کاربر معمولی با رایانه شخصی هستید و یا قصد ندارید از تجهیزات حیاتی برای پروژههای بزرگ استفاده کنید، میتوانید DRAM یا non-parity SDRAM را انتخاب کنید.
به طور خلاصه، در مقایسه با حافظه غیر ECC، حافظه ECC برای نظارت بر دادهها و تصحیح خطا برای حفظ ثبات سیستم عامل سرور طراحی شده است. در حالی که تجهیزات معمولی یا رایانههای شخصی نیازی به نصب حافظه ECC ندارند، اگر محیط کاری حساس و سخت مانند دیتاسنتر است، باید اقداماتی برای جلوگیری از هر گونه خطا اجرا شود.