بیت برابری
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 |
یک بیت برابری یا بیت چک ، بیتی به رشته کد باینری اضافه می شود . بیت های برابری شکل ساده ای از کد تشخیص خطا هستند . بیتهای برابری عموماً برای کوچکترین واحدهای یک پروتکل ارتباطی، معمولاً هشت بیتی (بایت) اعمال میشوند ، اگرچه میتوانند به طور جداگانه برای کل رشته پیام از بیتها نیز اعمال شوند.
بیت برابری تضمین می کند که تعداد کل 1 بیت در رشته زوج یا فرد است . [1] بر این اساس، دو نوع بیت برابری وجود دارد: بیت برابری زوج و بیت برابری فرد . در مورد برابری زوج، برای مجموعه معینی از بیت ها، بیت هایی که مقدار آنها 1 است شمرده می شوند. اگر این تعداد فرد باشد، مقدار بیت برابری برابر با 1 تنظیم می شود و تعداد کل وقوع 1 ها در کل مجموعه (شامل بیت برابری) به عدد زوج تبدیل می شود. اگر تعداد 1s در یک مجموعه معین از بیت ها از قبل زوج باشد، مقدار بیت برابری 0 است. در مورد برابری فرد، کدگذاری معکوس می شود. برای یک مجموعه معین از بیت ها، اگر تعداد بیت های با مقدار 1 زوج باشد، مقدار بیت برابری برابر با 1 تنظیم می شود و تعداد کل 1 ها در کل مجموعه (شامل بیت برابری) یک عدد فرد است. اگر تعداد بیتهای با مقدار 1 فرد باشد، شمارش از قبل فرد است، بنابراین مقدار بیت برابری 0 است. برابری زوج مورد خاصی از بررسی افزونگی چرخهای (CRC) است، که در آن CRC 1 بیتی توسط چند جمله ای x +1.
برابری
در ریاضیات، برابری میتواند به زوج بودن یا عجیب بودن یک عدد صحیح اشاره داشته باشد، که وقتی به شکل دودویی آن نوشته میشود ، فقط با بررسی بیت کماهمیت آن میتوان آن را تعیین کرد .
در فناوری اطلاعات، برابری به زوج یا عجیب بودن، با توجه به مجموعهای از ارقام دودویی، تعداد آن بیتها با مقدار یک اشاره دارد. از آنجایی که برابری با وضعیت هر یک از بیت ها تعیین می شود، این ویژگی برابری - وابسته بودن به همه بیت ها و تغییر مقدار آن از زوج به برابری فرد در صورت تغییر هر یک از بیت ها - امکان استفاده از آن در طرح های تشخیص و تصحیح خطا را فراهم می کند. .
در مخابرات، برابری که در برخی از پروتکل ها به آن اشاره می شود، برای تشخیص خطا است . رسانه انتقال در هر دو نقطه پایانی برای توافق بر سر برابری فرد یا زوج از پیش تنظیم شده است. برای هر رشته از بیت های آماده برای انتقال (بسته داده)، فرستنده بیت برابری آن را محاسبه می کند، صفر یا یک، تا آن را با برابری توافق شده، زوج یا فرد مطابقت دهد. گیرنده آن بسته ابتدا بررسی می کند که برابری بسته به عنوان یک کل مطابق با توافق نامه از پیش تعیین شده است، سپس اگر خطای برابری در آن بسته وجود داشته باشد، درخواست ارسال مجدد آن بسته را می کند.
در علوم کامپیوتر، نوار برابری یا دیسک برابری در RAID، تصحیح خطا را ارائه می دهد . بیت های برابری با نرخ یک بیت برابری در هر n بیت نوشته می شوند که n تعداد دیسک های موجود در آرایه است. هنگامی که یک خطای خواندن رخ می دهد، هر بیت در منطقه خطا از مجموعه n بیت آن دوباره محاسبه می شود. به این ترتیب، استفاده از یک بیت برابری برای یک منطقه از اندازه یک بیت به اندازه یک دیسک، "اضافه" ایجاد می کند. § آرایه اضافی دیسک های مستقل را در زیر ببینید.
در الکترونیک، رمزگذاری دادهها با برابری میتواند بسیار کارآمد باشد، زیرا دروازههای XOR معادل یک بیت بررسی است که برابری یکنواخت را ایجاد میکند، و طراحی منطقی XOR به راحتی به هر تعداد ورودی مقیاس میشود. ساختارهای XOR و AND بخش عمده ای از مدارهای مجتمع را تشکیل می دهند.
تشخیص خطا
اگر تعدادی بیت (از جمله بیت برابری) اشتباه ارسال شود ، بیت برابری نادرست خواهد بود، بنابراین نشان می دهد که یک خطای برابری در انتقال رخ داده است. بیت برابری فقط برای تشخیص خطاها مناسب است. نمی تواند هیچ خطایی را تصحیح کند ، زیرا هیچ راهی برای تعیین بیت خاصی که خراب است وجود ندارد. داده ها باید به طور کامل دور ریخته شوند و از ابتدا دوباره ارسال شوند . در یک رسانه انتقال پر سر و صدا، انتقال موفقیت آمیز می تواند زمان زیادی طول بکشد یا حتی هرگز اتفاق نیفتد. با این حال، برابری این مزیت را دارد که فقط از یک بیت استفاده می کند و برای تولید فقط به تعدادی گیت XOR نیاز دارد . برای نمونه ای از کد تصحیح خطا، کد Hamming را ببینید .
بررسی بیت برابری گاهی اوقات برای انتقال کاراکترهای ASCII استفاده می شود که دارای 7 بیت هستند و بیت هشتم را به عنوان بیت برابری باقی می گذارند.
به عنوان مثال، بیت برابری را می توان به صورت زیر محاسبه کرد. فرض کنید آلیس و باب در حال ارتباط هستند و آلیس می خواهد پیام ساده 4 بیتی 1001 را برای باب ارسال کند.
نوع برابری بیت | سناریوی انتقال موفق |
---|---|
حتی برابری |
آلیس می خواهد انتقال دهد: 1001 و 1011 آلیس مقدار بیت برابری را محاسبه می کند: آلیس بیت برابری را اضافه می کند و می فرستد: باب: 10010 و 10111 را دریافت می کند باب برابری را محاسبه می کند: باب پس از مشاهده نتیجه یکنواخت مورد انتظار، انتقال صحیح را گزارش می دهد. |
برابری عجیب و غریب |
آلیس می خواهد انتقال دهد: 1001 و 1011 آلیس مقدار بیت برابری را محاسبه می کند:
آلیس بیت برابری را اضافه می کند و می فرستد: باب: 10011 و 10110 را دریافت می کند باب برابری کلی را محاسبه می کند: باب پس از مشاهده نتیجه عجیب و غریب مورد انتظار، انتقال صحیح را گزارش می کند. |
این مکانیسم تشخیص خطاهای تک بیتی را امکان پذیر می کند، زیرا اگر یک بیت به دلیل نویز خط برگردانده شود، تعداد اشتباهی از یک بیت در داده های دریافتی وجود خواهد داشت. در دو مثال بالا، مقدار برابری محاسبه شده باب با بیت برابری در مقدار دریافتی آن مطابقت دارد، که نشان میدهد هیچ خطای تک بیتی وجود ندارد. مثال زیر را با خطای انتقال در بیت دوم با استفاده از XOR در نظر بگیرید:
نوع خطای برابری بیت | سناریوی انتقال ناموفق |
---|---|
حتی برابری
خطا در بیت دوم |
آلیس می خواهد انتقال دهد: 1001
آلیس مقدار بیت برابری را محاسبه می کند: 1^0^0^1 = 0 آلیس بیت برابری را اضافه می کند و می فرستد: 10010 ... خطای انتقال... باب: 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 ) تولید و بررسی میشود و در هنگام دریافت، نتیجه از طریق یک پردازشگر مانند CPU (و همچنین، برای مثال، سیستم عامل ) در دسترس قرار میگیرد. بیت وضعیت در یک ثبت سخت افزار در سخت افزار رابط . بازیابی خطا معمولاً با ارسال مجدد داده ها انجام می شود که جزئیات آن معمولاً توسط نرم افزار (مانند روتین های ورودی/خروجی سیستم عامل) انجام می شود.
وقتی تعداد کل بیتهای ارسالی، از جمله بیت برابری، زوج باشد، برابری فرد این مزیت را دارد که هر دو الگوی همه صفر و یکها به عنوان خطا شناسایی میشوند. اگر تعداد کل بیت ها فرد باشد، تنها یکی از الگوها به عنوان خطا تشخیص داده می شود و انتخاب می تواند بر اساس خطای رایج تر انجام شود.
آرایه RAID
داده های برابری توسط آرایه های RAID ( آرایه اضافی از دیسک های مستقل/ارزان ) برای دستیابی به افزونگی استفاده می شود . اگر یک درایو در آرایه از کار بیفتد، دادههای باقیمانده روی درایوهای دیگر را میتوان با دادههای برابری (با استفاده از تابع XOR بولی ) برای بازسازی دادههای از دست رفته ترکیب کرد.
به عنوان مثال، فرض کنید دو درایو در یک آرایه RAID 4 سه درایو حاوی داده های زیر است:
درایو 1: | 01101101 |
درایو 2: | 11010100 |
برای محاسبه داده های برابری برای دو درایو، یک XOR روی داده های آنها انجام می شود:
01101101 | |
XOR | 11010100 |
10111001 |
سپس داده برابری حاصل، 10111001 ، در Drive 3 ذخیره میشود.
اگر هر یک از سه درایو از کار بیفتد، محتویات درایو خراب را میتوان با قرار دادن دادههای درایوهای باقیمانده به همان عملیات XOR روی یک درایو جایگزین بازسازی کرد. اگر درایو 2 از کار بیفتد، داده های آن را می توان با استفاده از نتایج XOR محتویات دو درایو باقی مانده، درایو 1 و درایو 3، بازسازی کرد:
درایو 1: | 01101101 |
درایو 3: | 10111001 |
به شرح زیر:
01101101 | رانندگی 1 | |
XOR | 10111001 | رانندگی 3 |
11010100 | درایو 2 بازسازی شد |
نتیجه آن محاسبه XOR محتویات Drive 2 را به دست میدهد. سپس 11010100 در Drive 2 ذخیره می شود و آرایه را به طور کامل تعمیر می کند.
منطق XOR نیز معادل برابری زوج است (زیرا یک XOR b XOR c XOR ... ممکن است به عنوان XOR ( a , b , c ,...) در نظر گرفته شود که یک عملگر n-اری است که اگر و فقط اگر درست است تعداد فرد آرگومان درست است). بنابراین همان مفهوم XOR بالا به طور مشابه برای آرایه های RAID بزرگتر با برابری، با استفاده از هر تعداد دیسک اعمال می شود. در مورد یک آرایه RAID 3 متشکل از 12 درایو، 11 درایو در محاسبه XOR که در بالا نشان داده شده است شرکت می کنند و مقداری را تولید می کنند که سپس در درایو برابری اختصاصی ذخیره می شود.
افزونه ها و تغییرات در مکانیسم بیت برابری برابری "دو"، "دوگانه" یا "مورب" در RAID-DP استفاده می شود .
تاریخچه
یک مسیر برابری در اولین ذخیرهسازی دادههای نوار مغناطیسی در سال 1951 وجود داشت. برابری در این شکل که در چندین سیگنال موازی اعمال میشود، به عنوان بررسی افزونگی عرضی شناخته میشود . این را می توان با برابری محاسبه شده بر روی چندین بیت ارسال شده در یک سیگنال واحد، یک بررسی افزونگی طولی ترکیب کرد . در یک گذرگاه موازی، یک بیت بررسی افزونگی طولی در هر سیگنال موازی وجود دارد.
برابری همچنین حداقل در برخی از سیستمهای ورود دادههای نوار کاغذی ( نوار پانچ ) (که قبل از سیستمهای نوار مغناطیسی بودند) استفاده شد. در سیستمهای فروخته شده توسط شرکت بریتانیایی ICL (ICT سابق) نوار کاغذی با عرض 1 اینچ (25 میلیمتر) دارای 8 حفره بود که هشتمین آن برای برابری بود. 7 موقعیت برای داده ها استفاده شد، به عنوان مثال، ASCII 7 بیتی. موقعیت هشتم بسته به تعداد حفره های داده پانچ شده، سوراخی در آن سوراخ شده بود.
همچنین ببینید
مراجع
- ^ زیمر، راجر ای. ترانتر، ویلیام اچ. (17 مارس 2014). اصول ارتباطات: سیستم ها، مدولاسیون و نویز (ویرایش هفتم). هوبوکن، نیوجرسی شابک 9781118078914. OCLC 856647730.
{{cite book}}
: CS1 maint: مکان ناشر موجود نیست ( پیوند )
لینک های خارجی
- روش های مختلف تولید بیت برابری، در میان سایر عملیات بیت