Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105289
  • 博文数量: 37
  • 博客积分: 1505
  • 博客等级: 上尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-23 03:45
文章分类

全部博文(37)

文章存档

2011年(11)

2010年(2)

2009年(24)

我的朋友

分类: 系统运维

2009-02-23 18:49:08

多处理器直连拓扑结构-->处理器直连接口单元系统结构-->链路层微包;链路层自管理协议;链路层重传协议-->链路发送单元
 
多处理器直连拓扑结构:
n处理器直连,则每个处理器芯片内集成n-1套直连接口;
直连接口在物理层使用SerDes接口,通过串行链路进行互联,每条链路带宽为5Gbps。
 
处理器直连接口单元系统结构:
中央处理器:Central Processing Unit,CPU
链路单元:Link Unit, LU
处理器直连接口单元:Direct Link Interface Unit, DLIU
DLIU:
每个直连接口对应一套接收报文缓冲队列,存放于其中的报文将根据其所要发送的CPU号发送给对应的CPU.
直连接口单元包括三个部件:网络接口(NI);链路层部件(LLP);物理层部件(PLP)。
NI: 请求报文和响应报文的仲裁;
    报文与网络层数据序列之间的转换;
    接收报文的按虚通道分离和接收到错误报文的处理等。
LLP:链路自管理;
     ECC和CRC校验;
     网络层数据序列与物理微包之间的转换;
     控制发送微包到物理层以及接收来自物理层的微包等。
PLP:将物理微包转换为串行数据在穿行链路上传送;
     接收来自串行链路的串行数据并转换为链路层可以识别的物理微包。
*专用时钟和复位序列的产生逻辑将由处理器的时钟复位单元(Clock Reset Unit, CRU)完成。
 
链路层微包:
互联网络中传输的信息单位为微包,是点点间信息传送,校验,重传,流控的最小单位。
微包长度固定为192位。
大致结构为:Frame:微包的特征码;
          PktInf:微包的特征信息;
          Data:微包的数据信息;
          CRC:微包的CRC信息。
具体的数据布局
 位  域名   备注
 [7:0]  Frame  微包的特征码,有效微包的特征码为“0xAA”
 [12:8]  AskNo   重传协议中的响应序列号,正常序列号范围:0-30
 [17:13]  SndNo  重传协议中的发送序列号,正常序列号范围:0-30
 [21:18]  Crdt  流控协议中的信用,系统中物理信道被划分为4个虚信道,Crdt[n]对应VC[n]的信用,若VC有信用需要传送,则对应的Crdt位设置为1,否则设置为0.
 [23:22]  VC  当前微包所占用的虚信道号(Virtual Container No.)
 [24]  Tail

 当前微包是否为尾微包:1,是;0,否

 [25]  Header  当前微包是否为头微包:1,是;0,否
 [29:26]  PktType  微包类型,下有阐述
 [30]  NcErr  由NC(Network Computer)设置的错误信息位
 [31]  NetErr  由NR设置的错误信息位(1:错,0:对)
 [175:32]  Data  微包的静荷数据
 [183:176]  CRC80  微包中所有偶数位的CRC-8校验信息
 [191:184]  CRC81  微包中所有基数位的CRC-8校验信息
 
微包类型及操作:
 Type  微包名  发送处理  接收处理  用途

 0001

初始化微包

设置SeqNo=0xF,AskNo=0xF,VC=0,Crdt=0,

Tail=1,Header=1,NcErr=0,NetErr=0;

(加下行)

设置链路状态,其他信息不作处理。 链路自身管理
 0010 初始化响应微包

(接上行)不进重传队列,但进CRC校验

(同上)  
 0011 空报文

设置 SeqNo=0x1F,VC=0,Crdt=0,Tail=1,

Header=1,NcErr=0,NetErr=0;

不进重传队列,但进行CRC校验

携带响应,不携带信用和数据

提取响应序列号 专门为了告知响应
 0100 数据微包

若为头微包,数据域中第一个64位字填写路由信息

写所有特征与数据信息

进入重传队列,进行CRC校验

提取所有特征和数据信息  数据传送
 0101 信约微包

设置SeqNo,AskNo,Crdt;

VC=0,Tail=1,Header=1,NcErr=0,

NetErr=0;

进重传队列,进行CRC检验

提取SeqNo,AscNo,Crd特征信息

控制信息传送

 0000,

 0110~

 1111

保留      
 
链路层自管理协议:
超时计数器设置+链路状态
超时计数器设置:为了链路状态的监测,每条链路(包括输入端和输出端)计了CrdNullTime超时计数器;每条链路的重传队列中的每项设计了AskTime,RetransTime超时计数器。        
超时计数器设计说明如下:

名称

用途

宽度

启动

关闭

超时处理

AckTime

重传队列等待对应响应的时间限

16

传送或重传某微报

收到对应的响应微报

启动重传

RetransTime

单个微报最大重传次数限制

5

微包重传一次,减一

收到对应的响应微报

链路转Shutdown

CrdNullTime

信约一直空的时间限制

16

虚信道的信约空

收到对应的响应微报

链路转Shutdown

 
链路状态:为实现链路的自恢复和自管理功能,系统互连网设计了链路自管理协议。
每条链路(包括输入端和输出端)设计了一个Initial,Normal和Shutdown三态链路状态机。
三个状态的含义和此状态下的操作如下表:
 Initial  含义  端口刚上电或热复位时的状态
   

1)逻辑复位,如设置XmSN=0xFRcvSN=0xFCredit=0

2)发送端口没有收到正确的初始化-ACK微包时不断发送初始化微包

3)接收端口只接收初始化微包和初始化-ACK微包

4)若接收端口正确接收初始化-ACK微包,设置逻辑初态(如XmSN=0x0RcvSN=0x0Credit=最大),进入Normal
   

1)接收端口正确接收初始化-ACK微包,进入Normal

2)若InitialTime超时,进入Shutdown
 Normal  含义  端口正常工作状态
   

1)正常微包的接收、检测、处理和发送;

2)丢弃不正确微包;

3)维护信约、传送序列号、应答序列号等信息

4)微报重传等
   

1)若重传超时、信约满超时,进入Shutdown

2)若收到初始化微包、系统Reset时,进入Initial
 Shutdown  含义  端口出现严重错误时的状态
   

1)对正在传向其它输出端口的微报,插入尾标志,或插入尾报文,并置微报的传送错误标志;

2)清空重传缓冲区

3)置各虚信道信约为最大值;

4)异常处理完毕进入Initial态;
   

1)若收到初始化微包、系统Reset时,进入Initial

2)异常处理完毕进入Initial
 
链路层重传协议:
重传协议+参数设置
重传协议:
滑动窗口协议早期出现在TCP/IP协议中,用于实现无差错的链路层通讯和链路层拥塞控制。主要有GO_Back_N和选择性重传两种实现方式。本方案采用前者。
滑动窗口协议分为发送方和接收方两部分。
发送方:发送窗口(大小:2N)&重传Buffer队列(大小:2N-1);
接收方:接收窗口(大小:1)&接收Buffer队列。
发送窗口:对应已发送而未被响应的报文序列,用窗口的上限和下限两个指针表示发送窗口。
通常,定义窗口的下限为ASK_Expected,表示最早发出的未被响应的窗口序列号;
         窗口的上限为Next_Frame_To_Send,表示下一个将要发出的报文所用的序列号。
接收窗口:用指针Frame_Eepected指示,该指针表示接收方可以接收的报文序列号。
任何序列号不等于接收窗口所对应序列号的报文都将被丢弃。所以该协议只能顺序接收发送方发出的报文,而不能乱序接收。
滑动窗口协议的发送过程如下:
·开始时,窗口的上限(next_frame_to_send)和下限(ask_expected)重叠。
·发送方发出一个报文后,窗口上限滑动1。发送方为每个发出的报文设置一个响应超时计数器,当在预定时间内没有收到该报文的响应时间时,将发送响应超时事件。
·发送方收到响应报文,若响应序列号等于发送窗口下限,则窗口下限滑动1;若响应序列号介于窗口的下限和上限之间,则窗口下限滑动响应序列号+1.最后关闭已收到报文的响应超时计数器,并释放报文所占用的缓存空间。
·关于重传:当滑动窗口下限滑动到x后,在规定时间内没有收到有效的响应报文,产生一个响应超时事件,表示发送的2号报文未被正确接收(丢失或被损坏),此时滑动窗口上限回退到2号报文处,重新开始传送。
·发送过程中,发送方记录了发送窗口的大小(窗口上限-窗口下限),当重传队列大小等于窗口大小,表示重传队列已满,将触发缓冲区满事件,此时将不再接收新的报文进入重传队列。
滑动窗口协议的接收过程如下:
·开始时接收序列号为0,则只能接收序列号为0的报文;
·当收到序列号为0的报文后,就收窗口滑动1,对应接收序列号为1,只接收序列号为1的报文;
·当收到序列号为1的报文后,接收窗口滑动1,对应接收序列号为2,只接收序列号为2的报文。
只有CRC校验码正确的报文才有可能被接收,只有CRC校验正确且序列号正确的报文才能被正确接收。
当一个报文被正确接收后,将发送该报文的响应ASK给发送方,即将该报文的序列号返回发送方。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
阅读(1289) | 评论(0) | 转发(0) |
0

上一篇:新开始

下一篇:太多了

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