CN1984025B - 释放被无效占用的资源的方法和存储转发装置 - Google Patents
释放被无效占用的资源的方法和存储转发装置 Download PDFInfo
- Publication number
- CN1984025B CN1984025B CN2006100783810A CN200610078381A CN1984025B CN 1984025 B CN1984025 B CN 1984025B CN 2006100783810 A CN2006100783810 A CN 2006100783810A CN 200610078381 A CN200610078381 A CN 200610078381A CN 1984025 B CN1984025 B CN 1984025B
- Authority
- CN
- China
- Prior art keywords
- output port
- timer
- data
- data message
- timing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种释放被无效占用的资源的方法和存储转发装置,其核心是:当检测到输出端口上没有数据报文发送时,则启动对应所述输出端口而设置的定时器开始计时;当所述定时器的计时时间达到定时周期时,释放被无效占用的资源。通过本发明,当输出端口工作异常时,本发明不仅能够及时释放已经被分配的资源,而且不需要CPU的参与,不需要软件的运行。
Description
技术领域
本发明涉及通信领域,尤其涉及存储转发技术。
背景技术
在数据通信的芯片中通常使用如图1所示的“存储-转发”的结构,该结构包括接收管理模块、报文数据的缓存模块、转发处理模块和发送管理模块。所述接收管理模块包括至少一个接收端口,所述发送管理模块包括至少一个输出端口,以及对应所述输出端口的输出队列。
在进行数据通信时,所述接收管理模块通过各个接收端口将报文数据完整地接收下来,然后向报文数据缓存模块申请相应的缓存资源,如果不能够申请到相应的缓存资源,则将接收到的报文数据丢弃掉;如果能够申请到相应的缓存资源,则所述接收管理模块会获得存储接收到的报文数据的存储地址,并按照所述存储地址将接收到的数据存储到报文数据缓存模块中,同时将所述存储地址与报文数据的部分内容(包括位于报文数据头部的“目的地址”信息与“源地址”信息等)作为转发处理信息,发送给所述转发处理模块;所述转发处理模块对转发处理信息进行分析处理,并根据分析结果确定报文数据的转发信息,包括报文数据是否需要丢弃,或是转发到哪个输出端口等。当所述转发处理模块得出报文数据的转发信息后,将根据所述转发信息将报文数据对应的存储地址信息写入到每个输出端口对应的“先进先出”的输出队列中,然后等待发送。所述发送管理模块根据输出端口输出数据的情况读取输出队列中的地址信息,并根据所述地址信息从报文数据缓存模块
中读取对应所述地址的报文数据,然后通过对应的输出端口发送出去。
当报文数据从输出端口输出后,所述芯片释放被所述报文数据所占用的缓存资源和队列资源。
上述过程中,当芯片对当前数据报文的转发处理信息进行分析处理时,接收端口可能会接收到后续到达的一些数据报文,此时芯片必须分配一些缓存资源来对报文数据进行存储;然而这些存储资源与队列资源要等到报文数据从输出端口发送出去后才能被回收再次利用。另外,在芯片进行工作的过程中,有时会出现某些输出端口突然链路中断的情况,例如网线断开、突然停电、用户没有按照规定程序关闭对接的网络设备等,此时在芯片中已经有一些缓存或队列资源分配给该输出端口,如果这些端口不能够及时恢复正常,那么这些已经被分配的缓存或队列资源将会被长时间占用,不能再被其它端口利用,从而对芯片的性能造成影响。因此需要经常检测输出端口的工作状态,以便及时判断链路的连接状态,并当链路中断时,能够及时释放已经被分配的缓存或队列资源。
与本发明有关的现有技术一提供了一种释放已经被分配的缓存或队列资源的方法,其主要思想是:
发送管理模块不断检查输出端口上的电路连接信号,即Link信号来获知输出端口的链路的连接状态,并将检测到的信息主动上报给CPU;当所述CPU根据所述上报的信息获知输出端口发生链路中断后,控制所述发送管理模块不断地从相应的队列、缓存中将发送到该输出端口的数据报文丢弃,直至所述CPU获知到输出端口的链路恢复连接,则停止这种丢弃处理,恢复正常的数据报文发送。
现有技术一需要CPU进行处理,从而会增加CPU的负担。
与本发明有关的现有技术二提供了另一种释放已经被分配的缓存或队列资源的方法,其主要思想是:
通过高层软件定时地、不断地检查输出端口是否在发送数据(特别是一些协议类型的数据报文),并根据检测到的信息判断链路是否一直在线;当检查到输出端口发生链路中断后,不断地从相应的队列、缓存中将发送到该输出端口的数据报文丢弃,从而实现被占用资源的回收。一旦重新检查到端口的链路恢复连接,则停止这种丢弃处理,恢复正常的数据报文发送。
现有技术二需要高层软件来进行处理,会造成软件运行开销,增加了运行软件的CPU的负担。
发明内容
本发明的目的是提供一种释放被无效占用的资源的方法和存储转发装置,通过本发明,解决了现有技术中当输出端口工作异常时,为实现被占用资源的回收,需要CPU的参与,或需要运行高层软件来进行处理等弊端。
本发明的目的是通过以下技术方案实现的:
本发明提供一种释放被无效占用的资源的方法,其包括:
A、当检测到输出端口上没有数据报文发送时,则启动对应所述输出端口而设置的定时器开始计时;
B、当所述定时器的计时时间达到定时周期时,释放被无效占用的数据资源。
其中,所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
其中,所述步骤A具体包括:
发送管理模块检测设置在其内的各个输出端口上是否有数据报文发送,并当检测到某一输出端口上没有数据报文发送时,则启动对应所述输出端口而设置的定时器开始计时;
或,
发送管理模块检测设置在其外部的各个输出端口上是否有数据报文发
送,并当检测到某一输出端口上没有数据报文发送时,则对应所述输出端口而设置的定时器开始计时。
其中,在所述步骤B具体包括:
B1、在所述定时器的计时时间未到达定时周期之前,继续检测所述输出端口上是否有数据报文正常发送,并且当检测到所述输出端口上有数据报文发送时,则将所述定时器进行复位,并停止计时,然后继续步骤A;当检测到所述输出端口上没有数据报文发送时,则执行步骤B2;
B2、当所述定时器的定时时间达到定时周期时,则读取所述输出端口对应的输出队列中的存储地址,并根据所述存储地址从报文数据缓存模块中读取对应所述存储地址的报文数据,然后将其丢弃掉,并释放所述存储地址对应的队列资源以及所述报文数据对应的缓存资源;同时将所述定时器进行复位,然后转入步骤A。
本发明提供一种存储转发装置,包括至少一个输出端口,其中,对应每一个输出端口还包括一个定时器,用于当输出端口没有数据报文发送时,则启动开始计时,并当计时时间达到定时周期时,则触发所述存储转发装置释放被无效占用的数据资源。
其中,所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
其中,所述定时器位于输出端口内部,或位于输出端口的外部。
其中,所述的存储转发装置,还包括:
发送管理模块,用于检测所述输出端口是否有数据报文发送,当没有数据报文发送时,发送信号触发所述定时器;并且当定时器的计时时间到达定时周期时,释放被无效占用的数据资源。
其中,所述被无效占用的数据资源包括:
已经分配给输出端口但不能在定时器的定时周期内被发送的输出队列中
的队列资源;和对应在报文数据缓存模块中缓存的报文资源。
其中,所述输出端口位于所述发送管理模块内部,或位于所述发送管理模块外部,并与所述发送管理模块连接。
由上述本发明提供的技术方案可以看出,本发明中,当检测到某个输出端口上没有数据报文发送时,启动对应所述输出端口而设置的定时器开始计时;并当所述定时器的计时时间达到定时周期时,释放被无效占用的资源。因此当输出端口工作异常时,本发明不仅能够及时释放已经被分配的资源,而且不需要CPU的参与,不需要软件的运行。
附图说明
图1为背景技术中给出的“存储-转发”结构的芯片的工作原理图;
图2为本发明提供的第一实施例的流程图;
图3为本发明提供的第二实施例的原理图;
图4为本发明提供的第三实施例中当输出端口设置在发送管理模块外部,并且各个定时器设置在发送管理模块中,并与各个输出端口对应时的存储转发装置的原理图。
具体实施方式
对“存储-转发”结构的数据通信芯片,当其在工作过程中出现某些输出端口发生链路突然中断的情况(例如网线断开、突然停电、用户没有按照规定程序离线等)时,此时在芯片中已经有一些缓存资源或队列资源分配给该输出端口,这些资源被称为被无效占用的资源,如果这些资源得到及时的释放,则能够使有限的资源得到充分的利用,而且如果没有CPU的参与或者
高层软件的参与就能够及时释放被无效占用的资源,则更为理想。
本发明提供了第一实施例是不需要CPU参与或者高层软件的参与就能够及时释放被无效占用的资源的一种方法,其核心是:对应各个输出端口设置一个定时器,当所述发送管理模块检测到某个输出端口上没有数据报文发送时,则启动对应所述输出端口上的定时器开始计时。当所述定时器的计时时间达到定时周期时,则所述发送管理模块对无效占用的资源进行释放。其具体实施过程如图2所示,包括如下步骤:
步骤1,对应各个输出端口设置一个定时器,并设定所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
所述定时器只有在对应的输出端口上没有数据报文发送时,才开始计时,当对应的输出端口上有数据报文正常输出时,则所述定时器处于复位状态,不会进行计时处理。
所述定时器的定时周期可以设置不同的数值,以适应不同的工作情况。
步骤2,发送管理模块检测各个输出端口上是否有数据报文发送,并当检测到某一输出端口上没有数据报文发送时,则执行步骤3,即启动设置在所述输出端口上的定时器开始计时,然后执行步骤5;当检测到各个输出端口均有数据报文发送时,则执行步骤4,即将所述定时器置于复位状态,然后继续步骤2。
步骤5,在所述定时器的计时时间未到达定时周期之前,继续检测所述输出端口上是否有数据报文正常发送,当所述发送管理模块检测到所述输出端口上有数据报文发送时,则执行步骤6,即将所述定时器进行复位,并停止计时,然后继续步骤2;当检测到所述输出端口上没有数据报文发送时,则执行步骤7。
步骤7,当所述定时器的定时时间达到定时周期时,则所述发送管理模块读取与所述输出端口对应的输出队列中的存储地址信息,并根据所述存储地
址信息从报文数据缓存模块中读取对应所述存储地址的报文数据,然后将其丢弃掉,释放所述存储地址信息对应的队列资源以及所述报文数据对应的缓存资源。同时将所述定时器进行复位,然后转入步骤2。
一旦输出端口的链路发生中断,则输出端口上将长时间不能发送数据保文,这时所述输出端口上的定时器可以达到规定的定时周期。
本发明提供的第二实施例,是一种存储转发装置,其工作原理如图3所示,包括:
接收管理模块、报文数据缓存模块、转发处理模块和发送管理模块;其中所述接收管理模块包括至少一个接收端口,所述发送管理模块包括至少一个输出端口、对应所述输出端口的输出队列以及设置在各个输出端口上的定时器;所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
在进行数据通信时,所述接收管理模块通过所述各个接收端口将报文数据完整地接收下来,然后向所述报文数据缓存模块申请相应的缓存资源,如果不能够申请到相应的缓存资源,则将接收到的报文数据丢弃掉;如果能够申请到相应的缓存资源,则所述接收管理模块会获得存储接收到的报文数据的存储地址,并按照所述存储地址将接收到的数据存储到所述报文数据缓存模块中,同时将所述存储地址与报文数据中的部分内容信息(包括位于报文数据头部的“目的地址”信息与“源地址”信息等)作为转发处理信息,发送给所述转发处理模块。
所述转发处理模块对转发处理信息进行分析处理,并根据分析结果确定报文数据的转发信息,包括报文数据是否需要丢弃,或是转发到哪个输出端口等。当转发处理模块得出报文数据的转发信息后,将根据所述转发信息将报文数据对应的存储地址写入到所述发送管理模块中的对应的输出端口的
“先进先出”的输出队列中,然后等待发送。
所述发送管理模块检测所述输出端口上是否有数据报文发送,当检测到所述输出端口上有数据报文正常发送时,则不断读取所述输出端口对应的输出队列中的存储地址,并根据所述存储地址从报文数据缓存模块中读取对应所述存储地址的报文数据,然后通过所述输出端口发送出去。
当所述发送管理模块检测到所述输出端口上没有数据报文发送时,则启动设置在所述输出端口上的定时器开始计时;如果在所述定时器的计时时间未到达定时周期之前,并且所述发送管理模块检测到所述输出端口上有数据报文发送时,则所述发送管理模块将所述定时器进行复位,并停止计时。如果在所述定时器的计时时间到达定时周期之前,始终没有数据报文在所述输出端口上发送,则所述定时器的定时时间会达到定时周期,此时所述定时器会触发所述发送管理模块释放被无效占用的资源:也就是说,所述发送管理模块则读取所述输出端口对应的输出队列中的存储地址,并根据所述存储地址从报文数据缓存模块中读取对应所述存储地址的报文数据,然后将其丢弃掉,并释放所述存储地址对应的队列资源以及所述报文数据对应的缓存资源。随后将所述定时器复位,重新开始计时,这样周而复始,每当所述定时器的计时时间达到其定时周期时,则丢弃一个数据报文,并释放相应的缓存和队列资源。当所述发送管理模块检测到所述端口上有数据报文发送时,才停止丢弃。
上述实施例中,所述定时器也可以不设置在各个输出端口上,而独立于各个输出端口而设置在发送管理模块中,但此时所述各个定时器仍需要对应各个输出端口。
本发明提供的第三实施例,是另一种存储转发装置,其与第二实施例的区别在于,所述输出端口设置在发送管理模块外部,并与所述发送管理模块连接。此时各个定时器可以设置在发送管理模块中,并且与各个输出端口对
应;各个定时器也可以设置在对应的各个输出端口上。如图4所示给出了输出端口设置在发送管理模块外部,并且各个定时器设置在发送管理模块中,并与各个输出端口对应时的存储转发装置的原理图。
第三实施例中各个模块与定时器间的信息传递过程与第二实施例基本类似,这里不再详细描述。
由上述本发明的具体实施方案可以看出,本发明中当检测到某个输出端口上没有数据报文发送时,启动对应所述输出端口而设置的定时器开始计时;并当所述定时器的计时时间达到定时周期时,释放被无效占用的资源。因此当输出端口工作异常时,本发明不仅能够及时释放已经被分配的资源,而且不需要CPU的参与,不需要软件的运行。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种释放被无效占用的资源的方法,其特征在于,包括:
A、当检测到输出端口上没有数据报文发送时,则启动对应所述输出端口而设置的定时器开始计时;
B、当所述定时器的计时时间达到定时周期时,释放被无效占用的数据资源;
其中,所述步骤B包括:
B1、在所述定时器的计时时间未到达定时周期之前,继续检测所述输出端口上是否有数据报文正常发送,并且当检测到所述输出端口上有数据报文发送时,则将所述定时器进行复位,并停止计时,然后继续步骤A;当检测到所述输出端口上没有数据报文发送时,则执行步骤B2;
B2、当所述定时器的定时时间达到定时周期时,则读取所述输出端口对应的输出队列中的存储地址,并根据所述存储地址从报文数据缓存模块中读取对应所述存储地址的报文数据,然后将其丢弃掉,并释放所述存储地址对应的队列资源以及所述报文数据对应的缓存资源;同时将所述定时器进行复位,然后转入步骤A。
2.根据权利要求1所述的方法,其特征在于:
所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤A具体包括:
发送管理模块检测设置在其内的各个输出端口上是否有数据报文发送,并当检测到某一输出端口上没有数据报文发送时,则启动对应所述输出端口而设置的定时器开始计时;
或,
发送管理模块检测设置在其外部的各个输出端口上是否有数据报文发送,并当检测到某一输出端口上没有数据报文发送时,则对应所述输出端口而设置的定时器开始计时。
4.一种存储转发装置,包括至少一个输出端口,其特征在于,对应每一个输出端口还包括一个定时器,用于当输出端口没有数据报文发送时,则启动开始计时,并当计时时间达到定时周期时,则触发所述存储转发装置释放被无效占用的数据资源;
还包括:发送管理模块,用于检测所述输出端口是否有数据报文发送,当没有数据报文发送时,发送信号触发所述定时器;并且当定时器的计时时间到达定时周期时,释放已经分配给输出端口但不能在定时器的定时周期内被发送的输出队列中的队列资源,以及对应在报文数据缓存模块中缓存的报文资源。
5.根据权利要求4所述的存储转发装置,其特征在于:
所述定时器的定时周期大于正常输出时每一个数据报文发送时所需要的时间。
6.根据权利要求4所述的存储转发装置,其特征在于:
所述定时器位于输出端口内部,或位于输出端口的外部。
7.根据权利要求4所述的存储转发装置,其特征在于:
所述输出端口位于所述发送管理模块内部,或位于所述发送管理模块外部,并与所述发送管理模块连接。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2006100783810A CN1984025B (zh) | 2006-05-17 | 2006-05-17 | 释放被无效占用的资源的方法和存储转发装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2006100783810A CN1984025B (zh) | 2006-05-17 | 2006-05-17 | 释放被无效占用的资源的方法和存储转发装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1984025A CN1984025A (zh) | 2007-06-20 |
| CN1984025B true CN1984025B (zh) | 2012-05-30 |
Family
ID=38166273
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2006100783810A Expired - Fee Related CN1984025B (zh) | 2006-05-17 | 2006-05-17 | 释放被无效占用的资源的方法和存储转发装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN1984025B (zh) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101699795B (zh) * | 2009-10-29 | 2012-07-18 | 中兴通讯股份有限公司 | 一种报文拥塞处理方法及系统 |
| CN102137293B (zh) * | 2010-12-31 | 2015-01-21 | 华为技术有限公司 | 流媒体服务的资源配置方法、用户业务终端及头端系统 |
| CN103077152B (zh) * | 2012-12-25 | 2015-09-30 | 北京四方继保自动化股份有限公司 | 一种用于智能变电站终端设备芯片间的通信加速方法 |
| CN104461924A (zh) * | 2014-11-04 | 2015-03-25 | 福建星网锐捷网络有限公司 | 一种报文内存回收方法和系统 |
| CN107634914B (zh) * | 2016-07-18 | 2021-01-22 | 深圳市中兴微电子技术有限公司 | 一种帧流控制方法和装置 |
| CN110297732B (zh) * | 2019-06-14 | 2024-01-23 | 杭州迪普科技股份有限公司 | 一种fpga状态的检测方法及装置 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1391771A (zh) * | 1999-09-17 | 2003-01-15 | 艾利森电话股份有限公司 | 分组数据业务的信道分配和释放 |
| CN1708141A (zh) * | 2004-06-08 | 2005-12-14 | 华为技术有限公司 | 媒体网关中终端资源释放方法 |
-
2006
- 2006-05-17 CN CN2006100783810A patent/CN1984025B/zh not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1391771A (zh) * | 1999-09-17 | 2003-01-15 | 艾利森电话股份有限公司 | 分组数据业务的信道分配和释放 |
| CN1708141A (zh) * | 2004-06-08 | 2005-12-14 | 华为技术有限公司 | 媒体网关中终端资源释放方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1984025A (zh) | 2007-06-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9030936B2 (en) | Flow control with reduced buffer usage for network devices | |
| US7796509B2 (en) | Method and apparatus for managing flow control in a data processing system | |
| CN102118309B (zh) | 一种双机热备份方法及系统 | |
| CN101188560B (zh) | 基于转发能力动态检测的板间流控方法和装置 | |
| JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
| CN114745331A (zh) | 一种拥塞通知方法及设备 | |
| WO2024125098A1 (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
| CN1984025B (zh) | 释放被无效占用的资源的方法和存储转发装置 | |
| CN113572582B (zh) | 数据发送、重传控制方法及系统、存储介质及电子设备 | |
| US20030014516A1 (en) | Recovery support for reliable messaging | |
| WO2015032048A1 (zh) | 一种移动终端内部通信方法 | |
| US8040540B2 (en) | Communication information processing system | |
| CN101145968B (zh) | 网管系统和传输设备间数据发送及接收方法 | |
| CN111314432B (zh) | 一种报文处理方法及装置 | |
| US6799229B1 (en) | Data-burst-count-base receive FIFO control design and early packet discard for DMA optimization | |
| TWI505675B (zh) | 網路交換器與資料更新方法 | |
| US20100309909A1 (en) | Communication apparatus, control method for communication apparatus, and computer program | |
| CN101276314A (zh) | 传送装置、传送系统及数据传送方法 | |
| CN115941603A (zh) | 一种处理报文的方法和网络设备 | |
| CN115033506A (zh) | 一种中断处理方法及装置 | |
| JP2010049314A (ja) | タスクスケジューリング装置およびタスクスケジューリング方法 | |
| CN114827300A (zh) | 硬件保障的数据可靠传输系统、控制方法、设备及终端 | |
| JP2001203705A (ja) | フロー制御回路及びフロー制御方法並びにフロー制御プログラムを記録した記憶媒体 | |
| JP2002057712A (ja) | パケットメモリのメモリリーク復旧方法およびバッファ処理装置 | |
| JP5013952B2 (ja) | 監視制御方法および通信装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120530 Termination date: 20170517 |
|
| CF01 | Termination of patent right due to non-payment of annual fee |