8b/10b编码

                            8b/10b 编码
 
8b/10b 编码是目前许多高速串行总线采用的编码机制,如1394b Serial ATA PCI Express Infini-band Fiber Channel RapidIO 等总线或网络,都是8b/10b 编码的拥护者。8b/10b 编码方式早在1983 年就被提出,现在则成为主流传输标准选用 的编码技术,本文将探究其优点,并详细介绍8b/10b 编码重要的三大观念。
以映射机制将8位转为10位字码
   8b/10b编码是目前高速数据传输接口或总线常用的编码方式,该编码技术的基本精神很简单,就是将 8个位经过映射的机制转化为 10个位的字 码,但是平衡了位流中 01的数量,这就是 8b/10b编码的根本目的 直流平衡( DC Balance。当高速串行流的逻辑 1或逻辑 0有多个位没有产生变化时,信号的转换就会因为电压位阶的关系而造成信号错误,直流平衡的最大好处便是可以克服以上问题。
   80年代 IBM发表该论文时,正是预期到光纤技术的应用实现而针对高速局域网以及计算机链接所研发的传输码。事隔多年, 8b/10b 编码竟摇身一变成为高速串行总线的主要编码方式,这也许是当时所始料未及的。
   8b/10b编码方式存在着一个极为有趣的特色,其总输出位数是 10个位,其中位 0与位 1出现的次数总共也仅在三种场合存在,分别为 “5个位 05个位 1”“4个位 06个位 1”“6个位 04个位 1”
  有一个 8b/10b编码的技术专用语 不均等性( Disparity,其涵义就是指 10个位中位 0与位 1出现次数的差。换句话说, 8b/10b编码的 “Disparity”就仅有 “+2”4个位 06个位 1)、 “+0”5个位 05个位 1)以及 “-2”6个位 04个位 1)三 种状况。
分两个部分进行映射处理
  从图 1至少可以看出几点关于 8b/10b编码的基本观念。首先, 8个位映射成 10个位,划分两个部分分别进行映射处理,分别是 5B/6B 3B/4B的处理。这种位的映射关系,已经在当时论文中做成一个标准化的表格。其次, 5B/6B3B/4B的映射控制,必须依赖 “Disparity Control”功能块才能够达成最后的编码,因为直流平衡就是要靠它制衡。
  另一个重点是,当初在规划 8b/10b编码时,除了 数据码 的定义之外,又另外规划了所谓的 控制代码 。文章或是文献上所见到的 “D.a.b”就是数据码的表现方式。而 “K.a.b”就是另指控制代码,至于为何会有 “D.a.b”“K.a.b”这种表现方式,当然与前面所提到的 5B/6B3B/4B的映射控制有高度相关,也有人以 “/Dx.y/”或是 “/Kx.y/”的文字来分别表示。
  一个字节的组成有 8个位,若是将其分成两类,分别是 5LSB以及 3MSB5LSB就是前面提及的 “x”3MSB就是 “y”。以下举例说明这种表现方式。
  示范之一, /D0.0/ = 000 00000
  示范之二, /D6.2/ = 010 00110
  如此一来, 3B/4B5B/6B的各自映射就更容易呈现。
  由于高速串行流是连续地将数据从发送端往接收端逐次地传输过去,每一个数据的编码会随着前面送出数据不停累积 不均等性 的状态而产生正确的位 映射关系,所以这个依靠做为判断的状态就被称为 “Running Disparity”。实际上可以将它视为一个判断标志( Flag),因此 “Running Disparity”也仅会出现两种状态,分别是 “+1”“-1”,分别代表位 1比位 0多或位 0比位 1多。如此一来,整个冗长数据串的编码就可以被限制 在约定的范围之内。
数据码与控制代码不会同时发生
  表 2、表 3列举了 5B/6B3B/4B的编码映像表格。当初在规划 8B/10B编码机制的时候,就事先规划了所谓的控制代码( Control Characters),也有人称为 “K Code”,顾名思义,就是作为控制的用途。由于数据码与控制代码两者不会在同一个时间点发生,因此即便数据码与控制代码在编码上的数值重复,也不会发生冲突。
  控制代码的另一个重点是:这些控制代码会随着各种接口规范的需要而有各自不同的解读与定义,以下就以流行的 Serial ATAPCI Express为例来解释这个要点。
  先来看 PCI Express如何来运用这些控制代码(如表 5所示)。 PCI Express运用控制代码基本上作为两种用途:其一,接口总线上的链接管理( Link Management)必须依靠它;其二,链接层与数据交易层各自生成的包( DLLPTLP),发送的开始与退出也需要控制代码来标示。而致力于存储装 置接口的 Serial ATA规范,则是参考 Fibre Channel的内在,仅仅用到 K28.3K28.5
  如果从元器件的角度来看 8b/10b的功能,究竟藏身何处?答案也是很清楚,就在物理层( Physical layer)当中。请看 PCI ExpressPHY逻辑示意图(图 5),自然能够理解串行总线的一些基本法则。
  总之, 8b/10b编码机制的发源虽然有点久远,但却对高速串行总线具有深远的影响,并成为现今工程开发人员的重要课题。

你可能感兴趣的:(职场,休闲,8b/10b编码)