CN101150525A - 缓存地址释放方法、系统及逻辑模块 - Google Patents

缓存地址释放方法、系统及逻辑模块 Download PDF

Info

Publication number
CN101150525A
CN101150525A CNA200710177721XA CN200710177721A CN101150525A CN 101150525 A CN101150525 A CN 101150525A CN A200710177721X A CNA200710177721X A CN A200710177721XA CN 200710177721 A CN200710177721 A CN 200710177721A CN 101150525 A CN101150525 A CN 101150525A
Authority
CN
China
Prior art keywords
module
package informatin
read
cpu
inquiry
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.)
Granted
Application number
CNA200710177721XA
Other languages
English (en)
Other versions
CN101150525B (zh
Inventor
王彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN200710177721XA priority Critical patent/CN101150525B/zh
Publication of CN101150525A publication Critical patent/CN101150525A/zh
Application granted granted Critical
Publication of CN101150525B publication Critical patent/CN101150525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种缓存地址释放方法,该方法包括:逻辑模块中有报文上送CPU时,CPU先向逻辑模块查询包信息,根据查询到的包信息从逻辑模块中读取报文,并在该报文读取完毕后,从逻辑模块中读出该报文对应的包信息;逻辑模块在所述包信息被读出时,释放该包信息中包含的缓存地址。另外,本发明还提供了一种逻辑模块以及一种缓存地址释放系统。本发明能够保证缓存地址得到正确释放,防止缓存地址释放错误的情况发生。

Description

缓存地址释放方法、系统及逻辑模块
技术领域
本发明涉及数据缓存技术,尤其涉及一种缓存地址释放方法、系统及逻辑模块。
背景技术
在数据通信技术中,逻辑模块(如CPU_RX模块)从外部收到报文后,首先会申请缓存地址对报文进行缓存,如果该报文是普通数据报文,则通过数据通道将该报文发送出去;如果该报文是协议报文,则通过控制通道将该报文上送CPU。无论是数据报文还是协议报文,在该报文发送完毕后,均需要释放之前为该报文申请到的缓存地址。本文主要针对协议报文的地址释放操作进行阐述。
图1示出了现有技术中逻辑模块的结构示意图,下面结合图1对现有技术中的协议报文地址申请和释放过程进行详细说明。如图1所示,逻辑模块包括:报文接收模块、先入先出(FIFO)队列、随机存储器(RAM)、地址管理模块、收包查询模块、读包信息模块、读包数据模块和地址释放模块。报文接收模块从外部接收到协议报文后,向管理缓存地址的地址管理模块申请缓存地址,将接收到的报文存入申请到的缓存地址所对应的RAM空间中,并在一个完整的报文接收完毕后,将该报文的长度、缓存地址等包信息写入FIFO队列,同时将当前包数目加1,并告知收包查询模块当前有报文上送。CPU通过收包查询模块查询当前有无报文上送,如果有,则通过读包信息模块从FIFO队列中读出一个包信息,然后,根据读出的包信息通过读包数据模块从RAM中读出相应的报文,并且,在一个完整的报文从RAM中被读出之后,CPU控制地址释放模块发起地址释放操作,将之前读出的包信息中所包含的缓存地址释放给地址管理模块。其中,读包信息模块从FIFO队列中读出一个包信息后会通知报文接收模块,报文接收模块收到通知后将当前包数目减1,当所有报文都被CPU读出后,报文接收模块告知收包查询模块当前包数目为空。
由以上描述可见,现有的地址释放操作是由CPU控制的。在这种情况下,如果CPU与逻辑模块之间的接口出现异常(比如外界瞬时的不可预知的干扰如雷击,或因网络瞬间CPU链路流量过大而导致信息丢失等)或者CPU释放错误,则会造成逻辑模块中缓存地址的泄漏或错误释放,并最终导致CPU通道不通或出现错包。比如,假设FIFO队列中存储的包信息B1包含的缓存地址为B,如果CPU在应该释放缓存地址A时错误地释放了数据还未被读出的缓存地址B,而报文接收模块之后又向错误释放的缓存地址B中重新写入了新的数据,那么,当CPU下次根据FIFO队列中的包信息B1从缓存地址B中读数据时,被读出的将是报文接收模块后来重新写入的数据,而并非原始的对应包信息B1的数据,这样就出现了错包的现象。另外,当CPU和逻辑模块间的接口出现异常时,很可能会导致CPU发出的地址释放命令丢失,从而使得应该被释放的缓存地址得不到释放,长此以往,就会造成可用的缓存地址逐渐减少,当没有缓存地址可用时,就会导致CPU通道不通。
发明内容
有鉴于此,本发明的主要目的在于提供一种缓存地址释放方法、一种缓存地址释放系统以及一种逻辑模块,以保证缓存地址能够得到正确释放,防止缓存地址释放错误的情况发生。
为达到上述目的,本发明提供的技术方案如下:
一种缓存地址释放方法,该方法包括:
逻辑模块中有报文上送CPU时,CPU先向逻辑模块查询包信息,根据查询到的包信息从逻辑模块中读取报文,并在该报文读取完毕后,从逻辑模块中读出该报文对应的包信息;逻辑模块在所述包信息被读出时,释放该包信息中包含的缓存地址。
所述逻辑模块包括包信息查询读取模块和用于存储包信息的先入先出队列,所述CPU向逻辑模块查询包信息的过程包括:CPU向逻辑模块中的包信息查询读取模块发送查询包信息请求,包信息查询读取模块收到该请求后,查询先入先出队列中的第一个包信息,并将查询到的包信息上报给CPU。
所述逻辑模块包括读包数据模块和用于存储报文的随机存储器,所述CPU读取报文的过程包括:CPU根据查询到的包信息向读包数据模块发出读数据命令,读包数据模块收到读数据命令后,从随机存储器中读出与所述包信息对应的报文,并将读出的报文发送给CPU。
所述从逻辑模块中读出包信息的过程包括:CPU向逻辑模块中的包信息查询读取模块发送读包信息命令,包信息查询读取模块收到读包信息命令后,从先入先出队列中读出一个包信息。
所述逻辑模块还包括地址管理模块,所述释放缓存地址的过程包括:包信息查询读取模块从先入先出队列中读出一个包信息后,向地址管理模块发出地址释放请求,将读出的包信息中包含的缓存地址释放出来。
所述逻辑模块还包括报文接收模块,所述包信息查询模块从先入先出队列中读出一个包信息后进一步包括:包信息查询读取模块向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
一种逻辑模块,与CPU相连,包括报文接收模块、先入先出队列、随机存储器、地址管理模块、收包查询模块和读包数据模块,该逻辑模块还包括:
包信息查询读取模块,用于在收到CPU下发的查询包信息请求后,查询先入先出队列中的第一个包信息,将查询到的包信息上报给CPU,在收到CPU下发的读包信息命令后,从先入先出队列中读出一个包信息,并向地址管理模块发出地址释放请求,将该包信息中包含的缓存地址释放出来。
所述包信息查询读取模块还用于在从先入先出队列中读出一个包信息之后,向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
一种缓存地址释放系统,包括CPU和逻辑模块,该逻辑模块包括报文接收模块、先入先出队列、随机存储器、地址管理模块、收包查询模块和读包数据模块,所述逻辑模块还包括包信息查询读取模块,其中,
所述CPU,用于在通过收包查询模块查询到有报文上送时,向包信息查询读取模块发出查询包信息请求,在收到包信息查询读取模块返回的包信息后,通过读包数据模块从随机存储器中读出与查询到的包信息对应的数据报文,并在该报文读取完毕后,向包信息查询读取模块发送读包信息命令;
包信息查询读取模块,用于在收到CPU下发的查询包信息请求后,查询先入先出队列中的第一个包信息,将查询到的包信息上报给CPU,在收到CPU下发的读包信息命令后,从先入先出队列中读出一个包信息,并向地址管理模块发出地址释放请求,将该包信息中包含的缓存地址释放出来。
所述包信息查询读取模块还用于在从先入先出队列中读出一个包信息之后,向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
由此可见,在本发明所提供的技术方案中,缓存地址释放操作是由逻辑模块在包信息被读出的同时完成的,而不是由CPU发起的。本发明中的缓存地址释放操作不受CPU控制,也没有经过CPU与逻辑模块间的接口,从而有效避免了因CPU与逻辑模块间的接口异常或CPU释放错误而造成缓存地址释放错误的情况发生,保证了缓存地址的正确释放,不会因缓存地址释放错误而出现CPU通道不通或错包现象。
附图说明
图1为现有技术中的逻辑模块结构示意图;
图2为本发明实施例中的逻辑模块结构示意图;
图3为本发明实施例中的缓存地址释放方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
本发明的基本思想是:去掉逻辑模块内部专用的地址释放模块,不由CPU控制地址释放模块进行缓存地址释放,而是利用逻辑模块自身进行缓存地址释放,以防止由于CPU与逻辑模块间的接口异常或CPU释放错误而造成缓存地址的错误释放。
图2示出了本发明实施例中的逻辑模块结构示意图。在图2所示结构中,报文接收模块、FIFO队列、RAM、地址管理模块、收包查询模块及读包数据模块的功能均与图1中相应模块的功能一致,这里不再一一赘述。与图1不同的是,图2所示的逻辑模块中去掉了地址释放模块,并且,将原有的读包信息模块变成了包信息查询读取模块。
在图2所示逻辑模块结构中,报文接收单元收到协议报文后进行缓存的过程与现有技术一致,这里不再赘述。下面主要针对CPU从逻辑模块中读取报文及缓存地址的释放过程进行详细阐述,如图3所示,该过程主要包括以下步骤:
步骤301:CPU通过收包查询模块查询当前有无报文上送,如果有,则向包信息查询读取模块发出查询包信息请求。
步骤302:包信息查询读取模块收到CPU的查询包信息请求后,查询FIFO队列中的第一个包信息,并将查询到的包信息上报给CPU。
需要注意的是,在步骤301中,CPU向包信息查询读取模块发出的是查询包信息请求,而不是读包信息命令;并且,在步骤302中,包信息查询读取模块并没有从FIFO队列中读出包信息,而只是查询了FIFO队列中的包信息。也就是说,在步骤302执行完毕后,FIFO队列中的包信息没有发生任何改变。
步骤303:CPU收到包信息查询读取模块上报的包信息后,根据收到的包信息向读包数据模块发送读数据命令,读包数据模块收到读数据命令后,从RAM中读出与所述包信息相对应的报文,并将读出的包信息上报给CPU。
步骤304:一个完整报文读取完毕后,CPU向包信息查询读取模块发送读包信息命令。
步骤305:包信息查询读取模块收到CPU发出的读包信息命令后,从FIFO队列中读出一个包信息,并且,向地址管理模块发起地址释放请求,将该包信息中包含的缓存地址释放出来。
另外,包信息查询读取模块从FIFO队列中读出一个包信息后,还会通知报文接收模块,报文接收模块收到通知后将当前包数目减1,当所有报文都被CPU读出后,报文接收模块告知收包查询模块当前包数目为空。
需要说明的是,在图3所示流程中,之所以选择先查询包信息,在报文读取完毕后再从FIFO中读出包信息并进行地址释放,是因为:如果CPU一开始就直接通过包信息查询读取模块从FIFO中读出包信息,且包信息查询读取模块在包信息读出后就进行地址释放,那么,就很可能造成在CPU还未来得及将与该包信息对应的报文读出时,该报文所占用的地址就已经被过早释放掉了,从而造成丢包现象。
由以上描述可见,在本发明提供的技术方案中,缓存地址的释放是由逻辑模块内部的包信息查询读取模块完成的,该释放操作不受CPU控制,也没有经过CPU与逻辑模块间的接口,从而有效避免了因CPU与逻辑模块间的接口异常或CPU释放错误而造成缓存地址释放错误的情况发生,保证了缓存地址的正确释放,不会因缓存地址释放错误而出现CPU通道不通或错包现象。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种缓存地址释放方法,其特征在于,该方法包括:
逻辑模块中有报文上送CPU时,CPU先向逻辑模块查询包信息,根据查询到的包信息从逻辑模块中读取报文,并在该报文读取完毕后,从逻辑模块中读出该报文对应的包信息;逻辑模块在所述包信息被读出时,释放该包信息中包含的缓存地址。
2.根据权利要求1所述的方法,其特征在于,所述逻辑模块包括包信息查询读取模块和用于存储包信息的先入先出队列,所述CPU向逻辑模块查询包信息的过程包括:
CPU向逻辑模块中的包信息查询读取模块发送查询包信息请求,包信息查询读取模块收到该请求后,查询先入先出队列中的第一个包信息,并将查询到的包信息上报给CPU。
3.根据权利要求1所述的方法,其特征在于,所述逻辑模块包括读包数据模块和用于存储报文的随机存储器,所述CPU读取报文的过程包括:
CPU根据查询到的包信息向读包数据模块发出读数据命令,读包数据模块收到读数据命令后,从随机存储器中读出与所述包信息对应的报文,并将读出的报文发送给CPU。
4.根据权利要求2所述的方法,其特征在于,所述从逻辑模块中读出包信息的过程包括:
CPU向逻辑模块中的包信息查询读取模块发送读包信息命令,包信息查询读取模块收到读包信息命令后,从先入先出队列中读出一个包信息。
5.根据权利要求4所述的方法,其特征在于,所述逻辑模块还包括地址管理模块,所述释放缓存地址的过程包括:
包信息查询读取模块从先入先出队列中读出一个包信息后,向地址管理模块发出地址释放请求,将读出的包信息中包含的缓存地址释放出来。
6.根据权利要求5所述的方法,其特征在于,所述逻辑模块还包括报文接收模块,所述包信息查询模块从先入先出队列中读出一个包信息后进一步包括:
包信息查询读取模块向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
7.一种逻辑模块,与CPU相连,包括报文接收模块、先入先出队列、随机存储器、地址管理模块、收包查询模块和读包数据模块,其特征在于,该逻辑模块还包括:
包信息查询读取模块,用于在收到CPU下发的查询包信息请求后,查询先入先出队列中的第一个包信息,将查询到的包信息上报给CPU,在收到CPU下发的读包信息命令后,从先入先出队列中读出一个包信息,并向地址管理模块发出地址释放请求,将该包信息中包含的缓存地址释放出来。
8.根据权利要求7所述的逻辑模块,其特征在于,所述包信息查询读取模块还用于在从先入先出队列中读出一个包信息之后,向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
9.一种缓存地址释放系统,包括CPU和逻辑模块,该逻辑模块包括报文接收模块、先入先出队列、随机存储器、地址管理模块、收包查询模块和读包数据模块,其特征在于,所述逻辑模块还包括包信息查询读取模块,其中,
所述CPU,用于在通过收包查询模块查询到有报文上送时,向包信息查询读取模块发出查询包信息请求,在收到包信息查询读取模块返回的包信息后,通过读包数据模块从随机存储器中读出与查询到的包信息对应的数据报文,并在该报文读取完毕后,向包信息查询读取模块发送读包信息命令;
包信息查询读取模块,用于在收到CPU下发的查询包信息请求后,查询先入先出队列中的第一个包信息,将查询到的包信息上报给CPU,在收到CPU下发的读包信息命令后,从先入先出队列中读出一个包信息,并向地址管理模块发出地址释放请求,将该包信息中包含的缓存地址释放出来。
10.根据权利要求9所述的系统,其特征在于,所述包信息查询读取模块还用于在从先入先出队列中读出一个包信息之后,向报文接收模块发送包信息读出通知,报文接收模块收到通知后将当前包数目减一。
CN200710177721XA 2007-11-20 2007-11-20 缓存地址释放方法、系统及逻辑模块 Active CN101150525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710177721XA CN101150525B (zh) 2007-11-20 2007-11-20 缓存地址释放方法、系统及逻辑模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710177721XA CN101150525B (zh) 2007-11-20 2007-11-20 缓存地址释放方法、系统及逻辑模块

Publications (2)

Publication Number Publication Date
CN101150525A true CN101150525A (zh) 2008-03-26
CN101150525B CN101150525B (zh) 2010-07-21

Family

ID=39250874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710177721XA Active CN101150525B (zh) 2007-11-20 2007-11-20 缓存地址释放方法、系统及逻辑模块

Country Status (1)

Country Link
CN (1) CN101150525B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197786B (zh) * 2008-01-02 2011-05-11 杭州华三通信技术有限公司 缓存管理方法和缓存管理系统
CN102098221A (zh) * 2011-01-28 2011-06-15 华为技术有限公司 一种报文查询方法及装置
CN103179050A (zh) * 2011-12-20 2013-06-26 中兴通讯股份有限公司 数据包入队和出队管理方法及数据包处理装置
CN103856445A (zh) * 2012-11-30 2014-06-11 北京北广科技股份有限公司 基于udp的语音数据业务的数据传输方法、装置和系统
CN105357126A (zh) * 2015-11-12 2016-02-24 国电南瑞科技股份有限公司 应用于prp/hsr报文丢弃算法的查找表优化方法
CN105589764A (zh) * 2015-12-10 2016-05-18 杭州华三通信技术有限公司 Cpu异常处理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0804008B1 (en) * 1996-04-26 2006-11-15 Texas Instruments Incorporated Apparatus for data packet transfer control
CN1426203A (zh) * 2001-12-11 2003-06-25 深圳市中兴通讯股份有限公司上海第二研究所 数据包在不同总线间转发的装置及方法
CN1214592C (zh) * 2002-08-06 2005-08-10 华为技术有限公司 多通道数据直接内存访问系统和方法
CN100442783C (zh) * 2006-04-12 2008-12-10 杭州华三通信技术有限公司 基于现场可编程逻辑阵列的读写缓存单元的方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101197786B (zh) * 2008-01-02 2011-05-11 杭州华三通信技术有限公司 缓存管理方法和缓存管理系统
CN102098221A (zh) * 2011-01-28 2011-06-15 华为技术有限公司 一种报文查询方法及装置
CN103179050A (zh) * 2011-12-20 2013-06-26 中兴通讯股份有限公司 数据包入队和出队管理方法及数据包处理装置
CN103179050B (zh) * 2011-12-20 2017-10-13 中兴通讯股份有限公司 数据包入队和出队管理方法及数据包处理装置
CN103856445A (zh) * 2012-11-30 2014-06-11 北京北广科技股份有限公司 基于udp的语音数据业务的数据传输方法、装置和系统
CN103856445B (zh) * 2012-11-30 2018-10-16 北京北广科技股份有限公司 基于udp的语音数据业务的数据传输方法、装置和系统
CN105357126A (zh) * 2015-11-12 2016-02-24 国电南瑞科技股份有限公司 应用于prp/hsr报文丢弃算法的查找表优化方法
CN105589764A (zh) * 2015-12-10 2016-05-18 杭州华三通信技术有限公司 Cpu异常处理方法及装置

Also Published As

Publication number Publication date
CN101150525B (zh) 2010-07-21

Similar Documents

Publication Publication Date Title
CN101150525B (zh) 缓存地址释放方法、系统及逻辑模块
US8310934B2 (en) Method and device for controlling information channel flow
CN102377682B (zh) 基于定长单元存储变长分组的队列管理方法及设备
US6414961B1 (en) ATM switching with virtual circuit FIFO buffers
CN102447610B (zh) 实现报文缓存资源共享的方法和装置
CN101322357A (zh) 千兆比特/10千兆比特以太网系统中的显式流控制
US20180248813A1 (en) Queue Flushing Method and Related Device
CN107948094A (zh) 一种高速数据帧无冲突入队处理的装置及方法
CN101515841B (zh) 一种基于RapidIO协议的数据包传输的方法、设备和系统
CN103647726A (zh) 一种报文调度方法及装置
CN107302499A (zh) 无需拷贝报文缓存的nfv协议报文收发方法
US7925798B2 (en) Data packet processing device
CN100539538C (zh) 具有链表处理器的存储器管理系统
CN102299861B (zh) 一种报文流量控制方法
CN102045234B (zh) 路由地址映射信息的缓存及超时处理方法和隧道路由器
CN106375240B (zh) 一种多网口间以太网报文转发方法及系统
CN101631353B (zh) 一种状态分组数据单元的管理方法和装置
JP4629126B2 (ja) メッセージ中継装置
US20050030899A1 (en) Apparatus for performing a packet flow control and method of performing the packet flow control
CN109391929A (zh) 低功耗蓝牙数据传输方法及电子设备
WO2022127448A1 (zh) 消息传输的方法、终端及存储介质
CN101494569A (zh) 一种报文处理方法和装置
CN101617509A (zh) 用于把数据传送给多个控制装置的方法
JP2010510734A (ja) 時分割多重化モードにおけるデータ伝送方法及びシステム
CN108667682A (zh) 基于安全网关深度包检测的连接同步方法、装置及介质

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230614

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.