Atm信元重组共享缓存系统及其实现方法

文档序号:7755495阅读:184来源:国知局
专利名称:Atm信元重组共享缓存系统及其实现方法
技术领域
本发明属于计算机通信系统领域,具体涉及ATM技术,尤其涉及一种ATM信元重组共享缓存系统。此外,本发明还涉及一种ATM信元重组共享缓存的实现方法。
背景技术
ATM全称为“Asynchronous Transfer Mode”,中文名为“异步传输模式”。ATM是一项数据传输技术。ATM是以信元为基础的一种分组交换和复用技术,它是一种为了多种业务设计的通用的面向连接的传输模式。其中ATM重组位于ATM的AAL(ATM adaptation layer, ATM适配层)层中SAR(segmentation and reassembly,分割和重组)功能的一部分,用于完成将接收到的ATM信元重组成上层能够辨识的格式,如以太网包,IP包。ATM重组需要缓存用于接收基于PVC(指在两个用户(DTE)之间建立起来的永久性虚电路连接,PVC是通过网管手工建立的,两端用户一开机即可使用)的信元。每个 PVC攒齐一个包(即收到尾信元)后,就可从缓存中调度出该包做ATM的重组。由于在 DSLAM(Digital SubscriberLine Access Multiplexer,数字用户线路接入复用器)芯片中需求的PVC比较多,势必意味着该缓存容量要求高。每个PVC维持一个包和一个信元的计数器。当包计数器不为0时就通知调度模块该PVC攒齐了一个数据包,准备好做ATM重组。 当出现拥塞时用信元计数器实现早期包丢弃(EPD)和部分包丢弃(PPD)。从传统实现方式看存在如下问题1)硬件实现往往外挂RAM(DDR,SDRAM)作为接收缓存,在高速流量情况下很难保证带宽要求。2)出现拥塞的时候PPD结合EPD也还是很难保证错包进入重组功能,导致后续流
量有震动。3)需要在多PVC(可能多至1K)之间做调度,增加难度和硬件资源。4)如果始终接收不到某个PVC数据包尾信元,那么该PVC数据包之前已存信元是不会调度出去,占用了缓存空间影响其它PVC的接收。

发明内容
本发明要解决的技术问题是提供一种ATM信元重组共享缓存的实现方法,该方法能清除不需要的信元,同时完成释放相应的缓存空间,会使缓存管理更加公平合理,处理带宽高,逻辑实现简单。为此,本发明还提供一种ATM信元重组共享缓存系统。为解决上述技术问题,本发明一种ATM信元重组共享缓存的实现方法,采用片内 SRAM (SRAM是英文Matic RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据)作为接收缓存,所有PVC共享该缓存,用链表实现,该方法主要包括如下步骤(1)初始化链表,建立FREE链表和ACTIVE链表;该FREE链表指向缓存剩余空间, 该ACTIVE链表表示被缓存PVC包(或称PVC数据包)占用空间;初始化每个PVC属性值为
O)PVC接收信元,判断接收到的信元是否是尾信元;接收到非尾信元时进入步骤 (3),接收到尾信元时进入步骤;(3)接收到非尾信元时,读取PVC属性值判断是否能写入缓存,如是,则从FREE链表中申请一个地址存入共享缓存,同时更新该PVC属性值;如否,则仅仅更新PVC属性值,同时丢弃该信元;(4)接收到尾信元时,读取PVC属性值判断是否能写入缓存,如是,则从FREE链表中申请一个地址存入共享缓存,把该PVC包写入ACTIVE链表中,同时更新该PVC属性值,并且把该PVC包的信息写入FIFO (FIFO是英文First In First Out的缩写,是一种先入先出的数据缓存器);如否,则更新PVC属性值,并且丢弃该信元,同时把原来写入缓存信元的地址写入FREE链表完成链表rollback(回滚)功能;在步骤⑵、(3)、(4)的过程中,扫描器固定时序地访问PVC属性值和链表。在步骤(1)中,所述PVC属性值为CRT_CELL_NUM表示当前PVC包已存信元数目, ALL_CELL_NUM表示该PVC所有包已存信元数目,ERR0R_FLAG表示当前PVC包是否是错误或者丢信元,ACTIVE_FLAG表示该PVC是否在接收信元。在步骤C3)和步骤(4)中,所述读取PVC属性值判断是否能写入缓存,其判断过程如下比较ALL_CELL_NUM是否小于最大门限且同时ERR0R_FLAG是否是0,如是则能写入缓存。在步骤(3)中,如是,则从FREE链表中申请一个地址存入共享缓存,同时更新该 PVC属性值,所述更新该PVC属性值具体为CRT_CELL_NUM加1,ALL_CELL_NUM加1,ERR0R_ FLAG 写入 0,ACTIVE_FLAG 写入 1。在步骤(3)中,如否,则仅仅更新PVC属性值,具体为CRT_CELL_NUM保持不变, ALL_CELL_NUM 保持不变,ERR0R_FLAG 写入 1,ACTIVE_FLAG 写入 1。在步骤(4)中,如是,则从FREE链表中申请一个地址存入共享缓存,把该PVC包写入ACTIVE链表中,同时更新该PVC属性值,所述更新该PVC属性值具体为CRT_CELL_NUM写入 0,ALL_CELL_NUM 加 1,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 0。在步骤⑷中,如否,则更新PVC属性值,具体为CRT_CELL_NUM写入0,ALL_CELL_ NUM 减去原来的 CRT_CELL_NUM,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 1。在步骤C3)和步骤(4)中,所述从FREE链表中申请一个地址存入共享缓存的过程中还包括如下步骤记录PVC指针;该PVC指针是PVC头指针或尾指针,指当前PVC包的第一个信元在缓存中的地址以及当前信元在缓存中的地址;在步骤(4)中,当接收到尾信元之后,如判断可以写入缓存,则把该PVC头指针串接在ACTIVE链后面,完成该PVC包的入链;如判断不可以写入缓存或者尾信元超时,则把该PVC头指针串接在FREE链后面,完成该链表的rollkick功能。所述在步骤0)、(3)、(4)的过程中,扫描器固定时序地访问PVC属性值和链表,具体为如果发现ACTIVE_FLAG为1,表明尾信元未超时,则仅仅把ACTIVE_FLAG写成0,其他值不变;如果ACTIVE_FLAG为0,表明尾信元超时,就更新PVC属性值,CRT_CELL_NUM写入 0,ALL_CELL_NUM 减去原来的 CRT_CELL_NUM,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 1,且把原来已存信元的地址写入FREE链表完成了链表rollkick功能。
此外,本发明还提供一种ATM信元重组共享缓存系统,包括PVC,两个用户之间建立起来的永久性虚电路,用于接收信元;采用片内SRAM作为接收缓存,该PVC共享该缓存;链表,包括指向缓存剩余空间的FREE链表和表示被缓存PVC包占用空间的ACTIVE 链表,该FREE链表用于接收PVC的申请,将FREE链表中的地址传送到PVC,并通过PVC将该地址存入该缓存;扫描器,用于固定时序的访问PVC的属性值和链表;FIFO,用于当PVC收到某个PVC数据包的尾信元后把该PVC数据包的信息写入 FIFO。本发明的有益效果在于本发明用片内SRAM作为接收缓存,所有PVC共享该缓存, 用链表实现。该链表有rollkick的功能,当某个PVC接收到错信元,或者该PVC的信元数超过门限(该门限用于限制每个PVC占用共享缓存的最大信元数),或者该链表的剩余空间接近零时,或者该PVC数据包的尾信元超时后,会清除已经写入缓存的信元(以包为单位), 同时完成释放相应的空间。同时为了避免在多PVC之间进行复杂调度,当收到某个PVC数据包的尾信元后就把该包的信息写入FIFO,这样就实现先入先出的简单调度。本发明会使缓存管理更加公平合理,处理带宽高,逻辑实现简单。


图1是本发明方法中非尾信元的流程示意图;图2是本发明方法中尾信元的流程示意图;图3是本发明中后台扫描器循环扫描PVC的属性值ACTIVE_FLAG的示意图;图4是本发明系统的结构示意图。
具体实施例方式下面给出在IPDSLAM-10G芯片中的实施例。本发明的ATM信元重组共享缓存的实现方法,主要包括如下步骤1.初始化链表,建立FREE链表(指向缓存剩余空间)和ACTIVE链表(表示被缓存PVC包占用空间)。初始化每个PVC属性值为0(CRT_CELL_NUM表示当前PVC包已存信元数目,ALL_CELL_NUM表示该PVC所有包已存信元数目,ERR0R_FLAG表示当前PVC包是否是错误或者丢信元(当前的PVC包错误是指其中接受到的ATM信元有HEC(header errorcontrol,头部错误控制)错误;当前的PVC包丢信元是指该PVC的已收信元数超过门限(该门限用于限制每个PVC占用共享缓存最大信元数)或者FREE链表的剩余空间接近 0时引起的),ACTIVE_FLAG表示该PVC是否在接收信元)。2. PVC接收信元,判断接收到的信元是否是尾信元;接收到非尾信元时进入步骤 3,接收到尾信元时进入步骤4。3.如图1所示,接收到非尾信元时,1)读取PVC属性值判断是否能写入缓存,比较ALL_CELL_NUM是否小于最大门限且同时ERR0R_FLAG是否是0,如是则进入下一步;2)从 FREE链表中申请一个地址;3)记录PVC指针;记录PVC指针是指头指针/尾指针,指当前 PVC包的第一个信元在缓存中的地址以及当前信元在缓存中的地址;4)更新该PVC属性值(CRT_CELL_NUM 加 1,ALL_CELL_NUM 加 1,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 1) ;5)将步骤2)申请的地址存入共享缓存。如步骤1)的判断结果是否,则仅仅更新PVC属性值(CRT_ CELL_NUM 保持不变,ALL_CELL_NUM 保持不变,ERR0R_FLAG 写入 1,ACTIVE_FLAG 写入 1),同时丢弃该信元。4.如图2所示,接收到尾信元时,1)读取PVC属性值判断是否能写入缓存,比较 ALL_CELL_NUM是否小于最大门限同时ERR0R_FLAG是否是0,如是则进入下一步;2)从FREE 链表中申请一个地址;幻记录PVC指针;记录PVC指针是指头指针/尾指针,指当前PVC 包的第一个信元在缓存中的地址以及当前信元在缓存中的地址;记录PVC指针的作用有 A.当接收到尾信元之后,判断可以写入缓存,则把该PVC头指针串接在ACTIVE链后面,完成该PVC包的入链;B.当接收到尾信元之后,判断不可以写入缓存或者尾信元超时,则把该 PVC头指针串接在FREE链后面,完成该链表的rollhck功能;4)更新该PVC属性值(CRT_ CELL_NUM 写入 0,ALL_CELL_NUM 加 1,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 0) ;5)将步骤 2)申请的地址存入共享缓存;6)把该PVC包信息存入调度FIFO,同时把PVC头指针串接在 ACTIVE链后面,完成该PVC包写入ACTIVE链表中。如步骤1)的判断结果是否(即PVC属性值不能写入缓存或者尾信元超时),则更新PVC属性值(CRT_CELL_NUM写入0,ALL_CELL_ NUM减去原来的CRT_CELL_NUM,ERR0R_FLAG写入0,ACTIVE_FLAG写入1),并且丢弃该信元, 同时把原来写入缓存信元的地址写入FREE链表(把该PVC头指针串接在FREE链后面)完成了链表rollkick功能。5.如图3所示,后台有个扫描器,固定时序的扫描PVC的属性值和链表,判断尾信元是否超时,如果发现ACTIVE_FLAG为1 (表明尾信元未超时),则仅仅把ACTIVE_FLAG写成 0,其他值不变;如果ACTIVE_FLAG为0 (表明尾信元超时),就更新PVC属性值(CRT_CELL_ NUM 写入 0,ALL_CELL_NUM 减去原来的 CRT_CELL_NUM,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入1),且把原来已存信元的地址写入FREE链表完成了链表rollkick功能。该扫描器固定时序的扫描PVC的属性值和链表是位于步骤2,3,4整个过程中的,该扫描器访问PVC属性值和链表都是在信元之间的间隙去访问的,因此该功能对于步骤2,3,4整个过程是并行发生的。本发明的ATM信元重组共享缓存系统的结构见图4,该系统包括PVC,两个用户之间建立起来的永久性虚电路,用于接收信元;采用片内SRAM作为接收缓存,该PVC共享该缓存;链表,包括指向所有缓存的FREE链表和表示空链的ACTIVE链表,该FREE链表用于接收PVC的申请,将FREE链表中的地址传送到PVC,并通过PVC将该地址存入该缓存;扫描器,用于固定时序的访问PVC的属性值和链表;FIFO,用于当PVC收到某个PVC数据包的尾信元后把该PVC数据包的信息写入 FIFO。
权利要求
1.一种ATM信元重组共享缓存的实现方法,其特征在于,采用片内SRAM作为接收缓存, 所有PVC共享该缓存,用链表实现,该方法主要包括如下步骤(1)初始化链表,建立FREE链表和ACTIVE链表;该FREE链表指向缓存剩余空间,该 ACTIVE链表表示被缓存PVC包占用空间;初始化每个PVC属性值为0 ;Q)PVC接收信元,判断接收到的信元是否是尾信元;接收到非尾信元时进入步骤(3), 接收到尾信元时进入步骤;(3)接收到非尾信元时,读取PVC属性值判断是否能写入缓存,如是,则从FREE链表中申请一个地址存入共享缓存,同时更新该PVC属性值;如否,则仅仅更新PVC属性值,同时丢弃该信元;(4)接收到尾信元时,读取PVC属性值判断是否能写入缓存,如是,则从FREE链表中申请一个地址存入共享缓存,把该PVC包写入ACTIVE链表中,同时更新该PVC属性值,并且把该PVC包的信息写入FIFO ;如否,则更新PVC属性值,并且丢弃该信元,同时把原来写入缓存信元的地址写入FREE链表完成链表rollhck功能;在步骤O)、(3)、的过程中,扫描器固定时序地访问PVC属性值和链表。
2.如权利要求1所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(1) 中,所述PVC属性值为CRT_CELL_NUM表示当前PVC包已存信元数目,ALL_CELL_NUM表示该PVC所有包已存信元数目,ERR0R_FLAG表示当前PVC包是否是错误或者丢信元,ACTIVE_ FLAG表示该PVC是否在接收信元。
3.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(3)和步骤(4)中,所述读取PVC属性值判断是否能写入缓存,其判断过程如下比较ALL_CELL_ NUM是否小于最大门限且同时ERR0R_FLAG是否是0,如是则能写入缓存。
4.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(3) 中,如是,则从FREE链表中申请一个地址存入共享缓存,同时更新该PVC属性值,所述更新该 PVC 属性值具体为CRT_CELL_NUM 加 1,ALL_CELL_NUM 加 1,ERR0R_FLAG 写入 0,ACTIVE— FLAG写入1。
5.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(3) 中,如否,则仅仅更新PVC属性值,具体为CRT_CELL_NUM保持不变,ALL_CELL_NUM保持不变,ERR0R_FLAG 写入 1,ACTIVE_FLAG 写入 1。
6.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(4) 中,如是,则从FREE链表中申请一个地址存入共享缓存,把该PVC包写入ACTIVE链表中,同时更新该PVC属性值,所述更新该PVC属性值具体为CRT_CELL_NUM写入0,ALL_CELL_NUM 加 1,ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 0。
7.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(4) 中,如否,则更新PVC属性值,具体为CRT_CELL_NUM写入0,ALL_CELL_NUM减去原来的CRT_ CELL_NUM, ERR0R_FLAG 写入 0,ACTIVE_FLAG 写入 1。
8.如权利要求1所述的ATM信元重组共享缓存的实现方法,其特征在于,在步骤(3)和步骤中,所述从FREE链表中申请一个地址存入共享缓存的过程中还包括如下步骤记录PVC指针;该PVC指针是PVC头指针或尾指针,指当前PVC包的第一个信元在缓存中的地址以及当前信元在缓存中的地址;在步骤中,当接收到尾信元之后,如判断可以写入缓存,则把该PVC头指针串接在ACTIVE链后面,完成该PVC包的入链;如判断不可以写入缓存或者尾信元超时,则把该PVC头指针串接在FREE链后面,完成该链表的rollhck功能。
9.如权利要求2所述的ATM信元重组共享缓存的实现方法,其特征在于,所述在步骤O)、(3)、(4)的过程中,扫描器固定时序地访问PVC属性值和链表,具体为如果发现 ACTIVE_FLAG为1,表明尾信元未超时,则仅仅把ACTIVE_FLAG写成0,其他值不变;如果 ACTIVE_FLAG为0,表明尾信元超时,就更新PVC属性值,CRT_CELL_NUM写入0,ALL_CELL_ NUM减去原来的CRT_CELL_NUM,ERROR_FLAG写入0,ACTIVE_FLAG写入1,且把原来已存信元的地址写入FREE链表完成了链表rollkick功能。
10.一种ATM信元重组共享缓存系统,其特征在于,包括PVC,两个用户之间建立起来的永久性虚电路,用于接收信元;采用片内SRAM作为接收缓存,该PVC共享该缓存;链表,包括指向缓存剩余空间的FREE链表和表示被缓存PVC包占用空间的ACTIVE链表,该FREE链表用于接收PVC的申请,将FREE链表中的地址传送到PVC,并通过PVC将该地址存入该缓存;扫描器,用于固定时序的访问PVC的属性值和链表;FIFO,用于当PVC收到某个PVC数据包的尾信元后把该PVC数据包的信息写入FIFO。
全文摘要
本发明公开了一种ATM信元重组共享缓存系统,包括PVC,用于接收信元;采用片内SRAM作为接收缓存,PVC共享该缓存;链表,包括指向缓存剩余空间的FREE链表和表示被缓存PVC包占用空间的ACTIVE链表,FREE链表用于接收PVC的申请,将FREE链表中的地址传送到PVC,并通过PVC将该地址存入该缓存;扫描器,用于固定时序的访问PVC的属性值和链表;FIFO,用于当PVC收到某个PVC包的尾信元后把该PVC包的信息写入FIFO。此外,本发明还公开了ATM信元重组共享缓存的实现方法。本发明能清除不需要的信元,同时完成释放相应的缓存空间,会使缓存管理更加公平合理,处理带宽高,逻辑实现简单。
文档编号H04L12/56GK102347882SQ201010239780
公开日2012年2月8日 申请日期2010年7月29日 优先权日2010年7月29日
发明者何运锋, 蔡云阳 申请人:高通创锐讯通讯科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1