
Eşlik biti (İngilizce: parity bit), ikili bir veri sözcüğüne, sözcükteki 1 değerli bitlerin sayısını önceden kararlaştırılmış biçimde çift ya da tek yapmak için eklenen fazladan bittir.:150:25 Toplam 1 sayısını çift yapan düzene çift eşlik, tek yapan düzene tek eşlik denir. Eşlik biti bir hata algılama yöntemidir: alıcı ya da okuyucu aynı sayımı yeniden yapar ve sonuç kararlaştırılan eşliğe uymuyorsa verinin bozulduğunu anlar.:296
Tek bir eşlik biti, sözcükte tek sayıda bitin değerinin değişmesini görür; çift sayıda bitin birlikte değişmesini göremez ve hangi bitin bozulduğunu da gösteremez. Bu yüzden hata algılandığında veri yeniden gönderilir ya da kopyası başka bir yerden yeniden okunur.:25:330 Buna karşılık bedeli düşüktür: sözcüğe yalnız bir bit eklenir ve bu bit, dışlayan VEYA kapılarından kurulan basit bir devreyle üretilir ve denetlenir.:104-105
Eşlik biti seri iletişimde, ana bellekte ve önbelleklerde, yollarda, manyetik bantlarda ve RAID disk dizilerinde kullanılmıştır. Seçilmiş bit kümeleri üzerinde birden çok eşlik denetimini birleştiren kodlar hatanın yerini de bulup düzeltebilir; Richard Hamming 1950'deki makalesinde tek hata düzelten kodları böyle kurmuştur.:150-153
| 7 bitlik veri (1'lerin adeti) |
Eşlik dahil 8 bitlik veri | |
|---|---|---|
| çift | tek | |
| 0000000 (0) | 00000000 | 10000000 |
| 1010001 (3) | 11010001 | 01010001 |
| 1101001 (4) | 01101001 | 11101001 |
| 1111111 (7) | 11111111 | 01111111 |
Bir bit dizisinin eşliği, dizideki 1 değerli bitlerin sayısının tek ya da çift olmasıdır. Hamming bu denetime eşlik denetimi (İngilizce: parity check) adını vermiştir: denetim biti, sözcüğün bütün konumlarında çift sayıda 1 bulunacak biçimde seçilirse çift, tek sayıda 1 bulunacak biçimde seçilirse tek eşlik denetimi yapılmış olur. Bir eşlik denetiminin bütün konumları kapsaması da gerekmez, seçilmiş konumlar üzerinde yapılabilir.:150 IBM'in 1960 tarihli genel bilgi el kitabında da her geçerli karakterinde 1 bitlerinin sayısı çift olan kodlar çift eşlikli, tek olanlar tek eşlikli sayılır ve kurala uymayan karakter hatalı kabul edilir.:20-21
Çift eşlikte eşlik biti, veri bitlerindeki 1'lerin sayısı tekse 1, çiftse 0 olur; tek eşlikte bunun tersi geçerlidir. Örneğin 7 bitlik 1010001 sözcüğünde üç tane 1 vardır; çift eşlikte eşlik biti 1, tek eşlikte 0 olur. Mano ile Ciletti'nin ASCII örneğinde eşlik biti karakterin en soluna eklenir ve iki düzenden çift eşliğin daha yaygın olduğu belirtilir.:25 Bitin yeri bir kural değildir; TL16C550D gibi eşzamansız seri iletişim yongaları eşlik bitini son veri bitinin arkasına koyar.:36

Çok girişli dışlayan VEYA işlemi, girişlerinden tek sayıda olanı 1 olduğunda 1, çift sayıda olanı 1 olduğunda 0 verir. Bu yüzden çift eşlik biti doğrudan veri bitlerinin dışlayan VEYA'sıdır; x, y ve z bitlerinden oluşan bir ileti için eşlik biti P = x ⊕ y ⊕ z olarak üretilir. Gönderici tarafta bu biti üreten devreye eşlik üreteci, alıcı tarafta eşliği sınayan devreye eşlik denetleyicisi denir.:104 Denetleyici, alınan dört bitin dışlayan VEYA'sını alır, C = x ⊕ y ⊕ z ⊕ P. Bitlerden birinin değeri yolda değişmişse 1'lerin sayısı tek olur ve C çıkışı 1 olarak hatayı gösterir. Aynı devre iki iş için de kullanılabilir; denetleyicinin P girişi 0'a bağlandığında çıkışı eşlik bitini verir.:105
Üç ve daha çok girişli dışlayan VEYA, iki girişli kapıların art arda bağlanmasıyla kurulur; çıkıştaki kapı dışlayan VEYA DEĞİL kapısıyla değiştirildiğinde çıkış tümlenir ve aynı yapı tek eşlik biti üretir.:103 Hazır yongalar da vardır: Texas Instruments'ın TTL ailesinden SN74LS280 yongası dokuz veri hattı için çift ya da tek eşlik üretir ya da denetler ve daha uzun sözcükler için art arda bağlanabilir.:1
Eşzamansız seri iletimde her karakter bir başlangıç bitiyle açılır; ardından veri bitleri, isteğe bağlı eşlik biti ve durma biti gelir.:36 Koşut veriyi seriye, seri veriyi koşut veriye çeviren yongaya evrensel eşzamansız alıcı-verici (İngilizce: universal asynchronous receiver and transmitter, UART) denir.:1 Bu ailedeki TL16C550D yongası başlangıç, durma ve eşlik bitlerini seri akışa kendisi ekler ve alırken ayıklar.:1 Karakter uzunluğu 5 ile 8 bit arasında seçilir. Hat denetim yazmacının 3. biti eşliği açar ve eşlik biti son veri bitiyle ilk durma biti arasına yerleşir; 4. bit çift ya da tek eşliği seçer; 5. bit ise eşlik bitini hep 0 ya da hep 1 gönderen sabit eşlik kipini açar.:36 Alınan karakterin eşliği tutmazsa yonga hat durum yazmacındaki eşlik hatası (PE) bitini 1 yapar.:37
Çerçeve biçimi kısaca veri biti sayısı, eşlik türünün baş harfi ve durma biti sayısıyla yazılır; N eşliksizi, E çift eşliği, O tek eşliği gösterir. Arduino kartlarının seri kapı işlevi varsayılan olarak 8N1 biçimini (8 veri biti, eşlik yok, 1 durma biti) kullanır, 7E1 ya da 8O2 gibi biçimler de seçilebilir. 7E1 biçimi 7 bitlik bir ASCII karakterine çift eşlik biti eklenmesine karşılık gelir; Mano ile Ciletti, ASCII karakterine sekizinci bit olarak eşlik eklendiğini ve eşlik hatası gören alıcının NAK (olumsuz alındı) karakteriyle iletinin yinelenmesini istediğini anlatır.:25
Mano ile Ciletti'ye göre bellek birimlerinde en yaygın hata algılama düzeni eşlik bitidir: eşlik biti veri sözcüğüyle birlikte saklanır, sözcük okunurken yeniden hesaplanır; sonuç tutmazsa hata algılanır ama düzeltilemez.:296 IBM PC'nin teknik başvuru el kitabına göre ana karttaki bellek, dokuzar tane 64K×1 bitlik dinamik bellek yongasından oluşan banklardan kurulur ve belleğin tamamı eşlikle denetlenir. Bellek eşlik hataları 8088 işlemcisine maskelenemez kesmeyle (NMI) bildirilir; genişleme kartlarındaki bellekler de eşlik hatalarını yine maskelenemez kesme üreten G/Ç kanalı denetim hattıyla bildirir.:1-13 - 1-15
Micron'un 1994 tarihli bir teknik notuna göre eşlik, ilk 4K ve 16K bitlik DRAM kuşaklarının yüksek yumuşak hata oranı ve 8 bitlik yollarda hata düzeltme kodunun pahalı olması yüzünden bellek tasarımında standart uygulama olmuştu. 4 Mbit'lik yongalarda yumuşak hata oranı yaklaşık on bin kat düşünce dizüstü ve alt sınıf masaüstü bilgisayarları eşliksiz üretme eğilimi başladı; not, eşliğin bellek maliyetini yüzde 10-15 artırdığını, güvenilirliği belirgin biçimde iyileştirmediğini yazar ve üst sınıf sistemlere hata düzeltme önerir.:5-19 - 5-22 Eşlikli sistemler için 512K×8 yerine 512K×9 düzenli yongalar kullanılır; aynı veri kitabındaki 72 bitlik MT24D472 bellek modülünde de her bayta bir eşlik biti ucu ayrılmıştır.:5-19, 3-323
Eşliğin ek bit gideri sözcük genişliğiyle orantılıdır, hata düzeltme kodununki ise genişlik arttıkça oransal olarak azalır. Micron'un çizelgesinde 8 bitlik yolda eşlik 1, hata düzeltme 5 ek bit isterken 64 bitlik yolda ikisi de 8 ek bit ister.:5-22 Bu yüzden geniş yollarda aynı 8 bit, tek bit hatasını düzelten ve çift hatayı algılayan bir koda ayrılır; AMD Opteron işlemcisinin veri yollarında her 64 veri bitine 8 hata düzeltme biti eşlik eder.:330
Bir önbellekte tutulan veri değiştirilmemişse aynısı alt düzeyde de durur ve eşlik hatası görüldüğünde oradan yeniden okunabilir. Opteron'da yalnız okunan yapılar olan buyruk önbelleği ve adres dönüştürme ön belleği (TLB) eşlikle korunur ve hata görüldüğünde alt düzeyden yeniden okunur; veri önbelleği, ikinci düzey önbellek ve ana bellek ise tek hata düzelten, çift hata algılayan kodla korunur.:330
Değiştirilmiş veride ise eşlik yalnız hatayı haber verir. Sun Microsystems'in E3000-E10000 sistemleri bu sınıra 2000'de takıldı. Bu sistemlerin ikinci düzey önbelleğinde hata düzeltme olmadan yalnız eşlik vardı; SRAM'lerin aralıklı arızalarını eşlik algılıyordu, ama kirli veride düzeltme olanağı olmadığından işletim sistemi hatayı bildirip programı sonlandırmak zorunda kalıyordu.:51-52
PCI yerel yolunda PAR sinyali, 32 bitlik adres ve veri hatları (AD[31::00]) ile dört komut ve bayt etkinleştirme hattı (C/BE[3::0]#) üzerinden çift eşlik taşır; bu 36 hat ile PAR'daki 1'lerin sayısı her zaman çifttir. Eşlik üretimi bütün PCI aygıtları için zorunludur; adres ve yazma verisinde ana aygıt, okuma verisinde hedef aygıt PAR'ı bir saat çevrimi gecikmeyle sürer.:10 Veri eşlik hataları PERR#, adres eşlik hataları SERR# sinyaliyle bildirilir; SERR# maskelenemez kesmeye yol açabilir.:12 SCSI yolunda sekiz veri hattına DB(P) adlı bir eşlik hattı eşlik eder ve eşlik tektir; SCSI-2'nin geniş yolunda ek 24 veri hattının her baytı için ayrı bir eşlik hattı vardır.

Patterson, Gibson ve Katz'ın 1988'de RAID kavramını tanıttıkları makalede tek bir eşlik diski yeterli görülmüştür, çünkü disk denetleyicileri hangi diskin bozulduğunu zaten bilir. Yitirilen diskteki her bit, sağlam disklerdeki bitlerin eşliği hesaplanıp özgün grup için saklanan eşlikle karşılaştırılarak yeniden kurulur. Bu düzen RAID 3 adını almıştır ve grup başına tek denetim diskiyle ek maliyeti yüzde 4 ile 10 arasına indirir.:112-113 Patterson ile Hennessy eşliği 2'ye göre toplam olarak açıklar: bozulan disk dışındaki disklerin verisi eşlik diskinden çıkarıldığında kalan, yitirilen veridir.:602
Örneğin üç veri diskinin aynı konumundaki baytlar 01101101, 11010100 ve 10011010 ise eşlik diskine bunların dışlayan VEYA'sı olan 00100011 yazılır. İkinci disk bozulduğunda kalan üç bayt (01101101, 10011010 ve 00100011) dışlayan VEYA'dan geçirilir ve sonuç yitirilen 11010100 baytını verir.:602-603
RAID 4'te küçük bir yazma yalnız iki diske dokunur, çünkü yeni eşlik = (eski veri ⊕ yeni veri) ⊕ eski eşlik olarak hesaplanabilir.:113 Her yazmada aynı eşlik diskine gidilmesi darboğaz yarattığı için RAID 5 eşlik bloklarını bütün disklere dağıtır; eşlik blokları ayrı disklerde olan iki küçük yazma aynı anda yapılabilir.:114:603-604 Tek eşlik yalnız kendini belli eden tek bir disk arızasına karşı korur; RAID 6 ikinci bir eşlik hesabı ekler. NetApp'in satır ve köşegen eşliği (RAID-DP), satır eşliğinin yanında köşegenler boyunca çift eşlik saklar.:364-365
IBM'in 1960 tarihli el kitabında anlatılan bant birimlerinde veri, bant boyunca uzanan yedi koşut izde saklanır ve bandın enine dizilen yedi bit bir sütun oluşturur.:26 İzler C, B, A, 8, 4, 2 ve 1 diye adlandırılır; ikili kodlu ondalık karakterlerde C izi denetim bitidir ve her karakter çift eşlik için sınanır. Bu dikey denetime ek olarak her kaydın sonuna, 1'lerin sayısı tek olan her iz için 1 taşıyan bir denetim karakteri yazılarak boyuna eşlik denetimi yapılır. İkili kipte ise her sütunun tek eşlikli olması istenir.:27 IBM 729 bant biriminin bakım el kitabına göre her izin yazma tetikleyicisi yazılan her 1 bitinde durum değiştirdiği için blok sonunda o izde tek ya da çift sayıda 1 yazıldığını gösterir; tetikleyicilerin sıfırlanmasıyla banda boyuna artıklık denetim karakteri (LRCC) yazılır.:C64
Sonraki IBM bant sistemleri tek eşlik bitinin ötesine geçti. IBM 2401'in ilk modellerinde Döngüsel artıklık denetimi eklendi ve yeniden okumada bir izin silinmesi düzeltilebildi; 1985 tarihli bir makalede anlatılan 18 izli IBM 3480 ise dikey eşlik denetimlerini iki iz kümesini kesen çapraz eşlik denetimleriyle birleştiren uyarlamalı çapraz eşlik (AXP) koduyla dokuz izlik bir kümede yeri bilinen üç bozuk izi düzeltebiliyordu.:546-547
Bir, üç ya da başka tek sayıda bitin değeri değişirse eşlik bozulur ve hata algılanır; çift sayıda bit değişirse eşlik korunur ve hatalı sözcük doğru görünür.:25 Hamming bu kodun artıklığının n/(n-1) olduğunu ve sözcük uzadıkça artıklığın düştüğünü, ama fark edilmeden geçen çift hata olasılığının da büyüdüğünü gösterir. Bit başına hata olasılığı p iken sözcük uzunluğu 1/p'ye yaklaştığında sözcüğün doğru gelme olasılığı yaklaşık 0,37'ye iner, çift hata olasılığı yaklaşık 0,18'e çıkar.:149-150
Eşlik biti hatanın yerini de göstermez; alıcı bozuk veriyi atar ve yeniden ister.:25 Bozuk bitin yeri başka bir yolla biliniyorsa durum değişir: disk dizisinde hangi diskin bozulduğu denetleyiciden öğrenildiğinde, tek bir eşlik diski o diskin bütün içeriğini yeniden kurmaya yeter.:112-113

İki boyutlu eşlik verinin hem satırları hem sütunları için eşlik tutar; yedi izli bantlardaki karakter başına dikey eşlik ile kayıt sonundaki boyuna eşlik karakteri böyle bir düzen kurar.:27 IBM 3480'in AXP kodu, dikey eşliği iz kümelerini çaprazlama kesen eşlik denetimleriyle birleştirerek bozuk izleri düzeltmeye kadar götürmüştür.:546
Hamming kodu, her biri seçilmiş konumlar üzerinde yapılan birkaç çift eşlik denetiminden kurulur. Denetimler sırayla uygulanır, tutan için 0, tutmayan için 1 yazılır ve elde edilen ikili sayı bozuk bitin konumunu verir; 0 değeri hata olmadığını gösterir. 4 veri bitine 3 denetim biti eklenerek 7 bitlik tek hata düzelten kod elde edilir.:150-153 Bu koda bütün konumları kapsayan bir çift eşlik biti daha eklendiğinde kod tek hatayı düzeltir ve çift hatayı algılar (SEC-DED): tek hatada son eşlik denetimi tutmaz, çift hatada tutar ama denetim sayısı sıfırdan farklı çıkar.:153-154 Bellek yongalarıyla kullanılan tümleşik devreler bu tür değiştirilmiş Hamming kodlarıyla 8, 16 ve 32 bitlik sözcüklerde tek hatayı düzeltip çift hatayı algılar.:299
Kodların gücü Hamming uzaklığıyla ölçülür. Hamming, iki kod sözcüğü arasındaki uzaklığı farklı oldukları konumların sayısı olarak tanımlar; en küçük uzaklığı 2 olan kod tek hatayı algılar, 3 olan tek hatayı düzeltir, 4 olan ayrıca çift hatayı algılar. Eşlik bitiyle kurulan kod, en küçük uzaklığı 2 olan koddur.:155-156 Opteron'un ana belleği gibi hata düzeltme kodlu (ECC) bellekler de SEC-DED kodlarıyla korunur.:330
Hamming, 1950'deki makalesinde yalnız hata algılayan kodların o güne kadar yaygın olduğunu belirtir: telefon santrallerinin ortak denetim sistemlerinde ve Bell Telefon Laboratuvarlarının röleli hesap makinelerinde beşte iki kodları, radyo telgrafında yedide üç kodu kullanılıyordu. Laboratuvarın Aberdeen Deneme Alanı için yaptığı Model 5 röleli bilgisayarlarda arızalar fark edilmeden geçmiyordu, ama makineler gece ve hafta sonu gözetimsiz çalıştığından hata çoğu zaman hesabın durması demekti. Hamming hata düzeltmeyi bu deneyimden yola çıkarak ele almıştır.:147-149
IBM'in 1960 tarihli el kitabına göre IBM 705 veri işleme sisteminin yedi bitlik alfasayısal kodunda C konumundaki denetim biti yalnız denetim içindi; kod çift eşlikliydi ve 1 sayısı tek olan karakter geçersiz sayılırdı.:21 Eşlik bant birimlerine de taşındı ve karakter başına eşlik ile kayıt başına boyuna denetim karakteri birlikte kullanıldı.:27 Eşlik kişisel bilgisayarların ana belleğinde de kullanıldı; IBM PC'nin belleğinin tamamı eşlikle denetleniyordu.:1-13 Micron 1994'te, DRAM'lerin yumuşak hata oranı düştüğü için eşlikli sistemlerin birkaç yıl içinde ya eşliksiz ya da hata düzeltmeli sistemlere geçebileceğini yazıyordu.:5-19