بیت برابری

از ویکیپدیا، دانشنامه آزاد
رفتن به ناوبری پرش به جستجو
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 تنظیم می شود و تعداد کل وقایع 1s در کل مجموعه (از جمله بیت برابری) را یک عدد زوج می کند. اگر تعداد 1s در مجموعه ای از بیت ها از قبل زوج باشد ، مقدار بیت برابری 0 است. در مورد برابری فرد ، کدگذاری برعکس می شود. برای مجموعه ای از بیت ها ، اگر تعداد بیت ها با مقدار 1 زوج باشد ، مقدار بیت برابری بر 1 تنظیم می شود و تعداد کل 1s در کل مجموعه (از جمله بیت برابری) یک عدد فرد است. اگر تعداد بیت هایی با مقدار 1 فرد باشد ، تعداد در حال حاضر فرد است ، بنابراین مقدار بیت برابری 0 است. حتی برابری مورد خاصی از یک بررسی افزونگی چرخه ای (CRC) است ، که در آن CRC 1 بیتی توسط اینچند جمله ای x +1.

اگر کمی در یک نقطه در غیر این صورت به یک بیت توازن اختصاص داده شده وجود دارد اما برای برابری استفاده نمی شود، می توان آن را به عنوان یک اشاره برابری علامت کمی اگر بیت توازن است که همیشه 1، و یا یک کمی فضای برابری اگر بیت همیشه 0 در چنین مواردی که مقدار بیت ثابت است ، ممکن است آن را بیت برابری چوب بنامیم حتی اگر عملکرد آن هیچ ارتباطی با برابری نداشته باشد. [2] عملکرد چنین بیت هایی با طراحی سیستم متفاوت است ، اما نمونه هایی از توابع برای چنین بیت هایی شامل مدیریت زمان یا شناسایی یک بسته به عنوان داده یا اهمیت آدرس است. [3] اگر مقدار بیت واقعی آن به عملکرد آن ربطی ندارد ، بیت به عنوان یک اصطلاح مهم نیست . [4]

برابری

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

در فناوری اطلاعات برابری به یکنواختی یا عجیب بودن ، با توجه به مجموعه ای از ارقام دوتایی ، از تعداد آن بیت ها با مقدار یک اشاره می کند. از آنجا که برابری با وضعیت هر یک از بیت ها تعیین می شود ، این ویژگی برابری - وابسته به همه بیت ها و تغییر مقدار آن از برابری زوج به فرد در صورت تغییر هر بیت - امکان استفاده از آن در طرح های تشخیص و اصلاح خطا را فراهم می کند. به

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

در علوم کامپیوتر نوار برابری یا دیسک برابری در یک آرایه RAID تصحیح خطا را ارائه می دهد . بیت های برابری با نرخ یک بیت برابری در n بیت نوشته می شوند ، جایی که n تعداد دیسک های آرایه است. هنگامی که خطای خواندن رخ می دهد ، هر بیت در منطقه خطا از مجموعه n بیت خود مجددا محاسبه می شود. به این ترتیب ، استفاده از یک بیت برابری "redunancy" برای منطقه ای از اندازه یک بیت تا اندازه یک دیسک ایجاد می کند. مشاهده آرایه وقفه در هنگام از دیسک های مستقل § زیر کلیک کنید.

در الکترونیک ، کدگذاری داده ها با برابری می تواند بسیار کارآمد باشد ، زیرا دروازه های XOR معادل یک بیت چک است که یک برابری برابر ایجاد می کند ، و طراحی منطق XOR به راحتی به هر تعداد ورودی مقیاس می یابد. ساختارهای XOR و AND بخش عمده ای از مدارهای یکپارچه را تشکیل می دهند.

تشخیص خطا

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

چک بیت برابری گاهی برای انتقال کاراکترهای ASCII استفاده می شود که دارای 7 بیت هستند و بیت 8 را به عنوان بیت برابری باقی می گذارد.

به عنوان مثال ، بیت برابری را می توان به صورت زیر محاسبه کرد. فرض کنید آلیس و باب در حال برقراری ارتباط هستند و آلیس می خواهد پیام ساده 4 بیتی 1001 را به باب ارسال کند.

نوع برابری بیت سناریوی انتقال موفق
حتی برابری

آلیس می خواهد انتقال دهد: 1001

آلیس مقدار بیت برابری را محاسبه می کند: 1+0+0+1 (حالت 2) = 0

آلیس بیت برابری را اضافه می کند و ارسال می کند: 10010

باب دریافت می کند: 10010

باب برابری را محاسبه می کند: 1+0+0+1+0 (حالت 2) = 0

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

برابری فرد

آلیس می خواهد انتقال دهد: 1001

آلیس مقدار بیت برابری را محاسبه می کند: 1+0+0+1 (حالت 2) = 0

آلیس بیت برابری را اضافه می کند و ارسال می کند: 1001 1

باب دریافت می کند: 10011

باب برابری کلی را محاسبه می کند: 1+0+0+1+1 (حالت 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 از برابری برای تشخیص خطاهای انتقال استفاده می کنند و بسیاری از حافظه های ذخیره سازی دستورالعمل ریزپردازنده شامل حفاظت از برابری می شوند. از آنجا که داده های I-cache فقط یک کپی از حافظه اصلی هستند ، در صورت خراب شدن می توان آنها را نادیده گرفت و دوباره دریافت کرد.

در انتقال داده های سریال ، یک قالب معمول 7 بیت داده ، یک بیت برابر و یک یا دو بیت توقف است . این قالب همه کاراکترهای 7 بیتی ASCII را در یک بایت 8 بیتی جای می دهد. فرمت های دیگر امکان پذیر است ؛ 8 بیت داده به علاوه یک بیت برابری می تواند تمام مقادیر بایت 8 بیتی را منتقل کند.

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

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

آرایه RAID

داده های برابری توسط آرایه های RAID ( آرایه مازاد بر دیسک های مستقل/ارزان ) برای دستیابی به افزونگی استفاده می شود . اگر یک درایو در آرایه خراب شود ، داده های باقی مانده در درایوهای دیگر را می توان با داده های برابری (با استفاده از تابع Boolean XOR ) ترکیب کرد تا داده های از دست رفته را بازسازی کند.

به عنوان مثال ، فرض کنید دو درایو در یک آرایه RAID 5 سه درایو حاوی اطلاعات زیر بود:

رانندگی 1: 01101101
درایو 2: 11010100

برای محاسبه داده های برابری برای دو درایو ، XOR روی داده های آنها انجام می شود:

01101101
  XOR     11010100
10111001

داده های برابری حاصل ، 10111001 ، سپس در Drive 3 ذخیره می شود.

در صورت خرابی هر یک از سه درایو ، محتویات درایو خراب را می توان با قرار دادن داده های درایوهای باقی مانده در همان عملیات XOR در درایو جایگزین بازسازی کرد. در صورت خرابی درایو 2 ، داده های آن را می توان با استفاده از نتایج XOR محتویات دو درایو باقی مانده ، Drive 1 و Drive 3 بازسازی کرد:

رانندگی 1: 01101101
رانندگی 3: 10111001

به شرح زیر است:

10111001
  XOR     01101101
11010100

در نتیجه محاسبه XOR محتویات Drive 2 به دست می آید. 11010100 سپس در Drive 2 ذخیره می شود و آرایه را به طور کامل تعمیر می کند.

منطق XOR همچنین معادل برابری است (زیرا یک XOR b XOR c XOR ... ممکن است به عنوان XOR ( a ، b ، c ، ...) در نظر گرفته شود که یک عملگر n-ary است که اگر و فقط اگر تعداد عجیب و غریبی از استدلال ها درست است). بنابراین همان مفهوم XOR فوق به طور مشابه برای آرایه های بزرگتر RAID با برابری و با استفاده از هر تعداد دیسک کاربرد دارد. در مورد یک آرایه RAID 3 از 12 درایو ، 11 درایو در محاسبه XOR نشان داده شده در بالا شرکت می کنند و مقداری را تولید می کنند که سپس در درایو برابری اختصاصی ذخیره می شود.

در RAID-DP از افزونه ها و تغییرات مکانیسم بیت برابری "double" ، "dual" یا "diagonal" استفاده می شود .

تاریخچه

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

از برابری حداقل در برخی از سیستم های ورود داده کاغذ ( نوار پانچ ) (که قبل از سیستم های نوار مغناطیسی بود) استفاده شد. در سیستم های فروخته شده توسط شرکت انگلیسی ICL (ICT سابق) نوار کاغذی به عرض 1 اینچ (25 میلی متر) دارای 8 موقعیت سوراخ بود که هشتمین مورد برای برابری بود. 7 موقعیت برای داده ها استفاده شد ، به عنوان مثال ، ASCII 7 بیتی. موقعیت هشتم بسته به تعداد حفره های داده ایجاد شده ، یک سوراخ در آن ایجاد کرد.

همچنین ببینید

مراجع

  1. ^ Ziemer، RodgerE .؛ ترانتر ، ویلیام اچ. اصول ارتباط: سیستم ها ، مدولاسیون و سر و صدا (ویرایش هفتم). هوبوکن ، نیوجرسی شابک 9781118078914به OCLC  856647730 .
  2. ^ "تفاوت بین استفاده از علامت یا برابری فضا و برابری-هیچ" چیست .[ منبع غیرقابل اعتماد؟ ]
  3. ^ "هدف از برابری Stick چیست؟" به
  4. ^ "ارتباط سریال" ، شنبه خلاصه ، بازیابی 2020/03/23

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