CN102447610A - 实现报文缓存资源共享的方法和装置 - Google Patents

实现报文缓存资源共享的方法和装置 Download PDF

Info

Publication number
CN102447610A
CN102447610A CN2010105071185A CN201010507118A CN102447610A CN 102447610 A CN102447610 A CN 102447610A CN 2010105071185 A CN2010105071185 A CN 2010105071185A CN 201010507118 A CN201010507118 A CN 201010507118A CN 102447610 A CN102447610 A CN 102447610A
Authority
CN
China
Prior art keywords
formation
chained list
state
priority
packet
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
CN2010105071185A
Other languages
English (en)
Other versions
CN102447610B (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.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010507118.5A priority Critical patent/CN102447610B/zh
Publication of CN102447610A publication Critical patent/CN102447610A/zh
Application granted granted Critical
Publication of CN102447610B publication Critical patent/CN102447610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及通信领域,提供了一种实现报文缓存资源共享的方法,包括以下步骤:预设各队列的状态,并在有数据包入队时获取队列的优先级;将队列按优先级的不同添加至对应的分类链表;维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示;当收到老化指示时,按照优先级对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间。本发明还提供了一种实现报文缓存资源共享的装置。本发明所提供的实现报文缓存资源共享的方法或装置,可提高缓存利用率,减少不必要的丢数据包,并且参数配置简单,改变了由于队列数目增多而导致平均到每个队列所占缓存变小的状况,为支持更多的队列数目提供了保证,真正实现了缓存共享。

Description

实现报文缓存资源共享的方法和装置
技术领域
本发明涉及通信技术领域,尤其涉及一种实现报文缓存资源共享的方法和装置。
背景技术
众所周知,在可变长的数据包交换网络中,拥塞避免机制是保证QoS(Quality of Service,服务质量)的重要机制。
目前的拥塞避免算法中,核心思想都是预先为各个队列分配一段缓存空间,然后基于算法计算的配置参数、丢弃曲线及业务流特点作相应扩展,算法既要保证队列间的公平性又要兼顾业务报文的特点,但大都没有考虑缓存的利用情况。这种建立在预分配机制上的算法实际上将整个缓存空间进行了割据,之间无法互通,对于各个队列而言,显然是一种独享的方式,多个队列都会独享一部分缓存资源,必然会导致缓存利用率的下降,导致整个缓存有大量空闲空间时频繁丢数据包的现象发生。
发明内容
本发明的主要目的在于提供一种实现报文缓存资源共享的方法和装置,旨在提高缓存利用率,减少不必要的丢数据包。
本发明提供一种实现报文缓存资源共享的方法,包括以下步骤:
预设各队列的状态,并在有数据包入队时获取队列的队列号、队列状态和优先级;
将队列按优先级的不同添加至对应的分类链表;
维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示;
当收到老化指示时,按照优先级对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间。
优选地,所述预设各队列的状态,并在有数据包入队时获取队列的优先级包括:
在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;
如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;
如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。
优选地,所述按优先级对链表中的队列进行老化处理包括:
以链首指针所对应的队列为老化队列,指示该队列老化数据包;
如果缓存不足的状态一直得不到缓解,则持续进行老化。
优选地,所述预设各队列的状态,并在有数据包入队时获取队列的优先级还包括根据队列老化或出数据包情况重新获取各队列状态和优先级;
所述将队列按优先级的不同添加至对应的分类链表还包括根据重新获取的队列状态和优先级将队列出链或重新入链。
优选地,所述根据队列状态和优先级将队列出链或重新入链包括:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;
如果队列状态不变,则将该队列重新添加至分类链表。
优选地,所述根据队列状态和优先级将队列出链或重新入链包括:
在链表中的队列发生正常出包时:
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。
本发明提供一种实现报文缓存资源共享的装置,包括:
队列状态管理模块,用于预设各队列的状态,并在有数据包入队时获取队列的优先级;
分类链表管理模块,用于将队列按优先级的不同添加至对应的分类链表,当收到老化指示时,按照优先级自低至高对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间;
缓存深度管理模块,用于维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示。
优选地,所述队列状态管理模块用于:
在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;
如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;
如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。
优选地,所述缓存深度管理模块用于:
以链首指针所对应的队列为老化队列,指示该队列老化数据包;
如果缓存不足的状态一直得不到缓解,则持续进行老化。
优选地,所述队列状态管理模块还用于根据队列老化或出数据包情况重新获取各队列状态和优先级;
所述分类链表管理模块还用于根据重新获取的队列状态和优先级将队列出链或重新入链。
优选地,所述分类链表管理模块还用于:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;
如果队列状态不变,则将该队列重新添加至分类链表。
优选地,所述分类链表管理模块还用于:
在链表中的队列发生正常出包时:
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。
本发明所提供的实现报文缓存资源共享的方法或装置,按优先级对队列进行链表管理,当缓存被占满时,按队列优先级自低至高对链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间,明显提升了系统的抗突发能力,提高缓存利用率,减少了不必要的丢数据包;并且,本发明所提供的方法或装置,参数配置简单,无需针对各个队列设计各种配置参数,改变了由于队列数目增多而导致平均到每个队列所占缓存变小的状况,为支持更多的队列数目提供了保证,真正实现了缓存共享。
附图说明
图1为本发明的一个实施方式中实现报文缓存资源共享的方法的流程图;
图2为本发明的一个实施例中分类链表的结构示意图;
图3为本发明的一个实施例中获取队列状态和优先级的步骤流程图;
图4为本发明的一个实施例中对队列进行老化的步骤流程图;
图5为本发明的一个实施例中双向链表的存储结构示意图;
图6为本发明的一个实施例中双向链表在队列老化、出包前后的结构示意图;
图7为本发明的一个实施方式中实现报文缓存资源共享的装置的结构示意图;
图8为本发明的一个实施例中实现报文缓存资源共享的装置的工作流程图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明的一个实施方式中实现报文缓存资源共享的方法的流程,该流程包括以下步骤:
步骤S10,预设各队列的状态,并在有数据包入队时获取队列的优先级;可预设各队列的初始状态为空,当有新的数据包进入队列时根据数据包中的报文描述符获取队列的优先级。
步骤S20,将队列按优先级的不同添加至对应的分类链表;优先级可反映报文的重要程度,优先级不同,报文的重要性也不同。假设当前有12个队列0~11,若这些队列分别有数据包入队,则根据队列号分别更新队列状态,例如将队列状态由空更新为非空;同时根据报文获取各个队列优先级,例如其中0、1、3、6、7、10号队列属于“优先级1”,2、4、9号队列属于“优先级2”,余下队列属于“优先级3”。然后各个非空队列按照各自的优先级进入分类链表,每个优先级的分类链表形成一个双向链表,对应两套首尾指针;分类链表的结构可参照图2所示。
步骤S30,维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示;例如,如果当前12个队列一直有数据包进入缓存,且系统及每个队列的输入略大于输出,那么最终缓存将被占满,达到老化的水位线,此时启动老化。
步骤S40,当收到老化指示时,按照优先级对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间。首先从最低“优先级1”的队列开始老化,根据链表当时的状态以链首指针队列号0为老化队列,指示该队列老化掉一个数据包,释放0队列首数据包所占的缓存空间。
本发明方法实施方式中按优先级对链表中的队列进行老化,释放优先级低的队列报文所占的缓存空间,提高了缓存利用率,减少了不必要的丢数据包。
参照图3,在一实施例中,上述步骤S10中具体可包括:
步骤S11,在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;可根据报文描述符的队列号读取当前的队列状态,同时,无论队列此时的状态如何,都将该入队报文的长度上报,以进行缓存分配,并根据报文所属队列号查询当前队列的状态。
步骤S12,如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;队列的初始状态均为空,但有数据包入队时,其状态则变为非空。
步骤S13,如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。如果当前缓存中存储有多个非空队列又未被占满时,若有新数据包入队,则可直接提取数据包长信息,计算队列是否有足够空间可容纳新数据包以及缓存是否将被占满,若缓存被占满则启动老化。
参照图4和图5,在一实施例中,上述步骤S30中具体可包括:
步骤S31,以链首指针所对应的队列为老化队列,指示该队列老化数据包;例如,上述12个队列一直有数据包进入缓存,且系统及每个队列的输入略大于输出,那么最终缓存将被占满,达到老化的水位线,启动老化。老化首先从最低“优先级1”的队列开始,根据链表当时的状态以链首指针队列号0为老化队列,指示该队列老化掉一个数据包,从而释放队0列首数据包所占缓存空间,并发送更新整个缓存占用情况和队列0的缓存深度的通知,以重新获取队列的状态并根据入队数据包获取队列优先级并重新将队列归类管理。
步骤S32,如果缓存不足的状态一直得不到缓解,则持续进行老化。例如,继续针对“优先级1”的队列进行老化,链表的更新仍然按照前述方式,直到链表中的某个队列由于老化出数据包导致队列的深度变为空,那么此时该队列老化后,不再添加到链表,同时更新该队列的状态。继续老化下去,可能会导致“优先级1”的所有队列变为空,即“优先级1”的链表空,而如果系统一直有大量较高优先级报文输入,“优先级1”的队列全部被老化后缓存资源仍然不足,那么就启动“优先级2”链表的老化,以此类推,原则是优先老化非空的低优先级队列。
在一实施例中,上述步骤S10中可包括:根据队列老化或出数据包情况重新获取各队列状态和优先级;上述步骤S20中可包括:根据重新获取的队列状态和优先级将队列出链或重新入链。例如,可在接收到上述链表更新通知时,重新获取各队列的状态和优先级,并根据队列状态和优先级将链表更新。在一具体示例中,上述根据队列状态和优先级将队列出链或重新入链包括:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;例如,当接收到前述实施例中所述更新链表的通知时,根据重新获取的队列状态对分类链表进行更新操作。队列由非空变为空后,说明某优先级中一些队列的数据包已经全部被老化,此时可将队列从链表中剔除。具体可包括:队列0老化后,将其从链首删除,相邻的下一队列1作为链首,刚刚老化过的队列0添加至链尾,此时“优先级1”的正向链表变为链首为队列1、链尾为队列0;相应的,反向链表链首为队列号0、链尾为队列号1。
如果队列状态不变,则将该队列重新添加至分类链表。如果队列状态未发生变化,说明在某优先级中一些队列的数据包仍然未被老化,此时,需将该队列重新入链,以便继续老化。
在另一具体示例中,上述根据重新获取的队列状态和优先级将队列出链或重新入链也可包括:
在链表中的队列发生正常出包时:例如,如果有老化和正常出数据包同时发生或仅有正常出数据包时,基于优先级的分类链表管理就必须采用双向链表。
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;以“优先级1”链表为例,如图6所示,该链表由队列0、1、3、6、7、10组成,图中表示了链表存储的结构示意如果链表中队列连续出数据包导致队列0,也就是该分类链表的链首队列状态变为空,那么首先读取正向链表中与队列0相邻的下一列,然后更新正向链表的首指针以及反向链表的尾指针,即表示将队列0从该链表出链。同时及时更新队列0的状态和队列深度。
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。
如果链表中队列连续出数据包导致状态变空的队列并不是0号队列,而是链表的中间节点队列,那么就需要对该链表执行一个拆链和建链的操作,用来将链表的中间节点删除。例如,假设链表中需要出链的是队列1,那么以队列ID为索引地址去正向链表读取下一跳,去反向链表读取对应正向链表的上一跳,读得队列1的下一跳为队列3,读得队列1的上一跳为队列0,队列1出链需要将队列1从链表中删除,那么就需要将出链节点的上一跳接至出链节点的下一跳。所以对于正向链表,就要以读出的上一跳为地址写入读出的下一跳队列ID,而对于反向链表的操作就要与正向链表的操作相反,以读出的下一跳为地址,写入读出的上一跳队列ID。
本发明还提供了一种实现报文缓存资源共享的装置,可用于实现上述方法。参照图7,在一实施例中,该装置包括:
队列状态管理模块10,用于预设各队列的状态,并在有数据包入队时获取队列的优先级;例如,队列状态管理模块10可预设各队列的初始状态为空,且当有新的数据包进入队列时根据数据包中的报文获取不同的队列优先级。
分类链表管理模块20,用于将队列按优先级的不同添加至对应的分类链表,当收到老化指示时,按照优先级自低至高对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间;假设当前有12个队列0~11,若这些队列分别有数据包入队,则可利用分类链表管理模块20根据队列号分别更新队列状态,例如将队列状态由空更新为非空;同时根据报文获取各个队列优先级,例如其中0、1、3、6、7、10号队列属于“优先级1”,2、4、9号队列属于“优先级2”,余下队列属于“优先级3”。然后各个非空队列按照各自的优先级进入分类链表,每个优先级队列形成一个双向链表,对应两套首尾指针。分类链表的结构可参照图2所示,在一实施例中,分类链表管理模块20可用于当链表中的某个队列中的报文被老化或者根据出包命令出包后,按照优先级自低至高对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间,仍按照重新获取的队列状态和优先级进行链表更新。
缓存深度管理模块30,用于维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示。例如,如果当前12个队列一直有数据包进入缓存,且系统及每个队列的输入略大于输出,那么最终缓存将被占满,达到老化的水位线,此时缓存深度管理模块30启动老化,首先从最低“优先级1”的队列开始老化,根据链表当时的状态以链首指针队列号0为老化队列,指示该队列老化掉一个数据包,释放0队列首数据包所占的缓存空间。
本发明装置实施方式中按优先级对链表中的队列进行老化,释放优先级低的队列报文所占的缓存空间,提高了缓存利用率,减少了不必要的丢数据包。
在一实施例中,队列状态管理模块10可用于:
在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;例如队列状态管理模块10可根据报文描述符的队列号读取当前的队列状态,同时,无论队列此时的状态如何,都将该入队报文的长度上报,以进行缓存分配。
如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;例如,队列状态管理模块10可按优先级的不同将队列添加至对应的分类链表,并根据缓存深度管理模块30对队列老化或调出数据包的情况对链表进行管理。
如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。如果当前缓存中存储有多个非空队列又未被占满时,若有新数据包入队,则队列状态管理模块10可直接提取数据包长信息,计算队列是否有足够空间可容纳新数据包以及缓存是否将被占满,若缓存被占满则启动老化。
上述缓存深度管理模块30可用于:
以链首指针所对应的队列为老化队列,指示该队列老化数据包;例如,缓存深度管理模块30指示分类链表管理模块20首先将链首指针所对应的队列老化,释放数据包所占空间。老化完成后,分类链表管理模块20向队列状态管理模块10发出链表更新通知,重新获取队列的状态;分类链表管理模块20根据更新的队列状态,重新将队列归类管理。
如果缓存不足的状态一直得不到缓解,则持续进行老化。例如,缓存深度管理模块30继续指示分类链表管理模块20继续针对“优先级1”的队列进行老化,链表的更新仍然按照前述方式,直到链表中的某个队列由于老化出数据包导致队列的深度变为空,那么此时该队列老化后,不再添加到链表,同时更新该队列的状态。继续老化下去,可能会导致“优先级1”的所有队列变为空,即“优先级1”的链表空,而如果系统一直有大量较高优先级报文输入,“优先级1”的队列全部被老化后缓存资源仍然不足,那么就启动“优先级2”链表的老化,以此类推,原则是优先老化非空的低优先级队列。缓存深度管理模块30对队列的老化处理具体可参照前述图4所示实施例。
在一实施例中,上述队列状态管理模块10还可用于根据队列老化或出数据包情况重新获取各队列状态和优先级;上述分类链表管理模块20还可用于根据重新获取的队列状态和优先级将队列出链或重新入链。例如,在接收到缓存深度管理模块30发出的链表更新通知时,队列状态管理模块10重新获取各队列的状态和优先级,分类链表管理模块20根据队列状态和优先级将链表更新。
在一具体示例中,上述分类链表管理模块20可用于:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;例如,当接收到前述实施例中所述更新链表的通知时,根据重新获取的队列状态对分类链表进行更新操作。队列由非空变为空后,说明某优先级中一些队列的数据包已经全部被老化,此时可将队列从链表中剔除。具体可包括:队列0老化后,将其从链首删除,相邻的下一队列1作为链首,刚刚老化过的队列0添加至链尾,此时“优先级1”的正向链表变为链首为队列1、链尾为队列0;相应的,反向链表链首为队列号0、链尾为队列号1。
如果队列状态不变,则将该队列重新添加至分类链表。如果队列状态未发生变化,说明在某优先级中一些队列的数据包仍然未被老化,此时,需将该队列重新入链,以便继续老化。
在另一具体示例中,上述分类链表管理模块20可用于:
在链表中的队列发生正常出包时:
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;例如,如果有老化和正常出数据包同时发生或仅有正常出数据包时,基于优先级的分类链表管理就必须采用双向链表。以“优先级1”链表为例,如图5所示,该链表由队列0、1、3、6、7、10组成,图中表示了链表存储的结构示意如果链表中队列连续出数据包导致队列0,也就是该分类链表的链首队列状态变为空,那么首先读取正向链表中与队列0相邻的下一列,然后更新正向链表的首指针以及反向链表的尾指针,即表示将队列0从该链表出链。同时及时更新队列0的状态和队列深度。
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。如果链表中队列连续出数据包导致状态变空的队列并不是0号队列,而是链表的中间节点队列,那么就需要对该链表执行一个拆链和建链的操作,用来将链表的中间节点删除。例如,假设链表中需要出链的是队列1,那么以队列ID为索引地址去正向链表读取下一跳,去反向链表读取对应正向链表的上一跳,读得队列1的下一跳为队列3,读得队列1的上一跳为队列0,队列1出链需要将队列1从链表中删除,那么就需要将出链节点的上一跳接至出链节点的下一跳。所以对于正向链表,就要以读出的上一跳为地址写入读出的下一跳队列ID,而对于反向链表的操作就要与正向链表的操作相反,以读出的下一跳为地址,写入读出的上一跳队列ID。
参照图8,上述报文实现报文缓存资源共享的装置的工作流程具体可参照图8,在此不作详述。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (12)

1.一种实现报文缓存资源共享的方法,其特征在于,包括以下步骤:
预设各队列的状态,并在有数据包入队时获取队列的队列号、队列状态和优先级;
将队列按优先级的不同添加至对应的分类链表;
维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示;
当收到老化指示时,按照优先级对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间。
2.如权利要求1所述的实现报文缓存资源共享的方法,其特征在于,所述预设各队列的状态,并在有数据包入队时获取队列的优先级包括:
在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;
如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;
如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。
3.如权利要求1所述的实现报文缓存资源共享的方法,其特征在于,所述按优先级对链表中的队列进行老化处理包括:
以链首指针所对应的队列为老化队列,指示该队列老化数据包;
如果缓存不足的状态一直得不到缓解,则持续进行老化。
4.如权利要求1至3中任一项所述的实现报文缓存资源共享的方法,其特征在于,所述预设各队列的状态,并在有数据包入队时获取队列的优先级还包括根据队列老化或出数据包情况重新获取各队列状态和优先级;
所述将队列按优先级的不同添加至对应的分类链表还包括根据重新获取的队列状态和优先级将队列出链或重新入链。
5.如权利要求4所述的实现报文缓存资源共享的方法,其特征在于,所述根据队列状态和优先级将队列出链或重新入链包括:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;
如果队列状态不变,则将该队列重新添加至分类链表。
6.如权利要求4所述的实现报文缓存资源共享的方法,其特征在于,所述根据队列状态和优先级将队列出链或重新入链包括:
在链表中的队列发生正常出包时:
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。
7.一种实现报文缓存资源共享的装置,其特征在于,包括:
队列状态管理模块,用于预设各队列的状态,并在有数据包入队时获取队列的队列号、队列状态和优先级;
分类链表管理模块,用于将队列按优先级的不同添加至对应的分类链表,当收到老化指示时,按照优先级自低至高对各自链表中的队列进行老化处理,释放被老化的队列报文所占的缓存空间;
缓存深度管理模块,用于维护各个队列的缓存空间占用情况,在缓存被占满时,发起老化指示。
8.如权利要求7所述的实现报文缓存资源共享的装置,其特征在于,所述队列状态管理模块用于:
在新数据包入队时,根据数据包中的报文所属队列号查询当前队列的状态;
如果当前队列状态为空,则将当前队列状态置为非空,将队列按优先级的不同添加至对应的分类链表;
如果当前队列状态为非空,则直接提取报文描述符中的数据包长信息,以便计算缓存深度和队列深度。
9.如权利要求7所述的实现报文缓存资源共享的装置,其特征在于,所述缓存深度管理模块用于:
以链首指针所对应的队列为老化队列,指示该队列老化数据包;
如果缓存不足的状态一直得不到缓解,则持续进行老化。
10.如权利要求7至9中任一项所述的实现报文缓存资源共享的装置,其特征在于,
所述队列状态管理模块还用于根据队列老化或出数据包情况重新获取各队列状态;
所述分类链表管理模块还用于根据重新获取的队列状态和优先级将队列出链或重新入链。
11.如权利要求10所述的实现报文缓存资源共享的装置,其特征在于,所述分类链表管理模块还用于:
在链表中的队列被老化时:
如果队列状态由非空变为空,则将该队列从分类链表中剔除;
如果队列状态不变,则将该队列重新添加至分类链表。
12.如权利要求10所述的实现报文缓存资源共享的装置,其特征在于,所述分类链表管理模块还用于:
在链表中的队列发生正常出包时:
若链首队列因连续出数据包导致状态变为空,则将该队列从分类链表中剔除;
若链表中间节点队列因连续出数据包导致状态变空,则对该分类链表执行拆链和建链操作,以将链表的中间节点队列删除。
CN201010507118.5A 2010-10-14 2010-10-14 实现报文缓存资源共享的方法和装置 Active CN102447610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010507118.5A CN102447610B (zh) 2010-10-14 2010-10-14 实现报文缓存资源共享的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010507118.5A CN102447610B (zh) 2010-10-14 2010-10-14 实现报文缓存资源共享的方法和装置

Publications (2)

Publication Number Publication Date
CN102447610A true CN102447610A (zh) 2012-05-09
CN102447610B CN102447610B (zh) 2015-05-20

Family

ID=46009716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010507118.5A Active CN102447610B (zh) 2010-10-14 2010-10-14 实现报文缓存资源共享的方法和装置

Country Status (1)

Country Link
CN (1) CN102447610B (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019962A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 数据缓存处理方法、装置以及系统
CN103731368A (zh) * 2012-10-12 2014-04-16 中兴通讯股份有限公司 一种处理报文的方法和装置
CN104125168A (zh) * 2013-04-27 2014-10-29 中兴通讯股份有限公司 一种共享资源的调度方法和系统
CN104572641A (zh) * 2013-10-10 2015-04-29 腾讯科技(深圳)有限公司 网页资源的管理方法及装置
CN105912273A (zh) * 2016-04-15 2016-08-31 成都欧飞凌通讯技术有限公司 一种报文共享储存管理的fpga实现方法
CN106254270A (zh) * 2015-06-15 2016-12-21 深圳市中兴微电子技术有限公司 一种队列管理方法及装置
WO2017000657A1 (zh) * 2015-06-30 2017-01-05 深圳市中兴微电子技术有限公司 一种缓存管理的方法、装置和计算机存储介质
CN103780507B (zh) * 2014-02-17 2017-03-15 杭州华三通信技术有限公司 缓存资源的管理方法及装置
CN107454018A (zh) * 2017-08-25 2017-12-08 锐捷网络股份有限公司 报文缓存管理器异常的处理方法及装置
CN108173784A (zh) * 2017-12-29 2018-06-15 湖南恒茂高科股份有限公司 一种交换机的数据包缓存的老化方法及装置
CN108521343A (zh) * 2018-03-26 2018-09-11 烽火通信科技股份有限公司 一种oam报文的处理方法及装置
CN109102691A (zh) * 2018-07-24 2018-12-28 宁波三星医疗电气股份有限公司 一种基于链表的电能表事件主动上报处理方法
CN109325004A (zh) * 2018-12-04 2019-02-12 郑州云海信息技术有限公司 一种目录项管理方法、装置、设备及可读存储介质
CN111723058A (zh) * 2020-05-29 2020-09-29 广东浪潮大数据研究有限公司 一种预读数据缓存方法、装置、设备及存储介质
CN112597075A (zh) * 2020-12-28 2021-04-02 海光信息技术股份有限公司 用于路由器的缓存分配方法、片上网络及电子设备
CN112612424A (zh) * 2020-12-29 2021-04-06 江苏国科微电子有限公司 一种NVMe提交队列控制装置及方法
CN112835818A (zh) * 2021-02-01 2021-05-25 芯河半导体科技(无锡)有限公司 一种流队列缓存空间地址回收的方法
CN113904997A (zh) * 2021-10-21 2022-01-07 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1998197A (zh) * 2004-07-12 2007-07-11 索尼爱立信移动通信日本株式会社 接收机设备和用于释放其存储器的方法
CN101094181A (zh) * 2007-07-25 2007-12-26 华为技术有限公司 报文入队和出队调度的装置及方法
CN101217495A (zh) * 2008-01-11 2008-07-09 北京邮电大学 用于t-mpls网络环境下的流量监控方法和装置
CN101800699A (zh) * 2010-02-09 2010-08-11 上海华为技术有限公司 一种丢弃报文的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1998197A (zh) * 2004-07-12 2007-07-11 索尼爱立信移动通信日本株式会社 接收机设备和用于释放其存储器的方法
CN101094181A (zh) * 2007-07-25 2007-12-26 华为技术有限公司 报文入队和出队调度的装置及方法
CN101217495A (zh) * 2008-01-11 2008-07-09 北京邮电大学 用于t-mpls网络环境下的流量监控方法和装置
CN101800699A (zh) * 2010-02-09 2010-08-11 上海华为技术有限公司 一种丢弃报文的方法及装置

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731368A (zh) * 2012-10-12 2014-04-16 中兴通讯股份有限公司 一种处理报文的方法和装置
CN103731368B (zh) * 2012-10-12 2017-10-27 中兴通讯股份有限公司 一种处理报文的方法和装置
CN103019962B (zh) * 2012-12-21 2016-03-30 华为技术有限公司 数据缓存处理方法、装置以及系统
CN103019962A (zh) * 2012-12-21 2013-04-03 华为技术有限公司 数据缓存处理方法、装置以及系统
CN104125168A (zh) * 2013-04-27 2014-10-29 中兴通讯股份有限公司 一种共享资源的调度方法和系统
WO2014173166A1 (zh) * 2013-04-27 2014-10-30 中兴通讯股份有限公司 一种共享资源的调度方法和系统
CN104572641A (zh) * 2013-10-10 2015-04-29 腾讯科技(深圳)有限公司 网页资源的管理方法及装置
CN104572641B (zh) * 2013-10-10 2019-10-25 腾讯科技(深圳)有限公司 网页资源的管理方法及装置
CN103780507B (zh) * 2014-02-17 2017-03-15 杭州华三通信技术有限公司 缓存资源的管理方法及装置
CN106254270A (zh) * 2015-06-15 2016-12-21 深圳市中兴微电子技术有限公司 一种队列管理方法及装置
WO2017000657A1 (zh) * 2015-06-30 2017-01-05 深圳市中兴微电子技术有限公司 一种缓存管理的方法、装置和计算机存储介质
CN106330760A (zh) * 2015-06-30 2017-01-11 深圳市中兴微电子技术有限公司 一种缓存管理的方法和装置
CN105912273A (zh) * 2016-04-15 2016-08-31 成都欧飞凌通讯技术有限公司 一种报文共享储存管理的fpga实现方法
CN105912273B (zh) * 2016-04-15 2019-05-24 成都欧飞凌通讯技术有限公司 一种报文共享储存管理的fpga实现方法
CN107454018A (zh) * 2017-08-25 2017-12-08 锐捷网络股份有限公司 报文缓存管理器异常的处理方法及装置
CN107454018B (zh) * 2017-08-25 2020-01-21 锐捷网络股份有限公司 报文缓存管理器异常的处理方法及装置
CN108173784A (zh) * 2017-12-29 2018-06-15 湖南恒茂高科股份有限公司 一种交换机的数据包缓存的老化方法及装置
CN108173784B (zh) * 2017-12-29 2021-12-28 湖南恒茂高科股份有限公司 一种交换机的数据包缓存的老化方法及装置
CN108521343A (zh) * 2018-03-26 2018-09-11 烽火通信科技股份有限公司 一种oam报文的处理方法及装置
CN109102691B (zh) * 2018-07-24 2020-10-27 宁波三星医疗电气股份有限公司 一种基于链表的电能表事件主动上报处理方法
CN109102691A (zh) * 2018-07-24 2018-12-28 宁波三星医疗电气股份有限公司 一种基于链表的电能表事件主动上报处理方法
CN109325004A (zh) * 2018-12-04 2019-02-12 郑州云海信息技术有限公司 一种目录项管理方法、装置、设备及可读存储介质
CN111723058A (zh) * 2020-05-29 2020-09-29 广东浪潮大数据研究有限公司 一种预读数据缓存方法、装置、设备及存储介质
US11681623B1 (en) 2020-05-29 2023-06-20 Guangdong Inspur Smart Computing Technology Co., Ltd. Pre-read data caching method and apparatus, device, and storage medium
CN111723058B (zh) * 2020-05-29 2023-07-14 广东浪潮大数据研究有限公司 一种预读数据缓存方法、装置、设备及存储介质
CN112597075A (zh) * 2020-12-28 2021-04-02 海光信息技术股份有限公司 用于路由器的缓存分配方法、片上网络及电子设备
CN112597075B (zh) * 2020-12-28 2023-02-17 成都海光集成电路设计有限公司 用于路由器的缓存分配方法、片上网络及电子设备
CN112612424A (zh) * 2020-12-29 2021-04-06 江苏国科微电子有限公司 一种NVMe提交队列控制装置及方法
CN112835818A (zh) * 2021-02-01 2021-05-25 芯河半导体科技(无锡)有限公司 一种流队列缓存空间地址回收的方法
CN113904997A (zh) * 2021-10-21 2022-01-07 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置
CN113904997B (zh) * 2021-10-21 2024-02-23 烽火通信科技股份有限公司 交换芯片接收端多优先级业务缓存和调度的方法及装置

Also Published As

Publication number Publication date
CN102447610B (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
CN102447610A (zh) 实现报文缓存资源共享的方法和装置
CN103348640B (zh) 中继装置
CN107959636B (zh) Bgp消息的发送方法及装置
CN110493145A (zh) 一种缓存方法及装置
US8588243B2 (en) Queue scheduling method and apparatus
CN102045258B (zh) 数据缓存管理方法及装置
CN102594691B (zh) 一种处理报文的方法及装置
CN101630992B (zh) 共享内存管理方法
CN103493449A (zh) 分组交换网络中的有效电路
CN107454014A (zh) 一种优先级队列调度的方法及装置
WO2016019554A1 (zh) 一种队列管理的方法和装置
CN103685062A (zh) 缓存管理方法及装置
CN105791371A (zh) 一种云存储服务系统及方法
CN104780118A (zh) 一种基于令牌的流控方法及装置
CN102223311A (zh) 一种队列调度方法及装置
CN102143053B (zh) 传输数据的方法、装置和系统
US7907632B2 (en) Data output apparatus, communication apparatus and switch apparatus
CN102546423A (zh) 队列调度方法、装置及网络设备
CN102833158B (zh) 网络数据发送方法和装置、网络数据系统
CN107770875A (zh) 航空自组网混合mac协议
CN103701721A (zh) 报文传输方法及装置
CN110247854B (zh) 一种多等级业务调度方法和调度系统以及调度控制器
CN102520879B (zh) 基于优先级的文件信息存储方法、装置及系统
CN107911317B (zh) 一种报文调度方法及装置
CN106657097B (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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151104

Address after: Dameisha Yantian District of Shenzhen City, Guangdong province 518085 Building No. 1

Patentee after: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corporation

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120509

Assignee: Xi'an Chris Semiconductor Technology Co. Ltd.

Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Contract record no.: 2019440020036

Denomination of invention: Method and device for realizing message buffer resource sharing

Granted publication date: 20150520

License type: Common License

Record date: 20190619

EE01 Entry into force of recordation of patent licensing contract