اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.
كشف الأخطاء وتصحيحها (بالإنجليزية: Error detection and correction) ويختصر إلى ECC ، في نظرية المعلومات ونظرية الترميز وبعض تطبيقات علم الحاسوب والاتصال عن بعد، تعد عملية كشف الأخطاء وتصحيحها أو التحكم في الأخطاء بمثابة تقنية تتيح إمكانية التوصيل الموثوق لـ البيانات الرقمية بدلاً من قنوات الاتصال غير الموثوقة. وتطبق هذه التقانات حصرا على الشبكات الرقمية دون الشبكات التماثلية وتلك إحدى المعايير التي رسخت بناء الشبكات الرقمية وأزاحت الشبكات التماثلية. وتتعرض كثير من قنوات الاتصال لـ ضجيج القناة مما قد يتسبب في حدوث أخطاء أثناء نقل البيانات من المصدر إلى المتلقي. وتساعد تقنيات كشف الأخطاء في اكتشاف تلك الأخطاء، بينما تسهم تقنيات تصحيح الأخطاء في إعادة إنشاء البيانات الأصلية.
اكتشاف الاخطاء وتصحيحها (error detection and correction)
في اي شبكة يجب ان تكون لديها قابيلة لنقل البيانات بدقة مقبولة وبنسبة خطأ معقولة، معظم تطبيقات عصرنا الحالي بحاجة إلى درجة ععالية من الكفاءة لضمان وصول البيانات كما ارسلت دون حدوث تغيير عليها . فأثناء إرسال البيانات من نقطة لاخرى هناك احتمالية لتعرض هذه البيانات للتلف اثناء رحلتها، فهناك العديد من العوامل التي بامكانها التأثير على البيانات او على جزء منها وتغييره، لهذا نحن بحاجة غالبا إلى اليات لاكتشاف هذه الأخطاء وتصحيحها . بعض التطبيقات ممكن ان تحتمل نسبة خطأ بسيطة لا تؤثر على البيانات بشكل كبير مثل مقاطع الفيديو (حيث يتم تمثيل الفيديو بعدد هائل جدا من البكسل وهي اصغر وحدة في الصورة ويتم تمثيل هذه البكسل بعدد معين من البت ) لهذا عند حدوث خطأ في مكان معين لن يؤثر بدرجة كبيرة على الصورة العامة، وهناك تطبيقات أخرى لا تحتمل الخطأ بتاتا كنقل نص او مقاطع صوتية فأي خطأ فيها يؤدي إلى تغيير في البيانات ويؤثر عليها . عند وصول البيانات لطبقة الربط (datalink layer) يتم فحص هذه البيانات وفي حال تم اكتشاف حدوث خطأ يتم معالجته قبل نقل هذه البيانات إلى نقطة أخرى .
ويمكن تقسيم أنواع الأخطاء الممكن حدوثها إلى نوعين رئيسيين هما : 1) خطأ في بت واحد (single-bit error) 2) خطأ في مجموعة من البت (burst error)
خطأ في بت واحد (single-bit error) : وهو تعرض بت واحدة للتغير اثناء نقل البيانات اما من صفر إلى واحد او من واحد لتصبح قيمتها صفر داخل الوحدة الواحدة سواء أكانت بايت او كاراكتر خطأ فيي مجموعة من البت (burst error) : تعرض قيمتين أو أكتر للتغير داخل الوحدة الواحدة وتغيير قيمهم من صفر إلى واحد او العكس . يعتمد عدد القيم المتأثرة بحدوث الخطأ على عاملين رئيسيين هما :
- سرعة نقل البيانات (data rate) - المدة التي تعرضت لها البيانات لعوامل التغيير(noise length)
وتكون احتمالية حدوث الخطأ في أكثر من بت أكبر من احتمالية حدوث الخطأ في بت واحدة، وذلك لأنه غالبا ما تكون المدة التي تتعرض لها البيانات لعوامل تؤدي إلى تغييرها أكبر من المدة اللازمة لنقل بت واحدة , وهذا يعني أنه عندما تؤثر هذه العوامل على البيانات تؤثر على أكثر من قيمة . على سبيل المثال، إذا اردنا نقل البيانات بسرعة 1 كيلوبت بالثانية الواحدة وكان طول عوامل الضجيج التي ستعبر من خلالها هذه البيانات هو 1100 ثانية، فان ذلك سيؤدي إلى تأثر 10 بت ( 1كيلو 100 ) , وهكذا.
الزيادة (redunduncy) : الزيادة هو مفهوم مهم واساسي في عملية اكتشاف وتصحيح الأخطاء الناتجة عن تعرض البيانات لعوامل التغيير أثناء نقلها من نقطة إلى أخرى، حيث يتم في هذه المرحلة زيادة بت اضافية على االبيانات من طرف المرسل وحذفها من طرف المستقبل، نستدل من خلالها على بعض الأخطاء الممكن حدوثها . تصحيح الأخطاء أصعب من اكتشافها، فاكتشاف الأخطاء أمر بسيط يتطلب فقط معرفة إذا كان هناك خطأ أم لا بغض النظر عن عدد البت المتأثرة بالخطأ بالتالي سواء أكان خطأ في بت واحد (single-bit error) او في مجموعة من البت (burst error) لا يهم، أما عملية تصحيحها فان ذلك يتطلب معرفة عدد القيم المتأثرة والأهم هو تحديد أماكنها في الرسالة ويعتمد ذلك على عدد الأخطاء وحجم الرسالة . على سبيل المثال إذا اردنا تصحيح خطأ واحد في رسالة سعتها 8 بت فهناك ثمانية احتمالات لمكان الخطأ، وإذا اردنا تصحيح خطأ وقع في 2 بت برسالة حجمها 8 بت فهناك احتمالية لوجود الخطأ في 28 موقع مختلف (تباديل 8 في 2) , الان بامكانك تخيل صعوبة المستقبل بايجاد 10 اخطاء في رسالة سعتها 1000 بت .
الترميز (coding) :يمكن تطبيق الزيادة على الرسالة لاكتشاف وتصحيح الأخطاء بأنماط مختلفة، حيث يقوم المرسل باضافة بت زائدة بطريقة معينة بحيث تحدث علاقة معروفة بين مجموعة البت الفعلية بالرسالة والبت الاضافية وتكون هذه العلاقة معروفة لدى كل من المرسل والمستقبل . حيث يقوم المستقبل بفحص هذه العلاقة عند استقبال الرسالة لمعرفة إذا كان هناك خطأ أم لا . نسبة البت التي يتم زيادتها إلى عدد البت الاصلي في الرسالة احد أهم العوامل في اي نمط ترميز .
التعريفات العامة لهذه المصطلحات هي:
غالبًا ما تستخدم رموز اكتشاف الخطأ وتصحيحه لتحسين الثقة في وسائل تخزين البيانات.
لقد ظهر "المسار المتماثل" في أول شريط مغناطيسي لتخزين البيانات في عام 1951. بينما استخدم "رمز المستطيل الأمثل" في أشرطة التسجيل المشفرة للمجموعة وليست فقط للاستكشاف ولكن لتصحيح الأخطاء أحادية البت أيضًا.
وتحتوي بعض صيغ الملفات وبخاصة الصيغ الأرشيفية على تدقيق مجموع (في معظم الأحيان اختبار التكرار الدوري 32) للكشف عن الفساد والتقصير ومن الممكن تكرار العمل و/أو ملفات التكافؤ لاستعادة أجزاء من البيانات التالفة.
يستخدم رموز ريد-سولومون في الأقراص المضغوطة لتصحيح الأخطاء التي تسببت عن طريق الخدش.
وتستخدم الأقراص الصلبة الحديثة رموز اختبار التكرار الدوري للكشف عن رموز ريد-سولومون وذلك بغرض تصحيح الأخطاء الطفيفة في القطاع المقروء، واستعادة البيانات من القطاعات التي بها "سوء رحيل" وتخزين تلك البيانات في قطاعات بديلة.
تستخدم أنظمة مصفوفة التعدد للأقراص المستقلة مجموعة متنوعة من تقنيات تصحيح الخطأ، وذلك لتصحيح الأخطاء عندما يفشل القرص الصلب تمامًا.
وهناك أنظمة مثل نظام الملفات زيتابايت وبعض أنظمة مصفوفة التعدد للأقراص المستقلة لتدعيم تنقية البيانات وإعادة التمويه التي تسمح باكتشاف العوائق السيئة (وتمني) تنقيحها قبل استخدامها. ومن الممكن كتابة البيانات المنقحة مرة أخرى بدقة عالية مثلما كانت من قبل، وتجنب تلك العوائق أينما كانت في القرص الصلب نفسه، أو استبدال جهاز الحاسوب.
من الممكن أن تقدم ذاكرة الوصول العشوائي الديناميكية زيادة في الحماية من الأخطاء البسيطة عن طريق الاعتماد على رموز تصحيح الخطأ. فمثل ذاكرة تصحيح الأخطاء تعرف بـ إي سي سي أو ذاكرة بروتوكول إي دي إيه سي، المرغوبة خصيصًا في التطبيقات التي تحتمل الخلل بدرجة عالية، مثل الخوادم في تطبيقات الفضاء العميق الناتج عن الزيادة في الإشعاع.
وتستخدم الضوابط التقليدية لذاكرة تصحيح الخطأ رموز هامنج، على الرغم من استخدامها لبعض لوحدات التكرار الثلاثية.
يسمح التداخل بتقسيم تأثير الأشعة الكونية الأحادية على الإرباكات المحتملة للعديد من الباتات المجاورة وذلك عبر عدة كلمات عن طريق ربط الباتات المجاورة لكلمات مختلفة. وطالما لم يتجاوز الاستياء من الحدث الوحيد (سي إي يو) الحد الأدنى من الأخطاء (على سبيل المثال الخطأ الواحد) في أي كلمة معينة بين المداخل، فمن الممكن تصحيحها (على سبيل المثال عن طريق رمز تصحيح خطأ البت المفردة)، والتوهم بأنه من الممكن إصلاح نظام خطأ الذاكرة الخالية.
بعض الأنظمة المدعمة لـ تنقية الذاكرة.