複製鏈接
請複製以下鏈接發送給好友

8B/10B

鎖定
8B/10B是IBM公司研發的編碼。
中文名
8B/10B
也    叫
8比特/10比特
最初發明
IBM公司

目錄

8B/10B簡介

8B/10B,也叫做8比特/10比特或8b10b。8b/10b方式最初由IBM公司於1983年發明並應用於ESCON(200M互連繫統),由Al Widmer和Peter Franaszek在IBM的刊物“研究與開發”上描述。
8b/10b編碼的特性之一是保證DC 平衡,採用8b/10b編碼方式,可使得發送的“0”、“1”數保持基本一致,連續的“1”或“0”不超過5位,即每5個連續的“1”或“0”後必須插入一位“0”或“1”,從而保證信號DC平衡,它就是説,在鏈路超時時不致發生DC失調。通過8b/10b編碼,可以保證傳輸的數據串在接收端能夠被正確復原,除此之外,利用一些特殊的代碼( 在PCI-Express總線中為K碼) ,可以幫助接收端進行還原的工作,並且可以在早期發現數據位的傳輸錯誤,抑制錯誤繼續發生。
8b/10b編碼是將一組連續的8位數據分解成兩組數據,一組3位,一組5位,經過編碼後分別成為一組4位的代碼和一組6位的代碼,從而組成一組10位的數據發送出去。相反,解碼是將1組10位的輸入數據經過變換得到8位數據位。數據值可以統一的表示為DX.Y或KX.Y,其中D表示為數據代碼,K表示為特殊的命令代碼,X表示輸入的原始數據的低5位EDCBA,Y 表示輸入的原始數據的高3位HGF。
8b/10b編碼是目前許多高速串行總線採用的編碼機制,如 USB3.0、1394b、Serial ATA、PCI Express、Infini-band、Fibre Channel(光纖通道)、RapidIO等總線或網絡等。

8B/10B特點

光線通道上,告訴比特流串行傳輸僅有發送和接受兩條物理線路,不存在單獨的線路來實現時鐘同步,只能通過編碼技術,將時鐘“嵌入”比特流內部,故在串行傳輸中對所傳送的比特進行編碼十分重要。對數據進行編碼,不但可以提高接收機實現時鐘回覆和比特同步,而且易於檢測和和糾正數據錯誤。
管線通道FC-1層採用8B/10B編碼算法,通道上傳送的信息以每8比特為一組被編碼為一個10比特的傳送自負,接收端收到數據後再將10比特字符解碼還原為8比特代碼。
8B/10B編碼算法是由IBM公司的A.X.Widmer和P.A.Franaszer在20世紀80年代初期提出。該算法的基本思想是將一個8位字節劃分為5位和3位兩部分,對5位部分進行5B/6B編碼,對3位部分進行3B/4B編碼。相對於一次編碼一個8位字節,分為兩部分進行編碼使得硬件上能更有效地對更小的子塊進行編解碼。通過兩部分分別編碼,最終8位字節被編碼為10位字節。編碼後的10位中所有1或0的個數不會超過6個,並且連續的1或0的個數不會超過4個。
8B/10B編碼通過檢測前一個字符的不均衡型來決定後一個字符的編碼選擇。如果前一個字符是正不均衡性字符,則後一個就應該選擇負不均衡性。這種連續不均衡機制使得整個比特流中儘量保持了0和1的平衡。
10位傳送代碼可以支持所有的256種8位組合,並且光線通道利用剩餘組合中的一些編碼構成特定的控制碼。K28.5是光線通道中使用的控制碼。在兩位相同的二進制數據後緊跟着五位與前兩位不同的二進制連續串,這種特殊的格式使其與一般的數據編碼區分開。
將原本8位的字節用10位來表示,會使8B/10B編碼的帶寬利用率並不高。8B/10B編碼不只應用於光纖通道,目前在許多高速串行總線。