Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20526
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-20 11:32
文章分类
文章存档

2016年(1)

2015年(3)

我的朋友

分类:

2016-02-21 11:27:03

原文地址:Interlaken协议 作者:conghonglei

Interlaken协议介绍

Interlake是一种高速通道化的C2C接口协议,主要有以下特征:
1. 支持256个通道,可以扩展到64K
2. 与SPI4.2类似,通过简单control word来表示packet
3. 通过Meta Frame完成各个lane的对齐
4. 协议本身和实际使用lane数目和Serdes速率无关
5. 提供带外带内两种flow control方式,以及xon/xoff的真个接口的flow control
6. 采用64/67B数据编码
7. 接口本身性能随lane增加而同比增加


基本概念


Interlaken的数据有两个基本结构,一个是传输格式,一个是MetaFrame。Interlaken的传输格式和SPI4.2类似,所有数据都是分片为burst,每个burst data的前后都为control word,control word中包含了此data的信息,比如SOP,EOP,err detection等等。
MetaFrame为支持采用Serdes传输数据而定义,每个MetaFrame除了pay load外有4个control word,包括SYNC, SCRAMBLER, SKIP和DIAG。

传输格式

Interlaken的编码采用64/67B的编码格式,即所有传输data都是以64bits(8 Bytes)为基本单元,添加3 bits的控制信息然后传送。每个word的前3个bits定义为:66:inversion bit;【65,64】:01表示data word,10表示controlword。下图为一个包含M个lane的Interlaken的数据发送方式。


为支持channel,Interlaken的数据时以burst的形式发送的,在每个burst开始通过control word指明此burst为哪个channel,并且携带了与此channel的相关信息。每个burst的大小是可通过BurstMax和BurstShort进行配置,BurstMax指明了一个Burst的最大大小,BurstShort指明了一个Burst的最小大小;数据不够一个Burst的时候将在Burst末尾添加Idle word,burst开始的control word中包含了此burst中有个data word的信息。下图说明了BurstMax为64B,BurstShort为32B的情况,从中可以看出第二个burst中padding了3个idle word。


Interlaken是通过control word来控制SOP,EOP,channel的信息,Control Word的格式如下:

Inversion bit:此word的数据是否为反位
Framing:此为control word或data word
Control:Idle/Burst 或者 MetaFraming Layer Control Word
Type:Idle/Burst
EOP: 有几个Bytes为Data
Reset Calander:用于带内flow control时,reset channel calander
in-band flw ctrl:16个calendar entry的flow信息
CRC24:前一个data burst的CRC


MetaFrame

MetaFrame用于lane的SYNC, Scrambler setting, skip和Diag。一个MetaFrame的结构如下:

可以看出,一个MetaFrame以Sy,Ss,Sk三个Framing word开始,中间为payload,以一个Di Framing word结束。MetaFrame的大小是可以配置的。其中各个Framing word的类型在control word格式中Block Type中指出。其中SYNC的格式是固定的,Scrambler中携带了当前lane的scrambler state,Skip主用于Interlaken中继器,以解决不同clock domain时钟不一致的问题。


阅读(3230) | 评论(0) | 转发(0) |
0

上一篇:Linux的数据包排队机制(二)

下一篇:没有了

给主人留下些什么吧!~~