> hamming | (7,4) | ecc <
// كود هامنج – كود تصحيح أخطاء لنقل بيانات موثوق
تصحيح الأخطاء
يكتشف ويصحح تلقائيًا أخطاء البت الواحد في البيانات.
كشف الأخطاء الثنائية
يمكنه كشف (لكن ليس تصحيح) الأخطاء ذات البتين في كل كتلة.
حمولة إضافية صغيرة
3 بتات تعادل فقط لكل 4 بتات بيانات (كفاءة 75%).
>> معلومات تقنية
كيف يعمل كود هامنج:
يضيف كود Hamming(7,4) ثلاث بتات تعادل إلى كل 4 بتات بيانات، ليكوّن كتلًا من 7 بتات. توضع بتات التعادل في مواضع هي قوى العدد 2 (1، 2، 4). عند حدوث خطأ، يشير المتلازمة (نتيجة فحص التعادل) مباشرة إلى موضع البت الخاطئ.
بنية Hamming(7,4):
البيانات: 1011 (4 بتات) المواضع: P1 P2 D1 P3 D2 D3 D4 Hamming: 1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
لماذا نستخدم كود هامنج؟:
- >تصحيح أخطاء الذاكرة
- >الاتصالات عبر الأقمار الصناعية
- >أنظمة تخزين البيانات
- >نقل البيانات عبر الشبكات
- >مصفوفات RAID
>> أسئلة شائعة
ما هو كود هامنج؟
كود هامنج هو كود لتصحيح الأخطاء ابتكره ريتشارد هامنج عام 1950. يضيف بتات تعادل إلى البيانات تسمح باكتشاف وتصحيح تلقائي لأخطاء البت الواحد.
ماذا يعني (7,4)؟
Hamming(7,4) تعني 7 بتات إجمالًا: 4 بتات بيانات و3 بتات تعادل. يمكنه تصحيح أي خطأ أحادي البت في كتلة مكوّنة من 7 بتات. توجد أيضًا متغيرات أخرى مثل (15,11) و(31,26).
كيف تعمل عملية تصحيح الأخطاء؟
عند استلام البيانات، يُعاد احتساب بتات التعادل. إذا لم تتطابق، تشير المتلازمة (الفرق) مباشرة إلى أي بت غير صحيح. يتم تصحيح الخطأ بقلب قيمة هذا البت.
كود هامنج مقارنةً بأكواد ECC الأخرى؟
كود هامنج بسيط وفعّال لأخطاء البت الواحد. الأكواد الأكثر تعقيدًا مثل Reed–Solomon يمكنها تصحيح عدة أخطاء لكنها تحتاج إلى حمولة أكبر. هامنج مثالي للقنوات منخفضة الضوضاء.
// مرجع سريع
| Pos | bit | covered by |
|---|---|---|
| 1 | p1 | p1 |
| 2 | p2 | p2 |
| 3 | d1 | p1 p2 |
| 4 | p3 | p3 |
| 5 | d2 | p1 p3 |
| 6 | d3 | p2 p3 |
| 7 | d4 | p1 p2 p3 |
// مثال محلول
Data 1011 -> positions 3,5,6,7 = 1,0,1,1 p1 = d3^d5^d7 = 1^0^1 = 0 p2 = d3^d6^d7 = 1^1^1 = 1 p3 = d5^d6^d7 = 0^1^1 = 0 Codeword (pos 1..7) 0110011 Received 0110111 (bit 5 flipped) Syndrome s3 s2 s1 = 1 0 1 = 5 -> flip bit 5 -> 0110011 corrected
>> المزيد من الأسئلة
س: ماذا يعني (7,4) في رمز هامينغ؟
ج: تُكمَّل 4 بتات بيانات بـ3 بتات تكافؤ لتكوين كلمة من 7 بتات. توضع بتات التكافؤ في مواضع قوى العدد 2: 1 و2 و4. المسافة الدنيا 3: يصحّح خطأً واحداً ويكشف خطأين دون تصحيحهما.
س: كيف تُظهر المتلازمة موضع الخطأ؟
ج: يفحص كل بت تكافؤ المواضع التي يكون فيها البت المقابل في رقم الموضع مضبوطاً. تشكّل النتائج الثلاث بالثنائي موضع البت الخاطئ (0 = لا خطأ). في المثال يشير 101 إلى الموضع 5.
س: ما هو هامينغ الموسّع (SECDED)؟
ج: يحوّل بت تكافؤ كلي إضافي الرمز (7,4) إلى (8,4): يصحّح خطأً ويكشف خطأين. تستخدم ذاكرة ECC المبدأ نفسه عادةً بصيغة (72,64) أي 8 بتات تحقق لكل 64 بت بيانات.