حاسبة بتات ECC لشيفرة هامينغ
المدخلات
| بتات البيانات | 8 |
|---|
حاسبة بتات ECC لشيفرة هامينغ
تحدد أقل عدد من بتات التماثل التي تحتاجها شيفرة هامينغ المصححة لخطأ واحد لحماية عدد معين من بتات البيانات، مع الطول الكلي للكلمة الرمزية ونسبة عبء التماثل.
المدخلات
بتات البيانات
النتائج
أدخل قيمة لعرض النتائج.
النتائج
بتات ECC لشيفرة هامينغ
تحمي شيفرة هامينغ كتلة بيانات بإضافة عدد قليل من بتات التماثل. وعندما تنقلب بتة لاحقًا، يحدد نمط فحوص التماثل الفاشلة الموضع الذي تغيّر بالضبط، فيتمكن فاكّ التشفير من إعادته. والسؤال التصميمي الوحيد هو: كم بتة تماثل تحتاجها كتلة ذات حجم معين؟
شرط الحد الأدنى من البتات
ليكن عدد بتات البيانات و عدد بتات التماثل. تشكّل بتات التماثل معًا متلازمة من بتة، يمكنها أن تأخذ قيمة مختلفة. وتحتاج كل موضع من مواضع الكلمة الرمزية البالغة إلى متلازمة خاصة به غير صفرية كي يتمكن فاكّ التشفير من الإشارة إلى البتة المنقلبة، وتُحجز قيمة واحدة لحالة «لا خطأ». وهذا يعطي شرط التصحيح لخطأ واحد (SEC):
2r≥m+r+1بما أن يظهر في الطرفين، فلا يوجد حل مغلق. وعدد التماثل المطلوب هو ببساطة أصغر يحقق المتباينة، ويُوجد بتجربة بالتتابع.
مثال محلول: 8 بتات بيانات
نأخذ ونجرب كل مرشح:
| 2 | 4 | 11 | لا |
| 3 | 8 | 12 | لا |
| 4 | 16 | 13 | نعم |
أول صف يتحقق هو ، إذن تحتاج 8 بتات بيانات إلى 4 بتات تماثل:
24=16≥8+4+1=13الكلمة الرمزية الكاملة هي
n=m+r=8+4=12 بتةوعبء التماثل هو
O=nr=124≈33.3%يقل العبء كلما كبرت الكتل
ينمو عدد التماثل تقريبًا مثل ، لذا توزّع الكتل الأكبر بتات الفحص على بيانات أكثر بكثير. يسرد الجدول أحجام كتل شائعة.
| بتات البيانات | بتات التماثل | الكلمة | العبء |
|---|---|---|---|
| 1 | 2 | 3 | 66.7% |
| 4 | 3 | 7 | 42.9% |
| 8 | 4 | 12 | 33.3% |
| 11 | 4 | 15 | 26.7% |
| 16 | 5 | 21 | 23.8% |
| 26 | 5 | 31 | 16.1% |
| 32 | 6 | 38 | 15.8% |
| 57 | 6 | 63 | 9.5% |
| 64 | 7 | 71 | 9.9% |
| 247 | 8 | 255 | 3.1% |
تقع شيفرة هامينغ الكلاسيكية (7، 4) — 4 بتات بيانات في كلمة من 7 بتات — في الصف الثالث من الأعلى، وشيفرة (15، 11) في الصف الرابع.
توضيع بتات التماثل
في الترتيب القياسي، تشغل بتات التماثل المواضع التي هي قوى للعدد اثنين 1 و2 و4 و8 و16 و…، بينما تملأ بتات البيانات الباقي. وبتة التماثل في الموضع مسؤولة تمامًا عن المواضع التي يحتوي دليلها على البت مضبوطًا، بحيث تُقرأ مجموعة الفحوص الفاشلة مباشرةً كالعنوان الثنائي للبتة المنقلبة. وعدد مواضع قوى العدد اثنين حتى يساوي القيمة نفسها التي تحسبها هذه الصفحة، ولهذا يتوافق الترتيب وشرط الحد الأدنى للبتات دائمًا.
SEC مقابل SECDED
الشرط أعلاه خاص بشيفرة مصححة لخطأ واحد، تصحّح أي خطأ في بتة واحدة لكنها لا تستطيع تمييز خطأ بتتين حقيقي عن خطأ بتة واحدة. وإضافة بتة تماثل شاملة واحدة على كامل الكلمة الرمزية تنتج شيفرة مصححة لخطأ واحد وكاشفة لخطأين (SECDED): فهي ما تزال تصحّح أي خطأ بتة واحدة، وتكشف إضافةً — دون تصحيح — أي خطأ بتتين. ومن أجل SECDED، أضف بتة إلى عدد التماثل وإلى الطول الكلي معًا. وتستخدم الذاكرة المسوّقة باسم «ECC» عادةً SECDED، مثلًا 64 بتة بيانات محمية بثماني بتات فحص.
تقديرات ذات صلة
للمقارنة بين سلسلتَي بتات متساويتَي الطول وعدّ عدد المواضع التي تختلفان عندها — وهو المقدار الذي يحدد كم خطأً يمكن للشيفرة اصطياده — انظر حاسبة مسافة هامينغ. ولمخطط مختلف للكشف عن الأخطاء يُلحِق مجموع تحقق بدلًا من تماثل يعنون المواضع، تحسب حاسبة CRC فحوص التكرار الدوري.
الأسئلة الشائعة (FAQ)
ما هي بتات التماثل في شيفرة هامينغ؟
بتات التماثل، وتُسمى أيضًا بتات الفحص، هي بتات إضافية تُضاف إلى كتلة البيانات كي يتمكن فاكّ التشفير من اكتشاف الأخطاء وتصحيحها. في شيفرة هامينغ المصححة لخطأ واحد (SEC)، تغطي كل بتة تماثل مجموعة فرعية محددة ومتداخلة من مواضع البيانات. وعندما تنقلب بتة ما، ينطق نمط فحوص التماثل الفاشلة — أي المتلازمة — بالموضع الدقيق للبتة المنقلبة بالنظام الثنائي، فيتمكن فاكّ التشفير من إعادتها.
عدد بتات التماثل r لأجل m بتة بيانات هو أصغر r يحقق 2^r ≥ m + r + 1. فمن أجل 8 بتات بيانات يكون r = 4، مكوّنًا كلمة رمزية من 12 بتة.
ما الفرق بين SEC و SECDED؟
شيفرة هامينغ المصححة لخطأ واحد (SEC) تصحّح أي خطأ في بتة واحدة داخل الكلمة الرمزية، لكنها لا تستطيع أن تميّز بموثوقية خطأ بتتين عن خطأ بتة واحدة. أما التصحيح لخطأ واحد مع اكتشاف خطأين (SECDED) فيضيف بتة تماثل شاملة واحدة فوق شيفرة SEC. هذه البتة الإضافية تتيح لفاكّ التشفير تصحيح أي خطأ بتة واحدة، وكذلك اكتشاف (لا تصحيح) أي خطأ بتتين.
تذكر هذه الحاسبة بتات التماثل لصيغة SEC. أما SECDED فأضف بتة إلى عدد التماثل وإلى طول الكلمة الرمزية الكلي. غالبًا ما تستخدم ذاكرة الخوادم المسوّقة باسم «ECC» شيفرة SECDED — مثلًا 64 بتة بيانات محمية بثماني بتات فحص.
لماذا المتباينة هي 2^r ≥ m + r + 1 وليست 2^r ≥ m + r؟
تنتج بتات التماثل r معًا متلازمةً من r بتة، يمكنها أن تأخذ 2^r قيمة مختلفة. ويحتاج كل موضع من مواضع الكلمة الرمزية البالغة n = m + r إلى متلازمة خاصة به غير صفرية كي يتمكن فاكّ التشفير من تسمية الموضع الذي انقلب.
وثمة قيمة إضافية — المتلازمة الصفرية بالكامل — محجوزة لتعني «لم يُكتشف خطأ». هذه القيمة المحجوزة هي مصدر الـ + 1، فيجب أن تغطي المتلازمة m + r موضعًا زائد حالة انعدام الخطأ: 2^r ≥ (m + r) + 1.
أين تُوضع بتات التماثل في الكلمة الرمزية؟
في التخطيط الكلاسيكي لهامينغ، تشغل بتات التماثل المواضع التي هي قوى للعدد اثنين — 1 و2 و4 و8 و16 وهكذا — بينما تملأ بتات البيانات المواضع المتبقية. ووضع كل بتة تماثل في الموضع 2^k يجعلها مسؤولة تمامًا عن المواضع التي يحتوي دليلها على البت k مضبوطًا، وهو ما يتيح قراءة الفحوص الفاشلة بوصفها العنوان الثنائي للبتة الخاطئة.
إن عدد المواضع التي هي قوى للعدد اثنين حتى n يساوي القيمة r نفسها التي تُرجعها هذه الحاسبة، ولهذا يتوافق التخطيط وصيغة الحد الأدنى للبتات دائمًا.