Interlaken协议介绍Interlake是一种高速通道化的C2C接口协议,主要有以下特征:1.支持256个通道,可以扩展到64K2.与SPI4.2类似,通过简单controlword来表示packet3.通过MetaFrame完成各个lane的对齐4.协议本身和实际使用lane数目和Serdes速率无关5.提供带外带内两种flowcontrol方式,以及xon/xoff的真个接口的flowcontrol6.采用64/67B数据编码7.接口本身性能随lane增加而同比增加基本概念Interlaken的数据有两个基本结构,一个是传输格式,一个是MetaFrame。Interlaken的传输格式和SPI4.2类似,所有数据都是分片为burst,每个burstdata的前后都为controlword,controlword中包含了此data的信息,比如SOP,EOP,errdetection等等。MetaFrame为支持采用Serdes传输数据而定义,每个MetaFrame除了payload外有4个controlword,包括SYNC,SCRAMBLER,SKIP和DIAG。传输格式Interlaken的编码采用64/67B的编码格式,即所有传输data都是以64bits(8Bytes)为基本单元,添加3bits的控制信息然后传送。每个word的前3个bits定义为:66:inversionbit;【65,64】:01表示dataword,10表示controlword。下图为一个包含M个lane的Interlaken的数据发送方式。为支持channel,Interlaken的数据时以burst的形式发送的,在每个burst开始通过controlword指明此burst为哪个channel,并且携带了与此channel的相关信息。每个burst的大小是可通过BurstMax和BurstShort进行配置,BurstMax指明了一个Burst的最大大小,BurstShort指明了一个Burst的最小大小;数据不够一个Burst的时候将在Burst末尾添加Idleword,burst开始的controlword中包含了此burst中有个dataword的信息。下图说明了BurstMax为64B,BurstShort为32B的情况,从中可以看出第二个burst中padding了3个idleword。Interlaken是通过controlword来控制SOP,EOP,channel的信息,ControlWord的格式如下:Inversionbit:此word的数据是否为反位Framing:此为controlword或datawordControl:Idle/Burst或者MetaFramingLayerControlWordType:Idle/BurstEOP:有几个Bytes为DataResetCalander:用于带内flowcontrol时,resetchannelcalanderin-bandflwctrl:16个calendarentry的flow信息CRC24:前一个databurst的CRCMetaFrameMetaFrame用于lane的SYNC,Scramblersetting,skip和Diag。一个MetaFrame的结构如下:可以看出,一个MetaFrame以Sy,Ss,Sk三个Framingword开始,中间为payload,以一个DiFramingword结束。MetaFrame的大小是可以配置的。其中各个Framingword的类型在controlword格式中BlockType中指出。其中SYNC的格式是固定的,Scrambler中携带了当前lane的scramblerstate,Skip主用于Interlaken中继器,以解决不同clockdomain时钟不一致的问题。