APP下载

10GEPON系统ONU队列管理模块设计

2013-10-19朱华伟四川文理学院四川达州635000

河南科技 2013年17期
关键词:入队状态机队列

朱华伟(四川文理学院,四川 达州 635000)

0 引言

10G EPON系统继承了EPON系统的点到点仿真机制[1],这样逻辑上点到多点的物理链路被模拟为多条点到点的逻辑链路的集合,每条逻辑链路通过一个唯一的LLID标志。从OLT发送到ONU或者从ONU发送到OLT的数据帧均需包含LLID标志,不包含LLID标志的数据帧均会被当做非法帧,并被过滤掉。

802.3 av协议只为10G EPON系统规范了单LLID的标准数据传输模式[2],在目前网络传输多为多业务数据,不同业务数据对时效的要求差异很大的情况下,这种单LLID模式无法保证多业务的QOS。相较而言,多LLID模式改善了上述不足,该模式下的多LLID就好似多个单一的LLID,每个LLID由OLT的DBA单独调度。通过为每种业务的数据设置在特定的LLID链路传输,既可以提高数据传输的QOS,又可避免在ONU里对多业务数据进行调度的困难,减少ONU设计的复杂度[3]。

1 功能划分

队列管理模块接收来自用户侧的数据帧后,根据LLID模式配置,提取数据帧的优先级及长度信息,存储数据帧到相应的队列,同时向队列报告模块报告数据帧入队,供其更新队列长度报告表项。数据帧全部写入队列前,队列满溢出,则丢弃正在发送的数据帧。队列管理模块收到MAC的数据帧发送请求后,从队列组中调度出数据帧并发送给MAC,同时向队列长度报告逻辑发送数据帧出队指示,供其更新队列报告表项。图1所示为队列管理模块结构框图,由图可以看出,队列管理模块主要由数据接收处理模块,数据帧出入队指示模块,数据发送处理模块,队列组模块组成。

2 子模块设计

2.1 数据接收处理模块设计

数据接收处理模块接收到用户侧的数据帧后,在数据接收状态机的控制下,向队列组写入数据帧。数据接收状态机由空闲状态,帧入队状态,丢弃帧状态组成,状态之间的转换关系如图2所示。无数据传输时,状态机处于空闲状态;当收到用户侧的数据发送指示时,状态机从空闲状态转换为数据帧帧入队状态,此时,写数据逻辑从入队数据帧中提取本地优先级信息,根据本地优先级设置向对应的队列中写入数据,数据帧数据完全入队后,状态机重新恢复空闲状态。如果数据帧正在入队的过程中,队列溢出,状态机跳转到丢帧状态,写数据逻辑丢弃该数据帧已入队的数据,同时恢复该队列写数据地址指针值。

图2 数据接收状态机

2.2 队列出入队指示模块

当有数据帧入队或者出队时,均需向ONU队列报告逻辑发送数据帧入队或者出队信息,供报告逻辑更新队列长度报告列表表项。数据帧出队指示逻辑通过握手逻辑实现,当有数据帧出队时,数据帧出队指示逻辑开始向ONU报告逻辑发送出队指示信号,同时发送出队数据帧长度信息和对应队列指示信息;数据帧入队逻辑同数据帧出队逻辑类似,不同的是数据帧入队指示信号是在数据帧完全出队的时候发送。

2.3 队列组模块设计

队列组模块由8个块RAM和相应的队列控制器组成。队列组模块除了为每组队列维护读写地址指针,空满标志外,还维护了一个基址指针,供丢弃数据帧时的写地址复位。队列组模块响应数据接收处理模块的数据发送请求并向对应的队列写入数据,如果队列溢出,丢弃该数据帧数据,同时恢复数据帧写地址;此外,队列组模块响应MAC的数据发送请求,从对应队列读取数据,发送给MAC。

队列组的入口与数据帧的8个本地优先级一一对应,队列组的出口分别映射为8个逻辑链路,每个逻辑链路单独受OLT DBA动态带宽分配算法调度。同时,由于802.3av标准对每个ONU只规定了单一的LLID,这里在采取多LLID方案的同时,保留了单LLID的标准模式。与多LLID模式不同,在队列组出口,响应MAC的数据发送请求发送数据前需要进行基于严格优先级的队列调度。单LLID逻辑设计方法同多LLID逻辑实现方法基本相同,本文只针对LLID配置模式0,即单LLID模式设计方法及仿真结果进行阐述。

2.4 数据发送处理模块设计

数据发送处理逻辑主要完成队列出队操作,依据队列模式的不同,数据发送处理逻辑选择不同的队列调度方式从队列中调度数据。当队列模式为0时,调度方式为基于严格优先级的方式调度数据,8个队列分别存储的是8个优先级的队列,队列7优先级最高,其余队列优先级依次降低;当队列模式为1时,调度方式为按照LLID序列号的值调度数据,8个队列分别存储的是对应8个LLID序列的数据帧。

数据发送处理逻辑收到MAC发送来的数据发送指示信号的上升沿后,使用SP调度算法从队列中调度数据帧。队列组包含8个队列,分别对应8个优先级的数据,从队列0到队列7优先级依次升高。SP调度时,先从最高优先级队列调度数据帧,最高优先级队列数据发送完后,再从次优先级队列调度数据帧,然后依次类推,直到MAC数据发送指示变为无效。

确定调度队列后,开始从队列读出数据帧并发送给MAC,每次读取一个完整数据帧。数据读取与发送逻辑通过计数器逻辑实现,计数器逻辑包含剩余帧数据字节长度计数器和读数据周期计数器两个计数器,分别标识还需读取的数据帧的字节数和目前读数据的所处的周期数。后者用于标识数据帧长度信息所属的位置,从而用来初始化剩余帧数据字节长度计数器;前者用于控制从队列中读取数据的长度。

3 结束语

本文针对10G EPON系统ONU队列管理模块提出了一种设计方案,并使用Verilog语言进行了描述,编写Testbench对RTL电路进行了验证[4-5],仿真结果表明设计方案较好的实现了10G EPON系统ONU队列管理模块的队列管理功能。

[1]尧昱,张静,王允,尚逢亮.10G EPON技术及应用方案研究[J].广西:光通信技术,2011(11)

[2]朱华伟,侯晓荣,何峥.10G EPON系统ONU注册技术研究[J].光通信技术.2010(2)

[3]朱华伟.10G EPON系统ONU交换模块设计[D].成都:电子科技大学,2010:44-46

[4]伯杰龙.System Verilog验证方法学[M].北京:北京航空航天大学出版社,2007

[5]克里斯·斯皮尔著,张春,麦宋平,赵益新等译.System Verilog验证:测试平台编写指南[M].北京:科学出版社,2009

猜你喜欢

入队状态机队列
今天我入队——入队仪式
1+1我们这样学队章:我们的入队誓词
队列里的小秘密
基于多队列切换的SDN拥塞控制*
基于有限状态机的交会对接飞行任务规划方法
在队列里
今天我入队了
丰田加速驶入自动驾驶队列
入队风波
双口RAM读写正确性自动测试的有限状态机控制器设计方法