تشخیص و تصحیح خطا

از ویکیپدیا، دانشنامه آزاد
پرش به ناوبری پرش به جستجو
برای پاکسازی خطاهای انتقالی که جو زمین (سمت چپ) معرفی می‌کند، دانشمندان گدارد تصحیح خطای Reed-Solomon (راست) را اعمال کردند که معمولاً در CD و DVD استفاده می‌شود. خطاهای معمولی شامل پیکسل های از دست رفته (سفید) و سیگنال های نادرست (سیاه) است. نوار سفید نشان دهنده دوره کوتاهی است که در آن انتقال قطع شده است.

در تئوری اطلاعات و تئوری کدگذاری با کاربرد در علوم کامپیوتر و مخابرات ، تشخیص خطا و تصحیح یا کنترل خطا تکنیک هایی هستند که امکان تحویل مطمئن داده های دیجیتال را از طریق کانال های ارتباطی غیرقابل اعتماد فراهم می کنند . بسیاری از کانال‌های ارتباطی در معرض نویز کانال هستند و بنابراین ممکن است در حین انتقال از منبع به گیرنده خطا ایجاد شود. تکنیک های تشخیص خطا امکان تشخیص چنین خطاهایی را فراهم می کند، در حالی که تصحیح خطا در بسیاری از موارد بازسازی داده های اصلی را امکان پذیر می کند.

تعاریف

تشخیص خطا تشخیص خطاهای ناشی از نویز یا سایر اختلالات در حین انتقال از فرستنده به گیرنده است.

تصحیح خطا ، تشخیص خطاها و بازسازی داده های اصلی و بدون خطا است.

تاریخچه

در دوران باستان کلاسیک، نسخه نویسان انجیل عبری برای کار خود بر اساس تعداد بخیه ها (سطوح آیات) دستمزد دریافت می کردند. از آنجایی که کتاب‌های منثور کتاب مقدس به سختی با دوخت نوشته می‌شدند، نسخه‌نویسان برای تخمین مقدار کار، مجبور بودند حروف را بشمارند. [1] این همچنین به اطمینان از دقت در انتقال متن با تولید نسخه‌های بعدی کمک کرد. [2] [3] بین قرن 7 و 10 پس از میلاد، گروهی از کاتبان یهودی این امر را رسمیت دادند و گسترش دادند تا ماسوره عددی ایجاد کنند.برای اطمینان از بازتولید دقیق متن مقدس. این شامل شمارش تعداد کلمات در یک سطر، بخش، کتاب و گروه‌های کتاب، ذکر قسمت میانی کتاب، آمار استفاده از کلمه و تفسیر بود. [1] معیارها به گونه ای شد که انحراف حتی در یک حرف در طومار تورات غیرقابل قبول تلقی می شد. [4] اثربخشی روش تصحیح خطای آنها با دقت کپی برداری در طول قرن ها که با کشف طومارهای دریای مرده در سال های 1947-1956، مربوط به حدود 150 قبل از میلاد تا 75 پس از میلاد نشان داده شد، تأیید شد. [5]

توسعه مدرن کدهای تصحیح خطا به ریچارد همینگ در سال 1947 نسبت داده شده است. [6] شرح کد هامینگ در نظریه ریاضی ارتباط کلود شانون [ 7] ظاهر شد و به سرعت توسط مارسل جی گولای تعمیم یافت. [8]

مقدمه

همه طرح‌های تشخیص و تصحیح خطا مقداری افزونگی (یعنی مقداری داده اضافی) را به پیام اضافه می‌کنند، که گیرندگان می‌توانند از آن برای بررسی سازگاری پیام تحویل‌شده و بازیابی داده‌هایی که مشخص شده‌اند خراب شده‌اند استفاده کنند. طرح های تشخیص و تصحیح خطا می توانند سیستماتیک یا غیر سیستماتیک باشند. در یک طرح سیستماتیک، فرستنده داده‌های اصلی را ارسال می‌کند و تعداد ثابتی از بیت‌های چک (یا داده‌های برابری ) را که از بیت‌های داده توسط برخی از الگوریتم‌های قطعی مشتق می‌شوند، ضمیمه می‌کند.. اگر فقط تشخیص خطا مورد نیاز باشد، یک گیرنده می تواند به سادگی همان الگوریتم را برای بیت های داده دریافتی اعمال کند و خروجی آن را با بیت های چک دریافتی مقایسه کند. اگر مقادیر مطابقت نداشته باشند، در مرحله ای از انتقال خطایی رخ داده است. در سیستمی که از یک کد غیر سیستماتیک استفاده می کند، پیام اصلی به یک پیام رمزگذاری شده با همان اطلاعات تبدیل می شود که حداقل به اندازه پیام اصلی دارای بیت است.

عملکرد خوب کنترل خطا مستلزم این است که طرح بر اساس ویژگی های کانال ارتباطی انتخاب شود. مدل‌های کانال متداول شامل مدل‌های بدون حافظه است که در آن خطاها به‌طور تصادفی و با احتمال مشخصی رخ می‌دهند، و مدل‌های پویا که در آن خطاها عمدتاً به صورت انفجاری رخ می‌دهند . در نتیجه، کدهای تشخیص و تصحیح خطا را می توان به طور کلی بین تشخیص/تصحیح خطای تصادفی و تشخیص/تصحیح خطای انفجاری متمایز کرد. برخی از کدها همچنین می توانند برای مخلوطی از خطاهای تصادفی و خطاهای انفجاری مناسب باشند.

اگر مشخصه های کانال را نتوان تعیین کرد، یا بسیار متغیر است، یک طرح تشخیص خطا ممکن است با سیستمی برای ارسال مجدد داده های اشتباه ترکیب شود. این به عنوان درخواست تکرار خودکار (ARQ) شناخته می شود و به طور قابل توجهی در اینترنت استفاده می شود. یک رویکرد جایگزین برای کنترل خطا، درخواست تکرار خودکار ترکیبی (HARQ) است که ترکیبی از ARQ و کدگذاری تصحیح خطا است.

انواع تصحیح خطا

سه نوع اصلی تصحیح خطا وجود دارد. [9]

درخواست تکرار خودکار (ARQ)

درخواست تکرار خودکار (ARQ) یک روش کنترل خطا برای انتقال داده است که از کدهای تشخیص خطا، پیام های تأیید و/یا تأیید منفی و وقفه های زمانی برای دستیابی به انتقال داده قابل اعتماد استفاده می کند. تصدیق پیامی است که توسط گیرنده ارسال می شود تا نشان دهد که فریم داده را به درستی دریافت کرده است .

معمولاً هنگامی که فرستنده قبل از وقوع مهلت زمانی، تأییدیه را دریافت نمی کند (یعنی در مدت زمان معقولی پس از ارسال فریم داده)، فریم را مجدداً ارسال می کند تا زمانی که به درستی دریافت شود یا خطا بیش از تعداد از پیش تعیین شده ارسال مجدد باقی بماند. .

سه نوع پروتکل ARQ عبارتند از Stop-and-wait ARQ ، Go-Back-N ARQ و Selective Repeat ARQ .

اگر کانال ارتباطی دارای ظرفیت متغیر یا ناشناخته باشد ، ARQ مناسب است ، مانند موردی که در اینترنت وجود دارد. با این حال، ARQ نیاز به در دسترس بودن یک کانال پشتی دارد، منجر به افزایش تاخیر احتمالی به دلیل ارسال مجدد می‌شود، و نیاز به نگهداری بافرها و تایمرها برای ارسال مجدد دارد، که در مورد ازدحام شبکه می‌تواند به سرور و ظرفیت کلی شبکه فشار وارد کند. [10]

به عنوان مثال، ARQ در پیوندهای داده رادیویی موج کوتاه به شکل ARQ-E یا ترکیب با مالتی پلکس به عنوان ARQ-M استفاده می شود.

تصحیح خطای فوروارد

تصحیح خطای فوروارد (FEC) فرآیندی است برای افزودن داده های اضافی مانند یک کد تصحیح خطا (ECC) به یک پیام به طوری که می تواند توسط گیرنده بازیابی شود، حتی در صورت وجود تعدادی خطا (تا حد امکان وجود کد). استفاده شده) چه در طول فرآیند انتقال و چه در ذخیره سازی معرفی شدند. از آنجایی که گیرنده مجبور نیست از فرستنده ارسال مجدد داده ها را بخواهد، برای تصحیح خطای فوروارد نیازی به بک کانال نیست و بنابراین برای ارتباطات ساده مانند پخش مناسب است. کدهای تصحیح خطا اغلب در ارتباطات لایه های پایین تر و همچنین برای ذخیره سازی مطمئن در رسانه هایی مانند سی دی استفاده می شوند., دی وی دی , هارد دیسک و رم .

کدهای تصحیح خطا معمولاً بین کدهای کانولوشنال و کدهای بلوک متمایز می شوند :

قضیه شانون یک قضیه مهم در تصحیح خطای پیشرو است و حداکثر نرخ اطلاعاتی را که در آن ارتباط قابل اعتماد در کانالی امکان پذیر است که احتمال خطا یا نسبت سیگنال به نویز (SNR) مشخصی دارد، توصیف می کند. این حد بالای سختگیرانه بر حسب ظرفیت کانال بیان می شود. به طور خاص، این قضیه می گوید که کدهایی وجود دارد که با افزایش طول رمزگذاری، احتمال خطا در یک کانال بدون حافظه گسسته می تواند به طور دلخواه کوچک باشد، مشروط بر اینکه نرخ کد از ظرفیت کانال کمتر باشد. نرخ کد به عنوان کسری k/n از k نمادهای منبع و n تعریف می شودنمادهای رمزگذاری شده

حداکثر نرخ مجاز کد واقعی به کد تصحیح خطا استفاده شده بستگی دارد و ممکن است کمتر باشد. دلیلش این است که اثبات شانون فقط ماهیت وجودی داشت و نحوه ساخت کدهایی را نشان نداد که هم بهینه باشند و هم الگوریتم های رمزگذاری و رمزگشایی کارآمدی داشته باشند.

طرح های ترکیبی

ترکیبی ARQ ترکیبی از ARQ و تصحیح خطای فوروارد است. دو رویکرد اساسی وجود دارد: [10]

  • پیام ها همیشه با داده های برابری FEC (و افزونگی تشخیص خطا) منتقل می شوند. گیرنده پیامی را با استفاده از اطلاعات برابری رمزگشایی می‌کند و تنها در صورتی درخواست ارسال مجدد با استفاده از ARQ را می‌دهد که داده‌های برابری برای رمزگشایی موفقیت‌آمیز کافی نباشد (از طریق بررسی یکپارچگی ناموفق شناسایی شده است).
  • پیام ها بدون داده های برابری (فقط با اطلاعات تشخیص خطا) منتقل می شوند. اگر یک گیرنده خطایی را تشخیص دهد، اطلاعات FEC را با استفاده از ARQ از فرستنده درخواست می کند و از آن برای بازسازی پیام اصلی استفاده می کند.

رویکرد دوم به ویژه در کانال پاک کردن هنگام استفاده از کد پاک کردن بدون نرخ جذاب است .

طرح های تشخیص خطا

تشخیص خطا معمولاً با استفاده از یک تابع هش مناسب (یا به طور خاص، یک جمع‌بندی بررسی ، بررسی افزونگی چرخه‌ای یا سایر الگوریتم‌ها) انجام می‌شود. یک تابع هش یک تگ با طول ثابت به پیام اضافه می کند، که به گیرندگان امکان می دهد پیام تحویل داده شده را با محاسبه مجدد تگ و مقایسه آن با برچسب ارائه شده تأیید کنند.

طیف گسترده ای از طرح های مختلف تابع هش وجود دارد. با این حال، برخی از آنها به دلیل سادگی یا مناسب بودن آنها برای تشخیص انواع خاصی از خطاها (به عنوان مثال، عملکرد بررسی افزونگی چرخه ای در تشخیص خطاهای پشت سر هم ) کاربرد بسیار گسترده ای دارند.

کدگذاری حداقل فاصله

یک کد تصحیح خطای تصادفی بر اساس کدگذاری حداقل فاصله می‌تواند ضمانت دقیقی در مورد تعداد خطاهای قابل تشخیص ارائه کند، اما ممکن است در برابر حمله preimage محافظت نکند .

کدهای تکرار

کد تکرار یک طرح کدگذاری است که بیت ها را در یک کانال تکرار می کند تا به ارتباطی بدون خطا دست یابد. با توجه به جریانی از داده ها برای انتقال، داده ها به بلوک های بیت تقسیم می شوند. هر بلوک چند بار از پیش تعیین شده ارسال می شود. به عنوان مثال، برای ارسال الگوی بیت "1011"، بلوک چهار بیتی را می توان سه بار تکرار کرد، بنابراین "1011 1011 1011" تولید می شود. اگر این الگوی دوازده بیتی به عنوان "1010 1011 1011" دریافت شود - جایی که بلوک اول بر خلاف دو بلوک دیگر است - یک خطا رخ داده است.

یک کد تکراری بسیار ناکارآمد است و اگر خطا دقیقاً در همان مکان برای هر گروه رخ دهد، می تواند مستعد مشکلات باشد (به عنوان مثال، "1010 1010 1010" در مثال قبلی به عنوان صحیح تشخیص داده می شود). مزیت کدهای تکراری این است که آنها بسیار ساده هستند و در واقع در برخی از ارسال های ایستگاه های اعداد استفاده می شوند . [11] [12]

بیت برابری

بیت برابری بیتی است که به گروهی از بیت های منبع اضافه می شود تا اطمینان حاصل شود که تعداد بیت های مجموعه (یعنی بیت هایی با مقدار 1) در نتیجه زوج یا فرد است. این یک طرح بسیار ساده است که می تواند برای تشخیص منفرد یا هر عدد فرد دیگری (یعنی سه، پنج، و غیره) از خطاها در خروجی استفاده شود. تعداد زوج بیت های برگردانده شده باعث می شود که بیت برابری درست به نظر برسد حتی اگر داده ها اشتباه باشد.

بیت‌های برابری اضافه شده به هر «کلمه» ارسالی ، بررسی‌های افزونگی عرضی نامیده می‌شوند ، در حالی که آن‌هایی که در انتهای یک جریان از «کلمات» اضافه می‌شوند، بررسی‌های افزونگی طولی نامیده می‌شوند.. به عنوان مثال، اگر هر یک از یک سری از "کلمات" m-bit یک بیت برابری اضافه شده باشد، که نشان می دهد تعداد یک ها فرد یا زوج در آن کلمه وجود دارد، هر کلمه ای که یک خطا در آن وجود داشته باشد شناسایی می شود. با این حال، مشخص نخواهد شد که خطا در کجای کلمه است. علاوه بر این، اگر پس از هر جریان از n کلمه، یک مجموع برابری ارسال شود، که هر بیت آن نشان می دهد که آیا در آن موقعیت بیت ارسال شده در جدیدترین گروه، تعداد فرد یا زوج وجود داشته است، موقعیت دقیق خطا. می توان تعیین کرد و خطا را اصلاح کرد. این روش تنها در صورتی موثر است که در هر گروه از n کلمه بیش از 1 خطا وجود نداشته باشد. با بیت های بیشتر تصحیح خطا، خطاهای بیشتری را می توان شناسایی و در برخی موارد اصلاح کرد.

همچنین تکنیک های گروه بندی بیت دیگری نیز وجود دارد.

چک جمع

جمع کنترلی یک پیام یک مجموع حسابی مدولار از کلمات کد پیام با طول کلمه ثابت (مثلاً مقادیر بایت) است. مجموع ممکن است با استفاده از یک عملیات مکمل ones'-complement قبل از ارسال برای شناسایی پیام‌های غیرعمدی تمام صفر نفی شود.

طرح‌های جمع کنترل شامل بیت‌های برابری، ارقام بررسی و بررسی‌های افزونگی طولی است. برخی از طرح‌های جمع‌بندی کنترلی، مانند الگوریتم دام ، الگوریتم لون ، و الگوریتم ورهوف ، به‌طور خاص برای تشخیص خطاهایی که معمولاً توسط انسان در نوشتن یا به خاطر سپردن اعداد شناسایی معرفی می‌شوند، طراحی شده‌اند.

بررسی افزونگی چرخه ای

بررسی افزونگی چرخه ای (CRC) یک تابع هش غیر ایمن است که برای تشخیص تغییرات تصادفی داده های دیجیتال در شبکه های کامپیوتری طراحی شده است. برای تشخیص خطاهای معرفی شده به طور مخرب مناسب نیست. با مشخص کردن یک چند جمله ای مولد مشخص می شود که به عنوان مقسوم علیه در یک تقسیم طولانی چند جمله ای بر روی یک میدان محدود استفاده می شود و داده های ورودی را به عنوان سود تقسیمی می گیرد. باقی مانده نتیجه می شود.

یک CRC دارای ویژگی هایی است که آن را برای تشخیص خطاهای انفجاری مناسب می کند. پیاده سازی CRC ها در سخت افزار بسیار آسان است و بنابراین معمولاً در شبکه های کامپیوتری و دستگاه های ذخیره سازی مانند هارد دیسک استفاده می شود .

بیت برابری را می توان به عنوان یک CRC 1 بیتی مورد خاص مشاهده کرد.

تابع هش رمزنگاری

خروجی یک تابع هش رمزنگاری ، که به عنوان خلاصه پیام نیز شناخته می‌شود ، می‌تواند تضمین‌های قوی در مورد یکپارچگی داده‌ها ارائه دهد ، چه تغییرات داده‌ها تصادفی باشند (مثلاً به دلیل خطاهای انتقال) یا به طور مخرب وارد شوند. هر گونه تغییر در داده ها احتمالاً از طریق یک مقدار هش ناسازگار شناسایی می شود. علاوه بر این، با توجه به مقداری هش، معمولاً یافتن برخی از داده های ورودی (غیر از داده های داده شده) که همان مقدار هش را به دست می دهند، غیر ممکن است. اگر یک مهاجم بتواند نه تنها پیام، بلکه مقدار هش را نیز تغییر دهد، یک کد هش کلیدی یا تأیید اعتبار پیام(MAC) می تواند برای امنیت بیشتر استفاده شود. بدون دانستن کلید، مهاجم نمی تواند به راحتی یا به راحتی مقدار هش کلید شده صحیح را برای یک پیام اصلاح شده محاسبه کند.

کد تصحیح خطا

هر کد تصحیح کننده خطا را می توان برای تشخیص خطا استفاده کرد. یک کد با حداقل فاصله همینگ ، d ، می تواند تا d -1 خطا را در یک کلمه رمز تشخیص دهد. استفاده از کدهای تصحیح خطا مبتنی بر حداقل فاصله برای تشخیص خطا می تواند مناسب باشد در صورتی که محدودیت سختی در حداقل تعداد خطاهای قابل شناسایی مورد نظر باشد.

کدهایی با حداقل فاصله همینگ d = 2 موارد منحط کدهای تصحیح کننده خطا هستند و می توانند برای شناسایی خطاهای منفرد استفاده شوند. بیت برابری نمونه ای از کدهای تشخیص تک خطا است.

برنامه های کاربردی

برنامه هایی که به تاخیر کم نیاز دارند (مانند مکالمات تلفنی) نمی توانند از درخواست تکرار خودکار (ARQ) استفاده کنند. آنها باید از تصحیح خطای رو به جلو (FEC) استفاده کنند. تا زمانی که یک سیستم ARQ یک خطا را کشف کند و آن را دوباره ارسال کند، داده‌های ارسال شده خیلی دیر به دست می‌آیند و قابل استفاده نیستند.

برنامه هایی که فرستنده بلافاصله اطلاعات را به محض ارسال فراموش می کند (مانند اکثر دوربین های تلویزیونی) نمی توانند از ARQ استفاده کنند. آنها باید از FEC استفاده کنند زیرا هنگامی که یک خطا رخ می دهد، داده های اصلی دیگر در دسترس نیستند.

برنامه هایی که از ARQ استفاده می کنند باید کانال بازگشتی داشته باشند . برنامه هایی که کانال بازگشتی ندارند نمی توانند از ARQ استفاده کنند.

برنامه هایی که به نرخ خطای بسیار پایین نیاز دارند (مانند انتقال پول دیجیتال) به دلیل احتمال خطاهای غیرقابل اصلاح با FEC باید از ARQ استفاده کنند.

قابلیت اطمینان و مهندسی بازرسی نیز از تئوری کدهای تصحیح خطا استفاده می کنند. [13]

اینترنت

در یک پشته TCP/IP معمولی ، کنترل خطا در سطوح مختلف انجام می شود:

  • هر فریم اترنت از تشخیص خطای CRC-32 استفاده می کند. فریم های دارای خطاهای شناسایی شده توسط سخت افزار گیرنده دور ریخته می شوند.
  • هدر IPv4 حاوی یک جمع کنترلی است که از محتویات هدر محافظت می کند. بسته‌های دارای چک‌سوم‌های نادرست در شبکه یا در گیرنده رها می‌شوند.
  • جمع کنترلی از هدر IPv6 حذف شد تا هزینه‌های پردازش در مسیریابی شبکه به حداقل برسد و به دلیل اینکه فناوری لایه پیوند فعلی تشخیص خطای کافی را ارائه می‌کند (همچنین به RFC 3819 مراجعه کنید).
  • UDP دارای یک جمع کنترل اختیاری است که اطلاعات مربوط به بار و آدرس دهی در هدرهای UDP و IP را پوشش می دهد. بسته های دارای چک جمع نادرست توسط پشته شبکه دور ریخته می شوند . جمع کنترلی تحت IPv4 اختیاری است و در IPv6 مورد نیاز است. هنگامی که حذف می شود، فرض می شود که لایه پیوند داده سطح مورد نظر محافظت از خطا را فراهم می کند.
  • TCP یک جمع‌بندی کنترلی برای محافظت از محموله و آدرس‌دهی اطلاعات در هدرهای TCP و IP فراهم می‌کند. بسته‌های دارای چک‌سوم‌های نادرست توسط پشته شبکه دور ریخته می‌شوند و در نهایت با استفاده از ARQ مجدداً ارسال می‌شوند، یا به طور صریح (مانند از طریق دست دادن سه طرفه ) یا به طور ضمنی به دلیل وقفه زمانی .

مخابرات در اعماق فضا

توسعه کدهای تصحیح خطا به دلیل رقیق شدن شدید قدرت سیگنال در فواصل بین سیاره ای و محدودیت در دسترس بودن نیرو در کاوشگرهای فضایی، به شدت با تاریخ ماموریت های اعماق فضا همراه بود. در حالی که مأموریت‌های اولیه داده‌های خود را بدون کد ارسال می‌کردند، از سال 1968، تصحیح خطای دیجیتال در قالب کدهای کانولوشنی (با رمزگشایی کمتر از حد بهینه) و کدهای رید-مولر اجرا شد. [14] کد رید-مولر به خوبی با صدایی که فضاپیما در معرض آن قرار می‌گرفت (تقریباً مطابق با منحنی زنگ ) بود، و برای فضاپیمای مارینر و در مأموریت‌های بین سال‌های 1969 و 1977 استفاده شد.

ماموریت های وویجر 1 و وویجر 2 که در سال 1977 آغاز شدند، برای ارائه تصویربرداری رنگی و اطلاعات علمی از مشتری و زحل طراحی شدند. [15] این منجر به افزایش نیازمندی‌های کدگذاری شد، و بنابراین، فضاپیما توسط کدهای کانولوشن (به‌طور بهینه با رمزگشایی ویتربی ) پشتیبانی می‌شد که می‌توانست با یک کد Golay خارجی (24،12،8) الحاق شود . کشتی وویجر 2 علاوه بر این از اجرای کد رید-سولومون پشتیبانی می‌کرد . کد رید-سولومون-ویتربی (RSV) به هم پیوسته امکان تصحیح خطای بسیار قدرتمندی را فراهم کرد و سفر طولانی فضاپیما به اورانوس را ممکن ساخت.و نپتون . پس از ارتقای سیستم ECC در سال 1989، هر دو صنعت از کدگذاری V2 RSV استفاده کردند.

کمیته مشورتی سیستم‌های داده فضایی در حال حاضر استفاده از کدهای تصحیح خطا با عملکردی مشابه کد RSV وویجر 2 را به عنوان حداقل توصیه می‌کند. کدهای الحاقی به طور فزاینده ای در مأموریت های فضایی از بین می روند و با کدهای قدرتمندتر مانند کدهای توربو یا کدهای LDPC جایگزین می شوند .

انواع مختلف فضاهای عمیق و مأموریت‌های مداری که انجام می‌شوند نشان می‌دهند که تلاش برای یافتن یک سیستم تصحیح خطای یک‌اندازه برای همه مشکلی مداوم خواهد بود. برای مأموریت‌های نزدیک به زمین، ماهیت نویز در کانال ارتباطی با چیزی که یک فضاپیما در یک مأموریت بین سیاره‌ای تجربه می‌کند، متفاوت است. علاوه بر این، با افزایش فاصله فضاپیما از زمین، مشکل تصحیح نویز دشوارتر می شود.

پخش ماهواره ای

تقاضا برای پهنای باند فرستنده ماهواره ای به رشد خود ادامه می دهد، که ناشی از تمایل به ارائه تلویزیون (شامل کانال های جدید و تلویزیون با کیفیت بالا ) و داده های IP است. در دسترس بودن ترانسپوندر و محدودیت های پهنای باند این رشد را محدود کرده است. ظرفیت ترانسپوندر توسط طرح مدولاسیون انتخابی و نسبت ظرفیت مصرف شده توسط FEC تعیین می شود.

ذخیره سازی داده ها

کدهای تشخیص و تصحیح خطا اغلب برای بهبود قابلیت اطمینان رسانه ذخیره سازی داده ها استفاده می شود. [16] یک مسیر برابری قادر به تشخیص خطاهای تک بیتی در اولین ذخیره سازی داده نوار مغناطیسی در سال 1951 وجود داشت. کد مستطیلی بهینه مورد استفاده در نوارهای ضبط کدگذاری شده گروهی نه تنها خطاهای تک بیتی را شناسایی می کند، بلکه تصحیح می کند. برخی از فرمت‌های فایل ، به‌ویژه فرمت‌های بایگانی ، شامل یک چک‌سوم (اغلب CRC32 ) برای تشخیص خرابی و برش هستند و می‌توانند از فایل‌های اضافی یا برابری برای بازیابی بخش‌هایی از داده‌های خراب استفاده کنند. کدهای Reed-Solomon در لوح های فشرده استفاده می شودبرای اصلاح خطاهای ناشی از خراش.

هارد دیسک های مدرن از کدهای Reed-Solomon برای شناسایی و تصحیح خطاهای جزئی در خواندن بخش ها و بازیابی اطلاعات خراب از بخش های خراب و ذخیره آن داده ها در بخش های یدکی استفاده می کنند. [17] سیستم‌های RAID از انواع تکنیک‌های تصحیح خطا برای بازیابی اطلاعات زمانی که هارد دیسک به طور کامل خراب می‌شود، استفاده می‌کنند. سیستم‌های فایلی مانند ZFS یا Btrfs ، و همچنین برخی از پیاده‌سازی‌های RAID ، از پاک‌سازی و بازیابی داده‌ها پشتیبانی می‌کنند، که اجازه می‌دهد بلوک‌های بد شناسایی و (امیدواریم) قبل از استفاده بازیابی شوند. [18]داده‌های بازیابی شده ممکن است دقیقاً در همان مکان فیزیکی دوباره نوشته شوند، تا بلوک‌ها در جای دیگری روی همان سخت‌افزار ذخیره شوند، یا ممکن است داده‌ها روی سخت‌افزار جایگزین بازنویسی شوند.

خطا در تصحیح حافظه

حافظه با دسترسی تصادفی پویا (DRAM) ممکن است با تکیه بر کدهای تصحیح کننده خطا، محافظت قوی تری در برابر خطاهای نرم ایجاد کند. چنین حافظه‌های تصحیح‌کننده خطا، که به‌عنوان حافظه‌های محافظت‌شده با ECC یا EDAC شناخته می‌شوند ، به‌ویژه برای کاربردهای حیاتی مانند محاسبات علمی، مالی، پزشکی و غیره و همچنین کاربردهای فرازمینی به دلیل افزایش تشعشعات در فضا، مطلوب است.

کنترل‌کننده‌های حافظه اصلاح‌کننده خطا به طور سنتی از کدهای Hamming استفاده می‌کنند ، اگرچه برخی از افزونگی مدولار سه‌گانه استفاده می‌کنند . Interleaving اجازه می دهد تا اثر یک پرتو کیهانی منفرد را که به طور بالقوه چندین بیت همسایه فیزیکی را در چند کلمه با مرتبط کردن بیت های همسایه به کلمات مختلف برهم می زند، توزیع کند. تا زمانی که یک اختلال تک رویدادی (SEU) از آستانه خطا (مثلاً یک خطا) در هر کلمه خاص بین دسترسی ها تجاوز نکند، می توان آن را تصحیح کرد (مثلاً با یک کد تصحیح خطای تک بیتی)، و ممکن است توهم یک سیستم حافظه بدون خطا حفظ شود. [19]

علاوه بر سخت‌افزاری که ویژگی‌های مورد نیاز برای عملکرد حافظه ECC را فراهم می‌کند، سیستم‌های عامل معمولاً دارای امکانات گزارش‌گیری مرتبطی هستند که برای ارائه اعلان‌ها هنگام بازیابی شفاف خطاهای نرم‌افزاری استفاده می‌شوند. یک مثال، زیرسیستم EDAC هسته لینوکس (که قبلا با نام Bluesmoke شناخته می شد ) است که داده ها را از اجزای فعال شده با بررسی خطا در داخل یک سیستم کامپیوتری جمع آوری می کند. علاوه بر جمع‌آوری و گزارش رویدادهای مربوط به حافظه ECC، از سایر خطاهای جمع‌بندی چک نیز پشتیبانی می‌کند، از جمله خطاهای شناسایی شده در گذرگاه PCI . [20] [21] [22] چند سیستم [ مشخص کنید ] نیز پشتیبانی می کنندپاکسازی حافظه برای شناسایی و تصحیح خطاها زودتر از زمان غیرقابل بازیابی.

همچنین مشاهده کنید

منابع

  1. ^ a b "Masorah". دایره المعارف یهود .
  2. ^ پراتیکو، گری دی. پلت، مایلز وی وان (2009). مبانی دستور زبان عبری کتاب مقدس: ویرایش دوم . زوندروان. شابک 978-0-310-55882-8.
  3. مونس، ویلیام دی (2007). یونانی برای بقیه ما: استفاده از ابزار یونانی بدون تسلط بر زبان های کتاب مقدس . زوندروان. پ. 289. شابک 978-0-310-28289-1.
  4. مشنه تورات ، تفیلین، مزوزه، و سفر تورات، ۱: ۲. نمونه ترجمه انگلیسی: Eliyahu Touger . تورات میشنه رامبام . شرکت انتشارات مزنعیم .
  5. برایان ام. فاگان (۵ دسامبر ۱۹۹۶). "طومارهای دریای مرده". همراه باستان شناسی آکسفورد . انتشارات دانشگاه آکسفورد شابک 0195076184.
  6. تامپسون، توماس ام (1983)، از کدهای تصحیح خطا از طریق بسته‌بندی‌های کره تا گروه‌های ساده ، تک‌نگاشت‌های ریاضی کاروس (#21)، انجمن ریاضی آمریکا، ص. vii، ISBN 0-88385-023-0
  7. شانون، CE (1948)، "نظریه ریاضی ارتباطات"، مجله فنی سیستم بل ، 27 (3): 379–423، doi : 10.1002 / j.1538-7305.1948.tb01338.x .x .dml3c . 101429 , PMID 9230594 
  8. Golay، Marcel JE (1949)، "یادداشت هایی در مورد کدگذاری دیجیتال"، Proc.IRE (IEEE) ، 37 : 657
  9. ^ گوپتا، ویکاس؛ Verma, Chanderkant (نوامبر 2012). "تشخیص و تصحیح خطا: مقدمه". مجله بین المللی تحقیقات پیشرفته در علوم کامپیوتر و مهندسی نرم افزار . 2 (11). S2CID 17499858 . 
  10. ^ a b A. J. McAuley، ارتباطات پهن باند قابل اعتماد با استفاده از کد تصحیح پاک کردن انفجار ، ACM SIGCOMM، 1990.
  11. ^ فرانک ون گرون. "اعداد (و سایر ایستگاه های مرموز)" . بازیابی شده در 12 مارس 2012 .
  12. گری کاتلک (25 اوت 2010). "ایستگاه شماره های اسرارآمیز روسیه پس از 20 سال پخش را تغییر داد" . Gizmodo . بازیابی شده در 12 مارس 2012 .
  13. ^ بن گال I.; Herer Y.; راز تی (1382). "رویه بازرسی خود اصلاحی تحت خطاهای بازرسی" (PDF) . معاملات IIE IIE Transactions on Quality and Reliability, 34(6), pp. 529-540. بایگانی شده از نسخه اصلی (PDF) در 2013-10-13 . بازیابی شده در 2014-01-10 .
  14. ^ K. Andrews et al., The Development of Turbo and LDPC Codes for Deep-Space Applications , Proceedings of the IEEE, Vol. 95، شماره 11، نوامبر 2007.
  15. ^ هافمن، ویلیام کری؛ پلس، ورا اس. (2003). مبانی کدهای تصحیح خطا . انتشارات دانشگاه کمبریج شابک 978-0-521-78280-7.
  16. کورتاس، اروزان م. واسیک، بان (2018-10-03). تکنیک های کنترل خطای پیشرفته برای سیستم های ذخیره سازی داده ها . مطبوعات CRC. شابک 978-1-4200-3649-7.[ لینک مرده دائمی ]
  17. اسکات آ. مولتون. "هارد دیسک من مرد" . بایگانی شده از نسخه اصلی در 2008-02-02.
  18. ^ کیائو، ژی؛ فو، آهنگ; چن، هسینگ-بونگ؛ سیل مایر، بردلی (2019). "ساخت سیستم های ذخیره سازی با کارایی بالا: یک مطالعه تجربی و تحلیلی". کنفرانس بین المللی IEEE 2019 در محاسبات خوشه ای (CLUSTER) : 1-10. doi : 10.1109/CLUSTER.2019.8891006 . شابک 978-1-7281-4734-5. S2CID  207951690 .
  19. «استفاده از StrongArm SA-1110 در رایانه داخلی نانوماهواره» . مرکز فضایی Tsinghua، دانشگاه Tsinghua ، پکن. بایگانی شده از نسخه اصلی در 2011-10-02 . بازیابی شده در 2009-02-16 .
  20. ^ جف لیتون. "تشخیص و تصحیح خطا" . مجله لینوکس . بازیابی 2014-08-12 .
  21. «پروژه EDAC» . bluesmoke.sourceforge.net . بازیابی 2014-08-12 .
  22. «Documentation/edac.txt» . اسناد هسته لینوکس kernel.org _ 2014-06-16. بایگانی شده از نسخه اصلی در 2009-09-05 . بازیابی 2014-08-12 .

ادامه مطلب

پیوندهای خارجی