RPR(弹性分组环)芯片MXRPR_9
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10Gbps弹性分组环MAC层芯片设计方案
一、芯片简介
该芯片设计目标为一个处于光环路成帧器和交换设备或边缘路由设备之间的完成弹性分组环MAC功能的专用芯片,可称之为弹性分组环(RPR)环路控制器(RCU)。
该芯片的设计基于IEEE 802.17协议草案,能同时完成RPR节点两个环路方向的MAC功能。
这些功能主要包括:对RPR分组进行帧头信息检查及相应的接收处理;环上流量及本地流量的统计;基于流量统计的环路公平性算法实现;公平信息帧接收和生成以及相应的动态流量控制;拓扑发现帧和保护倒换帧接收和传送以及相应保护倒换的实现。
该芯片主要包括以下几个部分:物理层成帧器接口;数据流控制部分;流量控制部分;主机接口;外部存储器接口;以及CPU接口。
下面简单介绍各部分功能:
1、物理层成帧器接口
¾该接口的数据位宽为16比特,工作于622MHz,是光互联网论坛定义的标准SPI-4-2接口 ¾接口进行数据总线的奇偶校验检查和生成
¾接口进行短包、错误包的过滤,其处理可由寄存器配置选择
¾接口提供完备的性能统计计数器:短包计数器;奇偶校验错计数器;接口总流量,及总接收及发送数据包数和字节数计数器
¾提供物理层的收发FIFO,进行数据的缓存
¾在接收端对接收数据包进行CRC校验,对CRC检验错的数据包给出相应标记并进行性能统计;在发送端生成CRC检验码并插入到RPR帧中
¾支持各种帧格式,包括数据帧、空闲帧、公平帧、拓扑发现帧、保护倒换帧,支持广播和组播处理。
根据帧的目的地址和类型送到相应的接口或处理单元进行处理。
2、数据流控制部分
¾芯片提供多种工作模式,对应不同的数据流控制,包括正常工作模式,保护工作模式,直通模式,透明传送模式
¾正常工作模式下,接收的流量控制帧将在芯片中终结;拓扑帧将直接送到主机接口;而数据帧则根据其目的地址进行分流,目的地址为本地地址的数据帧将通过主机接口送出,而
目的地址不是本地的数据帧将与本地主机接口发送的数据帧一起沿同向环路继续传送¾保护工作模式是针对传输线路或节点故障情况下的数据流向控制:一旦传输媒体或某节点发生故障,则非本地数据帧及本地主机接口发送数据帧将直接送到反向环路传输传输,这
样将通过两个反向环路继续构成一个完整的环路进行数据的传送
¾直通模式下,接收数据将不作任何的地址判别而直接发送到同向环路继续传送
¾透明模式下,接收数据将不作任何的地址判别而直接发送到主机接口,即没有数据进行站点的跨越传送
3、流量控制部分
¾支持RPR协议规定的流量控制原则和算法
¾对本地主机接口发送帧按照高低优先级、以及本地流量控制参数进行整形和流量控制
¾对转发帧根据优先级、以及本地流量控制参数进行流量控制
¾对于A类及带内B类高优先级数据帧,提供30K以上容量高优先级转发FIFO,采用网络管理设定预留带宽进行传送
¾统计本地发送高优先级业务,并根据高优先级FIFO(HPFIFO)可编程门限向MAC层用户端发送暂停信号
¾对于带外B类及C类低优先级数据帧,提供512K以上容量低优先级转发FIFO,并根据各种流量控制信息对低优先级业务进行流量控制
¾统计本地低优先级流量信息,并根据低优先级FIFO(HPFIFO)可编程门限向MAC层用户端发送控制信息
¾对低优先级数据包,提供下列流量控制计数器或寄存器:上行速率,上行跨越阻塞段速率,转发速率,允许跨越阻塞段速率,节点最大速率
¾对本地低优先级FIFO设定高低两个可通过软件编程的门限,控制转发数据包及本地上行数据包的发送
¾对本地FIFO及数据包的发送时间进行监视,一旦发现FIFO超过预设门限或特定数据包发送超时,则本地节点进入拥塞状态。
此时,公平信息帧将向其他节点广播,通知其他节点
控制跨越拥塞节点的流量
¾定期根据本地发送流量、接收流量以及接收到的流量控制帧的信息、本地带宽控制信息如预留带宽及优先级等,计算本地的流量控制参数,并生成A类及B类公平信息帧传送到下
一节点或进行广播
4、主机接口
¾该接口的位宽为16比特,工作于622MHz,是光互联网论坛定义的标准SPI-4-2接口
¾提供接口FIFO实现发送数据缓存,并可通过软件设置其上下水线进行流量控制
¾接口进行数据总线的奇偶校验检查和生成
¾接口进行短包、超长包的过滤,其处理可由寄存器配置选择
¾接口提供完备的性能统计计数器:短包计数器;奇偶校验错计数器;接口总流量,及总接收及发送数据包数和字节数计数器
5、外部存储器接口
¾提供外部大容量标准SRAM接口,用作非本地数据帧的转发缓存
¾可通过软件设置其上下水线,以进行流量控制
6、CPU接口
¾提供MOTOROLA及INTEL兼容的单片机接口,对芯片进行配置、监控和管理
¾提供各种告警及状态信号
¾提供层次型的中断处理
¾提供各种性能统计计数器
¾提供外部中断信号
二、 芯片应用方案
图1为RPR网络节点的结构示意图。
线路方向,RCU和物理层成帧器相接,并由光模块接入光纤线路,RCU和成帧器之间采用SPI-4标准接口。
本地方向,RCU和主机接口设备相接,主机接口设备可以基于交换机也可以基于路由器,二者之间的接口也采用SPI-4标准接口。
图中SRAM作为RCU的转发缓存。
图2为RPR的网络结构示意图。
图1 RPR网络节点结构框图
图2 RPR网络结构
三、芯片接口描述
1.成帧器(Framer)接口
端口信号方向描述
TFDCLK RCU to FR 数据发送时钟
TFDAT [15:0] RCU to FR 发送数据总线
发端
TFCTL RCU to FR 发送控制信号
RCU 发送状态时钟
to
TFSCLK FR
RCU 发送FIFO状态信息
TFSTAT[1:0] FR
to
RFDCLK FR
to
RCU 数据接收时钟
RFDAT[15:0] FR
to
RCU 接收数据总线
RFCTL FR
to
RCU
接收控制信号
RFSCLK RCU to FR 状态信息接收时钟
收端
RFSTAT[1:0] RCU to FR 接收FIFO状态信息
2.主机(Host)接口
端口信号方向描述
THDCLK HOST to RCU 数据发送时钟
THDAT [15:0] HOST to RCU 发送数据总线
THCTL HOST to RCU 发送控制信号
THSCLK RCU to HOST 发送状态时钟
THSTAT[1:0] RCU to HOST 发送FIFO状态信息
★THPRI-A RCU to HOST
优先级A速率限制。
此信号为高,指示接受
优先级A分组
★THPRI-B RCU to HOST 优先级B速率限制。
此信号为高,指示接受优先级B分组。
发端
★THPRI-C RCU to HOST 优先级C速率限制。
此信号为255,指示接受优先级C分组。
此信号为0,指示不接受优先级C分组。
此信号为大于0小于255时,表示距离拥塞节点的跳数。
RHDCLK RCU to HOST 数据接收时钟
RHDAT[15:0] RCU to HOST 接收数据总线
RHCTL RCU to HOST 接收控制信号
RHSCLK HOST to RCU 状态信息接收时钟
RHSTAT[1:0] HOST to RCU 接收FIFO状态信息
收端
★RHPRI [1:0] RCU to HOST 发送优先级指示。
指示发送分组的优先级。
3.外部转发缓存(SRAM)接口
信号方向描述
SDATA [36:0] DUAL SDRAM的数据总线
SADDR [16:0] RCU to SRAM SDRAM的地址总线
SCLK Input SDRAM的读写时钟
SRWN RCU to HOST SDRAM的读写有效信号
SBWN RCU to HOST SDRAM的写指示信号
4.微处理器(MPU)接口
信号方向功能描述
ADDR [0:11] I 地址总线: RCU的寄存器地址总线,A[11]为最高位,逻辑
1为高电平。
MBD[0:7] I/O/T 数据总线: RCU的寄存器读写数据总线,MBD[7]为最高
位,逻辑1为高电平。
CSB I
选择信号: 低电平有效,由单片机本身产生,为低时允许
对寄存器进行操作。
RD_EB I 读允许(Intel 模式) 或使能信号 (Motorola 模式): Intel
模式下–低电平有效,由单片机本身产生,为低时,允
许对芯片的寄存器进行读操作。
Motorola 模式下 – 单
片机读写操作有效信号,高电平有效。
WR_RWB I 写允许(Intel 模式) 或读/写 (Motorola 模式): Intel 模
式下 – 低电平有效,由单片机产生,为低时,允许对单
片机机进行写操作。
Motorola 模式下 – 单片机产生,
当为高电平时,为读允许信号;当为低电平时,为写允
许信号。
ALEB I 地址锁存允许: 单片机产生的高有效信号,作为单片机读
或写周期中的地址锁存信号。
INT O
主中断信号,指示RCU中非屏蔽中断请求。
MBEB I 低有效的MOTOROLA总线使能信号。
当MBEB为低时,
RDB/E执行E的功能,WRB/RWB执行RWB的功能。
当MBEB为高时,RCU的微处理接口为INTEL模式。
四、芯片功能模块描述
图3 RCU功能模块框图
图3 为RCU芯片的功能模块框图。
如图3所示,RCU芯片按功能可分为8个模块,它们是成帧器接口(Framer Interface)、主机接口(Host Interface)、转发缓存判决模块(Transit Buffer Decision)、外部转发缓存器接口(External Transit Buffer Interface)、RPR前传模块(RPR Forward)、速率控制模块(Rate Limiter)、RPR公平性操作模块(RPR Operation)、RPR同步模块(RPR Syncronizer)。
1、成帧器接口(Framer Interface)
1)成帧器收端接口
①收端短帧过滤。
如收到的数据帧的长度<24字节,则删除该帧,相应的错误计数器加1。
②收端错误帧指示信号的检查和计数。
如果有错误帧指示,则相应的错误计数器加1。
如果
该数据帧是本地数据或拓扑信息帧,则向HOST发送,并把RXHERR置位。
如果该帧的目
的地不是本地,则该帧在转发缓存被覆盖。
如果该帧是倒换帧和公平信息帧,则由转发判
决模块删除。
③数据帧和控制帧的头部CRC校验。
如果CRC错误则数据帧则被删除。
④公平帧帧头部奇偶校验。
如果奇偶错误则数据帧则被删除。
⑤收端数据CRC校验。
如果CRC错误则数据帧被标志错误。
⑥MAC层数据存活检测Timer。
该Timer用于MAC层的数据存活性检测。
当Framer RX接
口接收到数据时,启动一个Timer,对Timer设定初始值,同时将该值保持到数据发送完毕。
如果接收不到数据,则每隔一定的时间对Timer中的计数值进行递减工作,如果减到0,则
触发中断并对相应寄存器置位,网管由此使RPU进入Wrapping 状态;如果Timer在减到
0之前有数据接收则Timer重新被赋予初始值。
2)成帧器发送接口
①提供接口FIFO实现发送数据缓存
②相应SPI信号的产生
2、主机接口(Host Interface)
1)主机接收接口(发送)
①提供接口FIFO实现发送数据缓存
②相应SPI信号的产生
2)主机发送接口(接收)
①发端短帧过滤。
帧的长度<24字节,删除该帧,相应错误计数器加1。
②发端巨帧监视。
如果帧的长度>9216字节,相应错误计数器加1,并使之携带错误的CRC。
③发端数据错误指示的检查和计数。
如果有错误帧指示,相应错误计数器加1,并使之携带
错误的CRC,以便在远端被丢弃。
④对由Host输入的数据进行CRC生成。
⑤对由Host输入的数据进行头部CRC生成。
3、转发缓存判决模块(Transit Buffer Decision)
1)转发缓存判决模块的处理过程
①根据RI判断分组的发送方向是否正确,RI不正确则删除(除Wrapping)。
②根据TTL判断分组是否被剥离,并对前传数据的TTL减1。
③根据PT判断分组的类型,并分别处理。
④根据地址决定对上游输入分组的处理方式:转发、删除或是送往客户端。
⑤对TTL变化后的头部CRC进行更正。
⑥对进入转发缓存的数据加时间戳,以计算转发延迟。
⑦如果HOST 的RX-FIFO被写满,则丢弃发往HOST的数据以便防止公平帧和前传帧堵塞。
2)转发分组的分类处理过程
当一个上游RRP分组到来时,首先要提取出分组header中的相关信息(比如:TTL、RI、PT 等字段)。
根据TTL判断分组的生存时间是否到期,如果TTL=0则删除该分组;如果TTL>=1则对TTL减1。
根据RI判断分组的发送方向是否正确,RI不正确且不在Wrapping状态则删除分组。
根据PT判断分组的类型,该分组如果是数据,则要进行地址的判断,如果是本地分组则发往客户端并从环上删除;如果是组播分组则发往客户端并向转发缓存发送;如果不是本地分组则向转发缓存发送;如果是控制分组,则进一步判断控制帧的类型:Usage、IPS或是Topology。
① Usage。
如果接收到的Usage帧CRC错误,则从buffer中删除;如果正确,则被发送至
usage buffer,再由转发判决器发送到反向环路(MATE)的公平性信息操作模块。
本方向新的
Usage帧由公平性信息操作模块产生,并直接由成帧器接口输出。
② IPS。
接收到的IPS帧被存放在一个系统微处理器可访问的SRAM中。
如果IPS帧 CRC错
误,则从buffer中删除;如果正确,则产生一个中断(IPS_NEW)。
系统微处理器响应并
清除这个中断,并同时开始读取接收的IPS分组;并根据接收的IPS分组对节点的工作状
态进行控制。
新的IPS Packet由Host 产生,并由 Host接口进入RPU发送上环路。
③ Topology。
接收到的Topology发送至Host。
新的Topology Packet由Host 产生,并由 Host
接口进入RPU发送上环路。
4、外部转发缓存器接口(External Transit Buffer Interface)
这个接口对作为转发缓存的外部SRAM进行读写操作。
外部SRAM被作为两块转发缓存使用,分别对应高优先级和低优先级。
主要功能包括:
对输入分组的优先级SC字段进行提取,并将提取出的优先级与寄存器中的设置进行比较,以判别优先级的高低,并分别送入对应的外部缓存区。
对低优先级的转发缓存(STQ)设置满、高、低三个水线,该接口按周期向前传模块提供当前时刻STQ的深度,前传模块以此判断STQ是否超过水线,进一步改变相应的前传策略。
对通过转发缓存的各个优先级的业务进行计数。
5、RPR前传模块(RPR Forward)
该模块统计本地流量(My_Usage)和转发流量(Fwd_Rate),调度向下游发送的分组,并负责完成折回(Wrapping)方式的保护倒换动作。
去掉由转发缓存出来的数据的时间戳,并根据时间戳计算转发延迟。
1)流量统计
(1)本地流量计数器(My_Usage Counter)
My_Usage 计数器为20位,负责对本地客户上载的低优先级业务进行计数:
My_Usage = My_Usage + Packet_Length
该计数器的计数值周期性减去D_Usage,周期为Decay Interval。
My_Usage = My_Usage-D_Usage
My_Usage计数值的增加和减少操作是独立进行的。
My_Usage值被送往公平性信息操作模块进行RRP公平信息的计算。
(2)转发流量计数器(Fwd_Rate Counter
Fwd_Rate也是一个20位计数器,负责对转发的环路上游低优先级业务进行计数:
Packet_Length
+
Fwd_Rate
=
Fwd_Rate
该计数器的计数值周期性减去D_Fwd,周期为Decay Interval。
Fwd_Rate = Fwd_Rate-D_Fwd
Fwd_Rate计数值的增加和减少操作是独立进行的。
Fwd_Rate值被送往公平性信息操作模块进行RRP公平信息的计算。
2)前传判决
RRP前传模块从由转发缓存(TB)和本地数据平台(Stage)送来的分组中提取出优先级,并根据优先级以及SDQ的剩余空间(水线)来判决当前应该传送的分组。
详细的前传处理规则如下:
图4 前传模块的发送处理规则
3)折回(Wrapping)操作
由微处理器改变相应的寄存器位,来控制前传数据的方向。
正常模式下,本端数据直接向成帧器输出接口前传。
折回模式下,本端数据折向MATE端的前传模块,而将来自MATE端前传模块的数据向成帧器输出接口前传。
6、 速率控制模块(Rate Limiter )
速率控制模块对Host 上载数据的速率进行控制,从而实现业务等级协商和带宽管理。
速率控制模块分为两部分, 基于STQ 水线信息的速率控制和本地发送整形器速率控制。
Packet
图5 速率控制信号
1) 基于STQ 水线信息的速率控制
外部缓存器接口向前传模块发送STQ 的水线信息,前传模块根据该信息产生输出控制信号STOP_LO 和STOP_HI 给速率控制模块,速率控制模块再向对应的业务客户发送暂停信号。
(1) 输出控制信号STOP_LO
如果STQ 水线超过低水线(Hi-threshod ),则前传模块产生一个内部控制信号STOP_LO 输出到率控制模块(Rate Limiter ),该模块产生相应的Pause_C 信号送往TXH 接口,以暂停客户端上载C 类分组,从而控制本地客户低优先级业务的上载速率。
(2) 输出控制信号STOP_HI
如果STQ 水线超过高水线(Full-threshod ),则前传模块产生一个内部控制信号STOP_HI 送往速率控制模块,该模块产生相应的Pause_A 、Pause_B 、Pause_C 信号送往TXH 接口,以暂停客户端上载所有分组。
2) 发送整形器控制
根据为A 、B 、C 三类业务分配的带宽,对其进行速率限制和整形。
如果超过速率的限制,则向对应的业务客户发送暂停信号。
速率限制和整形的原理如下:
① 采用信贷值的方法。
信贷值计数器在每个整形周期,以uDelta 作累加;在发送一个数
据帧后,信贷值计数器减dDelta 。
shape T ② uDelta 表示在一个整形周期内,客户允许向整形器发送数据的字节数。
uDelta 的设定主要基于和该整形器对应的客户业务速率。
shape T ③ dDelta 表示当前所发送的数据帧的大小。
④ 当信贷值小于一个最大传输单元(MUTsize )时,整形器向客户发送的Send 信号为0,禁
止客户继续送数据,整形器停止向Stage 缓存发送数据; ⑤ 当信贷值到达一个上限时,信贷值计数器不再累加。
图6 MAC整形器控制信号
7、RPR公平性操作模块(RPR Operation)
从下游收到公平性信息(FCM)后,送到MATE部分,一方面用该信息调整本地公平性业务的速率,另一方面用于计算向上游转发的公平性信息。
公平性操作模块分成3部分:
¾公平性信息转发处理模块
¾公平性信息计算处理模块
¾公平性消息CRC校验产生模块
图7 公平性操作信号
1)公平性信息转发处理
(1)如果下游站点比本地站点更拥塞,则
①如果下游拥塞是由上游造成的,则本地发送的FCM使用接收到的下游FCM中的
Rcvd-fair-rate值(归一化的Local_fair_rate——归一化:local_weight,aging_coefficient,
rate_ coefficient),地址使用接收到的FCM的地址。
②如果下游拥塞不是由上游站点造成的,则本地发送的FCM使用Full-rate值(表示上游
可以全速发送),地址使用本地地址。
(2)如果下游站点不比本地站点更拥塞,则
①如果本地站点拥塞,则计算本地的Local-fair-rate值,经过归一化后,由FCM向上游
站点发送,地址使用本地地址。
②如果本地无拥塞,则使用Full-rate值,由FCM向上游站点发送,地址使用本地地址。
图8 公平信息处理流程
2)公平性信息计算
(1)本地公平速率(Local-fair-rate)的计算
本地公平速率(Local-fair-rate)表示本地可供上游享用的环路非保留带宽,归一化后即为FCM中的Rcvd-fair-rate值。
图10本地公平速率的计算流程
①如本地无拥塞,则本地公平速率为所有环路非预留带宽(unreserved_ rate = Link_rate -
reserved_ rate)。
②如本地首次进入拥塞态,则本地公平速率为加权公平地享用所有环路非保留带宽
(local_fair_rate= unreserved_ rate*local_weight / sum_weight)。
③如果本地前面已进入拥塞态,且如果前次调整后本站点的公平业务发送速率过低
(add_rate + fw_rate < low_threshold),则逐步增加本地的Local-fair-rate,直到达到占用
所有非预留带宽(unreserved_ rate)。
④如果前面已进入拥塞态,且如果前次调整后本站点的公平业务发送速率仍然过高
(add_rate + fw_rate > high_threshold),则逐步减小本地的Local-fair-rate,直到0。
(2)允许速率(allowed_rate)的计算
allowed_rate用于限制本地插入的公平性业务(FE)。
①初始化后,allowed_rate等于则本地业务可占用所有非预留带宽。
②如果本地发生拥塞,allowed_rate等于local_fair_rate;
③如果本地无拥塞,allowed_rate按照一定的量值递增,以提高本地公平业务的发送速率,
直到达到占用所有非保留带宽。
(3)越塞允许速率(allowed_rate_congested)的计算
allowed_rate_congested用于限制本地插入的经过拥塞节点公平性业务。
①当收到的SC-FCM包含No-full-rate值时,则本地利用该值计算出本地的
Allow-rate-congestion值。
②当收到的SC-FCM为full-rate值时,则逐步增加allowed_rate_congested的值,以提高本
地经过拥塞节点的公平业务的发送速率,直到达到占用所有非保留带宽。
8、RPR同步模块(RPR Syncronizer)
每一个节点都运行在free-run模式下,接收的时钟信号来自输入数据中的RXFCLK信号,而发送的时钟信号又来自于本地。
时钟的频差可以通过控制节点的流量来进行调节。
从系统来看,同步模块实际上相当于一个DPLL,确保每一个节点发送相同的业务流量。
当一个节点发送过多的业务流量的时候,RRP同步模块向其中插入空闲带宽来降低其发送速率,反之,对一个“慢”节点来说,同步模块删除空闲带宽来增加速率。