بت التكافؤ
| 7 بتات من البيانات | (عدد البتات التي قيمتها 1) | 8 بتات بما في ذلك بت التكافؤ | |
|---|---|---|---|
| حتى | غريب | ||
| 0000000 | 0 | 0000000 0 | 0000000 1 |
| 1010001 | 3 | 1010001 1 | 1010001 0 |
| 1101001 | 4 | 1101001 0 | 1101001 1 |
| 1111111 | 7 | 1111111 1 | 1111111 0 |
بت التكافؤ ، أو بت التحقق ، هو بت يُضاف إلى سلسلة من التعليمات البرمجية الثنائية . تُعد بتات التكافؤ شكلاً بسيطاً من أشكال التعليمات البرمجية للكشف عن الأخطاء . تُطبق بتات التكافؤ عموماً على أصغر وحدات بروتوكول الاتصال، وهي عادةً وحدات البايت (أوكتيتات) ذات 8 بتات، على الرغم من أنه يمكن أيضاً تطبيقها بشكل منفصل على سلسلة بتات الرسالة بأكملها.
تضمن بتة التكافؤ أن يكون العدد الإجمالي للبتات التي قيمتها 1 في السلسلة زوجيًا أو فرديًا . [ 1 ] وبناءً على ذلك، يوجد نوعان من بتات التكافؤ: بتة التكافؤ الزوجية وبتة التكافؤ الفردية . في حالة التكافؤ الزوجي، بالنسبة لمجموعة معينة من البتات، تُحسب البتات التي قيمتها 1. إذا كان هذا العدد فرديًا، تُضبط قيمة بتة التكافؤ على 1، مما يجعل العدد الإجمالي لتكرارات الرقم 1 في المجموعة بأكملها (بما في ذلك بتة التكافؤ) عددًا زوجيًا. إذا كان عدد الرقم 1 في مجموعة معينة من البتات زوجيًا بالفعل، فإن قيمة بتة التكافؤ تكون 0. في حالة التكافؤ الفردي، ينعكس الترميز. بالنسبة لمجموعة معينة من البتات، إذا كان عدد البتات التي قيمتها 1 زوجيًا، تُضبط قيمة بتة التكافؤ على 1، مما يجعل العدد الإجمالي لتكرارات الرقم 1 في المجموعة بأكملها (بما في ذلك بتة التكافؤ) عددًا فرديًا. إذا كان عدد البتات التي قيمتها 1 فرديًا، فإن العدد فردي بالفعل، لذا فإن قيمة بت التكافؤ هي 0. التكافؤ هو حالة خاصة من فحص التكرار الدوري (CRC)، حيث يتم توليد CRC ذو البت الواحد بواسطة متعدد الحدود x + 1.
التكافؤ
في الرياضيات، يمكن أن يشير مصطلح التكافؤ إلى زوجية أو فردية العدد الصحيح، والذي يمكن تحديده عند كتابته في شكله الثنائي بمجرد فحص أقل بت ذي أهمية .
في مجال تكنولوجيا المعلومات، تشير التكافؤية إلى زوجية أو فردية عدد البتات التي قيمتها واحد في أي مجموعة من الأرقام الثنائية. ولأن التكافؤية تتحدد بحالة كل بت على حدة، فإن هذه الخاصية - كونها تعتمد على جميع البتات وتتغير قيمتها من زوجية إلى فردية عند تغير أي بت - تسمح باستخدامها في أنظمة كشف الأخطاء وتصحيحها.
في مجال الاتصالات، يُستخدم مصطلح "التكافؤ" في بعض البروتوكولات لكشف الأخطاء . يتم ضبط وسيط الإرسال مسبقًا، عند طرفي الإرسال، للاتفاق على التكافؤ الفردي أو الزوجي. لكل سلسلة من البتات الجاهزة للإرسال (حزمة بيانات)، يحسب المرسل بت التكافؤ الخاص بها، صفرًا أو واحدًا، لجعلها متوافقة مع التكافؤ المتفق عليه، زوجيًا كان أم فرديًا. يتحقق مستقبل تلك الحزمة أولًا من أن تكافؤ الحزمة ككل يتوافق مع الاتفاق المُعد مسبقًا، ثم، إذا وُجد خطأ في التكافؤ في تلك الحزمة، يطلب إعادة إرسالها.
في علوم الحاسوب، يوفر شريط التكافؤ أو قرص التكافؤ في نظام RAID تصحيح الأخطاء . تُكتب بتات التكافؤ بمعدل بت واحد لكل n بت، حيث n هو عدد الأقراص في المصفوفة. عند حدوث خطأ في القراءة، يُعاد حساب كل بت في منطقة الخطأ من مجموعته المكونة من n بت. وبهذه الطريقة، يُنشئ استخدام بت تكافؤ واحد "تكرارًا" لمنطقة تتراوح سعتها من بت واحد إلى قرص واحد. انظر قسم مصفوفة RAID أدناه.
في مجال الإلكترونيات، يُعدّ تحويل البيانات مع مراعاة التكافؤ عمليةً فعّالة للغاية، حيث تُخرج بوابات XOR ما يُعادل بت التحقق الذي يُنشئ تكافؤًا زوجيًا، كما أن تصميم منطق XOR قابل للتوسع بسهولة ليشمل أي عدد من المدخلات. وتُشكّل هياكل XOR وAND الجزء الأكبر من معظم الدوائر المتكاملة.
اكتشاف الأخطاء

إذا تم إرسال عدد فردي من البتات (بما في ذلك بت التكافؤ) بشكل خاطئ، فسيكون بت التكافؤ خاطئًا، مما يشير إلى حدوث خطأ في التكافؤ أثناء الإرسال. يُستخدم بت التكافؤ فقط لاكتشاف الأخطاء؛ فهو لا يُصحح أي خطأ، إذ لا توجد طريقة لتحديد البت التالف تحديدًا. يجب التخلص من البيانات بالكامل، وإعادة إرسالها من البداية . لذلك، في وسط إرسال مشوش، قد يستغرق الإرسال الناجح وقتًا طويلاً أو قد لا يحدث أبدًا. مع ذلك، يتميز التكافؤ بأنه يستخدم بتًا واحدًا فقط ويتطلب عددًا قليلاً من بوابات XOR لتوليده. انظر إلى رمز هامينغ كمثال على رمز تصحيح الأخطاء.
يتم استخدام فحص بت التكافؤ أحيانًا لنقل أحرف ASCII ، التي تحتوي على 7 بتات، تاركة البت الثامن كبت تكافؤ.
على سبيل المثال، يمكن حساب بت التكافؤ كما يلي. لنفترض أن أليس وبوب يتواصلان، وتريد أليس إرسال رسالة بسيطة مكونة من 4 بتات إلى بوب، وهي 1001.
| نوع بت التكافؤ | سيناريو نقل ناجح |
|---|---|
| التكافؤ | تريد أليس إرسال: 1001 و1011 تقوم أليس بحساب قيمة بت التكافؤ: 1+0+0+1 (mod 2) = 0 1+0+1+1 (mod 2) = 1 تضيف أليس بت التكافؤ وترسل: 1001 0 و 1011 1 تلقى بوب: 10010 و10111 يحسب بوب التكافؤ: 1+0+0+1+0 (mod 2) = 0 1+0+1+1+1 (mod 2) = 0 أفاد بوب بأن عملية الإرسال تمت بنجاح بعد ملاحظة النتيجة المتوقعة. |
| الزوجية الفردية | تريد أليس إرسال: 1001 و1011 تقوم أليس بحساب قيمة بت التكافؤ: 1+0+0+1 (+ 1 mod 2) = 1 1+0+1+1 (+ 1 mod 2) = 0 تضيف أليس بت التكافؤ وترسل: 1001 1 و 1011 0 بوب يتلقى: 10011 و 10110 يحسب بوب التكافؤ الكلي: 1+0+0+1+1 (mod 2) = 1 1+0+1+1+0 (mod 2) = 1 أفاد بوب بأن الإرسال كان صحيحاً بعد ملاحظة النتيجة الغريبة المتوقعة. |
تُمكّن هذه الآلية من اكتشاف أخطاء البتات المفردة، لأنه إذا انقلب بت واحد بسبب تشويش الخط، فسيكون هناك عدد غير صحيح من الآحاد في البيانات المُستلمة. في المثالين السابقين، تتطابق قيمة التكافؤ المحسوبة لبوب مع بت التكافؤ في قيمته المُستلمة، مما يدل على عدم وجود أخطاء في البتات المفردة. لننظر إلى المثال التالي مع خطأ في الإرسال في البت الثاني باستخدام عملية XOR:
| نوع خطأ التكافؤ الثنائي | سيناريو فشل الإرسال |
|---|---|
| التكافؤ خطأ في البت الثاني | أليس تريد إرسال: 1001 تقوم أليس بحساب قيمة بت التكافؤ: 1^0^0^1 = 0 تضيف أليس بت التكافؤ وترسل: 10010 ...خطأ في الإرسال... بوب يتلقى: 1 1 010 يحسب بوب التكافؤ الإجمالي: 1^1^0^1^0 = 1 أبلغ بوب عن إرسال غير صحيح بعد ملاحظة نتيجة غريبة غير متوقعة. |
| التكافؤ خطأ في بت التكافؤ | أليس تريد إرسال: 1001 تحسب أليس قيمة الزوجية الزوجية: 1^0^0^1 = 0 أليس ترسل: 10010 ...خطأ في الإرسال... بوب يستلم: 1001 1 يحسب بوب التكافؤ الإجمالي: 1^0^0^1^1 = 1 أبلغ بوب عن إرسال غير صحيح بعد ملاحظة نتيجة غريبة غير متوقعة. |
توجد قيود على أنظمة التكافؤ. يضمن بت التكافؤ اكتشاف عدد فردي فقط من أخطاء البتات. إذا كان عدد البتات التي بها أخطاء زوجيًا، يسجل بت التكافؤ العدد الصحيح من الآحاد حتى لو كانت البيانات تالفة. (انظر أيضًا اكتشاف الأخطاء وتصحيحها ). لنأخذ المثال نفسه كما في السابق ولكن مع عدد زوجي من البتات التالفة:
| نوع خطأ التكافؤ الثنائي | سيناريو فشل الإرسال |
|---|---|
| التكافؤ بتّان تالفان | أليس تريد إرسال: 1001 تحسب أليس قيمة الزوجية الزوجية: 1^0^0^1 = 0 أليس ترسل: 10010 ...خطأ في الإرسال... بوب يتلقى: 1 1 01 1 يحسب بوب التكافؤ الكلي: 1^1^0^1^1 = 0 أفاد بوب بأن الإرسال صحيح، مع أنه في الواقع غير صحيح. |
يلاحظ بوب التكافؤ الزوجي، كما هو متوقع، وبالتالي يفشل في اكتشاف خطأي البت.
الاستخدام
نظرًا لبساطتها، تُستخدم خاصية التكافؤ في العديد من تطبيقات الأجهزة التي تسمح بتكرار عملية ما في حال حدوث صعوبة، أو عندما يكون اكتشاف الخطأ مفيدًا. على سبيل المثال، تستخدم ناقلات SCSI و PCI خاصية التكافؤ لاكتشاف أخطاء الإرسال، كما تتضمن العديد من ذاكرات التخزين المؤقت لتعليمات المعالجات الدقيقة حماية التكافؤ. ولأن بيانات ذاكرة التخزين المؤقت للتعليمات هي مجرد نسخة من الذاكرة الرئيسية ، يمكن تجاهلها وإعادة جلبها إذا تبين أنها تالفة.
في نقل البيانات التسلسلي ، يُستخدم عادةً تنسيق يتكون من 7 بتات للبيانات، وبت تكافؤ زوجي، وبت توقف واحد أو اثنين. يستوعب هذا التنسيق جميع أحرف ASCII ذات 7 بتات في بايت واحد مكون من 8 بتات. توجد تنسيقات أخرى ممكنة؛ إذ يمكن لـ 8 بتات من البيانات بالإضافة إلى بت التكافؤ أن تنقل جميع قيم البايت المكونة من 8 بتات.
في سياقات الاتصال التسلسلي، عادةً ما يتم توليد بيانات التكافؤ والتحقق منها بواسطة وحدة واجهة (مثل UART )، وعند استلامها، تُتاح النتيجة للمعالج ( مثل وحدة المعالجة المركزية، وكذلك لنظام التشغيل ) عبر بت حالة في سجل الأجهزة في وحدة الواجهة . ويتم عادةً استعادة البيانات من الخطأ عن طريق إعادة إرسالها، وتتولى البرامج (مثل إجراءات الإدخال/الإخراج في نظام التشغيل) معالجة تفاصيل هذه العملية.
عندما يكون العدد الإجمالي للبتات المرسلة، بما في ذلك بت التكافؤ، زوجيًا، فإن التكافؤ الفردي يتميز بميزة اكتشاف كل من أنماط الأصفار والآحاد كأخطاء. أما إذا كان العدد الإجمالي للبتات فرديًا، فسيتم اكتشاف نمط واحد فقط كخطأ، ويمكن اختيار النمط بناءً على الخطأ الأكثر شيوعًا المتوقع.
مصفوفة RAID
تستخدم مصفوفات RAID ( مصفوفة متكررة من أقراص مستقلة/رخيصة ) بيانات التكافؤ لتحقيق التكرار . في حال تعطل أحد الأقراص في المصفوفة، يمكن دمج البيانات المتبقية على الأقراص الأخرى مع بيانات التكافؤ (باستخدام دالة XOR المنطقية ) لإعادة بناء البيانات المفقودة.
على سبيل المثال، لنفترض أن قرصين في مصفوفة RAID 4 ثلاثية الأقراص يحتويان على البيانات التالية:
| القيادة 1: | 01101101 |
| القيادة 2: | 11010100 |
لحساب بيانات التكافؤ للقرصين، يتم إجراء عملية XOR على بياناتهما:
| 01101101 | |
| XOR | 11010100 |
| 10111001 |
ثم يتم تخزين بيانات التكافؤ الناتجة، 10111001 ، على محرك الأقراص 3.
في حال تعطل أي من الأقراص الثلاثة، يمكن استعادة محتويات القرص المتعطل على قرص بديل عن طريق تطبيق عملية XOR نفسها على البيانات الموجودة على الأقراص المتبقية. فإذا تعطل القرص الثاني، يمكن استعادة بياناته باستخدام نتائج عملية XOR لمحتويات القرصين المتبقيين، القرص الأول والقرص الثالث.
| القيادة 1: | 01101101 |
| القيادة 3: | 10111001 |
على النحو التالي:
| 01101101 | القيادة 1 | |
| XOR | 10111001 | القيادة 3 |
| 11010100 | الطريق 2 المعاد بناؤه |
ينتج عن عملية حساب XOR محتويات القرص 2. ثم يتم تخزين القيمة 11010100 على القرص 2، مما يؤدي إلى إصلاح المصفوفة بالكامل.
منطق XOR مكافئ أيضًا للتكافؤ الزوجي (لأن a XOR b XOR c XOR ... يمكن التعامل معه كـ XOR( a , b , c , ...)، وهو عامل متعدد المعاملات يكون صحيحًا فقط إذا كان عدد فردي من الوسائط صحيحًا). لذا، ينطبق مفهوم XOR نفسه المذكور أعلاه على مصفوفات RAID الأكبر حجمًا مع التكافؤ، باستخدام أي عدد من الأقراص. في حالة مصفوفة RAID 3 المكونة من 12 قرصًا، تشارك 11 قرصًا في عملية حساب XOR الموضحة أعلاه، وتُنتج قيمة تُخزن بعد ذلك على قرص التكافؤ المخصص.
تُستخدم في RAID-DP امتدادات واختلافات في آلية بت التكافؤ "المزدوج" أو "الثنائي" أو "القطري" .
تاريخ
كان مسار التكافؤ موجودًا في أول نظام تخزين بيانات على شريط مغناطيسي عام 1951. يُعرف التكافؤ بهذا الشكل، عند تطبيقه على إشارات متوازية متعددة، باسم فحص التكرار العرضي . ويمكن دمجه مع التكافؤ المحسوب على عدة بتات مُرسلة على إشارة واحدة، وهو ما يُعرف بفحص التكرار الطولي . في ناقل البيانات المتوازي، يوجد بت واحد لفحص التكرار الطولي لكل إشارة متوازية.
استُخدمت خاصية التكافؤ أيضًا في بعض أنظمة إدخال البيانات على الشريط الورقي ( الشريط المثقوب ) (التي سبقت أنظمة الشريط المغناطيسي). في الأنظمة التي باعتها شركة ICL البريطانية (المعروفة سابقًا باسم ICT)، كان الشريط الورقي بعرض بوصة واحدة (25 مم) يحتوي على 8 ثقوب، وكان الثقب الثامن مخصصًا للتكافؤ. استُخدمت 7 ثقوب للبيانات، مثل ASCII ذي 7 بتات. وكان الثقب الثامن مثقوبًا بعدد ثقوب البيانات الموجودة فيه.
انظر أيضاً
مراجع
روابط خارجية
- الحساب الثنائي
- نقل البيانات
- اكتشاف الأخطاء وتصحيحها
- التكافؤ (الرياضيات)
- غارة
