一种缓冲区管理方法及其系统.pdf

上传人:111****11 文档编号:1091235 上传时间:2018-03-30 格式:PDF 页数:19 大小:667.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810100471.4

申请日:

2008.06.16

公开号:

CN101610197A

公开日:

2009.12.23

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):H04L 12/54申请公布日:20091223|||实质审查的生效|||公开

IPC分类号:

H04L12/54; H04L29/08

主分类号:

H04L12/54

申请人:

中兴通讯股份有限公司

发明人:

吴春华; 娄本刚

地址:

518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司

代理人:

龙 洪;霍育栋

PDF下载: PDF下载
内容摘要

本发明涉及一种缓冲区管理方法及其系统,其中系统全部内置于与外部存储器连接的芯片内,方法包括:建立外部存储器的缓冲区状态表并使其记录索引与各自缓冲区地址相同;根据对应请求和所述缓冲区状态表分配或回收缓冲区并对所述缓冲区状态表进行维护。这种方法及其系统通过记录索引与缓冲区地址直接对应,用存放缓冲区状态表替代存放缓冲区的指针,使全套系统可以在芯片内部完全实现,与传统的缓冲区管理办法相比,大量节省存储器的空间耗费,并大幅提高性能表现,进一步将整个缓冲区状态表分成多个子表,也大大提高了比传统方法快的多的响应速度。

权利要求书

1、  一种缓冲区管理方法,其特征在于,包括以下步骤:

1.
  1)建立外部存储器的缓冲区状态表并将其记录索引与各自缓冲区地址对应;所述索引和地址的宽度一致,所述状态包括分配状态和空闲状态;

1.
  2)根据对应请求和所述缓冲区状态表分配或回收缓冲区并对所述缓冲区状态表进行维护。

2、
  根据权利要求1所述管理方法,其特征在于,所述记录索引与对应缓冲区地址完全相同。

3、
  根据权利要求2所述管理方法,其特征在于,所述缓冲区状态表由若干缓冲区状态子表构成,所述缓冲区状态子表标识码作为高位和所述缓冲区状态子表的记录索引作为低位构成各自缓冲区地址。

4、
  根据权利要求2所述管理方法,其特征在于,所述步骤1.2)中分配包括轮询所述缓冲区状态表找到一个未分配缓冲区,在获得申请请求之后将该未分配缓冲区对应索引作为被分配缓冲区地址提供给所述外部存储器并将对应缓冲区状态置为分配状态。

5、
  根据权利要求2所述管理方法,其特征在于,所述步骤1.2)中回收包括以被释放缓冲区地址作为缓冲区状态表的索引并将对应缓冲区状态置为空闲状态。

6、
  根据权利要求1或2所述管理方法,其特征在于,所述步骤1.2)采用仲裁机制处理多个同时的所述请求。

7、
  根据权利要求1所述管理方法,其特征在于,该管理方法还建立并维护回收缓冲区状态表,所述步骤1.2)中回收包括根据所述回收缓冲区状态表对所述缓冲区状态表进行操作。

8、
  根据权利要求7所述管理方法,其特征在于,所述步骤1.2)中回收是定时启动的。

9、
  根据权利要求3或8所述管理方法,其特征在于,所述步骤1.2)中回收是对当前正在操作的缓冲区状态子表中的缓冲区进行的。

10、
  一种缓冲区管理系统,连接管理外部存储器,其特征在于,该系统全部内置于与所述外部存储器连接的包含记录索引与缓冲区地址宽度一致、数值相同或一一对应的缓冲区状态表的芯片内。

说明书

一种缓冲区管理方法及其系统
技术领域
本发明涉及高速数据传输与交换,具体涉及一种缓冲区管理方法及其系统。
背景技术
在数据通信网络中,数据流量都非常大。这些数据流量在数据交换点完成源端口与目的端口之间的互通,所述数据交换点包括交换机,路由器等。在每个数据交换点,一般由于数据处理的需要,都需要将从源端口进来的数据报文进行缓存。
在数据通信领域中,通常使用大容量的存储器来存储从源端口进来的数据。大容量的存储器通常为同步动态随机存储器(SDRAM),双倍数据传输同步动态随机存储器(DDR SDRAM),四倍数据传输同步动态随机存储器(DDR2SDRAM)等。存储器根据需要被分割为很多小块,这些小块被称为缓冲区(Buffer)。对这些缓冲区进行有效地管理的机制及其具体实现,称为缓冲区管理系统(Buffer Manager)。数据从源端口进来的时候,将发起申请缓存区操作。数据从目的端口发送出去的时候,将发起释放缓存区操作。
如图1所示,传统缓冲区管理系统包括空闲缓冲区列表读写指针,空闲缓冲区队列,控制逻辑,缓冲区回收三个部分。大容量的外部存储器是被管理的目标。外部存储器根据需要被分割成很多小块,每个小块依顺序赋予地址,称为缓冲区地址。空闲缓冲区队列保存的为未分配出去的缓冲区地址。其工作原理如下:(一)初始化,如图2所示,在系统初始化阶段需要将空闲缓冲区队列初始化,其内容为依顺序排列的缓冲区地址,读指针初始化成0,写指针初始化为缓冲区总数加1。在该阶段,空闲缓冲区列表为满状态。(二)分配过程,如图3所示,当外部有缓冲区申请请求时,从空闲缓冲区队列中取得一个空闲缓冲区地址,读指针加1;(三)释放过程,如图4所示,当外部有缓冲区释放请求时,响应释放请求,将待释放的缓冲区地址列入空闲缓冲区队列,写指针加1。
由于数据缓存能力的需要,选用的存储器的容量一般很大,缓冲区的数量一般也比较大。假如管理1M的缓冲区数量,那么每个缓冲区的地址为20bit,管理这些缓冲区占用的空间至少为:1M*20=20Mbit。如此巨大的空间消耗,迫使传统缓冲区管理系统将空闲缓冲区列表的内容(缓冲区指针)存放在芯片的外部存储器中。而缓冲区管理系统则位于芯片内部,其负责维护空闲缓冲区队列的读写指针。此种方式要求缓冲区管理系统在每一个申请和释放的时候都需要读写外部存储器各一次。由于外部存储器通常表现出显著延迟,使得缓冲区管理系统的效率受到影响。
同时,采用传统的缓冲区管理系统,如果需要有缓冲区的自动回收系统,其必须为每个缓冲区至少分配2比特Bit空间,记录当前缓冲区的分配状态和回收状态。在此种情况下,传统的缓冲区管理系统在分配缓冲区时,置缓冲区的分配状态Bit为有效,同时置缓冲区的回收状态Bit为无效。传统的缓冲区管理系统的回收方法通过定时遍历所有的缓冲区,查看缓冲区的状态,然后更新缓冲区的状态。如果缓冲区的分配状态Bit为有效,而回收状态Bit为无效,则置回收状态Bit为有效。如果缓冲区的分配状态Bit为有效,而回收状态Bit为有效,则置分配状态Bit和回收状态Bit为无效。另外,此2Bit的访问不能和空闲缓冲区队列一起访问,其原因是空闲缓冲区队列中的内容为乱序的。所以,如果采用自动回收系统,在对缓冲区进行回收时,还将增加对外部存储器的读写访问各一次,对性能造成严重影响。
考虑到缓冲区回收功能,传统的缓冲区管理系统管理1M的缓冲区数量,其所需的空间至少为:1M*20+1M*2=22Mbit,其空间所需巨大,且性能低下。
发明内容
本发明需要解决的技术问题是如何提供一种缓冲区管理方法及其系统,可以无须读写外部存储器完成缓冲区的申请和释放。
本发明的上述第一个技术问题这样解决,提供一种缓冲区管理方法,包括以下步骤:
1.1)建立外部存储器的缓冲区状态表并将其记录索引与各自缓冲区地址对应;所述索引和地址的宽度一致,所述状态包括分配状态和未分配状态,未分配状态也称空闲状态;
1.2)根据对应请求和所述缓冲区状态表分配或回收缓冲区并对所述缓冲区状态表进行维护。
按照本发明提供的管理方法,所述记录索引与对应缓冲区地址完全相同。
按照本发明提供的管理方法,所述缓冲区状态表由若干缓冲区状态子表构成,所述缓冲区状态子表标识码ID作为高位和所述缓冲区状态子表的记录索引作为低位构成各自缓冲区地址。
按照本发明提供的管理方法,所述步骤1.2)中分配包括轮询所述缓冲区状态表找到一个未分配缓冲区,在获得申请请求之后将该未分配缓冲区对应索引作为被分配缓冲区地址提供给所述外部存储器并将对应缓冲区状态置为分配状态。
按照本发明提供的管理方法,所述步骤1.2)中回收包括以被释放缓冲区地址作为缓冲区状态表的索引并将对应缓冲区状态置为空闲状态。
按照本发明提供的管理方法,所述步骤1.2)采用仲裁机制处理多个同时的所述请求。
按照本发明提供的管理方法,该管理方法还建立并维护回收缓冲区状态表,所述步骤1.2)中回收包括根据所述回收缓冲区状态表对所述缓冲区状态表进行操作。
按照本发明提供的管理方法,所述步骤1.2)中回收是定时启动的。
按照本发明提供的管理方法,所述缓冲区状态表由若干缓冲区状态子表构成时,所述步骤1.2)中回收是分区进行的,即:一次定时仅对当前正在操作的缓冲区状态子表中的缓冲区进行的。
本发明的上述另一个技术问题这样解决,提供一种缓冲区管理系统,连接管理外部存储器,该系统全部内置于与所述外部存储器连接的包含记录索引与缓冲区地址宽度一致、数值相同或一一对应的缓冲区状态表的芯片内,其中数值不相同的一一对应情况一般仅限于通过简单加减可转换为数值相同的情况。
本发明提供的一种缓冲区管理方法及其系统,通过记录索引与缓冲区地址直接对应,避免存放多Bit缓冲区地址指针而仅须维护1Bit的缓冲区状态,从而使全套系统可以在芯片内部完全实现,避免申请和释放缓冲区时对外部存储器的读写,与传统的缓冲区管理办法相比,大量节省存储器的空间耗费,并大幅提高性能表现,具有资源消耗非常低的特点,进一步将整个缓冲区状态表分成多个子表,也大大提高了比传统方法快的多的响应速度。
附图说明
图1为传统的缓冲区管理系统结构示意图;
图2为图1所示系统的初始化过程;
图3为图1所示系统的申请流程图;
图4为图1所示系统的释放流程图;
图5为图1所示系统的回收控制过程;
图6为本发明改进后的分级缓冲区管理系统结构示意图;
图7为图2所示系统的初始化过程;
图8为图2所示系统的申请流程图;
图9为图2所示系统的释放流程图;
图10为图2所示系统的回收控制过程
具体实施方式
首先,说明本发明组成、关键和特点:
本发明内部将维护一个缓冲区状态表,其位宽为1bit,长度等于缓冲区个数。缓冲区状态表的索引和各个缓冲区对应,索引宽度和缓冲区的地址宽度一致,缓冲区状态表的内容标识了对应的缓冲区是否被分配,例如为1表示未分配状态,为0则表示已分配状态。为加快响应速度,本发明将缓冲区状态表分成若干个子表进行维护,每个缓冲区状态子表都有1子表ID,子表ID编号从0开始,依次编号1,2,3....。缓冲区状态子表ID作为高位和缓冲区状态子表的索引作为低位,构成了缓冲区地址。另外,为实现缓冲区的回收功能,本发明还包括缓冲区回收控制模块,其维护一张回收缓冲区状态表,其内容标识为缓冲区回收标识,例如为0则表示不需回收,为1则表示需要回收。回收缓冲区状态表的大小一般和缓冲区状态子表的大小相同(也可以更小)。
本发明实现的缓冲区管理系统由四个主要部分构成,分别是缓冲区状态子表,缓冲区状态子表维护模块,申请释放仲裁模块,待回收缓冲区状态表,以及缓冲区回收控制模块。其中,缓冲区子表状态维护模块负责读写缓冲区状态子表;申请释放仲裁模块则负责响应缓冲区的申请和释放操作并在有多个申请释放请求的时候裁定响应哪个请求源同时选定待操作的缓冲区状态子表;缓冲区回收控制模块则控制对已分配的缓冲区在一定时间未被释放的则进行释放操作。本模块所有数据表项和信息都在芯片内部,不需要对外部存储器进行任何访问。
采用本发明实现后,耗费的存储空间将大量减少,每个缓冲区只需要1bit的空间,假如缓冲区个数为1024K,其消耗的空间将只是1Mbit,而不是传统的缓冲区管理系统的20Mbit。同时,本模块还将可以缓冲区分块处理,假如管理1M数量的缓冲区,其可以分成10个1024K的缓冲区块,其将大幅提高缓冲区管理器的处理速度。假如需要缓冲区回收功能,其额外所需的资源也非常少。在采用本发明的缓冲区系统后,缓冲区可以分块回收,假如管理1M的缓冲区,其可以按照1K个缓冲区组成1块来进行回收,其额外所需的空间是1Kb,所以,其总资源消耗为1025Kbit。
第二步,结合附图进一步详细说明:
一、系统结构
本发明一种快速低资源消耗的缓冲区管理系统,如附图6所示,该系统包括五个部分:缓冲区状态子表,缓冲区状态子表维护模块,申请释放仲裁模块,待回收缓冲区状态表,以及缓冲区回收控制模块,它们的职责分别是:
1)缓冲区状态子表
此对应的是芯片内部的一块物理空间,其大小应为:缓冲区状态子表维护的缓冲区数量x1Bit。其内容存放的是其对应的缓冲区状态。在系统初始化阶段,此块空间应被初始化成“1”(未分配状态)。此表供缓冲区状态子表维护模块进行读取和写入操作,同时还供缓冲区回收控制模块进行读取操作。
2)缓冲区状态子表维护模块
完成对缓冲区状态子表的轮询和写入操作。在系统工作状态,其轮询其负责管理的缓冲区状态子表,直至找出未分配的缓冲区,并给出找到未分配缓冲区的标识。当申请释放仲裁模块将本模块的找到的未分配缓冲区分配后,将对应的缓冲区状态子表中的内容置为“0”(已分配状态)。此后模块又启动轮询,查找下一个未分配的缓冲区。同时,在系统工作状态,此模块还需要响应缓冲区回收控制模块的回收请求,将需要回收的缓冲区对应的缓冲区状态子表中的内容置为“1”(未分配状态)。
3)申请释放仲裁模块
此模块完成外部缓冲区释放和申请的仲裁操作以及内部各个缓冲区子表的选择操作。当有多个申请请求源同时有效的时候,决定响应哪个申请请求源,然后从已给出已找到未分配缓冲区的缓冲区子表中,调度出一缓冲区子表,将其子表的索引作为缓冲区地址分配给申请请求源。当有多个释放请求源同时有效的时候,决定响应哪个释放请求源,然后根据释放的缓冲区地址,选中相应的缓冲区子表,进行缓冲区释放操作。缓冲区管理器可以服务多个缓冲区使用者,使用者需要使用缓冲区时向缓冲区管理器发出申请请求,使用完缓冲区后向缓冲区管理器发出释放该缓冲区请求,回收供以后使用。
4)待回收缓冲区状态表
本模块联同缓冲区回收控制模块完成缓冲区的回收工作,防止缓冲区的意外泄漏。在缓冲区回收控制模块启动时,本模块记录下正在操作中的缓冲区状态子表中的所有缓冲区的状态。然后在等待一段时间之后,查看待回收缓冲区表中各个缓冲区状态,如果还为“1”(记录为已分配状态),则进行回收。在等待的时间过程中,如果有缓冲区发生了释放操作,且释放的缓冲区恰好是正在操作中的缓冲区状态子表中的缓冲区,则需要将待回收缓冲区状态表中相应的内容置为“0”(记录为未分配状态)。通过此方法,可以发现那些超时未有释放操作的缓冲区。所有这类缓冲区,将被回收。
5)缓冲区回收控制模块
本模块联同缓冲区回收控制模块完成缓冲区的回收工作,防止缓冲区的意外泄漏。在缓冲区回收控制模块启动时,本模块读取正在操作中的缓冲区状态子表中的所有缓冲区的状态,将其写入待回收缓冲区状态。然后在等待一段时间之后,查看待回收缓冲区表中各个缓冲区状态,如果还为“0”,则进行回收。
二、工作原理,具体包括:
(一)初始化
如图7所示,在系统初始化阶段,将所有缓冲区状态子表的内容都之对应的缓冲区状态归“1”(未分配状态)。
(二)分配
如图8所示,在分配缓冲区时,收到缓冲区使用者的缓冲区申请请求后,轮询各个缓冲区状态子表维护模块的已找到未分配缓冲区的标识,如果有效,则将对应的缓冲区状态子表ID和索引作为缓冲区地址,联同申请响应信号一起送出。同时,将对应缓冲区状态子表的索引指向的内容置为“0”(已分配状态)。
(三)释放和回收
如图9和10所示,在释放缓冲区时,收到缓冲区使用者的释放请求后,以被释放的缓冲区地址作为缓冲区状态表的索引,找到对应缓冲区状态子表,并将对应的缓冲区状态子表的相应地址的内容置为“1”(未分配状态)。同时,如果缓冲区回收模块正在操作的缓冲区地址空间和此缓冲区状态子表对应的缓冲区地址空间对应,则将释放的缓冲区对应的回收缓冲区状态表中的相应Bit置为“1”。同时,缓冲区回收控制模块为定时启动,每次操作一张缓冲区状态子表。在缓冲区回收控制模块工作期间,其读取缓冲区状态子表中的各个缓冲区状态,写入待回收缓冲区状态表。在等待一段时间后,缓冲区回收控制模块查询待回收缓冲区状态表,如果某索引对应内容为“0”,则将当前缓冲区回收控制模块操作的缓冲区子表中对应的缓冲区的状态置为“1”(未分配状态)。当整个待回收缓冲区状态表轮询完毕,则此次回收过程完成。依靠定时器启动下次回收过程,其操作的对象则变成了下一张缓冲区状态子表。

一种缓冲区管理方法及其系统.pdf_第1页
第1页 / 共19页
一种缓冲区管理方法及其系统.pdf_第2页
第2页 / 共19页
一种缓冲区管理方法及其系统.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《一种缓冲区管理方法及其系统.pdf》由会员分享,可在线阅读,更多相关《一种缓冲区管理方法及其系统.pdf(19页珍藏版)》请在专利查询网上搜索。

本发明涉及一种缓冲区管理方法及其系统,其中系统全部内置于与外部存储器连接的芯片内,方法包括:建立外部存储器的缓冲区状态表并使其记录索引与各自缓冲区地址相同;根据对应请求和所述缓冲区状态表分配或回收缓冲区并对所述缓冲区状态表进行维护。这种方法及其系统通过记录索引与缓冲区地址直接对应,用存放缓冲区状态表替代存放缓冲区的指针,使全套系统可以在芯片内部完全实现,与传统的缓冲区管理办法相比,大量节省存储器的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1