一种配置存储单元的方法及装置

阅读: 评论:0

著录项
  • CN201710438302.0
  • 20170612
  • CN107179997A
  • 20170919
  • 合肥东芯通信股份有限公司
  • 郭继宇
  • G06F12/06
  • G06F12/06

  • 安徽省合肥市蜀山区黄山路601号科创中心406室
  • 安徽(34)
  • 北京集佳知识产权代理有限公司
  • 王宝筠
摘要
本发明提出一种配置存储单元的方法,包括:向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存储单元;当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组中的空闲的存储单元组中;当所述第一数量的存储单元组中的空闲的存储单元组数量小于设定的数量阈值时,再次向内存池申请存储单元组。上述方案在向内存池申请内存单元组时,一次性申请多个内存单元组,供USB模块使用,当可用的内存单元组数量小于设定阈值时,才再次向内存池申请内存单元组,降低了USB模块向内存池申请内存单元组的频率,从而降低了USB模块与LTE协议栈访问内存池冲突的可能性。
权利要求

1.一种配置存储单元的方法,其特征在于,包括:

向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存储单 元;

当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组中的 空闲的存储单元组中;

当所述第一数量的存储单元组中的空闲的存储单元组数量小于设定的数量阈值时,再 次向内存池申请存储单元组。

2.根据权利要求1所述的方法,其特征在于,在将所述数据存储到所述第一数量的存储 单元组中的空闲的存储单元组中后,该方法还包括:

检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;

如果存储所述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被占用 的存储单元;

当回收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量的未 被占用的存储单元组成新的存储单元组。

3.根据权利要求2所述的方法,其特征在于,所述回收所述未被占用的存储单元,包括:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用于存 储来自所述USB驱动的数据。

4.根据权利要求1所述的方法,其特征在于,再次向内存池申请的存储单元的数量,不 大于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

5.一种配置存储单元的装置,其特征在于,包括:

第一申请单元,用于向内存池申请第一数量的存储单元组;其中,每一存储单元组包括 第二数量的存储单元;

分配单元,用于当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存 储单元组中的空闲的存储单元组中;

第二申请单元,用于当所述第一数量的存储单元组中的空闲的存储单元组数量小于设 定的数量阈值时,再次向内存池申请存储单元组。

6.根据权利要求5所述的装置,其特征在于,该装置还包括:

检测处理单元,用于检测存储所述数据的存储单元组中,是否存在未被占用的存储单 元;如果存储所述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被占用的 存储单元;当回收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量 的未被占用的存储单元组成新的存储单元组。

7.根据权利要求6所述的装置,其特征在于,所述检测处理单元回收所述未被占用的存 储单元时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用于存 储来自所述USB驱动的数据。

8.根据权利要求5所述的装置,其特征在于,所述第二申请单元再次向内存池申请的存 储单元的数量,不大于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

9.一种配置存储单元的装置,其特征在于,包括:

存储器和处理器;

其中,所述存储器与所述处理器连接,用于存储程序和程序运行过程中产生的数据;

所述处理器,用于通过运行所述存储器中的程序,实现以下功能:

向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存储单 元;当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组中的空 闲的存储单元组中;当所述第一数量的存储单元组中的空闲的存储单元组数量小于设定的 数量阈值时,再次向内存池申请存储单元组。

10.根据权利要求9所述的装置,其特征在于,所述处理器还用于:

检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;如果存储所述数 据的存储单元组中,存在未被占用的存储单元,则回收所述未被占用的存储单元;当回收的 未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量的未被占用的存储 单元组成新的存储单元组。

11.根据权利要求10所述的装置,其特征在于,所述处理器回收所述未被占用的存储单 元时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用于存 储来自所述USB驱动的数据。

12.根据权利要求9所述的装置,其特征在于,所述处理器再次向内存池申请的存储单 元的数量,不大于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

说明书
技术领域

本发明涉及内存资源管理技术领域,尤其涉及一种配置存储单元的方法及装置。

通用串行总线(Universal Serial Bus,USB)模块是长期演进(Long Term Evolution,LTE)嵌入式系统不可缺少的组成部分,USB模块从LTE嵌入式系统的内存池中申 请内存单元,用于数据传输。而LTE协议栈应用程序也是从LTE嵌入式系统的内存池申请内 存空间。

USB模块每次从内存缓存区申请一个包含多个存储单元的存储单元组来用于接收 数据,数据接收完成之后需要申请新的存储单元组来接收下一个数据包。在高吞吐量通信 场景下,USB模块的内存申请释放和LTE协议栈的任务调度的频率都会急剧增加,而USB模块 频繁地向内存池申请存储单元组,大大增加了USB模块与LTE协议栈访问内存池冲突的可能 性。

基于上述现有技术的缺陷和不足,本发明提出一种配置存储单元的方法及装置, 能够降低USB模块向内存池申请内存单元的频率,降低USB模块与LTE协议栈访问内存池冲 突的可能性。

一种配置存储单元的方法,该方法包括:

向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存 储单元;

当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组 中的空闲的存储单元组中;

当所述第一数量的存储单元组中的空闲的存储单元组数量小于设定的数量阈值 时,再次向内存池申请存储单元组。

优选地,在将所述数据存储到所述第一数量的存储单元组中的空闲的存储单元组 中后,该方法还包括:

检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;

如果存储所述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被 占用的存储单元;

当回收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量 的未被占用的存储单元组成新的存储单元组。

优选地,所述回收所述未被占用的存储单元,包括:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

优选地,再次向内存池申请的存储单元的数量,不大于所述第一数量的存储单元 组中已经被使用的存储单元组的数量。

一种配置存储单元的装置,包括:

第一申请单元,用于向内存池申请第一数量的存储单元组;其中,每一存储单元组 包括第二数量的存储单元;

分配单元,用于当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量 的存储单元组中的空闲的存储单元组中;

第二申请单元,用于当所述第一数量的存储单元组中的空闲的存储单元组数量小 于设定的数量阈值时,再次向内存池申请存储单元组。

优选地,该装置还包括:

检测处理单元,用于检测存储所述数据的存储单元组中,是否存在未被占用的存 储单元;如果存储所述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被占 用的存储单元;当回收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二 数量的未被占用的存储单元组成新的存储单元组。

优选地,所述检测处理单元回收所述未被占用的存储单元时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

优选地,所述第二申请单元再次向内存池申请的存储单元的数量,不大于所述第 一数量的存储单元组中已经被使用的存储单元组的数量。

一种配置存储单元的装置,包括:

存储器和处理器;

其中,所述存储器与所述处理器连接,用于存储程序和程序运行过程中产生的数 据;

所述处理器,用于通过运行所述存储器中的程序,实现以下功能:

向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存 储单元;当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组中 的空闲的存储单元组中;当所述第一数量的存储单元组中的空闲的存储单元组数量小于设 定的数量阈值时,再次向内存池申请存储单元组。

优选地,所述处理器还用于:

检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;如果存储所 述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被占用的存储单元;当回 收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量的未被占用的 存储单元组成新的存储单元组。

优选地,所述处理器回收所述未被占用的存储单元时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

优选地,所述处理器再次向内存池申请的存储单元的数量,不大于所述第一数量 的存储单元组中已经被使用的存储单元组的数量。

本发明提出的配置存储单元的方法,向内存池申请第一数量的存储单元组;其中, 每一存储单元组包括第二数量的存储单元;当接收到来自USB驱动的数据时,将所述数据存 储到所述第一数量的存储单元组中的空闲的存储单元组中;当所述第一数量的存储单元组 中的空闲的存储单元组数量小于设定的数量阈值时,再次向内存池申请存储单元组。上述 方案在向内存池申请内存单元组时,一次性申请多个内存单元组,供USB模块使用,当可用 的内存单元组数量小于设定阈值时,才再次向内存池申请内存单元组,降低了USB模块向内 存池申请内存单元组的频率,从而降低了USB模块与LTE协议栈访问内存池冲突的可能性。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。

图1是本发明实施例提供的一种配置存储单元的方法的流程示意图;

图2是本发明实施例提供的另一种配置存储单元的方法的流程示意图;

图3是本发明实施例提供的一种配置存储单元的装置的结构示意图;

图4是本发明实施例提供的另一种配置存储单元的装置的结构示意图;

图5是本发明实施例提供的另一种配置存储单元的装置的结构示意图。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。

本发明实施例公开了一种配置存储单元的方法,参见图1所示,该方法包括:

S101、向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量 的存储单元;

具体的,本发明实施例技术方案应用于LTE嵌入式系统的USB模块,当USB模块传输 数据时,需要先将数据缓存到由存储单元组成的存储单元组中,再从存储单元组中传输数 据。因此,USB模块传输数据时,需要首先向内存池申请存储单元组。采用在本发明实施例技 术方案中,当USB模块向内存池申请存储单元组时,一次性申请第一数量的存储单元组,上 述第一数量根据实际需求可灵活设定。每一个存储单元组,包含第二数量的存储单元,上述 第二数量也可以根据实际需求灵活设定。

在申请第一数量的存储单元组后,对于这些存储单元组的管理,一种可选的方式 是,设置一个专门的数组来管理这些存储单元组,数组的一个元素保存着一个存储单元组 的首地址。刚开始时数组里没有有效数据,那么从下标0开始,把新申请的存储单元组的首 地址放到这个数组元素里,数组中第一个下标为0的元素后面的元素下标分别是1、2、3…以 此类推。

当接收到来自USB驱动的数据时,执行步骤S102、将所述数据存储到所述第一数量 的存储单元组中的空闲的存储单元组中;

具体的,当USB模块通过USB驱动接收数据时,首先从存储存储单元组的数组中,读 取一个空闲的存储单元组的首地址,将数据存储到空闲存储单元组所表示的存储地址。

为了保证数据存储的秩序,本发明实施例设定USB模块从申请的第一数量的存储 单元数组的第一个存储单元数组开始存储数据。即第一次读取数组中的第一个存储单元组 的首地址,第二次读取数组中的第二个存储单元组的首地址,以此类推。

当所述第一数量的存储单元组中的空闲的存储单元组数量小于设定的数量阈值 时,执行步骤S103、再次向内存池申请存储单元组。

具体的,在USB模块传输数据,不断地占用已申请的存储单元组的同时,还会持续 监测已申请的第一数量的存储单元组中,所剩下的空闲存储单元组的数量,当剩下的存储 单元组的数量,小于设定的数量阈值时,再次向内存池申请内存单元组,以保证有足够的空 闲存储单元组用于存储数据。步骤S103的具体执行方法与步骤S101的执行过程相同,只是 申请的存储单元组数量不同。例如,当USB模块监测发现剩余的空闲存储单元组的数量,已 经不足上述第一数量的一半,则USB模块再次向内存池申请内存单元组。

需要说明的是,本发明实施例设置数组来存放已申请的存储单元组的首地址,当 USB模块监测发现数组中的存储单元组首地址的数量少于设定的数量阈值时,再次向内存 池申请存储单元组。

本发明实施例提出的配置存储单元的方法,向内存池申请第一数量的存储单元 组;其中,每一存储单元组包括第二数量的存储单元;当接收到来自USB驱动的数据时,将所 述数据存储到所述第一数量的存储单元组中的空闲的存储单元组中;当所述第一数量的存 储单元组中的空闲的存储单元组数量小于设定的数量阈值时,再次向内存池申请存储单元 组。上述方案在向内存池申请内存单元组时,一次性申请多个内存单元组,供USB模块使用, 当可用的内存单元组数量小于设定阈值时,才再次向内存池申请内存单元组,降低了USB模 块向内存池申请内存单元组的频率,从而降低了USB模块与LTE协议栈访问内存池冲突的可 能性。

可选的,在本发明的另一个实施例中,参见图2所示,在将所述数据存储到所述第 一数量的存储单元组中的空闲的存储单元组中后,该方法还包括:

S203、检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;

具体的,在高数据量要求下,LTE嵌入式系统采用CCD NCM协议。即USB主机一次性 可发送多个IP数据包来降低嵌入式系统处理USB中断的频率。主机发送数据的触发条件有 三个,第一是数据包总个数达到上限;第二是数据长度达到上限;第三是与上一次发送的时 间间隔达到上限。只要满足三个条件之一,主机就会发送数据,所以数据的长度是不固定 的。

一般情况下,存储单元组的长度(所包含的存储单元数量),要不小于USB模块一次 接收的数据的最大长度,以保证一条数据可以被存储进一个存储单元组。因此,通常情况 下,存储单元组在存储数据后,都会有存储单元没有被占用。

如果存储所述数据的存储单元组中,存在未被占用的存储单元,则执行步骤S204、 回收所述未被占用的存储单元;

具体的,在现有的数据存储处理方法中,一个存储单元组在存储数据后,不论所有 的存储单元是否都存储了数据,都要将整个存储单元组释放,这样造成了存储单元组中,没 有存储数据的存储单元的浪费。而在本发明实施例中,将存储单元组中未被占用的存储单 元保留下来,用于存储新接收的数据。这样,提高了对存储单元组的利用率,利于减少向USB 模块向内存池申请内存单元组的频率。

当回收的未被占用的存储单元的数量,到达所述第二数量时,执行步骤S205、由回 收的第二数量的未被占用的存储单元组成新的存储单元组。

具体的,当回收的存储单元的数量,足够组成一个存储单元组,即足够上述第二数 量时,由这些回收的第二数量的存储单元,组成一个新的存储单元组,用于存储新接收的数 据。

上述方法在占用存储单元组中的存储单元的同时,回收存储单元组中没有被使用 的存储单元,能够一定程度上增加可用的存储单元组的数量,减少向内存池申请存储单元 组的频率,从而减少USB模块与LTE协议栈访问内存池冲突的可能性。

本实施例中的步骤S201、S202、S206,分别对应图1所示的方法实施例中的步骤 S101、S102、S103,其具体内容请参见对应图1所示的方法实施例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,所述回收所述未被占用的存储单元,包括:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

具体的,本发明实施例提出一种可行的回收存储单元组中未被占用的存储单元的 方式。在回收未被占用的存储单元时,将未被占用的存储单元的地址存储到缓存器中,并 且,设置未被占用的存储单元只用于存储来自USB驱动的数据,不能被其它模块占用。

当缓存器中的存储单元的数量,足够组成一个新的存储单元组时,将存储的存储 单元依次连接,组成一个新的存储单元组,并将新的存储单元组的首地址存储到用于存储 存储单元组首地址的数组中,这样,数组中就多了一个存储单元组的首地址,相当于多了一 个新的存储单元组可以用于USB模块传输数据使用。

可选的,在本发明的另一个实施例中,再次向内存池申请的存储单元的数量,不大 于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

具体的,在本发明实施例中,设定再次向内存池申请的内存单元组的数量,不大于 上述数组中能够存储的存储单元组首地址的数量。一方面保证上述数组能够存储所有可用 的存储单元组的首地址;另一方面防止新存储的存储单元组首地址覆盖原有的,尚未被读 取的存储单元组首地址,造成存储单元组的浪费。

本发明实施例公开了一种配置存储单元的装置,参见图3所示,该装置包括:

第一申请单元301,用于向内存池申请第一数量的存储单元组;其中,每一存储单 元组包括第二数量的存储单元;

分配单元302,用于当接收到来自USB驱动的数据时,将所述数据存储到所述第一 数量的存储单元组中的空闲的存储单元组中;

第二申请单元303,用于当所述第一数量的存储单元组中的空闲的存储单元组数 量小于设定的数量阈值时,再次向内存池申请存储单元组。

具体的,本实施例中的各个单元的具体工作内容,请参见对应的方法实施例的内 容,此处不再赘述。

本发明实施例提出的配置存储单元的装置,在为USB模块配置存储单元时,第一申 请单元301向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存 储单元;当USB模块接收到来自USB驱动的数据时,分配单元302将所述数据存储到所述第一 数量的存储单元组中的空闲的存储单元组中;当所述第一数量的存储单元组中的空闲的存 储单元组数量小于设定的数量阈值时,第二申请单元303再次向内存池申请存储单元组。上 述方案在向内存池申请内存单元组时,一次性申请多个内存单元组,供USB模块使用,当可 用的内存单元组数量小于设定阈值时,才再次向内存池申请内存单元组,降低了USB模块向 内存池申请内存单元组的频率,从而降低了USB模块与LTE协议栈访问内存池冲突的可能 性。

可选的,在本发明的另一个实施例中,参见图4所示,该装置还包括:

检测处理单元304,用于检测存储所述数据的存储单元组中,是否存在未被占用的 存储单元;如果存储所述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被 占用的存储单元;当回收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第 二数量的未被占用的存储单元组成新的存储单元组。

具体的,本实施例中的检测处理单元304的具体工作内容,请参见对应的方法实施 例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,检测处理单元304回收所述未被占用的存储 单元时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

具体的,本实施例中的检测处理单元304的具体工作内容,请参见对应的方法实施 例的内容,此处不再赘述。

可选的,在本发明的另一个实施例中,第二申请单元303再次向内存池申请的存储 单元的数量,不大于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

具体的,本实施例中的第二申请单元303的具体工作内容,请参见对应的方法实施 例的内容,此处不再赘述。

本发明实施例公开了另一种配置存储单元的装置,参见图5所示,包括:

存储器501和处理器502;

其中,存储器501与处理器502连接,用于存储程序和程序运行过程中产生的数据;

处理器502,用于通过运行存储器501中的程序,实现以下功能:

向内存池申请第一数量的存储单元组;其中,每一存储单元组包括第二数量的存 储单元;当接收到来自USB驱动的数据时,将所述数据存储到所述第一数量的存储单元组中 的空闲的存储单元组中;当所述第一数量的存储单元组中的空闲的存储单元组数量小于设 定的数量阈值时,再次向内存池申请存储单元组。

具体的,本实施例中的各个部分的具体工作内容,请参见对应的方法实施例的内 容,此处不再赘述。

可选的,在本发明的另一个实施例中,处理器502还用于:

检测存储所述数据的存储单元组中,是否存在未被占用的存储单元;如果存储所 述数据的存储单元组中,存在未被占用的存储单元,则回收所述未被占用的存储单元;当回 收的未被占用的存储单元的数量,到达所述第二数量时,由回收的第二数量的未被占用的 存储单元组成新的存储单元组。

具体的,本实施例中的处理器502的具体工作内容,请参见对应的方法实施例的内 容,此处不再赘述。

可选的,在本发明的另一个实施例中,处理器502回收所述未被占用的存储单元 时,具体用于:

保持所述未被占用的存储单元不被释放,并且设置所述未被占用的存储单元只用 于存储来自所述USB驱动的数据。

具体的,本实施例中的处理器502的具体工作内容,请参见对应的方法实施例的内 容,此处不再赘述。

可选的,在本发明的另一个实施例中,处理器502再次向内存池申请的存储单元的 数量,不大于所述第一数量的存储单元组中已经被使用的存储单元组的数量。

具体的,本实施例中的处理器502的具体工作内容,请参见对应的方法实施例的内 容,此处不再赘述。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。

本文发布于:2023-04-14 05:54:22,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/86994.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图