לזיכרון ECC, הידוע גם כזיכרון קוד תיקון שגיאות, יש את היכולת לזהות ולתקן שגיאות בנתונים. הוא משמש בדרך כלל במחשבים שולחניים, שרתים ותחנות עבודה מתקדמים כדי לשפר את יציבות ובטיחות המערכת.
זיכרון הוא מכשיר אלקטרוני, וייתכנו שגיאות במהלך פעולתו. עבור משתמשים עם דרישות יציבות גבוהות, שגיאות זיכרון עלולות להוביל לבעיות קריטיות. ניתן לסווג שגיאות זיכרון לשני סוגים: שגיאות קשות ושגיאות רכות. שגיאות קשות נגרמות על ידי נזק או פגמים בחומרה, והנתונים שגויים באופן עקבי. לא ניתן לתקן שגיאות אלו. מצד שני, שגיאות רכות מתרחשות באופן אקראי עקב גורמים כמו הפרעות אלקטרוניות ליד הזיכרון וניתנות לתיקון.
כדי לזהות ולתקן שגיאות זיכרון רך, הוצג המושג "בדיקת זוגיות" בזיכרון. היחידה הקטנה ביותר בזיכרון היא ביט, המיוצגת על ידי 1 או 0. שמונה סיביות עוקבות מרכיבות בית. לזיכרון ללא בדיקת זוגיות יש רק 8 סיביות לבייט, ואם ביט כלשהו מאחסן ערך שגוי, זה יכול להוביל לכשלים מוטעים בנתונים ובאפליקציות. בדיקת זוגיות מוסיפה ביט נוסף לכל בייט כסיבית לבדיקת שגיאות. לאחר אחסון נתונים בבייט, לשמונה הסיביות יש דפוס קבוע. לדוגמה, אם הסיביות מאחסנות נתונים כ-1, 1, 1, 0, 0, 1, 0, 1, הסכום של הסיביות הללו הוא אי זוגי (1+1+1+0+0+1+0+1=5 ). עבור זוגיות זוגית, סיבית הזוגיות מוגדרת כ-1; אחרת, הוא 0. כאשר ה-CPU קורא את הנתונים המאוחסנים, הוא מוסיף את 8 הסיביות הראשונות ומשווה את התוצאה לסיבית הזוגיות. תהליך זה יכול לזהות שגיאות זיכרון, אך בדיקת זוגיות אינה יכולה לתקן אותן. בנוסף, בדיקת זוגיות אינה יכולה לזהות שגיאות סיביות כפולות, אם כי ההסתברות לשגיאות סיביות כפולות נמוכה.
זיכרון ECC (Error Checking and Correcting), לעומת זאת, מאחסן קוד מוצפן לצד סיביות הנתונים. כאשר נתונים נכתבים לזיכרון, קוד ה-ECC המתאים נשמר. בעת קריאה לאחור של הנתונים המאוחסנים, קוד ה-ECC השמור מושווה לקוד ה-ECC החדש שנוצר. אם הם אינם תואמים, הקודים מפוענחים כדי לזהות את הסיבית השגויה בנתונים. לאחר מכן הביט השגוי נמחק, ובקר הזיכרון משחרר את הנתונים הנכונים. נתונים מתוקנים נכתבים רק לעתים רחוקות בחזרה לזיכרון. אם אותם נתונים שגויים נקראים שוב, תהליך התיקון חוזר על עצמו. כתיבה מחדש של נתונים יכולה להכניס תקורה, להוביל לירידה ניכרת בביצועים. עם זאת, זיכרון ECC חיוני עבור שרתים ויישומים דומים, מכיוון שהוא מספק יכולות תיקון שגיאות. זיכרון ECC יקר יותר מזיכרון רגיל בשל התכונות הנוספות שלו.
לשימוש בזיכרון ECC יכול להיות השפעה משמעותית על ביצועי המערכת. למרות שזה עשוי להפחית את הביצועים הכוללים, תיקון שגיאות חיוני עבור יישומים ושרתים קריטיים. כתוצאה מכך, זיכרון ECC הוא בחירה נפוצה בסביבות שבהן שלמות הנתונים ויציבות המערכת הם בעלי חשיבות עליונה.
זמן פרסום: 19 ביולי 2023