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) |