Бит за парност

Од Википедија — слободната енциклопедија
Прејди на: содржини, барај

Шаблон:Ref improve

7 битови податок
(број на единици) 8 битови вклучувајќи парност
парна непарна
0000000 0 00000000 00000001
1010001 3 10100011 10100010
1101001 4 11010010 11010011
1111111 7 11111111 11111110

Бит за парност, или бит за проверка е бит added to the end of a string of binary code додаден на крајот на низа бинарен код кој покажува дали бројот на битови во низата кои имаат вредност еден е парен или непарен. Битовите за парност се користат како наједноставна форма на кодови за детектирање грешка.

Има две врсти на битови за парност: битови за парна парност и битови за непарна парност.

Во случајот на парна парност, бројот на битови чија вредност е 1 во даден сет се бројат. Ако тој збир е непарен, вредноста на битот за парност се поставува ба 1, правејќи го збирот на единици парен број. Ако бројот на единици во дадениот сет е веќе парен, тогаш вредноста на битот за парност останува 0.

Во случајот на непарна парност, ситуацијата е обратна. Ако сумата на битови чија вредност е 1 е непарена, тогаш вредноста на битот за парност се поставува на нула. Ако сумата на битови со вредност 1 е парна, вредноста на битот за парност се поставува на 1 правејќи го збирот на единици непарен број.

Парна парност е специјален случај на cyclic redundancy check (CRC), каде што еднобитниот CRC е генериран од страна на полиномот х+1.

Ако битот за парност е присутен, но не се користи, тој може да биде наведен како знак за парност (кога битот за парност е секогаш 1) или празна парност (битот за парност е секогаш 0).

Парност[уреди | уреди извор]

Во математиката, парност се однесува на парноста или непарноста на еден цел број, што во бинарен код е утврдено само од најмалку значајниот бит. Во телекомуникации и компјутери, парноста се однесува на парноста или непарноста на број на битови со вредност еден во даден сет од битови и на тој начин е утврдена од вредноста на сите битови. Може да се предмета со примена на XOR сума на битовите, со 0 за парна парност и 1 за непарна парност. Оваа зависност на сите битови и менувањето на вредноста доколку еден бит се промени овозможува да биде искористена во шемите за детекција на грешка.

Детекција на грешка[уреди | уреди извор]

Ако непарен броја на битови ( вклучувајќи го и битот за парност) се грешно пренесени, битот за парност ќе биде грешен, покажувајќи на тоа дека се случила грешка за парност при преносот. Битот за парност е соодветен замо за детекција на грешка, тој неможе да поправи некоја грешка поради тоа што не постои начин да се воочи точно кој бит е грешен. Поракате мора да биде целосно отфрлена и да биде препратена од почеток. Во преносен медиум со шум, успешен пренос може да одземе многу време или никогаш да не се случи. Како и да е, парноста ја има предноста што користи само еден бит и само бара голем број на XOR порти за да се генерира. Хаминговиот код е пример за код за корекција на грешки.

Битот за парност се користи повремено за пренос на ASCII карактери кои имаат 7 бити, оставајќи го осмиот бит како бит за парност.

На пример, битот за парност може да се пресмета како што следува, претпоставувајќи дека испраќаме едноставна 4-битнс вредност 1001.

Тип на бит за парност Сценарио за успешен пренос
Парна парност

А сака да прати: 1001

А ја пресметува вредноста на битот за парност: 1+0+0+1 (mod 2) = 0

А додава бит за парност и праќа: 10010

Б прима: 10010

Б пресметува парност : 1+0+0+1+0 (mod 2) = 0

Б пријавува точен пренос по набљудувањето на очекуваниот парен резултат.

Прна парност

А сака да прати: 1001

А ја пресметува вредноста на битот за парност: 1+0+0+1 + 1 (mod 2) = 1

А додава бит за парност и праќа: 10011

B прима: 10011

B пресметува парност: 1+0+0+1+1 (mod 2) = 1

Б пријавува точен пренос по набљудувањето на очекуваниот парен резултат.


Овој механизам овозможува детекција на грешка во еден бит, поради тоа што ако еден бит се сменил во текот на препраќањето поради шум, ќе има грешен број на единици во примениот податок. Во двата примери горе, пресметаната вредност за парност од страна на Б се совпаѓа со примената вредност , а тоа покажува дека нема грешка во еден бит. Разгледајте го следниот пример со грешка при пренос во вториот бит користејќи исклучиво ИЛИ:

Тип на грешка Сценарио за неуспешен пренос
Парна парност

Грешка во вториот бит

А сака да прати: 1001

А ја пресметува вредноста на битот за парност: 1^0^0^1 = 0

А го додава битот за парност и праќа: 10010

...ГРЕШКА ПРИ ПРЕНОС...

Б прима: 11010

Б ја пресметува парноста: 1^1^0^1^0 = 1

Б пријавува неточен пренос по набљудувањето на неочекуваниот непарен резултат.

Парна парност

Грешка во битот за парност

А сака да прати: 1001

А ја пресметува вредноста на битот за парност: 1^0^0^1 = 0

А праќа: 10010

...ГРЕШКА ПРИ ПРЕНОС...

Б прима: 10011

Б ја пресметува парноста: 1^0^0^1^1 = 1

Б пријавува неточен пренос по набљудувањето на неочекуваниот непарен резултат.


Постои ограничување на шеми за парност. Битот за парност гарантира пронаоѓање само на непарен број грешки. Ако парен број битови имаат грешка. Тогаш битот за парност евидентира точен број на единици иако податокот е грешен. Разгледајте го истиот пример од предходно со парен број грешни битови:

Тип на грешка Сценарио за неуспешен пренос
Парна парност

Два грешни битови

А сака да прати: 1001

А ја пресметува вредноста на битот за парност: 1^0^0^1 = 0

A праќа: 10010

...ГРЕШКА ПРИ ПРЕНОС...

Б прима: 11011

Б ја пресметува парноста: 1^1^0^1^1 = 0

Б пријавува точен пренос иако тој е всушност неточен.

Б разгледува парна парност како што се очекува, така што не открива грешка во два бита.

Употреба[уреди | уреди извор]

Поради нејзината едноставност, парноста се употребува во многу хардверски апликации каде што една операција може да се повтори во случај на компликација или каде што детекција на грешка е корисно. На пример SCSI иPCI ористат парност за детекција на грешки при пренос и многу инструкции на микропроцесорски кеш вклучуваат заштита со парност. Затоа што податоците од кеш инстукциите се само копија на главната меморија, таа може да се занемари и повторно превземена доколку се покаже дека е оштетена.

Во сериски пренос на податоци, заеднички формат е 7 бита, парен бит, и еден или два сопирачки битови. Овој формат уредно ги сместува сите 7-битни ASCII карактери во погодни 8-битни бајти. Други можни формати; 8 бити податок, плус бит за парност можат да бидат пренесени сите 8-битни вредности на бајтот.

Во контекст на сериска комуникација, парност обично се генерира и проверува од страна на хардверскиот интерфејс (на пр. UART) и, на приемот, резултатот станува достапен за процесорот (и така, на пр. оперативниот систем) преку статусот на битот во хардверскиот регистар во интерфејсот на хардверот. Обновување од грешка обично се прави со повторно препраќање на податоците, деталите со кои обично се справува софтверот (на пр. Оперативниот систем У/И рутини.

RAID[уреди | уреди извор]

Парноста на податокот се користи од страна на RAID нивоата за да се постигне вишок. Ако дискот во низата на успее, преостанатите податоци на други дискови може да се комбинираат со парноста на податокот (користејќи Булова исклучиво ИЛИ функција) за да се реконструираат податоците кои недостасуваат.

На пример, да претпоставиме дека два диска од три диска Raid 5 низа ги содржи следните податоци:

Диск 1: 01101101
Диск 2: 11010100

За да се пресмета парноста на одатокот за двата диска, се врши исклучиво ИЛИ на нивните податоци:

         01101101
XOR 11010100
_____________
        10111001

Добиената парност од податокот, 10111001, е сочувана на дискот 3.

Доколку било кој од трите диска откаже, неговата содржина може да се реконструира на копираниот диск со подложување на податоците од останатите дискови со истата XOR операција. Ако диск 2 откаже, неговите податоци можат да бидат обновени со користење на содржината од XOR резултатот од двата преостанати дискови, диск 1 и диск 3:

Drive 1: 01101101
Drive 3: 10111001

како што следи:

         10111001
XOR 01101101
_____________
        11010100

Резултатот од XOR калкулацијата ја дава содржината на Диск 2. 11010100 е сочувано на Дискот 2 , потполно поправајќи ја низата. Овој ист XOR концепт слично се користи и во поголеми низи, користејќи било кој број на дискови. Во случај RAID 3, низа од 12 дискови, 11 дискови учествуваат во XOR пресметката прикажана погоре и добиваат вредност која потоа се чува на наменски диск за парност.

Историја[уреди | уреди извор]

„Патека на парност“ беше присутна на првата магнетна лента за складирање на податоци, 1951 година. Парноста во оваа форма, применета во повеќе паралелни сигнали, е позната како надолжна излишна проверка. Ова моќе да се комбинира со парноста пресметана од повеќе битови пратени на еден сигнал, надолжни излишни проверки. Во паралелна магистрала, постои надолќно излишна проверка битови по паралелен сигнал. Парноста исто така беше искористена и за некои хартиени ленти (punched tape) кои служеа за внес на податоци ( на кои им предходеа магнетни ленти). На системите продадени на Британската компанија ICL (порано ICT) 25мм хартиена лента имала 8 позиции дупки преку неа, 8 биле за парноста. 7 позиции биле за податокот, на пр., 7-битен ASCII. Осмата позиција имала дупната дупка во зависност од бројот на дупнати дупки за податоците. Наспроти верувањето,Сејмур Креј, првиот дизајнер на суперкомпјутери, не го почитувал дизајнот на парност. Тој сметал дека тоа покажува на сиромашен дизајн – ако дизајнирате надежен пат за пренос, не треба да ги трошите ресурсите на парноста. Неговиот познат цитат за ова (околу 1963) бил „Парноста е за земјоделците“ (по употребата на терминот “парност” во New Deal). Откако подоцна додал битови за парност на CDC 7600, Креј , наводно, кажал: „Сфатив дека многу од земјоделците купуваат компјутери“.


Референци[уреди | уреди извор]