سخت افزار

حافظه ECC چیست؟ تفاوت بین حافظه رم ECC و غیر ECC چیست؟

حافظه ECC چیست؟ تفاوت بین حافظه رم ECC و غیر ECC چیست؟

ECC مخفف Error Correction Code نوعی حافظه ذخیره داده است که قادر است بیشتر انواع مختلف خرابی داده‌ها را تشخیص داده و رفع کند. در این مقاله ضمن معرفی حافظه ECC، شما را با تفاوت های بین حافظه رم ECC و غیر ECC آشنا خواهیم کرد، همراه داتیس نتورک باشید.

حافظه ECC چیست؟ تفاوت بین حافظه رم ECC و غیر ECC چیست؟

حافظه ECC چیست؟

مخفف Error Correction Code نوعی حافظه ذخیره داده است که قادر است بیشتر انواع مختلف خرابی داده‌ها را تشخیص داده و رفع کند.

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

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

همچنین انتظار می رود با به‌کارگیری حافظه ECC نسبت آسیب و صدمه کمتری متوجه سرورها/ کامپیوترها باشد که این موضوع بخصوص برای متخصصان آی تی، مؤسسات مالی و سازمان‌های استفاده کننده از کامپیوترهای پردازشگر مالی بسیار حائز اهمیت است.

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

بسیاری از حافظه‌های غیر ECC توانایی تشخیص خطا را ندارند.

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

تفاوت‌های حافظه ECC و غیر ECC

از لحاظ ظاهری، تفاوت‌هایی بین حافظه ECC نسبت به انواع حافظه‌های غیر ECC (مانند انواع مورد استفاده در رم لپ‌تاپ‌ها یا کامپیوترهای دسکتاپ) وجود دارد.

حافظه ECC، شامل 9 تراشه حافظه به‌جای 8 تراشه است (تراشه‌های حافظه برای ذخیره داده‌هایی که به CPU جهت پردازش ارسال می‌شوند کاربرد دارند).

حافظه ECC چیست؟ تفاوت بین حافظه رم ECC و غیر ECC چیست؟

این تراشه مازاد به‌عنوان تراشه اصلی تشخیص خطا و اصلاح مورد استفاده قرار می‌گیرد.

سیستم‌هایی که از حافظه ECC استفاده می‌کنند آسیب کمتری می‌بینند.

طبق مطالعات انجام شده توسط شرکت Puget System که در سال 2014 انجام شد، نرخ خطای حافظه Error Correction Code حدود ۰.۰۹ درصد در مقایسه با انواع غیر ECC به میزان ۰.۶ درصد است.

این موضوع نشان‌دهنده قابلیت بالای اطمینان به انواع حافظه ECC است.

چه دستگاه هایی از حافظه های ECC پشتیبانی می کنند ؟

این نوع از حافظه عمدتاً برای شرکت‌ها و سرورهای سازمانی استفاده می‌شوند.

اکثر مادربردهای کامپیوترهای شخصی یا رم‌های ECC را پشتیبانی نمی‌کنند و در صورت پشتیبانی کردن از قابلیت ECC آن بهره مند نمی شوند.

برای لذت بردن از مزایای این حافظه شما نیاز به یک مادربرد سطح سرور دارید.

حافظه ای سی سی به دلیل تراشه حافظه اضافی آن گران‌تر از رم‌های غیر ECC است.

به دلیل کاربرد سازمانی این نوع حافظه، به‌کارگیری CPU قوی که از حافظه ECC پشتیبانی کند، ضروری است.

در پردازنده‌های اینتل، تنها مدل Xeon است که ECC را پشتیبانی می‌کند.

در انواع دیگر پردازنده‌ها نیز پردازنده AMD از حافظه Error Correction Code پشتیبانی می‌کند.

نقطه ضعف حافظه ECC

با وجود مزایای ذکر شده، رم‌های ECC جهت بررسی خطاها به زمان بیشتری نیاز دارند و در نتیجه، به نسبت انواع غیر ECC کندتر هستند.

مطالعات شرکت Puget نشان داد که نرخ دریافت رم‌های ECC به میزان ۰.۲۵درصد کندتر از رم‌های غیر ECC است که حتی در برخی موارد به ۰.۴۴ درصد نیز می‌رسد.

بااین‌حال، تفاوت عملکرد حافظه ای سی سی نکته‌ای قابل چشم‌پوشی است.

حافظه ECC چگونه کار می‌کند؟

کد اصلاح خطا یک فرآیند ریاضی است که اطمینان می‌دهد داده ذخیره شده در حافظه صحیح است.

در صورت بروز خطا، Error Correction Code به سیستم امکان بازسازی داده‌های صحیح را می‌دهد.

حافظه ECC روش پیشرفته‌ای از توازن را در داده‌ها بکار می‌برد.

در این روش از یک داده تک بیتی (یک بیت توازن) برای شناسایی خطاها در یک حجم بزرگ از داده‌ها استفاده می‌شود.

متأسفانه، درحالی‌که یک بیت توازن به سیستم اجازه شناسایی خطا را می‌دهد، اطلاعات کافی برای تصحیح خطای داده را در اختیار نمی‌گذارد.

اکثر دستگاه‌های محاسباتی، داده‌ها را در تراکم‌های بزرگ‌تر 64 بیت (که به‌عنوان «کلمه» خوانده می‌شوند) انتقال می‌دهند.

به‌جای تولید یک بیت توازن اضافی برای هر هشت بیت داده، ECC هفت بیت اضافی به ازای هر 64 بیت داده تولید می‌کند.

این سیستم برای اطمینان از درستی 64 بیت دیگر یک الگوریتم پیچیده ریاضی را بر روی هفت بیت داده اضافی اجرا می‌کند.

در حالتی که یک بیت نادرست باشد (خطای تک بیت) الگوریتم ECC می‌تواند داده‌ها را مجدداً بازسازی کند اما تنها می‌تواند خطاهای بزرگ‌تر (دو یا چند بیت) را به سیستم اطلاع دهد.

حافظه رجیستر /بافر

حافظه ECC می‌تواند برخی مواقع غیر رجیستر باشد.

بااین‌حال، کلیه حافظه‌های رجیستر حافظه ECC محسوب می‌شوند.

رم‌های Error Correction Code در اغلب موارد از حافظه بافر/رجیستر که بین رم سیستم و کنترل‌کننده حافظه قرار دارد استفاده می‌کنند.

این موضوع سختی عملکرد کنترل‌کننده حافظه را کاهش داده و امکان به‌کارگیری ماژول‌های بیشتری از رم را فراهم می‌کند.

سخن پایانی

امیدواریم مقاله آشنایی با حافظه های Error correction code مفید بوده باشد.

داتیس نتورک را در شبکه های اجتماعی دنبال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *