多通道缓存分配方法及装置的制作方法

文档序号:6604216阅读:118来源:国知局
专利名称:多通道缓存分配方法及装置的制作方法
技术领域
本发明涉及电子通信技术领域,尤其涉及一种多通道缓存分配方法及装置。
背景技术
随着信息技术以及电路集成规模的高速发展,在通信数据传输系统中,多通 道数据缓存处理越来越成为了一种常见的电路设计。例如,在常见的同步数字体系 (Synchronous Digital Hierarchy,简称SDH)通信网络中,按照接口类型便可以划分为El、 CEl和El-F三种,而其中的El接口按照时隙又可以划分为30个数据通道。因而,为了能够 同时对多个接口及多个数据通道的数据传输进行处理,通常需要为各个通道分配相应的缓 存空间,以满足各个通道的数据存储需求。现有技术中常见的多通道缓存分配方案有如下两种第一种方案为固定深度缓存 分配方法,即为每个数据通道均固定分配相同深度的缓存,使得在分配之后,每个通道可用 的缓存空间大小都是一致的。这种方案存在明显的缺陷在通信系统中,通常对应于不同的 数据通道,其数据传输能力、即带宽大小均有可能不同,因此若为具有不同带宽能力的数据 通道分配相同深度的缓存,将导致带宽较大的通道缓存不够使用,而带宽较小的通道存在 剩余缓存的情况,尤其是当使用芯片内部存储资源作为各通道的缓存空间时,这种分配方 案是非常不合理的,将造成极大的资源浪费。第二种方案为深度可预设缓存分配方法,在这种方法中,预先根据各通道不同的 带宽大小,为各个通道对应分配了大小不同的缓存,使得带宽较大的通道能分配到较多的 缓存空间,而带宽较小的通道则分配到较少的缓存空间。但是这种方案同样存在分配不合 理的缺陷且不论每个数据通道的带宽可能会随着应用场景的不同而随之发生变化,即使 对于带宽大小固定的数据通道而言,数据处理能力的大小也并不能代表该通道当前需处理 数据的多少。例如即使对于一个带宽较大的数据通道而言,其同样会存在无需进行任何数 据处理的时刻,而在该时刻,该通道所分配的较大的缓存空间便成为了一种浪费。因而在该 第二种方案中,由于一旦缓存分配结束后,每个数据通道可用的缓存空间大小便固定不变, 同样会导致缓存分配大小不合理的现象。

发明内容
本发明提供一种多通道缓存分配方法及装置,用以克服现有技术中为多个通道分 配缓存时出现的缓存分配大小不合理的缺陷,为实现上述目的,本发明提供一种多通道缓存分配方法,包括根据每个通道各自的带宽能力分别为所述每个通道设置对应的缓存门限,所述缓 存门限用于标识所述每个通道最大可占用的缓存单元数目;当任一通道接收到数据写入请求时,根据所述通道的当前写缓存单元的数据存储 状态、当前已占用的缓存单元个数、对应的缓存门限,以及所述数据写入请求中待写入数据 的容量大小,判断所述通道是否满足当前的数据写入条件;
若所述通道满足当前的数据写入条件,则在所述通道的当前写缓存单元容量未满 时,将所述待写入数据写入至所述当前写缓存单元中,并在所述当前写缓存单元容量已满 时,在所述通道中为未写完的剩余待写入数据分配新的缓存单元。为实现上述目的,本发明还提供一种多通道缓存分配装置,包括缓存门限设置模块,用于根据每个通道各自的带宽能力分别为所述每个通道设置 对应的缓存门限,所述缓存门限用于标识所述每个通道最大可占用的缓存单元数目;判断模块,用于当任一通道接收到数据写入请求时,根据所述通道的当前写缓存 单元的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,以及所述数据写入请 求中待写入数据的容量大小,判断所述通道是否满足当前的数据写入条件;数据写入模块,用于若所述判断模块判断出所述通道满足当前的数据写入条件, 则在所述通道的当前写缓存单元容量未满时,将所述待写入数据写入至所述当前写缓存单 元中;第一缓存分配模块,用于在所述当前写缓存单元容量已满时,在所述通道中为未 写完的剩余待写入数据分配新的缓存单元。本发明提供的多通道缓存分配方法及装置,通过为每个通道对应设置一个合理的 缓存分配上限值,且通过在当某个通道需要进行数据传输时,依据该数据传输请求的缓存 需求以及该通道对应的门限值,动态地为该通道分配所需缓存,而对于无需传输数据的通 道,则不为该通道分配任何缓存资源,从而使得每个通道占用的缓存资源均不会超过预设 可调节的上限值,且带宽较大的通道可以占用较多的缓存资源,带宽较小的通道占用较少 的缓存资源,没有数据传输需求的通道则不占用任何缓存资源,避免了多通道缓存分配时 出现的缓存资源浪费及缓存分配不合理的现象,进一步地,通过为每个通道设置对应的缓 存上限值,还避免了出现单个通道所占用的缓存空间过大,而影响其他通道的数据传输的 现象。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这 些附图获得其他的附图。图1为本发明多通道缓存分配方法实施例一的流程图;图2为本发明多通道缓存分配方法实施例二的流程图;图3为本发明中各个通道对应的已占用缓存单元列表的示意图;图4为本发明中系统对应的缓存单元列表的示意图;图5为本发明多通道缓存分配装置实施例一的结构示意图;图6为本发明多通道缓存分配装置实施例二的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附 图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明
6一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明多通道缓存分配方法实施例一的流程图,如图1所示,本实施例具体 包括如下步骤步骤100,根据每个通道各自的带宽能力分别为该每个通道设置对应的缓存门限, 该缓存门限用于标识各通道最大可占用的缓存单元数目;在多通道数据通信系统中,对于分别与多个端口对应的多个数据通道而言,由于 各个端口的类型以及各自的带宽通常会有所不同,因而各通道分别具备的数据传输能力也 将相应的有所不同。在本实施例中,为了避免出现单个通道所占用的缓存空间过大,而影响 到其他通道的数据传输的现象,针对具有不同带宽的各个数据通道,将根据各通道各自对 应的带宽能力,为每个通道设置一个相应的缓存门限,即为各个通道设置一个对应的缓存 分配上限值。该缓存门限对应地标识了各个通道最大可占用的缓存单元数目,使得对应于 每个通道,各通道最大所能占用的缓存单元数目均不能超过与该通道对应的缓存门限。具体地,该设置的缓存门限与各通道的带宽能力相对应,而且在整个多通道系统 中,所有的缓存空间均被合理划分为固定大小的缓存单元,每个通道的缓存门限以缓存单 元为单位而设置得到。对于带宽能力较强、平均时间内数据传输速度较快的通道而言,由于 该通道的数据流量相对较大,数据容易在对应的缓存中进行积累,相应地该通道所需的缓 存空间通常较多,因而本实施例中为该通道设置的缓存门限也相应较大,即为该通道设置 的最大可占用的缓存单元数目也较多;而反之,对于带宽能力较差、平均时间内数据传输速 度较慢的通道而言,由于该通道的数据流量相对较小,数据不太容易在对应的缓存中积累, 相应地该通道所需的缓存空间通常较少,则本实施例中为该通道设置的缓存门限也将相应 较小,即为该通道设置的最大可占用的缓存单元数目也较少。步骤101,当任一通道接收到数据写入请求时,根据该通道的当前写缓存单元的数 据存储状态、当前已占用的缓存单元数目、对应的缓存门限,以及数据写入请求中待写入数 据的容量大小,判断该通道是否满足当前的数据写入条件;为各个通道设置了对应的缓存门限后,各通道所能分配的缓存单元的上限值已经 确定,因而在当任一通道接收到数据写入请求时,为了得知是否能够响应该数据写入请求, 在本实施例中,接收到数据写入请求的通道将首先根据与该通道对应的缓存门限、当前已 占用的缓存单元的数目,以及根据该通道的当前写缓存单元的当前数据存储状态,以及数 据写入请求中待写入数据的容量大小,判断接收到数据写入请求的该通道是否满足数据写 入条件,即判断当前状态下是否能够将该待写入数据写入至对应通道所占用的缓存单元 中,以及在待写入数据的容量较大时,是否需要为该通道分配对应的缓存空间。具体地,上述该通道的当前写缓存单元具体指,该通道的当前写指针所对应的缓 存单元。在多数据通道的系统中,每个通道在进行数据处理时,均有可能根据数据缓存的 需要,被分配了一个或多个的缓存单元,但是对于任意一个通道而言,其所对应的当前写指 针所指向的缓存单元只有一个,该当前写指针指向的缓存单元便为该通道的当前写缓存单 元。当该通道存在数据写入需求时,该通道会根据其对应的当前写指针,寻址到对应的当前 写缓存单元中,将待写入的数据首先在寻址到的当前写缓存单元中进行数据写入处理。而上述的当前写缓存单元的数据存储状态具体指当前写缓存单元的数据存储空间处于已满或者未满的状态,以及该当前写缓存单元的容量占用百分比的状态。因而根据 当前写缓存单元的该数据存储状态,该通道可以得知该当前写缓存单元是否已经被存满或 者还未被存满,以及若未被存满时,该当前写缓存单元中还剩余多少未用的空间容量。步骤102,若该通道满足当前的数据写入条件,则在该通道的当前写缓存单元容量 未满时,将待写入数据写入至该通道的当前写缓存单元中,并在当前写缓存单元容量已满 时,在该通道中为未写完的剩余待写入数据分配新的缓存单元。若经过判断,该通道得知,对应于接收到的数据写入请求,其满足当前的数据写入 条件,即该通道当前已占用的存储空间的容量未超出为该通道设置的可用最大缓存空间, 且数据写入请求中待写入数据的容量也未超出该通道的剩余可用存储容量时,在本实施例 中,为了不浪费当前写缓存单元的缓存空间容量,该通道将首先判断其对应的当前写缓存 单元是否已被存储满,即是否还能存储更多的数据。若根据判断得知,该当前写缓存单元的容量还存在剩余空间时,该通道将首先将 待写入数据写入至该当前写缓存单元的剩余存储空间中,且同时判断在当前写缓存单元的 剩余存储空间也被存储满时,待写入数据是否已被写完。而若当前写缓存单元已被存储满, 但是待写入数据还未被写完时,系统的缓存分配装置则将从系统所有尚未被占用的缓存单 元中,获取与未写完的剩余待写入数据容量大小相当的缓存单元,分配给接收到数据写入 请求的该通道,以用于存储剩余部分的待写入的数据,从而满足该通道的数据写入需求。如此一来可见,在本发明中,对应多个数据通道的通信系统,只有在任一通道接收 到数据写入请求,即存在数据缓存需求,且同时该通道的当前写缓存单元已被写满时,系统 的缓存分配装置才会为其分配大小相当的新的缓存单元,而对于未存在任何数据缓存需求 的通道,该缓存分配装置则不为其分配任何缓存单元,从而真正实现了多通道缓存动态的 按需分配,避免了各通道中出现未用缓存单元的浪费现象。进一步地,通过预先为各通道设 置与其带宽能力相当的缓存门限,对各通道最大可分配的缓存单元数目进行限制,还避免 了出现单个通道所占用的缓存空间过大,而影响到其他通道的数据传输的现象。本实施例的多通道缓存分配方法,通过为每个通道对应设置一个合理的缓存分配 上限值,且通过在当某个通道需要进行数据传输时,依据该数据传输请求的缓存需求以及 该通道对应的门限值,动态地为该通道分配所需缓存,而对于无需传输数据的通道,则不为 该通道分配任何缓存资源,从而使得每个通道占用的缓存资源均不会超过预设可调节的上 限值,带宽较大的通道可以占用较多的缓存资源,带宽较小的通道占用较少的缓存资源,没 有数据传输需求的通道则不占用任何缓存资源,避免了多通道缓存分配时出现的缓存资源 浪费及缓存分配不合理的现象,进一步地,通过为每个通道设置对应的缓存上限值,还避免 了出现单个通道所占用的缓存空间过大,而影响其他通道的数据传输的现象。图2为本发明多通道缓存分配方法实施例二的流程图,如图2所示,本实施例具体 包括如下步骤步骤200,根据每个通道各自的带宽能力分别为每个通道设置对应的缓存门限;步骤201,为每个通道分配初始数目为零的缓存单元;在本实施例中,对应于多个通道的缓存分配装置在根据多个通道各自的带宽能 力,为每个通道设置了对应的缓存门限,以对各个通道可占用的最大缓存空间进行限制后, 为了保证各个通道在初始状态还未开始进行任何数据传输,即还无需使用任何缓存空间时,各个通道不占且不浪费系统的任何缓存空间,缓存分配装置将为各通道分配初始值数 目为零的缓存单元,即并不设置各通道的缓存分配下限值,使得各通道在没有数据传输需 求时不占用任何的缓存资源。步骤202,任一通道接收到数据写入请求;步骤203,根据该通道的当前写缓存单元的数据存储状态,当前已占用的缓存单 元、对应的缓存门限,以及数据写入请求中待写入数据的容量大小,判断该通道是否满足当 前的数据写入条件;在设置了各通道的最大的缓存门限,以及为各通道分配了初始值为零的初始缓存 空间之后,当多个通道中的任一通道接收到数据写入请求时,缓存分配装置可以根据该通 道的当前写缓存单元的数据存储状态,已占用的缓存单元数目、对应的缓存门限,以及数据 写入请求中待写入数据的大小,判断该通道是否满足当前的数据写入条件,是否可以将待 写入数据写入至对应的通道中,以及是否可以为待写入数据分配相应的缓存单元,以对应 地执行下一步操作。具体地,该判断过程可以包括如下的子步骤步骤2030,根据该通道的当前写缓存单元的数据存储状态,计算该通道的当前写 缓存单元的剩余可用存储空间大小;对于接收到数据写入请求的任一通道而言,在接收到该数据写入请求之前,该通 道可能已经被分配、即已经占用了 一定数目的缓存单元,或者该通道还处于初始状态,并未 分配有任何缓存空间。而对于已分配有缓存单元的数据通道而言,在接收到一数据写入请 求时,为了不浪费该数据通道的当前缓存单元的任何可用缓存空间,缓存分配装置将首先 根据该当前写缓存单元的数据存储状态,计算该通道的当前写缓存单元的剩余可用存储空 间大小。具体指,根据当前写缓存单元的容量占用百分比,以及根据系统设置的每个缓存单 元的容量大小,计算该当前写缓存单元剩余的可用存储空间的大小。步骤2031,根据该通道当前已占用的缓存单元数目、对应的缓存门限,以及计算得 到的当前写缓存单元的剩余可用存储空间大小,计算该通道当前可用的最大缓存空间;在计算得到对应通道的当前写缓存单元的剩余可用存储空间大小之后,为了进一 步计算该通道当前可用的总的最大缓存空间值,缓存分配装置将进一步地根据该通道已占 用的缓存单元个数,该通道所对应的缓存门限,以及根据上一子步骤中计算得到的该通道 的当前写缓存单元的剩余可用存储空间大小,计算当前状态下,该通道还能够被使用的最 大缓存空间的容量,即计算该通道的当前可用的最大缓存空间大小值。具体地,根据该通道已占用的缓存单元个数以及该通道的缓存门限,缓存分配装 置能够计算出该通道还可被分配的最大缓存单元数目,从而根据可被分配的最大缓存单元 数目,以及根据系统为每个缓存单元设置的容量大小,缓存分配装置可以计算得到该通道 可被分配的最大缓存空间容量大小值。该可被分配的最大缓存空间的容量值与上一步骤中 计算得到的该通道的当前写缓存单元的剩余可用存储空间容量值相加,便得到了该通道当 前可用的最大缓存空间值。步骤2032,判断待写入数据的容量大小是否超出了该通道当前可用的最大缓存空 间,若否则执行步骤204,若是则执行步骤209 ;进而,在计算得到了该通道当前可用的最大存储空间值之后,根据计算得到的该 结果,以及根据数据写入请求中待写入数据的容量大小,系统的缓存分配装置便可以判断并计算出该通道是否满足了数据写入请求所对应的数据写入条件。若根据计算结果,缓存 分配装置判断得到待写入数据的容量大小超出或已达到了该通道当前可用的最大缓存空 间值,则可得知当前状态下,该通道不符合数据写入请求所对应的数据写入条件,而若根据 计算结果,缓存分配装置判断得到待写入数据的容量大小未超出该通道当前可用的最大缓 存空间值,则可得知当前状态下,该通道符合数据写入请求所对应的数据写入条件,从而根 据该判断结果,该通道能够将待写入数据写入至通道对应的缓存单元中,以响应该数据写 入请求。步骤204,在该通道的当前写缓存单元容量未满时,将待写入数据写入至该当前写 缓存单元中;步骤205,在当前写缓存单元容量已满时,在该通道中为未写完的剩余待写入数据 分配新的缓存单元;步骤206,将剩余的待写入数据写入至新的缓存单元中;具体地,若根据判断,缓存分配装置得知待写入数据的容量大小尚未超出对应通 道当前可分配的最大缓存空间值,即对应通道的当前状态满足数据写入请求所对应的数据 写入条件时,为了不浪费该通道对应的当前写缓存单元的缓存空间容量,若该通道分配有 当前写缓存单元时,该通道优先将待写入数据写入至对应的当前写缓存单元中。在此之后, 若当前写缓存单元已被存储满而还存在未写完的剩余待写入数据时,缓存分配装置才将根 据剩余的待写入数据的容量大小,在对应通道中为该剩余的待写入数据分配大小相当的缓 存单元,以满足对应通道的数据缓存需求,并将剩余的待写入数据写入至新分配的缓存单 元中。此外需要说明的是,若在上述步骤202中,并非只有一个通道接收到了数据写入 请求,而是多个通道同时接收到数据写入请求,即多个通道同时存在数据缓存需要,而且缓 存分配装置根据对多个数据通道的当前存储状态,还判断得到该多个通道中的至少两个 通道均满足其各自对应的数据写入条件时。为了保证满足数据写入条件的通道能够有序得 到处理,以有序地分配得到相应的缓存空间,在本实施例中,缓存分配装置还可以在响应多 个数据写入请求,以及在为各通道分配缓存之前,根据满足数据写入条件的各个通道各自 对应的优先级别高低,对该各个通道进行调度,然后再根据调度的结果,依序为各个通道分 配相对应容量大小的缓存单元。从而使得优先级别较高的通道能够优先被处理,其接收到 的数据写入请求能够被优先响应,在需要分配新的缓存单元时,能够优先被分配到相应的 缓存单元;而反之,优先级别较低的通道在等待一段时间,即等待到优先级别相对较高的通 道的数据写入请求被处理完成之后,才得到相应的处理。从而在系统的总的剩余缓存空间 有限的情况下,能够保证优先级别高的数据通道被优先的分配得到所需的缓存资源。步骤207,将分配给通道的新的缓存单元的单元标识更新至该通道对应的已占用 缓存单元列表中,以及从系统未用缓存单元列表中删除;进一步地,若缓存分配装置在根据各个通道的缓存分配需求,以及根据各通道的 当前状态,为满足数据写入条件的各通道分配了新的缓存单元,并将待写入数据分别写入 至为对应通道分配的新的缓存单元中,以响应了各通道的数据写入请求之后,为了还能够 根据缓存单元的分配结果,对系统用于管理所有缓存空间的而创建的索引列表的当前状态 信息进行更新,在本实施例中,缓存分配装置还将根据分配给各通道的所有缓存单元所对应的单元标识,对系统的系统未用缓存单元列表以及分配了缓存单元的通道对应的已占用 缓存单元列表进行更新。具体地,缓存分配装置将分配给各通道的缓存单元所对应的单元标识(通常指缓 存单元编号),分别对应更新至各通道对应的已占用缓存单元列表中,该已占用缓存单元列 表中存储了对应的各个通道当前所占用的所有缓存单元的单元标识,根据各通道对应的已 占用缓存单元列表,可以统计出对应的通道当前已占用的缓存空间大小。同时,缓存分配装 置还将该分配给各通道的缓存单元所对应的单元标识,从系统未用缓存单元列表中删除, 该系统未用缓存单元列表中存储了系统中所有尚未被占用的缓存单元的单元标识,根据该 系统未用缓存单元列表,可以统计出系统当前所有尚未被分配的缓存空间。通过该列表更 新步骤,缓存分配装置在为对应通道分配了缓存单元,以及响应了数据写入请求的同时,还 保证了系统用于对所有缓存空间进行管理的缓存单元索引列表中存储的信息,与各通道及 系统的当前状态的同步与一致。图3为本发明中各个通道对应的已占用缓存单元列表的示意图。图3中以系统中 设置有32个独立的数据通道为例,对各个通道的已占用缓存单元列表进行了示意说明。如 图3所示,当系统中设置有32个独立的数据通道时,针对该32个数据通道,系统将为每个 通道设置一个对应的已占用缓存单元列表,以用于记录对应通道已占用的所有缓存单元的 单元编号,从而根据各通道对应的已占用缓存单元列表,系统可以很容易地统计出对应的 通道当前已占用的缓存空间大小,以及很容易地查询到每个已用缓存单元具体被分配到了 哪个通道。例如如图3所示,缓存单元编号为102、2、224、21以及478的缓存单元,被分配 到了通道0中。图4为本发明中系统对应的缓存单元列表的示意图。如图4所示,对于系统中所 有还未被占用的缓存单元,系统未用缓存单元列表中均记录了这些缓存单元的单元编号, 从而根据该系统未用缓存单元列表,系统可以很容易地统计出当前状态下所有尚未被分配 的缓存空间的大小值。优化地,在实际需要时,该统计出的未用缓存空间的大小值可以记录 于系统的未用缓存单元统计列表中。步骤208,将该通道的当前写缓存单元更新为分配给该通道的新的缓存单元;进一步地,当针对数据写入请求为对应通道分配了新的缓存单元后,除了根据分 配给通道的新的缓存单元的单元标识,对该通道的已占用缓存单元列表以及系统未用缓存 单元列表进行了更新之外,在本实施例中,还应该对该通道的当前写缓存单元进行更新,具 体指将该通道的当前缓存单元更新为分配给该通道的新的缓存单元,以保证新的缓存单元 分配后,该通道的当前写缓存单元的准确性。实际应用中,如图4所示,针对各个通道的当前缓存写单元,系统中可以设置一当 前缓存写单元列表,在该列表中,可以记录每个通道的当前缓存写单元的单元标识,即将各 个通道的当前写指针所指向的缓存单元的单元标识记录于该列表中。从而若在系统中设置 有该系统当前缓存写单元列表的情形下,在本步骤中,系统还将新分配给当前通道的新的 缓存单元的单元标识,更新至该系统当前缓存写单元列表的、与该通道对应的记录栏中。步骤209,判断待写入数据的数据帧状态是否为处于帧中,若是返回执行步骤 204,若否执行步骤210 ;步骤210,丢弃待写入数据;
而在上述步骤203中,若缓存分配装置通过判断得到的结果为数据写入请求中 待写入数据的容量大小超出了对应通道当前可用的最大缓存空间,即对应通道的当前状态 无法满足数据写入请求所对应的数据写入条件,已经无法为对应通道再分配更多的缓存空 间时,缓存分配装置本应将丢弃掉数据写入请求中的待写入数据,不对该数据写入请求做 出响应。但是在本实施例中还存在一个例外情况,为了避免当数据写入请求中待写入数据 为一个数据帧的帧中数据时,由于该处于帧中的待写入数据不满足对应的数据通道的数据 写入条件,而导致出现的丢帧现象,即避免出现某一数据帧的一部分数据的写入请求被响 应而得以写入存储,而另一部分的数据却无法写入必须丢弃,从而使得该数据帧无法完整 的保存的现象,缓存分配装置在丢弃不满足数据写入条件的待写入数据之前,还将进一步 地判断数据写入请求中的待写入数据的数据帧状态是否为处于帧中状态。若判断得知该待 写入数据处于帧中状态时,即使上述步骤的判断结果为,该待写入数据不满足对应的数据 写入条件,缓存分配装置仍然响应该处于帧中的待写入数据的数据写入请求,使得一个数 据帧的数据能够被完整写入保存。步骤211,任一通道接收到数据读取请求;步骤212,从接收到数据读取请求的通道所占用的缓存单元中读取出对应的待读 取数据;步骤213,将待读取数据对应的缓存单元的单元标识,从接收到数据读取请求的通 道对应的已占用缓存单元列表中删除,以及更新至系统未用缓存单元列表中。此外还需说明的是,在本实施例中,当上述步骤200和步骤201中为各通道设置了 对应的缓存门限,以及为各通道分配了初始值为零的初始缓存空间之后,当任一通道接收 到数据读取请求,欲从对应通道读取出对应的数据时,为了响应该数据读取请求以及对相 应的缓存单元索引列表的当前状态信息进行更新,在本实施例中,缓存分配装置除了从接 收到数据读取请求的通道所占用的缓存空间中读取出对应的待读取数据外,还将该待读取 数据所对应的缓存单元的标识,从接收到该数据读取请求的通道所对应的已占用缓存单元 列表中删除,以更新对应通道的已占用缓存单元列表中存储的缓存单元标识。同时,为了将 该已读取出数据的空的缓存单元的标识,更新至用于统计系统所有未使用的缓存单元的系 统未用缓存单元列表中,缓存分配装置还将该读取出待读取数据的缓存单元的标识,添加 至系统未用缓存单元列表中,从而保持了在数据读取请求响应下,系统缓存单元索引列表 中的信息与各通道及系统的当前状态的同步和一致。本实施例的多通道缓存分配方法,通过为每个通道对应设置一个合理的缓存分配 上限值,且通过在当某个通道需要进行数据传输时,依据该数据传输请求的缓存需求以及 该通道对应的门限值,动态地为该通道分配所需缓存,而对于无需传输数据的通道,则不为 该通道分配任何缓存资源,从而使得每个通道占用的缓存资源均不会超过预设可调节的上 限值,且带宽较大的通道可以占用较多的缓存资源,带宽较小的通道占用较少的缓存资源, 没有数据传输需求的通道则不占用任何缓存资源,避免了多通道缓存分配时出现的缓存资 源浪费及缓存分配不合理的现象,进一步地,通过为每个通道设置对应的缓存上限值,还避 免了出现单个通道所占用的缓存空间过大,而影响其他通道的数据传输的现象。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过
12程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。图5为本发明多通道缓存分配装置实施例一的结构示意图,如图5所示,本实施例 的多通道缓存分配装置包括缓存门限设置模块11、判断模块12数据写入模块13和第一 缓存分配模块14。其中,缓存门限设置模块11用于根据每个通道各自的带宽能力分别为每个通道 设置对应的缓存门限,该缓存门限用于标识每个通道最大可占用的缓存单元数目;判断模 块12用于当任一通道接收到数据写入请求时,根据接收到数据写入请求的通道的当前写 缓存单元的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,以及数据写入请 求中待写入数据的容量大小,判断该通道是否满足当前的数据写入条件;数据写入模块13 用于若判断模块12判断出该通道满足当前的数据写入条件时,则在该通道的当前写缓存 单元容量未满时,将待写入数据写入至该当前写缓存单元中;而第一缓存分配模块14则用 于在当前写缓存单元容量已满时,在该通道中为未写完的剩余待写入数据分配新的缓存单兀。具体地,本实施例中的所有模块所涉及的具体工作过程,可以参考上述多通道缓 存分配方法所涉及的相关实施例揭露的相关内容,在此不再赘述。本实施例的多通道缓存分配装置,通过为每个通道对应设置一个合理的缓存分配 上限值,且通过在当某个通道需要进行数据传输时,依据该数据传输请求的缓存需求以及 该通道对应的门限值,动态地为该通道分配所需缓存,而对于无需传输数据的通道,则不为 该通道分配任何缓存资源,从而使得每个通道占用的缓存资源均不会超过预设可调节的上 限值,且带宽较大的通道可以占用较多的缓存资源,带宽较小的通道占用较少的缓存资源, 没有数据传输需求的通道则不占用任何缓存资源,避免了多通道缓存分配时出现的缓存资 源浪费及缓存分配不合理的现象,进一步地,通过为每个通道设置对应的缓存上限值,还避 免了出现单个通道所占用的缓存空间过大,而影响其他通道的数据传输的现象。图6为本发明多通道缓存分配装置实施例二的结构示意图,如图6所示,在上述 多通道缓存分配装置实施例一的基础上,本实施例的多通道缓存分配装置还可以包括第二 缓存分配模块15,该第二缓存分配模块15用于若判断模块12判断出接收到数据写入请求 的通道不满足当前的数据写入条件,但数据写入请求中的待写入数据的数据帧状态为处于 帧中时,仍将该处于帧中的所述待写入数据写入至对应通道的当前写缓存单元中,并在该 当前写缓存单元的容量已满后,在对应通道中为未写完的剩余待写入数据分配新的缓存单兀。进一步地,本实施例中,上述判断模块12还可以包括第一计算子模块121、第二 计算子模块122以及判断子模块123。其中,第一计算子模块121用于根据对应通道的当前 写缓存单元的数据存储状态,计算该当前写缓存单元的剩余可用存储空间大小;第二计算 子模块122用于根据对应通道当前已占用的缓存单元个数、对应的缓存门限、以及根据第 一计算子模块121计算得到的当前写缓存单元的剩余可用存储空间大小,计算对应通道的 当前可用的最大缓存空间,该当前可用的最大缓存空间为该通道的当前写缓存单元的剩余 可用缓存空间大小、与该通道可被分配的缓存单元对应的缓存空间大小之和;而判断子模块123则用于判断待写入数据的容量大小是否超出上述第二计算子模块122计算得到的对 应通道当前可分配的最大缓存空间,若待写入数据的容量大小未超出了该通道当前可分配 的最大缓存空间,则判断得知该通道满足当前的数据写入条件。更进一步地,本实施例中,多通道缓存分配装置还可以包括调度模块16,用于若 多个通道同时接收到数据写入请求且同时满足数据写入条件时,则根据多个通道各自对应 的优先级别高低,对该多个通道进行调度。更进一步地,本实施例中,多通道缓存分配装置还可以包括第一列表更新模块 17和当前写缓存单元更新模块18。该第一列表更新模块17用于在第一缓存分配模块14 或者第二缓存分配模块15为未写完的剩余待写入数据分配新的缓存单元之后,将分配的 新的缓存单元的单元标识更新至对应通道的已占用缓存单元列表中,以及从系统未用缓存 单元列表中删除,该系统未用缓存单元列表用于存储系统中所有尚未被占用的缓存单元的 单元标识,而已占用缓存单元列表用于存储对应的通道当前所占用的所有缓存单元的单元 标识;而当前写缓存单元更新模块18用于将该通道的当前写缓存单元更新为分配给该通 道的所述新的缓存单元。更进一步地,本实施例中,多通道缓存分配装置还可以包括数据读取模块19和 第二列表更新模块110。其中,数据读取模块19用于当任一通道接收到数据读取请求时,从 接收到数据读取请求的该通道所占用的缓存空间中读取出对应的待读取数据;而第二列表 更新模块110则用于将待读取数据对应的缓存单元的单元标识更新至系统未用缓存单元 列表中,以及从接收到数据读取请求的该通道所对应的已占用缓存单元列表中删除。其中, 系统未用缓存单元列表用于存储系统中所有尚未被占用的缓存单元对应的单元标识,而已 占用缓存单元列表则用于存储对应的通道当前所占用的所有缓存单元对应的单元标识。具体地,本实施例中的上述所有模块所涉及的具体工作过程,同样可以参考上述 多通道缓存分配方法所涉及的相关实施例揭露的相关内容,在此不再赘述。本实施例的多通道缓存分配装置,通过为每个通道对应设置一个合理的缓存分配 上限值,且通过在当某个通道需要进行数据传输时,依据该数据传输请求的缓存需求以及 该通道对应的门限值,动态地为该通道分配所需缓存,而对于无需传输数据的通道,则不为 该通道分配任何缓存资源,从而使得每个通道占用的缓存资源均不会超过预设可调节的上 限值,且带宽较大的通道可以占用较多的缓存资源,带宽较小的通道占用较少的缓存资源, 没有数据传输需求的通道则不占用任何缓存资源,避免了多通道缓存分配时出现的缓存资 源浪费及缓存分配不合理的现象,进一步地,通过为每个通道设置对应的缓存上限值,还避 免了出现单个通道所占用的缓存空间过大,而影响其他通道的数据传输的现象。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
1权利要求
一种多通道缓存分配方法,其特征在于,包括根据每个通道各自的带宽能力分别为所述每个通道设置对应的缓存门限,所述缓存门限用于标识所述每个通道最大可占用的缓存单元数目;当任一通道接收到数据写入请求时,根据所述通道的当前写缓存单元的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,以及所述数据写入请求中待写入数据的容量大小,判断所述通道是否满足当前的数据写入条件;若所述通道满足当前的数据写入条件,则在所述通道的当前写缓存单元容量未满时,将所述待写入数据写入至所述当前写缓存单元中,并在所述当前写缓存单元容量已满后,在所述通道中为未写完的剩余待写入数据分配新的缓存单元。
2.根据权利要求1所述的多通道缓存分配方法,其特征在于,所述方法还包括若所述通道不满足当前的数据写入条件,但所述待写入数据的数据帧状态为处于帧中 时,仍将处于帧中的所述待写入数据写入至所述通道的当前写缓存单元中,并在所述当前 写缓存单元的容量已满后,在所述通道中为未写完的剩余待写入数据分配新的缓存单元。
3.根据权利要求1或2所述的多通道缓存分配方法,其特征在于,所述根据所述通道的 当前写缓存单元的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,以及所述 数据写入请求中待写入数据的容量大小,判断所述通道是否满足当前的数据写入条件具体 包括根据所述通道的当前写缓存单元的数据存储状态,计算所述当前写缓存单元的剩余可 用存储空间大小;根据所述通道当前已占用的缓存单元个数、对应的缓存门限、以及计算得到的所述当 前写缓存单元的剩余可用存储空间大小,计算所述通道的当前可用的最大缓存空间,所述 当前可用的最大缓存空间为所述通道的当前写缓存单元的剩余可用缓存空间大小、与所述 通道可被分配的缓存单元对应的缓存空间大小之和;判断所述待写入数据的容量大小是否超出计算得到的所述通道的当前可用的最大缓 存空间,若所述待写入数据的容量大小未超出所述通道的当前可用的最大缓存空间,则判 断得知所述通道满足当前的数据写入条件。
4.根据权利要求1或2所述的多通道缓存分配方法,其特征在于,所述方法还包括 若多个通道同时接收到数据写入请求且同时满足所述数据写入条件时,根据所述多个通道各自对应的优先级别高低,对所述多个通道进行调度。
5.根据权利要求1或2所述的多通道缓存分配方法,其特征在于,所述在所述通道中为 未写完的剩余待写入数据分配新的缓存单元之后,所述方法还包括将分配给所述通道的新的缓存单元的单元标识更新至所述通道对应的已占用缓存单 元列表中,以及从系统未用缓存单元列表中删除,所述系统未用缓存单元列表用于存储系 统中所有尚未被占用的缓存单元的单元标识,所述已占用缓存单元列表用于存储对应的通 道当前所占用的所有缓存单元的单元标识;将所述通道的当前写缓存单元更新为分配给所述通道的所述新的缓存单元。
6.根据权利要求1或2所述的多通道缓存分配方法,其特征在于,所述方法还包括 当任一通道接收到数据读取请求时,从所述数据读取请求对应的缓存单元中读取出所述数据读取请求指定的待读取数据;若所述对应的缓存单元在数据读取后容量为空时,将所述对应的缓存单元的单元标识 更新至系统未用缓存单元列表中,以及从接收到所述数据读取请求的通道对应的已占用缓 存单元列表中删除,所述系统未用缓存单元列表用于存储系统中所有尚未被占用的缓存单 元的单元标识,所述已占用缓存单元列表用于存储对应的通道当前所占用的所有缓存单元 的单元标识。
7.—种多通道缓存分配装置,其特征在于,包括缓存门限设置模块,用于根据每个通道各自的带宽能力分别为所述每个通道设置对应 的缓存门限,所述缓存门限用于标识所述每个通道最大可占用的缓存单元数目;判断模块,用于当任一通道接收到数据写入请求时,根据所述通道的当前写缓存单元 的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,以及所述数据写入请求中 待写入数据的容量大小,判断所述通道是否满足当前的数据写入条件;数据写入模块,用于若所述判断模块判断出所述通道满足当前的数据写入条件,则在 所述通道的当前写缓存单元容量未满时,将所述待写入数据写入至所述当前写缓存单元 中;第一缓存分配模块,用于在所述当前写缓存单元容量已满时,在所述通道中为未写完 的剩余待写入数据分配新的缓存单元。
8.根据权利要求7所述的多通道缓存分配装置,其特征在于,所述装置还包括 第二缓存分配模块,用于若所述判断模块判断出所述通道不满足当前的数据写入条件,但所述待写入数据的数据帧状态为处于帧中时,仍将处于帧中的所述待写入数据写入 至所述通道的当前写缓存单元中,并在所述当前写缓存单元的容量已满后,在所述通道中 为未写完的剩余待写入数据分配新的缓存单元。
9.根据权利要求7或8所述的多通道缓存分配装置,其特征在于,所述判断模块包括 第一计算子模块,用于根据所述通道的当前写缓存单元的数据存储状态,计算所述当前写缓存单元的剩余可用存储空间大小;第二计算子模块,用于根据所述通道当前已占用的缓存单元个数、对应的缓存门限、以 及根据所述第一计算子模块计算得到的所述当前写缓存单元的剩余可用存储空间大小,计 算所述通道的当前可用的最大缓存空间,所述当前可用的最大缓存空间为所述通道的当前 写缓存单元的剩余可用缓存空间大小、与所述通道可被分配的缓存单元对应的缓存空间大 小之和;判断子模块,用于判断所述待写入数据的容量大小是否超出所述第二计算子模块计算 得到的所述通道的当前可用的最大缓存空间,若所述待写入数据的容量大小未超出所述通 道的当前可用的最大缓存空间,则判断得知所述通道满足当前的数据写入条件。
10.根据权利要求7或8所述的多通道缓存分配装置,其特征在于,所述装置还包括 调度模块,用于若所述多个通道同时接收到数据写入请求且同时满足所述数据写入条件,则根据所述多个通道各自对应的优先级别高低,对所述多个通道进行调度。
11.根据权利要求7或8所述的多通道缓存分配装置,其特征在于,所述装置还包括 第一列表更新模块,用于在所述第一缓存分配模块或者第二缓存分配模块在所述通道中为未写完的剩余待写入数据分配新的缓存单元之后,将分配给所述通道的新的缓存单 元的单元标识更新至所述通道对应的已占用缓存单元列表中,以及从系统未用缓存单元列表中删除,所述系统未用缓存单元列表用于存储系统中所有尚未被占用的缓存单元的单元 标识,所述已占用缓存单元列表用于存储对应的通道当前所占用的所有缓存单元的单元标 识;当前写缓存单元更新模块,用于将所述通道的当前写缓存单元更新为分配给所述通道 的所述新的缓存单元。
12.根据权利要求7或8所述的多通道缓存分配装置,其特征在于,所述装置还包括 数据读取模块,用于当任一通道接收到数据读取请求时,从所述对应的缓存单元中读 取出所述数据读取请求指定的待读取数据;第二列表更新模块,用于若所述对应的缓存单元在数据读取后容量为空时,则将所述 待读取数据对应的缓存单元的单元标识,更新至系统未用缓存单元列表中,以及从所述接 收到所述数据读取请求的通道对应的已占用缓存单元列表中删除,所述系统未用缓存单元 列表用于存储系统中所有尚未被占用的缓存单元的单元标识,所述已占用缓存单元列表用 于存储对应的通道当前所占用的所有缓存单元的单元标识。
全文摘要
本发明提供一种多通道缓存分配方法及装置,方法包括根据各通道各自的带宽能力为各通道设置用于标识该通道最大可占用的缓存单元数目的缓存门限;当任一通道接收到数据写入请求时,根据该通道的当前写缓存单元的数据存储状态、当前已占用的缓存单元个数、对应的缓存门限,及待写入数据的容量大小,判断该通道是否满足数据写入条件;若该通道满足数据写入条件,则在该通道的当前写缓存单元容量未满时,将待写入数据写入至当前写缓存单元中,并在当前写缓存单元容量已满后,为未写完的剩余待写入数据分配新的缓存单元。本发明动态地为存在数据缓存需求的通道分配所需缓存,避免了多通道缓存分配时出现的缓存资源浪费及缓存分配不合理的现象。
文档编号G06F12/08GK101957800SQ201010200688
公开日2011年1月26日 申请日期2010年6月12日 优先权日2010年6月12日
发明者彭鼎祥 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1